コード例 #1
0
    public static bool ExecuteCMD(int EntityID, String strCommand, EntityPlayer player)
    {
        DisplayLog("ExecuteCMD: " + strCommand);
        EntityAliveSDX myEntity = GameManager.Instance.World.GetEntity(EntityID) as EntityAliveSDX;

        if (myEntity == null)
        {
            return(false);
        }

        LocalPlayerUI uiforPlayer = LocalPlayerUI.GetUIForPlayer(player as EntityPlayerLocal);

        Vector3 position = myEntity.position;

        // Restore it's walk speed to default.
        myEntity.RestoreSpeed();

        switch (strCommand)
        {
        case "TellMe":
            //XUiC_TipWindow.ShowTip(myEntity.ToString(), XUiM_Player.GetPlayer() as EntityPlayerLocal,null);
            GameManager.ShowTooltipWithAlert(player as EntityPlayerLocal, myEntity.ToString() + "\n\n\n\n\n", "ui_denied");
            // uiforPlayer.windowManager.Open("EntityInformation", true, false, true);
            break;

        case "ShowAffection":
            GameManager.ShowTooltipWithAlert(player as EntityPlayerLocal, "You gentle scratch and stroke the side of the animal.", "");
            break;

        case "FollowMe":
            SetLeader(EntityID, player.entityId);
            SetCurrentOrder(EntityID, Orders.Follow);
            myEntity.moveSpeed      = player.moveSpeed;
            myEntity.moveSpeedAggro = player.moveSpeedAggro;

            break;

        case "StayHere":
            SetCurrentOrder(EntityID, Orders.Stay);
            myEntity.GuardPosition = position;
            myEntity.moveHelper.Stop();
            break;

        case "GuardHere":
            SetCurrentOrder(EntityID, Orders.Stay);
            myEntity.SetLookPosition(player.GetLookVector());
            myEntity.GuardPosition = position;
            myEntity.moveHelper.Stop();
            myEntity.GuardLookPosition = player.GetLookVector();
            break;

        case "Wander":
            SetCurrentOrder(EntityID, Orders.Wander);
            break;

        case "SetPatrol":
            SetLeader(EntityID, player.entityId);
            SetCurrentOrder(EntityID, Orders.SetPatrolPoint);
            myEntity.moveSpeed      = player.moveSpeed;
            myEntity.moveSpeedAggro = player.moveSpeedAggro;
            myEntity.PatrolCoordinates.Clear();     // Clear the existing point.
            break;

        case "Patrol":
            SetCurrentOrder(EntityID, Orders.Patrol);
            break;

        case "Hire":
            bool result = Hire(EntityID, player as EntityPlayerLocal);
            break;

        case "OpenInventory":
            GameManager.Instance.TELockServer(0, myEntity.GetBlockPosition(), EntityID, player.entityId);
            uiforPlayer.windowManager.CloseAllOpenWindows(null, false);
            if (myEntity.lootContainer == null)
            {
                DisplayLog(" Loot Container is null");
            }
            else
            {
                DisplayLog(" Get Open Time");
                DisplayLog("Loot Container: " + myEntity.lootContainer.ToString());
                myEntity.lootContainer.lootListIndex = 62;
                DisplayLog(" Loot List: " + myEntity.lootContainer.lootListIndex);

                DisplayLog(myEntity.lootContainer.GetOpenTime().ToString());
                lootContainerOpened(myEntity.lootContainer, uiforPlayer, player.entityId);
            }
            break;

        case "Loot":
            SetCurrentOrder(EntityID, Orders.Loot);
            myEntity.Buffs.RemoveCustomVar("Leader");
            break;

        case "Dismiss":
            SetCurrentOrder(EntityID, Orders.Wander);
            myEntity.Buffs.RemoveCustomVar("Leader");
            myEntity.Buffs.RemoveCustomVar("Owner");
            break;
        }

        return(true);
    }