Techniken-Buch
Hallo zusammen.
Ich suche ein Skript, wo man zuerst mal auswählen kann, über welchen Actor, man die Techniken wissen soll, und dann über die Techniken, die man bereits schon erlernt hat, mehr Erfahren kann. Ich möchte dort aber auch gerne meinen eigenen Comment hinzufügen. Es wäre nett, wenn einer von euch mir so ein Script zeigen könnte oder schlimmstenfals selber erstellen würde. Ich würde euch dann natürlich auch bei den Credits von meinem Spiel hinzufügen.
Danke schon mal im vorraus
Ich suche ein Skript, wo man zuerst mal auswählen kann, über welchen Actor, man die Techniken wissen soll, und dann über die Techniken, die man bereits schon erlernt hat, mehr Erfahren kann. Ich möchte dort aber auch gerne meinen eigenen Comment hinzufügen. Es wäre nett, wenn einer von euch mir so ein Script zeigen könnte oder schlimmstenfals selber erstellen würde. Ich würde euch dann natürlich auch bei den Credits von meinem Spiel hinzufügen.
Danke schon mal im vorraus
Hmm, mir selbst fiele kein Script ein, welches in etwa so funktionieren würde...
Allerdings kenn ich auch bei weitem nicht alle Scripte (hier).
Und zum Erstellen eines solchen Scripts gibst du leider nur sehr vage Angaben.
Auf welche Weise kann man z.B. in deinem Spiel die Techniken erhalten?
Was soll die "Information" über die Techniken enthalten?
Wo und wie groß soll dein "Kommentar" platziert werden?
Wie soll das Ganze überhaupt in etwa aufgebaut sein?
Wenn du diese Punkte (und falls dir noch weitere wichtig sind die auch) angeben könntest wär sicher der ein- oder andere in der Lage dir da weiterzuhelfen
Ansonsten bin ich mir doch recht sicher dass bei der Scriptauswahl die das Internet bietet auch iwo eins dabei ist welches du brauchen könntest...
mfG
Irrlicht
Allerdings kenn ich auch bei weitem nicht alle Scripte (hier).
Und zum Erstellen eines solchen Scripts gibst du leider nur sehr vage Angaben.
Auf welche Weise kann man z.B. in deinem Spiel die Techniken erhalten?
Was soll die "Information" über die Techniken enthalten?
Wo und wie groß soll dein "Kommentar" platziert werden?
Wie soll das Ganze überhaupt in etwa aufgebaut sein?
Wenn du diese Punkte (und falls dir noch weitere wichtig sind die auch) angeben könntest wär sicher der ein- oder andere in der Lage dir da weiterzuhelfen

Ansonsten bin ich mir doch recht sicher dass bei der Scriptauswahl die das Internet bietet auch iwo eins dabei ist welches du brauchen könntest...
mfG
Irrlicht
hab ma bei itzamna für dich gesucht
hab das hier gefunden!
da steht, dass es nur manchmal läuft... ka
hoff es hilft dir!!!
hab das hier gefunden!
da steht, dass es nur manchmal läuft... ka
hoff es hilft dir!!!
Jo hab das auch gefunden, find es aber eben ein bisschen Blöd. Also ich werde dann mal die Angaben hinschreiben, die Irrlicht wollte.
Die Techniken lerne ich über Levels, jedoch nur der ersten Rang. Um den Rang aufzusteigen, muss man die Technik ein paar mal benutzen. Deshalb brauche ich das Commentfeld, damit ich hinschreiben kann, wieviel mal man die Technik benutzen muss, um den nächsten Rang zu erreichen.
Das Design des Scriptes sollte "wenn möglich" so in etwa so aussehen:
Im ersten Menu kann man auswählen, über welchen Charakter man die Techniken anschauen will.
Im zweiten Menu hat man eine übersicht auf alle Techniken. Dort kann man über die Technik, von der man mehr Erfahren will, anklicken.
Im dritten Menu stehen dann die Angaben (Manakosten Stärke Trefferchance Variance Physisch/magisch Element und eben das Comment)
Wenn jemand das Script genau so erstellen könnte, wäre ich ihm sehr dankbar, und würde ihn natürlich zu deen Credits hinzufügen, sonst wäre ich au froh, wenn mir jemand sagen könnte, dass es so ein ähnliches Script gibt.
Die Techniken lerne ich über Levels, jedoch nur der ersten Rang. Um den Rang aufzusteigen, muss man die Technik ein paar mal benutzen. Deshalb brauche ich das Commentfeld, damit ich hinschreiben kann, wieviel mal man die Technik benutzen muss, um den nächsten Rang zu erreichen.
Das Design des Scriptes sollte "wenn möglich" so in etwa so aussehen:
Im ersten Menu kann man auswählen, über welchen Charakter man die Techniken anschauen will.
Im zweiten Menu hat man eine übersicht auf alle Techniken. Dort kann man über die Technik, von der man mehr Erfahren will, anklicken.
Im dritten Menu stehen dann die Angaben (Manakosten Stärke Trefferchance Variance Physisch/magisch Element und eben das Comment)
Wenn jemand das Script genau so erstellen könnte, wäre ich ihm sehr dankbar, und würde ihn natürlich zu deen Credits hinzufügen, sonst wäre ich au froh, wenn mir jemand sagen könnte, dass es so ein ähnliches Script gibt.
Mein damit unter anderem auch ob du eine Vorstellung davon hast wie das Ganze am Ende aufgebaut sein soll...
Beispielsweise wie groß welches Fenster sein soll, wo es liegen soll, wie Charaktere etc. dargestellt werden sollen oder ob du da nimmst was kommt
Z.B. auch was an dem geposteten Script so doof war dass du es nicht verwenden willst
Wenn du da nicht nehmen willst was kommt würde ich evtl. auch eine Skizze o.Ä. posten, wie die einzelnen Menüs aufgebaut sein sollten, zumindest kanns nicht schaden und das geht auch mit Paint
mfG
Irrlicht
Beispielsweise wie groß welches Fenster sein soll, wo es liegen soll, wie Charaktere etc. dargestellt werden sollen oder ob du da nimmst was kommt

Z.B. auch was an dem geposteten Script so doof war dass du es nicht verwenden willst

Wenn du da nicht nehmen willst was kommt würde ich evtl. auch eine Skizze o.Ä. posten, wie die einzelnen Menüs aufgebaut sein sollten, zumindest kanns nicht schaden und das geht auch mit Paint

