MoveEx

Parameter

(_entity,_pos,_distance,_faceToFace,_moveAsEntity)

Name Typ Beschreibung
_entity Number, String Entity, die bewegt werden soll
_pos Number, String Entity, zu der sich bewegt werden soll
_distance Number Entfernung
_faceToFace true oder Number LookAt ausführen, oder Entity drehen
_moveAsEntity Boolean Wenn true, wird die Entity ohne Animation über den Boden geschoben und ignoriert Blocking.

Functionscode

Du benötigst die Funktionen LookAt und GetRelativePos.

Kopiere diesen Code in dein globales Skript.

function MoveEx(_entity,_pos,_distance,_faceToFace,_moveAsEntity)
    if not IsExisting(_entity)then
        return
    end
    if not _distance then
        _distance = 0;
    end
    local eID = GetID(_entity);
    local tID = GetID(_pos);
    local pos = GetRelativePos(_pos,_distance);
    if type(_faceToFace) == "number" then
        pos = GetRelativePos(_pos,_distance,_faceToFace);
    end

    if _moveAsEntity then
        Logic.MoveEntity(eID,pos.X,pos.Y);
    else
        Logic.MoveSettler(eID,pos.X,pos.Y);
    end

    if _faceToFace ~= nil and _faceToFace ~= false then
        StartSimpleJobEx( function()
            if not Logic.IsEntityMoving(eID) then
                if _faceToFace == true then
                    LookAt(eID,tID);
                else
                    Logic.SetOrientation(eID,_faceToFace);
                end
                return true;
            end
        end);
    end
end

Rückgabewerte

keine

Beschreibung

Bewegt eine Entity zum Ziel und lässt sie es ansehen oder in eine bestimmte Richtung blicken.

Die Funktion ist also eine Kombination aus MoveEntityFaceToFaceToAnotherOne und MoveEntityToPositionToAnotherOne.

global ✔

lokal ✘

by totalwarANGEL

Beispiel

Hakim läuft zu einer Position, die 1500 vom Marktplatz entfernt ist und genau gegenüber zu dessen Eingang liegt. Danach schaut Hakim zum Markt.

MoveEx("hakim", Logic.GetMarketPlace(1), 1500, true, nil)

Demo-Map

<nicht vorhanden>

Zurück zu Funktionssammlungen | Drucken | Tags
Sofern nicht anders angegeben, steht der Inhalt dieser Seite unter Lizenz Creative Commons Attribution-ShareAlike 3.0 License