Exemple #1
0
 public float ChangeHealthBy(float a_delta)
 {
     a_delta  = HandleDamage(a_delta);
     m_health = Mathf.Clamp(m_health + a_delta, 0f, 100.001f);
     if (IsDead() && m_respawnTime < 0f)
     {
         ExitVehicle();
         if (IsSpawned())
         {
             m_char.AssignInput(0f, 0f, false, false);
             m_char.collider.enabled = false;
         }
         DropLootAsContainer();
         ResetContainers();
         if (null != m_missionMan)
         {
             m_missionMan.DeleteMissions(this);
         }
         m_condition = 0;
         AddXp((int)((float)m_xp * 0.05f) * -1);
         m_gold = (int)((float)m_gold * 0.95f);
         LidServer.SendMoneyUpdate(this);
         m_cantLogoutTime = -1f;
         m_respawnTime    = Time.time + 5f;
     }
     return(m_health);
 }
Exemple #2
0
    private void UpdateConditions(float a_deltaTime)
    {
        bool flag = a_deltaTime > Random.Range(0f, 150f);

        if (HasCondition(eCondition.bleeding) && flag)
        {
            SetCondition(eCondition.bleeding, false);
            flag = false;
        }
        if (HasCondition(eCondition.infection) && flag)
        {
            SetCondition(eCondition.infection, false);
            flag = false;
        }
        if (HasCondition(eCondition.pain) && flag)
        {
            SetCondition(eCondition.pain, false);
            flag = false;
        }
        SetCondition(eCondition.starvation, m_energy < 0.01f);
        if (Time.time > m_nextComplexConditionUpdate && m_inventory != null)
        {
            Vector3      position    = GetPosition();
            DatabaseItem itemFromPos = m_inventory.GetItemFromPos(0f, 2f);
            bool         a_state     = 0.1f > m_server.GetDayLight() && !Items.IsBody(itemFromPos.type) && !m_server.IsInSpecialArea(position, eAreaType.warm) && !m_buildMan.IsNearCampfire(position);
            SetCondition(eCondition.freezing, a_state);
            SetCondition(eCondition.radiation, m_server.IsInSpecialArea(position, eAreaType.radiation));
            m_nextComplexConditionUpdate = Time.time + 3f;
        }
        if (m_lastCondition != m_condition)
        {
            m_lastCondition = m_condition;
            LidServer.SendConditionUpdate(this);
        }
    }
 private void Start()
 {
     m_missionNpcs        = (MissionNpc[])Object.FindObjectsOfType(typeof(MissionNpc));
     m_missionObjs        = (MissionObjective[])Object.FindObjectsOfType(typeof(MissionObjective));
     m_server             = (LidServer)Object.FindObjectOfType(typeof(LidServer));
     m_missionXpLocMultip = new float[15];
     for (int i = 0; i < 15; i++)
     {
         m_missionXpLocMultip[i] = 1f;
     }
     m_missionXpLocMultip[1]  = 0.8f;
     m_missionXpLocMultip[2]  = 1.1f;
     m_missionXpLocMultip[3]  = 1.5f;
     m_missionXpLocMultip[4]  = 0.8f;
     m_missionXpLocMultip[5]  = 1.2f;
     m_missionXpLocMultip[6]  = 0.5f;
     m_missionXpLocMultip[7]  = 0.7f;
     m_missionXpLocMultip[8]  = 1.2f;
     m_missionXpLocMultip[9]  = 1f;
     m_missionXpLocMultip[10] = 2f;
     m_missionXpLocMultip[11] = 1.4f;
     m_missionXpLocMultip[12] = 1.3f;
     m_missionXpLocMultip[13] = 1.5f;
     m_missionXpLocMultip[14] = 1.3f;
 }
    public virtual void Init(LidServer a_server, int a_type, int a_ownerPid = 0, int a_health = 100, bool a_isNew = true)
    {
        m_isStatic  = false;
        m_server    = a_server;
        m_type      = a_type;
        m_ownerPid  = a_ownerPid;
        m_def       = Buildings.GetBuildingDef(m_type);
        m_decayTime = m_def.decayTime * (double)((float)a_health / 100f);
        if (!m_def.persistent)
        {
            return;
        }
        Vector3 position    = base.transform.position;
        float   a_x         = position.x * 1.00001f;
        Vector3 position2   = base.transform.position;
        float   a_y         = position2.z * 1.00001f;
        Vector3 eulerAngles = base.transform.rotation.eulerAngles;

        m_dbBuilding = new DatabaseBuilding(a_type, a_x, a_y, eulerAngles.y * 1.00001f, a_ownerPid, a_health);
        m_sql        = m_server.GetSql();
        if (null != m_sql)
        {
            if (a_isNew)
            {
                m_dbBuilding.flag = eDbAction.insert;
                m_sql.SaveBuilding(m_dbBuilding);
            }
            m_nextSqlUpdateTime = Random.Range(100f, 300f);
        }
    }
Exemple #5
0
    private void OnDisable()
    {
        UIManager.instance.btn_Back.SetActive(false);

        UIManager.instance.btn_Back.GetComponent <Button>().onClick.RemoveListener(btn_Back_Click);
        UIManager.instance.btn_StartStopServer.GetComponent <Button>().onClick.RemoveListener(btn_StartStopServer_Click);
        lidserver = null;
    }
 private void Awake()
 {
     m_data.passengerIds = new int[4];
     m_vehicle           = GetComponent <SimpleVehicle>();
     m_server            = Object.FindObjectOfType <LidServer>();
     m_spawnPoint        = (m_lastPos = base.transform.position);
     KillAndResetPassengers();
 }