mfG
Irrlicht
Hmm, eigendlich nehme ich was kommt wenn es so in etwa aufgebaut ist, wie ich es geschrieben habe.
...doof an dem Script finde ich, dass es erstmal so komische Gruppierungen gibt, man nicht zuerst Auswählen kann, von welchem Charakter man die Attacken braucht und hin oder her taucht bei meinem Spiel ein Error auf wenn ich es benutzen will
Ja wie gesagt, ob man die Faces sieht oder Den ganzen Charakter spielt für mich keine Rolle, auch nicht die grösse der Fenster ect.
Ich wäre echt erfreut wenn mir jemand sagen könnte das es ein solches Script gibt oder eines für mich erstellen könnte.
mfg Erlkönig
...doof an dem Script finde ich, dass es erstmal so komische Gruppierungen gibt, man nicht zuerst Auswählen kann, von welchem Charakter man die Attacken braucht und hin oder her taucht bei meinem Spiel ein Error auf wenn ich es benutzen will
Ja wie gesagt, ob man die Faces sieht oder Den ganzen Charakter spielt für mich keine Rolle, auch nicht die grösse der Fenster ect.
Ich wäre echt erfreut wenn mir jemand sagen könnte das es ein solches Script gibt oder eines für mich erstellen könnte.
mfg Erlkönig
Soo... Die Charakterauswahl sieht zugegeben noch etwas bescheiden aus, da hab ich einfach das Standardfenster des Menüs übernommen^^
Ansonsten sollte das Ding halbwegs brauchbar sein:
Um das Technikinfo-Fenster über die Charakterauswahl aufzurufen benutze den Scriptbefehl
$scene = Scene_IL_Skillinfo_CS.new( startindex , 1)
wird das Fenster von der Map und nicht vom Menü aus aufgerufen verwende
$scene = Scene_IL_Skillinfo_CS.new( startindex , 0)
startindex sollte idR. 0 betragen (erste Auswahl)
Willst due die Charakterauswahl überspringen benutze
$scene = Scene_IL_Skillinfo.new( actorindex , 1)
um das Fenster des einzelnen Actors direkt aufzurufen
actorindex = 0 würde bedeuten dass das Fenster des ersten Actors der Party aufgerufen wird, 1 = des zweiten etc.
Wird das Fenster von der Map aus aufgerufen ersetze die 2te Zahl wie oben entsprechend durch 0.
Das Design kann notfalls angepasst werden, aber da hattest ja sowieso keine Wünsche
(In dem Sinne aber nochmal Danke an Dero für den Tipp Rahmen um die einzelnen Info-Gruppen im Infofenster zu ziehen
)
Sonstige Grenzen:
Es werden maximal 3 Elemente pro Zauber genannt, werden es mehr, wird die Technik als "Vielelement" markiert.
Es werden maximal 7 Statusveränderungen aufgelistet, alle weiteren werden abgeschnitten.
Es stehen maximal 5 Zeilen für Kommentare zur Verfügung.
mfG
Irrlicht
Ansonsten sollte das Ding halbwegs brauchbar sein:
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
module IL_Tech_Info_Scene # Menü-Index: IL_MENUE_INDEX = 4 #Fensterinhalt: oben-rechts IL_UPPER_RIGHT_WINDOW_TEXT = "Technik-Informationen" #Fensterinhalt: unten IL_BOTTOM_WINDOW_TEXT = "Aktionstaste: Bestätigen, L/R: Charakter wechseln" #Begriff für Actor-Level: IL_LEVEL = "Level" #Info für nicht gelernte Fähigkeiten (Auswahlfenster): IL_PRE_LEVEL = "Zum Erlernen dieser Technik wird" IL_POST_LEVEL = "benötigt." # Begriffe für die Zielerfassung: IL_TARGET = "Ziel:" IL_SCOPE0 = "Niemand" IL_SCOPE1 = "ein Gegner" IL_SCOPE2 = "alle Gegner" IL_SCOPE3 = "ein Verbündeter" IL_SCOPE4 = "alle Verbündeten" IL_SCOPE5 = "ein Verbündeter (0 HP)" IL_SCOPE6 = "alle Verbündeten (0 HP)" IL_SCOPE7 = "Benutzer" # Begriff für den SP-Bedarf: IL_SP_COST = "SP - Kosten:" # Begriff für Elementarkräfte: IL_ELEMENT = "Element:" IL_NEUTRAL = "Neutral" IL_MASS_ELEMENT = "Vielelement" # Begriff für die Treffer- / Ausweichrate: IL_HIT = "Trefferrate:" IL_EVA = "Ausweichen" # Begriff für Grundwirkung / Abweichung: IL_POWER = "Grundwirkung: " IL_VARIANCE = "Abweichung: " # Begriff für weitere Einflüsse: IL_INFLUENCES = "Wirkungsboni:" # Begriff für Statusänderungen: IL_STATES = "Statuseffekte:" IL_LEVEL = "Level" # Kommentare: Um einem Zauber ein Kommentar hinzuzufügen, benutze: # COMMENTS[skill_id] = ["erste Zeile","zweite Zeile", "dritte Zeile"] # insgesamt stehen pro Zauber 5 Zeilen zur Verfügung. COMMENTS = Array.new #<---- Diese Zeile muss nicht wiederholt werden. COMMENTS[1] = ["Joa... Öhm... ...Heilzauber...", "", "Viel Spaß damit!"] COMMENTS[57] = ["Der Kreuzschlag gehört zu den wichtigsten Techniken im", "Kampf gegen Untote. Verwende ihn regelmäßig um seine", "Effektivität zu steigern.", "Kreuzschlag ist die erste gelernte Fähigkeit", "OMG HIER PASST NE ZEILE HIN!!!!!"] end |
zum Lesen den Text mit der Maus markieren
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
class Scene_IL_Skillinfo_CS include(IL_Tech_Info_Scene) def initialize(index = 0, from_menu = 0) @actor_index = index % $game_party.actors.size @from_menu = from_menu end def main @background = Sprite.new bitmap = RPG::Cache.windowskin($game_system.windowskin_name) @background.bitmap = Bitmap.new(64,64) @background.bitmap.blt(0, 0, bitmap, Rect.new(0,0,64,64)) @background.zoom_y = 7.5 @background.zoom_x = 10.0 @background.opacity = 128 @background.z = 11 @character_window = Window_MenuStatus.new @character_window.x = 80 @character_window.active = true if $game_party.actors.size > 0 @character_window.index = @actor_index end Graphics.transition # Main loop loop do # Update game screen Graphics.update # Update input information Input.update # Frame update update # Abort loop if screen is changed if $scene != self break end end # Prepare for transition Graphics.freeze @background.bitmap.dispose @background.dispose @character_window.dispose end def update @character_window.update if Input.trigger?(Input::B) # Play cancel SE $game_system.se_play($data_system.cancel_se) # Switch to menu screen if @from_menu == 0 $scene = Scene_Map.new else $scene = Scene_Menu.new(IL_MENUE_INDEX) end return end # If C button was pressed if Input.trigger?(Input::C) case @character_window.index when 0...$game_party.actors.size # Play decision SE $game_system.se_play($data_system.decision_se) $scene = Scene_IL_Skillinfo.new(@character_window.index, 2 + @from_menu % 2) else # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end return end end end |
zum Lesen den Text mit der Maus markieren
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 |
class Windowset_Skillinfo include(IL_Tech_Info_Scene) def initialize @window1 = Window_Base.new(0,128,390,36) @window2 = Window_Base.new(390,128,250,36) @window3 = Window_Base.new(0,164,390,60) @window4 = Window_Base.new(390,164,250,60) @window5 = Window_Base.new(0,224,640,60) @window6 = Window_Base.new(0,284,640,60) @window7 = Window_Base.new(0,344,640,136) @sprite = Sprite.new @sprite.x = 16 @sprite.y = 134 @sprite.z = 5000 @sprite.bitmap = Bitmap.new(608, 346) end def text_color(n) case n when 1 return Color.new(128, 128, 255, 255) when 2 return Color.new(255, 128, 128, 255) when 3 return Color.new(128, 255, 128, 255) when 4 return Color.new(128, 255, 255, 255) when 5 return Color.new(255, 128, 255, 255) when 6 return Color.new(255, 255, 128, 255) when 7 return Color.new(192, 192, 192, 255) else return Color.new(255, 255, 255, 255) end end def visible(invis) @window1.visible = invis @window2.visible = invis @window3.visible = invis @window4.visible = invis @window5.visible = invis @window6.visible = invis @window7.visible = invis @sprite.visible = invis end def dispose @window1.dispose @window1 = nil @window2.dispose @window2 = nil @window3.dispose @window3 = nil @window4.dispose @window4 = nil @window5.dispose @window5 = nil @window6.dispose @window6 = nil @window7.dispose @window7 = nil @sprite.bitmap.dispose @sprite.bitmap = nil @sprite.dispose @sprite = nil end def refresh(skill) @sprite.bitmap.clear @sprite.bitmap.font.size = 24 @sprite.bitmap.font.color = text_color(0) #SP-Kosten: @sprite.bitmap.font.bold = true @sprite.bitmap.draw_text(390,0,150,24, IL_SP_COST, 0) @sprite.bitmap.font.bold = false @sprite.bitmap.draw_text(540,0,68,24,skill.sp_cost.to_s, 2) #Ziel: @sprite.bitmap.font.bold = true @sprite.bitmap.draw_text(0,0,140,24,IL_TARGET, 0) @sprite.bitmap.font.bold = false case skill.scope when 0 scope = IL_SCOPE0 when 1 scope = IL_SCOPE1 when 2 scope = IL_SCOPE2 when 3 scope = IL_SCOPE3 when 4 scope = IL_SCOPE4 when 5 scope = IL_SCOPE5 when 6 scope = IL_SCOPE6 when 7 scope = IL_SCOPE7 end @sprite.bitmap.draw_text(140,0,218,24,scope, 2) #Elemente elements = "" element_counter = 0 skill.element_set.each do |i| if element_counter == 3 elements = IL_MASS_ELEMENT break else elements = elements + " / " if element_counter > 0 elements = elements + $data_system.elements[i] element_counter += 1 end end elements = IL_NEUTRAL if element_counter == 0 @sprite.bitmap.font.bold = true @sprite.bitmap.draw_text(0, 36,100,24, IL_ELEMENT, 0) @sprite.bitmap.font.bold = false @sprite.bitmap.draw_text(90, 36,268,24, elements, 2) #Grundschaden und Abweichung @sprite.bitmap.font.bold = true @sprite.bitmap.draw_text(390,36,150,24,IL_POWER, 0) @sprite.bitmap.font.bold = false healing_spell = (skill.power < 0) @sprite.bitmap.draw_text(540,36,68,24, skill.power.abs.to_s, 2) @sprite.bitmap.font.bold = true @sprite.bitmap.draw_text(390, 60, 150, 24, IL_VARIANCE,0) @sprite.bitmap.font.bold = false @sprite.bitmap.draw_text(540, 60, 68, 24, skill.variance.to_s + "\%",2) #Trefferchance @sprite.bitmap.font.bold = true @sprite.bitmap.draw_text(0, 60, 105, 24, IL_HIT,0) #Prüfe ob Textlänge zu groß ist: textsize1 = @sprite.bitmap.text_size(skill.hit.to_s + "\%").width textsize2 = @sprite.bitmap.text_size(" - " + skill.eva_f.to_s + "\% "+ IL_EVA).width textsize1 += textsize2 if textsize1 > 250 textsize2 = textsize2 * 250 / textsize1 end #Zeichne Trefferchance @sprite.bitmap.font.bold = false if skill.eva_f > 0 @sprite.bitmap.draw_text(100, 60, 250 - textsize2, 24, skill.hit.to_s + "\%",2) #Ausweichrate: Wenn Heilzauber: neutrale Färbung, sonst rote @sprite.bitmap.font.color = healing_spell ? text_color(0) : text_color(2) @sprite.bitmap.draw_text(355 - textsize2, 60, textsize2 + 3, 24, "- " + skill.eva_f.to_s + "\% "+ IL_EVA,2) @sprite.bitmap.font.color = text_color(0) else @sprite.bitmap.draw_text(100, 60, 258, 24, skill.hit.to_s + "\%",2) end #Einflüsse @sprite.bitmap.font.bold = true @sprite.bitmap.draw_text(0, 96,144,24, IL_INFLUENCES, 0) @sprite.bitmap.font.bold = false position = 1 @sprite.bitmap.font.color = text_color(3) if skill.atk_f > 0 @sprite.bitmap.draw_text( 144 * (position % 4) , 96 + (position / 4)* 24, 144, 24, $data_system.words.atk + ": " + skill.atk_f.to_s + "\%", 1) position += 1 end if skill.str_f > 0 @sprite.bitmap.draw_text( 144 * (position % 4) , 96 + (position / 4)* 24, 144, 24, $data_system.words.str + ": " + skill.str_f.to_s + "\%", 1) position += 1 end if skill.dex_f > 0 @sprite.bitmap.draw_text( 144 * (position % 4) , 96 + (position / 4)* 24, 144, 24, $data_system.words.dex + ": " + skill.dex_f.to_s + "\%", 1) position += 1 end if skill.agi_f > 0 @sprite.bitmap.draw_text( 144 * (position % 4) , 96 + (position / 4)* 24, 144, 24, $data_system.words.agi + ": " + skill.agi_f.to_s + "\%", 1) position += 1 end if skill.int_f > 0 @sprite.bitmap.draw_text( 144 * (position % 4) , 96 + (position / 4)* 24, 144, 24, $data_system.words.int + ": " + skill.int_f.to_s + "\%", 1) position += 1 end #Schwächende Boni: Wenn Heilzauber: neutrale Färbung, sonst rote @sprite.bitmap.font.color = healing_spell ? text_color(0) : text_color(2) if skill.pdef_f > 0 @sprite.bitmap.draw_text( 144 * (position % 4) , 96 + (position / 4)* 24, 144, 24, $data_system.words.pdef + ": " + skill.pdef_f.to_s + "\%", 1) position += 1 end if skill.mdef_f > 0 @sprite.bitmap.draw_text( 144 * (position % 4) , 96 + (position / 4)* 24, 144, 24, $data_system.words.mdef + ": " + skill.mdef_f.to_s + "\%", 1) end @sprite.bitmap.font.color = text_color(0) #Statusveränderungen: @sprite.bitmap.font.bold = true @sprite.bitmap.draw_text(0,156,144,24,IL_STATES, 0) position = 1 for i in 1...$data_states.size if skill.plus_state_set.include?(i) @sprite.bitmap.font.size = 24 @sprite.bitmap.font.bold = true @sprite.bitmap.font.color = Color.new(0,0,0,255) @sprite.bitmap.draw_text( -7 + 144 * (position % 4),155 + (position / 4) * 24,24,24,"+", 1) @sprite.bitmap.draw_text( -7 + 144 * (position % 4),158 + (position / 4) * 24,24,24,"+", 1) @sprite.bitmap.draw_text( -4 + 144 * (position % 4),155 + (position / 4) * 24,24,24,"+", 1) @sprite.bitmap.draw_text( -4 + 144 * (position % 4),158 + (position / 4) * 24,24,24,"+", 1) @sprite.bitmap.font.color = text_color(3) @sprite.bitmap.draw_text( -6 + 144 * (position % 4),156 + (position / 4) * 24,24,24,"+", 1) @sprite.bitmap.font.size = 24 @sprite.bitmap.font.bold = false @sprite.bitmap.font.color = text_color(0) @sprite.bitmap.draw_text( 18 + 144 * (position % 4) ,156 + (position / 4)* 24,120,24,$data_states[i].name, 0) position += 1 elsif skill.minus_state_set.include?(i) @sprite.bitmap.font.size = 24 @sprite.bitmap.font.bold = true @sprite.bitmap.font.color = Color.new(0,0,0,255) @sprite.bitmap.draw_text( -7 + 144 * (position % 4),155 + (position / 4) * 24,24,24,"-", 1) @sprite.bitmap.draw_text( -7 + 144 * (position % 4),158 + (position / 4) * 24,24,24,"-", 1) @sprite.bitmap.draw_text( -4 + 144 * (position % 4),155 + (position / 4) * 24,24,24,"-", 1) @sprite.bitmap.draw_text( -4 + 144 * (position % 4),158 + (position / 4) * 24,24,24,"-", 1) @sprite.bitmap.font.color = text_color(2) @sprite.bitmap.draw_text( -6 + 144 * (position % 4),156 + (position / 4) * 24,24,24,"-", 1) @sprite.bitmap.font.size = 24 @sprite.bitmap.font.bold = false @sprite.bitmap.font.color = text_color(0) @sprite.bitmap.draw_text( 18 + 144 * (position % 4) ,156 + (position / 4)* 24,120,24,$data_states[i].name, 0) position += 1 end break if position == 8 end @sprite.bitmap.font.bold = false #Kommentare: unless COMMENTS[skill.id] == nil COMMENTS[skill.id].each_with_index do |i, index| @sprite.bitmap.draw_text(0, 218 + index * 24, 640, 24,i, 0) end end end end |
zum Lesen den Text mit der Maus markieren
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
class Window_Skillinfo_Selection < Window_Selectable include(IL_Tech_Info_Scene) #-Initialisiere Fenster def initialize(actor_id) super(0,128,640, 288) @column_max = 2 @index = -1 @skill_description_window = Window_Base.new(0,64,640,64) @skill_description_window.contents = Bitmap.new(608, 32) @skill_description_window.z = 5000 refresh(actor_id) self.active = true end def refresh(actor_id) @old_index = -1 @skill_description_window.contents.clear @actor_id = actor_id actor = $game_party.actors[@actor_id] if self.contents != nil self.contents.dispose self.contents = nil end @data = [] for i in 0...actor.skills.size skill = $data_skills[actor.skills[i]] if skill != nil @data.push(skill) end end for i in $data_classes[actor.class_id].learnings if i.level > actor.level and not actor.skill_learn?(i.skill_id) @data.push(i.level) end end @item_max = @data.size if @item_max > 0 self.contents = Bitmap.new(width - 32, row_max * 32) for i in 0...@item_max draw_item(i) end end @index = @item_max == 0 ? -1 : 0 update_cursor_rect end def update super if self.active and @skill_description_window != nil and @old_index != @index update_description @old_index = @index end end #-Lösche Fenster def dispose @skill_description_window.dispose super end #-Gebe Fähigkeit zurück def skill return @data[self.index] end #-Male Fähigkeiten ins Fenster def draw_item(index) skill = @data[index] if skill.is_a?(RPG::Skill) self.contents.font.color = normal_color x = 4 + index % 2 * (288 + 32) y = index / 2 * 32 rect = Rect.new(x, y, self.width / @column_max - 32, 32) self.contents.fill_rect(rect, Color.new(0, 0, 0, 0)) bitmap = RPG::Cache.icon(skill.icon_name) opacity = 255 self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity) self.contents.draw_text(x + 28, y, 204, 32, skill.name, 0) self.contents.draw_text(x + 232, y, 48, 32, skill.sp_cost.to_s, 2) elsif skill.is_a?(Numeric) self.contents.font.color = disabled_color x = 4 + index % 2 * (288 + 32) y = index / 2 * 32 rect = Rect.new(x, y, self.width / @column_max - 32, 32) # bitmap = RPG::Cache.icon(DISABLED_ICON_NAME) opacity = 128 # self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity) self.contents.draw_text(x + 28, y, 204, 32, "????????????", 0) end end #-Update des Hilfefensters von Window_Selectable, welches hier nur stören würde :) def update_help end #-Alternatives Hilfefenster-Update def update_description @skill_description_window.contents.clear @skill_description_window.contents.font.color = normal_color if @data[self.index].is_a?(RPG::Skill) @skill_description_window.contents.draw_text(0,0,608,32,@data[self.index].description,0) elsif @data[self.index].is_a?(Numeric) @skill_description_window.contents.draw_text(0,0,608,32,IL_PRE_LEVEL + " " + IL_LEVEL + " "+@data[self.index].to_s + " " + IL_POST_LEVEL,0) else @skill_description_window.contents.draw_text(0,0,608,32,"",0) end end end |
zum Lesen den Text mit der Maus markieren
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 |
class Scene_IL_Skillinfo include(IL_Tech_Info_Scene) def initialize(actor_id = 0, from_scene = 0) if $game_party.actors.size == 0 $scene = from_menue ? Scene_Menu.new : Scene_Map.new end @actor_id = actor_id % $game_party.actors.size #Sichere die vorhergegangene Scene: 0 = Map, 1 = Menü, 2 = Actor-Auswahl (MAP) # 3 = Actor-Auswahl (MENÜ) @from_scene = from_scene end def main @headline2_window = Window_Base.new(320-80,0,320+80,64) @headline2_window.contents = Bitmap.new(288+80, 32) @headline2_window.contents.draw_text(0,0,288+80,32,IL_UPPER_RIGHT_WINDOW_TEXT,1) @headline1_window = Window_Base.new(0,0,240,64) @headline1_window.contents = Bitmap.new(208, 32) @headline1_window.contents.draw_text(0,0,120,32,$game_party.actors[@actor_id].name,0) @headline1_window.contents.draw_text(120,0,88,32,IL_LEVEL + " " + $game_party.actors[@actor_id].level.to_s,2) @skill_select_window = Window_Skillinfo_Selection.new(@actor_id) @skill_info_window = Windowset_Skillinfo.new @skill_info_window.visible(false) @bottom_line_window = Window_Base.new(0,416,640,64) @bottom_line_window.contents = Bitmap.new(608, 32) @bottom_line_window.contents.draw_text(0,0,608,32,IL_BOTTOM_WINDOW_TEXT,1) Graphics.transition # Main loop loop do # Update game screen Graphics.update # Update input information Input.update # Frame update update # Abort loop if screen is changed if $scene != self break end end # Prepare for transition Graphics.freeze # Dispose of windows @bottom_line_window.dispose @skill_info_window.dispose @skill_select_window.dispose @headline1_window.dispose @headline2_window.dispose end def update @skill_select_window.update if Input.trigger?(Input::B) #Wenn sich der Spieler im Auswahlfenster befindet breche ab: if @skill_select_window.active # Spiele Abbruch-Sound $game_system.se_play($data_system.cancel_se) # Kehre zur vorhergegangenen Scene zurück case @from_scene when 0 $scene = Scene_Map.new when 1 $scene = Scene_Menu.new(IL_MENUE_INDEX) when 2 $scene = Scene_IL_Skillinfo_CS.new(@actor_id, 0) when 3 $scene = Scene_IL_Skillinfo_CS.new(@actor_id, 1) end return else #Sonst beende das Informationsfenster und kehre zur Auswahl zurück: # Spiele Abbruch-Sound $game_system.se_play($data_system.cancel_se) # Ändere Fenstersichtbarkeit @skill_select_window.visible = true @skill_select_window.active = true @skill_info_window.visible(false) @bottom_line_window.visible = true # Schreibe die erste Überschrift wieder auf den Actor um: @headline1_window.contents.clear @headline1_window.contents.draw_text(0,0,120,32,$game_party.actors[@actor_id].name,0) @headline1_window.contents.draw_text(120,0,88,32,IL_LEVEL + " " + $game_party.actors[@actor_id].level.to_s,2) end end if Input.trigger?(Input::C) #Wenn sich der Spieler im Auswahlfenster befindet breche ab: if @skill_select_window.active # Prüfe ob der ausgewählte Skill gültig ist, breche ab wenn nicht: unless @skill_select_window.skill.is_a?(RPG::Skill) #Wenn nein spiele Buzzersound und kehre zurück $game_system.se_play($data_system.buzzer_se) return end #Sonst öffne das Infofenster # Spiele Auswahlsound $game_system.se_play($data_system.decision_se) Graphics.freeze #schreibe das linke Überschriftfenster auf den Skill um: @headline1_window.contents.clear bitmap = RPG::Cache.icon(@skill_select_window.skill.icon_name) @headline1_window.contents.blt(4, 4, bitmap, Rect.new(0, 0, 24, 24), 255) @headline1_window.contents.draw_text(32, 0, 200, 32, @skill_select_window.skill.name, 0) # aktualisiere das Infofenster @skill_info_window.refresh(@skill_select_window.skill) # Ändere Fenstersichtbarkeit @skill_select_window.visible = false @skill_select_window.active = false @skill_info_window.visible(true) @bottom_line_window.visible = false Graphics.transition else #Befindet sich der Spieler im Infofenster: # Spiele Abbruch-Sound $game_system.se_play($data_system.cancel_se) # Ändere Fenstersichtbarkeit @skill_select_window.visible = true @skill_select_window.active = true @skill_info_window.visible(false) @bottom_line_window.visible = true # Schreibe die erste Überschrift wieder auf den Actor um: @headline1_window.contents.clear @headline1_window.contents.draw_text(0,0,120,32,$game_party.actors[@actor_id].name,0) @headline1_window.contents.draw_text(120,0,88,32,IL_LEVEL + " " + $game_party.actors[@actor_id].level.to_s,2) end end if Input.trigger?(Input::R) #Wechsle den aktuellen Actor, sofern das Auswahlfenster aktiv und die #Gruppengröße größer als 1 ist: return unless @skill_select_window.active and $game_party.actors.size >= 2 # Spiele Cursorsound $game_system.se_play($data_system.cursor_se) @actor_id += 1 @actor_id %= $game_party.actors.size # Update alle nötigen Fenster: Graphics.freeze refresh_after_actor_changed Graphics.transition return end # If L button was pressed if Input.trigger?(Input::L) #Wechsle den aktuellen Actor, sofern das Auswahlfenster aktiv und die #Gruppengröße größer als 1 ist: return unless @skill_select_window.active and $game_party.actors.size >= 2 # Spiele Cursorsound $game_system.se_play($data_system.cursor_se) @actor_id -= 1 @actor_id %= $game_party.actors.size # Update alle nötigen Fenster: Graphics.freeze refresh_after_actor_changed Graphics.transition return end end def refresh_after_actor_changed #Linke Überschrift: @headline1_window.contents.clear @headline1_window.contents.draw_text(0,0,120,32,$game_party.actors[@actor_id].name,0) @headline1_window.contents.draw_text(120,0,88,32,IL_LEVEL + " " + $game_party.actors[@actor_id].level.to_s,2) #Auswahlfenster: @skill_select_window.refresh(@actor_id) end end |
zum Lesen den Text mit der Maus markieren
Um das Technikinfo-Fenster über die Charakterauswahl aufzurufen benutze den Scriptbefehl
$scene = Scene_IL_Skillinfo_CS.new( startindex , 1)
wird das Fenster von der Map und nicht vom Menü aus aufgerufen verwende
$scene = Scene_IL_Skillinfo_CS.new( startindex , 0)
startindex sollte idR. 0 betragen (erste Auswahl)
Willst due die Charakterauswahl überspringen benutze
$scene = Scene_IL_Skillinfo.new( actorindex , 1)
um das Fenster des einzelnen Actors direkt aufzurufen
actorindex = 0 würde bedeuten dass das Fenster des ersten Actors der Party aufgerufen wird, 1 = des zweiten etc.
Wird das Fenster von der Map aus aufgerufen ersetze die 2te Zahl wie oben entsprechend durch 0.
Das Design kann notfalls angepasst werden, aber da hattest ja sowieso keine Wünsche

