Dark Enchanter
Senior Member
- Registriert
- 11.05.2013
- Beiträge
- 126
Hallo
Ich habe hier ein kleines Script -->
Bei diesem Script funktioniert alles, nur mit dem
gibt es Probleme.
Wenn eine Kreatur verlangsamen auf einen Charakter wirkt, und dieses verlangsamen wird durch das Schnelligkeitsöl nicht aufgehoben (ist wohl immer so beim Schnelligkeitsöl ?), dann schluckt der Charakter aufgrund des Scripts jede Runde ein weiteres Schnelligkeitsöl, was er aber nicht tu soll.
Getestet habe ich das mit der Kreatur GORWOM06 aber das passiert auch bei bestimmten Schleimen als Gegner und anderen.
Wie kann ich es schaffen, dass genau 1 mal das Schnelligkeitsöl getrunken wird, und solange Hast auf dem Charakter aktiv ist, keine weiteren Schnelligkeitsöle getrunken werden, solange bis die Hast erloschen ist, dann soll wieder ein Schnelligkeitsöl getrunken werden, falls dann immer noch verlangsamen auf dem Charakter liegt.
-------------------------------------------------------------------------------------
Um das Problem noch mal anhand eines anderen Scripts zu verdeutlichen -->
Ist dieses Script aktiv, dann schluckt ein Charakter einen Unsichtbarkeitstrank, sobald die Gesundheit des Charakters niedriger als 50 % ist. Wenn der Charakter 24 Unsichtbarkeitstränke im Inventar hätte, dann würde er 24 Runden lang jeweils erneut einen Unsichtbarkeitstrank trinken, solange, bis die Gesundheit wieder 50 % oder mehr betragen würde.
Er soll aber nur einen einzigen Unsichtbarkeitstrank trinken, d.h. diese Scriptanweisung soll nur ein einziges Mal ausgeführt werden (ohne Heilung !)
Ich hoffe ich konnte mitteilen, was mein Problem ist.
Wie schaffe ich es, Scriptanweisungen nur einmal ausführen zu lassen ?
Ich weiß auch nicht wie man das Gegenteil von einem Status abfragen kann.
Man kann zum Beispiel abfragen ob ein Charakter vergiftet ist -->
StateCheck(Myself,STATE_POISONED)
Aber wie frage ich jetzt das Gegenteil ab, also wie frage ich ab, ob ein Charakter NICHT vergiftet ist ?, das würde vielleicht meine Probleme lösen.
Anmerkung :
Diese Scripts funktionieren natürlich nur solange, solange die entsprechenden Tränke im Inventar vorhanden sind.
Ich habe hier ein kleines Script -->
Code:
IF
!GlobalTimerNotExpired("castnattack","LOCALS")
StateCheck(Myself,STATE_SLOWED)
HasItem("potn14",Myself) // Schnelligkeitsöl
THEN
RESPONSE #100
SetGlobalTimer("castnattack","LOCALS",6)
UseItem("potn14",Myself) // Schnelligkeitsöl
END
IF
!GlobalTimerNotExpired("castnattack","LOCALS")
StateCheck(Myself,STATE_POISONED)
HasItem("potn17",Myself) // Heilungselixier
THEN
RESPONSE #100
SetGlobalTimer("castnattack","LOCALS",6)
UseItem("potn17",Myself) // Heilungselixier
END
IF
!GlobalTimerNotExpired("castnattack","LOCALS")
StateCheck(Myself,STATE_POISONED)
HasItem("potn20",Myself) // Gegengift
THEN
RESPONSE #100
SetGlobalTimer("castnattack","LOCALS",6)
UseItem("potn20",Myself) // Gegengift
END
IF
!GlobalTimerNotExpired("castnattack","LOCALS")
HPPercentLT(Myself,50)
HasItem("potn55",Myself) // Extrastarker Heiltrank
THEN
RESPONSE #100
SetGlobalTimer("castnattack","LOCALS",6)
UseItem("potn55",Myself) // Extrastarker Heiltrank
END
IF
!GlobalTimerNotExpired("castnattack","LOCALS")
HPPercentLT(Myself,65)
HasItem("potn52",Myself) // Konzentrierter Heiltrank
THEN
RESPONSE #100
SetGlobalTimer("castnattack","LOCALS",6)
UseItem("potn52",Myself) // Konzentrierter Heiltrank
END
IF
!GlobalTimerNotExpired("castnattack","LOCALS")
HPPercentLT(Myself,80)
HasItem("potn08",Myself) // Heiltrank
THEN
RESPONSE #100
SetGlobalTimer("castnattack","LOCALS",6)
UseItem("potn08",Myself) // Heiltrank
END
IF
InWeaponRange(NearestEnemyOf(Myself))
ActionListEmpty()
THEN
RESPONSE #100
AttackOneRound(NearestEnemyOf(Myself))
END
IF
AttackedBy([ANYONE],DEFAULT)
ActionListEmpty()
THEN
RESPONSE #100
AttackOneRound(LastAttackerOf(Myself))
END
Bei diesem Script funktioniert alles, nur mit dem
Code:
IF
!GlobalTimerNotExpired("castnattack","LOCALS")
StateCheck(Myself,STATE_SLOWED)
HasItem("potn14",Myself) // Schnelligkeitsöl
THEN
RESPONSE #100
SetGlobalTimer("castnattack","LOCALS",6)
UseItem("potn14",Myself) // Schnelligkeitsöl
END
gibt es Probleme.
Wenn eine Kreatur verlangsamen auf einen Charakter wirkt, und dieses verlangsamen wird durch das Schnelligkeitsöl nicht aufgehoben (ist wohl immer so beim Schnelligkeitsöl ?), dann schluckt der Charakter aufgrund des Scripts jede Runde ein weiteres Schnelligkeitsöl, was er aber nicht tu soll.
Getestet habe ich das mit der Kreatur GORWOM06 aber das passiert auch bei bestimmten Schleimen als Gegner und anderen.
Wie kann ich es schaffen, dass genau 1 mal das Schnelligkeitsöl getrunken wird, und solange Hast auf dem Charakter aktiv ist, keine weiteren Schnelligkeitsöle getrunken werden, solange bis die Hast erloschen ist, dann soll wieder ein Schnelligkeitsöl getrunken werden, falls dann immer noch verlangsamen auf dem Charakter liegt.
-------------------------------------------------------------------------------------
Um das Problem noch mal anhand eines anderen Scripts zu verdeutlichen -->
Code:
IF
!GlobalTimerNotExpired("castnattack","LOCALS")
HPPercentLT(Myself,50)
HasItem("potn10",Myself) // Unsichtbarkeitstrank
THEN
RESPONSE #100
SetGlobalTimer("castnattack","LOCALS",6)
UseItem("potn10",Myself) // Unsichtbarkeitstrank
END
Ist dieses Script aktiv, dann schluckt ein Charakter einen Unsichtbarkeitstrank, sobald die Gesundheit des Charakters niedriger als 50 % ist. Wenn der Charakter 24 Unsichtbarkeitstränke im Inventar hätte, dann würde er 24 Runden lang jeweils erneut einen Unsichtbarkeitstrank trinken, solange, bis die Gesundheit wieder 50 % oder mehr betragen würde.
Er soll aber nur einen einzigen Unsichtbarkeitstrank trinken, d.h. diese Scriptanweisung soll nur ein einziges Mal ausgeführt werden (ohne Heilung !)
Ich hoffe ich konnte mitteilen, was mein Problem ist.
Wie schaffe ich es, Scriptanweisungen nur einmal ausführen zu lassen ?
Ich weiß auch nicht wie man das Gegenteil von einem Status abfragen kann.
Man kann zum Beispiel abfragen ob ein Charakter vergiftet ist -->
StateCheck(Myself,STATE_POISONED)
Aber wie frage ich jetzt das Gegenteil ab, also wie frage ich ab, ob ein Charakter NICHT vergiftet ist ?, das würde vielleicht meine Probleme lösen.
Anmerkung :
Diese Scripts funktionieren natürlich nur solange, solange die entsprechenden Tränke im Inventar vorhanden sind.
Zuletzt bearbeitet von einem Moderator: