From 91c306890bf90cd86de289478762e5ea55c55ff2 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期六, 24 十一月 2018 15:39:36 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/SnxxServerCode
---
ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py | 85 ++++++++++++++++++++++++++++
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py | 10 ++
PySysDB/PySysDBPY.h | 4 +
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_IceLode.py | 39 +++++++++---
PySysDB/PySysDBG.h | 31 ++++++++++
5 files changed, 155 insertions(+), 14 deletions(-)
diff --git a/PySysDB/PySysDBG.h b/PySysDB/PySysDBG.h
index dbe801f..d5d5eba 100644
--- a/PySysDB/PySysDBG.h
+++ b/PySysDB/PySysDBG.h
@@ -115,6 +115,14 @@
dict NotifyInfoDict; //广播提示信息
};
+//副本总表
+
+struct tagFBFunc
+{
+ DWORD _DataMapID; //数据地图ID
+ WORD HelpPoint; //助战仙缘币(0代表不可助战)
+};
+
//副本功能线路表
struct tagFBLine
@@ -209,6 +217,29 @@
DWORD ReFightPower; //战斗力
};
+//VIP特权表
+
+struct tagVipPrivilege
+{
+ DWORD _VIPPriID; //特权ID
+ DWORD VIP0; //VIP0对应的特权值
+ DWORD VIP1; //VIP1对应的特权值
+ DWORD VIP2; //VIP2对应的特权值
+ DWORD VIP3; //VIP3对应的特权值
+ DWORD VIP4; //VIP4对应的特权值
+ DWORD VIP5; //VIP5对应的特权值
+ DWORD VIP6; //VIP6对应的特权值
+ DWORD VIP7; //VIP7对应的特权值
+ DWORD VIP8; //VIP8对应的特权值
+ DWORD VIP9; //VIP9对应的特权值
+ DWORD VIP10; //VIP10对应的特权值
+ DWORD VIP11; //VIP11对应的特权值
+ DWORD VIP12; //VIP12对应的特权值
+ DWORD VIP13; //VIP13对应的特权值
+ DWORD VIP14; //VIP14对应的特权值
+ DWORD VIP15; //VIP15对应的特权值
+};
+
//限时特惠表
struct tagActSpringSale
diff --git a/PySysDB/PySysDBPY.h b/PySysDB/PySysDBPY.h
index aae0d2d..03a904a 100644
--- a/PySysDB/PySysDBPY.h
+++ b/PySysDB/PySysDBPY.h
@@ -519,7 +519,9 @@
DWORD ExtraTimesMWPriID; //额外次数法宝权限ID
BYTE GuardPick; //该地图守护是否能拾取
WORD OfflineTime; //离线多久退出副本(秒)
- WORD HelpPoint; //助战积分(0代表不可助战)
+ WORD FBPoint; //副本过关仙缘币
+ WORD HelpPoint; //助战仙缘币(0代表不可助战)
+ BYTE DayHelpCountMax; //每日手动助战获得仙缘币次数(非镜像)
};
//副本功能线路表
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py b/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py
index c6a03fb..b20b719 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py
@@ -122,6 +122,11 @@
("dict", "NotifyInfoDict", 0),
),
+ "FBFunc":(
+ ("DWORD", "DataMapID", 1),
+ ("WORD", "HelpPoint", 0),
+ ),
+
"FBLine":(
("DWORD", "DataMapID", 1),
("BYTE", "LineID", 1),
@@ -186,6 +191,26 @@
"PlayerLV":(
("WORD", "LV", 1),
("DWORD", "ReFightPower", 0),
+ ),
+
+ "VipPrivilege":(
+ ("DWORD", "VIPPriID", 1),
+ ("DWORD", "VIP0", 0),
+ ("DWORD", "VIP1", 0),
+ ("DWORD", "VIP2", 0),
+ ("DWORD", "VIP3", 0),
+ ("DWORD", "VIP4", 0),
+ ("DWORD", "VIP5", 0),
+ ("DWORD", "VIP6", 0),
+ ("DWORD", "VIP7", 0),
+ ("DWORD", "VIP8", 0),
+ ("DWORD", "VIP9", 0),
+ ("DWORD", "VIP10", 0),
+ ("DWORD", "VIP11", 0),
+ ("DWORD", "VIP12", 0),
+ ("DWORD", "VIP13", 0),
+ ("DWORD", "VIP14", 0),
+ ("DWORD", "VIP15", 0),
),
"ActSpringSale":(
@@ -543,6 +568,17 @@
def GetStateValue(self): return self.StateValue # 状态值
def GetNotifyInfoDict(self): return self.NotifyInfoDict # 广播提示信息
+# 副本总表
+class IPY_FBFunc():
+
+ def __init__(self):
+ self.DataMapID = 0
+ self.HelpPoint = 0
+ return
+
+ def GetDataMapID(self): return self.DataMapID # 数据地图ID
+ def GetHelpPoint(self): return self.HelpPoint # 助战仙缘币(0代表不可助战)
+
# 副本功能线路表
class IPY_FBLine():
@@ -683,6 +719,47 @@
def GetLV(self): return self.LV # 玩家等级
def GetReFightPower(self): return self.ReFightPower # 战斗力
+
+# VIP特权表
+class IPY_VipPrivilege():
+
+ def __init__(self):
+ self.VIPPriID = 0
+ self.VIP0 = 0
+ self.VIP1 = 0
+ self.VIP2 = 0
+ self.VIP3 = 0
+ self.VIP4 = 0
+ self.VIP5 = 0
+ self.VIP6 = 0
+ self.VIP7 = 0
+ self.VIP8 = 0
+ self.VIP9 = 0
+ self.VIP10 = 0
+ self.VIP11 = 0
+ self.VIP12 = 0
+ self.VIP13 = 0
+ self.VIP14 = 0
+ self.VIP15 = 0
+ return
+
+ def GetVIPPriID(self): return self.VIPPriID # 特权ID
+ def GetVIP0(self): return self.VIP0 # VIP0对应的特权值
+ def GetVIP1(self): return self.VIP1 # VIP1对应的特权值
+ def GetVIP2(self): return self.VIP2 # VIP2对应的特权值
+ def GetVIP3(self): return self.VIP3 # VIP3对应的特权值
+ def GetVIP4(self): return self.VIP4 # VIP4对应的特权值
+ def GetVIP5(self): return self.VIP5 # VIP5对应的特权值
+ def GetVIP6(self): return self.VIP6 # VIP6对应的特权值
+ def GetVIP7(self): return self.VIP7 # VIP7对应的特权值
+ def GetVIP8(self): return self.VIP8 # VIP8对应的特权值
+ def GetVIP9(self): return self.VIP9 # VIP9对应的特权值
+ def GetVIP10(self): return self.VIP10 # VIP10对应的特权值
+ def GetVIP11(self): return self.VIP11 # VIP11对应的特权值
+ def GetVIP12(self): return self.VIP12 # VIP12对应的特权值
+ def GetVIP13(self): return self.VIP13 # VIP13对应的特权值
+ def GetVIP14(self): return self.VIP14 # VIP14对应的特权值
+ def GetVIP15(self): return self.VIP15 # VIP15对应的特权值
# 限时特惠表
class IPY_ActSpringSale():
@@ -1066,6 +1143,8 @@
self.ipyFBStateTimeLen = len(self.ipyFBStateTimeCache)
self.ipyFBStateTimeCustomCache = self.__LoadFileData("FBStateTimeCustom", IPY_FBStateTimeCustom)
self.ipyFBStateTimeCustomLen = len(self.ipyFBStateTimeCustomCache)
+ self.ipyFBFuncCache = self.__LoadFileData("FBFunc", IPY_FBFunc)
+ self.ipyFBFuncLen = len(self.ipyFBFuncCache)
self.ipyFBLineCache = self.__LoadFileData("FBLine", IPY_FBLine)
self.ipyFBLineLen = len(self.ipyFBLineCache)
self.ipyFBHelpBattleCache = self.__LoadFileData("FBHelpBattle", IPY_FBHelpBattle)
@@ -1084,6 +1163,8 @@
self.ipyChinNPCLen = len(self.ipyChinNPCCache)
self.ipyPlayerLVCache = self.__LoadFileData("PlayerLV", IPY_PlayerLV)
self.ipyPlayerLVLen = len(self.ipyPlayerLVCache)
+ self.ipyVipPrivilegeCache = self.__LoadFileData("VipPrivilege", IPY_VipPrivilege)
+ self.ipyVipPrivilegeLen = len(self.ipyVipPrivilegeCache)
self.ipyActSpringSaleCache = self.__LoadFileData("ActSpringSale", IPY_ActSpringSale)
self.ipyActSpringSaleLen = len(self.ipyActSpringSaleCache)
self.ipyActFlashGiftbagCache = self.__LoadFileData("ActFlashGiftbag", IPY_ActFlashGiftbag)
@@ -1292,6 +1373,8 @@
def GetFBStateTimeByIndex(self, index): return self.ipyFBStateTimeCache[index]
def GetFBStateTimeCustomCount(self): return self.ipyFBStateTimeCustomLen
def GetFBStateTimeCustomByIndex(self, index): return self.ipyFBStateTimeCustomCache[index]
+ def GetFBFuncCount(self): return self.ipyFBFuncLen
+ def GetFBFuncByIndex(self, index): return self.ipyFBFuncCache[index]
def GetFBLineCount(self): return self.ipyFBLineLen
def GetFBLineByIndex(self, index): return self.ipyFBLineCache[index]
def GetFBHelpBattleCount(self): return self.ipyFBHelpBattleLen
@@ -1310,6 +1393,8 @@
def GetChinNPCByIndex(self, index): return self.ipyChinNPCCache[index]
def GetPlayerLVCount(self): return self.ipyPlayerLVLen
def GetPlayerLVByIndex(self, index): return self.ipyPlayerLVCache[index]
+ def GetVipPrivilegeCount(self): return self.ipyVipPrivilegeLen
+ def GetVipPrivilegeByIndex(self, index): return self.ipyVipPrivilegeCache[index]
def GetActSpringSaleCount(self): return self.ipyActSpringSaleLen
def GetActSpringSaleByIndex(self, index): return self.ipyActSpringSaleCache[index]
def GetActFlashGiftbagCount(self): return self.ipyActFlashGiftbagLen
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_IceLode.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_IceLode.py
index 32dd8df..d46382d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_IceLode.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_IceLode.py
@@ -31,6 +31,7 @@
import EventReport
import ChPyNetSendPack
import NetPackCommon
+import BuffSkill
import random
import datetime
@@ -218,6 +219,7 @@
# @param tick 时间戳
# @return 无意义
def DoExitFB(curPlayer, tick):
+
return
##玩家主动离开副本.
@@ -227,6 +229,12 @@
def DoPlayerLeaveFB(curPlayer, tick):
return
+##玩家切换地图
+def DoPlayerChangeMapLogic(curPlayer):
+ tick = GameWorld.GetGameWorld().GetTick()
+ for buffID in IpyGameDataPY.GetFuncEvalCfg('IceLodeSpecial', 2):
+ BuffSkill.DelBuffBySkillID(curPlayer, buffID, tick)
+ return
def OnPickUpItem(curPlayer, curItem, tick):
return
@@ -448,12 +456,7 @@
return False
return True
-## 执行副本杀怪逻辑
-# @param curPlayer 杀怪的人
-# @param curNPC 被杀的怪
-# @param tick 当前时间
-# @return None
-def DoFB_Player_KillNPC(curPlayer, curNPC, tick):
+def __OnKillNPC(attacker, curNPC, tick):
gameFB = GameWorld.GetGameFB()
npcid = curNPC.GetNPCID()
npcCfg = GetIceLodeNPCCfg()
@@ -468,8 +471,22 @@
remainNPCCnt = max(0, gameFB.GetGameFBDictByKey(FBPlayerDict_RemainNPCCnt) - 1)
gameFB.SetGameFBDict(FBPlayerDict_RemainNPCCnt, remainNPCCnt)
- if remainNPCCnt <=0:
+ if remainNPCCnt <=0 or npcid in IpyGameDataPY.GetFuncEvalCfg('IceLodeSpecial'):
__DoIceLodeOver(True)
+ return
+
+def DoFB_Npc_KillNPC(attacker, curNPC, tick):
+ __OnKillNPC(attacker, curNPC, tick)
+ return
+
+## 执行副本杀怪逻辑
+# @param curPlayer 杀怪的人
+# @param curNPC 被杀的怪
+# @param tick 当前时间
+# @return None
+def DoFB_Player_KillNPC(curPlayer, curNPC, tick):
+ __OnKillNPC(curPlayer, curNPC, tick)
+
# addPoint = GetPointByNPCID(npcid)
# if not addPoint:
@@ -562,10 +579,10 @@
FBCommon.Sync_Player_TimeTick(IPY_GameWorld.tttLeaveMap, FBCommon.GetFBLineStepTime(mapID)[Def_LeaveTime] * 1000)
# 清怪,关闭刷怪
- FBCommon.ClearFBNPC()
- npcCfg = GetIceLodeNPCCfg()
- for npcInfo in npcCfg:
- NPCCustomRefresh.CloseNPCRefresh(npcInfo[Def_RefreshMark], tick)
+# FBCommon.ClearFBNPC()
+# npcCfg = GetIceLodeNPCCfg()
+# for npcInfo in npcCfg:
+# NPCCustomRefresh.CloseNPCRefresh(npcInfo[Def_RefreshMark], tick)
return
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index de72342..eadc205 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -437,7 +437,9 @@
("DWORD", "ExtraTimesMWPriID", 0),
("BYTE", "GuardPick", 0),
("WORD", "OfflineTime", 0),
+ ("WORD", "FBPoint", 0),
("WORD", "HelpPoint", 0),
+ ("BYTE", "DayHelpCountMax", 0),
),
"FBLine":(
@@ -1950,7 +1952,9 @@
self.ExtraTimesMWPriID = 0
self.GuardPick = 0
self.OfflineTime = 0
- self.HelpPoint = 0
+ self.FBPoint = 0
+ self.HelpPoint = 0
+ self.DayHelpCountMax = 0
return
def GetDataMapID(self): return self.DataMapID # 数据地图ID
@@ -1964,7 +1968,9 @@
def GetExtraTimesMWPriID(self): return self.ExtraTimesMWPriID # 额外次数法宝权限ID
def GetGuardPick(self): return self.GuardPick # 该地图守护是否能拾取
def GetOfflineTime(self): return self.OfflineTime # 离线多久退出副本(秒)
- def GetHelpPoint(self): return self.HelpPoint # 助战积分(0代表不可助战)
+ def GetFBPoint(self): return self.FBPoint # 副本过关仙缘币
+ def GetHelpPoint(self): return self.HelpPoint # 助战仙缘币(0代表不可助战)
+ def GetDayHelpCountMax(self): return self.DayHelpCountMax # 每日手动助战获得仙缘币次数(非镜像)
# 副本功能线路表
class IPY_FBLine():
--
Gitblit v1.8.0