(In dem Sinne aber nochmal Danke an Dero für den Tipp Rahmen um die einzelnen Info-Gruppen im Infofenster zu ziehen
)Sonstige Grenzen:
Es werden maximal 3 Elemente pro Zauber genannt, werden es mehr, wird die Technik als "Vielelement" markiert.
Es werden maximal 7 Statusveränderungen aufgelistet, alle weiteren werden abgeschnitten.
Es stehen maximal 5 Zeilen für Kommentare zur Verfügung.
mfG
Irrlicht
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Irrlicht« (4. August 2010, 19:09)
Ok, müsste noch wissen ob du es selber erstellt hast oder ähnliches für die Credits.
Auch wenn du es nciht erstellt hast, und es dein Wunsch ist, kann ich dir von mir aus in die Credits nehmen, hast mir nähmlich sehr weiter geholfen, ich hoffe ich kann das Script auch brauchen, aber hört sich schon mal toll an
Ich weiss aber immernoch nicht wie ich das in den Script aditor eingeben muss. Muss ich 5 verschiedene Sripts erstellen mit den Namen die da angegeben sind oder wie? Sry....^^
Auch wenn du es nciht erstellt hast, und es dein Wunsch ist, kann ich dir von mir aus in die Credits nehmen, hast mir nähmlich sehr weiter geholfen, ich hoffe ich kann das Script auch brauchen, aber hört sich schon mal toll an
Ich weiss aber immernoch nicht wie ich das in den Script aditor eingeben muss. Muss ich 5 verschiedene Sripts erstellen mit den Namen die da angegeben sind oder wie? Sry....^^
die 5 Scripts müsstest du (am besten in der Reihenfolge wie angegeben) über Main einfügen.
Entweder kopierst du jedes der oben angegebenen Scripts in ein eigenes leeres Script oder fügst sie eins hinter dem anderen in ein einziges ein - erstere Methode fand ich übersichtlicher
Es ist zwar selbstgemacht, aber hauptsächlich auf Grundlage der bereits vorhandenen Scripte...
(Insbesondere das Charakterauswahlmenü besteht eig. nur aus dem des Standard-Menüs, da ich zu dem Zeitpunkt einfach ein Tief hatte und keine Lust gehabt hätte da was neues zusammenzubauen... lässt bsich aber alles ändern wenn es dir nicht passen sollte... ...zumal ich nichtmal wusste ob ein entspr. Einbau ins Menü nicht besser gewesen wäre...)
Entweder kopierst du jedes der oben angegebenen Scripts in ein eigenes leeres Script oder fügst sie eins hinter dem anderen in ein einziges ein - erstere Methode fand ich übersichtlicher

