From 35c596a6ed34680d9af09788274051c1c212d4eb Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期一, 07 七月 2025 15:05:03 +0800 Subject: [PATCH] 129 【战斗】战斗系统-服务端(优化战斗武将跟NPC独立处理;去除程序无技能普攻,增加反击普攻;新增回合主动普攻技能功能类型23;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py | 125 +++++++++++++++++++++++------------------ 1 files changed, 71 insertions(+), 54 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py index 5f25ed4..27b0449 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py @@ -1192,9 +1192,6 @@ #朋友 Type_Relation_Friend = 2 -Def_NpcDictKey_CampType = 'CampType' -#阵营 三种 中立 正义 邪恶 - CampType_Neutral = ShareDefine.CampType_Neutral # 中立 CampType_Justice = ShareDefine.CampType_Justice # 正义 CampType_Evil = ShareDefine.CampType_Evil # 邪恶 @@ -1238,7 +1235,7 @@ ) = range(Def_UseSkillAim_Type) #技能施法目标类型, 修改此处应在Def_Dict_UseSkillTag_ObjType 相应更改 -Def_UseSkillTag_Type = 16 +Def_UseSkillTag_Type = 17 ( Def_UseSkillTag_None , #无需选择对象 0 Def_UseSkillTag_Self , #自己 1 @@ -1256,6 +1253,7 @@ Def_UseSkillTag_CanAttackBaseNPC, #可攻击的野外小怪(含精英)怪物 13 Def_UseSkillTag_FriendNPC, #友好NPC 14 Def_UseSkillTag_AppointNPC, #指定NPC 15 必须和效果值配合 Def_Skill_Effect_AppointNPC + Def_UseSkillTag_FriendDeath, #友方死亡目标16 ) = range( 0, Def_UseSkillTag_Type ) @@ -1294,6 +1292,13 @@ Def_ST_CanNPCUseSkill = [ Def_UseSkillTag_None, Def_UseSkillTag_Self, + ] + +#NPC技能:可以对友好目标释放的技能 +Def_ST_CanNPCUseSkillFriend = [ + Def_UseSkillTag_Friend, + Def_UseSkillTag_SelfAndFriend, + Def_UseSkillTag_FriendNPC, ] #自动攻击技能类型 @@ -1343,7 +1348,7 @@ Def_SkillType_PlsBuff : IPY_GameWorld.bfBuff , #增益BUFF 5 Def_SkillType_DepBuff : IPY_GameWorld.bfDeBuff , #减益BUFF 6 Def_SkillType_PassiveBuff : IPY_GameWorld.btPassiveBuf, # 被动技能 7 (废弃,无此定义分散为其他buff) - Def_SkillType_Revive : IPY_GameWorld.bfIncBuff, #复活 8 + #Def_SkillType_Revive : IPY_GameWorld.bfIncBuff, #复活 8 Def_SkillType_Increment : IPY_GameWorld.bfIncBuff, #增值技能(不可清除)9 Def_SkillType_Aura : IPY_GameWorld.bfAura , #光环技能 10 Def_SkillType_Equip : IPY_GameWorld.bfEquipBuff,#装备技能 11 @@ -1641,9 +1646,6 @@ #GM操作字符 Def_GM_Oper_ForbidAcc = 'GMOperForbidAcc' #GM操作符:踢出玩家 #--------------------------------------------------------------------- -#GM活动ID(10倍) -Def_GY_GM_GameID_MapGiveExp_Ten = 3000005 -Def_GY_GM_GameID_MapGiveExp_Fifty = 3000006 #------------ # 非c++定义的账号状态,py用的账号锁定,禁言,按位判断 @@ -1733,6 +1735,11 @@ Def_NstNull, Def_NstMoving, Def_NstDead, Def_NstAttack = range(4) #-------------------------------#副本相关#------------------------ +# 主线小怪 +Def_FBMapID_Main = 1 +# 主线Boss +Def_FBMapID_MainBoss = 2 + #创角新手村地图ID列表 Def_CreatRoleMapIDList = [10000] #PK周赛 @@ -1850,9 +1857,6 @@ TurnFightMapIDList = ( Def_TFMapID_MineArea, # 福地 1 ) = range(1, 1 + 1) - -#回合战斗自定义地图需要发送GameServer的列表 -Def_TFMapID_SendToGameServer = [Def_TFMapID_MineArea] #前端自定义场景地图 ClientCustomSceneList = [Def_FBMapID_PersonalBoss, Def_FBMapID_ArenaBattle, Def_FBMapID_MirrorBattle] @@ -2498,45 +2502,6 @@ TYPE_Time_Format_YmdHMS = "%Y%m%d%H%M%S" #--------------------------------------------------------------------- -#无限封存时间(10年) -Def_GMPower_MaxTime = 60*24*365*10 -#GM权限表 - -# GM命令 超级GM(1级) A级GM(2级) B级GM(3级) C级GM(4级) D级GM(5级) -Def_GMPower_Disc = { - 'GY_GM_PlayerDetailByID' : { 1 : True , 2 : True , 3 : True , 4 : True , 5 : True } , #角色查询 - 'GY_GM_MoveToPlayerByID' : { 1 : True , 2 : True , 3 : True , 4 : True , 5 : True } , #传送到玩家身边 - 'GY_GM_PullPlayerByID' : { 1 : True , 2 : True , 3 : True , 4 : True , 5 : True } , #把玩家拉到身边 - 'GY_GM_ViewBroadcast' : { 1 : True , 2 : True , 3 : True , 4 : False, 5 : False} , #查询公告 - 'GY_GM_ForbidFight' : { 1 : True , 2 : True , 3 : True , 4 : True , 5 : False} , #禁止战斗 - 'GY_GM_KickPlayer' : { 1 : True , 2 : True , 3 : True , 4 : True , 5 : True } , #踢玩家下线 - 'GY_GM_CloseAccID' : { 1 : True , 2 : True , 3 : True , 4 : True , 5 : False} , #帐号封存 - 'GY_GM_SetNoSight' : { 1 : True , 2 : True , 3 : True , 4 : True , 5 : True } , #设置隐身 - 'GY_GM_CancelNoSight' : { 1 : True , 2 : True , 3 : True , 4 : True , 5 : True } , #取消隐身 - 'GY_GM_ForbidTalk' : { 1 : True , 2 : True , 3 : True , 4 : False, 5 : False} , #禁止说话 - 'GY_GM_ChangeGMLV' : { 1 : True , 2 : False, 3 : False, 4 : False, 5 : False} , #更改权限 - 'GY_GM_SetExpRate' : { 1 : True , 2 : True , 3 : True , 4 : False, 5 : False} , #经验倍率 - 'GY_GM_StartGame' : { 1 : True , 2 : True , 3 : True , 4 : False, 5 : False} , #开启活动 - 'GY_GM_ViewGame' : { 1 : True , 2 : True , 3 : True , 4 : False, 5 : False} , #查询活动 - 'GY_GM_FindPlayerByID' : { 1 : True , 2 : True , 3 : True , 4 : True , 5 : True } , #查询玩家 - 'GY_GM_FindPlayerByName' : { 1 : True , 2 : True , 3 : True , 4 : True , 5 : True } , #查询玩家 - 'GY_GM_GivePlayerExp' : { 1 : True , 2 : True , 3 : True , 4 : True , 5 : True } , #给经验 - 'GY_GM_Broadcast' : { 1 : True , 2 : True , 3 : True , 4 : False, 5 : False} , #发布公告 - 'GY_GM_ViewWordExpRate' : { 1 : True , 2 : True , 3 : True , 4 : False, 5 : False} , #查看服务器经验倍率 - 'GY_GM_MapGiveExp' : { 1 : True , 2 : True , 3 : True , 4 : True , 5 : True } , #设置指定地图经验倍率 - 'GY_GM_Offline_FindPlayer': { 1 : True , 2 : True , 3 : True , 4 : True , 5 : True } , #脱机工具-查找玩家 - 'GY_GM_Offline_ViewItem' : { 1 : True , 2 : True , 3 : True , 4 : False, 5 : False} , #脱机工具-查看物品 - 'GY_GM_Offline_ViewAttribute' : { 1 : True , 2 : True , 3 : True , 4 : True , 5 : True } , #脱机工具-查看玩家属性 - 'GY_GM_Offline_ViewSkill': { 1 : True , 2 : True , 3 : True , 4 : True , 5 : True } , #脱机工具-查看玩家技能 - 'GY_GM_Offline_ViewTitle': { 1 : True , 2 : True , 3 : True , 4 : True , 5 : True } , #脱机工具-查看玩家称号 - 'GY_GM_Offline_ViewMoney': { 1 : True , 2 : True , 3 : True , 4 : True , 5 : True } , #脱机工具-查看玩家货币 - 'GY_GM_Offline_ViewGMOper': { 1 : True , 2 : True , 3 : True , 4 : True , 5 : True } , #脱机工具-查看玩家GM操作 - 'GY_GM_CloseBroadcast' : { 1 : True , 2 : True , 3 : True , 4 : False, 5 : False} , #脱机工具-消除公告 - 'GY_GM_Offline_UnBind' : { 1 : True , 2 : True , 3 : True , 4 : True , 5 : True } , #脱机工具-解封玩家 - 'GY_GM_Offline_ViewUnBind' : { 1 : True , 2 : True , 3 : True , 4 : True , 5 : True } , #脱机工具-查询玩家 - } - -#--------------------------------------------------------------------- #请求类型(需要和GameServer中的一致) Def_QueryType_Count = 56 ( @@ -2966,7 +2931,7 @@ # 回合攻击战斗类型 ( -TurnBattleType_Normal, # 普通 +TurnBattleType_Normal, # 常规攻击 TurnBattleType_Combo, # 连击 TurnBattleType_AtkBack, # 反击 ) = range(3) @@ -2974,9 +2939,22 @@ Def_PerTurnTick = 1000 # 每回合等同于常规tick时长 # 回合战斗目标类型 -TurnBattle_TagType_NPC = 0 +TurnBattle_TagType_NPCLineup = 0 # NPC阵容 TurnBattle_TagType_Player = 1 TurnBattle_TagType_Team = 2 + +#---Obj字典------- +Def_Obj_Dict_Faction = 'Faction' # 所属阵营 +Def_Obj_Dict_LineupPlayerID = 'LineupPlayerID' # 阵容所属玩家ID,可用于判断是否玩家阵容,PVP或PVE +Def_Obj_Dict_HeroID = 'HeroID' # 该战斗NPC所绑定的武将ID,一般仅玩家阵容有 +Def_Obj_Dict_SkinID = 'SkinID' # 该战斗NPC所绑定的武将皮肤ID,一般仅玩家阵容有 +Def_Obj_Dict_TurnFightPosInfo = 'TurnFightPosInfo' # 回合制站位: 阵营编号*100+阵型站位,阵型站位为0时代表非主战单位 +Def_Obj_Dict_TurnFightTimeline = 'TurnFightTimeline' # 回合制战斗时间线: 回合数*100+行动编号节点 +Def_Obj_Dict_TurnComboNum = 'TurnComboNum' # 单次累计连击次数 +Def_Obj_Dict_TurnAtkBackNum = 'TurnAtkBackNum' # 单次累计反击次数 +Def_Obj_Dict_TurnParryNum = 'TurnParryNum' # 单次累计格挡次数 +Def_Obj_Dict_TurnMissNum = 'TurnMissNum' # 单次累计闪避次数 +Def_Obj_Dict_TurnBattleType = 'TurnBattleType' # 本次攻击战斗类型:TurnBattleType_xxx #---NPC字典------- #每道龙卷风最终坐标 @@ -3203,6 +3181,7 @@ Def_PlayerKey_AttrPerLVAtk = "PerLVAtk" #每1级+%s攻击, 数值取万分率,支持小数算法 Def_PlayerKey_AttrPerLVMaxHP = "PerLVMaxHP" #每1级+%s生命, 数值为固定值 Def_PlayerKey_AttrShieldMPCostRate = "AttrShieldMPCostRate" #魔法盾伤害吸收蓝耗比率 +Def_PlayerKey_AttrXP = "AttrXP" #当前XP Def_PlayerKey_AttrXPRestorePer = "AttrXPRestorePer" #自动恢复XP值比率 Def_PlayerKey_MarkLoadMapTick = "LoadMapTickVIP" #记录切换地图后的tick,VIP Def_PlayerKey_MTFreeOnlineRefreshTick = "MTFreeOnlineRTick" # 寻宝在线计算时间 @@ -4420,8 +4399,11 @@ Def_PDict_TiandaoAward = "TiandaoAward_%s" # 天道树领奖记录,按奖励索引记录是否已领取,参数(key编号) #武将 -Def_PDict_HeroActState = "HeroActState_%s" # 武将解锁状态,按记录索引二进制存储,参数(key编号) Def_PDict_HeroSkin = "HeroSkin_%s" # 武将皮肤解锁状态,按皮肤索引二进制存储,参数(武将ID) +Def_PDict_HeroBook = "HeroBook_%s" # 武将图鉴激活等级,参数(武将ID) cccbbba a-初始激活状态1-英雄激活,2-初始图鉴激活; bbb-存星级图鉴激活等级;ccc-存突破图鉴激活等级 + +#主线 +Def_PDict_UnXiantaoCnt = "UnXiantaoCnt" # 累计未结算的战锤数 #------------------------------------------------------------------------------- #可以从07 41封包购买的背包类型,和对应字典{背包类型:[字典key, 默认格子数]} @@ -4516,6 +4498,7 @@ AttrName_FightExpRate = "FightExpRate" # 杀怪经验倍率 AttrName_GameExpRate = "GameExpRate" # 游戏事件经验倍率 AttrName_SkillAtkRate = "SkillAtkRate" # 技能伤害加成 (用作伤害加成) +AttrName_AtkBackHP = "AtkBackHP" # 攻击回复血量固定值 AttrName_AtkBackHPPer = "AtkBackHPPer" # 攻击回复血量比率 AttrName_SuperHit = "SuperHit" # 暴击伤害固定值 AttrName_SuperHitRate = "SuperHitRate" # 暴击概率 @@ -4546,6 +4529,17 @@ AttrName_PetAtk = "PetAtk" # 灵宠攻击 AttrName_PetSkillAtkRate = "PetSkillAtkRate" # 灵宠技能 AttrName_PetDamPer = "PetDamPer" # 灵宠伤害增加 +AttrName_ComboDefRate = "ComboDefRate" # 抗连击概率 +AttrName_AtkBackRate = "AtkBackRate" # 反击概率 +AttrName_AtkBackDefRate = "AtkBackDefRate" # 抗反击概率 +AttrName_SuckHPPer = "SuckHPPer" # 吸血比率 +AttrName_SuckHPDefPer = "SuckHPDefPer" # 抗吸血比率 +AttrName_CurePer = "CurePer" # 强化治疗 +AttrName_CureDefPer = "CureDefPer" # 弱化治疗 +AttrName_PetStrengthenPer = "PetStrengthenPer" # 强化灵兽 +AttrName_PetWeakenPer = "PetWeakenPer" # 弱化灵兽 +AttrName_SuperHitHurtPer = "SuperHitHurtPer" # 强化暴伤 +AttrName_SuperHitHurtDefPer = "SuperHitHurtDefPer" # 弱化暴伤 #物品效果(ID或指定类型)对应的属性计算信息 {效果(ID/指定类型):[[属性索引, ...], 是否基础属性,(非)线性]} #对应 Def_Calc_AllAttrType_MAX @@ -4736,6 +4730,22 @@ ShareDefine.Def_Effect_FamilyWarHPPer:[[TYPE_Calc_FamilyWarHPPer], False, TYPE_Linear], ShareDefine.Def_Effect_FamilyWarAtkPer:[[TYPE_Calc_FamilyWarAtkPer], False, TYPE_Linear], ShareDefine.Def_Effect_FamilySitExpPer:[[TYPE_Calc_FamilySitExpPer], False, TYPE_Linear], + ShareDefine.Def_Effect_ComboDefRate:[[TYPE_Calc_ComboDefRate], False, TYPE_Linear], + AttrName_ComboDefRate:[[TYPE_Calc_ComboDefRate], False, TYPE_Linear], + ShareDefine.Def_Effect_AtkBackRate:[[TYPE_Calc_AtkBackRate], False, TYPE_Linear], + AttrName_AtkBackRate:[[TYPE_Calc_AtkBackRate], False, TYPE_Linear], + ShareDefine.Def_Effect_AtkBackDefRate:[[TYPE_Calc_AtkBackDefRate], False, TYPE_Linear], + AttrName_AtkBackDefRate:[[TYPE_Calc_AtkBackDefRate], False, TYPE_Linear], + ShareDefine.Def_Effect_SuckHPPer:[[TYPE_Calc_SuckHPPer], False, TYPE_Linear], + AttrName_SuckHPPer:[[TYPE_Calc_SuckHPPer], False, TYPE_Linear], + ShareDefine.Def_Effect_SuckHPDefPer:[[TYPE_Calc_SuckHPDefPer], False, TYPE_Linear], + AttrName_SuckHPDefPer:[[TYPE_Calc_SuckHPDefPer], False, TYPE_Linear], + ShareDefine.Def_Effect_CurePer:[[TYPE_Calc_CurePer], False, TYPE_Linear], + ShareDefine.Def_Effect_CureDefPer:[[TYPE_Calc_CureDefPer], False, TYPE_Linear], + ShareDefine.Def_Effect_PetStrengthenPer:[[TYPE_Calc_PetStrengthenPer], False, TYPE_Linear], + ShareDefine.Def_Effect_PetWeakenPer:[[TYPE_Calc_PetWeakenPer], False, TYPE_Linear], + ShareDefine.Def_Effect_SuperHitHurtPer:[[TYPE_Calc_SuperHitHurtPer], False, TYPE_Linear], + ShareDefine.Def_Effect_SuperHitHurtDefPer:[[TYPE_Calc_SuperHitHurtDefPer], False, TYPE_Linear], #战斗非线性 ShareDefine.Def_Effect_SuperHitPer:[[TYPE_Calc_SuperHit], False, TYPE_NoLinear], @@ -5774,7 +5784,8 @@ Def_SkillFuncType_ShentongSkill, #20 神通技能 Def_SkillFuncType_ElfSkill, #21 精怪技能 Def_SkillFuncType_GatherTheSoul, #22 聚魂技能 -) = range(23) +Def_SkillFuncType_TurnNormaAttack, #23 回合普攻技能 +) = range(24) # 受技能效果完全影响的怪, 对应 Def_BattleRelationType_CommNoBoss Def_SkillAttack_NPCIsBoss = [ Def_NPCType_Ogre_Normal , #平凡小怪 0 # c++ 定义为普通NPC视野刷新 @@ -5790,6 +5801,12 @@ Def_BattleRelationType_CommNoBoss, # 除了(指定)BOSS,可对其释放技能,但是无实际效果 ) = range(0, 4) +# 近战远程 +AtkDistTypeList = ( +AtkDistType_Short, # 近战 +AtkDistType_Long, # 远程 +) = range(1, 1 + 2) + # 经验倍率限制类型 ( ExpRateLimitType_Recover, # 资源找回 -- Gitblit v1.8.0