PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zu Ausrüstung (VX)



TrustyBell
22.01.2012, 14:22
Hallo!

Gibt es eine Möglichkeit das Ablegen von bestimmten Ausrüstungstypen (in meinem Fall Waffen) zu verhindern? Also nur das Ablegen; die Waffe wechseln sollte man schon noch können.

Danke im Vorraus!

Cornix
22.01.2012, 17:05
Falls du die standard RMVX-Actor-Klasse verwendest dann solltest du innerhalb dieser an der Zeile 439 folgendes Script finden:

def change_equip(equip_type, item, test = false)
last_item = equips[equip_type]
unless test
return if $game_party.item_number(item) == 0 if item != nil
$game_party.gain_item(last_item, 1)
$game_party.lose_item(item, 1)
end
item_id = item == nil ? 0 : item.id
case equip_type
when 0 # Weapon
@weapon_id = item_id
unless two_hands_legal? # If two hands is not allowed
change_equip(1, nil, test) # Unequip from other hand
end
when 1 # Shield
@armor1_id = item_id
unless two_hands_legal? # If two hands is not allowed
change_equip(0, nil, test) # Unequip from other hand
end
when 2 # Head
@armor2_id = item_id
when 3 # Body
@armor3_id = item_id
when 4 # Accessory
@armor4_id = item_id
end
end
Dieses regelt den Wechsel von Equipment.
Wenn du komplett unterbinden willst, dass ein Ausrüstungsslot leer sein kann dann brauchst du lediglich die folgende Zeile Code an erster Stelle in der Methode einzufügen.

return if item == nil
Wenn du dieses Verhalten nur für Waffen wünscht dann kannst du die Zeile wie folgt erweitern:

return if item == nil && equip_type == 0
Das "return" bedeutet hier, dass das Script an dieser Stelle bereits beendet wird, also die kommenden Aktionen nichtmehr ausgeführt werden.
Das "if item == nil" heist, dass das "return" nur ausgeführt wird falls das Item zu welchem gewechselt werden soll gleich "kein item" ist.
Das "&& equip_type == 0" bedeutet, dass zusätzlich auch noch die Bedingung erfüllt sein muss, dass der angegebene equipment-Typ 0 ist, 0 steht hierbei für Waffe.
Also alles in allem: Wenn das item gleich "kein item" ist und der equipment typ gleich <Waffe> ist dann beendet das Script direkt. Packst du diese Zeile also an erster Stelle in die von mir zitierte Methode dann wird keine Waffe mehr abgelegt werden können ohne eine neue auszurüsten.

TrustyBell
22.01.2012, 17:19
Hat geklappt, vielen Dank! :)