Exemple #7
0
 private void OnDisable()
 {
     lidserver.DebugMessage   -= OnDebugMessage;
     lidserver.UnknownMessage -= OnUnknownMessage;
     lidserver = null;
     btn_Back.GetComponent <Button>().onClick.RemoveAllListeners();
     btn_StartStopServer.GetComponent <Button>().onClick.RemoveAllListeners();
 }
Exemple #8
0
    private void OnEnable()
    {
        lidserver = new LidServer();
        lidserver.OnNetworkDebugMessage += OnNetworkDebug;
        UIManager.instance.btn_StartStopServer.GetComponent <Button>().onClick.AddListener(btn_StartStopServer_Click);
        UIManager.instance.btn_Back.GetComponent <Button>().onClick.AddListener(btn_Back_Click);

        UIManager.instance.btn_Back.SetActive(true);
    }
Exemple #9
0
 private void OnEnable()
 {
     uimanager = UIManager.GetInstance;
     btn_Back.GetComponent <Button>().onClick.AddListener(btn_Back_Click);
     uimanager.ShowOrHideBtnBack(true);
     lidserver = new LidServer();
     lidserver.DebugMessage   += OnDebugMessage;
     lidserver.UnknownMessage += OnUnknownMessage;
     btn_StartStopServer.GetComponent <Button>().onClick.AddListener(btn_StartStopServer_Click);
 }
 private void Start()
 {
     Init();
     m_server = (LidServer)Object.FindObjectOfType(typeof(LidServer));
     SetStateTolerance(Random.Range(m_stateTolMin, m_stateTolMax));
     SetStateDurability(eBrainBaseState.hungry, m_hungerMultip);
     SetStateDurability(eBrainBaseState.thirsty, m_thirstMultip);
     SetStateDurability(eBrainBaseState.fatigued, m_fatigueMultip);
     SetStateDurability(eBrainBaseState.lonely, m_lonelyMultip);
     SetStateDurability(eBrainBaseState.injured, m_injuryMultip);
     SetStateDurability(eBrainBaseState.stressed, m_stressMultip);
 }
Exemple #11
0
 public override void Init(LidServer a_server, int a_type, int a_ownerPid = 0, int a_health = 100, bool a_isNew = true)
 {
     this.CreateCid();
     this.m_sql = a_server.GetSql();
     if (null != this.m_sql)
     {
         this.m_container            = new ItemContainer(4, 4, 6, this.m_cid, this.m_sql, null);
         this.m_container.m_position = base.transform.position;
         if (!a_isNew)
         {
             this.m_loadItemsFromDb = true;
         }
     }
     base.Init(a_server, a_type, a_ownerPid, a_health, a_isNew);
 }
Exemple #12
0
 public ServerPlayer(string a_name, ulong a_accountId, int a_onlineId, eCharType a_type, NetConnection a_con, SQLThreadManager a_sql, LidServer a_server, BuildingManager a_buildMan, MissionManager a_missionMan)
 {
     m_name       = a_name;
     m_accountId  = a_accountId;
     m_onlineId   = a_onlineId;
     m_charType   = a_type;
     m_connection = a_con;
     if (m_connection != null)
     {
         m_connection.Tag = m_onlineId;
     }
     m_sql        = a_sql;
     m_server     = a_server;
     m_buildMan   = a_buildMan;
     m_missionMan = a_missionMan;
 }
Exemple #13
0
 private void DropLootAsContainer()
 {
     if (m_inventory != null)
     {
         for (int i = 0; i < m_inventory.m_items.Count; i++)
         {
             LidServer    server        = m_server;
             DatabaseItem databaseItem  = m_inventory.m_items[i];
             int          type          = databaseItem.type;
             DatabaseItem databaseItem2 = m_inventory.m_items[i];
             server.CreateTempContainerItem(type, databaseItem2.amount, GetPosition());
         }
         m_inventory.m_items.Clear();
         m_sql.ClearInventory(m_pid);
         m_updateContainersFlag = true;
         m_updateInfoFlag       = true;
     }
 }
Exemple #14
0
 private void Awake()
 {
     Application.runInBackground = true;
     Application.targetFrameRate = 100;
     Debug.Log(Environment.CommandLine);
     if (!Application.isEditor)
     {
         if (Environment.CommandLine.Contains("-batchmode"))
         {
             LidServer lidServer = (LidServer)UnityEngine.Object.FindObjectOfType(typeof(LidServer));
             lidServer.enabled           = true;
             lidServer.m_shutdownIfEmpty = Environment.CommandLine.Contains("-killonempty");
         }
         else
         {
             LidClient lidClient = (LidClient)UnityEngine.Object.FindObjectOfType(typeof(LidClient));
             lidClient.enabled = true;
         }
     }
     Screen.showCursor = true;
     Cursor.SetCursor(m_cursor, m_cursorOffset, CursorMode.Auto);
 }
 public virtual void Init(LidServer a_server, int a_type, int a_ownerPid = 0, int a_health = 100, bool a_isNew = true)
 {
     this.m_isStatic  = false;
     this.m_server    = a_server;
     this.m_type      = a_type;
     this.m_ownerPid  = a_ownerPid;
     this.m_def       = Buildings.GetBuildingDef(this.m_type);
     this.m_decayTime = this.m_def.decayTime * (double)((float)a_health / 100f);
     if (this.m_def.persistent)
     {
         this.m_dbBuilding = new DatabaseBuilding(a_type, base.transform.position.x * 1.00001f, base.transform.position.z * 1.00001f, base.transform.rotation.eulerAngles.y * 1.00001f, a_ownerPid, a_health);
         this.m_sql        = this.m_server.GetSql();
         if (null != this.m_sql)
         {
             if (a_isNew)
             {
                 this.m_dbBuilding.flag = eDbAction.insert;
                 this.m_sql.SaveBuilding(this.m_dbBuilding);
             }
             this.m_nextSqlUpdateTime = UnityEngine.Random.Range(100f, 300f);
         }
     }
 }
