PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Skill für Beschwörung



Chillkröte
16.04.2009, 21:40
Hi^^
Ich möchte einen Skill machen, der ein Monster heraufbeschwöret, dass für deinen Helden kämpft und so. Dafür hab ich in der Database einen Skill namens "Schleim beschwören" gemacht, welcher den Switch "Schleim" auf ON setzt. Ist dieser eingeschaltet, wird ein Common Event gestartet. Dieses ruft das Event "Schleimbeschwörung" auf und schaltet "Schleim" auf OFF. "Schleimbeschwörung ist ebenfalls ein Common Event und fügt zu Beginn den Hero "Schleim" in die Party ein. Dann hab ich ein 30 s langes "Wait" eingebaut und danach wird der Hero wieder entfernt.

Meine Fragen:
a) Was lässt sich hierbei besser machen?
b) Was muss ich machen, damit immer nur ein Monster beschworen wird (z.B. dass eine Message kommt, wenn du ein Skelett beschwören willst: "Du hast bereits ein Monster beschworen!")?

R.D.
16.04.2009, 21:47
30 sekunden?
Etwas kurz oder^^

Chillkröte
16.04.2009, 21:49
Naja jetzt nur als Beispiel ^^

Dhan
16.04.2009, 22:06
b) Was muss ich machen, damit immer nur ein Monster beschworen wird (z.B. dass eine Message kommt, wenn du ein Skelett beschwören willst: "Du hast bereits ein Monster beschworen!")?

Na ganz einfach einen Switch, der speichert, ob bereits ein Monster beschworen wurde und eine dazu passende Fork in jedem Beschwörungscommonevent

Chillkröte
16.04.2009, 22:37
Es will leider nicht so richtig klappen... Könntest du mir es bitte genauer erklären? ^^

Stummboy
16.04.2009, 22:57
Wenn dein Monster beschworen wurde stellst du den Switch : Monster da
auf on.
Vor dein Beschwörungsevent setzt du eine Fork Kondition(findest auf der dritte Seite der Event Befehlen rechts)das müsste dann etwa so aussehen
<>If Switch(XXXX:Monster da)is ON
<>Message: Du hast bereits ein Monster beschworen
:Else Case
<>Beschwörungs event(hab keine Lust alles hier reinzuschreiben:D )
So sollte das am Ende aussehen

Chillkröte
16.04.2009, 23:22
Ok also bei mir sieht das jetz so aus und funzt immer noch nicht.

http://img223.imageshack.us/img223/5075/bildl.th.png (http://img223.imageshack.us/my.php?image=bildl.png)

Stummboy
16.04.2009, 23:33
Das liegt glaub ich daran das du aus dem KS keine Commonevents aufrufen kannst. So leids mir tut du musst für jede Monster party dieses Event erstellen müssen.:D

Chillkröte
16.04.2009, 23:40
Man kann den Skill aber sowieso nur außerhalb des Kampfes einsetzen, also liegts bestimmt nicht daran ^^

Stummboy
16.04.2009, 23:57
Versuch mal das ganze Event in ne Fork zu setzen und mach den haken bei "Appearence Conditons Switch" weg...sonst fällt mir da nix auf

R.D.
17.04.2009, 10:37
Schwachsinn
Dein Fehler ist, das du nachdem das Monster schon verschwunden ist, die Switch dafpr anmachst das ein Monster da ist.
Sprich, der Switch, das ein Monster bereits beschworen wurde, muss vor der Warte zeit angemacht werden D:

