PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hilfe für ein Skript



Atoom
27.10.2007, 12:59
Da ich mich beim Scripten nich so auskenn, wollt ich mal fragen ob mir jemand ein Skript schreiben könnte. Des hab ich mir so vorgestellt: Es sollte ein script für einen Zauber sein, den man auf einen NPC wirkt und der sich dann, ähnlich wie bei Hasskill, auflöst, aber dann In einer art Zwischenspeicher befindet und sich dan mit einem anderen Zauber-Script wieder vor einem (so etwa 2 Meter entfertnt, direkt vor einem) materialisiert. Dann sollte der aber bis auf weiteres Demoraliesiert sein und ängstlich versuchen vor dem Spieler zu fliehen (des fals es nich zu viela arbeit macht sollte auch wieder, durch noch einen Zauber, abstellbar sein) und er sollte seine waffen wegwerfen. Könnte des mir einer schreiben? Vielen dank im voraus! (Verbesserte Idee, siehe ganz unten)

edit: Nebenbei könnte mir einer des Script für die Normale Gasfalle so umschreiben, dass diese nur noch 2 mal nach dem sie aktiviert wurde gas verströmt und dann wieder abgestellt wird? Hier is des normale script dafür:


scn ARTrapGasEmitter01SCRIPT

; spurt gas on activation

short init
float timer
short next
ref mySelf
ref myParent

float fTrapDamage
float fLevelledDamage
float fTrapPushBack
float fTrapMinVelocity
short bTrapContinuous

begin onActivate

if init == 0
set mySelf to getSelf
set myParent to getParentRef
set init to 1
endif

if isActionRef player == 0 && isActionRef mySelf == 0

set init to 2

; set up the damage values
set fTrapDamage to 10
set fTrapPushBack to 0
set fLevelledDamage to 0.125
set fTrapMinVelocity to 20
set bTrapContinuous to 1

set timer to 8
set next to 1
playgroup forward 1

endif

end

begin gameMode

;daisy-chain
if next == 1 && timer <= 7
set next to 0
myParent.activate mySelf 1
endif

if timer <= 0 && init == 2

playgroup forward 1
set timer to 10

endif

if timer > 0
set timer to timer - getSecondsPassed
endif

end



Edit2: mir is noch als ich mir des script vom Hasskill-Zauber angesehn hab, dass des gar nich so kompliziert gemacht werden muss mit dem NPC-Entführungszauber, da ich sie sowiso an einer bestimmten stelle absetzen wollte, dass man des so umändern könnte das der NPC, den der Zauber trifft einfach an bestimmte Koordinaten in einer bestimmten zelle teleportiert wird. (natürlich nur wenn mir einer helfen will, fals nich könnte man des weninstens hier reinschreiben, so dass ich mich nich völlig ignoriet fühle)

Atoom
28.10.2007, 21:13
wirklich keiner da der mir bei den problemen helfen kann?

kenet_korva
29.10.2007, 15:16
Als erstes brauchst du dafür mal eine Quest, keine Sorge die sieht man später nicht die nähmen wir nur um Infos zwischen den zaubern auszutauschen. Die Quest muss im Questscript die beiden Variablen haben das sieht dann so aus.


scn DeinQuestScript

short On
ref target


wichtig ist, dass du rechts oben QuestScript ausgewählt hast.
Dann die beiden Zauber. 1 auf Ziel, 2 auf selbst.


scn DeinZauber1

begin ScriptEffectStart
if DeineQuest.On == 0
Moveto DeinMarkerInIrgendeinerLeerenZelle
Set DeineQuest.Target to GetSelf
set DeineQuest.On to 1
endif
end


scn DeinZauber2

ref target

begin OnScriptEffectStart
if DeineQuest.On == 1
set target to DeineQuest.Target
target.SetCombatStyle DefaultDeer ;Du kannst auch einen anderen Styl wählen oder erstellen aber derhier war der einzige der mir auswendig eingefallen ist und bei dem das Opfer einfach wegläuft.
Set DeineQuest.On to 0
target.Moveto player, 512, 0, 0
endif
end

Hab das jetzt nicht getestet könnte also eventuell nicht funktionieren.