Beispiel #1
0
 ///-----------------\\\
 // [ ON ITEM CRAFT ] \\
 ///-----------------\\\
 #region [ ON ITEM CRAFT ]
 private void OnItemCraft(ItemCraftTask task, BasePlayer player, BasePlayer crafter)
 {
     if (!PlayerExists(player))
     {
         InitPlayerData(player);
     }
     if (!playerSkinData.Players[player.userID].skinIDS.Contains(task.skinID.ToString()) && task.skinID != 0)
     {
         InternalItemInfo e = new InternalItemInfo();
         int skinIDIndex    = skinListIDS.IndexOf(Convert.ToUInt32(task.skinID));
         e.Shortname = skinListSHORTNAMES[skinIDIndex];
         if (skinListWIDS[skinIDIndex] > 0)
         {
             e.SkinWID = skinListWIDS[skinIDIndex];
         }
         else
         {
             e.SkinWID = skinListIDS[skinIDIndex];
         }
         e.SkinID = skinListIDS[skinIDIndex];
         playerSkinData.Players[player.userID].skinWIDS.Add(e.SkinWID.ToString());
         playerSkinData.Players[player.userID].skinIDS.Add(e.SkinID.ToString());
         playerSkinData.Players[player.userID].skinShortnames.Add(e.Shortname.ToString());
         playerSkinData.Players[player.userID].skinNames.Add(skinListNAMES[skinIDIndex]);
         PrintMessage(player, "SkinAddOnCraft", skinListNAMES[skinIDIndex], e.SkinID, playerSkinData.Players[player.userID].skinIDS.Count);
     }
 }
        private void AddSet(BasePlayer player, string arg)
        {
            if (!player.IsConnected)
            {
                return;
            }
            if (string.IsNullOrEmpty(arg))
            {
                PrintToChat(player, Lang("SetAddUsage", player.UserIDString)); return;
            }
            if (player.inventory.containerWear.itemList.Count == 0)
            {
                PrintToChat(player, Lang("NoItems", player.UserIDString)); return;
            }

            int count = SetCount(player);

            if (!permission.UserHasPermission(player.UserIDString, PERMISSION_VIP) &&
                count >= Convert.ToInt16(Config["Limits", "Limit"]))
            {
                PrintToChat(player, Lang("MaxSets", player.UserIDString, Config["Limits", "Limit"].ToString()));
                return;
            }
            else if (permission.UserHasPermission(player.UserIDString, PERMISSION_VIP) &&
                     count >= Convert.ToInt16(Config["Limits", "LimitVIP"]))
            {
                PrintToChat(player, Lang("MaxSets", player.UserIDString, Config["Limits", "LimitVIP"].ToString()));
                return;
            }

            string setname = arg.ToLower();

            if (SetExistsFromName(player, setname))
            {
                PrintToChat(player, Lang("SetAlreadyExists", player.UserIDString, setname)); return;
            }

            SetInfo newSet = new SetInfo();

            newSet.OwnerID   = player.userID;
            newSet.Name      = setname;
            newSet.TimesUsed = 0;
            newSet.LastUsed  = UnixTimestamp();
            newSet.ID        = SetsNextID();
            newSet.Public    = false;
            int itemsToAdd = 0;

            foreach (var wearItem in player.inventory.containerWear.itemList)
            {
                if (ReturnIngredients(wearItem.info) == null)
                {
                    continue;
                }
                InternalItemInfo setItem = new InternalItemInfo();
                setItem.Shortname = wearItem.info.shortname;
                setItem.SkinID    = wearItem.skin;
                newSet.Contents.Add(setItem);
                itemsToAdd++;
            }
            if (itemsToAdd != 0)
            {
                Sets.Add(newSet); PrintToChat(player, Lang("SetAdded", player.UserIDString, newSet.Name, newSet.Name));
            }
            else
            {
                PrintToChat(player, Lang("NoItems", player.UserIDString));
            }
        }
