From 789490b7d362160f7fca4580df6176498e1eb271 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 15 十一月 2024 15:19:13 +0800
Subject: [PATCH] 10302 【越南】【英语】【砍树】【tqxbqy】【btgotq】仙缘-服务端

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerZhanling.py |   61 +++++++++++++++++++++---------
 1 files changed, 42 insertions(+), 19 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerZhanling.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerZhanling.py
index 4e4c966..7a0f828 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerZhanling.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerZhanling.py
@@ -16,6 +16,7 @@
 #-------------------------------------------------------------------------------
 
 import GameWorld
+import ShareDefine
 import NetPackCommon
 import IpyGameDataPY
 import PlayerControl
@@ -31,15 +32,17 @@
 
 # 战令类型
 ZhanlingTypeList = (
-ZhanlingType_LV,
-ZhanlingType_Realm,
-ZhanlingType_SkyTower,
-ZhanlingType_GubaoStar,
-ZhanlingType_Login,
-ZhanlingType_GatherTheSoulLV,
-ZhanlingType_HorsePetTrain,
-ZhanlingType_GubaoTrain,
-) = range(1, 1 + 8)
+ZhanlingType_LV, # 等级 1
+ZhanlingType_Realm, # 境界 2
+ZhanlingType_SkyTower, # 天星塔 3
+ZhanlingType_GubaoStar, # 古宝总星数 4
+ZhanlingType_Login, # 登录 5
+ZhanlingType_GatherTheSoulLV, # 聚魂 6
+ZhanlingType_HorsePetTrain, # 骑宠养成 7
+ZhanlingType_GubaoTrain, # 古宝养成 8
+ZhanlingType_Xianyuan, # 仙缘 9
+ZhanlingType_Huanjingge, # 幻境阁 10
+) = range(1, 1 + 10)
 
 def OnPlayerLogin(curPlayer):
     for zhanlingType in ZhanlingTypeList:
@@ -96,6 +99,9 @@
     updStateH = GameWorld.SetBitValue(stateH, zhanlingType, 0)
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ZhanlingState, updState)
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ZhanlingStateH, updStateH)
+    if zhanlingType == ZhanlingType_Xianyuan:
+        backValue = PlayerControl.GetMoney(curPlayer, ShareDefine.TYPE_Price_XianyuanScore)
+        PlayerControl.SetMoney(curPlayer, ShareDefine.TYPE_Price_XianyuanScore, 0)
     GameWorld.Log("重置战令: zhanlingType=%s,backValue=%s,state=(%s to %s) stateH=(%s to %s)" 
                   % (zhanlingType, backValue, state, updState, stateH, updStateH), curPlayer.GetPlayerID())
     
@@ -154,6 +160,25 @@
     PlayerControl.SendMailByKey("ZhanlingRewardUnget", [playerID], itemList, paramList)
     return
 
+def AddZhanlingValue(curPlayer, zhanlingType, addValue=1):
+    if zhanlingType not in [ZhanlingType_Huanjingge]:
+        return
+    curValue = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ZhanlingValue1 % zhanlingType)
+    updValue = min(ChConfig.Def_UpperLimit_DWord, curValue + addValue)
+    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ZhanlingValue1 % zhanlingType, updValue)
+    GameWorld.DebugLog("增加战令进度: zhanlingType=%s,addValue=%s,curValue=%s,updValue=%s" 
+                       % (zhanlingType, addValue, curValue, updValue), curPlayer.GetPlayerID())
+    SyncZhanlingInfo(curPlayer, zhanlingType, [])
+    return updValue
+
+def SetZhanlingValue(curPlayer, zhanlingType, value1):
+    if zhanlingType not in [ZhanlingType_Huanjingge]:
+        return
+    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ZhanlingValue1 % zhanlingType, value1)
+    GameWorld.DebugLog("设置战令进度: zhanlingType=%s,value1=%s" % (zhanlingType, value1), curPlayer.GetPlayerID())
+    SyncZhanlingInfo(curPlayer, zhanlingType, [])
+    return value1
+
 def GetZhanlingReward(curPlayer, zhanlingType, rewardID):
     ## 领取战令奖励
     rewardID = GameWorld.ToIntDef(rewardID)
@@ -184,6 +209,10 @@
         curValue = PlayerActHorsePetTrain.GetActHorsePetTrainScore(curPlayer)
     elif zhanlingType == ZhanlingType_GubaoTrain:
         curValue = PlayerActGubao.GetActGubaoTrainScore(curPlayer)
+    elif zhanlingType == ZhanlingType_Xianyuan:
+        curValue = PlayerControl.GetMoney(curPlayer, ShareDefine.TYPE_Price_XianyuanScore)
+    elif zhanlingType == ZhanlingType_Huanjingge:
+        curValue = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ZhanlingValue1 % zhanlingType)
     else:
         return
         
@@ -223,7 +252,7 @@
     
     # 更新已领取成功标记
     GameWorld.SetDictValueByBit(curPlayer, rewardKey, rewardIndex, 1, True, [zhanlingType])
-    SyncZhanlingInfo(curPlayer, zhanlingType, ipyData)
+    SyncZhanlingInfo(curPlayer, zhanlingType, [ipyData])
     GameWorld.DebugLog("领取战令奖励: zhanlingType=%s,needValue=%s,rewardType=%s,itemList=%s" % (zhanlingType, needValue, rewardType, itemList), playerID)
     
     # 给物品
@@ -232,17 +261,11 @@
         
     return
 
-def SyncZhanlingInfo(curPlayer, zhanlingType, ipyData=None):
+def SyncZhanlingInfo(curPlayer, zhanlingType, ipyDataList=None):
     
-    ipyDataList = []
-    if ipyData == None:
+    if ipyDataList == None:
         ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition("Zhanling", {"ZhanlingType":zhanlingType}, True)
-    else:
-        ipyDataList = [ipyData]
-        
-    if not ipyDataList:
-        return
-            
+         
     rewardList = []
     for ipyData in ipyDataList:
         rewardIndex = ipyData.GetRewardIndex()

--
Gitblit v1.8.0