From 878fef04122d1feaa0f42c429f364659931bc379 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 25 十一月 2024 19:39:01 +0800
Subject: [PATCH] 10317 【英文】【越南】【BT】【砍树】仙盟传功支持离线

---
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py |   43 ++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 42 insertions(+), 1 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
index 93b6ae1..d9af3a4 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
@@ -3715,6 +3715,8 @@
         __DoChuangong_Response(curPlayer, tagPlayerID, isOK)
         return
     
+    if msgType == "ThanksGift":
+        __DoChuangong_ThanksGift(curPlayer, msgData)
     return
 
 def __CheckChuangongPlayer(curPlayer, tagPlayerID):
@@ -3734,8 +3736,26 @@
 def __DoChuangong_Invite(curPlayer, tagPlayerID):
     ## 邀请
     playerID = curPlayer.GetPlayerID()
-    tagPlayer = __CheckChuangongPlayer(curPlayer, tagPlayerID)
+    curFamily = curPlayer.GetFamily()
+    if not curFamily:
+        return
+    tagMember = curFamily.FindMember(tagPlayerID)
+    if not tagMember:
+        GameWorld.DebugLog("非盟友无法传功! tagPlayerID=%s" % tagPlayerID, curPlayer.GetPlayerID())
+        return
+    tagPlayer = tagMember.GetPlayer()
     if not tagPlayer:
+        clientPack = ChPyNetSendPack.tagGCChuangongStart()
+        clientPack.Clear()
+        clientPack.PlayerID = tagMember.GetPlayerID()
+        clientPack.Name = tagMember.GetName()
+        clientPack.NameLen = len(clientPack.Name)
+        clientPack.LV = tagMember.GetLV()
+        clientPack.Job = tagMember.GetJob()
+        clientPack.RealmLV = tagMember.GetOfficialRank()
+        NetPackCommon.SendFakePack(curPlayer, clientPack)
+        PyGameData.g_chuangongTagPlayerDict[playerID] = tagPlayerID
+        GameWorld.DebugLog("对方离线,则自己直接开始传功: tagPlayerID=%s, %s" % (tagPlayerID, PyGameData.g_chuangongPlayerDict), playerID)
         return
     invitePlayerIDList = PyGameData.g_chuangongPlayerDict.get(playerID, [])
     if tagPlayerID not in invitePlayerIDList:
@@ -3791,6 +3811,27 @@
     clientPack.Job = tagPlayer.GetJob()
     clientPack.RealmLV = tagPlayer.GetOfficialRank()
     NetPackCommon.SendFakePack(curPlayer, clientPack)
+    PyGameData.g_chuangongTagPlayerDict[curPlayer.GetPlayerID()] = tagPlayer.GetPlayerID()
+    return
+
+def __DoChuangong_ThanksGift(curPlayer, msgData):
+    itemID = msgData[0]
+    playerID = curPlayer.GetPlayerID()
+    tagPlayerID = PyGameData.g_chuangongTagPlayerDict.pop(playerID, 0)
+    GameWorld.DebugLog("__DoChuangong_ThanksGift tagPlayerID=%s" % tagPlayerID, playerID)
+    if not tagPlayerID:
+        return
+    curFamily = curPlayer.GetFamily()
+    if not curFamily:
+        return
+    tagMember = curFamily.FindMember(tagPlayerID)
+    if not tagMember:
+        return
+    assistPlayerDict = {tagPlayerID:{"PlayerName":tagMember.GetName(), "Job":tagMember.GetJob(), 
+                                     "LV":tagMember.GetLV(), "RealmLV":tagMember.GetOfficialRank(),
+                                     "Face":tagMember.GetFace(), "FacePic":tagMember.GetFacePic()}}
+    GameWorld.DebugLog("    assistPlayerDict %s" % assistPlayerDict, playerID)
+    PlayerAssist.AddNewAssistThanksEx(curPlayer, itemID, assistPlayerDict)
     return
 
 ##--------------------------------------------------------------------------------------------------

--
Gitblit v1.8.0