Chillkröte
17.04.2009, 19:20
Ok hab ich gemacht und es funzt leider immer noch nicht. :(

EDIT:

Hm also ich noch einen zweiten Skill gemacht mit dem man ein Skelett beschwören kann.
Hab ich einen Schleim beschworen und will noch einen beschwören kommt keine Message.
Hab ich einen Schleim beschworen und will ein Skelett dazu beschwören kommt die Message.
Hab ich ein Skelett beschworen und will noch eins dazu beschöern kommt keine Message.
Hab ich ein Skelett beschworen und will einen Schleim dazu beschören kommt die Message.

Will ich also dasselbe Monster 2mal beschwören kommt keine Message.
Sehr, sehr seltsam...

Dhan
18.04.2009, 00:39
Mach mal vom neuen Code nen Screenshot, sonst kann man dir schlecht helfen. Der alte Code-Screenshot hat ja noch von den R.D. angesprochenen Fehler, der Switch wird an der falschen stelle ON und nirgends OFF gesetzt.

Nochwas, ein wait in einem Code, der vor dem Ende des waits nochmals aufgerufen werden könnte, ist schlechter Stil. Bau dir lieber einen künstlichen Zähler, sprich setz eine Variable hoch die ein paralleler Prozess runterzählt um dann bei null das Ding zu löschen.
Ich glaub nämlich, das ist dein Fehler:
Du aktivierst das Schleim-PP, das in Wait 60s geht, per Switch. Anschließend, bevor die 60s abgelaufen sind, aktivierst du denselben Switch ein zweites Mal. Das sorgt für absolut nichts weil der Switch ja eh noch an ist, da die 60s noch nicht abgelaufen sind und nix den Switch deaktiviert hat.
Daher: künstlicher Zähler. Mit dem ist das bisherige Schleim-PP frei von waits und kann sofort wieder reagieren.

Chillkröte
18.04.2009, 19:28
Also hier der neue Code:

http://img164.imageshack.us/img164/1346/bild.th.png (http://img164.imageshack.us/my.php?image=bild.png)

Könntest du mir auch sagen, wie es dann nach deinen Vorstellungen aussehen müsste? ^^ Wenn ichs richtig verstanden habe, müsste ich im ElseCase der ForkCondition noch eine Fork einbauen mit der Bedingung: "Variable XYZ=0". Wenn das zutrifft, wird dann der Held wieder entfernt. Bloß wo muss ich dann den PP aufrufen, der die Variable kleiner macht? Und muss ich in den PP noch ein wait von 1s einbauen, damit jede Sekunde die Variable um 1 kleiner wird?

Stummboy
19.04.2009, 01:58
Du musst den wait durch diesen Variablen zähler ersetzen.
Du machst einfach statt dem Wait einen Loop (findest du auf der dritten seite der Event befehle unter "Cycle")Dann setzt du einen Wait von 1sec und dann den Befehl das de Variable xyz um 1 runtergesetzt werden soll. Dann machst du eine Fork die checkt ob die variable xyz gleich 0 ist. Wenn sie es ist benutzt du den "Break Cycle" Befehl (Der ist direkt unter dem Cycle Befehl)
Hinter dem Loop beginnt dann der Beschwörung beenden code.
Vor den Loop setzt du dann noch die Variable xyz auf 60 (halt die Beschwörungszeit)
Müsste dann im Maker so aussehen:
http://www.npshare.de/files/7148f1c8/Aufzeichnen.JPG

Dhan
19.04.2009, 08:35
Wenn der Loop im gleichen Event ist, läufts aufs gleiche raus.

Meine Vorgehensweise:


Zauber Schleim: aktiviert Switch "Schleim"
Zauber Skelett: aktiviert Switch "Skelett"

CE-PP Schleim (aktiviert durch Switch Schleim):
fork (Switch Beschwörung ON) {
Message "Es ist bereits etwas beschwört"
(hier evtl MP zurückgeben)
Switch Schleim OFF
}
else {
Change Variable "Counter" = 60
Switch Beschwörung ON
Change Party: Add Schleim
Message "Schleim beschworen"
Switch Schleim OFF
}

CE-PP Skelett: äquivalent

CE-PP Counter (aktiviert durch Switch Beschwörung):
wait 1s
Counter - 1
fork (Counter = 0){
Change Party: Remove Schleim
Change Party: Remove Skelett
Message "Beschwörung endete"
Switch Beschwörung OFF
}


Wie gesagt, der Unterschied ist, dass im eigentlichen Event kein wait mehr ist. Denn wie gesagt, was passiert sonst?
Held aktiviert Switch Schleim
PP Schleim wird durch den Switch aktiv
PP Schleim macht alles bis zum wait
PP Schleim wartet, sagen wir 29 Sekunden, hat noch nicht den Switch Schleim deaktiviert
Held aktiviert Switch Schleim der bereits aktiviert ist, keine Veränderung der Situation, PP Schleim reagiert entsprechend nicht

Chillkröte
19.04.2009, 13:58
Super es funktioniert. Vielen, vielen dank nochmal an alle. ^^