Prüfen, ob Tavern gebaut wurde

» Settlers Map Source Forums » Siedler DEdK Script Forum » Prüfen, ob Tavern gebaut wurde

Pages: 1

wilma456
#1
08-08-2018 15:40
Posts: 457

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

This posting has been edited by wilma456: 10-08-2018 at 14:54.

mcb
#2
08-08-2018 16:05
Posts: 1334

Hiermit kannst du prüfen, ob ein Gebäude fertig gebaut ist:

Logic.IsConstructionComplete(_buildingId)==1

wilma456
#3
10-08-2018 13:50
Posts: 457

Wie bekomme ich anhand der Koordinaten die BuildingID?

____________________
Schlacht um Crawford

Wilmasmod

mcb
#4
10-08-2018 15:25
Posts: 1334

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
Posts: 1062

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
Posts: 457

Hat mit den Code von Peter-FS wunderbar funktioniert. Danke!

____________________
Schlacht um Crawford

Wilmasmod

Pages: 1

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

Impressum