Armee funktioniert nicht! Warum?
» Siedler Map Source Forum » Siedler DEdK Script Forum » Armee funktioniert nicht! Warum?
Seiten: 1
Wladimir
|
#1 14.08.2009 19:08 Beiträge: 489 |
Armee funktioniert nicht! Warum?
function DLordVBArmee1() DLordVBArmee1 = {} DLordVBArmee1.player = 2 DLordVBArmee1.id = 1 DLordVBArmee1.strength = 6 DLordVBArmee1.position = GetPosition("HQ2sp") DLordVBArmee1.rodeLength = 1500 SetupArmy(DLordVBArmee1) local troopDescription1 = {} troopDescription1.maxNumberOfSoldiers = 4 troopDescription1.minNumberOfSoldiers = 0 troopDescription1.experiencePoints = MEDIUM_EXPERIENCE troopDescription1.leaderType = Entities.PU_LeaderBow2 local troopDescription2 = {} troopDescription2.maxNumberOfSoldiers = 8 troopDescription2.minNumberOfSoldiers = 0 troopDescription2.experiencePoints = MEDIUM_EXPERIENCE troopDescription2.leaderType = Entities.PU_LeaderSword3 local troopDescription3 = {} troopDescription3.maxNumberOfSoldiers = 8 troopDescription3.minNumberOfSoldiers = 0 troopDescription3.experiencePoints = MEDIUM_EXPERIENCE troopDescription3.leaderType = Entities.PU_LeaderPoleArm3 for i = 1,2,1 do EnlargeArmy(DLordVBArmee1,troopDescription1) end for i = 1,2,1 do EnlargeArmy(DLordVBArmee1,troopDescription2) end for i = 1,2,1 do EnlargeArmy(DLordVBArmee1,troopDescription3) end StartSimpleJob("ControlDLAVB1") end function ControlDLAVB1() Advance(DLordVBArmee1) if not DLordVBArmee1.created then DLordVBArmee1.created = not IsDead(DLordVBArmee1) return false end if IsDead(DLordVBArmee1) and I***isting("HQ2") then Message("Die dunkle Armee ist tot!") DLordVBArmee1() return true end end
Wenn nun diese Armee tot ist kommt immer und immer wieder "Die dunkle Armee ist tot!" aber keine neue und auch sonst funkt nix mehr. Warum?
Wladimir.
____________________
Viele, die leben, verdienen den Tod und viele die tot sind, das Leben. Kannst du es ihnen geben? Dann sei auch nicht so rasch mit einem Todesurteil zur Hand!
Gandalf
kingsia
|
#2 14.08.2009 22:40 Beiträge: 750 |
Es ist gundsätzlich keine gute Idee eine Funktion und eine Variable/Array die gleiche Name zu geben.
In deinem Beispiel wurde ich die Function in etwas anderes umbenennen. vielleicht CreateDLordVBArmee1()
Auch die Befehl For 1,2,1 Do hast du komplizierter gemacht wie nötig ist. Die Dritte Parameter ist die Schrittgrosse zwischen die erste und zweite Parametern und ist standardmässig 1 wenn nich anders spezifiziert.
Also For 1,2 Do wurde ausreichen.
fritz_98
|
#3 15.08.2009 08:41 Beiträge: 472 |
Hi Wladi?
Was genau ist das Problem?
Stürzt DEdK ab, oder erscheint die Armee einfach nicht, bzw. an der falschen Stelle? Bekommst du eine Fehlermeldung?
Und ausserdem wäre es nützlich, die Armeen einfach mit Army1, Army2, usw. zu benennen, dann lässt sich die Army-Id besser überprüfen.
Wladimir
|
#4 15.08.2009 10:53 Beiträge: 489 |
Danach funzen keine anderen Skriptbefehle mehr und die Message erscheint jede Sekunde neu. Keine Armee taucht auf.
@ kingsia
Beim 1. Mal hat die Armee ja auch gefunzt. Da muss es beim 2. Mal doch auch gehen. Werde deinen Vorschlag aber mal versuchen.
Wladimir.
____________________
Viele, die leben, verdienen den Tod und viele die tot sind, das Leben. Kannst du es ihnen geben? Dann sei auch nicht so rasch mit einem Todesurteil zur Hand!
Gandalf
Wladimir
|
#5 15.08.2009 11:26 Beiträge: 489 |
Problem gelöst!
Ich hab die Armeeaufrufe jetzt geändert und es funzt. Nun werde ich das noch bei den anderen Armeen machen und die Sache ist OK.
Danke kingsia, danke fritz
Wladimir.
____________________
Viele, die leben, verdienen den Tod und viele die tot sind, das Leben. Kannst du es ihnen geben? Dann sei auch nicht so rasch mit einem Todesurteil zur Hand!
Gandalf
fritz_98
|
#6 15.08.2009 11:36 Beiträge: 472 |
Mich würd jetzt schon interessieren, was genau du gemacht hast. Hab jetzt nämlich auch ein paar Veränderungen gemacht -> nach 10 Sek. Absturz...
Edit: Nun funzt alles bis auf den Respawn.
Wladimir
|
#7 15.08.2009 11:51 Beiträge: 489 |
Hier sieht man es:
Ich Zeige dir einfach den neuen Code:
function ArmeeDLordVBArmee1() DLordVBArmee1 = {} DLordVBArmee1.player = 2 DLordVBArmee1.id = 1 DLordVBArmee1.strength = 6 DLordVBArmee1.position = GetPosition("HQ2sp") DLordVBArmee1.rodeLength = 1500 SetupArmy(DLordVBArmee1) local troopDescription1 = {} troopDescription1.maxNumberOfSoldiers = 4 troopDescription1.minNumberOfSoldiers = 0 troopDescription1.experiencePoints = MEDIUM_EXPERIENCE troopDescription1.leaderType = Entities.PU_LeaderBow2 local troopDescription2 = {} troopDescription2.maxNumberOfSoldiers = 8 troopDescription2.minNumberOfSoldiers = 0 troopDescription2.experiencePoints = MEDIUM_EXPERIENCE troopDescription2.leaderType = Entities.PU_LeaderSword3 local troopDescription3 = {} troopDescription3.maxNumberOfSoldiers = 8 troopDescription3.minNumberOfSoldiers = 0 troopDescription3.experiencePoints = MEDIUM_EXPERIENCE troopDescription3.leaderType = Entities.PU_LeaderPoleArm3 for i = 1,2,1 do EnlargeArmy(DLordVBArmee1,troopDescription1) end for i = 1,2,1 do EnlargeArmy(DLordVBArmee1,troopDescription2) end for i = 1,2,1 do EnlargeArmy(DLordVBArmee1,troopDescription3) end StartSimpleJob("ControlDLAVB1") end function ControlDLAVB1() Advance(DLordVBArmee1) if not DLordVBArmee1.created then DLordVBArmee1.created = not IsDead(DLordVBArmee1) return false end if IsDead(DLordVBArmee1) and I***isting("HQ2") then StartCountdown(120, ArmeeDLordVBArmee1, false) return true end end
Ich habe einfach die Funktionsaufrufe geändert!
Wladimir.
____________________
Viele, die leben, verdienen den Tod und viele die tot sind, das Leben. Kannst du es ihnen geben? Dann sei auch nicht so rasch mit einem Todesurteil zur Hand!
Gandalf
Seiten: 1