warrior1024
|
08.02.2010 19:08 781 mal angesehen |
Was Magier können
Hier ist ein Bild aus meiner Map zusehen(der Haufen Drops kommt noch weg, später fallen sowieso genug). Hier ist ein Schamane(Script im Wiki zu finden, von Noigi). Nur hier sind die Tooltips vollständig, eine wichtige Comfortfunktion ist auch dabei und das 4. Schamanenwunder ist fast einsatzbereit(der Preis muss angepasst werden, wer zahlt den schon 10 Wetteränderungen auf Regen, um ein paar Soldaten mehr zu bekommen?). Wie ihr seht, arbeite ich gerade am Cooldown des Effekts, damit es nicht zur Variablenüberschreibung kommt;)
Die Truppen verschwinden nach 3 Minuten wieder, aber sie lassen dann auch die Waffen liegen.
Mit der Erlaubnis und Unterstützung von Noigi gescriptet!
Auf das Bild klicken, um es in Originalgröße zu sehen (172,61 KB)
Kommentare
warrior1024
|
11.02.2010 21:46 |
Wenn du am Code interessiert bist, der sieht im Moment so aus:
function Shamans_Curse4_Action( _shaman ) local pos = GetPosition( _shaman) --MiscAxeShield = SKav --MiscBow = LKav --MiscSwordShield = Schwert --MiscPoleArm = Speer local maxDrops = 100 SKavRoh = {Logic.GetEntitiesInArea(Entities.XD_MiscAxeShield, pos.X, pos.Y, 5000, maxDrops)} for i = 2, SKavRoh[1] + 1 do local SKavPos = GetPosition( SKavRoh[i]) ReplaceEntity( SKavRoh[i], Entities.PU_LeaderHeavyCavalry2) ChangePlayer(SKavRoh[i], 1) Logic.CreateEffect( GGL_Effects.FXMaryDemoralize, SKavPos.X, SKavPos.Y, 0) end LKavRoh = {Logic.GetEntitiesInArea(Entities.XD_MiscBow, pos.X, pos.Y, 5000, maxDrops)} for i = 2, LKavRoh[1] + 1 do local LKavPos = GetPosition( LKavRoh[i]) ReplaceEntity( LKavRoh[i], Entities.PU_LeaderCavalry2) ChangePlayer(LKavRoh[i], 1) Logic.CreateEffect( GGL_Effects.FXMaryDemoralize, LKavPos.X, LKavPos.Y, 0) end SwordRoh = {Logic.GetEntitiesInArea(Entities.XD_MiscSwordShield, pos.X, pos.Y, 5000, maxDrops)} for i = 2, SwordRoh[1] + 1 do local SwordPos = GetPosition( SwordRoh[i]) ReplaceEntity( SwordRoh[i], Entities.PU_LeaderSword4) ChangePlayer(SwordRoh[i], 1) Logic.CreateEffect( GGL_Effects.FXMaryDemoralize, SwordPos.X, SwordPos.Y, 0) end SpeerRoh = {Logic.GetEntitiesInArea(Entities.XD_MiscPoleArm, pos.X, pos.Y, 5000, maxDrops)} for i = 2, SpeerRoh[1] + 1 do local SpeerPos = GetPosition( SpeerRoh[i]) ReplaceEntity( SpeerRoh[i], Entities.PU_LeaderPoleArm4) ChangePlayer(SpeerRoh[i], 1) Logic.CreateEffect( GGL_Effects.FXMaryDemoralize, SpeerPos.X, SpeerPos.Y, 0) end gvCountdown = 0 StartSimpleJob("Control_Curse4") end function ControlCurse4() gvCountdown = gvCountdown + 1 if (gvCountdown == 180) then for i = 2, SKavRoh[1] + 1 do SetHealth(SKavRoh[i], 0) end for i = 2, LKavRoh[1] + 1 do SetHealth(LKavRoh[i], 0) end for i = 2, SwordRoh[1] + 1 do SetHealth(SwordRoh[i], 0) end for i = 2, SpeerRoh[1] + 1 do SetHealth(SpeerRoh[i], 0) end return true end end
An der Control_Shaman-Funktion wird noch gearbeitet, damit der Cooldown funktioniert
Ich denke, man kann sich denken, was passiert, wenn der Spieler 2x in weniger als 180 Sekunden den Button drückt.
Wladimir
|
09.02.2010 21:06 |
tolle Idee! Mit der Verbesserung werde ich den Code vielleicht auch verwenden.
Danke.