Ausrüstung Vergleich
Guten Tach zusammen,
ich komme am besten gleich zu meiner Anfrage!
Ich suche eine Erweiterung [oder sowas ähnliches eben] für das Menü, dass wenn man die Ausrüstung ändert alle Änderungswerte genau angezeigt werden. Also nicht nur der Angriff oder Rüstung sondern auch Agilität und sowas. Das am besten auch noch in Farbe [besser->grün, schlechter->rot oder so]. Ich glaube auch schonmal so ein Script gesehen zu haben, bin mir aber nicht sicher ob es hier oder wo anders war. Auf jeden Fall finde ich sowas nicht und frage deshalb hier.
Ich habe auch die SuFu benutzt und die Skripte durchgeschaut aber leider nix gefunden. Sorry wenn ich nicht deutlich genug gesucht hab ._.
Ich hoffe sehr ihr könnt mir helfen.
Mfg N4ok3Y
ich komme am besten gleich zu meiner Anfrage!
Ich suche eine Erweiterung [oder sowas ähnliches eben] für das Menü, dass wenn man die Ausrüstung ändert alle Änderungswerte genau angezeigt werden. Also nicht nur der Angriff oder Rüstung sondern auch Agilität und sowas. Das am besten auch noch in Farbe [besser->grün, schlechter->rot oder so]. Ich glaube auch schonmal so ein Script gesehen zu haben, bin mir aber nicht sicher ob es hier oder wo anders war. Auf jeden Fall finde ich sowas nicht und frage deshalb hier.
Ich habe auch die SuFu benutzt und die Skripte durchgeschaut aber leider nix gefunden. Sorry wenn ich nicht deutlich genug gesucht hab ._.
Ich hoffe sehr ihr könnt mir helfen.
Mfg N4ok3Y
eh, also ich hab jetzt mal oben in der Leiste auf [Script] geklickt, dann auf [
Zitat
Ich habe auch die SuFu benutzt und die Skripte durchgeschaut aber leider nix gefunden. Sorry wenn ich nicht deutlich genug gesucht hab ._.
Suchen] und beim Titel "Equip" eingegeben und ihn suchen lassen.Treffer #1:
Hast du tatsächlich dieses Script übersehen, oder ist dies nicht das was du suchst?
Es passt nämlich auf deine Beschreibung - wenn du was anderes suchst, müsstest du nochmal etwas genauer werden.
Das große Scientia Wiki zur Spielentwicklung 
Was ist das RGSS ? RGSS-Dokumentation auf Sc
Kyoshiros Makerkurs
Musik von Shabraxxx für euch
Guide zu den Audioformaten
Skripte von mir (Auswahl):
Atmungssystem
| Streichholzsystem
| Animiert durch Bücher blättern
Random : Marktsystem für Kardor
| Staterelated Battlergraphic
| Hinweis auf mögliche Aktionen
SelfSwitchExpirationtimer Skript - Gameplayerweiterung für Pilzesammler und Farmspiele
Meine Skripte werden gerade hier gesammelt.

Was ist das RGSS ? RGSS-Dokumentation auf Sc
Kyoshiros Makerkurs

Musik von Shabraxxx für euch
Guide zu den Audioformaten

Skripte von mir (Auswahl):
Atmungssystem
| Streichholzsystem
| Animiert durch Bücher blättern
Random : Marktsystem für Kardor
| Staterelated Battlergraphic
| Hinweis auf mögliche Aktionen
SelfSwitchExpirationtimer Skript - Gameplayerweiterung für Pilzesammler und Farmspiele
Meine Skripte werden gerade hier gesammelt.
Whoa verdammt
Hab statt Equip Equipment eingegeben..oh man ich bin echt blöd sorry für die Mühe^^
Auf jeden Fall vielen Dank und ich versprech das nächste mal besser zu suchen
EDIT: Gut das ist doch noch nicht ganz was ich suche. Ich benutze ein Kampfscript dass es mir auch erlaubt 2 Waffen zu tragen. Wenn ich aber beide ausrüsten will kann ich nur die die Haupt-oder Waffenhand ausrüsten. Hast du da was? :O
Hab statt Equip Equipment eingegeben..oh man ich bin echt blöd sorry für die Mühe^^
Auf jeden Fall vielen Dank und ich versprech das nächste mal besser zu suchen

EDIT: Gut das ist doch noch nicht ganz was ich suche. Ich benutze ein Kampfscript dass es mir auch erlaubt 2 Waffen zu tragen. Wenn ich aber beide ausrüsten will kann ich nur die die Haupt-oder Waffenhand ausrüsten. Hast du da was? :O
Ich muss ehrlich gestehen, dass ich bei dem Ganzen Scriptgewusel in der Demo
keinen Durchblick habe.
Aber du kannst mal folgendes versuchen :
Kopiere dir mal die Scripts, die ich in den Spoilern beigefügt
habe im Script-Editor über Main.(Nicht in das Main-Script)
Das erste Script ist das : Advanced Equip Window von RPG Advocate
Das zweite Script ist ist in 4 Scripts unterteilt und heisst : Multi-slot equipment von Guillaume777
Ich habe dir ein Bild angehängt, wie das Ganze ungefähr aussehen kann.
Bild :