Es ist zwar selbstgemacht, aber hauptsächlich auf Grundlage der bereits vorhandenen Scripte...
(Insbesondere das Charakterauswahlmenü besteht eig. nur aus dem des Standard-Menüs, da ich zu dem Zeitpunkt einfach ein Tief hatte und keine Lust gehabt hätte da was neues zusammenzubauen... lässt bsich aber alles ändern wenn es dir nicht passen sollte... ...zumal ich nichtmal wusste ob ein entspr. Einbau ins Menü nicht besser gewesen wäre...)
Liegt es vielleicht daran, dass ich die Scripe falsch benennt habe? bzw muss ich da einen anderen Namen nehmen? mfg ErlkönigMmh habs reinkopiert und da steht
NameError occurred while running script
Unitialized constant Interpreter:: Scene_IL_Skillinfo_Charakterselect
Ich werde mal den Grund versuchen selbst herrauszufinden, aber das könnte ne Weile dauern weil ich 0 Ahnung von Scripts habe^.^'
Wenn ichs hab, werde ichs Zittieren aber ich nehme an du kannst mir shcneller sagen, was das problem ist.
Achja und danke für das Script nochmaich werde dich einfach unter "Irrlicht" bei den Credits aufnehmen.
Huch, dann hab ich was übersehen^^
Ich hatte Scene_IL_Skillinfo_Charakterselect nachträglich in Scene_IL_Skillinfo_CS umbenannt nachdem mir auffiel dass $scene = Scene_IL_Skillinfo_Charakterselect.new(x,y) nicht in eine Callscriptzeile passte^^
Ich werds kurz korrigieren...
Btw: Musst mir das ganze ja nicht 2x vorwerfen^^
ED:
Das oben genannte Script enthält alle nötigen Scripts außer dem ersten geposteten (Der Übersetzungsdefinition)
Demnach könntest du also die letzten 4 Scripts durch dieses ersetzen.
ED:
Um das Technikinfo-Fenster über die Charakterauswahl aufzurufen benutze den Scriptbefehl
$scene = Scene_IL_Skillinfo_CS.new( startindex , 1)
wird das Fenster von der Map und nicht vom Menü aus aufgerufen verwende
$scene = Scene_IL_Skillinfo_CS.new( startindex , 0)
Diese Änderung hätte u.U. schon gereicht^^
Ich hatte Scene_IL_Skillinfo_Charakterselect nachträglich in Scene_IL_Skillinfo_CS umbenannt nachdem mir auffiel dass $scene = Scene_IL_Skillinfo_Charakterselect.new(x,y) nicht in eine Callscriptzeile passte^^
Ich werds kurz korrigieren...
Btw: Musst mir das ganze ja nicht 2x vorwerfen^^
ED:
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 |
############################################################################### # Diese Klasse regelt die Charakterauswahl. # Sollte überflüssig werden wenn die Technik-Indormation in ein geeignetes Menü # eingebunden wird. ############################################################################### class Scene_IL_Skillinfo_CS #Klasse enthält die definierten Übersetzungen: include(IL_Tech_Info_Scene) def initialize(index = 0, from_menu = 0) #Setze Index fest und korrigiere ihn wenn er außerhalb der Gruppengröße liegt @actor_index = $game_party.actors.size == 0 ? -1 : (index % $game_party.actors.size) #Speichere vorhergegangene Scene: 0 = Map, 1 = Menü @from_menu = from_menu end def main #setze Hintergrund @background = Sprite.new bitmap = RPG::Cache.windowskin($game_system.windowskin_name) @background.bitmap = Bitmap.new(64,64) @background.bitmap.blt(0, 0, bitmap, Rect.new(0,0,64,64)) @background.zoom_y = 7.5 @background.zoom_x = 10.0 @background.opacity = 128 @background.z = 11 #Erstelle Charakterfenster @character_window = Window_MenuStatus.new @character_window.x = 80 @character_window.active = true #Setze das Charakterfenster auf den mitgegebenen Index: @character_window.index = @actor_index #Übergang zur Hauptschleife: Graphics.transition # Main loop loop do # Update game screen Graphics.update # Update input information Input.update # Frame update update # Abort loop if screen is changed if $scene != self break end end # Prepare for transition Graphics.freeze #Zerstöre die in der Scene benutzten Fenster: @background.bitmap.dispose @background.dispose @character_window.dispose end def update #aktualisiere das Auswahlfenster @character_window.update #Überprüfe ob "Abbrechen" gedrückt wurde: if Input.trigger?(Input::B) # Play cancel SE $game_system.se_play($data_system.cancel_se) # Switch to menu screen if @from_menu == 0 $scene = Scene_Map.new else $scene = Scene_Menu.new(IL_MENUE_INDEX) end return end # Überprüfe ob "Aktion" gedrückt wurde: if Input.trigger?(Input::C) case @character_window.index #Überprüfe ob der Index innerhalb der Gruppengröße liegt (nicht -1) when 0...$game_party.actors.size # Play decision SE $game_system.se_play($data_system.decision_se) $scene = Scene_IL_Skillinfo.new(@character_window.index, 2 + @from_menu % 2) else # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end return end end end ############################################################################### # Die folgende Klasse enthält das Auswahlfenster für alle Techniken, die der # entspr. Charakter beherrscht oder beherrschen wird. # Das Fenster für die Technikbeschreibung ist dabei ebenfalls enthalten: ############################################################################### class Window_Skillinfo_Selection < Window_Selectable #Enthält die definierten Übersetzungen: include(IL_Tech_Info_Scene) #Fenster wird erstellt def initialize(actor_id) super(0,128,640, 288) @column_max = 2 @index = -1 #Hilfsfenster für Technikbeschreibung wird erstellt @skill_description_window = Window_Base.new(0,64,640,64) @skill_description_window.contents = Bitmap.new(608, 32) @skill_description_window.z = 5000 #Fülle die Fenster mit Inhalt: refresh(actor_id) self.active = true end def refresh(actor_id) #"Alter Index" wird zurückgesetzt @old_index = -1 #Fensterinhalt des Beschreibungsfensters wird geleert @skill_description_window.contents.clear # aktiver Charakter wird gesetzt: @actor_id = actor_id actor = $game_party.actors[@actor_id] #Wenn im Hauptfenster eine Bildfläche existiert entferne sie if self.contents != nil self.contents.dispose self.contents = nil end #Bestimme Datenmenge... @data = [] # ...für bereits gelernte Skills: for i in 0...actor.skills.size skill = $data_skills[actor.skills[i]] if skill != nil @data.push(skill) end end # ...für zukünftige Skills: for i in $data_classes[actor.class_id].learnings if i.level > actor.level and not actor.skill_learn?(i.skill_id) @data.push(i.level) end end # Sichere Datenmenge: @item_max = @data.size if @item_max > 0 self.contents = Bitmap.new(width - 32, row_max * 32) for i in 0...@item_max draw_item(i) end end # Setze Index: @index = @item_max == 0 ? -1 : 0 # Update das Cursorfenster: update_cursor_rect end def update #aktualisiere Haupt- und Beschreibungsfenster, aktualisiere Index super if self.active and @skill_description_window != nil and @old_index != @index update_description @old_index = @index end end #Zerstöre Haupt- und Beschreibungsfenster: def dispose @skill_description_window.dispose super end # Präsentiere die aktuell gewählte Technik: def skill return @data[self.index] end # Male die Fähigkeiten ins Auswahlfenster: def draw_item(index) skill = @data[index] # Wenn ein gelernter Skill: if skill.is_a?(RPG::Skill) self.contents.font.color = normal_color x = 4 + index % 2 * (288 + 32) y = index / 2 * 32 rect = Rect.new(x, y, self.width / @column_max - 32, 32) self.contents.fill_rect(rect, Color.new(0, 0, 0, 0)) bitmap = RPG::Cache.icon(skill.icon_name) opacity = 255 self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity) self.contents.draw_text(x + 28, y, 204, 32, skill.name, 0) self.contents.draw_text(x + 232, y, 48, 32, skill.sp_cost.to_s, 2) # ein noch nicht gelernter Skill: elsif skill.is_a?(Numeric) self.contents.font.color = disabled_color x = 4 + index % 2 * (288 + 32) y = index / 2 * 32 rect = Rect.new(x, y, self.width / @column_max - 32, 32) # bitmap = RPG::Cache.icon(DISABLED_ICON_NAME) opacity = 128 # self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity) self.contents.draw_text(x + 28, y, 204, 32, "????????????", 0) end end #-Update des Hilfefensters von Window_Selectable, welches hier jedoch nicht verwendet wird. def update_help end #-Alternatives Hilfefenster-Update def update_description #leere Fensterinhalt: @skill_description_window.contents.clear @skill_description_window.contents.font.color = normal_color # Male neue Beschreibung: if @data[self.index].is_a?(RPG::Skill) @skill_description_window.contents.draw_text(0,0,608,32,@data[self.index].description,0) elsif @data[self.index].is_a?(Numeric) @skill_description_window.contents.draw_text(0,0,608,32,IL_PRE_LEVEL + " " + IL_LEVEL + " "+@data[self.index].to_s + " " + IL_POST_LEVEL,0) else @skill_description_window.contents.draw_text(0,0,608,32,"",0) end end end ############################################################################### # Die folgende Klasse enthält das Fensterset, welches bei der Wahl einer # Technik als Info-Fenster gezeigt wird: ############################################################################### class Windowset_Skillinfo # Enthält die definierten Übersetzungen: include(IL_Tech_Info_Scene) def initialize #Erstelle Fensterset @window1 = Window_Base.new(0,128,390,36) @window2 = Window_Base.new(390,128,250,36) @window3 = Window_Base.new(0,164,390,60) @window4 = Window_Base.new(390,164,250,60) @window5 = Window_Base.new(0,224,640,60) @window6 = Window_Base.new(0,284,640,60) @window7 = Window_Base.new(0,344,640,136) #Erstelle Sprite, auf dem die Werte gezeichnet werden: @sprite = Sprite.new @sprite.x = 16 @sprite.y = 134 @sprite.z = 5000 @sprite.bitmap = Bitmap.new(608, 346) end # Erweiterte Textfarben: Entnommen aus Window_Base def text_color(n) case n when 1 return Color.new(128, 128, 255, 255) when 2 return Color.new(255, 128, 128, 255) when 3 return Color.new(128, 255, 128, 255) when 4 return Color.new(128, 255, 255, 255) when 5 return Color.new(255, 128, 255, 255) when 6 return Color.new(255, 255, 128, 255) when 7 return Color.new(192, 192, 192, 255) else return Color.new(255, 255, 255, 255) end end # Regle Richtbarkeit sämtlicher Fenster und des Sprites: def visible(invis) @window1.visible = invis @window2.visible = invis @window3.visible = invis @window4.visible = invis @window5.visible = invis @window6.visible = invis @window7.visible = invis @sprite.visible = invis end # Zerstöre alle Fenster, Spriteinhalt und den Sprite def dispose @window1.dispose @window1 = nil @window2.dispose @window2 = nil @window3.dispose @window3 = nil @window4.dispose @window4 = nil @window5.dispose @window5 = nil @window6.dispose @window6 = nil @window7.dispose @window7 = nil @sprite.bitmap.dispose @sprite.bitmap = nil @sprite.dispose @sprite = nil end # Aktualisiere den Fensterinhalt: def refresh(skill) #leere die Bildfläche: @sprite.bitmap.clear @sprite.bitmap.font.size = 24 @sprite.bitmap.font.color = text_color(0) #SP-Kosten: @sprite.bitmap.font.bold = true @sprite.bitmap.draw_text(390,0,150,24, IL_SP_COST, 0) @sprite.bitmap.font.bold = false @sprite.bitmap.draw_text(540,0,68,24,skill.sp_cost.to_s, 2) #Ziel: @sprite.bitmap.font.bold = true @sprite.bitmap.draw_text(0,0,140,24,IL_TARGET, 0) @sprite.bitmap.font.bold = false #Wähle den passenden Begriff: case skill.scope when 0 scope = IL_SCOPE0 when 1 scope = IL_SCOPE1 when 2 scope = IL_SCOPE2 when 3 scope = IL_SCOPE3 when 4 scope = IL_SCOPE4 when 5 scope = IL_SCOPE5 when 6 scope = IL_SCOPE6 when 7 scope = IL_SCOPE7 end @sprite.bitmap.draw_text(140,0,218,24,scope, 2) #Elemente elements = "" element_counter = 0 #Gehe die Elemente durch und addiere sie zum String: skill.element_set.each do |i| # Werden es mehr als 3 Elemente nehme die "Massenelement"-Übersetzung: if element_counter == 3 elements = IL_MASS_ELEMENT break else #sonst: elements = elements + " / " if element_counter > 0 elements = elements + $data_system.elements[i] element_counter += 1 end end #Sind keine Elemente vorhanden nehme die "Neutral"-Übersetzung: elements = IL_NEUTRAL if element_counter == 0 #Zeichne die Auswahl: @sprite.bitmap.font.bold = true @sprite.bitmap.draw_text(0, 36,100,24, IL_ELEMENT, 0) @sprite.bitmap.font.bold = false @sprite.bitmap.draw_text(90, 36,268,24, elements, 2) #Grundschaden und Abweichung @sprite.bitmap.font.bold = true @sprite.bitmap.draw_text(390,36,150,24,IL_POWER, 0) @sprite.bitmap.font.bold = false #Wenn der Grundschaden kleiner als 0 ist kennzeichne den Zauber als Heilzauber: healing_spell = (skill.power < 0) @sprite.bitmap.draw_text(540,36,68,24, skill.power.abs.to_s, 2) #Schreibe Varianz @sprite.bitmap.font.bold = true @sprite.bitmap.draw_text(390, 60, 150, 24, IL_VARIANCE,0) @sprite.bitmap.font.bold = false @sprite.bitmap.draw_text(540, 60, 68, 24, skill.variance.to_s + "\%",2) #Trefferchance @sprite.bitmap.font.bold = true @sprite.bitmap.draw_text(0, 60, 105, 24, IL_HIT,0) #Prüfe die Textlänge von Hit + EVA -String zu groß ist: textsize1 = @sprite.bitmap.text_size(skill.hit.to_s + "\%").width textsize2 = @sprite.bitmap.text_size(" - " + skill.eva_f.to_s + "\% "+ IL_EVA).width textsize1 += textsize2 #verkleinere beide Strings wenn nötig: if textsize1 > 250 textsize2 = textsize2 * 250 / textsize1 end #Zeichne Trefferchance @sprite.bitmap.font.bold = false #Wenn EVA gezeichnet werden soll: if skill.eva_f > 0 @sprite.bitmap.draw_text(100, 60, 250 - textsize2, 24, skill.hit.to_s + "\%",2) #Ausweichrate: Wenn Heilzauber: neutrale Färbung, sonst rote @sprite.bitmap.font.color = healing_spell ? text_color(0) : text_color(2) @sprite.bitmap.draw_text(355 - textsize2, 60, textsize2 + 3, 24, "- " + skill.eva_f.to_s + "\% "+ IL_EVA,2) @sprite.bitmap.font.color = text_color(0) else #Wenn EVA nicht gezeichnet wird (da 0): @sprite.bitmap.draw_text(100, 60, 258, 24, skill.hit.to_s + "\%",2) end #Einflüsse @sprite.bitmap.font.bold = true @sprite.bitmap.draw_text(0, 96,144,24, IL_INFLUENCES, 0) @sprite.bitmap.font.bold = false #Setze Positionszähler auf Startwert: position = 1 #Grüne Farbe für positive Boni: @sprite.bitmap.font.color = text_color(3) #Zeichne Bonus, wenn > 0 if skill.atk_f > 0 @sprite.bitmap.draw_text( 144 * (position % 4) , 96 + (position / 4)* 24, 144, 24, $data_system.words.atk + ": " + skill.atk_f.to_s + "\%", 1) position += 1 end if skill.str_f > 0 @sprite.bitmap.draw_text( 144 * (position % 4) , 96 + (position / 4)* 24, 144, 24, $data_system.words.str + ": " + skill.str_f.to_s + "\%", 1) position += 1 end if skill.dex_f > 0 @sprite.bitmap.draw_text( 144 * (position % 4) , 96 + (position / 4)* 24, 144, 24, $data_system.words.dex + ": " + skill.dex_f.to_s + "\%", 1) position += 1 end if skill.agi_f > 0 @sprite.bitmap.draw_text( 144 * (position % 4) , 96 + (position / 4)* 24, 144, 24, $data_system.words.agi + ": " + skill.agi_f.to_s + "\%", 1) position += 1 end if skill.int_f > 0 @sprite.bitmap.draw_text( 144 * (position % 4) , 96 + (position / 4)* 24, 144, 24, $data_system.words.int + ": " + skill.int_f.to_s + "\%", 1) position += 1 end #Schwächende Boni: Wenn Heilzauber: neutrale Färbung, sonst rote @sprite.bitmap.font.color = healing_spell ? text_color(0) : text_color(2) if skill.pdef_f > 0 @sprite.bitmap.draw_text( 144 * (position % 4) , 96 + (position / 4)* 24, 144, 24, $data_system.words.pdef + ": " + skill.pdef_f.to_s + "\%", 1) position += 1 end if skill.mdef_f > 0 @sprite.bitmap.draw_text( 144 * (position % 4) , 96 + (position / 4)* 24, 144, 24, $data_system.words.mdef + ": " + skill.mdef_f.to_s + "\%", 1) end @sprite.bitmap.font.color = text_color(0) #Statusveränderungen: @sprite.bitmap.font.bold = true @sprite.bitmap.draw_text(0,156,144,24,IL_STATES, 0) #Setze Positionszähler auf Startwert: position = 1 #Gehe die Statuswerte durch und überprüfe auf Veränderung: for i in 1...$data_states.size #fügt Effekt hinzu? if skill.plus_state_set.include?(i) @sprite.bitmap.font.size = 24 @sprite.bitmap.font.bold = true #Male Hintergrund von "+": @sprite.bitmap.font.color = Color.new(0,0,0,255) @sprite.bitmap.draw_text( -7 + 144 * (position % 4),155 + (position / 4) * 24,24,24,"+", 1) @sprite.bitmap.draw_text( -7 + 144 * (position % 4),158 + (position / 4) * 24,24,24,"+", 1) @sprite.bitmap.draw_text( -4 + 144 * (position % 4),155 + (position / 4) * 24,24,24,"+", 1) @sprite.bitmap.draw_text( -4 + 144 * (position % 4),158 + (position / 4) * 24,24,24,"+", 1) #male farbigen Vordergrund von "+": @sprite.bitmap.font.color = text_color(3) @sprite.bitmap.draw_text( -6 + 144 * (position % 4),156 + (position / 4) * 24,24,24,"+", 1) @sprite.bitmap.font.size = 24 @sprite.bitmap.font.bold = false @sprite.bitmap.font.color = text_color(0) #Male Statusname @sprite.bitmap.draw_text( 18 + 144 * (position % 4) ,156 + (position / 4)* 24,120,24,$data_states[i].name, 0) #erhöhe Positionszähler: position += 1 # entfernt Effekt? elsif skill.minus_state_set.include?(i) @sprite.bitmap.font.size = 24 @sprite.bitmap.font.bold = true #Male Hintergrund von "-": @sprite.bitmap.font.color = Color.new(0,0,0,255) @sprite.bitmap.draw_text( -7 + 144 * (position % 4),155 + (position / 4) * 24,24,24,"-", 1) @sprite.bitmap.draw_text( -7 + 144 * (position % 4),158 + (position / 4) * 24,24,24,"-", 1) @sprite.bitmap.draw_text( -4 + 144 * (position % 4),155 + (position / 4) * 24,24,24,"-", 1) @sprite.bitmap.draw_text( -4 + 144 * (position % 4),158 + (position / 4) * 24,24,24,"-", 1) #male farbigen Vordergrund von "-": @sprite.bitmap.font.color = text_color(2) @sprite.bitmap.draw_text( -6 + 144 * (position % 4),156 + (position / 4) * 24,24,24,"-", 1) @sprite.bitmap.font.size = 24 @sprite.bitmap.font.bold = false @sprite.bitmap.font.color = text_color(0) #Male Statusname @sprite.bitmap.draw_text( 18 + 144 * (position % 4) ,156 + (position / 4)* 24,120,24,$data_states[i].name, 0) #erhöhe Positionszähler: position += 1 end # Wenn Positionszähler 8 erreicht hat Breche aus der Schleife: break if position == 8 end @sprite.bitmap.font.bold = false #Kommentare: Wenn definiert, füge sie hinzu: unless COMMENTS[skill.id] == nil COMMENTS[skill.id].each_with_index do |i, index| @sprite.bitmap.draw_text(0, 218 + index * 24, 640, 24,i, 0) end end end end ############################################################################### # Folgende Klasse steuert das Info-Fensterset und das Technik-Auswahlfenster. # Sie enthält zudem alle weiteren von nicht aufgezählten Fenster. ############################################################################### class Scene_IL_Skillinfo # Enthält die definierten Übersetzungen: include(IL_Tech_Info_Scene) def initialize(actor_id = 0, from_scene = 0) #Wenn die Gruppengröße = 0 sein sollte kehre sofort zur vorherigen Scene zurück: if $game_party.actors.size == 0 $scene = from_menue = 1 ? Scene_Menu.new : Scene_Map.new end #Setze Actor-Index: @actor_id = actor_id % $game_party.actors.size #Sichere die vorhergegangene Scene: 0 = Map, 1 = Menü, 2 = Actor-Auswahl (Map) # 3 = Actor-Auswahl (Menü) @from_scene = from_scene end def main #Erstelle das obere rechte Überschriftfenster: @headline2_window = Window_Base.new(320-80,0,320+80,64) @headline2_window.contents = Bitmap.new(288+80, 32) @headline2_window.contents.draw_text(0,0,288+80,32,IL_UPPER_RIGHT_WINDOW_TEXT,1) #Erstelle das obere, linke Überschriftfenster: @headline1_window = Window_Base.new(0,0,240,64) @headline1_window.contents = Bitmap.new(208, 32) @headline1_window.contents.draw_text(0,0,128,32,$game_party.actors[@actor_id].name,1) @headline1_window.contents.draw_text(120,0,75,32,IL_LEVEL + " " + $game_party.actors[@actor_id].level.to_s,2) #Erstelle das Technik-Auswahlfenster: @skill_select_window = Window_Skillinfo_Selection.new(@actor_id) #Erstelle das Technikinfo-Fensterset @skill_info_window = Windowset_Skillinfo.new @skill_info_window.visible(false) #Erstelle das untere Informationsfenster: @bottom_line_window = Window_Base.new(0,416,640,64) @bottom_line_window.contents = Bitmap.new(608, 32) @bottom_line_window.contents.draw_text(0,0,608,32,IL_BOTTOM_WINDOW_TEXT,1) #Übergang zur Hauptschleife: Graphics.transition # Main loop loop do # Update game screen Graphics.update # Update input information Input.update # Frame update update # Abort loop if screen is changed if $scene != self break end end # Prepare for transition Graphics.freeze # Zerstöre die oben erstellten Fenster: @bottom_line_window.dispose @skill_info_window.dispose @skill_select_window.dispose @headline1_window.dispose @headline2_window.dispose end def update #Aktualisiere das Auswahlfenster: @skill_select_window.update #Wenn "Abbruch" gedrückt wurde: if Input.trigger?(Input::B) #Wenn sich der Spieler im Auswahlfenster befindet breche die Scene ab: if @skill_select_window.active # Spiele Abbruch-Sound $game_system.se_play($data_system.cancel_se) # Kehre zur vorhergegangenen Scene zurück case @from_scene when 0 $scene = Scene_Map.new when 1 $scene = Scene_Menu.new(IL_MENUE_INDEX) when 2 $scene = Scene_IL_Skillinfo_CS.new(@actor_id, 0) when 3 $scene = Scene_IL_Skillinfo_CS.new(@actor_id, 1) end return else #Sonst beende das Informationsfenster und kehre zur Auswahl zurück: # Spiele Abbruch-Sound $game_system.se_play($data_system.cancel_se) # Ändere Fenstersichtbarkeit @skill_select_window.visible = true @skill_select_window.active = true @skill_info_window.visible(false) @bottom_line_window.visible = true # Schreibe die erste Überschrift wieder auf den Actor um: @headline1_window.contents.clear @headline1_window.contents.draw_text(0,0,120,32,$game_party.actors[@actor_id].name,0) @headline1_window.contents.draw_text(120,0,88,32,IL_LEVEL + " " + $game_party.actors[@actor_id].level.to_s,2) end end #Wenn "Aktion" gedrückt wurde: if Input.trigger?(Input::C) #Wenn sich der Spieler im Auswahlfenster befindet breche ab: if @skill_select_window.active # Prüfe ob der ausgewählte Skill gültig ist, breche ab wenn nicht: unless @skill_select_window.skill.is_a?(RPG::Skill) #Wenn nein spiele Buzzersound und kehre zurück $game_system.se_play($data_system.buzzer_se) return end #Sonst öffne das Infofenster # Spiele Auswahlsound $game_system.se_play($data_system.decision_se) Graphics.freeze #schreibe das linke Überschriftfenster auf den Skill um: @headline1_window.contents.clear bitmap = RPG::Cache.icon(@skill_select_window.skill.icon_name) @headline1_window.contents.blt(4, 4, bitmap, Rect.new(0, 0, 24, 24), 255) @headline1_window.contents.draw_text(32, 0, 200, 32, @skill_select_window.skill.name, 0) # aktualisiere das Infofenster @skill_info_window.refresh(@skill_select_window.skill) # Ändere Fenstersichtbarkeit @skill_select_window.visible = false @skill_select_window.active = false @skill_info_window.visible(true) @bottom_line_window.visible = false Graphics.transition else #Befindet sich der Spieler im Infofenster: # Spiele Abbruch-Sound $game_system.se_play($data_system.cancel_se) # Ändere Fenstersichtbarkeit @skill_select_window.visible = true @skill_select_window.active = true @skill_info_window.visible(false) @bottom_line_window.visible = true # Schreibe die erste Überschrift wieder auf den Actor um: @headline1_window.contents.clear @headline1_window.contents.draw_text(0,0,128,32,$game_party.actors[@actor_id].name,1) @headline1_window.contents.draw_text(120,0,75,32,IL_LEVEL + " " + $game_party.actors[@actor_id].level.to_s,2) end end # Wenn "W"(R) gedrückt wurde if Input.trigger?(Input::R) #Wechsle den aktuellen Actor, sofern das Auswahlfenster aktiv und die #Gruppengröße größer als 1 ist: return unless @skill_select_window.active and $game_party.actors.size >= 2 # Spiele Cursorsound $game_system.se_play($data_system.cursor_se) @actor_id += 1 @actor_id %= $game_party.actors.size # Update alle nötigen Fenster: Graphics.freeze refresh_after_actor_changed Graphics.transition return end # Wenn "Q" (L) gedrückt wurde: if Input.trigger?(Input::L) #Wechsle den aktuellen Actor, sofern das Auswahlfenster aktiv und die #Gruppengröße größer als 1 ist: return unless @skill_select_window.active and $game_party.actors.size >= 2 # Spiele Cursorsound $game_system.se_play($data_system.cursor_se) @actor_id -= 1 @actor_id %= $game_party.actors.size # Update alle nötigen Fenster: Graphics.freeze refresh_after_actor_changed Graphics.transition return end end #aktualisiere Auswahl und linkes Überschrift-Fenster: def refresh_after_actor_changed #Linke Überschrift: @headline1_window.contents.clear @headline1_window.contents.draw_text(0,0,128,32,$game_party.actors[@actor_id].name,1) @headline1_window.contents.draw_text(120,0,75,32,IL_LEVEL + " " + $game_party.actors[@actor_id].level.to_s,2) #Auswahlfenster: @skill_select_window.refresh(@actor_id) end end |
zum Lesen den Text mit der Maus markieren
Das oben genannte Script enthält alle nötigen Scripts außer dem ersten geposteten (Der Übersetzungsdefinition)
Demnach könntest du also die letzten 4 Scripts durch dieses ersetzen.
ED:
Um das Technikinfo-Fenster über die Charakterauswahl aufzurufen benutze den Scriptbefehl
$scene = Scene_IL_Skillinfo_CS.new( startindex , 1)
wird das Fenster von der Map und nicht vom Menü aus aufgerufen verwende
$scene = Scene_IL_Skillinfo_CS.new( startindex , 0)
Diese Änderung hätte u.U. schon gereicht^^
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Irrlicht« (4. August 2010, 18:24)
Jo das zweite ist mit nem Zitat'^^ hab das falsche zitieren ausgewählt^^ sry 
ED:
So es kommt wieder 'ne Fehlermeldung:
NameError occurred whie running Script:
undefined local variable or method `startindex' for
#<Interpreter: 0x720cac0>

ED:
So es kommt wieder 'ne Fehlermeldung:
NameError occurred whie running Script:
undefined local variable or method `startindex' for
#<Interpreter: 0x720cac0>
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Erlkönig« (4. August 2010, 21:05)
Öhm, ja, Startindex müsstest durch eben den Startindex ersetzen, also des Index mit dem du den Aufruf startest
Das wäre in dem Fall eine Zahl zwischen 0 (erster Actor in der Party) und 3 (4ter Actor in der Party)
Sorry wenn das nicht deutlich wurde...^^
Btw: ich hab gar nicht erwähnt dass die Werte automatisch auf
"1ster Actor in der Party" und "Aufruf von der Map" gesetzt werden wenn du einfach gar keine angibst *grins*
Das wäre in dem Fall eine Zahl zwischen 0 (erster Actor in der Party) und 3 (4ter Actor in der Party)
Sorry wenn das nicht deutlich wurde...^^
Btw: ich hab gar nicht erwähnt dass die Werte automatisch auf
"1ster Actor in der Party" und "Aufruf von der Map" gesetzt werden wenn du einfach gar keine angibst *grins*
Soo jetzt versteh ich gar nichts mehr^^
> Um das Technikinfo-Fenster über die Charakterauswahl aufzurufen benutze den Scriptbefehl
$scene = Scene_IL_Skillinfo_CS.new( startindex , 1) <
Hast du geschrieben. Ich rufe es mit einem "Skillbuch" auf, das sollte dann das hier sein.. :/
ED:
Jo habs jetzt mit allen ausprobiert, das steht doch was von ner Variabel? =)
> Um das Technikinfo-Fenster über die Charakterauswahl aufzurufen benutze den Scriptbefehl
$scene = Scene_IL_Skillinfo_CS.new( startindex , 1) <
Hast du geschrieben. Ich rufe es mit einem "Skillbuch" auf, das sollte dann das hier sein.. :/
ED:
Jo habs jetzt mit allen ausprobiert, das steht doch was von ner Variabel? =)
Joa, das schon...
aber auch:
Wie gesagt, wenns nicht deutlich wurde tuts mir leid, aber hoffe das ist jetzt etwas klarer^^
Ansonsten nochmal Kurzanleitung:
Wird das Ganze über ein Callscript aufgerufen:
$scene = Scene_IL_Skillinfo_CS.new
Wenn du das Ding nur im Call-Script verwendest solltest du mit diesem Befehl auskommen
Willst du die Auswahl überspringen und direkt das Technikfenster eines Actors aufrufen verwende:
$scene = Scene_IL_Skillinfo.new
bzw.
$scene = Scene_IL_Skillinfo.new(1) oder einem anderen Index.
aber auch:
Zitat
startindex sollte idR. 0 betragen (erste Auswahl)
Wie gesagt, wenns nicht deutlich wurde tuts mir leid, aber hoffe das ist jetzt etwas klarer^^
Ansonsten nochmal Kurzanleitung:
Wird das Ganze über ein Callscript aufgerufen:
$scene = Scene_IL_Skillinfo_CS.new
Wenn du das Ding nur im Call-Script verwendest solltest du mit diesem Befehl auskommen