Beispiel #3
0
 private void setsCommand(BasePlayer player, string command, string[] args)
 {
     if (permission.UserHasPermission(player.net.connection.userid.ToString(), "MagicSets.able"))
     {
         if (!PlayerExists(player))
         {
             InitPlayerData(player);
         }
         if (args.Length == 0 || args.Length > 3)
         {
             PrintToChat(player, Lang("NoValue", player.UserIDString));
         }
         else if (args[0] == "clear")
         {
             int count = playerSetData.Players[player.userID].Sets.Count;
             if (count == 0)
             {
                 PrintToChat(player, Lang("NoSets", player.UserIDString)); return;
             }
             playerSetData.Players[player.userID].Sets.Clear();
             PrintToChat(player, Lang("ClearSuccess", player.UserIDString, count.ToString()));
         }
         else if (args[0] == "add")
         {
             if (args.Length == 2)
             {
                 if (!permission.UserHasPermission(player.net.connection.userid.ToString(), "MagicSets.vip") && playerSetData.Players[player.userID].Sets.Count >= Convert.ToInt16(Config["Settings", "SetLimit"]))
                 {
                     PrintToChat(player, Lang("MaxSets", player.UserIDString, Config["Settings", "SetLimit"].ToString())); return;
                 }
                 else if (permission.UserHasPermission(player.net.connection.userid.ToString(), "MagicSets.vip") && playerSetData.Players[player.userID].Sets.Count >= Convert.ToInt16(Config["Settings", "SetLimitVIP"]))
                 {
                     PrintToChat(player, Lang("MaxSets", player.UserIDString, Config["Settings", "SetLimitVIP"].ToString())); return;
                 }
                 if (player.inventory.containerWear.itemList.Count >= 1)
                 {
                     SetInfo z       = new SetInfo();
                     string  setname = args[1];
                     z.Name = setname;
                     if (playerSetData.Players[player.userID].Sets.ContainsKey(setname))
                     {
                         PrintToChat(player, Lang("SetAlreadyExists", player.UserIDString, setname)); return;
                     }
                     foreach (var wearItem in player.inventory.containerWear.itemList)
                     {
                         if (ReturnIngredients(wearItem.info) == null)
                         {
                             break;
                         }
                         InternalItemInfo e = new InternalItemInfo();
                         e.Shortname = wearItem.info.shortname;
                         e.SkinID    = wearItem.skin;
                         z.Items.Add(e);
                     }
                     PrintToChat(player, Lang("SetAdded", player.UserIDString, z.Name, z.Name));
                     playerSetData.Players[player.userID].Sets.Add(setname, z);
                 }
                 else
                 {
                     PrintToChat(player, Lang("NoItems", player.UserIDString));
                 }
             }
             else
             {
                 PrintToChat(player, Lang("SetAddUsage", player.UserIDString));
             }
         }
         else if (args[0] == "remove")
         {
             if (args.Length == 2)
             {
                 string setname = args[1];
                 if (!playerSetData.Players[player.userID].Sets.ContainsKey(setname))
                 {
                     PrintToChat(player, Lang("SetNotExist", player.UserIDString, setname)); return;
                 }
                 playerSetData.Players[player.userID].Sets.Remove(setname);
                 PrintToChat(player, Lang("SetRemoved", player.UserIDString, setname));
             }
             else
             {
                 PrintToChat(player, Lang("RemoveUsage", player.UserIDString));
             }
         }
         else if (args[0] == "list")
         {
             if (playerSetData.Players[player.userID].Sets.Count == 0)
             {
                 PrintToChat(player, Lang("NoSets", player.UserIDString)); return;
             }
             int count = 1;
             foreach (var set in playerSetData.Players[player.userID].Sets.Values)
             {
                 string items = "";
                 foreach (var item in set.Items)
                 {
                     items = items + " | " + item.Shortname + "<color=yellow> [WID: " + item.SkinID + "]</color>";
                 }
                 PrintToChat(player, Lang("ListFormat", player.UserIDString, count.ToString(), set.Name, items));
                 count++;
             }
         }
         else if (args[0] == "create")
         {
             if (args.Length == 2)
             {
                 string setname = args[1];
                 Dictionary <ItemDefinition, float> Costs = new Dictionary <ItemDefinition, float>();
                 if (!playerSetData.Players[player.userID].Sets.ContainsKey(setname))
                 {
                     PrintToChat(player, Lang("SetNotExist", player.UserIDString, setname)); return;
                 }
                 foreach (InternalItemInfo item in playerSetData.Players[player.userID].Sets[setname].Items)
                 {
                     List <ItemAmount> ingred = ReturnIngredients(ItemManager.FindItemDefinition(item.Shortname));
                     foreach (ItemAmount ingredients in ingred)
                     {
                         if (!Costs.ContainsKey(ingredients.itemDef))
                         {
                             Costs.Add(ingredients.itemDef, ingredients.amount);
                         }
                         else
                         {
                             Costs[ingredients.itemDef] += ingredients.amount;
                         }
                     }
                 }
                 int item_amount_to_total = Costs.Count;
                 int has_items            = 0;
                 foreach (var c in Costs)
                 {
                     if (HasItem(player, c.Key.shortname, Convert.ToInt32(c.Value)))
                     {
                         has_items++;
                     }
                 }
                 if (has_items == item_amount_to_total)
                 {
                     foreach (var c in Costs)
                     {
                         TakeItem(player, c.Key.shortname, Convert.ToInt32(c.Value));
                     }
                     foreach (InternalItemInfo item in playerSetData.Players[player.userID].Sets[setname].Items)
                     {
                         GiveSetItem(player, ItemManager.FindItemDefinition(item.Shortname).itemid, item.SkinID, 1);
                     }
                     PrintToChat(player, Lang("SetCreated", player.UserIDString, setname));
                 }
                 else
                 {
                     PrintToChat(player, Lang("NotEnoughResources", player.UserIDString, setname));
                 }
             }
             else
             {
                 PrintToChat(player, Lang("SetsCreateUsage", player.UserIDString));
             }
         }
         else
         {
             PrintToChat(player, Lang("NoValue", player.UserIDString));
         }
     }
 }