Dauerschleife Pinescript

08/19/2014 10:29 Sour!#1
Sup

Ich versuche gerade in meiner Instanz Perma-Spawn-Monster einzufügen^^ also wenn der eine Monster stirbt, dann erscheint sofort ein anderer, jedoch hört das auf nach 4 durchgängen. Weiß einer wieso? Hier ist code:

Code:
open [RandomBoss]
	regengroup "Wtf01" "RandomBoss".
	
	call "RegenBoss".
close

open [RegenBoss]
	regengroup "Wtf01" "PvPBoss1".
	
	call "RegenBoss2".
close

open [RegenBoss2]
	regengroup "Wtf01" "PvPBoss2".
	
	call "RandomBoss".
close
Ist sicher falsch wie ich das gemacht habe, aber ich weiß nicht wie sonst.
Ich weiß auch nicht wieso die dann 4x spawnen, also von jedem Mob.
08/19/2014 15:25 『  』#2
Quote:
Originally Posted by Sour! View Post

Code:
open [RandomBoss]
	regengroup "Wtf01" "RandomBoss".
	
	call "RegenBoss".
close

open [RegenBoss]
	regengroup "Wtf01" "PvPBoss1".
	
	call "RegenBoss2".
close

open [RegenBoss2]
	regengroup "Wtf01" "PvPBoss2".
	
	call "RandomBoss".
close
Ist sicher falsch wie ich das gemacht habe, aber ich weiß nicht wie sonst.
Ich weiß auch nicht wieso die dann 4x spawnen, also von jedem Mob.
Kurz gesagt: Du spawnst die Mobs und callst direkt die nächste Func welche
wiederum noch ein Mob spawnt und die nächste Func callt.

Warum das ganze nach 4x ( 4x RandomBoss - RegenBoss - RegenBoss 2)
aufhört, kann ich dir leider nicht sagen - hatte das selbe problem bei einem
Script, wo du unendlich Stages clearen kannst und dort hats auch nach 3x aufgehört x.x

Ob das nachfolgende Funktioniert kann ich dir leider nicht sagen, kannst
aber mal testen. Fals es asserts gibt - immer her damit :3

Code:
open [main]
var InterruptBlock ""
InterruptArg ""

regengroup "Wtf01" "RandomBoss".
call "WaitClearStage".

pause Sec 2.

regengroup "Wtf01" "PvPBoss1".
call "WaitClearStage".

pause Sec 2.

regengroup "Wtf01" "PvPBoss2".
call "WaitClearStage".

close

open [WaitClearStage]
pause sec 5.

infinite
open
waitinterrupt InterruptBlock "InterruptArg".
call InterruptBlock.
close
close

open [onMobEliminate]
break "WaitClearStage".
close

open [onAnyMobDead]
var Total 0
Total = @Count("all").

if Total == 0
then open
break "WaitClearStage".
close
else open
interruptset DeadIndex "AnyMobDead" 1 "_NONE_" "onAnyMobDead".
close
close
Erklärung:
Du spawnst dein Mob und callst dannach die Func "WaitClearStage" welche wiederum
wartet bis das Mob tot ist - solange geht in der main Func das Script net weiter.
Wenn alle Mobs tot sind spawnste deine neuen Mobs und rufst wieder die WaitClearStage auf :)


Anstatt in der main Func die jeweiligen regengroups zu "callen" könntest du auch
via infinite & random eine schleife machen.

Als bsp. wird random aus der Wtf01 die Mobregen für PvPBoss + Random
gespawnt. z.B regengroup "Wtf01" "PvPBoss3".
Achte aber darauf dass diese auch eingetragen sind ( 0-10 ).
Ob das geht weiß ich ebenfals nicht. Aber hey - Asserts zeigen die
lösung :3
(Kann sein dass das + bei "PvPBoss" nen fehler gibt, vllt mal mit & probieren :D

Code:
open [main]
var InterruptBlock ""
InterruptArg ""

infinite
open
    regengroup "Wtf01" "PvPBoss" + @Random(0 10).
    call WaitClearStage.
close

close

open [WaitClearStage]
pause sec 5.

infinite
open
waitinterrupt InterruptBlock "InterruptArg".
call InterruptBlock.
close
close

open [onMobEliminate]
break "WaitClearStage".
close

open [onAnyMobDead]
var Total 0
Total = @Count("all").

if Total == 0
then open
break "WaitClearStage".
close
else open
interruptset DeadIndex "AnyMobDead" 1 "_NONE_" "onAnyMobDead".
close
close
Hier sollte unendlich lang folgendes passieren:
Random Mob aus der MobRegen wird gespawnt (PvPBoss0-10)
Dannach wird ebenfals gewartet bis das Mob tot ist und
man wiederhole das ganze von vorne :)


#Wie immer - nicht getestet und frei ausm Kopp geschrieben,
#für eventuelle schäden haftest du xD
08/19/2014 19:33 Sour!#3
Nice sache, ich probier es mal aus, gebe dir dann rückmeldung in Skype