[[http://www.siedler-games.de|{{:sg-link.jpg|}}]] \\ [[http://www.siedler-portal.de/vb3/member.php?u=2109|Tenji]] Manchmal will man ja eine befreundete Armee einem Helden folgen, und diesen Beschützen lassen! \\ Dazu kann man sich mit "CreateMilitaryGroup" Truppen erstellen und diese dann mit einem SimpleJob steuern. \\ Wenn man nun mehrere solche Armeen haben will, hat man mehrere Jobs, die gleichzeitig laufen und eigentlich das selbe tun. Außerdem ist es viel Schreibarbeit! \\ \\ Um das zu vereinfachen habe ich mir jetzt eine Comfort function dazu geschrieben, mit der das um vieles einfacher ist! \\ \\ ===== Verwendung: ===== So einfach könnt ihr euch mit dieser Comfort function eine folgende/beschützende Armee erstellen: CreateFollowingArmy( _entity, _player, _typ, _soldiers, _position, _trups) * **_entity**: Die Entity, die von der Armee beschützt/begleitet wird. * **_player**: Die PlayerID, die die Armee haben soll. * **_typ**: Der EntityTyp, der Truppen in der Armee. * **_soldiers**: Die Anzahl der Soldaten in jeder Truppe der Armee. * **_position**: Die Position, an der die Armee bei ihrer Erstellung auftaucht. * **_trups**: Die Anzahl der Truppen in der Armee. \\ So könnte man einer Entity auch eigene Truppen folgen, oder sie von einer feindliche Armee verfolgen lassen! \\ \\ Um __alle__ Armeen zu deaktivieren kann man einfach das schreiben: StopAllFollowingArmys() === Beispiel: === CreateFollowingArmy( "Erec", 4, Entities.PU_LeaderSword4, 8, "Pos1", 2) Und schon habt ihr eine Armee von 2 Truppen mit je 8 Soldaten, des Typs Bastardschwertkämpfer, die an der Position einer SkriptEntity mit dem Namen "Pos1" auftaucht, und der Entity mit dem Namen "Erec" folgt! \\ \\ \\ ===== Mit diesem Code ... ===== === kann man sich beliebig viele dieser folgenden Armeen erstllen! === ------------------------------------------------------------------------------------------------------------------------------------------------------------ -- Comfort function to create a following Army by Tenji ------------------------------------------------------------------------------------------------------------------------------------------------------------ function CreateFollowingArmy( _entity, _player, _typ, _soldiers, _position, _trups) gvFollowingArmys = gvFollowingArmys or { FollowingArmysJobID = StartSimpleJob("ControlAllFollowingArmys") }; local entityName = GetEntityName(_entity); for i = 1, table.getn(gvFollowingArmys) do if gvFollowingArmys[i].followEntity == entityName then local jStart = table.getn(gvFollowingArmys[i]); for j = 1, _trups do local number = jStart +j; local trup = { name = _entity.."Trup"..number}; CreateMilitaryGroup( _player, _typ, _soldiers, GetPosition(_position), trup.name, entityName); table.insert( gvFollowingArmys[i], trup); end return true end end local insertTable = { followEntity = entityName }; for i = 1, _trups do local trup = { name = _entity.."Trup"..i }; CreateMilitaryGroup( _player, _typ, _soldiers, GetPosition(_position), trup.name, entityName); table.insert( insertTable, trup); end table.insert( gvFollowingArmys, insertTable); end function StopAllFollowingArmys() if (gvFollowingArmys ~= nil) then EndJob( gvFollowingArmys.FollowingArmysJobID ); gvFollowingArmys = nil; end end function ControlAllFollowingArmys() for i = table.getn(gvFollowingArmys), 1, -1 do local entity = gvFollowingArmys[i].followEntity; for j = table.getn(gvFollowingArmys[i]), 1, -1 do local trup = gvFollowingArmys[i][j].name; if (not IsNear( trup, entity, 500)) and IsExisting( trup) then if IsNear( trup, entity, 3000) then Attack( trup, GetPosition( entity)); else Move( trup, GetPosition( entity)); end elseif not IsExisting( trup) then table.remove( gvFollowingArmys[i], j); end end if table.getn( gvFollowingArmys[i] ) == 0 then table.remove( gvFollowingArmys, i); end end end Bei Problemen bitte [[http://www.siedler-portal.de/vb3/forumdisplay.php?f=95|hier]] im Forum melden! \\ \\ ===== Siehe auch ===== * [[tutorials:Armeen_Erstellen]]\\ \\ [[:tutorials:index|Zur Tutorial-Übersicht]]