From ef5751c8eb642ca7371d48c9a50be89212a4d722 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 03 六月 2019 19:48:28 +0800
Subject: [PATCH] 7064 【后端】【2.0】后端给绑玉防范处理(扣绑玉默认扣仙玉,屏蔽给绑玉并输出流向)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py          |    4 +-
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py              |    7 +++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetMoney.py        |    9 +++-
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/Item_SkillBook.py |    1 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py        |   36 ++++++------------
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py                    |    9 +---
 6 files changed, 30 insertions(+), 36 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index e4ef773..7adbf10 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -263,7 +263,7 @@
 Def_ItemID_FamilyContribution = 26               # 直接给战盟贡献点
 Def_ItemID_FamilyActive = 28               # 直接给战盟活跃点
 Def_ItemID_SP = 29               # 直接给sp
-Def_ItemID_GoldPaper = 30               # 直接给绑玉
+#Def_ItemID_GoldPaper = 30               # 直接给绑玉
 Def_ItemID_RealmPoint = 24               # 直接给修行点
 Def_ItemID_BossReborn = 21               # 直接给boss复活点
 Def_ItemID_Ysog = 4306               # 直接给符印融合石
@@ -271,7 +271,7 @@
 Def_ItemID_SoulSplinters = 701               # 直接给聚魂碎片
 Def_ItemID_SoulCore = 702               # 直接给核心环
 Def_ItemID_Honor = 2141               # 直接给荣誉
-Def_TransformItemIDList = [Def_ItemID_FamilyContribution, Def_ItemID_FamilyActive, Def_ItemID_SP, Def_ItemID_GoldPaper, 
+Def_TransformItemIDList = [Def_ItemID_FamilyContribution, Def_ItemID_FamilyActive, Def_ItemID_SP, #Def_ItemID_GoldPaper, 
                            Def_ItemID_RealmPoint, Def_ItemID_SilverMoney, Def_ItemID_BossReborn, Def_ItemID_Ysog,
                            Def_ItemID_SoulDust, Def_ItemID_SoulSplinters, Def_ItemID_SoulCore, Def_ItemID_Honor, Def_ItemID_GoldMoney]
 #---------------------------------------------------------------------
@@ -807,11 +807,6 @@
 #内网GM等级
 Def_GM_LV_God = 90
 #---------------------------------------------------------------------
-#游戏中所有的金钱类型
-Def_MoneyType_All = [IPY_GameWorld.TYPE_Price_Gold_Money,     # 元宝
-                     IPY_GameWorld.TYPE_Price_Gold_Paper,     # 礼券
-                     IPY_GameWorld.TYPE_Price_Silver_Money,   # 银子
-                     ]
 
 #客户端心跳响应封包间隔(毫秒)
 Def_PlayerOnLineReply_ClientReply = 30000    #30000  
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py
index ba57c0f..d9b5574 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py
@@ -842,6 +842,13 @@
         
     return
 
+## 获得金钱失败
+def DR_GiveMoneyError(curPlayer, priceType, value, giveType, addDataDict):
+    dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), 
+                'AccID':curPlayer.GetAccID(), "GiveType":giveType, "GiveValue":value, "AddDataDict":addDataDict}
+    SendEventPack("GiveMoneyError_%s" % priceType, dataDict, curPlayer)
+    return
+
 ## 获得物品
 #  @param curPlayer: 玩家实例
 #  @param eventName: 功能事件名
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetMoney.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetMoney.py
index 016aee6..790f9ea 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetMoney.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetMoney.py
@@ -52,11 +52,16 @@
     #0文不处理
     if moneyCount < 0:
         return
+    isOK = False
     playerMoney = PlayerControl.GetMoney(curPlayer, moneyType)
     if playerMoney > moneyCount:
-        PlayerControl.PayMoney(curPlayer, moneyType, playerMoney - moneyCount, ChConfig.Def_Cost_GM, {ChConfig.Def_Cost_Reason_SonKey:"SetMoney"})
+        isOK = PlayerControl.PayMoney(curPlayer, moneyType, playerMoney - moneyCount, ChConfig.Def_Cost_GM, {ChConfig.Def_Cost_Reason_SonKey:"SetMoney"})
     elif playerMoney < moneyCount:
-        PlayerControl.GiveMoney(curPlayer, moneyType, moneyCount - playerMoney, ChConfig.Def_GiveMoney_GM, {ChConfig.Def_Give_Reason_SonKey:"SetMoney"})
+        isOK = PlayerControl.GiveMoney(curPlayer, moneyType, moneyCount - playerMoney, ChConfig.Def_GiveMoney_GM, {ChConfig.Def_Give_Reason_SonKey:"SetMoney"})
+    else:
+        isOK = True
+    if not isOK:
+        GameWorld.DebugAnswer(curPlayer, "设置玩家货币失败,详见日志或流向")
         
     return
         
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
index ba8e28f..42e6a88 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
@@ -1017,8 +1017,8 @@
             PlayerControl.GiveMoney(curPlayer, ShareDefine.TYPE_Price_FamilyActivity, itemCount)
         elif itemID == ChConfig.Def_ItemID_SP:
             PlayerControl.PlayerAddZhenQi(curPlayer, itemCount)
