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

SiteEngine v1.5.0 by nevermind, ©2005-2007
Design by SpiderFive (www.siedler-games.de) - English translation by juja

Impressum