PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [RPGM VX ACE] Script - MP abfragen bei Waffenwechsel?



Mr.Räbbit
11.06.2014, 11:41
Hallo Leute!

Ich habe heute eine Frage an die mehr oder weniger versierten Scripter unter euch!

In einem meiner aktuellen Projekte hat das Mana also MP den Zweck von Munition für Schusswaffen.
Bedeutet:
Das maximale Mana wird Anhand der Kapazität der Waffe bestimmt.

Problem: Wechselt man eine Waffe, verliert man zwangsläufig Munition, was dazu führt, dass ein Waffen- und Ausrüstungswechsel sehr frustrierend sein kann.

Deswegen wollte ich euch mal fragen:

Ist es möglich per Script die Menge der aktuellen MP/ Munition abzufragen, wenn über das Standardmenü die Waffe gewechselt wird?
Das natürlich für eine ganze Party von (gleichbleibend) 4 Mitgliedern.

Im Grunde müsste ja nur abgefragt werden, ob sich die Max-MP von Actor 1-4 geändert haben, um ihnen dann nach dem Wechsel der Ausrüstung die gleiche Menge MP zurückzuführen die sie vorher hatten.

Über Events ist das natürlich auch mehr oder weniger möglich, allerdings habe ich so im Gefühl, dass es per Script wesentlich einfacher zu lösen wäre.
Nur habe ich leider keine Ahnung vom Scripten und benötige deswegen dringend eure Hilfe!

In freudiger Erwartung auf hilfreiche Antworten:
~Räbbit!

Linkey
11.06.2014, 16:13
Hey Räbbit,

ich verstehe gerade deine Anforderung nicht so ganz.

Die Methode, die beim Wechseln der Ausrüstung aufgerufen wird ist folgende:


class Game_Actor < Game_Battler
def change_equip(slot_id, item)
return unless trade_item_with_party(item, equips[slot_id])
return if item && equip_slots[slot_id] != item.etype_id
@equips[slot_id].object = item
refresh
end
end

Die MaxMP kannst du über die Methode mmp abfragen. Was genau brauchst du jetzt noch?

Mr.Räbbit
11.06.2014, 16:24
Simpel:
Ich weiß weder was, noch wo ich Codezeilen einsetzen müsste, da ich keine Ahnung von Ruby habe.

Ich würde ein Script benötigen, bei dem die MP vor dem Ausrüsten abgefragt und nach dem Ausrüsten wieder zurückgeführt werden.
Sie müssten sozusagen zwischengespeichert werden.

Da ich keine Ahnung habe wie ich das schreiben, oder wo ich das einsetzen müsste, versuche ich es mal so zu erklären.

1. Held trägt Waffe - Waffe bestimmt MaxMP

2. Held legt Waffe ab - Davor muss ein Script den MP Wert abfragen und Zwischenspeichern (Variable)

3. Wenn nun wieder eine Waffe ausgerüstet wird, müssten die zwischengespeicherten MP Werte zurückgeführt werden, bzw. an den MaxMP angepasst werden, wenn dieser niedriger ist, als der MP Wert aus der Variable der von Waffe

4. Ich müsste wissen, wo es eingesetzt werden soll und wie man das für 4 Actors einrichtet
(welche immer in der Party sind)

Ich hoffe das ist verständlich : )

Linkey
11.06.2014, 17:04
Auf die schnelle würde ich sagen, dass es in etwa so funktionieren sollte (einfach über main einfügen):



class Game_Actor < Game_Battler
@lmp #last mp
def change_equip(slot_id, item)
return unless trade_item_with_party(item, equips[slot_id])
return if item && equip_slots[slot_id] != item.etype_id
@lmp = mp if(mmp > 0) #aktuellen mp wert auf @lmp zwischenspeichern
@equips[slot_id].object = item
@mp= [@lmp,mmp].min if(@lmp) #mp auf alten Wert oder max_mp setzen
refresh
end
end


Nicht wirklich getestet und quick&dirty gemacht.

Mr.Räbbit
11.06.2014, 17:26
Cool! : D
Wird gleich mal getestet! :A

Edit: Yeah!
Sieht gut aus ~ Vielen, vielen Dank und herzlichen Glückwunsch, Sie haben sich einen Credit-Platz ergattert ; D
Für Quick&Dirty war das genau das was ich gebraucht habe!