﻿﻿﻿<?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 - RGSS]]></title>
		<link>https://forum.ultimateam.pl/</link>
		<description><![CDATA[Ultima Forum - https://forum.ultimateam.pl]]></description>
		<pubDate>Tue, 28 Apr 2026 06:23:35 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Pasek HP Liczbowy]]></title>
			<link>https://forum.ultimateam.pl/Thread-XP-Pasek-HP-Liczbowy</link>
			<pubDate>Sat, 19 Jun 2021 18:52:54 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-XP-Pasek-HP-Liczbowy</guid>
			<description><![CDATA[Znaleziony skrypt gdzieś w necie, pokazuje dokładnie w ładnych cyferkach stan życia przeciwnika<br />
<br />
<img class="postimage" src="https://i.ibb.co/bbqs6r2/HP-BARS.jpg" border="0" alt="[Obrazek: HP-BARS.jpg]" /><br />
<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>class Window_EnemyHP &lt; Window_Base<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp;super(0, 0, 640, 480)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width - 32, height - 32)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.opacity = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;@old_hp = []<br />
&nbsp;&nbsp;&nbsp;&nbsp;refresh<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;for i in 0...&#36;game_troop.enemies.size<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@enemy = &#36;game_troop.enemies[i]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@old_hp[i] = @enemy.hp<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unless @enemy.hp == 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.size = 15<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.bold = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = Color.new(0,0,0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = normal_color<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(0, i * 45 + 37, 100, 32, @enemy.name)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_actor_hp(@enemy, 0, i*45 + 50)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;for i in 0...&#36;game_troop.enemies.size<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enemy = &#36;game_troop.enemies[i]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if enemy.hp != @old_hp[i]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
 <br />
class Scene_Battle<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;alias raz_update_phase5 update_phase5<br />
&nbsp;&nbsp;alias raz_update_phase4_step1 update_phase4_step1<br />
&nbsp;&nbsp;alias raz_update_phase4_step5 update_phase4_step5<br />
&nbsp;&nbsp;alias raz_enemy_hp_main main<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp; def main<br />
&nbsp;&nbsp;&nbsp;&nbsp;@troop_id = &#36;game_temp.battle_troop_id<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_troop.setup(@troop_id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@enemy_window = Window_EnemyHP.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;@enemy_window.z = 95<br />
&nbsp;&nbsp;&nbsp;&nbsp;raz_enemy_hp_main<br />
&nbsp;&nbsp;&nbsp;&nbsp;@enemy_window.dispose<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def update_phase5<br />
&nbsp;&nbsp;&nbsp;&nbsp;# If wait count is larger than 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;if @phase5_wait_count &gt; 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Decrease wait count<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@phase5_wait_count -= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# If wait count reaches 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @phase5_wait_count == 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@enemy_window.visible = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Show result window<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@result_window.visible = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Clear main phase flag<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.battle_main_phase = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Refresh status window<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@enemy_window.refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp; raz_update_phase5<br />
 end<br />
 <br />
def update_phase4_step1<br />
&nbsp;&nbsp;raz_update_phase4_step1<br />
&nbsp;&nbsp;@enemy_window.refresh<br />
end<br />
 <br />
&nbsp;&nbsp;def update_phase4_step5<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Hide help window<br />
&nbsp;&nbsp;&nbsp;&nbsp;@help_window.visible = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Refresh status window<br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window.refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;@enemy_window.refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;raz_update_phase4_step5 <br />
&nbsp;&nbsp;end<br />
end</code></div></div>
]]></description>
			<content:encoded><![CDATA[Znaleziony skrypt gdzieś w necie, pokazuje dokładnie w ładnych cyferkach stan życia przeciwnika<br />
<br />
<img class="postimage" src="https://i.ibb.co/bbqs6r2/HP-BARS.jpg" border="0" alt="[Obrazek: HP-BARS.jpg]" /><br />
<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>class Window_EnemyHP &lt; Window_Base<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp;super(0, 0, 640, 480)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width - 32, height - 32)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.opacity = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;@old_hp = []<br />
&nbsp;&nbsp;&nbsp;&nbsp;refresh<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;for i in 0...&#36;game_troop.enemies.size<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@enemy = &#36;game_troop.enemies[i]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@old_hp[i] = @enemy.hp<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unless @enemy.hp == 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.size = 15<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.bold = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = Color.new(0,0,0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = normal_color<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(0, i * 45 + 37, 100, 32, @enemy.name)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_actor_hp(@enemy, 0, i*45 + 50)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;for i in 0...&#36;game_troop.enemies.size<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enemy = &#36;game_troop.enemies[i]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if enemy.hp != @old_hp[i]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
 <br />
class Scene_Battle<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;alias raz_update_phase5 update_phase5<br />
&nbsp;&nbsp;alias raz_update_phase4_step1 update_phase4_step1<br />
&nbsp;&nbsp;alias raz_update_phase4_step5 update_phase4_step5<br />
&nbsp;&nbsp;alias raz_enemy_hp_main main<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp; def main<br />
&nbsp;&nbsp;&nbsp;&nbsp;@troop_id = &#36;game_temp.battle_troop_id<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_troop.setup(@troop_id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@enemy_window = Window_EnemyHP.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;@enemy_window.z = 95<br />
&nbsp;&nbsp;&nbsp;&nbsp;raz_enemy_hp_main<br />
&nbsp;&nbsp;&nbsp;&nbsp;@enemy_window.dispose<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def update_phase5<br />
&nbsp;&nbsp;&nbsp;&nbsp;# If wait count is larger than 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;if @phase5_wait_count &gt; 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Decrease wait count<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@phase5_wait_count -= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# If wait count reaches 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @phase5_wait_count == 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@enemy_window.visible = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Show result window<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@result_window.visible = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Clear main phase flag<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.battle_main_phase = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Refresh status window<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@enemy_window.refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp; raz_update_phase5<br />
 end<br />
 <br />
def update_phase4_step1<br />
&nbsp;&nbsp;raz_update_phase4_step1<br />
&nbsp;&nbsp;@enemy_window.refresh<br />
end<br />
 <br />
&nbsp;&nbsp;def update_phase4_step5<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Hide help window<br />
&nbsp;&nbsp;&nbsp;&nbsp;@help_window.visible = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Refresh status window<br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window.refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;@enemy_window.refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;raz_update_phase4_step5 <br />
&nbsp;&nbsp;end<br />
end</code></div></div>
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Kategorie Zdolności]]></title>
			<link>https://forum.ultimateam.pl/Thread-XP-Kategorie-Zdolno%C5%9Bci</link>
			<pubDate>Wed, 24 Feb 2021 19:26:05 +0100</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-XP-Kategorie-Zdolno%C5%9Bci</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Kategorie Zdolności / Skill Categories ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Pozwala na podzielenie umiejętności na kategorie o unikalnych nazwach. Przydatne kiedy chcemy w grze nie tylko "Skille" czy "Magię", ale również "Techniki", "Klątwy" czy "Przytulanki". <img class="postimage" src="/images/smiles/icon_swinka1.gif" style="vertical-align: middle;" border="0" alt=":lartarin:" title=":lartarin:" /><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
gameus<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
Yoroiookami<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 />
# Skill Categories / Kategorie Zdolności<br />
# Wersja 1.3<br />
# Autor: gameus<br />
# Tłumacz: Yoroiookami<br />
#-------------------------------------------------------------------------------<br />
# Intro:<br />
#&nbsp;&nbsp;Dodaje Kategorie Zdolności do podstawowego systemu walki. <br />
#&nbsp;&nbsp;Dla każdej kategorii bohater dostanie nową komendę, zakładając że zna <br />
#&nbsp;&nbsp;odpowiednie skille z tej kategorii. Zatrzymuje też komendę "Skill".<br />
#<br />
# Funkcje:<br />
# -Dodaje nowe komendy dla kategorii,<br />
# -Oddziela od siebie skille zależnie od kategorii,<br />
# -Lista wszystkich zdolności jest nadal dostępna w "Skills",<br />
# -Można mieć tyle kategorii ile się tylko podoba.<br />
#<br />
# Hostira Wersji:<br />
#&nbsp;&nbsp;1.3 - Dodana kompatybilność z Chaos Rage Limit System, Blizzarda.<br />
#&nbsp;&nbsp;1.2 - Naprawiony błąd z Easy Overdrive System, Blizzarda.<br />
#&nbsp;&nbsp;1.1 - Dodana kompatybilność z Easy Overdrive System, Blizzarda.<br />
#&nbsp;&nbsp;1.0 - Podstawowa wersja.<br />
#<br />
# Instrukcje:<br />
#&nbsp;&nbsp;Zjedź niżej w konfiguracji, a zobaczysz ten fragment kodu, gdzie możesz<br />
#&nbsp;&nbsp;zdefiniować swoje Kategorie Zdolności.<br />
#&nbsp;&nbsp;SKILL_SETS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= {<br />
#&nbsp;&nbsp;&nbsp;&nbsp;"Kategoria 1" =&gt; 17,<br />
#&nbsp;&nbsp;&nbsp;&nbsp;"Kategoria 2" =&gt; 18,<br />
#&nbsp;&nbsp;&nbsp;&nbsp;"Kategoria 3" =&gt; 19,<br />
#&nbsp;&nbsp;} <br />
#&nbsp;&nbsp;Aby stworzyć nową kategorię, dodaj nową linijkę kodu zaraz pod ostatnią,<br />
#&nbsp;&nbsp;stosując poniższy wzorek:<br />
#&nbsp;&nbsp;&nbsp;&nbsp;"Nazwa Kategorii" =&gt; ID_Żywiołu (Elementu),<br />
#&nbsp;&nbsp;Na przykład:<br />
#&nbsp;&nbsp;&nbsp;&nbsp;"Super Duper Zakazane Techniki" =&gt; 19,<br />
#&nbsp;&nbsp;Nazwij je jak chcesz, ale upewnij się że używasz unikalnego ID żywiołu.<br />
#&nbsp;&nbsp;<br />
#&nbsp;&nbsp;Żeby dodać zdolności do kategorii, musisz przypisać je do podanego żywiołu.<br />
#&nbsp;&nbsp;Przykładowo jeżeli chcesz zdolności 1, 2 i 3 pod kategorią #19,<br />
#&nbsp;&nbsp;wszystkie te skille muszą zawierać żywioł o tym ID w Bazie Danych.<br />
#<br />
# Kompatybilność:<br />
# -Nie testowane z niczym poza podstawowym systemem walki.<br />
# -Nie działa z Skill Seperation z paczki Tons of Add-ons, Blizzarda.<br />
# -Nie działa z Battle Memory Commands, gameusa.<br />
# -Nie działa poprawnie z Battle Icons, Juana.<br />
# -Nie testowane z SDK (raczej nie działa).<br />
# -Działa doskonale z Easy Overdrive System, Blizzarda. Należy umieścić ten<br />
#&nbsp;&nbsp;skrypt pod jego skryptem.<br />
# -Jeżeli natkniesz się na jakieś inne skrypty które z tym nie działają, napisz<br />
#&nbsp;&nbsp;w temacie i zobaczę, czy można coś poradzić.<br />
# -Działa z Unique Skill Commands, Blizzarda.<br />
# -Działa z Chaos Rage Limit System, Blizzarda. Należy umieścić ten<br />
#&nbsp;&nbsp;skrypt pod jego skryptem.<br />
#<br />
# Kredytki (Credits):<br />
#&nbsp;&nbsp;gameus ~ Stworzenie skryptu<br />
#&nbsp;&nbsp;MarkHest ~ Pomysł i testy<br />
#&nbsp;&nbsp;Yoroiookami ~ Tłumaczenie<br />
#===============================================================================&#8203;<br />
<br />
module Gameus<br />
&nbsp;&nbsp;SKILL_SETS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= {<br />
&nbsp;&nbsp;&nbsp;&nbsp;"White Magic" =&gt; 17,<br />
&nbsp;&nbsp;&nbsp;&nbsp;"Black Magic" =&gt; 18,<br />
&nbsp;&nbsp;&nbsp;&nbsp;"Przytulanki" =&gt; 19,<br />
&nbsp;&nbsp;}<br />
end<br />
<br />
&#36;gg_skill_categories = 1.3<br />
<br />
#-------------------------------------------------------------------------------<br />
# Scene_Battle<br />
#-------------------------------------------------------------------------------<br />
<br />
class Scene_Battle<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;alias gg_phase3_setup_command_lat phase3_setup_command_window<br />
&nbsp;&nbsp;def phase3_setup_command_window<br />
&nbsp;&nbsp;&nbsp;&nbsp;gg_phase3_setup_command_lat<br />
&nbsp;&nbsp;&nbsp;&nbsp;@actor_command_window.new_items(@active_battler.generate_commands)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;alias gg_cats_update_phase3_basic_command update_phase3_basic_command<br />
&nbsp;&nbsp;def update_phase3_basic_command<br />
&nbsp;&nbsp;&nbsp;&nbsp;if &#36;crls != nil &amp;&amp; &#36;crls &gt;= 6.2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;battler = (BlizzCFG::RTAB_ACTIVE ? @active_actor : @active_battler)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;restore_commands(battler)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return if update_sls_input(battler)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return if update_srs_input(battler)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return if update_cds_input(battler)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;if &#36;easy_overdrive != nil &amp;&amp; &#36;easy_overdrive &gt;= 2.21<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;battler = (BlizzCFG::RTAB_ACTIVE ? @active_actor : @active_battler)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;restore_commands(battler)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return if update_overdrive_input(battler)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::B)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.cancel_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;phase3_prior_actor<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::C)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case @actor_command_window.index<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@active_battler.current_action.kind = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@active_battler.current_action.basic = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start_enemy_select<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 1..@actor_command_window.commands.size - 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@active_battler.current_action.kind = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start_skill_select<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when @actor_command_window.commands.size - 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@active_battler.current_action.kind = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@active_battler.current_action.basic = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;phase3_next_actor<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when @actor_command_window.commands.size - 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@active_battler.current_action.kind = 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start_item_select<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;alias gg_cats_start_skill_select start_skill_select<br />
&nbsp;&nbsp;def start_skill_select<br />
&nbsp;&nbsp;&nbsp;&nbsp;gg_cats_start_skill_select<br />
&nbsp;&nbsp;&nbsp;&nbsp;index = @actor_command_window.index<br />
&nbsp;&nbsp;&nbsp;&nbsp;@skill_window.index = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;@skill_window.refresh(@actor_command_window.commands[index]) if index &gt; 1<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
end<br />
<br />
#-------------------------------------------------------------------------------<br />
# Game_Actor<br />
#-------------------------------------------------------------------------------<br />
<br />
class Game_Actor &lt; Game_Battler<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def generate_commands<br />
&nbsp;&nbsp;&nbsp;&nbsp;s1, s2 = &#36;data_system.words.attack, &#36;data_system.words.skill<br />
&nbsp;&nbsp;&nbsp;&nbsp;s3, s4 = &#36;data_system.words.guard, &#36;data_system.words.item<br />
&nbsp;&nbsp;&nbsp;&nbsp;si = []<br />
&nbsp;&nbsp;&nbsp;&nbsp;Gameus::SKILL_SETS.each_key {|key|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;skills = @skills.find_all {|id|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;data_skills[id].element_set.include?(Gameus::SKILL_SETS[key])}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;si.push(key) if skills != []}<br />
&nbsp;&nbsp;&nbsp;&nbsp;return [s1, s2] + si + [s3, s4]<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
end<br />
<br />
#-------------------------------------------------------------------------------<br />
# Window_Command<br />
#-------------------------------------------------------------------------------<br />
<br />
class Window_Command &lt; Window_Selectable<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;attr_accessor :commands<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def new_items(commands)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.dispose if self.contents != nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents = nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;@item_max = commands.size<br />
&nbsp;&nbsp;&nbsp;&nbsp;@commands = commands<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width - 32, @item_max * 32)<br />
&nbsp;&nbsp;&nbsp;&nbsp;refresh<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
if &#36;crls != nil &amp;&amp; &#36;crls &gt;= 6.2<br />
&nbsp;&nbsp;alias gg_refresh_skill_cats_lat refresh<br />
&nbsp;&nbsp;def refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;for i in 0...@item_max<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_item(i, normal_color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;gg_refresh_skill_cats_lat<br />
&nbsp;&nbsp;end<br />
end<br />
&nbsp;&nbsp;<br />
end<br />
<br />
#-------------------------------------------------------------------------------<br />
# Window_Skill<br />
#-------------------------------------------------------------------------------<br />
<br />
class Window_Skill &lt; Window_Selectable<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;alias gg_cats_refresh_skill_window_lat refresh<br />
&nbsp;&nbsp;def refresh(category = "")<br />
&nbsp;&nbsp;&nbsp;&nbsp;if !&#36;scene.is_a?(Scene_Battle)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gg_cats_refresh_skill_window_lat<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;if self.contents != nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents = nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;rank = category == "" ? nil : Gameus::SKILL_SETS[category]<br />
&nbsp;&nbsp;&nbsp;&nbsp;@data = []<br />
&nbsp;&nbsp;&nbsp;&nbsp;@actor.skills.each {|id|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;skill = &#36;data_skills[id]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if skill != nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if rank == nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gameus::SKILL_SETS.each_value {|element|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag = false if skill.element_set.include?(element)}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@data.push(skill) if flag<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@data.push(skill) if skill.element_set.include?(rank)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end}<br />
&nbsp;&nbsp;&nbsp;&nbsp;@item_max = @data.size<br />
&nbsp;&nbsp;&nbsp;&nbsp;if @item_max &gt; 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width - 32, row_max * 32)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i in 0...@item_max<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_item(i)<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;">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/fDCc5wA.png" border="0" alt="[Obrazek: fDCc5wA.png]" /><br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Demo:</span></span><br />
<a href="https://mega.nz/file/18VEAJiD#N_Xlt1M_oF_OfZot8Nc6b1IOSQL28tlKYsQPBtuR8QE" 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 />
Instrukcja jest podana w skrypcie.<br />
Skrypt należy umieścić w edytorze skryptów, nad "Main".]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Kategorie Zdolności / Skill Categories ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Pozwala na podzielenie umiejętności na kategorie o unikalnych nazwach. Przydatne kiedy chcemy w grze nie tylko "Skille" czy "Magię", ale również "Techniki", "Klątwy" czy "Przytulanki". <img class="postimage" src="/images/smiles/icon_swinka1.gif" style="vertical-align: middle;" border="0" alt=":lartarin:" title=":lartarin:" /><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
gameus<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
Yoroiookami<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 />
# Skill Categories / Kategorie Zdolności<br />
# Wersja 1.3<br />
# Autor: gameus<br />
# Tłumacz: Yoroiookami<br />
#-------------------------------------------------------------------------------<br />
# Intro:<br />
#&nbsp;&nbsp;Dodaje Kategorie Zdolności do podstawowego systemu walki. <br />
#&nbsp;&nbsp;Dla każdej kategorii bohater dostanie nową komendę, zakładając że zna <br />
#&nbsp;&nbsp;odpowiednie skille z tej kategorii. Zatrzymuje też komendę "Skill".<br />
#<br />
# Funkcje:<br />
# -Dodaje nowe komendy dla kategorii,<br />
# -Oddziela od siebie skille zależnie od kategorii,<br />
# -Lista wszystkich zdolności jest nadal dostępna w "Skills",<br />
# -Można mieć tyle kategorii ile się tylko podoba.<br />
#<br />
# Hostira Wersji:<br />
#&nbsp;&nbsp;1.3 - Dodana kompatybilność z Chaos Rage Limit System, Blizzarda.<br />
#&nbsp;&nbsp;1.2 - Naprawiony błąd z Easy Overdrive System, Blizzarda.<br />
#&nbsp;&nbsp;1.1 - Dodana kompatybilność z Easy Overdrive System, Blizzarda.<br />
#&nbsp;&nbsp;1.0 - Podstawowa wersja.<br />
#<br />
# Instrukcje:<br />
#&nbsp;&nbsp;Zjedź niżej w konfiguracji, a zobaczysz ten fragment kodu, gdzie możesz<br />
#&nbsp;&nbsp;zdefiniować swoje Kategorie Zdolności.<br />
#&nbsp;&nbsp;SKILL_SETS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= {<br />
#&nbsp;&nbsp;&nbsp;&nbsp;"Kategoria 1" =&gt; 17,<br />
#&nbsp;&nbsp;&nbsp;&nbsp;"Kategoria 2" =&gt; 18,<br />
#&nbsp;&nbsp;&nbsp;&nbsp;"Kategoria 3" =&gt; 19,<br />
#&nbsp;&nbsp;} <br />
#&nbsp;&nbsp;Aby stworzyć nową kategorię, dodaj nową linijkę kodu zaraz pod ostatnią,<br />
#&nbsp;&nbsp;stosując poniższy wzorek:<br />
#&nbsp;&nbsp;&nbsp;&nbsp;"Nazwa Kategorii" =&gt; ID_Żywiołu (Elementu),<br />
#&nbsp;&nbsp;Na przykład:<br />
#&nbsp;&nbsp;&nbsp;&nbsp;"Super Duper Zakazane Techniki" =&gt; 19,<br />
#&nbsp;&nbsp;Nazwij je jak chcesz, ale upewnij się że używasz unikalnego ID żywiołu.<br />
#&nbsp;&nbsp;<br />
#&nbsp;&nbsp;Żeby dodać zdolności do kategorii, musisz przypisać je do podanego żywiołu.<br />
#&nbsp;&nbsp;Przykładowo jeżeli chcesz zdolności 1, 2 i 3 pod kategorią #19,<br />
#&nbsp;&nbsp;wszystkie te skille muszą zawierać żywioł o tym ID w Bazie Danych.<br />
#<br />
# Kompatybilność:<br />
# -Nie testowane z niczym poza podstawowym systemem walki.<br />
# -Nie działa z Skill Seperation z paczki Tons of Add-ons, Blizzarda.<br />
# -Nie działa z Battle Memory Commands, gameusa.<br />
# -Nie działa poprawnie z Battle Icons, Juana.<br />
# -Nie testowane z SDK (raczej nie działa).<br />
# -Działa doskonale z Easy Overdrive System, Blizzarda. Należy umieścić ten<br />
#&nbsp;&nbsp;skrypt pod jego skryptem.<br />
# -Jeżeli natkniesz się na jakieś inne skrypty które z tym nie działają, napisz<br />
#&nbsp;&nbsp;w temacie i zobaczę, czy można coś poradzić.<br />
# -Działa z Unique Skill Commands, Blizzarda.<br />
# -Działa z Chaos Rage Limit System, Blizzarda. Należy umieścić ten<br />
#&nbsp;&nbsp;skrypt pod jego skryptem.<br />
#<br />
# Kredytki (Credits):<br />
#&nbsp;&nbsp;gameus ~ Stworzenie skryptu<br />
#&nbsp;&nbsp;MarkHest ~ Pomysł i testy<br />
#&nbsp;&nbsp;Yoroiookami ~ Tłumaczenie<br />
#===============================================================================&#8203;<br />
<br />
module Gameus<br />
&nbsp;&nbsp;SKILL_SETS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= {<br />
&nbsp;&nbsp;&nbsp;&nbsp;"White Magic" =&gt; 17,<br />
&nbsp;&nbsp;&nbsp;&nbsp;"Black Magic" =&gt; 18,<br />
&nbsp;&nbsp;&nbsp;&nbsp;"Przytulanki" =&gt; 19,<br />
&nbsp;&nbsp;}<br />
end<br />
<br />
&#36;gg_skill_categories = 1.3<br />
<br />
#-------------------------------------------------------------------------------<br />
# Scene_Battle<br />
#-------------------------------------------------------------------------------<br />
<br />
class Scene_Battle<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;alias gg_phase3_setup_command_lat phase3_setup_command_window<br />
&nbsp;&nbsp;def phase3_setup_command_window<br />
&nbsp;&nbsp;&nbsp;&nbsp;gg_phase3_setup_command_lat<br />
&nbsp;&nbsp;&nbsp;&nbsp;@actor_command_window.new_items(@active_battler.generate_commands)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;alias gg_cats_update_phase3_basic_command update_phase3_basic_command<br />
&nbsp;&nbsp;def update_phase3_basic_command<br />
&nbsp;&nbsp;&nbsp;&nbsp;if &#36;crls != nil &amp;&amp; &#36;crls &gt;= 6.2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;battler = (BlizzCFG::RTAB_ACTIVE ? @active_actor : @active_battler)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;restore_commands(battler)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return if update_sls_input(battler)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return if update_srs_input(battler)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return if update_cds_input(battler)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;if &#36;easy_overdrive != nil &amp;&amp; &#36;easy_overdrive &gt;= 2.21<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;battler = (BlizzCFG::RTAB_ACTIVE ? @active_actor : @active_battler)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;restore_commands(battler)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return if update_overdrive_input(battler)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::B)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.cancel_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;phase3_prior_actor<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::C)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case @actor_command_window.index<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@active_battler.current_action.kind = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@active_battler.current_action.basic = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start_enemy_select<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 1..@actor_command_window.commands.size - 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@active_battler.current_action.kind = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start_skill_select<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when @actor_command_window.commands.size - 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@active_battler.current_action.kind = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@active_battler.current_action.basic = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;phase3_next_actor<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when @actor_command_window.commands.size - 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@active_battler.current_action.kind = 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start_item_select<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;alias gg_cats_start_skill_select start_skill_select<br />
&nbsp;&nbsp;def start_skill_select<br />
&nbsp;&nbsp;&nbsp;&nbsp;gg_cats_start_skill_select<br />
&nbsp;&nbsp;&nbsp;&nbsp;index = @actor_command_window.index<br />
&nbsp;&nbsp;&nbsp;&nbsp;@skill_window.index = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;@skill_window.refresh(@actor_command_window.commands[index]) if index &gt; 1<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
end<br />
<br />
#-------------------------------------------------------------------------------<br />
# Game_Actor<br />
#-------------------------------------------------------------------------------<br />
<br />
class Game_Actor &lt; Game_Battler<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def generate_commands<br />
&nbsp;&nbsp;&nbsp;&nbsp;s1, s2 = &#36;data_system.words.attack, &#36;data_system.words.skill<br />
&nbsp;&nbsp;&nbsp;&nbsp;s3, s4 = &#36;data_system.words.guard, &#36;data_system.words.item<br />
&nbsp;&nbsp;&nbsp;&nbsp;si = []<br />
&nbsp;&nbsp;&nbsp;&nbsp;Gameus::SKILL_SETS.each_key {|key|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;skills = @skills.find_all {|id|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;data_skills[id].element_set.include?(Gameus::SKILL_SETS[key])}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;si.push(key) if skills != []}<br />
&nbsp;&nbsp;&nbsp;&nbsp;return [s1, s2] + si + [s3, s4]<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
end<br />
<br />
#-------------------------------------------------------------------------------<br />
# Window_Command<br />
#-------------------------------------------------------------------------------<br />
<br />
class Window_Command &lt; Window_Selectable<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;attr_accessor :commands<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def new_items(commands)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.dispose if self.contents != nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents = nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;@item_max = commands.size<br />
&nbsp;&nbsp;&nbsp;&nbsp;@commands = commands<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width - 32, @item_max * 32)<br />
&nbsp;&nbsp;&nbsp;&nbsp;refresh<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
if &#36;crls != nil &amp;&amp; &#36;crls &gt;= 6.2<br />
&nbsp;&nbsp;alias gg_refresh_skill_cats_lat refresh<br />
&nbsp;&nbsp;def refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;for i in 0...@item_max<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_item(i, normal_color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;gg_refresh_skill_cats_lat<br />
&nbsp;&nbsp;end<br />
end<br />
&nbsp;&nbsp;<br />
end<br />
<br />
#-------------------------------------------------------------------------------<br />
# Window_Skill<br />
#-------------------------------------------------------------------------------<br />
<br />
class Window_Skill &lt; Window_Selectable<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;alias gg_cats_refresh_skill_window_lat refresh<br />
&nbsp;&nbsp;def refresh(category = "")<br />
&nbsp;&nbsp;&nbsp;&nbsp;if !&#36;scene.is_a?(Scene_Battle)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gg_cats_refresh_skill_window_lat<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;if self.contents != nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents = nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;rank = category == "" ? nil : Gameus::SKILL_SETS[category]<br />
&nbsp;&nbsp;&nbsp;&nbsp;@data = []<br />
&nbsp;&nbsp;&nbsp;&nbsp;@actor.skills.each {|id|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;skill = &#36;data_skills[id]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if skill != nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if rank == nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gameus::SKILL_SETS.each_value {|element|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag = false if skill.element_set.include?(element)}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@data.push(skill) if flag<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@data.push(skill) if skill.element_set.include?(rank)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end}<br />
&nbsp;&nbsp;&nbsp;&nbsp;@item_max = @data.size<br />
&nbsp;&nbsp;&nbsp;&nbsp;if @item_max &gt; 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width - 32, row_max * 32)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i in 0...@item_max<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_item(i)<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;">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/fDCc5wA.png" border="0" alt="[Obrazek: fDCc5wA.png]" /><br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Demo:</span></span><br />
<a href="https://mega.nz/file/18VEAJiD#N_Xlt1M_oF_OfZot8Nc6b1IOSQL28tlKYsQPBtuR8QE" 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 />
Instrukcja jest podana w skrypcie.<br />
Skrypt należy umieścić w edytorze skryptów, nad "Main".]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Gąsienica]]></title>
			<link>https://forum.ultimateam.pl/Thread-XP-G%C4%85sienica--3121</link>
			<pubDate>Wed, 13 Jun 2018 14:11:05 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-XP-G%C4%85sienica--3121</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Gąsienica ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Pokazuje członków drużyny poruszających się za graczem. Martwi członkowie drużyny nie są wyświetlani.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Fukuyama, 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># Gąsienica [XP] ~ Train Actor <br />
# Copyright © 2005 fukuyama <br />
# Tłumaczenie by Ayene <br />
<br />
#============================================================================== <br />
# KONFIGURACJA <br />
#============================================================================== <br />
module Train_Actor <br />
&nbsp;&nbsp;# NIWIDZIALNOŚĆ? (true / false) <br />
&nbsp;&nbsp;# Umożliwia aktywację niewidzialności bohaterów w gąsienicy <br />
&nbsp;&nbsp;TRANSPARENT_SWITCH = false <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;# PRZEŁĄCZNIK NIWIDZIALNOŚCI <br />
&nbsp;&nbsp;# Kiedy TRANSPARENT_SWITCH jest 'true', po aktywacji tego przełącznika <br />
&nbsp;&nbsp;# bohaterowie w gąsienicy staną się niewidzialni. <br />
&nbsp;&nbsp;TRANSPARENT_SWITCHES_INDEX = 20 <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;# MAKSYMALNA ILOŚĆ BOHATERÓW W DRUŻYNIE <br />
&nbsp;&nbsp;TRAIN_ACTOR_SIZE_MAX = 4 <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;# STAŁE <br />
&nbsp;&nbsp;DOWN_LEFT = 1 <br />
&nbsp;&nbsp;DOWN_RIGHT = 3 <br />
&nbsp;&nbsp;UP_LEFT = 7 <br />
&nbsp;&nbsp;UP_RIGHT = 9 <br />
&nbsp;&nbsp;JUMP = 5 <br />
end <br />
<br />
#============================================================================== <br />
# Spriteset_Map_Module <br />
#============================================================================== <br />
<br />
module Train_Actor <br />
<br />
&nbsp;&nbsp;module Spriteset_Map_Module <br />
&nbsp;&nbsp;&nbsp;&nbsp;def setup_actor_character_sprites? <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return @setup_actor_character_sprites_flag != nil <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def setup_actor_character_sprites(characters) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if !setup_actor_character_sprites? <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for character in characters.reverse <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@character_sprites.unshift( <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sprite_Character.new(@viewport1, character) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@setup_actor_character_sprites_flag = true <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
end <br />
<br />
class Spriteset_Map <br />
&nbsp;&nbsp;include Train_Actor::Spriteset_Map_Module <br />
end <br />
<br />
#============================================================================== <br />
# Scene_Map_Module <br />
#============================================================================== <br />
<br />
module Train_Actor <br />
&nbsp;&nbsp;module Scene_Map_Module <br />
&nbsp;&nbsp;&nbsp;&nbsp;def setup_actor_character_sprites(characters) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@spriteset.setup_actor_character_sprites(characters) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
end <br />
<br />
class Scene_Map <br />
&nbsp;&nbsp;include Train_Actor::Scene_Map_Module <br />
end <br />
<br />
#============================================================================== <br />
# Game_Party_Module <br />
#============================================================================== <br />
<br />
module Train_Actor <br />
&nbsp;&nbsp;module Game_Party_Module <br />
&nbsp;&nbsp;&nbsp;&nbsp;attr_reader :characters <br />
&nbsp;&nbsp;&nbsp;&nbsp;def actors_dead?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for actor in actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if actor.dead? <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def update_party_order <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if not actors_dead? <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alive_actors = [] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dead_actors = [] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for actor in actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if actor.dead? <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dead_actors.push actor <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alive_actors.push actor <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return alive_actors + dead_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def setup_actor_character_sprites <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @characters.nil? <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@characters = [] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i in 1 ... TRAIN_ACTOR_SIZE_MAX <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@characters.push(Game_Party_Actor.new) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setup_actors = update_party_order <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i in 1 ... TRAIN_ACTOR_SIZE_MAX <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@characters[i - 1].setup(setup_actors[i]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;scene.class.method_defined?('setup_actor_character_sprites') <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;scene.setup_actor_character_sprites(@characters) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def update_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_party_order <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setup_actor_character_sprites <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;transparent = &#36;game_player.transparent <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if transparent == false <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if TRANSPARENT_SWITCH <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;transparent = &#36;game_switches[TRANSPARENT_SWITCHES_INDEX] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for character in @characters <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;character.transparent = transparent <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;character.move_speed = &#36;game_player.move_speed <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;character.step_anime = &#36;game_player.step_anime <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;character.update <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def moveto_party_actors( x, y ) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setup_actor_character_sprites <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for character in @characters <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;character.moveto( x, y ) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @move_list == nil <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@move_list = [] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_list_setup <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @move_list == nil <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@move_list = [] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_list_setup <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@move_list.each_index do |i| <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @characters[i] != nil <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case @move_list[i].type <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when Input::DOWN <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@characters[i].move_down(@move_list[i].args[0]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when Input::LEFT <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@characters[i].move_left(@move_list[i].args[0]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when Input::RIGHT <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@characters[i].move_right(@move_list[i].args[0]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when Input::UP <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@characters[i].move_up(@move_list[i].args[0]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when DOWN_LEFT <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@characters[i].move_lower_left <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when DOWN_RIGHT <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@characters[i].move_lower_right <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when UP_LEFT <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@characters[i].move_upper_left <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when UP_RIGHT <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@characters[i].move_upper_right <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when JUMP <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@characters[i].jump(@move_list[i].args[0],@move_list[i].args[1]) <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;class Move_List_Element <br />
&nbsp;&nbsp;&nbsp;&nbsp;def initialize(type,args) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@type = type <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@args = args <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def type() return @type end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def args() return @args end <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;def move_list_setup <br />
&nbsp;&nbsp;&nbsp;&nbsp;for i in 0 .. TRAIN_ACTOR_SIZE_MAX <br />
&nbsp;&nbsp;&nbsp;&nbsp;@move_list[i] = nil <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def add_move_list(type,*args) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@move_list.unshift(Move_List_Element.new(type,args)).pop <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_down_party_actors(turn_enabled = true) <br />
&nbsp;&nbsp;&nbsp;&nbsp;move_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;add_move_list(Input::DOWN,turn_enabled) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_left_party_actors(turn_enabled = true) <br />
&nbsp;&nbsp;&nbsp;&nbsp;move_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;add_move_list(Input::LEFT,turn_enabled) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_right_party_actors(turn_enabled = true) <br />
&nbsp;&nbsp;&nbsp;&nbsp;move_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;add_move_list(Input::RIGHT,turn_enabled) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_up_party_actors(turn_enabled = true) <br />
&nbsp;&nbsp;&nbsp;&nbsp;move_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;add_move_list(Input::UP,turn_enabled) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_lower_left_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;move_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;add_move_list(DOWN_LEFT) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_lower_right_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;move_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;add_move_list(DOWN_RIGHT) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_upper_left_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;move_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;add_move_list(UP_LEFT) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_upper_right_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;move_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;add_move_list(UP_RIGHT) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def jump_party_actors(x_plus, y_plus) <br />
&nbsp;&nbsp;&nbsp;&nbsp;move_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;add_move_list(JUMP,x_plus, y_plus) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
end <br />
<br />
class Game_Party <br />
&nbsp;&nbsp;include Train_Actor::Game_Party_Module <br />
end <br />
<br />
#============================================================================== <br />
# Game_Player_Module <br />
#============================================================================== <br />
<br />
module Train_Actor <br />
&nbsp;&nbsp;module Game_Player_Module <br />
&nbsp;&nbsp;&nbsp;&nbsp;attr_reader :move_speed <br />
&nbsp;&nbsp;&nbsp;&nbsp;attr_reader :step_anime <br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;def update_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.update_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.actors.each do |actor| <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if actor.dead? <br />
&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;@character_name = actor.character_name <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@character_hue = actor.character_hue <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;def update <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def moveto( x, y ) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.moveto_party_actors( x, y ) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super( x, y ) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_down(turn_enabled = true) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if passable?(@x, @y, Input::DOWN) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.move_down_party_actors(turn_enabled) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super(turn_enabled) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_left(turn_enabled = true) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if passable?(@x, @y, Input::LEFT) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.move_left_party_actors(turn_enabled) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super(turn_enabled) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_right(turn_enabled = true) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if passable?(@x, @y, Input::RIGHT) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.move_right_party_actors(turn_enabled) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super(turn_enabled) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_up(turn_enabled = true) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if passable?(@x, @y, Input::UP) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.move_up_party_actors(turn_enabled) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super(turn_enabled) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_lower_left <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.move_lower_left_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_lower_right <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) or <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.move_lower_right_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_upper_left <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.move_upper_left_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_upper_right <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.move_upper_right_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def jump(x_plus, y_plus) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new_x = @x + x_plus <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new_y = @y + y_plus <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (x_plus == 0 and y_plus == 0) or passable?(new_x, new_y, 0) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.jump_party_actors(x_plus, y_plus) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super(x_plus, y_plus) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
end <br />
<br />
class Game_Player <br />
&nbsp;&nbsp;include Train_Actor::Game_Player_Module <br />
end <br />
<br />
#============================================================================== <br />
# Game_Event_Module <br />
#============================================================================== <br />
<br />
module Train_Actor <br />
&nbsp;&nbsp;module Game_Event_Module&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def passable?(x, y, d) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result = super(x, y, d) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if result <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for actor in &#36;game_party.characters <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if not actor.character_name.empty? <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if actor.x == new_x and actor.y == new_y <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if self != &#36;game_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false <br />
&nbsp;&nbsp;&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;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return result <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
end <br />
<br />
class Game_Event <br />
&nbsp;&nbsp;include Train_Actor::Game_Event_Module <br />
end <br />
<br />
#============================================================================== <br />
# Game_Party_Actor <br />
#============================================================================== <br />
<br />
module Train_Actor <br />
<br />
&nbsp;&nbsp;class Game_Party_Actor &lt; Game_Character <br />
&nbsp;&nbsp;&nbsp;&nbsp;attr_writer :move_speed <br />
&nbsp;&nbsp;&nbsp;&nbsp;attr_writer :step_anime <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def initialize <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super() <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@through = true <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def setup(actor) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if actor != nil and (not actor.dead?) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@character_name = actor.character_name <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@character_hue = actor.character_hue <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@character_name = "" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@character_hue = 0 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@opacity = 255 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@blend_type = 0 <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def screen_z(height = 0) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_player.x == @x and &#36;game_player.y == @y <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return &#36;game_player.screen_z(height) - 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super(height) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_down(turn_enabled = true) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if turn_enabled <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;turn_down <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if passable?(@x, @y, Input::DOWN) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;turn_down <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@y += 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_left(turn_enabled = true) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if turn_enabled <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;turn_left <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if passable?(@x, @y, Input::LEFT) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;turn_left <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@x -= 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_right(turn_enabled = true) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if turn_enabled <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;turn_right <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if passable?(@x, @y, Input::RIGHT) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;turn_right <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@x += 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_up(turn_enabled = true) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if turn_enabled <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;turn_up <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if passable?(@x, @y, Input::UP) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;turn_up <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@y -= 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_lower_left <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unless @direction_fix <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::UP ? Input::DOWN : @direction) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@x -= 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@y += 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_lower_right <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unless @direction_fix <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::UP ? Input::DOWN : @direction) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) or <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@x += 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@y += 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_upper_left <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unless @direction_fix <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::DOWN ? Input::UP : @direction) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@x -= 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@y -= 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_upper_right <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unless @direction_fix <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::DOWN ? Input::UP : @direction) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@x += 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@y -= 1 <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;">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/xLbbMOl.png" border="0" alt="[Obrazek: xLbbMOl.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, nad "Main".]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Gąsienica ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Pokazuje członków drużyny poruszających się za graczem. Martwi członkowie drużyny nie są wyświetlani.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Fukuyama, 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># Gąsienica [XP] ~ Train Actor <br />
# Copyright © 2005 fukuyama <br />
# Tłumaczenie by Ayene <br />
<br />
#============================================================================== <br />
# KONFIGURACJA <br />
#============================================================================== <br />
module Train_Actor <br />
&nbsp;&nbsp;# NIWIDZIALNOŚĆ? (true / false) <br />
&nbsp;&nbsp;# Umożliwia aktywację niewidzialności bohaterów w gąsienicy <br />
&nbsp;&nbsp;TRANSPARENT_SWITCH = false <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;# PRZEŁĄCZNIK NIWIDZIALNOŚCI <br />
&nbsp;&nbsp;# Kiedy TRANSPARENT_SWITCH jest 'true', po aktywacji tego przełącznika <br />
&nbsp;&nbsp;# bohaterowie w gąsienicy staną się niewidzialni. <br />
&nbsp;&nbsp;TRANSPARENT_SWITCHES_INDEX = 20 <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;# MAKSYMALNA ILOŚĆ BOHATERÓW W DRUŻYNIE <br />
&nbsp;&nbsp;TRAIN_ACTOR_SIZE_MAX = 4 <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;# STAŁE <br />
&nbsp;&nbsp;DOWN_LEFT = 1 <br />
&nbsp;&nbsp;DOWN_RIGHT = 3 <br />
&nbsp;&nbsp;UP_LEFT = 7 <br />
&nbsp;&nbsp;UP_RIGHT = 9 <br />
&nbsp;&nbsp;JUMP = 5 <br />
end <br />
<br />
#============================================================================== <br />
# Spriteset_Map_Module <br />
#============================================================================== <br />
<br />
module Train_Actor <br />
<br />
&nbsp;&nbsp;module Spriteset_Map_Module <br />
&nbsp;&nbsp;&nbsp;&nbsp;def setup_actor_character_sprites? <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return @setup_actor_character_sprites_flag != nil <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def setup_actor_character_sprites(characters) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if !setup_actor_character_sprites? <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for character in characters.reverse <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@character_sprites.unshift( <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sprite_Character.new(@viewport1, character) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@setup_actor_character_sprites_flag = true <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
end <br />
<br />
class Spriteset_Map <br />
&nbsp;&nbsp;include Train_Actor::Spriteset_Map_Module <br />
end <br />
<br />
#============================================================================== <br />
# Scene_Map_Module <br />
#============================================================================== <br />
<br />
module Train_Actor <br />
&nbsp;&nbsp;module Scene_Map_Module <br />
&nbsp;&nbsp;&nbsp;&nbsp;def setup_actor_character_sprites(characters) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@spriteset.setup_actor_character_sprites(characters) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
end <br />
<br />
class Scene_Map <br />
&nbsp;&nbsp;include Train_Actor::Scene_Map_Module <br />
end <br />
<br />
#============================================================================== <br />
# Game_Party_Module <br />
#============================================================================== <br />
<br />
module Train_Actor <br />
&nbsp;&nbsp;module Game_Party_Module <br />
&nbsp;&nbsp;&nbsp;&nbsp;attr_reader :characters <br />
&nbsp;&nbsp;&nbsp;&nbsp;def actors_dead?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for actor in actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if actor.dead? <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def update_party_order <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if not actors_dead? <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alive_actors = [] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dead_actors = [] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for actor in actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if actor.dead? <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dead_actors.push actor <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alive_actors.push actor <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return alive_actors + dead_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def setup_actor_character_sprites <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @characters.nil? <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@characters = [] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i in 1 ... TRAIN_ACTOR_SIZE_MAX <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@characters.push(Game_Party_Actor.new) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setup_actors = update_party_order <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i in 1 ... TRAIN_ACTOR_SIZE_MAX <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@characters[i - 1].setup(setup_actors[i]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;scene.class.method_defined?('setup_actor_character_sprites') <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;scene.setup_actor_character_sprites(@characters) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def update_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_party_order <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setup_actor_character_sprites <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;transparent = &#36;game_player.transparent <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if transparent == false <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if TRANSPARENT_SWITCH <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;transparent = &#36;game_switches[TRANSPARENT_SWITCHES_INDEX] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for character in @characters <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;character.transparent = transparent <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;character.move_speed = &#36;game_player.move_speed <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;character.step_anime = &#36;game_player.step_anime <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;character.update <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def moveto_party_actors( x, y ) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setup_actor_character_sprites <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for character in @characters <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;character.moveto( x, y ) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @move_list == nil <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@move_list = [] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_list_setup <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @move_list == nil <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@move_list = [] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move_list_setup <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@move_list.each_index do |i| <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @characters[i] != nil <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case @move_list[i].type <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when Input::DOWN <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@characters[i].move_down(@move_list[i].args[0]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when Input::LEFT <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@characters[i].move_left(@move_list[i].args[0]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when Input::RIGHT <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@characters[i].move_right(@move_list[i].args[0]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when Input::UP <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@characters[i].move_up(@move_list[i].args[0]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when DOWN_LEFT <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@characters[i].move_lower_left <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when DOWN_RIGHT <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@characters[i].move_lower_right <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when UP_LEFT <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@characters[i].move_upper_left <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when UP_RIGHT <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@characters[i].move_upper_right <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when JUMP <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@characters[i].jump(@move_list[i].args[0],@move_list[i].args[1]) <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;class Move_List_Element <br />
&nbsp;&nbsp;&nbsp;&nbsp;def initialize(type,args) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@type = type <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@args = args <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def type() return @type end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def args() return @args end <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;def move_list_setup <br />
&nbsp;&nbsp;&nbsp;&nbsp;for i in 0 .. TRAIN_ACTOR_SIZE_MAX <br />
&nbsp;&nbsp;&nbsp;&nbsp;@move_list[i] = nil <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def add_move_list(type,*args) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@move_list.unshift(Move_List_Element.new(type,args)).pop <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_down_party_actors(turn_enabled = true) <br />
&nbsp;&nbsp;&nbsp;&nbsp;move_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;add_move_list(Input::DOWN,turn_enabled) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_left_party_actors(turn_enabled = true) <br />
&nbsp;&nbsp;&nbsp;&nbsp;move_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;add_move_list(Input::LEFT,turn_enabled) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_right_party_actors(turn_enabled = true) <br />
&nbsp;&nbsp;&nbsp;&nbsp;move_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;add_move_list(Input::RIGHT,turn_enabled) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_up_party_actors(turn_enabled = true) <br />
&nbsp;&nbsp;&nbsp;&nbsp;move_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;add_move_list(Input::UP,turn_enabled) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_lower_left_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;move_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;add_move_list(DOWN_LEFT) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_lower_right_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;move_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;add_move_list(DOWN_RIGHT) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_upper_left_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;move_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;add_move_list(UP_LEFT) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_upper_right_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;move_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;add_move_list(UP_RIGHT) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def jump_party_actors(x_plus, y_plus) <br />
&nbsp;&nbsp;&nbsp;&nbsp;move_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;add_move_list(JUMP,x_plus, y_plus) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
end <br />
<br />
class Game_Party <br />
&nbsp;&nbsp;include Train_Actor::Game_Party_Module <br />
end <br />
<br />
#============================================================================== <br />
# Game_Player_Module <br />
#============================================================================== <br />
<br />
module Train_Actor <br />
&nbsp;&nbsp;module Game_Player_Module <br />
&nbsp;&nbsp;&nbsp;&nbsp;attr_reader :move_speed <br />
&nbsp;&nbsp;&nbsp;&nbsp;attr_reader :step_anime <br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;def update_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.update_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.actors.each do |actor| <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if actor.dead? <br />
&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;@character_name = actor.character_name <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@character_hue = actor.character_hue <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;def update <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def moveto( x, y ) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.moveto_party_actors( x, y ) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super( x, y ) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_down(turn_enabled = true) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if passable?(@x, @y, Input::DOWN) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.move_down_party_actors(turn_enabled) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super(turn_enabled) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_left(turn_enabled = true) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if passable?(@x, @y, Input::LEFT) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.move_left_party_actors(turn_enabled) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super(turn_enabled) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_right(turn_enabled = true) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if passable?(@x, @y, Input::RIGHT) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.move_right_party_actors(turn_enabled) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super(turn_enabled) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_up(turn_enabled = true) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if passable?(@x, @y, Input::UP) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.move_up_party_actors(turn_enabled) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super(turn_enabled) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_lower_left <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.move_lower_left_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_lower_right <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) or <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.move_lower_right_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_upper_left <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.move_upper_left_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_upper_right <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.move_upper_right_party_actors <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def jump(x_plus, y_plus) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new_x = @x + x_plus <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new_y = @y + y_plus <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (x_plus == 0 and y_plus == 0) or passable?(new_x, new_y, 0) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.jump_party_actors(x_plus, y_plus) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super(x_plus, y_plus) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
end <br />
<br />
class Game_Player <br />
&nbsp;&nbsp;include Train_Actor::Game_Player_Module <br />
end <br />
<br />
#============================================================================== <br />
# Game_Event_Module <br />
#============================================================================== <br />
<br />
module Train_Actor <br />
&nbsp;&nbsp;module Game_Event_Module&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def passable?(x, y, d) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result = super(x, y, d) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if result <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for actor in &#36;game_party.characters <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if not actor.character_name.empty? <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if actor.x == new_x and actor.y == new_y <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if self != &#36;game_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false <br />
&nbsp;&nbsp;&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;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return result <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
end <br />
<br />
class Game_Event <br />
&nbsp;&nbsp;include Train_Actor::Game_Event_Module <br />
end <br />
<br />
#============================================================================== <br />
# Game_Party_Actor <br />
#============================================================================== <br />
<br />
module Train_Actor <br />
<br />
&nbsp;&nbsp;class Game_Party_Actor &lt; Game_Character <br />
&nbsp;&nbsp;&nbsp;&nbsp;attr_writer :move_speed <br />
&nbsp;&nbsp;&nbsp;&nbsp;attr_writer :step_anime <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def initialize <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super() <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@through = true <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;def setup(actor) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if actor != nil and (not actor.dead?) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@character_name = actor.character_name <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@character_hue = actor.character_hue <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@character_name = "" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@character_hue = 0 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@opacity = 255 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@blend_type = 0 <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def screen_z(height = 0) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_player.x == @x and &#36;game_player.y == @y <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return &#36;game_player.screen_z(height) - 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super(height) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_down(turn_enabled = true) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if turn_enabled <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;turn_down <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if passable?(@x, @y, Input::DOWN) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;turn_down <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@y += 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_left(turn_enabled = true) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if turn_enabled <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;turn_left <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if passable?(@x, @y, Input::LEFT) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;turn_left <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@x -= 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_right(turn_enabled = true) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if turn_enabled <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;turn_right <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if passable?(@x, @y, Input::RIGHT) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;turn_right <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@x += 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_up(turn_enabled = true) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if turn_enabled <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;turn_up <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if passable?(@x, @y, Input::UP) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;turn_up <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@y -= 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_lower_left <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unless @direction_fix <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::UP ? Input::DOWN : @direction) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@x -= 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@y += 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_lower_right <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unless @direction_fix <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::UP ? Input::DOWN : @direction) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) or <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@x += 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@y += 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_upper_left <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unless @direction_fix <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::DOWN ? Input::UP : @direction) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@x -= 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@y -= 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def move_upper_right <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unless @direction_fix <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::DOWN ? Input::UP : @direction) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@x += 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@y -= 1 <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;">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/xLbbMOl.png" border="0" alt="[Obrazek: xLbbMOl.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, nad "Main".]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Anty-Lag]]></title>
			<link>https://forum.ultimateam.pl/Thread-XP-Anty-Lag</link>
			<pubDate>Wed, 13 Jun 2018 13:58:32 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-XP-Anty-Lag</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Anty-Lag ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Zwiększa priorytet gry w systemie, zmniejszając zacinanie się w grze. Użyteczne przy większych mapach z dużą ilością zdarzeń.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Near Fantastica <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 />
# ■ Anti Event Lag Script <br />
#====================================== <br />
# 　By: Near Fantastica <br />
# Date: 12.06.05 <br />
# Version: 3 <br />
#====================================== <br />
<br />
#====================================== <br />
# ■ Game_Map <br />
#====================================== <br />
<br />
class Game_Map <br />
#-------------------------------------------------------------------------- <br />
def in_range?(object) <br />
screne_x = &#36;game_map.display_x <br />
screne_x -= 256 <br />
screne_y = &#36;game_map.display_y <br />
screne_y -= 256 <br />
screne_width = &#36;game_map.display_x <br />
screne_width += 2816 <br />
screne_height = &#36;game_map.display_y <br />
screne_height += 2176 <br />
return false if object.real_x &lt;= screne_x-32 <br />
return false if object.real_x &gt;= screne_width+32 <br />
return false if object.real_y &lt;= screne_y-32 <br />
return false if object.real_y &gt;= screne_height+32 <br />
return true <br />
end <br />
#-------------------------------------------------------------------------- <br />
def update <br />
if &#36;game_map.need_refresh <br />
refresh <br />
end <br />
if @scroll_rest &gt; 0 <br />
distance = 2 ** @scroll_speed <br />
case @scroll_direction <br />
when 2 <br />
scroll_down(distance) <br />
when 4 <br />
scroll_left(distance) <br />
when 6 <br />
scroll_right(distance) <br />
when 8 <br />
scroll_up(distance) <br />
end <br />
@scroll_rest -= distance <br />
end <br />
for event in @events.values <br />
if in_range?(event) or event.trigger == 3 or event.trigger == 4 <br />
event.update <br />
end <br />
end <br />
for common_event in @common_events.values <br />
common_event.update <br />
end <br />
@fog_ox -= @fog_sx / 8.0 <br />
@fog_oy -= @fog_sy / 8.0 <br />
if @fog_tone_duration &gt;= 1 <br />
d = @fog_tone_duration <br />
target = @fog_tone_target <br />
@fog_tone.red = (@fog_tone.red * (d - 1) + target.red) / d <br />
@fog_tone.green = (@fog_tone.green * (d - 1) + target.green) / d <br />
@fog_tone.blue = (@fog_tone.blue * (d - 1) + target.blue) / d <br />
@fog_tone.gray = (@fog_tone.gray * (d - 1) + target.gray) / d <br />
@fog_tone_duration -= 1 <br />
end <br />
if @fog_opacity_duration &gt;= 1 <br />
d = @fog_opacity_duration <br />
@fog_opacity = (@fog_opacity * (d - 1) + @fog_opacity_target) / d <br />
@fog_opacity_duration -= 1 <br />
end <br />
end <br />
end <br />
<br />
#====================================== <br />
# ■ Spriteset_Map <br />
#====================================== <br />
<br />
class Spriteset_Map <br />
#-------------------------------------------------------------------------- <br />
def in_range?(object) <br />
screne_x = &#36;game_map.display_x <br />
screne_x -= 256 <br />
screne_y = &#36;game_map.display_y <br />
screne_y -= 256 <br />
screne_width = &#36;game_map.display_x <br />
screne_width += 2816 <br />
screne_height = &#36;game_map.display_y <br />
screne_height += 2176 <br />
return false if object.real_x &lt;= screne_x <br />
return false if object.real_x &gt;= screne_width <br />
return false if object.real_y &lt;= screne_y <br />
return false if object.real_y &gt;= screne_height <br />
return true <br />
end <br />
#-------------------------------------------------------------------------- <br />
def update <br />
if @panorama_name != &#36;game_map.panorama_name or <br />
@panorama_hue != &#36;game_map.panorama_hue <br />
@panorama_name = &#36;game_map.panorama_name <br />
@panorama_hue = &#36;game_map.panorama_hue <br />
if @panorama.bitmap != nil <br />
@panorama.bitmap.dispose <br />
@panorama.bitmap = nil <br />
end <br />
if @panorama_name != "" <br />
@panorama.bitmap = RPG::Cache.panorama(@panorama_name, @panorama_hue) <br />
end <br />
Graphics.frame_reset <br />
end <br />
if @fog_name != &#36;game_map.fog_name or @fog_hue != &#36;game_map.fog_hue <br />
@fog_name = &#36;game_map.fog_name <br />
@fog_hue = &#36;game_map.fog_hue <br />
if @fog.bitmap != nil <br />
@fog.bitmap.dispose <br />
@fog.bitmap = nil <br />
end <br />
if @fog_name != "" <br />
@fog.bitmap = RPG::Cache.fog(@fog_name, @fog_hue) <br />
end <br />
Graphics.frame_reset <br />
end <br />
@tilemap.ox = &#36;game_map.display_x / 4 <br />
@tilemap.oy = &#36;game_map.display_y / 4 <br />
@tilemap.update <br />
@panorama.ox = &#36;game_map.display_x / 8 <br />
@panorama.oy = &#36;game_map.display_y / 8 <br />
@fog.zoom_x = &#36;game_map.fog_zoom / 100.0 <br />
@fog.zoom_y = &#36;game_map.fog_zoom / 100.0 <br />
@fog.opacity = &#36;game_map.fog_opacity <br />
@fog.blend_type = &#36;game_map.fog_blend_type <br />
@fog.ox = &#36;game_map.display_x / 4 + &#36;game_map.fog_ox <br />
@fog.oy = &#36;game_map.display_y / 4 + &#36;game_map.fog_oy <br />
@fog.tone = &#36;game_map.fog_tone <br />
i=0 <br />
for sprite in @character_sprites <br />
if sprite.character.is_a?(Game_Event) <br />
if in_range?(sprite.character) or sprite.character.trigger == 3 or sprite.character.trigger == 4 <br />
sprite.update <br />
i+=1 <br />
end <br />
else <br />
sprite.update <br />
i+=1 <br />
end <br />
end <br />
#p i <br />
@weather.type = &#36;game_screen.weather_type <br />
@weather.max = &#36;game_screen.weather_max <br />
@weather.ox = &#36;game_map.display_x / 4 <br />
@weather.oy = &#36;game_map.display_y / 4 <br />
@weather.update <br />
for sprite in @picture_sprites <br />
sprite.update <br />
end <br />
@timer_sprite.update <br />
@viewport1.tone = &#36;game_screen.tone <br />
@viewport1.ox = &#36;game_screen.shake <br />
@viewport3.color = &#36;game_screen.flash_color <br />
@viewport1.update <br />
@viewport3.update <br />
end <br />
end</code></div></div>
</div></div><span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Skrypt należy umieścić w edytorze skryptów, nad "Main".]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Anty-Lag ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Zwiększa priorytet gry w systemie, zmniejszając zacinanie się w grze. Użyteczne przy większych mapach z dużą ilością zdarzeń.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Near Fantastica <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 />
# ■ Anti Event Lag Script <br />
#====================================== <br />
# 　By: Near Fantastica <br />
# Date: 12.06.05 <br />
# Version: 3 <br />
#====================================== <br />
<br />
#====================================== <br />
# ■ Game_Map <br />
#====================================== <br />
<br />
class Game_Map <br />
#-------------------------------------------------------------------------- <br />
def in_range?(object) <br />
screne_x = &#36;game_map.display_x <br />
screne_x -= 256 <br />
screne_y = &#36;game_map.display_y <br />
screne_y -= 256 <br />
screne_width = &#36;game_map.display_x <br />
screne_width += 2816 <br />
screne_height = &#36;game_map.display_y <br />
screne_height += 2176 <br />
return false if object.real_x &lt;= screne_x-32 <br />
return false if object.real_x &gt;= screne_width+32 <br />
return false if object.real_y &lt;= screne_y-32 <br />
return false if object.real_y &gt;= screne_height+32 <br />
return true <br />
end <br />
#-------------------------------------------------------------------------- <br />
def update <br />
if &#36;game_map.need_refresh <br />
refresh <br />
end <br />
if @scroll_rest &gt; 0 <br />
distance = 2 ** @scroll_speed <br />
case @scroll_direction <br />
when 2 <br />
scroll_down(distance) <br />
when 4 <br />
scroll_left(distance) <br />
when 6 <br />
scroll_right(distance) <br />
when 8 <br />
scroll_up(distance) <br />
end <br />
@scroll_rest -= distance <br />
end <br />
for event in @events.values <br />
if in_range?(event) or event.trigger == 3 or event.trigger == 4 <br />
event.update <br />
end <br />
end <br />
for common_event in @common_events.values <br />
common_event.update <br />
end <br />
@fog_ox -= @fog_sx / 8.0 <br />
@fog_oy -= @fog_sy / 8.0 <br />
if @fog_tone_duration &gt;= 1 <br />
d = @fog_tone_duration <br />
target = @fog_tone_target <br />
@fog_tone.red = (@fog_tone.red * (d - 1) + target.red) / d <br />
@fog_tone.green = (@fog_tone.green * (d - 1) + target.green) / d <br />
@fog_tone.blue = (@fog_tone.blue * (d - 1) + target.blue) / d <br />
@fog_tone.gray = (@fog_tone.gray * (d - 1) + target.gray) / d <br />
@fog_tone_duration -= 1 <br />
end <br />
if @fog_opacity_duration &gt;= 1 <br />
d = @fog_opacity_duration <br />
@fog_opacity = (@fog_opacity * (d - 1) + @fog_opacity_target) / d <br />
@fog_opacity_duration -= 1 <br />
end <br />
end <br />
end <br />
<br />
#====================================== <br />
# ■ Spriteset_Map <br />
#====================================== <br />
<br />
class Spriteset_Map <br />
#-------------------------------------------------------------------------- <br />
def in_range?(object) <br />
screne_x = &#36;game_map.display_x <br />
screne_x -= 256 <br />
screne_y = &#36;game_map.display_y <br />
screne_y -= 256 <br />
screne_width = &#36;game_map.display_x <br />
screne_width += 2816 <br />
screne_height = &#36;game_map.display_y <br />
screne_height += 2176 <br />
return false if object.real_x &lt;= screne_x <br />
return false if object.real_x &gt;= screne_width <br />
return false if object.real_y &lt;= screne_y <br />
return false if object.real_y &gt;= screne_height <br />
return true <br />
end <br />
#-------------------------------------------------------------------------- <br />
def update <br />
if @panorama_name != &#36;game_map.panorama_name or <br />
@panorama_hue != &#36;game_map.panorama_hue <br />
@panorama_name = &#36;game_map.panorama_name <br />
@panorama_hue = &#36;game_map.panorama_hue <br />
if @panorama.bitmap != nil <br />
@panorama.bitmap.dispose <br />
@panorama.bitmap = nil <br />
end <br />
if @panorama_name != "" <br />
@panorama.bitmap = RPG::Cache.panorama(@panorama_name, @panorama_hue) <br />
end <br />
Graphics.frame_reset <br />
end <br />
if @fog_name != &#36;game_map.fog_name or @fog_hue != &#36;game_map.fog_hue <br />
@fog_name = &#36;game_map.fog_name <br />
@fog_hue = &#36;game_map.fog_hue <br />
if @fog.bitmap != nil <br />
@fog.bitmap.dispose <br />
@fog.bitmap = nil <br />
end <br />
if @fog_name != "" <br />
@fog.bitmap = RPG::Cache.fog(@fog_name, @fog_hue) <br />
end <br />
Graphics.frame_reset <br />
end <br />
@tilemap.ox = &#36;game_map.display_x / 4 <br />
@tilemap.oy = &#36;game_map.display_y / 4 <br />
@tilemap.update <br />
@panorama.ox = &#36;game_map.display_x / 8 <br />
@panorama.oy = &#36;game_map.display_y / 8 <br />
@fog.zoom_x = &#36;game_map.fog_zoom / 100.0 <br />
@fog.zoom_y = &#36;game_map.fog_zoom / 100.0 <br />
@fog.opacity = &#36;game_map.fog_opacity <br />
@fog.blend_type = &#36;game_map.fog_blend_type <br />
@fog.ox = &#36;game_map.display_x / 4 + &#36;game_map.fog_ox <br />
@fog.oy = &#36;game_map.display_y / 4 + &#36;game_map.fog_oy <br />
@fog.tone = &#36;game_map.fog_tone <br />
i=0 <br />
for sprite in @character_sprites <br />
if sprite.character.is_a?(Game_Event) <br />
if in_range?(sprite.character) or sprite.character.trigger == 3 or sprite.character.trigger == 4 <br />
sprite.update <br />
i+=1 <br />
end <br />
else <br />
sprite.update <br />
i+=1 <br />
end <br />
end <br />
#p i <br />
@weather.type = &#36;game_screen.weather_type <br />
@weather.max = &#36;game_screen.weather_max <br />
@weather.ox = &#36;game_map.display_x / 4 <br />
@weather.oy = &#36;game_map.display_y / 4 <br />
@weather.update <br />
for sprite in @picture_sprites <br />
sprite.update <br />
end <br />
@timer_sprite.update <br />
@viewport1.tone = &#36;game_screen.tone <br />
@viewport1.ox = &#36;game_screen.shake <br />
@viewport3.color = &#36;game_screen.flash_color <br />
@viewport1.update <br />
@viewport3.update <br />
end <br />
end</code></div></div>
</div></div><span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Skrypt należy umieścić w edytorze skryptów, nad "Main".]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Zaawansowane sterowanie]]></title>
			<link>https://forum.ultimateam.pl/Thread-XP-VX-VXAce-Zaawansowane-sterowanie</link>
			<pubDate>Fri, 14 Apr 2017 08:51:21 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-XP-VX-VXAce-Zaawansowane-sterowanie</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Skrypt na obsługę klawiatury i gamepadów. ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Zmienia liczbę kontrolek sterowania do pełni tego, co masz na kontrolerze. Liczba kontrolerów też rośnie.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Blizzard<br />
Glitchfinder<br />
Mateusz SSJ8<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Zrzuty ekranu</span></span><br />
Obsługa myszki aktualnie ograniczona do przycisków, w związku z czym nie ma żadnych.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Kod</span></span><br />
Kliknij, aby zobaczyć<br />
2/3. Wklej w moduł "Input"<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 Keyboard<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys = {}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Escape'] = 27<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['F1'] = 112<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['F2'] = 113<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['F3'] = 114<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['F4'] = 115<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['F5'] = 116<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['F6'] = 117<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['F7'] = 118<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['F8'] = 119<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['F9'] = 120<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['F10'] = 121<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['F11'] = 122<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['F12'] = 123<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['~'] = 192<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Main0'] = 48<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Main1'] = 49<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Main2'] = 50<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Main3'] = 51<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Main4'] = 52<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Main5'] = 53<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Main6'] = 54<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Main7'] = 55<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Main8'] = 56<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Main9'] = 57<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Main-'] = 189<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Main='] = 187<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['&#92;&#92;'] = 220<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Backspace'] = 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Tab'] = 9<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Q'] = 81<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['W'] = 87<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['E'] = 69<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['R'] = 82<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['T'] = 84<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Y'] = 89<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['U'] = 85<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['I'] = 73<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['O'] = 79<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['P'] = 80<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['['] = 219<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys[']'] = 221<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['MainEnter'] = 13<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['CapsLock'] = 20<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['A'] = 65<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['S'] = 83<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['D'] = 68<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['F'] = 70<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['G'] = 71<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['H'] = 72<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['J'] = 74<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['K'] = 75<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['L'] = 76<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys[';'] = 186<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['"'] = 222<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['LShift'] = 160<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Z'] = 90<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['X'] = 88<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['C'] = 67<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['V'] = 86<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['B'] = 66<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['N'] = 78<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['M'] = 77<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['&lt;'] = 188<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['&gt;'] = 190<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['?'] = 191<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['RShift'] = 161<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['LCtrl'] = 162<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['LWin'] = 91<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['LAlt'] = 164<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Space'] = 32<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['RAlt'] = 165<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Rwin'] = 92<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['AppMenu'] = 93<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['RCtrl'] = 163<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['PrintScreen'] = 44<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['ScrollLock'] = 145<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Pause'] = 19<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Insert'] = 45<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Delete'] = 46<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Home'] = 36<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['End'] = 35<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['PageUp'] = 33<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['PageDown'] = 34<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Arrow Left'] = 37<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Arrow Up'] = 38<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Arrow Right'] = 39<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Arrow Down'] = 40<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['NumLock'] = 144<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num/'] = 111<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num*'] = 106<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num-'] = 109<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num7'] = 103<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num8'] = 104<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num9'] = 105<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num+'] = 107<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num4'] = 100<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num5'] = 101<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num6'] = 102<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num1'] = 97<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num2'] = 98<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num3'] = 99<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['NumX'] = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['NumEnter'] = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num0'] = 96<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num.'] = 110<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Unknown'] = 12<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['MouseLeft'] = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['MouseRight'] =2<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['MouseCenter'] = 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['MouseButton4'] = 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['MouseButton5'] = 6<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;DEAD_KEY_MASK = 0x80000000<br />
&nbsp;&nbsp;&nbsp;&nbsp;KEY_DOWN_MASK = 128<br />
&nbsp;&nbsp;&nbsp;&nbsp;KEY_TOOGLE_MASK = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;GetKeyState = Win32API.new('user32', 'GetKeyboardState', 'p', 'l')<br />
&nbsp;&nbsp;&nbsp;&nbsp;GetKeyLayout = Win32API.new('user32', 'GetKeyboardLayoutName', 'P', 'L')<br />
&nbsp;&nbsp;&nbsp;&nbsp;LoadKeyLayout = Win32API.new('user32', 'LoadKeyboardLayout', 'pl', 'p')<br />
&nbsp;&nbsp;&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;@layout_name = '00000000'<br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;GetKeyLayout.call(@layout_name)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@layout_name = '00000409'<br />
&nbsp;&nbsp;&nbsp;&nbsp; # @layout = LoadKeyLayout.call(@layout_name, 0x0000001)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@last = [0] * 256<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@state = "&#92;0" * 256<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@repeat = Array.new(256, 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@last = @state.clone#.unpack('B'*256)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result = GetKeyState.call(@state)<br />
&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;@actual = @state.clone.unpack('B'*256)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;256.times { |i|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if down?(@state[i]) == true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@repeat[i] += 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@repeat[i] = 15 if @repeat[i] &gt;= 17<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@repeat[i] = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end }<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def toogle?(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(@state[key] &amp; KEY_TOOGLE_MASK == KEY_TOOGLE_MASK)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def down?(keystate)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(keystate &amp; KEY_DOWN_MASK == KEY_DOWN_MASK)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def up?(keystate)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(keystate &amp; KEY_DOWN_MASK != KEY_DOWN_MASK)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def trigger?(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key &amp;&amp; down?(@state[key]) &amp;&amp; up?(@last[key]) &amp;&amp; validate_key(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def press?(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key &amp;&amp; down?(@state[key])<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def release?(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key &amp;&amp; up?(@state[key]) &amp;&amp; down?(@last[key])<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def repeat?(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key &amp;&amp; [1,16].include?(@repeat[key])<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def validate_key(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false if !(key.is_a?(Numeric))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key = key.to_i<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false if ((key &lt; 0x01) || (key &gt; 0x100) || !(key == key.to_i))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;end</code></div></div>
</div></div>2/3. Wklej w moduł Input.<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 Gamepad<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys = {}<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick1 Up'] = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick1 Down'] = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick1 Left'] = 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick1 Right'] = 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick2 Up'] = 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick2 Down'] = 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick2 Left'] = 6<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick2 Right'] = 7<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick3 Up'] = 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick3 Down'] = 9<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick3 Left'] = 10<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick3 Right'] = 11<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick4 Up'] = 12<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick4 Down'] = 13<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick4 Left'] = 14<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick4 Right'] = 15<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['DPad Up'] = 16<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['DPad Down'] = 17<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['DPad Left'] = 18<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['DPad Right'] = 19<br />
&nbsp;&nbsp;&nbsp;&nbsp;32.times { |i| Keys['Button '+ sprintf('%02d', i+1)] = 20 + i }<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dead_Zone = [0, 0, 1000, 1000, 1000, 1000, 1000, 1000, 0, 0, 0, 1000, 1000]<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;GetPos = Win32API.new('winmm', 'joyGetPosEx', 'lp', 'l')<br />
&nbsp;&nbsp;&nbsp;&nbsp;GetCaps = Win32API.new('winmm', 'joyGetDevCaps', 'LPL', 'l')<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def initialize(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@id = id<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@repeats = Array.new(52, 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@pluged_in = 162<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@last = [52, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@last_buttons = []<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@actual = [52, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@state = [52, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0].pack('L14')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@buttons = []<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def actual<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@actual<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@caps = '0'*404<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetCaps.call(@id, @caps, 404)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#@caps.unpack('S2Z32I19Z32Z260')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@last = @actual.clone<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@last_buttons = @buttons.clone<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@pluged_in = GetPos.call(@id, @state)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@actual = @state.unpack("L14")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_buttons_down<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_repeat<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def update_buttons_down<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@buttons.clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n = @actual[8]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all_buttons.times { |i| <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next if 2 ** (all_buttons - i - 1)&nbsp;&nbsp;&gt; n<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@buttons.push(all_buttons - i)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n -= (2 ** (all_buttons - i - 1)) }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@buttons.sort!<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def update_repeat<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Keys.values.each { |i|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if down?(i, @actual, @buttons)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@repeats[i] += 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@repeats[i] = 15 if @repeats[i] &gt; 17<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@repeats[i] = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end }<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def axes<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@caps[104]<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def all_buttons<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@caps[60]<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def buttons<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@buttons<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def down?(index, state, buttons)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false if index == nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case index<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 0 then axis_tilt(state, 3) &lt; 0 &amp;&amp; axes &gt;= 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 1 then axis_tilt(state, 3) &gt; 0 &amp;&amp; axes &gt;= 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 2 then axis_tilt(state, 2) &lt; 0 &amp;&amp; axes &gt;= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 3 then axis_tilt(state, 2) &gt; 0 &amp;&amp; axes &gt;= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 4 then axis_tilt(state, 5) &lt; 0 &amp;&amp; axes &gt;= 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 5 then axis_tilt(state, 5) &gt; 0 &amp;&amp; axes &gt;= 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 6 then axis_tilt(state, 4) &lt; 0 &amp;&amp; axes &gt;= 3 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 7 then axis_tilt(state, 4) &gt; 0 &amp;&amp; axes &gt;= 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 8 then axis_tilt(state, 7) &lt; 0 &amp;&amp; axes &gt;= 6<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 9 then axis_tilt(state, 7) &gt; 0 &amp;&amp; axes &gt;= 6<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 10 then axis_tilt(state, 6) &lt; 0 &amp;&amp; axes &gt;= 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 11 then axis_tilt(state, 6) &gt; 0 &amp;&amp; axes &gt;= 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 12 then axis_tilt(state, 12) &lt; 0 &amp;&amp; axes &gt;= 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 13 then axis_tilt(state, 12) &lt; 0 &amp;&amp; axes &gt;= 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 14 then axis_tilt(state, 11) &lt; 0 &amp;&amp; axes &gt;= 7<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 15 then axis_tilt(state, 11) &lt; 0 &amp;&amp; axes &gt;= 7<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 16 then [31500, 0, 4500].include?(state[10])# &amp;&amp; axes &gt;= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 17 then [13500, 18000, 22500].include?(state[10])# &amp;&amp; axes &gt;= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 18 then [22500, 27000, 31500].include?(state[10])# &amp;&amp; axes &gt;= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 19 then [4500, 9000, 13500].include?(state[10])# &amp;&amp; axes &gt;= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buttons.include?(index-19)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def up?(index, state, buttons)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case index<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 0 then axis_tilt(state, 3) == 0 &amp;&amp; axes &gt;= 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 1 then axis_tilt(state, 3) == 0 &amp;&amp; axes &gt;= 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 2 then axis_tilt(state, 2) == 0 &amp;&amp; axes &gt;= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 3 then axis_tilt(state, 2) == 0 &amp;&amp; axes &gt;= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 4 then axis_tilt(state, 5) == 0 &amp;&amp; axes &gt;= 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 5 then axis_tilt(state, 5) == 0 &amp;&amp; axes &gt;= 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 6 then axis_tilt(state, 4) == 0 &amp;&amp; axes &gt;= 3 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 7 then axis_tilt(state, 4) == 0 &amp;&amp; axes &gt;= 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 8 then axis_tilt(state, 7) == 0 &amp;&amp; axes &gt;= 6<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 9 then axis_tilt(state, 7) == 0 &amp;&amp; axes &gt;= 6<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 10 then axis_tilt(state, 6) == 0 &amp;&amp; axes &gt;= 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 11 then axis_tilt(state, 6) == 0 &amp;&amp; axes &gt;= 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 12 then axis_tilt(state, 12) == 0 &amp;&amp; axes &gt;= 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 13 then axis_tilt(state, 12) == 0 &amp;&amp; axes &gt;= 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 14 then axis_tilt(state, 11) == 0 &amp;&amp; axes &gt;= 7<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 15 then axis_tilt(state, 11) == 0 &amp;&amp; axes &gt;= 7<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 16 then [-1, 65535].include?(state[10])# &amp;&amp; axes &gt;= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 17 then [-1, 65535].include?(state[10])# &amp;&amp; axes &gt;= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 18 then [-1, 65535].include?(state[10])# &amp;&amp; axes &gt;= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 19 then [-1, 65535].include?(state[10])# &amp;&amp; axes &gt;= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;!(buttons.include?(index-19))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def trigger?(ctrl)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;down?(Keys[ctrl], @actual, @buttons) &amp;&amp; up?(Keys[ctrl], @last, @last_buttons)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def release?(ctrl)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;down?(Keys[ctrl], @last, @last_buttons) &amp;&amp; up?(Keys[ctrl],@actual, @buttons)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def press?(ctrl)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;down?(Keys[ctrl], @actual, @buttons)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def repeat?(ctrl)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Keys[ctrl] != nil &amp;&amp; [1,16].include?(@repeats[Keys[ctrl]])<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def axis_tilt(buffer, index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n = (buffer[index]) - 32767<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n.abs &gt; Dead_Zone[index] ? n : 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;end</code></div></div>
</div></div>
1. Wklej do projektu ten moduł.<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 Input<br />
 <br />
&nbsp;&nbsp;C = {}<br />
&nbsp;&nbsp;C[:UP] = [[0, 'Arrow Up'], [1, 'Stick1 Up']]<br />
&nbsp;&nbsp;C[:DOWN] = [[0, 'Arrow Down'], [1, 'Stick1 Down']]<br />
&nbsp;&nbsp;C[:LEFT] = [[0, 'Arrow Left'], [1, 'Stick1 Left']]<br />
&nbsp;&nbsp;C[:RIGHT] = [[0, 'Arrow Right'], [1, 'Stick1 Right']]<br />
&nbsp;&nbsp;C[:A] = [[0, 'Z'], [1, 'Button 01']]<br />
&nbsp;&nbsp;C[:B] = [[0, 'X'], [1, 'Button 02']]<br />
&nbsp;&nbsp;C[:C] = [[0, 'C'], [1, 'Button 03']]<br />
&nbsp;&nbsp;C[:X] = [[0, 'A'], [1, 'Button 04']]<br />
&nbsp;&nbsp;C[:Y] = [[0, 'S'], [1, 'Button 05']]<br />
&nbsp;&nbsp;C[:Z] = [[0, 'D'], [1, 'Button 06']]<br />
&nbsp;&nbsp;C[:L] = [[0, 'Q'], [1, 'Button 07']]<br />
&nbsp;&nbsp;C[:R] = [[0, 'W'], [1, 'Button 08']]<br />
&nbsp;&nbsp;C[:SELECT] = [[0, 'Esc'], [1,'Button 09']]<br />
&nbsp;&nbsp;C[:START] = [[0, ']'], [1, 'Button 10']]<br />
<br />
#tu wstaw klasy kontrolerów<br />
<br />
<br />
<br />
#/tu wstaw klasy kontrolerów<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;@keyboard = Keyboard.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;@gamepads = []<br />
&nbsp;&nbsp;&nbsp;&nbsp;3.times { |i| @gamepads.push(Gamepad.new(i)) }<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def self.keyboard<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@keyboard<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def self.gamepads<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@gamepads<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def self.update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@keyboard.update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@gamepads.each { |gamepad| gamepad.update }<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def self.repeat?(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case key<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when Symbol<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C[key].any? { |key| key_repeat?(key) }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when Array<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key_repeat?(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;def self.key_repeat?(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if key[0] == 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@keyboard.repeat?(Keyboard::Keys[key[1]])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif key[0] == 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@gamepads.any? { |gamepad| gamepad.repeat?(key[1]) }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@gamepads[key[0] - 2].repeat?(key[1])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def self.trigger?(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case key<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when Symbol<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return C[key].any? { |key| key_trigger?(key) == true }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when Array<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return key_trigger?(key) == true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;false<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;def self.key_trigger?(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if key[0] == 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@keyboard.trigger?(Keyboard::Keys[key[1]])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif key[0] == 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@gamepads.any? { |gamepad| gamepad.trigger?(key[1]) }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@gamepads[key[0] - 2].trigger?(key[1])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def self.press?(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case key<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when Symbol<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return C[key].any? { |key| key_press?(key) == true }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when Array<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return key_press?(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;false<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;def self.key_press?(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if key[0] == 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@keyboard.press?(Keyboard::Keys[key[1]])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif key[0] == 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@gamepads.any? { |gamepad| gamepad.press?(key[1]) }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@gamepads[key[0] - 2].press?(key[1])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def self.dir8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirs = []<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirs.push(2) if Input.press?(:DOWN)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirs.push(4) if Input.press?(:LEFT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirs.push(6) if Input.press?(:RIGHT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirs.push(8) if Input.press?(:UP)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if dirs.include?(2) &amp;&amp; dirs.include?(8)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[2, 8].each { |d| dirs.delete(d) }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if dirs.include?(4) &amp;&amp; dirs.include?(6)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[4, 6].each { |d| dirs.delete(d) }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0 if dirs.empty?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if dirs.size == 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 1 if dirs.include?(2) &amp;&amp; dirs.include?(4)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 3 if dirs.include?(2) &amp;&amp; dirs.include?(6)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 7 if dirs.include?(8) &amp;&amp; dirs.include?(4)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 9 if dirs.include?(8) &amp;&amp; dirs.include?(6)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirs[0]<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def self.dir4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dir8 if [0, 2, 4, 6, 8].include?(dir8)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end</code></div></div>
</div></div>
<span style="color: red;"><span style="font-weight: bold;">Wymagania</span></span><br />
Wersja RGSS1 z pliku "rgss102j.dll" (dla RPG Makera XP) (W RPG Makerze VX odpowiednik)<br />
<br />
<span style="color: yellow;"><span style="font-weight: bold;">Instrukcja</span></span><br />
Pusty skrypt, do którego wkleić poszczególne kawałki, może znajdować się pod ostatnim nadpisem modułu "Input". Instrukcje dodane do fragmentów kodu wykonać na owym pustym skrypcie.<br />
Po wklejeniu skryptu do starszego RPG Makera, niż VX Ace standardowe kontrolki nie działają. <br />
<br />
<span style="color: yellow;"><span style="font-weight: bold;">Funkcje</span></span><br />
Pełna obsługa klawiatury<br />
Obsługa przycisków myszy<br />
Obsługa dowolnej liczby gamepadów<br />
Możliwość przypisania konkretnego działania na konkretnym kontrolerze jako sygnał dla gry do wykonania akcji.<br />
<br />
<span style="color: yellow;"><span style="font-weight: bold;">Aktualizacje</span></span><br />
Niniejsza wersja pochodzi z projektu "HTF+MLP: Worlds in danger". Nie obsługuje blokady dla wygaszania ekranu.<br />
<br />
<span style="color: green;"><span style="font-weight: bold;">Niestandardowe informacje</span></span><br />
Użyj symbolu, aby użyć standardowej kontrolki (lista w stałej "C" modułu "Input")<br />
Użyj zbioru, aby użyć konkretnej kontrolki (TYLKO Array)<br />
Jeśli pierwszym elementem zbioru jest 0, to trzeba nacisnąć klawisz na klawiaturze lub przycisk myszy . Drugim musi wtedy być nazwa klawisza na klawiaturze lub przycisku myszy. (lista klawiszy w stałej "Keys" klasy "Keyboard")<br />
Jeśli pierwszym elementem zbioru jest jest liczba 1 lub większa, to trzeba wykonać czynność powiązaną z działaniem na gamepadzie. Drugim musi wtedy być nazwa kontrolki na nim. (lista kontrolek gamepada w stałej "Keys" klasy "Gamepad").<br />
Jeśli pierwszym elementem zbioru jest liczba 1, to sprawdzany jest każdy podłączony gamepad. Wyższa odpowiada konkretnemu.]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Skrypt na obsługę klawiatury i gamepadów. ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Zmienia liczbę kontrolek sterowania do pełni tego, co masz na kontrolerze. Liczba kontrolerów też rośnie.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Blizzard<br />
Glitchfinder<br />
Mateusz SSJ8<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Zrzuty ekranu</span></span><br />
Obsługa myszki aktualnie ograniczona do przycisków, w związku z czym nie ma żadnych.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Kod</span></span><br />
Kliknij, aby zobaczyć<br />
2/3. Wklej w moduł "Input"<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 Keyboard<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys = {}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Escape'] = 27<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['F1'] = 112<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['F2'] = 113<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['F3'] = 114<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['F4'] = 115<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['F5'] = 116<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['F6'] = 117<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['F7'] = 118<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['F8'] = 119<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['F9'] = 120<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['F10'] = 121<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['F11'] = 122<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['F12'] = 123<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['~'] = 192<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Main0'] = 48<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Main1'] = 49<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Main2'] = 50<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Main3'] = 51<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Main4'] = 52<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Main5'] = 53<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Main6'] = 54<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Main7'] = 55<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Main8'] = 56<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Main9'] = 57<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Main-'] = 189<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Main='] = 187<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['&#92;&#92;'] = 220<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Backspace'] = 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Tab'] = 9<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Q'] = 81<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['W'] = 87<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['E'] = 69<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['R'] = 82<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['T'] = 84<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Y'] = 89<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['U'] = 85<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['I'] = 73<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['O'] = 79<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['P'] = 80<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['['] = 219<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys[']'] = 221<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['MainEnter'] = 13<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['CapsLock'] = 20<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['A'] = 65<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['S'] = 83<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['D'] = 68<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['F'] = 70<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['G'] = 71<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['H'] = 72<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['J'] = 74<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['K'] = 75<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['L'] = 76<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys[';'] = 186<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['"'] = 222<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['LShift'] = 160<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Z'] = 90<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['X'] = 88<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['C'] = 67<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['V'] = 86<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['B'] = 66<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['N'] = 78<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['M'] = 77<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['&lt;'] = 188<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['&gt;'] = 190<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['?'] = 191<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['RShift'] = 161<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['LCtrl'] = 162<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['LWin'] = 91<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['LAlt'] = 164<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Space'] = 32<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['RAlt'] = 165<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Rwin'] = 92<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['AppMenu'] = 93<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['RCtrl'] = 163<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['PrintScreen'] = 44<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['ScrollLock'] = 145<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Pause'] = 19<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Insert'] = 45<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Delete'] = 46<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Home'] = 36<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['End'] = 35<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['PageUp'] = 33<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['PageDown'] = 34<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Arrow Left'] = 37<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Arrow Up'] = 38<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Arrow Right'] = 39<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Arrow Down'] = 40<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['NumLock'] = 144<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num/'] = 111<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num*'] = 106<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num-'] = 109<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num7'] = 103<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num8'] = 104<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num9'] = 105<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num+'] = 107<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num4'] = 100<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num5'] = 101<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num6'] = 102<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num1'] = 97<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num2'] = 98<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num3'] = 99<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['NumX'] = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['NumEnter'] = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num0'] = 96<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Num.'] = 110<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Unknown'] = 12<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['MouseLeft'] = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['MouseRight'] =2<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['MouseCenter'] = 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['MouseButton4'] = 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['MouseButton5'] = 6<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;DEAD_KEY_MASK = 0x80000000<br />
&nbsp;&nbsp;&nbsp;&nbsp;KEY_DOWN_MASK = 128<br />
&nbsp;&nbsp;&nbsp;&nbsp;KEY_TOOGLE_MASK = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;GetKeyState = Win32API.new('user32', 'GetKeyboardState', 'p', 'l')<br />
&nbsp;&nbsp;&nbsp;&nbsp;GetKeyLayout = Win32API.new('user32', 'GetKeyboardLayoutName', 'P', 'L')<br />
&nbsp;&nbsp;&nbsp;&nbsp;LoadKeyLayout = Win32API.new('user32', 'LoadKeyboardLayout', 'pl', 'p')<br />
&nbsp;&nbsp;&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;@layout_name = '00000000'<br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;GetKeyLayout.call(@layout_name)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@layout_name = '00000409'<br />
&nbsp;&nbsp;&nbsp;&nbsp; # @layout = LoadKeyLayout.call(@layout_name, 0x0000001)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@last = [0] * 256<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@state = "&#92;0" * 256<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@repeat = Array.new(256, 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@last = @state.clone#.unpack('B'*256)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result = GetKeyState.call(@state)<br />
&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;@actual = @state.clone.unpack('B'*256)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;256.times { |i|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if down?(@state[i]) == true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@repeat[i] += 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@repeat[i] = 15 if @repeat[i] &gt;= 17<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@repeat[i] = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end }<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def toogle?(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(@state[key] &amp; KEY_TOOGLE_MASK == KEY_TOOGLE_MASK)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def down?(keystate)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(keystate &amp; KEY_DOWN_MASK == KEY_DOWN_MASK)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def up?(keystate)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(keystate &amp; KEY_DOWN_MASK != KEY_DOWN_MASK)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def trigger?(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key &amp;&amp; down?(@state[key]) &amp;&amp; up?(@last[key]) &amp;&amp; validate_key(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def press?(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key &amp;&amp; down?(@state[key])<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def release?(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key &amp;&amp; up?(@state[key]) &amp;&amp; down?(@last[key])<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def repeat?(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key &amp;&amp; [1,16].include?(@repeat[key])<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def validate_key(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false if !(key.is_a?(Numeric))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key = key.to_i<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false if ((key &lt; 0x01) || (key &gt; 0x100) || !(key == key.to_i))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;end</code></div></div>
</div></div>2/3. Wklej w moduł Input.<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 Gamepad<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys = {}<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick1 Up'] = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick1 Down'] = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick1 Left'] = 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick1 Right'] = 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick2 Up'] = 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick2 Down'] = 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick2 Left'] = 6<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick2 Right'] = 7<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick3 Up'] = 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick3 Down'] = 9<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick3 Left'] = 10<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick3 Right'] = 11<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick4 Up'] = 12<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick4 Down'] = 13<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick4 Left'] = 14<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['Stick4 Right'] = 15<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['DPad Up'] = 16<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['DPad Down'] = 17<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['DPad Left'] = 18<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keys['DPad Right'] = 19<br />
&nbsp;&nbsp;&nbsp;&nbsp;32.times { |i| Keys['Button '+ sprintf('%02d', i+1)] = 20 + i }<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dead_Zone = [0, 0, 1000, 1000, 1000, 1000, 1000, 1000, 0, 0, 0, 1000, 1000]<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;GetPos = Win32API.new('winmm', 'joyGetPosEx', 'lp', 'l')<br />
&nbsp;&nbsp;&nbsp;&nbsp;GetCaps = Win32API.new('winmm', 'joyGetDevCaps', 'LPL', 'l')<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def initialize(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@id = id<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@repeats = Array.new(52, 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@pluged_in = 162<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@last = [52, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@last_buttons = []<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@actual = [52, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@state = [52, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0].pack('L14')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@buttons = []<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def actual<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@actual<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@caps = '0'*404<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetCaps.call(@id, @caps, 404)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#@caps.unpack('S2Z32I19Z32Z260')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@last = @actual.clone<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@last_buttons = @buttons.clone<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@pluged_in = GetPos.call(@id, @state)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@actual = @state.unpack("L14")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_buttons_down<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_repeat<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def update_buttons_down<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@buttons.clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n = @actual[8]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all_buttons.times { |i| <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next if 2 ** (all_buttons - i - 1)&nbsp;&nbsp;&gt; n<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@buttons.push(all_buttons - i)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n -= (2 ** (all_buttons - i - 1)) }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@buttons.sort!<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def update_repeat<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Keys.values.each { |i|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if down?(i, @actual, @buttons)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@repeats[i] += 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@repeats[i] = 15 if @repeats[i] &gt; 17<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@repeats[i] = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end }<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def axes<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@caps[104]<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def all_buttons<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@caps[60]<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def buttons<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@buttons<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def down?(index, state, buttons)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false if index == nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case index<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 0 then axis_tilt(state, 3) &lt; 0 &amp;&amp; axes &gt;= 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 1 then axis_tilt(state, 3) &gt; 0 &amp;&amp; axes &gt;= 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 2 then axis_tilt(state, 2) &lt; 0 &amp;&amp; axes &gt;= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 3 then axis_tilt(state, 2) &gt; 0 &amp;&amp; axes &gt;= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 4 then axis_tilt(state, 5) &lt; 0 &amp;&amp; axes &gt;= 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 5 then axis_tilt(state, 5) &gt; 0 &amp;&amp; axes &gt;= 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 6 then axis_tilt(state, 4) &lt; 0 &amp;&amp; axes &gt;= 3 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 7 then axis_tilt(state, 4) &gt; 0 &amp;&amp; axes &gt;= 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 8 then axis_tilt(state, 7) &lt; 0 &amp;&amp; axes &gt;= 6<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 9 then axis_tilt(state, 7) &gt; 0 &amp;&amp; axes &gt;= 6<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 10 then axis_tilt(state, 6) &lt; 0 &amp;&amp; axes &gt;= 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 11 then axis_tilt(state, 6) &gt; 0 &amp;&amp; axes &gt;= 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 12 then axis_tilt(state, 12) &lt; 0 &amp;&amp; axes &gt;= 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 13 then axis_tilt(state, 12) &lt; 0 &amp;&amp; axes &gt;= 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 14 then axis_tilt(state, 11) &lt; 0 &amp;&amp; axes &gt;= 7<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 15 then axis_tilt(state, 11) &lt; 0 &amp;&amp; axes &gt;= 7<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 16 then [31500, 0, 4500].include?(state[10])# &amp;&amp; axes &gt;= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 17 then [13500, 18000, 22500].include?(state[10])# &amp;&amp; axes &gt;= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 18 then [22500, 27000, 31500].include?(state[10])# &amp;&amp; axes &gt;= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 19 then [4500, 9000, 13500].include?(state[10])# &amp;&amp; axes &gt;= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buttons.include?(index-19)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def up?(index, state, buttons)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case index<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 0 then axis_tilt(state, 3) == 0 &amp;&amp; axes &gt;= 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 1 then axis_tilt(state, 3) == 0 &amp;&amp; axes &gt;= 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 2 then axis_tilt(state, 2) == 0 &amp;&amp; axes &gt;= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 3 then axis_tilt(state, 2) == 0 &amp;&amp; axes &gt;= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 4 then axis_tilt(state, 5) == 0 &amp;&amp; axes &gt;= 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 5 then axis_tilt(state, 5) == 0 &amp;&amp; axes &gt;= 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 6 then axis_tilt(state, 4) == 0 &amp;&amp; axes &gt;= 3 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 7 then axis_tilt(state, 4) == 0 &amp;&amp; axes &gt;= 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 8 then axis_tilt(state, 7) == 0 &amp;&amp; axes &gt;= 6<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 9 then axis_tilt(state, 7) == 0 &amp;&amp; axes &gt;= 6<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 10 then axis_tilt(state, 6) == 0 &amp;&amp; axes &gt;= 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 11 then axis_tilt(state, 6) == 0 &amp;&amp; axes &gt;= 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 12 then axis_tilt(state, 12) == 0 &amp;&amp; axes &gt;= 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 13 then axis_tilt(state, 12) == 0 &amp;&amp; axes &gt;= 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 14 then axis_tilt(state, 11) == 0 &amp;&amp; axes &gt;= 7<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 15 then axis_tilt(state, 11) == 0 &amp;&amp; axes &gt;= 7<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 16 then [-1, 65535].include?(state[10])# &amp;&amp; axes &gt;= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 17 then [-1, 65535].include?(state[10])# &amp;&amp; axes &gt;= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 18 then [-1, 65535].include?(state[10])# &amp;&amp; axes &gt;= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 19 then [-1, 65535].include?(state[10])# &amp;&amp; axes &gt;= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;!(buttons.include?(index-19))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def trigger?(ctrl)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;down?(Keys[ctrl], @actual, @buttons) &amp;&amp; up?(Keys[ctrl], @last, @last_buttons)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def release?(ctrl)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;down?(Keys[ctrl], @last, @last_buttons) &amp;&amp; up?(Keys[ctrl],@actual, @buttons)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def press?(ctrl)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;down?(Keys[ctrl], @actual, @buttons)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def repeat?(ctrl)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Keys[ctrl] != nil &amp;&amp; [1,16].include?(@repeats[Keys[ctrl]])<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def axis_tilt(buffer, index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n = (buffer[index]) - 32767<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n.abs &gt; Dead_Zone[index] ? n : 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;end</code></div></div>
</div></div>
1. Wklej do projektu ten moduł.<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 Input<br />
 <br />
&nbsp;&nbsp;C = {}<br />
&nbsp;&nbsp;C[:UP] = [[0, 'Arrow Up'], [1, 'Stick1 Up']]<br />
&nbsp;&nbsp;C[:DOWN] = [[0, 'Arrow Down'], [1, 'Stick1 Down']]<br />
&nbsp;&nbsp;C[:LEFT] = [[0, 'Arrow Left'], [1, 'Stick1 Left']]<br />
&nbsp;&nbsp;C[:RIGHT] = [[0, 'Arrow Right'], [1, 'Stick1 Right']]<br />
&nbsp;&nbsp;C[:A] = [[0, 'Z'], [1, 'Button 01']]<br />
&nbsp;&nbsp;C[:B] = [[0, 'X'], [1, 'Button 02']]<br />
&nbsp;&nbsp;C[:C] = [[0, 'C'], [1, 'Button 03']]<br />
&nbsp;&nbsp;C[:X] = [[0, 'A'], [1, 'Button 04']]<br />
&nbsp;&nbsp;C[:Y] = [[0, 'S'], [1, 'Button 05']]<br />
&nbsp;&nbsp;C[:Z] = [[0, 'D'], [1, 'Button 06']]<br />
&nbsp;&nbsp;C[:L] = [[0, 'Q'], [1, 'Button 07']]<br />
&nbsp;&nbsp;C[:R] = [[0, 'W'], [1, 'Button 08']]<br />
&nbsp;&nbsp;C[:SELECT] = [[0, 'Esc'], [1,'Button 09']]<br />
&nbsp;&nbsp;C[:START] = [[0, ']'], [1, 'Button 10']]<br />
<br />
#tu wstaw klasy kontrolerów<br />
<br />
<br />
<br />
#/tu wstaw klasy kontrolerów<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;@keyboard = Keyboard.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;@gamepads = []<br />
&nbsp;&nbsp;&nbsp;&nbsp;3.times { |i| @gamepads.push(Gamepad.new(i)) }<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def self.keyboard<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@keyboard<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def self.gamepads<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@gamepads<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def self.update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@keyboard.update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@gamepads.each { |gamepad| gamepad.update }<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def self.repeat?(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case key<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when Symbol<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C[key].any? { |key| key_repeat?(key) }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when Array<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key_repeat?(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;def self.key_repeat?(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if key[0] == 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@keyboard.repeat?(Keyboard::Keys[key[1]])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif key[0] == 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@gamepads.any? { |gamepad| gamepad.repeat?(key[1]) }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@gamepads[key[0] - 2].repeat?(key[1])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def self.trigger?(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case key<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when Symbol<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return C[key].any? { |key| key_trigger?(key) == true }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when Array<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return key_trigger?(key) == true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;false<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;def self.key_trigger?(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if key[0] == 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@keyboard.trigger?(Keyboard::Keys[key[1]])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif key[0] == 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@gamepads.any? { |gamepad| gamepad.trigger?(key[1]) }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@gamepads[key[0] - 2].trigger?(key[1])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def self.press?(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case key<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when Symbol<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return C[key].any? { |key| key_press?(key) == true }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when Array<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return key_press?(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;false<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;def self.key_press?(key)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if key[0] == 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@keyboard.press?(Keyboard::Keys[key[1]])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif key[0] == 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@gamepads.any? { |gamepad| gamepad.press?(key[1]) }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@gamepads[key[0] - 2].press?(key[1])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def self.dir8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirs = []<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirs.push(2) if Input.press?(:DOWN)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirs.push(4) if Input.press?(:LEFT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirs.push(6) if Input.press?(:RIGHT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirs.push(8) if Input.press?(:UP)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if dirs.include?(2) &amp;&amp; dirs.include?(8)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[2, 8].each { |d| dirs.delete(d) }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if dirs.include?(4) &amp;&amp; dirs.include?(6)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[4, 6].each { |d| dirs.delete(d) }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0 if dirs.empty?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if dirs.size == 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 1 if dirs.include?(2) &amp;&amp; dirs.include?(4)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 3 if dirs.include?(2) &amp;&amp; dirs.include?(6)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 7 if dirs.include?(8) &amp;&amp; dirs.include?(4)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 9 if dirs.include?(8) &amp;&amp; dirs.include?(6)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirs[0]<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;def self.dir4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dir8 if [0, 2, 4, 6, 8].include?(dir8)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end</code></div></div>
</div></div>
<span style="color: red;"><span style="font-weight: bold;">Wymagania</span></span><br />
Wersja RGSS1 z pliku "rgss102j.dll" (dla RPG Makera XP) (W RPG Makerze VX odpowiednik)<br />
<br />
<span style="color: yellow;"><span style="font-weight: bold;">Instrukcja</span></span><br />
Pusty skrypt, do którego wkleić poszczególne kawałki, może znajdować się pod ostatnim nadpisem modułu "Input". Instrukcje dodane do fragmentów kodu wykonać na owym pustym skrypcie.<br />
Po wklejeniu skryptu do starszego RPG Makera, niż VX Ace standardowe kontrolki nie działają. <br />
<br />
<span style="color: yellow;"><span style="font-weight: bold;">Funkcje</span></span><br />
Pełna obsługa klawiatury<br />
Obsługa przycisków myszy<br />
Obsługa dowolnej liczby gamepadów<br />
Możliwość przypisania konkretnego działania na konkretnym kontrolerze jako sygnał dla gry do wykonania akcji.<br />
<br />
<span style="color: yellow;"><span style="font-weight: bold;">Aktualizacje</span></span><br />
Niniejsza wersja pochodzi z projektu "HTF+MLP: Worlds in danger". Nie obsługuje blokady dla wygaszania ekranu.<br />
<br />
<span style="color: green;"><span style="font-weight: bold;">Niestandardowe informacje</span></span><br />
Użyj symbolu, aby użyć standardowej kontrolki (lista w stałej "C" modułu "Input")<br />
Użyj zbioru, aby użyć konkretnej kontrolki (TYLKO Array)<br />
Jeśli pierwszym elementem zbioru jest 0, to trzeba nacisnąć klawisz na klawiaturze lub przycisk myszy . Drugim musi wtedy być nazwa klawisza na klawiaturze lub przycisku myszy. (lista klawiszy w stałej "Keys" klasy "Keyboard")<br />
Jeśli pierwszym elementem zbioru jest jest liczba 1 lub większa, to trzeba wykonać czynność powiązaną z działaniem na gamepadzie. Drugim musi wtedy być nazwa kontrolki na nim. (lista kontrolek gamepada w stałej "Keys" klasy "Gamepad").<br />
Jeśli pierwszym elementem zbioru jest liczba 1, to sprawdzany jest każdy podłączony gamepad. Wyższa odpowiada konkretnemu.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Mgła w Title]]></title>
			<link>https://forum.ultimateam.pl/Thread-XP-Mg%C5%82a-w-Title</link>
			<pubDate>Wed, 23 Dec 2015 19:03:11 +0100</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-XP-Mg%C5%82a-w-Title</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Mgła w ekranie tytułowym ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt pozwala na włączanie mgły w ekranie tytułowym oraz na zmienianie jej prędkości<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Autor: Mannor email: haldir66@wp.pl<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
także Mannor<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
Otwieramy Scene Title i pod 35 linijką wklejamy to<br />
<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>@viewport1 = Viewport.new(0, 0, 640, 480)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@fog = Plane.new (@viewport1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@fog.bitmap = RPG::Cache.fog("006-Sandstorm02", 0) #tutaj wpisujecie nazwę swojego fogu<br />
&nbsp;&nbsp;&nbsp;&nbsp;@fog.z = 1000<br />
&nbsp;&nbsp;&nbsp;&nbsp;@fog.opacity = 100 #tutaj macie przeźroczystość możecie dać od 0 do 255</code></div></div>
</div></div>
teraz z chodzicie niżej do 87 linijki i pod Graphics.freeze wklejacie to<br />
<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>@fog.dispose</code></div></div>
</div></div>
Niżej znajdziecie update i pod tym wklejacie to<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>@fog_x = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;@fog_y = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;@fog.blend_type = 0 #tu jest tak gdy: 0 - normal, 1 - pozytyw, 2 - negatyw<br />
&nbsp;&nbsp;&nbsp;&nbsp;@fog.ox = @fog_x - 30 + @fog.ox #tu gdzie minus możecie zmienić na plus to będzie się poruszało w lewo, gdy minus w prawo<br />
&nbsp;&nbsp;&nbsp;&nbsp;@fog.oy = @fog_y - 30 + @fog.oy #tu jest podobnie tylko że w górę i w dół</code></div></div>
</div></div>
(Liczba 30 powyżej oznacza prędkość - można ją zmienić)<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Reszta instrukcji znajduje się w skrypcie w postaci komentarzy :D]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Mgła w ekranie tytułowym ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt pozwala na włączanie mgły w ekranie tytułowym oraz na zmienianie jej prędkości<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Autor: Mannor email: haldir66@wp.pl<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
także Mannor<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Skrypt:</span></span><br />
Otwieramy Scene Title i pod 35 linijką wklejamy to<br />
<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>@viewport1 = Viewport.new(0, 0, 640, 480)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@fog = Plane.new (@viewport1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@fog.bitmap = RPG::Cache.fog("006-Sandstorm02", 0) #tutaj wpisujecie nazwę swojego fogu<br />
&nbsp;&nbsp;&nbsp;&nbsp;@fog.z = 1000<br />
&nbsp;&nbsp;&nbsp;&nbsp;@fog.opacity = 100 #tutaj macie przeźroczystość możecie dać od 0 do 255</code></div></div>
</div></div>
teraz z chodzicie niżej do 87 linijki i pod Graphics.freeze wklejacie to<br />
<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>@fog.dispose</code></div></div>
</div></div>
Niżej znajdziecie update i pod tym wklejacie to<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>@fog_x = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;@fog_y = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;@fog.blend_type = 0 #tu jest tak gdy: 0 - normal, 1 - pozytyw, 2 - negatyw<br />
&nbsp;&nbsp;&nbsp;&nbsp;@fog.ox = @fog_x - 30 + @fog.ox #tu gdzie minus możecie zmienić na plus to będzie się poruszało w lewo, gdy minus w prawo<br />
&nbsp;&nbsp;&nbsp;&nbsp;@fog.oy = @fog_y - 30 + @fog.oy #tu jest podobnie tylko że w górę i w dół</code></div></div>
</div></div>
(Liczba 30 powyżej oznacza prędkość - można ją zmienić)<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Reszta instrukcji znajduje się w skrypcie w postaci komentarzy :D]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Ekran pauzy i ekwipunku do gier P&C]]></title>
			<link>https://forum.ultimateam.pl/Thread-XP-Ekran-pauzy-i-ekwipunku-do-gier-P-C</link>
			<pubDate>Mon, 05 Oct 2015 16:20:10 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-XP-Ekran-pauzy-i-ekwipunku-do-gier-P-C</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Ekran pauzy i ekwipunku do gier P&amp;C ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Jest to mała modyfikacja standardowego menu i ekranu ekwipunku.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Helio108<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://i.imgur.com/sP4VS3d.png" border="0" alt="[Obrazek: sP4VS3d.png]" /><br />
<img class="postimage" src="http://i.imgur.com/dqf224m.png" border="0" alt="[Obrazek: dqf224m.png]" /><br />
</div></div>
<a href="http://kgs.esy.es/forum/viewtopic.php?pid=29#p29" target="_blank">TUTAJ ZNAJDZIECIE SKRYPT</a>]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Ekran pauzy i ekwipunku do gier P&amp;C ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Jest to mała modyfikacja standardowego menu i ekranu ekwipunku.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Helio108<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://i.imgur.com/sP4VS3d.png" border="0" alt="[Obrazek: sP4VS3d.png]" /><br />
<img class="postimage" src="http://i.imgur.com/dqf224m.png" border="0" alt="[Obrazek: dqf224m.png]" /><br />
</div></div>
<a href="http://kgs.esy.es/forum/viewtopic.php?pid=29#p29" target="_blank">TUTAJ ZNAJDZIECIE SKRYPT</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Heal On Level Up]]></title>
			<link>https://forum.ultimateam.pl/Thread-XP-Heal-On-Level-Up</link>
			<pubDate>Sat, 18 Apr 2015 13:02:04 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-XP-Heal-On-Level-Up</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Heal On Level Up ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt dodaje to że gdy gracz osiąga nowy level jego hp i sp są wymaxowane.<br />
<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Ccoa<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 />
#Tłumaczenie: skrzydlo<br />
#================================<br />
# ** Heal On Level Up<br />
# By Ccoa<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Po wyższym poziomie całe HP i SP będą zwracane do maximum<br />
# Aby zainstalować go należy dodać nową zakładkę przed Main i wkleić<br />
#skrypt.&nbsp;&nbsp; <br />
#==============================================<br />
 <br />
class Game_Actor &lt; Game_Battler<br />
 alias exp_normal exp<br />
 def exp=(exp)<br />
&nbsp;&nbsp; @exp = [[exp, 9999999].min, 0].max<br />
# Level up<br />
 while @exp &gt;= @exp_list[@level+1] and @exp_list[@level+1] &gt; 0<br />
&nbsp;&nbsp; @level += 1<br />
# Learn skill<br />
for j in &#36;data_classes[@class_id].learnings<br />
&nbsp;&nbsp;if j.level == @level<br />
&nbsp;&nbsp;&nbsp;&nbsp;learn_skill(j.skill_id)<br />
&nbsp;&nbsp;end<br />
end<br />
# heal<br />
@hp = self.maxhp<br />
@sp = self.maxsp<br />
end<br />
# Level down<br />
while @exp &lt; @exp_list[@level]<br />
 @level -= 1<br />
end<br />
# Correction if exceeding current max HP and max SP<br />
@hp = [@hp, self.maxhp].min<br />
@sp = [@sp, self.maxsp].min&nbsp;&nbsp;&nbsp;&nbsp;<br />
 end<br />
end</code></div></div>
</div></div><span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Uwaga nie jestem autorem tego skryptu ja go tylko przetłumaczyłem i dodałem instrukcje (nie trzeba było dużo tłumaczyć (: )<br />
Link do oryginału:<br />
<a href="http://www.gdunlimited.net/scripts/rpg-maker-xp/gameplay-scripts/heal-on-level-up" target="_blank">http://www.gdunlimited.net/scripts/rpg-m...n-level-up</a>]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Heal On Level Up ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt dodaje to że gdy gracz osiąga nowy level jego hp i sp są wymaxowane.<br />
<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Ccoa<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 />
#Tłumaczenie: skrzydlo<br />
#================================<br />
# ** Heal On Level Up<br />
# By Ccoa<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;Po wyższym poziomie całe HP i SP będą zwracane do maximum<br />
# Aby zainstalować go należy dodać nową zakładkę przed Main i wkleić<br />
#skrypt.&nbsp;&nbsp; <br />
#==============================================<br />
 <br />
class Game_Actor &lt; Game_Battler<br />
 alias exp_normal exp<br />
 def exp=(exp)<br />
&nbsp;&nbsp; @exp = [[exp, 9999999].min, 0].max<br />
# Level up<br />
 while @exp &gt;= @exp_list[@level+1] and @exp_list[@level+1] &gt; 0<br />
&nbsp;&nbsp; @level += 1<br />
# Learn skill<br />
for j in &#36;data_classes[@class_id].learnings<br />
&nbsp;&nbsp;if j.level == @level<br />
&nbsp;&nbsp;&nbsp;&nbsp;learn_skill(j.skill_id)<br />
&nbsp;&nbsp;end<br />
end<br />
# heal<br />
@hp = self.maxhp<br />
@sp = self.maxsp<br />
end<br />
# Level down<br />
while @exp &lt; @exp_list[@level]<br />
 @level -= 1<br />
end<br />
# Correction if exceeding current max HP and max SP<br />
@hp = [@hp, self.maxhp].min<br />
@sp = [@sp, self.maxsp].min&nbsp;&nbsp;&nbsp;&nbsp;<br />
 end<br />
end</code></div></div>
</div></div><span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Uwaga nie jestem autorem tego skryptu ja go tylko przetłumaczyłem i dodałem instrukcje (nie trzeba było dużo tłumaczyć (: )<br />
Link do oryginału:<br />
<a href="http://www.gdunlimited.net/scripts/rpg-maker-xp/gameplay-scripts/heal-on-level-up" target="_blank">http://www.gdunlimited.net/scripts/rpg-m...n-level-up</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[AN Equip Script]]></title>
			<link>https://forum.ultimateam.pl/Thread-XP-AN-Equip-Script</link>
			<pubDate>Wed, 11 Mar 2015 10:11:15 +0100</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-XP-AN-Equip-Script</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ AN Equip Script ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Taki prosty skrypt na modyfikacje standardowego menu.<br />
Efekt:<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/uZgDuTA.png" border="0" alt="[Obrazek: uZgDuTA.png]" /></div></div>
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Adrapnikram<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;">#=============================================================<br />
# • AN Equip Script [XP]<br />
#------------------------------------------------------------------------------<br />
# by Adrapnikram<br />
# 1.1<br />
# 15/07/15<br />
#------------------------------------------------------------------------------<br />
=begin<br />
  Version 1.1<br />
   - Fixed problem with disapearing items<br />
   - Script in one window!<br />
=end<br />
#Jesli korzystasz ze starej wersji RPG Makera XP to musisz zamienic wszystkie:<br />
#"&#36;fontface"  na "&#36;defaultfonttype" oraz:<br />
#"&#36;fontsize"  na "&#36;defaultfontsize"<br />
#=============================================================<br />
#==============================================================================<br />
# ■ Window_EquipLeft<br />
#------------------------------------------------------------------------------<br />
# 　装備画面で、アクターのパラメータ変化を表示するウィンドウです。<br />
#==============================================================================<br />
<br />
class Window_EquipLeft &lt; Window_Base<br />
  #--------------------------------------------------------------------------<br />
  # ● オブジェクト初期化<br />
  #     actor : アクター<br />
  #--------------------------------------------------------------------------<br />
  def initialize(actor)<br />
    super(320, 64, 320, 416)<br />
    self.contents = Bitmap.new(width - 32, height - 32)<br />
    self.contents.font.name = &#36;defaultfonttype  # "Equip" left side (Status) window font<br />
    self.contents.font.size = &#36;fontsize<br />
    @actor = actor<br />
    refresh<br />
  end<br />
  #--------------------------------------------------------------------------<br />
  # ● リフレッシュ<br />
    def refresh<br />
    self.contents.clear   <br />
    draw_actor_graphic(@actor, 152, 55) <br />
    draw_actor_name(@actor, 4, 0)<br />
    draw_actor_level(@actor, 4, 32)<br />
    draw_actor_parameter(@actor, 4, 93, 0)<br />
    draw_actor_parameter(@actor, 4, 134, 1)<br />
    draw_actor_parameter(@actor, 4, 175, 2)    <br />
    draw_actor_parameter(@actor, 4, 216, 3)<br />
    draw_actor_parameter(@actor, 4, 257, 4)    <br />
    draw_actor_parameter(@actor, 4, 298, 5)<br />
    draw_actor_parameter(@actor, 4, 340, 6)<br />
    end<br />
<br />
  #--------------------------------------------------------------------------<br />
  #--------------------------------------------------------------------------<br />
  # ● 装備変更後のパラメータ設定9<br />
  #     new_atk  : 装備変更後の攻撃力<br />
  #     new_pdef : 装備変更後の物理防御<br />
  #     new_mdef : 装備変更後の魔法防御<br />
  #--------------------------------------------------------------------------<br />
  def set_new_parameters(new_atk, new_pdef, new_mdef)<br />
    if @new_atk != new_atk or @new_pdef != new_pdef or @new_mdef != new_mdef<br />
      @new_atk = new_atk<br />
      @new_pdef = new_pdef<br />
      @new_mdef = new_mdef<br />
      refresh<br />
    end<br />
  end<br />
end<br />
#==============================================================================<br />
# ■ Window_EquipRight<br />
#------------------------------------------------------------------------------<br />
# 　装備画面で、アクターが現在装備しているアイテムを表示するウィンドウです。<br />
#==============================================================================<br />
<br />
class Window_EquipRight &lt; Window_Selectable<br />
  #--------------------------------------------------------------------------<br />
  # ● オブジェクト初期化<br />
  #     actor : アクター<br />
  #--------------------------------------------------------------------------<br />
  def initialize(actor)<br />
    super(0, 64, 320, 192)<br />
    self.contents = Bitmap.new(width - 32, height - 32)<br />
    self.contents.font.name = &#36;defaultfonttype  # "Equip" right side (Equiped Items) window font<br />
    self.contents.font.size = &#36;fontsize<br />
    @actor = actor<br />
    refresh<br />
    self.index = 0<br />
  end<br />
  #--------------------------------------------------------------------------<br />
  # ● アイテムの取得<br />
  #--------------------------------------------------------------------------<br />
  def item<br />
    return @data[self.index]<br />
  end<br />
  #--------------------------------------------------------------------------<br />
  # ● リフレッシュ<br />
  #--------------------------------------------------------------------------<br />
  def refresh<br />
    self.contents.clear<br />
    @data = []<br />
    @data.push(&#36;data_weapons[@actor.weapon_id])<br />
    @data.push(&#36;data_armors[@actor.armor1_id])<br />
    @data.push(&#36;data_armors[@actor.armor2_id])<br />
    @data.push(&#36;data_armors[@actor.armor3_id])<br />
    @data.push(&#36;data_armors[@actor.armor4_id])<br />
    @item_max = @data.size<br />
    self.contents.font.color = system_color<br />
    self.contents.draw_text(4, 32 * 0, 92, 32, &#36;data_system.words.weapon)<br />
    self.contents.draw_text(4, 32 * 1, 92, 32, &#36;data_system.words.armor1)<br />
    self.contents.draw_text(4, 32 * 2, 92, 32, &#36;data_system.words.armor2)<br />
    self.contents.draw_text(4, 32 * 3, 92, 32, &#36;data_system.words.armor3)<br />
    self.contents.draw_text(5, 32 * 4, 92, 32, &#36;data_system.words.armor4)<br />
    draw_item_name(@data[0], 92, 32 * 0)<br />
    draw_item_name(@data[1], 92, 32 * 1)<br />
    draw_item_name(@data[2], 92, 32 * 2)<br />
    draw_item_name(@data[3], 92, 32 * 3)<br />
    draw_item_name(@data[4], 92, 32 * 4)<br />
  end<br />
  #--------------------------------------------------------------------------<br />
  # ● ヘルプテキスト更新<br />
  #--------------------------------------------------------------------------<br />
  def update_help<br />
    @help_window.set_text(self.item == nil ? "" : self.item.description)<br />
  end<br />
end<br />
#==============================================================================<br />
# ** Window_EquipItem<br />
#------------------------------------------------------------------------------<br />
#  This window displays choices when opting to change equipment on the<br />
#  equipment screen.<br />
#==============================================================================<br />
<br />
class Window_EquipItem &lt; Window_Selectable<br />
  #--------------------------------------------------------------------------<br />
  # * Object Initialization<br />
  #     actor      : actor<br />
  #     equip_type : equip region (0-3)<br />
  #--------------------------------------------------------------------------<br />
  def initialize(actor, equip_type)<br />
    super(0, 256, 320, 224)<br />
    @actor = actor<br />
    @equip_type = equip_type<br />
    @column_max = 1<br />
    refresh<br />
    self.active = false<br />
    self.index = -1<br />
  end<br />
  #--------------------------------------------------------------------------<br />
  # * Item Acquisition<br />
  #--------------------------------------------------------------------------<br />
  def item<br />
    return @data[self.index]<br />
  end<br />
  #--------------------------------------------------------------------------<br />
  # * Refresh<br />
  #--------------------------------------------------------------------------<br />
  def refresh<br />
    if self.contents != nil<br />
      self.contents.dispose<br />
      self.contents = nil<br />
    end<br />
    @data = []<br />
    # Add equippable weapons<br />
    if @equip_type == 0<br />
      weapon_set = &#36;data_classes[@actor.class_id].weapon_set<br />
      for i in 1...&#36;data_weapons.size<br />
        if &#36;game_party.weapon_number(i) &gt; 0 and weapon_set.include?(i)<br />
          @data.push(&#36;data_weapons[i])<br />
        end<br />
      end<br />
    end<br />
    # Add equippable armor<br />
    if @equip_type != 0<br />
      armor_set = &#36;data_classes[@actor.class_id].armor_set<br />
      for i in 1...&#36;data_armors.size<br />
        if &#36;game_party.armor_number(i) &gt; 0 and armor_set.include?(i)<br />
          if &#36;data_armors[i].kind == @equip_type-1<br />
            @data.push(&#36;data_armors[i])<br />
          end<br />
        end<br />
      end<br />
    end<br />
    # Add blank page<br />
    @data.push(nil)<br />
    # Make a bit map and draw all items<br />
    @item_max = @data.size<br />
    self.contents = Bitmap.new(width - 32, row_max * 32)<br />
    for i in 0...@item_max-1<br />
      draw_item(i)<br />
    end<br />
  end<br />
  #--------------------------------------------------------------------------<br />
  # * Draw Item<br />
  #     index : item number<br />
  #--------------------------------------------------------------------------<br />
  def draw_item(index)<br />
    item = @data[index]<br />
    x = 4# + index % 2 * (288 + 32)<br />
    y = index * 32<br />
    case item<br />
    when RPG::Weapon<br />
      number = &#36;game_party.weapon_number(item.id)<br />
    when RPG::Armor<br />
      number = &#36;game_party.armor_number(item.id)<br />
    end<br />
    bitmap = RPG::Cache.icon(item.icon_name)<br />
    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))<br />
    self.contents.font.color = normal_color<br />
    self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)<br />
    self.contents.draw_text(x + 240, y, 16, 32, ":", 1)<br />
    self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)<br />
  end<br />
  #--------------------------------------------------------------------------<br />
  # * Help Text Update<br />
  #--------------------------------------------------------------------------<br />
  def update_help<br />
    @help_window.set_text(self.item == nil ? "" : self.item.description)<br />
  end<br />
end<br />
<br />
#==============================================================================<br />
# ■ Scene_Equip<br />
#------------------------------------------------------------------------------<br />
# 　装備画面の処理を行うクラスです。<br />
#==============================================================================<br />
<br />
class Scene_Equip<br />
  #--------------------------------------------------------------------------<br />
  # ● オブジェクト初期化<br />
  #     actor_index : アクターインデックス<br />
  #     equip_index : 装備インデックス<br />
  #--------------------------------------------------------------------------<br />
  def initialize(actor_index = 0, equip_index = 0)<br />
    @actor_index = actor_index<br />
    @equip_index = equip_index<br />
  end<br />
  #--------------------------------------------------------------------------<br />
  # ● メイン処理<br />
  #--------------------------------------------------------------------------<br />
  def main<br />
    # アクターを取得<br />
    @actor = &#36;game_party.actors[@actor_index]<br />
    # ウィンドウを作成<br />
    @help_window = Window_Help.new<br />
    @left_window = Window_EquipLeft.new(@actor)<br />
    @right_window = Window_EquipRight.new(@actor)<br />
    @item_window1 = Window_EquipItem.new(@actor, 0)<br />
    @item_window2 = Window_EquipItem.new(@actor, 1)<br />
    @item_window3 = Window_EquipItem.new(@actor, 2)<br />
    @item_window4 = Window_EquipItem.new(@actor, 3)<br />
    @item_window5 = Window_EquipItem.new(@actor, 4)<br />
    # ヘルプウィンドウを関連付け<br />
    @right_window.help_window = @help_window<br />
    @item_window1.help_window = @help_window<br />
    @item_window2.help_window = @help_window<br />
    @item_window3.help_window = @help_window<br />
    @item_window4.help_window = @help_window<br />
    @item_window5.help_window = @help_window<br />
    # カーソル位置を設定<br />
    @right_window.index = @equip_index<br />
    refresh<br />
    # トランジション実行<br />
    Graphics.transition<br />
    # メインループ<br />
    loop do<br />
      # ゲーム画面を更新<br />
      Graphics.update<br />
      # 入力情報を更新<br />
      Input.update<br />
      # フレーム更新<br />
      update<br />
      # 画面が切り替わったらループを中断<br />
      if &#36;scene != self<br />
        break<br />
      end<br />
    end<br />
    # トランジション準備<br />
    Graphics.freeze<br />
    # ウィンドウを解放<br />
    @help_window.dispose<br />
    @left_window.dispose<br />
    @right_window.dispose<br />
    @item_window1.dispose<br />
    @item_window2.dispose<br />
    @item_window3.dispose<br />
    @item_window4.dispose<br />
    @item_window5.dispose<br />
  end<br />
  #--------------------------------------------------------------------------<br />
  # ● リフレッシュ<br />
  #--------------------------------------------------------------------------<br />
  def refresh<br />
    # アイテムウィンドウの可視状態設定<br />
    @item_window1.visible = (@right_window.index == 0)<br />
    @item_window2.visible = (@right_window.index == 1)<br />
    @item_window3.visible = (@right_window.index == 2)<br />
    @item_window4.visible = (@right_window.index == 3)<br />
    @item_window5.visible = (@right_window.index == 4)<br />
    # 現在装備中のアイテムを取得<br />
    item1 = @right_window.item<br />
    # 現在のアイテムウィンドウを @item_window に設定<br />
    case @right_window.index<br />
    when 0<br />
      @item_window = @item_window1<br />
    when 1<br />
      @item_window = @item_window2<br />
    when 2<br />
      @item_window = @item_window3<br />
    when 3<br />
      @item_window = @item_window4<br />
    when 4<br />
      @item_window = @item_window5<br />
    end<br />
    # ライトウィンドウがアクティブの場合<br />
    if @right_window.active<br />
      # 装備変更後のパラメータを消去<br />
      @left_window.set_new_parameters(nil, nil, nil)<br />
    end<br />
    # アイテムウィンドウがアクティブの場合<br />
    if @item_window.active<br />
      # 現在選択中のアイテムを取得<br />
      item2 = @item_window.item<br />
      # 装備を変更<br />
      last_hp = @actor.hp<br />
      last_sp = @actor.sp<br />
      @actor.equip(@right_window.index, item2 == nil ? 0 : item2.id)<br />
      # 装備変更後のパラメータを取得<br />
      new_atk = @actor.atk<br />
      new_pdef = @actor.pdef<br />
      new_mdef = @actor.mdef<br />
      # 装備を戻す<br />
      @actor.equip(@right_window.index, item1 == nil ? 0 : item1.id)<br />
      @actor.hp = last_hp<br />
      @actor.sp = last_sp<br />
      # レフトウィンドウに描画<br />
      @left_window.set_new_parameters(new_atk, new_pdef, new_mdef)<br />
    end<br />
  end<br />
  #--------------------------------------------------------------------------<br />
  # ● フレーム更新<br />
  #--------------------------------------------------------------------------<br />
  def update<br />
    # ウィンドウを更新<br />
    @left_window.update<br />
    @right_window.update<br />
    @item_window.update<br />
    refresh<br />
    # ライトウィンドウがアクティブの場合: update_right を呼ぶ<br />
    if @right_window.active<br />
      update_right<br />
      return<br />
    end<br />
    # アイテムウィンドウがアクティブの場合: update_item を呼ぶ<br />
    if @item_window.active<br />
      update_item<br />
      return<br />
    end<br />
  end<br />
  #--------------------------------------------------------------------------<br />
  # ● フレーム更新 (ライトウィンドウがアクティブの場合)<br />
  #--------------------------------------------------------------------------<br />
  def update_right<br />
    # B ボタンが押された場合<br />
    if Input.trigger?(Input::B)<br />
      # キャンセル SE を演奏<br />
      &#36;game_system.se_play(&#36;data_system.cancel_se)<br />
      # メニュー画面に切り替え<br />
      &#36;scene = Scene_Map.new<br />
      return<br />
    end<br />
    # C ボタンが押された場合<br />
    if Input.trigger?(Input::C)<br />
      # 装備固定の場合<br />
      if @actor.equip_fix?(@right_window.index)<br />
        # ブザー SE を演奏<br />
        &#36;game_system.se_play(&#36;data_system.buzzer_se)<br />
        return<br />
      end<br />
      # 決定 SE を演奏<br />
      &#36;game_system.se_play(&#36;data_system.decision_se)<br />
      # アイテムウィンドウをアクティブ化<br />
      @right_window.active = false<br />
      @item_window.active = true<br />
      @item_window.index = 0<br />
      return<br />
    end<br />
    # R ボタンが押された場合<br />
    if Input.trigger?(Input::R)<br />
      # カーソル SE を演奏<br />
      &#36;game_system.se_play(&#36;data_system.cursor_se)<br />
      # 次のアクターへ<br />
      @actor_index += 1<br />
      @actor_index %= &#36;game_party.actors.size<br />
      # 別の装備画面に切り替え<br />
      &#36;scene = Scene_Equip.new(@actor_index, @right_window.index)<br />
      return<br />
    end<br />
    # L ボタンが押された場合<br />
    if Input.trigger?(Input::L)<br />
      # カーソル SE を演奏<br />
      &#36;game_system.se_play(&#36;data_system.cursor_se)<br />
      # 前のアクターへ<br />
      @actor_index += &#36;game_party.actors.size - 1<br />
      @actor_index %= &#36;game_party.actors.size<br />
      # 別の装備画面に切り替え<br />
      &#36;scene = Scene_Equip.new(@actor_index, @right_window.index)<br />
      return<br />
    end<br />
  end<br />
  #--------------------------------------------------------------------------<br />
  # ● フレーム更新 (アイテムウィンドウがアクティブの場合)<br />
  #--------------------------------------------------------------------------<br />
  def update_item<br />
    # B ボタンが押された場合<br />
    if Input.trigger?(Input::B)<br />
      # キャンセル SE を演奏<br />
      &#36;game_system.se_play(&#36;data_system.cancel_se)<br />
      # ライトウィンドウをアクティブ化<br />
      @right_window.active = true<br />
      @item_window.active = false<br />
      @item_window.index = -1<br />
      return<br />
    end<br />
    # C ボタンが押された場合<br />
    if Input.trigger?(Input::C)<br />
      # 装備 SE を演奏<br />
      &#36;game_system.se_play(&#36;data_system.equip_se)<br />
      # アイテムウィンドウで現在選択されているデータを取得<br />
      item = @item_window.item<br />
      # 装備を変更<br />
      @actor.equip(@right_window.index, item == nil ? 0 : item.id)<br />
      # ライトウィンドウをアクティブ化<br />
      @right_window.active = true<br />
      @item_window.active = false<br />
      @item_window.index = -1<br />
      # ライトウィンドウ、アイテムウィンドウの内容を再作成<br />
      @right_window.refresh<br />
      @item_window.refresh<br />
      return<br />
    end<br />
  end<br />
end</div></div>
<span style="color: red;"><span style="font-weight: bold;">Instrukcja:</span></span><br />
Włącz RPG Maker XP, Kliknij F11, pod zakładką main stwórz nową, skopiuj kod.<br />
Ta da!<br />
Jakby coś komuś nie działało instrukcja w skrypcie na początku]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ AN Equip Script ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Taki prosty skrypt na modyfikacje standardowego menu.<br />
Efekt:<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/uZgDuTA.png" border="0" alt="[Obrazek: uZgDuTA.png]" /></div></div>
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Adrapnikram<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;">#=============================================================<br />
# • AN Equip Script [XP]<br />
#------------------------------------------------------------------------------<br />
# by Adrapnikram<br />
# 1.1<br />
# 15/07/15<br />
#------------------------------------------------------------------------------<br />
=begin<br />
  Version 1.1<br />
   - Fixed problem with disapearing items<br />
   - Script in one window!<br />
=end<br />
#Jesli korzystasz ze starej wersji RPG Makera XP to musisz zamienic wszystkie:<br />
#"&#36;fontface"  na "&#36;defaultfonttype" oraz:<br />
#"&#36;fontsize"  na "&#36;defaultfontsize"<br />
#=============================================================<br />
#==============================================================================<br />
# ■ Window_EquipLeft<br />
#------------------------------------------------------------------------------<br />
# 　装備画面で、アクターのパラメータ変化を表示するウィンドウです。<br />
#==============================================================================<br />
<br />
class Window_EquipLeft &lt; Window_Base<br />
  #--------------------------------------------------------------------------<br />
  # ● オブジェクト初期化<br />
  #     actor : アクター<br />
  #--------------------------------------------------------------------------<br />
  def initialize(actor)<br />
    super(320, 64, 320, 416)<br />
    self.contents = Bitmap.new(width - 32, height - 32)<br />
    self.contents.font.name = &#36;defaultfonttype  # "Equip" left side (Status) window font<br />
    self.contents.font.size = &#36;fontsize<br />
    @actor = actor<br />
    refresh<br />
  end<br />
  #--------------------------------------------------------------------------<br />
  # ● リフレッシュ<br />
    def refresh<br />
    self.contents.clear   <br />
    draw_actor_graphic(@actor, 152, 55) <br />
    draw_actor_name(@actor, 4, 0)<br />
    draw_actor_level(@actor, 4, 32)<br />
    draw_actor_parameter(@actor, 4, 93, 0)<br />
    draw_actor_parameter(@actor, 4, 134, 1)<br />
    draw_actor_parameter(@actor, 4, 175, 2)    <br />
    draw_actor_parameter(@actor, 4, 216, 3)<br />
    draw_actor_parameter(@actor, 4, 257, 4)    <br />
    draw_actor_parameter(@actor, 4, 298, 5)<br />
    draw_actor_parameter(@actor, 4, 340, 6)<br />
    end<br />
<br />
  #--------------------------------------------------------------------------<br />
  #--------------------------------------------------------------------------<br />
  # ● 装備変更後のパラメータ設定9<br />
  #     new_atk  : 装備変更後の攻撃力<br />
  #     new_pdef : 装備変更後の物理防御<br />
  #     new_mdef : 装備変更後の魔法防御<br />
  #--------------------------------------------------------------------------<br />
  def set_new_parameters(new_atk, new_pdef, new_mdef)<br />
    if @new_atk != new_atk or @new_pdef != new_pdef or @new_mdef != new_mdef<br />
      @new_atk = new_atk<br />
      @new_pdef = new_pdef<br />
      @new_mdef = new_mdef<br />
      refresh<br />
    end<br />
  end<br />
end<br />
#==============================================================================<br />
# ■ Window_EquipRight<br />
#------------------------------------------------------------------------------<br />
# 　装備画面で、アクターが現在装備しているアイテムを表示するウィンドウです。<br />
#==============================================================================<br />
<br />
class Window_EquipRight &lt; Window_Selectable<br />
  #--------------------------------------------------------------------------<br />
  # ● オブジェクト初期化<br />
  #     actor : アクター<br />
  #--------------------------------------------------------------------------<br />
  def initialize(actor)<br />
    super(0, 64, 320, 192)<br />
    self.contents = Bitmap.new(width - 32, height - 32)<br />
    self.contents.font.name = &#36;defaultfonttype  # "Equip" right side (Equiped Items) window font<br />
    self.contents.font.size = &#36;fontsize<br />
    @actor = actor<br />
    refresh<br />
    self.index = 0<br />
  end<br />
  #--------------------------------------------------------------------------<br />
  # ● アイテムの取得<br />
  #--------------------------------------------------------------------------<br />
  def item<br />
    return @data[self.index]<br />
  end<br />
  #--------------------------------------------------------------------------<br />
  # ● リフレッシュ<br />
  #--------------------------------------------------------------------------<br />
  def refresh<br />
    self.contents.clear<br />
    @data = []<br />
    @data.push(&#36;data_weapons[@actor.weapon_id])<br />
    @data.push(&#36;data_armors[@actor.armor1_id])<br />
    @data.push(&#36;data_armors[@actor.armor2_id])<br />
    @data.push(&#36;data_armors[@actor.armor3_id])<br />
    @data.push(&#36;data_armors[@actor.armor4_id])<br />
    @item_max = @data.size<br />
    self.contents.font.color = system_color<br />
    self.contents.draw_text(4, 32 * 0, 92, 32, &#36;data_system.words.weapon)<br />
    self.contents.draw_text(4, 32 * 1, 92, 32, &#36;data_system.words.armor1)<br />
    self.contents.draw_text(4, 32 * 2, 92, 32, &#36;data_system.words.armor2)<br />
    self.contents.draw_text(4, 32 * 3, 92, 32, &#36;data_system.words.armor3)<br />
    self.contents.draw_text(5, 32 * 4, 92, 32, &#36;data_system.words.armor4)<br />
    draw_item_name(@data[0], 92, 32 * 0)<br />
    draw_item_name(@data[1], 92, 32 * 1)<br />
    draw_item_name(@data[2], 92, 32 * 2)<br />
    draw_item_name(@data[3], 92, 32 * 3)<br />
    draw_item_name(@data[4], 92, 32 * 4)<br />
  end<br />
  #--------------------------------------------------------------------------<br />
  # ● ヘルプテキスト更新<br />
  #--------------------------------------------------------------------------<br />
  def update_help<br />
    @help_window.set_text(self.item == nil ? "" : self.item.description)<br />
  end<br />
end<br />
#==============================================================================<br />
# ** Window_EquipItem<br />
#------------------------------------------------------------------------------<br />
#  This window displays choices when opting to change equipment on the<br />
#  equipment screen.<br />
#==============================================================================<br />
<br />
class Window_EquipItem &lt; Window_Selectable<br />
  #--------------------------------------------------------------------------<br />
  # * Object Initialization<br />
  #     actor      : actor<br />
  #     equip_type : equip region (0-3)<br />
  #--------------------------------------------------------------------------<br />
  def initialize(actor, equip_type)<br />
    super(0, 256, 320, 224)<br />
    @actor = actor<br />
    @equip_type = equip_type<br />
    @column_max = 1<br />
    refresh<br />
    self.active = false<br />
    self.index = -1<br />
  end<br />
  #--------------------------------------------------------------------------<br />
  # * Item Acquisition<br />
  #--------------------------------------------------------------------------<br />
  def item<br />
    return @data[self.index]<br />
  end<br />
  #--------------------------------------------------------------------------<br />
  # * Refresh<br />
  #--------------------------------------------------------------------------<br />
  def refresh<br />
    if self.contents != nil<br />
      self.contents.dispose<br />
      self.contents = nil<br />
    end<br />
    @data = []<br />
    # Add equippable weapons<br />
    if @equip_type == 0<br />
      weapon_set = &#36;data_classes[@actor.class_id].weapon_set<br />
      for i in 1...&#36;data_weapons.size<br />
        if &#36;game_party.weapon_number(i) &gt; 0 and weapon_set.include?(i)<br />
          @data.push(&#36;data_weapons[i])<br />
        end<br />
      end<br />
    end<br />
    # Add equippable armor<br />
    if @equip_type != 0<br />
      armor_set = &#36;data_classes[@actor.class_id].armor_set<br />
      for i in 1...&#36;data_armors.size<br />
        if &#36;game_party.armor_number(i) &gt; 0 and armor_set.include?(i)<br />
          if &#36;data_armors[i].kind == @equip_type-1<br />
            @data.push(&#36;data_armors[i])<br />
          end<br />
        end<br />
      end<br />
    end<br />
    # Add blank page<br />
    @data.push(nil)<br />
    # Make a bit map and draw all items<br />
    @item_max = @data.size<br />
    self.contents = Bitmap.new(width - 32, row_max * 32)<br />
    for i in 0...@item_max-1<br />
      draw_item(i)<br />
    end<br />
  end<br />
  #--------------------------------------------------------------------------<br />
  # * Draw Item<br />
  #     index : item number<br />
  #--------------------------------------------------------------------------<br />
  def draw_item(index)<br />
    item = @data[index]<br />
    x = 4# + index % 2 * (288 + 32)<br />
    y = index * 32<br />
    case item<br />
    when RPG::Weapon<br />
      number = &#36;game_party.weapon_number(item.id)<br />
    when RPG::Armor<br />
      number = &#36;game_party.armor_number(item.id)<br />
    end<br />
    bitmap = RPG::Cache.icon(item.icon_name)<br />
    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))<br />
    self.contents.font.color = normal_color<br />
    self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)<br />
    self.contents.draw_text(x + 240, y, 16, 32, ":", 1)<br />
    self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)<br />
  end<br />
  #--------------------------------------------------------------------------<br />
  # * Help Text Update<br />
  #--------------------------------------------------------------------------<br />
  def update_help<br />
    @help_window.set_text(self.item == nil ? "" : self.item.description)<br />
  end<br />
end<br />
<br />
#==============================================================================<br />
# ■ Scene_Equip<br />
#------------------------------------------------------------------------------<br />
# 　装備画面の処理を行うクラスです。<br />
#==============================================================================<br />
<br />
class Scene_Equip<br />
  #--------------------------------------------------------------------------<br />
  # ● オブジェクト初期化<br />
  #     actor_index : アクターインデックス<br />
  #     equip_index : 装備インデックス<br />
  #--------------------------------------------------------------------------<br />
  def initialize(actor_index = 0, equip_index = 0)<br />
    @actor_index = actor_index<br />
    @equip_index = equip_index<br />
  end<br />
  #--------------------------------------------------------------------------<br />
  # ● メイン処理<br />
  #--------------------------------------------------------------------------<br />
  def main<br />
    # アクターを取得<br />
    @actor = &#36;game_party.actors[@actor_index]<br />
    # ウィンドウを作成<br />
    @help_window = Window_Help.new<br />
    @left_window = Window_EquipLeft.new(@actor)<br />
    @right_window = Window_EquipRight.new(@actor)<br />
    @item_window1 = Window_EquipItem.new(@actor, 0)<br />
    @item_window2 = Window_EquipItem.new(@actor, 1)<br />
    @item_window3 = Window_EquipItem.new(@actor, 2)<br />
    @item_window4 = Window_EquipItem.new(@actor, 3)<br />
    @item_window5 = Window_EquipItem.new(@actor, 4)<br />
    # ヘルプウィンドウを関連付け<br />
    @right_window.help_window = @help_window<br />
    @item_window1.help_window = @help_window<br />
    @item_window2.help_window = @help_window<br />
    @item_window3.help_window = @help_window<br />
    @item_window4.help_window = @help_window<br />
    @item_window5.help_window = @help_window<br />
    # カーソル位置を設定<br />
    @right_window.index = @equip_index<br />
    refresh<br />
    # トランジション実行<br />
    Graphics.transition<br />
    # メインループ<br />
    loop do<br />
      # ゲーム画面を更新<br />
      Graphics.update<br />
      # 入力情報を更新<br />
      Input.update<br />
      # フレーム更新<br />
      update<br />
      # 画面が切り替わったらループを中断<br />
      if &#36;scene != self<br />
        break<br />
      end<br />
    end<br />
    # トランジション準備<br />
    Graphics.freeze<br />
    # ウィンドウを解放<br />
    @help_window.dispose<br />
    @left_window.dispose<br />
    @right_window.dispose<br />
    @item_window1.dispose<br />
    @item_window2.dispose<br />
    @item_window3.dispose<br />
    @item_window4.dispose<br />
    @item_window5.dispose<br />
  end<br />
  #--------------------------------------------------------------------------<br />
  # ● リフレッシュ<br />
  #--------------------------------------------------------------------------<br />
  def refresh<br />
    # アイテムウィンドウの可視状態設定<br />
    @item_window1.visible = (@right_window.index == 0)<br />
    @item_window2.visible = (@right_window.index == 1)<br />
    @item_window3.visible = (@right_window.index == 2)<br />
    @item_window4.visible = (@right_window.index == 3)<br />
    @item_window5.visible = (@right_window.index == 4)<br />
    # 現在装備中のアイテムを取得<br />
    item1 = @right_window.item<br />
    # 現在のアイテムウィンドウを @item_window に設定<br />
    case @right_window.index<br />
    when 0<br />
      @item_window = @item_window1<br />
    when 1<br />
      @item_window = @item_window2<br />
    when 2<br />
      @item_window = @item_window3<br />
    when 3<br />
      @item_window = @item_window4<br />
    when 4<br />
      @item_window = @item_window5<br />
    end<br />
    # ライトウィンドウがアクティブの場合<br />
    if @right_window.active<br />
      # 装備変更後のパラメータを消去<br />
      @left_window.set_new_parameters(nil, nil, nil)<br />
    end<br />
    # アイテムウィンドウがアクティブの場合<br />
    if @item_window.active<br />
      # 現在選択中のアイテムを取得<br />
      item2 = @item_window.item<br />
      # 装備を変更<br />
      last_hp = @actor.hp<br />
      last_sp = @actor.sp<br />
      @actor.equip(@right_window.index, item2 == nil ? 0 : item2.id)<br />
      # 装備変更後のパラメータを取得<br />
      new_atk = @actor.atk<br />
      new_pdef = @actor.pdef<br />
      new_mdef = @actor.mdef<br />
      # 装備を戻す<br />
      @actor.equip(@right_window.index, item1 == nil ? 0 : item1.id)<br />
      @actor.hp = last_hp<br />
      @actor.sp = last_sp<br />
      # レフトウィンドウに描画<br />
      @left_window.set_new_parameters(new_atk, new_pdef, new_mdef)<br />
    end<br />
  end<br />
  #--------------------------------------------------------------------------<br />
  # ● フレーム更新<br />
  #--------------------------------------------------------------------------<br />
  def update<br />
    # ウィンドウを更新<br />
    @left_window.update<br />
    @right_window.update<br />
    @item_window.update<br />
    refresh<br />
    # ライトウィンドウがアクティブの場合: update_right を呼ぶ<br />
    if @right_window.active<br />
      update_right<br />
      return<br />
    end<br />
    # アイテムウィンドウがアクティブの場合: update_item を呼ぶ<br />
    if @item_window.active<br />
      update_item<br />
      return<br />
    end<br />
  end<br />
  #--------------------------------------------------------------------------<br />
  # ● フレーム更新 (ライトウィンドウがアクティブの場合)<br />
  #--------------------------------------------------------------------------<br />
  def update_right<br />
    # B ボタンが押された場合<br />
    if Input.trigger?(Input::B)<br />
      # キャンセル SE を演奏<br />
      &#36;game_system.se_play(&#36;data_system.cancel_se)<br />
      # メニュー画面に切り替え<br />
      &#36;scene = Scene_Map.new<br />
      return<br />
    end<br />
    # C ボタンが押された場合<br />
    if Input.trigger?(Input::C)<br />
      # 装備固定の場合<br />
      if @actor.equip_fix?(@right_window.index)<br />
        # ブザー SE を演奏<br />
        &#36;game_system.se_play(&#36;data_system.buzzer_se)<br />
        return<br />
      end<br />
      # 決定 SE を演奏<br />
      &#36;game_system.se_play(&#36;data_system.decision_se)<br />
      # アイテムウィンドウをアクティブ化<br />
      @right_window.active = false<br />
      @item_window.active = true<br />
      @item_window.index = 0<br />
      return<br />
    end<br />
    # R ボタンが押された場合<br />
    if Input.trigger?(Input::R)<br />
      # カーソル SE を演奏<br />
      &#36;game_system.se_play(&#36;data_system.cursor_se)<br />
      # 次のアクターへ<br />
      @actor_index += 1<br />
      @actor_index %= &#36;game_party.actors.size<br />
      # 別の装備画面に切り替え<br />
      &#36;scene = Scene_Equip.new(@actor_index, @right_window.index)<br />
      return<br />
    end<br />
    # L ボタンが押された場合<br />
    if Input.trigger?(Input::L)<br />
      # カーソル SE を演奏<br />
      &#36;game_system.se_play(&#36;data_system.cursor_se)<br />
      # 前のアクターへ<br />
      @actor_index += &#36;game_party.actors.size - 1<br />
      @actor_index %= &#36;game_party.actors.size<br />
      # 別の装備画面に切り替え<br />
      &#36;scene = Scene_Equip.new(@actor_index, @right_window.index)<br />
      return<br />
    end<br />
  end<br />
  #--------------------------------------------------------------------------<br />
  # ● フレーム更新 (アイテムウィンドウがアクティブの場合)<br />
  #--------------------------------------------------------------------------<br />
  def update_item<br />
    # B ボタンが押された場合<br />
    if Input.trigger?(Input::B)<br />
      # キャンセル SE を演奏<br />
      &#36;game_system.se_play(&#36;data_system.cancel_se)<br />
      # ライトウィンドウをアクティブ化<br />
      @right_window.active = true<br />
      @item_window.active = false<br />
      @item_window.index = -1<br />
      return<br />
    end<br />
    # C ボタンが押された場合<br />
    if Input.trigger?(Input::C)<br />
      # 装備 SE を演奏<br />
      &#36;game_system.se_play(&#36;data_system.equip_se)<br />
      # アイテムウィンドウで現在選択されているデータを取得<br />
      item = @item_window.item<br />
      # 装備を変更<br />
      @actor.equip(@right_window.index, item == nil ? 0 : item.id)<br />
      # ライトウィンドウをアクティブ化<br />
      @right_window.active = true<br />
      @item_window.active = false<br />
      @item_window.index = -1<br />
      # ライトウィンドウ、アイテムウィンドウの内容を再作成<br />
      @right_window.refresh<br />
      @item_window.refresh<br />
      return<br />
    end<br />
  end<br />
end</div></div>
<span style="color: red;"><span style="font-weight: bold;">Instrukcja:</span></span><br />
Włącz RPG Maker XP, Kliknij F11, pod zakładką main stwórz nową, skopiuj kod.<br />
Ta da!<br />
Jakby coś komuś nie działało instrukcja w skrypcie na początku]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Auto-Walka]]></title>
			<link>https://forum.ultimateam.pl/Thread-XP-Auto-Walka</link>
			<pubDate>Sat, 14 Feb 2015 18:29:03 +0100</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-XP-Auto-Walka</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Auto-Walka ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt mojego autorstwa umożliwiający rozegranie całej walki w trybie automatycznym - postacie używają zwykłego ataku.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
RzeczkaRze<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 />
# ** Window_PartyCommand<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;This window is used to select whether to fight or escape on the battle<br />
#&nbsp;&nbsp;screen.<br />
#==============================================================================<br />
<br />
class Window_PartyCommand &lt; Window_Selectable<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Object Initialization<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp;super(0, 0, 640, 64)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width - 32, height - 32)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.back_opacity = 160<br />
&nbsp;&nbsp;&nbsp;&nbsp;@commands = ["Walka", "Auto-Walka", "Ucieczka"]<br />
&nbsp;&nbsp;&nbsp;&nbsp;@item_max = 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;@column_max = 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_item(0, normal_color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_item(1, normal_color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_item(2, &#36;game_temp.battle_can_escape ? normal_color : disabled_color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.active = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.visible = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.index = 0<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Draw Item<br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; index : item number<br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; color : text character color<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_item(index, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = color<br />
&nbsp;&nbsp;&nbsp;&nbsp;rect = Rect.new(80 + index * 160 + 4, 0, 128 - 10, 32)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(rect, @commands[index], 1)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Cursor Rectangle Update<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update_cursor_rect<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.cursor_rect.set(80 + index * 160, 0, 128, 32)<br />
&nbsp;&nbsp;end<br />
end<br />
#==============================================================================<br />
# ** Scene_Battle (part 1)<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;This class performs battle screen processing.<br />
#==============================================================================<br />
class Scene_Battle<br />
&nbsp;&nbsp;@autobattle = false<br />
&nbsp;&nbsp;def update_phase2<br />
&nbsp;&nbsp;&nbsp;&nbsp;if @autobattle == true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start_autobattle<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;# If C button was pressed<br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::C)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Branch by party command window cursor position<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case @party_command_window.index<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 0&nbsp;&nbsp;# fight<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@autobattle = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Play decision SE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Start actor command phase<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start_phase3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; when 1&nbsp;&nbsp;# auto-battle<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @autobattle = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; start_autobattle<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 2&nbsp;&nbsp;# escape<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@autobattle = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# If it's not possible to escape<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.battle_can_escape == false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Play buzzer SE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.buzzer_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Play decision SE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Escape processing<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_phase2_escape<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
&nbsp;&nbsp;def start_autobattle<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Play decision SE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Start actor command phase<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start_phase3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i in 1..&#36;game_party.actors.size<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Set action<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@active_battler.current_action.kind = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@active_battler.current_action.basic = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Start enemy selection<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start_enemy_select<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Set action<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @active_battler.current_action.target_index = @enemy_arrow.index<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # End enemy selection<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end_enemy_select<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; phase3_next_actor<br />
&nbsp;&nbsp;&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;">~ Auto-Walka ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt mojego autorstwa umożliwiający rozegranie całej walki w trybie automatycznym - postacie używają zwykłego ataku.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
RzeczkaRze<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 />
# ** Window_PartyCommand<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;This window is used to select whether to fight or escape on the battle<br />
#&nbsp;&nbsp;screen.<br />
#==============================================================================<br />
<br />
class Window_PartyCommand &lt; Window_Selectable<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Object Initialization<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp;super(0, 0, 640, 64)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width - 32, height - 32)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.back_opacity = 160<br />
&nbsp;&nbsp;&nbsp;&nbsp;@commands = ["Walka", "Auto-Walka", "Ucieczka"]<br />
&nbsp;&nbsp;&nbsp;&nbsp;@item_max = 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;@column_max = 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_item(0, normal_color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_item(1, normal_color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_item(2, &#36;game_temp.battle_can_escape ? normal_color : disabled_color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.active = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.visible = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.index = 0<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Draw Item<br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; index : item number<br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; color : text character color<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_item(index, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = color<br />
&nbsp;&nbsp;&nbsp;&nbsp;rect = Rect.new(80 + index * 160 + 4, 0, 128 - 10, 32)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(rect, @commands[index], 1)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Cursor Rectangle Update<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update_cursor_rect<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.cursor_rect.set(80 + index * 160, 0, 128, 32)<br />
&nbsp;&nbsp;end<br />
end<br />
#==============================================================================<br />
# ** Scene_Battle (part 1)<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;This class performs battle screen processing.<br />
#==============================================================================<br />
class Scene_Battle<br />
&nbsp;&nbsp;@autobattle = false<br />
&nbsp;&nbsp;def update_phase2<br />
&nbsp;&nbsp;&nbsp;&nbsp;if @autobattle == true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start_autobattle<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;# If C button was pressed<br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::C)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Branch by party command window cursor position<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case @party_command_window.index<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 0&nbsp;&nbsp;# fight<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@autobattle = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Play decision SE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Start actor command phase<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start_phase3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; when 1&nbsp;&nbsp;# auto-battle<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @autobattle = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; start_autobattle<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 2&nbsp;&nbsp;# escape<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@autobattle = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# If it's not possible to escape<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.battle_can_escape == false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Play buzzer SE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.buzzer_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Play decision SE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Escape processing<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_phase2_escape<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
&nbsp;&nbsp;def start_autobattle<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Play decision SE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Start actor command phase<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start_phase3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i in 1..&#36;game_party.actors.size<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Set action<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@active_battler.current_action.kind = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@active_battler.current_action.basic = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Start enemy selection<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start_enemy_select<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Set action<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @active_battler.current_action.target_index = @enemy_arrow.index<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # End enemy selection<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end_enemy_select<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; phase3_next_actor<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
end</code></div></div>
</div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[RTH ABS + maksmmilian HUD]]></title>
			<link>https://forum.ultimateam.pl/Thread-XP-RTH-ABS-maksmmilian-HUD</link>
			<pubDate>Tue, 03 Feb 2015 14:30:43 +0100</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-XP-RTH-ABS-maksmmilian-HUD</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ RTH ABS 2.6 + maksmmilian HUD ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Witam! <br />
Przed wami ABS stworzony przez RTH i mój HUD który zrobiłem do poprzedniego projektu, HUD ma dynamiczne paski HP/MP/EXP i umożliwia tak samo jak oryginalny tylko 3 hotkeye ;P <br />
<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
RTH, maksmmilian, Ayene<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
N/A<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>N/A</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://s2.ifotos.pl/img/hudpng_wxxahre.png" border="0" alt="[Obrazek: hudpng_wxxahre.png]" /><br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Demo:</span></span><br />
<a href="http://www17.zippyshare.com/v/9Vpfu8Cr/file.html" 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 />
CREDITSY dla mnie za graficzki huda i skrypt, ayene za pomoc w skrypcie oraz RTH za bs'a :)]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ RTH ABS 2.6 + maksmmilian HUD ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Witam! <br />
Przed wami ABS stworzony przez RTH i mój HUD który zrobiłem do poprzedniego projektu, HUD ma dynamiczne paski HP/MP/EXP i umożliwia tak samo jak oryginalny tylko 3 hotkeye ;P <br />
<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
RTH, maksmmilian, Ayene<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
N/A<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>N/A</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://s2.ifotos.pl/img/hudpng_wxxahre.png" border="0" alt="[Obrazek: hudpng_wxxahre.png]" /><br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Demo:</span></span><br />
<a href="http://www17.zippyshare.com/v/9Vpfu8Cr/file.html" 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 />
CREDITSY dla mnie za graficzki huda i skrypt, ayene za pomoc w skrypcie oraz RTH za bs'a :)]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[System walki]]></title>
			<link>https://forum.ultimateam.pl/Thread-XP-System-walki</link>
			<pubDate>Fri, 23 Jan 2015 21:13:37 +0100</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-XP-System-walki</guid>
			<description><![CDATA[Potrzebuje skryptu na system walki, dobrze jak by był pozbawiony błędów.]]></description>
			<content:encoded><![CDATA[Potrzebuje skryptu na system walki, dobrze jak by był pozbawiony błędów.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Czcionka z RM2k]]></title>
			<link>https://forum.ultimateam.pl/Thread-XP-Czcionka-z-RM2k</link>
			<pubDate>Sun, 04 Jan 2015 00:41:39 +0100</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-XP-Czcionka-z-RM2k</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ RM2k Font in RMXP ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt wyświetla napisy w grze w stylu z RMk2. <br />
Walorem skryptu jest brak dodatkowych grafik i czcionek. <br />
Minusem z kolei jest brak możliwości zmiany wielkości czcionki i stylu (kursywa, pogrubienie).<br />
<br />
Nie dodałam wszystkich znaków specjalnych, więc w razie czego piszcie w tym temacie. Uzupełnię braki. <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 />
# RM2k Font in RMXP by Ayene<br />
# forum.ultimateam.pl<br />
#==============================================================================<br />
# Aby czcionka była wyświetlana poprawnie w oknie wiadomości, <br />
# należy wejść w skrypt "Window_Message" i linijkę (ok. 146):<br />
#&nbsp;&nbsp;&nbsp;&nbsp;x += self.contents.text_size(c).width<br />
# zamienić na:<br />
#&nbsp;&nbsp;&nbsp;&nbsp;x += self.contents.letter_width<br />
#<br />
# Warto również pomyśleć nad zwiększeniem okna wiadomości. <br />
# Należy wówczas zmienić parametry:<br />
#&nbsp;&nbsp;&nbsp;&nbsp;super(80, 304, 480, 160)<br />
# np. na:<br />
#&nbsp;&nbsp;&nbsp;&nbsp;super(30, 304, 580, 160)<br />
#==============================================================================<br />
<br />
class Bitmap&nbsp;&nbsp; <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Letter Width<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def letter_width<br />
&nbsp;&nbsp;&nbsp;&nbsp;return 12<br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Draw Text <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_text(*args)&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_bitmap_text(*args)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;end&nbsp;&nbsp; <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Draw Bitmap Text<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_bitmap_text(*args)<br />
&nbsp;&nbsp;&nbsp;&nbsp;color = font.color.dup<br />
&nbsp;&nbsp;&nbsp;&nbsp;if args[0].is_a?(Rect)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x, y, width, height = args[0].x, args[0].y, args[0].width, args[0].height<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text = args[1]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;align = args[2] == nil ? 0 : args[2]<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x, y, width, height, text = args<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;align = args[5] == nil ? 0 : args[5]<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;text = sprintf(text)&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;input_string = []<br />
&nbsp;&nbsp;&nbsp;&nbsp;text.size.times do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c = text.slice!(/./m)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input_string.push(c)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;size = input_string.size * letter_width<br />
&nbsp;&nbsp;&nbsp;&nbsp;case align<br />
&nbsp;&nbsp;&nbsp;&nbsp;when 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = x + (width - size) / 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;when 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = x + width - size<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;black = Color.new(0, 0, 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;for letter in input_string <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print_letter(letter, x + 2, y + 2, black)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print_letter(letter, x, y, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x += letter_width&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Print Letter<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def print_letter(input, x, y, color)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;case input<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "A"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 16, 2, 8, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 10, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 18, 2, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 6, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 18, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 18, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 10, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 16, 2, 8, color)&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "Ą"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 16, 2, 8, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 10, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 18, 2, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 6, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 18, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 18, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 10, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 16, 2, 8, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 24, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 26, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "B"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 8, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 16, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "C"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 14, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 8, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 18, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "Ć"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 14, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 8, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 18, 2, 4, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 4, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 2, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "D"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 4, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 8, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 20, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 10, 2, 10, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "E"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 8, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 8, 2, color)&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "Ę"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 8, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 8, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 24, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 26, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "F"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 8, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "G"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 14, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 4, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 8, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 16, 4, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 18, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 20, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "H"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 6, 2, 18, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "I"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 8, 2, 14, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "J"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 18, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 4, 2, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 6, 2, 16, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "K"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 10, 2, 4, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 16, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 6, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 20, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "L"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 8, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "Ł"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 8, 2, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 12, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "M"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 10, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 16, 2, 8, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 10, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 6, 2, 18, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "N"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 8, 2, 4, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 12, 2, 6, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 18, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 6, 2, 18, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "Ń"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 8, 2, 4, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 12, 2, 6, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 18, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 6, 2, 18, color)&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 4, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 2, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "O"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 14, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 8, 2, 14, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "Ó"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 14, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 8, 2, 14, color)&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 4, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 2, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "P"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 8, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "Q"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 14, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 4, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 8, 2, 14, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 18, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 20, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 22, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "R"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 8, 2, 6, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 16, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 18, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "S"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 4, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 18, 2, 4, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 6, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 16, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 8, 2, 4, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 18, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "Ś"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 4, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 18, 2, 4, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 6, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 16, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 8, 2, 4, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 18, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 4, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 2, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "T"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 10, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 8, 2, 16, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "U"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 16, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 6, 2, 16, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "V"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 6, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 18, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 12, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 6, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "W"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 10, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 2, 8, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 6, 2, 10, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 16, 2, 8, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 6, 2, 10, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "X"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 20, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 10, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 10, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 16, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 6, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 20, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "Y"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 10, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 14, 2, 10, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 10, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 6, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "Z"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 10, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 8, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 10, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 20, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 22, 10, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "Ź"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 10, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 8, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 10, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 20, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 22, 10, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 4, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 2, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "Ż"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 10, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 8, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 10, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 20, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 22, 10, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 2, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "a"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 14, 2, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 18, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 4, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 14, 2, 8, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 22, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "ą"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 14, 2, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 18, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 4, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 14, 2, 8, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 22, 2, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 24, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 26, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "b"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 8, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "c"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 14, 2, 8, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 20, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "ć"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 14, 2, 8, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 20, 2, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 8, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 6, 2, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "d"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 14, 2, 8, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 6, 2, 18, color)&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "e"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 14, 2, 8, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 20, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 8, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "ę"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 14, 2, 8, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 20, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 8, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 24, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 26, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "f"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 12, 2, 2, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 8, 2, 16, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 6, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 12, 2, 2, color)&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "g"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 14, 2, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 18, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 22, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 20, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 24, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 12, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 22, 2, 2, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "h"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 10, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "i"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 6, 2, 4, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 12, 2, 12, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "j"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 6, 2, 4, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 12, 2, 12, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x , y + 24, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "k"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 18, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 16, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 12, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 20, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 22, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "l"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "ł"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 6, 2, 18, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 12, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "m"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 12, 2, 12, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 14, 2, 10, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 12, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 10, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "n"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 12, 2, 12, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 10, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "ń"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 12, 2, 12, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 10, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 8, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 6, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "o"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 14, 2, 8, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 8, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "ó"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 14, 2, 8, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 8, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 8, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 6, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "p"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 12, 2, 14, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 8, color)&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "q"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 14, 2, 8, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 12, 2, 14, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "r"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 2, 12, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 12, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "s"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 14, 2, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 20, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 4, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 18, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 20, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "ś"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 14, 2, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 20, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 4, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 18, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 20, 2, 2, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 8, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 6, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "t"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 12, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 2, 16, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 22, 4, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "u"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 12, 2, 10, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 8, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 12, 2, 10, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "v"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 12, 2, 4, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 2, 4, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 20, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 16, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 12, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "w"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 12, 2, 6, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 18, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 12, 2, 6, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 18, 2, 6, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 12, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "x"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 12, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 22, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 20, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 16, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 14, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 20, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 12, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 22, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "y"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 12, 2, 4, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 2, 4, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 20, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 16, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 12, 2, 4, color)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 24, 4, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "z"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 12, 10, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 16, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 18, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 20, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 22, 10, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "ź"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 12, 10, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 16, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 18, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 20, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 22, 10, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 8, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 6, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "ż"&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 12, 10, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 16, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 18, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 20, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 22, 10, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 8, 2, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "0"&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 14, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 4, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 4, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 8, 2, 14, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "1"&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 8, 2, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "2"&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 4, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 4, 2, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 8, 2, 6, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 14, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 20, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "3"&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 4, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 4, 2, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 8, 2, 6, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 4, 2, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 16, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 4, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 18, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "4"&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 16, 2, 4, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 8, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 18, 8, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "5"&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 10, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 18, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 4, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 14, 2, 8, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "6"&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 14, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 4, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 8, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 16, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "7" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 8, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 8, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 12, 2, 6, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 18, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "8" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 6, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 4, 2, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 8, 2, 6, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 4, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 16, 2, 6, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 4, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 16, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "9"&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 6, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 4, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 8, 2, 14, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 4, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 4, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 18, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "."&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 20, 4, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;when ","&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 20, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 22, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 24, 2, 2, color)&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "-"&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 14, 8, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when ":"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 10, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 18, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "!"&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 6, 2, 12, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 20, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "?"&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 4, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 4, 2, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 8, 2, 6, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 14, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 20, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "'"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 2, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 4, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 2, 2, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "/"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 4, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 8, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 12, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 18, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 22, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "["<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 6, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 22, 4, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "]"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 4, 2, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp; <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 class="postimage" src="http://www.ultimateam.pl/files/RM2kfont.jpg" border="0" alt="[Obrazek: RM2kfont.jpg]" /><br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Aby czcionka była wyświetlana poprawnie w oknie wiadomości,  należy wejść w skrypt "Window_Message" i linijkę (ok. 146):<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>x += self.contents.text_size(c).width</code></div></div>
zamienić na:<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>x += self.contents.letter_width</code></div></div>
]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ RM2k Font in RMXP ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt wyświetla napisy w grze w stylu z RMk2. <br />
Walorem skryptu jest brak dodatkowych grafik i czcionek. <br />
Minusem z kolei jest brak możliwości zmiany wielkości czcionki i stylu (kursywa, pogrubienie).<br />
<br />
Nie dodałam wszystkich znaków specjalnych, więc w razie czego piszcie w tym temacie. Uzupełnię braki. <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 />
# RM2k Font in RMXP by Ayene<br />
# forum.ultimateam.pl<br />
#==============================================================================<br />
# Aby czcionka była wyświetlana poprawnie w oknie wiadomości, <br />
# należy wejść w skrypt "Window_Message" i linijkę (ok. 146):<br />
#&nbsp;&nbsp;&nbsp;&nbsp;x += self.contents.text_size(c).width<br />
# zamienić na:<br />
#&nbsp;&nbsp;&nbsp;&nbsp;x += self.contents.letter_width<br />
#<br />
# Warto również pomyśleć nad zwiększeniem okna wiadomości. <br />
# Należy wówczas zmienić parametry:<br />
#&nbsp;&nbsp;&nbsp;&nbsp;super(80, 304, 480, 160)<br />
# np. na:<br />
#&nbsp;&nbsp;&nbsp;&nbsp;super(30, 304, 580, 160)<br />
#==============================================================================<br />
<br />
class Bitmap&nbsp;&nbsp; <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Letter Width<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def letter_width<br />
&nbsp;&nbsp;&nbsp;&nbsp;return 12<br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Draw Text <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_text(*args)&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;draw_bitmap_text(*args)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;end&nbsp;&nbsp; <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Draw Bitmap Text<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_bitmap_text(*args)<br />
&nbsp;&nbsp;&nbsp;&nbsp;color = font.color.dup<br />
&nbsp;&nbsp;&nbsp;&nbsp;if args[0].is_a?(Rect)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x, y, width, height = args[0].x, args[0].y, args[0].width, args[0].height<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text = args[1]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;align = args[2] == nil ? 0 : args[2]<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x, y, width, height, text = args<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;align = args[5] == nil ? 0 : args[5]<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;text = sprintf(text)&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;input_string = []<br />
&nbsp;&nbsp;&nbsp;&nbsp;text.size.times do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c = text.slice!(/./m)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input_string.push(c)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;size = input_string.size * letter_width<br />
&nbsp;&nbsp;&nbsp;&nbsp;case align<br />
&nbsp;&nbsp;&nbsp;&nbsp;when 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = x + (width - size) / 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;when 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = x + width - size<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;black = Color.new(0, 0, 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;for letter in input_string <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print_letter(letter, x + 2, y + 2, black)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print_letter(letter, x, y, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x += letter_width&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Print Letter<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def print_letter(input, x, y, color)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;case input<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "A"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 16, 2, 8, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 10, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 18, 2, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 6, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 18, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 18, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 10, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 16, 2, 8, color)&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "Ą"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 16, 2, 8, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 10, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 18, 2, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 6, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 18, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 18, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 10, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 16, 2, 8, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 24, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 26, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "B"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 8, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 16, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "C"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 14, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 8, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 18, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "Ć"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 14, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 8, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 18, 2, 4, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 4, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 2, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "D"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 4, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 8, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 20, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 10, 2, 10, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "E"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 8, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 8, 2, color)&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "Ę"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 8, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 8, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 24, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 26, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "F"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 8, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "G"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 14, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 4, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 8, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 16, 4, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 18, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 20, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "H"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 6, 2, 18, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "I"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 8, 2, 14, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "J"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 18, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 4, 2, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 6, 2, 16, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "K"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 10, 2, 4, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 16, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 6, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 20, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "L"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 8, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "Ł"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 8, 2, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 12, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "M"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 10, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 16, 2, 8, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 10, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 6, 2, 18, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "N"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 8, 2, 4, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 12, 2, 6, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 18, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 6, 2, 18, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "Ń"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 8, 2, 4, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 12, 2, 6, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 18, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 6, 2, 18, color)&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 4, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 2, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "O"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 14, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 8, 2, 14, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "Ó"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 14, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 8, 2, 14, color)&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 4, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 2, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "P"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 8, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "Q"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 14, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 4, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 8, 2, 14, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 18, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 20, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 22, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "R"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 8, 2, 6, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 16, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 18, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "S"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 4, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 18, 2, 4, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 6, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 16, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 8, 2, 4, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 18, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "Ś"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 4, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 18, 2, 4, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 6, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 16, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 8, 2, 4, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 18, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 4, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 2, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "T"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 10, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 8, 2, 16, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "U"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 16, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 6, 2, 16, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "V"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 6, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 18, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 12, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 6, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "W"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 10, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 2, 8, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 6, 2, 10, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 16, 2, 8, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 6, 2, 10, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "X"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 20, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 10, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 10, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 16, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 6, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 20, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "Y"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 10, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 14, 2, 10, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 10, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 6, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "Z"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 10, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 8, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 10, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 20, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 22, 10, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "Ź"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 10, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 8, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 10, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 20, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 22, 10, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 4, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 2, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "Ż"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 10, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 8, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 10, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 20, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 22, 10, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 2, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "a"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 14, 2, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 18, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 4, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 14, 2, 8, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 22, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "ą"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 14, 2, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 18, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 4, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 14, 2, 8, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 22, 2, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 24, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 26, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "b"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 8, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "c"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 14, 2, 8, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 20, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "ć"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 14, 2, 8, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 20, 2, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 8, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 6, 2, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "d"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 14, 2, 8, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 6, 2, 18, color)&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "e"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 14, 2, 8, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 20, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 8, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "ę"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 14, 2, 8, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 20, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 8, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 24, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 26, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "f"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 12, 2, 2, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 8, 2, 16, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 6, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 12, 2, 2, color)&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "g"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 14, 2, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 18, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 22, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 20, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 24, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 12, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 22, 2, 2, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "h"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 10, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "i"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 6, 2, 4, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 12, 2, 12, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "j"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 6, 2, 4, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 12, 2, 12, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x , y + 24, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "k"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 18, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 18, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 16, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 12, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 20, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 22, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "l"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "ł"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 6, 2, 18, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 12, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "m"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 12, 2, 12, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 14, 2, 10, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 12, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 10, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "n"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 12, 2, 12, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 10, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "ń"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 12, 2, 12, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 10, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 8, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 6, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "o"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 14, 2, 8, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 8, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "ó"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 14, 2, 8, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 8, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 8, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 6, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "p"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 12, 2, 14, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 8, color)&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "q"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 14, 2, 8, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 12, 2, 14, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "r"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 2, 12, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 12, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "s"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 14, 2, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 20, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 4, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 18, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 20, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "ś"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 14, 2, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 20, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 6, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 4, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 18, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 20, 2, 2, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 8, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 6, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "t"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 12, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 2, 16, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 22, 4, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "u"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 12, 2, 10, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 8, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 12, 2, 10, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "v"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 12, 2, 4, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 2, 4, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 20, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 16, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 12, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "w"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 12, 2, 6, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 18, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 12, 2, 6, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 18, 2, 6, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 12, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "x"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 12, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 22, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 20, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 16, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 14, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 20, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 12, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 22, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "y"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 12, 2, 4, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 2, 4, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 20, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 16, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 12, 2, 4, color)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 24, 4, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "z"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 12, 10, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 16, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 18, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 20, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 22, 10, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "ź"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 12, 10, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 16, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 18, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 20, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 22, 10, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 8, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 6, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "ż"&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 12, 10, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 14, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 16, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 18, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 20, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 22, 10, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 8, 2, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "0"&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 14, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 4, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 4, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 8, 2, 14, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "1"&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 8, 2, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "2"&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 4, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 4, 2, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 8, 2, 6, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 14, 2, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 16, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 20, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "3"&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 4, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 4, 2, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 8, 2, 6, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 4, 2, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 16, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 4, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 18, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "4"&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 16, 2, 4, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 8, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 18, 8, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "5"&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 2, 10, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 6, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 12, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 18, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 4, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 14, 2, 8, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "6"&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 14, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 4, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 8, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 16, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "7" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 6, 8, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 8, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 12, 2, 6, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 18, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "8" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 6, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 4, 2, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 8, 2, 6, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 4, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 16, 2, 6, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 4, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 16, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "9"&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 6, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 4, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 8, 2, 14, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 14, 4, 2, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 4, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 18, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "."&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 20, 4, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;when ","&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 20, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 22, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 24, 2, 2, color)&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "-"&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 14, 8, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when ":"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 10, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 18, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "!"&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 6, 2, 12, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 20, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "?"&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 8, 2, 4, color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 4, 2, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 8, 2, 6, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 14, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 20, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "'"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 2, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 4, 2, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 2, 2, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "/"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 8, y + 4, 2, 4, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 8, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 12, 2, 6, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 18, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x, y + 22, 2, 4, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;when "["<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 6, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 4, y + 22, 4, 2, color) <br />
&nbsp;&nbsp;&nbsp;&nbsp;when "]"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 6, y + 6, 2, 18, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 6, 4, 2, color)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fill_rect(x + 2, y + 22, 4, 2, color)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp; <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 class="postimage" src="http://www.ultimateam.pl/files/RM2kfont.jpg" border="0" alt="[Obrazek: RM2kfont.jpg]" /><br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Aby czcionka była wyświetlana poprawnie w oknie wiadomości,  należy wejść w skrypt "Window_Message" i linijkę (ok. 146):<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>x += self.contents.text_size(c).width</code></div></div>
zamienić na:<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>x += self.contents.letter_width</code></div></div>
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Screen Tone test]]></title>
			<link>https://forum.ultimateam.pl/Thread-XP-Screen-Tone-test</link>
			<pubDate>Fri, 05 Dec 2014 18:39:12 +0100</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-XP-Screen-Tone-test</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Screen Tint Debug Menu ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt pozwala na testowanie odcieni ekranu w trybie debugowania<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Leon_Westbrooke<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
Tłumaczenie nie jest 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 />
#&nbsp;&nbsp;Screen Tint Debug Menu by Leon_Westbrooke<br />
#-------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;This scene allows you, in Debug mode, tamper with the map's tone until you<br />
#&nbsp;&nbsp;find a desired coloring.<br />
#&nbsp;&nbsp;It will NOT set the tone for you automatically.&nbsp;&nbsp;Instead, record the numbers<br />
#&nbsp;&nbsp;and use them in a change screen tone event.&nbsp;&nbsp;However, this should cut down<br />
#&nbsp;&nbsp;on countless testing of the screen's tint.<br />
#<br />
#&nbsp;&nbsp;To use:<br />
#&nbsp;&nbsp;&nbsp;&nbsp;Plug the script into your game's script archive.<br />
#&nbsp;&nbsp;&nbsp;&nbsp;To access it, go into debug mode (F12) and press F8 to access the menu.<br />
#&nbsp;&nbsp;&nbsp;&nbsp;Use the arrow keys to change the maps tone.<br />
#-------------------------------------------------------------------------------<br />
<br />
<br />
#-------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;*&nbsp;&nbsp;Game_Temp<br />
#-------------------------------------------------------------------------------<br />
class Game_Temp<br />
&nbsp;&nbsp;alias leon_stdm_gametemp_init initialize<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;attr_accessor :tinttest_red<br />
&nbsp;&nbsp;attr_accessor :tinttest_green<br />
&nbsp;&nbsp;attr_accessor :tinttest_blue<br />
&nbsp;&nbsp;attr_accessor :tinttest_gray<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp;leon_stdm_gametemp_init<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tinttest_red = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tinttest_green = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tinttest_blue = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tinttest_gray = 0<br />
&nbsp;&nbsp;end<br />
end<br />
#-------------------------------------------------------------------------------<br />
# END Game_Temp<br />
#-------------------------------------------------------------------------------<br />
<br />
<br />
#-------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;*&nbsp;&nbsp;Spriteset_Map<br />
#-------------------------------------------------------------------------------<br />
class Spriteset_Map<br />
&nbsp;&nbsp;attr_accessor :viewport1<br />
end<br />
<br />
class Game_Screen<br />
&nbsp;&nbsp;attr_accessor :tone<br />
end<br />
#-------------------------------------------------------------------------------<br />
# END Spriteset_Map<br />
#-------------------------------------------------------------------------------<br />
<br />
<br />
#-------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;*&nbsp;&nbsp;Scene_Map<br />
#-------------------------------------------------------------------------------<br />
class Scene_Map<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;alias leon_stdm_scenemap_update update<br />
<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;leon_stdm_scenemap_update<br />
&nbsp;&nbsp;&nbsp;&nbsp;if &#36;DEBUG and Input.press?(Input::F8)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;scene = Scene_TintDebug.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
#-------------------------------------------------------------------------------<br />
# END Scene_Map<br />
#-------------------------------------------------------------------------------<br />
<br />
<br />
#-------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;*&nbsp;&nbsp;Window_TintTest<br />
#-------------------------------------------------------------------------------<br />
class Window_TintTest &lt; Window_Selectable<br />
&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp;super(0, 0, 192, 192)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width - 32, height - 32)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@item_max = 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.index = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.active = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;refresh<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, 0, 160, 32, "Red")<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, 32, 160, 32, "Green")<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, 64, 160, 32, "Blue")<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, 96, 160, 32, "gray")<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, 128, 160, 32, "Exit")<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(-4, 0, 160, 32, &#36;game_temp.tinttest_red.to_s, 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(-4, 32, 160, 32, &#36;game_temp.tinttest_green.to_s, 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(-4, 64, 160, 32, &#36;game_temp.tinttest_blue.to_s, 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(-4, 96, 160, 32, &#36;game_temp.tinttest_gray.to_s, 2)<br />
&nbsp;&nbsp;end<br />
end<br />
#-------------------------------------------------------------------------------<br />
# END Window_TintTest<br />
#-------------------------------------------------------------------------------<br />
<br />
<br />
#-------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;*&nbsp;&nbsp;Scene_TintDebug<br />
#-------------------------------------------------------------------------------<br />
class Scene_TintDebug<br />
&nbsp;&nbsp;def main<br />
&nbsp;&nbsp;&nbsp;&nbsp;@spriteset = Spriteset_Map.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_red = @spriteset.viewport1.tone.red.to_i<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_green = @spriteset.viewport1.tone.green.to_i<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_blue = @spriteset.viewport1.tone.blue.to_i<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_gray = @spriteset.viewport1.tone.gray.to_i<br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_tint = Window_TintTest.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Graphics.transition<br />
&nbsp;&nbsp;&nbsp;&nbsp;loop do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Graphics.update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Input.update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;scene != self<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;Graphics.freeze<br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_tint.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp;@spriteset.dispose<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::B)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;scene = Scene_Map.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if @window_tint.active<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_windowtint<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def update_windowtint<br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_tint.update<br />
&nbsp;&nbsp;&nbsp;&nbsp;case @window_tint.index<br />
&nbsp;&nbsp;&nbsp;&nbsp;when 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::RIGHT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_red += 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_red &gt;= 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_red = 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.trigger?(Input::LEFT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_red -= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_red &lt;= -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_red = -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.repeat?(Input::RIGHT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_red += 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_red &gt;= 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_red = 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.repeat?(Input::LEFT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_red -= 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_red &lt;= -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_red = -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;when 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::RIGHT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_green += 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_green &gt;= 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_green = 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.trigger?(Input::LEFT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_green -= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_green &lt;= -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_green = -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.repeat?(Input::RIGHT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_green += 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_green &gt;= 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_green = 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.repeat?(Input::LEFT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_green -= 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_green &lt;= -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_green = -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;when 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::RIGHT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_blue += 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_blue &gt;= 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_blue = 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.trigger?(Input::LEFT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_blue -= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_blue &lt;= -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_blue = -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.repeat?(Input::RIGHT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_blue += 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_blue &gt;= 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_blue = 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.repeat?(Input::LEFT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_blue -= 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_blue &lt;= -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_blue = -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;when 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::RIGHT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_gray += 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_gray &gt;= 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_gray = 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.trigger?(Input::LEFT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_gray -= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_gray &lt;= -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_gray = -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.repeat?(Input::RIGHT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_gray += 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_gray &gt;= 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_gray = 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.repeat?(Input::LEFT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_gray -= 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_gray &lt;= -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_gray = -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;when 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::C)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;scene = Scene_Map.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;red = &#36;game_temp.tinttest_red<br />
&nbsp;&nbsp;&nbsp;&nbsp;green = &#36;game_temp.tinttest_green<br />
&nbsp;&nbsp;&nbsp;&nbsp;blue = &#36;game_temp.tinttest_blue<br />
&nbsp;&nbsp;&nbsp;&nbsp;gray = &#36;game_temp.tinttest_gray<br />
&nbsp;&nbsp;&nbsp;&nbsp;@spriteset.viewport1.tone = Tone.new(red, green, blue, gray)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_screen.tone = Tone.new(red, green, blue, gray)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_tint.refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;@spriteset.update<br />
&nbsp;&nbsp;end<br />
end<br />
#-------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;*&nbsp;&nbsp;Scene_TintDebug<br />
#-------------------------------------------------------------------------------</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://dc737.4shared.com/img/ODlj23SVba/s7/14a1b850898/1ton?async&amp;rand=0.9573477848898619" border="0" alt="[Obrazek: 1ton?async&amp;amp;rand=0.9573477848898619]" /><br />
<img class="postimage" src="http://dc737.4shared.com/img/QIPOBV0Oce/s7/14a1b8460a0/2ton?async&amp;rand=0.9235053437296301" border="0" alt="[Obrazek: 2ton?async&amp;amp;rand=0.9235053437296301]" /><br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Uruchamiamy klawiszem F8 (tylko w trybie debugowania)]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Screen Tint Debug Menu ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt pozwala na testowanie odcieni ekranu w trybie debugowania<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Leon_Westbrooke<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
Tłumaczenie nie jest 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 />
#&nbsp;&nbsp;Screen Tint Debug Menu by Leon_Westbrooke<br />
#-------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;This scene allows you, in Debug mode, tamper with the map's tone until you<br />
#&nbsp;&nbsp;find a desired coloring.<br />
#&nbsp;&nbsp;It will NOT set the tone for you automatically.&nbsp;&nbsp;Instead, record the numbers<br />
#&nbsp;&nbsp;and use them in a change screen tone event.&nbsp;&nbsp;However, this should cut down<br />
#&nbsp;&nbsp;on countless testing of the screen's tint.<br />
#<br />
#&nbsp;&nbsp;To use:<br />
#&nbsp;&nbsp;&nbsp;&nbsp;Plug the script into your game's script archive.<br />
#&nbsp;&nbsp;&nbsp;&nbsp;To access it, go into debug mode (F12) and press F8 to access the menu.<br />
#&nbsp;&nbsp;&nbsp;&nbsp;Use the arrow keys to change the maps tone.<br />
#-------------------------------------------------------------------------------<br />
<br />
<br />
#-------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;*&nbsp;&nbsp;Game_Temp<br />
#-------------------------------------------------------------------------------<br />
class Game_Temp<br />
&nbsp;&nbsp;alias leon_stdm_gametemp_init initialize<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;attr_accessor :tinttest_red<br />
&nbsp;&nbsp;attr_accessor :tinttest_green<br />
&nbsp;&nbsp;attr_accessor :tinttest_blue<br />
&nbsp;&nbsp;attr_accessor :tinttest_gray<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp;leon_stdm_gametemp_init<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tinttest_red = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tinttest_green = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tinttest_blue = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;@tinttest_gray = 0<br />
&nbsp;&nbsp;end<br />
end<br />
#-------------------------------------------------------------------------------<br />
# END Game_Temp<br />
#-------------------------------------------------------------------------------<br />
<br />
<br />
#-------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;*&nbsp;&nbsp;Spriteset_Map<br />
#-------------------------------------------------------------------------------<br />
class Spriteset_Map<br />
&nbsp;&nbsp;attr_accessor :viewport1<br />
end<br />
<br />
class Game_Screen<br />
&nbsp;&nbsp;attr_accessor :tone<br />
end<br />
#-------------------------------------------------------------------------------<br />
# END Spriteset_Map<br />
#-------------------------------------------------------------------------------<br />
<br />
<br />
#-------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;*&nbsp;&nbsp;Scene_Map<br />
#-------------------------------------------------------------------------------<br />
class Scene_Map<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;alias leon_stdm_scenemap_update update<br />
<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;leon_stdm_scenemap_update<br />
&nbsp;&nbsp;&nbsp;&nbsp;if &#36;DEBUG and Input.press?(Input::F8)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;scene = Scene_TintDebug.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
#-------------------------------------------------------------------------------<br />
# END Scene_Map<br />
#-------------------------------------------------------------------------------<br />
<br />
<br />
#-------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;*&nbsp;&nbsp;Window_TintTest<br />
#-------------------------------------------------------------------------------<br />
class Window_TintTest &lt; Window_Selectable<br />
&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp;super(0, 0, 192, 192)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width - 32, height - 32)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@item_max = 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.index = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.active = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;refresh<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, 0, 160, 32, "Red")<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, 32, 160, 32, "Green")<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, 64, 160, 32, "Blue")<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, 96, 160, 32, "gray")<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, 128, 160, 32, "Exit")<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(-4, 0, 160, 32, &#36;game_temp.tinttest_red.to_s, 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(-4, 32, 160, 32, &#36;game_temp.tinttest_green.to_s, 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(-4, 64, 160, 32, &#36;game_temp.tinttest_blue.to_s, 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(-4, 96, 160, 32, &#36;game_temp.tinttest_gray.to_s, 2)<br />
&nbsp;&nbsp;end<br />
end<br />
#-------------------------------------------------------------------------------<br />
# END Window_TintTest<br />
#-------------------------------------------------------------------------------<br />
<br />
<br />
#-------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;*&nbsp;&nbsp;Scene_TintDebug<br />
#-------------------------------------------------------------------------------<br />
class Scene_TintDebug<br />
&nbsp;&nbsp;def main<br />
&nbsp;&nbsp;&nbsp;&nbsp;@spriteset = Spriteset_Map.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_red = @spriteset.viewport1.tone.red.to_i<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_green = @spriteset.viewport1.tone.green.to_i<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_blue = @spriteset.viewport1.tone.blue.to_i<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_gray = @spriteset.viewport1.tone.gray.to_i<br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_tint = Window_TintTest.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Graphics.transition<br />
&nbsp;&nbsp;&nbsp;&nbsp;loop do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Graphics.update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Input.update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;scene != self<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;Graphics.freeze<br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_tint.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp;@spriteset.dispose<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::B)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;scene = Scene_Map.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if @window_tint.active<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_windowtint<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;def update_windowtint<br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_tint.update<br />
&nbsp;&nbsp;&nbsp;&nbsp;case @window_tint.index<br />
&nbsp;&nbsp;&nbsp;&nbsp;when 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::RIGHT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_red += 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_red &gt;= 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_red = 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.trigger?(Input::LEFT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_red -= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_red &lt;= -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_red = -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.repeat?(Input::RIGHT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_red += 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_red &gt;= 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_red = 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.repeat?(Input::LEFT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_red -= 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_red &lt;= -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_red = -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;when 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::RIGHT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_green += 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_green &gt;= 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_green = 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.trigger?(Input::LEFT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_green -= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_green &lt;= -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_green = -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.repeat?(Input::RIGHT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_green += 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_green &gt;= 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_green = 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.repeat?(Input::LEFT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_green -= 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_green &lt;= -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_green = -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;when 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::RIGHT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_blue += 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_blue &gt;= 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_blue = 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.trigger?(Input::LEFT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_blue -= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_blue &lt;= -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_blue = -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.repeat?(Input::RIGHT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_blue += 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_blue &gt;= 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_blue = 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.repeat?(Input::LEFT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_blue -= 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_blue &lt;= -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_blue = -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;when 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::RIGHT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_gray += 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_gray &gt;= 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_gray = 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.trigger?(Input::LEFT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_gray -= 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_gray &lt;= -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_gray = -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.repeat?(Input::RIGHT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_gray += 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_gray &gt;= 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_gray = 255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.repeat?(Input::LEFT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_gray -= 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.tinttest_gray &lt;= -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_temp.tinttest_gray = -255<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;when 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::C)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;scene = Scene_Map.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;red = &#36;game_temp.tinttest_red<br />
&nbsp;&nbsp;&nbsp;&nbsp;green = &#36;game_temp.tinttest_green<br />
&nbsp;&nbsp;&nbsp;&nbsp;blue = &#36;game_temp.tinttest_blue<br />
&nbsp;&nbsp;&nbsp;&nbsp;gray = &#36;game_temp.tinttest_gray<br />
&nbsp;&nbsp;&nbsp;&nbsp;@spriteset.viewport1.tone = Tone.new(red, green, blue, gray)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_screen.tone = Tone.new(red, green, blue, gray)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_tint.refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;@spriteset.update<br />
&nbsp;&nbsp;end<br />
end<br />
#-------------------------------------------------------------------------------<br />
#&nbsp;&nbsp;*&nbsp;&nbsp;Scene_TintDebug<br />
#-------------------------------------------------------------------------------</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://dc737.4shared.com/img/ODlj23SVba/s7/14a1b850898/1ton?async&amp;rand=0.9573477848898619" border="0" alt="[Obrazek: 1ton?async&amp;amp;rand=0.9573477848898619]" /><br />
<img class="postimage" src="http://dc737.4shared.com/img/QIPOBV0Oce/s7/14a1b8460a0/2ton?async&amp;rand=0.9235053437296301" border="0" alt="[Obrazek: 2ton?async&amp;amp;rand=0.9235053437296301]" /><br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Uruchamiamy klawiszem F8 (tylko w trybie debugowania)]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Baldur's Gate GUI]]></title>
			<link>https://forum.ultimateam.pl/Thread-XP-Baldur-s-Gate-GUI</link>
			<pubDate>Fri, 12 Sep 2014 20:50:51 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-XP-Baldur-s-Gate-GUI</guid>
			<description><![CDATA[<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Jest to naprawdę zaawansowany skrypt który dodaje GUI rodem z Baldur's Gate <br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
King Kadelfek<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>Treść w demie.</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://i291.photobucket.com/albums/ll318/KingKadelfek/Sanstitre-10.png" border="0" alt="[Obrazek: Sanstitre-10.png]" /><br />
<img class="postimage" src="http://i291.photobucket.com/albums/ll318/KingKadelfek/gui.png" border="0" alt="[Obrazek: gui.png]" /><br />
<img class="postimage" src="http://i291.photobucket.com/albums/ll318/KingKadelfek/gui-1.png" border="0" alt="[Obrazek: gui-1.png]" /><br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Demo:</span></span><br />
<a href="http://www.mediafire.com/download/2rgzikwz2vy/Baldur%27s_Game-RMXP-v0.1.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 />
Zawartość:<br />
Buttons (6 kinds)<br />
Radio Button<br />
Check Box<br />
Group<br />
Text Box<br />
Tool Tip<br />
Window<br />
Menu, MenuBar<br />
Scroller<br />
List<br />
"Bandeau"<br />
Label<br />
Message Box<br />
Yes / No Box<br />
Choose File Box<br />
Image<br />
Miniature<br />
Progression Bar<br />
A lot of subcomponents]]></description>
			<content:encoded><![CDATA[<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Jest to naprawdę zaawansowany skrypt który dodaje GUI rodem z Baldur's Gate <br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
King Kadelfek<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>Treść w demie.</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://i291.photobucket.com/albums/ll318/KingKadelfek/Sanstitre-10.png" border="0" alt="[Obrazek: Sanstitre-10.png]" /><br />
<img class="postimage" src="http://i291.photobucket.com/albums/ll318/KingKadelfek/gui.png" border="0" alt="[Obrazek: gui.png]" /><br />
<img class="postimage" src="http://i291.photobucket.com/albums/ll318/KingKadelfek/gui-1.png" border="0" alt="[Obrazek: gui-1.png]" /><br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Demo:</span></span><br />
<a href="http://www.mediafire.com/download/2rgzikwz2vy/Baldur%27s_Game-RMXP-v0.1.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 />
Zawartość:<br />
Buttons (6 kinds)<br />
Radio Button<br />
Check Box<br />
Group<br />
Text Box<br />
Tool Tip<br />
Window<br />
Menu, MenuBar<br />
Scroller<br />
List<br />
"Bandeau"<br />
Label<br />
Message Box<br />
Yes / No Box<br />
Choose File Box<br />
Image<br />
Miniature<br />
Progression Bar<br />
A lot of subcomponents]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Skill Shop]]></title>
			<link>https://forum.ultimateam.pl/Thread-XP-Skill-Shop</link>
			<pubDate>Sun, 07 Sep 2014 14:45:18 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-XP-Skill-Shop</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Easy Skill Shop ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt pozwala na kupno umiejętności za złoto <br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
imapro<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
Deuce<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 />
# ** Easy Skill Shop<br />
#==============================================================================<br />
#&nbsp;&nbsp; Author: imapro<br />
#&nbsp;&nbsp; Version: 1.0<br />
#&nbsp;&nbsp; Build Date: 11.26.10<br />
#==============================================================================<br />
#&nbsp;&nbsp;<br />
#==============================================================================<br />
=begin<br />
=============================<br />
* Info:<br />
=============================<br />
i made this cuase i was bored in my basement lol.<br />
==============================<br />
&nbsp;&nbsp;* How to Use:&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 />
&nbsp;&nbsp;&nbsp;&nbsp;call "&#36;skill_shop =[i]"&nbsp;&nbsp; i = ID of skill...you must call the code for it to work!.<br />
 You will also need to call "&#36;scene = Scene_Skill_Shop.new" to open up the Skill shop main window.<br />
===============================<br />
 * Example:<br />
===============================<br />
 <br />
&nbsp;&nbsp;&#36;skill_shop = [1,2,3,6,7]<br />
&nbsp;&nbsp;&#36;scene = Scene_Skill_Shop.new<br />
 <br />
 To set the text that appears in the Skill shop main windows Find&nbsp;&nbsp; "# Skill Shop Config<br />
You can set Skill Price under "# Price Data".<br />
You can allow skills to be learnt by individual heros by finding "# Skill data".<br />
 <br />
This is the layout:<br />
[ID of skill, Level requirement for learn]<br />
 <br />
==============================<br />
 * Special Thanks &amp; Credits:<br />
==============================<br />
 <br />
&nbsp;&nbsp;&nbsp;&nbsp; Sephirothspawn: For all the coding help and the Skill Shop script which inspired me<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to make my own.<br />
 <br />
=end<br />
#===================================================<br />
# ^ Module SkillShop_Config Begins<br />
#===================================================<br />
module Skill_Shop<br />
 # Skill Shop Config<br />
&nbsp;&nbsp;&nbsp;&nbsp; #Edit here<br />
&nbsp;&nbsp;&nbsp;&nbsp;Shop_Message = "Witam, w czym moge pomóc?"<br />
&nbsp;&nbsp;&nbsp;&nbsp;How_Learn = "Czego chcesz się nauczyć?"&nbsp;&nbsp; #Text shown above Characters in shop window<br />
&nbsp;&nbsp;&nbsp;&nbsp;Can_Learn = "Naucz!"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#Text shown when a hearo can learn the skill<br />
&nbsp;&nbsp;&nbsp;&nbsp;Can_Learn_Lv = "Learn on Lv"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#text shown when a hero CAN learn the skill<br />
&nbsp;&nbsp;&nbsp;&nbsp;Cant_Learn = "Nie mozna się nauczyć"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Text shown if a hero is unable to learn that perticular skill<br />
&nbsp;&nbsp;&nbsp;&nbsp;Learnt = "Nauczony!"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #text shown when a hero has learnt a skill<br />
&nbsp;&nbsp;&nbsp;&nbsp;Teach = "Lista Nauk!"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#Command (Buy in normal shops)<br />
&nbsp;&nbsp;&nbsp;&nbsp;Cancel = "Wyjdź"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Command (Cancel in normal shops)<br />
 <br />
&nbsp;&nbsp;# Tutaj dodaj ceny<br />
&nbsp;&nbsp;PRICE = {<br />
&nbsp;&nbsp;0 =&gt; 80,&nbsp;&nbsp; #Domyślna cena umiejętności bez zestawu cen<br />
&nbsp;&nbsp;1 =&gt; 129,&nbsp;&nbsp; #Cena dla Skill ID&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;2 =&gt; 300,<br />
&nbsp;&nbsp;3 =&gt; 450,<br />
&nbsp;&nbsp;}<br />
 <br />
&nbsp;&nbsp;# Skill Data<br />
&nbsp;&nbsp;# add the skills that each individual hero can learn.<br />
&nbsp;&nbsp;#Layout is mentioned above.<br />
&nbsp;&nbsp;SKILL_BUY = {<br />
1 =&gt; [<br />
&nbsp;&nbsp;[1,4],[2,3],[3,1],[7,1],<br />
],<br />
 <br />
2 =&gt; [<br />
&nbsp;&nbsp;[1,4],[2,3],[3,1],[7,5],<br />
],<br />
 <br />
3 =&gt; [<br />
&nbsp;&nbsp;[1,4],[2,3],[3,1],[7,5],<br />
],<br />
 <br />
}<br />
&nbsp;&nbsp;# Add Price<br />
&nbsp;&nbsp;def self.skill_price(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp; if PRICE.include?(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return PRICE[id]<br />
&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return PRICE[0]<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;# Add Hero id<br />
&nbsp;&nbsp;def self.skill_buy(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp; if SKILL_BUY.include?(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return SKILL_BUY[id]<br />
&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return []<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;end<br />
end<br />
#==============================================================================<br />
# ** Class Game_Actor<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp; This class handles the actor array. Refer to "&#36;game_actors" for each<br />
#&nbsp;&nbsp; instance of this class.<br />
#==============================================================================<br />
class Game_Actor &lt; Game_Battler<br />
&nbsp;&nbsp;def learn?(skill)<br />
&nbsp;&nbsp;&nbsp;&nbsp; learn = skill_learn?(skill.id)<br />
&nbsp;&nbsp;&nbsp;&nbsp; if learn<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false<br />
&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;end<br />
end<br />
#==============================================================================<br />
#class Window_Skill_ShopCommand<br />
#==============================================================================<br />
class Window_Skill_ShopCommand &lt; Window_Selectable<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Object Initialization<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp; super(0, 64, 480, 64)<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents = Bitmap.new(width - 32, height - 32)<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.font.name = "Tahoma"<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.font.size = 21<br />
&nbsp;&nbsp;&nbsp;&nbsp; @item_max = 2<br />
&nbsp;&nbsp;&nbsp;&nbsp; @column_max = 2<br />
&nbsp;&nbsp;&nbsp;&nbsp; #Commands Setup... if you wish to add more commands edit here.<br />
&nbsp;&nbsp;&nbsp;&nbsp; s1 = Skill_Shop::Teach<br />
&nbsp;&nbsp;&nbsp;&nbsp; s2 = Skill_Shop::Cancel<br />
&nbsp;&nbsp;&nbsp;&nbsp; @commands = [s1, s2]<br />
&nbsp;&nbsp;&nbsp;&nbsp; refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.index = 0<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Refresh<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.clear<br />
&nbsp;&nbsp;&nbsp;&nbsp; for i in 0...@item_max<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_item(i)<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_item(index)<br />
&nbsp;&nbsp;&nbsp;&nbsp; x = 4 + index * 240<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.draw_text(x, 0, 128, 32, @commands[index])<br />
&nbsp;&nbsp;end<br />
end<br />
#==============================================================================<br />
#class Window_Skill_ShopBuy<br />
#==============================================================================<br />
class Window_Skill_ShopBuy &lt; Window_Selectable<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Object Initialization<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize(shop_goods)<br />
&nbsp;&nbsp;&nbsp;&nbsp; super(0, 128, 368, 352)<br />
&nbsp;&nbsp;&nbsp;&nbsp; @skill_shop_goods = &#36;skill_shop<br />
&nbsp;&nbsp;&nbsp;&nbsp; refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.index = 0<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def skill<br />
&nbsp;&nbsp;&nbsp;&nbsp; return @data[self.index]<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Refresh<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp; if self.contents != nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents = nil<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;&nbsp;&nbsp; @data = []<br />
&nbsp;&nbsp;&nbsp;&nbsp; for i in 0...@skill_shop_goods.size<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;skill = &#36;data_skills[@skill_shop_goods[i]]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if skill != nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @data.push(skill)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;&nbsp;&nbsp; # If the number of items is not 0, it draws up bit map, drawing all item<br />
&nbsp;&nbsp;&nbsp;&nbsp; @item_max = @data.size<br />
&nbsp;&nbsp;&nbsp;&nbsp; if @item_max &gt; 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width - 32, row_max * 32)<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.font.name = "Tahoma"<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.font.size = 21<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i in 0...@item_max<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; draw_item(i)<br />
&nbsp;&nbsp;&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_item(index)<br />
&nbsp;&nbsp;&nbsp;&nbsp; skill = @data[index]<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Acquiring the frequency of possession of the item<br />
&nbsp;&nbsp;&nbsp;&nbsp; price = Skill_Shop.skill_price(skill.id)<br />
&nbsp;&nbsp;&nbsp;&nbsp; enabled = (price &lt;= &#36;game_party.gold)<br />
&nbsp;&nbsp;&nbsp;&nbsp; # If price is not below the money in hand, at the same time the frequency of possession 99, usually in letter color<br />
&nbsp;&nbsp;&nbsp;&nbsp; # So if is not, it sets to invalid letter color<br />
&nbsp;&nbsp;&nbsp;&nbsp; if enabled<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = normal_color<br />
&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = disabled_color<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;&nbsp;&nbsp; x = 4<br />
&nbsp;&nbsp;&nbsp;&nbsp; y = index * 32<br />
&nbsp;&nbsp;&nbsp;&nbsp; rect = Rect.new(x, y, self.width - 32, 32)<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))<br />
&nbsp;&nbsp;&nbsp;&nbsp; bitmap = RPG::Cache.icon(skill.icon_name)<br />
&nbsp;&nbsp;&nbsp;&nbsp; opacity = self.contents.font.color == normal_color ? 255 : 128<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.draw_text(x + 28, y, 212, 32, skill.name, 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.draw_text(x + 240, y, 88, 32, price.to_s, 2)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update_help<br />
&nbsp;&nbsp;&nbsp;&nbsp; @help_window.set_text(skill == nil ? "" : skill.description)<br />
&nbsp;&nbsp;end<br />
end<br />
#==============================================================================<br />
#class Window_Skill_ShopStatus<br />
#==============================================================================<br />
class Window_Skill_ShopStatus &lt; Window_Selectable<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Object Initialization<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp; super(368, 128, 272, 352)<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents = Bitmap.new(width - 32, height - 32)<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.font.name = "Tahoma"<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.font.size = 21<br />
&nbsp;&nbsp;&nbsp;&nbsp; @item = nil<br />
&nbsp;&nbsp;&nbsp;&nbsp; refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.active = false<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.index = -1<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Refresh<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.clear<br />
&nbsp;&nbsp;&nbsp;&nbsp; @item_max = &#36;game_party.actors.size<br />
&nbsp;&nbsp;&nbsp;&nbsp; if @item == nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.font.color = system_color<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.draw_text(4, 0, self.width - 32, 32, Skill_Shop::How_Learn)<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.font.color = normal_color<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Equipment supplementary information<br />
&nbsp;&nbsp;&nbsp;&nbsp; for i in 0...&#36;game_party.actors.size<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Acquiring the actor<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;can = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lv = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ac_lv = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;actor = &#36;game_party.actors[i]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;can_learn = Skill_Shop.skill_buy(actor.id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id = @item.id<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for e in 0...can_learn.size<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if can_learn[e][0] == id<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;can = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if can_learn[e][1] &lt;= actor.level<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lv = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lv = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ac_lv = can_learn[e][1]<br />
&nbsp;&nbsp;&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;&nbsp;&nbsp;break<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;can = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enabled = (can and lv and actor.learn?(@item))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# If equipment possibility if usually in letter color, the impossibility, it sets to invalid letter color<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if enabled<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.contents.font.color = normal_color<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.contents.font.color = disabled_color<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#Draw Character Pic<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cw = bitmap.rect.width / 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ch = bitmap.rect.height / 4<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;cx = contents.text_size(actor.name).width<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.blt(cx, 64 + 64 * i, bitmap, src_rect)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Drawing the name of the actor<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, 64 + 64 * i, 120, 32, actor.name)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Check Skill<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if can == false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text = Skill_Shop::Cant_Learn<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif can == true and lv == false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ac = ac_lv.to_s<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text = Skill_Shop::Can_Learn_Lv + " " + ac + "+"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif actor.learn?(@item) == false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text = Skill_Shop::Learnt<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text = Skill_Shop::Can_Learn<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Drawing the item<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(124, 64 + 64 * i, 112, 32, text, 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def item=(item)<br />
&nbsp;&nbsp;&nbsp;&nbsp; if @item != item<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@item = item<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update_cursor_rect<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Cursor position as for -1 all selection, -2 below independence selection (user himself)<br />
&nbsp;&nbsp;&nbsp;&nbsp; if @index &lt; 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.cursor_rect.empty<br />
&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.cursor_rect.set(0, 62 + @index * 64, self.width - 32, 50)<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;end<br />
end<br />
#==============================================================================<br />
#class Scene_Skill_Shop<br />
#==============================================================================<br />
#<br />
#<br />
#-----I advise you not to touch anything past here unless you know what you are doing.-------<br />
#<br />
#<br />
class Scene_Skill_Shop<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def main<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Drawing up the help window<br />
&nbsp;&nbsp;&nbsp;&nbsp; @help_window = Window_Help.new<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Drawing up the command window<br />
&nbsp;&nbsp;&nbsp;&nbsp; @command_window = Window_Skill_ShopCommand.new<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Drawing up the Goldwyn dough<br />
&nbsp;&nbsp;&nbsp;&nbsp; @gold_window = Window_Gold.new<br />
&nbsp;&nbsp;&nbsp;&nbsp; @gold_window.x = 480<br />
&nbsp;&nbsp;&nbsp;&nbsp; @gold_window.y = 64<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Drawing up the dummy window<br />
&nbsp;&nbsp;&nbsp;&nbsp; @dummy_window = Window_Base.new(0, 128, 640, 352)<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Drawing up the purchase window<br />
&nbsp;&nbsp;&nbsp;&nbsp; @buy_window = Window_Skill_ShopBuy.new(&#36;game_temp.shop_goods)<br />
&nbsp;&nbsp;&nbsp;&nbsp; @buy_window.active = false<br />
&nbsp;&nbsp;&nbsp;&nbsp; @buy_window.visible = false<br />
&nbsp;&nbsp;&nbsp;&nbsp; @buy_window.help_window = @help_window<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Drawing up the status window<br />
&nbsp;&nbsp;&nbsp;&nbsp; @status_window = Window_Skill_ShopStatus.new<br />
&nbsp;&nbsp;&nbsp;&nbsp; @status_window.visible = false<br />
&nbsp;&nbsp;&nbsp;&nbsp; @status_window.active<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Transition execution<br />
&nbsp;&nbsp;&nbsp;&nbsp; Graphics.transition<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Main loop<br />
&nbsp;&nbsp;&nbsp;&nbsp; loop do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Renewing the game picture<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Graphics.update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Updating the information of input<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Input.update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Frame renewal<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# When the picture changes, discontinuing the loop<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;scene != self<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Transition preparation<br />
&nbsp;&nbsp;&nbsp;&nbsp; Graphics.freeze<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Releasing the window<br />
&nbsp;&nbsp;&nbsp;&nbsp; @help_window.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp; @command_window.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp; @gold_window.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp; @dummy_window.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp; @buy_window.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp; @status_window.dispose<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Renewing the window<br />
&nbsp;&nbsp;&nbsp;&nbsp; @help_window.update<br />
&nbsp;&nbsp;&nbsp;&nbsp; @command_window.update<br />
&nbsp;&nbsp;&nbsp;&nbsp; @gold_window.update<br />
&nbsp;&nbsp;&nbsp;&nbsp; @dummy_window.update<br />
&nbsp;&nbsp;&nbsp;&nbsp; @buy_window.update<br />
&nbsp;&nbsp;&nbsp;&nbsp; @status_window.update<br />
&nbsp;&nbsp;&nbsp;&nbsp; # When the command window is active,: Update_command is called<br />
&nbsp;&nbsp;&nbsp;&nbsp; if @command_window.active<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_command<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;&nbsp;&nbsp; # When the purchase window is active,: Update_buy is called<br />
&nbsp;&nbsp;&nbsp;&nbsp; if @buy_window.active<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_buy<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;&nbsp;&nbsp; # When the target window is active,: Update_target is called<br />
&nbsp;&nbsp;&nbsp;&nbsp; if @status_window.active<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_target<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update_command<br />
&nbsp;&nbsp;&nbsp;&nbsp; # The B when button is pushed<br />
&nbsp;&nbsp;&nbsp;&nbsp; if Input.trigger?(Input::B)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Performing cancellation SE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.cancel_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Change to map picture<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;scene = Scene_Map.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;&nbsp;&nbsp; # When C button is pushed<br />
&nbsp;&nbsp;&nbsp;&nbsp; if Input.trigger?(Input::C)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Eliminating the help text<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@help_window.set_text("")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# It diverges at cursor position of the command window<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case @command_window.index<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 0&nbsp;&nbsp; # It purchases<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Performing decision SE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#36;game_system.se_play(&#36;data_system.decision_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # State of window to purchase mode<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @command_window.active = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @dummy_window.visible = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @buy_window.active = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @buy_window.visible = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @buy_window.refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @status_window.visible = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 1&nbsp;&nbsp; # It stops<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Performing decision SE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#36;game_system.se_play(&#36;data_system.decision_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Change to map picture<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#36;scene = Scene_Map.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update_buy<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Setting the item of the status window<br />
&nbsp;&nbsp;&nbsp;&nbsp; @status_window.item = @buy_window.skill<br />
&nbsp;&nbsp;&nbsp;&nbsp; # The B when button is pushed<br />
&nbsp;&nbsp;&nbsp;&nbsp; if Input.trigger?(Input::B)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Performing cancellation SE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.cancel_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# State of window to early mode<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.active = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@dummy_window.visible = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@buy_window.active = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@buy_window.visible = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.visible = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.item = nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Eliminating the help text<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@help_window.set_text("")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;&nbsp;&nbsp; # When C button is pushed<br />
&nbsp;&nbsp;&nbsp;&nbsp; if Input.trigger?(Input::C)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Acquiring the item<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@item = @buy_window.skill<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@price = Skill_Shop.skill_price(@item.id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enabled = (@price &lt;= &#36;game_party.gold)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# When the item is invalid, or when price it is on from the money in hand<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unless&nbsp;&nbsp; enabled<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Performing buzzer SE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#36;game_system.se_play(&#36;data_system.buzzer_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Performing decision SE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@buy_window.active = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.active = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.index = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update_target<br />
&nbsp;&nbsp;&nbsp;&nbsp; # The B when button is pushed<br />
&nbsp;&nbsp;&nbsp;&nbsp; if Input.trigger?(Input::B)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Performing cancellation SE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.cancel_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Eliminating the target window<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@buy_window.active = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.index =- 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.active = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;&nbsp;&nbsp; # When C button is pushed<br />
&nbsp;&nbsp;&nbsp;&nbsp; if Input.trigger?(Input::C)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@actor = &#36;game_party.actors[@status_window.index]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;can = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lv = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;can_learn = Skill_Shop.skill_buy(@actor.id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id = @item.id<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i in 0...can_learn.size<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if can_learn[i][0] == id<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;can = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if can_learn[i][1] &lt;= @actor.level<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lv = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lv = false<br />
&nbsp;&nbsp;&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;&nbsp;&nbsp;break<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;can = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enabled = (can and lv and @actor.learn?(@item))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# When with SP and so on is cut off and it becomes not be able to use<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unless enabled<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Performing buzzer SE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#36;game_system.se_play(&#36;data_system.buzzer_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Performing shop SE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.shop_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@actor.learn_skill(@item.id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.lose_gold(@price)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@buy_window.refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@gold_window.refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@buy_window.active = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.index =- 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.active = false<br />
&nbsp;&nbsp;&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;">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://img98.imageshack.us/img98/6679/92790779.jpg" border="0" alt="[Obrazek: 92790779.jpg]" /><br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Aby wywołać sklep w zakładce script wpisz:<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>&#36;scene = Scene_Skill_Shop.new<br />
&#36;skill_shop = [1]</code></div></div>
1 oznacza ID sklepu, sklepy definiujemy od linijki 68 poniżej przykład sklepu:<br />
1 =&gt; [<br />
  [1,4],[2,3],[3,1],[7,1],<br />
],<br />
1 - Oznacza ID skilla,  4 - Oznacza Lewel wymagany do nauczenia się umiejętności]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Easy Skill Shop ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt pozwala na kupno umiejętności za złoto <br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
imapro<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
Deuce<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 />
# ** Easy Skill Shop<br />
#==============================================================================<br />
#&nbsp;&nbsp; Author: imapro<br />
#&nbsp;&nbsp; Version: 1.0<br />
#&nbsp;&nbsp; Build Date: 11.26.10<br />
#==============================================================================<br />
#&nbsp;&nbsp;<br />
#==============================================================================<br />
=begin<br />
=============================<br />
* Info:<br />
=============================<br />
i made this cuase i was bored in my basement lol.<br />
==============================<br />
&nbsp;&nbsp;* How to Use:&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 />
&nbsp;&nbsp;&nbsp;&nbsp;call "&#36;skill_shop =[i]"&nbsp;&nbsp; i = ID of skill...you must call the code for it to work!.<br />
 You will also need to call "&#36;scene = Scene_Skill_Shop.new" to open up the Skill shop main window.<br />
===============================<br />
 * Example:<br />
===============================<br />
 <br />
&nbsp;&nbsp;&#36;skill_shop = [1,2,3,6,7]<br />
&nbsp;&nbsp;&#36;scene = Scene_Skill_Shop.new<br />
 <br />
 To set the text that appears in the Skill shop main windows Find&nbsp;&nbsp; "# Skill Shop Config<br />
You can set Skill Price under "# Price Data".<br />
You can allow skills to be learnt by individual heros by finding "# Skill data".<br />
 <br />
This is the layout:<br />
[ID of skill, Level requirement for learn]<br />
 <br />
==============================<br />
 * Special Thanks &amp; Credits:<br />
==============================<br />
 <br />
&nbsp;&nbsp;&nbsp;&nbsp; Sephirothspawn: For all the coding help and the Skill Shop script which inspired me<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to make my own.<br />
 <br />
=end<br />
#===================================================<br />
# ^ Module SkillShop_Config Begins<br />
#===================================================<br />
module Skill_Shop<br />
 # Skill Shop Config<br />
&nbsp;&nbsp;&nbsp;&nbsp; #Edit here<br />
&nbsp;&nbsp;&nbsp;&nbsp;Shop_Message = "Witam, w czym moge pomóc?"<br />
&nbsp;&nbsp;&nbsp;&nbsp;How_Learn = "Czego chcesz się nauczyć?"&nbsp;&nbsp; #Text shown above Characters in shop window<br />
&nbsp;&nbsp;&nbsp;&nbsp;Can_Learn = "Naucz!"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#Text shown when a hearo can learn the skill<br />
&nbsp;&nbsp;&nbsp;&nbsp;Can_Learn_Lv = "Learn on Lv"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#text shown when a hero CAN learn the skill<br />
&nbsp;&nbsp;&nbsp;&nbsp;Cant_Learn = "Nie mozna się nauczyć"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Text shown if a hero is unable to learn that perticular skill<br />
&nbsp;&nbsp;&nbsp;&nbsp;Learnt = "Nauczony!"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #text shown when a hero has learnt a skill<br />
&nbsp;&nbsp;&nbsp;&nbsp;Teach = "Lista Nauk!"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#Command (Buy in normal shops)<br />
&nbsp;&nbsp;&nbsp;&nbsp;Cancel = "Wyjdź"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Command (Cancel in normal shops)<br />
 <br />
&nbsp;&nbsp;# Tutaj dodaj ceny<br />
&nbsp;&nbsp;PRICE = {<br />
&nbsp;&nbsp;0 =&gt; 80,&nbsp;&nbsp; #Domyślna cena umiejętności bez zestawu cen<br />
&nbsp;&nbsp;1 =&gt; 129,&nbsp;&nbsp; #Cena dla Skill ID&nbsp;&nbsp; 1<br />
&nbsp;&nbsp;2 =&gt; 300,<br />
&nbsp;&nbsp;3 =&gt; 450,<br />
&nbsp;&nbsp;}<br />
 <br />
&nbsp;&nbsp;# Skill Data<br />
&nbsp;&nbsp;# add the skills that each individual hero can learn.<br />
&nbsp;&nbsp;#Layout is mentioned above.<br />
&nbsp;&nbsp;SKILL_BUY = {<br />
1 =&gt; [<br />
&nbsp;&nbsp;[1,4],[2,3],[3,1],[7,1],<br />
],<br />
 <br />
2 =&gt; [<br />
&nbsp;&nbsp;[1,4],[2,3],[3,1],[7,5],<br />
],<br />
 <br />
3 =&gt; [<br />
&nbsp;&nbsp;[1,4],[2,3],[3,1],[7,5],<br />
],<br />
 <br />
}<br />
&nbsp;&nbsp;# Add Price<br />
&nbsp;&nbsp;def self.skill_price(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp; if PRICE.include?(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return PRICE[id]<br />
&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return PRICE[0]<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;# Add Hero id<br />
&nbsp;&nbsp;def self.skill_buy(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp; if SKILL_BUY.include?(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return SKILL_BUY[id]<br />
&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return []<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;end<br />
end<br />
#==============================================================================<br />
# ** Class Game_Actor<br />
#------------------------------------------------------------------------------<br />
#&nbsp;&nbsp; This class handles the actor array. Refer to "&#36;game_actors" for each<br />
#&nbsp;&nbsp; instance of this class.<br />
#==============================================================================<br />
class Game_Actor &lt; Game_Battler<br />
&nbsp;&nbsp;def learn?(skill)<br />
&nbsp;&nbsp;&nbsp;&nbsp; learn = skill_learn?(skill.id)<br />
&nbsp;&nbsp;&nbsp;&nbsp; if learn<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false<br />
&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;end<br />
end<br />
#==============================================================================<br />
#class Window_Skill_ShopCommand<br />
#==============================================================================<br />
class Window_Skill_ShopCommand &lt; Window_Selectable<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Object Initialization<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp; super(0, 64, 480, 64)<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents = Bitmap.new(width - 32, height - 32)<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.font.name = "Tahoma"<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.font.size = 21<br />
&nbsp;&nbsp;&nbsp;&nbsp; @item_max = 2<br />
&nbsp;&nbsp;&nbsp;&nbsp; @column_max = 2<br />
&nbsp;&nbsp;&nbsp;&nbsp; #Commands Setup... if you wish to add more commands edit here.<br />
&nbsp;&nbsp;&nbsp;&nbsp; s1 = Skill_Shop::Teach<br />
&nbsp;&nbsp;&nbsp;&nbsp; s2 = Skill_Shop::Cancel<br />
&nbsp;&nbsp;&nbsp;&nbsp; @commands = [s1, s2]<br />
&nbsp;&nbsp;&nbsp;&nbsp; refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.index = 0<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Refresh<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.clear<br />
&nbsp;&nbsp;&nbsp;&nbsp; for i in 0...@item_max<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_item(i)<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_item(index)<br />
&nbsp;&nbsp;&nbsp;&nbsp; x = 4 + index * 240<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.draw_text(x, 0, 128, 32, @commands[index])<br />
&nbsp;&nbsp;end<br />
end<br />
#==============================================================================<br />
#class Window_Skill_ShopBuy<br />
#==============================================================================<br />
class Window_Skill_ShopBuy &lt; Window_Selectable<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Object Initialization<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize(shop_goods)<br />
&nbsp;&nbsp;&nbsp;&nbsp; super(0, 128, 368, 352)<br />
&nbsp;&nbsp;&nbsp;&nbsp; @skill_shop_goods = &#36;skill_shop<br />
&nbsp;&nbsp;&nbsp;&nbsp; refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.index = 0<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def skill<br />
&nbsp;&nbsp;&nbsp;&nbsp; return @data[self.index]<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Refresh<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp; if self.contents != nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents = nil<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;&nbsp;&nbsp; @data = []<br />
&nbsp;&nbsp;&nbsp;&nbsp; for i in 0...@skill_shop_goods.size<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;skill = &#36;data_skills[@skill_shop_goods[i]]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if skill != nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @data.push(skill)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;&nbsp;&nbsp; # If the number of items is not 0, it draws up bit map, drawing all item<br />
&nbsp;&nbsp;&nbsp;&nbsp; @item_max = @data.size<br />
&nbsp;&nbsp;&nbsp;&nbsp; if @item_max &gt; 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width - 32, row_max * 32)<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.font.name = "Tahoma"<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.font.size = 21<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i in 0...@item_max<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; draw_item(i)<br />
&nbsp;&nbsp;&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_item(index)<br />
&nbsp;&nbsp;&nbsp;&nbsp; skill = @data[index]<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Acquiring the frequency of possession of the item<br />
&nbsp;&nbsp;&nbsp;&nbsp; price = Skill_Shop.skill_price(skill.id)<br />
&nbsp;&nbsp;&nbsp;&nbsp; enabled = (price &lt;= &#36;game_party.gold)<br />
&nbsp;&nbsp;&nbsp;&nbsp; # If price is not below the money in hand, at the same time the frequency of possession 99, usually in letter color<br />
&nbsp;&nbsp;&nbsp;&nbsp; # So if is not, it sets to invalid letter color<br />
&nbsp;&nbsp;&nbsp;&nbsp; if enabled<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = normal_color<br />
&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = disabled_color<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;&nbsp;&nbsp; x = 4<br />
&nbsp;&nbsp;&nbsp;&nbsp; y = index * 32<br />
&nbsp;&nbsp;&nbsp;&nbsp; rect = Rect.new(x, y, self.width - 32, 32)<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))<br />
&nbsp;&nbsp;&nbsp;&nbsp; bitmap = RPG::Cache.icon(skill.icon_name)<br />
&nbsp;&nbsp;&nbsp;&nbsp; opacity = self.contents.font.color == normal_color ? 255 : 128<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.draw_text(x + 28, y, 212, 32, skill.name, 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.draw_text(x + 240, y, 88, 32, price.to_s, 2)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update_help<br />
&nbsp;&nbsp;&nbsp;&nbsp; @help_window.set_text(skill == nil ? "" : skill.description)<br />
&nbsp;&nbsp;end<br />
end<br />
#==============================================================================<br />
#class Window_Skill_ShopStatus<br />
#==============================================================================<br />
class Window_Skill_ShopStatus &lt; Window_Selectable<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Object Initialization<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp; super(368, 128, 272, 352)<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents = Bitmap.new(width - 32, height - 32)<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.font.name = "Tahoma"<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.font.size = 21<br />
&nbsp;&nbsp;&nbsp;&nbsp; @item = nil<br />
&nbsp;&nbsp;&nbsp;&nbsp; refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.active = false<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.index = -1<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Refresh<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.clear<br />
&nbsp;&nbsp;&nbsp;&nbsp; @item_max = &#36;game_party.actors.size<br />
&nbsp;&nbsp;&nbsp;&nbsp; if @item == nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.font.color = system_color<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.draw_text(4, 0, self.width - 32, 32, Skill_Shop::How_Learn)<br />
&nbsp;&nbsp;&nbsp;&nbsp; self.contents.font.color = normal_color<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Equipment supplementary information<br />
&nbsp;&nbsp;&nbsp;&nbsp; for i in 0...&#36;game_party.actors.size<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Acquiring the actor<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;can = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lv = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ac_lv = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;actor = &#36;game_party.actors[i]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;can_learn = Skill_Shop.skill_buy(actor.id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id = @item.id<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for e in 0...can_learn.size<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if can_learn[e][0] == id<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;can = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if can_learn[e][1] &lt;= actor.level<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lv = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lv = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ac_lv = can_learn[e][1]<br />
&nbsp;&nbsp;&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;&nbsp;&nbsp;break<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;can = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enabled = (can and lv and actor.learn?(@item))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# If equipment possibility if usually in letter color, the impossibility, it sets to invalid letter color<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if enabled<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.contents.font.color = normal_color<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.contents.font.color = disabled_color<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#Draw Character Pic<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cw = bitmap.rect.width / 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ch = bitmap.rect.height / 4<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;cx = contents.text_size(actor.name).width<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.blt(cx, 64 + 64 * i, bitmap, src_rect)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Drawing the name of the actor<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, 64 + 64 * i, 120, 32, actor.name)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Check Skill<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if can == false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text = Skill_Shop::Cant_Learn<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif can == true and lv == false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ac = ac_lv.to_s<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text = Skill_Shop::Can_Learn_Lv + " " + ac + "+"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif actor.learn?(@item) == false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text = Skill_Shop::Learnt<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text = Skill_Shop::Can_Learn<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Drawing the item<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(124, 64 + 64 * i, 112, 32, text, 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def item=(item)<br />
&nbsp;&nbsp;&nbsp;&nbsp; if @item != item<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@item = item<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update_cursor_rect<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Cursor position as for -1 all selection, -2 below independence selection (user himself)<br />
&nbsp;&nbsp;&nbsp;&nbsp; if @index &lt; 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.cursor_rect.empty<br />
&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.cursor_rect.set(0, 62 + @index * 64, self.width - 32, 50)<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;end<br />
end<br />
#==============================================================================<br />
#class Scene_Skill_Shop<br />
#==============================================================================<br />
#<br />
#<br />
#-----I advise you not to touch anything past here unless you know what you are doing.-------<br />
#<br />
#<br />
class Scene_Skill_Shop<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def main<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Drawing up the help window<br />
&nbsp;&nbsp;&nbsp;&nbsp; @help_window = Window_Help.new<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Drawing up the command window<br />
&nbsp;&nbsp;&nbsp;&nbsp; @command_window = Window_Skill_ShopCommand.new<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Drawing up the Goldwyn dough<br />
&nbsp;&nbsp;&nbsp;&nbsp; @gold_window = Window_Gold.new<br />
&nbsp;&nbsp;&nbsp;&nbsp; @gold_window.x = 480<br />
&nbsp;&nbsp;&nbsp;&nbsp; @gold_window.y = 64<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Drawing up the dummy window<br />
&nbsp;&nbsp;&nbsp;&nbsp; @dummy_window = Window_Base.new(0, 128, 640, 352)<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Drawing up the purchase window<br />
&nbsp;&nbsp;&nbsp;&nbsp; @buy_window = Window_Skill_ShopBuy.new(&#36;game_temp.shop_goods)<br />
&nbsp;&nbsp;&nbsp;&nbsp; @buy_window.active = false<br />
&nbsp;&nbsp;&nbsp;&nbsp; @buy_window.visible = false<br />
&nbsp;&nbsp;&nbsp;&nbsp; @buy_window.help_window = @help_window<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Drawing up the status window<br />
&nbsp;&nbsp;&nbsp;&nbsp; @status_window = Window_Skill_ShopStatus.new<br />
&nbsp;&nbsp;&nbsp;&nbsp; @status_window.visible = false<br />
&nbsp;&nbsp;&nbsp;&nbsp; @status_window.active<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Transition execution<br />
&nbsp;&nbsp;&nbsp;&nbsp; Graphics.transition<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Main loop<br />
&nbsp;&nbsp;&nbsp;&nbsp; loop do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Renewing the game picture<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Graphics.update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Updating the information of input<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Input.update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Frame renewal<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# When the picture changes, discontinuing the loop<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;scene != self<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Transition preparation<br />
&nbsp;&nbsp;&nbsp;&nbsp; Graphics.freeze<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Releasing the window<br />
&nbsp;&nbsp;&nbsp;&nbsp; @help_window.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp; @command_window.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp; @gold_window.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp; @dummy_window.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp; @buy_window.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp; @status_window.dispose<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Renewing the window<br />
&nbsp;&nbsp;&nbsp;&nbsp; @help_window.update<br />
&nbsp;&nbsp;&nbsp;&nbsp; @command_window.update<br />
&nbsp;&nbsp;&nbsp;&nbsp; @gold_window.update<br />
&nbsp;&nbsp;&nbsp;&nbsp; @dummy_window.update<br />
&nbsp;&nbsp;&nbsp;&nbsp; @buy_window.update<br />
&nbsp;&nbsp;&nbsp;&nbsp; @status_window.update<br />
&nbsp;&nbsp;&nbsp;&nbsp; # When the command window is active,: Update_command is called<br />
&nbsp;&nbsp;&nbsp;&nbsp; if @command_window.active<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_command<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;&nbsp;&nbsp; # When the purchase window is active,: Update_buy is called<br />
&nbsp;&nbsp;&nbsp;&nbsp; if @buy_window.active<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_buy<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;&nbsp;&nbsp; # When the target window is active,: Update_target is called<br />
&nbsp;&nbsp;&nbsp;&nbsp; if @status_window.active<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_target<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update_command<br />
&nbsp;&nbsp;&nbsp;&nbsp; # The B when button is pushed<br />
&nbsp;&nbsp;&nbsp;&nbsp; if Input.trigger?(Input::B)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Performing cancellation SE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.cancel_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Change to map picture<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;scene = Scene_Map.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;&nbsp;&nbsp; # When C button is pushed<br />
&nbsp;&nbsp;&nbsp;&nbsp; if Input.trigger?(Input::C)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Eliminating the help text<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@help_window.set_text("")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# It diverges at cursor position of the command window<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case @command_window.index<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 0&nbsp;&nbsp; # It purchases<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Performing decision SE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#36;game_system.se_play(&#36;data_system.decision_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # State of window to purchase mode<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @command_window.active = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @dummy_window.visible = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @buy_window.active = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @buy_window.visible = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @buy_window.refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @status_window.visible = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 1&nbsp;&nbsp; # It stops<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Performing decision SE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#36;game_system.se_play(&#36;data_system.decision_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Change to map picture<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#36;scene = Scene_Map.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update_buy<br />
&nbsp;&nbsp;&nbsp;&nbsp; # Setting the item of the status window<br />
&nbsp;&nbsp;&nbsp;&nbsp; @status_window.item = @buy_window.skill<br />
&nbsp;&nbsp;&nbsp;&nbsp; # The B when button is pushed<br />
&nbsp;&nbsp;&nbsp;&nbsp; if Input.trigger?(Input::B)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Performing cancellation SE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.cancel_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# State of window to early mode<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.active = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@dummy_window.visible = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@buy_window.active = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@buy_window.visible = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.visible = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.item = nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Eliminating the help text<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@help_window.set_text("")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;&nbsp;&nbsp; # When C button is pushed<br />
&nbsp;&nbsp;&nbsp;&nbsp; if Input.trigger?(Input::C)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Acquiring the item<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@item = @buy_window.skill<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@price = Skill_Shop.skill_price(@item.id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enabled = (@price &lt;= &#36;game_party.gold)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# When the item is invalid, or when price it is on from the money in hand<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unless&nbsp;&nbsp; enabled<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Performing buzzer SE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#36;game_system.se_play(&#36;data_system.buzzer_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Performing decision SE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@buy_window.active = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.active = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.index = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update_target<br />
&nbsp;&nbsp;&nbsp;&nbsp; # The B when button is pushed<br />
&nbsp;&nbsp;&nbsp;&nbsp; if Input.trigger?(Input::B)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Performing cancellation SE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.cancel_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Eliminating the target window<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@buy_window.active = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.index =- 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.active = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;&nbsp;&nbsp; # When C button is pushed<br />
&nbsp;&nbsp;&nbsp;&nbsp; if Input.trigger?(Input::C)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@actor = &#36;game_party.actors[@status_window.index]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;can = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lv = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;can_learn = Skill_Shop.skill_buy(@actor.id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id = @item.id<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i in 0...can_learn.size<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if can_learn[i][0] == id<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;can = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if can_learn[i][1] &lt;= @actor.level<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lv = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lv = false<br />
&nbsp;&nbsp;&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;&nbsp;&nbsp;break<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;can = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enabled = (can and lv and @actor.learn?(@item))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# When with SP and so on is cut off and it becomes not be able to use<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unless enabled<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Performing buzzer SE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#36;game_system.se_play(&#36;data_system.buzzer_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Performing shop SE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.shop_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@actor.learn_skill(@item.id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.lose_gold(@price)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@buy_window.refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@gold_window.refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.refresh<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@buy_window.active = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.index =- 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.active = false<br />
&nbsp;&nbsp;&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;">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://img98.imageshack.us/img98/6679/92790779.jpg" border="0" alt="[Obrazek: 92790779.jpg]" /><br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Aby wywołać sklep w zakładce script wpisz:<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>&#36;scene = Scene_Skill_Shop.new<br />
&#36;skill_shop = [1]</code></div></div>
1 oznacza ID sklepu, sklepy definiujemy od linijki 68 poniżej przykład sklepu:<br />
1 =&gt; [<br />
  [1,4],[2,3],[3,1],[7,1],<br />
],<br />
1 - Oznacza ID skilla,  4 - Oznacza Lewel wymagany do nauczenia się umiejętności]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[House System]]></title>
			<link>https://forum.ultimateam.pl/Thread-XP-House-System</link>
			<pubDate>Sun, 07 Sep 2014 14:10:49 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-XP-House-System</guid>
			<description><![CDATA[<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt pozwala na dekorowanie wnętrz naszego domu, ogrodu lub czego sobie zażyczymy.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
MephistoX<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>Skrypt składa się z paru części które znajdują się w demie.</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://dc695.4shared.com/img/mWkQ4imdba/s7/14850037d18/1_online.PNG?async&amp;rand=0.7602849004324526" border="0" alt="[Obrazek: 1_online.PNG?async&amp;amp;rand=0.7602849004324526]" /><br />
<img class="postimage" src="http://dc695.4shared.com/img/Gj74-0Vece/s7/148500384e8/2_online.PNG?async&amp;rand=0.8501411352772266" border="0" alt="[Obrazek: 2_online.PNG?async&amp;amp;rand=0.8501411352772266]" /><br />
<img class="postimage" src="http://dc695.4shared.com/img/dNPnLav-ce/s7/148500384e8/3_online.PNG?async&amp;rand=0.6040957865770906" border="0" alt="[Obrazek: 3_online.PNG?async&amp;amp;rand=0.6040957865770906]" /><br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Demo:</span></span><br />
<a href="https://www.dropbox.com/s/2i8g0xelmn1ohye/House_System.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 />
Przedmioty do umieszczenia na mapie tworzymy na specjalnej mapie o nazwie "Furnitures" następnie definiujemy je w skrypcie "Houses.Module"<br />
Edytor wnętrz uruchamiamy za pomocą klawisza "D"<br />
W przypadku problemów lub innych pytań, proszę o zapytanie w tym temacie.]]></description>
			<content:encoded><![CDATA[<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt pozwala na dekorowanie wnętrz naszego domu, ogrodu lub czego sobie zażyczymy.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
MephistoX<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>Skrypt składa się z paru części które znajdują się w demie.</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://dc695.4shared.com/img/mWkQ4imdba/s7/14850037d18/1_online.PNG?async&amp;rand=0.7602849004324526" border="0" alt="[Obrazek: 1_online.PNG?async&amp;amp;rand=0.7602849004324526]" /><br />
<img class="postimage" src="http://dc695.4shared.com/img/Gj74-0Vece/s7/148500384e8/2_online.PNG?async&amp;rand=0.8501411352772266" border="0" alt="[Obrazek: 2_online.PNG?async&amp;amp;rand=0.8501411352772266]" /><br />
<img class="postimage" src="http://dc695.4shared.com/img/dNPnLav-ce/s7/148500384e8/3_online.PNG?async&amp;rand=0.6040957865770906" border="0" alt="[Obrazek: 3_online.PNG?async&amp;amp;rand=0.6040957865770906]" /><br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Demo:</span></span><br />
<a href="https://www.dropbox.com/s/2i8g0xelmn1ohye/House_System.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 />
Przedmioty do umieszczenia na mapie tworzymy na specjalnej mapie o nazwie "Furnitures" następnie definiujemy je w skrypcie "Houses.Module"<br />
Edytor wnętrz uruchamiamy za pomocą klawisza "D"<br />
W przypadku problemów lub innych pytań, proszę o zapytanie w tym temacie.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Ayene's Quest Log]]></title>
			<link>https://forum.ultimateam.pl/Thread-XP-Ayene-s-Quest-Log</link>
			<pubDate>Fri, 25 Jul 2014 10:39:26 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-XP-Ayene-s-Quest-Log</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Ayene's Quest Log / Dziennik Misji Ayene ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt pozwala na wprowadzenie systemu Dziennika Misji.<br />
<br />
Sposób konfiguracji i wygląd Dziennika (ikony kategorii) inspirowany skryptem (Quest Journal VX) modern_algebry. <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 />
#&nbsp;&nbsp;Ayene's Quest Log<br />
#&nbsp;&nbsp;Autor: Ayene<br />
#&nbsp;&nbsp;Wersja: 1.0<br />
#&nbsp;&nbsp;forum.ultimateam.pl<br />
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
#&nbsp;&nbsp;Instrukcja:<br />
#&nbsp;&nbsp;Skrypt pozwala na wprowadzenie systemu Dziennika Misji.<br />
#<br />
#&nbsp;&nbsp;Oto kilka wywołań, które pozawalają kontrolować Dziennik <br />
#&nbsp;&nbsp;za pomocą polecenia "Script" w zdarzeniu:<br />
#<br />
#&nbsp;&nbsp;&nbsp;&nbsp; quest_new(id_misji) - aktywuje misję ze wszystkimi zadaniami.<br />
#&nbsp;&nbsp;&nbsp;&nbsp; <br />
#&nbsp;&nbsp;&nbsp;&nbsp; quest_task_new(id_misji, zadanie) - aktywuje wybrane zadanie misji<br />
#&nbsp;&nbsp;&nbsp;&nbsp; quest_task_complete(id_misji, zadanie) - oznakowuje zadanie jako ukończone<br />
#&nbsp;&nbsp;&nbsp;&nbsp; quest_task_fail(id_misji, zadanie) - oznakowuje zadanie jako nieudane<br />
#<br />
#&nbsp;&nbsp;&nbsp;&nbsp; quest_active?(id_misji) - sprawdza, czy misja jest aktywna<br />
#&nbsp;&nbsp;&nbsp;&nbsp; quest_task_active?(id_misji, zadanie) - sprawdza, czy zadanie jest aktywne<br />
#&nbsp;&nbsp;&nbsp;&nbsp; quest_complete?(id_misji) - sprawdza, czy misja jest ukończona<br />
#&nbsp;&nbsp;&nbsp;&nbsp; quest_failed?(id_misji) - sprawdza, czy misja jest nieudana<br />
#<br />
#&nbsp;&nbsp;&nbsp;&nbsp; quest_delete(id) - usuwa całkowicie misję z listy<br />
#<br />
#&nbsp;&nbsp;Sposób konfiguracji i wygląd Dziennika (ikony kategorii) inspirowany<br />
#&nbsp;&nbsp;skryptem (Quest Journal) modern_algebry. <br />
#============================================================================== <br />
# ** QuestLogConfig <br />
#============================================================================== <br />
module AYENE<br />
&nbsp;&nbsp;module QuestLogConfig<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Wejście do Dziennika po wciśnięciu przycisku<br />
&nbsp;&nbsp;&nbsp;&nbsp;MAPKEY = true&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;MAPKEY_BUTTON = Input::A<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;# ID przełącznika włączającego / wyłączającego Dziennik<br />
&nbsp;&nbsp;&nbsp;&nbsp;DISABLED_SWITCH_ID = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Plik z ikonami (Graphics/Icons)<br />
&nbsp;&nbsp;&nbsp;&nbsp;QUEST_CAT_ICONS = "quest_icons"<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Kolory kategorii<br />
&nbsp;&nbsp;&nbsp;&nbsp;COMPLETE_COLOR = Color.new(255, 80, 80, 255) # Ukończone<br />
&nbsp;&nbsp;&nbsp;&nbsp;FAILED_COLOR = Color.new(80, 255, 80, 255)&nbsp;&nbsp; # Nieudane<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Słownik<br />
&nbsp;&nbsp;&nbsp;&nbsp;LANG_CATEGORY_NAME = ["Misje aktywne", "Misje ukończone", "Misje nieudane", "Wszystkie misje"]<br />
&nbsp;&nbsp;&nbsp;&nbsp;LANG_DIFFICULTY = "Trudność: "<br />
&nbsp;&nbsp;&nbsp;&nbsp;LANG_DESCRIPTION = "Opis: "<br />
&nbsp;&nbsp;&nbsp;&nbsp;LANG_TASKS = "Zadania: "<br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;~~<br />
&nbsp;&nbsp;&nbsp;&nbsp;# * Data<br />
&nbsp;&nbsp;&nbsp;&nbsp;#----------------------------------------------------------------------------<br />
&nbsp;&nbsp;&nbsp;&nbsp;def self.quest(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tasks = []<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name = '???'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description = '???'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;difficulty = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case id<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# * KONFIGURACJA MISJI<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#------------------------------------------------------------------------<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;Każda misja musi mieć przyporządkowane indywidualne ID.&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;Ogólny wzór:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; when &lt;id_misji&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name = '&lt;nazwa_misji&gt;' <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description = '&lt;opis_misji&gt;'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tasks[0] = '&lt;pierwsze_zadanie&gt;'<br />
&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;tasks[8] = '&lt;kolejne zadanie&gt;' <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;difficulty = &lt;trudnosc_zadania&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;Powyższe parametry odpowiadają za:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : przyporządkowane ID misji [1..n]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : nazwa misji<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;opis&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : krótka charakterystyka misji - maksymalnie dwie linijki<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tasks&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: poszczególne zadania w misji [0..8]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;difficulty : trudność misji oznakowana gwiazdkami [1..4]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name = 'Łatanie podłogi'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description = 'Twój dom potrzebuje gruntownego remontu.|Na początek załataj dziury w podłodze'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tasks[0] = 'Znajdź narzędzia.'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tasks[1] = 'Zdobądź deski.'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tasks[2] = 'Załataj dziury.'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;difficulty = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name = 'Porządki'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description = 'Wypadałoby przed przyjściem gości nieco posprzątać.|Spraw, by było czysto i przytulnie.'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tasks[0] = 'Zbierz papiery i butelki z podłogi.'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tasks[1] = 'Rozpal w kominku.'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;difficulty = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 3 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name = 'Pieczenie ciasta'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description = 'Musisz dbać o dobrosąsiedzkie stosunki.|Odwiedź sąsiada z blachą ciasta.'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tasks[0] = 'Upiecz ciasto.'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tasks[1] = 'Odwiedź sąsiada z ciastem.'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;difficulty = 2&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return name, description, tasks, difficulty<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
#============================================================================== <br />
# ** Game_Quests <br />
#============================================================================== <br />
class Game_Quests<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;# * Public Instance Variables<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;attr_reader&nbsp;&nbsp; :name<br />
&nbsp;&nbsp;attr_reader&nbsp;&nbsp; :description<br />
&nbsp;&nbsp;attr_reader&nbsp;&nbsp; :tasks<br />
&nbsp;&nbsp;attr_reader&nbsp;&nbsp; :actived <br />
&nbsp;&nbsp;attr_reader&nbsp;&nbsp; :completed <br />
&nbsp;&nbsp;attr_reader&nbsp;&nbsp; :failed&nbsp;&nbsp; <br />
&nbsp;&nbsp;attr_reader&nbsp;&nbsp; :difficulty<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;# * Object Initialization<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;def initialize(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@id = id<br />
&nbsp;&nbsp;&nbsp;&nbsp;@name, @description, @tasks, @difficulty = AYENE::QuestLogConfig.quest(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@actived = []<br />
&nbsp;&nbsp;&nbsp;&nbsp;@completed = []<br />
&nbsp;&nbsp;&nbsp;&nbsp;@failed = []<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;# * New Task<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;def new(index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return unless index &lt; @tasks.size <br />
&nbsp;&nbsp;&nbsp;&nbsp;@actived |= [index]<br />
&nbsp;&nbsp;&nbsp;&nbsp;@actived.sort!<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;# * Complete Task<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;def complete(index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return unless index &lt; @tasks.size<br />
&nbsp;&nbsp;&nbsp;&nbsp;return if @failed.include?(index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;new(index) unless @actived.include?(index)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;@completed |= [index]&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;@completed.sort!<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;# * Uncomplete Task<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;def uncomplete(index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@complete.delete(index)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;# * Fail Task<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;def fail(index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return unless index &lt; @tasks.size<br />
&nbsp;&nbsp;&nbsp;&nbsp;new(index) unless @actived.include?(index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@failed |= [index]<br />
&nbsp;&nbsp;&nbsp;&nbsp;@failed.sort!<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;# * Unfail Task<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;def unfail(index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@failed.delete(index)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;# * Active?<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;def active?<br />
&nbsp;&nbsp;&nbsp;&nbsp;return @actived != []<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;# * Active?<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;def actived?(index)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;return @actived.include?(index)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;# * Complete?<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;def complete?<br />
&nbsp;&nbsp;&nbsp;&nbsp;return @completed.size == @tasks.size<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;# * Failed?<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;def failed?<br />
&nbsp;&nbsp;&nbsp;&nbsp;return @failed != []<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
#============================================================================== <br />
# ** Game_Party <br />
#============================================================================== <br />
class Game_Party<br />
&nbsp;&nbsp;include AYENE::QuestLogConfig<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Public Instance Variables<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;attr_reader&nbsp;&nbsp; :quests<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Object Initialization (aliased method)<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;alias aye_quest_gmparty_ini initialize<br />
&nbsp;&nbsp;def initialize&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;aye_quest_gmparty_ini&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;@quests = {}<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Get Quest<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def quest(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@quests[id] = Game_Quests.new(id) if @quests[id] == nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;return @quests[id]<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Get Quest List<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def quests_list<br />
&nbsp;&nbsp;&nbsp;&nbsp;return @quests.values<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Completed Quest List<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def completed_quests_list<br />
&nbsp;&nbsp;&nbsp;&nbsp;list = []<br />
&nbsp;&nbsp;&nbsp;&nbsp;quests_list.each {|quest| list.push(quest) if quest.complete? }<br />
&nbsp;&nbsp;&nbsp;&nbsp;return list<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Failed Quest List<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def failed_quests_list<br />
&nbsp;&nbsp;&nbsp;&nbsp;list = []<br />
&nbsp;&nbsp;&nbsp;&nbsp;quests_list.each {|quest| list.push(quest) if quest.failed? }<br />
&nbsp;&nbsp;&nbsp;&nbsp;return list<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Active Quest List<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def active_quests_list<br />
&nbsp;&nbsp;&nbsp;&nbsp;return quests_list - completed_quests_list - failed_quests_list<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Delete Quest<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def delete_quest(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@quests.delete(id)<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
#============================================================================== <br />
# ** Interpreter <br />
#============================================================================== <br />
class Interpreter<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Add New Quest<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def quest_new(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.quest(id).tasks.each_index {|i| &#36;game_party.quest(id).new(i)}<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Add New Task to the Quest<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def quest_task_new(id, task)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.quest(id).new(task)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Complete Quest Task<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def quest_task_complete(id, task)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.quest(id).complete(task)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Fail Quest Task<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def quest_task_fail(id, task)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.quest(id).fail(task)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Check Quest Active? <br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def quest_active?(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.quests[id].active? unless &#36;game_party.quests[id].nil?<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Check Quest Task Active? <br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def quest_task_active?(id, task)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.quests[id].actived?(task) unless &#36;game_party.quests[id].nil?<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Check Quest Complete? <br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def quest_complete?(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.quests[id].complete? unless &#36;game_party.quests[id].nil?<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Check Quest Failed? <br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def quest_failed?(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.quests[id].failed? unless &#36;game_party.quests[id].nil?<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Delete Quest<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def quest_delete(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.delete_quest(id)<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
#============================================================================== <br />
# ** Window_QuestHelp <br />
#============================================================================== <br />
class Window_QuestHelp &lt; Window_Help<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Object Initialization<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp;super()<br />
&nbsp;&nbsp;&nbsp;&nbsp;w, h = 224, 64<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.x, self.y, self.width, self.height = 0, 0, w, h<br />
&nbsp;&nbsp;&nbsp;&nbsp;contents.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new (w - 32, h - 32)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Set Text<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def set_text(text, align = 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;super(text, 1)<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
#============================================================================== <br />
# ** Window_QuestCategory <br />
#============================================================================== <br />
class Window_QuestCategory &lt; Window_Selectable <br />
&nbsp;&nbsp;include AYENE::QuestLogConfig<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Object Initialization <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def initialize&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;super(0, 64, 224, 64)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@item_max = 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;@column_max = @item_max <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width - 32, height - 32) <br />
&nbsp;&nbsp;&nbsp;&nbsp;refresh <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.index = 0 <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Refresh <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def refresh <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.clear <br />
&nbsp;&nbsp;&nbsp;&nbsp;@item_max.times {|i| draw_item(i)}<br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Draw Item <br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; index : item number <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def draw_item(index) <br />
&nbsp;&nbsp;&nbsp;&nbsp;rect = Rect.new(0 + 32 * index, 0, 32, 32)<br />
&nbsp;&nbsp;&nbsp;&nbsp;bitmap = RPG::Cache.icon(QUEST_CAT_ICONS)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.blt(8 + 48 * index, 0, bitmap, rect)<br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Cursor Rectangle Update <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def update_cursor_rect <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.cursor_rect.set(8 + @index * 48, 0, 32, 32) <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Help Text Update<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update_help<br />
&nbsp;&nbsp;&nbsp;&nbsp;@help_window.set_text(self.index &gt; 4 ? "" : LANG_CATEGORY_NAME[index])<br />
&nbsp;&nbsp;end<br />
end <br />
<br />
#============================================================================== <br />
# ** Window_QuestList <br />
#============================================================================== <br />
class Window_QuestList &lt; Window_Selectable <br />
&nbsp;&nbsp;include AYENE::QuestLogConfig<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Object Initialization <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp;super(0, 128, 224, 352)<br />
&nbsp;&nbsp;&nbsp;&nbsp;refresh <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.index = 0&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Quest<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def quest<br />
&nbsp;&nbsp;&nbsp;&nbsp;return @data[self.index]<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Refresh <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def refresh(category = 0) <br />
&nbsp;&nbsp;&nbsp;&nbsp;if self.contents != nil <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.dispose <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents = nil <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;case category<br />
&nbsp;&nbsp;&nbsp;&nbsp;when 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@data = &#36;game_party.active_quests_list<br />
&nbsp;&nbsp;&nbsp;&nbsp;when 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@data = &#36;game_party.completed_quests_list<br />
&nbsp;&nbsp;&nbsp;&nbsp;when 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@data = &#36;game_party.failed_quests_list<br />
&nbsp;&nbsp;&nbsp;&nbsp;when 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@data = &#36;game_party.quests_list<br />
&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;@item_max = @data.size<br />
&nbsp;&nbsp;&nbsp;&nbsp;if @item_max &gt; 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width - 32, row_max * 32) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i in 0...@item_max <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_item(i) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Draw Item<br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; index : item number<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_item(index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;quest = @data[index]<br />
&nbsp;&nbsp;&nbsp;&nbsp;y = index * 32<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = normal_color<br />
&nbsp;&nbsp;&nbsp;&nbsp;if quest.complete?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = FAILED_COLOR <br />
&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if quest.failed?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = COMPLETE_COLOR<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, y, 204, 32, quest.name, 0)<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
#============================================================================== <br />
# ** Window_QuestInfo_Name <br />
#============================================================================== <br />
class Window_QuestInfo_Name &lt; Window_Selectable <br />
&nbsp;&nbsp;include AYENE::QuestLogConfig<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Object Initialization<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp;super(224, 0, 416, 64)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width - 32, height - 32)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Refresh <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def refresh(quest = nil)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;return if quest == nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = system_color<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, 0, 196, 32, quest.name, 0)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;text = LANG_DIFFICULTY&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;w = self.contents.text_size(text).width<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(196, 0, w, 32, text, 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;quest.difficulty.times {|i| draw_icon(196 + w + i*24, 0, 0)}<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Draw Icon<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def draw_icon(x, y, index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;rect = Rect.new(128 + 32 * index, 0, 32, 32)<br />
&nbsp;&nbsp;&nbsp;&nbsp;bitmap = RPG::Cache.icon(QUEST_CAT_ICONS)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.blt(x, y, bitmap, rect)<br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
end<br />
<br />
#============================================================================== <br />
# ** Window_QuestInfo_Description <br />
#============================================================================== <br />
class Window_QuestInfo_Description &lt; Window_Selectable <br />
&nbsp;&nbsp;include AYENE::QuestLogConfig<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Object Initialization<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp;super(224, 64, 416, 128)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width - 32, height - 32)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Refresh <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def refresh(quest = nil)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;return if quest == nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = crisis_color<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, 0, self.width - 40, 32, LANG_DESCRIPTION, 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = normal_color&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.size -= 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;desc = quest.description.split(/&#92;|/)<br />
&nbsp;&nbsp;&nbsp;&nbsp;for i in 0...desc.size<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, 32 + i * 32, self.width - 40, 32, desc[i], 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.size += 4<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
#============================================================================== <br />
# ** Window_QuestInfo_Tasks<br />
#============================================================================== <br />
class Window_QuestInfo_Tasks &lt; Window_Selectable <br />
&nbsp;&nbsp;include AYENE::QuestLogConfig<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Object Initialization<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp;super(224, 192, 416, 288)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width - 32, height - 32)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Refresh <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def refresh(quest = nil)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;return if quest == nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = crisis_color<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, 0, self.width - 40, 32, LANG_TASKS, 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = normal_color&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.size -= 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;y = 32&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;quest.actived.each {|i|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;task = quest.tasks[i]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = normal_color&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if quest.completed.include?(i)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = FAILED_COLOR<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_icon(0, y, 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif quest.failed.include?(i)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = COMPLETE_COLOR<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_icon(0, y, 3)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_icon(0, y, 1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(32, y, self.width - 40, 32, task.to_s, 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y += 24<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.size += 4<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Draw Icon<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def draw_icon(x, y, index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;rect = Rect.new(128 + 32 * index, 0, 32, 32)<br />
&nbsp;&nbsp;&nbsp;&nbsp;bitmap = RPG::Cache.icon(QUEST_CAT_ICONS)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.blt(x, y, bitmap, rect)<br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
end<br />
<br />
#============================================================================== <br />
# ** Scene_Map <br />
#============================================================================== <br />
class Scene_Map&nbsp;&nbsp; <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Frame Update (aliased method)<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias aye_quest_scmap_update update<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;aye_quest_scmap_update<br />
&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.message_window_showing<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;return if !AYENE::QuestLogConfig::MAPKEY or &#36;game_party.quests_list.empty? or &#36;game_switches[AYENE::QuestLogConfig::DISABLED_SWITCH_ID]<br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(AYENE::QuestLogConfig::MAPKEY_BUTTON)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;scene = Scene_Quest.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
#============================================================================== <br />
# ** Scene_Quest <br />
#============================================================================== <br />
class Scene_Quest<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Main Processing<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def main&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;@help_window = Window_QuestHelp.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;@category = Window_QuestCategory.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;@category.help_window = @help_window<br />
&nbsp;&nbsp;&nbsp;&nbsp;@quest_list = Window_QuestList.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;@quest_info_name = Window_QuestInfo_Name.new&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;@quest_info_description = Window_QuestInfo_Description.new&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;@quest_info_tasks = Window_QuestInfo_Tasks.new <br />
&nbsp;&nbsp;&nbsp;&nbsp;refresh_windows<br />
&nbsp;&nbsp;&nbsp;&nbsp;Graphics.transition<br />
&nbsp;&nbsp;&nbsp;&nbsp;loop do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Graphics.update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Input.update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;scene != self<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;Graphics.freeze<br />
&nbsp;&nbsp;&nbsp;&nbsp;@help_window.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp;@category.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp;@quest_list.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp;@quest_info_name.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp;@quest_info_description.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp;@quest_info_tasks.dispose<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;@category.update<br />
&nbsp;&nbsp;&nbsp;&nbsp;@help_window.update<br />
&nbsp;&nbsp;&nbsp;&nbsp;@quest_list.update&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::B)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.cancel_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;scene = Scene_Map.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::LEFT) or Input.trigger?(Input::RIGHT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@quest_list.index = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@quest_list.refresh(@category.index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;refresh_windows<br />
&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.trigger?(Input::DOWN) or Input.trigger?(Input::UP)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;refresh_windows<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Refresh Windows<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def refresh_windows<br />
&nbsp;&nbsp;&nbsp;&nbsp;@quest_info_name.refresh(@quest_list.quest)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@quest_info_description.refresh(@quest_list.quest)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@quest_info_tasks.refresh(@quest_list.quest)<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="http://www.ultimateam.pl/files/aye_quest_log.png" border="0" alt="[Obrazek: aye_quest_log.png]" /><br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Demo:</span></span><br />
<a href="http://www.ultimateam.pl/files/Ayene_Quest_Log.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;">Wymagana grafika:</span></span><br />
Umieść ją w folderze Graphics/Icons<br />
<img class="postimage" src="http://www.ultimateam.pl/files/quest_icons.png" border="0" alt="[Obrazek: quest_icons.png]" /><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Oto kilka wywołań, które pozawalają kontrolować Dziennik za pomocą polecenia "Script" w zdarzeniu:<br />
<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>quest_new(id_misji) - aktywuje misję ze wszystkimi zadaniami.<br />
<br />
quest_task_new(id_misji, zadanie) - aktywuje wybrane zadanie misji<br />
quest_task_complete(id_misji, zadanie) - oznakowuje zadanie jako ukończone<br />
quest_task_fail(id_misji, zadanie) - oznakowuje zadanie jako nieudane<br />
<br />
quest_active?(id_misji) - sprawdza, czy misja jest aktywna<br />
quest_task_active?(id_misji, zadanie) - sprawdza, czy zadanie jest aktywne<br />
quest_complete?(id_misji) - sprawdza, czy misja jest ukończona<br />
 quest_failed?(id_misji) - sprawdza, czy misja jest nieudana<br />
<br />
quest_delete(id) - usuwa całkowicie misję z listy</code></div></div>
]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Ayene's Quest Log / Dziennik Misji Ayene ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt pozwala na wprowadzenie systemu Dziennika Misji.<br />
<br />
Sposób konfiguracji i wygląd Dziennika (ikony kategorii) inspirowany skryptem (Quest Journal VX) modern_algebry. <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 />
#&nbsp;&nbsp;Ayene's Quest Log<br />
#&nbsp;&nbsp;Autor: Ayene<br />
#&nbsp;&nbsp;Wersja: 1.0<br />
#&nbsp;&nbsp;forum.ultimateam.pl<br />
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
#&nbsp;&nbsp;Instrukcja:<br />
#&nbsp;&nbsp;Skrypt pozwala na wprowadzenie systemu Dziennika Misji.<br />
#<br />
#&nbsp;&nbsp;Oto kilka wywołań, które pozawalają kontrolować Dziennik <br />
#&nbsp;&nbsp;za pomocą polecenia "Script" w zdarzeniu:<br />
#<br />
#&nbsp;&nbsp;&nbsp;&nbsp; quest_new(id_misji) - aktywuje misję ze wszystkimi zadaniami.<br />
#&nbsp;&nbsp;&nbsp;&nbsp; <br />
#&nbsp;&nbsp;&nbsp;&nbsp; quest_task_new(id_misji, zadanie) - aktywuje wybrane zadanie misji<br />
#&nbsp;&nbsp;&nbsp;&nbsp; quest_task_complete(id_misji, zadanie) - oznakowuje zadanie jako ukończone<br />
#&nbsp;&nbsp;&nbsp;&nbsp; quest_task_fail(id_misji, zadanie) - oznakowuje zadanie jako nieudane<br />
#<br />
#&nbsp;&nbsp;&nbsp;&nbsp; quest_active?(id_misji) - sprawdza, czy misja jest aktywna<br />
#&nbsp;&nbsp;&nbsp;&nbsp; quest_task_active?(id_misji, zadanie) - sprawdza, czy zadanie jest aktywne<br />
#&nbsp;&nbsp;&nbsp;&nbsp; quest_complete?(id_misji) - sprawdza, czy misja jest ukończona<br />
#&nbsp;&nbsp;&nbsp;&nbsp; quest_failed?(id_misji) - sprawdza, czy misja jest nieudana<br />
#<br />
#&nbsp;&nbsp;&nbsp;&nbsp; quest_delete(id) - usuwa całkowicie misję z listy<br />
#<br />
#&nbsp;&nbsp;Sposób konfiguracji i wygląd Dziennika (ikony kategorii) inspirowany<br />
#&nbsp;&nbsp;skryptem (Quest Journal) modern_algebry. <br />
#============================================================================== <br />
# ** QuestLogConfig <br />
#============================================================================== <br />
module AYENE<br />
&nbsp;&nbsp;module QuestLogConfig<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Wejście do Dziennika po wciśnięciu przycisku<br />
&nbsp;&nbsp;&nbsp;&nbsp;MAPKEY = true&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;MAPKEY_BUTTON = Input::A<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;# ID przełącznika włączającego / wyłączającego Dziennik<br />
&nbsp;&nbsp;&nbsp;&nbsp;DISABLED_SWITCH_ID = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Plik z ikonami (Graphics/Icons)<br />
&nbsp;&nbsp;&nbsp;&nbsp;QUEST_CAT_ICONS = "quest_icons"<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Kolory kategorii<br />
&nbsp;&nbsp;&nbsp;&nbsp;COMPLETE_COLOR = Color.new(255, 80, 80, 255) # Ukończone<br />
&nbsp;&nbsp;&nbsp;&nbsp;FAILED_COLOR = Color.new(80, 255, 80, 255)&nbsp;&nbsp; # Nieudane<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Słownik<br />
&nbsp;&nbsp;&nbsp;&nbsp;LANG_CATEGORY_NAME = ["Misje aktywne", "Misje ukończone", "Misje nieudane", "Wszystkie misje"]<br />
&nbsp;&nbsp;&nbsp;&nbsp;LANG_DIFFICULTY = "Trudność: "<br />
&nbsp;&nbsp;&nbsp;&nbsp;LANG_DESCRIPTION = "Opis: "<br />
&nbsp;&nbsp;&nbsp;&nbsp;LANG_TASKS = "Zadania: "<br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;~~<br />
&nbsp;&nbsp;&nbsp;&nbsp;# * Data<br />
&nbsp;&nbsp;&nbsp;&nbsp;#----------------------------------------------------------------------------<br />
&nbsp;&nbsp;&nbsp;&nbsp;def self.quest(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tasks = []<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name = '???'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description = '???'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;difficulty = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case id<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# * KONFIGURACJA MISJI<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#------------------------------------------------------------------------<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;Każda misja musi mieć przyporządkowane indywidualne ID.&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;Ogólny wzór:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; when &lt;id_misji&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name = '&lt;nazwa_misji&gt;' <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description = '&lt;opis_misji&gt;'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tasks[0] = '&lt;pierwsze_zadanie&gt;'<br />
&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;tasks[8] = '&lt;kolejne zadanie&gt;' <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;difficulty = &lt;trudnosc_zadania&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;Powyższe parametry odpowiadają za:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : przyporządkowane ID misji [1..n]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : nazwa misji<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;opis&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : krótka charakterystyka misji - maksymalnie dwie linijki<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tasks&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: poszczególne zadania w misji [0..8]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;difficulty : trudność misji oznakowana gwiazdkami [1..4]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name = 'Łatanie podłogi'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description = 'Twój dom potrzebuje gruntownego remontu.|Na początek załataj dziury w podłodze'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tasks[0] = 'Znajdź narzędzia.'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tasks[1] = 'Zdobądź deski.'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tasks[2] = 'Załataj dziury.'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;difficulty = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name = 'Porządki'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description = 'Wypadałoby przed przyjściem gości nieco posprzątać.|Spraw, by było czysto i przytulnie.'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tasks[0] = 'Zbierz papiery i butelki z podłogi.'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tasks[1] = 'Rozpal w kominku.'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;difficulty = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 3 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name = 'Pieczenie ciasta'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description = 'Musisz dbać o dobrosąsiedzkie stosunki.|Odwiedź sąsiada z blachą ciasta.'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tasks[0] = 'Upiecz ciasto.'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tasks[1] = 'Odwiedź sąsiada z ciastem.'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;difficulty = 2&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return name, description, tasks, difficulty<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
#============================================================================== <br />
# ** Game_Quests <br />
#============================================================================== <br />
class Game_Quests<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;# * Public Instance Variables<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;attr_reader&nbsp;&nbsp; :name<br />
&nbsp;&nbsp;attr_reader&nbsp;&nbsp; :description<br />
&nbsp;&nbsp;attr_reader&nbsp;&nbsp; :tasks<br />
&nbsp;&nbsp;attr_reader&nbsp;&nbsp; :actived <br />
&nbsp;&nbsp;attr_reader&nbsp;&nbsp; :completed <br />
&nbsp;&nbsp;attr_reader&nbsp;&nbsp; :failed&nbsp;&nbsp; <br />
&nbsp;&nbsp;attr_reader&nbsp;&nbsp; :difficulty<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;# * Object Initialization<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;def initialize(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@id = id<br />
&nbsp;&nbsp;&nbsp;&nbsp;@name, @description, @tasks, @difficulty = AYENE::QuestLogConfig.quest(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@actived = []<br />
&nbsp;&nbsp;&nbsp;&nbsp;@completed = []<br />
&nbsp;&nbsp;&nbsp;&nbsp;@failed = []<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;# * New Task<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;def new(index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return unless index &lt; @tasks.size <br />
&nbsp;&nbsp;&nbsp;&nbsp;@actived |= [index]<br />
&nbsp;&nbsp;&nbsp;&nbsp;@actived.sort!<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;# * Complete Task<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;def complete(index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return unless index &lt; @tasks.size<br />
&nbsp;&nbsp;&nbsp;&nbsp;return if @failed.include?(index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;new(index) unless @actived.include?(index)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;@completed |= [index]&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;@completed.sort!<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;# * Uncomplete Task<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;def uncomplete(index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@complete.delete(index)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;# * Fail Task<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;def fail(index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;return unless index &lt; @tasks.size<br />
&nbsp;&nbsp;&nbsp;&nbsp;new(index) unless @actived.include?(index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@failed |= [index]<br />
&nbsp;&nbsp;&nbsp;&nbsp;@failed.sort!<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;# * Unfail Task<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;def unfail(index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@failed.delete(index)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;# * Active?<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;def active?<br />
&nbsp;&nbsp;&nbsp;&nbsp;return @actived != []<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;# * Active?<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;def actived?(index)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;return @actived.include?(index)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;# * Complete?<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;def complete?<br />
&nbsp;&nbsp;&nbsp;&nbsp;return @completed.size == @tasks.size<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;# * Failed?<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
&nbsp;&nbsp;def failed?<br />
&nbsp;&nbsp;&nbsp;&nbsp;return @failed != []<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
#============================================================================== <br />
# ** Game_Party <br />
#============================================================================== <br />
class Game_Party<br />
&nbsp;&nbsp;include AYENE::QuestLogConfig<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Public Instance Variables<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;attr_reader&nbsp;&nbsp; :quests<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Object Initialization (aliased method)<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;alias aye_quest_gmparty_ini initialize<br />
&nbsp;&nbsp;def initialize&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;aye_quest_gmparty_ini&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;@quests = {}<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Get Quest<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def quest(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@quests[id] = Game_Quests.new(id) if @quests[id] == nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;return @quests[id]<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Get Quest List<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def quests_list<br />
&nbsp;&nbsp;&nbsp;&nbsp;return @quests.values<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Completed Quest List<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def completed_quests_list<br />
&nbsp;&nbsp;&nbsp;&nbsp;list = []<br />
&nbsp;&nbsp;&nbsp;&nbsp;quests_list.each {|quest| list.push(quest) if quest.complete? }<br />
&nbsp;&nbsp;&nbsp;&nbsp;return list<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Failed Quest List<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def failed_quests_list<br />
&nbsp;&nbsp;&nbsp;&nbsp;list = []<br />
&nbsp;&nbsp;&nbsp;&nbsp;quests_list.each {|quest| list.push(quest) if quest.failed? }<br />
&nbsp;&nbsp;&nbsp;&nbsp;return list<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Active Quest List<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def active_quests_list<br />
&nbsp;&nbsp;&nbsp;&nbsp;return quests_list - completed_quests_list - failed_quests_list<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Delete Quest<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def delete_quest(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@quests.delete(id)<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
#============================================================================== <br />
# ** Interpreter <br />
#============================================================================== <br />
class Interpreter<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Add New Quest<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def quest_new(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.quest(id).tasks.each_index {|i| &#36;game_party.quest(id).new(i)}<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Add New Task to the Quest<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def quest_task_new(id, task)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.quest(id).new(task)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Complete Quest Task<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def quest_task_complete(id, task)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.quest(id).complete(task)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Fail Quest Task<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def quest_task_fail(id, task)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.quest(id).fail(task)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Check Quest Active? <br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def quest_active?(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.quests[id].active? unless &#36;game_party.quests[id].nil?<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Check Quest Task Active? <br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def quest_task_active?(id, task)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.quests[id].actived?(task) unless &#36;game_party.quests[id].nil?<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Check Quest Complete? <br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def quest_complete?(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.quests[id].complete? unless &#36;game_party.quests[id].nil?<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Check Quest Failed? <br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def quest_failed?(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.quests[id].failed? unless &#36;game_party.quests[id].nil?<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Delete Quest<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def quest_delete(id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_party.delete_quest(id)<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
#============================================================================== <br />
# ** Window_QuestHelp <br />
#============================================================================== <br />
class Window_QuestHelp &lt; Window_Help<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Object Initialization<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp;super()<br />
&nbsp;&nbsp;&nbsp;&nbsp;w, h = 224, 64<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.x, self.y, self.width, self.height = 0, 0, w, h<br />
&nbsp;&nbsp;&nbsp;&nbsp;contents.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new (w - 32, h - 32)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Set Text<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def set_text(text, align = 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;super(text, 1)<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
#============================================================================== <br />
# ** Window_QuestCategory <br />
#============================================================================== <br />
class Window_QuestCategory &lt; Window_Selectable <br />
&nbsp;&nbsp;include AYENE::QuestLogConfig<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Object Initialization <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def initialize&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;super(0, 64, 224, 64)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@item_max = 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;@column_max = @item_max <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width - 32, height - 32) <br />
&nbsp;&nbsp;&nbsp;&nbsp;refresh <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.index = 0 <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Refresh <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def refresh <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.clear <br />
&nbsp;&nbsp;&nbsp;&nbsp;@item_max.times {|i| draw_item(i)}<br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Draw Item <br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; index : item number <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def draw_item(index) <br />
&nbsp;&nbsp;&nbsp;&nbsp;rect = Rect.new(0 + 32 * index, 0, 32, 32)<br />
&nbsp;&nbsp;&nbsp;&nbsp;bitmap = RPG::Cache.icon(QUEST_CAT_ICONS)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.blt(8 + 48 * index, 0, bitmap, rect)<br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Cursor Rectangle Update <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def update_cursor_rect <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.cursor_rect.set(8 + @index * 48, 0, 32, 32) <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Help Text Update<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update_help<br />
&nbsp;&nbsp;&nbsp;&nbsp;@help_window.set_text(self.index &gt; 4 ? "" : LANG_CATEGORY_NAME[index])<br />
&nbsp;&nbsp;end<br />
end <br />
<br />
#============================================================================== <br />
# ** Window_QuestList <br />
#============================================================================== <br />
class Window_QuestList &lt; Window_Selectable <br />
&nbsp;&nbsp;include AYENE::QuestLogConfig<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Object Initialization <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp;super(0, 128, 224, 352)<br />
&nbsp;&nbsp;&nbsp;&nbsp;refresh <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.index = 0&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;# * Quest<br />
&nbsp;&nbsp;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#8203;<br />
&nbsp;&nbsp;def quest<br />
&nbsp;&nbsp;&nbsp;&nbsp;return @data[self.index]<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Refresh <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def refresh(category = 0) <br />
&nbsp;&nbsp;&nbsp;&nbsp;if self.contents != nil <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.dispose <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents = nil <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;case category<br />
&nbsp;&nbsp;&nbsp;&nbsp;when 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@data = &#36;game_party.active_quests_list<br />
&nbsp;&nbsp;&nbsp;&nbsp;when 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@data = &#36;game_party.completed_quests_list<br />
&nbsp;&nbsp;&nbsp;&nbsp;when 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@data = &#36;game_party.failed_quests_list<br />
&nbsp;&nbsp;&nbsp;&nbsp;when 3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@data = &#36;game_party.quests_list<br />
&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;@item_max = @data.size<br />
&nbsp;&nbsp;&nbsp;&nbsp;if @item_max &gt; 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width - 32, row_max * 32) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i in 0...@item_max <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_item(i) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Draw Item<br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; index : item number<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_item(index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;quest = @data[index]<br />
&nbsp;&nbsp;&nbsp;&nbsp;y = index * 32<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = normal_color<br />
&nbsp;&nbsp;&nbsp;&nbsp;if quest.complete?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = FAILED_COLOR <br />
&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if quest.failed?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = COMPLETE_COLOR<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, y, 204, 32, quest.name, 0)<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
#============================================================================== <br />
# ** Window_QuestInfo_Name <br />
#============================================================================== <br />
class Window_QuestInfo_Name &lt; Window_Selectable <br />
&nbsp;&nbsp;include AYENE::QuestLogConfig<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Object Initialization<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp;super(224, 0, 416, 64)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width - 32, height - 32)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Refresh <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def refresh(quest = nil)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;return if quest == nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = system_color<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, 0, 196, 32, quest.name, 0)&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;text = LANG_DIFFICULTY&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;w = self.contents.text_size(text).width<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(196, 0, w, 32, text, 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;quest.difficulty.times {|i| draw_icon(196 + w + i*24, 0, 0)}<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Draw Icon<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def draw_icon(x, y, index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;rect = Rect.new(128 + 32 * index, 0, 32, 32)<br />
&nbsp;&nbsp;&nbsp;&nbsp;bitmap = RPG::Cache.icon(QUEST_CAT_ICONS)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.blt(x, y, bitmap, rect)<br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
end<br />
<br />
#============================================================================== <br />
# ** Window_QuestInfo_Description <br />
#============================================================================== <br />
class Window_QuestInfo_Description &lt; Window_Selectable <br />
&nbsp;&nbsp;include AYENE::QuestLogConfig<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Object Initialization<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp;super(224, 64, 416, 128)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width - 32, height - 32)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Refresh <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def refresh(quest = nil)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;return if quest == nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = crisis_color<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, 0, self.width - 40, 32, LANG_DESCRIPTION, 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = normal_color&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.size -= 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;desc = quest.description.split(/&#92;|/)<br />
&nbsp;&nbsp;&nbsp;&nbsp;for i in 0...desc.size<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, 32 + i * 32, self.width - 40, 32, desc[i], 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.size += 4<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
#============================================================================== <br />
# ** Window_QuestInfo_Tasks<br />
#============================================================================== <br />
class Window_QuestInfo_Tasks &lt; Window_Selectable <br />
&nbsp;&nbsp;include AYENE::QuestLogConfig<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Object Initialization<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize<br />
&nbsp;&nbsp;&nbsp;&nbsp;super(224, 192, 416, 288)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width - 32, height - 32)<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Refresh <br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def refresh(quest = nil)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.clear<br />
&nbsp;&nbsp;&nbsp;&nbsp;return if quest == nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = crisis_color<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, 0, self.width - 40, 32, LANG_TASKS, 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = normal_color&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.size -= 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;y = 32&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;quest.actived.each {|i|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;task = quest.tasks[i]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = normal_color&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if quest.completed.include?(i)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = FAILED_COLOR<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_icon(0, y, 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif quest.failed.include?(i)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = COMPLETE_COLOR<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_icon(0, y, 3)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_icon(0, y, 1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(32, y, self.width - 40, 32, task.to_s, 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y += 24<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.size += 4<br />
&nbsp;&nbsp;end<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;# * Draw Icon<br />
&nbsp;&nbsp;#-------------------------------------------------------------------------- <br />
&nbsp;&nbsp;def draw_icon(x, y, index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;rect = Rect.new(128 + 32 * index, 0, 32, 32)<br />
&nbsp;&nbsp;&nbsp;&nbsp;bitmap = RPG::Cache.icon(QUEST_CAT_ICONS)<br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.blt(x, y, bitmap, rect)<br />
&nbsp;&nbsp;end&nbsp;&nbsp;<br />
end<br />
<br />
#============================================================================== <br />
# ** Scene_Map <br />
#============================================================================== <br />
class Scene_Map&nbsp;&nbsp; <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Frame Update (aliased method)<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;alias aye_quest_scmap_update update<br />
&nbsp;&nbsp;def update<br />
&nbsp;&nbsp;&nbsp;&nbsp;aye_quest_scmap_update<br />
&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_temp.message_window_showing<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;return if !AYENE::QuestLogConfig::MAPKEY or &#36;game_party.quests_list.empty? or &#36;game_switches[AYENE::QuestLogConfig::DISABLED_SWITCH_ID]<br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(AYENE::QuestLogConfig::MAPKEY_BUTTON)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;scene = Scene_Quest.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
#============================================================================== <br />
# ** Scene_Quest <br />
#============================================================================== <br />
class Scene_Quest<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Main Processing<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def main&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;@help_window = Window_QuestHelp.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;@category = Window_QuestCategory.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;@category.help_window = @help_window<br />
&nbsp;&nbsp;&nbsp;&nbsp;@quest_list = Window_QuestList.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;@quest_info_name = Window_QuestInfo_Name.new&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;@quest_info_description = Window_QuestInfo_Description.new&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;@quest_info_tasks = Window_QuestInfo_Tasks.new <br />
&nbsp;&nbsp;&nbsp;&nbsp;refresh_windows<br />
&nbsp;&nbsp;&nbsp;&nbsp;Graphics.transition<br />
&nbsp;&nbsp;&nbsp;&nbsp;loop do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Graphics.update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Input.update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;scene != self<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;Graphics.freeze<br />
&nbsp;&nbsp;&nbsp;&nbsp;@help_window.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp;@category.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp;@quest_list.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp;@quest_info_name.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp;@quest_info_description.dispose<br />
&nbsp;&nbsp;&nbsp;&nbsp;@quest_info_tasks.dispose<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;@category.update<br />
&nbsp;&nbsp;&nbsp;&nbsp;@help_window.update<br />
&nbsp;&nbsp;&nbsp;&nbsp;@quest_list.update&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::B)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.cancel_se)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;scene = Scene_Map.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::LEFT) or Input.trigger?(Input::RIGHT)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@quest_list.index = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@quest_list.refresh(@category.index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;refresh_windows<br />
&nbsp;&nbsp;&nbsp;&nbsp;elsif Input.trigger?(Input::DOWN) or Input.trigger?(Input::UP)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;refresh_windows<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Refresh Windows<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def refresh_windows<br />
&nbsp;&nbsp;&nbsp;&nbsp;@quest_info_name.refresh(@quest_list.quest)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@quest_info_description.refresh(@quest_list.quest)<br />
&nbsp;&nbsp;&nbsp;&nbsp;@quest_info_tasks.refresh(@quest_list.quest)<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="http://www.ultimateam.pl/files/aye_quest_log.png" border="0" alt="[Obrazek: aye_quest_log.png]" /><br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Demo:</span></span><br />
<a href="http://www.ultimateam.pl/files/Ayene_Quest_Log.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;">Wymagana grafika:</span></span><br />
Umieść ją w folderze Graphics/Icons<br />
<img class="postimage" src="http://www.ultimateam.pl/files/quest_icons.png" border="0" alt="[Obrazek: quest_icons.png]" /><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Oto kilka wywołań, które pozawalają kontrolować Dziennik za pomocą polecenia "Script" w zdarzeniu:<br />
<br />
<div class="codeblock">
<div class="title">Kod:<br />
</div><div class="body" dir="ltr"><code>quest_new(id_misji) - aktywuje misję ze wszystkimi zadaniami.<br />
<br />
quest_task_new(id_misji, zadanie) - aktywuje wybrane zadanie misji<br />
quest_task_complete(id_misji, zadanie) - oznakowuje zadanie jako ukończone<br />
quest_task_fail(id_misji, zadanie) - oznakowuje zadanie jako nieudane<br />
<br />
quest_active?(id_misji) - sprawdza, czy misja jest aktywna<br />
quest_task_active?(id_misji, zadanie) - sprawdza, czy zadanie jest aktywne<br />
quest_complete?(id_misji) - sprawdza, czy misja jest ukończona<br />
 quest_failed?(id_misji) - sprawdza, czy misja jest nieudana<br />
<br />
quest_delete(id) - usuwa całkowicie misję z listy</code></div></div>
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Ring Menu]]></title>
			<link>https://forum.ultimateam.pl/Thread-XP-Ring-Menu</link>
			<pubDate>Mon, 16 Jun 2014 17:54:32 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-XP-Ring-Menu</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Ring Menu ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt dodaje nam nowy wygląd menu w formie koła z iconami. Pokazuje to nam także ilość złota, i lokację (nazwę mapy). Demko nie potrzebne, wszystko widać na screenshotach.<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># Ring Menu XP <br />
<br />
#==============================================================================<br />
# ** Scene_Menu<br />
#==============================================================================<br />
class Scene_Menu <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Object Initialization<br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; menu_index : command cursor's initial position<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize(menu_index = 0) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@menu_index = menu_index <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;location_text=[] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;gold_text=[] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;window_size=[] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;ring_menu_text=[] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;chara_select=[] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_opacity=[] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@chara_select=[] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_position=[] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;location_text[0]="Comic Sans MS" # Font Type <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;location_text[1]=24 # Font Size <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;location_text[2]=0 # Location Title Color <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;location_text[4]=0 # Map Name Color <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;location_text[3]="Lokacja:" # Text <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;gold_text[0]="Comic Sans MS" # Font Type <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;gold_text[1]=24 # Font Size <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;gold_text[2]=0 # Gold Title Color <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;gold_text[6]=0 # Gold Color <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;gold_text[4]="Złoto:" # Text <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_opacity[0]=255 # Border Opacity <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_opacity[1]=130 # Background Opacity <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;window_location_skin="001-Blue01" # Location Windowskin <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;window_gold_skin="001-Blue01" # Gold Windowskin <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_position[0]=0 # X Axis Position <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_position[1]=0 # Location Y Axis Position <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_position[2]=384 # Gold Y Axis Position <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;window_size[0]=160 # Length <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;window_size[1]=96 # Height <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;ring_menu_text[0]="Comic Sans MS" # Font Type <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;ring_menu_text[7]=0 # Font Color <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;ring_menu_text[8]=24 # Font Size <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;ring_menu_text[1]="Przedmioty" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;ring_menu_text[2]="Czary" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;ring_menu_text[3]="Ekwipunek" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;ring_menu_text[4]="Stan" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;ring_menu_text[5]="Zapisz grę" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;ring_menu_text[6]="Wyjdź z gry" <br />
&nbsp;&nbsp;&nbsp;&nbsp;@chara_select[0]=408 # X Axis Position <br />
&nbsp;&nbsp;&nbsp;&nbsp;@chara_select[1]=0 # Y Axis Position <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;chara_select[0]="Comic Sans MS" # Font Type <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;chara_select[1]=0 # Font Color <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;chara_select[5]=24 # Font Size <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;chara_select[2]=255 # Border Opacity <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;chara_select[3]=130 # Background Opacity <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;chara_select[4]="001-Blue01" # Windowskin <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Main Processing<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def main <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_location = Window_Location.new <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_location.x = @window_position[0] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_location.y = @window_position[1] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_location.opacity = @window_opacity[0] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_location.back_opacity = @window_opacity[1] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_gold = Window_MenuGold.new <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_gold.x = @window_position[0] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_gold.y = @window_position[2] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_gold.opacity = @window_opacity[0] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_gold.back_opacity = @window_opacity[1] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@spriteset = Spriteset_Map.new <br />
&nbsp;&nbsp;&nbsp;&nbsp;px = &#36;game_player.screen_x - 15 <br />
&nbsp;&nbsp;&nbsp;&nbsp;py = &#36;game_player.screen_y - 24 <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window = Window_RingMenu.new(px,py) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.index = @menu_index <br />
&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_party.actors.size == 0 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.disable_item(0) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.disable_item(1) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.disable_item(2) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.disable_item(3) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.z = 100 <br />
&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_system.save_disabled <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.disable_item(4) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window = Window_RingMenuStatus.new <br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window.x = @chara_select[0] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window.y = @chara_select[1] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window.z = 200 <br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window.opacity=&#36;chara_select[2] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window.back_opacity=&#36;chara_select[3] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window.visible = false <br />
&nbsp;&nbsp;&nbsp;&nbsp;Graphics.transition <br />
&nbsp;&nbsp;&nbsp;&nbsp;loop do <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Graphics.update <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Input.update <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;scene != self <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;Graphics.freeze <br />
&nbsp;&nbsp;&nbsp;&nbsp;@spriteset.dispose <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_location.dispose <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_gold.dispose <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.dispose <br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window.dispose <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;@window_location.update <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_gold.update <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.update <br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window.update <br />
&nbsp;&nbsp;&nbsp;&nbsp;if @command_window.active <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_command <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;if @status_window.active <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_status <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Frame Update (if command window is active)<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update_command <br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::B) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.cancel_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;scene = Scene_Map.new <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::C) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_party.actors.size == 0 and @command_window.index &lt; 4 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.buzzer_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case @command_window.index <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 0 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;scene = Scene_Item.new <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.active = false <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.active = true <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.visible = true <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.index = 0 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 2 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.active = false <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.active = true <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.visible = true <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.index = 0 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 3 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.active = false <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.active = true <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.visible = true <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.index = 0 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 4 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_system.save_disabled <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.buzzer_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;scene = Scene_Save.new <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 5 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;scene = Scene_End.new <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;return if @command_window.animation? <br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.press?(Input::UP) or&nbsp;&nbsp;Input.press?(Input::LEFT) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.cursor_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.setup_move_move(Window_RingMenu::MODE_MOVEL) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.press?(Input::DOWN) or&nbsp;&nbsp;Input.press?(Input::RIGHT) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.cursor_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.setup_move_move(Window_RingMenu::MODE_MOVER) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Frame Update (if status window is active)<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update_status <br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::B) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.cancel_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.active = true <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.active = false <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.visible = false <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.index = -1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::C) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case @command_window.index <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_party.actors[@status_window.index].restriction &gt;= 2 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.buzzer_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;scene = Scene_Skill.new(@status_window.index) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 2 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;scene = Scene_Equip.new(@status_window.index) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 3 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;scene = Scene_Status.new(@status_window.index) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
end <br />
<br />
#==============================================================================<br />
# ** Window_RingMenu<br />
#==============================================================================<br />
class Window_RingMenu &lt; Window_Base <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Variables<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;STARTUP_FRAMES = 20 <br />
&nbsp;&nbsp;MOVING_FRAMES = 5&nbsp;&nbsp;<br />
&nbsp;&nbsp;RING_R = 64&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;ICON_ITEM&nbsp;&nbsp; = RPG::Cache.icon("034-Item03") <br />
&nbsp;&nbsp;ICON_SKILL&nbsp;&nbsp;= RPG::Cache.icon("044-Skill01") <br />
&nbsp;&nbsp;ICON_EQUIP&nbsp;&nbsp;= RPG::Cache.icon("001-Weapon01") <br />
&nbsp;&nbsp;ICON_STATUS = RPG::Cache.icon("050-Skill07") <br />
&nbsp;&nbsp;ICON_SAVE&nbsp;&nbsp; = RPG::Cache.icon("038-Item07") <br />
&nbsp;&nbsp;ICON_EXIT&nbsp;&nbsp; = RPG::Cache.icon("046-Skill03") <br />
&nbsp;&nbsp;ICON_DISABLE= RPG::Cache.icon("") <br />
&nbsp;&nbsp;SE_STARTUP = "056-Right02" <br />
&nbsp;&nbsp;MODE_START = 1 <br />
&nbsp;&nbsp;MODE_WAIT&nbsp;&nbsp;= 2 <br />
&nbsp;&nbsp;MODE_MOVER = 3 <br />
&nbsp;&nbsp;MODE_MOVEL = 4 <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Public Instance Variables<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;attr_accessor :index <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Object Initialization<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize( center_x, center_y ) <br />
&nbsp;&nbsp;&nbsp;&nbsp;super(0, 0, 640, 480) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width-32, height-32) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.name = &#36;ring_menu_text[0] <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = text_color(&#36;ring_menu_text[7]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.size = &#36;ring_menu_text[8] <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.opacity = 0 <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.back_opacity = 0 <br />
&nbsp;&nbsp;&nbsp;&nbsp;s1 = &#36;ring_menu_text[1] <br />
&nbsp;&nbsp;&nbsp;&nbsp;s2 = &#36;ring_menu_text[2] <br />
&nbsp;&nbsp;&nbsp;&nbsp;s3 = &#36;ring_menu_text[3] <br />
&nbsp;&nbsp;&nbsp;&nbsp;s4 = &#36;ring_menu_text[4] <br />
&nbsp;&nbsp;&nbsp;&nbsp;s5 = &#36;ring_menu_text[5] <br />
&nbsp;&nbsp;&nbsp;&nbsp;s6 = &#36;ring_menu_text[6] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@commands = [ s1, s2, s3, s4, s5, s6 ] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@item_max = 6 <br />
&nbsp;&nbsp;&nbsp;&nbsp;@index = 0 <br />
&nbsp;&nbsp;&nbsp;&nbsp;@items = [ ICON_ITEM, ICON_SKILL, ICON_EQUIP, ICON_STATUS, ICON_SAVE, ICON_EXIT ] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@disabled = [ false, false, false, false, false, false ] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@cx = center_x - 16 <br />
&nbsp;&nbsp;&nbsp;&nbsp;@cy = center_y - 16 <br />
&nbsp;&nbsp;&nbsp;&nbsp;setup_move_start <br />
&nbsp;&nbsp;&nbsp;&nbsp;refresh <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;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;self.contents.clear <br />
&nbsp;&nbsp;&nbsp;&nbsp;case @mode <br />
&nbsp;&nbsp;&nbsp;&nbsp;when MODE_START <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;refresh_start <br />
&nbsp;&nbsp;&nbsp;&nbsp;when MODE_WAIT <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;refresh_wait <br />
&nbsp;&nbsp;&nbsp;&nbsp;when MODE_MOVER <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;refresh_move(1) <br />
&nbsp;&nbsp;&nbsp;&nbsp;when MODE_MOVEL <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;refresh_move(0) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;rect = Rect.new(@cx - 272, @cy + 24, self.contents.width-32, 32) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(rect, @commands[@index],1) <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Refresh Start<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def refresh_start <br />
&nbsp;&nbsp;&nbsp;&nbsp;d1 = 2.0 * Math::PI / @item_max <br />
&nbsp;&nbsp;&nbsp;&nbsp;d2 = 1.0 * Math::PI / STARTUP_FRAMES <br />
&nbsp;&nbsp;&nbsp;&nbsp;r = RING_R - 1.0 * RING_R * @steps / STARTUP_FRAMES <br />
&nbsp;&nbsp;&nbsp;&nbsp;for i in 0...@item_max <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j = i - @index <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d = d1 * j + d2 * @steps <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = @cx + ( r * Math.sin( d ) ).to_i <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y = @cy - ( r * Math.cos( d ) ).to_i <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_item(x, y, i) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;@steps -= 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;if @steps &lt; 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@mode = MODE_WAIT <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Refresh Wait<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def refresh_wait <br />
&nbsp;&nbsp;&nbsp;&nbsp;d = 2.0 * Math::PI / @item_max <br />
&nbsp;&nbsp;&nbsp;&nbsp;for i in 0...@item_max <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j = i - @index <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = @cx + ( RING_R * Math.sin( d * j ) ).to_i <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y = @cy - ( RING_R * Math.cos( d * j ) ).to_i <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_item(x, y, i) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Refresh Move<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def refresh_move( mode ) <br />
&nbsp;&nbsp;&nbsp;&nbsp;d1 = 2.0 * Math::PI / @item_max <br />
&nbsp;&nbsp;&nbsp;&nbsp;d2 = d1 / MOVING_FRAMES <br />
&nbsp;&nbsp;&nbsp;&nbsp;d2 *= -1 if mode != 0 <br />
&nbsp;&nbsp;&nbsp;&nbsp;for i in 0...@item_max <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j = i - @index <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d = d1 * j + d2 * @steps <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = @cx + ( RING_R * Math.sin( d ) ).to_i <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y = @cy - ( RING_R * Math.cos( d ) ).to_i <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_item(x, y, i) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;@steps -= 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;if @steps &lt; 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@mode = MODE_WAIT <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Draw Item<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_item(x, y, i) <br />
&nbsp;&nbsp;&nbsp;&nbsp;rect = Rect.new(0, 0, @items[i].width, @items[i].height) <br />
&nbsp;&nbsp;&nbsp;&nbsp;if @index == i <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.blt( x, y, @items[i], rect ) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @disabled[@index] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.blt( x, y, ICON_DISABLE, rect ) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;else <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.blt( x, y, @items[i], rect, 128 ) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @disabled[@index] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.blt( x, y, ICON_DISABLE, rect, 128 ) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Disable Item<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def disable_item(index) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@disabled[index] = true <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Setup Move Start<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def setup_move_start <br />
&nbsp;&nbsp;&nbsp;&nbsp;@mode = MODE_START <br />
&nbsp;&nbsp;&nbsp;&nbsp;@steps = STARTUP_FRAMES <br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp;SE_STARTUP != nil and SE_STARTUP != "" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Audio.se_play("Audio/SE/" + SE_STARTUP, 80, 100) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Setup Move Move<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def setup_move_move(mode) <br />
&nbsp;&nbsp;&nbsp;&nbsp;if mode == MODE_MOVER <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@index -= 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@index = @items.size - 1 if @index &lt; 0 <br />
&nbsp;&nbsp;&nbsp;&nbsp;elsif mode == MODE_MOVEL <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@index += 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@index = 0 if @index &gt;= @items.size <br />
&nbsp;&nbsp;&nbsp;&nbsp;else <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;@mode = mode <br />
&nbsp;&nbsp;&nbsp;&nbsp;@steps = MOVING_FRAMES <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Check Animation<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def animation? <br />
&nbsp;&nbsp;&nbsp;&nbsp;return @mode != MODE_WAIT <br />
&nbsp;&nbsp;end <br />
end <br />
<br />
#==============================================================================<br />
# ** Window_RingMenuStatus<br />
#==============================================================================<br />
class Window_RingMenuStatus &lt; Window_Selectable <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Object Initialization<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize <br />
&nbsp;&nbsp;&nbsp;&nbsp;super(204, 64, 232, 352) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width - 32, height - 32) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.size = &#36;chara_select[5] <br />
&nbsp;&nbsp;&nbsp;&nbsp;refresh <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.active = false <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.index = -1 <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Refresh<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def refresh <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.clear <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.windowskin = RPG::Cache.windowskin(&#36;chara_select[4]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.name = &#36;chara_select[0] <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = text_color(&#36;chara_select[1]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@item_max = &#36;game_party.actors.size <br />
&nbsp;&nbsp;&nbsp;&nbsp;for i in 0...&#36;game_party.actors.size <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = 80 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y = 80 * i <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;actor = &#36;game_party.actors[i] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_actor_graphic(actor, x - 60, y + 65) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_actor_name(actor, x, y + 2) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_actor_hp(actor, x - 40, y + 26) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_actor_sp(actor, x - 40, y + 50) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Update Cursor Rectangle<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update_cursor_rect <br />
&nbsp;&nbsp;&nbsp;&nbsp;if @index &lt; 0 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.cursor_rect.empty <br />
&nbsp;&nbsp;&nbsp;&nbsp;else <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.cursor_rect.set(0, @index * 80, self.width - 32, 80) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
end <br />
<br />
#==============================================================================<br />
# ** Game_Map<br />
#==============================================================================<br />
class Game_Map <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Name<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def name <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;map_infos[@map_id] <br />
&nbsp;&nbsp;end <br />
end <br />
<br />
#==============================================================================<br />
# ** Scene_Title<br />
#==============================================================================<br />
class Scene_Title <br />
&nbsp;&nbsp;&#36;map_infos = load_data("Data/MapInfos.rxdata") <br />
&nbsp;&nbsp;for key in &#36;map_infos.keys <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;map_infos[key] = &#36;map_infos[key].name <br />
&nbsp;&nbsp;end <br />
end <br />
<br />
#==============================================================================<br />
# ** Window_Location<br />
#==============================================================================<br />
class Window_Location &lt; Window_Base <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Object Initialization<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize <br />
&nbsp;&nbsp;&nbsp;&nbsp;super(0, 0, &#36;window_size[0], &#36;window_size[1]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width - 32, height - 32) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.name = &#36;location_text[0] <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.size = &#36;location_text[1] <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;self.contents.clear <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.windowskin = RPG::Cache.windowskin(&#36;window_location_skin) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = text_color(&#36;location_text[2]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, 0, 120, 32, &#36;location_text[3]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = text_color(&#36;location_text[4]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, 32, 120, 32, &#36;game_map.name, 2) <br />
&nbsp;&nbsp;end <br />
end <br />
<br />
#==============================================================================<br />
# ** Window_MenuGold<br />
#==============================================================================<br />
class Window_MenuGold &lt; Window_Base <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Object Initialization<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize <br />
&nbsp;&nbsp;&nbsp;&nbsp;super(0, 0, &#36;window_size[0], &#36;window_size[1]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width - 32, height - 32) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.name = &#36;gold_text[0] <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.size = &#36;gold_text[1] <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;self.contents.clear <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.windowskin = RPG::Cache.windowskin(&#36;window_gold_skin) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = text_color(&#36;gold_text[2]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, 0, 120, 32, &#36;gold_text[4]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = text_color(&#36;gold_text[3]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, 32, 120, 32, &#36;game_party.gold.to_s, 2) <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 class="postimage" src="https://i.imgur.com/LdQmpgq.png" border="0" alt="[Obrazek: LdQmpgq.png]" /><br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Nie potrzeba żadnych grafik, bo jak widać wszystko zrobione z domyślnych zasobów Rpg Makera XP]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Ring Menu ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt dodaje nam nowy wygląd menu w formie koła z iconami. Pokazuje to nam także ilość złota, i lokację (nazwę mapy). Demko nie potrzebne, wszystko widać na screenshotach.<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># Ring Menu XP <br />
<br />
#==============================================================================<br />
# ** Scene_Menu<br />
#==============================================================================<br />
class Scene_Menu <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Object Initialization<br />
&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp; menu_index : command cursor's initial position<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize(menu_index = 0) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@menu_index = menu_index <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;location_text=[] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;gold_text=[] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;window_size=[] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;ring_menu_text=[] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;chara_select=[] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_opacity=[] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@chara_select=[] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_position=[] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;location_text[0]="Comic Sans MS" # Font Type <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;location_text[1]=24 # Font Size <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;location_text[2]=0 # Location Title Color <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;location_text[4]=0 # Map Name Color <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;location_text[3]="Lokacja:" # Text <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;gold_text[0]="Comic Sans MS" # Font Type <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;gold_text[1]=24 # Font Size <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;gold_text[2]=0 # Gold Title Color <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;gold_text[6]=0 # Gold Color <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;gold_text[4]="Złoto:" # Text <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_opacity[0]=255 # Border Opacity <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_opacity[1]=130 # Background Opacity <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;window_location_skin="001-Blue01" # Location Windowskin <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;window_gold_skin="001-Blue01" # Gold Windowskin <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_position[0]=0 # X Axis Position <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_position[1]=0 # Location Y Axis Position <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_position[2]=384 # Gold Y Axis Position <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;window_size[0]=160 # Length <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;window_size[1]=96 # Height <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;ring_menu_text[0]="Comic Sans MS" # Font Type <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;ring_menu_text[7]=0 # Font Color <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;ring_menu_text[8]=24 # Font Size <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;ring_menu_text[1]="Przedmioty" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;ring_menu_text[2]="Czary" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;ring_menu_text[3]="Ekwipunek" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;ring_menu_text[4]="Stan" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;ring_menu_text[5]="Zapisz grę" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;ring_menu_text[6]="Wyjdź z gry" <br />
&nbsp;&nbsp;&nbsp;&nbsp;@chara_select[0]=408 # X Axis Position <br />
&nbsp;&nbsp;&nbsp;&nbsp;@chara_select[1]=0 # Y Axis Position <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;chara_select[0]="Comic Sans MS" # Font Type <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;chara_select[1]=0 # Font Color <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;chara_select[5]=24 # Font Size <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;chara_select[2]=255 # Border Opacity <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;chara_select[3]=130 # Background Opacity <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;chara_select[4]="001-Blue01" # Windowskin <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Main Processing<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def main <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_location = Window_Location.new <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_location.x = @window_position[0] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_location.y = @window_position[1] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_location.opacity = @window_opacity[0] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_location.back_opacity = @window_opacity[1] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_gold = Window_MenuGold.new <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_gold.x = @window_position[0] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_gold.y = @window_position[2] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_gold.opacity = @window_opacity[0] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_gold.back_opacity = @window_opacity[1] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@spriteset = Spriteset_Map.new <br />
&nbsp;&nbsp;&nbsp;&nbsp;px = &#36;game_player.screen_x - 15 <br />
&nbsp;&nbsp;&nbsp;&nbsp;py = &#36;game_player.screen_y - 24 <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window = Window_RingMenu.new(px,py) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.index = @menu_index <br />
&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_party.actors.size == 0 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.disable_item(0) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.disable_item(1) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.disable_item(2) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.disable_item(3) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.z = 100 <br />
&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_system.save_disabled <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.disable_item(4) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window = Window_RingMenuStatus.new <br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window.x = @chara_select[0] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window.y = @chara_select[1] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window.z = 200 <br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window.opacity=&#36;chara_select[2] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window.back_opacity=&#36;chara_select[3] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window.visible = false <br />
&nbsp;&nbsp;&nbsp;&nbsp;Graphics.transition <br />
&nbsp;&nbsp;&nbsp;&nbsp;loop do <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Graphics.update <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Input.update <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;scene != self <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;Graphics.freeze <br />
&nbsp;&nbsp;&nbsp;&nbsp;@spriteset.dispose <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_location.dispose <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_gold.dispose <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.dispose <br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window.dispose <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;@window_location.update <br />
&nbsp;&nbsp;&nbsp;&nbsp;@window_gold.update <br />
&nbsp;&nbsp;&nbsp;&nbsp;@command_window.update <br />
&nbsp;&nbsp;&nbsp;&nbsp;@status_window.update <br />
&nbsp;&nbsp;&nbsp;&nbsp;if @command_window.active <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_command <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;if @status_window.active <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_status <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Frame Update (if command window is active)<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update_command <br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::B) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.cancel_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;scene = Scene_Map.new <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::C) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_party.actors.size == 0 and @command_window.index &lt; 4 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.buzzer_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case @command_window.index <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 0 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;scene = Scene_Item.new <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.active = false <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.active = true <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.visible = true <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.index = 0 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 2 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.active = false <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.active = true <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.visible = true <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.index = 0 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 3 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.active = false <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.active = true <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.visible = true <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.index = 0 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 4 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_system.save_disabled <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.buzzer_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;scene = Scene_Save.new <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 5 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;scene = Scene_End.new <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;return if @command_window.animation? <br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.press?(Input::UP) or&nbsp;&nbsp;Input.press?(Input::LEFT) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.cursor_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.setup_move_move(Window_RingMenu::MODE_MOVEL) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.press?(Input::DOWN) or&nbsp;&nbsp;Input.press?(Input::RIGHT) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.cursor_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.setup_move_move(Window_RingMenu::MODE_MOVER) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Frame Update (if status window is active)<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update_status <br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::B) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.cancel_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@command_window.active = true <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.active = false <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.visible = false <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@status_window.index = -1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;if Input.trigger?(Input::C) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case @command_window.index <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &#36;game_party.actors[@status_window.index].restriction &gt;= 2 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.buzzer_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;scene = Scene_Skill.new(@status_window.index) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 2 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;scene = Scene_Equip.new(@status_window.index) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 3 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;game_system.se_play(&#36;data_system.decision_se) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;scene = Scene_Status.new(@status_window.index) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
end <br />
<br />
#==============================================================================<br />
# ** Window_RingMenu<br />
#==============================================================================<br />
class Window_RingMenu &lt; Window_Base <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Variables<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;STARTUP_FRAMES = 20 <br />
&nbsp;&nbsp;MOVING_FRAMES = 5&nbsp;&nbsp;<br />
&nbsp;&nbsp;RING_R = 64&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;ICON_ITEM&nbsp;&nbsp; = RPG::Cache.icon("034-Item03") <br />
&nbsp;&nbsp;ICON_SKILL&nbsp;&nbsp;= RPG::Cache.icon("044-Skill01") <br />
&nbsp;&nbsp;ICON_EQUIP&nbsp;&nbsp;= RPG::Cache.icon("001-Weapon01") <br />
&nbsp;&nbsp;ICON_STATUS = RPG::Cache.icon("050-Skill07") <br />
&nbsp;&nbsp;ICON_SAVE&nbsp;&nbsp; = RPG::Cache.icon("038-Item07") <br />
&nbsp;&nbsp;ICON_EXIT&nbsp;&nbsp; = RPG::Cache.icon("046-Skill03") <br />
&nbsp;&nbsp;ICON_DISABLE= RPG::Cache.icon("") <br />
&nbsp;&nbsp;SE_STARTUP = "056-Right02" <br />
&nbsp;&nbsp;MODE_START = 1 <br />
&nbsp;&nbsp;MODE_WAIT&nbsp;&nbsp;= 2 <br />
&nbsp;&nbsp;MODE_MOVER = 3 <br />
&nbsp;&nbsp;MODE_MOVEL = 4 <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Public Instance Variables<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;attr_accessor :index <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Object Initialization<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize( center_x, center_y ) <br />
&nbsp;&nbsp;&nbsp;&nbsp;super(0, 0, 640, 480) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width-32, height-32) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.name = &#36;ring_menu_text[0] <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = text_color(&#36;ring_menu_text[7]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.size = &#36;ring_menu_text[8] <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.opacity = 0 <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.back_opacity = 0 <br />
&nbsp;&nbsp;&nbsp;&nbsp;s1 = &#36;ring_menu_text[1] <br />
&nbsp;&nbsp;&nbsp;&nbsp;s2 = &#36;ring_menu_text[2] <br />
&nbsp;&nbsp;&nbsp;&nbsp;s3 = &#36;ring_menu_text[3] <br />
&nbsp;&nbsp;&nbsp;&nbsp;s4 = &#36;ring_menu_text[4] <br />
&nbsp;&nbsp;&nbsp;&nbsp;s5 = &#36;ring_menu_text[5] <br />
&nbsp;&nbsp;&nbsp;&nbsp;s6 = &#36;ring_menu_text[6] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@commands = [ s1, s2, s3, s4, s5, s6 ] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@item_max = 6 <br />
&nbsp;&nbsp;&nbsp;&nbsp;@index = 0 <br />
&nbsp;&nbsp;&nbsp;&nbsp;@items = [ ICON_ITEM, ICON_SKILL, ICON_EQUIP, ICON_STATUS, ICON_SAVE, ICON_EXIT ] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@disabled = [ false, false, false, false, false, false ] <br />
&nbsp;&nbsp;&nbsp;&nbsp;@cx = center_x - 16 <br />
&nbsp;&nbsp;&nbsp;&nbsp;@cy = center_y - 16 <br />
&nbsp;&nbsp;&nbsp;&nbsp;setup_move_start <br />
&nbsp;&nbsp;&nbsp;&nbsp;refresh <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;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;self.contents.clear <br />
&nbsp;&nbsp;&nbsp;&nbsp;case @mode <br />
&nbsp;&nbsp;&nbsp;&nbsp;when MODE_START <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;refresh_start <br />
&nbsp;&nbsp;&nbsp;&nbsp;when MODE_WAIT <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;refresh_wait <br />
&nbsp;&nbsp;&nbsp;&nbsp;when MODE_MOVER <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;refresh_move(1) <br />
&nbsp;&nbsp;&nbsp;&nbsp;when MODE_MOVEL <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;refresh_move(0) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;rect = Rect.new(@cx - 272, @cy + 24, self.contents.width-32, 32) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(rect, @commands[@index],1) <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Refresh Start<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def refresh_start <br />
&nbsp;&nbsp;&nbsp;&nbsp;d1 = 2.0 * Math::PI / @item_max <br />
&nbsp;&nbsp;&nbsp;&nbsp;d2 = 1.0 * Math::PI / STARTUP_FRAMES <br />
&nbsp;&nbsp;&nbsp;&nbsp;r = RING_R - 1.0 * RING_R * @steps / STARTUP_FRAMES <br />
&nbsp;&nbsp;&nbsp;&nbsp;for i in 0...@item_max <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j = i - @index <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d = d1 * j + d2 * @steps <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = @cx + ( r * Math.sin( d ) ).to_i <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y = @cy - ( r * Math.cos( d ) ).to_i <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_item(x, y, i) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;@steps -= 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;if @steps &lt; 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@mode = MODE_WAIT <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Refresh Wait<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def refresh_wait <br />
&nbsp;&nbsp;&nbsp;&nbsp;d = 2.0 * Math::PI / @item_max <br />
&nbsp;&nbsp;&nbsp;&nbsp;for i in 0...@item_max <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j = i - @index <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = @cx + ( RING_R * Math.sin( d * j ) ).to_i <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y = @cy - ( RING_R * Math.cos( d * j ) ).to_i <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_item(x, y, i) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Refresh Move<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def refresh_move( mode ) <br />
&nbsp;&nbsp;&nbsp;&nbsp;d1 = 2.0 * Math::PI / @item_max <br />
&nbsp;&nbsp;&nbsp;&nbsp;d2 = d1 / MOVING_FRAMES <br />
&nbsp;&nbsp;&nbsp;&nbsp;d2 *= -1 if mode != 0 <br />
&nbsp;&nbsp;&nbsp;&nbsp;for i in 0...@item_max <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j = i - @index <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d = d1 * j + d2 * @steps <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = @cx + ( RING_R * Math.sin( d ) ).to_i <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y = @cy - ( RING_R * Math.cos( d ) ).to_i <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_item(x, y, i) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;@steps -= 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;if @steps &lt; 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@mode = MODE_WAIT <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Draw Item<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def draw_item(x, y, i) <br />
&nbsp;&nbsp;&nbsp;&nbsp;rect = Rect.new(0, 0, @items[i].width, @items[i].height) <br />
&nbsp;&nbsp;&nbsp;&nbsp;if @index == i <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.blt( x, y, @items[i], rect ) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @disabled[@index] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.blt( x, y, ICON_DISABLE, rect ) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;else <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.blt( x, y, @items[i], rect, 128 ) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @disabled[@index] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.contents.blt( x, y, ICON_DISABLE, rect, 128 ) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Disable Item<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def disable_item(index) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@disabled[index] = true <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Setup Move Start<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def setup_move_start <br />
&nbsp;&nbsp;&nbsp;&nbsp;@mode = MODE_START <br />
&nbsp;&nbsp;&nbsp;&nbsp;@steps = STARTUP_FRAMES <br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp;SE_STARTUP != nil and SE_STARTUP != "" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Audio.se_play("Audio/SE/" + SE_STARTUP, 80, 100) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Setup Move Move<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def setup_move_move(mode) <br />
&nbsp;&nbsp;&nbsp;&nbsp;if mode == MODE_MOVER <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@index -= 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@index = @items.size - 1 if @index &lt; 0 <br />
&nbsp;&nbsp;&nbsp;&nbsp;elsif mode == MODE_MOVEL <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@index += 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@index = 0 if @index &gt;= @items.size <br />
&nbsp;&nbsp;&nbsp;&nbsp;else <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;&nbsp;&nbsp;@mode = mode <br />
&nbsp;&nbsp;&nbsp;&nbsp;@steps = MOVING_FRAMES <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Check Animation<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def animation? <br />
&nbsp;&nbsp;&nbsp;&nbsp;return @mode != MODE_WAIT <br />
&nbsp;&nbsp;end <br />
end <br />
<br />
#==============================================================================<br />
# ** Window_RingMenuStatus<br />
#==============================================================================<br />
class Window_RingMenuStatus &lt; Window_Selectable <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Object Initialization<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize <br />
&nbsp;&nbsp;&nbsp;&nbsp;super(204, 64, 232, 352) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width - 32, height - 32) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.size = &#36;chara_select[5] <br />
&nbsp;&nbsp;&nbsp;&nbsp;refresh <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.active = false <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.index = -1 <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Refresh<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def refresh <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.clear <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.windowskin = RPG::Cache.windowskin(&#36;chara_select[4]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.name = &#36;chara_select[0] <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = text_color(&#36;chara_select[1]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;@item_max = &#36;game_party.actors.size <br />
&nbsp;&nbsp;&nbsp;&nbsp;for i in 0...&#36;game_party.actors.size <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = 80 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y = 80 * i <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;actor = &#36;game_party.actors[i] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_actor_graphic(actor, x - 60, y + 65) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_actor_name(actor, x, y + 2) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_actor_hp(actor, x - 40, y + 26) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;draw_actor_sp(actor, x - 40, y + 50) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Update Cursor Rectangle<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def update_cursor_rect <br />
&nbsp;&nbsp;&nbsp;&nbsp;if @index &lt; 0 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.cursor_rect.empty <br />
&nbsp;&nbsp;&nbsp;&nbsp;else <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.cursor_rect.set(0, @index * 80, self.width - 32, 80) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end <br />
&nbsp;&nbsp;end <br />
end <br />
<br />
#==============================================================================<br />
# ** Game_Map<br />
#==============================================================================<br />
class Game_Map <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Name<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def name <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;map_infos[@map_id] <br />
&nbsp;&nbsp;end <br />
end <br />
<br />
#==============================================================================<br />
# ** Scene_Title<br />
#==============================================================================<br />
class Scene_Title <br />
&nbsp;&nbsp;&#36;map_infos = load_data("Data/MapInfos.rxdata") <br />
&nbsp;&nbsp;for key in &#36;map_infos.keys <br />
&nbsp;&nbsp;&nbsp;&nbsp;&#36;map_infos[key] = &#36;map_infos[key].name <br />
&nbsp;&nbsp;end <br />
end <br />
<br />
#==============================================================================<br />
# ** Window_Location<br />
#==============================================================================<br />
class Window_Location &lt; Window_Base <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Object Initialization<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize <br />
&nbsp;&nbsp;&nbsp;&nbsp;super(0, 0, &#36;window_size[0], &#36;window_size[1]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width - 32, height - 32) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.name = &#36;location_text[0] <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.size = &#36;location_text[1] <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;self.contents.clear <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.windowskin = RPG::Cache.windowskin(&#36;window_location_skin) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = text_color(&#36;location_text[2]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, 0, 120, 32, &#36;location_text[3]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = text_color(&#36;location_text[4]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, 32, 120, 32, &#36;game_map.name, 2) <br />
&nbsp;&nbsp;end <br />
end <br />
<br />
#==============================================================================<br />
# ** Window_MenuGold<br />
#==============================================================================<br />
class Window_MenuGold &lt; Window_Base <br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;# * Object Initialization<br />
&nbsp;&nbsp;#--------------------------------------------------------------------------<br />
&nbsp;&nbsp;def initialize <br />
&nbsp;&nbsp;&nbsp;&nbsp;super(0, 0, &#36;window_size[0], &#36;window_size[1]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents = Bitmap.new(width - 32, height - 32) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.name = &#36;gold_text[0] <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.size = &#36;gold_text[1] <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;self.contents.clear <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.windowskin = RPG::Cache.windowskin(&#36;window_gold_skin) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = text_color(&#36;gold_text[2]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, 0, 120, 32, &#36;gold_text[4]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.font.color = text_color(&#36;gold_text[3]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;self.contents.draw_text(4, 32, 120, 32, &#36;game_party.gold.to_s, 2) <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 class="postimage" src="https://i.imgur.com/LdQmpgq.png" border="0" alt="[Obrazek: LdQmpgq.png]" /><br />
</div></div><span style="color: red;"><span style="font-weight: bold;">Dodatkowe informacje:</span></span><br />
Nie potrzeba żadnych grafik, bo jak widać wszystko zrobione z domyślnych zasobów Rpg Makera XP]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Filmiki w Grze]]></title>
			<link>https://forum.ultimateam.pl/Thread-XP-VX-VXAce-Filmiki-w-Grze</link>
			<pubDate>Sat, 07 Jun 2014 17:33:41 +0200</pubDate>
			<guid isPermaLink="false">https://forum.ultimateam.pl/Thread-XP-VX-VXAce-Filmiki-w-Grze</guid>
			<description><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Zeus Video Player ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt pozwala na dodanie filmików w formacie .avi do projektu. Według autora, działa we wszystkich wersjach programu.<br />
<br />
Ja ten skrypt jedynie przetłumaczyłem. <img class="postimage" src="/images/smiles/icon_lala.gif" style="vertical-align: middle;" border="0" alt=":lala:" title=":lala:" /> <br />
A dużo tłumaczenia nie było.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Zeus81<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
Yoroiookami<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># Zeus Video Player v2.1.2 for XP, VX and VXace by Zeus81&nbsp;&nbsp;/ Translated by Yoroiookami<br />
# Wolne do użytku komercyjnego<br />
# Licencja : http://creativecommons.org/licenses/by/4.0/ <br />
# Kontakt : zeusex81@gmail.com <br />
# <br />
# Jak używać : <br />
#&nbsp;&nbsp; Graphics.play_movie( filename, cancellable, fit_to_screen ) <br />
#&nbsp;&nbsp; - filename = ścieżka do pliku<br />
#&nbsp;&nbsp; - cancellable = true jeśli gracz ma mieć możliwość zatrzymania filmiku klikając<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Enter lub Escape, w przeciwnym wypadku false<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ta opcja może zostać pominięta jeśli domyślna wartość wynosi true.<br />
#&nbsp;&nbsp; - fit_to_screen = true jeśli chcesz by wideo dopasowywało wielkość do ekranu<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; w przypadku, gdy się nie mieści. False jeśli ma być wyśrodkowane.<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Jeżeli używasz skryptów typu "Fullscreen", true jest rekomendowane.<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ta opcja może zostać pominięta jeśli domyślna wartość wynosi true.<br />
#&nbsp;&nbsp; np. : Graphics.play_movie( "Movies/prout.avi", true, true ) <br />
#&nbsp;&nbsp; lub&nbsp;&nbsp; Graphics.play_movie( "Movies/prout.avi" ) <br />
# <br />
# Wybór kodeków : <br />
#&nbsp;&nbsp;Nie testowałem wszystkich, ale zdaje się wmv9 (standardowe) jest dobrym wyborem.<br />
#&nbsp;&nbsp; Możesz znaleźć nazwy dostępnych kodeków na tej stronie:<br />
#&nbsp;&nbsp; http://support.microsoft.com/kb/899113 <br />
# <br />
# Obrazek w Tle : <br />
#&nbsp;&nbsp; Możesz wybrać obrazek tła gracza (w przypadku gdy wideo nie wypełnia całego okienka). <br />
#&nbsp;&nbsp; Domyślnie załadowany zostanie obraz "ZeusVideoPlayer" jeśli znaleziony jest w folderze Pictures (format nie ma znaczenia. <br />
#&nbsp;&nbsp; Jeżeli nie zostanie znaleziony, obraz będzie czarny.<br />
# <br />
# Znane błędy : <br />
#&nbsp;&nbsp;- Niektóre kodeki przy pełnym ekranie nie działają, gdy obraz ma być dopasowany.<br />
#&nbsp;&nbsp;- Jeżeli pełny ekran zostanie włączony przy pokazywaniu filmiku, wideo może się zawiesić.<br />
#&nbsp;&nbsp;- Czasami niemożliwe jest pokazanie tego samego filmiku. <br />
#&nbsp;&nbsp;- Dziwne zachowanie w pełnym ekranie.<br />
# <br />
# ZVP_OldAviMode : <br />
#&nbsp;&nbsp; Poniżej możecie zmienić wartość na "true", aby włączyć ten tryb.<br />
#&nbsp;&nbsp; Zalety: <br />
#&nbsp;&nbsp;&nbsp;&nbsp; - Bardziej stabilne, bez błędów.<br />
#&nbsp;&nbsp; Wady : <br />
#&nbsp;&nbsp;&nbsp;&nbsp; - Może pokazywać tylko filmiki typu '.avi'.<br />
#&nbsp;&nbsp;&nbsp;&nbsp; - Musisz użyć kodeków vfw dla wideo, a domyślne kodeki windowsa są ograniczone.<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Lista niedziałających kodeków: MS RLE, MS Video 1, Cinepak, iyuv.&nbsp;&nbsp;I wszystkie są do niczego.<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Każdy inny kodek będzie musiał być instalowany ręcznie, przez gracza. <br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Jeśli to nie jest prolemem, znajdź dobre kodeki, typu vfw w internecie, np. x264vfw. <br />
#&nbsp;&nbsp;&nbsp;&nbsp; - Musisz użyć kodeków acm dla dźwięku.<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Domyślne kodeki windowsa : mp3, pcm. <br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Możesz także znaleźć lepsze kodeki, jak aac acm. <br />
&nbsp;&nbsp;<br />
module Graphics <br />
&nbsp;&nbsp;ZVP_OldAviMode = false<br />
end<br />
&nbsp;&nbsp;<br />
&#36;imported ||= {} <br />
&#36;imported[:Zeus_Video_Player] = __FILE__<br />
&nbsp;&nbsp;<br />
def xp?() false end ; def vx?() false end ; def vxace?() false end<br />
RUBY_VERSION == '1.8.1' ? defined?(Hangup) ? <br />
def xp?() true&nbsp;&nbsp;end : def vx?() true&nbsp;&nbsp;end : def vxace?() true&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
Cache = RPG::Cache if xp? <br />
&nbsp;&nbsp;<br />
class String<br />
&nbsp;&nbsp;alias getbyte&nbsp;&nbsp;[] <br />
&nbsp;&nbsp;alias setbyte&nbsp;&nbsp;[]= <br />
&nbsp;&nbsp;alias bytesize size <br />
end unless vxace? <br />
&nbsp;&nbsp;<br />
module Zeus <br />
&nbsp;&nbsp;module Encode # 1.1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;MultiByteToWideChar = Win32API.new('kernel32', 'MultiByteToWideChar', 'iipipi'&nbsp;&nbsp;, 'i') <br />
&nbsp;&nbsp;&nbsp;&nbsp;WideCharToMultiByte = Win32API.new('kernel32', 'WideCharToMultiByte', 'iipipipp', 'i') <br />
&nbsp;&nbsp;&nbsp;&nbsp;CodePages = { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'ANSI'=&gt;0, 'OEM'=&gt;1, 'MAC'=&gt;2, 'THREAD_ANSI'=&gt;3, 'SYMBOL'=&gt;42, <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'WINDOWS874'=&gt;874, 'SHIFT_JIS'=&gt;932, 'BIG5'=&gt;950, 'WINDOWS1250'=&gt;1250, <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'WINDOWS1251'=&gt;1251, 'WINDOWS1252'=&gt;1252, 'WINDOWS1253'=&gt;1253, <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'WINDOWS1254'=&gt;1254, 'WINDOWS1255'=&gt;1255, 'WINDOWS1256'=&gt;1256, <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'WINDOWS1257'=&gt;1257, 'WINDOWS1258'=&gt;1258, 'US_ASCII'=&gt;20127, <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'ISO8859_1'=&gt;28591, 'ISO8859_2'=&gt;28592, 'ISO8859_3'=&gt;28593, <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'ISO8859_4'=&gt;28594, 'ISO8859_5'=&gt;28595, 'ISO8859_6'=&gt;28596, <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'ISO8859_7'=&gt;28597, 'ISO8859_8'=&gt;28598, 'ISO8859_9'=&gt;28599, <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'ISO8859_13'=&gt;28603, 'ISO8859_15'=&gt;28605, 'ISO8859_8I'=&gt;38598, <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'ISO2022_JP'=&gt;50220, 'ISO2022_KR'=&gt;50225, 'ISO2022_CN'=&gt;50227, <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'EUC_JP'=&gt;51932, 'EUC_CN'=&gt;51936, 'EUC_KR'=&gt;51949, 'GB2312'=&gt;52936, <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'UTF7'=&gt;65000, 'UTF8'=&gt;65001, 'UTF16'=&gt;-1<br />
&nbsp;&nbsp;&nbsp;&nbsp;} <br />
&nbsp;&nbsp;&nbsp;&nbsp;def self.encode(str, from, to, dchar=nil, dflag=nil) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if from != -1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l = MultiByteToWideChar.call(from, 0, str, str.bytesize, nil, 0) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;utf16 = [].pack('x') * (l*2) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MultiByteToWideChar.call(from, 0, str, str.bytesize, utf16, l) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else utf16 = str <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if to != -1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l = WideCharToMultiByte.call(to, 0, utf16, utf16.bytesize/2, nil, 0, dchar, dflag) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str = [].pack('x') * l <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WideCharToMultiByte.call(to, 0, utf16, utf16.bytesize/2, str, l, dchar, dflag) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else str = utf16 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case to <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 20127; str.force_encoding('US-ASCII') <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 65001; str.force_encoding('UTF-8') <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when&nbsp;&nbsp;&nbsp;&nbsp;-1; str.force_encoding('UTF-16LE') <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end if vxace? <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str <br />
&nbsp;&nbsp;&nbsp;&nbsp;rescue raise(&#36;!, &#36;!.message, caller(vxace? ? 2 : 1)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;def self.method_missing(method, str, *options) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from, to = *method.to_s.upcase.split('_TO_', 2).map! {|s| CodePages[s]} <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super unless from and to <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;encode(str, from, to, *options) <br />
&nbsp;&nbsp;&nbsp;&nbsp;rescue raise(&#36;!, &#36;!.message, caller(vxace? ? 2 : 1)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
&nbsp;&nbsp;<br />
module Graphics <br />
&nbsp;&nbsp;DefWindowProc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = Win32API.new('user32', 'DefWindowProc'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;, 'iiii', 'i') <br />
&nbsp;&nbsp;DestroyWindow&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = Win32API.new('user32', 'DestroyWindow'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;, 'i'&nbsp;&nbsp; , 'i') <br />
&nbsp;&nbsp;EnableWindow&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= Win32API.new('user32', 'EnableWindow'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; , 'ii'&nbsp;&nbsp;, 'i') <br />
&nbsp;&nbsp;FindWindow&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= Win32API.new('user32', 'FindWindow'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; , 'pp'&nbsp;&nbsp;, 'i') <br />
&nbsp;&nbsp;GetClientRect&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = Win32API.new('user32', 'GetClientRect'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;, 'ip'&nbsp;&nbsp;, 'i') <br />
&nbsp;&nbsp;GetForegroundWindow = Win32API.new('user32', 'GetForegroundWindow', ''&nbsp;&nbsp;&nbsp;&nbsp;, 'i') <br />
&nbsp;&nbsp;GetMessage&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= Win32API.new('user32', 'GetMessage'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; , 'piii', 'i') <br />
&nbsp;&nbsp;GetWindowLong&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = Win32API.new('user32', 'GetWindowLong'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;, 'ii'&nbsp;&nbsp;, 'i') <br />
&nbsp;&nbsp;PostMessage&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = Win32API.new('user32', 'PostMessage'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;, 'iiii', 'i') <br />
&nbsp;&nbsp;RedrawWindow&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= Win32API.new('user32', 'RedrawWindow'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; , 'ipii', 'i') <br />
&nbsp;&nbsp;SetWindowLong&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = Win32API.new('user32', 'SetWindowLong'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;, 'iii' , 'i') <br />
&nbsp;&nbsp;MciGetErrorString&nbsp;&nbsp; = Win32API.new('winmm' , 'mciGetErrorStringW' , 'ipi' , 'i') <br />
&nbsp;&nbsp;MciSendString&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = Win32API.new('winmm' , 'mciSendStringW'&nbsp;&nbsp;&nbsp;&nbsp; , 'ppii', 'i') <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;HWND = FindWindow.call('RGSS Player', nil) <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;class &lt;&lt; self<br />
&nbsp;&nbsp;&nbsp;&nbsp;def play_movie(filename, cancellable = true, fit_to_screen = true) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@zvp ||= {:buffer =&gt; [].pack('x') * 256} <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@zvp[:filename] = Dir["#{filename}.*"][0] || filename <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@zvp[:cancellable] = cancellable <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@zvp[:fit_to_screen] = fit_to_screen <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return unless open_video_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;back_sprite = Sprite.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;back_sprite.z = 0x7FFF_FFFF <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cached = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;back_sprite.bitmap = Cache.picture('ZeusVideoPlayer') <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;back_sprite.zoom_x = width&nbsp;&nbsp;/ back_sprite.bitmap.width.to_f <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;back_sprite.zoom_y = height / back_sprite.bitmap.height.to_f <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rescue<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cached = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;back_sprite.bitmap = Bitmap.new(1, 1) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;back_sprite.bitmap.set_pixel(0, 0, Color.new(0,0,0)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;back_sprite.zoom_x = width <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;back_sprite.zoom_y = height <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frame_reset <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_video_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;back_sprite.bitmap.dispose unless cached <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;back_sprite.dispose <br />
&nbsp;&nbsp;&nbsp;&nbsp;ensure<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;close_video_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;def width()&nbsp;&nbsp;640 end unless method_defined?(:width) <br />
&nbsp;&nbsp;&nbsp;&nbsp;def height() 480 end unless method_defined?(:height) <br />
&nbsp;&nbsp;private <br />
&nbsp;&nbsp;&nbsp;&nbsp;def mci(command) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;error = mci_silent(command) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true if error == 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MciGetErrorString.call(error, @zvp[:buffer], @zvp[:buffer].bytesize/2) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(mci_result, "&#92;nCommand : ", command) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;def mci_silent(command) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;command = Zeus::Encode.utf8_to_utf16("#{command}&#92;0") <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MciSendString.call(command, @zvp[:buffer], @zvp[:buffer].bytesize/2, HWND) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;def mci_result <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str = Zeus::Encode.utf16_to_utf8(@zvp[:buffer]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str[0, str.index("&#92;0")] <br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;def open_video_player(position=0) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ZVP_OldAviMode <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false unless mci("open &#92;"#{@zvp[:filename]}&#92;" type AVIVideo alias ZeusVideoPlayer") <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false unless mci("window ZeusVideoPlayer handle #{HWND}") <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false unless mci("play ZeusVideoPlayer from #{position} notify") <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false unless mci("open &#92;"#{@zvp[:filename]}&#92;" type MPEGVideo style Child parent #{HWND} alias ZeusVideoPlayer") <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false unless mci("play ZeusVideoPlayer from #{position} notify") <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false unless mci('status ZeusVideoPlayer window handle') <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@zvp[:hwnd] = mci_result.to_i <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EnableWindow.call(@zvp[:hwnd], 0) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;style = GetWindowLong.call(HWND, -16) #GWL_STYLE <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetWindowLong.call(HWND, -16, style | 0x02000000) #WS_CLIPCHILDREN <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;def close_video_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if !ZVP_OldAviMode and @zvp[:hwnd] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DestroyWindow.call(@zvp[:hwnd]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@zvp[:hwnd] = nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mci_silent('stop ZeusVideoPlayer') <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mci_silent('close ZeusVideoPlayer') <br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;def resize_video_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if mci_silent('where ZeusVideoPlayer source') == 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x, y, w, h = *mci_result.split(' ', 4).map! {|s| s.to_i} <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetClientRect.call(HWND, @zvp[:buffer]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;client_w, client_h = *@zvp[:buffer].unpack('x8L2') <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @zvp[:fit_to_screen] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ratio = w / h.to_f <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w, h = client_w, (client_w / ratio).round <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h, w = client_h, (client_h * ratio).round if h &gt; client_h <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x, y = (client_w-w)/2, (client_h-h)/2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window = ZVP_OldAviMode ? 'destination' : 'window'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mci_silent("put ZeusVideoPlayer #{window} at #{x} #{y} #{w} #{h}") <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RedrawWindow.call(@zvp[:hwnd] || HWND, nil, 0, 0) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;def update_video_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;focus = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loop do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetMessage.call(@zvp[:buffer], 0, 0, 0) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DefWindowProc.call(*msg = @zvp[:buffer].unpack('L4')) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if focus != (HWND == GetForegroundWindow.call) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;focus = !focus <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mci_silent("#{focus ? 'resume' : 'pause'} ZeusVideoPlayer") <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resize_video_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next unless focus <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Input.update <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case msg[1] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 0x0012; exit #WM_QUIT <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 0x0100 #WM_KEYDOWN <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next if msg[3][30] == 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case msg[2] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 0x70, 0x7B #VK_F1, VK_F12 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;focus = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mci_silent('pause ZeusVideoPlayer') <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PostMessage.call(*msg) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 0x74, 0x75 #VK_F5, VK_F6 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next if !&#36;imported[:Zeus_Fullscreen] or vx_fullscreen? <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resize_video_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 0x0D, 0x1B #VK_RETURN, VK_ESCAPE <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mci_silent('stop ZeusVideoPlayer') if @zvp[:cancellable] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 0x0104 #WM_SYSKEYDOWN <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next if msg[2] != 0x0D or msg[3][30] == 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next if &#36;imported[:Zeus_Fullscreen] and Disable_VX_Fullscreen <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ZVP_OldAviMode <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PostMessage.call(*msg) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resize_video_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next if mci_silent('status ZeusVideoPlayer position') != 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;position = mci_result.to_i <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;close_video_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PostMessage.call(*msg) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break unless open_video_player(position) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resize_video_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mci_silent('status ZeusVideoPlayer mode') <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break if mci_result == 'stopped'<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;&nbsp;&nbsp;if xp? <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alias anti_hangup_update_video_player update_video_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def update_video_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;anti_hangup_update_video_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rescue Hangup <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;retry<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;">Dodatkowe informacje:</span></span><br />
Kodeki są trochę podchwytliwe. Najlepiej wybrać domyślne, żeby działały na wszystkich komputerach.<br />
Nie polecam xvid'a i tym podobnych.]]></description>
			<content:encoded><![CDATA[<center><span style="font-size: medium;"><span style="color: red;"><span style="font-weight: bold;">~ Zeus Video Player ~</span></span></span></center><br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Krótki opis:</span></span><br />
Skrypt pozwala na dodanie filmików w formacie .avi do projektu. Według autora, działa we wszystkich wersjach programu.<br />
<br />
Ja ten skrypt jedynie przetłumaczyłem. <img class="postimage" src="/images/smiles/icon_lala.gif" style="vertical-align: middle;" border="0" alt=":lala:" title=":lala:" /> <br />
A dużo tłumaczenia nie było.<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Autor:</span></span><br />
Zeus81<br />
<br />
<span style="color: red;"><span style="font-weight: bold;">Tłumaczenie:</span></span><br />
Yoroiookami<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># Zeus Video Player v2.1.2 for XP, VX and VXace by Zeus81&nbsp;&nbsp;/ Translated by Yoroiookami<br />
# Wolne do użytku komercyjnego<br />
# Licencja : http://creativecommons.org/licenses/by/4.0/ <br />
# Kontakt : zeusex81@gmail.com <br />
# <br />
# Jak używać : <br />
#&nbsp;&nbsp; Graphics.play_movie( filename, cancellable, fit_to_screen ) <br />
#&nbsp;&nbsp; - filename = ścieżka do pliku<br />
#&nbsp;&nbsp; - cancellable = true jeśli gracz ma mieć możliwość zatrzymania filmiku klikając<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Enter lub Escape, w przeciwnym wypadku false<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ta opcja może zostać pominięta jeśli domyślna wartość wynosi true.<br />
#&nbsp;&nbsp; - fit_to_screen = true jeśli chcesz by wideo dopasowywało wielkość do ekranu<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; w przypadku, gdy się nie mieści. False jeśli ma być wyśrodkowane.<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Jeżeli używasz skryptów typu "Fullscreen", true jest rekomendowane.<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ta opcja może zostać pominięta jeśli domyślna wartość wynosi true.<br />
#&nbsp;&nbsp; np. : Graphics.play_movie( "Movies/prout.avi", true, true ) <br />
#&nbsp;&nbsp; lub&nbsp;&nbsp; Graphics.play_movie( "Movies/prout.avi" ) <br />
# <br />
# Wybór kodeków : <br />
#&nbsp;&nbsp;Nie testowałem wszystkich, ale zdaje się wmv9 (standardowe) jest dobrym wyborem.<br />
#&nbsp;&nbsp; Możesz znaleźć nazwy dostępnych kodeków na tej stronie:<br />
#&nbsp;&nbsp; http://support.microsoft.com/kb/899113 <br />
# <br />
# Obrazek w Tle : <br />
#&nbsp;&nbsp; Możesz wybrać obrazek tła gracza (w przypadku gdy wideo nie wypełnia całego okienka). <br />
#&nbsp;&nbsp; Domyślnie załadowany zostanie obraz "ZeusVideoPlayer" jeśli znaleziony jest w folderze Pictures (format nie ma znaczenia. <br />
#&nbsp;&nbsp; Jeżeli nie zostanie znaleziony, obraz będzie czarny.<br />
# <br />
# Znane błędy : <br />
#&nbsp;&nbsp;- Niektóre kodeki przy pełnym ekranie nie działają, gdy obraz ma być dopasowany.<br />
#&nbsp;&nbsp;- Jeżeli pełny ekran zostanie włączony przy pokazywaniu filmiku, wideo może się zawiesić.<br />
#&nbsp;&nbsp;- Czasami niemożliwe jest pokazanie tego samego filmiku. <br />
#&nbsp;&nbsp;- Dziwne zachowanie w pełnym ekranie.<br />
# <br />
# ZVP_OldAviMode : <br />
#&nbsp;&nbsp; Poniżej możecie zmienić wartość na "true", aby włączyć ten tryb.<br />
#&nbsp;&nbsp; Zalety: <br />
#&nbsp;&nbsp;&nbsp;&nbsp; - Bardziej stabilne, bez błędów.<br />
#&nbsp;&nbsp; Wady : <br />
#&nbsp;&nbsp;&nbsp;&nbsp; - Może pokazywać tylko filmiki typu '.avi'.<br />
#&nbsp;&nbsp;&nbsp;&nbsp; - Musisz użyć kodeków vfw dla wideo, a domyślne kodeki windowsa są ograniczone.<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Lista niedziałających kodeków: MS RLE, MS Video 1, Cinepak, iyuv.&nbsp;&nbsp;I wszystkie są do niczego.<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Każdy inny kodek będzie musiał być instalowany ręcznie, przez gracza. <br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Jeśli to nie jest prolemem, znajdź dobre kodeki, typu vfw w internecie, np. x264vfw. <br />
#&nbsp;&nbsp;&nbsp;&nbsp; - Musisz użyć kodeków acm dla dźwięku.<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Domyślne kodeki windowsa : mp3, pcm. <br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Możesz także znaleźć lepsze kodeki, jak aac acm. <br />
&nbsp;&nbsp;<br />
module Graphics <br />
&nbsp;&nbsp;ZVP_OldAviMode = false<br />
end<br />
&nbsp;&nbsp;<br />
&#36;imported ||= {} <br />
&#36;imported[:Zeus_Video_Player] = __FILE__<br />
&nbsp;&nbsp;<br />
def xp?() false end ; def vx?() false end ; def vxace?() false end<br />
RUBY_VERSION == '1.8.1' ? defined?(Hangup) ? <br />
def xp?() true&nbsp;&nbsp;end : def vx?() true&nbsp;&nbsp;end : def vxace?() true&nbsp;&nbsp;end<br />
&nbsp;&nbsp;<br />
Cache = RPG::Cache if xp? <br />
&nbsp;&nbsp;<br />
class String<br />
&nbsp;&nbsp;alias getbyte&nbsp;&nbsp;[] <br />
&nbsp;&nbsp;alias setbyte&nbsp;&nbsp;[]= <br />
&nbsp;&nbsp;alias bytesize size <br />
end unless vxace? <br />
&nbsp;&nbsp;<br />
module Zeus <br />
&nbsp;&nbsp;module Encode # 1.1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;MultiByteToWideChar = Win32API.new('kernel32', 'MultiByteToWideChar', 'iipipi'&nbsp;&nbsp;, 'i') <br />
&nbsp;&nbsp;&nbsp;&nbsp;WideCharToMultiByte = Win32API.new('kernel32', 'WideCharToMultiByte', 'iipipipp', 'i') <br />
&nbsp;&nbsp;&nbsp;&nbsp;CodePages = { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'ANSI'=&gt;0, 'OEM'=&gt;1, 'MAC'=&gt;2, 'THREAD_ANSI'=&gt;3, 'SYMBOL'=&gt;42, <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'WINDOWS874'=&gt;874, 'SHIFT_JIS'=&gt;932, 'BIG5'=&gt;950, 'WINDOWS1250'=&gt;1250, <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'WINDOWS1251'=&gt;1251, 'WINDOWS1252'=&gt;1252, 'WINDOWS1253'=&gt;1253, <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'WINDOWS1254'=&gt;1254, 'WINDOWS1255'=&gt;1255, 'WINDOWS1256'=&gt;1256, <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'WINDOWS1257'=&gt;1257, 'WINDOWS1258'=&gt;1258, 'US_ASCII'=&gt;20127, <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'ISO8859_1'=&gt;28591, 'ISO8859_2'=&gt;28592, 'ISO8859_3'=&gt;28593, <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'ISO8859_4'=&gt;28594, 'ISO8859_5'=&gt;28595, 'ISO8859_6'=&gt;28596, <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'ISO8859_7'=&gt;28597, 'ISO8859_8'=&gt;28598, 'ISO8859_9'=&gt;28599, <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'ISO8859_13'=&gt;28603, 'ISO8859_15'=&gt;28605, 'ISO8859_8I'=&gt;38598, <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'ISO2022_JP'=&gt;50220, 'ISO2022_KR'=&gt;50225, 'ISO2022_CN'=&gt;50227, <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'EUC_JP'=&gt;51932, 'EUC_CN'=&gt;51936, 'EUC_KR'=&gt;51949, 'GB2312'=&gt;52936, <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'UTF7'=&gt;65000, 'UTF8'=&gt;65001, 'UTF16'=&gt;-1<br />
&nbsp;&nbsp;&nbsp;&nbsp;} <br />
&nbsp;&nbsp;&nbsp;&nbsp;def self.encode(str, from, to, dchar=nil, dflag=nil) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if from != -1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l = MultiByteToWideChar.call(from, 0, str, str.bytesize, nil, 0) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;utf16 = [].pack('x') * (l*2) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MultiByteToWideChar.call(from, 0, str, str.bytesize, utf16, l) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else utf16 = str <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if to != -1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l = WideCharToMultiByte.call(to, 0, utf16, utf16.bytesize/2, nil, 0, dchar, dflag) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str = [].pack('x') * l <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WideCharToMultiByte.call(to, 0, utf16, utf16.bytesize/2, str, l, dchar, dflag) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else str = utf16 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case to <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 20127; str.force_encoding('US-ASCII') <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 65001; str.force_encoding('UTF-8') <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when&nbsp;&nbsp;&nbsp;&nbsp;-1; str.force_encoding('UTF-16LE') <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end if vxace? <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str <br />
&nbsp;&nbsp;&nbsp;&nbsp;rescue raise(&#36;!, &#36;!.message, caller(vxace? ? 2 : 1)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;def self.method_missing(method, str, *options) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from, to = *method.to_s.upcase.split('_TO_', 2).map! {|s| CodePages[s]} <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super unless from and to <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;encode(str, from, to, *options) <br />
&nbsp;&nbsp;&nbsp;&nbsp;rescue raise(&#36;!, &#36;!.message, caller(vxace? ? 2 : 1)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
end<br />
&nbsp;&nbsp;<br />
module Graphics <br />
&nbsp;&nbsp;DefWindowProc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = Win32API.new('user32', 'DefWindowProc'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;, 'iiii', 'i') <br />
&nbsp;&nbsp;DestroyWindow&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = Win32API.new('user32', 'DestroyWindow'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;, 'i'&nbsp;&nbsp; , 'i') <br />
&nbsp;&nbsp;EnableWindow&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= Win32API.new('user32', 'EnableWindow'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; , 'ii'&nbsp;&nbsp;, 'i') <br />
&nbsp;&nbsp;FindWindow&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= Win32API.new('user32', 'FindWindow'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; , 'pp'&nbsp;&nbsp;, 'i') <br />
&nbsp;&nbsp;GetClientRect&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = Win32API.new('user32', 'GetClientRect'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;, 'ip'&nbsp;&nbsp;, 'i') <br />
&nbsp;&nbsp;GetForegroundWindow = Win32API.new('user32', 'GetForegroundWindow', ''&nbsp;&nbsp;&nbsp;&nbsp;, 'i') <br />
&nbsp;&nbsp;GetMessage&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= Win32API.new('user32', 'GetMessage'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; , 'piii', 'i') <br />
&nbsp;&nbsp;GetWindowLong&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = Win32API.new('user32', 'GetWindowLong'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;, 'ii'&nbsp;&nbsp;, 'i') <br />
&nbsp;&nbsp;PostMessage&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = Win32API.new('user32', 'PostMessage'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;, 'iiii', 'i') <br />
&nbsp;&nbsp;RedrawWindow&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= Win32API.new('user32', 'RedrawWindow'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; , 'ipii', 'i') <br />
&nbsp;&nbsp;SetWindowLong&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = Win32API.new('user32', 'SetWindowLong'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;, 'iii' , 'i') <br />
&nbsp;&nbsp;MciGetErrorString&nbsp;&nbsp; = Win32API.new('winmm' , 'mciGetErrorStringW' , 'ipi' , 'i') <br />
&nbsp;&nbsp;MciSendString&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = Win32API.new('winmm' , 'mciSendStringW'&nbsp;&nbsp;&nbsp;&nbsp; , 'ppii', 'i') <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;HWND = FindWindow.call('RGSS Player', nil) <br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;class &lt;&lt; self<br />
&nbsp;&nbsp;&nbsp;&nbsp;def play_movie(filename, cancellable = true, fit_to_screen = true) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@zvp ||= {:buffer =&gt; [].pack('x') * 256} <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@zvp[:filename] = Dir["#{filename}.*"][0] || filename <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@zvp[:cancellable] = cancellable <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@zvp[:fit_to_screen] = fit_to_screen <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return unless open_video_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;back_sprite = Sprite.new<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;back_sprite.z = 0x7FFF_FFFF <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cached = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;back_sprite.bitmap = Cache.picture('ZeusVideoPlayer') <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;back_sprite.zoom_x = width&nbsp;&nbsp;/ back_sprite.bitmap.width.to_f <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;back_sprite.zoom_y = height / back_sprite.bitmap.height.to_f <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rescue<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cached = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;back_sprite.bitmap = Bitmap.new(1, 1) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;back_sprite.bitmap.set_pixel(0, 0, Color.new(0,0,0)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;back_sprite.zoom_x = width <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;back_sprite.zoom_y = height <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frame_reset <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_video_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;back_sprite.bitmap.dispose unless cached <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;back_sprite.dispose <br />
&nbsp;&nbsp;&nbsp;&nbsp;ensure<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;close_video_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;def width()&nbsp;&nbsp;640 end unless method_defined?(:width) <br />
&nbsp;&nbsp;&nbsp;&nbsp;def height() 480 end unless method_defined?(:height) <br />
&nbsp;&nbsp;private <br />
&nbsp;&nbsp;&nbsp;&nbsp;def mci(command) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;error = mci_silent(command) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true if error == 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MciGetErrorString.call(error, @zvp[:buffer], @zvp[:buffer].bytesize/2) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(mci_result, "&#92;nCommand : ", command) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;def mci_silent(command) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;command = Zeus::Encode.utf8_to_utf16("#{command}&#92;0") <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MciSendString.call(command, @zvp[:buffer], @zvp[:buffer].bytesize/2, HWND) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;def mci_result <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str = Zeus::Encode.utf16_to_utf8(@zvp[:buffer]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str[0, str.index("&#92;0")] <br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;def open_video_player(position=0) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ZVP_OldAviMode <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false unless mci("open &#92;"#{@zvp[:filename]}&#92;" type AVIVideo alias ZeusVideoPlayer") <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false unless mci("window ZeusVideoPlayer handle #{HWND}") <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false unless mci("play ZeusVideoPlayer from #{position} notify") <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false unless mci("open &#92;"#{@zvp[:filename]}&#92;" type MPEGVideo style Child parent #{HWND} alias ZeusVideoPlayer") <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false unless mci("play ZeusVideoPlayer from #{position} notify") <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false unless mci('status ZeusVideoPlayer window handle') <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@zvp[:hwnd] = mci_result.to_i <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EnableWindow.call(@zvp[:hwnd], 0) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;style = GetWindowLong.call(HWND, -16) #GWL_STYLE <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetWindowLong.call(HWND, -16, style | 0x02000000) #WS_CLIPCHILDREN <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;def close_video_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if !ZVP_OldAviMode and @zvp[:hwnd] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DestroyWindow.call(@zvp[:hwnd]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@zvp[:hwnd] = nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mci_silent('stop ZeusVideoPlayer') <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mci_silent('close ZeusVideoPlayer') <br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;def resize_video_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if mci_silent('where ZeusVideoPlayer source') == 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x, y, w, h = *mci_result.split(' ', 4).map! {|s| s.to_i} <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetClientRect.call(HWND, @zvp[:buffer]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;client_w, client_h = *@zvp[:buffer].unpack('x8L2') <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if @zvp[:fit_to_screen] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ratio = w / h.to_f <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w, h = client_w, (client_w / ratio).round <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h, w = client_h, (client_h * ratio).round if h &gt; client_h <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x, y = (client_w-w)/2, (client_h-h)/2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window = ZVP_OldAviMode ? 'destination' : 'window'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mci_silent("put ZeusVideoPlayer #{window} at #{x} #{y} #{w} #{h}") <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RedrawWindow.call(@zvp[:hwnd] || HWND, nil, 0, 0) <br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;def update_video_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;focus = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loop do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetMessage.call(@zvp[:buffer], 0, 0, 0) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DefWindowProc.call(*msg = @zvp[:buffer].unpack('L4')) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if focus != (HWND == GetForegroundWindow.call) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;focus = !focus <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mci_silent("#{focus ? 'resume' : 'pause'} ZeusVideoPlayer") <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resize_video_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next unless focus <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Input.update <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case msg[1] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 0x0012; exit #WM_QUIT <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 0x0100 #WM_KEYDOWN <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next if msg[3][30] == 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case msg[2] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 0x70, 0x7B #VK_F1, VK_F12 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;focus = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mci_silent('pause ZeusVideoPlayer') <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PostMessage.call(*msg) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 0x74, 0x75 #VK_F5, VK_F6 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next if !&#36;imported[:Zeus_Fullscreen] or vx_fullscreen? <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resize_video_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 0x0D, 0x1B #VK_RETURN, VK_ESCAPE <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mci_silent('stop ZeusVideoPlayer') if @zvp[:cancellable] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when 0x0104 #WM_SYSKEYDOWN <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next if msg[2] != 0x0D or msg[3][30] == 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next if &#36;imported[:Zeus_Fullscreen] and Disable_VX_Fullscreen <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ZVP_OldAviMode <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PostMessage.call(*msg) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resize_video_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next if mci_silent('status ZeusVideoPlayer position') != 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;position = mci_result.to_i <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;close_video_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PostMessage.call(*msg) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break unless open_video_player(position) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resize_video_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mci_silent('status ZeusVideoPlayer mode') <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break if mci_result == 'stopped'<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;&nbsp;&nbsp;if xp? <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alias anti_hangup_update_video_player update_video_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def update_video_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;anti_hangup_update_video_player <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rescue Hangup <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;retry<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;">Dodatkowe informacje:</span></span><br />
Kodeki są trochę podchwytliwe. Najlepiej wybrać domyślne, żeby działały na wszystkich komputerach.<br />
Nie polecam xvid'a i tym podobnych.]]></content:encoded>
		</item>
	</channel>
</rss>