From 5925409bdea13d819e4e4356a51043de5f3f9bd8 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 22 十月 2025 14:20:10 +0800
Subject: [PATCH] 16 卡牌服务端(删除神兵)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFeastWeekParty.py | 2
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py | 33 ---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py | 116 --------------
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py | 112 --------------
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWeekParty.py | 2
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py | 19 --
/dev/null | 35 ----
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini | 16 --
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/EventReport.py | 48 ------
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py | 33 ----
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py | 2
PySysDB/PySysDBPY.h | 13 -
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py | 22 --
13 files changed, 11 insertions(+), 442 deletions(-)
diff --git a/PySysDB/PySysDBPY.h b/PySysDB/PySysDBPY.h
index f263862..6ff7600 100644
--- a/PySysDB/PySysDBPY.h
+++ b/PySysDB/PySysDBPY.h
@@ -531,19 +531,6 @@
DWORD ActivateSkillID; //激活技能ID
};
-//神兵表 #tagGodWeapon
-
-struct tagGodWeapon
-{
- WORD _Type; //神兵类型
- WORD _LV; //等级
- DWORD Exp;
- list AttrType; //属性类型
- list AttrNum; //属性值
- DWORD SkillID; //激活技能ID
- char SysMark; //系统提示
-};
-
//功能配置表格 #tagFuncConfig
struct tagFuncConfig
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini
index 7c35c77..112edb6 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini
@@ -763,22 +763,6 @@
PacketSubCMD_6=
PacketCallFunc_6=
-;神器
-[PlayerGodWeapon]
-ScriptName = Player\PlayerGodWeapon.py
-Writer = ljd
-Releaser = ljd
-RegType = 0
-RegisterPackCount = 2
-
-PacketCMD_1=0xA5
-PacketSubCMD_1=0x55
-PacketCallFunc_1=OnPlusGodWeapon
-
-PacketCMD_2=0xA5
-PacketSubCMD_2=0x56
-PacketCallFunc_2=OnGodWeaponActivate
-
;聊天
[PlayerTalk]
ScriptName = Player\PlayerTalk.py
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
index f1d7758..ece7992 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
@@ -1485,25 +1485,6 @@
# 攻击时防守方神兵护盾的处理
def CalcAtkProDef(atkObj, defObj, hurtValue, curSkill, tick):
return hurtValue
-# if defObj.GetGameObjType() != IPY_GameWorld.gotPlayer:
-# return hurtValue
-#
-# if not CheckIsPlayerOnwer(atkObj):
-# return hurtValue
-#
-# curProDef = PlayerControl.GetProDef(defObj)
-# if not curProDef:
-# return hurtValue
-#
-# absortValue = min(PlayerControl.GetProDefAbsorb(defObj)*hurtValue/ChConfig.Def_MaxRateValue, curProDef)
-#
-# PlayerControl.SetProDef(defObj, curProDef - absortValue)
-#
-# # 被动技能触发
-# defObj.SetDict(ChConfig.Def_PlayerKey_GodWeaponBeforeProDef, curProDef)
-# PassiveBuffEffMng.OnPassiveSkillTrigger(defObj, atkObj, None, ChConfig.TriggerType_ProDefValue, tick)
-# return hurtValue - absortValue
-
# 设置玩家一次主动型攻击中的第一个防御者
def SetFirstDefender(attacker, defObj, curSkill):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 01ecd37..50c71a6 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -347,8 +347,8 @@
TYPE_Calc_BaseDefAddPer, # 基础防御百分比
TYPE_Calc_BaseHitAddPer, # 基础命中百分比
TYPE_Calc_BaseMissAddPer, # 基础闪避百分比
-TYPE_Calc_GodWeaponMaxHPPer, # 神兵生命百分比
-TYPE_Calc_GodWeaponAtkPer, # 神兵攻击百分比 105
+TYPE_Calc_104, # 神兵生命百分比
+TYPE_Calc_105, # 神兵攻击百分比 105
TYPE_Calc_StoneMaxHPPer, # 宝石生命百分比
TYPE_Calc_StoneAtkPer, # 宝石攻击百分比
TYPE_Calc_HPCureEnhance, # 血瓶恢复效果增加
@@ -508,7 +508,6 @@
Def_ItemType_MissionItem = 17 #任务物品
Def_ItemType_TransMissionItem = 18 #转职任务物品
Def_ItemType_RealmStuff = 19 #头衔(境界)升级道具
-Def_ItemType_GodWeaponStuff = 20 #头衔(境界)升级道具
Def_ItemType_HorseStuff = 21 #坐骑丹
Def_ItemType_HorseSoul = 22 #坐骑兽魂
Def_ItemType_HorseBook = 23 #坐骑技能书
@@ -771,8 +770,6 @@
Def_Item_Eff_UseClassLV = 2821
#祝福值波动范围 随机用
Def_Item_Eff_BlessRange = 2818
-#神兵经验值
-Def_Item_Eff_GodWeaponExp = 206
#---------------------------------------------------------------------
#写死的任务ID
#新手任务
@@ -3074,7 +3071,6 @@
Def_PlayerKey_BuffHurtCnt = "BuffHurtCnt" # 持续buff掉血次数
Def_PlayerKey_Zhansha = "zhansha" # 斩杀标志
Def_PlayerKey_LockHPSkillID = "LockHPSkillID" # 锁血功能的技能
-Def_PlayerKey_GodWeaponBeforeProDef = "GWBPD" # 神兵护盾被攻击前的值
Def_PlayerKey_curHurtValue = "curHurtValue" # 计算中的临时伤害值,技能特殊用
Def_PlayerKey_curHurtValueEx = "curHurtValueEx" # 计算中的临时伤害值,技能特殊用
Def_PlayerKey_SomersaultTime = "Somersault" # 翻滚一定时间内无敌,表现为MISS
@@ -3369,10 +3365,6 @@
Def_PDict_NPCAttackCount = "NPCAttackCount_%s" # NPC已攻击次数, 参数(NPCID)
Def_PDict_ItemUseCntToday = "ItemUseCntToday_%s" # 物品今日使用次数, 参数为物品ID
-
-Def_PDict_GodWeaponLV = "GodWeaponLV_%s" # 神器等级, 参数神器索引
-Def_PDict_GodWeaponExp = "GodWeaponExp_%s" # 神器等级对应祝福值经验, 参数神器索引
-Def_PDict_GodWeaponState = "GodWeaponState" # 神器是否已经激活, 按索引位存储神器是否激活
Def_PDict_ClothesSkinLV = "ClothesSkinLV_%s" # 时装皮肤等级,参数时装索引
Def_PDict_ClothesChestLV = "ClothesChestLV" # 时装柜等级
@@ -3969,7 +3961,7 @@
Def_CalcAttrFunc_Pet, # 灵宠 9
Def_CalcAttrFunc_Horse, # 坐骑 10
Def_CalcAttrFunc_Prestige, # 境界 11
-Def_CalcAttrFunc_GodWeapon, # 神兵 12
+Def_CalcAttrFunc_12, # 神兵 12
Def_CalcAttrFunc_Dienstgrad, # 称号 13
Def_CalcAttrFunc_Rune, # 符印 14
Def_CalcAttrFunc_15,
@@ -4274,7 +4266,7 @@
Def_Cost_ResetGreatMasterSkill, # 重置天赋技能 35
Def_Cost_BindJadeWheel, # 绑玉转盘
Def_Cost_WishingWell, # 许愿池刷新
-Def_Cost_GodWeapon, # 神兵
+Def_Cost_38, # 神兵
Def_Cost_FBHelpBattle, # 副本助战
Def_Cost_FBGatherSoulBoss, # 聚魂副本BOSS召唤 40
Def_Cost_CrossRealmPK, # 跨服PK
@@ -4370,7 +4362,6 @@
Def_Cost_AlchemyPray:"AlchemyPray",
Def_Cost_BindJadeWheel:"BindJadeWheel",
Def_Cost_WishingWell:"WishingWell",
-Def_Cost_GodWeapon:"GodWeapon",
Def_Cost_FBHelpBattle:"FBHelpBattle",
Def_Cost_FBGatherSoulBoss:"FBGatherSoulBoss",
Def_Cost_CrossRealmPK:"CrossRealmPK",
@@ -4516,7 +4507,7 @@
ItemDelTypeList = (
ItemDel_Unknown, #未知 0
ItemDel_SellPackItem, # 出售物品
-ItemDel_GodWeapon, # 神兵
+ItemDel_2, # 神兵
ItemDel_EquipEnchase, # 宝石镶嵌
ItemDel_Add_LimitingBuff, # 增加buff时间
ItemDel_AddDienstgrad, # 增加称号 5
@@ -4567,7 +4558,6 @@
ItemDelTypeDict = {
ItemDel_Unknown:"Unknown",
ItemDel_SellPackItem:"SellPackItem",
- ItemDel_GodWeapon:"GodWeapon",
ItemDel_EquipEnchase:"EquipEnchase",
ItemDel_Add_LimitingBuff:"Add_LimitingBuff",
ItemDel_AddDienstgrad:"AddDienstgrad",
@@ -5061,7 +5051,7 @@
Def_WPAct_Pet, #激活某只灵宠 22
Def_WPAct_Dogz, #出战某只神兽 23
Def_WPAct_Stone, #宝石总等级 24
-Def_WPAct_GodWeapon, #神兵总等级 25
+Def_WPAct_25, #神兵总等级 25
Def_WPAct_Rune, #穿戴某品质符印 26
Def_WPAct_Pray, #祈愿 27
Def_WPAct_FamilyBoss, #仙盟Boss 28
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
index 31f66a2..b67825b 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
@@ -6567,122 +6567,6 @@
#------------------------------------------------------
-# A5 56 神兵激活 #tagCMGodWeaponActivate
-
-class tagCMGodWeaponActivate(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("WeaponType", c_int), # 神兵类型
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xA5
- self.SubCmd = 0x56
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.Cmd = 0xA5
- self.SubCmd = 0x56
- self.WeaponType = 0
- return
-
- def GetLength(self):
- return sizeof(tagCMGodWeaponActivate)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// A5 56 神兵激活 //tagCMGodWeaponActivate:
- Cmd:%s,
- SubCmd:%s,
- WeaponType:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.WeaponType
- )
- return DumpString
-
-
-m_NAtagCMGodWeaponActivate=tagCMGodWeaponActivate()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGodWeaponActivate.Cmd,m_NAtagCMGodWeaponActivate.SubCmd))] = m_NAtagCMGodWeaponActivate
-
-
-#------------------------------------------------------
-# A5 55 神兵升级 #tagCMGodWeaponPlus
-
-class tagCMGodWeaponPlus(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("WeaponType", c_int), # 神兵类型
- ("ItemID", c_int), #消耗的物品ID
- ("ItemCount", c_ubyte), #消耗个数,默认1
- ("IsAutoBuy", c_ubyte), #是否自动购买,默认0
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xA5
- self.SubCmd = 0x55
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.Cmd = 0xA5
- self.SubCmd = 0x55
- self.WeaponType = 0
- self.ItemID = 0
- self.ItemCount = 0
- self.IsAutoBuy = 0
- return
-
- def GetLength(self):
- return sizeof(tagCMGodWeaponPlus)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// A5 55 神兵升级 //tagCMGodWeaponPlus:
- Cmd:%s,
- SubCmd:%s,
- WeaponType:%d,
- ItemID:%d,
- ItemCount:%d,
- IsAutoBuy:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.WeaponType,
- self.ItemID,
- self.ItemCount,
- self.IsAutoBuy
- )
- return DumpString
-
-
-m_NAtagCMGodWeaponPlus=tagCMGodWeaponPlus()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGodWeaponPlus.Cmd,m_NAtagCMGodWeaponPlus.SubCmd))] = m_NAtagCMGodWeaponPlus
-
-
-#------------------------------------------------------
# A5 40 投资理财 #tagCMGoldInvest
class tagCMGoldInvest(Structure):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index 364c3dc..1c75235 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -5527,118 +5527,6 @@
#------------------------------------------------------
-# A3 1D 神兵等级信息 #tagMCGodWeaponLVList
-
-class tagMCGodWeaponLVInfo(Structure):
- _pack_ = 1
- _fields_ = [
- ("WeaponType", c_ubyte), #神兵类型
- ("WeaponLV", c_ushort), #神兵等级
- ("WeaponExp", c_int), #当前神兵经验
- ]
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.WeaponType = 0
- self.WeaponLV = 0
- self.WeaponExp = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCGodWeaponLVInfo)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// A3 1D 神兵等级信息 //tagMCGodWeaponLVList:
- WeaponType:%d,
- WeaponLV:%d,
- WeaponExp:%d
- '''\
- %(
- self.WeaponType,
- self.WeaponLV,
- self.WeaponExp
- )
- return DumpString
-
-
-class tagMCGodWeaponLVList(Structure):
- Head = tagHead()
- WeaponNum = 0 #(BYTE WeaponNum)//神器个数
- WeaponInfoList = list() #(vector<tagMCGodWeaponLVInfo> WeaponInfoList)// 副本数据列表
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0x1D
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.WeaponNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.WeaponNum):
- temWeaponInfoList = tagMCGodWeaponLVInfo()
- _pos = temWeaponInfoList.ReadData(_lpData, _pos)
- self.WeaponInfoList.append(temWeaponInfoList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0x1D
- self.WeaponNum = 0
- self.WeaponInfoList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- for i in range(self.WeaponNum):
- length += self.WeaponInfoList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.WeaponNum)
- for i in range(self.WeaponNum):
- data = CommFunc.WriteString(data, self.WeaponInfoList[i].GetLength(), self.WeaponInfoList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- WeaponNum:%d,
- WeaponInfoList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.WeaponNum,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCGodWeaponLVList=tagMCGodWeaponLVList()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCGodWeaponLVList.Head.Cmd,m_NAtagMCGodWeaponLVList.Head.SubCmd))] = m_NAtagMCGodWeaponLVList
-
-
-#------------------------------------------------------
# A3 37 投资理财信息 #tagMCGoldInvestInfo
class tagMCInvestReward(Structure):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/EventReport.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/EventReport.py
index ff7014e..e1a0e41 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/EventReport.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/EventReport.py
@@ -1302,54 +1302,6 @@
#===========================================================================
return
-class god_weapon_lv(ScribeEvent):
- # 神兵升级记录
- def __init__(self):
- #必须字段
- super(god_weapon_lv, self).__init__()
- self.account_id = "" # 账号 ID,平台下唯一,且终生不变
- self.chr_name = "" # 玩家角色名
-
- self.god_weapon_name = "" # 神兵名称
- self.bef_lv = 0 # 此次操作前的等级, 0代表0级, 1代表+1级
- self.bef_exp = 0 # 此次操作前的经验值
- self.cost_item_cnt = 0 # 此次消耗的道具数量
- self.aft_lv = 0 # 此次操作后的等级, 0代表0级, 1代表+1级
- self.aft_exp = 0 # 此次进阶操作后的经验值
-
- #非必须字段
-
- #即时是非必须字段也应该传送,各字段用,分隔,并且用双引号包含,参考格式'"1","","","12314"'
- return
-
- def GetCurEventStr(self):
- if not self.time:
- self.time = GameWorld.GetCurrentDataTimeStr()
- tmpList = [self.product_slug, self.agent_name, self.gameserver_no, self.account_id, self.chr_name,
- self.god_weapon_name, str(self.bef_lv), str(self.bef_exp), str(self.cost_item_cnt),
- str(self.aft_lv), str(self.aft_exp), self.time]
-
- return super(god_weapon_lv, self).GetEventStr(tmpList)
-
- def GetScribeEventName(self): return ShareDefine.Def_UserAction_GodWeaponLV
-
-def WriteEvent_god_weapon_lv(curPlayer, godWeaponName, befLV, befExp, costCnt, aftLV, aftExp):
- ## 写神兵升级记录
- #===========================================================================
- # godWeaponLV = god_weapon_lv()
- # godWeaponLV.SetEventAgentInfo(GameWorld.GetPlayerPlatform(curPlayer.GetAccID()))
- # godWeaponLV.account_id = GameWorld.GetPlatformAccID(curPlayer.GetAccID())
- # godWeaponLV.chr_name = curPlayer.GetPlayerName()
- # godWeaponLV.god_weapon_name = godWeaponName
- # godWeaponLV.bef_lv = befLV
- # godWeaponLV.bef_exp = befExp
- # godWeaponLV.cost_item_cnt = costCnt
- # godWeaponLV.aft_lv = aftLV
- # godWeaponLV.aft_exp = aftExp
- # WriteEvent(godWeaponLV)
- #===========================================================================
- return
-
class rune_lv(ScribeEvent):
# 符印升级记录
def __init__(self):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/GodWeapon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/GodWeapon.py
deleted file mode 100644
index 7fedb91..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/GodWeapon.py
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#-------------------------------------------------------------------------------
-#
-##@package GM.Commands.GodWeapon
-#
-# @todo:神兵
-# @author hxp
-# @date 2024-08-15
-# @version 1.0
-#
-# 详细描述: 神兵
-#
-#-------------------------------------------------------------------------------
-#"""Version = 2024-08-15 16:30"""
-#-------------------------------------------------------------------------------
-
-import ChConfig
-import PlayerControl
-import PlayerGodWeapon
-import GameWorld
-
-## GM命令执行入口
-# @param curPlayer 当前玩家
-# @param msgList 参数列表
-# @return None
-# @remarks 函数详细说明.
-def OnExec(curPlayer, msgList):
- if not msgList:
- GameWorld.DebugAnswer(curPlayer, "重置神兵: GodWeapon 0")
- GameWorld.DebugAnswer(curPlayer, "设置神兵: GodWeapon 类型 等级 经验")
- GameWorld.DebugAnswer(curPlayer, "类型: 1-生命;2-攻击;3-暴击;4-护盾")
- GameWorld.DebugAnswer(curPlayer, "注: 神兵技能成就任务等需要手动升级才有效")
- return
-
- weaponTypeList = [1, 2, 3, 4]
- if msgList[0] == 0:
- for weaponType in weaponTypeList:
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GodWeaponLV % weaponType, 0)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GodWeaponExp % weaponType, 0)
- PlayerGodWeapon.Sync_GodWeaponLVInfo(curPlayer)
- else:
- weaponType = msgList[0]
- if weaponType not in weaponTypeList:
- GameWorld.DebugAnswer(curPlayer, "神兵类型不存在! %s" % weaponType)
- return
- weaponLV = msgList[1] if len(msgList) > 1 else 1
- weaponExp = msgList[2] if len(msgList) > 2 else 0
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GodWeaponLV % weaponType, weaponLV)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GodWeaponExp % weaponType, weaponExp)
- PlayerGodWeapon.Sync_GodWeaponLVInfo(curPlayer, weaponType)
-
- PlayerGodWeapon.RefreshGodWeaponAttr(curPlayer)
- return
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index 1d1ed71..e3bc504 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -479,16 +479,6 @@
("DWORD", "ActivateSkillID", 0),
),
- "GodWeapon":(
- ("WORD", "Type", 1),
- ("WORD", "LV", 1),
- ("DWORD", "Exp", 0),
- ("list", "AttrType", 0),
- ("list", "AttrNum", 0),
- ("DWORD", "SkillID", 0),
- ("char", "SysMark", 0),
- ),
-
"FuncConfig":(
("char", "Key", 1),
("char", "Numerical1", 0),
@@ -3048,21 +3038,6 @@
def GetEatPerCount(self): return self.attrTuple[8] # 每次培养消耗x个 WORD
def GetLVUpCostItemInfo(self): return self.attrTuple[9] # 突破等级道具ID|个数 list
def GetActivateSkillID(self): return self.attrTuple[10] # 激活技能ID DWORD
-
-# 神兵表
-class IPY_GodWeapon():
-
- def __init__(self):
- self.attrTuple = None
- return
-
- def GetType(self): return self.attrTuple[0] # 神兵类型 WORD
- def GetLV(self): return self.attrTuple[1] # 等级 WORD
- def GetExp(self): return self.attrTuple[2] # DWORD
- def GetAttrType(self): return self.attrTuple[3] # 属性类型 list
- def GetAttrNum(self): return self.attrTuple[4] # 属性值 list
- def GetSkillID(self): return self.attrTuple[5] # 激活技能ID DWORD
- def GetSysMark(self): return self.attrTuple[6] # 系统提示 char
# 功能配置表格
class IPY_FuncConfig():
@@ -6119,7 +6094,6 @@
self.__LoadFileData("Realm", onlyCheck)
self.__LoadFileData("RealmLVUPTask", onlyCheck)
self.__LoadFileData("LianTi", onlyCheck)
- self.__LoadFileData("GodWeapon", onlyCheck)
self.__LoadFileData("FuncConfig", onlyCheck)
self.__LoadFileData("FuncOpenLV", onlyCheck)
self.__LoadFileData("ItemCompound", onlyCheck)
@@ -6795,13 +6769,6 @@
def GetLianTiByIndex(self, index):
self.CheckLoadData("LianTi")
return self.ipyLianTiCache[index]
-
- def GetGodWeaponCount(self):
- self.CheckLoadData("GodWeapon")
- return self.ipyGodWeaponLen
- def GetGodWeaponByIndex(self, index):
- self.CheckLoadData("GodWeapon")
- return self.ipyGodWeaponCache[index]
def GetFuncConfigCount(self):
self.CheckLoadData("FuncConfig")
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
index d5213c2..be2576c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -43,7 +43,6 @@
import PlayerPrestigeSys
import PlayerFamily
import PlayerLoginDayAward
-import PlayerGodWeapon
import PlayerGoldInvest
import PlayerActivity
import FBCommon
@@ -494,7 +493,6 @@
PlayerControl.SyncOnLineTimeTotal(curPlayer)
#PlayerControl.SyncOnLineTimeLastOpenPack(curPlayer, IPY_GameWorld.rptItem)
PlayerControl.SyncTrainRealmLV(curPlayer)
- PlayerGodWeapon.OnLogin(curPlayer)
PlayerPrestigeSys.OnLogin(curPlayer)
#DataRecordPack.DR_PlayerLogin(curPlayer)
EventReport.WriteEvent_login(curPlayer)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFeastWeekParty.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFeastWeekParty.py
index 9e99874..f34a963 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFeastWeekParty.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFeastWeekParty.py
@@ -26,7 +26,6 @@
import ItemControler
import ChPyNetSendPack
import DataRecordPack
-import PlayerGodWeapon
import NetPackCommon
import ShareDefine
import PyGameData
@@ -226,7 +225,6 @@
AddFeastWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Rune, itemColor, False, isSync=isSync)
AddFeastWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Login, 1, False, False, isSync)
- AddFeastWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_GodWeapon, PlayerGodWeapon.GetGodWeaponTotalLV(curPlayer), False, True, isSync)
return
def GetFeastWeekPartyActionAward(curPlayer, day, templateID):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGodWeapon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGodWeapon.py
deleted file mode 100644
index c67cddb..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGodWeapon.py
+++ /dev/null
@@ -1,407 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#-------------------------------------------------------------------------------
-#
-#-------------------------------------------------------------------------------
-#
-##@package Player.PlayerGodWeapon
-#
-# @todo:神兵
-# @author alee
-# @date 2017-07-20
-# @version 1.0
-#
-# 详细描述: 神兵
-#
-#---------------------------------------------------------------------
-#"""Version = 2017-07-20 16:00"""
-#---------------------------------------------------------------------
-
-import GameWorld
-import ChConfig
-import PlayerControl
-import ItemCommon
-import IPY_GameWorld
-import ChPyNetSendPack
-import NetPackCommon
-import ShareDefine
-import SkillShell
-import DataRecordPack
-import GameFuncComm
-import SkillCommon
-import BuffSkill
-import PlayerWeekParty
-#import EventReport
-import IpyGameDataPY
-import PassiveBuffEffMng
-
-import random
-
-Def_GodWeaponType_HP = 1 # 生命神兵类型
-Def_GodWeaponType_Atk = 2 # 攻击神兵类型
-Def_GodWeaponType_SuperHit = 3 # 暴击神兵类型
-Def_GodWeaponType_Def = 4 # 护盾神兵类型
-
-## 神器功能登录处理
-# @param curPlayer 玩家
-# @return None
-def OnLogin(curPlayer):
- if not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_GodWeapon):
- return
- Sync_GodWeaponLVInfo(curPlayer)
-
- return
-
-def SetGodWeaponLV(curPlayer, weaponType, lv):
- ## 设置神兵等级,同步设置场景神兵等级
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GodWeaponLV % weaponType, lv)
-
- totalLV = GetGodWeaponTotalLV(curPlayer)
- PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_GodWeapon, totalLV, False, True)
- return
-
-def GetGodWeaponTotalLV(curPlayer):
- ##获取神兵总等级
- totalLV = 0
- ipyDataMgr = IpyGameDataPY.IPY_Data()
- maxType = ipyDataMgr.GetGodWeaponByIndex(ipyDataMgr.GetGodWeaponCount()-1).GetType()
- for gwType in xrange(1, maxType + 1):
- totalLV += curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponLV % gwType)
- return totalLV
-
-## 神器开启
-# @return: 是否激活成功
-def DoGodWeaponOpen(curPlayer):
- # 默认激活1级的类型
- for i in IpyGameDataPY.GetFuncEvalCfg('GodWeaponActive'):
- SetGodWeaponLV(curPlayer, i, 1)
- Sync_GodWeaponLVInfo(curPlayer)
- return True
-
-
-## 刷新神兵属性
-def RefreshGodWeaponAttr(curPlayer):
- CalcGodWeaponAttr(curPlayer)
- # 不立即刷新
- PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
- return
-
-## 计算属性
-# @param curPlayer 玩家
-# @param allAttrList 属性列表
-# @return None
-def CalcGodWeaponAttr(curPlayer):
- if not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_GodWeapon):
- return
-
- ipyDataMgr = IpyGameDataPY.IPY_Data()
- maxType = ipyDataMgr.GetGodWeaponByIndex(ipyDataMgr.GetGodWeaponCount()-1).GetType()
-
- fightPowerEx = 0 # 额外增加的战力
- allAttrList = [{} for i in range(4)]
- for gwType in xrange(1, maxType + 1):
- # 因为神兵解锁条件做了调整,由之前的0~1阶解锁改为由前置神兵类型等级解锁,默认解锁后为1阶
- # 为兼容老号,刷属性时只要判断等级是否大于0,不管是否解锁,新号解锁由神兵升级的时候进行解锁
- attrLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponLV % gwType)
- if not attrLV:
- continue
- godWeaponData = IpyGameDataPY.GetIpyGameData('GodWeapon', gwType, attrLV)
- if not godWeaponData:
- continue
- attrTypeList, attrValueList = godWeaponData.GetAttrType(), godWeaponData.GetAttrNum()
- for i, attrID in enumerate(attrTypeList):
- PlayerControl.CalcAttrDict_Type(attrID, attrValueList[i], allAttrList)
-
- fightPowerEx += IpyGameDataPY.GetFuncEvalCfg('MagicExterior').get(str(gwType), 0)
-
-
- # 附加战力
- PlayerControl.SetMFPExFightPower(curPlayer, ShareDefine.Def_MFPType_GodWeapon, fightPowerEx)
- #GameWorld.DebugLog("神兵属性:%s" % allAttrList)
- # 保存计算值
- PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_GodWeapon, allAttrList)
- return
-
-#---------------------------------------------------------------------------------------------------
-#// A5 56 神兵激活 #tagCMGodWeaponActivate
-#
-#struct tagCMGodWeaponActivate
-#{
-# tagHead Head;
-# DWORD WeaponType; // 神兵类型
-#};
-def OnGodWeaponActivate(index, clientData, tick):
- curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
- weaponType = clientData.WeaponType
-
- if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponLV % weaponType):
- GameWorld.DebugLog("已经解锁的神兵!weaponType=%s" % weaponType)
- return
-
- # 满足玩家等级或者前置神兵等级可解锁
- if __GWCheckPlayerLV(curPlayer, weaponType) or __GWCheckOtherGWLV(curPlayer, weaponType):
-
- SetGodWeaponLV(curPlayer, weaponType, 1)
- RefreshGodWeaponAttr(curPlayer)
- GameWorld.DebugLog("解锁神兵: weaponType=%s" % weaponType)
- Sync_GodWeaponLVInfo(curPlayer, weaponType)
- return
-
-# 神兵激活需2次判断等级 {2:100, 4:100}
-def __GWCheckPlayerLV(curPlayer, weaponType):
- godWeaponUnlockDict = IpyGameDataPY.GetFuncEvalCfg("GodWeaponActive", 3, {})
- if str(weaponType) not in godWeaponUnlockDict:
- GameWorld.DebugLog("该神兵不能解锁!weaponType=%s" % weaponType)
- return False
- return curPlayer.GetLV() >= godWeaponUnlockDict[str(weaponType)]
-
-# 神兵激活需判断前置神兵等级
-def __GWCheckOtherGWLV(curPlayer, weaponType):
- godWeaponUnlockDict = IpyGameDataPY.GetFuncEvalCfg("GodWeaponActive", 2, {})
- if str(weaponType) not in godWeaponUnlockDict:
- GameWorld.DebugLog("该神兵不能解锁!weaponType=%s" % weaponType)
- return False
- conditionList = godWeaponUnlockDict[str(weaponType)]
-
- for needType, needLV in conditionList:
- needTypeLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponLV % needType)
- if needTypeLV < needLV:
- GameWorld.DebugLog("所需前置神兵等级不足,无法解锁!weaponType=%s,needType=%s,needLV=%s > needTypeLV(%s)"
- % (weaponType, needType, needLV, needTypeLV))
- return False
-
- return True
-
-#===============================================================================
-#// A5 55 神兵升级 #tagCMGodWeaponPlus
-#
-#struct tagCMGodWeaponPlus
-#{
-# tagHead Head;
-# DWORD WeaponType; // 神兵类型
-# DWORD ItemID; //消耗的物品ID
-# BYTE ItemCount; //消耗个数,默认1
-# BYTE IsAutoBuy; //是否自动购买,默认0
-#};
-#===============================================================================
-def OnPlusGodWeapon(index, clientData, tick):
- curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
- weaponType = clientData.WeaponType
- useItemID = clientData.ItemID
- useItemCount = max(1, clientData.ItemCount)
- isAutoBuy = clientData.IsAutoBuy
-
- if not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_GodWeapon):
- #等级不足
- return
-
- #1.判断表中有没此类型,2.是否满级,3.判断是否有物品
- attrLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponLV % weaponType)
- # if not attrLV and Def_GodWeaponType_SuperHit != weaponType:
- # GameWorld.DebugLog("神兵未解锁,无法升级!weaponType=%s,attrLV=%s" % (weaponType, attrLV))
- # return 由配置表决定等级0是否可升级
-
- beforeAttrLV = attrLV # 用于提示
- godWeaponData = IpyGameDataPY.GetIpyGameData('GodWeapon', weaponType, attrLV)
- if not godWeaponData:
- GameWorld.DebugLog('神兵升级找不到数据 %s-%s'%(weaponType, attrLV))
- return
-
- totalExp = godWeaponData.GetExp()
- if totalExp == 0:
- #满级
- return
-
- #验证是否指定的物品ID
- if useItemID not in IpyGameDataPY.GetFuncEvalCfg("GodWeapon%s"%weaponType):
- return
-
- itemData = GameWorld.GetGameData().GetItemByTypeID(useItemID)
- if not itemData:
- return
- effect = ItemCommon.GetItemEffectByEffectID(itemData, ChConfig.Def_Item_Eff_GodWeaponExp)
- if not effect:
- GameWorld.DebugLog('###神兵假包,物品ID=%s没有经验值'%useItemID)
- return
- itemExp = effect.GetEffectValue(0)
- if not itemExp:
- GameWorld.DebugLog('###神兵假包,物品ID=%s没有经验值'%useItemID)
- return
-
- goldExpTotal = 0
- costItemIndexList, bindCnt, unBindCnt = ItemCommon.GetPackItemBindStateIndexInfo(curPlayer, useItemID, useItemCount)
- lackCount = max(0, useItemCount - (bindCnt + unBindCnt))
- if lackCount > 0:
- if not isAutoBuy:
- GameWorld.DebugLog("神兵升级消耗不足!useItemID=%s,useItemCount=%s,bindCnt=%s,unBindCnt=%s,lackCount=%s"
- % (useItemID, useItemCount, bindCnt, unBindCnt, lackCount))
- return
- godMagicExpDict = IpyGameDataPY.GetFuncEvalCfg("GodMagicExp", 1, {})
- if str(weaponType) not in godMagicExpDict:
- return
- costGold, goldExp = godMagicExpDict[str(weaponType)]
- lackCost = costGold * lackCount
- goldExpTotal = goldExp * lackCount
- #lackCost = ItemCommon.GetAutoBuyItemNeedGold({useItemID:lackCount})
- if lackCost <= 0:
- return
-
- infoDict = {ChConfig.Def_Cost_Reason_SonKey:useItemID, "lackCount":lackCount}
- if not PlayerControl.PayMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money, lackCost,
- ChConfig.Def_Cost_GodWeapon, infoDict, lackCount):
- return
-
- delUseItemCount = useItemCount - lackCount
- # 扣除消耗
- if delUseItemCount:
- ItemCommon.DelCostItemByBind(curPlayer, costItemIndexList, bindCnt, unBindCnt, delUseItemCount, ChConfig.ItemDel_GodWeapon)
-
- addTotalExp = itemExp * delUseItemCount + goldExpTotal
- befExp = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponExp % weaponType)
- curExp = befExp + addTotalExp
- GameWorld.DebugLog("执行神兵升级: weaponType=%s,beforeAttrLV=%s,befExp=%s,addTotalExp=%s(%s*%s+%s),curExp=%s"
- % (weaponType, beforeAttrLV, befExp, addTotalExp, itemExp, delUseItemCount, goldExpTotal, curExp))
-
- isLVUP = False
-
- # 安全为主不用while
- for _ in xrange(100):
- if curExp < totalExp:
- break
- godWeaponData = IpyGameDataPY.GetIpyGameData('GodWeapon', weaponType, attrLV+1)
- if not godWeaponData:
- GameWorld.DebugLog('神兵升级找不到数据 %s-%s'%(weaponType, attrLV))
- break
-
- GameWorld.DebugLog(" 神兵升级: attrLV=%s,needExp=%s" % (attrLV, totalExp))
- curExp = curExp - totalExp
- attrLV += 1
- isLVUP = True
- GodWeaponLVUP(curPlayer, godWeaponData, attrLV)
-
- totalExp = godWeaponData.GetExp()
- if totalExp == 0:
- curExp = 0
- #满级
- break
-
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GodWeaponExp % weaponType, curExp)
- if isLVUP:
- SetGodWeaponLV(curPlayer, weaponType, attrLV)
- GameWorld.DebugLog("神兵升级结果: attrLV=%s,curExp=%s" % (attrLV, curExp))
- RefreshGodWeaponAttr(curPlayer)
- if beforeAttrLV == 0:
- # 解封通知
- sysMark = IpyGameDataPY.GetFuncEvalCfg('GodWeaponSys', 1, {}).get(weaponType, 'GetGodWeapon')
- PlayerControl.WorldNotify(0, sysMark, [curPlayer.GetName(), weaponType])
-
- #{1:[100,200,300,400],2:[100,200,300,400],3:[100,200,300,400]}
- #=======================================================================
- # notifyDict = IpyGameDataPY.GetFuncEvalCfg('GodLv', 1, {})
- # if weaponType in notifyDict:
- # for notifyLV in notifyDict[weaponType]:
- # if beforeAttrLV < notifyLV and attrLV >= notifyLV:
- # PlayerControl.WorldNotify(0, 'GodWeaponLv', [curPlayer.GetName(), weaponType, notifyLV])
- #=======================================================================
-
-
- totalExp = godWeaponData.GetExp()
-
-
- Sync_GodWeaponLVInfo(curPlayer, weaponType)
- return
-
-#神兵升级触发其他功能:技能
-def GodWeaponLVUP(curPlayer, godWeaponData, attrLV):
- skillID = godWeaponData.GetSkillID()
-
- if skillID:
- if __GiveGodWeaponSkill(curPlayer, skillID):
- sysMark = godWeaponData.GetSysMark()
- if sysMark:
- PlayerControl.WorldNotify(0, sysMark, [curPlayer.GetName(), attrLV, skillID])
- return skillID
- return
-
-
-
-
-## 同步神器等级
-# @param curPlayer
-# @param godWeaponId 神器ID
-# @return None
-def Sync_GodWeaponLVInfo(curPlayer, godWeaponID=0):
- sendPack = ChPyNetSendPack.tagMCGodWeaponLVList()
- sendPack.Clear()
-
- sendPack.WeaponInfoList = []
-
- if godWeaponID <= 0:
-# weaponStateStr = bin(curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponState))[::-1][:-2]
-# for i in range(0, len(weaponStateStr)):
-# if weaponStateStr[i] == '0':
-# #找出激活的神兵
-# continue
- ipyDataMgr = IpyGameDataPY.IPY_Data()
- maxType = ipyDataMgr.GetGodWeaponByIndex(ipyDataMgr.GetGodWeaponCount()-1).GetType()
- for i in xrange(1, maxType + 1):
- weaponInfo = ChPyNetSendPack.tagMCGodWeaponLVInfo()
- weaponInfo.Clear()
- weaponInfo.WeaponType = i
- weaponInfo.WeaponLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponLV % i)
- weaponInfo.WeaponExp = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponExp % i)
- sendPack.WeaponInfoList.append(weaponInfo)
- else:
- weaponInfo = ChPyNetSendPack.tagMCGodWeaponLVInfo()
- weaponInfo.Clear()
- weaponInfo.WeaponType = godWeaponID
- weaponInfo.WeaponLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponLV % godWeaponID)
- weaponInfo.WeaponExp = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponExp % godWeaponID)
- sendPack.WeaponInfoList.append(weaponInfo)
-
- sendPack.WeaponNum = len(sendPack.WeaponInfoList)
- NetPackCommon.SendFakePack(curPlayer, sendPack)
- return
-
-
-
-def __GiveGodWeaponSkill(curPlayer, skillID):
- # 神器学习技能
- skillManager = curPlayer.GetSkillManager()
- if skillManager.FindSkillBySkillID(skillID):
- GameWorld.DebugLog("godSkill() have learned skill(%s)" % skillID)
- return
-
- skillData = GameWorld.GetGameData().GetSkillBySkillID(skillID)
- if skillData == None:
- GameWorld.DebugLog("godSkill() hasn't find skill(%s)" % skillID)
- return
- if not SkillShell.CheckLearnSkillCondition(curPlayer, skillData):
- GameWorld.DebugLog("godSkill() learn skill(%s) condition isn't enough" % skillID)
- return
- skillLV = skillData.GetSkillLV()
- skillTypeID = skillData.GetSkillTypeID()
-
- befSkillID, beforeFightPower = 0, 0
- befSkill = skillManager.FindSkillBySkillTypeID(skillTypeID)
- if befSkill:
- befSkillLV = befSkill.GetSkillLV()
- befSkillID = befSkill.GetSkillID()
- beforeFightPower = befSkill.GetFightPower()
- if skillLV <= befSkillLV:
- GameWorld.DebugLog("godSkill() learn skill(%s) skillLV(%s) <= befSkillLV(%s),befSkillID=%s no need learn."
- % (skillID, skillLV, befSkillLV, befSkillID))
- return
-
- skillManager.LearnSkillByID(skillID)
- #PlayerControl.NotifyCode(curPlayer, "Skill_andyshao_31379", [skillResId])
- GameWorld.DebugLog("godSkill() skill(%s) success! befSkillID=%s,beforeFightPower=%s" % (skillID, befSkillID, beforeFightPower))
- DataRecordPack.DR_LearnORUPSkill(curPlayer, skillID, 0)
-
- #if SkillCommon.isPassiveSkill(skillData):
- # buffType = SkillCommon.GetBuffType(skillData)
- # BuffSkill.DoAddBuff(curPlayer, buffType, skillData, GameWorld.GetGameWorld().GetTick(), [], curPlayer)
- PassiveBuffEffMng.GetPassiveEffManager().RegistPassiveEff(curPlayer, skillID)
- PlayerControl.PlayerControl(curPlayer).RefreshSkillFightPowerEx(skillID, beforeFightPower)
- return True
-
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWeekParty.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWeekParty.py
index 4fa463b..559a981 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWeekParty.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWeekParty.py
@@ -27,7 +27,6 @@
import ChPyNetSendPack
import PlayerFeastWeekParty
import DataRecordPack
-import PlayerGodWeapon
import NetPackCommon
import ShareDefine
import PyGameData
@@ -237,7 +236,6 @@
AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Rune, itemColor, False, isSync=isSync)
AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Login, 1, False, False, isSync)
- AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_GodWeapon, PlayerGodWeapon.GetGodWeaponTotalLV(curPlayer), False, True, isSync)
return
def GetWeekPartyActionAward(curPlayer, day, templateID):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
index cbaa157..9083829 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -600,10 +600,10 @@
CDBPlayerRefresh_FinalDamPer, # 最终输出伤害百分比
CDBPlayerRefresh_TalentPoint, # 天赋点数 190
CDBPlayerRefresh_DamagePVPReduce, # PVP固定伤害减少
-CDBPlayerRefresh_GodWeaponLV_1, # 神兵等级 - 类型1 192
-CDBPlayerRefresh_GodWeaponLV_2, # 神兵等级 - 类型2 193
-CDBPlayerRefresh_GodWeaponLV_3, # 神兵等级 - 类型3 194
-CDBPlayerRefresh_GodWeaponLV_4, # 神兵等级 - 类型4 195
+CDBPlayerRefresh_192, # 神兵等级 - 类型1 192
+CDBPlayerRefresh_193, # 神兵等级 - 类型2 193
+CDBPlayerRefresh_194, # 神兵等级 - 类型3 194
+CDBPlayerRefresh_195, # 神兵等级 - 类型4 195
CDBPlayerRefresh_SoulDust, # 魂尘 196
CDBPlayerRefresh_SoulSplinters, # 聚魂碎片 197
CDBPlayerRefresh_SoulCore, # 核心环 198
@@ -814,7 +814,6 @@
GameFuncID_Wing = -1 # 翅膀 3
GameFuncID_Pet = -1 # 宠物,灵宠 6
GameFuncID_Horse = -1 # 坐骑 8
-GameFuncID_GodWeapon = -1 # 神器 20
GameFuncID_OSSail = -1 # 开服特惠 132
GameFuncID_AddPoint = -1 # 加点功能/灵根功能 145
@@ -1045,27 +1044,6 @@
Def_FamActivityList = (
Def_FamActivity_War, # 战盟争霸
) = range(1)
-
-# 开服活动类型标识, 不可超过32
-Def_Campaign_Type_List = (
-Def_Campaign_Type_Plus, # 强化战力排行 1
-Def_Campaign_Type_Horse, # 坐骑战力排行 2
-Def_Campaign_Type_StoneLV, # 宝石等级排行 3
-Def_Campaign_Type_LV, # 冲级等级排行 4
-Def_Campaign_Type_RealmLV, # 境界等级排行 5
-Def_Campaign_Type_FightPower, # 总战斗力排行 6
-Def_Campaign_Type_RuneLV, # 符印等级排行 7
-Def_Campaign_Type_GodWeaponLV, # 神兵等级排行 8
-Def_Campaign_Type_Recharge, # 累计充值排行 9
-Def_Campaign_Type_PetLV, # 灵宠等级排行 10
-Def_Campaign_Type_LingGen, # 灵根点数排行 11
-Def_Campaign_Type_StarLV, # 升星等级排行 12
-Def_Campaign_Type_Wash, # 洗练战力排行 13
-) = range(1, 1 + 13)
-
-# 活动类型对应的奖励排行榜{活动类型:排行榜, ...}
-Def_Campaign_Billboard_Dict = {
- }
#队伍最大人数
Def_Team_MaxPlayerCount = 4
@@ -1329,7 +1307,7 @@
Def_MFPType_Pet, # 灵宠 7
Def_MFPType_Horse, # 坐骑 8
Def_MFPType_Prestige, # 境界 9
-Def_MFPType_GodWeapon, # 神兵 10
+Def_MFPType_10, # 神兵 10
Def_MFPType_Dienstgrad, #称号 11
Def_MFPType_Rune, # 符印 12
Def_MFPType_Star, # 升星 13
@@ -1406,7 +1384,6 @@
Def_UserAction_EquipItem = "DwzCw4q8cWTB_ex-equip-item" # 玩家装备统计
Def_UserAction_ItemRecord = 1404 # 物品流水记录
Def_UserAction_CoinToGold = "DwzCw4q8cWTB_ex-coin-to-gold" # 兑换点券
-Def_UserAction_GodWeaponLV = "DwzCw4q8cWTB_ex-god-weapon-lv" # 神兵升级记录
Def_UserAction_RuneLV = "DwzCw4q8cWTB_ex-wing-soul-lv" # 符印升级记录
Def_UserAction_ChangeName = "DwzCw4q8cWTB_ex-change-name" # 改名记录
Def_UserAction_AddZhenqi = "DwzCw4q8cWTB_ex-add-zhenqi" # 增加真气记录
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/Buff_520.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/Buff_520.py
deleted file mode 100644
index a113497..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/Buff_520.py
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#
-##@package
-#
-# @todo: 神兵属性的百分比转化为指定属性的值
-#
-# @author: Alee
-# @date 2018-11-26 下午09:35:32
-# @version 1.0
-#
-# @note:
-#
-#---------------------------------------------------------------------
-#导入
-import ChConfig
-import EffGetSet
-import IPY_GameWorld
-import PlayerControl
-#---------------------------------------------------------------------
-
-
-def OnCalcBuffEx(defender, curEffect, calcDict, curBuff):
- if defender.GetGameObjType() != IPY_GameWorld.gotPlayer:
- return
-
- attrList = PlayerControl.GetCalcAttrListValue(defender, ChConfig.Def_CalcAttrFunc_GodWeapon)[0]
-
- value = attrList[2].get(curEffect.GetEffectValue(0), 0)*curEffect.GetEffectValue(1)/ChConfig.Def_MaxRateValue
-
- attrType = curEffect.GetEffectValue(2)
- attrTypeList = [attrType]
- # 攻击力有最大最小 特殊处理
- if attrType in [ChConfig.TYPE_Calc_AttrATKMin, ChConfig.TYPE_Calc_AttrATKMax]:
- attrTypeList = [ChConfig.TYPE_Calc_AttrATKMin, ChConfig.TYPE_Calc_AttrATKMax]
- for tmpType in attrTypeList:
- calcDict[tmpType] = calcDict.get(tmpType, 0) + value
-
- return
-
-
-## 返回buff类型,线性与否
-# @param
-# @return None
-# @remarks 函数详细说明.
-def GetCalcType():
- return ChConfig.TYPE_Linear
-
-
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/Buff_807.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/Buff_807.py
deleted file mode 100644
index 122cc24..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/Buff_807.py
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#
-##@package
-#
-# @todo: 神兵生命转换为血盾, A值为百分比
-#
-# @author: Alee
-# @date 2018-4-23 下午02:04:06
-# @version 1.0
-#
-# @note:
-#
-#---------------------------------------------------------------------
-
-import GameWorld
-import ChConfig
-import PlayerControl
-
-
-
-def CalcBuffValue(attacker, defender, curSkill, changeBuffValueDict):
- attrList = PlayerControl.GetCalcAttrListValue(attacker, ChConfig.Def_CalcAttrFunc_GodWeapon)[0]
-
- hp = attrList[2].get(ChConfig.TYPE_Calc_AttrMaxHP, 0)
-
- curEffect = curSkill.GetEffect(0)
- return [hp*curEffect.GetEffectValue(0)/ChConfig.Def_MaxRateValue]
-
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4065.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4065.py
deleted file mode 100644
index 6d8394b..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4065.py
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#
-# @todo: 神兵等级差,增加PVP减伤效果
-#
-# @author: Alee
-# @date 2018-1-9 下午09:39:37
-# @version 1.0
-#
-# @note:
-#
-#---------------------------------------------------------------------
-
-import ChConfig
-import GameWorld
-import GameObj
-import IPY_GameWorld
-
-def CheckCanHappen(attacker, defender, effect, curSkill):
- if not defender:
- return False
- if defender.GetGameObjType() != IPY_GameWorld.gotPlayer:
- return False
-
- if attacker.GetGameObjType() != IPY_GameWorld.gotPlayer:
- return False
-
- attrLV = attacker.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponLV % effect.GetEffectValue(0))
- tagAttrLV = defender.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponLV % effect.GetEffectValue(0))
-
- if tagAttrLV >= attrLV:
- return False
-
- return True
-
-
-
-def GetValue(attacker, defender, effect):
- attrLV = attacker.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponLV % effect.GetEffectValue(0))
- tagAttrLV = defender.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponLV % effect.GetEffectValue(0))
-
- return min(effect.GetEffectValue(2), (attrLV - tagAttrLV)*effect.GetEffectValue(1))
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4066.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4066.py
deleted file mode 100644
index 1dc7c4d..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4066.py
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#
-# @todo: 指定神兵等级差,增加PVP增加伤害效果
-#
-# @author: Alee
-# @date 2018-1-9 下午09:39:37
-# @version 1.0
-#
-# @note:
-#
-#---------------------------------------------------------------------
-
-import ChConfig
-import GameWorld
-import GameObj
-import IPY_GameWorld
-
-def CheckCanHappen(attacker, defender, effect, curSkill):
- if not defender:
- return False
- if defender.GetGameObjType() != IPY_GameWorld.gotPlayer:
- return False
-
- if attacker.GetGameObjType() != IPY_GameWorld.gotPlayer:
- return False
-
- attrLV = attacker.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponLV % effect.GetEffectValue(0))
- tagAttrLV = defender.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponLV % effect.GetEffectValue(0))
-
- if tagAttrLV >= attrLV:
- return False
-
- return True
-
-
-
-def GetValue(attacker, defender, effect):
- attrLV = attacker.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponLV % effect.GetEffectValue(0))
- tagAttrLV = defender.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponLV % effect.GetEffectValue(0))
-
- return min(effect.GetEffectValue(2), (attrLV - tagAttrLV)*effect.GetEffectValue(1))
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4067.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4067.py
deleted file mode 100644
index f2225bc..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4067.py
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#
-##@package
-#
-# @todo: 神兵护盾值降为低于XX%触发技能
-#
-# @author: Alee
-# @date 2018-11-26 下午10:20:47
-# @version 1.0
-#
-# @note:
-#
-#---------------------------------------------------------------------
-
-import ChConfig
-import GameWorld
-import GameObj
-import PlayerControl
-
-
-def CheckCanHappen(attacker, defender, effect, curSkill):
- beforeProDef = attacker.GetDictByKey(ChConfig.Def_PlayerKey_GodWeaponBeforeProDef)
- compPer = effect.GetEffectValue(0)
- curPorDef = PlayerControl.GetProDef(attacker)
- maxProDef = PlayerControl.GetMaxProDef(attacker)
-
- beforePer = beforeProDef*1.0/maxProDef*ChConfig.Def_MaxRateValue
- curPer = curPorDef*1.0/maxProDef*ChConfig.Def_MaxRateValue
-
- if beforePer > compPer and curPer <= compPer:
- # 只有跨过那个值才能触发
- return True
-
- return False
\ No newline at end of file
--
Gitblit v1.8.0