Also die Güter G_Sheep und G_Cow funktionieren nicht. Das sind nur Dummys, die dafür benötigt werden, dass Schafe und Kühe beim Händler angeboten werden können.
Als Ziel könnte man wohl etwas in diese Richtung einbauen (völlig ungetestet und nicht auf Syntaxfehler geprüft):
Code:
Goal_UnitsCount = {
Name = "Goal_UnitsCount",
Description = {
en = "Goal: Create a specified number of units",
de = "Ziel: Erstelle eine Anzahl Einheiten",
},
Parameter = {
{ ParameterType.PlayerID, en = "Player", de = "Spieler" },
{ ParameterType.Custom, en = "Relation", de = "Relation" },
{ ParameterType.Entity, en = "Units type", de = "Einheitentyp" },
{ ParameterType.Number, en = "Number of units", de = "Anzahl Soldaten" },
},
}
function Goal_UnitsCount:GetGoalTable()
return { Objective.Custom2, {self, self.CustomFunction} }
end
function Goal_UnitsCount:AddParameter(_Index, _Parameter)
if (_Index == 0) then
self.PlayerID = tonumber(_Parameter)
elseif (_Index == 1) then
self.bRelSmallerThan = _Parameter == "<"
elseif (_Index == 2) then
self.eType = Entities[_Parameter]
elseif (_Index == 3) then
self.NumberOfUnits = tonumber(_Parameter)
end
end
function Goal_UnitsCount:CustomFunction()
local NumUnits = Logic.GetNumberOfEntitiesOfTypeOfPlayer( self.PlayerID, self.eType )
if ( self.bRelSmallerThan and NumUnits < self.NumberOfUnits )
or ( not self.bRelSmallerThan and NumUnits > self.NumberOfUnits ) then
return true
end
end
function Goal_UnitsCount:GetCustomData( _Index )
local Data = {}
if _Index == 1 then
table.insert( Data, ">" )
table.insert( Data, "<" )
else
assert( false )
end
return Data
end
Nicht ausprobiert, noch einmal.
Das muss dann in QuestSystemBehavior.lua und dort in die Liste aller Quest-Elemente ganz oben eingefügt werden...
Lesezeichen