-        elif itemID == ChConfig.Def_ItemID_GoldPaper:
-            PlayerControl.GiveMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Paper, itemCount)
+        #elif itemID == ChConfig.Def_ItemID_GoldPaper:
+        #    PlayerControl.GiveMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Paper, itemCount, eventName, addDict)
         elif itemID == ChConfig.Def_ItemID_RealmPoint:
             PlayerControl.GiveMoney(curPlayer, ShareDefine.TYPE_Price_RealmPoint, itemCount)
         elif itemID == ChConfig.Def_ItemID_BossReborn:
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/Item_SkillBook.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/Item_SkillBook.py
index 4bf62a6..b48b299 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/Item_SkillBook.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/Item_SkillBook.py
@@ -109,7 +109,6 @@
     
     if skillLVNeedMoneyCount > 0:
         #付钱
-        skillLVNeedMoneyType = PlayerControl.ChangeMoneyType(curPlayer, skillLVNeedMoneyType)
         if not PlayerControl.PayMoney(curPlayer, skillLVNeedMoneyType, skillLVNeedMoneyCount):
             return False
         
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
index 5fd7c7e..9a1a4cb 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -2663,22 +2663,6 @@
     return playerlist
 
 #---------------------------------------------------------------------
-##转变付费货币类型
-# @param curPlayer 玩家实例
-# @param moneyType 货币类型 1表示金子,2表示金票,3表示银子,4表示银票, 5:金子/金票 6:银子/银票
-# @return 返回值, 货币类型
-# @remarks 转变付费货币类型 
-def ChangeMoneyType(curPlayer, moneyType):
-#    if moneyType == 5:
-#        return curPlayer.GetUseGoldType()
-#    
-#    if moneyType == 6:
-#        return curPlayer.GetUseSilverType()
-    if moneyType not in ChConfig.Def_MoneyType_All:
-        GameWorld.ErrLog("金钱类型填写错误 %s" % moneyType)
-        
-    return moneyType
-#---------------------------------------------------------------------
 ##获取玩家货币数
 # @param curPlayer 玩家实例
 # @param TYPE_Price ,货币类型
@@ -2887,6 +2871,9 @@
         GameWorld.Log('###---扣钱异常 = %s' % (price), curPlayer.GetPlayerID())
         return False
     
+    if type_Price == IPY_GameWorld.TYPE_Price_Gold_Paper:
+        type_Price = IPY_GameWorld.TYPE_Price_Gold_Money #新版无绑玉,原先绑玉再仙玉的扣法改成 扣仙玉 2019/6/3
+        
     #金子支付
     if type_Price == IPY_GameWorld.TYPE_Price_Gold_Money:
         curPlayerGold = curPlayer.GetGold()
@@ -3155,13 +3142,13 @@
             GiveMoney(curPlayer, ShareDefine.TYPE_Price_BourseMoney, value)
             addDataDict["BourseMoney"] = GetMoney(curPlayer, ShareDefine.TYPE_Price_BourseMoney)
             
-    elif priceType == IPY_GameWorld.TYPE_Price_Gold_Paper:
-        if curPlayer.GetGoldPaper() + value > ChConfig.Def_PlayerTotalMoney_Gold:
-            #超过金钱上限
-            NotifyCode(curPlayer, "MoneyIsFull", [priceType])
-            return
-        
-        curPlayer.SetGoldPaper(curPlayer.GetGoldPaper() + value)
+#    elif priceType == IPY_GameWorld.TYPE_Price_Gold_Paper:
+#        if curPlayer.GetGoldPaper() + value > ChConfig.Def_PlayerTotalMoney_Gold:
+#            #超过金钱上限
+#            NotifyCode(curPlayer, "MoneyIsFull", [priceType])
+#            return
+#        
+#        curPlayer.SetGoldPaper(curPlayer.GetGoldPaper() + value)
         
     elif priceType == IPY_GameWorld.TYPE_Price_Silver_Money:
         # 金钱支持超过20亿, 暂不做上限控制
@@ -3191,7 +3178,8 @@
             PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_GetRealmPoint, value)
             EventShell.EventRespons_GetRealmPoint(curPlayer)
     else:
-        GameWorld.Log("金钱类型错误, priceType = %s" % (priceType), curPlayer.GetPlayerID())
+        GameWorld.ErrLog("金钱类型错误, priceType=%s,value=%s,giveType=%s" % (priceType, value, giveType), curPlayer.GetPlayerID())
+        DataRecordPack.DR_GiveMoneyError(curPlayer, priceType, value, giveType, addDataDict)
         return
     
     if isSysHint and priceType != ShareDefine.TYPE_Price_BourseMoney:

--
Gitblit v1.8.0