S5Hook & GUI Editor
» Siedler Map Source Forum » Siedler DEdK Script Forum » S5Hook & GUI Editor
daniBIGdani
|
#151 22.02.2018 17:46 Beiträge: 153 |
Brücke mit Dieb sprengen
Hi,
hat einer von Euch schon versucht mit PostEvent.ThiefSabotage(thiefId, buildingId) eine Brücke zu sprengen?
Ist es möglich mit der KI eine Brücke zu bauen? Also mit Brückenarchitekt und Leibeigenen.
mcb
|
#152 22.02.2018 17:56 Beiträge: 1472 |
Um rauszufinden, wann Drake seinen Meisterschuss einsetzt, kannst du den S5Hook.SetNetEventTrigger benutzen. Musst dich aber ein bisschen damit auskennen. Sag mir Bescheid, wenn ich das eben schreiben soll.
Brücken lassen sich einfach über PostEvent sabotieren, funktioniert genauso wie wenn du es per Mausklick machst. Bauen ist schwieriger, wenn du die Baustelle erstellst und die Serfs per PostEvent bauen schickst funktioniert es aber (die Architekten müssen aber fertig sein).
daniBIGdani
|
#153 28.02.2018 16:59 Beiträge: 153 |
Helias - Konvertierte Einheit herausfinden
Hi,
wie der Titel schon verrät suche ich eine Möglichkeit, herauszufinden, welche Einheit Helias konvertiert hat. Kann man das mit S5Hook.SetNetEventTrigger und wenn ja wie?
Geht das auch mit von Salim geheilten Einheiten(alle IDs)?
Wie kann ich mit PostEvent.SerfConstructBuilding eine Brücke bauen? Gebäude klappt.
MfG daniBIGdani
mcb
|
#154 28.02.2018 17:13 Beiträge: 1472 |
Helias: Sollte Möglich sein, musst die id des targets beim Event speichern und warten, bis sie sich ändert.
Salim: Musst beim Event callback noch ne EntityIterator Abfrage reinbauen um an die Ids zu kommen.
Brücken: Funktioniert genauso wie Gebäude. Den Bauplatz platzieren, an die id kommen und die Serfs zum Arbeiten schicken. (Die Brücke ist von player 0, können aber serfs von allen playern dran bauen.)
Der NetEventTrigger ist im Moment schwierig zu verwenden, da du nur einen Pointer auf das NetEvent bekommst. Alle notwendigen Informationen müssen erst daraus extrahiert werden. Müsste ich eigentlich mal ne Comfort für schreiben...
daniBIGdani
|
#155 28.02.2018 17:56 Beiträge: 153 |
Danke erstmal zu Helias, Salim.
Beim Brückenbau hab ich weiter Probleme.
Mit folgendem Code:
Logic.CreateConstructionSite(GetPosition("pos_bridge").X, GetPosition("pos_bridge").Y, 0, Entities.PB_Bridge1, 1)--pos_bridge ist eine ScriptEntity
wird zwar ein Brückenbauplatz erstellt aber ich kann selbst mit eigenen Leibeigenen nicht dran arbeiten. Hammer-Symbol erscheint aber.
Mit
local data = SucheAufDerWelt(1,Entities.PB_Bridge1,1000,GetPosition("pos_bridge")) Message(data[1].." is bridge")
wird die Brücke auch gefunden.
Versuche ich dann folgendes:
PostEvent.SerfConstructBuilding(GetID("serf"), data[1])
passiert gar nichts!
Bei Schmiede funktioniert das so:
Logic.CreateConstructionSite(GetPosition("pos_blacksmith").X, GetPosition("pos_blacksmith").Y, 0, Entities.PB_Blacksmith1, 1)--pos_blacksmith ist eine ScriptEntity local data = SucheAufDerWelt(1,Entities.PB_Blacksmith1,1000,GetPosition("pos_blacksmith")) Message(data[1].." is blacksmith") PostEvent.SerfConstructBuilding(GetID("serf"), data[1])
Warum?
mcb
|
#156 28.02.2018 18:19 Beiträge: 1472 |
Wahrscheinlich, weil unter der Brücke ein Brückenbauplatz sein muss. (Dasselbe Problem haben auch Dorfzentren und Minen)
daniBIGdani
|
#157 28.02.2018 23:02 Beiträge: 153 |
Ja, XD_NeutralBridge1 hat gefehlt.
Mit
SetEntityName(Logic.CreateEntity( Entities.XD_NeutralBridge1, GetPosition("pos_bridge").X, GetPosition("pos_bridge").Y, 0, 1),"br1") Logic.CreateConstructionSite(GetPosition("pos_bridge").X, GetPosition("pos_bridge").Y, 0, Entities.PB_Bridge1, 1)
bauen die Leibeigene eine Brücke.
Aber der Neutrale Brückenbauplatz bleibt nach dem Bau stehen. Mit DestroyEntity passiert nichts. Sehr seltsam... Nur mit SCV.SetVisible("br1",0) wird der Neutrale Brückenbauplatz unsichtbar. Problem bleibt aber, dass Architekten daraus trotzdem eine XD_Bridge1 machen und so wird der Neutrale Brückenbauplatz wieder sichtbar, da neue ID vergeben wird...
mcb
|
#158 01.03.2018 00:28 Beiträge: 1472 |
Da hast du 2 Möglichkeiten:
1) Warten bis die Architekten fertig sind bevor du die Brücke baust.
2) Gleich eine XD_Bridge setzen.
daniBIGdani
|
#159 01.03.2018 12:29 Beiträge: 153 |
Gelöst jetzt mit deinem zweiten Vorschlag + ein Bauverbot für den Brückenbereich.
MfG daniBIGdani