Prüfen, ob Tavern gebaut wurde
» Siedler Map Source Forum » Siedler DEdK Script Forum » Prüfen, ob Tavern gebaut wurde
Seiten: 1
wilma456
|
#1 08.08.2018 15:40 Beiträge: 460 |
Prüfen, ob Taverne gebaut wurde
Ich will prüfen, ob eine Taverne gebaut wurde. Bisher verwende ich
if Logic.GetPlayerEntitiesInArea(1,Entities.PB_Tavern1,tapos.X,tapos.Y,1000,1) > 0 then
Allerdings wird das schon ausgelöst, sobald der Bauplatz erschient. Kennt jemand eine passende Funktion, die prüft, wenn die Taverne fertig ist?
____________________
Schlacht um Crawford
Wilmasmod
Dieser Beitrag wurde von wilma456 am 10.08.2018 um 14:54 editiert.
mcb
|
#2 08.08.2018 16:05 Beiträge: 1472 |
Hiermit kannst du prüfen, ob ein Gebäude fertig gebaut ist:
Logic.IsConstructionComplete(_buildingId)==1
wilma456
|
#3 10.08.2018 13:50 Beiträge: 460 |
Wie bekomme ich anhand der Koordinaten die BuildingID?
____________________
Schlacht um Crawford
Wilmasmod
mcb
|
#4 10.08.2018 15:25 Beiträge: 1472 |
Z.B. mit Logic.GetPlayerEntitiesInArea(_playerId, _entityType, _posX, _posY, _range, _amount) , gibt zuerst die Anzahl und dann nacheinander bis zu 16 ids zurück.
local ids = {Logic.GetPlayerEntitiesInArea(_playerId, _entityType, _posX, _posY, _range, _amount)} table.remove(ids, 1) for _, id in ipairs(ids) do -- stuff end
Wenn dir die 16 ids nicht reichen hilft nur der Hook:
for id in S5Hook.EntityIterator(Predicate.OfPlayer(player), Predicate.OfType(type), Predicate.InCircle(x, y, range)) do - stuff end
Peter-FS
|
#5 11.08.2018 08:48 Beiträge: 1086 |
Bauquest
Dafür gibt es fertige Funktionen und man muss sich nicht darum kümmern, ob das Gebäuede fertig gebaut ist.
function CheckTaverne() local Bauquest = { EntityTypes = {{Entities.PB_Tavern1,1},}, -- AreaPos = "powerplant_pos", -- Player = 4, AreaSize = 5000, Any = nil, Callback = function() --hier was dann passieren soll end, }; SetupEstablish( Bauquest ) end ----------------------------------------------------------------------------------------------------------- -- Setup establish: Player has to build different buildings in an optional area, no area whole map is used -- -- Player = checking this player...optional -- AreaPos = base must be established near this position...optional -- AreaSize = in this range -- EntityTypes = table with entities, Element(Type and Amount) -- Any = any building is placed -- Callback = Call this function after establish quest done -----------------------------------------------------------------------------------------------------------
____________________
Man muss nicht alles wissen, man muss nur wissen wo es steht!
wilma456
|
#6 13.08.2018 21:01 Beiträge: 460 |
Hat mit den Code von Peter-FS wunderbar funktioniert. Danke!
____________________
Schlacht um Crawford
Wilmasmod
Seiten: 1