Nichtspielergebaeude bauen?
» Siedler Map Source Forum » Mapping » Nichtspielergebaeude bauen?
Seiten: 1
Wladimir
|
#1 15.06.2009 17:38 Beiträge: 489 |
Nichtspielergebaeude bauen?
Hab mir Emzets 2. Map angesehen, wo der Spieler einen Turm gebaut bekommt. Wie kann ich das machen? Und wessen Funktion ist das?
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
Flodder
|
#2 15.06.2009 19:06 Beiträge: 2608 |
Zitat von Wladimir:
Hab mir Emzets 2. Map angesehen, wo der Spieler einen Turm gebaut bekommt. Wie kann ich das machen? Und wessen Funktion ist das?
Wladimir.
hi wladi,
das ist die "baufunktion". ursprüngliche ersteller der funktion, soweit ich mich erinnern kann :
jugar.
____________________
Take a Nudelholz und hau it on the Kopp of a bekloppt Person .... to give you a better Gefühl than vorher.
Wladimir
|
#3 15.06.2009 19:43 Beiträge: 489 |
jugar? Kann es sein, das sehr viele Funktionen vom Jugar-Team sind? Was brauche ich um das machen zu koennen? Ich will nämlich das zwar (noch) nicht in einer eigenen Map hier bringen, aber für mich selbst daheim wäre das ein Interressanter Code. Wie der Funktioniert, verstehe ich nicht.
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
Flodder
|
#4 15.06.2009 20:16 Beiträge: 2608 |
Zitat von Wladimir:
jugar? Kann es sein, das sehr viele Funktionen vom Jugar-Team sind?
Wladimir.
ja! die waren fit und fleissig.
____________________
Take a Nudelholz und hau it on the Kopp of a bekloppt Person .... to give you a better Gefühl than vorher.
xx1000
|
#5 15.06.2009 20:17 Beiträge: 143 |
waren
is leider der richtige ausdrug
xx1000
____________________
Die Kunst ist nichts Wahres ohne Aussicht auf Bares
Ich suche einen guten Scripter der für mich eine Funktion macht.
Bei Interesse mir bitte eine PN schreiben
MfG xx1000
Wladimir
|
#6 15.06.2009 20:33 Beiträge: 489 |
nein sind!! die haben doch noch so ne Seite, wo man die Maps von denen sich downloaden kann, oder net mehr??
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
xx1000
|
#7 15.06.2009 20:41 Beiträge: 143 |
Also hier wurden alle maps gelöscht
xx1000
____________________
Die Kunst ist nichts Wahres ohne Aussicht auf Bares
Ich suche einen guten Scripter der für mich eine Funktion macht.
Bei Interesse mir bitte eine PN schreiben
MfG xx1000
Wladimir
|
#8 15.06.2009 20:42 Beiträge: 489 |
solange ich irgentwo an diese Maps komme ist das für mich nicht so schlimm, aber trotzdem schade.
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
Siedler_Team
|
#9 15.06.2009 22:15 Beiträge: 847 |
Zitat von Wladimir:
solange ich irgentwo an diese Maps komme...
...wird dir das nicht viel nützen, denn es bleibt ja noch die für dich unüberwindliche hürde der "Skript-Sauklaue"
____________________
Wer altes Wissen ehrt und neues Wissen erlangt, ist bereit, ein Lehrer zu sein. ( -Konfuzius- )
Wladimir
|
#10 16.06.2009 09:46 Beiträge: 489 |
ne, ich meinte vom Spielen her, kann man sie noch immer haben.
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
jugar
|
#11 16.06.2009 12:29 Beiträge: 141 |
Zitat von Wladimir:
ne, ich meinte vom Spielen her, kann man sie noch immer haben.
Wladimir.
Eindeutig NEIN !
Wegen Ungleichbehandlung im Kommentarbereich wird keine Map mehr vom Jugar-Team auf die Map-Base hochgeladen.
( Einem Mitglied des Jugar-Teams wurde wegen Kritik an anderen Maps der Zugriff auf die Map-Base seitens der Administration gesperrt )
Nach Ansicht des Jugar-Teams ging es nicht um Maps/Skripten, sondern war dies eine persönliche Entscheidung der Administration. Daraufhin wurden alle Maps des Jugar Teams gelöscht.
Weitere Begründung:
Skript-Sau klaue
Skript-Klau
Dieser Beitrag wurde von jugar am 16.06.2009 um 12:38 editiert.
totalwarANGEL
|
#12 16.06.2009 18:31 Beiträge: 2123 |
Skript sau klaue?
Was ist den das?
____________________
Die Welt ist arschlochförmig und wir leben in der Mitte.
fritz_98
|
#13 17.06.2009 19:51 Beiträge: 472 |
back2topic:
Ich denke, Wladimir sucht immer noch nach einer Lösung für sein Bauproblem. "StarteBau" heisst die Funktion von jugar. Jugar hat übrigens keine "Sauklaue", sondern ein bestimmtes Programm zu vesrchlüsseln. Es ist immer noch funktionsfähig, aber schwer zu lesen und noch schwerer zu kopieren (wenn man nicht die ganzen Variablen durchsuchen will).
Hab nun auch eine "kleine" Baufunktion geschrieben. Leider hab ich es nicht hinbekommen, das Gebäude per SetTerrainNodeHeight() anzuheben. Man sieht nur das Baugerüst und ein paar Leibis, die daran rumhämmern, bis das Gebäude erscheint. Also ganz einfach gemacht...
function StarteBauFritz(_entity,_type,_pos1,_length,_player) _pos = GetPosition(_pos1) local Type = _type if Type == "PB_Alchemist1" or Type == "PB_Alchemist2" or Type == "PB_Bickworks1" or Type == "PB_Bickworks2" or Type == "PB_StoneMason1" or Type == "PB_StoneMason2" or Type == "CB_Mercenary" then Logic.CreateEntity(Entities.ZB_UpgradeSiteStonemason1,_pos.X,_pos.Y,0,0) Logic.CreateEntity(Entities.PU_Serf,_pos.X+500,_pos.Y+600,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X+500,_pos.Y-600,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-500,_pos.Y-600,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-500,_pos.Y+600,0,_player) end if Type == "PB_Archery1" or Type == "PB_Archery2" or Type == "PB_Stable1" or Type == "PB_Stable2" or Type == "PB_Foundry1" or Type == "PB_Foundry2" or Type == "PB_Headquarters1" or Type == "PB_Headquarters2" or Type == "PB_Headquarters3" or Type == "PB_Market1" or Type == "PB_Market2" or Type == "PB_Tavern1" or Type == "PB_Tavern2" or Type == "PB_University1" or Type == "PB_University2" or Type == "CB_Castle1" or Type == "CB_Castle2" or Type == "CB_CrawfordCastle" or Type == "CB_MonasteryBuildingSite1" or Type == "CB_BarmeciaCastle" or Type == "CB_CleycourtCastle" or Type == "CB_DarkCastle" or Type == "CB_FolklungCastle" or Type == "CB_KaloixCastle" then Logic.CreateEntity(Entities.ZB_UpgradeSite3,_pos.X,_pos.Y,0,0) Logic.CreateEntity(Entities.PU_Serf,_pos.X+800,_pos.Y+800,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X+800,_pos.Y-800,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-800,_pos.Y-800,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-800,_pos.Y+800,0,_player) end if Type == "PB_Bank1" or Type == "PB_Bank2" or Type == "PB_GunsmithWorkshop1" or Type == "PB_GunsmithWorkshop2" or Type == "PB_MasterBuilderWorkshop" or Type == "CB_InventorsHut1" then Logic.CreateEntity(Entities.ZB_UpgradeSite2,_pos.X,_pos.Y,0,0) Logic.CreateEntity(Entities.PU_Serf,_pos.X+600,_pos.Y+600,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X+600,_pos.Y-600,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-600,_pos.Y-600,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-600,_pos.Y+600,0,_player) end if Type == "PB_Barracks1" or Type == "PB_Barracks2" or Type == "CB_Abbey01" then Logic.CreateEntity(Entities.ZB_UpgradeSiteBarracks1,_pos.X,_pos.Y,0,0) Logic.CreateEntity(Entities.PU_Serf,_pos.X+600,_pos.Y+600,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X+600,_pos.Y-600,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-600,_pos.Y-600,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-600,_pos.Y+600,0,_player) end if Type == "PB_Beautification01" or Type == "PB_Beautification02" or Type == "PB_Beautification03" or Type == "PB_Beautification04" or Type == "PB_Beautification05" or Type == "PB_Beautification06" or Type == "PB_Beautification07" or Type == "PB_Beautification08" or Type == "PB_Beautification09" or Type == "PB_Beautification10" or Type == "PB_Beautification11" or Type == "PB_Beautification12" or Type == "PB_DarkTower1" or Type == "PB_DarkTower2" or Type == "PB_DarkTower3" or Type == "PB_Tower1" or Type == "PB_Tower2" or Type == "PB_Tower3" or Type == "PB_PowerPlant1" or Type == "PB_WeatherTower1" or Type == "CB_Abbey02" or Type == "CB_Abbey03" or Type == "CB_Abbey04" or Type == "CB_Camp04" or Type == "CB_Camp05" or Type == "CB_Camp06" or Type == "CB_Camp07" or Type == "CB_Camp12" or Type == "CB_Camp13" or Type == "CB_Camp14" or Type == "CB_Camp15" or Type == "CB_Camp16" or Type == "CB_Camp18" or Type == "CB_Camp19" or Type == "CB_Camp20" or Type == "CB_Camp21" or Type == "CB_Camp23" or Type == "CB_Camp24" or Type == "CB_DestroyAbleRuinSmallTower1" or Type == "CB_DestroyAbleRuinSmallTower3" or Type == "CB_Evil_Tower1" or Type == "CB_SteamMashine" then Logic.CreateEntity(Entities.ZB_UpgradeSiteTower1,_pos.X,_pos.Y,0,0) Logic.CreateEntity(Entities.PU_Serf,_pos.X+200,_pos.Y+200,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X+200,_pos.Y-200,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-200,_pos.Y-200,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-200,_pos.Y+200,0,_player) end if Type == "PB_Blacksmith1" or Type == "PB_Blacksmith2" or Type == "PB_Blacksmith3" or Type == "CB_Camp01" or Type == "CB_Camp02" or Type == "CB_Camp03" or Type == "CB_Camp08" or Type == "CB_Camp09" or Type == "CB_Camp10" or Type == "CB_Camp11" or Type == "CB_Camp17" or Type == "CB_Camp22" or Type == "CB_DestroyAbleRuinHouse1" or Type == "CB_HermitHut1" or Type == "CB_Lighthouse" or Type == "CB_LighthouseActivated" or Type == "CB_MinerCamp1" or Type == "CB_MinerCamp2" or Type == "CB_MinerCamp3" or Type == "CB_MinerCamp4" or Type == "CB_MinerCamp5" or Type == "CB_MinerCamp6" or Type == "CB_RobberyTower1" or Type == "CB_Bastille1" then Logic.CreateEntity(Entities.ZB_UpgradeSiteBlacksmith1,_pos.X,_pos.Y,0,0) Logic.CreateEntity(Entities.PU_Serf,_pos.X+400,_pos.Y+400,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X+400,_pos.Y-400,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-400,_pos.Y-400,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-400,_pos.Y+400,0,_player) end if Type == "PB_Farm1" or Type == "PB_Farm2" or Type == "PB_Farm3" or Type == "PB_Residence1" or Type == "PB_Residence2" or Type == "PB_Residence3" then Logic.CreateEntity(Entities.ZB_UpgradeSiteFarm1,_pos.X,_pos.Y,0,0) Logic.CreateEntity(Entities.PU_Serf,_pos.X+400,_pos.Y+400,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X+400,_pos.Y-400,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-400,_pos.Y-400,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-400,_pos.Y+400,0,_player) end if Type == "PB_Monastery1" or Type == "PB_Monastery2" or Type == "PB_Monastery3" or Type == "CB_DestroyAbleRuinMonastery1" or Type == "CB_OldKingsCastle" or Type == "CB_OldKingsCastleRuin" then Logic.CreateEntity(Entities.ZB_UpgradeSiteMonastery1,_pos.X,_pos.Y,0,0) Logic.CreateEntity(Entities.PU_Serf,_pos.X+800,_pos.Y+700,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X+800,_pos.Y-700,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-800,_pos.Y-700,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-800,_pos.Y+700,0,_player) end meinBauFritzTable = {} meinBauFritzTable.type = _entity meinBauFritzTable.pos = _pos meinBauFritzTable.pos1 = _pos1 meinBauFritzTable.length = _length meinBauFritzTable.player = _player meinBauFritzTable.serfs,meinBauFritzTableSerf1,meinBauFritzTableSerf2,meinBauFritzTableSerf3,meinBauFritzTableSerf4 = Logic.GetPlayerEntitiesInArea(_player ,Entities.PU_Serf, _pos.X, _pos.Y, 3000, 4) StartSimpleJob("AufbauFritz") end function AufbauFritz() if Counter.Tick2("counterOfTheFritzBau1",meinBauFritzTable.length) then Logic.CreateEntity(meinBauFritzTable.type,meinBauFritzTable.pos.X,meinBauFritzTable.pos.Y,0,meinBauFritzTable.player) SetHealth(meinBauFritzTableSerf1,0) SetHealth(meinBauFritzTableSerf2,0) SetHealth(meinBauFritzTableSerf3,0) SetHealth(meinBauFritzTableSerf4,0) return true end Logic.SetTaskList(meinBauFritzTableSerf1,TaskLists.TL_SERF_BUILD) Logic.SetTaskList(meinBauFritzTableSerf2,TaskLists.TL_SERF_BUILD) Logic.SetTaskList(meinBauFritzTableSerf3,TaskLists.TL_SERF_BUILD) Logic.SetTaskList(meinBauFritzTableSerf4,TaskLists.TL_SERF_BUILD) LookAt(meinBauFritzTableSerf1,meinBauFritzTable.pos1) LookAt(meinBauFritzTableSerf2,meinBauFritzTable.pos1) LookAt(meinBauFritzTableSerf3,meinBauFritzTable.pos1) LookAt(meinBauFritzTableSerf4,meinBauFritzTable.pos1) if Counter.Tick2("counterOfTheFritzBau2",3) then local poses1 = GetPosition(meinBauFritzTableSerf1) local poses2 = GetPosition(meinBauFritzTableSerf2) local poses3 = GetPosition(meinBauFritzTableSerf3) local poses4 = GetPosition(meinBauFritzTableSerf4) Logic.CreateEffect(5,poses1.X,poses1.Y,1) Logic.CreateEffect(6,poses1.X,poses1.Y,1) Logic.CreateEffect(7,poses1.X,poses1.Y,1) Logic.CreateEffect(5,poses2.X,poses2.Y,1) Logic.CreateEffect(6,poses2.X,poses2.Y,1) Logic.CreateEffect(7,poses2.X,poses2.Y,1) Logic.CreateEffect(5,poses3.X,poses3.Y,1) Logic.CreateEffect(6,poses3.X,poses3.Y,1) Logic.CreateEffect(7,poses3.X,poses3.Y,1) Logic.CreateEffect(5,poses4.X,poses4.Y,1) Logic.CreateEffect(6,poses4.X,poses4.Y,1) Logic.CreateEffect(7,poses4.X,poses4.Y,1) end end
Müsste mit allen Gebäuden funktionieren, die im Namen ein PB_ oder ein CB_ enthalten. Dorfzentrum geht also nicht (kann sich aber jeder noch selbst einbauen). Sollten noch Entities fehlen, dann bitte sagen!
Verwendung:
_entity: ist die Entity
_type: ist fast das Gleiche, nur ein String und ohne ein Entities. davor.
_pos1: ist die Position
_length: Wie lange soll der Bau dauern?
_player: Wem gehört das Gebäude?
Anwendungsbeispiel:
StarteBauFritz(Entities.CB_Bastille1,"CB_Bastille1","pos",20,4)
Einfach mal ausprobieren. Es muss nur eine ScriptEntity mit dem Namen "pos" auf der Map platziert sein.
Aufgrund der Länge wäre es mir lieb, vor der Verwendung zu fragen oder mich in der Mapbeschreibung nur kurz mit einem Wort zu erwähnen... (Bitte kein Aufsatz!; nur gaanz kurz)
LG
Fritz
aCid
|
#14 18.06.2009 14:59 Beiträge: 275 |
was passiert mit den srfs nach dem bau bzw. wo kommen die serfs her?
ansosnten hiermit gefragt für eventuelllen späteren bedarf.
____________________
Das ist und bleibt ein Spiel! - Wir sind hier nicht vor Gericht.
----------------------------------------------------------------------
Mapperhilfen für S5:
http://www.siedler-maps.de/forum/Siedler-DEdK-Script-Forum-27/index.htm
http://www.siedler-maps.de/for...und-andere-Ressourcen-8688.htm
http://www.siedler-maps.de/for...unktionen-Skripte-etc-8706.htm
fritz_98
|
#15 18.06.2009 15:56 Beiträge: 472 |
-------------
>>was passiert mit den srfs nach dem bau bzw. wo kommen die serfs her?
-------------
Sie entstehen an Ort und Stelle und wenn das Gebäude fertig ist, sind sie genauso schnell verschwunden wie sie gekommen sind.
-------------
>>ansosnten hiermit gefragt für eventuelllen späteren bedarf.
-------------
Gut, bitteschön .
Fritz
PS: Ich arbeite gerade an einem Update, das eine Callback-Funktion zulässt und auch den Bau anschaulicher werden lässt (AOE II-Style )
Die_Helden
|
#16 18.06.2009 16:34 Beiträge: 2 |
Danksagung
Da Wladimirs Account hier gesperrt ist, hier übers Team eine Danksagung an fritz:
Danke für diesen tollen Code, aber werde ihn soschnell nicht verwenden koennen, da ich hier ja nicht reinkomme. Falls ich irgentwann wieder hier rein kann, werde ich den Code nutzen und deinen Namen in der Mapbeschreibung nicht auslassen Weiet so!
Wladimir.
fritz_98
|
#17 18.06.2009 17:05 Beiträge: 472 |
Hab den Code nun überarbeitet und hier ist Version 1.2.1!
function StarteBauFritz(_entity,_type,_pos1,_length,_player,_callback) _pos = GetPosition(_pos1) local zuKlein = false local Type = _type if Type == "PB_Alchemist1" or Type == "PB_Alchemist2" or Type == "PB_Bickworks1" or Type == "PB_Bickworks2" or Type == "PB_StoneMason1" or Type == "PB_StoneMason2" or Type == "CB_Mercenary" then Logic.CreateEntity(Entities.ZB_UpgradeSiteStonemason1,_pos.X,_pos.Y,0,0) Logic.CreateEntity(Entities.PU_Serf,_pos.X+500,_pos.Y+600,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X+500,_pos.Y-600,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-500,_pos.Y-600,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-500,_pos.Y+600,0,_player) end if Type == "PB_Archery1" or Type == "PB_Archery2" or Type == "PB_Stable1" or Type == "PB_Stable2" or Type == "PB_Foundry1" or Type == "PB_Foundry2" or Type == "PB_Headquarters1" or Type == "PB_Headquarters2" or Type == "PB_Headquarters3" or Type == "PB_Market1" or Type == "PB_Market2" or Type == "PB_Tavern1" or Type == "PB_Tavern2" or Type == "PB_University1" or Type == "PB_University2" or Type == "CB_Castle1" or Type == "CB_Castle2" or Type == "CB_CrawfordCastle" or Type == "CB_MonasteryBuildingSite1" or Type == "CB_BarmeciaCastle" or Type == "CB_CleycourtCastle" or Type == "CB_DarkCastle" or Type == "CB_FolklungCastle" or Type == "CB_KaloixCastle" then Logic.CreateEntity(Entities.ZB_UpgradeSite3,_pos.X,_pos.Y,0,0) Logic.CreateEntity(Entities.PU_Serf,_pos.X+800,_pos.Y+800,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X+800,_pos.Y-800,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-800,_pos.Y-800,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-800,_pos.Y+800,0,_player) end if Type == "PB_Bank1" or Type == "PB_Bank2" or Type == "PB_GunsmithWorkshop1" or Type == "PB_GunsmithWorkshop2" or Type == "PB_MasterBuilderWorkshop" or Type == "CB_InventorsHut1" then Logic.CreateEntity(Entities.ZB_UpgradeSite2,_pos.X,_pos.Y,0,0) Logic.CreateEntity(Entities.PU_Serf,_pos.X+600,_pos.Y+600,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X+600,_pos.Y-600,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-600,_pos.Y-600,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-600,_pos.Y+600,0,_player) end if Type == "PB_Barracks1" or Type == "PB_Barracks2" or Type == "CB_Abbey01" then Logic.CreateEntity(Entities.ZB_UpgradeSiteBarracks1,_pos.X,_pos.Y,0,0) Logic.CreateEntity(Entities.PU_Serf,_pos.X+600,_pos.Y+600,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X+600,_pos.Y-600,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-600,_pos.Y-600,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-600,_pos.Y+600,0,_player) end if Type == "PB_Beautification01" or Type == "PB_Beautification02" or Type == "PB_Beautification03" or Type == "PB_Beautification04" or Type == "PB_Beautification05" or Type == "PB_Beautification06" or Type == "PB_Beautification07" or Type == "PB_Beautification08" or Type == "PB_Beautification09" or Type == "PB_Beautification10" or Type == "PB_Beautification11" or Type == "PB_Beautification12" or Type == "PB_DarkTower1" or Type == "PB_DarkTower2" or Type == "PB_DarkTower3" or Type == "PB_Tower1" or Type == "PB_Tower2" or Type == "PB_Tower3" or Type == "PB_PowerPlant1" or Type == "PB_WeatherTower1" or Type == "CB_Abbey02" or Type == "CB_Abbey03" or Type == "CB_Abbey04" or Type == "CB_Camp04" or Type == "CB_Camp05" or Type == "CB_Camp06" or Type == "CB_Camp07" or Type == "CB_Camp12" or Type == "CB_Camp13" or Type == "CB_Camp14" or Type == "CB_Camp15" or Type == "CB_Camp16" or Type == "CB_Camp18" or Type == "CB_Camp19" or Type == "CB_Camp20" or Type == "CB_Camp21" or Type == "CB_Camp23" or Type == "CB_Camp24" or Type == "CB_DestroyAbleRuinSmallTower1" or Type == "CB_DestroyAbleRuinSmallTower3" or Type == "CB_Evil_Tower1" or Type == "CB_SteamMashine" then Logic.CreateEntity(Entities.ZB_UpgradeSiteTower1,_pos.X,_pos.Y,0,0) Logic.CreateEntity(Entities.PU_Serf,_pos.X+200,_pos.Y+200,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X+200,_pos.Y-200,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-200,_pos.Y-200,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-200,_pos.Y+200,0,_player) zuKlein = true end if Type == "PB_Blacksmith1" or Type == "PB_Blacksmith2" or Type == "PB_Blacksmith3" or Type == "CB_Camp01" or Type == "CB_Camp02" or Type == "CB_Camp03" or Type == "CB_Camp08" or Type == "CB_Camp09" or Type == "CB_Camp10" or Type == "CB_Camp11" or Type == "CB_Camp17" or Type == "CB_Camp22" or Type == "CB_DestroyAbleRuinHouse1" or Type == "CB_HermitHut1" or Type == "CB_Lighthouse" or Type == "CB_LighthouseActivated" or Type == "CB_MinerCamp1" or Type == "CB_MinerCamp2" or Type == "CB_MinerCamp3" or Type == "CB_MinerCamp4" or Type == "CB_MinerCamp5" or Type == "CB_MinerCamp6" or Type == "CB_RobberyTower1" or Type == "CB_Bastille1" then Logic.CreateEntity(Entities.ZB_UpgradeSiteBlacksmith1,_pos.X,_pos.Y,0,0) Logic.CreateEntity(Entities.PU_Serf,_pos.X+400,_pos.Y+400,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X+400,_pos.Y-400,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-400,_pos.Y-400,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-400,_pos.Y+400,0,_player) zuKlein = true end if Type == "PB_Farm1" or Type == "PB_Farm2" or Type == "PB_Farm3" or Type == "PB_Residence1" or Type == "PB_Residence2" or Type == "PB_Residence3" then Logic.CreateEntity(Entities.ZB_UpgradeSiteFarm1,_pos.X,_pos.Y,0,0) Logic.CreateEntity(Entities.PU_Serf,_pos.X+400,_pos.Y+400,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X+400,_pos.Y-400,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-400,_pos.Y-400,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-400,_pos.Y+400,0,_player) zuKlein = true end if Type == "PB_Monastery1" or Type == "PB_Monastery2" or Type == "PB_Monastery3" or Type == "CB_DestroyAbleRuinMonastery1" or Type == "CB_OldKingsCastle" or Type == "CB_OldKingsCastleRuin" then Logic.CreateEntity(Entities.ZB_UpgradeSiteMonastery1,_pos.X,_pos.Y,0,0) Logic.CreateEntity(Entities.PU_Serf,_pos.X+800,_pos.Y+700,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X+800,_pos.Y-700,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-800,_pos.Y-700,0,_player) Logic.CreateEntity(Entities.PU_Serf,_pos.X-800,_pos.Y+700,0,_player) end meinBauFritzTable = {} meinBauFritzTable.type = _entity meinBauFritzTable.pos = _pos meinBauFritzTable.pos1 = _pos1 meinBauFritzTable.length = _length meinBauFritzTable.player = _player meinBauFritzTable.callback = _callback meinBauFritzTable.zuKlein = zuKlein meinBauFritzTable.serfs,meinBauFritzTableSerf1,meinBauFritzTableSerf2,meinBauFritzTableSerf3,meinBauFritzTableSerf4 = Logic.GetPlayerEntitiesInArea(_player ,Entities.PU_Serf, _pos.X, _pos.Y, 3500, 4) StartSimpleJob("AufbauFritz") StartSimpleJob("AufbauFritzEntities") end function AufbauFritzEntities() if not meinBauFritzTable.zuKlein == true then --Kisten if Counter.Tick2("counterOfTheFritzBauKisten1",meinBauFritzTable.length/2.5) then SetEntityName(Logic.CreateEntity(Entities.XD_MiscBox1,meinBauFritzTable.pos.X+300,meinBauFritzTable.pos.Y-100,56,0),"bauFritzBox1") SetEntityName(Logic.CreateEntity(Entities.XD_MiscBox2,meinBauFritzTable.pos.X+100,meinBauFritzTable.pos.Y+190,198,0),"bauFritzBox2") SetEntityName(Logic.CreateEntity(Entities.XD_MiscBox1,meinBauFritzTable.pos.X-240,meinBauFritzTable.pos.Y-340,213,0),"bauFritzBox3") SetEntityName(Logic.CreateEntity(Entities.XD_MiscBox2,meinBauFritzTable.pos.X-170,meinBauFritzTable.pos.Y+120,90,0),"bauFritzBox4") end --Fässer if Counter.Tick2("counterOfTheFritzBauKisten2",meinBauFritzTable.length/1.5) then SetEntityName(Logic.CreateEntity(Entities.XD_MiscBarrel1,meinBauFritzTable.pos.X+210,meinBauFritzTable.pos.Y-280,84,0),"bauFritzBox5") SetEntityName(Logic.CreateEntity(Entities.XD_MiscBarrel2,meinBauFritzTable.pos.X-480,meinBauFritzTable.pos.Y-410,290,0),"bauFritzBox6") SetEntityName(Logic.CreateEntity(Entities.XD_MiscBarrel1,meinBauFritzTable.pos.X+120,meinBauFritzTable.pos.Y+240,333,0),"bauFritzBox7") SetEntityName(Logic.CreateEntity(Entities.XD_MiscBarrel2,meinBauFritzTable.pos.X-350,meinBauFritzTable.pos.Y+370,145,0),"bauFritzBox8") end --Heuballen if Counter.Tick2("counterOfTheFritzBauKisten3",meinBauFritzTable.length/1.5) then SetEntityName(Logic.CreateEntity(Entities.XD_MiscHaybale2,meinBauFritzTable.pos.X+130,meinBauFritzTable.pos.Y-280,324,0),"bauFritzBox9") SetEntityName(Logic.CreateEntity(Entities.XD_MiscHaybale3,meinBauFritzTable.pos.X+260,meinBauFritzTable.pos.Y+310,54,0),"bauFritzBox10") SetEntityName(Logic.CreateEntity(Entities.XD_MiscHaybale2,meinBauFritzTable.pos.X-180,meinBauFritzTable.pos.Y+340,121,0),"bauFritzBox11") SetEntityName(Logic.CreateEntity(Entities.XD_MiscHaybale3,meinBauFritzTable.pos.X-290,meinBauFritzTable.pos.Y-170,48,0),"bauFritzBox12") Counter.Reset( "counterOfTheFritzBauKisten1" ) Counter.Reset( "counterOfTheFritzBauKisten2" ) Counter.Reset( "counterOfTheFritzBauKisten3" ) Counter.Reset( "counterOfTheFritzBauKisten4" ) return true end --So... restliches Zeugs if Counter.Tick2("counterOfTheFritzBauKisten4",meinBauFritzTable.length/2) then SetEntityName(Logic.CreateEntity(Entities.XD_MiscPile1,meinBauFritzTable.pos.X+100,meinBauFritzTable.pos.Y-200,0,0),"bauFritzBox13") SetEntityName(Logic.CreateEntity(Entities.XD_MiscPile1,meinBauFritzTable.pos.X+200,meinBauFritzTable.pos.Y+300,90,0),"bauFritzBox14") SetEntityName(Logic.CreateEntity(Entities.XD_MiscPile1,meinBauFritzTable.pos.X-100,meinBauFritzTable.pos.Y+300,45,0),"bauFritzBox15") SetEntityName(Logic.CreateEntity(Entities.XD_MiscPile1,meinBauFritzTable.pos.X-200,meinBauFritzTable.pos.Y-100,115,0),"bauFritzBox16") end end end function AufbauFritz() if Counter.Tick2("counterOfTheFritzBau1",meinBauFritzTable.length) then for i = 1,4 do DestroyEntity("bauFritzBox1") DestroyEntity("bauFritzBox2") DestroyEntity("bauFritzBox3") DestroyEntity("bauFritzBox4") DestroyEntity("bauFritzBox5") DestroyEntity("bauFritzBox6") DestroyEntity("bauFritzBox7") DestroyEntity("bauFritzBox8") DestroyEntity("bauFritzBox9") DestroyEntity("bauFritzBox10") DestroyEntity("bauFritzBox11") DestroyEntity("bauFritzBox12") DestroyEntity("bauFritzBox13") DestroyEntity("bauFritzBox14") DestroyEntity("bauFritzBox15") DestroyEntity("bauFritzBox16") end SetHealth(meinBauFritzTableSerf1,0) SetHealth(meinBauFritzTableSerf2,0) SetHealth(meinBauFritzTableSerf3,0) SetHealth(meinBauFritzTableSerf4,0) Sound.PlayGUISound(Sounds.VoicesSerf_SERF_WorkIsDone_rnd_01) Logic.CreateEntity(meinBauFritzTable.type,meinBauFritzTable.pos.X,meinBauFritzTable.pos.Y,0,meinBauFritzTable.player) meinBauFritzTable.callback() return true end Logic.SetTaskList(meinBauFritzTableSerf1,TaskLists.TL_SERF_BUILD) Logic.SetTaskList(meinBauFritzTableSerf2,TaskLists.TL_SERF_BUILD) Logic.SetTaskList(meinBauFritzTableSerf3,TaskLists.TL_SERF_BUILD) Logic.SetTaskList(meinBauFritzTableSerf4,TaskLists.TL_SERF_BUILD) LookAt(meinBauFritzTableSerf1,meinBauFritzTable.pos1) LookAt(meinBauFritzTableSerf2,meinBauFritzTable.pos1) LookAt(meinBauFritzTableSerf3,meinBauFritzTable.pos1) LookAt(meinBauFritzTableSerf4,meinBauFritzTable.pos1) if Counter.Tick2("counterOfTheFritzBau2",3) then local poses1 = GetPosition(meinBauFritzTableSerf1) local poses2 = GetPosition(meinBauFritzTableSerf2) local poses3 = GetPosition(meinBauFritzTableSerf3) local poses4 = GetPosition(meinBauFritzTableSerf4) Logic.CreateEffect(5,poses1.X,poses1.Y,1) Logic.CreateEffect(6,poses1.X,poses1.Y,1) Logic.CreateEffect(7,poses1.X,poses1.Y,1) Logic.CreateEffect(5,poses2.X,poses2.Y,1) Logic.CreateEffect(6,poses2.X,poses2.Y,1) Logic.CreateEffect(7,poses2.X,poses2.Y,1) Logic.CreateEffect(5,poses3.X,poses3.Y,1) Logic.CreateEffect(6,poses3.X,poses3.Y,1) Logic.CreateEffect(7,poses3.X,poses3.Y,1) Logic.CreateEffect(5,poses4.X,poses4.Y,1) Logic.CreateEffect(6,poses4.X,poses4.Y,1) Logic.CreateEffect(7,poses4.X,poses4.Y,1) end end
Hat sich eingentlich nichts am Aufruf geändert. Nun kann man aber Callback-Funktion auch noch aufrufen (bzw. sollte man! Wenn keine gewünscht, einfach eine "leere" Funktion aufrufen)
StarteBauFritz(Entities.PB_Monastery2,"PB_Monastery2","pos",20,4,End) function End() Message("Fertig! :)") end
Und dann halt noch ein paar "kosmetische" Veränderungen .
ACHTUNG! Update!
Grund: Aufgrund eines Bugs wurden einige Entities nach dem Bau nicht gelöscht. Nun behoben.
LG
Fritz
Dieser Beitrag wurde von fritz_98 am 19.06.2009 um 17:23 editiert.
Seiten: 1