Exemple #16
0
 private void Start()
 {
     m_server = (LidServer)Object.FindObjectOfType(typeof(LidServer));
 }
 private void Start()
 {
     m_server = Object.FindObjectOfType <LidServer>();
 }
 private void Start()
 {
     m_server     = (LidServer)Object.FindObjectOfType(typeof(LidServer));
     m_resSpawns  = (ResourceSpawner[])Object.FindObjectsOfType(typeof(ResourceSpawner));
     m_nextUpdate = Random.Range(3f, 12f);
 }
Exemple #19
0
 public void AddXp(int a_xp)
 {
     m_xp = Mathf.Max(m_xp + a_xp, 0);
     RecalculateRank();
     LidServer.SendRankUpdate(this, a_xp);
 }
Exemple #20
0
 private void Start()
 {
     Init();
     m_server = (LidServer)Object.FindObjectOfType(typeof(LidServer));
     m_curPos = m_body.m_homePos;
 }
Exemple #21
0
    private void Start()
    {
        Init();
        m_handItemDef = Items.GetItemDef(m_handItemType);
        m_bodyItemDef = Items.GetItemDef(m_bodyItemType);
        try
        {
            m_jobAi = (JobAI)m_job;
        }
        catch
        {
        }
        m_agent  = GetComponent <NavMeshAgent>();
        m_npc    = GetComponent <ServerNpc>();
        m_server = (LidServer)Object.FindObjectOfType(typeof(LidServer));
        if (!(null != m_npc))
        {
            return;
        }
        int num      = 0;
        int a_chance = (int)(100f * m_dropMultiplier);

        if (m_npc.m_npcType == eCharType.eGasmaskGuy)
        {
            m_containerType = 120;
            if (m_handItemType != 0)
            {
                m_itemDrops.Add(new DropItem(m_handItemType, m_handItemType, (int)(15f * m_dropMultiplier), 1, 50));
            }
            if (0 < m_handItemDef.ammoItemType)
            {
                m_itemDrops.Add(new DropItem(m_handItemDef.ammoItemType, m_handItemDef.ammoItemType, (int)(80f * m_dropMultiplier), 1, 10));
            }
            if (0 < m_bodyItemType)
            {
                m_itemDrops.Add(new DropItem(m_bodyItemType, m_bodyItemType, (int)(5f * m_dropMultiplier), 1, 60));
            }
            m_itemDrops.Add(new DropItem(1, 12, 67));
            m_itemDrops.Add(new DropItem(15, 19, 67));
            m_itemDrops.Add(new DropItem(254, 254, 20, 1, 5));
            num = 12;
        }
        else if (m_npc.m_npcType == eCharType.eChicken || m_npc.m_npcType == eCharType.eRaven || m_npc.m_npcType == eCharType.eEagle)
        {
            m_itemDrops.Add(new DropItem(4, 4, a_chance));
            num = 1;
        }
        else if (m_npc.m_npcType == eCharType.eBull || m_npc.m_npcType == eCharType.eCow)
        {
            m_itemDrops.Add(new DropItem(4, 4, a_chance, 3, 4));
            m_itemDrops.Add(new DropItem(133, 133, a_chance, 3, 6));
            num = 2;
        }
        else if (m_npc.m_npcType == eCharType.eMutant || m_npc.m_npcType == eCharType.eSurvivorMutant)
        {
            m_itemDrops.Add(new DropItem(104, 104, 15, 10, 90));
            m_itemDrops.Add(new DropItem(254, 254, 15, 1, 3));
            num = ((m_npc.m_npcType != eCharType.eMutant) ? 30 : 15);
        }
        else if (m_npc.m_npcType == eCharType.eSpider || m_npc.m_npcType == eCharType.eSpiderPoison)
        {
            m_itemDrops.Add(new DropItem(254, 254, 10, 1, 3));
            num = ((m_npc.m_npcType != eCharType.eSpider) ? 15 : 3);
        }
        else
        {
            m_itemDrops.Add(new DropItem(4, 4, a_chance, 1, 3));
            m_itemDrops.Add(new DropItem(133, 133, a_chance, 1, 3));
            num = 1;
        }
        if (0 < num)
        {
            int randomType = Items.GetRandomType(150f);
            int a_max      = (!Items.HasCondition(randomType)) ? 1 : Random.Range(1, 30);
            m_itemDrops.Add(new DropItem(randomType, randomType, num, 1, a_max));
        }
    }
    private void Start()
    {
        Init();
        m_handItemDef = Items.GetItemDef(m_handItemType);
        m_bodyItemDef = Items.GetItemDef(m_bodyItemType);
        try
        {
            m_jobAi = (JobAI)m_job;
        }
        catch
        {
        }
        m_agent  = GetComponent <NavMeshAgent>();
        m_npc    = GetComponent <ServerNpc>();
        m_server = (LidServer)Object.FindObjectOfType(typeof(LidServer));
        if (!(null != m_npc))
        {
            return;
        }
        int num      = 0;
        int a_chance = (int)(100f * m_dropMultiplier);

        if (m_npc.m_npcType == eCharType.eGasmaskGuy) // Type of enemy/mob/npc
        {
            m_containerType = 120;                    // container used for items dropped
            if (m_handItemType != 0)
            {
                m_itemDrops.Add(new DropItem(m_handItemType, m_handItemType, (int)(15f * m_dropMultiplier), 1, 50));
            }
            if (0 < m_handItemDef.ammoItemType)
            {
                m_itemDrops.Add(new DropItem(m_handItemDef.ammoItemType, m_handItemDef.ammoItemType, (int)(80f * m_dropMultiplier), 1, 10));
            }
            if (0 < m_bodyItemType)
            {
                m_itemDrops.Add(new DropItem(m_bodyItemType, m_bodyItemType, (int)(5f * m_dropMultiplier), 1, 60));
            }
            m_itemDrops.Add(new DropItem(1, 12, 67));             //Items <--- Really stupid setup imo, Should be using strings globally not numbered id's
            m_itemDrops.Add(new DropItem(15, 19, 67));
            m_itemDrops.Add(new DropItem(254, 254, 20, 1, 5));
            num = 12;
        }
        else if (m_npc.m_npcType == eCharType.eChicken || m_npc.m_npcType == eCharType.eRaven || m_npc.m_npcType == eCharType.eEagle)         // else if for other types
        {
            m_itemDrops.Add(new DropItem(4, 4, a_chance));
            num = 1;
        }
        else if (m_npc.m_npcType == eCharType.eBull || m_npc.m_npcType == eCharType.eCow)
        {
            m_itemDrops.Add(new DropItem(4, 4, a_chance, 3, 4));
            m_itemDrops.Add(new DropItem(133, 133, a_chance, 3, 6));
            num = 2;
        }
        else if (m_npc.m_npcType == eCharType.eMutant || m_npc.m_npcType == eCharType.eSurvivorMutant)
        {
            m_itemDrops.Add(new DropItem(104, 104, 15, 10, 90));             // first id, second id, chance, min_quality, max_quality <--- Really stupid setup imo, Should be using strings globally not numbered id's
            m_itemDrops.Add(new DropItem(254, 254, 15, 1, 3));
            num = ((m_npc.m_npcType != eCharType.eMutant) ? 30 : 15);
        }
        else if (m_npc.m_npcType == eCharType.eSpider || m_npc.m_npcType == eCharType.eSpiderPoison)
        {
            m_itemDrops.Add(new DropItem(254, 254, 10, 1, 3));
            num = ((m_npc.m_npcType != eCharType.eSpider) ? 15 : 3);
        }
        else
        {
            m_itemDrops.Add(new DropItem(4, 4, a_chance, 1, 3));
            m_itemDrops.Add(new DropItem(133, 133, a_chance, 1, 3));
            num = 1;
        }
        if (0 < num)
        {
            int randomType = Items.GetRandomType(150f);
            int a_max      = (!Items.HasCondition(randomType)) ? 1 : Random.Range(1, 30);
            m_itemDrops.Add(new DropItem(randomType, randomType, num, 1, a_max));
        }
    }
        internal static void HandleChatCommand(string text, ServerPlayer player, NetIncomingMessage msg)
        {
            var server   = (LidServer)UnityEngine.Object.FindObjectOfType(typeof(LidServer));
            var building = (LidServer)UnityEngine.Object.FindObjectOfType(typeof(Buildings));

            string[] commands = text.Split(' ');
            switch (commands[0])
            {
            case "/kit-doc1":
                int IA = player.m_inventory.GetItemAmountByType(254);                     // Start currency Check
                if (IA <= 349)                                                            // Value to check against.
                {
                    server.SendMessageToPlayerLocal("Not Enough Gold!", player, msg);     // Return error message if plater des not have enough currency!
                }
                else if (IA >= 350)                                                       // If players currency is higher then the value given here
                {
                    int num = 350;                                                        // Kit Price
                    num = Math.Min(IA, num);                                              // Price math logic
                    player.m_inventory.DeclineItemAmountByType(254, num);                 // Define item used as currency
                    server.CreateFreeWorldItem(153, 1, player.GetPosition(), 100);        // Leather-Vest
                    server.CreateFreeWorldItem(171, 1, player.GetPosition(), 100);        // Shoes
                    // Weapons
                    server.CreateFreeWorldItem(93, 1, player.GetPosition(), 100);         // Knife
                    server.CreateFreeWorldItem(107, 1, player.GetPosition(), 100);        // Torch
                    // Food
                    server.CreateFreeWorldItem(3, 6, player.GetPosition());               // Coocked Potatoes
                    server.CreateFreeWorldItem(8, 1, player.GetPosition());               // Energy Bar
                    server.CreateFreeWorldItem(17, 2, player.GetPosition());              // Water
                    // ITEMS
                    server.CreateFreeWorldItem(140, 3, player.GetPosition());             // Bandages
                    server.CreateFreeWorldItem(141, 1, player.GetPosition());             // Antibiotics
                    server.CreateFreeWorldItem(142, 2, player.GetPosition());             // Painkillers
                    server.CreateFreeWorldItem(143, 1, player.GetPosition());             // Medpack
                    LidServer.SendMoneyUpdate(player);                                    // Request money update from server.
                    server.SendMessageToPlayerLocal("BOUGHT DOCTOR KIT!!!", player, msg); // Return success message!!!
                }
                break;

            case "/kit-scav1":
                int IA_1 = player.m_inventory.GetItemAmountByType(254);
                if (IA_1 <= 349)
                {
                    server.SendMessageToPlayerLocal("Not Enough Gold!", player, msg);
                }
                else if (IA_1 >= 350)
                {
                    int num = 350;
                    num = Math.Min(IA_1, num);
                    player.m_inventory.DeclineItemAmountByType(254, num);
                    // Clothing
                    server.CreateFreeWorldItem(151, 1, player.GetPosition(), 100);  // Scrap-Vest
                    server.CreateFreeWorldItem(171, 1, player.GetPosition(), 100);  // C_Shoes
                    // Weapons
                    server.CreateFreeWorldItem(111, 1, player.GetPosition(), 100);  // Machete
                    server.CreateFreeWorldItem(93, 1, player.GetPosition(), 100);   // Knife
                    server.CreateFreeWorldItem(61, 1, player.GetPosition(), 100);   // Revolver
                    // AMMO
                    server.CreateFreeWorldItem(40, 20, player.GetPosition(), 100);  // 45mm
                    // Food
                    server.CreateFreeWorldItem(4, 2, player.GetPosition());         // Raw Meat
                    server.CreateFreeWorldItem(8, 1, player.GetPosition());         // Energy Bar
                    server.CreateFreeWorldItem(10, 2, player.GetPosition());        // Canned Food
                    server.CreateFreeWorldItem(18, 2, player.GetPosition());        // Beer
                    // ITEMS
                    server.CreateFreeWorldItem(140, 3, player.GetPosition());       // Bandages
                    LidServer.SendMoneyUpdate(player);
                    server.SendMessageToPlayerLocal("BOUGHT SCAV KIT!!!", player, msg);
                }
                break;

            case "/kit-scav2":
                int IA_2 = player.m_inventory.GetItemAmountByType(254);
                if (IA_2 <= 349)
                {
                    server.SendMessageToPlayerLocal("Not Enough Gold!", player, msg);
                }
                else if (IA_2 >= 350)
                {
                    int num = 350;
                    num = Math.Min(IA_2, num);
                    player.m_inventory.DeclineItemAmountByType(254, num);
                    // Clothing
                    server.CreateFreeWorldItem(151, 1, player.GetPosition(), 100);  // Scrap-Vest
                    server.CreateFreeWorldItem(171, 1, player.GetPosition(), 100);  // C_Shoes
                    // Weapons
                    server.CreateFreeWorldItem(104, 1, player.GetPosition(), 100);  // Mutant Claw
                    server.CreateFreeWorldItem(106, 1, player.GetPosition(), 100);  // C_Knife
                    server.CreateFreeWorldItem(79, 1, player.GetPosition(), 100);   // Bow
                    // AMMO
                    server.CreateFreeWorldItem(50, 35, player.GetPosition(), 100);  // Arrows
                    // Food
                    server.CreateFreeWorldItem(4, 2, player.GetPosition());         // Raw Meat
                    server.CreateFreeWorldItem(9, 4, player.GetPosition());         // Mushrooms
                    server.CreateFreeWorldItem(10, 1, player.GetPosition());        // Canned Food
                    server.CreateFreeWorldItem(15, 1, player.GetPosition());        // Rum-Bottle
                    // ITEMS
                    server.CreateFreeWorldItem(140, 2, player.GetPosition());       // Bandages
                    server.CreateFreeWorldItem(140, 1, player.GetPosition());       // Painkillers
                    LidServer.SendMoneyUpdate(player);
                    server.SendMessageToPlayerLocal("BOUGHT SCAV-2 KIT!!!", player, msg);
                }
                break;

            case "/kit-bandit1":
                int IA_3 = player.m_inventory.GetItemAmountByType(254);
                if (IA_3 <= 349)
                {
                    server.SendMessageToPlayerLocal("Not Enough Gold!", player, msg);
                }
                else if (IA_3 >= 350)
                {
                    int num = 350;
                    num = Math.Min(IA_3, num);
                    player.m_inventory.DeclineItemAmountByType(254, num);
                    // Clothing
                    server.CreateFreeWorldItem(152, 1, player.GetPosition(), 100);  // Metal-Vest
                    server.CreateFreeWorldItem(170, 1, player.GetPosition(), 100);  // Shoes
                    // Weapons
                    server.CreateFreeWorldItem(95, 1, player.GetPosition(), 100);   // Mutant Claw
                    server.CreateFreeWorldItem(93, 1, player.GetPosition(), 100);   // Knife
                    server.CreateFreeWorldItem(62, 1, player.GetPosition(), 100);   // SMG
                    // AMMO
                    server.CreateFreeWorldItem(42, 35, player.GetPosition(), 100);  // 556
                    // Food
                    server.CreateFreeWorldItem(12, 2, player.GetPosition());        // Cooked_fish
                    server.CreateFreeWorldItem(8, 4, player.GetPosition());         // Energy-Bar
                    server.CreateFreeWorldItem(16, 1, player.GetPosition());        // Wine
                    server.CreateFreeWorldItem(15, 1, player.GetPosition());        // Rum-Bottle
                    // ITEMS
                    server.CreateFreeWorldItem(140, 2, player.GetPosition());       // Bandages
                    server.CreateFreeWorldItem(142, 2, player.GetPosition());       // Painkillers
                    LidServer.SendMoneyUpdate(player);
                    server.SendMessageToPlayerLocal("BOUGHT BANDIT KIT!!!", player, msg);
                }
                break;

            case "/kit-guard1":
                int IA_4 = player.m_inventory.GetItemAmountByType(254);
                if (IA_4 <= 499)
                {
                    server.SendMessageToPlayerLocal("Not Enough Gold!", player, msg);
                }
                else if (IA_4 >= 500)
                {
                    int num = 500;
                    num = Math.Min(IA_4, num);
                    player.m_inventory.DeclineItemAmountByType(254, num);
                    // Clothing
                    server.CreateFreeWorldItem(154, 1, player.GetPosition(), 100);  // Guardian-Vest
                    server.CreateFreeWorldItem(170, 1, player.GetPosition(), 100);  // Shoes
                    // Weapons
                    server.CreateFreeWorldItem(99, 1, player.GetPosition(), 100);   // Giant Sword
                    server.CreateFreeWorldItem(93, 1, player.GetPosition(), 100);   // Knife
                    server.CreateFreeWorldItem(65, 1, player.GetPosition(), 100);   // AK47
                    // AMMO
                    server.CreateFreeWorldItem(43, 35, player.GetPosition(), 100);  // 762
                    // Food
                    server.CreateFreeWorldItem(12, 2, player.GetPosition());        // Cooked_fish
                    server.CreateFreeWorldItem(8, 4, player.GetPosition());         // Energy-Bar
                    server.CreateFreeWorldItem(16, 1, player.GetPosition());        // Wine
                    // ITEMS
                    server.CreateFreeWorldItem(140, 2, player.GetPosition());       // Bandages
                    server.CreateFreeWorldItem(142, 2, player.GetPosition());       // Painkillers
                    server.CreateFreeWorldItem(143, 1, player.GetPosition());       // Medkit
                    LidServer.SendMoneyUpdate(player);
                    server.SendMessageToPlayerLocal("BOUGHT GUARD-1 KIT!!!", player, msg);
                }
                break;

            case "/kit-guard2":
                int IA_5 = player.m_inventory.GetItemAmountByType(254);
                if (IA_5 <= 499)
                {
                    server.SendMessageToPlayerLocal("Not Enough Gold!", player, msg);
                }
                else if (IA_5 >= 500)
                {
                    int num = 500;
                    num = Math.Min(IA_5, num);
                    player.m_inventory.DeclineItemAmountByType(254, num);
                    // Clothing
                    server.CreateFreeWorldItem(154, 1, player.GetPosition(), 100);  // Guardian-Vest
                    server.CreateFreeWorldItem(170, 1, player.GetPosition(), 100);  // Shoes
                    // Weapons
                    server.CreateFreeWorldItem(99, 1, player.GetPosition(), 100);   // Giant Sword
                    server.CreateFreeWorldItem(93, 1, player.GetPosition(), 100);   // Knife
                    server.CreateFreeWorldItem(64, 1, player.GetPosition(), 100);   // Sniper
                    // AMMO
                    server.CreateFreeWorldItem(43, 35, player.GetPosition(), 100);  // 762
                    // Food
                    server.CreateFreeWorldItem(12, 2, player.GetPosition());        // Cooked_fish
                    server.CreateFreeWorldItem(8, 4, player.GetPosition());         // Energy-Bar
                    server.CreateFreeWorldItem(16, 1, player.GetPosition());        // Wine
                    // ITEMS
                    server.CreateFreeWorldItem(140, 2, player.GetPosition());       // Bandages
                    server.CreateFreeWorldItem(142, 2, player.GetPosition());       // Painkillers
                    server.CreateFreeWorldItem(143, 1, player.GetPosition());       // Medkit
                    LidServer.SendMoneyUpdate(player);
                    server.SendMessageToPlayerLocal("BOUGHT GUARD-2 KIT!!!", player, msg);
                }
                break;

            case "/kit-guard3":
                int IA_6 = player.m_inventory.GetItemAmountByType(254);
                if (IA_6 <= 499)
                {
                    server.SendMessageToPlayerLocal("Not Enough Gold!", player, msg);
                }
                else if (IA_6 >= 500)
                {
                    int num = 500;
                    num = Math.Min(IA_6, num);
                    player.m_inventory.DeclineItemAmountByType(254, num);
                    // Clothing
                    server.CreateFreeWorldItem(154, 1, player.GetPosition(), 100);  // Guardian-Vest
                    server.CreateFreeWorldItem(170, 1, player.GetPosition(), 100);  // Shoes
                    // Weapons
                    server.CreateFreeWorldItem(99, 1, player.GetPosition(), 100);   // Giant Sword
                    server.CreateFreeWorldItem(93, 1, player.GetPosition(), 100);   // Knife
                    server.CreateFreeWorldItem(67, 1, player.GetPosition(), 100);   // Auto-SHotgun
                    // AMMO
                    server.CreateFreeWorldItem(44, 35, player.GetPosition(), 100);  // Shells
                    // Food
                    server.CreateFreeWorldItem(12, 2, player.GetPosition());        // Cooked_fish
                    server.CreateFreeWorldItem(8, 4, player.GetPosition());         // Energy-Bar
                    server.CreateFreeWorldItem(16, 1, player.GetPosition());        // Wine
                    // ITEMS
                    server.CreateFreeWorldItem(140, 2, player.GetPosition());       // Bandages
                    server.CreateFreeWorldItem(142, 2, player.GetPosition());       // Painkillers
                    server.CreateFreeWorldItem(143, 1, player.GetPosition());       // Medkit
                    LidServer.SendMoneyUpdate(player);
                    server.SendMessageToPlayerLocal("BOUGHT GUARD-3 KIT!!!", player, msg);
                }
                break;

            case "/kit-police":
                int IA_7 = player.m_inventory.GetItemAmountByType(254);
                if (IA_7 <= 499)
                {
                    server.SendMessageToPlayerLocal("Not Enough Gold!", player, msg);
                }
                else if (IA_7 >= 499)
                {
                    int num = 500;
                    num = Math.Min(IA_7, num);
                    player.m_inventory.DeclineItemAmountByType(254, num);
                    server.CreateFreeWorldItem(107, 1, player.GetPosition(), 100);
                    server.CreateFreeWorldItem(120, 1, player.GetPosition());
                    server.CreateFreeWorldItem(152, 1, player.GetPosition(), 100);
                    server.CreateFreeWorldItem(41, 50, player.GetPosition());
                    server.CreateFreeWorldItem(60, 1, player.GetPosition(), 100);
                }
                break;

            case "/kit-cult":
                int IA_8 = player.m_inventory.GetItemAmountByType(254);
                if (IA_8 <= 499)
                {
                    server.SendMessageToPlayerLocal("Not Enough Gold!", player, msg);
                }
                else if (IA_8 >= 499)
                {
                    int num = 500;
                    num = Math.Min(IA_8, num);
                    player.m_inventory.DeclineItemAmountByType(254, num);
                    server.CreateFreeWorldItem(121, 3, player.GetPosition());
                    server.CreateFreeWorldItem(6, 10, player.GetPosition());
                    server.CreateFreeWorldItem(107, 10, player.GetPosition(), 100);
                }
                break;

            case "/kit-basic":
                int IA_9 = player.m_inventory.GetItemAmountByType(254);
                if (IA_9 <= 299)
                {
                    server.SendMessageToPlayerLocal("Not Enough Gold!", player, msg);
                }
                else if (IA_9 >= 299)
                {
                    int num = 300;
                    num = Math.Min(IA_9, num);
                    player.m_inventory.DeclineItemAmountByType(254, num);
                    server.CreateFreeWorldItem(130, 30, player.GetPosition());
                    server.CreateFreeWorldItem(107, 1, player.GetPosition(), 100);
                    server.CreateFreeWorldItem(5, 10, player.GetPosition());
                    server.CreateFreeWorldItem(41, 50, player.GetPosition());
                    server.CreateFreeWorldItem(60, 1, player.GetPosition(), 100);
                }
                break;

            case "/kit-cultleader":
                int IA_10 = player.m_inventory.GetItemAmountByType(254);
                if (IA_10 <= 999)
                {
                    server.SendMessageToPlayerLocal("Not Enough Gold!", player, msg);
                }
                else if (IA_10 >= 999)
                {
                    int num = 1000;
                    num = Math.Min(IA_10, num);
                    player.m_inventory.DeclineItemAmountByType(254, num);
                    server.CreateFreeWorldItem(132, 20, player.GetPosition());
                    server.CreateFreeWorldItem(106, 2, player.GetPosition(), 100);
                    server.CreateFreeWorldItem(170, 2, player.GetPosition(), 100);
                    server.CreateFreeWorldItem(120, 2, player.GetPosition());
                    server.CreateFreeWorldItem(41, 50, player.GetPosition());
                    server.CreateFreeWorldItem(66, 1, player.GetPosition(), 100);
                }
                break;

            case "/kit-fireblade":
                int IA_11 = player.m_inventory.GetItemAmountByType(254);
                if (IA_11 <= 4999)
                {
                    server.SendMessageToPlayerLocal("Not Enough Gold!", player, msg);
                }
                else if (IA_11 >= 4999)
                {
                    int num = 5000;
                    num = Math.Min(IA_11, num);
                    player.m_inventory.DeclineItemAmountByType(254, num);
                    server.CreateFreeWorldItem(154, 1, player.GetPosition(), 100);
                    server.CreateFreeWorldItem(170, 1, player.GetPosition(), 100);
                    server.CreateFreeWorldItem(43, 50, player.GetPosition());
                    server.CreateFreeWorldItem(65, 1, player.GetPosition(), 100);
                    server.CreateFreeWorldItem(90, 1, player.GetPosition(), 100);
                    server.CreateFreeWorldItem(131, 20, player.GetPosition());
                    server.CreateFreeWorldItem(120, 1, player.GetPosition());
                }
                break;

            case "/players":
            case "/online":
                server.SendMessageToPlayerLocal(LNG.Get("CMD_ONLINE_PLAYERS").Replace("{p_online}", server.GetPlayerCount().ToString()), player, msg);
                break;

            case "/about":
                server.SendMessageToPlayerLocal("I.C.E is a project to help expand the Immune-Dedicated software capabilities. For more info please use /commands and /help commandname.",
                                                player, msg);
                break;

            case "/shout":
                server.SendNotification(text.Remove(0, 6));
                break;

            case "/commands":
                server.SendMessageToPlayerLocal("<color=red>COMMANDS</color> <color=green>ARE</color> <color=purple>COLOR</color> <color=purple>CODED</color>! Each command is <color=red>color coded</color> within /help-commandname. Colors represent permission level needed to use them. <color=red>RED COMMANDS ARE ADMIN ONLY!!!</color> <color=yellow>YELLOW COMMANDS REQUIRE GOLD TO EXECUTE!</color> <color=green>GREEN COMMANDS ARE ALL LEVEL ACCESS!</color>", player, msg);
                break;

            case "/help":
                server.SendMessageToPlayerLocal("Avalible commands are: <color=green>/kit-doc</color>, <color=purple>/weapon</color>, <color=purple>/food</color>, <color=purple>/medicine</color> and <color=red>/about</color>", player, msg);
                break;

            case "/help-kit":
                server.SendMessageToPlayerLocal("Usage for /kit-xxx: To purchase a kit you must have the required amount of gold and or permissions. Example: Enter */kit-doc* without the ** to buy a doctors kit for 500gold.", player, msg);
                break;

            case "/?":
                server.SendMessageToPlayerLocal("Com-Mod: <color=purple>Made by</color> <color=green>Va1idUser: Github.com/McSkinnerOG/ImmuneCommandMod</color> and <color=red>Donaut: Github.com/Donaut/ImmuneCommandMod</color>.", player, msg);
                break;

            default:
                break;
            }
            switch (commands[1])
            {
            case "kit-doc":
                server.SendMessageToPlayerLocal("<color=purple>Doctor-kit costs 500gold and recieves: </color> <color=yellow>Leather-Vest x1, Shoes x1, </color> <color=white>Torch x1, Knife x1,</color> <color=brown>Cooked-Potatoes x6, Energy-Bar x1,</color> <color=cyan>Water x2,</color> <color=red>Bandages x3, Anti-Biotics x1 , Painkillers x2, Medpack x1</color>", player, msg);
                break;

            case "kit-scav1":
                server.SendMessageToPlayerLocal("<color=purple>Scavenger-kit 1 costs 500gold and recieves: </color> <color=yellow>Scrap-Vest x1, Shoes x1, </color> <color=white>Machete x1, Knife x1, Revolver x1, 45mm Ammo x20</color> <color=brown> Raw-Meat x 1, Canned-Food x6, Energy-Bar x1,</color> <color=cyan>Beer x2,</color> <color=red>Bandages x3</color>", player, msg);
                break;

            case "kit-scav2":
                server.SendMessageToPlayerLocal("<color=purple>Scavenger-kit 2 costs 500gold and recieves: </color> <color=yellow>Scrap-Vest x1, Sneakers x1, </color> <color=white>Mutant-Claw x1, Crafted-Knife x1, Bow x1, Arrows x32 </color> <color=brown>Cooked-Potatoes x6, Mushrooms x3,</color> <color=cyan>Rum-Bottle x2,</color> <color=red>Bandages x3, Anti-Biotics x1 , Painkillers x2, Medpack x1</color>", player, msg);
                break;

            case "kit-bandit":
                server.SendMessageToPlayerLocal("<color=purple>Bandit-kit costs 500gold and recieves: </color> <color=yellow>Metal-Vest x1, Sneakers x1, </color> <color=white>Katana x1, Knife x1, SMG x1, 9mm Ammo x32 </color> <color=brown>Cooked-Fish x3, Energy-Bar x1,</color> <color=cyan>Rum-Bottle x2, Wine x1, </color> <color=red>Bandages x3, Medpack x1</color>", player, msg);
                break;

            case "kit-guard1":
                server.SendMessageToPlayerLocal("<color=purple>Guardian-kit 1 costs 5000gold and recieves: </color> <color=yellow>Guardian-Vest x1, Sneakers x1, </color> <color=white>Torch x1, Knife x1,</color> <color=brown>Cooked-Potatoes x6, Energy-Bar x1,</color> <color=cyan>Water x2,</color> <color=red>Bandages x3, Anti-Biotics x1 , Painkillers x2, Medpack x1</color>", player, msg);
                break;

            case "kit-guard2":
                server.SendMessageToPlayerLocal("<color=purple>Guardian-kit 2 costs 5000gold and recieves: </color> <color=yellow>Guardian-Vest x1, Sneakers x1, </color> <color=white>Torch x1, Knife x1,</color> <color=brown>Cooked-Potatoes x6, Energy-Bar x1,</color> <color=cyan>Water x2,</color> <color=red>Bandages x3, Anti-Biotics x1 , Painkillers x2, Medpack x1</color>", player, msg);
                break;

            case "kit-guard3":
                server.SendMessageToPlayerLocal("<color=purple>Guardian-kit 3 costs 5000gold and recieves: </color> <color=yellow>Guardian-Vest x1, Sneakers x1, </color> <color=white>Giant-Sword x1, Knife x1, Crowbar x1, AK47 x1, </color> <color=brown>Canned-Food x6, Energy-Bar x1, Soda x1, </color> <color=cyan>Water x2,</color> <color=red>Medpack x1.</color>", player, msg);
                break;

            default:
                break;
            }
        }