Ejemplo n.º 1
0
 public void quitSell(Client Player, string id = null)
 {
     if (API.hasEntityData(Player, "SC_PAY_PLAYER_SELLLIST") == true)
     {
         var l = API.getEntityData(Player, "SC_PAY_PLAYER_SELLLIST");
         if (id == null)
         {
             foreach (var i in l)
             {
                 sellList.Remove(i);
             }
             API.resetEntityData(Player, "SC_PAY_PLAYER_SELLLIST");
         }
         else
         {
             sellInfo p = null;
             foreach (var i in l)
             {
                 if (i.sellID == id)
                 {
                     p = i;
                     break;
                 }
             }
             if (p != null)
             {
                 var pItem = API.getEntityData(Player, "SC_item");
                 var pVeh  = API.getEntityData(Player, "SC_VehicleList");
                 var js    = p.sList;
                 foreach (var i in js)
                 {
                     if (i.itemType != "車輛")
                     {
                         pItem.setItemLock(i.itemID, false);
                     }
                     else
                     {
                         foreach (var v in pVeh)
                         {
                             if (v.getSQLID().ToString() == i.itemID)
                             {
                                 v.setLock(false);
                             }
                         }
                     }
                     //API.getEntityData(Player,"SC_item").addItem(i["itemName"].ToString(),i["itemPz"].ToString(),i["itemMsg"].ToString(),i["itemType"].ToString(),i["itemValue"].ToString(),i["itemID"].ToString());
                 }
                 l.Remove(p);
                 sellList.Remove(p);
             }
         }
         sendSellList();
     }
 }
Ejemplo n.º 2
0
 public void OnClientEvent(Client Player, string eventName, params object[] arguments)     //arguments param can contain multiple params
 {
     if (eventName == "SC_PAY_SELL_GET_ITEMLIST")
     {
         //發送玩家的物品列表
         List <itemInfo> p = new List <itemInfo>();
         var             l = API.getEntityData(Player, "SC_item").getItemList();
         foreach (var i in l)
         {
             if (i.itemLock == false)
             {
                 p.Add(i);
             }
         }
         API.triggerClientEvent(Player, "SC_PAY_SELL_SEND_ITEMLIST", API.toJson(p));
     }
     if (eventName == "SC_PAY_CREATE_SELL")
     {        // 创建出售清单
         var    name     = arguments[0].ToString();
         var    money    = Convert.ToInt32(arguments[1]);
         var    js       = arguments[2].ToString();
         var    pItem    = API.getEntityData(Player, "SC_item");
         var    pVeh     = API.getEntityData(Player, "SC_VehicleList");
         JArray jsonVals = JArray.Parse(js);
         var    sInfo    = new sellInfo(Player.name, name, money);
         foreach (var i in jsonVals)
         {
             var iInfo = new itemInfo(i["itemName"].ToString(), i["itemPz"].ToString(), i["itemMsg"].ToString(), i["itemType"].ToString(), i["itemValue"].ToString(), i["itemID"].ToString());
             if (i["itemType"].ToString() != "車輛")
             {
                 pItem.setItemLock(i["itemID"].ToString(), true);
             }
             else
             {
                 foreach (var v in pVeh)
                 {
                     if (v.getSQLID().ToString() == i["itemID"].ToString())
                     {
                         v.setLock(true);
                     }
                 }
             }
             sInfo.sList.Add(iInfo);
             //API.getEntityData(Player,"SC_item").addItem(i["itemName"].ToString(),i["itemPz"].ToString(),i["itemMsg"].ToString(),i["itemType"].ToString(),i["itemValue"].ToString(),i["itemID"].ToString());
         }
         API.getEntityData(Player, "SC_PAY_PLAYER_SELLLIST").Add(sInfo);
         sellList.Add(sInfo);
         sendSellList();
     }
     if (eventName == "SC_PAY_SELL_QUIT")
     {
         var      list = API.getEntityData(Player, "SC_PAY_PLAYER_SELLLIST");
         var      id   = arguments[0].ToString();
         sellInfo p    = null;
         foreach (var i in list)
         {
             if (i.sellID == id)
             {
                 p = i;
                 break;
             }
         }
         if (p != null)
         {
             if (p.sellEd == false)
             {
                 quitSell(Player, id);
             }
             else
             {
                 API.sendNotificationToPlayer(Player, "清單:" + p.sellName + "撤銷~r~失敗\n~w~原因:清單已被購買,正在結算");
             }
         }
         else
         {
             API.sendNotificationToPlayer(Player, "清單已失效");
         }
     }
     if (eventName == "SC_PAY_SELL_BUY")
     {
         var      id    = arguments[0].ToString();
         var      money = API.getEntityData(Player, "SC_money");
         sellInfo p     = null;
         foreach (var i in sellList)
         {
             if (i.sellID == id)
             {
                 p = i;
                 break;
             }
         }
         if (p != null)
         {
             if (p.sellEd == false)
             {
                 var tar = API.getPlayerFromName(p.sellPlayer);
                 if (tar != null)
                 {
                     if (money.getMoney() >= p.sellMoney)
                     {
                         p.sellEd = true;
                         money.addMoney(-p.sellMoney);
                         API.getEntityData(tar, "SC_money").addMoney(p.sellMoney);
                         API.sendNotificationToPlayer(tar, "清單:" + p.sellName + " ~g~已出售");
                         API.sendNotificationToPlayer(Player, "清單:" + p.sellName + " ~g~已購買");
                         var us = API.getEntityData(Player, "SC_USERINFO");
                         us.setUserInfo("PAYS", us.getUserInfo("PAYS").infoValue + 1);
                         us = API.getEntityData(tar, "SC_USERINFO");
                         us.setUserInfo("PAYS", us.getUserInfo("PAYS").infoValue + 1);
                         var js = p.sList;
                         var z  = API.getEntityData(tar, "SC_item");
                         var pv = API.getEntityData(tar, "SC_VehicleList");
                         List <VehicleDataFunc> vehl = new List <VehicleDataFunc>();
                         foreach (var i in js)
                         {
                             if (i.itemType != "車輛")
                             {
                                 z.changeItemMaster(i.itemID, tar, Player);
                             }
                             else
                             {
                                 foreach (var v in pv)
                                 {
                                     if (v.getSQLID().ToString() == i.itemID)
                                     {
                                         vehl.Add(v);
                                     }
                                 }
                             }
                         }
                         foreach (var v in vehl)
                         {
                             v.changeMaster(Player.name, tar, Player);
                         }
                         sellList.Remove(p);
                     }
                     else
                     {
                         API.sendNotificationToPlayer(Player, "清單:" + p.sellName + "購買~r~失敗\n~w~原因:金錢不足");
                     }
                 }
                 else
                 {
                     API.sendNotificationToPlayer(Player, "清單:" + p.sellName + "購買~r~失敗\n~w~原因:該清單已失效");
                 }
             }
             else
             {
                 API.sendNotificationToPlayer(Player, "清單:" + p.sellName + "購買~r~失敗\n~w~原因:清單已被購買,正在結算");
             }
         }
         else
         {
             API.sendNotificationToPlayer(Player, "清單:" + p.sellName + "購買~r~失敗\n~w~原因:該清單已失效");
         }
         sendSellList();
     }
     if (eventName == "SC_PAY_GET_LISTCHANGE")
     {
         sendSellList(Player, "手動刷新");
     }
 }