Script : Advanced Equip Window
Script : Multi-slot equipment
Vielleicht hilft es dir.
MFG
keinen Durchblick habe.
Aber du kannst mal folgendes versuchen :
Kopiere dir mal die Scripts, die ich in den Spoilern beigefügt
habe im Script-Editor über Main.(Nicht in das Main-Script)
Das erste Script ist das : Advanced Equip Window von RPG Advocate
Das zweite Script ist ist in 4 Scripts unterteilt und heisst : Multi-slot equipment von Guillaume777
Ich habe dir ein Bild angehängt, wie das Ganze ungefähr aussehen kann.
Bild :
Script : Advanced Equip Window
|
|
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 |
# Advanced Equip Window # by RPG Advocate #============================================================================== # ** Window_Base #------------------------------------------------------------------------------ # This class is for all in-game windows. #============================================================================== class Window_Base < Window #-------------------------------------------------------------------------- # * Get Up Text Color #-------------------------------------------------------------------------- def up_color return Color.new(74, 210, 74) end #-------------------------------------------------------------------------- # * Get Down Text Color #-------------------------------------------------------------------------- def down_color return Color.new(250, 80, 50) end end #============================================================================== # ** Window_EquipLeft #------------------------------------------------------------------------------ # This window displays actor parameter changes on the equipment screen. #============================================================================== class Window_EquipLeft < Window_Base #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :mode attr_accessor :changes #-------------------------------------------------------------------------- # * Object Initialization # actor : actor #-------------------------------------------------------------------------- def initialize(actor) super(0, 64, 272, 416) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = "Arial" self.contents.font.size = 24 self.z += 100 @actor = actor @mode = 0 @changes = [0, 0, 0, 0, 0, 0, 0, 0] @elem_text = "" @stat_text = "" refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear draw_actor_name(@actor, 4, 0) draw_actor_level(@actor, 180, 0) draw_actor_parameter(@actor, 4, 32, 0) draw_actor_parameter(@actor, 4, 64, 1) draw_actor_parameter(@actor, 4, 96, 2) draw_actor_parameter(@actor, 4, 128, 3) draw_actor_parameter(@actor, 4, 160, 4) draw_actor_parameter(@actor, 4, 192, 5) draw_actor_parameter(@actor, 4, 224, 6) if @mode == 0 self.contents.draw_text(4, 256, 200, 32, "Elemental Attack:") self.contents.draw_text(4, 320, 200, 32, "Status Attack:") end if @mode == 1 self.contents.draw_text(4, 256, 200, 32, "Elemental Defense:") self.contents.draw_text(4, 320, 200, 32, "Status Defense:") end self.contents.draw_text(12, 288, 220, 32, @elem_text) self.contents.draw_text(12, 352, 220, 32, @stat_text) if @new_atk != nil self.contents.font.color = system_color self.contents.draw_text(160, 32, 40, 32, "→", 1) if @changes[0] == 0 self.contents.font.color = normal_color elsif @changes[0] == -1 self.contents.font.color = down_color else self.contents.font.color = up_color end self.contents.draw_text(200, 32, 36, 32, @new_atk.to_s, 2) end if @new_pdef != nil self.contents.font.color = system_color self.contents.draw_text(160, 64, 40, 32, "→", 1) if @changes[1] == 0 self.contents.font.color = normal_color elsif @changes[1] == -1 self.contents.font.color = down_color else self.contents.font.color = up_color end self.contents.draw_text(200, 64, 36, 32, @new_pdef.to_s, 2) end if @new_mdef != nil self.contents.font.color = system_color self.contents.draw_text(160, 96, 40, 32, "→", 1) if @changes[2] == 0 self.contents.font.color = normal_color elsif @changes[2] == -1 self.contents.font.color = down_color else self.contents.font.color = up_color end self.contents.draw_text(200, 96, 36, 32, @new_mdef.to_s, 2) end if @new_str != nil self.contents.font.color = system_color self.contents.draw_text(160, 128, 40, 32, "→", 1) if @changes[3] == 0 self.contents.font.color = normal_color elsif @changes[3] == -1 self.contents.font.color = down_color else self.contents.font.color = up_color end self.contents.draw_text(200, 128, 36, 32, @new_str.to_s, 2) end if @new_dex != nil self.contents.font.color = system_color self.contents.draw_text(160, 160, 40, 32, "→", 1) if @changes[4] == 0 self.contents.font.color = normal_color elsif @changes[4] == -1 self.contents.font.color = down_color else self.contents.font.color = up_color end self.contents.draw_text(200, 160, 36, 32, @new_dex.to_s, 2) end if @new_agi != nil self.contents.font.color = system_color self.contents.draw_text(160, 192, 40, 32, "→", 1) if @changes[5] == 0 self.contents.font.color = normal_color elsif @changes[5] == -1 self.contents.font.color = down_color else self.contents.font.color = up_color end self.contents.draw_text(200, 192, 36, 32, @new_agi.to_s, 2) end if @new_int != nil self.contents.font.color = system_color self.contents.draw_text(160, 224, 40, 32, "→", 1) if @changes[6] == 0 self.contents.font.color = normal_color elsif @changes[6] == -1 self.contents.font.color = down_color else self.contents.font.color = up_color end self.contents.draw_text(200, 224, 36, 32, @new_int.to_s, 2) end end #-------------------------------------------------------------------------- # * Set parameters after changing equipment # new_atk : attack power after changing equipment # new_pdef : physical defense after changing equipment # new_mdef : magic defense after changing equipment # new_str : strength after changing equipment # new_dex : dexterity after changing equipment # new_agi : agility after changing equipment # new_int : intelligence after changing equipment # new_eva : evasion after changing equipment # elem_text : element rating after changing equipment # stat_text : status rating after changing equipment #-------------------------------------------------------------------------- def set_new_parameters(new_atk, new_pdef, new_mdef, new_str, new_dex, new_agi, new_int, new_eva, elem_text, stat_text) flag = false if new_atk != @new_atk || new_pdef != @new_pdef || new_mdef != @new_mdef flag = true end if new_str != @new_str || new_dex != @new_dex || new_agi != @new_agi flag = true end if new_eva != @new_eva || elem_text != @elem_text || stat_text != @stat_text flag = true end @new_atk = new_atk @new_pdef = new_pdef @new_mdef = new_mdef @new_str = new_str @new_dex = new_dex @new_agi = new_agi @new_int = new_int @new_eva = new_eva @elem_text = elem_text @stat_text = stat_text if flag refresh end end end #============================================================================== # ** Window_EquipItem #------------------------------------------------------------------------------ # This window displays choices when opting to change equipment on the # equipment screen. #============================================================================== class Window_EquipItem < Window_Selectable #-------------------------------------------------------------------------- # * Object Initialization # actor : actor # equip_type : equip region (0-3) #-------------------------------------------------------------------------- def initialize(actor, equip_type) super(272, 256, 368, 224) @actor = actor @equip_type = equip_type @column_max = 1 refresh self.active = false self.index = -1 end #-------------------------------------------------------------------------- # * Item Acquisition #-------------------------------------------------------------------------- def item return @data[self.index] end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh if self.contents != nil self.contents.dispose self.contents = nil end @data = [] # Add equippable weapons if @equip_type == 0 weapon_set = $data_classes[@actor.class_id].weapon_set for i in 1...$data_weapons.size if $game_party.weapon_number(i) > 0 and weapon_set.include?(i) @data.push($data_weapons[i]) end end end # Add equippable armor if @equip_type != 0 armor_set = $data_classes[@actor.class_id].armor_set for i in 1...$data_armors.size if $game_party.armor_number(i) > 0 and armor_set.include?(i) if $data_armors[i].kind == @equip_type-1 @data.push($data_armors[i]) end end end end # Add blank page @data.push(nil) # Make a bit map and draw all items @item_max = @data.size self.contents = Bitmap.new(width - 32, row_max * 32) self.contents.font.name = "Arial" self.contents.font.size = 24 for i in 0...@item_max-1 draw_item(i) end s = @data.size-1 self.contents.draw_text(4, s*32, 100, 32, "[Remove]") end #-------------------------------------------------------------------------- # * Draw Item # index : item number #-------------------------------------------------------------------------- def draw_item(index) item = @data[index] x = 4 y = index * 32 case item when RPG::Weapon number = $game_party.weapon_number(item.id) when RPG::Armor number = $game_party.armor_number(item.id) end bitmap = RPG::Cache.icon(item.icon_name) self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24)) self.contents.font.color = normal_color self.contents.draw_text(x + 28, y, 212, 32, item.name, 0) self.contents.draw_text(x + 288, y, 16, 32, ":", 1) self.contents.draw_text(x + 304, y, 24, 32, number.to_s, 2) end #-------------------------------------------------------------------------- # * Help Text Update #-------------------------------------------------------------------------- def update_help @help_window.set_text(self.item == nil ? "" : self.item.description) end end #============================================================================== # ** Scene_Equip #------------------------------------------------------------------------------ # This class performs equipment screen processing. #============================================================================== class Scene_Equip #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh # Set item window to visible @item_window1.visible = (@right_window.index == 0) @item_window2.visible = (@right_window.index == 1) @item_window3.visible = (@right_window.index == 2) @item_window4.visible = (@right_window.index == 3) @item_window5.visible = (@right_window.index == 4) # Get currently equipped item item1 = @right_window.item # Set current item window to @item_window case @right_window.index when 0 @item_window = @item_window1 newmode = 0 when 1 @item_window = @item_window2 newmode = 1 when 2 @item_window = @item_window3 newmode = 1 when 3 @item_window = @item_window4 newmode = 1 when 4 @item_window = @item_window5 newmode = 1 end if newmode != @left_window.mode @left_window.mode = newmode @left_window.refresh end # If right window is active if @right_window.active # Erase parameters for after equipment change @left_window.set_new_parameters(nil, nil, nil, nil, nil, nil, nil, nil, "", "") end # If item window is active if @item_window.active # Get currently selected item item2 = @item_window.item # Change equipment last_hp = @actor.hp last_sp = @actor.sp old_atk = @actor.atk old_pdef = @actor.pdef old_mdef = @actor.mdef old_str = @actor.str old_dex = @actor.dex old_agi = @actor.agi old_int = @actor.int old_eva = @actor.eva @actor.equip(@right_window.index, item2 == nil ? 0 : item2.id) # Get parameters for after equipment change new_atk = @actor.atk new_pdef = @actor.pdef new_mdef = @actor.mdef new_str = @actor.str new_dex = @actor.dex new_agi = @actor.agi new_int = @actor.int new_eva = @actor.eva @left_window.changes = [0, 0, 0, 0, 0, 0, 0, 0] if new_atk > old_atk @left_window.changes[0] = 1 end if new_atk < old_atk @left_window.changes[0] = -1 end if new_pdef > old_pdef @left_window.changes[1] = 1 end if new_pdef < old_pdef @left_window.changes[1] = -1 end if new_mdef > old_mdef @left_window.changes[2] = 1 end if new_mdef < old_mdef @left_window.changes[2] = -1 end if new_str > old_str @left_window.changes[3] = 1 end if new_str < old_str @left_window.changes[3] = -1 end if new_dex > old_dex @left_window.changes[4] = 1 end if new_dex < old_dex @left_window.changes[4] = -1 end if new_agi > old_agi @left_window.changes[5] = 1 end if new_agi < old_agi @left_window.changes[5] = -1 end if new_int > old_int @left_window.changes[6] = 1 end if new_int < old_int @left_window.changes[6] = -1 end if new_eva > old_eva @left_window.changes[7] = 1 end if new_eva < old_eva @left_window.changes[7] = -1 end elem_text = make_elem_text(item2) stat_text = make_stat_text(item2) # Return equipment @actor.equip(@right_window.index, item1 == nil ? 0 : item1.id) @actor.hp = last_hp @actor.sp = last_sp # Draw in left window @left_window.set_new_parameters(new_atk, new_pdef, new_mdef, new_str, new_dex, new_agi, new_int, new_eva, elem_text, stat_text) end end #-------------------------------------------------------------------------- # * Make Element Text # item : item #-------------------------------------------------------------------------- def make_elem_text(item) text = "" flag = false if item.is_a?(RPG::Weapon) for i in item.element_set if flag text += ", " end text += $data_system.elements[i] flag = true end end if item.is_a?(RPG::Armor) for i in item.guard_element_set if flag text += ", " end text += $data_system.elements[i] flag = true end end return text end #-------------------------------------------------------------------------- # * Make Status Text # item : item #-------------------------------------------------------------------------- def make_stat_text(item) text = "" flag = false if item.is_a?(RPG::Weapon) for i in item.plus_state_set if flag text += ", " end text += $data_states[i].name flag = true end end if item.is_a?(RPG::Armor) for i in item.guard_state_set if flag text += ", " end text += $data_states[i].name flag = true end end return text end end |
zum Lesen den Text mit der Maus markieren
Script : Multi-slot equipment
|
|
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 |
#============================================================================== # Multi-slot equipment script #------------------------------------------------------------------------------ # Section 1: Modules #------------------------------------------------------------------------------ # Guillaume777 # 6.2.2 # 2006/02/14 #============================================================================== # To change slots of character # $game_actors[1].weapon_slots = [0,0] # $game_actors[1].armor_slots = [2,3,4,5,6,7] # # To make armor equipable in new slot : # Add (5) in its name, where 5 is its slot number # To make 2handed weapons : # Add an element called 2handed to a weapon # or, adds its id in TWO_HANDED_WEAPONS = [] # or, adds (2handed) in its name # To make a weapon double attack # Add an element called 2attacks to a weapon # or, adds its id in DOUBLE_ATTACK_WEAPONS = [] # or, adds (2atks) in its name # To make a weapon/armor cursed # Adds its id in CURSED_WEAPONS or CURSED_ARMORS, or # put (cursed) in its name # To make a weapon require an offhand instead of any weapon # Adds its id in NEEDS_OFFHAND or # Adds (needs_offhand) in its name #============================================================================== # *** MODULE: Guillaume777's Multi-Slot Module #------------------------------------------------------------------------------ # This is the configuration module of the Multi-Slot system. It allows you to # set the default names of your slots, tag your weapons and/or armors for many # types of enhancements and features, and etc. #============================================================================== module G7_MS_MOD #-------------------------------------------------------------------------- # * Configuration Section #-------------------------------------------------------------------------- #========Set weapon/armor properties ====================================== CURSED_WEAPONS = [] # ids of weapons to be cursed CURSED_ARMORS = [] # ids of armors to be cursed TWO_HANDED_WEAPONS = [] # ids of 2handed weapons DOUBLE_ATTACK_WEAPONS = [] # ids of double attack weapons NEEDS_OFFHAND = [3,4,5,6,7,8, # ids of weapons requiring an offhand 9,10,11,12, 25,26,27,28,29,30,31,32,33,34,35,36,37,38] SWITCH_EQUIP_WEAPONS = [[38,36], [43,42]] # ids of weapons switched when equipped SWITCH_EQUIP_ARMORS = [[41,40], [42,39]] # ids of switched armors(same above) # Use 1 array, first value of array = false item, second value = true item # # First value in the above arrays is displayed in the weapons/armors you can # choose. When the weapon/armor is chosen, the second id value IS the weapon # or armor that you've chosen. Example: Trick someone to equip a cursed bow. #=========Set weapon/armor properties with element tagging and name edit=== CURSED_STRING = 'cursed' # put (cursed) in item name for it to be cursed HANDS_ELEMENT = 'handed' # no. of hands in front of HANDS_ELEMENT in database HANDS_STRING = 'handed' # name of string in item name like (2handed) MULTI_ATTACK_ELEMENT = 'attacks' # name of element to tag to multi attacks # like (2attacks) MULTI_ATTACK_STRING = 'atks' # string in item name, like (3atks) NEEDS_OFFHAND_STRING = 'needs_offhand' #string in item name if the weapon #needs an offhand like (needs_offhand) #=====Set character slots properties ======================================= WEAPON_KINDS = [0, 0] # number of weapons, 0 = weapon WEAPON_KIND_NAMES = ['R-Hand', 'L-Hand'] # custom name of extra weapon slots WEAPON_KIND_POWERS = [100, 100] # 100 = normal power, 90 = 90% power # Leave empty or put nil inside # if you want the default names. ARMOR_KINDS = [1,2,3,4,5,6,7] # 1 = shield # 2 = helmet # 3 = armor # 4 = acc # 5 = and more : extra slot EXTRA_SLOT_NAMES = ['Gauntlet','Boots','Amulet'] # Name of the extra slots in equip window # You need as many words as there are '5' or more in armor_kinds # The first order of the slots names reflect the order of the 5 in armor_kinds # Put (5) or more to in the armor name to have it assigned to the extra slot #=============Set multi-weapon behavior==================================== IGNORE_OFFHAND = false # ignore off_hand support TWOHANDED_IN_OFFHAND = true # If false don't show two handed weapons in # the offhand window ALL_WEAPONS_FOR_SKILLS = true # true = combined pwr of all weaps for skills # false = only power of first weapon SHIELD_HAND_SLOT = 1 # slot number to be used for shield hand WEAPON_SHIELD_SHARE = true # if true, can't use a shield and a second # weapon at the same time SHIELD_HAND_WIELD = true # true = can use shield hand for 2handed weap. WEAPON_HAND_WIELD = true # true = can use weapon hand for 2handed weap. MULTI_WEAPONS_PENALITY = 0 # percent of atk that will be subtracted if # you use two weapons at the same time. #============Set appearance properties ==================================== FONT_NAME = 'Arial' # Font to use CURSED_COLOR = Color.new(255, 50, 50) # Color of cursed equiped items SHOW_REMOVE = false # Show empty in offhand window WINDOWS_STRETCH = true # true : equip_right stretch to adjust to # of slots MAX_SHOW_SLOTS = 6 # Maximum number of slots in 1 screen in equip right # window. Useless if windows_stretch = false HELP_AT_BOTTOM = false # If true, will leave place for help window at bot- # tom. Useless if you didn't modify the help window # y-coordinate. STATUS_WINDOW_ARRANGE = true # If true, you get a new status window. STATUS_WINDOW_SPACING = 24 # Space between each item in new status window. EVADE = false # If draw_actor_parameter is configured to # receive parameter number 7 (evade), then it # will show in new status window. # EVADE = true has no effect if STATUS_WINDOW_ARRANGE is false #================ end of settings ========================================= #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize super RPG.set_new_item_types #fix armor and weapon properties at start of game end #-------------------------------------------------------------------------- # * End of MODULE: Guillaume777's Multi-Slot Module #-------------------------------------------------------------------------- end #============================================================================ # ** MODULE: RPG Module #---------------------------------------------------------------------------- # This sprite is used as an arrow cursor for the battle screen. This class # is used as a superclass for the Arrow_Enemy and Arrow_Actor classes. #============================================================================ module RPG #-------------------------------------------------------------------------- # * Set New Item Types #-------------------------------------------------------------------------- def RPG.set_new_item_types if @initialized_item_types then return end for armor in $data_armors # for each armor unless armor == nil # if armor armor.set_adv_type # set new type armor.set_cursed # set if item is cursed or not end end for weapon in $data_weapons # for each armor unless weapon == nil # if armor weapon.set_needs_offhand # set if it needs an offhand or not weapon.set_nb_hands # set the number of hands to wield it weapon.set_nb_attacks # set the number of attacks it can do weapon.set_cursed # set if item is cursed or not end end @initialized_item_types = true end #-------------------------------------------------------------------------- # * Initialized Item Types # bool : boolean value (true/false) #-------------------------------------------------------------------------- def RPG.initialized_item_types=(bool) @initialized_item_types = bool end #========================================================================== # ** Armor #-------------------------------------------------------------------------- # Data class for armors, adds new armor types #========================================================================== class Armor attr_accessor :cursed #------------------------------------------------------------------------ # * Set Adv Type #------------------------------------------------------------------------ def set_adv_type pattern = /\((\d+)\)/ if @name.sub!(pattern, '') != nil # Set kind to the number in name of armor @kind = $1.to_i - 1 end end #------------------------------------------------------------------------ # * Set Cursed #------------------------------------------------------------------------ def set_cursed pattern = '('+G7_MS_MOD::CURSED_STRING+')' if @name.sub!(pattern, '') != nil then cursed = true end if G7_MS_MOD::CURSED_ARMORS.include?(@id) then cursed = true end @cursed = cursed end #------------------------------------------------------------------------ # * End of Armor Class #------------------------------------------------------------------------ end #========================================================================== # ** Weapon #-------------------------------------------------------------------------- # Data class for weapons, adds new weapon types #========================================================================== class Weapon #------------------------------------------------------------------------ # * Public Instance Variables #------------------------------------------------------------------------ attr_accessor :needs_offhand # does it need an offhand weapon attr_accessor :nb_hands # numbers of hands it requires attr_accessor :nb_attacks # number of attacks it can do attr_accessor :cursed # true if item is cursed #------------------------------------------------------------------------ # * Set Cursed #------------------------------------------------------------------------ def set_cursed pattern = '('+G7_MS_MOD::CURSED_STRING+')' if @name.sub!(pattern, '') != nil then cursed = true end if G7_MS_MOD::CURSED_WEAPONS.include?(@id) then cursed = true end @cursed = cursed end #------------------------------------------------------------------------ # * Set Needs OffHand #------------------------------------------------------------------------ def set_needs_offhand pattern = '('+G7_MS_MOD::NEEDS_OFFHAND_STRING+')' if @name.sub!(pattern, '') != nil then @needs_offhand = true elsif G7_MS_MOD::NEEDS_OFFHAND.include?(self.id) then @needs_offhand = true elsif @needs_offhand== nil then @needs_offhand = false end end #------------------------------------------------------------------------ # * Returns number of hands needed for weapons #------------------------------------------------------------------------ def set_nb_hands if G7_MS_MOD::TWO_HANDED_WEAPONS.include?(self.id) then nb_hands = 2 end pattern = /\((\d+)#{G7_MS_MOD::HANDS_STRING}\)/ if @name.sub!(pattern, '') != nil nb_hands = $1.downcase.delete('a-z') nb_hands = $1.to_i end # Search through the elements for elementnb in self.element_set elementname = $data_system.elements[elementnb].downcase # If the weapon has an element for another attack if elementname.delete('0-9') == G7_MS_MOD::HANDS_ELEMENT.downcase # Get the number of attacks elementname = elementname.delete('a-z') if elementname != '' then nb_hands = elementname.to_i # Delete the element self.element_set.delete(elementnb) end end end if nb_hands.is_a?(Integer) == false or nb_hands <= 0 then nb_hands = 1 end @nb_hands = nb_hands end #------------------------------------------------------------------------ # * Returns the number of attack the weapon can do #------------------------------------------------------------------------ def set_nb_attacks if G7_MS_MOD::DOUBLE_ATTACK_WEAPONS.include?(self.id) then nb_attacks = 2 else nb_attacks = 1 end pattern = /\((\d+)#{G7_MS_MOD::MULTI_ATTACK_STRING}\)/ if @name.sub!(pattern, '') != nil nb_attacks = $1.downcase.delete('a-z') nb_attacks = $1.to_i end # Search elements that could add more attacks for elementnb in self.element_set elementname = $data_system.elements[elementnb].downcase # If the weapon has an element for another attack if elementname.delete('0-9') == G7_MS_MOD::MULTI_ATTACK_ELEMENT.downcase # Get the number of attacks elementname = elementname.delete('a-z') if elementname != '' then nb_attacks = elementname.to_i # Delete the element self.element_set.delete(elementnb) end end end if nb_attacks.is_a?(Integer) == false or nb_attacks <= 0 then nb_attacks = 1 end @nb_attacks = nb_attacks end #------------------------------------------------------------------------ # * End of CLASS: Weapon #------------------------------------------------------------------------ end #-------------------------------------------------------------------------- # * End of MODULE: RPG Module #-------------------------------------------------------------------------- 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 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 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 |
#============================================================================== # Multi-slot equipment script #------------------------------------------------------------------------------ # Section 2: Actor #------------------------------------------------------------------------------ # Guillaume777 # 6.2.1 # 2006/02/14 #============================================================================== #============================================================================== # ** Game_Actor #------------------------------------------------------------------------------ # This class handles the actor. It's used within the Game_Actors class # ($game_actors) and refers to the Game_Party class ($game_party). #============================================================================== class Game_Actor < Game_Battler include G7_MS_MOD #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :equip_mode # To restore equipment after false equip attr_accessor :equip_type_force # To bypass equip_type attr_accessor :equip_from_menu # To prevent users to unequip cursed items attr_accessor :translucent_texts # To store translucents slots #-------------------------------------------------------------------------- # * Setup (Initializing new Slots) # actor_id : actor ID #-------------------------------------------------------------------------- alias g7_ms_game_actor_setup setup def setup(actor_id) g7_ms_game_actor_setup(actor_id) #setup normaly self.order_armor_ids end #-------------------------------------------------------------------------- # * Number of Offhand Required # ignore : ignore #-------------------------------------------------------------------------- def nb_offhand_required(ignore=nil) nb_offhand = 0 nb_need_offhand = 0 for i in 0...self.weapon_slots.size if i != ignore then weapon = self.weapon_ids[i] if weapon == 0 then nb_offhand += 1 elsif $data_weapons[weapon].needs_offhand then nb_need_offhand += 1 else nb_offhand += 1 end end end return (nb_need_offhand - nb_offhand) end #-------------------------------------------------------------------------- # * Change Equipment ( Modified for extra equipment) # equip_type : type of equipment # id : weapon or armor ID (If 0, remove equipment) #-------------------------------------------------------------------------- alias g7_ms_game_actor_equip equip def equip(equip_type, id) if @equip_type_force != nil then equip_type = @equip_type_force end # equip_type_force is used to bypass the equip_type argument if self.equip_mode == 'STORE' then # Store equipment for it to be restored after checking what the stats would self.equip_mode = nil @stored_armors = self.armor_ids.dup @stored_weapons = self.weapon_ids.dup saved_mode = 'STORE' elsif self.equip_mode == 'RESTORE' # Restore equipment after preview of new equipment on stats self.equip_mode = nil self.restore(equip_type) return # If equipped for real else if self.enough_hands?(equip_type,id) != false then # Switch items to be equipped to fool the players id = self.switch_items(equip_type,id) end end # If not enough hands then don't equip if self.enough_hands?(equip_type,id) == false then id = 0 # If cursed and player tried to remove it, do nothing elsif self.equip_from_menu and self.cursed?(equip_type) then id = 0 # If the slot is one of the 5 basic ones elsif equip_type <= 4 # Equip the goold old way g7_ms_game_actor_equip(equip_type, id) else # Equip in the new way equip_extra(equip_type,id) #equip in the new way end # Fix in case there are no enough empty hands for all the equipped weapons if id != 0 then self.fix_handed_weapons(equip_type) end # This ensure that the next equiping will restore the original equipment if saved_mode == 'STORE' then self.equip_mode = 'RESTORE' end end #-------------------------------------------------------------------------- # * Restore Equipment once the stats are checked and adds translucent # equip_type : type of equipment #-------------------------------------------------------------------------- def restore(equip_type) if self.translucent_texts == nil then self.translucent_texts = Array.new end self.equip_from_menu = false if equip_type != 0 and @stored_weapons[0] != self.weapon_ids[0] self.translucent_texts[0] = true end for i in 1...@stored_weapons.size if i+[self.armor_slots.size,4].max != equip_type and @stored_weapons[i] != self.weapon_ids[i] then self.translucent_texts[i] = true end end for i in 0...@stored_armors.size if i+1 != equip_type and @stored_armors[i] != self.armor_ids[i] then self.translucent_texts[self.weapon_slots.size + i] = true end end @equip_type_force = nil copy = self.translucent_texts.dup self.weapon_ids = @stored_weapons self.armor_ids = @stored_armors self.translucent_texts = copy end #-------------------------------------------------------------------------- # * Switch Items. Switches equipment to fool a player. # equip_type : type of equipment # id : id #-------------------------------------------------------------------------- def switch_items(equip_type,id) if self.cursed?(equip_type) == false then if equip_type == 0 or equip_type > [self.armor_slots.size,4].max for i in 0...SWITCH_EQUIP_WEAPONS.size if SWITCH_EQUIP_WEAPONS[i][0] == id then $game_party.lose_weapon(SWITCH_EQUIP_WEAPONS[i][0], 1) $game_party.gain_weapon(SWITCH_EQUIP_WEAPONS[i][1], 1) id = SWITCH_EQUIP_WEAPONS[i][1] end end else for i in 0...SWITCH_EQUIP_ARMORS.size if SWITCH_EQUIP_ARMORS[i][0] == id then $game_party.lose_armor(SWITCH_EQUIP_ARMORS[i][0], 1) $game_party.gain_armor(SWITCH_EQUIP_ARMORS[i][1], 1) id = SWITCH_EQUIP_ARMORS[i][1] end end end end return id end #-------------------------------------------------------------------------- # * Enough Hands? Returns if there are enough hands to hold a weapon # equip_type : type of equipment # id : ID #-------------------------------------------------------------------------- def enough_hands?(equip_type, id) # Enough Hand = true if you unequip something if id == 0 then return true end # If it's a weapon if equip_type == 0 or equip_type > [self.armor_slots.size ,4].max nb = $data_weapons[id].nb_hands elsif self.weapon_shield_share and self.armor_slots[equip_type-1] == self.shield_hand_slot nb = 1 else return true #return true if not shield or weapon end nb_s = 0 #nb shield slots if self.shield_hand_wield then for i in 0...self.armor_slots.size if self.armor_slots[i] == self.shield_hand_slot if self.weapon_shield_share != true then nb_s += 1 end if self.cursed?(i+1) then nb += 1 end end end end if self.weapon_hand_wield if self.cursed?(0) then # Penalities if can't remove first weapon nb = nb + $data_weapons[self.weapon_ids[0]].nb_hands end for i in 1...self.weapon_slots.size # Penalities if cant remove weapon if self.cursed?(self.armor_slots.size + i) nb = nb + $data_weapons[self.weapon_ids[i]].nb_hands end end end if nb == 1 then # If it only takes 1 hand to hold return true elsif nb > nb_s+1 and self.weapon_hand_wield != true return false elsif nb > self.weapon_slots.size+ nb_s and self.weapon_hand_wield return false elsif self.shield_hand_wield != true and self.weapon_hand_wield != true return false else return true end end #-------------------------------------------------------------------------- # * Equip Weapon # index : Index of weapon # id : weapon ID (If 0, remove equipment) #-------------------------------------------------------------------------- def equip_weapon(index,id) if index == 0 then self.equip(0, id) else self.equip([self.armor_slots.size, 4].max + index, id) end end #-------------------------------------------------------------------------- # * Equip Armor # index : Index of armor # id : armor ID (If 0, remove equipment) #-------------------------------------------------------------------------- def equip_armor(index, id) self.equip(index+1, id) end #-------------------------------------------------------------------------- # * Equip Extra Items # equip_type : Index of item being equipped # id : ID if either armor or weapon (If 0, remove equipment) #-------------------------------------------------------------------------- def equip_extra(equip_type,id) # If its an extra armor slot if equip_type <= [self.armor_slots.size,4].max if id == 0 or $game_party.armor_number(id) > 0 update_auto_state($data_armors[self.armor_ids[equip_type-1]], $data_armors[id]) $game_party.gain_armor(self.armor_ids[equip_type-1], 1) self.armor_ids[equip_type-1] = id $game_party.lose_armor(id, 1) end # If its a weapon slot else if id == 0 or $game_party.weapon_number(id) > 0 equip_type = equip_type - [self.armor_slots.size, 4].max weapon = self.weapon_ids[equip_type] if weapon != nil then $game_party.gain_weapon(weapon, 1) end self.weapon_ids[equip_type] = id $game_party.lose_weapon(id, 1) end end end #-------------------------------------------------------------------------- # * Fix Multi-Handed Weapons # equip_keep : ID of weapon to keep #-------------------------------------------------------------------------- def fix_handed_weapons(equip_keep=nil) array_wield_hands = Array.new # Stores the slot of the weapon that # needs empty hands nb_emp_hands = 0 # Store nb of empty hands penalities = 0 # Stores extra hand required save_force = @equip_type_force save_menu = @equip_from_menu @equip_from_menu = false @equip_type_force = nil if self.shield_hand_wield for narmor in 0...self.armor_slots.size if self.armor_slots[narmor] == self.shield_hand_slot if self.weapon_shield_share == true then penalities += 1 end if self.armor_ids[narmor] == 0 then nb_emp_hands += 1 # Stores empty shield hand end end end end for nweapon in 0...self.weapon_slots.size if self.weapon_ids[nweapon] == 0 if self.weapon_hand_wield then nb_emp_hands += 1 end else array_wield_hands.push(nweapon) # Stores the hand to wield weapon end end for nweapon in Rg(array_wield_hands.size-1, 0, -1) if self.weapon_ids[array_wield_hands[nweapon]] != 0 then nb_hands = $data_weapons[self.weapon_ids[array_wield_hands[nweapon]]].nb_hands nb_hands += penalities penalities = 0 save_hands = nb_hands end # If it finds an empty hand while nb_emp_hands != 0 and nb_hands > 1 # Decrease the counter nb_hands += -1 nb_emp_hands += -1 end #if shield needs to be removed for empty hand if self.shield_hand_wield then for namor in 0...self.armor_slots.size if nb_hands > 1 and self.armor_ids[namor] != 0 and self.armor_slots[namor] == self.shield_hand_slot and namor+1 != equip_keep and self.cursed?(namor+1) == false then nb_hands += -1 self.equip(namor+1,0) end end end #if it must remove weapons to make room for empty hands if self.weapon_hand_wield == true then for nhand in Rg(self.weapon_slots.size-1, 0, -1) if nb_hands > 1 and self.weapon_ids[nhand] != 0 if nhand == 0 then if equip_keep != 0 and self.cursed?(0) == false then n = nb_emp_hands nb_emp_hands += $data_weapons[self.weapon_ids[nhand]].nb_hands n = nb_emp_hands - n self.equip(0,0) end else if nhand+[self.armor_slots.size,4].max != equip_keep and self.cursed?(nhand+[self.armor_slots.size,4].max) == false then if nhand < array_wield_hands[nweapon] then nb_emp_hands += 1 else nb_emp_hands += $data_weapons[self.weapon_ids[nhand]].nb_hands end self.equip([self.armor_slots.size,4].max+nhand, 0) end end # End of ( if nhnad == 0 ) end # End of ( if nb_hands != 1 ) while nb_emp_hands != 0 and nb_hands > 1 #if it finds empty hand nb_hands += -1 #decrease counter nb_emp_hands += -1 end end # End of ( for nahand ) end # End of ( if self.weapon ) # If still can't find a slot, remove the weapon if nb_hands > 1 if array_wield_hands[nweapon] == 0 and self.cursed?(0) == false then nb_emp_hands = 1 + nb_emp_hands + save_hands - nb_hands self.equip(0, 0) elsif self.cursed?(array_wield_hands[nweapon]+[self.armor_slots.size,4].max) == false and array_wield_hands[nweapon] != 0 then nb_emp_hands = 1 + nb_emp_hands + save_hands - nb_hands self.equip(array_wield_hands[nweapon]+[self.armor_slots.size,4].max,0) end end # If it finds an empty hand while nb_emp_hands != 0 and nb_hands > 1 # Decrease the counter nb_hands += -1 nb_emp_hands += -1 end # If STILL not enough hands if nb_hands > 1 then # Remove the item the user tried to equip self.equip(equip_keep,0) end end @equip_type_force = save_force # Returns old equip_type_force @equip_from_menu = save_menu # Return old equip_from_menu end #-------------------------------------------------------------------------- # * Cursed Items # equip_type : ID if either armor or weapon #-------------------------------------------------------------------------- def cursed?(equip_type) if equip_type == 0 weapon_id = self.weapon_ids[0] if weapon_id != 0 and $data_weapons[weapon_id].cursed then return true end # If Armor elsif equip_type <= self.armor_slots.size armor_id = self.armor_ids[equip_type - 1] if armor_id != 0 and $data_armors[armor_id].cursed then return true end else weapon_id = self.weapon_ids[equip_type - [self.armor_slots.size, 4].max] if weapon_id != nil and weapon_id != 0 and $data_weapons[weapon_id].cursed then return true end end return false end #-------------------------------------------------------------------------- # * Remove all cursed items #-------------------------------------------------------------------------- def remove_curse self.equip_type_force = nil for i in 0...(self.weapon_slots.size + self.armor_slots.size) if self.cursed?(i) then self.equip(i,0) end end end #-------------------------------------------------------------------------- # * Order Armor IDs for Slots #-------------------------------------------------------------------------- def order_armor_ids equipment_array = Array.new for i in 0...self.armor_ids.size if self.armor_ids[i] != nil and self.armor_ids[i] != 0 kind = $data_armors[self.armor_ids[i]].kind if equipment_array[kind] == nil then equipment_array[kind] = Array.new end equipment_array[kind].push(self.armor_ids[i]) #array in which 0 = array for shield, 1 = array for helmet, #2 = array for armor and 3 = array for accessory, etc end end self.armor_ids = nil # Remove all armors armors = Array.new for i in 0...self.armor_slots.size aitem = nil if equipment_array[(self.armor_slots[i])-1] == nil then equipment_array[(self.armor_slots[i])-1] = Array.new end while aitem == nil and equipment_array[(self.armor_slots[i])-1].size != 0 aitem = equipment_array[(self.armor_slots[i])-1].delete_at(0) if aitem == 0 then aitem = nil end end if aitem != nil then armors.push(aitem) # Adds armor else armors.push(0) # Adds empty end # End of ( if iaitem != nil ) end # End of ( for i in ) self.armor_ids = armors end #-------------------------------------------------------------------------- # * Change Weapon Slots # array : Array for weapon slots #-------------------------------------------------------------------------- def weapon_slots=(array) # Change slots of weapons if array == nil then array = WEAPON_KINDS end # Use default slots weapon_array = Array.new(self.weapon_ids) # Save weapons self.weapon_ids = nil @weapon_slots = Array.new(array) # New slots self.weapon_ids = weapon_array # Re-equip items i = self.weapon_ids.size while self.nb_offhand_required > 1 if self.weapon_ids[i] != nil and self.weapon_ids[i] != 0 then self.equip_weapon(i,0) end i = i-1 end end #-------------------------------------------------------------------------- # * Change Armor Slots # array : Array for armor slots #-------------------------------------------------------------------------- def armor_slots=(array) # change slots of armor if array == nil then array = ARMOR_KINDS end #returns to default if nothing equipment_array = Array.new for i in 0...[array.max, self.armor_slots.max].max+1 if equipment_array[i] == nil then equipment_array[i] = Array.new end end for i in 0...self.armor_ids.size if self.armor_ids[i] != nil and self.armor_ids[i] != 0 then kind = $data_armors[self.armor_ids[i]].kind + 1 equipment_array[kind].push(self.armor_ids[i]) # Array in which 0 = array for shield, 1 = array for helmet, # 2 = array for armor and 3 = array for accessory, etc end end for kind in 0...[array.max, self.armor_slots.max].max+1 if array.include?(kind) and self.armor_slots.include?(kind) then nb_i_new = 0 nb_i_old = 0 for i in 0...self.armor_slots.size if self.armor_slots[i] == kind then nb_i_old += 1 end end for i in 0...array.size if array[i] == kind then nb_i_new += 1 end end for i in nb_i_new...nb_i_old for k in 0...equipment_array[kind].size index = equipment_array[kind].index(0) if index != nil then equipment_array[kind].delete_at(index) end end end end end self.armor_ids = nil # Remove items @armor_slots = array # New array for i in 0...self.armor_slots.size aitem = nil kind = self.armor_slots[i] if equipment_array[kind].size != 0 aitem = equipment_array[kind].delete_at(0) self.equip(i+ 1,aitem) # Adds armor else self.equip(i+ 1,0) end end end #-------------------------------------------------------------------------- # * Set new array of weapons, if nil then it removes all weapon # array : Array of weapon IDs #-------------------------------------------------------------------------- def weapon_ids=(array) # Be careful. @item_type_force needs to be nil! if array == nil then self.equip(0, 0) # Remove first weapon for i in 1...self.weapon_ids.size self.equip(i + [self.armor_slots.size,4].max, 0 ) # Remove all weapons end return end self.weapon_ids = nil for i in 0...self.weapon_slots.size # Ensure no weapons are equipped if array[i] == nil then array[i] = 0 end if i == 0 then # If first weapon self.equip(0, array[i]) # Equip weapon else # Else if extra weapons self.equip(i + [self.armor_slots.size, 4].max, array[i]) end end end #-------------------------------------------------------------------------- # * Set new array of armors in ordered fashion # array : Array of armor IDs #-------------------------------------------------------------------------- def armor_ids=(array) if array == nil then for i in 0...self.armor_slots.size self.equip(i + 1, 0) # Remove all armors end return end self.armor_ids = nil # Remove all armors for i in 0...self.armor_slots.size self.equip(i+ 1, array[i]) # Adds armor end end #-------------------------------------------------------------------------- # * Return @armor_ids #-------------------------------------------------------------------------- def armor_ids # Returns ids with all armor, also store 4 armor unless self.is_a?(Game_Actor) return [] end if @armor_ids == nil then @armor_ids = Array.new(self.armor_slots.size) end ids = @armor_ids ids[0] = @armor1_id ids[1] = @armor2_id ids[2] = @armor3_id ids[3] = @armor4_id # Ensure no nil values are returned for i in 0...self.armor_slots.size if ids[i] == nil then ids[i] = 0 end end return ids end #-------------------------------------------------------------------------- # * Return @Weapon_ids #-------------------------------------------------------------------------- def weapon_ids # Returns ids with all weapon, also store first weapon unless self.is_a?(Game_Actor) return [] end if @weapon_ids == nil then @weapon_ids = Array.new(self.weapon_slots.size) end ids = @weapon_ids ids[0] = @weapon_id # Ensure no nil values are returned for i in 0...self.weapon_slots.size if ids[i] == nil then ids[i] = 0 end end return ids end #-------------------------------------------------------------------------- # * Returns names of armor #-------------------------------------------------------------------------- def armor_slot_names # Return custom words for slots, or default ones if @armor_slot_names == nil then @armor_slot_names = Array.new end temp_array = Array.new(@armor_slot_names) # Default names of slots default_names = [$data_system.words.armor1,$data_system.words.armor2,$data_system.words.armor3,$data_system.words.armor4, self.extra_slot_names].flatten #default names of slots for i in 0...default_names.size if temp_array[i] == nil then temp_array[i] = default_names[i] end # If not # Custom then set as default if temp_array[i] == nil then temp_array[i] = $data_system.words.armor4 end end return temp_array end #-------------------------------------------------------------------------- # * Returns names of weapons #-------------------------------------------------------------------------- def weapon_slot_names # Return custom words for weapon slots, of default ones if @weapon_slot_names != nil then temp_array = Array.new(@weapon_slot_names) # Use the custom values else temp_array = Array.new(self.weapon_slots.size) # Use default values end default_names = WEAPON_KIND_NAMES # Default names of slots for i in 0...self.weapon_slots.size # If... Set as Constant if temp_array[i] == nil then temp_array[i] = default_names[i] end if temp_array[i] == nil then temp_array[i] = $data_system.words.weapon end # If constant array is empty then use default one end return temp_array end #-------------------------------------------------------------------------- # * Return all element of all equipped armor #-------------------------------------------------------------------------- def guard_element_set # Return array with guard_element_set of all equipped armor set = [] # Search all armor equipped for id in self.armor_ids next if id.nil? armor = $data_armors[id] # Add the element to set set += (armor != nil ? armor.guard_element_set : []) end return set end #-------------------------------------------------------------------------- # * Return all equipment #-------------------------------------------------------------------------- def equipments # Return array with all equipment equipments = [] self.weapon_ids.each {|id| equipments.push($data_weapons[id])} self.armor_ids.each {|id| equipments.push($data_armors[id])} return equipments end #-------------------------------------------------------------------------- # * Return if item is equiped #-------------------------------------------------------------------------- def equiped?(item) # Return if item is equipped, works with both armor and weapon case item when RPG::Weapon return self.weapon_ids.include?(item.id) when RPG::Armor return self.armor_ids.include?(item.id) else return false end end #-------------------------------------------------------------------------- # * Return list of weapons to use for attacks #-------------------------------------------------------------------------- def attacks # This return an array with the list of all attacks of a character # This takes in consideration extra weapon + number of attacks of # each weapon attacks = Array.new for i in 0...self.weapon_ids.size weapon = $data_weapons[self.weapon_ids[i]] # If the weapon is valid if weapon != nil and weapon.atk != 0 then for counter in 0...weapon.nb_attacks attacks.push(i) #add attacks end end end # Give one unarmed attack if no weapons on if attacks.size == 0 then attacks[0] = 0 end return Array.new(attacks) end #-------------------------------------------------------------------------- # * Get the weapon to be used in attack #-------------------------------------------------------------------------- def get_weapon_data # This returns the weapon to use for the attack. weaponid = self.weapon_ids[self.attacks[self.attack_count]] weapon = $data_weapons[weaponid] return weapon end #-------------------------------------------------------------------------- # * Get Offensive Animation ID for Normal Attacks #-------------------------------------------------------------------------- def animation1_id # Set animation for current weapon weapon = self.get_weapon_data return weapon != nil ? weapon.animation1_id : 0 end #-------------------------------------------------------------------------- # * Get Target Animation ID for Normal Attacks #-------------------------------------------------------------------------- def animation2_id # Set animation for current weapon weapon = self.get_weapon_data return weapon != nil ? weapon.animation2_id : 0 end #-------------------------------------------------------------------------- # * Get Basic Attack Power # Get the atk to be used in attack ( or shown in menu screen ) #-------------------------------------------------------------------------- def base_atk multiplier = nil if $game_temp.in_battle and (self.current_action.kind == 0 or self.all_weapons_for_skills? != true) # If in battle & doing a normal attack, only use one weapon's attack power weapon = self.get_weapon_data n = weapon != nil ? weapon.atk : 0 # Multiplier of hand as defined in self.weapon_slot_powers if weapon != nil and weapon.nb_hands == 1 then multiplier = self.weapon_slot_powers[self.attacks[self.attack_count]] end if multiplier == nil then multiplier = 100 end n = n * (multiplier/100.0) else # Use cumulative attack power of all weapons if in status screen or # if using skill and all_weapons_for_skills == true n = 0 for i in 0...self.weapon_slots.size weapon = $data_weapons[self.weapon_ids[i]] atk = weapon != nil ? weapon.atk : 0 if weapon != nil and weapon.nb_hands == 1 then multiplier = self.weapon_slot_powers[i] else multiplier = nil end if multiplier == nil then multiplier = 100 end atk = atk * (multiplier/100.0) n += atk end end nb_weap = 0 for i in 0...self.weapon_slots.size if self.weapon_ids[i] != nil and self.weapon_ids[i] != 0 nb_weap = nb_weap + 1 end end # Penality if more than 1 weapon penality = self.multi_weapons_penality != nil ? self.multi_weapons_penality : 0 penality = penality /100.0 if nb_weap > 1 then n = n * ( 1 - penality ) end return n end #-------------------------------------------------------------------------- # * Get Normal Attack Element #-------------------------------------------------------------------------- def element_set # Return elemental set of the current weapon weapon = self.get_weapon_data return weapon != nil ? weapon.element_set : [] end #-------------------------------------------------------------------------- # * Get Normal Attack State Change (+) #-------------------------------------------------------------------------- def plus_state_set # Status the weapon can give weapon = self.get_weapon_data return weapon != nil ? weapon.plus_state_set : [] end #-------------------------------------------------------------------------- # * Get Normal Attack State Change (-) #-------------------------------------------------------------------------- def minus_state_set # Status the weapon can remove weapon = self.get_weapon_data return weapon != nil ? weapon.minus_state_set : [] end #-------------------------------------------------------------------------- # * Determine State Guard # state_id : state ID #-------------------------------------------------------------------------- def state_guard?(state_id) # Return state defense of all armor for i in self.armor_ids armor = $data_armors[i] if armor != nil if armor.guard_state_set.include?(state_id) return true end end end return false end #-------------------------------------------------------------------------- # * Get Element Revision Value # element_id : element ID #-------------------------------------------------------------------------- alias g7_ms_game_actor_element_rate element_rate def element_rate(element_id) result = g7_ms_game_actor_element_rate(element_id) # Methods calculate bonus of extra weapon and armor if self.armor_slots.size > 4 for i in 4...self.armor_slots.size armor = $data_armors[self.armor_ids[i]] if armor != nil and armor.guard_element_set.include?(element_id) result /= 2 end end end return result end #-------------------------------------------------------------------------- # * Get Basic Strength #-------------------------------------------------------------------------- alias g7_ms_game_actor_base_str base_str def base_str n = g7_ms_game_actor_base_str for i in 1...self.weapon_slots.size weapon = $data_weapons[self.weapon_ids[i]] n += weapon != nil ? weapon.str_plus : 0 end for i in 4...self.armor_slots.size armor = $data_armors[self.armor_ids[i]] n += armor != nil ? armor.str_plus : 0 end return n end #-------------------------------------------------------------------------- # * Get Basic Dexterity #-------------------------------------------------------------------------- alias g7_ms_game_actor_base_dex base_dex def base_dex n = g7_ms_game_actor_base_dex for i in 1...self.weapon_slots.size weapon = $data_weapons[self.weapon_ids[i]] n += weapon != nil ? weapon.dex_plus : 0 end for i in 4...self.armor_slots.size armor = $data_armors[self.armor_ids[i]] n += armor != nil ? armor.dex_plus : 0 end return n end #-------------------------------------------------------------------------- # * Get Basic Agility #-------------------------------------------------------------------------- alias g7_ms_game_actor_base_agi base_agi def base_agi n = g7_ms_game_actor_base_agi for i in 1...self.weapon_slots.size weapon = $data_weapons[self.weapon_ids[i]] n += weapon != nil ? weapon.agi_plus : 0 end for i in 4...self.armor_slots.size armor = $data_armors[self.armor_ids[i]] n += armor != nil ? armor.agi_plus : 0 end return n end #-------------------------------------------------------------------------- # * Get Basic Intelligence #-------------------------------------------------------------------------- alias g7_ms_game_actor_base_int base_int def base_int n = g7_ms_game_actor_base_int for i in 1...self.weapon_slots.size weapon = $data_weapons[self.weapon_ids[i]] n += weapon != nil ? weapon.int_plus : 0 end for i in 4...self.armor_slots.size armor = $data_armors[self.armor_ids[i]] n += armor != nil ? armor.int_plus : 0 end return n end #-------------------------------------------------------------------------- # * Get Basic Physical Defense #-------------------------------------------------------------------------- alias g7_ms_game_actor_base_pdef base_pdef def base_pdef n = g7_ms_game_actor_base_pdef for i in 1...self.weapon_slots.size weapon = $data_weapons[self.weapon_ids[i]] n += weapon != nil ? weapon.pdef : 0 end for i in 4...self.armor_slots.size armor = $data_armors[self.armor_ids[i]] n += armor != nil ? armor.pdef : 0 end return n end #-------------------------------------------------------------------------- # * Get Basic Magic Defense #-------------------------------------------------------------------------- alias g7_ms_game_actor_base_mdef base_mdef def base_mdef n = g7_ms_game_actor_base_mdef for i in 1...self.weapon_slots.size weapon = $data_weapons[self.weapon_ids[i]] n += weapon != nil ? weapon.mdef : 0 end for i in 4...self.armor_slots.size armor = $data_armors[self.armor_ids[i]] n += armor != nil ? armor.mdef : 0 end return n end #-------------------------------------------------------------------------- # * Get Basic Evasion Correction #-------------------------------------------------------------------------- alias g7_ms_game_actor_base_eva base_eva def base_eva n = g7_ms_game_actor_base_eva for i in 4...self.armor_slots.size armor = $data_armors[self.armor_ids[i]] n += armor != nil ? armor.eva : 0 end return n end #-------------------------------------------------------------------------- # * Reset all slot data to default one #-------------------------------------------------------------------------- def reset_all_slots self.armor_slots = nil self.weapon_slots = nil self.armor_slot_names = nil self.weapon_slot_names = nil self.extra_slot_names = nil self.weapon_slot_powers = nil self.shield_hand_wield = nil self.weapon_hand_wield = nil self.shield_hand_slot = nil self.weapon_shield_share = nil self.multi_weapons_penality = nil self.ignore_offhand = nil self.all_weapons_for_skills = nil end #-------------------------------------------------------------------------- # * Returns behavior of items on character #-------------------------------------------------------------------------- def weapon_shield_share return @weapon_shield_share != nil ? @weapon_shield_share : WEAPON_SHIELD_SHARE end def weapon_slots return @weapon_slots != nil ? @weapon_slots : WEAPON_KINDS end def armor_slots return @armor_slots != nil ? @armor_slots : ARMOR_KINDS end def shield_hand_wield return @shield_hand_wield != nil ? @shield_hand_wield : SHIELD_HAND_WIELD end def multi_weapons_penality return @multi_weapons_penality != nil ? @multi_weapons_penality : MULTI_WEAPONS_PENALITY end def weapon_slot_powers return @weapon_slot_powers != nil ? @weapon_slot_powers : WEAPON_KIND_POWERS end def weapon_hand_wield return @weapon_hand_wield != nil ? @weapon_hand_wield : WEAPON_HAND_WIELD end def shield_hand_slot return @shield_hand_slot != nil ? @shield_hand_slot : SHIELD_HAND_SLOT end def extra_slot_names return @extra_slot_names != nil ? @extra_slot_names : EXTRA_SLOT_NAMES end def ignore_offhand? return @ignore_offhand != nil ? @ignore_offhand : IGNORE_OFFHAND end def attack_count # Returns number of attacks already made return @attack_count != nil ? @attack_count : 0 end def all_weapons_for_skills? return @all_weapons_for_skills != nil ? @all_weapons_for_skills : ALL_WEAPONS_FOR_SKILLS end #-------------------------------------------------------------------------- # * Change behavior of items on character #-------------------------------------------------------------------------- def multi_weapons_penality=(value) @multi_weapons_penality = value end def weapon_slot_powers=(value) @weapon_slot_powers = value end def weapon_shield_share=(bool) @weapon_shield_share = bool end def shield_hand_slot=(int) @shield_hand_slot = int end def shield_hand_wield=(bool) @shield_hand_wield = bool end def weapon_hand_wield=(bool) @weapon_hand_wield = bool end def ignore_offhand=(bool) @ignore_offhand = bool end def all_weapons_for_skills=(bool) @all_weapons_for_skills = bool end def attack_count=(value) # Set number of attacks already made @attack_count = value end #-------------------------------------------------------------------------- # * Change names for your slots #-------------------------------------------------------------------------- def shield_name=(text) # Set the shield slot name with... # $game_actors[numberofactor].shield_name = 'Yourname' @armor_slot_names[0] = text end def helmet_name=(text) @armor_slot_names[1] = text end def armor_name=(text) @armor_slot_names[2] = text end def accessory_name=(text) @armor_slot_names[3] = text end def extra_slot_names=(array) @extra_slot_names = array end def armor_slot_names=(array) # Set a new array of names. @armor_slot_names = array end def weapon_slot_names=(array) # Set a new array of weapon names. @weapon_slot_names = array end #-------------------------------------------------------------------------- # * End of CLASS: Game Actor #-------------------------------------------------------------------------- end #============================================================================== # ** Game_Actors #------------------------------------------------------------------------------ # This class handles the actor array. Refer to "$game_actors" for each # instance of this class. #============================================================================== class Game_Actors #-------------------------------------------------------------------------- # * Order Items #-------------------------------------------------------------------------- def order_items for actor in 0...@data.size if @data[actor] != nil and @data[actor] != 0 then # Order armors @data[actor].order_armor_ids end end end #-------------------------------------------------------------------------- # * End of CLASS: Game Actors #-------------------------------------------------------------------------- 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 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 |
#============================================================================== # Multi-slot equipment script #------------------------------------------------------------------------------ # Section 3: Windows #------------------------------------------------------------------------------ # Guillaume777 # 6.2.1 # 2006/02/14 #============================================================================== #============================================================================== # ** Scene_Equip #------------------------------------------------------------------------------ # This class performs equipment screen processing. #============================================================================== class Scene_Equip #-------------------------------------------------------------------------- # * Main Processing #-------------------------------------------------------------------------- alias g7_ms_scene_equip_main main def main @additional_initialize_done = false g7_ms_scene_equip_main for i in 5...@item_windows.size @item_windows[i].dispose unless @item_windows[i].nil? end end #-------------------------------------------------------------------------- # * Initialize the extra right windows #-------------------------------------------------------------------------- def g7_ms_scene_equip_additional_initialize unless @additional_initialize_done @item_windows = [] @item_windows[0] = @item_window1 # Weapon @item_windows[1] = @item_window2 # Shield @item_windows[2] = @item_window3 # Helmet @item_windows[3] = @item_window4 # Armor @item_windows[4] = @item_window5 # Accessory nb_old_windows = @item_windows.size for i in nb_old_windows...@actor.armor_slots.max+1 # Add the remaining windows for extra slots @item_windows.push(Window_EquipItem.new(@actor, i) ) @item_windows[i].help_window = @help_window end @item_windows.push(Window_EquipOffHand.new(@actor, 0)) @item_windows[-1].help_window = @help_window # If windows_stretch is true, stretch window if G7_MS_MOD::WINDOWS_STRETCH h = (@actor.weapon_slots.size + @actor.armor_slots.size + 1) * 32 h2 = (G7_MS_MOD::MAX_SHOW_SLOTS+1) * 32 h = [h, h2].min @right_window.height = h if @right_window.index > @actor.weapon_slots.size + @actor.armor_slots.size - 1 @right_window.index = @actor.weapon_slots.size + @actor.armor_slots.size - 1 end if @left_window.y + @left_window.height == 256 @left_window.height = @right_window.height elsif G7_MS_MOD::HELP_AT_BOTTOM == true and @left_window.height == 416 then # Make left window shorter @left_window.height -= 64 end y_pos = (@right_window.y + @right_window.height) y_space = 480 - y_pos # If help at bottom, reduce bottom item window size if G7_MS_MOD::HELP_AT_BOTTOM == true then y_space -= 64 end for item_window in @item_windows next if item_window.nil? item_window.y = y_pos item_window.height = y_space end end @additional_initialize_done = true end end #-------------------------------------------------------------------------- # * Refresh and make visible the correct right window #-------------------------------------------------------------------------- alias g7_ms_scene_equip_refresh refresh def refresh # This part is used to refresh the equipped item at the right window g7_ms_scene_equip_additional_initialize @actor.translucent_texts.fill(false) @actor.equip_type_force = index_to_equip_part(@right_window.index) @right_window.item_fix_on @right_window.scroll_fix_on save = @right_window.index @right_window.index = index_to_equip_kind(@right_window.index) if @right_window.index == 0 and @actor.ignore_offhand? != true then if @actor.nb_offhand_required(save) > 0 then @right_window.index = @item_windows.size-1 end end @actor.equip_from_menu = true # Ensure current equipment will get properly stored... @actor.equip_mode = 'STORE' # ...and re-equiped @item_window = @item_windows[@right_window.index] @item_windows[@right_window.index].visible = true for i in 0...@item_windows.size if i != @right_window.index then @item_windows[i].visible = false end end # Equip and remove item g7_ms_scene_equip_refresh @actor.equip_from_menu = false @actor.equip_mode = nil @actor.equip_type_force = nil @right_window.index = save @right_window.scroll_fix_off @right_window.item_fix_off if @item_window.index != @old_index @right_window.refresh end @old_index = @item_window.index end #-------------------------------------------------------------------------- # * Convert the right_window.index to equip_type #-------------------------------------------------------------------------- alias g7_ms_scene_equip_update_item update_item def update_item # This changes the @right_window.index to the correct value to take # account of extra slots @actor.equip_type_force = index_to_equip_part(@right_window.index) @right_window.item_fix_on @right_window.scroll_fix_on save = @right_window.index @right_window.index = index_to_equip_kind(@right_window.index) @actor.equip_from_menu = true # Equip item g7_ms_scene_equip_update_item @actor.equip_from_menu = false @actor.equip_type_force = nil # If not in item_window screen if @item_window.index == -1 # If shield-weapon can modify each other if @actor.shield_hand_wield == true and if @right_window.index == @actor.shield_hand_slot then @item_windows[0].refresh @item_windows[-1].refresh elsif @right_window.index == 0 # Refresh the shield slot @item_windows[@actor.shield_hand_slot].refresh end end if @right_window.index == 0 and @actor.ignore_offhand? != true then if @item_window == @item_windows[-1] then @item_windows[0].refresh elsif @item_window == @item_windows[0] then @item_windows[-1].refresh end end end @right_window.index = save @right_window.scroll_fix_off @right_window.item_fix_off @actor.equip_type_force = nil end #-------------------------------------------------------------------------- # * Convert index to equip part # index : slot number #-------------------------------------------------------------------------- def index_to_equip_part(index) # Return index of slot in the # array [0, @actor.armor_slots, actor.weapon_slots] # If Armor if index >= @actor.weapon_slots.size return index - (@actor.weapon_slots.size - 1) # If extra weapon elsif index >= 1 # Make it last return index + [@actor.armor_slots.size, 4].max else return 0 end end #-------------------------------------------------------------------------- # Convert index to equip kind # index : slot number #-------------------------------------------------------------------------- def index_to_equip_kind(index) # Return index of slot in either actor.weapon_slots or actor.armor_slots i = index_to_equip_part(index) # If armor if index >= @actor.weapon_slots.size set = @actor.armor_slots[i-1] # If weapon else i = i == 0 ? 0 : i - [@actor.armor_slots.size, 4].max set = @actor.weapon_slots[i] end return set != nil ? set : 0 end #-------------------------------------------------------------------------- # * End of CLASS: Scene Equip #-------------------------------------------------------------------------- end #============================================================================== # ** Window_EquipRight #------------------------------------------------------------------------------ # This window displays items the actor is currently equipped with on the # equipment screen. #============================================================================== class Window_EquipRight < Window_Selectable #-------------------------------------------------------------------------- # * Item Fix On #-------------------------------------------------------------------------- def item_fix_on # Fix window @fixed_item = @data[self.index] @fixed = true end #-------------------------------------------------------------------------- # * Item Fix Off #-------------------------------------------------------------------------- def item_fix_off #stop fixing window @fixed_item = nil @fixed = false end #-------------------------------------------------------------------------- # * Don't scroll right window if you press L or R #-------------------------------------------------------------------------- def update if Input.repeat?(Input::R) or Input.repeat?(Input::L) then return else super end end #-------------------------------------------------------------------------- # Draws equipped items with support of translucent and cursed items # item : item # x : draw spot x-coordinate # y : draw spot y-coordinate # translucent : draw translucent #-------------------------------------------------------------------------- def draw_item_name(item, x, y, translucent = false) if item == nil return end bitmap = RPG::Cache.icon(item.icon_name) if item.cursed self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24)) self.contents.font.color = G7_MS_MOD::CURSED_COLOR elsif translucent self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), 128) self.contents.font.color = disabled_color else self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24)) self.contents.font.color = normal_color end self.contents.draw_text(x + 28, y, 212, 32, item.name) end #-------------------------------------------------------------------------- # * Prevent needless update of item quantities in item window #-------------------------------------------------------------------------- alias g7_ms_window_equipright_item item def item # This ensures that the number of items doesn't get updated if you move # cursor in item window return @fixed_item if @fixed return g7_ms_window_equipright_item end #-------------------------------------------------------------------------- # * Change the height of right windows to fit the slots # actor : actor #-------------------------------------------------------------------------- alias g7_ms_window_equipright_initialize initialize def initialize(actor) # Initialize with a different height g7_ms_window_equipright_initialize(actor) # Total height of right window h = (actor.weapon_slots.size + actor.armor_slots.size) * 32 # Change the height self.contents = Bitmap.new(width - 32, h) refresh end #-------------------------------------------------------------------------- # * Shows the slot names and the name of the items you have equipped #-------------------------------------------------------------------------- def refresh # Replaced method to show caption of all items and slot self.contents.clear @data = [] # Begin Multi-slot equipment script Edit self.contents.font.name = G7_MS_MOD::FONT_NAME for i in 0...@actor.weapon_slots.size # Push the name(s) of the weapon(s) @data.push($data_weapons[@actor.weapon_ids[i]]) end for i in 0...@actor.armor_slots.size # Push the names of the armors @data.push($data_armors[@actor.armor_ids[i]]) end @caption = [] for i in 0...@actor.weapon_slots.size # Push the name(s) of the weapon slots @caption.push(@actor.weapon_slot_names[i]) end for i in 0...@actor.armor_slots.size # Push the names of the armor slots @caption.push(@actor.armor_slot_names[@actor.armor_slots[i]-1]) end @item_max = @data.size if @actor.translucent_texts == nil then @actor.translucent_texts = Array.new end for i in 0...@data.size if @caption[i] != nil self.contents.font.color = system_color # Draw the name of the slots self.contents.draw_text(4, 32 * i, 92, 32, @caption[i]) end # Draw the name of the equipment draw_item_name(@data[i], 92, 32 * i, @actor.translucent_texts[i]) end # Support for other script if defined? xrxs_additional_refresh xrxs_additional_refresh end # End Multi-slot equipment script Edit end #-------------------------------------------------------------------------- # * End of CLASS: Window EquipRight #-------------------------------------------------------------------------- end #============================================================================ # ** Window_EquipOffHand #---------------------------------------------------------------------------- # A new window class that displays an equipped item in the actor's off hand. #============================================================================ class Window_EquipOffHand < Window_EquipItem def refresh if self.contents != nil self.contents.dispose self.contents = nil end @data = [] # Add equippable weapons weapon_set = $data_classes[@actor.class_id].weapon_set for i in 1...$data_weapons.size if $game_party.weapon_number(i) > 0 and weapon_set.include?(i) weapon = $data_weapons[i] if weapon.needs_offhand == false if G7_MS_MOD::TWOHANDED_IN_OFFHAND != false and weapon.nb_hands <= 1 then @data.push(weapon) end end end end # Add blank page @data.push(nil) # Make a bit map and draw all items @item_max = @data.size self.contents = Bitmap.new(width - 32, row_max * 32) self.contents.font.name = G7_MS_MOD::FONT_NAME #self.contents.font.size = 24 for i in 0...@item_max-1 draw_item(i) end if G7_MS_MOD::SHOW_REMOVE then i = @item_max -1 x = 4 + i % @column_max * (288 + 32) y = i / @column_max * 32 self.contents.draw_text(x+4, y, 100, 32, '[Remove]') end end #-------------------------------------------------------------------------- # * End of CLASS: Window EquipOffHand #-------------------------------------------------------------------------- end #============================================================================== # ** Window_Selectable #------------------------------------------------------------------------------ # This window class contains cursor movement and scroll functions. #============================================================================== class Window_Selectable < Window_Base #-------------------------------------------------------------------------- # * Scroll Fix On #-------------------------------------------------------------------------- def scroll_fix_on @scroll_fixed = true end #-------------------------------------------------------------------------- # * Scroll Fix Off #-------------------------------------------------------------------------- def scroll_fix_off @scroll_fixed = false update_cursor_rect end #-------------------------------------------------------------------------- # * Update Cursor Rectangle #-------------------------------------------------------------------------- alias g7_ms_update_cursor_rect update_cursor_rect def update_cursor_rect # This prevents the windows from scrolling if scroll is fixed # This was added to ensure that if there are few slots, the right equip # screen doesn't scroll needlessly return if @scroll_fixed g7_ms_update_cursor_rect end #-------------------------------------------------------------------------- # * End of CLASS: Window Selectable #-------------------------------------------------------------------------- end #============================================================================== # *** Global IF condition # Shows a new status window if Status_window_arrange is true #============================================================================== if G7_MS_MOD::STATUS_WINDOW_ARRANGE #============================================================================ # ** Window_Status #---------------------------------------------------------------------------- # This window displays full status specs on the status screen. #============================================================================ class Window_Status < Window_Base #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh # Begin Multi-slot equipment script Edit self.contents.font.name = G7_MS_MOD::FONT_NAME # End Multi-slot equipment script Edit self.contents.clear draw_actor_graphic(@actor, 40, 112) draw_actor_name(@actor, 4, 0) draw_actor_class(@actor, 4 + 144, 0) draw_actor_level(@actor, 96, 32) draw_actor_state(@actor, 96, 64) draw_actor_hp(@actor, 96, 112, 172) draw_actor_sp(@actor, 96, 144, 172) draw_actor_parameter(@actor, 96, 192, 0) draw_actor_parameter(@actor, 96, 224, 1) draw_actor_parameter(@actor, 96, 256, 2) draw_actor_parameter(@actor, 96, 304, 3) draw_actor_parameter(@actor, 96, 336, 4) draw_actor_parameter(@actor, 96, 368, 5) draw_actor_parameter(@actor, 96, 400, 6) # Begin Multi-slot equipment script Edit if G7_MS_MOD::EVADE # Activate if you have a draw_actor_paramter method that draws evade draw_actor_parameter(@actor, 96, 432, 7) end self.contents.font.color = system_color self.contents.draw_text(320, 16, 80, 32, 'EXP') self.contents.draw_text(320, 48, 80, 32, 'NEXT') self.contents.font.color = normal_color self.contents.draw_text(320 + 80, 16, 84, 32, @actor.exp_s, 2) self.contents.draw_text(320 + 80, 48, 84, 32, @actor.next_rest_exp_s, 2) self.contents.font.color = system_color self.contents.draw_text(320, 80, 96, 32, 'Equipment') y = 108 for i in 0...@actor.weapon_slots.size draw_item_name($data_weapons[@actor.weapon_ids[i]], 320 + 16, y) y += G7_MS_MOD::STATUS_WINDOW_SPACING end for i in 0...@actor.armor_slots.size draw_item_name($data_armors[@actor.armor_ids[i]], 320 + 16, y) y += G7_MS_MOD::STATUS_WINDOW_SPACING end # End Multi-slot equipment script Edit end #------------------------------------------------------------------------ # * End of CLASS: Window Status #------------------------------------------------------------------------ end #-------------------------------------------------------------------------- # * End of Global IF condition #-------------------------------------------------------------------------- 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 |
#============================================================================== # Multi-slot equipment script #------------------------------------------------------------------------------ # Section 4: Other #------------------------------------------------------------------------------ # Guillaume777 # 6.2.1 # 2006/02/14 #============================================================================== #============================================================================== # ** Scene_Battle (part 4) #------------------------------------------------------------------------------ # This class performs battle screen processing. #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # * Go to phase4 step2 for attack if attack_count < attacks.size #-------------------------------------------------------------------------- alias g7_ms_scene_battle_phase4_step6 update_phase4_step6 def update_phase4_step6(battler=nil) # This methods make the battler return to phase4 step2 if there is an # extra attack to be made # If no battler parameter if battler== nil then # First do the appropriate action g7_ms_scene_battle_phase4_step6 if @active_battler.is_a?(Game_Enemy) then return end # Increase the number of attacks made @active_battler.attack_count += 1 # If all attacks have been made if @active_battler.attack_count == @active_battler.attacks.size or @active_battler.current_action.kind != 0 or @active_battler.current_action.basic != 0 or judge == true # End of turn, and return attack count to 0 @active_battler.attack_count = 0 else # Return for extra attack @phase4_step = 2 end # If it requres the battle as a parameter else g7_ms_scene_battle_phase4_step6(battler) if battler.is_a?(Game_Enemy) then return end # Increase the number of attacks made battler.attack_count += 1 # If all attacks have been made if battler.attack_count == battler.attacks.size or battler.current_action.kind != 0 or battler.current_action.basic != 0 or judge == true # End of turn, and return attack count to 0 battler.attack_count = 0 else # Add the battler again to the action if @action_battlers.include?(@active_battler) == false then @action_battlers.push(battler) end # Return for extra attack battler.phase = 2 end end end #-------------------------------------------------------------------------- # * End of CLASS: Scene Battle #-------------------------------------------------------------------------- end #============================================================================== # ** Scene_Load #------------------------------------------------------------------------------ # This class performs load screen processing. #============================================================================== class Scene_Load < Scene_File #-------------------------------------------------------------------------- # * Fix equiped item if user load saved game #-------------------------------------------------------------------------- alias g7_ms_scene_load_read_save_data read_save_data def read_save_data(file) g7_ms_scene_load_read_save_data(file) $game_actors.order_items # Order armor when you load a saved game in # case it is an old game end #-------------------------------------------------------------------------- # * End of CLASS: Scene Load #-------------------------------------------------------------------------- end #============================================================================== # ** Scene_Title #------------------------------------------------------------------------------ # This class performs title screen processing. #============================================================================== class Scene_Title #-------------------------------------------------------------------------- # * Fix items as you open RMXP #-------------------------------------------------------------------------- alias g7_ms_scene_title_main main def main RPG.initialized_item_types = false g7_ms_scene_title_main RPG.set_new_item_types end #-------------------------------------------------------------------------- # * End of CLASS: Scene Title #-------------------------------------------------------------------------- end #============================================================================== # ** Interpreter (part 3) #------------------------------------------------------------------------------ # This interpreter runs event commands. This class is used within the # Game_System class and the Game_Event class. #============================================================================== class Interpreter #-------------------------------------------------------------------------- # * Conditional Branch to make it work when comparing extra items #-------------------------------------------------------------------------- alias g7_ms_interpreter_command_111 command_111 def command_111 result = false broken = false case @parameters[0] # When Actor when 4 actor = $game_actors[@parameters[1]] if actor != nil case @parameters[2] # If weapon when 3 for i in 0...actor.weapon_ids.size # Compare result |= (actor.weapon_ids[i] == @parameters[3]) end broken = true # If Armor when 4 for i in 0...actor.armor_ids.size # Compare result |= (actor.armor_ids[i] == @parameters[3]) end broken = true end end end # If other conditional branch unless broken # Do the normal condition g7_ms_interpreter_command_111 return end @branch[@list[@index].indent] = result if @branch[@list[@index].indent] == true @branch.delete(@list[@index].indent) return true end return command_skip end #-------------------------------------------------------------------------- # * End of CLASS: Interpreter #-------------------------------------------------------------------------- end #============================================================================== # ** MODULE: Kernel #------------------------------------------------------------------------------ # A module defining the methods that can be referred to by all classes. Object # classes are included in this module. #============================================================================== module Kernel private def Rg(from, to, *step) Rg.new(from, to, *step) end end #============================================================================== # ** Rg #------------------------------------------------------------------------------ # Class of modified RGSS statements, enhanced with module Kernel. #============================================================================== class Rg #Used to a more effective for ... in ... include Enumerable #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(from, to, step = sign(to - from)) @from, @to, @step = from, to, step @to += @step - ((@to - @from) % @step) end #-------------------------------------------------------------------------- # * Each #-------------------------------------------------------------------------- def each x = @from until x == @to yield x x += @step end self end #-------------------------------------------------------------------------- # * Sign #-------------------------------------------------------------------------- def sign(x) case when x > 0 1 when x == 0 0 else -1 end end #-------------------------------------------------------------------------- # * End of CLASS: Rg #-------------------------------------------------------------------------- end |
zum Lesen den Text mit der Maus markieren
Vielleicht hilft es dir.
MFG
Realität ist auch nur eine Art von Rollenspiel.
Eine Möglichkeit wäre es, wenn du in der Database(F9) bei Actors in Starting Equipment den Weapon Slot
für dein ausgewählten Actor auf (None) setzt und den Fixed Button daneben aktivierst.
Damit kann dieser Actor nicht auf das erste Waffenslot zugreifen.
Da du ja das Multi_Slot-Equipment benutzt, hast du noch für diesen Actor einen Waffen-Slot frei und auch das Shield-Slot.
Hier ein Beispiel :