Willst du die Auswahl überspringen und direkt das Technikfenster eines Actors aufrufen verwende:
$scene = Scene_IL_Skillinfo.new
bzw.
$scene = Scene_IL_Skillinfo.new(1) oder einem anderen Index.
Das Fenster sammelt automatisch alle Fähigkeiten, die der Actor bereits kennt (unabhängig von der Klasse) und die, die er im Zuge seiner Stufenaufstiege automatisch über seine Klasse erlernen wird.
Wie viele das sind hängt dann natürlich vom Actor ab^^
Probleme hab ich speziell noch mit dem Info-Fenster gehabt da die Raumaufteilung noch recht auf kurze Begriffe und ein gefülltes fenster ausgelegt war^^
Aber wenn dir das so passt hab ich da auch weiter kein Problem mit^^
mfG
Irrlicht
Wie viele das sind hängt dann natürlich vom Actor ab^^
Probleme hab ich speziell noch mit dem Info-Fenster gehabt da die Raumaufteilung noch recht auf kurze Begriffe und ein gefülltes fenster ausgelegt war^^
Aber wenn dir das so passt hab ich da auch weiter kein Problem mit^^
mfG
Irrlicht
Also guck dir einfach den Eventcode an
PS: du musst für jeden Char einen Conditional Branche machen,
aufm Pic sieht man nur den Anfang vom 2. Char!

