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