EDIT :
Ich habe etwas wichtiges vergessen zu erwähnen.
Weil dein ausgewählter Actor den ersten Waffen-Slot nicht benutzen kann,
hat er logischerweise keine Waffe in der Hand.Damit dieser Actor aber von beginn an
eine Waffe im zweiten Waffenslot trägt, machst du folgendes :
Um einen ausgewählten Actor zu beginn mit einer Waffe im Waffenslot 2
auszurüsten, musst du den befehl : $game_actors[1].equip_weapon(1,2)
verwenden.
Kurze Beschreibung :
$game_actors[1] = Die Zahl in Klammern ist Actor 1 aus der Database.
equip_weapon(1,2) = Die erste Zahl in Klammern ist der zweite Waffenslot.
Die zweite Zahl in Klammern ist das Weapon aus der Database(In diesem Fall Iron Sword)
Wichtig dabei ist, dass du die gewählte Waffe(Iron Sword) vorher im Event mit
Change Weapons[IronSword]+1 einfügst.Sonst wird diese nicht angelegt, weil
kein Iron Sword im Gepäck vorhanden ist.
So kann es aussehen:

MFG
für dein ausgewählten Actor auf (None) setzt und den Fixed Button daneben aktivierst.
Damit kann dieser Actor nicht auf das erste Waffenslot zugreifen.
Da du ja das Multi_Slot-Equipment benutzt, hast du noch für diesen Actor einen Waffen-Slot frei und auch das Shield-Slot.
Hier ein Beispiel :
EDIT :
Ich habe etwas wichtiges vergessen zu erwähnen.
Weil dein ausgewählter Actor den ersten Waffen-Slot nicht benutzen kann,
hat er logischerweise keine Waffe in der Hand.Damit dieser Actor aber von beginn an
eine Waffe im zweiten Waffenslot trägt, machst du folgendes :
Um einen ausgewählten Actor zu beginn mit einer Waffe im Waffenslot 2
auszurüsten, musst du den befehl : $game_actors[1].equip_weapon(1,2)
verwenden.
Kurze Beschreibung :
$game_actors[1] = Die Zahl in Klammern ist Actor 1 aus der Database.
equip_weapon(1,2) = Die erste Zahl in Klammern ist der zweite Waffenslot.
Die zweite Zahl in Klammern ist das Weapon aus der Database(In diesem Fall Iron Sword)
Wichtig dabei ist, dass du die gewählte Waffe(Iron Sword) vorher im Event mit
Change Weapons[IronSword]+1 einfügst.Sonst wird diese nicht angelegt, weil
kein Iron Sword im Gepäck vorhanden ist.
So kann es aussehen:
MFG
Realität ist auch nur eine Art von Rollenspiel.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Asandril« (13. März 2011, 01:56)
Du sollst nur bei den Actors den ersten Waffenslot auf None stellen und ein Häkchen bei Fixed machen, die
nur eine Waffe tragen sollen.Im Spiel selbst können diese Actors nur den zweiten Waffenslot nutzen.Die
Actors, die bei ihren Waffenslot in der Database kein Häkchen bei Fixed haben , können im Spiel auch weiterhin
den ersten Waffenslot nutzen.Daher kannst du die Actors, die nur eine Waffe tragen sollen zu
beginn über ein Event Script(Seite 3) eine Waffe in den zweiten Waffenslot zuordnen.Ich hatte dir das Ganze in meine
vorherige Post beschrieben.
MFG
nur eine Waffe tragen sollen.Im Spiel selbst können diese Actors nur den zweiten Waffenslot nutzen.Die
Actors, die bei ihren Waffenslot in der Database kein Häkchen bei Fixed haben , können im Spiel auch weiterhin
den ersten Waffenslot nutzen.Daher kannst du die Actors, die nur eine Waffe tragen sollen zu
beginn über ein Event Script(Seite 3) eine Waffe in den zweiten Waffenslot zuordnen.Ich hatte dir das Ganze in meine
vorherige Post beschrieben.
MFG
Realität ist auch nur eine Art von Rollenspiel.
Ähnliche Themen
-
Skript-Anfragen »-
Item-Unterordnung
(4. Dezember 2010, 19:00)
-
Maker-Talk »-
Waffenverschleiß
(3. März 2010, 18:02)
-
Archiv Spielvorstellungen »-
[Abenteuer] Abyss War
(27. Juli 2008, 18:14)
-
Skript-Anfragen »-
Suche Skripter für das "Ultimative Menü-Skript"
(30. Mai 2007, 23:19)
-
RGSS 1 Probleme & Talk »-
Eigenes Menü erstellen (Help)
(18. Juni 2006, 12:49)




