From b6016259ace37e60f374999ccf850bd250553321 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 14 十二月 2021 16:57:13 +0800
Subject: [PATCH] 9391 【主干】【后端】红包主干摘取调整(去除开服红包;去除全服红包次数及权限限制;优化红包系统分类;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetRedPacket.py |   65 +++++++++++++++++++-------------
 1 files changed, 38 insertions(+), 27 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetRedPacket.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetRedPacket.py
index 144063a..1adeb81 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetRedPacket.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetRedPacket.py
@@ -22,6 +22,16 @@
 import IpyGameDataPY
 import PlayerSuccess
 import ChConfig
+import ShareDefine
+
+def __Help(curPlayer):
+    GameWorld.DebugAnswer(curPlayer, "---------------------------")
+    GameWorld.DebugAnswer(curPlayer, "清所有红包:SetRedPacket 0")
+    GameWorld.DebugAnswer(curPlayer, "清指定红包:SetRedPacket 0 类型A 类型B ...")
+    GameWorld.DebugAnswer(curPlayer, "发指定红包:SetRedPacket 1 红包编号 个数")
+    GameWorld.DebugAnswer(curPlayer, "设置抢红包:SetRedPacket 2 红包功能  可抢数 已抢额度")
+    GameWorld.DebugAnswer(curPlayer, "红包功能:1-开服红包;2-节日红包")
+    return
 
 ## GM命令执行入口
 #  @param curPlayer 当前玩家
@@ -30,39 +40,44 @@
 #  @remarks 函数详细说明.
 def OnExec(curPlayer, paramList):
     if not paramList:
-        GameWorld.DebugAnswer(curPlayer, "---------------------------")
-        GameWorld.DebugAnswer(curPlayer, "清所有红包:SetRedPacket 0")
-        GameWorld.DebugAnswer(curPlayer, "清指定红包:SetRedPacket 0 类型A 类型B ...")
-        GameWorld.DebugAnswer(curPlayer, "发全服红包:SetRedPacket 36 红包编号 个数")
-        GameWorld.DebugAnswer(curPlayer, "类型:36-全服红包;33-节日成就")
-        GameWorld.DebugAnswer(curPlayer, "全服红包编号:126~130")
-        GameWorld.DebugAnswer(curPlayer, "设置红包:SetRedPacket 功能  可抢数 已抢额度")
-        GameWorld.DebugAnswer(curPlayer, "红包功能:1-开服红包;2-节日红包")
+        __Help(curPlayer)
         return
     
-    sendGameServer = False
+    isSendGameServer = False
     paramA = paramList[0]
     # 重置所有红包数据
     if paramA == 0:
-        sendGameServer = True
+        isSendGameServer = True
         __DOResetSuccRedPack(curPlayer)
         __DoResetRedPackFunc(curPlayer, 1, None, 0)
         __DoResetRedPackFunc(curPlayer, 2, None, 0)
         
-    elif paramA in [1, 2]:
-        if len(paramList) == 3:
-            redPackFuncType, grabCount, grabMoney = paramList
-            __DoResetRedPackFunc(curPlayer, redPackFuncType, grabCount, grabMoney)
+    # 发指定红包
+    elif paramA == 1 and len(paramList) > 1:
+        redPacketID = paramList[1]
+        ipyData = IpyGameDataPY.GetIpyGameData('FamilyRedPack', redPacketID)
+        if not ipyData:
+            GameWorld.DebugAnswer(curPlayer, "不存在该红包! %s" % redPacketID)
             return
-    else:
-        sendGameServer = True
+        getType = ipyData.GetGetType()
+        if not getType:
+            return
+        getWayType = PlayerFamilyRedPacket.GetRedPackGetWayType(getType)
+        if getWayType == ShareDefine.RedPackWayType_Family or getType == ShareDefine.RedPackType_FeastSucc:
+            if not PlayerFamilyRedPacket.CreatRedPacketByID(curPlayer, redPacketID):
+                GameWorld.DebugAnswer(curPlayer, "###发送红包失败,详见地图日志! %s" % redPacketID)
+            return
+        isSendGameServer = True
         
-    if sendGameServer:
-        paramStr = ""
-        for param in paramList:
-            paramStr += " %s" % param
-        curPlayer.GameServer_GMCmd("SetRedPacket%s" % paramStr) # 发送到GameServer清除红包
-    return
+    # 设置抢红包
+    elif paramA == 2 and len(paramList) == 4:
+        redPackFuncType, grabCount, grabMoney = paramList[1:]
+        __DoResetRedPackFunc(curPlayer, redPackFuncType, grabCount, grabMoney)
+        return
+    else:
+        return
+    
+    return isSendGameServer
 
 def __DOResetSuccRedPack(curPlayer):
     ## 重置红包成就发放记录,不重置进度
@@ -91,11 +106,7 @@
 
 def __DoResetRedPackFunc(curPlayer, redPackFuncType, grabCount, grabMoney):
     if redPackFuncType == 1:
-        if not isinstance(grabCount, int):
-            grabCount = IpyGameDataPY.GetFuncCfg('OpenServerRedPacketCfg', 5)
-        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OSRedPacketCanGrabCnt, grabCount)
-        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OSRedPacketGrabMoney, grabMoney)
-        PlayerFamilyRedPacket.NotifyOSRedPacket(curPlayer)
+        pass
     elif redPackFuncType == 2:
         if not isinstance(grabCount, int):
             grabCount = IpyGameDataPY.GetFuncCfg('FeastRedPacket', 1)

--
Gitblit v1.8.0