Logic.GetPlayerAttractionLimit(_player)

Mit diesem Befehl kann man das Bevölkerungslimit eines Players ermitteln.

Kombiniert man sie mit der Funktion

Logic.GetPlayerAttractionUsage(_player)

in dieser Form

(math.floor(Logic.GetPlayerAttractionLimit(_player))-math.floor(Logic.GetPlayerAttractionUsage(_player)))

erhält man die exakte Anzahl der freien Plätze für die Bevölkerung von einem Spieler.

Will man vermeiden, dass der Spieler sich beim Kauf von Einheiten über NPC's das Bevölkerungslimit überschreitet, muss man nur abfragen, ob die Anzahl der Plätze, die beim Dorfzentrum durch den Kauf belegt werden, nicht größer sind als die Anzahl der Plätze im Dorfzentrum, die frei sind.

Beispiel:

function Kauf2Kannonen()
--Der Spieler kauft sich zwei Kanonen bei einem NPC
--Nun kommt die Abfrage
--Eine Kanone belegt 5 Bevölkerungseinheiten und der Spieler soll zwei Kanonen bekommen  
if GetGold(1)>1119 and (math.floor(Logic.GetPlayerAttractionLimit(1))-math.floor(Logic.GetPlayerAttractionUsage(1)))>9 then 
   Logic.CreateEntity(Entities.PV_Cannon3,44000,26000,0,1)
   Logic.CreateEntity(Entities.PV_Cannon3,44100,26000,0,1)
   AddGold(1,-1200)
  else
  Message("Kommt wieder wenn ihr genügend Ressourcen oder Platz im Dorfzentrum habt!")
 end
end