From 0b4e44a6764b14b51c4b72b9c47c5a162352850d Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 22 十月 2025 11:48:31 +0800
Subject: [PATCH] 16 卡牌服务端(删除 PlayerBattle)
---
/dev/null | 319 -----------------------------------------------------
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script.ini | 20 ---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini | 12 --
3 files changed, 0 insertions(+), 351 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini
index 1e80ea1..7c35c77 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini
@@ -178,18 +178,6 @@
PacketSubCMD_2=0x13
PacketCallFunc_2=OnItemDecompound
-;玩家战斗相关
-[PlayerBattle]
-ScriptName = Player\PlayerBattle.py
-Writer = alee
-Releaser = alee
-RegType = 0
-RegisterPackCount = 1
-
-PacketCMD_1=0xA2
-PacketSubCMD_1=0x02
-PacketCallFunc_1=SelectObj
-
;家族
[PlayerFamily]
ScriptName = Player\PlayerFamily.py
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script.ini b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script.ini
index dca93ea..3ef7c7a 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script.ini
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script.ini
@@ -337,26 +337,6 @@
PacketSubCMD_1=0x3
PacketCallFunc_1=PetStateChange
-;战斗
-[Battle]
-ScriptName = Player\PlayerBattle.py
-Writer = eggxp
-Releaser = eggxp
-RegType = 0
-RegisterPackCount = 3
-
-PacketCMD_1=0x6
-PacketSubCMD_1=0x1
-PacketCallFunc_1=PlayerNormalAttack
-
-PacketCMD_2=0x6
-PacketSubCMD_2=0x5
-PacketCallFunc_2=PlayerStartAutoFight
-
-PacketCMD_3=0x6
-PacketSubCMD_3=0xB
-PacketCallFunc_3=PlayerConfronting
-
;技能
[Skill]
ScriptName = Skill\SkillShell.py
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBattle.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBattle.py
deleted file mode 100644
index 4876ac8..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBattle.py
+++ /dev/null
@@ -1,319 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#---------------------------------------------------------------------
-#
-#---------------------------------------------------------------------
-##@package PlayerBattle
-# @todo: 玩家普通攻击,战斗逻辑处理
-#
-# @author: panwei
-# @date 2010-4-28
-# @version 1.4
-#
-# @note:
-#---------------------------------------------------------------------
-# @change: "2013-03-11 18:00" wdb 去除对峙
-# @change: "2013-06-05 18:00" Alee 新增选中玩家逻辑
-# @change: "2013-06-06 21:30" Alee 战斗状态不可进入任务对话,导致对象变更等问题
-# @change: "2016-09-23 16:30" hxp 采集中选中对象更新时结束采集
-#---------------------------------------------------------------------
-#"""Version = 2016-09-23 16:30"""
-#---------------------------------------------------------------------
-import IPY_GameWorld
-import GameWorld
-import PlayerControl
-import PlayerState
-import ChConfig
-import BaseAttack
-import OperControlManager
-import GameObj
-#---------------------------------------------------------------------
-
-#---------------------------------------------------------------------
-#===============================================================================
-# //////////////////////////////////////////////////////////////
-# //06 01 人物普通攻击#tagCPlayerBaseAttack
-# tagCPlayerBaseAttack * GettagCPlayerBaseAttack();
-#
-# class IPY_CPlayerBaseAttack
-# {
-# public:
-#
-# int GetObjType();
-#
-# int GetObjID();
-#
-# int GetPosX();
-#
-# int GetPosY();
-# };
-#===============================================================================
-## 玩家普通攻击 06 01
-# @param index 玩家索引
-# @param tick 当前时间
-# @return None
-# @remarks 函数详细说明.
-def PlayerNormalAttack(index, tick):
- GameWorld.GetPsycoFunc(__Func_PlayerNormalAttack)(index, tick)
- return
-
-## 玩家普通攻击 06 01
-# @param index 玩家索引
-# @param tick 当前时间
-# @return None
-# @remarks 函数详细说明.
-def __Func_PlayerNormalAttack(index, tick):
- curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
-
- if not curPlayer.GetMapLoadOK():
- #玩家地图读取未成功, 踢出这人
- #吞掉这个包, 不处理
- #curPlayer.Kick(IPY_GameWorld.disPlayerMovedWhenNotPrepare)
- return
-
- if curPlayer.GetGMForbidenFight():
- #Play_Attack_Null 对不起,您已被GM禁止战斗,攻击失败
- PlayerControl.NotifyCode(curPlayer , "Play_Attack_Null")
- return
-
- if GameObj.GetHP(curPlayer) <= 0:
- #玩家已经死亡
- #GameWorld.Log("玩家普通攻击失败,玩家已经死亡")
- return
-#===============================================================================
-# #玩家当前状态
-# curPlayerAction = curPlayer.GetPlayerAction()
-#
-# if curPlayerAction == IPY_GameWorld.paMove:
-# curPlayer.StopMove()
-#===============================================================================
-
- #状态判断, 只有在空闲状态,攻击 才可以攻击
- if curPlayer.GetPlayerAction() not in ChConfig.Def_PlayerCanAttackState:
- PlayerControl.NotifyCode(curPlayer, "CannotAtk03")
- return
-
- #普攻行为状态, 客户端限制
- if not OperControlManager.IsObjCanDoAction(curPlayer,
- ChConfig.Def_Obj_ActState_ClientSkill,
- ChConfig.Def_Action_Attack_Bit):
- return
-
- #有交通工具也无法攻击
- vehicle = curPlayer.GetPlayerVehicle()
-
- #===========================================================================
- # if vehicle == IPY_GameWorld.pvHorse :
- # PlayerControl.NotifyCode(curPlayer, "CannotAtk05")
- # return
- #===========================================================================
-
- sendPack = IPY_GameWorld.IPY_CPlayerBaseAttack()
- sendPackObjID = sendPack.GetObjID()
- sendPackObjType = sendPack.GetObjType()
- sendPackPosX = sendPack.GetPosX()
- sendPackPosY = sendPack.GetPosY()
-
- curTag = GameWorld.GetObj(sendPackObjID, sendPackObjType)
-
- if curTag == None or GameObj.GetHP(curTag) <= 0:
- #Attack_Lost_AimDeath <n color="0,255,0">对不起,目标已死亡,攻击无效!</n>
- #PlayerControl.NotifyCode(curPlayer, "Attack_Lost_AimDeath")
- #GameWorld.Log("攻击NPC,攻击类型不正确")
- return
-
- if PlayerControl.PlayerRefreshPos(curPlayer, curPlayer, sendPackPosX, sendPackPosY, False) != True:
- #玩家当前位置刷新失败
- GameWorld.ErrLog("玩家普通攻击, 当前位置刷新失败", curPlayer.GetPlayerID())
- return
-
- #激活玩家,解除呆滞
- PlayerControl.SetIsNeedProcess(curPlayer, True)
-
- #playerLastAction = curPlayer.GetPlayerAction()
-
- #玩家攻击NPC, 设置玩家为攻击状态, 在玩家的后台处理脚本中开始表演玩家攻击NPC的动画
- curPlayer.ClearUseSkillRec()
- curPlayer.SetActionObj(curTag)
- curPlayer.SetUseSkillTagID(curTag.GetID())
- curPlayer.SetUseSkillTagType(curTag.GetGameObjType())
- #@warning: 设置攻击起点为客户端发送的坐标(此处将会被外挂利用)
- curPlayer.SetAttackTargetPos(sendPackPosX, sendPackPosY)
-
- #已经在攻击中
- if curPlayer.GetPlayerAction() == IPY_GameWorld.paAttack:
- return
-
- #设置攻击标志位
- PlayerControl.ChangePlayerAction(curPlayer, IPY_GameWorld.paAttack)
- #执行战斗逻辑
- PlayerState.ProcessFight(curPlayer, tick)
-#===============================================================================
-# if playerLastAction != IPY_GameWorld.paAttack:
-# #玩家由非攻击状态进入攻击状态, 触发一次玩家状态刷新
-# PlayerState.ProcessPlayerState(curPlayer, tick)
-# return
-#===============================================================================
- return
-#===============================================================================
-# //////////////////////////////////////////////////////////////
-# //06 05 自动打怪#tagCStartAutoFight
-# tagCStartAutoFight * GettagCStartAutoFight();
-#
-# class IPY_CStartAutoFight
-# {
-# public:
-# //0: 结束自动打怪 1: 开始自动打怪
-# int GetType();
-# };
-#===============================================================================
-## 自动打怪 06 05
-# @param index 玩家索引
-# @param tick 当前时间
-# @return None
-# @remarks 函数详细说明.
-def PlayerStartAutoFight(index, tick):
- curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
- sendPack = IPY_GameWorld.IPY_CStartAutoFight()
- type = sendPack.GetType()
-
- if type not in [ 0, 1 ]:
- GameWorld.ErrLog("开始自动打怪参数不正确%d"%(type), curPlayer.GetPlayerID())
- return
-
- curPlayer.SetAutoFight(type)
- return
-#===============================================================================
-# //////////////////////////////////////////////////////////////
-# //06 0B人物进入对峙状态#tagCPlayerEnterBattle
-# tagCPlayerEnterBattle * GettagCPlayerEnterBattle();
-#
-# class IPY_CPlayerEnterBattle
-# {
-# public:
-#
-# int GetObjType();
-#
-# int GetObjID();
-# //0进入;其他退出
-# int GetEnterOrExit();
-# };
-#===============================================================================
-## 人物进入对峙状态 06 0B
-# @param index 玩家索引
-# @param tick 当前时间
-# @return None
-# @remarks 函数详细说明.
-def PlayerConfronting(index, tick):
-# curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
-#
-# sendPack = IPY_GameWorld.IPY_CPlayerEnterBattle()
-# sendPack_ObjID = sendPack.GetObjID()
-# sendPack_GetObjType = sendPack.GetObjType()
-# sendPack_EnterOrExit = sendPack.GetEnterOrExit()
-#
-# #进入战斗对峙
-# if not sendPack_EnterOrExit:
-# __DoLogic_EnterPlayerConfronting(curPlayer, sendPack_ObjID, sendPack_GetObjType, tick)
-# return
-#
-# #退出战斗对峙
-# __DoLogic_ExitPlayerConfronting(curPlayer)
- return
-
-## 进入战斗对峙
-# @param curPlayer 当前玩家
-# @param sendPack_ObjID 对象ID
-# @param sendPack_GetObjType 对象类型
-# @param tick 当前时间
-# @return None
-# @remarks 函数详细说明.
-def __DoLogic_EnterPlayerConfronting(curPlayer, sendPack_ObjID, sendPack_GetObjType, tick):
-# #有交通工具不让进入战斗对峙
-# if curPlayer.GetPlayerVehicle() != IPY_GameWorld.pvNull:
-# return
-#
-# curPlayerAction = curPlayer.GetPlayerAction()
-#
-# if curPlayerAction not in ChConfig.Def_PlayerCanEnterConfronting:
-# return
-#
-# if curPlayer.GetGMForbidenFight():
-# #Play_Attack_Null 对不起,您已被GM禁止战斗,攻击失败
-# PlayerControl.NotifyCode(curPlayer, "Play_Attack_Null")
-# return
-#
-# actObj = curPlayer.GetActionObj()
-#
-# #已经在对峙状态, 且目标相同不处理
-# if curPlayer.GetIsConfronting() and actObj != None and actObj.GetID() == sendPack_ObjID and actObj.GetGameObjType() == sendPack_GetObjType:
-# return
-#
-# findActObj = GameWorld.GetObj(sendPack_ObjID, sendPack_GetObjType)
-#
-# if not findActObj:
-# return
-#
-# relation = BaseAttack.GetTagRelation(curPlayer, findActObj, None, tick)
-# #判断是否敌对关系
-# if relation[0] != ChConfig.Type_Relation_Enemy :
-# return
-#
-# #进度条打断
-# elif curPlayerAction == IPY_GameWorld.paPreparing:
-# PlayerControl.ChangePlayerAction(curPlayer, IPY_GameWorld.paNull)
-#
-# #进入对峙状态
-# curPlayer.SetActionObj(findActObj)
-# curPlayer.SetIsConfronting(True)
-# #通知客户端 //0进入;其他退出
-# curPlayer.View_PlayerBattle(sendPack_ObjID, sendPack_GetObjType, 0)
-#
-# #添加测试信息
-# GameWorld.GodLog(curPlayer, 'Client发包进入战斗对峙成功')
- return
-
-## 退出战斗对峙
-# @param curPlayer
-# @return None
-# @remarks 函数详细说明.
-def __DoLogic_ExitPlayerConfronting(curPlayer):
- if not PlayerControl.IsPlayerInFight(curPlayer):
- return
-
- #设置空目标
- curPlayer.SetActionObj(None)
-
- #退出对峙状态
- PlayerControl.ExitPlayerConfronting(curPlayer)
- return
-
-# 目标死亡和消失时发包取消对象,人物死亡取消选中
-##增加锁定模式amContest,锁定情况下只能攻击目标
-# @param None
-# @return None
-def SelectObj(index, clientData, tick):
- curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
- if curPlayer.GetPlayerAction() == IPY_GameWorld.paDie:
- return
-
- if clientData.isSelect == 0:
- curPlayer.SetDict(ChConfig.Def_PlayerKey_SelectObjID, 0)
- curPlayer.SetDict(ChConfig.Def_PlayerKey_SelectObjType, 0)
- return
-
- curTag = GameWorld.GetObj(clientData.ID, clientData.Type)
- if curTag == None or curTag.IsEmpty():
- return
-
- if curPlayer.GetAttackMode() == IPY_GameWorld.amContest and curTag.GetGameObjType() == IPY_GameWorld.gotPlayer:
- if curPlayer.GetTeamID() and curPlayer.GetTeamID() == curTag.GetTeamID():
- #GameWorld.DebugLog("锁定模式不锁定队友")
- return
-
- #这里不验证是否死亡
- curPlayer.SetDict(ChConfig.Def_PlayerKey_SelectObjID, clientData.ID)
- curPlayer.SetDict(ChConfig.Def_PlayerKey_SelectObjType, clientData.Type)
-
- return
-
--
Gitblit v1.8.0