PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : script-kontrolle



Lord Vladec
23.07.2008, 12:33
tach,

kann mir plz jemand sagen ob dieses script korrelt ist und funktioniert?

scriptname MS45MonsterScript

short done

begin OnPackageChange HackdirtBrethrenGetPlayer
set MS45.attackPC to 0
end

Begin OnDeath
If GetStage 001questofthedeep == 40
if done == 0
SetStage 001questofthedeep 50
set done to 1
Return
Endif
EndIf
End

der untere teil is neu und soll bewirken, dass, wann man den NPC mit dem script killt, (wenn man auf stage 40 von 001questofthedeep is), die stage auf 50 gesetzt wird. das mit der variable soll bewirken dass das nur einmal geschiet.

Low Post
23.07.2008, 13:53
Ausprobieren, dann weißt du ob das funktioniert. ;)


Sollte eigentlich so funktionieren, auch wenn du dir das Done sparen kannst. GetStage gibt nämlich immer die höchste jemals erreichte Stage der Quest an. Sobald du die einmal auf 50 gesetzt hat wird das nie wieder 40 ausgeben.
Außerdem kannst du dir das Return sparen, da danach sowieso nichts mehr kommt. ;)

Alles nur Kleinigkeiten, nichts dramatisches. Wollte ich trotzdem mal erwähnt haben. ;)


Das einzig wichtige was imho fehlt ist Player als Parameter beim OnDeath-Block, da so dass Script immer ausgelöst wird wenn der NPC stirbt, egal wer ihn getötet hat.

scriptname MS45MonsterScript

begin OnPackageChange HackdirtBrethrenGetPlayer
set MS45.attackPC to 0
end

Begin OnDeath Player
If GetStage 001questofthedeep == 40
SetStage 001questofthedeep 50
EndIf
End


PS:
In Zukunft für Scripte bitte den Code-Tag verwenden. Das sieht dann um einiges leserlicher aus. :)

Lord Vladec
23.07.2008, 19:33
code tag mach ich normwe. aber dieses script is im TS auch net formatiert....

ahja, und testen konnt ich aus zeitgründen net ;)

wenn man des done weglässt, kanns dann net passieren, dass wenn man den gegener killt, man auf stage 50 kommt (dann der dialog mitm text kommt), und wenn man den gegner ca. 5 min später nochmals killt dann der dialog wieder kommt?!

ansonsten: thx für die hilfe ;)

Satsuma
23.07.2008, 19:56
warte mal, sollte dein gegner da, nicht ein Quest-Gegner sein? Dann sollte er aber nur einmal existieren, außerdem:


If GetStage 001questofthedeep == 40
wird nur eine aktion ausgeführt, wenn der Quest schon auf stage 40 ist, solange diese bedingung nicht erfüllt wird, passiert rein garnix.

Lord Vladec
23.07.2008, 23:21
wird nur eine aktion ausgeführt, wenn der Quest schon auf stage 40 ist, solange diese bedingung nicht erfüllt wird, passiert rein garnix.

-.- mann bin ich doof^^

stimmt, überlegungsfehler meinerseits, aufgrund dieses if brauch ich ja ger nix anderes mehr :P

danke^^http://www.multimediaxis.de/images/smilies/old/sm_12.gif