Fragen ob man gebaut hat
» Siedler Map Source Forum » Siedler DEdK Script Forum » Fragen ob man gebaut hat
Seiten: 1
Drake
|
#1 25.06.2010 09:44 Beiträge: 132 |
Fragen ob man gebaut hat
Hi ich bins nochmal ich möchte gerne abfragen ob man eine Hochschule und ne Kaserne gebaut hat geht sowas THX im vorraus
Flodder
|
#2 25.06.2010 12:50 Beiträge: 2608 |
Zitat von Drake:
Hi ich bins nochmal ich möchte gerne abfragen ob man eine Hochschule und ne Kaserne gebaut hat geht sowas THX im vorraus
hi drake,
ja, da gibt es mehrere möglichkeiten. die einfachste ist es, dies über einen job abzufragen. bevor ich die lösung einstelle, eine gegenfrage:
sollen diese beiden gebäude "gleichzeitig" abgefragt werden, oder nacheinander.
das bedeutet:
ist die aufgabenstellung von dir so gestaltet, dass "beide" aufgebaut sein müssen, oder erst das und DANN das gebäude?
____________________
Take a Nudelholz und hau it on the Kopp of a bekloppt Person .... to give you a better Gefühl than vorher.
Flodder
|
#3 25.06.2010 13:21 Beiträge: 2608 |
einfache lösung zur ersten möglichen aufgabenstellung:
gebäude werden nacheinander aufgebaut. erst die hochschule, dann die kaserne.
vorbereitung:
zunächst legst du mal im mittelpunkt der beiden gebäude jeweils eine skript-entity. dann gibst du ihnen jeweils einen eideutigen und einmaligen namen.
bspw.: posHSchule1" und "posKaserne1"
dann der Aufruf für die Hochschule:
SetupQuest_Build1()
die Abfragefunktion der hochschule:
function SetupQuest_Build1() local quest = { AreaPos = "posHSchule1", AreaSize = 5000, EntityTypes = { {Entities.PB_University1, 1}, }, Callback = Callback_QuestBuild1, }; SetupEstablish( quest ) end
Erfolgsmeldung mit "anschliessender" Abfrage kaserne gebaut:
function Callback_QuestBuild1( _Quest ) Message("Die Hochschule wurde an der richtigen Stelle gebaut. ".. "@cr Baut nun die Kaserne an der vorgegebenen Position.") SetupQuest_Build2() end
funktion für abfrage kaserne gebaut:
function SetupQuest_Build2() local quest = { AreaPos = "posKaserne1", AreaSize = 5000, EntityTypes = { {Entities.PB_Barracks1, 1}, }, Callback = Callback_QuestBuild2, }; SetupEstablish( quest ) end
die erfolgsmeldung, wenn kaserne gebaut:
function Callback_QuestBuild2( _Quest ) Message("Die Kaserne wurde an der richtigen Position gebaut") end
das wars schon.
bei einer parallelabfrage dann nur den Aufruf ändern in:
SetupQuest_Build1() SetupQuest_Build2()
weitere informationen kannst du der map "der 30 jährige krieg part2 " entnehmen. abschnitt: aufbau leibzig.
____________________
Take a Nudelholz und hau it on the Kopp of a bekloppt Person .... to give you a better Gefühl than vorher.
Dieser Beitrag wurde von Flodder am 25.06.2010 um 13:29 editiert.
totalwarANGEL
|
#4 25.06.2010 13:58 Beiträge: 2123 |
Wenn du beides zu gleich haben willst, dann so:
function SetupQuest_Build() local University = { AreaPos = "posHSchule1", AreaSize = 5000, EntityTypes = { {Entities.PB_University1, 1}, }, Callback = function( _Quest ) Message("Die Hochschule wurde an der richtigen Stelle gebaut.") end, }; SetupEstablish( University ) local Kaserne = { AreaPos = "posKaserne1", AreaSize = 5000, EntityTypes = { {Entities.PB_Barracks1, 1}, }, Callback = function( _Quest ) Message("Die Kaserne wurde an der richtigen Position gebaut") end, }; SetupEstablish( Kaserne ) end
Ist jetzt schnell dahin geschrieben und nicht auf eventuelle Syntax-Errors überprüft.
____________________
Die Welt ist arschlochförmig und wir leben in der Mitte.
Flodder
|
#5 25.06.2010 14:58 Beiträge: 2608 |
Zitat von totalwarANGEL:
Wenn du beides zu gleich haben willst, dann so:
function SetupQuest_Build() ....
nicht schlecht herr specht, aber doch sehr gefährlich lieber kollege.
SetupQuest_Build() ist ein eindeutig verdrahteter befehl. wenn er da nicht differenziert und irgendwann noch mal eine abfrage mit dem gleichen befehl startet, wird er sein blaues wunder erleben.
____________________
Take a Nudelholz und hau it on the Kopp of a bekloppt Person .... to give you a better Gefühl than vorher.
totalwarANGEL
|
#6 25.06.2010 15:04 Beiträge: 2123 |
Zitat von Flodder:
SetupQuest_Build() ist ein eindeutig verdrahteter befehl. wenn er da nicht differenziert und irgendwann noch mal eine abfrage mit dem gleichen befehl startet, wird er sein blaues wunder erleben.
Ich wollte dein Grundkonstruckt nicht zu sehr zerpflücken. Er kann es auch "BaumissionEins" nennen.
____________________
Die Welt ist arschlochförmig und wir leben in der Mitte.
Warkiller
|
#7 25.06.2010 17:11 Beiträge: 6 |
@Floddder: ich und Drake basteln ja zusammen an der Map und er hat gesagt das beide gleichzeitig abgefragt werden sollen
totalwarANGEL
|
#8 25.06.2010 18:06 Beiträge: 2123 |
Zitat von Warkiller:
@Floddder: ich und Drake basteln ja zusammen an der Map und er hat gesagt das beide gleichzeitig abgefragt werden sollen
Dann gehe mal ein paar Beiträge zurück zu meinem Beitrag. Da habt ihr die Antwort. Wenn etwas erst nach dem Bau beider Gebäude gemacht werden soll gibt es zwei Möglichkeiten:
1.
function SetupQuest_Build() HochschuleGebaut = false KaserneGebaut = false StartSimpleJob("CheckToBuildBuildings") local University = { AreaPos = "posHSchule1", AreaSize = 5000, EntityTypes = { {Entities.PB_University1, 1}, }, Callback = function( _Quest ) HochschuleGebaut = true end, }; SetupEstablish( University ) local Kaserne = { AreaPos = "posKaserne1", AreaSize = 5000, EntityTypes = { {Entities.PB_Barracks1, 1}, }, Callback = function( _Quest ) KaserneGebaut = true end, }; SetupEstablish( Kaserne ) end function CheckToBuildBuildings() if HochschuhleGebaut == true and KaserneGebaut == true then MachWas() -- Folgefunktion einfügen return true end end
Ihr fügt Variablen in meine Variante ein und fragt sie über einen SimpleJob ab.
2.
function SetupQuest_Build() local Buildings = { AreaPos = "posBuildings", AreaSize = 5000, EntityTypes = { {Entities.PB_University1, 1}, {Entities.PB_Barracks1, 1}, }, Callback = function( _Quest ) MachWas() -- Folgefunktion einfügen end, }; SetupEstablish( Buildings ) end
Oder wenn die Gebäude nahe bei einander stehen sollen, dann packt einfach alles in eine Funktion wie Oben.
Tippfehler vorbehalten.
____________________
Die Welt ist arschlochförmig und wir leben in der Mitte.
Drake
|
#9 25.06.2010 18:26 Beiträge: 132 |
Zitat von Warkiller:
@Floddder: ich und Drake basteln ja zusammen an der Map und er hat gesagt das beide gleichzeitig abgefragt werden sollen
Jop Genau richtig und danke für die Tollen vorschläge
Seiten: 1