Hilfe! IDs von Skills im Kampf bestimmen

  • Servus,

    ich komme gerade nicht mehr weiter, daher brauche ich Hilfe:
    Wie kann ich mit einem Skill die Nutzer-ID (und im Ideal die Skill-ID) zu einer Variable bestimmen?


    Falls es Hilft, das ist mein Plan:
    Skill (den Spieler sieht) wird eingesetzt:

    Common Event läuft durch - Dieses Common Event bestimmt z.B. Ob Ausrüstungstyp XY getragen wird und Skill XY im besitz ist, dann erhöht sich V[Schaden] um +2

    Common Event "Force Action" (Hieß es glaub) Von Nutzer ID mit SkillID+1

    Bei diesem Skill kommen keine Meldungen oder so

    Skill+1 wird daraus folgernd eingesetzt

    Meldung, dass Skill eingesetzt wird

    Schadensberechnung z.B. a.atk + v[Schaden] - b.def

    Skill+2 (Diesen hätten die Gegner in ihrer Nutzungsliste)

    Meldung, dass Skill eingesetzt wird

    Hätten dann die Gegner, dort wäre dann die Schadensberechnung leicht anders, wobei einfach eine andere Variable geladen wird, die durch die Schwierigkeit bestimmt wird


    Wie ich alles mache in dem Common Event wüsste ich, nur fehlt mir die Nutzer ID und um Ideal die Skill ID - Wenn das mit der Skill ID nicht klappt werden es einfach nur mehr

    Common Events :D

  • Hast du JS-Kenntnisse? Ich habe mich mit den Schadensformeln zwar noch nicht großartig auseinandergesetzt, aber so wie ich das bisher verstanden habe, kann man jeglichen JS-Code in die Formel schreiben. Du kannst dort also auch globale Variablen zuweisen. Um die ActorID zu bekommen, könntest du bswp. in die Formel schreiben $gameTemp.currentActorID = a.actorId(); und für den Skill sollte das hier funktionieren $gameTemp.currentSkillID = a._lastBattleSkill._itemId. In dem CE solltest du dann auf diese Variablen zugreifen können.

  • Das Problem ist nur, wenn ich es in die Schadensformel reinpack, dann macht der Schaden immer die 0 Meldung :-(

    Daher sollte es als Common Event geladen werden - Was ich nicht hinbekomme.


    Skill ID habe ich zwar (versuchsweise) nicht ausprobiert als Damageformel aber die ActorID mit folgenden Befehl: $gameVariables.setValue(4, a.actorID());

    Das würde klappen, aber nur mit der bereits genannten "0-Meldung"

    Wenn ich dies als Common Event auslöse kommt die Meldung, dass "a" nicht definiert ist :-/

  • Ich hab es nun hinbekommen - Danke für eure Hilfe!
    So wird es nun gemacht:


    Skill:

    - Formel: $gameVariables.setValue(17, a.atk - b.def); $gameVariables.setValue(18, a.actorId());

    - Effekte: Zustand 13 Hinzufügen // Common Event rufen


    Bei Truppen:

    - Bedingung: Schalter an (19)

    - Spanne: Moment

    - Event:


    Bei Common Event:

    Code
    1. ◆Kommentar:17 = Schaden
    2. : :18 = ActorID
    3. ◆Schalter steuern:#0019 Schadensberechnung = EIN
    4. ◆Variablen steuern:#0017 Zwischenspeicher0 += Zufällig 1..10
    5. ◆If:Zwischenspeicher0 ≤ 0
    6. ◆Variablen steuern:#0017 Zwischenspeicher0 = 0
    7. :Beenden

    Bei dem muss nun noch viel ergänzt werden :-)


    Als Plugin:

  • Es musste noch einiges angepasst werden, damit es "ordentlich" funktioniert!

    Bei dem Projekt an welchem ich gerade Arbeite erhält man die passive Fähigkeit "Mehrfachangriff". Diese Fähigkeit ist jedoch limitiert auf jeweils einen

    Angriffstyp. Daher war das Ziel: Bei jedem Angriff soll überprüft werden, ob die jeweilige Fähigkeit entsprechend der Waffe vorhanden ist.

    Es ist ähnlich wie der Mehrfachangriff von DnD ;-)

    So habe ich es nun geschafft:


    Skill 1) Angriff

    Formel: $gameVariables.setValue(18, a.actorId()); a.addState(12); 1

    Typ: MP-Schaden

    Effekt: Common Event


    Skill 502, 503, 504, 505

    Formel:

    Math.floor(Math.random()*10)+1 + a.atk - b.def

    Typ: HP-Schaden


    Skill 502) Angriff x1

    Wiederholen 1x


    Skill 503) Angriff x2

    Wiederholen 2x


    (Entsprechend 504 & 505 steigert sich die Wiederholung)


    Common Event - Angriff:


    Kampf-Event

    Wann Event gestartet wird, kann dem vorherigen Post entnommen werden, Inhaltlich ist es nun so:


    Das Plugin wurde auch angepasst: