﻿﻿﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[Ultima Forum - RGSS3]]></title>
		<link>https://forum.ultimateam.pl/</link>
		<description><![CDATA[Ultima Forum - https://forum.ultimateam.pl]]></description>
		<pubDate>Tue, 28 Apr 2026 06:23:30 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Napisy Końcowe]]></title>
			<link>https://forum.ultimateam.pl/Thread-VXAce-Napisy-Ko%C5%84cowe--3128</link>
			<pubDate>Sun, 17 Jun 2018 13:05:52 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-VXAce-Napisy-Ko%C5%84cowe--3128</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Napisy Końcowe / Credits ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Wyświetla napisy końcowe <span style="font-style: italic;">(credits)</span>. W tle można umieścić dowolną ilość wybranych obrazków.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Ayene<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>#============================================================================== <br />
# Napisy Końcowe [VXAce] / Scene Credits [VXAce]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
#============================================================================== <br />
# Autor: Ayene <br />
# www.ultimateam.pl <br />
# ver. 1.2 [18.01.2012] <br />
#============================================================================== <br />
# Skrypt wyświetla napisy końcowe (tzw. Credits). <br />
# Może zostać wykorzystany również do wyświetlania historii, opisu, itd. <br />
# Instalacja: Umieść skrypt nad Main. <br />
#============================================================================== <br />
# By wywołać napisy wpisz: <br />
#&nbsp;&nbsp;&nbsp;&nbsp; SceneManager.call(Scene_Credits) <br />
#============================================================================== <br />
<br />
module AYENE <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;# Ustawienia czcionki <br />
&nbsp;&nbsp;CREDITS_FONT = 'Comic Sans MS'&nbsp;&nbsp;&nbsp;&nbsp;# nazwa czcionki (folder Fonts) <br />
&nbsp;&nbsp;CREDITS_SIZE = 30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # rozmiar czcionki <br />
&nbsp;&nbsp;CREDITS_BOLD = true&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # pogrubienie <br />
&nbsp;&nbsp;CREDITS_ITALIC = false&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# kursywa <br />
&nbsp;&nbsp;WLH = 32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# interlinia <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;# Ustawienia muzyki w tle <br />
&nbsp;&nbsp;CREDITS_BGM = ''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# nazwa pliku z muzyką (folder Audio/BGM) <br />
&nbsp;&nbsp;CREDITS_BGM_VOLUME = 100&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# głośność <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;# Ustawienia tła obrazkowego (folder Graphics/Pitures)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;BACKGROUND_IMAGE = ''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # nazwa tła; '' wyłącza tło <br />
&nbsp;&nbsp;BACKGROUND_OPACTIY = 255&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# przezroczystość tła&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;# Formatowanie tesktu <br />
&nbsp;&nbsp;# Poniżej można dodać własne kolory tekstu <br />
&nbsp;&nbsp;TEXT_COLOR = { # 'kod' =&gt; kolor <br />
&nbsp;&nbsp;'' =&gt; Color.new(255, 255, 255, 255),&nbsp;&nbsp;# &lt;- nie usuwać - kolor domyślny <br />
&nbsp;&nbsp;'&lt;r&gt;' =&gt; Color.new(255, 126, 126, 255), <br />
&nbsp;&nbsp;'&lt;y&gt;' =&gt; Color.new(255, 253, 92, 255), <br />
&nbsp;&nbsp;'&lt;g&gt;' =&gt; Color.new(92, 255, 150, 255) <br />
&nbsp;&nbsp;} <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;BUTTON_CLOSE = true # włącza możliwość przewinięcia sceny za pomocą przycisku <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;NEXT_SCENE = Scene_Map&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# kolejna scena&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;PREVIOUS_SCENE = Scene_Title&nbsp;&nbsp;&nbsp;&nbsp;# poprzednia scena <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;# Dodawanie obrazków do tekstu <br />
&nbsp;&nbsp;# Żeby obrazek nie nachodził na tekst wystarczy - pod linijką z kodem na jego <br />
&nbsp;&nbsp;# wyświetlenie - dać większy odstęp. <br />
&nbsp;&nbsp;IMAGE = { # 'kod' =&gt; nazwa obrazka <br />
&nbsp;&nbsp;'&lt;logo&gt;' =&gt; 'logo', <br />
&nbsp;&nbsp;'&lt;ranga&gt;' =&gt; 'ranga',&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;} <br />
&nbsp;&nbsp;<br />
#-------------------------- <br />
# Tekst <br />
#-------------------------- <br />
CREDIT = &lt;&lt;_CREDIT_<br />
<br />
&lt;logo&gt; <br />
<br />
&lt;y&gt;Tytuł Gry <br />
<br />
<br />
<br />
&lt;r&gt;~ Reżyser ~ <br />
... <br />
--------------- <br />
<br />
&lt;r&gt;~ Skrypty ~ <br />
... <br />
--------------- <br />
<br />
&lt;r&gt;~ Grafika ~ <br />
... <br />
--------------- <br />
<br />
&lt;r&gt;~ Dźwięk i muzyka ~ <br />
... <br />
--------------- <br />
<br />
&lt;r&gt;~ Mapy ~ <br />
... <br />
--------------- <br />
<br />
&lt;g&gt;www.ultimateam.pl <br />
<br />
_CREDIT_<br />
#-------------------------- <br />
# Koniec tekstu <br />
#-------------------------- <br />
end <br />
<br />
#============================================================================== <br />
# ** Scene_Credits <br />
#============================================================================== <br />
<br />
class Scene_Credits &lt; Scene_Base <br />
&nbsp;&nbsp;include AYENE&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Start <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def start <br />
&nbsp;&nbsp;&nbsp;&nbsp;super&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if CREDITS_BGM != '' <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Audio.bgm_play("Audio/BGM/" + CREDITS_BGM, CREDITS_BGM_VOLUME, 100) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;create_background <br />
&nbsp;&nbsp;&nbsp;&nbsp;create_credits&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Create Background <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def create_background <br />
&nbsp;&nbsp;&nbsp;&nbsp;if BACKGROUND_IMAGE != '' <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@background = Sprite.new <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@background.bitmap = Cache.picture(BACKGROUND_IMAGE) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@background.opacity = BACKGROUND_OPACTIY <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Create Credits <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def create_credits <br />
&nbsp;&nbsp;&nbsp;&nbsp;color = [] <br />
&nbsp;&nbsp;&nbsp;&nbsp;image = [] <br />
&nbsp;&nbsp;&nbsp;&nbsp;text = CREDIT.split(/&#92;n/)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;@credits = Sprite.new <br />
&nbsp;&nbsp;&nbsp;&nbsp;@credits.bitmap = Bitmap.new(544, WLH * text.size) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@credits.z = 9999 <br />
&nbsp;&nbsp;&nbsp;&nbsp;@credits.oy = -426&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;text.each_index { |i| <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;color[i] = TEXT_COLOR[0]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TEXT_COLOR.each { |st, c| <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if text[i].include?(st)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text[i].sub!(st, '') <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;color[i] = c <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMAGE.each { |st, im| <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if text[i].include?(st)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text[i].sub!(st, '') <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image[i] = im <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if image[i] != nil <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bitmap = Cache.picture(image[i]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cw = bitmap.width <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ch = bitmap.height <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;src_rect = Rect.new(0, 0, cw, ch) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@credits.bitmap.blt((544 - cw) / 2, i*WLH, bitmap, src_rect)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@credits.bitmap.font.name = CREDITS_FONT <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@credits.bitmap.font.size = CREDITS_SIZE <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@credits.bitmap.font.bold = CREDITS_BOLD <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@credits.bitmap.font.italic = CREDITS_ITALIC <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@credits.bitmap.font.color = color[i] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@credits.bitmap.draw_text(0, i*WLH, 544, 32, text[i], 1) <br />
&nbsp;&nbsp;&nbsp;&nbsp;} <br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Terminate <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def terminate <br />
&nbsp;&nbsp;&nbsp;&nbsp;super <br />
&nbsp;&nbsp;&nbsp;&nbsp;dispose_background <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Frame Update <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def update <br />
&nbsp;&nbsp;&nbsp;&nbsp;super <br />
&nbsp;&nbsp;&nbsp;&nbsp;@credits.oy += 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;if BUTTON_CLOSE <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next_scene if Input.trigger?(Input::C)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;previous_scene if Input.trigger?(Input::B)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;next_scene if @credits.oy &gt;= @credits.bitmap.height <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Next Scene <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def next_scene <br />
&nbsp;&nbsp;&nbsp;&nbsp;Audio.bgm_fade(1500) if CREDITS_BGM != '' <br />
&nbsp;&nbsp;&nbsp;&nbsp;SceneManager.call(NEXT_SCENE) <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Previous Scene <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def previous_scene <br />
&nbsp;&nbsp;&nbsp;&nbsp;Audio.bgm_fade(1500) if CREDITS_BGM != '' <br />
&nbsp;&nbsp;&nbsp;&nbsp;SceneManager.call(PREVIOUS_SCENE) <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Dispose Background <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def dispose_background <br />
&nbsp;&nbsp;&nbsp;&nbsp;unless @background.nil? <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@background.bitmap.dispose <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@background.dispose <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;@credits.bitmap.dispose <br />
&nbsp;&nbsp;&nbsp;&nbsp;@credits.dispose <br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
end</code></div></div>
</div></div><span style="color: red;"><span style="font-weight: bold;">Screeny:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><img class="postimage" src="https://i.imgur.com/4PXhiiz.png" border="0" alt="[Obrazek: 4PXhiiz.png]" /><br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Skrypt nie zadziała jeżeli po "_CREDIT_" <span style="font-style: italic;">(Linijka 88)</span> jest niepotrzebna spacja.<br />
Skrypt wymaga obrazka <span style="font-weight: bold;">logo</span>, którego należy umieścić w folderze "Graphics\Pictures".<br />
Instrukcja jest podana w skrypcie.<br />
Skrypt należy umieścić w edytorze skryptów, pod "Materials".<br />
<br />
Przykładowy obrazek <span style="font-weight: bold;">logo</span>:<br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><img class="postimage" src="https://i.imgur.com/jkYFpXz.png" border="0" alt="[Obrazek: jkYFpXz.png]" /></div></div>]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Napisy Końcowe / Credits ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Wyświetla napisy końcowe <span style="font-style: italic;">(credits)</span>. W tle można umieścić dowolną ilość wybranych obrazków.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Ayene<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>#============================================================================== <br />
# Napisy Końcowe [VXAce] / Scene Credits [VXAce]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
#============================================================================== <br />
# Autor: Ayene <br />
# www.ultimateam.pl <br />
# ver. 1.2 [18.01.2012] <br />
#============================================================================== <br />
# Skrypt wyświetla napisy końcowe (tzw. Credits). <br />
# Może zostać wykorzystany również do wyświetlania historii, opisu, itd. <br />
# Instalacja: Umieść skrypt nad Main. <br />
#============================================================================== <br />
# By wywołać napisy wpisz: <br />
#&nbsp;&nbsp;&nbsp;&nbsp; SceneManager.call(Scene_Credits) <br />
#============================================================================== <br />
<br />
module AYENE <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;# Ustawienia czcionki <br />
&nbsp;&nbsp;CREDITS_FONT = 'Comic Sans MS'&nbsp;&nbsp;&nbsp;&nbsp;# nazwa czcionki (folder Fonts) <br />
&nbsp;&nbsp;CREDITS_SIZE = 30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # rozmiar czcionki <br />
&nbsp;&nbsp;CREDITS_BOLD = true&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # pogrubienie <br />
&nbsp;&nbsp;CREDITS_ITALIC = false&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# kursywa <br />
&nbsp;&nbsp;WLH = 32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# interlinia <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;# Ustawienia muzyki w tle <br />
&nbsp;&nbsp;CREDITS_BGM = ''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# nazwa pliku z muzyką (folder Audio/BGM) <br />
&nbsp;&nbsp;CREDITS_BGM_VOLUME = 100&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# głośność <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;# Ustawienia tła obrazkowego (folder Graphics/Pitures)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;BACKGROUND_IMAGE = ''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # nazwa tła; '' wyłącza tło <br />
&nbsp;&nbsp;BACKGROUND_OPACTIY = 255&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# przezroczystość tła&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;# Formatowanie tesktu <br />
&nbsp;&nbsp;# Poniżej można dodać własne kolory tekstu <br />
&nbsp;&nbsp;TEXT_COLOR = { # 'kod' =&gt; kolor <br />
&nbsp;&nbsp;'' =&gt; Color.new(255, 255, 255, 255),&nbsp;&nbsp;# &lt;- nie usuwać - kolor domyślny <br />
&nbsp;&nbsp;'&lt;r&gt;' =&gt; Color.new(255, 126, 126, 255), <br />
&nbsp;&nbsp;'&lt;y&gt;' =&gt; Color.new(255, 253, 92, 255), <br />
&nbsp;&nbsp;'&lt;g&gt;' =&gt; Color.new(92, 255, 150, 255) <br />
&nbsp;&nbsp;} <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;BUTTON_CLOSE = true # włącza możliwość przewinięcia sceny za pomocą przycisku <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;NEXT_SCENE = Scene_Map&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# kolejna scena&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;PREVIOUS_SCENE = Scene_Title&nbsp;&nbsp;&nbsp;&nbsp;# poprzednia scena <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;# Dodawanie obrazków do tekstu <br />
&nbsp;&nbsp;# Żeby obrazek nie nachodził na tekst wystarczy - pod linijką z kodem na jego <br />
&nbsp;&nbsp;# wyświetlenie - dać większy odstęp. <br />
&nbsp;&nbsp;IMAGE = { # 'kod' =&gt; nazwa obrazka <br />
&nbsp;&nbsp;'&lt;logo&gt;' =&gt; 'logo', <br />
&nbsp;&nbsp;'&lt;ranga&gt;' =&gt; 'ranga',&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;} <br />
&nbsp;&nbsp;<br />
#-------------------------- <br />
# Tekst <br />
#-------------------------- <br />
CREDIT = &lt;&lt;_CREDIT_<br />
<br />
&lt;logo&gt; <br />
<br />
&lt;y&gt;Tytuł Gry <br />
<br />
<br />
<br />
&lt;r&gt;~ Reżyser ~ <br />
... <br />
--------------- <br />
<br />
&lt;r&gt;~ Skrypty ~ <br />
... <br />
--------------- <br />
<br />
&lt;r&gt;~ Grafika ~ <br />
... <br />
--------------- <br />
<br />
&lt;r&gt;~ Dźwięk i muzyka ~ <br />
... <br />
--------------- <br />
<br />
&lt;r&gt;~ Mapy ~ <br />
... <br />
--------------- <br />
<br />
&lt;g&gt;www.ultimateam.pl <br />
<br />
_CREDIT_<br />
#-------------------------- <br />
# Koniec tekstu <br />
#-------------------------- <br />
end <br />
<br />
#============================================================================== <br />
# ** Scene_Credits <br />
#============================================================================== <br />
<br />
class Scene_Credits &lt; Scene_Base <br />
&nbsp;&nbsp;include AYENE&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Start <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def start <br />
&nbsp;&nbsp;&nbsp;&nbsp;super&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if CREDITS_BGM != '' <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Audio.bgm_play("Audio/BGM/" + CREDITS_BGM, CREDITS_BGM_VOLUME, 100) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;create_background <br />
&nbsp;&nbsp;&nbsp;&nbsp;create_credits&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Create Background <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def create_background <br />
&nbsp;&nbsp;&nbsp;&nbsp;if BACKGROUND_IMAGE != '' <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@background = Sprite.new <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@background.bitmap = Cache.picture(BACKGROUND_IMAGE) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@background.opacity = BACKGROUND_OPACTIY <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Create Credits <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def create_credits <br />
&nbsp;&nbsp;&nbsp;&nbsp;color = [] <br />
&nbsp;&nbsp;&nbsp;&nbsp;image = [] <br />
&nbsp;&nbsp;&nbsp;&nbsp;text = CREDIT.split(/&#92;n/)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;@credits = Sprite.new <br />
&nbsp;&nbsp;&nbsp;&nbsp;@credits.bitmap = Bitmap.new(544, WLH * text.size) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@credits.z = 9999 <br />
&nbsp;&nbsp;&nbsp;&nbsp;@credits.oy = -426&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;text.each_index { |i| <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;color[i] = TEXT_COLOR[0]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TEXT_COLOR.each { |st, c| <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if text[i].include?(st)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text[i].sub!(st, '') <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;color[i] = c <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMAGE.each { |st, im| <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if text[i].include?(st)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text[i].sub!(st, '') <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image[i] = im <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if image[i] != nil <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bitmap = Cache.picture(image[i]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cw = bitmap.width <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ch = bitmap.height <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;src_rect = Rect.new(0, 0, cw, ch) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@credits.bitmap.blt((544 - cw) / 2, i*WLH, bitmap, src_rect)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@credits.bitmap.font.name = CREDITS_FONT <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@credits.bitmap.font.size = CREDITS_SIZE <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@credits.bitmap.font.bold = CREDITS_BOLD <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@credits.bitmap.font.italic = CREDITS_ITALIC <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@credits.bitmap.font.color = color[i] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@credits.bitmap.draw_text(0, i*WLH, 544, 32, text[i], 1) <br />
&nbsp;&nbsp;&nbsp;&nbsp;} <br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Terminate <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def terminate <br />
&nbsp;&nbsp;&nbsp;&nbsp;super <br />
&nbsp;&nbsp;&nbsp;&nbsp;dispose_background <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Frame Update <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def update <br />
&nbsp;&nbsp;&nbsp;&nbsp;super <br />
&nbsp;&nbsp;&nbsp;&nbsp;@credits.oy += 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;if BUTTON_CLOSE <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next_scene if Input.trigger?(Input::C)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;previous_scene if Input.trigger?(Input::B)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;next_scene if @credits.oy &gt;= @credits.bitmap.height <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Next Scene <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def next_scene <br />
&nbsp;&nbsp;&nbsp;&nbsp;Audio.bgm_fade(1500) if CREDITS_BGM != '' <br />
&nbsp;&nbsp;&nbsp;&nbsp;SceneManager.call(NEXT_SCENE) <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Previous Scene <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def previous_scene <br />
&nbsp;&nbsp;&nbsp;&nbsp;Audio.bgm_fade(1500) if CREDITS_BGM != '' <br />
&nbsp;&nbsp;&nbsp;&nbsp;SceneManager.call(PREVIOUS_SCENE) <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Dispose Background <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def dispose_background <br />
&nbsp;&nbsp;&nbsp;&nbsp;unless @background.nil? <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@background.bitmap.dispose <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@background.dispose <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;@credits.bitmap.dispose <br />
&nbsp;&nbsp;&nbsp;&nbsp;@credits.dispose <br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
end</code></div></div>
</div></div><span style="color: red;"><span style="font-weight: bold;">Screeny:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><img class="postimage" src="https://i.imgur.com/4PXhiiz.png" border="0" alt="[Obrazek: 4PXhiiz.png]" /><br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Skrypt nie zadziała jeżeli po "_CREDIT_" <span style="font-style: italic;">(Linijka 88)</span> jest niepotrzebna spacja.<br />
Skrypt wymaga obrazka <span style="font-weight: bold;">logo</span>, którego należy umieścić w folderze "Graphics\Pictures".<br />
Instrukcja jest podana w skrypcie.<br />
Skrypt należy umieścić w edytorze skryptów, pod "Materials".<br />
<br />
Przykładowy obrazek <span style="font-weight: bold;">logo</span>:<br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><img class="postimage" src="https://i.imgur.com/jkYFpXz.png" border="0" alt="[Obrazek: jkYFpXz.png]" /></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Rozdawanie Punktów]]></title>
			<link>https://forum.ultimateam.pl/Thread-VXAce-Rozdawanie-Punkt%C3%B3w</link>
			<pubDate>Sat, 16 Jun 2018 23:28:55 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-VXAce-Rozdawanie-Punkt%C3%B3w</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Rozdawanie punktów co poziom ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt umożliwia rozwój postaci poprzez zwiększanie jej statystyk dzięki dodatkowym punktom, które otrzymuje po uzyskaniu poziomu. <br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Ayene<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>#============================================================================== <br />
# Rozdawanie punktów co poziom [VXAce]&nbsp;&nbsp;&nbsp;&nbsp;<br />
#============================================================================== <br />
# Autor: Ayene <br />
# www.ultimateam.pl <br />
#============================================================================== <br />
# Skrypt umożliwia rozwój postaci poprzez zwiększanie jej statystyk dzięki <br />
# dodatkowym punktom, które otrzymuje po uzyskaniu poziomu. <br />
# Instalacja: Umieść skrypt nad Main. <br />
#============================================================================== <br />
# By wywołać okno rozdawania punktów użyj polecenia 'Script' i wpisz: <br />
#&nbsp;&nbsp;&nbsp;&nbsp; SceneManager.call(Scene_Upgrade) <br />
#============================================================================== <br />
<br />
module Ayene <br />
&nbsp;&nbsp;POINTS_PER_LEVEL = 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# liczba punktów co poziom <br />
&nbsp;&nbsp;IN_MENU = true&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# widoczne w menu <br />
&nbsp;&nbsp;COMMAND_UPGRADE = 'Rozdaj'&nbsp;&nbsp;&nbsp;&nbsp;# nazwa komendy w menu <br />
end <br />
<br />
#============================================================================== <br />
# ** Window_Points <br />
#============================================================================== <br />
<br />
class Window_Points &lt; Window_Selectable <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Object Initialization <br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; actor : actor <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def initialize(actor) <br />
&nbsp;&nbsp;&nbsp;&nbsp;super(97, 33, 350, 350) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@actor = actor <br />
&nbsp;&nbsp;&nbsp;&nbsp;refresh <br />
&nbsp;&nbsp;&nbsp;&nbsp;activate <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Actor <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def actor=(actor) <br />
&nbsp;&nbsp;&nbsp;&nbsp;return if @actor == actor <br />
&nbsp;&nbsp;&nbsp;&nbsp;@actor = actor <br />
&nbsp;&nbsp;&nbsp;&nbsp;refresh <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Refresh <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def refresh <br />
&nbsp;&nbsp;&nbsp;&nbsp;contents.clear <br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_block1&nbsp;&nbsp; (line_height * 0)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_horz_line(line_height * 4) <br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_block2&nbsp;&nbsp; (line_height * 5)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Draw Block 1 <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def draw_block1(y)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_actor_face(@actor, 8, y)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_actor_name(@actor, 150, y + line_height * 0 + 12)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_actor_level(@actor, 150, y + line_height * 1 + 12) <br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_actor_points(@actor, 150, y + line_height * 2 + 12) <br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_actor_graphic(@actor, 270, y + line_height * 3) <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Draw Block 2 <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def draw_block2(y) <br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_parameters(32, y) <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Draw Horizontal Line <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def draw_horz_line(y) <br />
&nbsp;&nbsp;&nbsp;&nbsp;line_y = y + line_height / 2 - 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;contents.fill_rect(0, line_y, contents_width, 2, line_color) <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Line Color <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def line_color <br />
&nbsp;&nbsp;&nbsp;&nbsp;color = normal_color <br />
&nbsp;&nbsp;&nbsp;&nbsp;color.alpha = 48 <br />
&nbsp;&nbsp;&nbsp;&nbsp;color <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Draw Parameters <br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; x&nbsp;&nbsp;&nbsp;&nbsp; : draw spot x-coordinate <br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; y&nbsp;&nbsp;&nbsp;&nbsp; : draw spot y-coordinate <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def draw_parameters(x, y) <br />
&nbsp;&nbsp;&nbsp;&nbsp;8.times {|i| draw_actor_param(@actor, x, y + line_height * i, i) } <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Draw Level <br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; actor : actor <br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; x&nbsp;&nbsp;&nbsp;&nbsp; : draw spot x-coordinate <br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; y&nbsp;&nbsp;&nbsp;&nbsp; : draw spot y-coordinate <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def draw_actor_level(actor, x, y) <br />
&nbsp;&nbsp;&nbsp;&nbsp;change_color(system_color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_text(x, y, 64, line_height, Vocab::level) <br />
&nbsp;&nbsp;&nbsp;&nbsp;change_color(normal_color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_text(x + 64, y, 24, line_height, actor.level, 2) <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Draw Points <br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; actor : actor <br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; x&nbsp;&nbsp;&nbsp;&nbsp; : draw spot x-coordinate <br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; y&nbsp;&nbsp;&nbsp;&nbsp; : draw spot y-coordinate <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def draw_actor_points(actor, x, y) <br />
&nbsp;&nbsp;&nbsp;&nbsp;change_color(system_color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_text(x, y, 64, line_height, "Punkty") <br />
&nbsp;&nbsp;&nbsp;&nbsp;change_color(normal_color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_text(x + 64, y, 24, line_height, actor.points, 2) <br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
end <br />
<br />
#============================================================================== <br />
# ** Window_PointsCommand <br />
#============================================================================== <br />
<br />
class Window_PointsCommand &lt; Window_Command <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Object Initialization <br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; x : window X coordinate <br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; y : window Y coordinate <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def initialize(x, y) <br />
&nbsp;&nbsp;&nbsp;&nbsp;super(x, y) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@actor = nil <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.opacity = 0 <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Actor <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def actor=(actor) <br />
&nbsp;&nbsp;&nbsp;&nbsp;return if @actor == actor <br />
&nbsp;&nbsp;&nbsp;&nbsp;@actor = actor <br />
&nbsp;&nbsp;&nbsp;&nbsp;refresh <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Make Command List <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def make_command_list <br />
&nbsp;&nbsp;&nbsp;&nbsp;8.times {|i| add_command('+', :addpoint, commands_enabled)} <br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Commands Enabled <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def commands_enabled <br />
&nbsp;&nbsp;&nbsp;&nbsp;return unless @actor <br />
&nbsp;&nbsp;&nbsp;&nbsp;@actor.points &gt; 0 <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Window Width <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def window_width <br />
&nbsp;&nbsp;&nbsp;&nbsp;return 48 <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Alignment <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def alignment <br />
&nbsp;&nbsp;&nbsp;&nbsp;return 1 <br />
&nbsp;&nbsp;end <br />
end <br />
<br />
#============================================================================== <br />
# ** Scene_Upgrade <br />
#============================================================================== <br />
<br />
class Scene_Upgrade &lt; Scene_MenuBase <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Start processing <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def start <br />
&nbsp;&nbsp;&nbsp;&nbsp;super <br />
&nbsp;&nbsp;&nbsp;&nbsp;create_status_window <br />
&nbsp;&nbsp;&nbsp;&nbsp;create_command_window <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Create Status Window <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def create_status_window <br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window = Window_Points.new(@actor) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window.viewport = @viewport <br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window.actor = @actor <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Create Command Window <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def create_command_window <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window = Window_PointsCommand.new(300, 153) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.viewport = @viewport <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.actor = @actor <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.set_handler(:addpoint, method(:command_add)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.set_handler(:cancel,&nbsp;&nbsp; method(:return_scene)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.set_handler(:pagedown, method(:next_actor)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.set_handler(:pageup,&nbsp;&nbsp; method(:prev_actor)) <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Command Add Points <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def command_add <br />
&nbsp;&nbsp;&nbsp;&nbsp;index = @command_window.index <br />
&nbsp;&nbsp;&nbsp;&nbsp;value = index == 0 || index == 1 ? 10 : 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;@actor.add_param(index, value) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@actor.points -= 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window.refresh <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.refresh <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.activate <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * On Actor Change <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def on_actor_change <br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window.actor = @actor <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.actor = @actor <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.activate <br />
&nbsp;&nbsp;end <br />
end <br />
<br />
#============================================================================== <br />
# ** Game_Actor <br />
#============================================================================== <br />
<br />
class Game_Actor &lt; Game_Battler <br />
&nbsp;&nbsp;include Ayene <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Public Instance Variables <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;attr_accessor :points&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Setup (alias) <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;alias aye_gamac_setup setup <br />
&nbsp;&nbsp;def setup(*args) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@points = 0 <br />
&nbsp;&nbsp;&nbsp;&nbsp;aye_gamac_setup(*args) <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Level Up (alias) <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;alias aye_gamac_level_up level_up <br />
&nbsp;&nbsp;def level_up <br />
&nbsp;&nbsp;&nbsp;&nbsp;aye_gamac_level_up <br />
&nbsp;&nbsp;&nbsp;&nbsp;@points += POINTS_PER_LEVEL <br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Level Down (alias) <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;alias aye_gamac_level_down level_down <br />
&nbsp;&nbsp;def level_down <br />
&nbsp;&nbsp;&nbsp;&nbsp;aye_gamac_level_down <br />
&nbsp;&nbsp;&nbsp;&nbsp;@points -= [POINTS_PER_LEVEL, @points].min <br />
&nbsp;&nbsp;end <br />
end <br />
<br />
if Ayene::IN_MENU <br />
#============================================================================== <br />
# ** Window_MenuCommand <br />
#============================================================================== <br />
<br />
class Window_MenuCommand &lt; Window_Command <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Add Main Commands (alias) <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;alias aye_wincom_addmaincom add_main_commands <br />
&nbsp;&nbsp;def add_main_commands <br />
&nbsp;&nbsp;&nbsp;&nbsp;aye_wincom_addmaincom <br />
&nbsp;&nbsp;&nbsp;&nbsp;add_command(Ayene::COMMAND_UPGRADE, :upgrade, main_commands_enabled) <br />
&nbsp;&nbsp;end <br />
end <br />
<br />
#============================================================================== <br />
# ** Scene_Menu <br />
#============================================================================== <br />
<br />
class Scene_Menu &lt; Scene_MenuBase <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Create Command Window (alias) <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;alias aye_scmen_crcommwin create_command_window <br />
&nbsp;&nbsp;def create_command_window <br />
&nbsp;&nbsp;&nbsp;&nbsp;aye_scmen_crcommwin <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.set_handler(:upgrade,&nbsp;&nbsp; method(:command_personal))&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * On Personal OK (alias) <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;alias aye_scmen_conperok on_personal_ok <br />
&nbsp;&nbsp;def on_personal_ok <br />
&nbsp;&nbsp;&nbsp;&nbsp;aye_scmen_conperok <br />
&nbsp;&nbsp;&nbsp;&nbsp;case @command_window.current_symbol <br />
&nbsp;&nbsp;&nbsp;&nbsp;when :upgrade <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SceneManager.call(Scene_Upgrade) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
end <br />
end</code></div></div>
</div></div><span style="color: red;"><span style="font-weight: bold;">Screeny:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><img class="postimage" src="https://i.imgur.com/TVkIJik.png" border="0" alt="[Obrazek: TVkIJik.png]" /><br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Instrukcja jest podana w skrypcie.<br />
Skrypt należy umieścić w edytorze skryptów, pod "Materials".]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Rozdawanie punktów co poziom ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt umożliwia rozwój postaci poprzez zwiększanie jej statystyk dzięki dodatkowym punktom, które otrzymuje po uzyskaniu poziomu. <br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Ayene<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>#============================================================================== <br />
# Rozdawanie punktów co poziom [VXAce]&nbsp;&nbsp;&nbsp;&nbsp;<br />
#============================================================================== <br />
# Autor: Ayene <br />
# www.ultimateam.pl <br />
#============================================================================== <br />
# Skrypt umożliwia rozwój postaci poprzez zwiększanie jej statystyk dzięki <br />
# dodatkowym punktom, które otrzymuje po uzyskaniu poziomu. <br />
# Instalacja: Umieść skrypt nad Main. <br />
#============================================================================== <br />
# By wywołać okno rozdawania punktów użyj polecenia 'Script' i wpisz: <br />
#&nbsp;&nbsp;&nbsp;&nbsp; SceneManager.call(Scene_Upgrade) <br />
#============================================================================== <br />
<br />
module Ayene <br />
&nbsp;&nbsp;POINTS_PER_LEVEL = 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# liczba punktów co poziom <br />
&nbsp;&nbsp;IN_MENU = true&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# widoczne w menu <br />
&nbsp;&nbsp;COMMAND_UPGRADE = 'Rozdaj'&nbsp;&nbsp;&nbsp;&nbsp;# nazwa komendy w menu <br />
end <br />
<br />
#============================================================================== <br />
# ** Window_Points <br />
#============================================================================== <br />
<br />
class Window_Points &lt; Window_Selectable <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Object Initialization <br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; actor : actor <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def initialize(actor) <br />
&nbsp;&nbsp;&nbsp;&nbsp;super(97, 33, 350, 350) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@actor = actor <br />
&nbsp;&nbsp;&nbsp;&nbsp;refresh <br />
&nbsp;&nbsp;&nbsp;&nbsp;activate <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Actor <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def actor=(actor) <br />
&nbsp;&nbsp;&nbsp;&nbsp;return if @actor == actor <br />
&nbsp;&nbsp;&nbsp;&nbsp;@actor = actor <br />
&nbsp;&nbsp;&nbsp;&nbsp;refresh <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Refresh <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def refresh <br />
&nbsp;&nbsp;&nbsp;&nbsp;contents.clear <br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_block1&nbsp;&nbsp; (line_height * 0)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_horz_line(line_height * 4) <br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_block2&nbsp;&nbsp; (line_height * 5)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Draw Block 1 <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def draw_block1(y)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_actor_face(@actor, 8, y)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_actor_name(@actor, 150, y + line_height * 0 + 12)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_actor_level(@actor, 150, y + line_height * 1 + 12) <br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_actor_points(@actor, 150, y + line_height * 2 + 12) <br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_actor_graphic(@actor, 270, y + line_height * 3) <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Draw Block 2 <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def draw_block2(y) <br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_parameters(32, y) <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Draw Horizontal Line <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def draw_horz_line(y) <br />
&nbsp;&nbsp;&nbsp;&nbsp;line_y = y + line_height / 2 - 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;contents.fill_rect(0, line_y, contents_width, 2, line_color) <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Line Color <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def line_color <br />
&nbsp;&nbsp;&nbsp;&nbsp;color = normal_color <br />
&nbsp;&nbsp;&nbsp;&nbsp;color.alpha = 48 <br />
&nbsp;&nbsp;&nbsp;&nbsp;color <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Draw Parameters <br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; x&nbsp;&nbsp;&nbsp;&nbsp; : draw spot x-coordinate <br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; y&nbsp;&nbsp;&nbsp;&nbsp; : draw spot y-coordinate <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def draw_parameters(x, y) <br />
&nbsp;&nbsp;&nbsp;&nbsp;8.times {|i| draw_actor_param(@actor, x, y + line_height * i, i) } <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Draw Level <br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; actor : actor <br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; x&nbsp;&nbsp;&nbsp;&nbsp; : draw spot x-coordinate <br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; y&nbsp;&nbsp;&nbsp;&nbsp; : draw spot y-coordinate <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def draw_actor_level(actor, x, y) <br />
&nbsp;&nbsp;&nbsp;&nbsp;change_color(system_color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_text(x, y, 64, line_height, Vocab::level) <br />
&nbsp;&nbsp;&nbsp;&nbsp;change_color(normal_color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_text(x + 64, y, 24, line_height, actor.level, 2) <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Draw Points <br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; actor : actor <br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; x&nbsp;&nbsp;&nbsp;&nbsp; : draw spot x-coordinate <br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; y&nbsp;&nbsp;&nbsp;&nbsp; : draw spot y-coordinate <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def draw_actor_points(actor, x, y) <br />
&nbsp;&nbsp;&nbsp;&nbsp;change_color(system_color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_text(x, y, 64, line_height, "Punkty") <br />
&nbsp;&nbsp;&nbsp;&nbsp;change_color(normal_color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_text(x + 64, y, 24, line_height, actor.points, 2) <br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
end <br />
<br />
#============================================================================== <br />
# ** Window_PointsCommand <br />
#============================================================================== <br />
<br />
class Window_PointsCommand &lt; Window_Command <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Object Initialization <br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; x : window X coordinate <br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; y : window Y coordinate <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def initialize(x, y) <br />
&nbsp;&nbsp;&nbsp;&nbsp;super(x, y) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@actor = nil <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.opacity = 0 <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Actor <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def actor=(actor) <br />
&nbsp;&nbsp;&nbsp;&nbsp;return if @actor == actor <br />
&nbsp;&nbsp;&nbsp;&nbsp;@actor = actor <br />
&nbsp;&nbsp;&nbsp;&nbsp;refresh <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Make Command List <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def make_command_list <br />
&nbsp;&nbsp;&nbsp;&nbsp;8.times {|i| add_command('+', :addpoint, commands_enabled)} <br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Commands Enabled <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def commands_enabled <br />
&nbsp;&nbsp;&nbsp;&nbsp;return unless @actor <br />
&nbsp;&nbsp;&nbsp;&nbsp;@actor.points &gt; 0 <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Window Width <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def window_width <br />
&nbsp;&nbsp;&nbsp;&nbsp;return 48 <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Alignment <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def alignment <br />
&nbsp;&nbsp;&nbsp;&nbsp;return 1 <br />
&nbsp;&nbsp;end <br />
end <br />
<br />
#============================================================================== <br />
# ** Scene_Upgrade <br />
#============================================================================== <br />
<br />
class Scene_Upgrade &lt; Scene_MenuBase <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Start processing <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def start <br />
&nbsp;&nbsp;&nbsp;&nbsp;super <br />
&nbsp;&nbsp;&nbsp;&nbsp;create_status_window <br />
&nbsp;&nbsp;&nbsp;&nbsp;create_command_window <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Create Status Window <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def create_status_window <br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window = Window_Points.new(@actor) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window.viewport = @viewport <br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window.actor = @actor <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Create Command Window <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def create_command_window <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window = Window_PointsCommand.new(300, 153) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.viewport = @viewport <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.actor = @actor <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.set_handler(:addpoint, method(:command_add)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.set_handler(:cancel,&nbsp;&nbsp; method(:return_scene)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.set_handler(:pagedown, method(:next_actor)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.set_handler(:pageup,&nbsp;&nbsp; method(:prev_actor)) <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Command Add Points <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def command_add <br />
&nbsp;&nbsp;&nbsp;&nbsp;index = @command_window.index <br />
&nbsp;&nbsp;&nbsp;&nbsp;value = index == 0 || index == 1 ? 10 : 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;@actor.add_param(index, value) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@actor.points -= 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window.refresh <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.refresh <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.activate <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * On Actor Change <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def on_actor_change <br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window.actor = @actor <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.actor = @actor <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.activate <br />
&nbsp;&nbsp;end <br />
end <br />
<br />
#============================================================================== <br />
# ** Game_Actor <br />
#============================================================================== <br />
<br />
class Game_Actor &lt; Game_Battler <br />
&nbsp;&nbsp;include Ayene <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Public Instance Variables <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;attr_accessor :points&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Setup (alias) <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;alias aye_gamac_setup setup <br />
&nbsp;&nbsp;def setup(*args) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@points = 0 <br />
&nbsp;&nbsp;&nbsp;&nbsp;aye_gamac_setup(*args) <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Level Up (alias) <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;alias aye_gamac_level_up level_up <br />
&nbsp;&nbsp;def level_up <br />
&nbsp;&nbsp;&nbsp;&nbsp;aye_gamac_level_up <br />
&nbsp;&nbsp;&nbsp;&nbsp;@points += POINTS_PER_LEVEL <br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Level Down (alias) <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;alias aye_gamac_level_down level_down <br />
&nbsp;&nbsp;def level_down <br />
&nbsp;&nbsp;&nbsp;&nbsp;aye_gamac_level_down <br />
&nbsp;&nbsp;&nbsp;&nbsp;@points -= [POINTS_PER_LEVEL, @points].min <br />
&nbsp;&nbsp;end <br />
end <br />
<br />
if Ayene::IN_MENU <br />
#============================================================================== <br />
# ** Window_MenuCommand <br />
#============================================================================== <br />
<br />
class Window_MenuCommand &lt; Window_Command <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Add Main Commands (alias) <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;alias aye_wincom_addmaincom add_main_commands <br />
&nbsp;&nbsp;def add_main_commands <br />
&nbsp;&nbsp;&nbsp;&nbsp;aye_wincom_addmaincom <br />
&nbsp;&nbsp;&nbsp;&nbsp;add_command(Ayene::COMMAND_UPGRADE, :upgrade, main_commands_enabled) <br />
&nbsp;&nbsp;end <br />
end <br />
<br />
#============================================================================== <br />
# ** Scene_Menu <br />
#============================================================================== <br />
<br />
class Scene_Menu &lt; Scene_MenuBase <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Create Command Window (alias) <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;alias aye_scmen_crcommwin create_command_window <br />
&nbsp;&nbsp;def create_command_window <br />
&nbsp;&nbsp;&nbsp;&nbsp;aye_scmen_crcommwin <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.set_handler(:upgrade,&nbsp;&nbsp; method(:command_personal))&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * On Personal OK (alias) <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;alias aye_scmen_conperok on_personal_ok <br />
&nbsp;&nbsp;def on_personal_ok <br />
&nbsp;&nbsp;&nbsp;&nbsp;aye_scmen_conperok <br />
&nbsp;&nbsp;&nbsp;&nbsp;case @command_window.current_symbol <br />
&nbsp;&nbsp;&nbsp;&nbsp;when :upgrade <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SceneManager.call(Scene_Upgrade) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
end <br />
end</code></div></div>
</div></div><span style="color: red;"><span style="font-weight: bold;">Screeny:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><img class="postimage" src="https://i.imgur.com/TVkIJik.png" border="0" alt="[Obrazek: TVkIJik.png]" /><br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Instrukcja jest podana w skrypcie.<br />
Skrypt należy umieścić w edytorze skryptów, pod "Materials".]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Kolor Jakości Przedmiotów]]></title>
			<link>https://forum.ultimateam.pl/Thread-VXAce-Kolor-Jako%C5%9Bci-Przedmiot%C3%B3w</link>
			<pubDate>Wed, 13 Jun 2018 13:48:19 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-VXAce-Kolor-Jako%C5%9Bci-Przedmiot%C3%B3w</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Basic Item Quality Colors of Awesome ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt zmienia kolory nazw wybranych elementów <span style="font-style: italic;">(broni, pancerza, przedmiotu, umiejętności)</span>, dzięki czemu możemy podzielić je na <span style="color: orange;">epickie</span>, <span style="color: purple;">legendarne</span> itp.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Leongon <br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
Shadow<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>module IQC_Configs <br />
################################################################################&#8203;<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Basic Item Quality Colors of Awesome VX v1.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
################################################################################&#8203;<br />
# Author: Leongon&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
# Licence: Free for commercial and non-commercial proyects, just credit.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
################################################################################&#8203;<br />
<br />
################################################################################&#8203;<br />
# Instrukcje #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
################&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
# Ustawianie jakości przedmiotu. --------------------------------------------- # <br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
# Umieść to w notatce w broni,pancerzu,przedmiocie bądź umiejętności:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
# &lt;IQC jakość&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
#&nbsp;&nbsp;PRZYKŁAD:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
# &lt;IQC epic&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
#"jakość" oznacza jakiej jakości jest przedmiot rzadki, epicki czy uber.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
# Przypisywanie jakości Przedmiotom&nbsp;&nbsp; ---------------------------------------- # <br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
# Poniżej w Obszarze Konfiguracji, znajdziesz liste kolorów od 0 do 31.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
# Wprowadź nazwę pomiędzy "" aby stworzyć nowy rodzaj jakości&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
################################################################################&#8203;<br />
#Obszar konfiguracji # <br />
###################### <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
&nbsp;&nbsp;IQC_quality =&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Nie ruszaj tej lini. <br />
&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Nie ruszaj tej lini. <br />
&nbsp;&nbsp;0 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
&nbsp;&nbsp;1 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
&nbsp;&nbsp;2 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
&nbsp;&nbsp;3 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
&nbsp;&nbsp;4 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
&nbsp;&nbsp;5 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
&nbsp;&nbsp;6 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
&nbsp;&nbsp;7 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
&nbsp;&nbsp;8 =&gt; "poor",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
&nbsp;&nbsp;9 =&gt; "rare",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
&nbsp;&nbsp;10 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;11 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;12 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;13 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;14 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;15 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;16 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;17 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;18 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;19 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;20 =&gt; "legendary", # <br />
&nbsp;&nbsp;21 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;22 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;23 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;24 =&gt; "uncommon",&nbsp;&nbsp;# <br />
&nbsp;&nbsp;25 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;26 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;27 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;28 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;29 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;30 =&gt; "epic",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;31 =&gt; ""&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Nie ruszaj tej lini. <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
###################### <br />
#Koniec konfiguracji # <br />
###################### <br />
end <br />
<br />
#----------------------------------------------------------------------- <br />
# Nie edytuj kodu poniżej chyba że wiesz co robisz!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
#-----------------------------------------------------------------------<br />
module LNR <br />
&nbsp;&nbsp;def get_single_for(note_field,tag_name) <br />
&nbsp;&nbsp;&nbsp;&nbsp;lines = note_field.split("&#92;n") <br />
&nbsp;&nbsp;&nbsp;&nbsp;for line in lines <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if line[0,1].eql?("&lt;") <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line2=line.split(/[&lt;&gt; ]/) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if line2[1].eql?(tag_name) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return line2[2] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
end <br />
#-----------------------------------------------------------------------<br />
class Window_Base &lt; Window <br />
&nbsp;&nbsp;include LNR <br />
&nbsp;&nbsp;include IQC_Configs&nbsp;&nbsp;<br />
&nbsp;&nbsp;def draw_item_name(item, x, y, enabled = true, width = 172) <br />
&nbsp;&nbsp;&nbsp;&nbsp;return unless item <br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_icon(item.icon_index, x, y, enabled) <br />
&nbsp;&nbsp;&nbsp;&nbsp;if item.note.include?("&lt;IQC ") <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;quality = get_single_for(item.note,"IQC") <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;color = text_color(IQC_quality.index(quality).to_i) <br />
&nbsp;&nbsp;&nbsp;&nbsp;else <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;color = normal_color <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;change_color(color, enabled) <br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_text(x + 24, y, width, line_height, item.name) <br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
end</code></div></div>
</div></div><span style="color: red;"><span style="font-weight: bold;">Screeny:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><img class="postimage" src="https://i.imgur.com/VcAgRoN.png" border="0" alt="[Obrazek: VcAgRoN.png]" /><br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Kolory które można wykorzystać są powiązane z windowskinem.<br />
Instrukcja jest podana w skrypcie.<br />
Skrypt należy umieścić w edytorze skryptów, pod "Materials".]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Basic Item Quality Colors of Awesome ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt zmienia kolory nazw wybranych elementów <span style="font-style: italic;">(broni, pancerza, przedmiotu, umiejętności)</span>, dzięki czemu możemy podzielić je na <span style="color: orange;">epickie</span>, <span style="color: purple;">legendarne</span> itp.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Leongon <br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
Shadow<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>module IQC_Configs <br />
################################################################################&#8203;<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Basic Item Quality Colors of Awesome VX v1.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
################################################################################&#8203;<br />
# Author: Leongon&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
# Licence: Free for commercial and non-commercial proyects, just credit.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
################################################################################&#8203;<br />
<br />
################################################################################&#8203;<br />
# Instrukcje #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
################&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
# Ustawianie jakości przedmiotu. --------------------------------------------- # <br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
# Umieść to w notatce w broni,pancerzu,przedmiocie bądź umiejętności:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
# &lt;IQC jakość&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
#&nbsp;&nbsp;PRZYKŁAD:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
# &lt;IQC epic&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
#"jakość" oznacza jakiej jakości jest przedmiot rzadki, epicki czy uber.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
# Przypisywanie jakości Przedmiotom&nbsp;&nbsp; ---------------------------------------- # <br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
# Poniżej w Obszarze Konfiguracji, znajdziesz liste kolorów od 0 do 31.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
# Wprowadź nazwę pomiędzy "" aby stworzyć nowy rodzaj jakości&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
################################################################################&#8203;<br />
#Obszar konfiguracji # <br />
###################### <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
&nbsp;&nbsp;IQC_quality =&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Nie ruszaj tej lini. <br />
&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Nie ruszaj tej lini. <br />
&nbsp;&nbsp;0 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
&nbsp;&nbsp;1 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
&nbsp;&nbsp;2 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
&nbsp;&nbsp;3 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
&nbsp;&nbsp;4 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
&nbsp;&nbsp;5 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
&nbsp;&nbsp;6 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
&nbsp;&nbsp;7 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
&nbsp;&nbsp;8 =&gt; "poor",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
&nbsp;&nbsp;9 =&gt; "rare",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
&nbsp;&nbsp;10 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;11 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;12 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;13 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;14 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;15 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;16 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;17 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;18 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;19 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;20 =&gt; "legendary", # <br />
&nbsp;&nbsp;21 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;22 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;23 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;24 =&gt; "uncommon",&nbsp;&nbsp;# <br />
&nbsp;&nbsp;25 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;26 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;27 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;28 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;29 =&gt; "",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;30 =&gt; "epic",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# <br />
&nbsp;&nbsp;31 =&gt; ""&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Nie ruszaj tej lini. <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # <br />
###################### <br />
#Koniec konfiguracji # <br />
###################### <br />
end <br />
<br />
#----------------------------------------------------------------------- <br />
# Nie edytuj kodu poniżej chyba że wiesz co robisz!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
#-----------------------------------------------------------------------<br />
module LNR <br />
&nbsp;&nbsp;def get_single_for(note_field,tag_name) <br />
&nbsp;&nbsp;&nbsp;&nbsp;lines = note_field.split("&#92;n") <br />
&nbsp;&nbsp;&nbsp;&nbsp;for line in lines <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if line[0,1].eql?("&lt;") <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line2=line.split(/[&lt;&gt; ]/) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if line2[1].eql?(tag_name) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return line2[2] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
end <br />
#-----------------------------------------------------------------------<br />
class Window_Base &lt; Window <br />
&nbsp;&nbsp;include LNR <br />
&nbsp;&nbsp;include IQC_Configs&nbsp;&nbsp;<br />
&nbsp;&nbsp;def draw_item_name(item, x, y, enabled = true, width = 172) <br />
&nbsp;&nbsp;&nbsp;&nbsp;return unless item <br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_icon(item.icon_index, x, y, enabled) <br />
&nbsp;&nbsp;&nbsp;&nbsp;if item.note.include?("&lt;IQC ") <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;quality = get_single_for(item.note,"IQC") <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;color = text_color(IQC_quality.index(quality).to_i) <br />
&nbsp;&nbsp;&nbsp;&nbsp;else <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;color = normal_color <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;change_color(color, enabled) <br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_text(x + 24, y, width, line_height, item.name) <br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
end</code></div></div>
</div></div><span style="color: red;"><span style="font-weight: bold;">Screeny:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><img class="postimage" src="https://i.imgur.com/VcAgRoN.png" border="0" alt="[Obrazek: VcAgRoN.png]" /><br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Kolory które można wykorzystać są powiązane z windowskinem.<br />
Instrukcja jest podana w skrypcie.<br />
Skrypt należy umieścić w edytorze skryptów, pod "Materials".]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Postacie z XP do VXA]]></title>
			<link>https://forum.ultimateam.pl/Thread-VXAce-Postacie-z-XP-do-VXA</link>
			<pubDate>Sat, 06 Aug 2016 09:36:55 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-VXAce-Postacie-z-XP-do-VXA</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ XP Characters on VX/VXAce ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt pozwala na wczytywanie charsetów z XP do VXA bez użycia conventera wystarczy, że w nazwie charsetu da się symbol "&#36;xp" np "&#36;xpChris". <br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Melosx<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>#==============================================================================<br />
# ** MSX - XP Characters on VX/VXAce<br />
#==============================================================================<br />
# Author: Melosx<br />
# Notes translated by ShinGamix<br />
# http://www.rpgmakervxace.net/index.php?/user/1272-shingamix/<br />
# Version: 1.0<br />
# Compatible with VX and VXAce<br />
#<br />
#==============================================================================<br />
# * Description<br />
# -----------------------------------------------------------------------------<br />
# This script allows you to use xp in vx chara simply inserting the tag<br />
# &#36; xp<br />
# Before the name of the file.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
# You can then use the normal VX / VXAce along with those of XP.<br />
#<br />
#==============================================================================<br />
# * Instructions<br />
# -----------------------------------------------------------------------------<br />
# Place the script under Materials and above Main. Add to chara of XP<br />
# &#36; Xp before the tag name.<br />
#<br />
#==============================================================================<br />
<br />
#==============================================================================<br />
# ** Sprite_Character<br />
#==============================================================================<br />
<br />
class Sprite_Character &lt; Sprite_Base<br />
 <br />
&nbsp;&nbsp;def update_bitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;if @tile_id != @character.tile_id or<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@character_name != @character.character_name or<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@character_index != @character.character_index<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@tile_id = @character.tile_id<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@character_name = @character.character_name<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@character_index = @character.character_index<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @tile_id &gt; 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sx = (@tile_id / 128 % 2 * 8 + @tile_id % 8) * 32;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sy = @tile_id % 256 / 8 % 16 * 32;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.bitmap = tileset_bitmap(@tile_id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.src_rect.set(sx, sy, 32, 32)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.ox = 16<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.oy = 32<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.bitmap = Cache.character(@character_name)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sign = @character_name[/^[!&#36;]./]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if sign != nil and sign.include?('&#36;')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@cw = bitmap.width / 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@ch = bitmap.height / 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@cw = bitmap.width / 12<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@ch = bitmap.height / 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @character_name != nil and @character_name.include?('&#36;xp')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@cw = bitmap.width / 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@ch = bitmap.height / 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.ox = @cw / 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.oy = @ch<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;def update_src_rect<br />
&nbsp;&nbsp;&nbsp;&nbsp;if @character_name != nil and @character_name.include?('&#36;xp')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @tile_id == 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pattern = @character.pattern &gt; 0 ? @character.pattern - 1 : 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sx = pattern * @cw<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sy = (@character.direction - 2) / 2 * @ch<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.src_rect.set(sx, sy, @cw, @ch)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @tile_id == 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index = @character.character_index<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pattern = @character.pattern &lt; 3 ? @character.pattern : 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sx = (index % 4 * 3 + pattern) * @cw<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.src_rect.set(sx, sy, @cw, @ch)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
#==========================================================================<br />
# ** Window_Base<br />
#==========================================================================<br />
<br />
class Window_Base &lt; Window<br />
<br />
&nbsp;&nbsp;def draw_character(character_name, character_index, x, y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return if character_name == nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;bitmap = Cache.character(character_name)<br />
&nbsp;&nbsp;&nbsp;&nbsp;sign = character_name[/^[!&#36;]./]<br />
&nbsp;&nbsp;&nbsp;&nbsp;if character_name != nil and character_name.include?('&#36;xp')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cw = bitmap.width / 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ch = bitmap.height / 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n = character_index<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;src_rect = Rect.new(0, 0, cw, ch)<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if sign != nil and sign.include?('&#36;')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cw = bitmap.width / 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ch = bitmap.height / 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cw = bitmap.width / 12<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ch = bitmap.height / 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n = character_index<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)<br />
&nbsp;&nbsp;end<br />
 <br />
end</code></div></div>
</div></div>]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ XP Characters on VX/VXAce ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt pozwala na wczytywanie charsetów z XP do VXA bez użycia conventera wystarczy, że w nazwie charsetu da się symbol "&#36;xp" np "&#36;xpChris". <br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Melosx<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>#==============================================================================<br />
# ** MSX - XP Characters on VX/VXAce<br />
#==============================================================================<br />
# Author: Melosx<br />
# Notes translated by ShinGamix<br />
# http://www.rpgmakervxace.net/index.php?/user/1272-shingamix/<br />
# Version: 1.0<br />
# Compatible with VX and VXAce<br />
#<br />
#==============================================================================<br />
# * Description<br />
# -----------------------------------------------------------------------------<br />
# This script allows you to use xp in vx chara simply inserting the tag<br />
# &#36; xp<br />
# Before the name of the file.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
# You can then use the normal VX / VXAce along with those of XP.<br />
#<br />
#==============================================================================<br />
# * Instructions<br />
# -----------------------------------------------------------------------------<br />
# Place the script under Materials and above Main. Add to chara of XP<br />
# &#36; Xp before the tag name.<br />
#<br />
#==============================================================================<br />
<br />
#==============================================================================<br />
# ** Sprite_Character<br />
#==============================================================================<br />
<br />
class Sprite_Character &lt; Sprite_Base<br />
 <br />
&nbsp;&nbsp;def update_bitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;if @tile_id != @character.tile_id or<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@character_name != @character.character_name or<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@character_index != @character.character_index<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@tile_id = @character.tile_id<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@character_name = @character.character_name<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@character_index = @character.character_index<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @tile_id &gt; 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sx = (@tile_id / 128 % 2 * 8 + @tile_id % 8) * 32;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sy = @tile_id % 256 / 8 % 16 * 32;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.bitmap = tileset_bitmap(@tile_id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.src_rect.set(sx, sy, 32, 32)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.ox = 16<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.oy = 32<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.bitmap = Cache.character(@character_name)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sign = @character_name[/^[!&#36;]./]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if sign != nil and sign.include?('&#36;')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@cw = bitmap.width / 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@ch = bitmap.height / 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@cw = bitmap.width / 12<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@ch = bitmap.height / 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @character_name != nil and @character_name.include?('&#36;xp')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@cw = bitmap.width / 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@ch = bitmap.height / 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.ox = @cw / 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.oy = @ch<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;def update_src_rect<br />
&nbsp;&nbsp;&nbsp;&nbsp;if @character_name != nil and @character_name.include?('&#36;xp')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @tile_id == 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pattern = @character.pattern &gt; 0 ? @character.pattern - 1 : 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sx = pattern * @cw<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sy = (@character.direction - 2) / 2 * @ch<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.src_rect.set(sx, sy, @cw, @ch)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @tile_id == 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index = @character.character_index<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pattern = @character.pattern &lt; 3 ? @character.pattern : 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sx = (index % 4 * 3 + pattern) * @cw<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.src_rect.set(sx, sy, @cw, @ch)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
#==========================================================================<br />
# ** Window_Base<br />
#==========================================================================<br />
<br />
class Window_Base &lt; Window<br />
<br />
&nbsp;&nbsp;def draw_character(character_name, character_index, x, y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return if character_name == nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;bitmap = Cache.character(character_name)<br />
&nbsp;&nbsp;&nbsp;&nbsp;sign = character_name[/^[!&#36;]./]<br />
&nbsp;&nbsp;&nbsp;&nbsp;if character_name != nil and character_name.include?('&#36;xp')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cw = bitmap.width / 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ch = bitmap.height / 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n = character_index<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;src_rect = Rect.new(0, 0, cw, ch)<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if sign != nil and sign.include?('&#36;')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cw = bitmap.width / 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ch = bitmap.height / 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cw = bitmap.width / 12<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ch = bitmap.height / 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n = character_index<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)<br />
&nbsp;&nbsp;end<br />
 <br />
end</code></div></div>
</div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Zoom eventów i postaci]]></title>
			<link>https://forum.ultimateam.pl/Thread-VXAce-Zoom-event%C3%B3w-i-postaci</link>
			<pubDate>Sat, 06 Aug 2016 06:50:44 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-VXAce-Zoom-event%C3%B3w-i-postaci</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Character Sprite Zooming ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt pozwala nam na zmianę zoomu postaci, eventu na skale jaką chcemy począwszy od najmniejszej do do nieskończonej liczby tylko ostrzegam jak się ustawi zoom na 10 to postać potrafi zająć całą mapę proponuję coś koło od 0.500 do 3.<br />
<br />
wszystko jest opisane w instrukcji miłej zabawy.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Hime<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>=begin<br />
#===============================================================================&#8203;<br />
 Title: Character Sprite Zooming<br />
 Author: Hime<br />
 Date: Feb 3, 2015<br />
 URL: http://himeworks.com/2014/12/character-sprite-zooming/<br />
--------------------------------------------------------------------------------<br />
 ** Change log<br />
 Feb 3, 2015<br />
&nbsp;&nbsp; - modified script to support zoom animations<br />
 Dec 6, 2014<br />
&nbsp;&nbsp; - Initial release<br />
--------------------------------------------------------------------------------&nbsp;&nbsp; <br />
 ** Terms of Use<br />
 * Free to use in non-commercial projects<br />
 * Contact me for commercial use<br />
 * No real support. The script is provided as-is<br />
 * Will do bug fixes, but no compatibility patches<br />
 * Features may be requested but no guarantees, especially if it is non-trivial<br />
 * Credits to Hime Works in your project<br />
 * Preserve this header<br />
--------------------------------------------------------------------------------<br />
 ** Description<br />
 <br />
 This script allows you to control the zoom-level for character sprites, which<br />
 includes the player, followers, events, and the default vehicles.<br />
 <br />
 Due to the visual nature of this script, while followers are also supported,<br />
 they won't display correctly. This means that your followers will appear to be<br />
 glued to each other and the player because that is how movement works.<br />
 <br />
 Note that the engine supports many different ways of drawing character<br />
 sprites. This script only supports character *sprites*, rather than character<br />
 images.<br />
 <br />
--------------------------------------------------------------------------------<br />
 ** Installation<br />
 <br />
 In the script editor, place this script below Materials and above Main<br />
<br />
--------------------------------------------------------------------------------<br />
 ** Usage<br />
 <br />
 -- Events --<br />
 <br />
 To change event sprite zooming on the map, use one of the script calls<br />
<br />
&nbsp;&nbsp; zoom_event_sprite(ID, zoom)<br />
&nbsp;&nbsp; zoom_event_sprite(ID, zoom, duration)<br />
&nbsp;&nbsp; zoom_event_sprite(ID, zoom, duration, wait)<br />
&nbsp;&nbsp; zoom_event_sprite(ID, zoom, duration, wait, zoom_y)<br />
&nbsp;&nbsp; zoom_event_sprite(ID, zoom, duration, wait, zoom_y, duration_y)<br />
&nbsp;&nbsp; <br />
 Where the ID is the ID of the event, and the zoom is a percentage. 1 is 100%,<br />
 0.5 is 50% (half size), and 2 is 200% (double size)<br />
 <br />
 The duration allows you to create a zoom animation over-time. It is<br />
 specified in frames and can be any integer that is 0 or higher.<br />
 <br />
 If `wait` is true, then the event will stop processing commands until the zoom<br />
 animation is complete. If it is false, it will continue to run even though<br />
 the animation is still going.<br />
 <br />
 When only one `zoom` value is specified, it assumes both the width and height<br />
 will be zoomed proportionally.<br />
&nbsp;&nbsp; <br />
 You can specify separate zoom behavior for each direction by passing in<br />
 additional arguments.<br />
 <br />
 -- Players and Followers --<br />
 <br />
 To change player sprite zooming, use one of the script calls<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp; zoom_player_sprite(zoom)<br />
&nbsp;&nbsp; zoom_player_sprite(zoom, duration)<br />
&nbsp;&nbsp; zoom_player_sprite(zoom, duration, wait)<br />
&nbsp;&nbsp; zoom_player_sprite(zoom, duration, wait, zoom_y)<br />
&nbsp;&nbsp; zoom_player_sprite(zoom, duration, wait, zoom_y, duration_y)<br />
 <br />
 -- Vehicles --<br />
 <br />
 To change player sprite zooming, use one of the script calls<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp; zoom_vehicle_sprite(type, zoom)<br />
&nbsp;&nbsp; zoom_vehicle_sprite(type, zoom, duration)<br />
&nbsp;&nbsp; zoom_vehicle_sprite(type, zoom, duration, wait)<br />
&nbsp;&nbsp; zoom_vehicle_sprite(type, zoom, duration, wait, zoom_y)<br />
&nbsp;&nbsp; zoom_vehicle_sprite(type, zoom, duration, wait, zoom_y, duration_y)<br />
&nbsp;&nbsp; <br />
 These are the vehicles that are available<br />
 <br />
&nbsp;&nbsp; :ship<br />
&nbsp;&nbsp; :boat<br />
&nbsp;&nbsp; :airship<br />
--------------------------------------------------------------------------------<br />
 ** Examples<br />
 <br />
 Zoom event 3 to double the size<br />
 <br />
&nbsp;&nbsp; zoom_event_sprite(3, 2)<br />
&nbsp;&nbsp; <br />
 Zoom player and followers to half-size, over 60 frames<br />
 <br />
&nbsp;&nbsp; zoom_player_sprite(true, 0.5, 60)<br />
&nbsp;&nbsp; <br />
 Stretch ship's width by 2 and shrink height to half.<br />
 Width will change in 30 frames, height will change in 60 frames. The<br />
 event will not wait for the animation.<br />
 <br />
&nbsp;&nbsp; zoom_vehicle_sprite(:ship, 2, 30, false, 0.5, 60)<br />
 <br />
#===============================================================================&#8203;<br />
=end<br />
&#36;imported = {} if &#36;imported.nil?<br />
&#36;imported[:TH_CharacterSpriteZoom] = true<br />
#===============================================================================&#8203;<br />
# ** Rest of script<br />
#===============================================================================&#8203;<br />
class Sprite_Character &lt; Sprite_Base<br />
&nbsp;&nbsp;alias :th_character_sprite_zoom_update_other :update_other<br />
&nbsp;&nbsp;def update_other<br />
&nbsp;&nbsp;&nbsp;&nbsp;th_character_sprite_zoom_update_other&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.zoom_x = @character.zoom_x<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.zoom_y = @character.zoom_y<br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
end<br />
<br />
class Game_Character<br />
&nbsp;&nbsp;attr_reader :zoom_x<br />
&nbsp;&nbsp;attr_reader :zoom_y<br />
&nbsp;&nbsp;attr_reader :target_zoom_duration<br />
&nbsp;&nbsp;attr_reader :target_zoom_duration_y<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;alias :th_character_sprite_zoom_init_public_members :init_public_members<br />
&nbsp;&nbsp;def init_public_members<br />
&nbsp;&nbsp;&nbsp;&nbsp;th_character_sprite_zoom_init_public_members<br />
&nbsp;&nbsp;&nbsp;&nbsp;@zoom_x = 1.0<br />
&nbsp;&nbsp;&nbsp;&nbsp;@zoom_y = 1.0<br />
&nbsp;&nbsp;&nbsp;&nbsp;@target_zoom_duration = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;@target_zoom_duration_y = 0&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;@is_zooming = false<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def setup_zoom(zoom, zoom_duration, zoom_y=nil, zoom_duration_y=nil)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;@target_zoom = zoom<br />
&nbsp;&nbsp;&nbsp;&nbsp;@target_zoom_y = zoom_y || zoom<br />
&nbsp;&nbsp;&nbsp;&nbsp;p @target_zoom_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;@target_zoom_duration = zoom_duration<br />
&nbsp;&nbsp;&nbsp;&nbsp;@target_zoom_duration_y = zoom_duration_y || zoom_duration<br />
&nbsp;&nbsp;&nbsp;&nbsp;@is_zooming = true<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;alias :th_character_sprite_zooming_update :update<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;th_character_sprite_zooming_update<br />
&nbsp;&nbsp;&nbsp;&nbsp;update_zoom<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def update_zoom<br />
&nbsp;&nbsp;&nbsp;&nbsp;return unless @is_zooming<br />
&nbsp;&nbsp;&nbsp;&nbsp;dx = @target_zoom_duration<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if @zoom_x == @target_zoom<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@target_zoom_duration = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;elsif dx == 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@zoom_x = @target_zoom<br />
&nbsp;&nbsp;&nbsp;&nbsp;elsif dx &gt; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@zoom_x = (@zoom_x * (dx - 1) + @target_zoom) / dx<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@target_zoom_duration -= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;dy = @target_zoom_duration_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;if @zoom_y == @target_zoom_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@target_zoom_duration_y = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;elsif dy == 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@zoom_y = @target_zoom_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;elsif dy &gt; 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@zoom_y = (@zoom_y * (dy - 1) + @target_zoom_y) / dy<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@target_zoom_duration_y -= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;@iz_zooming = false if dx == 0 &amp;&amp; dy == 0<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
class Game_Interpreter<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def zoom_character_sprite(chara, zoom_x, duration, wait, zoom_y, duration_y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;chara.setup_zoom(zoom_x, duration, zoom_y, duration_y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;Fiber.yield while chara.target_zoom_duration &gt; 0 || chara.target_zoom_duration_y &gt; 0 if wait<br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def zoom_event_sprite(event_id, zoom_x=1.0, duration=0, wait=true, zoom_y=nil, duration_y=nil)<br />
&nbsp;&nbsp;&nbsp;&nbsp;event = get_character(event_id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;zoom_character_sprite(event, zoom_x, duration, wait, zoom_y, duration_y)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;def zoom_player_sprite(zoom_x=1.0, duration=0, wait=true, zoom_y=nil, duration_y=nil)<br />
&nbsp;&nbsp;&nbsp;&nbsp;zoom_character_sprite(&#36;game_player, zoom_x, duration, wait, zoom_y, duration_y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_player.followers.each do |follower|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zoom_character_sprite(follower, zoom_x, duration, wait, zoom_y, duration_y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def zoom_vehicle_sprite(type, zoom_x=1.0, duration=60, wait=true, zoom_y=nil, duration_y=nil)<br />
&nbsp;&nbsp;&nbsp;&nbsp;case type<br />
&nbsp;&nbsp;&nbsp;&nbsp;when :ship<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vehicle = &#36;game_map.ship<br />
&nbsp;&nbsp;&nbsp;&nbsp;when :boat<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vehicle = &#36;game_map.boat<br />
&nbsp;&nbsp;&nbsp;&nbsp;when :airship<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vehicle = &#36;game_map.airship<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;zoom_character_sprite(vehicle, zoom_x, duration, wait, zoom_y, duration_y)<br />
&nbsp;&nbsp;end<br />
end</code></div></div>
</div></div>]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Character Sprite Zooming ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt pozwala nam na zmianę zoomu postaci, eventu na skale jaką chcemy począwszy od najmniejszej do do nieskończonej liczby tylko ostrzegam jak się ustawi zoom na 10 to postać potrafi zająć całą mapę proponuję coś koło od 0.500 do 3.<br />
<br />
wszystko jest opisane w instrukcji miłej zabawy.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Hime<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>=begin<br />
#===============================================================================&#8203;<br />
 Title: Character Sprite Zooming<br />
 Author: Hime<br />
 Date: Feb 3, 2015<br />
 URL: http://himeworks.com/2014/12/character-sprite-zooming/<br />
--------------------------------------------------------------------------------<br />
 ** Change log<br />
 Feb 3, 2015<br />
&nbsp;&nbsp; - modified script to support zoom animations<br />
 Dec 6, 2014<br />
&nbsp;&nbsp; - Initial release<br />
--------------------------------------------------------------------------------&nbsp;&nbsp; <br />
 ** Terms of Use<br />
 * Free to use in non-commercial projects<br />
 * Contact me for commercial use<br />
 * No real support. The script is provided as-is<br />
 * Will do bug fixes, but no compatibility patches<br />
 * Features may be requested but no guarantees, especially if it is non-trivial<br />
 * Credits to Hime Works in your project<br />
 * Preserve this header<br />
--------------------------------------------------------------------------------<br />
 ** Description<br />
 <br />
 This script allows you to control the zoom-level for character sprites, which<br />
 includes the player, followers, events, and the default vehicles.<br />
 <br />
 Due to the visual nature of this script, while followers are also supported,<br />
 they won't display correctly. This means that your followers will appear to be<br />
 glued to each other and the player because that is how movement works.<br />
 <br />
 Note that the engine supports many different ways of drawing character<br />
 sprites. This script only supports character *sprites*, rather than character<br />
 images.<br />
 <br />
--------------------------------------------------------------------------------<br />
 ** Installation<br />
 <br />
 In the script editor, place this script below Materials and above Main<br />
<br />
--------------------------------------------------------------------------------<br />
 ** Usage<br />
 <br />
 -- Events --<br />
 <br />
 To change event sprite zooming on the map, use one of the script calls<br />
<br />
&nbsp;&nbsp; zoom_event_sprite(ID, zoom)<br />
&nbsp;&nbsp; zoom_event_sprite(ID, zoom, duration)<br />
&nbsp;&nbsp; zoom_event_sprite(ID, zoom, duration, wait)<br />
&nbsp;&nbsp; zoom_event_sprite(ID, zoom, duration, wait, zoom_y)<br />
&nbsp;&nbsp; zoom_event_sprite(ID, zoom, duration, wait, zoom_y, duration_y)<br />
&nbsp;&nbsp; <br />
 Where the ID is the ID of the event, and the zoom is a percentage. 1 is 100%,<br />
 0.5 is 50% (half size), and 2 is 200% (double size)<br />
 <br />
 The duration allows you to create a zoom animation over-time. It is<br />
 specified in frames and can be any integer that is 0 or higher.<br />
 <br />
 If `wait` is true, then the event will stop processing commands until the zoom<br />
 animation is complete. If it is false, it will continue to run even though<br />
 the animation is still going.<br />
 <br />
 When only one `zoom` value is specified, it assumes both the width and height<br />
 will be zoomed proportionally.<br />
&nbsp;&nbsp; <br />
 You can specify separate zoom behavior for each direction by passing in<br />
 additional arguments.<br />
 <br />
 -- Players and Followers --<br />
 <br />
 To change player sprite zooming, use one of the script calls<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp; zoom_player_sprite(zoom)<br />
&nbsp;&nbsp; zoom_player_sprite(zoom, duration)<br />
&nbsp;&nbsp; zoom_player_sprite(zoom, duration, wait)<br />
&nbsp;&nbsp; zoom_player_sprite(zoom, duration, wait, zoom_y)<br />
&nbsp;&nbsp; zoom_player_sprite(zoom, duration, wait, zoom_y, duration_y)<br />
 <br />
 -- Vehicles --<br />
 <br />
 To change player sprite zooming, use one of the script calls<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp; zoom_vehicle_sprite(type, zoom)<br />
&nbsp;&nbsp; zoom_vehicle_sprite(type, zoom, duration)<br />
&nbsp;&nbsp; zoom_vehicle_sprite(type, zoom, duration, wait)<br />
&nbsp;&nbsp; zoom_vehicle_sprite(type, zoom, duration, wait, zoom_y)<br />
&nbsp;&nbsp; zoom_vehicle_sprite(type, zoom, duration, wait, zoom_y, duration_y)<br />
&nbsp;&nbsp; <br />
 These are the vehicles that are available<br />
 <br />
&nbsp;&nbsp; :ship<br />
&nbsp;&nbsp; :boat<br />
&nbsp;&nbsp; :airship<br />
--------------------------------------------------------------------------------<br />
 ** Examples<br />
 <br />
 Zoom event 3 to double the size<br />
 <br />
&nbsp;&nbsp; zoom_event_sprite(3, 2)<br />
&nbsp;&nbsp; <br />
 Zoom player and followers to half-size, over 60 frames<br />
 <br />
&nbsp;&nbsp; zoom_player_sprite(true, 0.5, 60)<br />
&nbsp;&nbsp; <br />
 Stretch ship's width by 2 and shrink height to half.<br />
 Width will change in 30 frames, height will change in 60 frames. The<br />
 event will not wait for the animation.<br />
 <br />
&nbsp;&nbsp; zoom_vehicle_sprite(:ship, 2, 30, false, 0.5, 60)<br />
 <br />
#===============================================================================&#8203;<br />
=end<br />
&#36;imported = {} if &#36;imported.nil?<br />
&#36;imported[:TH_CharacterSpriteZoom] = true<br />
#===============================================================================&#8203;<br />
# ** Rest of script<br />
#===============================================================================&#8203;<br />
class Sprite_Character &lt; Sprite_Base<br />
&nbsp;&nbsp;alias :th_character_sprite_zoom_update_other :update_other<br />
&nbsp;&nbsp;def update_other<br />
&nbsp;&nbsp;&nbsp;&nbsp;th_character_sprite_zoom_update_other&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.zoom_x = @character.zoom_x<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.zoom_y = @character.zoom_y<br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
end<br />
<br />
class Game_Character<br />
&nbsp;&nbsp;attr_reader :zoom_x<br />
&nbsp;&nbsp;attr_reader :zoom_y<br />
&nbsp;&nbsp;attr_reader :target_zoom_duration<br />
&nbsp;&nbsp;attr_reader :target_zoom_duration_y<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;alias :th_character_sprite_zoom_init_public_members :init_public_members<br />
&nbsp;&nbsp;def init_public_members<br />
&nbsp;&nbsp;&nbsp;&nbsp;th_character_sprite_zoom_init_public_members<br />
&nbsp;&nbsp;&nbsp;&nbsp;@zoom_x = 1.0<br />
&nbsp;&nbsp;&nbsp;&nbsp;@zoom_y = 1.0<br />
&nbsp;&nbsp;&nbsp;&nbsp;@target_zoom_duration = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;@target_zoom_duration_y = 0&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;@is_zooming = false<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def setup_zoom(zoom, zoom_duration, zoom_y=nil, zoom_duration_y=nil)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;@target_zoom = zoom<br />
&nbsp;&nbsp;&nbsp;&nbsp;@target_zoom_y = zoom_y || zoom<br />
&nbsp;&nbsp;&nbsp;&nbsp;p @target_zoom_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;@target_zoom_duration = zoom_duration<br />
&nbsp;&nbsp;&nbsp;&nbsp;@target_zoom_duration_y = zoom_duration_y || zoom_duration<br />
&nbsp;&nbsp;&nbsp;&nbsp;@is_zooming = true<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;alias :th_character_sprite_zooming_update :update<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;th_character_sprite_zooming_update<br />
&nbsp;&nbsp;&nbsp;&nbsp;update_zoom<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def update_zoom<br />
&nbsp;&nbsp;&nbsp;&nbsp;return unless @is_zooming<br />
&nbsp;&nbsp;&nbsp;&nbsp;dx = @target_zoom_duration<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if @zoom_x == @target_zoom<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@target_zoom_duration = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;elsif dx == 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@zoom_x = @target_zoom<br />
&nbsp;&nbsp;&nbsp;&nbsp;elsif dx &gt; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@zoom_x = (@zoom_x * (dx - 1) + @target_zoom) / dx<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@target_zoom_duration -= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;dy = @target_zoom_duration_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;if @zoom_y == @target_zoom_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@target_zoom_duration_y = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;elsif dy == 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@zoom_y = @target_zoom_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;elsif dy &gt; 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@zoom_y = (@zoom_y * (dy - 1) + @target_zoom_y) / dy<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@target_zoom_duration_y -= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;@iz_zooming = false if dx == 0 &amp;&amp; dy == 0<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
class Game_Interpreter<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def zoom_character_sprite(chara, zoom_x, duration, wait, zoom_y, duration_y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;chara.setup_zoom(zoom_x, duration, zoom_y, duration_y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;Fiber.yield while chara.target_zoom_duration &gt; 0 || chara.target_zoom_duration_y &gt; 0 if wait<br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def zoom_event_sprite(event_id, zoom_x=1.0, duration=0, wait=true, zoom_y=nil, duration_y=nil)<br />
&nbsp;&nbsp;&nbsp;&nbsp;event = get_character(event_id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;zoom_character_sprite(event, zoom_x, duration, wait, zoom_y, duration_y)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;def zoom_player_sprite(zoom_x=1.0, duration=0, wait=true, zoom_y=nil, duration_y=nil)<br />
&nbsp;&nbsp;&nbsp;&nbsp;zoom_character_sprite(&#36;game_player, zoom_x, duration, wait, zoom_y, duration_y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_player.followers.each do |follower|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zoom_character_sprite(follower, zoom_x, duration, wait, zoom_y, duration_y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def zoom_vehicle_sprite(type, zoom_x=1.0, duration=60, wait=true, zoom_y=nil, duration_y=nil)<br />
&nbsp;&nbsp;&nbsp;&nbsp;case type<br />
&nbsp;&nbsp;&nbsp;&nbsp;when :ship<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vehicle = &#36;game_map.ship<br />
&nbsp;&nbsp;&nbsp;&nbsp;when :boat<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vehicle = &#36;game_map.boat<br />
&nbsp;&nbsp;&nbsp;&nbsp;when :airship<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vehicle = &#36;game_map.airship<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;zoom_character_sprite(vehicle, zoom_x, duration, wait, zoom_y, duration_y)<br />
&nbsp;&nbsp;end<br />
end</code></div></div>
</div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Zmiana rozdzielczości gry !]]></title>
			<link>https://forum.ultimateam.pl/Thread-VX-VXAce-Zmiana-rozdzielczo%C5%9Bci-gry</link>
			<pubDate>Thu, 04 Aug 2016 21:36:44 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-VX-VXAce-Zmiana-rozdzielczo%C5%9Bci-gry</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Game resolution for ACE  ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt po dodaniu nad Main dodaje nam możliwość zmiany rozdzielczości ekranu tak aby pasowała dla nas rozdzielczość jaką chcemy osiągnąć jedyny minus jest taki że jeżeli ekran dopasujemy do rozdzielczości 1024 x 728 to musimy też przeskalować tile gdyż będą widoczne czarne marginesy miłej zabawy.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Nightcrawler<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
Nightcrawler<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>#==============================================================================<br />
# ■ Game_Resolution<br />
#------------------------------------------------------------------------------<br />
# Change the game window to whatever you want!<br />
# Keep the width and height a multiple of 32.<br />
#==============================================================================<br />
<br />
module Resolution<br />
&nbsp;&nbsp;&#36;game_screen_width = 640<br />
&nbsp;&nbsp;&#36;game_screen_height = 480<br />
&nbsp;&nbsp;&#36;game_tiles_width = 20<br />
&nbsp;&nbsp;&#36;game_tiles_height = 15<br />
&nbsp;&nbsp;#======================================<br />
&nbsp;&nbsp;# Resize the window<br />
&nbsp;&nbsp;#======================================<br />
&nbsp;&nbsp;def self.resize(w,h)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Graphics.resize_screen(w,h)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_screen_width = w<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_screen_height = h<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_tiles_width = w / 32<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_tiles_height = h / 32<br />
&nbsp;&nbsp;end<br />
end<br />
#==============================================================================<br />
# ■ Sprite_Timer<br />
#------------------------------------------------------------------------------<br />
# Timer for display sprites. Monitor the &#36; game_timer, the state of the Sprite<br />
# To change automatically.<br />
#==============================================================================<br />
class Sprite_Timer<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● Initialize<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize(viewport)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super(viewport)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create_bitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● Create bitmap<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def create_bitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.bitmap = Bitmap.new(96, 48)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.bitmap.font.size = 32<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.bitmap.font.color.set(255, 255, 255)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp; #--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● Update<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_bitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_position<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_visibility<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● Update position<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update_position<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.x = &#36;game_screen_width - self.bitmap.width<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.y = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.z = 200<br />
&nbsp;&nbsp;end<br />
end<br />
#==============================================================================<br />
# ■ Game_Map<br />
#------------------------------------------------------------------------------<br />
# A class to handle the map. It has features such as scrolling and passable determining.<br />
# Instance of this class is referenced by &#36; game_map.<br />
#==============================================================================<br />
<br />
class Game_Map<br />
&nbsp;&nbsp;def update(main = false)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;refresh if @need_refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_interpreter if main<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_scroll<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_events<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_vehicles<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_parallax<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@screen.update<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● Setup Scroll<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def setup_scroll<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@scroll_direction = 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@scroll_rest = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@scroll_speed = 4<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● Set display position<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def set_display_pos(x, y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = [0, [x, &#36;game_screen_width - &#36;game_tiles_width].min].max unless loop_horizontal?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y = [0, [y, &#36;game_screen_height - &#36;game_tiles_height].min].max unless loop_vertical?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@display_x = (x + &#36;game_screen_width) % &#36;game_screen_width<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@display_y = (y + &#36;game_screen_height) % &#36;game_screen_height<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@parallax_x = x<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@parallax_y = y<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● Parallax X check<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def parallax_ox(bitmap)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @parallax_loop_x<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@parallax_x * 16<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w1 = [bitmap.width - &#36;game_screen_width, 0].max<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w2 = [&#36;game_screen_width * 32 - &#36;game_screen_width, 1].max<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@parallax_x * 16 * w1 / w2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● Adjust X<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def adjust_x(x)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if loop_horizontal? &amp;&amp; x &lt; @display_x - (&#36;game_screen_width - &#36;game_tiles_width) / 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x - @display_x + &#36;game_screen_width<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x - @display_x<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● Adjust Y<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def adjust_y(y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if loop_vertical? &amp;&amp; y &lt; @display_y - (&#36;game_screen_height - &#36;game_tiles_height) / 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y - @display_y + &#36;game_screen_height<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y - @display_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● ループ補正後の X 座標計算<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def round_x(x)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loop_horizontal? ? (x + &#36;game_screen_width) % &#36;game_screen_width : x<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● ループ補正後の Y 座標計算<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def round_y(y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loop_vertical? ? (y + &#36;game_screen_height) % &#36;game_screen_height : y<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● 上にスクロール<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def scroll_up(distance)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if loop_vertical?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@display_y += @map.height - distance<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@display_y %= @map.height<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@parallax_y -= distance if @parallax_loop_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;last_y = @display_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@display_y = [@display_y - distance, 0].max<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@parallax_y += @display_y - last_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
class Game_Player &lt; Game_Character<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● 画面中央の X 座標<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def center_x<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_screen_width == 640<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&#36;game_screen_width / 32 - 1) / 1.0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&#36;game_screen_width / 32 - 1) / 2.0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● 画面中央の Y 座標<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def center_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_screen_height == 480<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&#36;game_screen_height / 32 - 1) / 1.0<br />
&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&#36;game_screen_height / 32 - 1) / 2.0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● 画面中央に来るようにマップの表示位置を設定<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def center(x, y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_map.set_display_pos(x - center_x, y - center_y)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● フレーム更新<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;last_real_x = @real_x<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;last_real_y = @real_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;last_moving = moving?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_by_input<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_scroll(last_real_x, last_real_y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_vehicle<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_nonmoving(last_moving) unless moving?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@followers.update<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
class Window_Base<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● ステートおよび強化／弱体のアイコンを描画<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_actor_icons(actor, x, y, width = 96)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;icons = (actor.state_icons + actor.buff_icons)[0, width / 24]<br />
&nbsp;&nbsp;end<br />
end</code></div></div>
</div></div><span style="color: red;"><span style="font-weight: bold;">Screeny:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;">[img]Niepotrzebne[/img]<br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Demo:</span></span><br />
<a href="http://Nie%20potrzebne" target="_blank"><img class="postimage" src="http://www.ultimateam.pl/images/demo_download.png" border="0" alt="[Obrazek: demo_download.png]" /></a><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Po dodaniu skryptu wchodzimy w main i dodajemy linijkę "Resolution.resize(W,H)" gdzie W oznacza szerokość, H wysokość np (1024, 723)]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Game resolution for ACE  ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt po dodaniu nad Main dodaje nam możliwość zmiany rozdzielczości ekranu tak aby pasowała dla nas rozdzielczość jaką chcemy osiągnąć jedyny minus jest taki że jeżeli ekran dopasujemy do rozdzielczości 1024 x 728 to musimy też przeskalować tile gdyż będą widoczne czarne marginesy miłej zabawy.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Nightcrawler<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
Nightcrawler<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>#==============================================================================<br />
# ■ Game_Resolution<br />
#------------------------------------------------------------------------------<br />
# Change the game window to whatever you want!<br />
# Keep the width and height a multiple of 32.<br />
#==============================================================================<br />
<br />
module Resolution<br />
&nbsp;&nbsp;&#36;game_screen_width = 640<br />
&nbsp;&nbsp;&#36;game_screen_height = 480<br />
&nbsp;&nbsp;&#36;game_tiles_width = 20<br />
&nbsp;&nbsp;&#36;game_tiles_height = 15<br />
&nbsp;&nbsp;#======================================<br />
&nbsp;&nbsp;# Resize the window<br />
&nbsp;&nbsp;#======================================<br />
&nbsp;&nbsp;def self.resize(w,h)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Graphics.resize_screen(w,h)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_screen_width = w<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_screen_height = h<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_tiles_width = w / 32<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_tiles_height = h / 32<br />
&nbsp;&nbsp;end<br />
end<br />
#==============================================================================<br />
# ■ Sprite_Timer<br />
#------------------------------------------------------------------------------<br />
# Timer for display sprites. Monitor the &#36; game_timer, the state of the Sprite<br />
# To change automatically.<br />
#==============================================================================<br />
class Sprite_Timer<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● Initialize<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize(viewport)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super(viewport)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create_bitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● Create bitmap<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def create_bitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.bitmap = Bitmap.new(96, 48)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.bitmap.font.size = 32<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.bitmap.font.color.set(255, 255, 255)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp; #--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● Update<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_bitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_position<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_visibility<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● Update position<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update_position<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.x = &#36;game_screen_width - self.bitmap.width<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.y = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.z = 200<br />
&nbsp;&nbsp;end<br />
end<br />
#==============================================================================<br />
# ■ Game_Map<br />
#------------------------------------------------------------------------------<br />
# A class to handle the map. It has features such as scrolling and passable determining.<br />
# Instance of this class is referenced by &#36; game_map.<br />
#==============================================================================<br />
<br />
class Game_Map<br />
&nbsp;&nbsp;def update(main = false)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;refresh if @need_refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_interpreter if main<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_scroll<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_events<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_vehicles<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_parallax<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@screen.update<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● Setup Scroll<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def setup_scroll<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@scroll_direction = 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@scroll_rest = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@scroll_speed = 4<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● Set display position<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def set_display_pos(x, y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = [0, [x, &#36;game_screen_width - &#36;game_tiles_width].min].max unless loop_horizontal?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y = [0, [y, &#36;game_screen_height - &#36;game_tiles_height].min].max unless loop_vertical?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@display_x = (x + &#36;game_screen_width) % &#36;game_screen_width<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@display_y = (y + &#36;game_screen_height) % &#36;game_screen_height<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@parallax_x = x<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@parallax_y = y<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● Parallax X check<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def parallax_ox(bitmap)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @parallax_loop_x<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@parallax_x * 16<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w1 = [bitmap.width - &#36;game_screen_width, 0].max<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w2 = [&#36;game_screen_width * 32 - &#36;game_screen_width, 1].max<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@parallax_x * 16 * w1 / w2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● Adjust X<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def adjust_x(x)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if loop_horizontal? &amp;&amp; x &lt; @display_x - (&#36;game_screen_width - &#36;game_tiles_width) / 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x - @display_x + &#36;game_screen_width<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x - @display_x<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● Adjust Y<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def adjust_y(y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if loop_vertical? &amp;&amp; y &lt; @display_y - (&#36;game_screen_height - &#36;game_tiles_height) / 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y - @display_y + &#36;game_screen_height<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y - @display_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● ループ補正後の X 座標計算<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def round_x(x)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loop_horizontal? ? (x + &#36;game_screen_width) % &#36;game_screen_width : x<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● ループ補正後の Y 座標計算<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def round_y(y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loop_vertical? ? (y + &#36;game_screen_height) % &#36;game_screen_height : y<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● 上にスクロール<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def scroll_up(distance)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if loop_vertical?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@display_y += @map.height - distance<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@display_y %= @map.height<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@parallax_y -= distance if @parallax_loop_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;last_y = @display_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@display_y = [@display_y - distance, 0].max<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@parallax_y += @display_y - last_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
class Game_Player &lt; Game_Character<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● 画面中央の X 座標<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def center_x<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_screen_width == 640<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&#36;game_screen_width / 32 - 1) / 1.0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&#36;game_screen_width / 32 - 1) / 2.0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● 画面中央の Y 座標<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def center_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_screen_height == 480<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&#36;game_screen_height / 32 - 1) / 1.0<br />
&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&#36;game_screen_height / 32 - 1) / 2.0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● 画面中央に来るようにマップの表示位置を設定<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def center(x, y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_map.set_display_pos(x - center_x, y - center_y)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● フレーム更新<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;last_real_x = @real_x<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;last_real_y = @real_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;last_moving = moving?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_by_input<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_scroll(last_real_x, last_real_y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_vehicle<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_nonmoving(last_moving) unless moving?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@followers.update<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
class Window_Base<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# ● ステートおよび強化／弱体のアイコンを描画<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_actor_icons(actor, x, y, width = 96)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;icons = (actor.state_icons + actor.buff_icons)[0, width / 24]<br />
&nbsp;&nbsp;end<br />
end</code></div></div>
</div></div><span style="color: red;"><span style="font-weight: bold;">Screeny:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;">[img]Niepotrzebne[/img]<br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Demo:</span></span><br />
<a href="http://Nie%20potrzebne" target="_blank"><img class="postimage" src="http://www.ultimateam.pl/images/demo_download.png" border="0" alt="[Obrazek: demo_download.png]" /></a><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Po dodaniu skryptu wchodzimy w main i dodajemy linijkę "Resolution.resize(W,H)" gdzie W oznacza szerokość, H wysokość np (1024, 723)]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Skrypt na 2 graczy]]></title>
			<link>https://forum.ultimateam.pl/Thread-VXAce-Skrypt-na-2-graczy</link>
			<pubDate>Wed, 27 May 2015 17:31:56 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-VXAce-Skrypt-na-2-graczy</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Skrypt dodający drugiego gracza. ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt dodaje drugiego gracza, wyglądającego tak samo jak gracz nr 1 (nie wiem jak to zmienić <img class="postimage" src="/images/smiles/icon_sad.gif" style="vertical-align: middle;" border="0" alt="sad" title="sad" />)<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Tsukihime<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
krakoman<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>################################################################################&#8203;<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2 Players Script by Tsukihime&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Tłumaczenie PL: krakoman&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specjalnie dla http://forum.ultimateam.pl/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#<br />
################################################################################&#8203;<br />
# OPIS:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#<br />
#Skrypt dodaje drugiego gracza, wyglądającego jak gracz pierwszy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#<br />
#Sterowanie możesz zmienić w linijkach 52-57&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #<br />
#HAVE FUN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#<br />
################################################################################&#8203;<br />
<br />
module DataManager<br />
<br />
&nbsp;&nbsp;class &lt;&lt; self<br />
&nbsp;&nbsp;&nbsp;&nbsp;alias :th_multiplayer_create_game_objects :create_game_objects<br />
&nbsp;&nbsp;&nbsp;&nbsp;alias :th_multiplayer_make_save_contents :make_save_contents<br />
&nbsp;&nbsp;&nbsp;&nbsp;alias :th_multiplayer_extract_save_contents :extract_save_contents<br />
&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;def self.create_game_objects<br />
&nbsp;&nbsp;&nbsp;&nbsp;th_multiplayer_create_game_objects<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_player2 = Game_Multiplayer.new<br />
<br />
&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;def self.make_save_contents<br />
&nbsp;&nbsp;&nbsp;&nbsp;contents = th_multiplayer_make_save_contents<br />
&nbsp;&nbsp;&nbsp;&nbsp;contents[:player2] = &#36;game_player2<br />
&nbsp;&nbsp;&nbsp;&nbsp;contents<br />
&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;def self.extract_save_contents(contents)<br />
&nbsp;&nbsp;&nbsp;&nbsp;th_multiplayer_extract_save_contents(contents)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_player2 = contents[:player2]<br />
&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;def self.setup_new_game<br />
&nbsp;&nbsp;&nbsp;&nbsp;create_game_objects<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.setup_starting_members<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_map.setup(&#36;data_system.start_map_id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_player.moveto(&#36;data_system.start_x, &#36;data_system.start_y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_player.refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_player2.moveto(&#36;data_system.start_x, &#36;data_system.start_y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_player2.refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;Graphics.frame_count = 0<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
class Game_Multiplayer &lt; Game_Player<br />
<br />
&nbsp;&nbsp;DOWN = Input::Y # S na klawiaturze (krok w dół)<br />
&nbsp;&nbsp;LEFT = Input::X # A na klawiaturze (krok w lewo)<br />
&nbsp;&nbsp;RIGHT = Input::Z # D na klawiaturze (krok w prawo)<br />
&nbsp;&nbsp;UP = Input::R # W na klawiaturze (krok do góry)<br />
&nbsp;&nbsp;ENTER = Input::L # Q na klawiaturze (interakcja)<br />
&nbsp;&nbsp;RUN = Input::A # Shift na klawiaturze (sprint)<br />
<br />
&nbsp;&nbsp;def move_by_input<br />
&nbsp;&nbsp;&nbsp;&nbsp;return unless movable?<br />
&nbsp;&nbsp;&nbsp;&nbsp;return if &#36;game_map.interpreter.running?<br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.press?(DOWN)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_straight(2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.press?(LEFT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_straight(4)<br />
&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.press?(RIGHT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_straight(6)<br />
&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.press?(UP)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_straight(8)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;def update_nonmoving(last_moving)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return if &#36;game_map.interpreter.running?<br />
&nbsp;&nbsp;&nbsp;&nbsp;if last_moving<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.on_player_walk<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return if check_touch_event<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;if movable? &amp;&amp; Input.trigger?(ENTER)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return if get_on_off_vehicle<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return if check_action_event<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;update_encounter if last_moving<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
class Spriteset_Map<br />
&nbsp;&nbsp;alias :th_multiplayer_create_characters :create_characters<br />
<br />
&nbsp;&nbsp;def create_characters<br />
&nbsp;&nbsp;&nbsp;&nbsp;th_multiplayer_create_characters<br />
&nbsp;&nbsp;&nbsp;&nbsp;@character_sprites.push(Sprite_Character.new(@viewport1, &#36;game_player2))<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
<br />
class Scene_Map &lt; Scene_Base<br />
&nbsp;&nbsp;alias :th_multiplayer_map_update :update<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;th_multiplayer_map_update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_player2.update if &#36;game_player2<br />
&nbsp;&nbsp;end<br />
end</code></div></div>
</div></div><span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Domyślne sterowanie dla gracza nr 2:<br />
W -krok do góry<br />
A -krok w lewo<br />
S -krok w dół<br />
D -krok w prawo<br />
Q -przycisk akcji<br />
SHIFT- sprint<br />
<br />
<span style="font-weight: bold;">Gracz 2 pojawia się na spawnie drużyny.<br />
Gracze nie blokują się na mapie.</span>]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Skrypt dodający drugiego gracza. ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt dodaje drugiego gracza, wyglądającego tak samo jak gracz nr 1 (nie wiem jak to zmienić <img class="postimage" src="/images/smiles/icon_sad.gif" style="vertical-align: middle;" border="0" alt="sad" title="sad" />)<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Tsukihime<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
krakoman<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>################################################################################&#8203;<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2 Players Script by Tsukihime&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Tłumaczenie PL: krakoman&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specjalnie dla http://forum.ultimateam.pl/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#<br />
################################################################################&#8203;<br />
# OPIS:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#<br />
#Skrypt dodaje drugiego gracza, wyglądającego jak gracz pierwszy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#<br />
#Sterowanie możesz zmienić w linijkach 52-57&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #<br />
#HAVE FUN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#<br />
################################################################################&#8203;<br />
<br />
module DataManager<br />
<br />
&nbsp;&nbsp;class &lt;&lt; self<br />
&nbsp;&nbsp;&nbsp;&nbsp;alias :th_multiplayer_create_game_objects :create_game_objects<br />
&nbsp;&nbsp;&nbsp;&nbsp;alias :th_multiplayer_make_save_contents :make_save_contents<br />
&nbsp;&nbsp;&nbsp;&nbsp;alias :th_multiplayer_extract_save_contents :extract_save_contents<br />
&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;def self.create_game_objects<br />
&nbsp;&nbsp;&nbsp;&nbsp;th_multiplayer_create_game_objects<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_player2 = Game_Multiplayer.new<br />
<br />
&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;def self.make_save_contents<br />
&nbsp;&nbsp;&nbsp;&nbsp;contents = th_multiplayer_make_save_contents<br />
&nbsp;&nbsp;&nbsp;&nbsp;contents[:player2] = &#36;game_player2<br />
&nbsp;&nbsp;&nbsp;&nbsp;contents<br />
&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;def self.extract_save_contents(contents)<br />
&nbsp;&nbsp;&nbsp;&nbsp;th_multiplayer_extract_save_contents(contents)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_player2 = contents[:player2]<br />
&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;def self.setup_new_game<br />
&nbsp;&nbsp;&nbsp;&nbsp;create_game_objects<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.setup_starting_members<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_map.setup(&#36;data_system.start_map_id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_player.moveto(&#36;data_system.start_x, &#36;data_system.start_y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_player.refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_player2.moveto(&#36;data_system.start_x, &#36;data_system.start_y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_player2.refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;Graphics.frame_count = 0<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
class Game_Multiplayer &lt; Game_Player<br />
<br />
&nbsp;&nbsp;DOWN = Input::Y # S na klawiaturze (krok w dół)<br />
&nbsp;&nbsp;LEFT = Input::X # A na klawiaturze (krok w lewo)<br />
&nbsp;&nbsp;RIGHT = Input::Z # D na klawiaturze (krok w prawo)<br />
&nbsp;&nbsp;UP = Input::R # W na klawiaturze (krok do góry)<br />
&nbsp;&nbsp;ENTER = Input::L # Q na klawiaturze (interakcja)<br />
&nbsp;&nbsp;RUN = Input::A # Shift na klawiaturze (sprint)<br />
<br />
&nbsp;&nbsp;def move_by_input<br />
&nbsp;&nbsp;&nbsp;&nbsp;return unless movable?<br />
&nbsp;&nbsp;&nbsp;&nbsp;return if &#36;game_map.interpreter.running?<br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.press?(DOWN)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_straight(2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.press?(LEFT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_straight(4)<br />
&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.press?(RIGHT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_straight(6)<br />
&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.press?(UP)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_straight(8)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;def update_nonmoving(last_moving)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return if &#36;game_map.interpreter.running?<br />
&nbsp;&nbsp;&nbsp;&nbsp;if last_moving<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.on_player_walk<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return if check_touch_event<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;if movable? &amp;&amp; Input.trigger?(ENTER)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return if get_on_off_vehicle<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return if check_action_event<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;update_encounter if last_moving<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
class Spriteset_Map<br />
&nbsp;&nbsp;alias :th_multiplayer_create_characters :create_characters<br />
<br />
&nbsp;&nbsp;def create_characters<br />
&nbsp;&nbsp;&nbsp;&nbsp;th_multiplayer_create_characters<br />
&nbsp;&nbsp;&nbsp;&nbsp;@character_sprites.push(Sprite_Character.new(@viewport1, &#36;game_player2))<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
<br />
class Scene_Map &lt; Scene_Base<br />
&nbsp;&nbsp;alias :th_multiplayer_map_update :update<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;th_multiplayer_map_update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_player2.update if &#36;game_player2<br />
&nbsp;&nbsp;end<br />
end</code></div></div>
</div></div><span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Domyślne sterowanie dla gracza nr 2:<br />
W -krok do góry<br />
A -krok w lewo<br />
S -krok w dół<br />
D -krok w prawo<br />
Q -przycisk akcji<br />
SHIFT- sprint<br />
<br />
<span style="font-weight: bold;">Gracz 2 pojawia się na spawnie drużyny.<br />
Gracze nie blokują się na mapie.</span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Dziennik Misji]]></title>
			<link>https://forum.ultimateam.pl/Thread-VXAce-Dziennik-Misji</link>
			<pubDate>Sun, 17 May 2015 13:39:23 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-VXAce-Dziennik-Misji</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Quest Journal ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt dodaje do gry dziennik misji, który pozwala sprawdzać w każdym momencie nasze aktualne, zakończone i nieudane misje. Jest on dość prosty w obsłudze jeśli ktoś choć odrobinę zna angielski. Przetłumaczyłem chwilowo tylko część wyświetlaną, a komentarze postaram się przetłumaczyć w najbliższym czasie. Jeśli ktoś nie będzie umiał ustawić questów, polecam pobrać demo i otworzyć w rpg makerze... Skrypt jest bardzo długi więc daje link. Dodałem tutorial pokazujący jak używać tego skryptu, link w dodatkowych informacjach.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Modern Algebra<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>http://pastebin.com/fjBhWa2M</code></div></div>
</div></div><span style="color: red;"><span style="font-weight: bold;">Screeny:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><img class="postimage" src="http://s9.postimg.org/xqkg17zcf/qj1.png" border="0" alt="[Obrazek: qj1.png]" /><br />
<img class="postimage" src="https://imagizer.imageshack.us/v2/640x480q90/540/EhTabA.png" border="0" alt="[Obrazek: EhTabA.png]" /><br />
[img][/img]<br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Demo:</span></span><br />
<a href="http://www.mediafire.com/download/sy17loho2mofc02/Unofficial+Quest+Journal+Demo.exe" target="_blank"><img class="postimage" src="http://www.ultimateam.pl/images/demo_download.png" border="0" alt="[Obrazek: demo_download.png]" /></a><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Demo nie jest moje, jego autorem jest Brady <a href="http://rmrk.net/index.php/topic,45127.msg528094.html#msg528094" target="_blank">http://rmrk.net/index.php/topic,45127.ms...#msg528094</a> <br />
Strona skryptu: <a href="http://rmrk.net/index.php?topic=45127.0" target="_blank">http://rmrk.net/index.php?topic=45127.0</a><br />
Link do tutoriala zrobionego przeze mnie: <a href="http://forum.ultimateam.pl/Thread-VXAce-Dziennik-Misji--2292" target="_blank">http://forum.ultimateam.pl/Thread-VXAce-...isji--2292</a>]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Quest Journal ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt dodaje do gry dziennik misji, który pozwala sprawdzać w każdym momencie nasze aktualne, zakończone i nieudane misje. Jest on dość prosty w obsłudze jeśli ktoś choć odrobinę zna angielski. Przetłumaczyłem chwilowo tylko część wyświetlaną, a komentarze postaram się przetłumaczyć w najbliższym czasie. Jeśli ktoś nie będzie umiał ustawić questów, polecam pobrać demo i otworzyć w rpg makerze... Skrypt jest bardzo długi więc daje link. Dodałem tutorial pokazujący jak używać tego skryptu, link w dodatkowych informacjach.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Modern Algebra<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>http://pastebin.com/fjBhWa2M</code></div></div>
</div></div><span style="color: red;"><span style="font-weight: bold;">Screeny:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><img class="postimage" src="http://s9.postimg.org/xqkg17zcf/qj1.png" border="0" alt="[Obrazek: qj1.png]" /><br />
<img class="postimage" src="https://imagizer.imageshack.us/v2/640x480q90/540/EhTabA.png" border="0" alt="[Obrazek: EhTabA.png]" /><br />
[img][/img]<br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Demo:</span></span><br />
<a href="http://www.mediafire.com/download/sy17loho2mofc02/Unofficial+Quest+Journal+Demo.exe" target="_blank"><img class="postimage" src="http://www.ultimateam.pl/images/demo_download.png" border="0" alt="[Obrazek: demo_download.png]" /></a><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Demo nie jest moje, jego autorem jest Brady <a href="http://rmrk.net/index.php/topic,45127.msg528094.html#msg528094" target="_blank">http://rmrk.net/index.php/topic,45127.ms...#msg528094</a> <br />
Strona skryptu: <a href="http://rmrk.net/index.php?topic=45127.0" target="_blank">http://rmrk.net/index.php?topic=45127.0</a><br />
Link do tutoriala zrobionego przeze mnie: <a href="http://forum.ultimateam.pl/Thread-VXAce-Dziennik-Misji--2292" target="_blank">http://forum.ultimateam.pl/Thread-VXAce-...isji--2292</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Bestiariusz]]></title>
			<link>https://forum.ultimateam.pl/Thread-VXAce-Bestiariusz</link>
			<pubDate>Sat, 16 May 2015 23:18:11 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-VXAce-Bestiariusz</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Fantasy Bestiary ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Ten skrypt dodaje do gry bestiariusz, czyli taką księgę potworów. Skrypt jest bardzo długi, więc daje link do niego. Jest on w  bardzo niewielkim stopniu przetłumaczony przeze mnie. Postaram się przetłumaczyć najważniejsze komentarze, ale dzisiaj już nie mam czasu... <br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Shadowmaster<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>http://pastebin.com/1BDbfUuv</code></div></div>
</div></div><span style="color: red;"><span style="font-weight: bold;">Screeny:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><img class="postimage" src="https://imagizer.imageshack.us/v2/640x480q90/538/tCcmuw.png" border="0" alt="[Obrazek: tCcmuw.png]" /><br />
<img class="postimage" src="https://imagizer.imageshack.us/v2/640x480q90/661/lssU8Q.png" border="0" alt="[Obrazek: lssU8Q.png]" /><br />
<img class="postimage" src="https://imagizer.imageshack.us/v2/640x479q90/661/vCKjVM.png" border="0" alt="[Obrazek: vCKjVM.png]" /><br />
<img class="postimage" src="https://imagizer.imageshack.us/v2/640x480q90/540/GvYu5l.png" border="0" alt="[Obrazek: GvYu5l.png]" /><br />
<img class="postimage" src="http://www.crimson-castle.co.uk/images/RPGMaker/fantasybestiary4.png" border="0" alt="[Obrazek: fantasybestiary4.png]" /><br />
</div></div>]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Fantasy Bestiary ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Ten skrypt dodaje do gry bestiariusz, czyli taką księgę potworów. Skrypt jest bardzo długi, więc daje link do niego. Jest on w  bardzo niewielkim stopniu przetłumaczony przeze mnie. Postaram się przetłumaczyć najważniejsze komentarze, ale dzisiaj już nie mam czasu... <br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Shadowmaster<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>http://pastebin.com/1BDbfUuv</code></div></div>
</div></div><span style="color: red;"><span style="font-weight: bold;">Screeny:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><img class="postimage" src="https://imagizer.imageshack.us/v2/640x480q90/538/tCcmuw.png" border="0" alt="[Obrazek: tCcmuw.png]" /><br />
<img class="postimage" src="https://imagizer.imageshack.us/v2/640x480q90/661/lssU8Q.png" border="0" alt="[Obrazek: lssU8Q.png]" /><br />
<img class="postimage" src="https://imagizer.imageshack.us/v2/640x479q90/661/vCKjVM.png" border="0" alt="[Obrazek: vCKjVM.png]" /><br />
<img class="postimage" src="https://imagizer.imageshack.us/v2/640x480q90/540/GvYu5l.png" border="0" alt="[Obrazek: GvYu5l.png]" /><br />
<img class="postimage" src="http://www.crimson-castle.co.uk/images/RPGMaker/fantasybestiary4.png" border="0" alt="[Obrazek: fantasybestiary4.png]" /><br />
</div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Volume Control in Menu]]></title>
			<link>https://forum.ultimateam.pl/Thread-VXAce-Volume-Control-in-Menu</link>
			<pubDate>Fri, 03 Oct 2014 14:01:01 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-VXAce-Volume-Control-in-Menu</guid>
			<description><![CDATA[<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt dodaje opcje "volume settings" która pozwala na zmianę stopnia głośności BGM BGS SE itd<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Crisis<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
Z japońskiego na angielski Crisis <br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code># encoding: utf-8<br />
#===============================================================================&#8203;<br />
# �¡ Volume Control For RGSS3<br />
#-------------------------------------------------------------------------------<br />
#�@2011/12/01�@Ru/‚Þ‚Á‚­R<br />
#-------------------------------------------------------------------------------<br />
#�@Adds the ability to change volume control. <br />
#<br />
#�@�œ The following methods are added to the Audio Module<br />
#�@Audio.volBGM �c�c Maximum BGM volume setting.<br />
#�@Audio.volBGS �c�c Maximum BGS volume setting. <br />
#�@Audio.volSE&nbsp;&nbsp;�c�c Maximum SE volume setting. <br />
#�@Audio.volME&nbsp;&nbsp;�c�c&nbsp;&nbsp;Maximum ME volume setting. <br />
#�@Audio.volBGM=�”’l �c�cSet BGM maximum volume (0-100)<br />
#�@Audio.volBGM=�”’l �c�c Set BGS maximum volume (0-100)<br />
#�@Audio.volSE=�”’l&nbsp;&nbsp;�c�c Set SE maximum volume (0-100)<br />
#�@Audio.volME=�”’l&nbsp;&nbsp;�c�c Set ME maximum volume (0-100)<br />
#<br />
#�@�œ Volume control is added to the main menu.<br />
#<br />
#-------------------------------------------------------------------------------<br />
# �yKnown Issues�z<br />
#�@Created before VXAce's official release so unable to properly test. <br />
#-------------------------------------------------------------------------------<br />
 <br />
#==============================================================================<br />
# �œ Settings<br />
#==============================================================================<br />
module HZM_VXA<br />
&nbsp;&nbsp;module AudioVol<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Display Volume Control on Main Menu?<br />
&nbsp;&nbsp;&nbsp;&nbsp;# �@true&nbsp;&nbsp;�c�c Display.<br />
&nbsp;&nbsp;&nbsp;&nbsp;# �@false �c�c Don't Display.<br />
&nbsp;&nbsp;&nbsp;&nbsp;MENU_FLAG = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Volume Control Name in Main Menu.<br />
&nbsp;&nbsp;&nbsp;&nbsp;MENU_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= "Volume Settings" <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Volume Control Settings Name.<br />
&nbsp;&nbsp;&nbsp;&nbsp;CONFIG_BGM_NAME&nbsp;&nbsp;= "BGM"<br />
&nbsp;&nbsp;&nbsp;&nbsp;CONFIG_BGS_NAME&nbsp;&nbsp;= "BGS"<br />
&nbsp;&nbsp;&nbsp;&nbsp;CONFIG_SE_NAME&nbsp;&nbsp; = "SE"<br />
&nbsp;&nbsp;&nbsp;&nbsp;CONFIG_ME_NAME&nbsp;&nbsp; = "ME"<br />
&nbsp;&nbsp;&nbsp;&nbsp;CONFIG_EXIT_NAME = "Exit"<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Volume Change Variation.<br />
&nbsp;&nbsp;&nbsp;&nbsp;# ADD_VOL_NORMAL �c�c Variation of Left/Right Keys.<br />
&nbsp;&nbsp;&nbsp;&nbsp;# ADD_VOL_HIGH&nbsp;&nbsp; �c�c Variation of LR Key. <br />
&nbsp;&nbsp;&nbsp;&nbsp;ADD_VOL_NORMAL = 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;ADD_VOL_HIGH&nbsp;&nbsp; = 25<br />
&nbsp;&nbsp;end<br />
end<br />
 <br />
#==============================================================================<br />
# �ª �@ Settings Above �@ �ª<br />
# �«&nbsp;&nbsp;&nbsp;&nbsp; Script Below&nbsp;&nbsp;&nbsp;&nbsp; �«<br />
#==============================================================================<br />
 <br />
# Additonal Methods.<br />
# class &lt;&lt; Audio means we open up the Audio module and all methods defined <br />
# get defined on self (that is, the Audio module itself)<br />
class &lt;&lt; Audio<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def volBGM=(vol)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@hzmVolBGM = normalize_volume(vol)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def volBGS=(vol)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@hzmVolBGS = normalize_volume(vol)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def volSE=(vol)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@hzmVolSE = normalize_volume(vol)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def volME=(vol)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@hzmVolME = normalize_volume(vol)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def volBGM<br />
&nbsp;&nbsp;&nbsp;&nbsp;@hzmVolBGM.nil? ? @hzmVolBGM = 100 : @hzmVolBGM<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def volBGS<br />
&nbsp;&nbsp;&nbsp;&nbsp;@hzmVolBGS.nil? ? @hzmVolBGS = 100 : @hzmVolBGS<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def volSE<br />
&nbsp;&nbsp;&nbsp;&nbsp;@hzmVolSE.nil? ? @hzmVolSE = 100 : @hzmVolSE<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def volME<br />
&nbsp;&nbsp;&nbsp;&nbsp;@hzmVolME.nil? ? @hzmVolME = 100 : @hzmVolME<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;# Make sure volume does not go over 100 or under 0.<br />
&nbsp;&nbsp;def normalize_volume(vol)<br />
&nbsp;&nbsp;&nbsp;&nbsp;vol = 100 if vol &gt; 100<br />
&nbsp;&nbsp;&nbsp;&nbsp;vol = 0&nbsp;&nbsp; if vol &lt; 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;vol<br />
&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;<br />
 <br />
&nbsp;&nbsp;# Playback<br />
 <br />
&nbsp;&nbsp;alias hzm_Vol_Audio_bgm_play bgm_play<br />
&nbsp;&nbsp;def bgm_play(filename, volume=100, pitch=100, pos=0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;volume = self.volBGM * volume.to_f / 100<br />
&nbsp;&nbsp;&nbsp;&nbsp;hzm_Vol_Audio_bgm_play(filename, volume, pitch, pos)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;alias hzm_Vol_Audio_bgs_play bgs_play<br />
&nbsp;&nbsp;def bgs_play(filename, volume=100, pitch=100)<br />
&nbsp;&nbsp;&nbsp;&nbsp;volume = self.volBGS * volume.to_f / 100<br />
&nbsp;&nbsp;&nbsp;&nbsp;hzm_Vol_Audio_bgs_play(filename, volume, pitch)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;alias hzm_Vol_Audio_se_play se_play<br />
&nbsp;&nbsp;def se_play(filename, volume=100, pitch=100)<br />
&nbsp;&nbsp;&nbsp;&nbsp;volume = self.volSE * volume.to_f / 100<br />
&nbsp;&nbsp;&nbsp;&nbsp;hzm_Vol_Audio_se_play(filename, volume, pitch)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;alias hzm_Vol_Audio_me_play me_play<br />
&nbsp;&nbsp;def me_play(filename, volume=100, pitch=100)<br />
&nbsp;&nbsp;&nbsp;&nbsp;volume = self.volME * volume.to_f / 100<br />
&nbsp;&nbsp;&nbsp;&nbsp;hzm_Vol_Audio_me_play(filename, volume, pitch)<br />
&nbsp;&nbsp;end<br />
end<br />
 <br />
# Add To Menu.<br />
if HZM_VXA::AudioVol::MENU_FLAG<br />
&nbsp;&nbsp;class Window_MenuCommand<br />
&nbsp;&nbsp;&nbsp;&nbsp;alias hzm_Vol_Window_MenuCommand_add_original_commands add_original_commands<br />
&nbsp;&nbsp;&nbsp;&nbsp;def add_original_commands<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hzm_Vol_Window_MenuCommand_add_original_commands<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add_command(HZM_VXA::AudioVol::MENU_NAME, :hzm_vxa_vol)&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;class Scene_Menu<br />
&nbsp;&nbsp;&nbsp;&nbsp;alias hzm_Vol_create_command_window create_command_window<br />
&nbsp;&nbsp;&nbsp;&nbsp;def create_command_window<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hzm_Vol_create_command_window<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.set_handler(:hzm_vxa_vol, method(:hzm_vxa_vol))<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def hzm_vxa_vol<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SceneManager.call(HZM_VXA::AudioVol::Scene_VolConfig)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
 <br />
# Volume Change Window<br />
module HZM_VXA<br />
&nbsp;&nbsp;module AudioVol<br />
 <br />
&nbsp;&nbsp;&nbsp;&nbsp;class Window_VolConfig &lt; Window_Command<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super(0, 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.x = (Graphics.width - self.window_width)/2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.y = (Graphics.height - self.window_height)/2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def make_command_list<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add_command(HZM_VXA::AudioVol::CONFIG_BGM_NAME,&nbsp;&nbsp;:bgm)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add_command(HZM_VXA::AudioVol::CONFIG_BGS_NAME,&nbsp;&nbsp;:bgs)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add_command(HZM_VXA::AudioVol::CONFIG_SE_NAME,&nbsp;&nbsp; :se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add_command(HZM_VXA::AudioVol::CONFIG_ME_NAME,&nbsp;&nbsp; :me)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add_command(HZM_VXA::AudioVol::CONFIG_EXIT_NAME, :cancel)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def draw_item(index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return unless index &lt; 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case index<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vol = Audio.volBGM<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vol = Audio.volBGS<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vol = Audio.volSE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vol = Audio.volME<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_text(item_rect_for_text(index), vol, 2) # Draws vol after text, right aligned<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def volAdd(index, val)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case index<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Audio.volBGM += val<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;now = RPG::BGM.last <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Audio.bgm_play('Audio/BGM/' + now.name, now.volume, now.pitch, now.pos) if now<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Audio.volBGS += val<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Audio.volSE += val<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Audio.volME += val<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sound.play_cursor<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;redraw_item(index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def cursor_left(wrap = false)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;volAdd(@index, -HZM_VXA::AudioVol::ADD_VOL_NORMAL)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def cursor_right(wrap = false)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;volAdd(@index,&nbsp;&nbsp;HZM_VXA::AudioVol::ADD_VOL_NORMAL)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def cursor_pageup<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;volAdd(@index,&nbsp;&nbsp;-HZM_VXA::AudioVol::ADD_VOL_HIGH)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def cursor_pagedown<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;volAdd(@index,&nbsp;&nbsp;HZM_VXA::AudioVol::ADD_VOL_HIGH)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;class Scene_VolConfig &lt; Scene_MenuBase<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def start<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window = Window_VolConfig.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.viewport = @viewport<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.set_handler(:cancel,&nbsp;&nbsp; method(:return_scene))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def terminate<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
 <br />
# Reading/Saving<br />
class &lt;&lt; DataManager<br />
&nbsp;&nbsp;alias hzm_Vol_make_save_contents make_save_contents<br />
&nbsp;&nbsp;def make_save_contents<br />
&nbsp;&nbsp;&nbsp;&nbsp;contents = hzm_Vol_make_save_contents<br />
&nbsp;&nbsp;&nbsp;&nbsp;contents[:hzm_vxa_vol]&nbsp;&nbsp; = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:bgm =&gt; Audio.volBGM,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:bgs =&gt; Audio.volBGS,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:se&nbsp;&nbsp;=&gt; Audio.volSE,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:me&nbsp;&nbsp;=&gt; Audio.volME<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;contents<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;alias hzm_Vol_extract_save_contents extract_save_contents<br />
&nbsp;&nbsp;def extract_save_contents(contents)<br />
&nbsp;&nbsp;&nbsp;&nbsp;hzm_Vol_extract_save_contents(contents)<br />
&nbsp;&nbsp;&nbsp;&nbsp;Audio.volBGM = contents[:hzm_vxa_vol][:bgm]<br />
&nbsp;&nbsp;&nbsp;&nbsp;Audio.volBGS = contents[:hzm_vxa_vol][:bgs]<br />
&nbsp;&nbsp;&nbsp;&nbsp;Audio.volSE&nbsp;&nbsp;= contents[:hzm_vxa_vol][:se]<br />
&nbsp;&nbsp;&nbsp;&nbsp;Audio.volME&nbsp;&nbsp;= contents[:hzm_vxa_vol][:me]<br />
&nbsp;&nbsp;end<br />
end</code></div></div>
</div></div><span style="color: red;"><span style="font-weight: bold;">Screeny:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;">[img]<a href="http://www.tinypic.pl/hso3l4ymfsfp" target="_blank"><img class="postimage" src="http://images.tinypic.pl/i/00582/hso3l4ymfsfp_t.jpg" border="0" alt="[Obrazek: hso3l4ymfsfp_t.jpg]" /></a><a href="http://www.tinypic.pl/e3w7pn6yjdmg" target="_blank"><img class="postimage" src="http://images.tinypic.pl/i/00582/e3w7pn6yjdmg_t.jpg" border="0" alt="[Obrazek: e3w7pn6yjdmg_t.jpg]" /></a>[/img]<br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Demo:</span></span><br />
<a href="http://Nie%20potrzebne%20" target="_blank"><img class="postimage" src="http://www.ultimateam.pl/images/demo_download.png" border="0" alt="[Obrazek: demo_download.png]" /></a><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Wkleić nad main]]></description>
			<content:encoded><![CDATA[<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt dodaje opcje "volume settings" która pozwala na zmianę stopnia głośności BGM BGS SE itd<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Crisis<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
Z japońskiego na angielski Crisis <br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code># encoding: utf-8<br />
#===============================================================================&#8203;<br />
# �¡ Volume Control For RGSS3<br />
#-------------------------------------------------------------------------------<br />
#�@2011/12/01�@Ru/‚Þ‚Á‚­R<br />
#-------------------------------------------------------------------------------<br />
#�@Adds the ability to change volume control. <br />
#<br />
#�@�œ The following methods are added to the Audio Module<br />
#�@Audio.volBGM �c�c Maximum BGM volume setting.<br />
#�@Audio.volBGS �c�c Maximum BGS volume setting. <br />
#�@Audio.volSE&nbsp;&nbsp;�c�c Maximum SE volume setting. <br />
#�@Audio.volME&nbsp;&nbsp;�c�c&nbsp;&nbsp;Maximum ME volume setting. <br />
#�@Audio.volBGM=�”’l �c�cSet BGM maximum volume (0-100)<br />
#�@Audio.volBGM=�”’l �c�c Set BGS maximum volume (0-100)<br />
#�@Audio.volSE=�”’l&nbsp;&nbsp;�c�c Set SE maximum volume (0-100)<br />
#�@Audio.volME=�”’l&nbsp;&nbsp;�c�c Set ME maximum volume (0-100)<br />
#<br />
#�@�œ Volume control is added to the main menu.<br />
#<br />
#-------------------------------------------------------------------------------<br />
# �yKnown Issues�z<br />
#�@Created before VXAce's official release so unable to properly test. <br />
#-------------------------------------------------------------------------------<br />
 <br />
#==============================================================================<br />
# �œ Settings<br />
#==============================================================================<br />
module HZM_VXA<br />
&nbsp;&nbsp;module AudioVol<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Display Volume Control on Main Menu?<br />
&nbsp;&nbsp;&nbsp;&nbsp;# �@true&nbsp;&nbsp;�c�c Display.<br />
&nbsp;&nbsp;&nbsp;&nbsp;# �@false �c�c Don't Display.<br />
&nbsp;&nbsp;&nbsp;&nbsp;MENU_FLAG = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Volume Control Name in Main Menu.<br />
&nbsp;&nbsp;&nbsp;&nbsp;MENU_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= "Volume Settings" <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Volume Control Settings Name.<br />
&nbsp;&nbsp;&nbsp;&nbsp;CONFIG_BGM_NAME&nbsp;&nbsp;= "BGM"<br />
&nbsp;&nbsp;&nbsp;&nbsp;CONFIG_BGS_NAME&nbsp;&nbsp;= "BGS"<br />
&nbsp;&nbsp;&nbsp;&nbsp;CONFIG_SE_NAME&nbsp;&nbsp; = "SE"<br />
&nbsp;&nbsp;&nbsp;&nbsp;CONFIG_ME_NAME&nbsp;&nbsp; = "ME"<br />
&nbsp;&nbsp;&nbsp;&nbsp;CONFIG_EXIT_NAME = "Exit"<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Volume Change Variation.<br />
&nbsp;&nbsp;&nbsp;&nbsp;# ADD_VOL_NORMAL �c�c Variation of Left/Right Keys.<br />
&nbsp;&nbsp;&nbsp;&nbsp;# ADD_VOL_HIGH&nbsp;&nbsp; �c�c Variation of LR Key. <br />
&nbsp;&nbsp;&nbsp;&nbsp;ADD_VOL_NORMAL = 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;ADD_VOL_HIGH&nbsp;&nbsp; = 25<br />
&nbsp;&nbsp;end<br />
end<br />
 <br />
#==============================================================================<br />
# �ª �@ Settings Above �@ �ª<br />
# �«&nbsp;&nbsp;&nbsp;&nbsp; Script Below&nbsp;&nbsp;&nbsp;&nbsp; �«<br />
#==============================================================================<br />
 <br />
# Additonal Methods.<br />
# class &lt;&lt; Audio means we open up the Audio module and all methods defined <br />
# get defined on self (that is, the Audio module itself)<br />
class &lt;&lt; Audio<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def volBGM=(vol)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@hzmVolBGM = normalize_volume(vol)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def volBGS=(vol)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@hzmVolBGS = normalize_volume(vol)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def volSE=(vol)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@hzmVolSE = normalize_volume(vol)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def volME=(vol)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@hzmVolME = normalize_volume(vol)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def volBGM<br />
&nbsp;&nbsp;&nbsp;&nbsp;@hzmVolBGM.nil? ? @hzmVolBGM = 100 : @hzmVolBGM<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def volBGS<br />
&nbsp;&nbsp;&nbsp;&nbsp;@hzmVolBGS.nil? ? @hzmVolBGS = 100 : @hzmVolBGS<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def volSE<br />
&nbsp;&nbsp;&nbsp;&nbsp;@hzmVolSE.nil? ? @hzmVolSE = 100 : @hzmVolSE<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def volME<br />
&nbsp;&nbsp;&nbsp;&nbsp;@hzmVolME.nil? ? @hzmVolME = 100 : @hzmVolME<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;# Make sure volume does not go over 100 or under 0.<br />
&nbsp;&nbsp;def normalize_volume(vol)<br />
&nbsp;&nbsp;&nbsp;&nbsp;vol = 100 if vol &gt; 100<br />
&nbsp;&nbsp;&nbsp;&nbsp;vol = 0&nbsp;&nbsp; if vol &lt; 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;vol<br />
&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;<br />
 <br />
&nbsp;&nbsp;# Playback<br />
 <br />
&nbsp;&nbsp;alias hzm_Vol_Audio_bgm_play bgm_play<br />
&nbsp;&nbsp;def bgm_play(filename, volume=100, pitch=100, pos=0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;volume = self.volBGM * volume.to_f / 100<br />
&nbsp;&nbsp;&nbsp;&nbsp;hzm_Vol_Audio_bgm_play(filename, volume, pitch, pos)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;alias hzm_Vol_Audio_bgs_play bgs_play<br />
&nbsp;&nbsp;def bgs_play(filename, volume=100, pitch=100)<br />
&nbsp;&nbsp;&nbsp;&nbsp;volume = self.volBGS * volume.to_f / 100<br />
&nbsp;&nbsp;&nbsp;&nbsp;hzm_Vol_Audio_bgs_play(filename, volume, pitch)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;alias hzm_Vol_Audio_se_play se_play<br />
&nbsp;&nbsp;def se_play(filename, volume=100, pitch=100)<br />
&nbsp;&nbsp;&nbsp;&nbsp;volume = self.volSE * volume.to_f / 100<br />
&nbsp;&nbsp;&nbsp;&nbsp;hzm_Vol_Audio_se_play(filename, volume, pitch)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;alias hzm_Vol_Audio_me_play me_play<br />
&nbsp;&nbsp;def me_play(filename, volume=100, pitch=100)<br />
&nbsp;&nbsp;&nbsp;&nbsp;volume = self.volME * volume.to_f / 100<br />
&nbsp;&nbsp;&nbsp;&nbsp;hzm_Vol_Audio_me_play(filename, volume, pitch)<br />
&nbsp;&nbsp;end<br />
end<br />
 <br />
# Add To Menu.<br />
if HZM_VXA::AudioVol::MENU_FLAG<br />
&nbsp;&nbsp;class Window_MenuCommand<br />
&nbsp;&nbsp;&nbsp;&nbsp;alias hzm_Vol_Window_MenuCommand_add_original_commands add_original_commands<br />
&nbsp;&nbsp;&nbsp;&nbsp;def add_original_commands<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hzm_Vol_Window_MenuCommand_add_original_commands<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add_command(HZM_VXA::AudioVol::MENU_NAME, :hzm_vxa_vol)&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;class Scene_Menu<br />
&nbsp;&nbsp;&nbsp;&nbsp;alias hzm_Vol_create_command_window create_command_window<br />
&nbsp;&nbsp;&nbsp;&nbsp;def create_command_window<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hzm_Vol_create_command_window<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.set_handler(:hzm_vxa_vol, method(:hzm_vxa_vol))<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def hzm_vxa_vol<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SceneManager.call(HZM_VXA::AudioVol::Scene_VolConfig)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
 <br />
# Volume Change Window<br />
module HZM_VXA<br />
&nbsp;&nbsp;module AudioVol<br />
 <br />
&nbsp;&nbsp;&nbsp;&nbsp;class Window_VolConfig &lt; Window_Command<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super(0, 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.x = (Graphics.width - self.window_width)/2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.y = (Graphics.height - self.window_height)/2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def make_command_list<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add_command(HZM_VXA::AudioVol::CONFIG_BGM_NAME,&nbsp;&nbsp;:bgm)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add_command(HZM_VXA::AudioVol::CONFIG_BGS_NAME,&nbsp;&nbsp;:bgs)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add_command(HZM_VXA::AudioVol::CONFIG_SE_NAME,&nbsp;&nbsp; :se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add_command(HZM_VXA::AudioVol::CONFIG_ME_NAME,&nbsp;&nbsp; :me)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add_command(HZM_VXA::AudioVol::CONFIG_EXIT_NAME, :cancel)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def draw_item(index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return unless index &lt; 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case index<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vol = Audio.volBGM<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vol = Audio.volBGS<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vol = Audio.volSE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vol = Audio.volME<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_text(item_rect_for_text(index), vol, 2) # Draws vol after text, right aligned<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def volAdd(index, val)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case index<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Audio.volBGM += val<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;now = RPG::BGM.last <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Audio.bgm_play('Audio/BGM/' + now.name, now.volume, now.pitch, now.pos) if now<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Audio.volBGS += val<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Audio.volSE += val<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Audio.volME += val<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sound.play_cursor<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;redraw_item(index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def cursor_left(wrap = false)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;volAdd(@index, -HZM_VXA::AudioVol::ADD_VOL_NORMAL)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def cursor_right(wrap = false)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;volAdd(@index,&nbsp;&nbsp;HZM_VXA::AudioVol::ADD_VOL_NORMAL)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def cursor_pageup<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;volAdd(@index,&nbsp;&nbsp;-HZM_VXA::AudioVol::ADD_VOL_HIGH)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def cursor_pagedown<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;volAdd(@index,&nbsp;&nbsp;HZM_VXA::AudioVol::ADD_VOL_HIGH)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;class Scene_VolConfig &lt; Scene_MenuBase<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def start<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window = Window_VolConfig.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.viewport = @viewport<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.set_handler(:cancel,&nbsp;&nbsp; method(:return_scene))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def terminate<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
 <br />
# Reading/Saving<br />
class &lt;&lt; DataManager<br />
&nbsp;&nbsp;alias hzm_Vol_make_save_contents make_save_contents<br />
&nbsp;&nbsp;def make_save_contents<br />
&nbsp;&nbsp;&nbsp;&nbsp;contents = hzm_Vol_make_save_contents<br />
&nbsp;&nbsp;&nbsp;&nbsp;contents[:hzm_vxa_vol]&nbsp;&nbsp; = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:bgm =&gt; Audio.volBGM,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:bgs =&gt; Audio.volBGS,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:se&nbsp;&nbsp;=&gt; Audio.volSE,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:me&nbsp;&nbsp;=&gt; Audio.volME<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;contents<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;alias hzm_Vol_extract_save_contents extract_save_contents<br />
&nbsp;&nbsp;def extract_save_contents(contents)<br />
&nbsp;&nbsp;&nbsp;&nbsp;hzm_Vol_extract_save_contents(contents)<br />
&nbsp;&nbsp;&nbsp;&nbsp;Audio.volBGM = contents[:hzm_vxa_vol][:bgm]<br />
&nbsp;&nbsp;&nbsp;&nbsp;Audio.volBGS = contents[:hzm_vxa_vol][:bgs]<br />
&nbsp;&nbsp;&nbsp;&nbsp;Audio.volSE&nbsp;&nbsp;= contents[:hzm_vxa_vol][:se]<br />
&nbsp;&nbsp;&nbsp;&nbsp;Audio.volME&nbsp;&nbsp;= contents[:hzm_vxa_vol][:me]<br />
&nbsp;&nbsp;end<br />
end</code></div></div>
</div></div><span style="color: red;"><span style="font-weight: bold;">Screeny:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;">[img]<a href="http://www.tinypic.pl/hso3l4ymfsfp" target="_blank"><img class="postimage" src="http://images.tinypic.pl/i/00582/hso3l4ymfsfp_t.jpg" border="0" alt="[Obrazek: hso3l4ymfsfp_t.jpg]" /></a><a href="http://www.tinypic.pl/e3w7pn6yjdmg" target="_blank"><img class="postimage" src="http://images.tinypic.pl/i/00582/e3w7pn6yjdmg_t.jpg" border="0" alt="[Obrazek: e3w7pn6yjdmg_t.jpg]" /></a>[/img]<br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Demo:</span></span><br />
<a href="http://Nie%20potrzebne%20" target="_blank"><img class="postimage" src="http://www.ultimateam.pl/images/demo_download.png" border="0" alt="[Obrazek: demo_download.png]" /></a><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Wkleić nad main]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Skrypt na screenshot z całej mapy !]]></title>
			<link>https://forum.ultimateam.pl/Thread-VXAce-Skrypt-na-screenshot-z-ca%C5%82ej-mapy</link>
			<pubDate>Sat, 09 Aug 2014 21:51:03 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-VXAce-Skrypt-na-screenshot-z-ca%C5%82ej-mapy</guid>
			<description><![CDATA[<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt pozwala robić screen z całej mapy. <br />
Wystarczy wstawić go do projektu i w trakcie testowania gry nacisnąć F7.<br />
Skrypt utworzy screen z całej mapy.<br />
<br />
<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Hime <br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>=begin<br />
#===============================================================================&#8203;<br />
 Title: Map Screenshot<br />
 Author: Hime<br />
 Date: Apr 15, 2013<br />
--------------------------------------------------------------------------------<br />
 ** Change log<br />
 Apr 15, 2013<br />
&nbsp;&nbsp; - updated script to use GDI+ interface<br />
&nbsp;&nbsp; - added support for region map overlay and passage map overlay<br />
 Apr 6, 2013<br />
&nbsp;&nbsp; - fixed bug where drawing events crashed the game<br />
 Apr 2, 2013<br />
&nbsp;&nbsp; - map data is now setup by an instance of Game_Map, to account for custom<br />
&nbsp;&nbsp;&nbsp;&nbsp; map scripts adding to the map<br />
 Jul 27<br />
&nbsp;&nbsp; - Export dirNames are now optional<br />
 May 28<br />
&nbsp;&nbsp; - updated overlay mapping compatibility to draw the overlays <br />
&nbsp;&nbsp;&nbsp;&nbsp; based on the player's current position<br />
&nbsp;&nbsp; - fixed issue where import hash was commented out<br />
&nbsp;&nbsp; - Added support for Yami's overlay mapping<br />
 May 24, 2012<br />
&nbsp;&nbsp; - fixed large characters<br />
&nbsp;&nbsp; - some optimizations for calculating bounds and dimensions<br />
 May 5, 2012<br />
&nbsp;&nbsp; - fixed waterfall autotile<br />
&nbsp;&nbsp; - added screenshot feature<br />
 May 4, 2012<br />
&nbsp;&nbsp; - fixed tiles with alpha channel<br />
&nbsp;&nbsp; - fixed shadows<br />
&nbsp;&nbsp; - fixed wall autotiles<br />
 May 1, 2012<br />
&nbsp;&nbsp; - fixed wall autotile, although there is still an issue with some tiles<br />
 Apr 29, 2012<br />
&nbsp;&nbsp; - fixed shadow map drawing<br />
&nbsp;&nbsp; - added region highlighting<br />
&nbsp;&nbsp; - added damage tile highlighting<br />
 Apr 28, 2012<br />
&nbsp;&nbsp; - Initial Release<br />
------------------------------------------------------------------------------<br />
 ** Description<br />
 <br />
 This script allows you to take a full image of any of your game's maps<br />
 and export. An image of the map is referred to as a "mapshot" (as opposed to<br />
 screenshot).<br />
 <br />
 The script provides various configuration options to control what kinds of<br />
 things you want to see on your map, such as events, vehicles, region ID's, or<br />
 specific tile properties.<br />
 <br />
------------------------------------------------------------------------------<br />
 ** Usage<br />
 <br />
 The default key for taking a mapshot is F7. This can be changed in the<br />
 configuration section.<br />
 <br />
 To take a mapshot, first start the game, and then hit F7.<br />
 A message will appear informing you that a mapshot was successfully taken.<br />
 <br />
 Alternatively, you can use script calls to take mapshots.<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;Map_Saver.new(map_id).export<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
 Aside from exporting images, you are able to use the image that the<br />
 map saver captures.<br />
 <br />
&nbsp;&nbsp; ms = Map_Saver.new(map_id)<br />
&nbsp;&nbsp; bmp = ms.map_image<br />
&nbsp;&nbsp; <br />
 This gives you a reference to a Bitmap object that contains an image of<br />
 your map.<br />
--------------------------------------------------------------------------------<br />
&nbsp;&nbsp;** Credits<br />
 <br />
&nbsp;&nbsp;Cremno<br />
&nbsp;&nbsp;&nbsp;&nbsp;-GDI+ interface code<br />
&nbsp;&nbsp;Cidiomar<br />
&nbsp;&nbsp;&nbsp;&nbsp;-for drawing autotiles and shadows, <br />
&nbsp;&nbsp;&nbsp;&nbsp;-providing efficient bmp and png exporters<br />
&nbsp;&nbsp;Moon<br />
&nbsp;&nbsp;&nbsp;&nbsp;-auto-tile related info<br />
&nbsp;&nbsp;Mephistox<br />
&nbsp;&nbsp;&nbsp;&nbsp;-testing and suggestions<br />
================================================================================&#8203;<br />
=end<br />
&#36;imported = {} if &#36;imported.nil?<br />
&#36;imported["TH_MapSaver"] = true<br />
#===============================================================================&#8203;<br />
# ** Configuration<br />
#===============================================================================&#8203;<br />
module TH<br />
&nbsp;&nbsp;module Map_Saver<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;#Mapshot options. This takes an image of the entire map<br />
&nbsp;&nbsp;&nbsp;&nbsp;Mapshot_Button = Input::F7<br />
&nbsp;&nbsp;&nbsp;&nbsp;Mapshot_Scale = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;#Screenshot options. This takes an image of the visible map<br />
&nbsp;&nbsp;&nbsp;&nbsp;Screenshot_Button = Input::F6<br />
&nbsp;&nbsp;&nbsp;&nbsp;Screenshot_Scale = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;#Folder that the map will be exported to<br />
&nbsp;&nbsp;&nbsp;&nbsp;Mapshot_Directory = "Mapshots"<br />
&nbsp;&nbsp;&nbsp;&nbsp;Screenshot_Directory = "Screenshots"<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;# format you want to export to. You should stick with png.<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Options: [bmp, png] <br />
&nbsp;&nbsp;&nbsp;&nbsp;Export_Format = "png"<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Sprite draw options<br />
&nbsp;&nbsp;&nbsp;&nbsp;Draw_Events = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;Draw_Player = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;Draw_Followers = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;Draw_Vehicles = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;#Should shadows be drawn? What color?<br />
&nbsp;&nbsp;&nbsp;&nbsp;Draw_Shadow = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;Shadow_Color = Color.new(0, 0, 0, 128)<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Should regions be drawn? Requires "Region Overlay Map" script<br />
&nbsp;&nbsp;&nbsp;&nbsp;Draw_Regions = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Should passage settings be drawn? Requires "Passage Overlay Map" script<br />
&nbsp;&nbsp;&nbsp;&nbsp;Draw_Passages = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;#Should damage tiles be highlighted? What color?<br />
&nbsp;&nbsp;&nbsp;&nbsp;Highlight_Damage = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;Damage_Color = Color.new(128, 0, 0, 128)<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
#==============================================================================<br />
# ** Module: Map_Tiles<br />
# Contains data and methods useful for working with maps and tiles<br />
#==============================================================================<br />
<br />
module Map_Tiles<br />
&nbsp;&nbsp;AUTOTILE_PARTS = [[18,17,14,13], [ 2,14,17,18], [13, 3,17,18], [ 2, 3,17,18],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[13,14,17, 7], [ 2,14,17, 7], [13, 3,17, 7], [ 2, 3,17, 7],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[13,14, 6,18], [ 2,14, 6,18], [13, 3, 6,18], [ 2, 3, 6,18],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[13,14, 6, 7], [ 2,14, 6, 7], [13, 3, 6, 7], [ 2, 3, 6, 7],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[16,17,12,13], [16, 3,12,13], [16,17,12, 7], [12, 3,16, 7], <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[10, 9,14,13], [10, 9,14, 7], [10, 9, 6,13], [10, 9, 6, 7],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[18,19,14,15], [18,19, 6,15], [ 2,19,14,15], [ 2,19, 6,15],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[18,17,22,21], [ 2,17,22,21], [18, 3,22,21], [ 2, 3,21,22],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[16,19,12,15], [10, 9,22,21], [ 8, 9,12,13], [ 8, 9,12, 7],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[10,11,14,15], [10,11, 6,15], [18,19,22,23], [ 2,19,22,23],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[16,17,20,21], [16, 3,20,21], [ 8,11,12,15], [ 8, 9,20,21],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[16,19,20,23], [10,11,22,23], [ 8,11,20,23], [ 0, 1, 4, 5]]<br />
&nbsp;&nbsp;WATERFALL_PIECES = [[ 2, 1, 6, 5], [ 0, 1, 4, 5], [ 2, 3, 6, 7], [0, 3, 4, 7]]<br />
&nbsp;&nbsp;WALL_PIECES =&nbsp;&nbsp;[[10, 9, 6, 5], [ 8, 9, 4, 5], [ 2, 1, 6, 5], [ 0, 1, 4, 5],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[10,11, 6, 7], [ 8,11, 4, 7], [ 2, 3, 6, 7], [ 0, 3, 4, 7],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[10, 9,14,13], [ 8, 9,12,13], [ 2, 1,14,13], [ 0, 1,12,13],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[10,11,14,15], [8, 11,12,15], [ 2, 3,14,15], [ 0, 3,12,15]]<br />
<br />
&nbsp;&nbsp;A1_TILES = [[0, 0], [0, 96], [192, 0], [192, 96],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [256, 0], [448, 0], [256, 96], [448, 96],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [0, 192], [192, 192], [0, 288], [192, 288],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [256, 192], [448, 192], [256, 288], [448, 288]]<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Checks if a tile is a wall<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def is_wall?(data)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(2288, 2335)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(2384, 2431)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(2480, 2527)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(2576, 2623)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(2672, 2719)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(2768, 2815)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(4736, 5119)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(5504, 5887)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(6272, 6655)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(7040, 7423)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data &gt; 7807<br />
&nbsp;&nbsp;&nbsp;&nbsp;false<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Checks if a tile is roof<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def is_roof?(data)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(4352, 4735)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(5120, 5503)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(5888, 6271)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(6656, 7039)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(7424, 7807)<br />
&nbsp;&nbsp;&nbsp;&nbsp;false<br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Checks if a tile is soil<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def is_soil?(data)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(2816, 4351) &amp;&amp; !is_table?(data)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data &gt; 1663 &amp;&amp; !is_stair?(data)<br />
&nbsp;&nbsp;&nbsp;&nbsp;false<br />
&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Checks if a tile is a stair<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def is_stair?(data)<br />
&nbsp;&nbsp;&nbsp;&nbsp; return true if data.between?(1541, 1542)<br />
&nbsp;&nbsp;&nbsp;&nbsp; return true if data.between?(1549, 1550)<br />
&nbsp;&nbsp;&nbsp;&nbsp; return true if data.between?(1600, 1615)<br />
&nbsp;&nbsp;&nbsp;&nbsp; false<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Checks if a tile is a table<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def is_table?(data)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(3152, 3199)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(3536, 3583)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(3920, 3967)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(4304, 4351)<br />
&nbsp;&nbsp;&nbsp;&nbsp;false<br />
&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * The tileset to be used<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def tileset<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;data_tilesets[@tileset_id]<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Region ID<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def region_id(x, y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;valid?(x, y) ? @map.data[x, y, 3] &gt;&gt; 8 : 0<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Gets all of the tiles for each layer at position x,y<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def layered_tiles(x, y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;[2, 1, 0].collect {|z| @map.data[x, y, z] }<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def layered_tiles_flag?(x, y, bit)<br />
&nbsp;&nbsp;&nbsp;&nbsp;layered_tiles(x, y).any? {|tile_id| tileset.flags[tile_id] &amp; bit != 0 }<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp;def valid?(x, y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;x &gt;= 0 &amp;&amp; x &lt; width &amp;&amp; y &gt;= 0 &amp;&amp; y &lt; height<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def damage_floor?(x, y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;valid?(x, y) &amp;&amp; layered_tiles_flag?(x, y, 0x100)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Specifies which type of autotile is used<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def auto_tile(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;id / 48<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Specifies the specific arrangement of autotiles used<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def auto_index(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;id % 48<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Put the auto-tile pieces together<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def make_autotile(rects, sx, sy)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tile.clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;for i in 0...4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@auto_rect.x = (rects[i] % 4) * 16 + sx<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@auto_rect.y = (rects[i] / 4) * 16 + sy<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@tile.blt((i % 2) * 16,(i / 2) * 16, @tilemap, @auto_rect)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get auto-tile A1 tiles<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def autotile_A1(tile_id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tilemap = @bitmaps[0]<br />
&nbsp;&nbsp;&nbsp;&nbsp;autotile = tile_id / 48<br />
&nbsp;&nbsp;&nbsp;&nbsp;auto_id = tile_id % 48<br />
&nbsp;&nbsp;&nbsp;&nbsp;sx, sy = A1_TILES[autotile]<br />
&nbsp;&nbsp;&nbsp;&nbsp;if is_wall?(tile_id + 2048)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rects = WATERFALL_PIECES[auto_id]<br />
&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rects = AUTOTILE_PARTS[auto_id]<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;make_autotile(rects, sx, sy)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get auto-tile A2 tiles.<br />
&nbsp;&nbsp;# 64x96 tiles, 8 per row, 4 rows<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def autotile_A2(tile_id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;autotile = tile_id / 48<br />
&nbsp;&nbsp;&nbsp;&nbsp;auto_id = tile_id % 48<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tilemap = @bitmaps[1]<br />
&nbsp;&nbsp;&nbsp;&nbsp;sx = (autotile % 8) * 64<br />
&nbsp;&nbsp;&nbsp;&nbsp;sy = (autotile / 8 % 4) * 96<br />
&nbsp;&nbsp;&nbsp;&nbsp;rects = AUTOTILE_PARTS[auto_id]<br />
&nbsp;&nbsp;&nbsp;&nbsp;make_autotile(rects, sx, sy)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get auto-tile A3 tiles.<br />
&nbsp;&nbsp;# 64x64 tiles, 8 per row, 4 rows<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def autotile_A3(tid)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tilemap = @bitmaps[2]<br />
&nbsp;&nbsp;&nbsp;&nbsp;sx = (auto_tile(tid) % 8) * 64<br />
&nbsp;&nbsp;&nbsp;&nbsp;sy = (auto_tile(tid) / 8 % 4) * 64<br />
&nbsp;&nbsp;&nbsp;&nbsp;rects = WALL_PIECES[auto_index(tid)]<br />
&nbsp;&nbsp;&nbsp;&nbsp;make_autotile(rects, sx, sy)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get auto-tile A4 tiles (walls)<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def autotile_A4(tile_id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tilemap = @bitmaps[3]<br />
&nbsp;&nbsp;&nbsp;&nbsp;autotile = tile_id / 48<br />
&nbsp;&nbsp;&nbsp;&nbsp;auto_id = tile_id % 48<br />
&nbsp;&nbsp;&nbsp;&nbsp;sx = (autotile % 8) * 64<br />
&nbsp;&nbsp;&nbsp;&nbsp;sy = (autotile / 16 * 160) + (autotile / 8 % 2) * 96<br />
&nbsp;&nbsp;&nbsp;&nbsp;if is_wall?(tile_id + 5888)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rects = WALL_PIECES[auto_id]<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rects = AUTOTILE_PARTS[auto_id]<br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;make_autotile(rects, sx, sy)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get auto-tile A5 tiles (normal)<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def autotile_A5(tile_id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tilemap = @bitmaps[4]<br />
&nbsp;&nbsp;&nbsp;&nbsp;sx = (tile_id) % 8 * tilesize<br />
&nbsp;&nbsp;&nbsp;&nbsp;sy = (tile_id) / 8 * tilesize<br />
&nbsp;&nbsp;&nbsp;&nbsp;@src_rect.set(sx, sy, tilesize, tilesize)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tile.clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tile.blt(0, 0, @tilemap, @src_rect)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get normal tiles B, C, D, E<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def normal_tile(tile_id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tilemap = @bitmaps[5 + tile_id / 256]<br />
&nbsp;&nbsp;&nbsp;&nbsp;sx = (tile_id / 128 % 2 * 8 + tile_id % 8) * tilesize;<br />
&nbsp;&nbsp;&nbsp;&nbsp;sy = (tile_id % 256 / 8 % 16) * tilesize;<br />
&nbsp;&nbsp;&nbsp;&nbsp;@src_rect.set(sx, sy, tilesize, tilesize)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tile.clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tile.blt(0, 0, @tilemap, @src_rect)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get bitmap for the specified tile id<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def get_bitmap(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;if id &lt; 1024<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;normal_tile(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;elsif id &lt; 1664<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;autotile_A5(id - 1536)<br />
&nbsp;&nbsp;&nbsp;&nbsp;elsif id &lt; 2816<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;autotile_A1(id - 2048)<br />
&nbsp;&nbsp;&nbsp;&nbsp;elsif id &lt; 4352<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;autotile_A2(id - 2816)<br />
&nbsp;&nbsp;&nbsp;&nbsp;elsif id &lt; 5888<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;autotile_A3(id - 4352)<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;autotile_A4(id - 5888)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
#==============================================================================<br />
# ** <br />
#==============================================================================<br />
<br />
class Game_Player &lt; Game_Character<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;alias :th_mapsaver_update :update<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;th_mapsaver_update<br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(TH::Map_Saver::Mapshot_Button)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s = Map_Saver.new(&#36;game_map.map_id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.set_scale(TH::Map_Saver::Mapshot_Scale)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.mapshot<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(TH::Map_Saver::Screenshot_Button)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s = Map_Saver.new(&#36;game_map.map_id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.set_scale(TH::Map_Saver::Screenshot_Scale)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.screenshot<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
class Game_Vehicle &lt; Game_Character<br />
&nbsp;&nbsp;attr_reader :map_id<br />
end<br />
<br />
class Game_Map<br />
&nbsp;&nbsp;attr_reader :map<br />
end<br />
<br />
#==============================================================================<br />
# ** <br />
#==============================================================================<br />
<br />
class Map_Saver<br />
&nbsp;&nbsp;include TH::Map_Saver<br />
&nbsp;&nbsp;include Map_Tiles<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Constants<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
<br />
&nbsp;&nbsp;SHADOW_COLOR = TH::Map_Saver::Shadow_Color<br />
&nbsp;&nbsp;DAMAGE_COLOR = TH::Map_Saver::Damage_Color<br />
<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Public instance variables<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;attr_reader :map_image<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def initialize(map_id=&#36;game_map.map_id, x=&#36;game_player.x, y=&#36;game_player.y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@scale = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;@local_x = x<br />
&nbsp;&nbsp;&nbsp;&nbsp;@local_y = y<br />
&nbsp;&nbsp;&nbsp;&nbsp;@screen_local = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;@shadow_bitmap = Bitmap.new(128, 128)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@draw_layer0 = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;@draw_layer1 = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;@draw_layer2 = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;@draw_events = Draw_Events<br />
&nbsp;&nbsp;&nbsp;&nbsp;@draw_vehicles = Draw_Vehicles<br />
&nbsp;&nbsp;&nbsp;&nbsp;@draw_player = Draw_Player<br />
&nbsp;&nbsp;&nbsp;&nbsp;@draw_followers = Draw_Followers<br />
&nbsp;&nbsp;&nbsp;&nbsp;@draw_shadow = Draw_Shadow<br />
&nbsp;&nbsp;&nbsp;&nbsp;@draw_damage = Highlight_Damage<br />
&nbsp;&nbsp;&nbsp;&nbsp;@draw_regions = Draw_Regions<br />
&nbsp;&nbsp;&nbsp;&nbsp;@draw_passages = Draw_Passages<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tile = Bitmap.new(32, 32) #stores the current tile to be drawn<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tilemap = nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;@src_rect = Rect.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;@auto_rect = Rect.new(0, 0, tilesize / 2, tilesize/ 2) #constant<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tile_rect = Rect.new(0, 0, tilesize, tilesize)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#constant<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def load_tilesets<br />
&nbsp;&nbsp;&nbsp;&nbsp;bitmaps = []<br />
&nbsp;&nbsp;&nbsp;&nbsp;tileset.tileset_names.each_with_index do |name, i|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bitmaps[i] = Cache.tileset(name)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;return bitmaps<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Refresh, possibly with a new map<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def redraw(map_id=&#36;game_map.map_id, x=&#36;game_player.x, y=&#36;game_player.y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@map_image.dispose if @map_image<br />
&nbsp;&nbsp;&nbsp;&nbsp;@map_id = map_id<br />
&nbsp;&nbsp;&nbsp;&nbsp;@local_x = x<br />
&nbsp;&nbsp;&nbsp;&nbsp;@local_y = y<br />
&nbsp;&nbsp;&nbsp;&nbsp;@game_map = Game_Map.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;@game_map.setup(map_id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@map = @game_map.map<br />
&nbsp;&nbsp;&nbsp;&nbsp;@map_info = &#36;data_mapinfos[map_id]<br />
&nbsp;&nbsp;&nbsp;&nbsp;@screen = &#36;game_map.screen<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tileset_id = @game_map.tileset.id<br />
&nbsp;&nbsp;&nbsp;&nbsp;@bitmaps = load_tilesets<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;get_bounds<br />
&nbsp;&nbsp;&nbsp;&nbsp;@map_image = Bitmap.new(@width * tilesize, @height * tilesize)<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_map<br />
&nbsp;&nbsp;&nbsp;&nbsp;scale_map if @scale != 1<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Pre-process. These will never change when drawing the map. <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def get_bounds<br />
&nbsp;&nbsp;&nbsp;&nbsp;@start_x = start_x<br />
&nbsp;&nbsp;&nbsp;&nbsp;@start_y = start_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;@end_x = end_x<br />
&nbsp;&nbsp;&nbsp;&nbsp;@end_y = end_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;@width = width<br />
&nbsp;&nbsp;&nbsp;&nbsp;@height = height<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tilesize = tilesize<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def screen_tile_x<br />
&nbsp;&nbsp;&nbsp;&nbsp;Graphics.width / 32<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def screen_tile_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;Graphics.height / 32<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Sets the scale for the map<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def set_scale(scale)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@scale = scale<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Size of a tile<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def tilesize<br />
&nbsp;&nbsp;&nbsp;&nbsp;32<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Width and height of the map, both locally and globally<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def width<br />
&nbsp;&nbsp;&nbsp;&nbsp;end_x - @start_x<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def height<br />
&nbsp;&nbsp;&nbsp;&nbsp;end_y - @start_y<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Starting and end positions, relative to the screen or map<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def start_x<br />
&nbsp;&nbsp;&nbsp;&nbsp;@screen_local ? [[&#36;game_player.x - screen_tile_x / 2, @map.width - screen_tile_x].min, 0].max : 0<br />
&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;def start_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;@screen_local ? [[&#36;game_player.y - screen_tile_y / 2, @map.height - screen_tile_y].min, 0].max : 0<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def end_x<br />
&nbsp;&nbsp;&nbsp;&nbsp;@screen_local ? [[screen_tile_x, @local_x + screen_tile_x / 2 + 1].max, @map.width].min : @map.width<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def end_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;@screen_local ? [[screen_tile_y, @local_y + screen_tile_y / 2 + 1].max, @map.height].min : @map.height<br />
&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Draw tile onto image. x and y values are absolute coords. They should<br />
&nbsp;&nbsp;# be re-mapped based on the start_x and start_y values<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_tile(x, y, tile, rect)<br />
&nbsp;&nbsp;&nbsp;&nbsp;ox = (x - @start_x) * tilesize<br />
&nbsp;&nbsp;&nbsp;&nbsp;oy = (y - @start_y) * tilesize<br />
&nbsp;&nbsp;&nbsp;&nbsp;@map_image.blt(ox, oy, tile, rect)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get bitmap for the specified character<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def get_character_bitmap(name)<br />
&nbsp;&nbsp;&nbsp;&nbsp;charmap = Cache.character(name)<br />
&nbsp;&nbsp;&nbsp;&nbsp;sign = name[/^[&#92;!&#92;&#36;]./]<br />
&nbsp;&nbsp;&nbsp;&nbsp;if sign &amp;&amp; sign.include?('&#36;')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cw = charmap.width / 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ch = charmap.height / 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cw = charmap.width / 12<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ch = charmap.height / 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;return charmap, cw, ch<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Draw the character onto the tile<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def set_character_bitmap(character, x, y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;charmap, cw, ch = get_character_bitmap(character.character_name)<br />
&nbsp;&nbsp;&nbsp;&nbsp;index = character.character_index<br />
&nbsp;&nbsp;&nbsp;&nbsp;pattern = character.pattern &lt; 3 ? character.pattern : 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;sx = (index % 4 * 3 + pattern) * cw<br />
&nbsp;&nbsp;&nbsp;&nbsp;sy = (index / 4 * 4 + (character.direction - 2) / 2) * ch<br />
&nbsp;&nbsp;&nbsp;&nbsp;@src_rect.set(sx, sy, cw, ch)<br />
&nbsp;&nbsp;&nbsp;&nbsp;x -= cw / (@tilesize * 2) if cw &gt;= @tilesize<br />
&nbsp;&nbsp;&nbsp;&nbsp;y -= ch / (@tilesize * 2) if ch &gt;= @tilesize&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_tile(x, y, charmap, @src_rect)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * create the shadow map<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def make_shadow_map<br />
&nbsp;&nbsp;&nbsp;&nbsp;for s in 0 ... 16<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = s % 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y = s / 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if s &amp; 0b1000 == 0b1000<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@shadow_bitmap.fill_rect(x*tilesize+16, y*@tilesize+16, 16, 16, SHADOW_COLOR)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if s &amp; 0b0100 == 0b0100<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@shadow_bitmap.fill_rect(x*tilesize, y*@tilesize+16, 16, 16, SHADOW_COLOR)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if s &amp; 0b0010 == 0b0010<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@shadow_bitmap.fill_rect(x*tilesize+16, y*@tilesize, 16, 16, SHADOW_COLOR)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if s &amp; 0b0001 == 0b0001<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@shadow_bitmap.fill_rect(x*tilesize, y*@tilesize, 16, 16, SHADOW_COLOR)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def draw_parallax<br />
&nbsp;&nbsp;&nbsp;&nbsp;image = Cache.parallax(@map.parallax_name)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@src_rect.set(0, 0, image.width, image.height)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@map_image.blt(0, 0, image, @src_rect)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Draw the shadow map<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_shadow_map<br />
&nbsp;&nbsp;&nbsp;&nbsp;for x in @start_x ... @end_x<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for y in @start_y ... @end_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_x, _y = x*@tilesize, y*@tilesize<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s = @map.data[x, y, 3]&nbsp;&nbsp;&amp; 0b1111<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if s != 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x_ = (s % 4) * @tilesize<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y_ = (s / 4) * @tilesize<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@src_rect.set(x_, y_, @tilesize, @tilesize)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_tile(x, y, @shadow_bitmap, @src_rect)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Draw the specified layer<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_layer(layer)<br />
&nbsp;&nbsp;&nbsp;&nbsp;for x in @start_x ... @end_x<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for y in @start_y ... @end_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_x, _y = x*@tilesize, y*@tilesize<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tile_id = @map.data[x, y, layer]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next if tile_id == 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get_bitmap(tile_id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_tile(x, y, @tile, @tile_rect)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Draw game regions<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_regions<br />
&nbsp;&nbsp;&nbsp;&nbsp;if &#36;imported["TH_RegionOverlay"]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image = SceneManager.scene.instance_variable_get(:@spriteset).instance_variable_get(:@re&#8203;gion_map).bitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@src_rect.set(@start_x * tilesize, @start_y * tilesize, image.width, image.height)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@map_image.blt(0, 0, image, @src_rect, 255)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def draw_passages<br />
&nbsp;&nbsp;&nbsp;&nbsp;if &#36;imported["TH_OverlayPassageMap"]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image = SceneManager.scene.instance_variable_get(:@spriteset).instance_variable_get(:@pa&#8203;ssage_map).bitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@src_rect.set(@start_x * tilesize, @start_y * tilesize, image.width, image.height)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@map_image.blt(0, 0, image, @src_rect, 255)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Draw the game player<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_player<br />
&nbsp;&nbsp;&nbsp;&nbsp;set_character_bitmap(&#36;game_player, &#36;game_player.x, &#36;game_player.y) if @map_id == &#36;game_map.map_id<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def draw_followers<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Draw map events<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_events<br />
&nbsp;&nbsp;&nbsp;&nbsp;@map.events.values.each do |event|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id = event.pages[0].graphic.tile_id<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char_name = event.pages[0].graphic.character_name<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if id &gt; 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;normal_tile(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_tile(event.x, event.y, @tilemap, @src_rect)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif char_name != ""<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_character_bitmap(event.pages[0].graphic, event.x, event.y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Draw map vehicles<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_vehicles<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_map.vehicles.each do |vehicle|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_character_bitmap(vehicle, vehicle.x, vehicle.y,) if @map_id == vehicle.map_id<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Draw map sprites<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_sprites<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_events if @draw_events<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_vehicles if @draw_vehicles<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_player if @draw_player<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_followers if @draw_followers<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Highlight damage tiles<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_damage<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tile.clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tile.fill_rect(0, 0, @tilesize, @tilesize, DAMAGE_COLOR)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@src_rect.set(0, 0, @tilesize, @tilesize)<br />
&nbsp;&nbsp;&nbsp;&nbsp;for x in @start_x ... @end_x<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for y in @start_y ... @end_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_x, _y = x*@tilesize, y*@tilesize<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if damage_floor?(x, y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_tile(x, y, @tile, @src_rect)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def draw_screen_effects<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Draw the map<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_map<br />
&nbsp;&nbsp;&nbsp;&nbsp;make_shadow_map if @draw_shadow<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_parallax<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_layer(0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_layer(1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_shadow_map<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_layer(2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_damage if @draw_damage<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_regions if @draw_regions<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_passages if @draw_passages<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_sprites<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_screen_effects<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Scale the map<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def scale_map<br />
&nbsp;&nbsp;&nbsp;&nbsp;nw = @width * @scale<br />
&nbsp;&nbsp;&nbsp;&nbsp;nh = @height * @scale<br />
&nbsp;&nbsp;&nbsp;&nbsp;@src_rect.set(0, 0, @width, @height)<br />
&nbsp;&nbsp;&nbsp;&nbsp;scaled_map = Bitmap.new(nw, nh)<br />
&nbsp;&nbsp;&nbsp;&nbsp;scaled_rect = Rect.new(0, 0, nw, nh)<br />
&nbsp;&nbsp;&nbsp;&nbsp;scaled_map.stretch_blt(scaled_rect, @map_image, @src_rect)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@map_image = scaled_map<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Take a mapshot of the map<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def mapshot<br />
&nbsp;&nbsp;&nbsp;&nbsp;@screen_local = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;redraw<br />
&nbsp;&nbsp;&nbsp;&nbsp;export(TH::Map_Saver::Mapshot_Directory)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_message.add("Mapshot taken")<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Take a screenshot of the map<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def screenshot<br />
&nbsp;&nbsp;&nbsp;&nbsp;@screen_local = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;redraw<br />
&nbsp;&nbsp;&nbsp;&nbsp;export(TH::Map_Saver::Screenshot_Directory)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_message.add("Screenshot taken")<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get the format to export to<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def get_format<br />
&nbsp;&nbsp;&nbsp;&nbsp;TH::Map_Saver::Export_Format<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Export the map to a file<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def export(dirName="")<br />
&nbsp;&nbsp;&nbsp;&nbsp;format = get_format<br />
&nbsp;&nbsp;&nbsp;&nbsp;#name = @map.display_name != "" ? @map.display_name : @map_info.name<br />
&nbsp;&nbsp;&nbsp;&nbsp;name = sprintf("Map%03d" %[@map_id])<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dir.mkdir(dirName) unless File.directory?(dirName)<br />
&nbsp;&nbsp;&nbsp;&nbsp;name = <br />
&nbsp;&nbsp;&nbsp;&nbsp;filename = "%s&#92;&#92;%s.%s" %[dirName, name, format]<br />
&nbsp;&nbsp;&nbsp;&nbsp;t1 = Time.now<br />
&nbsp;&nbsp;&nbsp;&nbsp;@map_image.save(filename)<br />
&nbsp;&nbsp;&nbsp;&nbsp;t2 = Time.now<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_message.add("Exported in %f seconds" %[t2 - t1])<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
class Bitmap<br />
 <br />
&nbsp;&nbsp;def save(filename, options = {})<br />
&nbsp;&nbsp;&nbsp;&nbsp;options.merge!(format: File.extname(filename)[1..-1].to_sym)<br />
&nbsp;&nbsp;&nbsp;&nbsp;retval = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;#bitmap = Gdiplus::Bitmap.new(:hbitmap, hbitmap)<br />
&nbsp;&nbsp;&nbsp;&nbsp;#bitmap = Gdiplus::Bitmap.new(:gdidib, *gdidib)<br />
&nbsp;&nbsp;&nbsp;&nbsp;# this seems to be the fastest one (RGSS 3.0.1, Windows 8 64-bit)<br />
&nbsp;&nbsp;&nbsp;&nbsp;bitmap = Gdiplus::Bitmap.new(:scan0, width, height, scan0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;if bitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;retval = bitmap.save(:file, filename, options[:format])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bitmap.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;retval<br />
&nbsp;&nbsp;end<br />
 <br />
private<br />
 <br />
&nbsp;&nbsp;def _data_struct(offset = 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@_data_struct ||= (DL::CPtr.new((object_id &lt;&lt; 1) + 16).ptr + 8).ptr<br />
&nbsp;&nbsp;&nbsp;&nbsp;(@_data_struct + offset).ptr.to_i<br />
&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;def gdidib<br />
&nbsp;&nbsp;&nbsp;&nbsp; [_data_struct(8), _data_struct(16)]<br />
&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;def hbitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;_data_struct(44)<br />
&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;def scan0<br />
&nbsp;&nbsp;&nbsp;&nbsp;_data_struct(12)<br />
&nbsp;&nbsp;end<br />
 <br />
end<br />
<br />
# ★ GDI+ interface<br />
# ★★★★★★★★★★★★<br />
#<br />
# Author : Cremno<br />
#<br />
 <br />
module Gdiplus<br />
&nbsp;&nbsp;DLL = 'gdiplus.dll'<br />
 <br />
&nbsp;&nbsp;def self.get_function name, import, export = 'L'<br />
&nbsp;&nbsp;&nbsp;&nbsp;Win32API.new DLL, name, import, export<br />
&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;FUNCTIONS = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;GdiplusStartup: get_function('GdiplusStartup', 'PPP'),<br />
&nbsp;&nbsp;&nbsp;&nbsp;GdiplusShutdown: get_function('GdiplusShutdown', 'P', 'V'),<br />
&nbsp;&nbsp;&nbsp;&nbsp;GdipDisposeImage: get_function('GdipDisposeImage', 'P'),<br />
&nbsp;&nbsp;&nbsp;&nbsp;GdipSaveImageToFile: get_function('GdipSaveImageToFile', 'PPPP'),<br />
&nbsp;&nbsp;&nbsp;&nbsp;GdipCreateBitmapFromGdiDib: get_function('GdipCreateBitmapFromGdiDib', 'LLP'),<br />
&nbsp;&nbsp;&nbsp;&nbsp;GdipCreateBitmapFromHBITMAP: get_function('GdipCreateBitmapFromHBITMAP', 'LLP'),<br />
&nbsp;&nbsp;&nbsp;&nbsp;GdipCreateBitmapFromScan0: get_function('GdipCreateBitmapFromScan0', 'LLLLPP')<br />
&nbsp;&nbsp;}<br />
 <br />
&nbsp;&nbsp;@@token = [0].pack('I')<br />
&nbsp;&nbsp;def self.token<br />
&nbsp;&nbsp;&nbsp;&nbsp;@@token<br />
&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;@@clsids = {}<br />
&nbsp;&nbsp;def self.clsids<br />
&nbsp;&nbsp;&nbsp;&nbsp;@@clsids<br />
&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;def self.gen_clsids<br />
&nbsp;&nbsp;&nbsp;&nbsp;return unless @@clsids.empty?<br />
&nbsp;&nbsp;&nbsp;&nbsp;func = Win32API.new('rpcrt4.dll', 'UuidFromString', 'PP', 'L')<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bmp:&nbsp;&nbsp;'557cf400-1a04-11d3-9a73-0000f81ef32e',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jpeg: '557cf401-1a04-11d3-9a73-0000f81ef32e',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gif:&nbsp;&nbsp;'557cf402-1a04-11d3-9a73-0000f81ef32e',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tiff: '557cf405-1a04-11d3-9a73-0000f81ef32e',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;png:&nbsp;&nbsp;'557cf406-1a04-11d3-9a73-0000f81ef32e'<br />
&nbsp;&nbsp;&nbsp;&nbsp;}.each_pair do |k, v|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clsid = [0].pack('I')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;func.call(v, clsid)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@@clsids[k] = clsid<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;@@clsids[:jpg] = @@clsids[:jpeg]<br />
&nbsp;&nbsp;&nbsp;&nbsp;@@clsids[:tif] = @@clsids[:tiff]<br />
&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;# TODO: prepend prefix (Gdip or Gdiplus) automatically<br />
&nbsp;&nbsp;def self.call(*args)<br />
&nbsp;&nbsp;&nbsp;&nbsp;name = args.shift<br />
&nbsp;&nbsp;&nbsp;&nbsp;func = FUNCTIONS[name]<br />
&nbsp;&nbsp;&nbsp;&nbsp;v = func.call(*args)<br />
&nbsp;&nbsp;&nbsp;&nbsp;if v &amp;&amp; v != 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msgbox "GDI+ error: #{v}&#92;n&#92;nFunction: #{name}&#92;nArguments: #{args.inspect}"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;false<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;true<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;def self.startup<br />
&nbsp;&nbsp;&nbsp;&nbsp;call :GdiplusStartup, @@token, [1, 0, 0, 0].pack('L4'), 0<br />
&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;def self.shutdown<br />
&nbsp;&nbsp;&nbsp;&nbsp;call :GdiplusShutdown, @@token<br />
&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;class Image<br />
 <br />
&nbsp;&nbsp;&nbsp;&nbsp;attr_reader :instance<br />
&nbsp;&nbsp;&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@instance = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;true<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;&nbsp;&nbsp;def save(destination, *args)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case destination<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when :file<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename = args.shift &lt;&lt; "&#92;0"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename.encode!('UTF-16LE')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;argv = [:GdipSaveImageToFile, filename, Gdiplus.clsids[args.shift], 0]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;raise ArgumentError, "unknown GDI+ image destination: #{source}"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;argv.insert(1, @instance)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gdiplus.call *argv<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;&nbsp;&nbsp;def dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gdiplus.call :GdipDisposeImage, @instance<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;class Bitmap &lt; Image<br />
 <br />
&nbsp;&nbsp;&nbsp;&nbsp;def initialize source, *args<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case source<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when :gdidib<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;argv = [:GdipCreateBitmapFromGdiDib, args.shift, args.shift]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when :hbitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;argv = [:GdipCreateBitmapFromHBITMAP, args.shift, 0]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when :scan0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w = args.shift<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h = args.shift<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;argv = [:GdipCreateBitmapFromScan0, w, h, w * -4, 0x26200a, args.shift]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;raise ArgumentError, "unknown GDI+ bitmap source: #{source}"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;argv.push([0].pack('I'))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;retval = Gdiplus.call *argv<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@instance = retval ? argv.last.unpack('I').first : 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;retval<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
 <br />
if Gdiplus.startup<br />
&nbsp;&nbsp;Gdiplus.gen_clsids<br />
&nbsp;&nbsp;class &lt;&lt; SceneManager<br />
&nbsp;&nbsp;&nbsp;&nbsp;alias_method :run_wo_gdip_shutdown, :run<br />
&nbsp;&nbsp;&nbsp;&nbsp;def run<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;run_wo_gdip_shutdown<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gdiplus.shutdown<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
#==============================================================================<br />
# * Compatibility add-ons<br />
#==============================================================================<br />
#Yami overlays<br />
if &#36;imported["YSE-OverlayMapping"]<br />
&nbsp;&nbsp;class Map_Saver<br />
&nbsp;&nbsp;&nbsp;&nbsp;def draw_overlay_map_ground<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename = YSA::OVERLAY::GROUND<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename += &#36;game_map.map_id.to_s<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename += "-" + &#36;game_variables[YSA::OVERLAY::GROUND_VARIABLE].to_s<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p filename<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image = Cache.overlay(filename)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@src_rect.set(@start_x*tilesize, @start_y*tilesize, image.width, image.height)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@map_image.blt(0, 0, image, @src_rect)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def draw_overlay_map_parallax<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename = YSA::OVERLAY::PARALLAX<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename += &#36;game_map.map_id.to_s<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename += "-" + &#36;game_variables[YSA::OVERLAY::PARALLAX_VARIABLE].to_s<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image = Cache.overlay(filename)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@src_rect.set(@start_x*tilesize, @start_y*tilesize, image.width, image.height)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@map_image.blt(0, 0, image, @src_rect)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def draw_overlay_map_light<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename = YSA::OVERLAY::LIGHT<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename += &#36;game_map.map_id.to_s<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename += "-" + &#36;game_variables[YSA::OVERLAY::LIGHT_VARIABLE].to_s<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image = Cache.overlay(filename)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@src_rect.set(@start_x*tilesize, @start_y*tilesize, image.width, image.height)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@map_image.blt(0, 0, image, @src_rect, 10)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def draw_overlay_map_shadow<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename = YSA::OVERLAY::SHADOW<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename += &#36;game_map.map_id.to_s<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename += "-" + &#36;game_variables[YSA::OVERLAY::SHADOW_VARIABLE].to_s<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image = Cache.overlay(filename)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@src_rect.set(@start_x*tilesize, @start_y*tilesize, image.width, image.height)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@map_image.blt(0, 0, image, @src_rect, 10)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;alias :th_map_overlay_draw_map :draw_map<br />
&nbsp;&nbsp;&nbsp;&nbsp;def draw_map<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;th_map_overlay_draw_map<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_overlay_map_ground if &#36;game_switches[YSA::OVERLAY::GROUND_SWITCH] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_overlay_map_parallax if &#36;game_switches[YSA::OVERLAY::PARALLAX_SWITCH] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_overlay_map_shadow if &#36;game_switches[YSA::OVERLAY::SHADOW_SWITCH]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_overlay_map_light if &#36;game_switches[YSA::OVERLAY::LIGHT_SWITCH]<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
if &#36;imported["TH_AreaOverlay"]<br />
&nbsp;&nbsp;class Map_Saver<br />
&nbsp;&nbsp;&nbsp;&nbsp;def draw_overlay_area_map<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image = SceneManager.scene.instance_variable_get(:@spriteset).instance_variable_get(:@ar&#8203;ea_map).bitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@src_rect.set(@start_x * tilesize, @start_y * tilesize, image.width, image.height)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@map_image.blt(0, 0, image, @src_rect, 255)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;alias :th_area_overlay_draw_map :draw_map<br />
&nbsp;&nbsp;&nbsp;&nbsp;def draw_map<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;th_area_overlay_draw_map<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_overlay_area_map<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end</code></div></div>
</div></div>]]></description>
			<content:encoded><![CDATA[<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt pozwala robić screen z całej mapy. <br />
Wystarczy wstawić go do projektu i w trakcie testowania gry nacisnąć F7.<br />
Skrypt utworzy screen z całej mapy.<br />
<br />
<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Hime <br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>=begin<br />
#===============================================================================&#8203;<br />
 Title: Map Screenshot<br />
 Author: Hime<br />
 Date: Apr 15, 2013<br />
--------------------------------------------------------------------------------<br />
 ** Change log<br />
 Apr 15, 2013<br />
&nbsp;&nbsp; - updated script to use GDI+ interface<br />
&nbsp;&nbsp; - added support for region map overlay and passage map overlay<br />
 Apr 6, 2013<br />
&nbsp;&nbsp; - fixed bug where drawing events crashed the game<br />
 Apr 2, 2013<br />
&nbsp;&nbsp; - map data is now setup by an instance of Game_Map, to account for custom<br />
&nbsp;&nbsp;&nbsp;&nbsp; map scripts adding to the map<br />
 Jul 27<br />
&nbsp;&nbsp; - Export dirNames are now optional<br />
 May 28<br />
&nbsp;&nbsp; - updated overlay mapping compatibility to draw the overlays <br />
&nbsp;&nbsp;&nbsp;&nbsp; based on the player's current position<br />
&nbsp;&nbsp; - fixed issue where import hash was commented out<br />
&nbsp;&nbsp; - Added support for Yami's overlay mapping<br />
 May 24, 2012<br />
&nbsp;&nbsp; - fixed large characters<br />
&nbsp;&nbsp; - some optimizations for calculating bounds and dimensions<br />
 May 5, 2012<br />
&nbsp;&nbsp; - fixed waterfall autotile<br />
&nbsp;&nbsp; - added screenshot feature<br />
 May 4, 2012<br />
&nbsp;&nbsp; - fixed tiles with alpha channel<br />
&nbsp;&nbsp; - fixed shadows<br />
&nbsp;&nbsp; - fixed wall autotiles<br />
 May 1, 2012<br />
&nbsp;&nbsp; - fixed wall autotile, although there is still an issue with some tiles<br />
 Apr 29, 2012<br />
&nbsp;&nbsp; - fixed shadow map drawing<br />
&nbsp;&nbsp; - added region highlighting<br />
&nbsp;&nbsp; - added damage tile highlighting<br />
 Apr 28, 2012<br />
&nbsp;&nbsp; - Initial Release<br />
------------------------------------------------------------------------------<br />
 ** Description<br />
 <br />
 This script allows you to take a full image of any of your game's maps<br />
 and export. An image of the map is referred to as a "mapshot" (as opposed to<br />
 screenshot).<br />
 <br />
 The script provides various configuration options to control what kinds of<br />
 things you want to see on your map, such as events, vehicles, region ID's, or<br />
 specific tile properties.<br />
 <br />
------------------------------------------------------------------------------<br />
 ** Usage<br />
 <br />
 The default key for taking a mapshot is F7. This can be changed in the<br />
 configuration section.<br />
 <br />
 To take a mapshot, first start the game, and then hit F7.<br />
 A message will appear informing you that a mapshot was successfully taken.<br />
 <br />
 Alternatively, you can use script calls to take mapshots.<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;Map_Saver.new(map_id).export<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
 Aside from exporting images, you are able to use the image that the<br />
 map saver captures.<br />
 <br />
&nbsp;&nbsp; ms = Map_Saver.new(map_id)<br />
&nbsp;&nbsp; bmp = ms.map_image<br />
&nbsp;&nbsp; <br />
 This gives you a reference to a Bitmap object that contains an image of<br />
 your map.<br />
--------------------------------------------------------------------------------<br />
&nbsp;&nbsp;** Credits<br />
 <br />
&nbsp;&nbsp;Cremno<br />
&nbsp;&nbsp;&nbsp;&nbsp;-GDI+ interface code<br />
&nbsp;&nbsp;Cidiomar<br />
&nbsp;&nbsp;&nbsp;&nbsp;-for drawing autotiles and shadows, <br />
&nbsp;&nbsp;&nbsp;&nbsp;-providing efficient bmp and png exporters<br />
&nbsp;&nbsp;Moon<br />
&nbsp;&nbsp;&nbsp;&nbsp;-auto-tile related info<br />
&nbsp;&nbsp;Mephistox<br />
&nbsp;&nbsp;&nbsp;&nbsp;-testing and suggestions<br />
================================================================================&#8203;<br />
=end<br />
&#36;imported = {} if &#36;imported.nil?<br />
&#36;imported["TH_MapSaver"] = true<br />
#===============================================================================&#8203;<br />
# ** Configuration<br />
#===============================================================================&#8203;<br />
module TH<br />
&nbsp;&nbsp;module Map_Saver<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;#Mapshot options. This takes an image of the entire map<br />
&nbsp;&nbsp;&nbsp;&nbsp;Mapshot_Button = Input::F7<br />
&nbsp;&nbsp;&nbsp;&nbsp;Mapshot_Scale = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;#Screenshot options. This takes an image of the visible map<br />
&nbsp;&nbsp;&nbsp;&nbsp;Screenshot_Button = Input::F6<br />
&nbsp;&nbsp;&nbsp;&nbsp;Screenshot_Scale = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;#Folder that the map will be exported to<br />
&nbsp;&nbsp;&nbsp;&nbsp;Mapshot_Directory = "Mapshots"<br />
&nbsp;&nbsp;&nbsp;&nbsp;Screenshot_Directory = "Screenshots"<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;# format you want to export to. You should stick with png.<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Options: [bmp, png] <br />
&nbsp;&nbsp;&nbsp;&nbsp;Export_Format = "png"<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Sprite draw options<br />
&nbsp;&nbsp;&nbsp;&nbsp;Draw_Events = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;Draw_Player = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;Draw_Followers = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;Draw_Vehicles = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;#Should shadows be drawn? What color?<br />
&nbsp;&nbsp;&nbsp;&nbsp;Draw_Shadow = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;Shadow_Color = Color.new(0, 0, 0, 128)<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Should regions be drawn? Requires "Region Overlay Map" script<br />
&nbsp;&nbsp;&nbsp;&nbsp;Draw_Regions = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Should passage settings be drawn? Requires "Passage Overlay Map" script<br />
&nbsp;&nbsp;&nbsp;&nbsp;Draw_Passages = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;#Should damage tiles be highlighted? What color?<br />
&nbsp;&nbsp;&nbsp;&nbsp;Highlight_Damage = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;Damage_Color = Color.new(128, 0, 0, 128)<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
#==============================================================================<br />
# ** Module: Map_Tiles<br />
# Contains data and methods useful for working with maps and tiles<br />
#==============================================================================<br />
<br />
module Map_Tiles<br />
&nbsp;&nbsp;AUTOTILE_PARTS = [[18,17,14,13], [ 2,14,17,18], [13, 3,17,18], [ 2, 3,17,18],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[13,14,17, 7], [ 2,14,17, 7], [13, 3,17, 7], [ 2, 3,17, 7],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[13,14, 6,18], [ 2,14, 6,18], [13, 3, 6,18], [ 2, 3, 6,18],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[13,14, 6, 7], [ 2,14, 6, 7], [13, 3, 6, 7], [ 2, 3, 6, 7],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[16,17,12,13], [16, 3,12,13], [16,17,12, 7], [12, 3,16, 7], <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[10, 9,14,13], [10, 9,14, 7], [10, 9, 6,13], [10, 9, 6, 7],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[18,19,14,15], [18,19, 6,15], [ 2,19,14,15], [ 2,19, 6,15],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[18,17,22,21], [ 2,17,22,21], [18, 3,22,21], [ 2, 3,21,22],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[16,19,12,15], [10, 9,22,21], [ 8, 9,12,13], [ 8, 9,12, 7],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[10,11,14,15], [10,11, 6,15], [18,19,22,23], [ 2,19,22,23],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[16,17,20,21], [16, 3,20,21], [ 8,11,12,15], [ 8, 9,20,21],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[16,19,20,23], [10,11,22,23], [ 8,11,20,23], [ 0, 1, 4, 5]]<br />
&nbsp;&nbsp;WATERFALL_PIECES = [[ 2, 1, 6, 5], [ 0, 1, 4, 5], [ 2, 3, 6, 7], [0, 3, 4, 7]]<br />
&nbsp;&nbsp;WALL_PIECES =&nbsp;&nbsp;[[10, 9, 6, 5], [ 8, 9, 4, 5], [ 2, 1, 6, 5], [ 0, 1, 4, 5],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[10,11, 6, 7], [ 8,11, 4, 7], [ 2, 3, 6, 7], [ 0, 3, 4, 7],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[10, 9,14,13], [ 8, 9,12,13], [ 2, 1,14,13], [ 0, 1,12,13],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[10,11,14,15], [8, 11,12,15], [ 2, 3,14,15], [ 0, 3,12,15]]<br />
<br />
&nbsp;&nbsp;A1_TILES = [[0, 0], [0, 96], [192, 0], [192, 96],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [256, 0], [448, 0], [256, 96], [448, 96],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [0, 192], [192, 192], [0, 288], [192, 288],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [256, 192], [448, 192], [256, 288], [448, 288]]<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Checks if a tile is a wall<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def is_wall?(data)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(2288, 2335)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(2384, 2431)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(2480, 2527)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(2576, 2623)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(2672, 2719)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(2768, 2815)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(4736, 5119)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(5504, 5887)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(6272, 6655)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(7040, 7423)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data &gt; 7807<br />
&nbsp;&nbsp;&nbsp;&nbsp;false<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Checks if a tile is roof<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def is_roof?(data)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(4352, 4735)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(5120, 5503)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(5888, 6271)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(6656, 7039)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(7424, 7807)<br />
&nbsp;&nbsp;&nbsp;&nbsp;false<br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Checks if a tile is soil<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def is_soil?(data)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(2816, 4351) &amp;&amp; !is_table?(data)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data &gt; 1663 &amp;&amp; !is_stair?(data)<br />
&nbsp;&nbsp;&nbsp;&nbsp;false<br />
&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Checks if a tile is a stair<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def is_stair?(data)<br />
&nbsp;&nbsp;&nbsp;&nbsp; return true if data.between?(1541, 1542)<br />
&nbsp;&nbsp;&nbsp;&nbsp; return true if data.between?(1549, 1550)<br />
&nbsp;&nbsp;&nbsp;&nbsp; return true if data.between?(1600, 1615)<br />
&nbsp;&nbsp;&nbsp;&nbsp; false<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Checks if a tile is a table<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def is_table?(data)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(3152, 3199)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(3536, 3583)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(3920, 3967)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true if data.between?(4304, 4351)<br />
&nbsp;&nbsp;&nbsp;&nbsp;false<br />
&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * The tileset to be used<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def tileset<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;data_tilesets[@tileset_id]<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Region ID<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def region_id(x, y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;valid?(x, y) ? @map.data[x, y, 3] &gt;&gt; 8 : 0<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Gets all of the tiles for each layer at position x,y<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def layered_tiles(x, y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;[2, 1, 0].collect {|z| @map.data[x, y, z] }<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def layered_tiles_flag?(x, y, bit)<br />
&nbsp;&nbsp;&nbsp;&nbsp;layered_tiles(x, y).any? {|tile_id| tileset.flags[tile_id] &amp; bit != 0 }<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp;def valid?(x, y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;x &gt;= 0 &amp;&amp; x &lt; width &amp;&amp; y &gt;= 0 &amp;&amp; y &lt; height<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def damage_floor?(x, y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;valid?(x, y) &amp;&amp; layered_tiles_flag?(x, y, 0x100)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Specifies which type of autotile is used<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def auto_tile(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;id / 48<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Specifies the specific arrangement of autotiles used<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def auto_index(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;id % 48<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Put the auto-tile pieces together<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def make_autotile(rects, sx, sy)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tile.clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;for i in 0...4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@auto_rect.x = (rects[i] % 4) * 16 + sx<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@auto_rect.y = (rects[i] / 4) * 16 + sy<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@tile.blt((i % 2) * 16,(i / 2) * 16, @tilemap, @auto_rect)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get auto-tile A1 tiles<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def autotile_A1(tile_id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tilemap = @bitmaps[0]<br />
&nbsp;&nbsp;&nbsp;&nbsp;autotile = tile_id / 48<br />
&nbsp;&nbsp;&nbsp;&nbsp;auto_id = tile_id % 48<br />
&nbsp;&nbsp;&nbsp;&nbsp;sx, sy = A1_TILES[autotile]<br />
&nbsp;&nbsp;&nbsp;&nbsp;if is_wall?(tile_id + 2048)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rects = WATERFALL_PIECES[auto_id]<br />
&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rects = AUTOTILE_PARTS[auto_id]<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;make_autotile(rects, sx, sy)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get auto-tile A2 tiles.<br />
&nbsp;&nbsp;# 64x96 tiles, 8 per row, 4 rows<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def autotile_A2(tile_id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;autotile = tile_id / 48<br />
&nbsp;&nbsp;&nbsp;&nbsp;auto_id = tile_id % 48<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tilemap = @bitmaps[1]<br />
&nbsp;&nbsp;&nbsp;&nbsp;sx = (autotile % 8) * 64<br />
&nbsp;&nbsp;&nbsp;&nbsp;sy = (autotile / 8 % 4) * 96<br />
&nbsp;&nbsp;&nbsp;&nbsp;rects = AUTOTILE_PARTS[auto_id]<br />
&nbsp;&nbsp;&nbsp;&nbsp;make_autotile(rects, sx, sy)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get auto-tile A3 tiles.<br />
&nbsp;&nbsp;# 64x64 tiles, 8 per row, 4 rows<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def autotile_A3(tid)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tilemap = @bitmaps[2]<br />
&nbsp;&nbsp;&nbsp;&nbsp;sx = (auto_tile(tid) % 8) * 64<br />
&nbsp;&nbsp;&nbsp;&nbsp;sy = (auto_tile(tid) / 8 % 4) * 64<br />
&nbsp;&nbsp;&nbsp;&nbsp;rects = WALL_PIECES[auto_index(tid)]<br />
&nbsp;&nbsp;&nbsp;&nbsp;make_autotile(rects, sx, sy)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get auto-tile A4 tiles (walls)<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def autotile_A4(tile_id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tilemap = @bitmaps[3]<br />
&nbsp;&nbsp;&nbsp;&nbsp;autotile = tile_id / 48<br />
&nbsp;&nbsp;&nbsp;&nbsp;auto_id = tile_id % 48<br />
&nbsp;&nbsp;&nbsp;&nbsp;sx = (autotile % 8) * 64<br />
&nbsp;&nbsp;&nbsp;&nbsp;sy = (autotile / 16 * 160) + (autotile / 8 % 2) * 96<br />
&nbsp;&nbsp;&nbsp;&nbsp;if is_wall?(tile_id + 5888)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rects = WALL_PIECES[auto_id]<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rects = AUTOTILE_PARTS[auto_id]<br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;make_autotile(rects, sx, sy)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get auto-tile A5 tiles (normal)<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def autotile_A5(tile_id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tilemap = @bitmaps[4]<br />
&nbsp;&nbsp;&nbsp;&nbsp;sx = (tile_id) % 8 * tilesize<br />
&nbsp;&nbsp;&nbsp;&nbsp;sy = (tile_id) / 8 * tilesize<br />
&nbsp;&nbsp;&nbsp;&nbsp;@src_rect.set(sx, sy, tilesize, tilesize)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tile.clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tile.blt(0, 0, @tilemap, @src_rect)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get normal tiles B, C, D, E<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def normal_tile(tile_id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tilemap = @bitmaps[5 + tile_id / 256]<br />
&nbsp;&nbsp;&nbsp;&nbsp;sx = (tile_id / 128 % 2 * 8 + tile_id % 8) * tilesize;<br />
&nbsp;&nbsp;&nbsp;&nbsp;sy = (tile_id % 256 / 8 % 16) * tilesize;<br />
&nbsp;&nbsp;&nbsp;&nbsp;@src_rect.set(sx, sy, tilesize, tilesize)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tile.clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tile.blt(0, 0, @tilemap, @src_rect)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get bitmap for the specified tile id<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def get_bitmap(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;if id &lt; 1024<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;normal_tile(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;elsif id &lt; 1664<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;autotile_A5(id - 1536)<br />
&nbsp;&nbsp;&nbsp;&nbsp;elsif id &lt; 2816<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;autotile_A1(id - 2048)<br />
&nbsp;&nbsp;&nbsp;&nbsp;elsif id &lt; 4352<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;autotile_A2(id - 2816)<br />
&nbsp;&nbsp;&nbsp;&nbsp;elsif id &lt; 5888<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;autotile_A3(id - 4352)<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;autotile_A4(id - 5888)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
#==============================================================================<br />
# ** <br />
#==============================================================================<br />
<br />
class Game_Player &lt; Game_Character<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;alias :th_mapsaver_update :update<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;th_mapsaver_update<br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(TH::Map_Saver::Mapshot_Button)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s = Map_Saver.new(&#36;game_map.map_id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.set_scale(TH::Map_Saver::Mapshot_Scale)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.mapshot<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(TH::Map_Saver::Screenshot_Button)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s = Map_Saver.new(&#36;game_map.map_id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.set_scale(TH::Map_Saver::Screenshot_Scale)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.screenshot<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
class Game_Vehicle &lt; Game_Character<br />
&nbsp;&nbsp;attr_reader :map_id<br />
end<br />
<br />
class Game_Map<br />
&nbsp;&nbsp;attr_reader :map<br />
end<br />
<br />
#==============================================================================<br />
# ** <br />
#==============================================================================<br />
<br />
class Map_Saver<br />
&nbsp;&nbsp;include TH::Map_Saver<br />
&nbsp;&nbsp;include Map_Tiles<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Constants<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
<br />
&nbsp;&nbsp;SHADOW_COLOR = TH::Map_Saver::Shadow_Color<br />
&nbsp;&nbsp;DAMAGE_COLOR = TH::Map_Saver::Damage_Color<br />
<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Public instance variables<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;attr_reader :map_image<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def initialize(map_id=&#36;game_map.map_id, x=&#36;game_player.x, y=&#36;game_player.y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@scale = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;@local_x = x<br />
&nbsp;&nbsp;&nbsp;&nbsp;@local_y = y<br />
&nbsp;&nbsp;&nbsp;&nbsp;@screen_local = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;@shadow_bitmap = Bitmap.new(128, 128)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@draw_layer0 = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;@draw_layer1 = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;@draw_layer2 = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;@draw_events = Draw_Events<br />
&nbsp;&nbsp;&nbsp;&nbsp;@draw_vehicles = Draw_Vehicles<br />
&nbsp;&nbsp;&nbsp;&nbsp;@draw_player = Draw_Player<br />
&nbsp;&nbsp;&nbsp;&nbsp;@draw_followers = Draw_Followers<br />
&nbsp;&nbsp;&nbsp;&nbsp;@draw_shadow = Draw_Shadow<br />
&nbsp;&nbsp;&nbsp;&nbsp;@draw_damage = Highlight_Damage<br />
&nbsp;&nbsp;&nbsp;&nbsp;@draw_regions = Draw_Regions<br />
&nbsp;&nbsp;&nbsp;&nbsp;@draw_passages = Draw_Passages<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tile = Bitmap.new(32, 32) #stores the current tile to be drawn<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tilemap = nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;@src_rect = Rect.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;@auto_rect = Rect.new(0, 0, tilesize / 2, tilesize/ 2) #constant<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tile_rect = Rect.new(0, 0, tilesize, tilesize)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#constant<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def load_tilesets<br />
&nbsp;&nbsp;&nbsp;&nbsp;bitmaps = []<br />
&nbsp;&nbsp;&nbsp;&nbsp;tileset.tileset_names.each_with_index do |name, i|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bitmaps[i] = Cache.tileset(name)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;return bitmaps<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Refresh, possibly with a new map<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def redraw(map_id=&#36;game_map.map_id, x=&#36;game_player.x, y=&#36;game_player.y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@map_image.dispose if @map_image<br />
&nbsp;&nbsp;&nbsp;&nbsp;@map_id = map_id<br />
&nbsp;&nbsp;&nbsp;&nbsp;@local_x = x<br />
&nbsp;&nbsp;&nbsp;&nbsp;@local_y = y<br />
&nbsp;&nbsp;&nbsp;&nbsp;@game_map = Game_Map.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;@game_map.setup(map_id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@map = @game_map.map<br />
&nbsp;&nbsp;&nbsp;&nbsp;@map_info = &#36;data_mapinfos[map_id]<br />
&nbsp;&nbsp;&nbsp;&nbsp;@screen = &#36;game_map.screen<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tileset_id = @game_map.tileset.id<br />
&nbsp;&nbsp;&nbsp;&nbsp;@bitmaps = load_tilesets<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;get_bounds<br />
&nbsp;&nbsp;&nbsp;&nbsp;@map_image = Bitmap.new(@width * tilesize, @height * tilesize)<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_map<br />
&nbsp;&nbsp;&nbsp;&nbsp;scale_map if @scale != 1<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Pre-process. These will never change when drawing the map. <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def get_bounds<br />
&nbsp;&nbsp;&nbsp;&nbsp;@start_x = start_x<br />
&nbsp;&nbsp;&nbsp;&nbsp;@start_y = start_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;@end_x = end_x<br />
&nbsp;&nbsp;&nbsp;&nbsp;@end_y = end_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;@width = width<br />
&nbsp;&nbsp;&nbsp;&nbsp;@height = height<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tilesize = tilesize<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def screen_tile_x<br />
&nbsp;&nbsp;&nbsp;&nbsp;Graphics.width / 32<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def screen_tile_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;Graphics.height / 32<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Sets the scale for the map<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def set_scale(scale)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@scale = scale<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Size of a tile<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def tilesize<br />
&nbsp;&nbsp;&nbsp;&nbsp;32<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Width and height of the map, both locally and globally<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def width<br />
&nbsp;&nbsp;&nbsp;&nbsp;end_x - @start_x<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def height<br />
&nbsp;&nbsp;&nbsp;&nbsp;end_y - @start_y<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Starting and end positions, relative to the screen or map<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def start_x<br />
&nbsp;&nbsp;&nbsp;&nbsp;@screen_local ? [[&#36;game_player.x - screen_tile_x / 2, @map.width - screen_tile_x].min, 0].max : 0<br />
&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;def start_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;@screen_local ? [[&#36;game_player.y - screen_tile_y / 2, @map.height - screen_tile_y].min, 0].max : 0<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def end_x<br />
&nbsp;&nbsp;&nbsp;&nbsp;@screen_local ? [[screen_tile_x, @local_x + screen_tile_x / 2 + 1].max, @map.width].min : @map.width<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def end_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;@screen_local ? [[screen_tile_y, @local_y + screen_tile_y / 2 + 1].max, @map.height].min : @map.height<br />
&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Draw tile onto image. x and y values are absolute coords. They should<br />
&nbsp;&nbsp;# be re-mapped based on the start_x and start_y values<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_tile(x, y, tile, rect)<br />
&nbsp;&nbsp;&nbsp;&nbsp;ox = (x - @start_x) * tilesize<br />
&nbsp;&nbsp;&nbsp;&nbsp;oy = (y - @start_y) * tilesize<br />
&nbsp;&nbsp;&nbsp;&nbsp;@map_image.blt(ox, oy, tile, rect)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get bitmap for the specified character<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def get_character_bitmap(name)<br />
&nbsp;&nbsp;&nbsp;&nbsp;charmap = Cache.character(name)<br />
&nbsp;&nbsp;&nbsp;&nbsp;sign = name[/^[&#92;!&#92;&#36;]./]<br />
&nbsp;&nbsp;&nbsp;&nbsp;if sign &amp;&amp; sign.include?('&#36;')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cw = charmap.width / 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ch = charmap.height / 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cw = charmap.width / 12<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ch = charmap.height / 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;return charmap, cw, ch<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Draw the character onto the tile<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def set_character_bitmap(character, x, y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;charmap, cw, ch = get_character_bitmap(character.character_name)<br />
&nbsp;&nbsp;&nbsp;&nbsp;index = character.character_index<br />
&nbsp;&nbsp;&nbsp;&nbsp;pattern = character.pattern &lt; 3 ? character.pattern : 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;sx = (index % 4 * 3 + pattern) * cw<br />
&nbsp;&nbsp;&nbsp;&nbsp;sy = (index / 4 * 4 + (character.direction - 2) / 2) * ch<br />
&nbsp;&nbsp;&nbsp;&nbsp;@src_rect.set(sx, sy, cw, ch)<br />
&nbsp;&nbsp;&nbsp;&nbsp;x -= cw / (@tilesize * 2) if cw &gt;= @tilesize<br />
&nbsp;&nbsp;&nbsp;&nbsp;y -= ch / (@tilesize * 2) if ch &gt;= @tilesize&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_tile(x, y, charmap, @src_rect)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * create the shadow map<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def make_shadow_map<br />
&nbsp;&nbsp;&nbsp;&nbsp;for s in 0 ... 16<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = s % 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y = s / 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if s &amp; 0b1000 == 0b1000<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@shadow_bitmap.fill_rect(x*tilesize+16, y*@tilesize+16, 16, 16, SHADOW_COLOR)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if s &amp; 0b0100 == 0b0100<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@shadow_bitmap.fill_rect(x*tilesize, y*@tilesize+16, 16, 16, SHADOW_COLOR)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if s &amp; 0b0010 == 0b0010<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@shadow_bitmap.fill_rect(x*tilesize+16, y*@tilesize, 16, 16, SHADOW_COLOR)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if s &amp; 0b0001 == 0b0001<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@shadow_bitmap.fill_rect(x*tilesize, y*@tilesize, 16, 16, SHADOW_COLOR)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def draw_parallax<br />
&nbsp;&nbsp;&nbsp;&nbsp;image = Cache.parallax(@map.parallax_name)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@src_rect.set(0, 0, image.width, image.height)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@map_image.blt(0, 0, image, @src_rect)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Draw the shadow map<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_shadow_map<br />
&nbsp;&nbsp;&nbsp;&nbsp;for x in @start_x ... @end_x<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for y in @start_y ... @end_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_x, _y = x*@tilesize, y*@tilesize<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s = @map.data[x, y, 3]&nbsp;&nbsp;&amp; 0b1111<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if s != 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x_ = (s % 4) * @tilesize<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y_ = (s / 4) * @tilesize<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@src_rect.set(x_, y_, @tilesize, @tilesize)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_tile(x, y, @shadow_bitmap, @src_rect)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Draw the specified layer<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_layer(layer)<br />
&nbsp;&nbsp;&nbsp;&nbsp;for x in @start_x ... @end_x<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for y in @start_y ... @end_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_x, _y = x*@tilesize, y*@tilesize<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tile_id = @map.data[x, y, layer]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next if tile_id == 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get_bitmap(tile_id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_tile(x, y, @tile, @tile_rect)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Draw game regions<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_regions<br />
&nbsp;&nbsp;&nbsp;&nbsp;if &#36;imported["TH_RegionOverlay"]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image = SceneManager.scene.instance_variable_get(:@spriteset).instance_variable_get(:@re&#8203;gion_map).bitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@src_rect.set(@start_x * tilesize, @start_y * tilesize, image.width, image.height)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@map_image.blt(0, 0, image, @src_rect, 255)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def draw_passages<br />
&nbsp;&nbsp;&nbsp;&nbsp;if &#36;imported["TH_OverlayPassageMap"]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image = SceneManager.scene.instance_variable_get(:@spriteset).instance_variable_get(:@pa&#8203;ssage_map).bitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@src_rect.set(@start_x * tilesize, @start_y * tilesize, image.width, image.height)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@map_image.blt(0, 0, image, @src_rect, 255)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Draw the game player<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_player<br />
&nbsp;&nbsp;&nbsp;&nbsp;set_character_bitmap(&#36;game_player, &#36;game_player.x, &#36;game_player.y) if @map_id == &#36;game_map.map_id<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def draw_followers<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Draw map events<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_events<br />
&nbsp;&nbsp;&nbsp;&nbsp;@map.events.values.each do |event|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id = event.pages[0].graphic.tile_id<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char_name = event.pages[0].graphic.character_name<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if id &gt; 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;normal_tile(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_tile(event.x, event.y, @tilemap, @src_rect)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif char_name != ""<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_character_bitmap(event.pages[0].graphic, event.x, event.y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Draw map vehicles<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_vehicles<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_map.vehicles.each do |vehicle|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_character_bitmap(vehicle, vehicle.x, vehicle.y,) if @map_id == vehicle.map_id<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Draw map sprites<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_sprites<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_events if @draw_events<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_vehicles if @draw_vehicles<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_player if @draw_player<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_followers if @draw_followers<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Highlight damage tiles<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_damage<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tile.clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tile.fill_rect(0, 0, @tilesize, @tilesize, DAMAGE_COLOR)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@src_rect.set(0, 0, @tilesize, @tilesize)<br />
&nbsp;&nbsp;&nbsp;&nbsp;for x in @start_x ... @end_x<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for y in @start_y ... @end_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_x, _y = x*@tilesize, y*@tilesize<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if damage_floor?(x, y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_tile(x, y, @tile, @src_rect)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def draw_screen_effects<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Draw the map<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_map<br />
&nbsp;&nbsp;&nbsp;&nbsp;make_shadow_map if @draw_shadow<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_parallax<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_layer(0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_layer(1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_shadow_map<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_layer(2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_damage if @draw_damage<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_regions if @draw_regions<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_passages if @draw_passages<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_sprites<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_screen_effects<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Scale the map<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def scale_map<br />
&nbsp;&nbsp;&nbsp;&nbsp;nw = @width * @scale<br />
&nbsp;&nbsp;&nbsp;&nbsp;nh = @height * @scale<br />
&nbsp;&nbsp;&nbsp;&nbsp;@src_rect.set(0, 0, @width, @height)<br />
&nbsp;&nbsp;&nbsp;&nbsp;scaled_map = Bitmap.new(nw, nh)<br />
&nbsp;&nbsp;&nbsp;&nbsp;scaled_rect = Rect.new(0, 0, nw, nh)<br />
&nbsp;&nbsp;&nbsp;&nbsp;scaled_map.stretch_blt(scaled_rect, @map_image, @src_rect)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@map_image = scaled_map<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Take a mapshot of the map<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def mapshot<br />
&nbsp;&nbsp;&nbsp;&nbsp;@screen_local = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;redraw<br />
&nbsp;&nbsp;&nbsp;&nbsp;export(TH::Map_Saver::Mapshot_Directory)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_message.add("Mapshot taken")<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Take a screenshot of the map<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def screenshot<br />
&nbsp;&nbsp;&nbsp;&nbsp;@screen_local = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;redraw<br />
&nbsp;&nbsp;&nbsp;&nbsp;export(TH::Map_Saver::Screenshot_Directory)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_message.add("Screenshot taken")<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get the format to export to<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def get_format<br />
&nbsp;&nbsp;&nbsp;&nbsp;TH::Map_Saver::Export_Format<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Export the map to a file<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def export(dirName="")<br />
&nbsp;&nbsp;&nbsp;&nbsp;format = get_format<br />
&nbsp;&nbsp;&nbsp;&nbsp;#name = @map.display_name != "" ? @map.display_name : @map_info.name<br />
&nbsp;&nbsp;&nbsp;&nbsp;name = sprintf("Map%03d" %[@map_id])<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dir.mkdir(dirName) unless File.directory?(dirName)<br />
&nbsp;&nbsp;&nbsp;&nbsp;name = <br />
&nbsp;&nbsp;&nbsp;&nbsp;filename = "%s&#92;&#92;%s.%s" %[dirName, name, format]<br />
&nbsp;&nbsp;&nbsp;&nbsp;t1 = Time.now<br />
&nbsp;&nbsp;&nbsp;&nbsp;@map_image.save(filename)<br />
&nbsp;&nbsp;&nbsp;&nbsp;t2 = Time.now<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_message.add("Exported in %f seconds" %[t2 - t1])<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
class Bitmap<br />
 <br />
&nbsp;&nbsp;def save(filename, options = {})<br />
&nbsp;&nbsp;&nbsp;&nbsp;options.merge!(format: File.extname(filename)[1..-1].to_sym)<br />
&nbsp;&nbsp;&nbsp;&nbsp;retval = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;#bitmap = Gdiplus::Bitmap.new(:hbitmap, hbitmap)<br />
&nbsp;&nbsp;&nbsp;&nbsp;#bitmap = Gdiplus::Bitmap.new(:gdidib, *gdidib)<br />
&nbsp;&nbsp;&nbsp;&nbsp;# this seems to be the fastest one (RGSS 3.0.1, Windows 8 64-bit)<br />
&nbsp;&nbsp;&nbsp;&nbsp;bitmap = Gdiplus::Bitmap.new(:scan0, width, height, scan0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;if bitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;retval = bitmap.save(:file, filename, options[:format])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bitmap.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;retval<br />
&nbsp;&nbsp;end<br />
 <br />
private<br />
 <br />
&nbsp;&nbsp;def _data_struct(offset = 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@_data_struct ||= (DL::CPtr.new((object_id &lt;&lt; 1) + 16).ptr + 8).ptr<br />
&nbsp;&nbsp;&nbsp;&nbsp;(@_data_struct + offset).ptr.to_i<br />
&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;def gdidib<br />
&nbsp;&nbsp;&nbsp;&nbsp; [_data_struct(8), _data_struct(16)]<br />
&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;def hbitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;_data_struct(44)<br />
&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;def scan0<br />
&nbsp;&nbsp;&nbsp;&nbsp;_data_struct(12)<br />
&nbsp;&nbsp;end<br />
 <br />
end<br />
<br />
# ★ GDI+ interface<br />
# ★★★★★★★★★★★★<br />
#<br />
# Author : Cremno<br />
#<br />
 <br />
module Gdiplus<br />
&nbsp;&nbsp;DLL = 'gdiplus.dll'<br />
 <br />
&nbsp;&nbsp;def self.get_function name, import, export = 'L'<br />
&nbsp;&nbsp;&nbsp;&nbsp;Win32API.new DLL, name, import, export<br />
&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;FUNCTIONS = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;GdiplusStartup: get_function('GdiplusStartup', 'PPP'),<br />
&nbsp;&nbsp;&nbsp;&nbsp;GdiplusShutdown: get_function('GdiplusShutdown', 'P', 'V'),<br />
&nbsp;&nbsp;&nbsp;&nbsp;GdipDisposeImage: get_function('GdipDisposeImage', 'P'),<br />
&nbsp;&nbsp;&nbsp;&nbsp;GdipSaveImageToFile: get_function('GdipSaveImageToFile', 'PPPP'),<br />
&nbsp;&nbsp;&nbsp;&nbsp;GdipCreateBitmapFromGdiDib: get_function('GdipCreateBitmapFromGdiDib', 'LLP'),<br />
&nbsp;&nbsp;&nbsp;&nbsp;GdipCreateBitmapFromHBITMAP: get_function('GdipCreateBitmapFromHBITMAP', 'LLP'),<br />
&nbsp;&nbsp;&nbsp;&nbsp;GdipCreateBitmapFromScan0: get_function('GdipCreateBitmapFromScan0', 'LLLLPP')<br />
&nbsp;&nbsp;}<br />
 <br />
&nbsp;&nbsp;@@token = [0].pack('I')<br />
&nbsp;&nbsp;def self.token<br />
&nbsp;&nbsp;&nbsp;&nbsp;@@token<br />
&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;@@clsids = {}<br />
&nbsp;&nbsp;def self.clsids<br />
&nbsp;&nbsp;&nbsp;&nbsp;@@clsids<br />
&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;def self.gen_clsids<br />
&nbsp;&nbsp;&nbsp;&nbsp;return unless @@clsids.empty?<br />
&nbsp;&nbsp;&nbsp;&nbsp;func = Win32API.new('rpcrt4.dll', 'UuidFromString', 'PP', 'L')<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bmp:&nbsp;&nbsp;'557cf400-1a04-11d3-9a73-0000f81ef32e',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jpeg: '557cf401-1a04-11d3-9a73-0000f81ef32e',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gif:&nbsp;&nbsp;'557cf402-1a04-11d3-9a73-0000f81ef32e',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tiff: '557cf405-1a04-11d3-9a73-0000f81ef32e',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;png:&nbsp;&nbsp;'557cf406-1a04-11d3-9a73-0000f81ef32e'<br />
&nbsp;&nbsp;&nbsp;&nbsp;}.each_pair do |k, v|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clsid = [0].pack('I')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;func.call(v, clsid)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@@clsids[k] = clsid<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;@@clsids[:jpg] = @@clsids[:jpeg]<br />
&nbsp;&nbsp;&nbsp;&nbsp;@@clsids[:tif] = @@clsids[:tiff]<br />
&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;# TODO: prepend prefix (Gdip or Gdiplus) automatically<br />
&nbsp;&nbsp;def self.call(*args)<br />
&nbsp;&nbsp;&nbsp;&nbsp;name = args.shift<br />
&nbsp;&nbsp;&nbsp;&nbsp;func = FUNCTIONS[name]<br />
&nbsp;&nbsp;&nbsp;&nbsp;v = func.call(*args)<br />
&nbsp;&nbsp;&nbsp;&nbsp;if v &amp;&amp; v != 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msgbox "GDI+ error: #{v}&#92;n&#92;nFunction: #{name}&#92;nArguments: #{args.inspect}"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;false<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;true<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;def self.startup<br />
&nbsp;&nbsp;&nbsp;&nbsp;call :GdiplusStartup, @@token, [1, 0, 0, 0].pack('L4'), 0<br />
&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;def self.shutdown<br />
&nbsp;&nbsp;&nbsp;&nbsp;call :GdiplusShutdown, @@token<br />
&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;class Image<br />
 <br />
&nbsp;&nbsp;&nbsp;&nbsp;attr_reader :instance<br />
&nbsp;&nbsp;&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@instance = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;true<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;&nbsp;&nbsp;def save(destination, *args)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case destination<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when :file<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename = args.shift &lt;&lt; "&#92;0"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename.encode!('UTF-16LE')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;argv = [:GdipSaveImageToFile, filename, Gdiplus.clsids[args.shift], 0]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;raise ArgumentError, "unknown GDI+ image destination: #{source}"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;argv.insert(1, @instance)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gdiplus.call *argv<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;&nbsp;&nbsp;def dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gdiplus.call :GdipDisposeImage, @instance<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
 <br />
&nbsp;&nbsp;class Bitmap &lt; Image<br />
 <br />
&nbsp;&nbsp;&nbsp;&nbsp;def initialize source, *args<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case source<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when :gdidib<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;argv = [:GdipCreateBitmapFromGdiDib, args.shift, args.shift]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when :hbitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;argv = [:GdipCreateBitmapFromHBITMAP, args.shift, 0]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when :scan0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w = args.shift<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h = args.shift<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;argv = [:GdipCreateBitmapFromScan0, w, h, w * -4, 0x26200a, args.shift]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;raise ArgumentError, "unknown GDI+ bitmap source: #{source}"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;argv.push([0].pack('I'))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;retval = Gdiplus.call *argv<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@instance = retval ? argv.last.unpack('I').first : 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;retval<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
 <br />
if Gdiplus.startup<br />
&nbsp;&nbsp;Gdiplus.gen_clsids<br />
&nbsp;&nbsp;class &lt;&lt; SceneManager<br />
&nbsp;&nbsp;&nbsp;&nbsp;alias_method :run_wo_gdip_shutdown, :run<br />
&nbsp;&nbsp;&nbsp;&nbsp;def run<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;run_wo_gdip_shutdown<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gdiplus.shutdown<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
#==============================================================================<br />
# * Compatibility add-ons<br />
#==============================================================================<br />
#Yami overlays<br />
if &#36;imported["YSE-OverlayMapping"]<br />
&nbsp;&nbsp;class Map_Saver<br />
&nbsp;&nbsp;&nbsp;&nbsp;def draw_overlay_map_ground<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename = YSA::OVERLAY::GROUND<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename += &#36;game_map.map_id.to_s<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename += "-" + &#36;game_variables[YSA::OVERLAY::GROUND_VARIABLE].to_s<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p filename<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image = Cache.overlay(filename)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@src_rect.set(@start_x*tilesize, @start_y*tilesize, image.width, image.height)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@map_image.blt(0, 0, image, @src_rect)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def draw_overlay_map_parallax<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename = YSA::OVERLAY::PARALLAX<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename += &#36;game_map.map_id.to_s<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename += "-" + &#36;game_variables[YSA::OVERLAY::PARALLAX_VARIABLE].to_s<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image = Cache.overlay(filename)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@src_rect.set(@start_x*tilesize, @start_y*tilesize, image.width, image.height)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@map_image.blt(0, 0, image, @src_rect)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def draw_overlay_map_light<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename = YSA::OVERLAY::LIGHT<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename += &#36;game_map.map_id.to_s<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename += "-" + &#36;game_variables[YSA::OVERLAY::LIGHT_VARIABLE].to_s<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image = Cache.overlay(filename)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@src_rect.set(@start_x*tilesize, @start_y*tilesize, image.width, image.height)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@map_image.blt(0, 0, image, @src_rect, 10)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def draw_overlay_map_shadow<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename = YSA::OVERLAY::SHADOW<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename += &#36;game_map.map_id.to_s<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename += "-" + &#36;game_variables[YSA::OVERLAY::SHADOW_VARIABLE].to_s<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image = Cache.overlay(filename)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@src_rect.set(@start_x*tilesize, @start_y*tilesize, image.width, image.height)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@map_image.blt(0, 0, image, @src_rect, 10)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;alias :th_map_overlay_draw_map :draw_map<br />
&nbsp;&nbsp;&nbsp;&nbsp;def draw_map<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;th_map_overlay_draw_map<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_overlay_map_ground if &#36;game_switches[YSA::OVERLAY::GROUND_SWITCH] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_overlay_map_parallax if &#36;game_switches[YSA::OVERLAY::PARALLAX_SWITCH] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_overlay_map_shadow if &#36;game_switches[YSA::OVERLAY::SHADOW_SWITCH]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_overlay_map_light if &#36;game_switches[YSA::OVERLAY::LIGHT_SWITCH]<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
if &#36;imported["TH_AreaOverlay"]<br />
&nbsp;&nbsp;class Map_Saver<br />
&nbsp;&nbsp;&nbsp;&nbsp;def draw_overlay_area_map<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image = SceneManager.scene.instance_variable_get(:@spriteset).instance_variable_get(:@ar&#8203;ea_map).bitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@src_rect.set(@start_x * tilesize, @start_y * tilesize, image.width, image.height)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@map_image.blt(0, 0, image, @src_rect, 255)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;alias :th_area_overlay_draw_map :draw_map<br />
&nbsp;&nbsp;&nbsp;&nbsp;def draw_map<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;th_area_overlay_draw_map<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_overlay_area_map<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end</code></div></div>
</div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[CSCA AutoSave Plus]]></title>
			<link>https://forum.ultimateam.pl/Thread-VXAce-CSCA-AutoSave-Plus</link>
			<pubDate>Sat, 10 May 2014 13:10:18 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-VXAce-CSCA-AutoSave-Plus</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ CSCA AutoSave Plus ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt pozwala na autozapis manualny, a także:<br />
- przy przechodzeniu na inną mapę<br />
- po walce<br />
- przy zdobywaniu złota,przedmiotów,broni,pancerza<br />
- po pewnej ilości kroków<br />
<br />
Każdą opcję można dowolnie edytować, tak samo jak nazwę pliku autosave oraz okna z autosave.<br />
AutoSave Plus nie zastępuje klasycznego Wczytaj Grę.<br />
<span style="font-weight: bold;">GŁÓWNE INFORMACJE MOŻNA ZNALEŹĆ W SKRYPCIE!!!</span><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Casper Gaming ( <a href="http://www.caspergaming.com/index.html" target="_blank">http://www.caspergaming.com/index.html</a> )<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
ReetzO<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>=begin<br />
CSCA AutoSave Plus<br />
Wersja: 1.1 (Stworzone: August 20th, 2012)<br />
Twórca: Casper Gaming (http://www.caspergaming.com/)<br />
Tłumaczył: ReetzO<br />
Tłumaczenie z: www.forum.ultimateam.pl<br />
------------------------------------------------<br />
Kompatybilność:<br />
Stworzone dla RPGVXAce<br />
WAŻNE: Wszystkie skrypty CSCA powinny ze sobą działać bez zarzutów, jeśli nie,<br />
jest to powiedziane!<br />
<br />
NIE KOMPATYBILNE Z: CSCA Game Over Options<br />
(Jendnak ten skrypt utrzymuje funkcjonalność tamtego).<br />
------------------------------------------------<br />
HISTORIA AKTUALIZACJI:<br />
Wersja 1.0<br />
-oryginalny skrypt<br />
<br />
Wersja 1.1<br />
-O automatycznym zapisywaniu informuje nas wyskakujący na mapie tekst<br />
-Dodano automatyczny zapis po przejściu określonej liczby kroków<br />
------------------------------------------------<br />
WSTĘP:<br />
Ten skrypt dodaje do gry automatyczny zapis, który aktywuje się, gdy gracz:<br />
przeniesie się na inną mapę, zakończy walkę, otrzyma złoto/ekwpipunek/przedmiot/<br />
broń (tylko dzieki komendom w zdarzeniach), każdą opcję można wyłączyć/włączyć.<br />
Automatyczny zapis nie nadmienia standardowego zapisu.<br />
------------------------------------------------<br />
CO OFERUJE SKRYPT:<br />
-Automatyczny zapis gry przy specjalnych okolicznościach określonych przez ciebie<br />
-Możliwość wczytania automatycznego zapisu z menu, scene_end lub gameovera.<br />
-Możliwość zmiany muzyki/obrazka z gameovera za pomocą komendy w grze.<br />
------------------------------------------------<br />
USTAWIENIA SKRYPTU:<br />
Ustawienia skryptu można zmienić poniżej.<br />
<br />
================================================================================&#8203;<br />
Aby samemu stworzyć autosave należy użyć komendy Skrypt z kodem:<br />
DataManager.csca_autosave(:save)<br />
<br />
Aby samemu wczytać autosave należy użyć komendy Skrypt z kodem:<br />
DataManager.csca_autosave(:load)<br />
UWAGA: Używaj z rozwagą, pojawi się błąd, jeśli autosave nie istniał!<br />
================================================================================&#8203;<br />
<br />
CREDITSY:<br />
Można bez oporów użyawć w niekomercyjnych grach jeśli w credistach będzie:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Casper Gaming (http://www.caspergaming.com/)<br />
Co łaska, proszę także umieścić tłumacza: <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ReetzO<br />
<br />
Aby korzystać ze skryptu w grach komercyjnych należy zakupić licencję tutaj:<br />
http://www.caspergaming.com/licenses.html<br />
<br />
ZASADY UŻYWANIA:<br />
http://www.caspergaming.com/terms_of_use.html<br />
=end<br />
module CSCA # &lt;- NIE DOTYKAĆ<br />
&nbsp;&nbsp;module AUTOSAVE # &lt;- NIE DOTYKAĆ<br />
&nbsp;&nbsp;&nbsp;&nbsp;#============================ Opcje Autosave =============================#<br />
&nbsp;&nbsp;&nbsp;&nbsp;#===== Wpisz true jeśli zatwierdzasz daną opcję lub false jeśli nie. =====#&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;TRANSFER = true # Autosave przy przejściu na inną mapę? <br />
&nbsp;&nbsp;&nbsp;&nbsp;BATTLE = true&nbsp;&nbsp; # Autosave po każdej walce?<br />
&nbsp;&nbsp;&nbsp;&nbsp;#========== Następne opcje dotyczą tylko komend w zdarzeniach ============#<br />
&nbsp;&nbsp;&nbsp;&nbsp;GOLD = true&nbsp;&nbsp;&nbsp;&nbsp; # Autosave przy zmianie aktualnego złota? <br />
&nbsp;&nbsp;&nbsp;&nbsp;ITEM = true&nbsp;&nbsp;&nbsp;&nbsp; # Autosave przy dodaniu/usunięciu przedmiotu?<br />
&nbsp;&nbsp;&nbsp;&nbsp;WEAPON = true&nbsp;&nbsp; # Autosave przy dodaniu/usunięciu broni?<br />
&nbsp;&nbsp;&nbsp;&nbsp;ARMOR = true&nbsp;&nbsp;&nbsp;&nbsp;# Autosave przy dodaniu/usunięciu pancerza?<br />
&nbsp;&nbsp;&nbsp;&nbsp;#=================== Liczba kroków określana poniżej =====================#<br />
&nbsp;&nbsp;&nbsp;&nbsp;STEPS = false&nbsp;&nbsp; # Autosave po konkretnej liczbie kroków?<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;DISABLE_SWITCH = 1 # ID przełącznika. Gdy przełącznik ten będzie włączony<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # autosave będzie działać tylko przy użyciu komend <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # manualnie. Używaj go, gdy nie chcesz by na przykład<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # przechodzenie między mapami w Intro zapisywało grę.<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;STEP_COUNT = 50 # Liczba kroków potrzebna do autosave (jeśli włączone)<br />
&nbsp;&nbsp;&nbsp;&nbsp;#=========================== Opcje Game Over =============================#<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Ustawienie zmiennych<br />
&nbsp;&nbsp;&nbsp;&nbsp;IMAGEVAR = 1 # ID zmiennej. Określa, który obrazek gameover użyć. Przykład:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Ta zmienna jest ustawiona na 1, a więc wykorzystany zostanie<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # obrazek Graphics/System/GameOver1<br />
&nbsp;&nbsp;&nbsp;&nbsp;MUSICVAR = 2 # ID zmiennej. Określa, które ME użyć do gameover'a. Przykład:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Ta zmienna jest ustawiona na 1, a więc wykorzystane zostanie<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # ME Audio/ME/GameOver1<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Ustawienie tekstu<br />
&nbsp;&nbsp;&nbsp;&nbsp;CONTINUE = "Kontynuuj" # Tekst dla wczytywania autosave.<br />
&nbsp;&nbsp;&nbsp;&nbsp;LOAD = "Wczytaj grę" # Tekst dla wczytywania zwykłego zapisu gry.<br />
&nbsp;&nbsp;&nbsp;&nbsp;TITLE = "Do menu" # Tekst dla opcji 'Powrót do menu głównego'<br />
&nbsp;&nbsp;&nbsp;&nbsp;SHUTDOWN = "Wyjdź z gry" # Tekst dla opcji 'Wyjdź z gry'<br />
&nbsp;&nbsp;&nbsp;&nbsp;AUTOSAVING = "Zapisywanie..." # Tekst wyświetlany na mapie podczas autosave'a<br />
&nbsp;&nbsp;end # AUTOSAVE<br />
end # CSCA<br />
#############<br />
# Zmiana nazwy pliku autosave #<br />
#############<br />
&#36;imported = {} if &#36;imported.nil?<br />
&#36;imported["CSCA-Autosave"] = true # Zmień 'Autosave' na twoją nazwę pliku.<br />
#==============================================================================<br />
# ** DataManager<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Wykorzystwyane do usuwania i tworzenia autosave.<br />
# W skrócie: Rozpoczęcie nowej gry a autosave.<br />
#==============================================================================<br />
module DataManager<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Wczytywanie, czy zapis?<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def self.csca_autosave(symbol)<br />
&nbsp;&nbsp;&nbsp;&nbsp;case symbol<br />
&nbsp;&nbsp;&nbsp;&nbsp;when :save; make_autosave<br />
&nbsp;&nbsp;&nbsp;&nbsp;when :load; load_autosave<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Czy autosave istnieje?<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Jeśli zmieniłeś wcześniej nazwę pliku tu także musisz.<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def self.autosave_exists?<br />
&nbsp;&nbsp;&nbsp;&nbsp;!Dir.glob('Autosave.rvdata2').empty?<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Usuwanie autosave<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Jeśli zmieniłeś wcześniej nazwę pliku tu także musisz.<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def self.delete_autosave<br />
&nbsp;&nbsp;&nbsp;&nbsp;File.delete('Autosave.rvdata2') rescue nil<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Zapisywanie metodą autosave&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def self.make_autosave<br />
&nbsp;&nbsp;&nbsp;&nbsp;begin<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;autosave_without_rescue<br />
&nbsp;&nbsp;&nbsp;&nbsp;rescue<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete_autosave<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;false<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_map.autosaving = true<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Wczytywania metodą kontynuuj grę<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def self.load_autosave<br />
&nbsp;&nbsp;&nbsp;&nbsp;load_autosave_without_rescue rescue false<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Wykonywanie zapisu gry<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Jeśli zmieniłeś wcześniej nazwę pliku tu także musisz.<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def self.autosave_without_rescue<br />
&nbsp;&nbsp;&nbsp;&nbsp;File.open('Autosave.rvdata2', "wb") do |file|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.on_before_autosave<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Marshal.dump(make_save_header, file)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Marshal.dump(make_save_contents, file)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Wykonywanie kontynuowania gry<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Jeśli zmieniłeś wcześniej nazwę pliku tu także musisz.<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def self.load_autosave_without_rescue<br />
&nbsp;&nbsp;&nbsp;&nbsp;File.open('Autosave.rvdata2', "rb") do |file|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Marshal.load(file)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;extract_save_contents(Marshal.load(file))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reload_map_if_updated<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;class &lt;&lt; self; alias csca_autosave_new_game setup_new_game; end<br />
&nbsp;&nbsp;def self.setup_new_game<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave_new_game<br />
&nbsp;&nbsp;&nbsp;&nbsp;delete_autosave if autosave_exists?<br />
&nbsp;&nbsp;end<br />
end # DataManager<br />
#==============================================================================<br />
# ** Game_System<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Formuje działanie przed autosave i po wczytaniu autosave<br />
#==============================================================================<br />
class Game_System<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Działanie przed autosave<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def on_before_autosave<br />
&nbsp;&nbsp;&nbsp;&nbsp;@version_id = &#36;data_system.version_id<br />
&nbsp;&nbsp;&nbsp;&nbsp;@frames_on_autosave = Graphics.frame_count<br />
&nbsp;&nbsp;&nbsp;&nbsp;@bgm_on_autosave = RPG::BGM.last<br />
&nbsp;&nbsp;&nbsp;&nbsp;@bgs_on_autosave = RPG::BGS.last<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Działanie po wczytaniu autosave<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def on_after_autosave_load<br />
&nbsp;&nbsp;&nbsp;&nbsp;Graphics.frame_count = @frames_on_autosave<br />
&nbsp;&nbsp;&nbsp;&nbsp;@bgm_on_autosave.play<br />
&nbsp;&nbsp;&nbsp;&nbsp;@bgs_on_autosave.play<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Autosave aktywny?<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def csca_autosave_allowed?(situation)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return false if &#36;game_switches[CSCA::AUTOSAVE::DISABLE_SWITCH] || &#36;BTEST ||<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.in_battle<br />
&nbsp;&nbsp;&nbsp;&nbsp;case situation<br />
&nbsp;&nbsp;&nbsp;&nbsp;when :transfer; CSCA::AUTOSAVE::TRANSFER<br />
&nbsp;&nbsp;&nbsp;&nbsp;when :battle; CSCA::AUTOSAVE::BATTLE<br />
&nbsp;&nbsp;&nbsp;&nbsp;when :gold; CSCA::AUTOSAVE::GOLD<br />
&nbsp;&nbsp;&nbsp;&nbsp;when :item; CSCA::AUTOSAVE::ITEM<br />
&nbsp;&nbsp;&nbsp;&nbsp;when :weapon; CSCA::AUTOSAVE::WEAPON<br />
&nbsp;&nbsp;&nbsp;&nbsp;when :armor; CSCA::AUTOSAVE::ARMOR<br />
&nbsp;&nbsp;&nbsp;&nbsp;when :steps; CSCA::AUTOSAVE::STEPS<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end # Game_System<br />
#==============================================================================<br />
# ** Scene_Load<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Usuwa stary plik autosave, podczas wczytywania nowego pliku.<br />
# W skrócie: on_load_succes<br />
#==============================================================================<br />
class Scene_Load &lt; Scene_File<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_delete_autosave on_load_success<br />
&nbsp;&nbsp;def on_load_success<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_delete_autosave<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.delete_autosave if DataManager.autosave_exists?<br />
&nbsp;&nbsp;end<br />
end # Scene_Load<br />
#==============================================================================<br />
# ** Scene_Gameover<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Dodawanie nowego okna i zależnych od zmiennych grafik/ME przy gameoverze.<br />
# W skrócie: start, play_gameover_music, create_background<br />
# W przeciwnym razie: update<br />
#==============================================================================<br />
class Scene_Gameover &lt; Scene_Base<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda - start<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_gameover_start start<br />
&nbsp;&nbsp;def start<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_gameover_start<br />
&nbsp;&nbsp;&nbsp;&nbsp;create_command_window<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Metoda 'W przeciwnym razie'<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;super<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda - ME<br />
&nbsp;&nbsp;# Możesz tutaj zmienić pierwszy człon pliku do ME wykorzystywanego w gameover<br />
&nbsp;&nbsp;# i zależnego od zmiennej.<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_gameover_music play_gameover_music<br />
&nbsp;&nbsp;def play_gameover_music<br />
&nbsp;&nbsp;&nbsp;&nbsp;RPG::BGM.stop<br />
&nbsp;&nbsp;&nbsp;&nbsp;RPG::BGS.stop<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_variables[CSCA::AUTOSAVE::MUSICVAR] == 0 ? csca_gameover_music :<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Audio.me_play("Audio/ME/Gameover"+&#36;game_variables[CSCA::AUTOSAVE::MUSICVAR].to_s,100,100)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda - obrazek<br />
&nbsp;&nbsp;# Możesz tutaj zmienić pierwszy człon pliku do obrazka wykorzystywanego w <br />
&nbsp;&nbsp;# gameoer i zależnego od zmiennej.<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_gameover_background create_background<br />
&nbsp;&nbsp;def create_background<br />
&nbsp;&nbsp;&nbsp;&nbsp;@sprite = Sprite.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_variables[CSCA::AUTOSAVE::IMAGEVAR] == 0 ? csca_gameover_background :<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@sprite.bitmap = Cache.system("GameOver" + &#36;game_variables[CSCA::AUTOSAVE::IMAGEVAR].to_s)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Komendy w gameover<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def create_command_window<br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window = CSCA_Window_GameoverCommand.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.set_handler(:continue, method(:load_autosave))<br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.set_handler(:load, method(:goto_file_selection))<br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.set_handler(:title, method(:goto_title))<br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.set_handler(:shutdown, method(:goto_shutdown))<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Wyjdź z gry<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def goto_shutdown<br />
&nbsp;&nbsp;&nbsp;&nbsp;close_command_window<br />
&nbsp;&nbsp;&nbsp;&nbsp;fadeout_all<br />
&nbsp;&nbsp;&nbsp;&nbsp;SceneManager.exit<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Wczytaj zapisaną grę<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def goto_file_selection<br />
&nbsp;&nbsp;&nbsp;&nbsp;close_command_window<br />
&nbsp;&nbsp;&nbsp;&nbsp;SceneManager.call(Scene_Load)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Kontynuuj grę (autosave)<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def load_autosave<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.csca_autosave(:load)<br />
&nbsp;&nbsp;&nbsp;&nbsp;fadeout_all<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.on_after_autosave_load<br />
&nbsp;&nbsp;&nbsp;&nbsp;SceneManager.goto(Scene_Map)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Zamknij okno<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def close_command_window<br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.close<br />
&nbsp;&nbsp;&nbsp;&nbsp;update until @command_window.close?<br />
&nbsp;&nbsp;end<br />
end # Scene_Gameover<br />
#==============================================================================<br />
# ** CSCA_Window_GameoverCommand<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Tu jest ustalane okno do komend na ekranie gameover<br />
#==============================================================================<br />
class CSCA_Window_GameoverCommand &lt; Window_Command<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Inicjalizacja<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp;super(0,0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.x = (Graphics.width - width) / 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.y = (Graphics.height * 1.6 - height) / 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.openness = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;open<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Tworzenie komend<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def make_command_list<br />
&nbsp;&nbsp;&nbsp;&nbsp;add_command(CSCA::AUTOSAVE::CONTINUE, :continue, continue_enabled)<br />
&nbsp;&nbsp;&nbsp;&nbsp;add_command(CSCA::AUTOSAVE::LOAD, :load, load_enabled)<br />
&nbsp;&nbsp;&nbsp;&nbsp;add_command(CSCA::AUTOSAVE::TITLE, :title)<br />
&nbsp;&nbsp;&nbsp;&nbsp;add_command(CSCA::AUTOSAVE::SHUTDOWN, :shutdown)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Autosave istnieje?<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def continue_enabled<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.autosave_exists?<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Zapisana gra istnieje?<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def load_enabled<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.save_file_exists?<br />
&nbsp;&nbsp;end<br />
end # CSCA_Window_GameoverCommand<br />
#==============================================================================<br />
# ** Window_GameEnd<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Wczytywanie gry w: Koniec gry<br />
# W skrócie: make_command_list<br />
#==============================================================================<br />
class Window_GameEnd &lt; Window_Command<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_autosave make_command_list<br />
&nbsp;&nbsp;def make_command_list<br />
&nbsp;&nbsp;&nbsp;&nbsp;add_command(CSCA::AUTOSAVE::CONTINUE, :autosave, autosave_enabled)<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Autosave istnieje?<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def autosave_enabled<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.autosave_exists?<br />
&nbsp;&nbsp;end<br />
end # Window_GameEnd<br />
#==============================================================================<br />
# ** Scene_End<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Wczytywanie ostaniego zapisu z: Scene_End<br />
# W skrócie: create_command_window<br />
#==============================================================================<br />
class Scene_End &lt; Scene_MenuBase<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_autosave_option create_command_window<br />
&nbsp;&nbsp;def create_command_window<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave_option<br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.set_handler(:autosave, method(:load_autosave))<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Wczytywanie autosave<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def load_autosave<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.csca_autosave(:load)<br />
&nbsp;&nbsp;&nbsp;&nbsp;fadeout_all<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.on_after_autosave_load<br />
&nbsp;&nbsp;&nbsp;&nbsp;SceneManager.goto(Scene_Map)<br />
&nbsp;&nbsp;end<br />
end # Scene_End<br />
#==============================================================================<br />
# ** Window_TitleCommand<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Wczytywanie autosave z menu głównego<br />
# W skrócie: make_command_list<br />
#==============================================================================<br />
class Window_TitleCommand &lt; Window_Command<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Metoda 'W przeciwnym razie'<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def make_command_list<br />
&nbsp;&nbsp;&nbsp;&nbsp;add_command(Vocab::new_game, :new_game)<br />
&nbsp;&nbsp;&nbsp;&nbsp;add_command(Vocab::continue, :continue, continue_enabled)<br />
&nbsp;&nbsp;&nbsp;&nbsp;add_command(CSCA::AUTOSAVE::CONTINUE, :autosave, autosave_enabled)<br />
&nbsp;&nbsp;&nbsp;&nbsp;add_command(Vocab::shutdown, :shutdown)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Autosave istinieje?<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def autosave_enabled<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.autosave_exists?<br />
&nbsp;&nbsp;end<br />
end # Window_TitleCommand<br />
#==============================================================================<br />
# ** Scene_Title<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Wczytywanie autosave z menu głównego w tworzonym oknie<br />
# W skrócie: create_command_window<br />
#==============================================================================<br />
class Scene_Title &lt; Scene_Base<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_autosave_add create_command_window<br />
&nbsp;&nbsp;def create_command_window<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave_add<br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.set_handler(:autosave, method(:command_autosave))<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Wczytywanie autosave<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def command_autosave<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.csca_autosave(:load)<br />
&nbsp;&nbsp;&nbsp;&nbsp;close_command_window<br />
&nbsp;&nbsp;&nbsp;&nbsp;fadeout_all<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.on_after_autosave_load<br />
&nbsp;&nbsp;&nbsp;&nbsp;SceneManager.goto(Scene_Map)<br />
&nbsp;&nbsp;end<br />
end # Scene_Title<br />
#==============================================================================<br />
# ** Scene_Map<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Autosave przy przenoszeniu się na inną mapę. Tworzenie okien autosave.<br />
# W skrócie: post_transfer, create_all_windows, pre_transfer, update<br />
#==============================================================================<br />
class Scene_Map &lt; Scene_Base<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda - przenoszenie<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_autosave_transfer post_transfer<br />
&nbsp;&nbsp;def post_transfer<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave_transfer<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.csca_autosave(:save) if &#36;game_system.csca_autosave_allowed?(:transfer)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda - tworzenie okien<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_autosave_create_windows create_all_windows<br />
&nbsp;&nbsp;def create_all_windows<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave_create_windows<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_create_autosave_window<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Tworzenie okna autosave<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def csca_create_autosave_window<br />
&nbsp;&nbsp;&nbsp;&nbsp;@autosave_window = CSCA_Window_Autosaving.new<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda - przed przeniesieniem<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_autosave_pre_transfer pre_transfer<br />
&nbsp;&nbsp;def pre_transfer<br />
&nbsp;&nbsp;&nbsp;&nbsp;@autosave_window.close<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave_pre_transfer<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda - aktualizacja autosave<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_autosave_update update<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave_update<br />
&nbsp;&nbsp;&nbsp;&nbsp;@autosave_window.open if &#36;game_map.autosaving<br />
&nbsp;&nbsp;end<br />
end # Game_Map<br />
#==============================================================================<br />
# ** Battle Manager<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Autosaves na koniec walki<br />
# W skrócie: battle_end<br />
#==============================================================================<br />
module BattleManager<br />
&nbsp;&nbsp;class &lt;&lt;self; alias csca_autosave_battle battle_end; end<br />
&nbsp;&nbsp;def self.battle_end(result)<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave_battle(result)<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.csca_autosave(:save) if &#36;game_system.csca_autosave_allowed?(:battle)<br />
&nbsp;&nbsp;end<br />
end # BattleManager<br />
#==============================================================================<br />
# ** Game_Interpreter<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Autosaves przy zdobyciu/zmianie przedmiotu, broni, złota, pancerza, drużyny.<br />
# W skrócie:: command_125, command_126, command_127, command_128, command_129<br />
#==============================================================================<br />
class Game_Interpreter<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda - 125<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_autosave_125 command_125<br />
&nbsp;&nbsp;def command_125<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave_125<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.csca_autosave(:save) if &#36;game_system.csca_autosave_allowed?(:gold)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrocona metoda - 126<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_autosave_126 command_126<br />
&nbsp;&nbsp;def command_126<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave_126<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.csca_autosave(:save) if &#36;game_system.csca_autosave_allowed?(:item)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda - 127<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_autosave_127 command_127<br />
&nbsp;&nbsp;def command_127<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave_127<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.csca_autosave(:save) if &#36;game_system.csca_autosave_allowed?(:weapon)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda - 128<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_autosave_128 command_128<br />
&nbsp;&nbsp;def command_128<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave_128<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.csca_autosave(:save) if &#36;game_system.csca_autosave_allowed?(:armor)<br />
&nbsp;&nbsp;end<br />
end<br />
#==============================================================================<br />
# ** Game_Player<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Autosave po określonej liczbie kroków.<br />
# W skrócie: update, initialize<br />
#==============================================================================<br />
class Game_Player &lt; Game_Character<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda - inicjalizacja autosave<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_autosave_init initialize<br />
&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave_init<br />
&nbsp;&nbsp;&nbsp;&nbsp;@csca_autosave_steps = 0<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda - aktualizacja liczby króków, a autosave<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_autosave_steps update<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave_steps<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_check_autosave_step_count<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Sprawdzanie liczby kroków do autosave<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def csca_check_autosave_step_count<br />
&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_party.steps % CSCA::AUTOSAVE::STEP_COUNT == 0 &amp;&amp; &#36;game_system.csca_autosave_allowed?(:steps) &amp;&amp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@steps != &#36;game_party.steps<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataManager.csca_autosave(:save)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@csca_autosave_steps = &#36;game_party.steps<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
#==============================================================================<br />
# ** CSCA_Window_Autosaving<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Okno z tekstem 'Zapisywanie...<br />
#==============================================================================<br />
class CSCA_Window_Autosaving &lt; Window_Base<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Inicjalizacja<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp;super(0,Graphics.height-fitting_height(1),window_width,fitting_height(1))<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.opacity = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents_opacity = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;@show_count = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;refresh<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Szerokość okna<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def window_width<br />
&nbsp;&nbsp;&nbsp;&nbsp;return 240<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Aktualizacja ramki<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;super<br />
&nbsp;&nbsp;&nbsp;&nbsp;if @show_count &gt; 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_fadein<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@show_count -= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_fadeout<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Aktualizacja fadein<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update_fadein<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents_opacity += 16<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Aktualizacja fadeout<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update_fadeout<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents_opacity -= 16<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Pojawianie się okna<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def open<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_map.autosaving = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;@show_count = 60<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents_opacity = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;self<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Znikanie okna<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def close<br />
&nbsp;&nbsp;&nbsp;&nbsp;@show_count = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;self<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Odświeżanie<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;contents.clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;contents.font.size = 18<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_text(0,0,contents.width,line_height,CSCA::AUTOSAVE::AUTOSAVING)<br />
&nbsp;&nbsp;&nbsp;&nbsp;contents.font.size = 24<br />
&nbsp;&nbsp;end<br />
end<br />
#==============================================================================<br />
# ** Game_Map<br />
#------------------------------------------------------------------------------<br />
# Automatyczne zapisywanie?<br />
#==============================================================================<br />
class Game_Map<br />
&nbsp;&nbsp;attr_accessor :autosaving<br />
end</code></div></div>
</div></div><span style="color: red;"><span style="font-weight: bold;">Screenshots:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><img class="postimage" src="http://i.imgur.com/h8AxJaA.png" border="0" alt="[Obrazek: h8AxJaA.png]" /></div></div><div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><img class="postimage" src="http://i.imgur.com/FbgzFYh.png" border="0" alt="[Obrazek: FbgzFYh.png]" /></div></div><div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><img class="postimage" src="http://i.imgur.com/cibvRia.png" border="0" alt="[Obrazek: cibvRia.png]" /></div></div><span style="color: red;"><span style="font-weight: bold;">Demo:</span></span><br />
<a href="http://www.mediafire.com/download/9jog18n0ceumq18/AutoSave+Plus.rar" target="_blank"><img class="postimage" src="http://www.ultimateam.pl/images/demo_download.png" border="0" alt="[Obrazek: demo_download.png]" /></a><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
- Kompatybilny z innymi skryptami CSCA, nie licząc Gameover options, aczkolwiek te opcje zawiera także skrypt AutoSave Plus.<br />
- Aby wykorzystać w grze komercyjnej należy zakupić licencję od autora!<br />
- Jeśli ktoś chciałby wersje tego skryptu TYLKO z 'Kontynuj' w Menu itp. to taką posiadam w swoim projekcie i chętnie użyczę.<br />
- Creditsy wymagane dla autora, polecane dla tłumacza ;P]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ CSCA AutoSave Plus ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt pozwala na autozapis manualny, a także:<br />
- przy przechodzeniu na inną mapę<br />
- po walce<br />
- przy zdobywaniu złota,przedmiotów,broni,pancerza<br />
- po pewnej ilości kroków<br />
<br />
Każdą opcję można dowolnie edytować, tak samo jak nazwę pliku autosave oraz okna z autosave.<br />
AutoSave Plus nie zastępuje klasycznego Wczytaj Grę.<br />
<span style="font-weight: bold;">GŁÓWNE INFORMACJE MOŻNA ZNALEŹĆ W SKRYPCIE!!!</span><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Casper Gaming ( <a href="http://www.caspergaming.com/index.html" target="_blank">http://www.caspergaming.com/index.html</a> )<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
ReetzO<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>=begin<br />
CSCA AutoSave Plus<br />
Wersja: 1.1 (Stworzone: August 20th, 2012)<br />
Twórca: Casper Gaming (http://www.caspergaming.com/)<br />
Tłumaczył: ReetzO<br />
Tłumaczenie z: www.forum.ultimateam.pl<br />
------------------------------------------------<br />
Kompatybilność:<br />
Stworzone dla RPGVXAce<br />
WAŻNE: Wszystkie skrypty CSCA powinny ze sobą działać bez zarzutów, jeśli nie,<br />
jest to powiedziane!<br />
<br />
NIE KOMPATYBILNE Z: CSCA Game Over Options<br />
(Jendnak ten skrypt utrzymuje funkcjonalność tamtego).<br />
------------------------------------------------<br />
HISTORIA AKTUALIZACJI:<br />
Wersja 1.0<br />
-oryginalny skrypt<br />
<br />
Wersja 1.1<br />
-O automatycznym zapisywaniu informuje nas wyskakujący na mapie tekst<br />
-Dodano automatyczny zapis po przejściu określonej liczby kroków<br />
------------------------------------------------<br />
WSTĘP:<br />
Ten skrypt dodaje do gry automatyczny zapis, który aktywuje się, gdy gracz:<br />
przeniesie się na inną mapę, zakończy walkę, otrzyma złoto/ekwpipunek/przedmiot/<br />
broń (tylko dzieki komendom w zdarzeniach), każdą opcję można wyłączyć/włączyć.<br />
Automatyczny zapis nie nadmienia standardowego zapisu.<br />
------------------------------------------------<br />
CO OFERUJE SKRYPT:<br />
-Automatyczny zapis gry przy specjalnych okolicznościach określonych przez ciebie<br />
-Możliwość wczytania automatycznego zapisu z menu, scene_end lub gameovera.<br />
-Możliwość zmiany muzyki/obrazka z gameovera za pomocą komendy w grze.<br />
------------------------------------------------<br />
USTAWIENIA SKRYPTU:<br />
Ustawienia skryptu można zmienić poniżej.<br />
<br />
================================================================================&#8203;<br />
Aby samemu stworzyć autosave należy użyć komendy Skrypt z kodem:<br />
DataManager.csca_autosave(:save)<br />
<br />
Aby samemu wczytać autosave należy użyć komendy Skrypt z kodem:<br />
DataManager.csca_autosave(:load)<br />
UWAGA: Używaj z rozwagą, pojawi się błąd, jeśli autosave nie istniał!<br />
================================================================================&#8203;<br />
<br />
CREDITSY:<br />
Można bez oporów użyawć w niekomercyjnych grach jeśli w credistach będzie:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Casper Gaming (http://www.caspergaming.com/)<br />
Co łaska, proszę także umieścić tłumacza: <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ReetzO<br />
<br />
Aby korzystać ze skryptu w grach komercyjnych należy zakupić licencję tutaj:<br />
http://www.caspergaming.com/licenses.html<br />
<br />
ZASADY UŻYWANIA:<br />
http://www.caspergaming.com/terms_of_use.html<br />
=end<br />
module CSCA # &lt;- NIE DOTYKAĆ<br />
&nbsp;&nbsp;module AUTOSAVE # &lt;- NIE DOTYKAĆ<br />
&nbsp;&nbsp;&nbsp;&nbsp;#============================ Opcje Autosave =============================#<br />
&nbsp;&nbsp;&nbsp;&nbsp;#===== Wpisz true jeśli zatwierdzasz daną opcję lub false jeśli nie. =====#&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;TRANSFER = true # Autosave przy przejściu na inną mapę? <br />
&nbsp;&nbsp;&nbsp;&nbsp;BATTLE = true&nbsp;&nbsp; # Autosave po każdej walce?<br />
&nbsp;&nbsp;&nbsp;&nbsp;#========== Następne opcje dotyczą tylko komend w zdarzeniach ============#<br />
&nbsp;&nbsp;&nbsp;&nbsp;GOLD = true&nbsp;&nbsp;&nbsp;&nbsp; # Autosave przy zmianie aktualnego złota? <br />
&nbsp;&nbsp;&nbsp;&nbsp;ITEM = true&nbsp;&nbsp;&nbsp;&nbsp; # Autosave przy dodaniu/usunięciu przedmiotu?<br />
&nbsp;&nbsp;&nbsp;&nbsp;WEAPON = true&nbsp;&nbsp; # Autosave przy dodaniu/usunięciu broni?<br />
&nbsp;&nbsp;&nbsp;&nbsp;ARMOR = true&nbsp;&nbsp;&nbsp;&nbsp;# Autosave przy dodaniu/usunięciu pancerza?<br />
&nbsp;&nbsp;&nbsp;&nbsp;#=================== Liczba kroków określana poniżej =====================#<br />
&nbsp;&nbsp;&nbsp;&nbsp;STEPS = false&nbsp;&nbsp; # Autosave po konkretnej liczbie kroków?<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;DISABLE_SWITCH = 1 # ID przełącznika. Gdy przełącznik ten będzie włączony<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # autosave będzie działać tylko przy użyciu komend <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # manualnie. Używaj go, gdy nie chcesz by na przykład<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # przechodzenie między mapami w Intro zapisywało grę.<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;STEP_COUNT = 50 # Liczba kroków potrzebna do autosave (jeśli włączone)<br />
&nbsp;&nbsp;&nbsp;&nbsp;#=========================== Opcje Game Over =============================#<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Ustawienie zmiennych<br />
&nbsp;&nbsp;&nbsp;&nbsp;IMAGEVAR = 1 # ID zmiennej. Określa, który obrazek gameover użyć. Przykład:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Ta zmienna jest ustawiona na 1, a więc wykorzystany zostanie<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # obrazek Graphics/System/GameOver1<br />
&nbsp;&nbsp;&nbsp;&nbsp;MUSICVAR = 2 # ID zmiennej. Określa, które ME użyć do gameover'a. Przykład:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Ta zmienna jest ustawiona na 1, a więc wykorzystane zostanie<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # ME Audio/ME/GameOver1<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Ustawienie tekstu<br />
&nbsp;&nbsp;&nbsp;&nbsp;CONTINUE = "Kontynuuj" # Tekst dla wczytywania autosave.<br />
&nbsp;&nbsp;&nbsp;&nbsp;LOAD = "Wczytaj grę" # Tekst dla wczytywania zwykłego zapisu gry.<br />
&nbsp;&nbsp;&nbsp;&nbsp;TITLE = "Do menu" # Tekst dla opcji 'Powrót do menu głównego'<br />
&nbsp;&nbsp;&nbsp;&nbsp;SHUTDOWN = "Wyjdź z gry" # Tekst dla opcji 'Wyjdź z gry'<br />
&nbsp;&nbsp;&nbsp;&nbsp;AUTOSAVING = "Zapisywanie..." # Tekst wyświetlany na mapie podczas autosave'a<br />
&nbsp;&nbsp;end # AUTOSAVE<br />
end # CSCA<br />
#############<br />
# Zmiana nazwy pliku autosave #<br />
#############<br />
&#36;imported = {} if &#36;imported.nil?<br />
&#36;imported["CSCA-Autosave"] = true # Zmień 'Autosave' na twoją nazwę pliku.<br />
#==============================================================================<br />
# ** DataManager<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Wykorzystwyane do usuwania i tworzenia autosave.<br />
# W skrócie: Rozpoczęcie nowej gry a autosave.<br />
#==============================================================================<br />
module DataManager<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Wczytywanie, czy zapis?<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def self.csca_autosave(symbol)<br />
&nbsp;&nbsp;&nbsp;&nbsp;case symbol<br />
&nbsp;&nbsp;&nbsp;&nbsp;when :save; make_autosave<br />
&nbsp;&nbsp;&nbsp;&nbsp;when :load; load_autosave<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Czy autosave istnieje?<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Jeśli zmieniłeś wcześniej nazwę pliku tu także musisz.<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def self.autosave_exists?<br />
&nbsp;&nbsp;&nbsp;&nbsp;!Dir.glob('Autosave.rvdata2').empty?<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Usuwanie autosave<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Jeśli zmieniłeś wcześniej nazwę pliku tu także musisz.<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def self.delete_autosave<br />
&nbsp;&nbsp;&nbsp;&nbsp;File.delete('Autosave.rvdata2') rescue nil<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Zapisywanie metodą autosave&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def self.make_autosave<br />
&nbsp;&nbsp;&nbsp;&nbsp;begin<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;autosave_without_rescue<br />
&nbsp;&nbsp;&nbsp;&nbsp;rescue<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete_autosave<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;false<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_map.autosaving = true<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Wczytywania metodą kontynuuj grę<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def self.load_autosave<br />
&nbsp;&nbsp;&nbsp;&nbsp;load_autosave_without_rescue rescue false<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Wykonywanie zapisu gry<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Jeśli zmieniłeś wcześniej nazwę pliku tu także musisz.<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def self.autosave_without_rescue<br />
&nbsp;&nbsp;&nbsp;&nbsp;File.open('Autosave.rvdata2', "wb") do |file|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.on_before_autosave<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Marshal.dump(make_save_header, file)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Marshal.dump(make_save_contents, file)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Wykonywanie kontynuowania gry<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Jeśli zmieniłeś wcześniej nazwę pliku tu także musisz.<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def self.load_autosave_without_rescue<br />
&nbsp;&nbsp;&nbsp;&nbsp;File.open('Autosave.rvdata2', "rb") do |file|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Marshal.load(file)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;extract_save_contents(Marshal.load(file))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reload_map_if_updated<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;class &lt;&lt; self; alias csca_autosave_new_game setup_new_game; end<br />
&nbsp;&nbsp;def self.setup_new_game<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave_new_game<br />
&nbsp;&nbsp;&nbsp;&nbsp;delete_autosave if autosave_exists?<br />
&nbsp;&nbsp;end<br />
end # DataManager<br />
#==============================================================================<br />
# ** Game_System<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Formuje działanie przed autosave i po wczytaniu autosave<br />
#==============================================================================<br />
class Game_System<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Działanie przed autosave<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def on_before_autosave<br />
&nbsp;&nbsp;&nbsp;&nbsp;@version_id = &#36;data_system.version_id<br />
&nbsp;&nbsp;&nbsp;&nbsp;@frames_on_autosave = Graphics.frame_count<br />
&nbsp;&nbsp;&nbsp;&nbsp;@bgm_on_autosave = RPG::BGM.last<br />
&nbsp;&nbsp;&nbsp;&nbsp;@bgs_on_autosave = RPG::BGS.last<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Działanie po wczytaniu autosave<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def on_after_autosave_load<br />
&nbsp;&nbsp;&nbsp;&nbsp;Graphics.frame_count = @frames_on_autosave<br />
&nbsp;&nbsp;&nbsp;&nbsp;@bgm_on_autosave.play<br />
&nbsp;&nbsp;&nbsp;&nbsp;@bgs_on_autosave.play<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Autosave aktywny?<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def csca_autosave_allowed?(situation)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return false if &#36;game_switches[CSCA::AUTOSAVE::DISABLE_SWITCH] || &#36;BTEST ||<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.in_battle<br />
&nbsp;&nbsp;&nbsp;&nbsp;case situation<br />
&nbsp;&nbsp;&nbsp;&nbsp;when :transfer; CSCA::AUTOSAVE::TRANSFER<br />
&nbsp;&nbsp;&nbsp;&nbsp;when :battle; CSCA::AUTOSAVE::BATTLE<br />
&nbsp;&nbsp;&nbsp;&nbsp;when :gold; CSCA::AUTOSAVE::GOLD<br />
&nbsp;&nbsp;&nbsp;&nbsp;when :item; CSCA::AUTOSAVE::ITEM<br />
&nbsp;&nbsp;&nbsp;&nbsp;when :weapon; CSCA::AUTOSAVE::WEAPON<br />
&nbsp;&nbsp;&nbsp;&nbsp;when :armor; CSCA::AUTOSAVE::ARMOR<br />
&nbsp;&nbsp;&nbsp;&nbsp;when :steps; CSCA::AUTOSAVE::STEPS<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end # Game_System<br />
#==============================================================================<br />
# ** Scene_Load<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Usuwa stary plik autosave, podczas wczytywania nowego pliku.<br />
# W skrócie: on_load_succes<br />
#==============================================================================<br />
class Scene_Load &lt; Scene_File<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_delete_autosave on_load_success<br />
&nbsp;&nbsp;def on_load_success<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_delete_autosave<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.delete_autosave if DataManager.autosave_exists?<br />
&nbsp;&nbsp;end<br />
end # Scene_Load<br />
#==============================================================================<br />
# ** Scene_Gameover<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Dodawanie nowego okna i zależnych od zmiennych grafik/ME przy gameoverze.<br />
# W skrócie: start, play_gameover_music, create_background<br />
# W przeciwnym razie: update<br />
#==============================================================================<br />
class Scene_Gameover &lt; Scene_Base<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda - start<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_gameover_start start<br />
&nbsp;&nbsp;def start<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_gameover_start<br />
&nbsp;&nbsp;&nbsp;&nbsp;create_command_window<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Metoda 'W przeciwnym razie'<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;super<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda - ME<br />
&nbsp;&nbsp;# Możesz tutaj zmienić pierwszy człon pliku do ME wykorzystywanego w gameover<br />
&nbsp;&nbsp;# i zależnego od zmiennej.<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_gameover_music play_gameover_music<br />
&nbsp;&nbsp;def play_gameover_music<br />
&nbsp;&nbsp;&nbsp;&nbsp;RPG::BGM.stop<br />
&nbsp;&nbsp;&nbsp;&nbsp;RPG::BGS.stop<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_variables[CSCA::AUTOSAVE::MUSICVAR] == 0 ? csca_gameover_music :<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Audio.me_play("Audio/ME/Gameover"+&#36;game_variables[CSCA::AUTOSAVE::MUSICVAR].to_s,100,100)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda - obrazek<br />
&nbsp;&nbsp;# Możesz tutaj zmienić pierwszy człon pliku do obrazka wykorzystywanego w <br />
&nbsp;&nbsp;# gameoer i zależnego od zmiennej.<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_gameover_background create_background<br />
&nbsp;&nbsp;def create_background<br />
&nbsp;&nbsp;&nbsp;&nbsp;@sprite = Sprite.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_variables[CSCA::AUTOSAVE::IMAGEVAR] == 0 ? csca_gameover_background :<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@sprite.bitmap = Cache.system("GameOver" + &#36;game_variables[CSCA::AUTOSAVE::IMAGEVAR].to_s)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Komendy w gameover<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def create_command_window<br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window = CSCA_Window_GameoverCommand.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.set_handler(:continue, method(:load_autosave))<br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.set_handler(:load, method(:goto_file_selection))<br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.set_handler(:title, method(:goto_title))<br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.set_handler(:shutdown, method(:goto_shutdown))<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Wyjdź z gry<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def goto_shutdown<br />
&nbsp;&nbsp;&nbsp;&nbsp;close_command_window<br />
&nbsp;&nbsp;&nbsp;&nbsp;fadeout_all<br />
&nbsp;&nbsp;&nbsp;&nbsp;SceneManager.exit<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Wczytaj zapisaną grę<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def goto_file_selection<br />
&nbsp;&nbsp;&nbsp;&nbsp;close_command_window<br />
&nbsp;&nbsp;&nbsp;&nbsp;SceneManager.call(Scene_Load)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Kontynuuj grę (autosave)<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def load_autosave<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.csca_autosave(:load)<br />
&nbsp;&nbsp;&nbsp;&nbsp;fadeout_all<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.on_after_autosave_load<br />
&nbsp;&nbsp;&nbsp;&nbsp;SceneManager.goto(Scene_Map)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Zamknij okno<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def close_command_window<br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.close<br />
&nbsp;&nbsp;&nbsp;&nbsp;update until @command_window.close?<br />
&nbsp;&nbsp;end<br />
end # Scene_Gameover<br />
#==============================================================================<br />
# ** CSCA_Window_GameoverCommand<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Tu jest ustalane okno do komend na ekranie gameover<br />
#==============================================================================<br />
class CSCA_Window_GameoverCommand &lt; Window_Command<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Inicjalizacja<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp;super(0,0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.x = (Graphics.width - width) / 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.y = (Graphics.height * 1.6 - height) / 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.openness = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;open<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Tworzenie komend<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def make_command_list<br />
&nbsp;&nbsp;&nbsp;&nbsp;add_command(CSCA::AUTOSAVE::CONTINUE, :continue, continue_enabled)<br />
&nbsp;&nbsp;&nbsp;&nbsp;add_command(CSCA::AUTOSAVE::LOAD, :load, load_enabled)<br />
&nbsp;&nbsp;&nbsp;&nbsp;add_command(CSCA::AUTOSAVE::TITLE, :title)<br />
&nbsp;&nbsp;&nbsp;&nbsp;add_command(CSCA::AUTOSAVE::SHUTDOWN, :shutdown)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Autosave istnieje?<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def continue_enabled<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.autosave_exists?<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Zapisana gra istnieje?<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def load_enabled<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.save_file_exists?<br />
&nbsp;&nbsp;end<br />
end # CSCA_Window_GameoverCommand<br />
#==============================================================================<br />
# ** Window_GameEnd<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Wczytywanie gry w: Koniec gry<br />
# W skrócie: make_command_list<br />
#==============================================================================<br />
class Window_GameEnd &lt; Window_Command<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_autosave make_command_list<br />
&nbsp;&nbsp;def make_command_list<br />
&nbsp;&nbsp;&nbsp;&nbsp;add_command(CSCA::AUTOSAVE::CONTINUE, :autosave, autosave_enabled)<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Autosave istnieje?<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def autosave_enabled<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.autosave_exists?<br />
&nbsp;&nbsp;end<br />
end # Window_GameEnd<br />
#==============================================================================<br />
# ** Scene_End<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Wczytywanie ostaniego zapisu z: Scene_End<br />
# W skrócie: create_command_window<br />
#==============================================================================<br />
class Scene_End &lt; Scene_MenuBase<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_autosave_option create_command_window<br />
&nbsp;&nbsp;def create_command_window<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave_option<br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.set_handler(:autosave, method(:load_autosave))<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Wczytywanie autosave<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def load_autosave<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.csca_autosave(:load)<br />
&nbsp;&nbsp;&nbsp;&nbsp;fadeout_all<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.on_after_autosave_load<br />
&nbsp;&nbsp;&nbsp;&nbsp;SceneManager.goto(Scene_Map)<br />
&nbsp;&nbsp;end<br />
end # Scene_End<br />
#==============================================================================<br />
# ** Window_TitleCommand<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Wczytywanie autosave z menu głównego<br />
# W skrócie: make_command_list<br />
#==============================================================================<br />
class Window_TitleCommand &lt; Window_Command<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Metoda 'W przeciwnym razie'<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def make_command_list<br />
&nbsp;&nbsp;&nbsp;&nbsp;add_command(Vocab::new_game, :new_game)<br />
&nbsp;&nbsp;&nbsp;&nbsp;add_command(Vocab::continue, :continue, continue_enabled)<br />
&nbsp;&nbsp;&nbsp;&nbsp;add_command(CSCA::AUTOSAVE::CONTINUE, :autosave, autosave_enabled)<br />
&nbsp;&nbsp;&nbsp;&nbsp;add_command(Vocab::shutdown, :shutdown)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Autosave istinieje?<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def autosave_enabled<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.autosave_exists?<br />
&nbsp;&nbsp;end<br />
end # Window_TitleCommand<br />
#==============================================================================<br />
# ** Scene_Title<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Wczytywanie autosave z menu głównego w tworzonym oknie<br />
# W skrócie: create_command_window<br />
#==============================================================================<br />
class Scene_Title &lt; Scene_Base<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_autosave_add create_command_window<br />
&nbsp;&nbsp;def create_command_window<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave_add<br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.set_handler(:autosave, method(:command_autosave))<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Wczytywanie autosave<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def command_autosave<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.csca_autosave(:load)<br />
&nbsp;&nbsp;&nbsp;&nbsp;close_command_window<br />
&nbsp;&nbsp;&nbsp;&nbsp;fadeout_all<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.on_after_autosave_load<br />
&nbsp;&nbsp;&nbsp;&nbsp;SceneManager.goto(Scene_Map)<br />
&nbsp;&nbsp;end<br />
end # Scene_Title<br />
#==============================================================================<br />
# ** Scene_Map<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Autosave przy przenoszeniu się na inną mapę. Tworzenie okien autosave.<br />
# W skrócie: post_transfer, create_all_windows, pre_transfer, update<br />
#==============================================================================<br />
class Scene_Map &lt; Scene_Base<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda - przenoszenie<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_autosave_transfer post_transfer<br />
&nbsp;&nbsp;def post_transfer<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave_transfer<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.csca_autosave(:save) if &#36;game_system.csca_autosave_allowed?(:transfer)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda - tworzenie okien<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_autosave_create_windows create_all_windows<br />
&nbsp;&nbsp;def create_all_windows<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave_create_windows<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_create_autosave_window<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Tworzenie okna autosave<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def csca_create_autosave_window<br />
&nbsp;&nbsp;&nbsp;&nbsp;@autosave_window = CSCA_Window_Autosaving.new<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda - przed przeniesieniem<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_autosave_pre_transfer pre_transfer<br />
&nbsp;&nbsp;def pre_transfer<br />
&nbsp;&nbsp;&nbsp;&nbsp;@autosave_window.close<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave_pre_transfer<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda - aktualizacja autosave<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_autosave_update update<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave_update<br />
&nbsp;&nbsp;&nbsp;&nbsp;@autosave_window.open if &#36;game_map.autosaving<br />
&nbsp;&nbsp;end<br />
end # Game_Map<br />
#==============================================================================<br />
# ** Battle Manager<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Autosaves na koniec walki<br />
# W skrócie: battle_end<br />
#==============================================================================<br />
module BattleManager<br />
&nbsp;&nbsp;class &lt;&lt;self; alias csca_autosave_battle battle_end; end<br />
&nbsp;&nbsp;def self.battle_end(result)<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave_battle(result)<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.csca_autosave(:save) if &#36;game_system.csca_autosave_allowed?(:battle)<br />
&nbsp;&nbsp;end<br />
end # BattleManager<br />
#==============================================================================<br />
# ** Game_Interpreter<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Autosaves przy zdobyciu/zmianie przedmiotu, broni, złota, pancerza, drużyny.<br />
# W skrócie:: command_125, command_126, command_127, command_128, command_129<br />
#==============================================================================<br />
class Game_Interpreter<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda - 125<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_autosave_125 command_125<br />
&nbsp;&nbsp;def command_125<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave_125<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.csca_autosave(:save) if &#36;game_system.csca_autosave_allowed?(:gold)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrocona metoda - 126<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_autosave_126 command_126<br />
&nbsp;&nbsp;def command_126<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave_126<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.csca_autosave(:save) if &#36;game_system.csca_autosave_allowed?(:item)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda - 127<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_autosave_127 command_127<br />
&nbsp;&nbsp;def command_127<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave_127<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.csca_autosave(:save) if &#36;game_system.csca_autosave_allowed?(:weapon)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda - 128<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_autosave_128 command_128<br />
&nbsp;&nbsp;def command_128<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave_128<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.csca_autosave(:save) if &#36;game_system.csca_autosave_allowed?(:armor)<br />
&nbsp;&nbsp;end<br />
end<br />
#==============================================================================<br />
# ** Game_Player<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Autosave po określonej liczbie kroków.<br />
# W skrócie: update, initialize<br />
#==============================================================================<br />
class Game_Player &lt; Game_Character<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda - inicjalizacja autosave<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_autosave_init initialize<br />
&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave_init<br />
&nbsp;&nbsp;&nbsp;&nbsp;@csca_autosave_steps = 0<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skrócona metoda - aktualizacja liczby króków, a autosave<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias csca_autosave_steps update<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_autosave_steps<br />
&nbsp;&nbsp;&nbsp;&nbsp;csca_check_autosave_step_count<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Sprawdzanie liczby kroków do autosave<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def csca_check_autosave_step_count<br />
&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_party.steps % CSCA::AUTOSAVE::STEP_COUNT == 0 &amp;&amp; &#36;game_system.csca_autosave_allowed?(:steps) &amp;&amp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@steps != &#36;game_party.steps<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataManager.csca_autosave(:save)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@csca_autosave_steps = &#36;game_party.steps<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
#==============================================================================<br />
# ** CSCA_Window_Autosaving<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Okno z tekstem 'Zapisywanie...<br />
#==============================================================================<br />
class CSCA_Window_Autosaving &lt; Window_Base<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Inicjalizacja<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp;super(0,Graphics.height-fitting_height(1),window_width,fitting_height(1))<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.opacity = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents_opacity = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;@show_count = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;refresh<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Szerokość okna<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def window_width<br />
&nbsp;&nbsp;&nbsp;&nbsp;return 240<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Aktualizacja ramki<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;super<br />
&nbsp;&nbsp;&nbsp;&nbsp;if @show_count &gt; 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_fadein<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@show_count -= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_fadeout<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Aktualizacja fadein<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update_fadein<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents_opacity += 16<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Aktualizacja fadeout<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update_fadeout<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents_opacity -= 16<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Pojawianie się okna<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def open<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_map.autosaving = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;@show_count = 60<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents_opacity = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;self<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Znikanie okna<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def close<br />
&nbsp;&nbsp;&nbsp;&nbsp;@show_count = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;self<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Odświeżanie<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;contents.clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;contents.font.size = 18<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_text(0,0,contents.width,line_height,CSCA::AUTOSAVE::AUTOSAVING)<br />
&nbsp;&nbsp;&nbsp;&nbsp;contents.font.size = 24<br />
&nbsp;&nbsp;end<br />
end<br />
#==============================================================================<br />
# ** Game_Map<br />
#------------------------------------------------------------------------------<br />
# Automatyczne zapisywanie?<br />
#==============================================================================<br />
class Game_Map<br />
&nbsp;&nbsp;attr_accessor :autosaving<br />
end</code></div></div>
</div></div><span style="color: red;"><span style="font-weight: bold;">Screenshots:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><img class="postimage" src="http://i.imgur.com/h8AxJaA.png" border="0" alt="[Obrazek: h8AxJaA.png]" /></div></div><div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><img class="postimage" src="http://i.imgur.com/FbgzFYh.png" border="0" alt="[Obrazek: FbgzFYh.png]" /></div></div><div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><img class="postimage" src="http://i.imgur.com/cibvRia.png" border="0" alt="[Obrazek: cibvRia.png]" /></div></div><span style="color: red;"><span style="font-weight: bold;">Demo:</span></span><br />
<a href="http://www.mediafire.com/download/9jog18n0ceumq18/AutoSave+Plus.rar" target="_blank"><img class="postimage" src="http://www.ultimateam.pl/images/demo_download.png" border="0" alt="[Obrazek: demo_download.png]" /></a><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
- Kompatybilny z innymi skryptami CSCA, nie licząc Gameover options, aczkolwiek te opcje zawiera także skrypt AutoSave Plus.<br />
- Aby wykorzystać w grze komercyjnej należy zakupić licencję od autora!<br />
- Jeśli ktoś chciałby wersje tego skryptu TYLKO z 'Kontynuj' w Menu itp. to taką posiadam w swoim projekcie i chętnie użyczę.<br />
- Creditsy wymagane dla autora, polecane dla tłumacza ;P]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Pominięcie ekranu tytułowego]]></title>
			<link>https://forum.ultimateam.pl/Thread-VXAce-Pomini%C4%99cie-ekranu-tytu%C5%82owego</link>
			<pubDate>Sat, 03 May 2014 16:22:14 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-VXAce-Pomini%C4%99cie-ekranu-tytu%C5%82owego</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Pominięcie ekranu tytułowego [VXACE] ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt pozwala na pominięcie ekranu tytułowego poprzez zamienienie kodu w Scene_Title na ten podany poniżej.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Avenger_B7 <a href="http://caveirarpgmaker.weebly.com/" target="_blank">http://caveirarpgmaker.weebly.com/</a><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
ReetzO<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>#==============================================================================<br />
# ** Scene_Title edytowany przez Avenger_B7!! <br />
#==============================================================================<br />
# ** Tłumaczony przez ReetzO (jakie to było trudne -_-)<br />
#==============================================================================<br />
# Skrypt pozwala na ominięcie ekranu tytułowego. Zameniamy kod w Scene_Title<br />
# na ten.<br />
#==============================================================================<br />
class Scene_Title &lt; Scene_Base<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Trwa inicjalizacja<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def start<br />
&nbsp;&nbsp;&nbsp;&nbsp;super<br />
&nbsp;&nbsp;&nbsp;&nbsp;command_new_game<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Szybkość przejścia<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def transition_speed&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;return 20<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Komenda [Nowa Gra]<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def command_new_game<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.setup_new_game<br />
&nbsp;&nbsp;&nbsp;&nbsp;fadeout_all<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_map.autoplay<br />
&nbsp;&nbsp;&nbsp;&nbsp;SceneManager.goto(Scene_Map)<br />
&nbsp;&nbsp;end<br />
end</code></div></div>
</div></div>
<span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
1)Nie działa w RPG Maker VX :(<br />
2)Przenosi nas na mapę z Pozycją Startową Gracza<br />
3)Credisty mile widziane dla AUTORA]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Pominięcie ekranu tytułowego [VXACE] ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt pozwala na pominięcie ekranu tytułowego poprzez zamienienie kodu w Scene_Title na ten podany poniżej.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Avenger_B7 <a href="http://caveirarpgmaker.weebly.com/" target="_blank">http://caveirarpgmaker.weebly.com/</a><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
ReetzO<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>#==============================================================================<br />
# ** Scene_Title edytowany przez Avenger_B7!! <br />
#==============================================================================<br />
# ** Tłumaczony przez ReetzO (jakie to było trudne -_-)<br />
#==============================================================================<br />
# Skrypt pozwala na ominięcie ekranu tytułowego. Zameniamy kod w Scene_Title<br />
# na ten.<br />
#==============================================================================<br />
class Scene_Title &lt; Scene_Base<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Trwa inicjalizacja<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def start<br />
&nbsp;&nbsp;&nbsp;&nbsp;super<br />
&nbsp;&nbsp;&nbsp;&nbsp;command_new_game<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Szybkość przejścia<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def transition_speed&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;return 20<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Komenda [Nowa Gra]<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def command_new_game<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.setup_new_game<br />
&nbsp;&nbsp;&nbsp;&nbsp;fadeout_all<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_map.autoplay<br />
&nbsp;&nbsp;&nbsp;&nbsp;SceneManager.goto(Scene_Map)<br />
&nbsp;&nbsp;end<br />
end</code></div></div>
</div></div>
<span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
1)Nie działa w RPG Maker VX :(<br />
2)Przenosi nas na mapę z Pozycją Startową Gracza<br />
3)Credisty mile widziane dla AUTORA]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Wyłączenie battlebacks (tło mapy)]]></title>
			<link>https://forum.ultimateam.pl/Thread-VXAce-Wy%C5%82%C4%85czenie-battlebacks-t%C5%82o-mapy</link>
			<pubDate>Tue, 01 Apr 2014 19:11:31 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-VXAce-Wy%C5%82%C4%85czenie-battlebacks-t%C5%82o-mapy</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Battlebacks  ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Ten skrypt pozwala na wyłączenie battlebacks,zamiast niego jest tło mapy.<br />
Według mnie jest on bardzo przydatny ponieważ gdy mamy np. mapkę<br />
jakiejś biblioteki to w rtp nie znajdziemy battlebacksa pasującego do niej.<br />
Szczególnie polecam ten skrypt gdy używacie sid viev battle system.<br />
INSTRUKCJA:<br />
Jedyne co trzeba ustawić to przełącznik jest ON<br />
Domyślny przełącznik w skrypcie to 20<br />
<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Xypher (Skrypt podesłał Diablo i postanowiłem się nim podzielić)<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
Tłumaczenie jest niepotrzebne<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>module Map_battleback_settings<br />
&nbsp;&nbsp;On_switch = 20<br />
end<br />
 <br />
 <br />
class Spriteset_Battle<br />
&nbsp;&nbsp;&nbsp;&nbsp;include Map_battleback_settings<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get Battle Background (Floor) Bitmap<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias xypher_map_battleback1 battleback1_bitmap<br />
&nbsp;&nbsp;def battleback1_bitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_switches[On_switch]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create_mapbattleback_bitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xypher_map_battleback1<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get Battle Background (Wall) Bitmap<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias xypher_map_battleback2 battleback2_bitmap<br />
&nbsp;&nbsp;def battleback2_bitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_switches[On_switch]<br />
&nbsp;&nbsp;&nbsp;&nbsp;Bitmap.new(1, 1)<br />
&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;xypher_map_battleback2<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Create Battle Background Bitmap from Processed Map Screen<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def create_mapbattleback_bitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;source = SceneManager.background_bitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;bitmap = Bitmap.new(Graphics.width, Graphics.height)<br />
&nbsp;&nbsp;&nbsp;&nbsp;bitmap.stretch_blt(bitmap.rect, source, source.rect)<br />
&nbsp;&nbsp;&nbsp;&nbsp;bitmap<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
end</code></div></div>
</div></div><span style="color: red;"><span style="font-weight: bold;">Screeny:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;">Niepotrzebny po prostu zwykła mapa<br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Demo:</span></span><br />
<hr />
Screeny ewenualnie podeślę jutro.]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Battlebacks  ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Ten skrypt pozwala na wyłączenie battlebacks,zamiast niego jest tło mapy.<br />
Według mnie jest on bardzo przydatny ponieważ gdy mamy np. mapkę<br />
jakiejś biblioteki to w rtp nie znajdziemy battlebacksa pasującego do niej.<br />
Szczególnie polecam ten skrypt gdy używacie sid viev battle system.<br />
INSTRUKCJA:<br />
Jedyne co trzeba ustawić to przełącznik jest ON<br />
Domyślny przełącznik w skrypcie to 20<br />
<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Xypher (Skrypt podesłał Diablo i postanowiłem się nim podzielić)<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
Tłumaczenie jest niepotrzebne<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>module Map_battleback_settings<br />
&nbsp;&nbsp;On_switch = 20<br />
end<br />
 <br />
 <br />
class Spriteset_Battle<br />
&nbsp;&nbsp;&nbsp;&nbsp;include Map_battleback_settings<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get Battle Background (Floor) Bitmap<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias xypher_map_battleback1 battleback1_bitmap<br />
&nbsp;&nbsp;def battleback1_bitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_switches[On_switch]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create_mapbattleback_bitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xypher_map_battleback1<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get Battle Background (Wall) Bitmap<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias xypher_map_battleback2 battleback2_bitmap<br />
&nbsp;&nbsp;def battleback2_bitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_switches[On_switch]<br />
&nbsp;&nbsp;&nbsp;&nbsp;Bitmap.new(1, 1)<br />
&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;xypher_map_battleback2<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Create Battle Background Bitmap from Processed Map Screen<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def create_mapbattleback_bitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;source = SceneManager.background_bitmap<br />
&nbsp;&nbsp;&nbsp;&nbsp;bitmap = Bitmap.new(Graphics.width, Graphics.height)<br />
&nbsp;&nbsp;&nbsp;&nbsp;bitmap.stretch_blt(bitmap.rect, source, source.rect)<br />
&nbsp;&nbsp;&nbsp;&nbsp;bitmap<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
end</code></div></div>
</div></div><span style="color: red;"><span style="font-weight: bold;">Screeny:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;">Niepotrzebny po prostu zwykła mapa<br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Demo:</span></span><br />
<hr />
Screeny ewenualnie podeślę jutro.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Player Wideo]]></title>
			<link>https://forum.ultimateam.pl/Thread-VXAce-Player-Wideo</link>
			<pubDate>Mon, 24 Mar 2014 10:07:37 +0100</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-VXAce-Player-Wideo</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ EST - SOV Video Player ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Kodeki do poprawnego działania   <a href="http://www.download.hr/download-k-lite-mega-codec-pack.html" target="_blank">http://www.download.hr/download-k-lite-m...-pack.html</a><br />
<br />
Wklejam tutaj bardzo ciekawy skrypt jaki znalazłem w necie, a mianowicie skrypy który pozwala nam na odtworzenie filmików w grze. Jak napisał autor podstawowe zastosowanie może być gdy np: podczas walki przyzywamy meteoryty to dajemy filmik jak lecą jakieś kozackie meteoryty i mamy świetny efekt. Filmiki można wyświetlać w fullscreenie lub w rogu ekranu mniejszy ekran.<br />
<br />
Tutaj  możliwości wypunktowane:<br />
- Włączanie wideo na mapie<br />
- Włączanie wideo podczas używania umiejętności<br />
- Włączanie wideo podczas używania przedmiotu<br />
- Zatrzymywanie wideo<br />
- Wyłączanie wideo<br />
- Włączanie wideo przed ekranem tytułowym gry (zobacz konfiguracje)<br />
<br />
Instrukcja używania skryptu w jego treści, w języku angielskim.<br />
<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Estriole wersja VX, przekonwertował na Ace:SuperOverlord<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
brak<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>#==============================================================================<br />
#<br />
# [ACE]EST_SOV_Video_Player ++ Conversion<br />
#<br />
# v1.4<br />
#==============================================================================<br />
# Author : Estriole<br />
# (Conversion to ace and improving)<br />
# VX version author: SuperOverlord<br />
#<br />
# also credit Crystal Noel for solution for title that have encoding problem character<br />
# also credit ruin for fixes he made to this script.<br />
#<br />
# History :<br />
# version 1.4 2013.05.16 - apply fixes from ruin. typo error and ability to use<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;play video using battle event page.<br />
# version 1.3 2013.03.05 - create configuration for people that have encoding character<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;problem with their title. ex: Pokémon Ace.<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set the IGNORE_TITLE to true inside module Sov::Video<br />
# version 1.2 2012.09.27 - made if game at fullscreen automaticly become windowed<br />
# version 1.1 2012.09.25 - some bug fix. now avi video can played at full screen mode(alt enter) with some position error.<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- can play other format such as mkv but it will play full screen and when played at full screen<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mode (alt enter) the size will be smaller and the game switched.<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- basicly this script not support full screen game yet. will try to fix this in next version<br />
# version 1.0 2012.09.23 - finish converting + some change<br />
#<br />
#<br />
#==============================================================================<br />
# Features:<br />
#------------------------------------------------------------------------------<br />
# o Play video's on the map or in battle using a simple script event command.<br />
#<br />
# o Optionally pause or exit video's while they play.<br />
#<br />
# o View the video in the game window or in fullscreen.<br />
#<br />
# o Setup video skills, which show the video before damage effects.<br />
#<br />
# o ACE version also made not only video skill but can use video item too<br />
#<br />
# o ACE version also can play video before title scene<br />
#<br />
#==============================================================================<br />
# Instructions:<br />
#------------------------------------------------------------------------------<br />
# o Place all videos in a folder with the same name as in configuration.<br />
#&nbsp;&nbsp; This folder is created automatically the first time the game is played if<br />
#&nbsp;&nbsp; it doesn't already exist.<br />
#<br />
# o Playing Videos when on the map.<br />
#<br />
#&nbsp;&nbsp; - See script calls below.<br />
#<br />
# o Playing videos in battle.<br />
#<br />
#&nbsp;&nbsp; - As when on the map the script event command can be used in battle also.<br />
#<br />
#&nbsp;&nbsp; - As well as this you can setup skills as video skills which display<br />
#&nbsp;&nbsp;&nbsp;&nbsp; a video before damaging the enemy.<br />
#<br />
#&nbsp;&nbsp;&nbsp;&nbsp; &lt;now below setup can be also used for item video too&gt;<br />
#&nbsp;&nbsp;&nbsp;&nbsp; To do this the following tags can be used in the skills notebox:<br />
#&nbsp;&nbsp;&nbsp;&nbsp; 1) &lt;video_name = "filename"&gt;<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;~ name is the name of the video file. If the filename extension is<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;missing the first file matching that name is used.<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Quotes are necessary around the filename)<br />
#<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As well as the first tag 2 others are available. These tags will only<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;take effect if placed on a line below the first tag.<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If these don't exist they are assumed true.<br />
#<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2) &lt;video_exitable = n&gt;&nbsp;&nbsp; ~ Can the video be exited by the exit input?<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3) &lt;video_pausable = n&gt;&nbsp;&nbsp; ~ Can the video be paused?<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~ n is replaced with either t or f (t : true, f : false)<br />
#<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For other Video properties (x,y,width,height,fullscreen) the default<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;settings are used. (See script calls below)<br />
#<br />
# o Playing videos before title screen<br />
# ctrl + f this : CONFIGURATION FOR VIDEO BEFORE TITLE<br />
# and change the<br />
# @video_title = nil<br />
# to<br />
# @video_title = "yourvideonamewithoutextensionhere"<br />
#<br />
#==============================================================================<br />
# Script Calls:<br />
#------------------------------------------------------------------------------<br />
# Commands (From the script call command on page three of event commands)<br />
#------------------------------------------------------------------------------<br />
# o To change default values for video properties.<br />
#<br />
#&nbsp;&nbsp;1) Video.default_x = n<br />
#&nbsp;&nbsp;2) Video.default_y = n<br />
#&nbsp;&nbsp;3) Video.default_width&nbsp;&nbsp;= n<br />
#&nbsp;&nbsp;4) Video.default_height = n<br />
#&nbsp;&nbsp;5) Video.fullscreen = bool #disabled now since could make error<br />
#&nbsp;&nbsp;<br />
#&nbsp;&nbsp;In all 5 commands above:<br />
#&nbsp;&nbsp;~ n is an integer value<br />
#&nbsp;&nbsp;~ bool is either true or false<br />
#<br />
# o To play videos<br />
#<br />
#&nbsp;&nbsp; play_video(filename,exitable,pausable)<br />
#&nbsp;&nbsp; ~ filename : name of video file&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (Must be in quotes)<br />
#&nbsp;&nbsp; ~ exitable : Can the video be exited?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (When left out = true)<br />
#&nbsp;&nbsp; ~ pausable : Can the video be paused?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (When left out = true)<br />
#&nbsp;&nbsp;<br />
#&nbsp;&nbsp; For all other values the default's are used.<br />
#==============================================================================<br />
# Compatibility:<br />
#------------------------------------------------------------------------------<br />
# o Skill videos will depend on the battle system but sould work.<br />
#==============================================================================<br />
# Credit:<br />
#------------------------------------------------------------------------------<br />
# o Credit goes to Trebor and Berka whose scripts helped be figure out the<br />
#&nbsp;&nbsp; mci_send_stringA function.<br />
#==============================================================================<br />
 <br />
module SOV<br />
&nbsp;&nbsp;module Video<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Configuration<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Name of folder for videos to be held in.<br />
&nbsp;&nbsp;&nbsp;&nbsp;DIR_NAME = "Videos"<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Exit video input<br />
&nbsp;&nbsp;&nbsp;&nbsp;EXIT_INPUT&nbsp;&nbsp;= Input::B<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Pause video input<br />
&nbsp;&nbsp;&nbsp;&nbsp;PAUSE_INPUT = Input::C<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;IGNORE_TITLE = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;#set to true if your title contain strange character such as é or other.&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# End Configuration<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;end<br />
end<br />
 <br />
module SceneManager<br />
################ CONFIGURATION FOR VIDEO BEFORE TITLE #######################&nbsp;&nbsp;<br />
&nbsp;&nbsp;@video_title = nil&nbsp;&nbsp;# "example" # FILENAME OF THE VIDEO IN VIDEO FOLDER IN QUOTES<br />
&nbsp;&nbsp;#IF YOU DON'T WANT TO USE THIS FEATURE JUST CHANGE TO NIL<br />
################ END CONFIGURATION ##########################################&nbsp;&nbsp;<br />
&nbsp;&nbsp;def self.run<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.init<br />
&nbsp;&nbsp;&nbsp;&nbsp;Audio.setup_midi if use_midi?<br />
&nbsp;&nbsp;&nbsp;&nbsp;if @video_title != nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;video = Cache.video(@video_title)<br />
&nbsp;&nbsp;&nbsp;&nbsp;video.exitable = true # True/False<br />
&nbsp;&nbsp;&nbsp;&nbsp;video.pausable = true # True/False<br />
&nbsp;&nbsp;&nbsp;&nbsp;Video.play(video)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;@scene = first_scene_class.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;@scene.main while @scene<br />
&nbsp;&nbsp;end<br />
end<br />
 <br />
class &lt;&lt; Graphics<br />
&nbsp;&nbsp;def Graphics.fullscreen? # Property<br />
&nbsp;&nbsp;&nbsp;&nbsp;screen_size = Win32API.new('user32', 'GetSystemMetrics', 'I', 'I')<br />
&nbsp;&nbsp;&nbsp;&nbsp;screen_width = screen_size.call(0);&nbsp;&nbsp; screen_height = screen_size.call(1)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;detect_fullscreen = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;detect_fullscreen = true if screen_width == 640 and screen_height == 480<br />
&nbsp;&nbsp;&nbsp;&nbsp;return detect_fullscreen<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;def Graphics.toggle_fullscreen # Main function<br />
&nbsp;&nbsp;&nbsp;&nbsp;keybd = Win32API.new 'user32.dll', 'keybd_event', ['i', 'i', 'l', 'l'], 'v'<br />
&nbsp;&nbsp;&nbsp;&nbsp;keybd.call(0xA4, 0, 0, 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;keybd.call(13, 0, 0, 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;keybd.call(13, 0, 2, 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;keybd.call(0xA4, 0, 2, 0)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;end<br />
end<br />
 <br />
#==============================================================================<br />
# Import<br />
#------------------------------------------------------------------------------<br />
&#36;imported = {} if &#36;imported == nil<br />
&#36;imported['Videos'] = true<br />
#==============================================================================<br />
 <br />
#==============================================================================<br />
# ** SOV::Video::Commands<br />
#==============================================================================<br />
 <br />
module SOV::Video::Commands<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Play a video<br />
&nbsp;&nbsp;#&nbsp;&nbsp;filename : video's filename (with or without extension)<br />
&nbsp;&nbsp;#&nbsp;&nbsp;exitable : Can the video be exited<br />
&nbsp;&nbsp;#&nbsp;&nbsp;pausable : Can the video be paused<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def play_video(filename,exitable=true,pausable=true)<br />
&nbsp;&nbsp;&nbsp;&nbsp;video = Cache.video(filename)<br />
&nbsp;&nbsp;&nbsp;&nbsp;video.exitable = exitable<br />
&nbsp;&nbsp;&nbsp;&nbsp;video.pausable = pausable<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_map.video = video<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#---------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Define as module function<br />
&nbsp;&nbsp;#---------------------------------------------------------------------------<br />
&nbsp;&nbsp;module_function :play_video<br />
end<br />
 <br />
#==============================================================================<br />
# ** SOV::Video::Regexp<br />
#==============================================================================<br />
 <br />
module SOV::Video::Regexp<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skill<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;module Skill<br />
&nbsp;&nbsp;&nbsp;&nbsp;FILENAME&nbsp;&nbsp; = /&lt;video[_ ]?(?:file)?name = "(.+)"&gt;/i<br />
&nbsp;&nbsp;&nbsp;&nbsp;PAUSABLE&nbsp;&nbsp; = /&lt;video[_ ]?paus(?:e|able) = (t|f)&gt;/i<br />
&nbsp;&nbsp;&nbsp;&nbsp;EXITABLE&nbsp;&nbsp; = /&lt;video[_ ]?exit(?:able)? = (t|f)&gt;/i<br />
&nbsp;&nbsp;end<br />
end<br />
 <br />
#==============================================================================<br />
# ** SOV::Game<br />
#==============================================================================<br />
 <br />
module SOV::Game<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Constants<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;INI = 'Game'<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get the game windows handle<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def self.hwnd<br />
&nbsp;&nbsp;&nbsp;&nbsp;unless defined?(@@hwnd)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;find_window = Win32API.new('user32','FindWindow','pp','i')<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@@hwnd = find_window.call('RGSS Player',title)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gamefullscreen = Graphics.fullscreen?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@@hwnd = find_window.call('RGSS Player',title)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;return @@hwnd<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get game title<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def self.title<br />
&nbsp;&nbsp;&nbsp;&nbsp;unless defined?(@@title)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@@title = read_ini('title')<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;return @@title<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Read ini (Returns nil or match)<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def self.read_ini(variable,filename=INI)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return nil if variable == 'title' &amp;&amp; SOV::Video::IGNORE_TITLE<br />
&nbsp;&nbsp;&nbsp;&nbsp;reg = /^#{variable}=(.*)&#36;/<br />
&nbsp;&nbsp;&nbsp;&nbsp;File.foreach(filename+'.ini') { |line| break(&#36;1) if line =~ reg }<br />
&nbsp;&nbsp;end<br />
end<br />
 <br />
#==============================================================================<br />
# ** Cache<br />
#==============================================================================<br />
 <br />
module Cache<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Class Variables<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;@@vcache = {}<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Define as class methods<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;class &lt;&lt; self<br />
&nbsp;&nbsp;&nbsp;&nbsp;#------------------------------------------------------------------------<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Alias List<br />
&nbsp;&nbsp;&nbsp;&nbsp;#------------------------------------------------------------------------<br />
&nbsp;&nbsp;&nbsp;&nbsp;alias sov_video_clear clear unless &#36;@<br />
&nbsp;&nbsp;&nbsp;&nbsp;#------------------------------------------------------------------------<br />
&nbsp;&nbsp;&nbsp;&nbsp;# * Get a video object<br />
&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;filename : basename of file<br />
&nbsp;&nbsp;&nbsp;&nbsp;#------------------------------------------------------------------------<br />
&nbsp;&nbsp;&nbsp;&nbsp;def video(filename)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Get full filename if extension is missing<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if File.extname(filename) == ''<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;files = Dir["#{SOV::Video::DIR_NAME}/#{filename}.*"]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename = File.basename(files[0]) # Set as first matching file<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Create or get the video object.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @@vcache.has_key?(filename)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@@vcache[filename]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@@vcache[filename] = Video.new(filename)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;#------------------------------------------------------------------------<br />
&nbsp;&nbsp;&nbsp;&nbsp;# * Clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;#------------------------------------------------------------------------<br />
&nbsp;&nbsp;&nbsp;&nbsp;def clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@@vcache.clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sov_video_clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
 <br />
#==============================================================================<br />
# ** RPG::Skill<br />
#==============================================================================<br />
 <br />
class RPG::UsableItem<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Determine if skill has a video skill<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def video<br />
&nbsp;&nbsp;&nbsp;&nbsp;if @video == nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@note.each_line { |line|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @video == nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@video = Cache.video(&#36;1) if line =~ SOV::Video::Regexp::Skill::FILENAME<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@video.pausable = (&#36;1 == 't') if line =~ SOV::Video::Regexp::Skill::PAUSABLE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@video.exitable = (&#36;1 == 't') if line =~ SOV::Video::Regexp::Skill::EXITABLE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@video = :invalid if @video == nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;return @video<br />
&nbsp;&nbsp;end<br />
end<br />
 <br />
#==============================================================================<br />
# ** Video<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Class handling playing videos.<br />
#==============================================================================<br />
 <br />
class Video<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Constants<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;TYPE_AVI&nbsp;&nbsp;= 'avivideo'<br />
&nbsp;&nbsp;TYPE_MPEG = 'mpegvideo'<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Class Variables<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;@@default_x = 0<br />
&nbsp;&nbsp;@@default_y = 0<br />
&nbsp;&nbsp;@@default_width&nbsp;&nbsp;= Graphics.width<br />
&nbsp;&nbsp;@@default_height = Graphics.height<br />
&nbsp;&nbsp;@@fullscreen = false<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get and Set default_x/y/width/height<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;for d in %w(x y width height)<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Define setter method<br />
&nbsp;&nbsp;&nbsp;&nbsp;module_eval(%Q(def self.default_#{d}=(i); @@default_#{d} = i; end))<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Define getter method<br />
&nbsp;&nbsp;&nbsp;&nbsp;module_eval(%Q(def self.default_#{d}; @@default_#{d}; end))<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get fullscreen<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def self.fullscreen<br />
&nbsp;&nbsp;&nbsp;&nbsp;@@fullscreen<br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Set fullscreen<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def self.fullscreen=(val)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@@fullscreen = val<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Win32API<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;@@mciSendStringA = Win32API.new('winmm','mciSendStringA','pplp','i')<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Video Command<br />
&nbsp;&nbsp;#&nbsp;&nbsp;command_string : string following mci_command_string format<br />
&nbsp;&nbsp;#&nbsp;&nbsp;buffer : string to retrieve return data<br />
&nbsp;&nbsp;#&nbsp;&nbsp;buffer_size : number of characters in buffer<br />
&nbsp;&nbsp;#&nbsp;&nbsp;callback_handle : handle of window to callback to. Used if notify is used<br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in the command string. (Not supported by game window)<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def self.send_command(cmnd_string,buffer='',buffer_size=0,callback_handle=0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Returns error code. No error if NULL<br />
&nbsp;&nbsp;&nbsp;&nbsp;err = @@mciSendStringA.call(cmnd_string,buffer,buffer_size,callback_handle)<br />
&nbsp;&nbsp;&nbsp;&nbsp;if err != 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buffer = ' ' * 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Win32API.new('winmm','mciGetErrorString','LPL','V').call(err,buffer,255)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;raise(buffer.squeeze(' ').chomp('&#92;000'))<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Play a video<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def self.play(video)<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Make path and buffer<br />
&nbsp;&nbsp;&nbsp;&nbsp;path = "#{SOV::Video::DIR_NAME}/#{video.filename}"<br />
&nbsp;&nbsp;&nbsp;&nbsp;buffer = ' ' * 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Initialize device and dock window with game window as parent.<br />
&nbsp;&nbsp;&nbsp;&nbsp;type = " type #{video.type}" if video.type != ''<br />
&nbsp;&nbsp;&nbsp;&nbsp;send_command("open #{path}#{type} alias VIDEO style child parent #{SOV::Game.hwnd}")<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Display video in client rect at x,y with width and height.<br />
&nbsp;&nbsp;&nbsp;&nbsp;x = video.x<br />
&nbsp;&nbsp;&nbsp;&nbsp;y = video.y<br />
&nbsp;&nbsp;&nbsp;&nbsp;width&nbsp;&nbsp;= video.width<br />
&nbsp;&nbsp;&nbsp;&nbsp;height = video.height<br />
&nbsp;&nbsp;&nbsp;&nbsp;send_command("put VIDEO window at #{x} #{y} #{width} #{height}")<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Begin playing video<br />
&nbsp;&nbsp;&nbsp;&nbsp;screen = @@fullscreen ? 'fullscreen' : 'window'<br />
&nbsp;&nbsp;&nbsp;&nbsp;gamefullscreen = Graphics.fullscreen?<br />
&nbsp;&nbsp;&nbsp;&nbsp;case video.type<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "avivideo"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if gamefullscreen == true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#send_command("put VIDEO window at #{x} #{y} 640 480")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Graphics.toggle_fullscreen<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send_command("play VIDEO window")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send_command("play VIDEO window")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "mpegvideo"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if gamefullscreen == true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Graphics.toggle_fullscreen<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send_command("play VIDEO window")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send_command("play VIDEO fullscreen")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;flag = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Start Input and status processing loop<br />
&nbsp;&nbsp;&nbsp;&nbsp;while buffer !~ /^stopped/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Idle processing for a frame<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(1.0/Graphics.frame_rate)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Get mode string<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send_command('status VIDEO mode',buffer,255)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Input.update&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(SOV::Video::PAUSE_INPUT) and video.pausable?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sound.play_cursor<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if buffer =~ /^paused/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # If already paused<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send_command("resume VIDEO")&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Resume video<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Otherwise<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send_command("pause VIDEO")&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Pause video<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.trigger?(SOV::Video::EXIT_INPUT) and video.exitable?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sound.play_cancel<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Terminate loop on exit input<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Terminate the device<br />
&nbsp;&nbsp;&nbsp;&nbsp;send_command('close VIDEO')<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Public Instance Variables<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;attr_accessor :x<br />
&nbsp;&nbsp;attr_accessor :y<br />
&nbsp;&nbsp;attr_accessor :width<br />
&nbsp;&nbsp;attr_accessor :height<br />
&nbsp;&nbsp;attr_writer :exitable<br />
&nbsp;&nbsp;attr_writer :pausable<br />
&nbsp;&nbsp;attr_reader :filename<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Initialize<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize(filename)<br />
&nbsp;&nbsp;&nbsp;&nbsp;unless FileTest.file?("#{SOV::Video::DIR_NAME}/#{filename}")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;raise(Errno::ENOENT,filename)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;@filename = filename<br />
&nbsp;&nbsp;&nbsp;&nbsp;@x = @@default_x<br />
&nbsp;&nbsp;&nbsp;&nbsp;@y = @@default_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;@width&nbsp;&nbsp;= @@default_width<br />
&nbsp;&nbsp;&nbsp;&nbsp;@height = @@default_height<br />
&nbsp;&nbsp;&nbsp;&nbsp;@exitable = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;@pausable = true<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get Type<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def type<br />
&nbsp;&nbsp;&nbsp;&nbsp;if @type == nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case File.extname(@filename)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when '.avi'; @type = TYPE_AVI<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when '.mpeg'||'.mpg'; @type = TYPE_MPEG<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@type = TYPE_MPEG#''<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;@type<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Is the video exitable?<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def exitable?<br />
&nbsp;&nbsp;&nbsp;&nbsp;@exitable<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Is the video pausable?<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def pausable?<br />
&nbsp;&nbsp;&nbsp;&nbsp;@pausable<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Access<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;private_class_method :send_command&nbsp;&nbsp;<br />
end<br />
 <br />
#==============================================================================<br />
# ** Game_Interpreter<br />
#==============================================================================<br />
 <br />
class Game_Interpreter<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Import<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;include(SOV::Video::Commands)<br />
end<br />
 <br />
#==============================================================================<br />
# ** Game_Map<br />
#==============================================================================<br />
 <br />
class Game_Map<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Public Instance Variables<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;attr_accessor :video&nbsp;&nbsp;<br />
end<br />
 <br />
#==============================================================================<br />
# ** Scene_Map<br />
#==============================================================================<br />
 <br />
class Scene_Map<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Alias List<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias sov_video_update update unless &#36;@<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Play Video<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def play_video(video)<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Memorize and stop current bgm and bgs<br />
&nbsp;&nbsp;&nbsp;&nbsp;bgm = RPG::BGM.last<br />
&nbsp;&nbsp;&nbsp;&nbsp;bgs = RPG::BGS.last<br />
&nbsp;&nbsp;&nbsp;&nbsp;RPG::BGM.stop<br />
&nbsp;&nbsp;&nbsp;&nbsp;RPG::BGS.stop<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Play video<br />
&nbsp;&nbsp;&nbsp;&nbsp;Video.play(video)<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Restart bgm and bgs<br />
&nbsp;&nbsp;&nbsp;&nbsp;bgm.play<br />
&nbsp;&nbsp;&nbsp;&nbsp;bgs.play<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Update<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_map.video != nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;play_video(&#36;game_map.video)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_map.video = nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Input.update<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sov_video_update<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
 <br />
#==============================================================================<br />
# ** Scene_Battle<br />
#==============================================================================<br />
 <br />
class Scene_Battle<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Alias list<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias sov_video_update_battle update unless &#36;@<br />
&nbsp;&nbsp;alias sov_video_use_item use_item unless &#36;@<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Play Video<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def play_video(video)<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Memorize and stop current bgm<br />
&nbsp;&nbsp;&nbsp;&nbsp;bgm = RPG::BGM.last<br />
&nbsp;&nbsp;&nbsp;&nbsp;RPG::BGM.stop<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Play video<br />
&nbsp;&nbsp;&nbsp;&nbsp;Video.play(video)<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Restart bgm<br />
&nbsp;&nbsp;&nbsp;&nbsp;bgm.play<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Execute Action Skill<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def use_item<br />
&nbsp;&nbsp;&nbsp;&nbsp;skill = @subject.current_action.item&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if skill.video.is_a?(Video)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;execute_action_video(skill)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sov_video_use_item<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sov_video_use_item<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Execute Action Video<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def execute_action_video(skill)<br />
&nbsp;&nbsp;&nbsp;&nbsp;br = Graphics.brightness<br />
&nbsp;&nbsp;&nbsp;&nbsp;120.times { |i| Graphics.brightness = 255 - 255/60 * i; Graphics.update }<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Play video<br />
&nbsp;&nbsp;&nbsp;&nbsp;play_video(skill.video)<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Reset brightness<br />
&nbsp;&nbsp;&nbsp;&nbsp;Graphics.brightness = br<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#ADDED UPDATE FUNCTION FROM SCENE_MAP TO SCENE_BATTLE<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_map.video != nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;play_video(&#36;game_map.video)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_map.video = nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Input.update<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sov_video_update_battle<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
 <br />
end<br />
 <br />
 <br />
 <br />
 <br />
 <br />
#==============================================================================<br />
# Pre-Main Processing<br />
#==============================================================================<br />
 <br />
unless FileTest.directory?(SOV::Video::DIR_NAME) # If directory doesn't exist.<br />
&nbsp;&nbsp;Dir.mkdir(SOV::Video::DIR_NAME)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Make the directory<br />
end<br />
 <br />
=begin<br />
=end</code></div></div>
</div></div><span style="color: red;"><span style="font-weight: bold;">Screeny:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><img class="postimage" src="http://img856.imageshack.us/img856/6087/videofullscreen.png" border="0" alt="[Obrazek: videofullscreen.png]" /><br />
<img class="postimage" src="http://img84.imageshack.us/img84/3769/videonotfullscreen.png" border="0" alt="[Obrazek: videonotfullscreen.png]" /><br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Skrypt w 100% wspiera jedynie pliki wideo AVI. <br />
<br />
Myślę, że paru osobom skrypt się przyda, bo mi na pewno :)<br />
<br />
Jeżeli chodzi o instrukcję i ważniejsze treści to za tydzień postaram wziąć się za tłumaczenie.]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ EST - SOV Video Player ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Kodeki do poprawnego działania   <a href="http://www.download.hr/download-k-lite-mega-codec-pack.html" target="_blank">http://www.download.hr/download-k-lite-m...-pack.html</a><br />
<br />
Wklejam tutaj bardzo ciekawy skrypt jaki znalazłem w necie, a mianowicie skrypy który pozwala nam na odtworzenie filmików w grze. Jak napisał autor podstawowe zastosowanie może być gdy np: podczas walki przyzywamy meteoryty to dajemy filmik jak lecą jakieś kozackie meteoryty i mamy świetny efekt. Filmiki można wyświetlać w fullscreenie lub w rogu ekranu mniejszy ekran.<br />
<br />
Tutaj  możliwości wypunktowane:<br />
- Włączanie wideo na mapie<br />
- Włączanie wideo podczas używania umiejętności<br />
- Włączanie wideo podczas używania przedmiotu<br />
- Zatrzymywanie wideo<br />
- Wyłączanie wideo<br />
- Włączanie wideo przed ekranem tytułowym gry (zobacz konfiguracje)<br />
<br />
Instrukcja używania skryptu w jego treści, w języku angielskim.<br />
<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Estriole wersja VX, przekonwertował na Ace:SuperOverlord<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
brak<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>#==============================================================================<br />
#<br />
# [ACE]EST_SOV_Video_Player ++ Conversion<br />
#<br />
# v1.4<br />
#==============================================================================<br />
# Author : Estriole<br />
# (Conversion to ace and improving)<br />
# VX version author: SuperOverlord<br />
#<br />
# also credit Crystal Noel for solution for title that have encoding problem character<br />
# also credit ruin for fixes he made to this script.<br />
#<br />
# History :<br />
# version 1.4 2013.05.16 - apply fixes from ruin. typo error and ability to use<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;play video using battle event page.<br />
# version 1.3 2013.03.05 - create configuration for people that have encoding character<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;problem with their title. ex: Pokémon Ace.<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set the IGNORE_TITLE to true inside module Sov::Video<br />
# version 1.2 2012.09.27 - made if game at fullscreen automaticly become windowed<br />
# version 1.1 2012.09.25 - some bug fix. now avi video can played at full screen mode(alt enter) with some position error.<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- can play other format such as mkv but it will play full screen and when played at full screen<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mode (alt enter) the size will be smaller and the game switched.<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- basicly this script not support full screen game yet. will try to fix this in next version<br />
# version 1.0 2012.09.23 - finish converting + some change<br />
#<br />
#<br />
#==============================================================================<br />
# Features:<br />
#------------------------------------------------------------------------------<br />
# o Play video's on the map or in battle using a simple script event command.<br />
#<br />
# o Optionally pause or exit video's while they play.<br />
#<br />
# o View the video in the game window or in fullscreen.<br />
#<br />
# o Setup video skills, which show the video before damage effects.<br />
#<br />
# o ACE version also made not only video skill but can use video item too<br />
#<br />
# o ACE version also can play video before title scene<br />
#<br />
#==============================================================================<br />
# Instructions:<br />
#------------------------------------------------------------------------------<br />
# o Place all videos in a folder with the same name as in configuration.<br />
#&nbsp;&nbsp; This folder is created automatically the first time the game is played if<br />
#&nbsp;&nbsp; it doesn't already exist.<br />
#<br />
# o Playing Videos when on the map.<br />
#<br />
#&nbsp;&nbsp; - See script calls below.<br />
#<br />
# o Playing videos in battle.<br />
#<br />
#&nbsp;&nbsp; - As when on the map the script event command can be used in battle also.<br />
#<br />
#&nbsp;&nbsp; - As well as this you can setup skills as video skills which display<br />
#&nbsp;&nbsp;&nbsp;&nbsp; a video before damaging the enemy.<br />
#<br />
#&nbsp;&nbsp;&nbsp;&nbsp; &lt;now below setup can be also used for item video too&gt;<br />
#&nbsp;&nbsp;&nbsp;&nbsp; To do this the following tags can be used in the skills notebox:<br />
#&nbsp;&nbsp;&nbsp;&nbsp; 1) &lt;video_name = "filename"&gt;<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;~ name is the name of the video file. If the filename extension is<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;missing the first file matching that name is used.<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Quotes are necessary around the filename)<br />
#<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As well as the first tag 2 others are available. These tags will only<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;take effect if placed on a line below the first tag.<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If these don't exist they are assumed true.<br />
#<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2) &lt;video_exitable = n&gt;&nbsp;&nbsp; ~ Can the video be exited by the exit input?<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3) &lt;video_pausable = n&gt;&nbsp;&nbsp; ~ Can the video be paused?<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~ n is replaced with either t or f (t : true, f : false)<br />
#<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For other Video properties (x,y,width,height,fullscreen) the default<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;settings are used. (See script calls below)<br />
#<br />
# o Playing videos before title screen<br />
# ctrl + f this : CONFIGURATION FOR VIDEO BEFORE TITLE<br />
# and change the<br />
# @video_title = nil<br />
# to<br />
# @video_title = "yourvideonamewithoutextensionhere"<br />
#<br />
#==============================================================================<br />
# Script Calls:<br />
#------------------------------------------------------------------------------<br />
# Commands (From the script call command on page three of event commands)<br />
#------------------------------------------------------------------------------<br />
# o To change default values for video properties.<br />
#<br />
#&nbsp;&nbsp;1) Video.default_x = n<br />
#&nbsp;&nbsp;2) Video.default_y = n<br />
#&nbsp;&nbsp;3) Video.default_width&nbsp;&nbsp;= n<br />
#&nbsp;&nbsp;4) Video.default_height = n<br />
#&nbsp;&nbsp;5) Video.fullscreen = bool #disabled now since could make error<br />
#&nbsp;&nbsp;<br />
#&nbsp;&nbsp;In all 5 commands above:<br />
#&nbsp;&nbsp;~ n is an integer value<br />
#&nbsp;&nbsp;~ bool is either true or false<br />
#<br />
# o To play videos<br />
#<br />
#&nbsp;&nbsp; play_video(filename,exitable,pausable)<br />
#&nbsp;&nbsp; ~ filename : name of video file&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (Must be in quotes)<br />
#&nbsp;&nbsp; ~ exitable : Can the video be exited?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (When left out = true)<br />
#&nbsp;&nbsp; ~ pausable : Can the video be paused?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (When left out = true)<br />
#&nbsp;&nbsp;<br />
#&nbsp;&nbsp; For all other values the default's are used.<br />
#==============================================================================<br />
# Compatibility:<br />
#------------------------------------------------------------------------------<br />
# o Skill videos will depend on the battle system but sould work.<br />
#==============================================================================<br />
# Credit:<br />
#------------------------------------------------------------------------------<br />
# o Credit goes to Trebor and Berka whose scripts helped be figure out the<br />
#&nbsp;&nbsp; mci_send_stringA function.<br />
#==============================================================================<br />
 <br />
module SOV<br />
&nbsp;&nbsp;module Video<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Configuration<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Name of folder for videos to be held in.<br />
&nbsp;&nbsp;&nbsp;&nbsp;DIR_NAME = "Videos"<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Exit video input<br />
&nbsp;&nbsp;&nbsp;&nbsp;EXIT_INPUT&nbsp;&nbsp;= Input::B<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Pause video input<br />
&nbsp;&nbsp;&nbsp;&nbsp;PAUSE_INPUT = Input::C<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;IGNORE_TITLE = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;#set to true if your title contain strange character such as é or other.&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# End Configuration<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;end<br />
end<br />
 <br />
module SceneManager<br />
################ CONFIGURATION FOR VIDEO BEFORE TITLE #######################&nbsp;&nbsp;<br />
&nbsp;&nbsp;@video_title = nil&nbsp;&nbsp;# "example" # FILENAME OF THE VIDEO IN VIDEO FOLDER IN QUOTES<br />
&nbsp;&nbsp;#IF YOU DON'T WANT TO USE THIS FEATURE JUST CHANGE TO NIL<br />
################ END CONFIGURATION ##########################################&nbsp;&nbsp;<br />
&nbsp;&nbsp;def self.run<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataManager.init<br />
&nbsp;&nbsp;&nbsp;&nbsp;Audio.setup_midi if use_midi?<br />
&nbsp;&nbsp;&nbsp;&nbsp;if @video_title != nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;video = Cache.video(@video_title)<br />
&nbsp;&nbsp;&nbsp;&nbsp;video.exitable = true # True/False<br />
&nbsp;&nbsp;&nbsp;&nbsp;video.pausable = true # True/False<br />
&nbsp;&nbsp;&nbsp;&nbsp;Video.play(video)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;@scene = first_scene_class.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;@scene.main while @scene<br />
&nbsp;&nbsp;end<br />
end<br />
 <br />
class &lt;&lt; Graphics<br />
&nbsp;&nbsp;def Graphics.fullscreen? # Property<br />
&nbsp;&nbsp;&nbsp;&nbsp;screen_size = Win32API.new('user32', 'GetSystemMetrics', 'I', 'I')<br />
&nbsp;&nbsp;&nbsp;&nbsp;screen_width = screen_size.call(0);&nbsp;&nbsp; screen_height = screen_size.call(1)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;detect_fullscreen = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;detect_fullscreen = true if screen_width == 640 and screen_height == 480<br />
&nbsp;&nbsp;&nbsp;&nbsp;return detect_fullscreen<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;def Graphics.toggle_fullscreen # Main function<br />
&nbsp;&nbsp;&nbsp;&nbsp;keybd = Win32API.new 'user32.dll', 'keybd_event', ['i', 'i', 'l', 'l'], 'v'<br />
&nbsp;&nbsp;&nbsp;&nbsp;keybd.call(0xA4, 0, 0, 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;keybd.call(13, 0, 0, 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;keybd.call(13, 0, 2, 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;keybd.call(0xA4, 0, 2, 0)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;end<br />
end<br />
 <br />
#==============================================================================<br />
# Import<br />
#------------------------------------------------------------------------------<br />
&#36;imported = {} if &#36;imported == nil<br />
&#36;imported['Videos'] = true<br />
#==============================================================================<br />
 <br />
#==============================================================================<br />
# ** SOV::Video::Commands<br />
#==============================================================================<br />
 <br />
module SOV::Video::Commands<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Play a video<br />
&nbsp;&nbsp;#&nbsp;&nbsp;filename : video's filename (with or without extension)<br />
&nbsp;&nbsp;#&nbsp;&nbsp;exitable : Can the video be exited<br />
&nbsp;&nbsp;#&nbsp;&nbsp;pausable : Can the video be paused<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def play_video(filename,exitable=true,pausable=true)<br />
&nbsp;&nbsp;&nbsp;&nbsp;video = Cache.video(filename)<br />
&nbsp;&nbsp;&nbsp;&nbsp;video.exitable = exitable<br />
&nbsp;&nbsp;&nbsp;&nbsp;video.pausable = pausable<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_map.video = video<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#---------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Define as module function<br />
&nbsp;&nbsp;#---------------------------------------------------------------------------<br />
&nbsp;&nbsp;module_function :play_video<br />
end<br />
 <br />
#==============================================================================<br />
# ** SOV::Video::Regexp<br />
#==============================================================================<br />
 <br />
module SOV::Video::Regexp<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Skill<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;module Skill<br />
&nbsp;&nbsp;&nbsp;&nbsp;FILENAME&nbsp;&nbsp; = /&lt;video[_ ]?(?:file)?name = "(.+)"&gt;/i<br />
&nbsp;&nbsp;&nbsp;&nbsp;PAUSABLE&nbsp;&nbsp; = /&lt;video[_ ]?paus(?:e|able) = (t|f)&gt;/i<br />
&nbsp;&nbsp;&nbsp;&nbsp;EXITABLE&nbsp;&nbsp; = /&lt;video[_ ]?exit(?:able)? = (t|f)&gt;/i<br />
&nbsp;&nbsp;end<br />
end<br />
 <br />
#==============================================================================<br />
# ** SOV::Game<br />
#==============================================================================<br />
 <br />
module SOV::Game<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Constants<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;INI = 'Game'<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get the game windows handle<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def self.hwnd<br />
&nbsp;&nbsp;&nbsp;&nbsp;unless defined?(@@hwnd)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;find_window = Win32API.new('user32','FindWindow','pp','i')<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@@hwnd = find_window.call('RGSS Player',title)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gamefullscreen = Graphics.fullscreen?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@@hwnd = find_window.call('RGSS Player',title)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;return @@hwnd<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get game title<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def self.title<br />
&nbsp;&nbsp;&nbsp;&nbsp;unless defined?(@@title)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@@title = read_ini('title')<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;return @@title<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Read ini (Returns nil or match)<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def self.read_ini(variable,filename=INI)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return nil if variable == 'title' &amp;&amp; SOV::Video::IGNORE_TITLE<br />
&nbsp;&nbsp;&nbsp;&nbsp;reg = /^#{variable}=(.*)&#36;/<br />
&nbsp;&nbsp;&nbsp;&nbsp;File.foreach(filename+'.ini') { |line| break(&#36;1) if line =~ reg }<br />
&nbsp;&nbsp;end<br />
end<br />
 <br />
#==============================================================================<br />
# ** Cache<br />
#==============================================================================<br />
 <br />
module Cache<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Class Variables<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;@@vcache = {}<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Define as class methods<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;class &lt;&lt; self<br />
&nbsp;&nbsp;&nbsp;&nbsp;#------------------------------------------------------------------------<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Alias List<br />
&nbsp;&nbsp;&nbsp;&nbsp;#------------------------------------------------------------------------<br />
&nbsp;&nbsp;&nbsp;&nbsp;alias sov_video_clear clear unless &#36;@<br />
&nbsp;&nbsp;&nbsp;&nbsp;#------------------------------------------------------------------------<br />
&nbsp;&nbsp;&nbsp;&nbsp;# * Get a video object<br />
&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;filename : basename of file<br />
&nbsp;&nbsp;&nbsp;&nbsp;#------------------------------------------------------------------------<br />
&nbsp;&nbsp;&nbsp;&nbsp;def video(filename)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Get full filename if extension is missing<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if File.extname(filename) == ''<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;files = Dir["#{SOV::Video::DIR_NAME}/#{filename}.*"]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename = File.basename(files[0]) # Set as first matching file<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Create or get the video object.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @@vcache.has_key?(filename)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@@vcache[filename]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@@vcache[filename] = Video.new(filename)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;#------------------------------------------------------------------------<br />
&nbsp;&nbsp;&nbsp;&nbsp;# * Clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;#------------------------------------------------------------------------<br />
&nbsp;&nbsp;&nbsp;&nbsp;def clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@@vcache.clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sov_video_clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
 <br />
#==============================================================================<br />
# ** RPG::Skill<br />
#==============================================================================<br />
 <br />
class RPG::UsableItem<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Determine if skill has a video skill<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def video<br />
&nbsp;&nbsp;&nbsp;&nbsp;if @video == nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@note.each_line { |line|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @video == nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@video = Cache.video(&#36;1) if line =~ SOV::Video::Regexp::Skill::FILENAME<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@video.pausable = (&#36;1 == 't') if line =~ SOV::Video::Regexp::Skill::PAUSABLE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@video.exitable = (&#36;1 == 't') if line =~ SOV::Video::Regexp::Skill::EXITABLE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@video = :invalid if @video == nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;return @video<br />
&nbsp;&nbsp;end<br />
end<br />
 <br />
#==============================================================================<br />
# ** Video<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Class handling playing videos.<br />
#==============================================================================<br />
 <br />
class Video<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Constants<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;TYPE_AVI&nbsp;&nbsp;= 'avivideo'<br />
&nbsp;&nbsp;TYPE_MPEG = 'mpegvideo'<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Class Variables<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;@@default_x = 0<br />
&nbsp;&nbsp;@@default_y = 0<br />
&nbsp;&nbsp;@@default_width&nbsp;&nbsp;= Graphics.width<br />
&nbsp;&nbsp;@@default_height = Graphics.height<br />
&nbsp;&nbsp;@@fullscreen = false<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get and Set default_x/y/width/height<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;for d in %w(x y width height)<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Define setter method<br />
&nbsp;&nbsp;&nbsp;&nbsp;module_eval(%Q(def self.default_#{d}=(i); @@default_#{d} = i; end))<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Define getter method<br />
&nbsp;&nbsp;&nbsp;&nbsp;module_eval(%Q(def self.default_#{d}; @@default_#{d}; end))<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get fullscreen<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def self.fullscreen<br />
&nbsp;&nbsp;&nbsp;&nbsp;@@fullscreen<br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Set fullscreen<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def self.fullscreen=(val)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@@fullscreen = val<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Win32API<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;@@mciSendStringA = Win32API.new('winmm','mciSendStringA','pplp','i')<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Video Command<br />
&nbsp;&nbsp;#&nbsp;&nbsp;command_string : string following mci_command_string format<br />
&nbsp;&nbsp;#&nbsp;&nbsp;buffer : string to retrieve return data<br />
&nbsp;&nbsp;#&nbsp;&nbsp;buffer_size : number of characters in buffer<br />
&nbsp;&nbsp;#&nbsp;&nbsp;callback_handle : handle of window to callback to. Used if notify is used<br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in the command string. (Not supported by game window)<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def self.send_command(cmnd_string,buffer='',buffer_size=0,callback_handle=0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Returns error code. No error if NULL<br />
&nbsp;&nbsp;&nbsp;&nbsp;err = @@mciSendStringA.call(cmnd_string,buffer,buffer_size,callback_handle)<br />
&nbsp;&nbsp;&nbsp;&nbsp;if err != 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buffer = ' ' * 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Win32API.new('winmm','mciGetErrorString','LPL','V').call(err,buffer,255)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;raise(buffer.squeeze(' ').chomp('&#92;000'))<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Play a video<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def self.play(video)<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Make path and buffer<br />
&nbsp;&nbsp;&nbsp;&nbsp;path = "#{SOV::Video::DIR_NAME}/#{video.filename}"<br />
&nbsp;&nbsp;&nbsp;&nbsp;buffer = ' ' * 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Initialize device and dock window with game window as parent.<br />
&nbsp;&nbsp;&nbsp;&nbsp;type = " type #{video.type}" if video.type != ''<br />
&nbsp;&nbsp;&nbsp;&nbsp;send_command("open #{path}#{type} alias VIDEO style child parent #{SOV::Game.hwnd}")<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Display video in client rect at x,y with width and height.<br />
&nbsp;&nbsp;&nbsp;&nbsp;x = video.x<br />
&nbsp;&nbsp;&nbsp;&nbsp;y = video.y<br />
&nbsp;&nbsp;&nbsp;&nbsp;width&nbsp;&nbsp;= video.width<br />
&nbsp;&nbsp;&nbsp;&nbsp;height = video.height<br />
&nbsp;&nbsp;&nbsp;&nbsp;send_command("put VIDEO window at #{x} #{y} #{width} #{height}")<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Begin playing video<br />
&nbsp;&nbsp;&nbsp;&nbsp;screen = @@fullscreen ? 'fullscreen' : 'window'<br />
&nbsp;&nbsp;&nbsp;&nbsp;gamefullscreen = Graphics.fullscreen?<br />
&nbsp;&nbsp;&nbsp;&nbsp;case video.type<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "avivideo"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if gamefullscreen == true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#send_command("put VIDEO window at #{x} #{y} 640 480")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Graphics.toggle_fullscreen<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send_command("play VIDEO window")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send_command("play VIDEO window")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "mpegvideo"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if gamefullscreen == true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Graphics.toggle_fullscreen<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send_command("play VIDEO window")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send_command("play VIDEO fullscreen")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;flag = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Start Input and status processing loop<br />
&nbsp;&nbsp;&nbsp;&nbsp;while buffer !~ /^stopped/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Idle processing for a frame<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(1.0/Graphics.frame_rate)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Get mode string<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send_command('status VIDEO mode',buffer,255)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Input.update&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(SOV::Video::PAUSE_INPUT) and video.pausable?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sound.play_cursor<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if buffer =~ /^paused/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # If already paused<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send_command("resume VIDEO")&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Resume video<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Otherwise<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send_command("pause VIDEO")&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Pause video<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.trigger?(SOV::Video::EXIT_INPUT) and video.exitable?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sound.play_cancel<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Terminate loop on exit input<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Terminate the device<br />
&nbsp;&nbsp;&nbsp;&nbsp;send_command('close VIDEO')<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Public Instance Variables<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;attr_accessor :x<br />
&nbsp;&nbsp;attr_accessor :y<br />
&nbsp;&nbsp;attr_accessor :width<br />
&nbsp;&nbsp;attr_accessor :height<br />
&nbsp;&nbsp;attr_writer :exitable<br />
&nbsp;&nbsp;attr_writer :pausable<br />
&nbsp;&nbsp;attr_reader :filename<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Initialize<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize(filename)<br />
&nbsp;&nbsp;&nbsp;&nbsp;unless FileTest.file?("#{SOV::Video::DIR_NAME}/#{filename}")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;raise(Errno::ENOENT,filename)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;@filename = filename<br />
&nbsp;&nbsp;&nbsp;&nbsp;@x = @@default_x<br />
&nbsp;&nbsp;&nbsp;&nbsp;@y = @@default_y<br />
&nbsp;&nbsp;&nbsp;&nbsp;@width&nbsp;&nbsp;= @@default_width<br />
&nbsp;&nbsp;&nbsp;&nbsp;@height = @@default_height<br />
&nbsp;&nbsp;&nbsp;&nbsp;@exitable = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;@pausable = true<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Get Type<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def type<br />
&nbsp;&nbsp;&nbsp;&nbsp;if @type == nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case File.extname(@filename)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when '.avi'; @type = TYPE_AVI<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when '.mpeg'||'.mpg'; @type = TYPE_MPEG<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@type = TYPE_MPEG#''<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;@type<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Is the video exitable?<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def exitable?<br />
&nbsp;&nbsp;&nbsp;&nbsp;@exitable<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Is the video pausable?<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def pausable?<br />
&nbsp;&nbsp;&nbsp;&nbsp;@pausable<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Access<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;private_class_method :send_command&nbsp;&nbsp;<br />
end<br />
 <br />
#==============================================================================<br />
# ** Game_Interpreter<br />
#==============================================================================<br />
 <br />
class Game_Interpreter<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Import<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;include(SOV::Video::Commands)<br />
end<br />
 <br />
#==============================================================================<br />
# ** Game_Map<br />
#==============================================================================<br />
 <br />
class Game_Map<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Public Instance Variables<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;attr_accessor :video&nbsp;&nbsp;<br />
end<br />
 <br />
#==============================================================================<br />
# ** Scene_Map<br />
#==============================================================================<br />
 <br />
class Scene_Map<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Alias List<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias sov_video_update update unless &#36;@<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Play Video<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def play_video(video)<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Memorize and stop current bgm and bgs<br />
&nbsp;&nbsp;&nbsp;&nbsp;bgm = RPG::BGM.last<br />
&nbsp;&nbsp;&nbsp;&nbsp;bgs = RPG::BGS.last<br />
&nbsp;&nbsp;&nbsp;&nbsp;RPG::BGM.stop<br />
&nbsp;&nbsp;&nbsp;&nbsp;RPG::BGS.stop<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Play video<br />
&nbsp;&nbsp;&nbsp;&nbsp;Video.play(video)<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Restart bgm and bgs<br />
&nbsp;&nbsp;&nbsp;&nbsp;bgm.play<br />
&nbsp;&nbsp;&nbsp;&nbsp;bgs.play<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Update<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_map.video != nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;play_video(&#36;game_map.video)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_map.video = nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Input.update<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sov_video_update<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
 <br />
#==============================================================================<br />
# ** Scene_Battle<br />
#==============================================================================<br />
 <br />
class Scene_Battle<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Alias list<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias sov_video_update_battle update unless &#36;@<br />
&nbsp;&nbsp;alias sov_video_use_item use_item unless &#36;@<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Play Video<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def play_video(video)<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Memorize and stop current bgm<br />
&nbsp;&nbsp;&nbsp;&nbsp;bgm = RPG::BGM.last<br />
&nbsp;&nbsp;&nbsp;&nbsp;RPG::BGM.stop<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Play video<br />
&nbsp;&nbsp;&nbsp;&nbsp;Video.play(video)<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Restart bgm<br />
&nbsp;&nbsp;&nbsp;&nbsp;bgm.play<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Execute Action Skill<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def use_item<br />
&nbsp;&nbsp;&nbsp;&nbsp;skill = @subject.current_action.item&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if skill.video.is_a?(Video)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;execute_action_video(skill)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sov_video_use_item<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sov_video_use_item<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Execute Action Video<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def execute_action_video(skill)<br />
&nbsp;&nbsp;&nbsp;&nbsp;br = Graphics.brightness<br />
&nbsp;&nbsp;&nbsp;&nbsp;120.times { |i| Graphics.brightness = 255 - 255/60 * i; Graphics.update }<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Play video<br />
&nbsp;&nbsp;&nbsp;&nbsp;play_video(skill.video)<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Reset brightness<br />
&nbsp;&nbsp;&nbsp;&nbsp;Graphics.brightness = br<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#ADDED UPDATE FUNCTION FROM SCENE_MAP TO SCENE_BATTLE<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_map.video != nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;play_video(&#36;game_map.video)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_map.video = nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Input.update<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sov_video_update_battle<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
 <br />
end<br />
 <br />
 <br />
 <br />
 <br />
 <br />
#==============================================================================<br />
# Pre-Main Processing<br />
#==============================================================================<br />
 <br />
unless FileTest.directory?(SOV::Video::DIR_NAME) # If directory doesn't exist.<br />
&nbsp;&nbsp;Dir.mkdir(SOV::Video::DIR_NAME)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Make the directory<br />
end<br />
 <br />
=begin<br />
=end</code></div></div>
</div></div><span style="color: red;"><span style="font-weight: bold;">Screeny:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><img class="postimage" src="http://img856.imageshack.us/img856/6087/videofullscreen.png" border="0" alt="[Obrazek: videofullscreen.png]" /><br />
<img class="postimage" src="http://img84.imageshack.us/img84/3769/videonotfullscreen.png" border="0" alt="[Obrazek: videonotfullscreen.png]" /><br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Skrypt w 100% wspiera jedynie pliki wideo AVI. <br />
<br />
Myślę, że paru osobom skrypt się przyda, bo mi na pewno :)<br />
<br />
Jeżeli chodzi o instrukcję i ważniejsze treści to za tydzień postaram wziąć się za tłumaczenie.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[8 Dir Move (Poruszanie się w 8 kierunkach)]]></title>
			<link>https://forum.ultimateam.pl/Thread-VXAce-8-Dir-Move-Poruszanie-si%C4%99-w-8-kierunkach</link>
			<pubDate>Tue, 23 Jul 2013 16:45:30 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-VXAce-8-Dir-Move-Poruszanie-si%C4%99-w-8-kierunkach</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ 8 Dir Move ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt dodaje możliwość poruszania się w 8 kierunkach.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
JV Master<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
Nie potrzebne<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>#==============================================================================<br />
# 8 Dir Move&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JV Master Script<br />
#------------------------------------------------------------------------------<br />
# Make player move in 8 dir, supports diagonal pattern.<br />
#==============================================================================<br />
<br />
module JvScripts<br />
&nbsp;&nbsp;module Dirs8<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Switch = 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Switch id for toggle 4/8 dir, 0 if always 8 dir<br />
&nbsp;&nbsp;&nbsp;&nbsp;DiagonalSuffix = "_di"&nbsp;&nbsp; # Suffix for 8 dir charsets<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 8 dir charsets include in the first char<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # the orthogonal and in the second the diagonal<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
#==============================================================================<br />
# Game CharacterBase<br />
#==============================================================================<br />
class Game_CharacterBase<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def move_diagonal(horz, vert)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@move_succeed = diagonal_passable?(x, y, horz, vert)<br />
&nbsp;&nbsp;&nbsp;&nbsp;if @move_succeed<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@x = &#36;game_map.round_x_with_direction(@x, horz)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@y = &#36;game_map.round_y_with_direction(@y, vert)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@real_x = &#36;game_map.x_with_direction(@x, reverse_dir(horz))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@real_y = &#36;game_map.y_with_direction(@y, reverse_dir(vert))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;increase_steps<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;if diagonal_charset?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_direction_diagonal(horz, vert)<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_direction(horz) if @direction == reverse_dir(horz)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_direction(vert) if @direction == reverse_dir(vert)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def set_direction(d)<br />
&nbsp;&nbsp;&nbsp;&nbsp;if !@direction_fix &amp;&amp; d != 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@direction = d<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@character_index = 0 if diagonal_charset?<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;@stop_count = 0<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def set_direction_diagonal(horz, vert)<br />
&nbsp;&nbsp;&nbsp;&nbsp;if !@direction_fix &amp;&amp; horz != 0 &amp;&amp; vert != 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if horz == 4 &amp;&amp; vert == 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@direction = 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif horz == 4 &amp;&amp; vert == 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@direction = 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif horz == 6 &amp;&amp; vert == 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@direction = 6<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif horz == 6 &amp;&amp; vert == 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@direction = 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@character_index = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;@stop_count = 0<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def diagonal_charset?<br />
&nbsp;&nbsp;&nbsp;&nbsp;true if @character_name.include?(JvScripts::Dirs8::DiagonalSuffix)<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
#==============================================================================<br />
# Game Player<br />
#==============================================================================<br />
class Game_Player &lt; Game_Character<br />
&nbsp;&nbsp;def move_by_input<br />
&nbsp;&nbsp;&nbsp;&nbsp;return if !movable? || &#36;game_map.interpreter.running?<br />
&nbsp;&nbsp;&nbsp;&nbsp;if JvScripts::Dirs8::Switch &gt; 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_switches[JvScripts::Dirs8::Switch] == true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case Input.dir8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 2, 4, 6, 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_straight(Input.dir4)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_diagonal(4, 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_diagonal(6, 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 7<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_diagonal(4, 8)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 9<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_diagonal(6, 8)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_straight(Input.dir4) if Input.dir4 &gt; 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if Input.dir8 &gt; 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case Input.dir8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 2, 4, 6, 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_straight(Input.dir4)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_diagonal(4, 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_diagonal(6, 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 7<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_diagonal(4, 8)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 9<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_diagonal(6, 8)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end</code></div></div>
</div></div>
<span style="color: red;"><span style="font-weight: bold;">Instalacja:</span></span><br />
Instalacja skryptu jest zwyczajna czyli wklejamy pod "▼ Materials" lub pod "▼ 素材" (zależy od wersji językowej naszego RPG Makera VX Ace)]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ 8 Dir Move ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt dodaje możliwość poruszania się w 8 kierunkach.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
JV Master<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
Nie potrzebne<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>#==============================================================================<br />
# 8 Dir Move&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JV Master Script<br />
#------------------------------------------------------------------------------<br />
# Make player move in 8 dir, supports diagonal pattern.<br />
#==============================================================================<br />
<br />
module JvScripts<br />
&nbsp;&nbsp;module Dirs8<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Switch = 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Switch id for toggle 4/8 dir, 0 if always 8 dir<br />
&nbsp;&nbsp;&nbsp;&nbsp;DiagonalSuffix = "_di"&nbsp;&nbsp; # Suffix for 8 dir charsets<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 8 dir charsets include in the first char<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # the orthogonal and in the second the diagonal<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
#==============================================================================<br />
# Game CharacterBase<br />
#==============================================================================<br />
class Game_CharacterBase<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def move_diagonal(horz, vert)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@move_succeed = diagonal_passable?(x, y, horz, vert)<br />
&nbsp;&nbsp;&nbsp;&nbsp;if @move_succeed<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@x = &#36;game_map.round_x_with_direction(@x, horz)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@y = &#36;game_map.round_y_with_direction(@y, vert)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@real_x = &#36;game_map.x_with_direction(@x, reverse_dir(horz))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@real_y = &#36;game_map.y_with_direction(@y, reverse_dir(vert))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;increase_steps<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;if diagonal_charset?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_direction_diagonal(horz, vert)<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_direction(horz) if @direction == reverse_dir(horz)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_direction(vert) if @direction == reverse_dir(vert)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def set_direction(d)<br />
&nbsp;&nbsp;&nbsp;&nbsp;if !@direction_fix &amp;&amp; d != 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@direction = d<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@character_index = 0 if diagonal_charset?<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;@stop_count = 0<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def set_direction_diagonal(horz, vert)<br />
&nbsp;&nbsp;&nbsp;&nbsp;if !@direction_fix &amp;&amp; horz != 0 &amp;&amp; vert != 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if horz == 4 &amp;&amp; vert == 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@direction = 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif horz == 4 &amp;&amp; vert == 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@direction = 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif horz == 6 &amp;&amp; vert == 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@direction = 6<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif horz == 6 &amp;&amp; vert == 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@direction = 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@character_index = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;@stop_count = 0<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def diagonal_charset?<br />
&nbsp;&nbsp;&nbsp;&nbsp;true if @character_name.include?(JvScripts::Dirs8::DiagonalSuffix)<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
#==============================================================================<br />
# Game Player<br />
#==============================================================================<br />
class Game_Player &lt; Game_Character<br />
&nbsp;&nbsp;def move_by_input<br />
&nbsp;&nbsp;&nbsp;&nbsp;return if !movable? || &#36;game_map.interpreter.running?<br />
&nbsp;&nbsp;&nbsp;&nbsp;if JvScripts::Dirs8::Switch &gt; 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_switches[JvScripts::Dirs8::Switch] == true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case Input.dir8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 2, 4, 6, 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_straight(Input.dir4)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_diagonal(4, 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_diagonal(6, 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 7<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_diagonal(4, 8)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 9<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_diagonal(6, 8)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_straight(Input.dir4) if Input.dir4 &gt; 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if Input.dir8 &gt; 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case Input.dir8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 2, 4, 6, 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_straight(Input.dir4)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_diagonal(4, 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_diagonal(6, 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 7<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_diagonal(4, 8)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 9<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_diagonal(6, 8)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end</code></div></div>
</div></div>
<span style="color: red;"><span style="font-weight: bold;">Instalacja:</span></span><br />
Instalacja skryptu jest zwyczajna czyli wklejamy pod "▼ Materials" lub pod "▼ 素材" (zależy od wersji językowej naszego RPG Makera VX Ace)]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Force 640x480 Resolution Script]]></title>
			<link>https://forum.ultimateam.pl/Thread-VXAce-Force-640x480-Resolution-Script</link>
			<pubDate>Tue, 23 Jul 2013 15:53:26 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-VXAce-Force-640x480-Resolution-Script</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Force 640x480 Resolution Script ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt powiększa rozmiar okna naszej gry do 640x480.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Matt Sully (Gump)<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
Nie potrzebne<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>class Scene_Title &lt; Scene_Base<br />
&nbsp;&nbsp;alias start_and_force_640 start unless &#36;@<br />
&nbsp;&nbsp;def start<br />
&nbsp;&nbsp;&nbsp;&nbsp;Graphics.resize_screen(640, 480)<br />
&nbsp;&nbsp;&nbsp;&nbsp;start_and_force_640<br />
&nbsp;&nbsp;end<br />
end</code></div></div>
</div></div><span style="color: red;"><span style="font-weight: bold;">Instalacja:</span></span><br />
Skrypt wklejamy w "Main" nad "rgss_main { SceneManager.run }"<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">UWAGA!</span></span><br />
O wiele lepszy od tego jest skrypt "<a href="http://forum.ultimateam.pl/Thread-VXAce-Miscellaneous-Options-Dodatkowe-opcje-gry" target="_blank">Miscellaneous Options</a>", który posiada jeszcze więcej opcji niż zmiana rozmiaru okna gry i jest łatwiejszy w wgrywaniu.]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Force 640x480 Resolution Script ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt powiększa rozmiar okna naszej gry do 640x480.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Matt Sully (Gump)<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
Nie potrzebne<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>class Scene_Title &lt; Scene_Base<br />
&nbsp;&nbsp;alias start_and_force_640 start unless &#36;@<br />
&nbsp;&nbsp;def start<br />
&nbsp;&nbsp;&nbsp;&nbsp;Graphics.resize_screen(640, 480)<br />
&nbsp;&nbsp;&nbsp;&nbsp;start_and_force_640<br />
&nbsp;&nbsp;end<br />
end</code></div></div>
</div></div><span style="color: red;"><span style="font-weight: bold;">Instalacja:</span></span><br />
Skrypt wklejamy w "Main" nad "rgss_main { SceneManager.run }"<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">UWAGA!</span></span><br />
O wiele lepszy od tego jest skrypt "<a href="http://forum.ultimateam.pl/Thread-VXAce-Miscellaneous-Options-Dodatkowe-opcje-gry" target="_blank">Miscellaneous Options</a>", który posiada jeszcze więcej opcji niż zmiana rozmiaru okna gry i jest łatwiejszy w wgrywaniu.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Cache Optimization]]></title>
			<link>https://forum.ultimateam.pl/Thread-VXAce-Cache-Optimization</link>
			<pubDate>Tue, 23 Jul 2013 15:23:05 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-VXAce-Cache-Optimization</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Cache Optimization ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Jest to skrypt, który zwiększa wydajność naszej gry poprzez optymalizacje Cache.<br />
Funkcje: pre-buforuje wszystkie grafiki poza zaszyfrowanymi archiwami, redukuje drobne, malutkie stężenia niepotrzebnych opóźnień, Returns dup of image instead of original.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Jet10985 (Jet)<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
Nie potrzebne<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>#===============================================================================&#8203;<br />
# Cache Optimization<br />
# By Jet10985 (Jet)<br />
#===============================================================================&#8203;<br />
# This snippet will pre-cache all images at the beginning of the game to<br />
# quicken the loading of bitmaps in-game, and return dups instead of originals<br />
# to prevent having to recreate after disposing it.<br />
# This script has: 0 customization options.<br />
#===============================================================================&#8203;<br />
# Overwritten Methods:<br />
# None<br />
#-------------------------------------------------------------------------------<br />
# Aliased methods:<br />
# Cache: load_bitmap<br />
#===============================================================================&#8203;<br />
<br />
if File.directory?("Graphics")<br />
&nbsp;&nbsp;&nbsp;&nbsp;g_array = Dir.entries("Graphics")<br />
&nbsp;&nbsp;&nbsp;&nbsp;g_array.each {|a|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next if [".", ".."].include?(a)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if !File.directory?("Graphics/#{a}")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cache.load_bitmap("Graphics/", a) rescue next<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file = Dir.entries("Graphics/#{a}")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file.each {|b|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next if [".", ".."].include?(b)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if File.directory?("Graphics/#{a}/#{b}")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g_array &lt;&lt; "#{a}/#{b}"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cache.load_bitmap("Graphics/#{a}/", b) rescue next<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
end<br />
<br />
class &lt;&lt; Cache<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;alias jet3745_load_bitmap load_bitmap unless &#36;@<br />
&nbsp;&nbsp;&nbsp;&nbsp;def load_bitmap(*args, &amp;block)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(jet3745_load_bitmap(*args, &amp;block)).dup<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
end</code></div></div>
</div></div>
<span style="color: red;"><span style="font-weight: bold;">Instalacja:</span></span><br />
Instalacja skryptu jest zwyczajna czyli wklejamy pod "▼ Materials" lub pod "▼ 素材" (zależy od wersji językowej naszego RPG Makera VX Ace)]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Cache Optimization ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Jest to skrypt, który zwiększa wydajność naszej gry poprzez optymalizacje Cache.<br />
Funkcje: pre-buforuje wszystkie grafiki poza zaszyfrowanymi archiwami, redukuje drobne, malutkie stężenia niepotrzebnych opóźnień, Returns dup of image instead of original.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Jet10985 (Jet)<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
Nie potrzebne<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>#===============================================================================&#8203;<br />
# Cache Optimization<br />
# By Jet10985 (Jet)<br />
#===============================================================================&#8203;<br />
# This snippet will pre-cache all images at the beginning of the game to<br />
# quicken the loading of bitmaps in-game, and return dups instead of originals<br />
# to prevent having to recreate after disposing it.<br />
# This script has: 0 customization options.<br />
#===============================================================================&#8203;<br />
# Overwritten Methods:<br />
# None<br />
#-------------------------------------------------------------------------------<br />
# Aliased methods:<br />
# Cache: load_bitmap<br />
#===============================================================================&#8203;<br />
<br />
if File.directory?("Graphics")<br />
&nbsp;&nbsp;&nbsp;&nbsp;g_array = Dir.entries("Graphics")<br />
&nbsp;&nbsp;&nbsp;&nbsp;g_array.each {|a|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next if [".", ".."].include?(a)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if !File.directory?("Graphics/#{a}")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cache.load_bitmap("Graphics/", a) rescue next<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file = Dir.entries("Graphics/#{a}")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file.each {|b|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next if [".", ".."].include?(b)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if File.directory?("Graphics/#{a}/#{b}")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g_array &lt;&lt; "#{a}/#{b}"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cache.load_bitmap("Graphics/#{a}/", b) rescue next<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
end<br />
<br />
class &lt;&lt; Cache<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;alias jet3745_load_bitmap load_bitmap unless &#36;@<br />
&nbsp;&nbsp;&nbsp;&nbsp;def load_bitmap(*args, &amp;block)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(jet3745_load_bitmap(*args, &amp;block)).dup<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
end</code></div></div>
</div></div>
<span style="color: red;"><span style="font-weight: bold;">Instalacja:</span></span><br />
Instalacja skryptu jest zwyczajna czyli wklejamy pod "▼ Materials" lub pod "▼ 素材" (zależy od wersji językowej naszego RPG Makera VX Ace)]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Miscellaneous Options (Dodatkowe opcje gry)]]></title>
			<link>https://forum.ultimateam.pl/Thread-VXAce-Miscellaneous-Options-Dodatkowe-opcje-gry</link>
			<pubDate>Tue, 23 Jul 2013 13:36:03 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-VXAce-Miscellaneous-Options-Dodatkowe-opcje-gry</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Miscellaneous Options ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Ten skrypt pozwala skonfigurować 14 ustawień niedostępnych w edytorze takich jak np. wielkość okna, wysoki priorytet okna gry, ukrycie kursora, dużo ustawień czcionki itd.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Jet10985 (Jet)<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
Mateix<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>#===============================================================================&#8203;<br />
# Miscellaneous Options<br />
# By Jet10985 (Jet)<br />
#===============================================================================&#8203;<br />
# Ten skrypt pozwala dostosować do własnych potrzeb niektóre opcje<br />
# z "szczegółów" gry, które nie są dostępne w edytorze.<br />
# Ten skrypt zawiera: 14 opcji do dostosowania.<br />
#===============================================================================&#8203;<br />
# Overwritten Methods:<br />
# None<br />
#-------------------------------------------------------------------------------<br />
# Aliased methods:<br />
# DataManager: make_filename, save_file_exists?<br />
# Game_System: japanese?<br />
#===============================================================================&#8203;<br />
module MiscellaneousOptions<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#==========================================================================&#8203;===<br />
&nbsp;&nbsp;# Opcje czcionki<br />
&nbsp;&nbsp;#==========================================================================&#8203;===<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Wybór czcionki używanej domyślnie:<br />
&nbsp;&nbsp;# Można użyć jednej czcionki lub wiele w postaci tablicy.<br />
&nbsp;&nbsp;# W przypadku stosowania wielu czcionek, gra będzie przeszukiwać tablicę, aż<br />
&nbsp;&nbsp;# znajdzie czcionkę, którą gracz zainstalował.<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;Font.default_name = ["Verdana", "Arial", "Courier New"]<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Domyślna wielkość czcionki<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;Font.default_size = 20<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Określenie czy tekst jest domyślnie pogrubiony, czy nie<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;Font.default_bold = false<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Określenie czy tekst jest domyślnie z kursywą, czy nie<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;Font.default_italic = false<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Określenie czy tekst jest domyślnie z cieniem, czy bez<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;Font.default_shadow = true<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Określenie domyślnego koloru tekstu<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;Font.default_color = Color.new(255, 255, 255)<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Określenie czy wokół liter jest obramowanie, czy nie<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;Font.default_outline = true<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Określenie koloru obramowania wokół liter<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;Font.default_out_color = Color.new(0, 0, 0, 128)<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Czy w grze jest użyty język japoński?<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;JAPANESE = false<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#==========================================================================&#8203;===<br />
&nbsp;&nbsp;# Opcje okna<br />
&nbsp;&nbsp;#==========================================================================&#8203;===<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# To ustawienie decyduje, czy grze jest nadawany priorytet procesu "Wysoki"<br />
&nbsp;&nbsp;# przy starcie. Możliwe jest dzięki temu zwiększenie wydajności gry.<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;HIGH_PROCESS = true<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# To ustawienie określa czy kursor myszy powinien być ukryty.<br />
&nbsp;&nbsp;# Działa tylko wtedy, gdy kursor znajduje się w obszarze okna gry.<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;HIDE_MOUSE = true<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# To ustawienie określa czy okno może być skalowane.<br />
&nbsp;&nbsp;# Domyślnie okno nie jest skalowane bez dodatkowych skryptów.<br />
&nbsp;&nbsp;# UWAGA! To nie zwiększa możliwości graficznych wyświetlania gry<br />
&nbsp;&nbsp;# i spowoduje rozciągnięcie lub skurczenie grafiki.<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;ALLOW_RESIZING = false<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#==========================================================================&#8203;===<br />
&nbsp;&nbsp;# Opcje gry<br />
&nbsp;&nbsp;#==========================================================================&#8203;===<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Określenie rozmiaru okna gry. Max: 640x480<br />
&nbsp;&nbsp;# Musi być wielokrotnością liczby 32<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;Graphics.resize_screen(544, 416)<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Tu możesz określić czy pliki zapisanych gier są zapisywane w folderze<br />
&nbsp;&nbsp;# AppData (zamiast w katalogu z grą).<br />
&nbsp;&nbsp;# W Windows XP: C:&#92;Documents and Settings&#92;UserName&#92;Application Data&#92;NAZWA_GRY<br />
&nbsp;&nbsp;# W Windows Vista/7: C:&#92;Users&#92;UserName&#92;AppData&#92;Roaming&#92;NAZWA_GRY<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;SAVE_IN_APPDATA = true<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Jaka jest nazwa twojej gry? To będzie wykorzystywane jedynie, jeśli używasz<br />
&nbsp;&nbsp;# zapisu w folderze AppData (ustawienie wyżej).<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;GAME_NAME = "Tu wpisz nazwe swojej gry"<br />
&nbsp;&nbsp;<br />
end<br />
<br />
#===============================================================================&#8203;<br />
# NIE EDYTUJ DALEJ, JEŚLI NIE WIESZ CO ROBIĆ.<br />
#===============================================================================&#8203;<br />
<br />
module MiscellaneousOptions<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def self.handle<br />
&nbsp;&nbsp;&nbsp;&nbsp;a = Win32API.new('kernel32', 'GetPrivateProfileString', 'pppplp', 'l')<br />
&nbsp;&nbsp;&nbsp;&nbsp;b = Win32API.new('user32', 'FindWindow', 'pp', 'i')<br />
&nbsp;&nbsp;&nbsp;&nbsp;a.call("Game", "Title", "", title = "&#92;0" * 256, 256, ".//Game.ini")<br />
&nbsp;&nbsp;&nbsp;&nbsp;return b.call("RGSS Player", title.delete!("&#92;0"))<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
if MiscellaneousOptions::HIDE_MOUSE<br />
&nbsp;&nbsp;Win32API.new('user32', 'ShowCursor', 'i', 'i').call(0)<br />
end<br />
if MiscellaneousOptions::HIGH_PROCESS<br />
&nbsp;&nbsp;Win32API.new('kernel32','SetPriorityClass','pi','i').call(-1, 256)<br />
end<br />
if MiscellaneousOptions::ALLOW_RESIZING<br />
&nbsp;&nbsp;Win32API.new('user32', 'SetWindowLong', 'lll', 'l').call(<br />
&nbsp;&nbsp;&nbsp;&nbsp;MiscellaneousOptions.handle, -16, 0x10C70000|0x00080000)<br />
end<br />
if MiscellaneousOptions::SAVE_IN_APPDATA<br />
&nbsp;&nbsp;&nbsp;&nbsp;f = "#{ENV['APPDATA']}&#92;&#92;#{MiscellaneousOptions::GAME_NAME}"<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dir.mkdir(f) unless File.directory?(f)<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dir.mkdir("#{f}&#92;&#92;Saves") unless File.directory?("#{f}&#92;&#92;Saves")<br />
end<br />
<br />
class &lt;&lt; DataManager<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;alias jet3849_save_file_exists save_file_exists?<br />
&nbsp;&nbsp;&nbsp;&nbsp;def save_file_exists?(*args, &amp;block)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if MiscellaneousOptions::SAVE_IN_APPDATA<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f = "#{ENV['APPDATA']}&#92;&#92;#{MiscellaneousOptions::GAME_NAME}"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dir.entries("#{f}&#92;&#92;Saves").size &gt; 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jet3849_save_file_exists(*args, &amp;block)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;alias jet2734_make_filename make_filename<br />
&nbsp;&nbsp;&nbsp;&nbsp;def make_filename(index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if MiscellaneousOptions::SAVE_IN_APPDATA<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f = "#{ENV['APPDATA']}&#92;&#92;#{MiscellaneousOptions::GAME_NAME}"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return "#{f}&#92;&#92;Saves&#92;&#92;#{sprintf("Save%02d.rvdata2", index + 1)}"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jet2734_make_filename(index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
end<br />
<br />
class Game_System<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;alias jet2734_japanese japanese?<br />
&nbsp;&nbsp;&nbsp;&nbsp;def japanese?(*args, &amp;block)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;data_system.japanese = MiscellaneousOptions::JAPANESE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jet2734_japanese(*args, &amp;block)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
end</code></div></div>
</div></div>
<span style="color: red;"><span style="font-weight: bold;">Instalacja:</span></span><br />
Instalacja skryptu jest zwyczajna czyli wklejamy pod "▼ Materials" lub pod "▼ 素材" (zależy od wersji językowej naszego RPG Makera VX Ace)<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Skrypt postaram się aktualizować, jeśli wyjdzie nowsza wersja.<br />
Z góry przepraszam za błędy w tłumaczeniu.]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Miscellaneous Options ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Ten skrypt pozwala skonfigurować 14 ustawień niedostępnych w edytorze takich jak np. wielkość okna, wysoki priorytet okna gry, ukrycie kursora, dużo ustawień czcionki itd.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Jet10985 (Jet)<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
Mateix<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>#===============================================================================&#8203;<br />
# Miscellaneous Options<br />
# By Jet10985 (Jet)<br />
#===============================================================================&#8203;<br />
# Ten skrypt pozwala dostosować do własnych potrzeb niektóre opcje<br />
# z "szczegółów" gry, które nie są dostępne w edytorze.<br />
# Ten skrypt zawiera: 14 opcji do dostosowania.<br />
#===============================================================================&#8203;<br />
# Overwritten Methods:<br />
# None<br />
#-------------------------------------------------------------------------------<br />
# Aliased methods:<br />
# DataManager: make_filename, save_file_exists?<br />
# Game_System: japanese?<br />
#===============================================================================&#8203;<br />
module MiscellaneousOptions<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#==========================================================================&#8203;===<br />
&nbsp;&nbsp;# Opcje czcionki<br />
&nbsp;&nbsp;#==========================================================================&#8203;===<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Wybór czcionki używanej domyślnie:<br />
&nbsp;&nbsp;# Można użyć jednej czcionki lub wiele w postaci tablicy.<br />
&nbsp;&nbsp;# W przypadku stosowania wielu czcionek, gra będzie przeszukiwać tablicę, aż<br />
&nbsp;&nbsp;# znajdzie czcionkę, którą gracz zainstalował.<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;Font.default_name = ["Verdana", "Arial", "Courier New"]<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Domyślna wielkość czcionki<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;Font.default_size = 20<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Określenie czy tekst jest domyślnie pogrubiony, czy nie<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;Font.default_bold = false<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Określenie czy tekst jest domyślnie z kursywą, czy nie<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;Font.default_italic = false<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Określenie czy tekst jest domyślnie z cieniem, czy bez<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;Font.default_shadow = true<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Określenie domyślnego koloru tekstu<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;Font.default_color = Color.new(255, 255, 255)<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Określenie czy wokół liter jest obramowanie, czy nie<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;Font.default_outline = true<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Określenie koloru obramowania wokół liter<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;Font.default_out_color = Color.new(0, 0, 0, 128)<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Czy w grze jest użyty język japoński?<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;JAPANESE = false<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#==========================================================================&#8203;===<br />
&nbsp;&nbsp;# Opcje okna<br />
&nbsp;&nbsp;#==========================================================================&#8203;===<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# To ustawienie decyduje, czy grze jest nadawany priorytet procesu "Wysoki"<br />
&nbsp;&nbsp;# przy starcie. Możliwe jest dzięki temu zwiększenie wydajności gry.<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;HIGH_PROCESS = true<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# To ustawienie określa czy kursor myszy powinien być ukryty.<br />
&nbsp;&nbsp;# Działa tylko wtedy, gdy kursor znajduje się w obszarze okna gry.<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;HIDE_MOUSE = true<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# To ustawienie określa czy okno może być skalowane.<br />
&nbsp;&nbsp;# Domyślnie okno nie jest skalowane bez dodatkowych skryptów.<br />
&nbsp;&nbsp;# UWAGA! To nie zwiększa możliwości graficznych wyświetlania gry<br />
&nbsp;&nbsp;# i spowoduje rozciągnięcie lub skurczenie grafiki.<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;ALLOW_RESIZING = false<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#==========================================================================&#8203;===<br />
&nbsp;&nbsp;# Opcje gry<br />
&nbsp;&nbsp;#==========================================================================&#8203;===<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Określenie rozmiaru okna gry. Max: 640x480<br />
&nbsp;&nbsp;# Musi być wielokrotnością liczby 32<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;Graphics.resize_screen(544, 416)<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Tu możesz określić czy pliki zapisanych gier są zapisywane w folderze<br />
&nbsp;&nbsp;# AppData (zamiast w katalogu z grą).<br />
&nbsp;&nbsp;# W Windows XP: C:&#92;Documents and Settings&#92;UserName&#92;Application Data&#92;NAZWA_GRY<br />
&nbsp;&nbsp;# W Windows Vista/7: C:&#92;Users&#92;UserName&#92;AppData&#92;Roaming&#92;NAZWA_GRY<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;SAVE_IN_APPDATA = true<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;# Jaka jest nazwa twojej gry? To będzie wykorzystywane jedynie, jeśli używasz<br />
&nbsp;&nbsp;# zapisu w folderze AppData (ustawienie wyżej).<br />
&nbsp;&nbsp;#-----------------------------------------------------------------------------<br />
&nbsp;&nbsp;GAME_NAME = "Tu wpisz nazwe swojej gry"<br />
&nbsp;&nbsp;<br />
end<br />
<br />
#===============================================================================&#8203;<br />
# NIE EDYTUJ DALEJ, JEŚLI NIE WIESZ CO ROBIĆ.<br />
#===============================================================================&#8203;<br />
<br />
module MiscellaneousOptions<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def self.handle<br />
&nbsp;&nbsp;&nbsp;&nbsp;a = Win32API.new('kernel32', 'GetPrivateProfileString', 'pppplp', 'l')<br />
&nbsp;&nbsp;&nbsp;&nbsp;b = Win32API.new('user32', 'FindWindow', 'pp', 'i')<br />
&nbsp;&nbsp;&nbsp;&nbsp;a.call("Game", "Title", "", title = "&#92;0" * 256, 256, ".//Game.ini")<br />
&nbsp;&nbsp;&nbsp;&nbsp;return b.call("RGSS Player", title.delete!("&#92;0"))<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
if MiscellaneousOptions::HIDE_MOUSE<br />
&nbsp;&nbsp;Win32API.new('user32', 'ShowCursor', 'i', 'i').call(0)<br />
end<br />
if MiscellaneousOptions::HIGH_PROCESS<br />
&nbsp;&nbsp;Win32API.new('kernel32','SetPriorityClass','pi','i').call(-1, 256)<br />
end<br />
if MiscellaneousOptions::ALLOW_RESIZING<br />
&nbsp;&nbsp;Win32API.new('user32', 'SetWindowLong', 'lll', 'l').call(<br />
&nbsp;&nbsp;&nbsp;&nbsp;MiscellaneousOptions.handle, -16, 0x10C70000|0x00080000)<br />
end<br />
if MiscellaneousOptions::SAVE_IN_APPDATA<br />
&nbsp;&nbsp;&nbsp;&nbsp;f = "#{ENV['APPDATA']}&#92;&#92;#{MiscellaneousOptions::GAME_NAME}"<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dir.mkdir(f) unless File.directory?(f)<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dir.mkdir("#{f}&#92;&#92;Saves") unless File.directory?("#{f}&#92;&#92;Saves")<br />
end<br />
<br />
class &lt;&lt; DataManager<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;alias jet3849_save_file_exists save_file_exists?<br />
&nbsp;&nbsp;&nbsp;&nbsp;def save_file_exists?(*args, &amp;block)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if MiscellaneousOptions::SAVE_IN_APPDATA<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f = "#{ENV['APPDATA']}&#92;&#92;#{MiscellaneousOptions::GAME_NAME}"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dir.entries("#{f}&#92;&#92;Saves").size &gt; 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jet3849_save_file_exists(*args, &amp;block)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;alias jet2734_make_filename make_filename<br />
&nbsp;&nbsp;&nbsp;&nbsp;def make_filename(index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if MiscellaneousOptions::SAVE_IN_APPDATA<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f = "#{ENV['APPDATA']}&#92;&#92;#{MiscellaneousOptions::GAME_NAME}"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return "#{f}&#92;&#92;Saves&#92;&#92;#{sprintf("Save%02d.rvdata2", index + 1)}"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jet2734_make_filename(index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
end<br />
<br />
class Game_System<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;alias jet2734_japanese japanese?<br />
&nbsp;&nbsp;&nbsp;&nbsp;def japanese?(*args, &amp;block)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;data_system.japanese = MiscellaneousOptions::JAPANESE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jet2734_japanese(*args, &amp;block)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
end</code></div></div>
</div></div>
<span style="color: red;"><span style="font-weight: bold;">Instalacja:</span></span><br />
Instalacja skryptu jest zwyczajna czyli wklejamy pod "▼ Materials" lub pod "▼ 素材" (zależy od wersji językowej naszego RPG Makera VX Ace)<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Skrypt postaram się aktualizować, jeśli wyjdzie nowsza wersja.<br />
Z góry przepraszam za błędy w tłumaczeniu.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Pearl ABS Liquid]]></title>
			<link>https://forum.ultimateam.pl/Thread-VXAce-Pearl-ABS-Liquid</link>
			<pubDate>Wed, 10 Jul 2013 20:12:05 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-VXAce-Pearl-ABS-Liquid</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Pearl ABS Liquid ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Aktualnie najbardziej rozbudowany ABS (system walki w czasie rzeczywistym) dla RGSS3, czyli dla RPG Maker'a VX Ace. Skrypt ma wielkie możliwości, jest wysoce konfigurowalny, można go zmienić wedle swoich upodobań.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Falcao<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Screeny:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><img class="postimage" src="http://imageshack.us/a/img845/4228/v4lh.png" border="0" alt="[Obrazek: v4lh.png]" /><br />
<br />
<img class="postimage" src="http://imageshack.us/a/img689/6199/mdl6.png" border="0" alt="[Obrazek: mdl6.png]" /><br />
<br />
<img class="postimage" src="http://imageshack.us/a/img547/5508/kn9y.png" border="0" alt="[Obrazek: kn9y.png]" /></div></div><span style="color: red;"><span style="font-weight: bold;">Demo:</span></span><br />
<a href="http://www.mediafire.com/download/9jnypn983u4en79/Pearl+ABS+Liquid+Demo+v2.zip" target="_blank"><img class="postimage" src="http://www.ultimateam.pl/images/demo_download.png" border="0" alt="[Obrazek: demo_download.png]" /></a><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Aby skrypt poprawnie działał, skopiuj wszystkie (oprócz Title) skrypty z dema do swojego projektu, a następnie grafiki z folderu "Graphics", które możesz później skonfigurować...<br />
<br />
Tutaj dodatkowy skrypt, który umożliwia pokazywanie HP i MP drużyny:<br />
<a href="http://pastebin.com/H0X6VMfS" target="_blank">http://pastebin.com/H0X6VMfS</a>]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Pearl ABS Liquid ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Aktualnie najbardziej rozbudowany ABS (system walki w czasie rzeczywistym) dla RGSS3, czyli dla RPG Maker'a VX Ace. Skrypt ma wielkie możliwości, jest wysoce konfigurowalny, można go zmienić wedle swoich upodobań.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Falcao<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Screeny:</span></span><br />
<div class="spoiler"><div class="spoiler_header">Spoiler: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Otwórz)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Zamknij)';}"> (Otwórz) </a></div><div class="spoiler_body" style="display: none;"><img class="postimage" src="http://imageshack.us/a/img845/4228/v4lh.png" border="0" alt="[Obrazek: v4lh.png]" /><br />
<br />
<img class="postimage" src="http://imageshack.us/a/img689/6199/mdl6.png" border="0" alt="[Obrazek: mdl6.png]" /><br />
<br />
<img class="postimage" src="http://imageshack.us/a/img547/5508/kn9y.png" border="0" alt="[Obrazek: kn9y.png]" /></div></div><span style="color: red;"><span style="font-weight: bold;">Demo:</span></span><br />
<a href="http://www.mediafire.com/download/9jnypn983u4en79/Pearl+ABS+Liquid+Demo+v2.zip" target="_blank"><img class="postimage" src="http://www.ultimateam.pl/images/demo_download.png" border="0" alt="[Obrazek: demo_download.png]" /></a><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Aby skrypt poprawnie działał, skopiuj wszystkie (oprócz Title) skrypty z dema do swojego projektu, a następnie grafiki z folderu "Graphics", które możesz później skonfigurować...<br />
<br />
Tutaj dodatkowy skrypt, który umożliwia pokazywanie HP i MP drużyny:<br />
<a href="http://pastebin.com/H0X6VMfS" target="_blank">http://pastebin.com/H0X6VMfS</a>]]></content:encoded>
		</item>
	</channel>
</rss>