By yangus

By yangus
Du musst dem Spieler das Item wiedergeben, wenn er nein wählt oder abbricht,
deshalb das change item + healstein, weil sonst, wenn der Spieler diesem Char den Skill nich geben wollte
und dann abbricht das Item weg is (was wir ja aber nich wollen),
hat er jm aber den Skill beigebracht ist das Item weg (und sollte auch so sein)!
Hoff das hilft dir weiter^^
PS: du musst für jeden Char einen Conditional Branche machen,
aufm Pic sieht man nur den Anfang vom 2. Char!

By yangus

By yangus
Du musst dem Spieler das Item wiedergeben, wenn er nein wählt oder abbricht,
deshalb das change item + healstein, weil sonst, wenn der Spieler diesem Char den Skill nich geben wollte
und dann abbricht das Item weg is (was wir ja aber nich wollen),
hat er jm aber den Skill beigebracht ist das Item weg (und sollte auch so sein)!
Hoff das hilft dir weiter^^
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Yangus« (4. August 2010, 22:46)
Ähnliche Themen
-
Hybris 1 - 3 & Rebirth »-
Hybris - Rebirth
(3. August 2008, 17:33)
-
Maker-Talk »-
Vorgefertigtes Programm
(3. April 2010, 09:07)
-
Aurora Hearts & Übermensch »-
Meisterkompendium
(26. August 2008, 15:05)
-
Skript-Anfragen »-
Techniken verstärken ist das mit Script möglich?
(10. Oktober 2008, 21:08)
-
Skript-Anfragen »-
Frage: Braucht man einen Script für die Bewegung der Figuren im Kampf(Techniken)
(31. Oktober 2007, 12:57)


ich werde dich einfach unter "Irrlicht" bei den Credits aufnehmen.