From 7090e3f4e6d9d386fd1fdd681889db6c921c9941 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 28 三月 2019 17:54:01 +0800
Subject: [PATCH] 6373 【后端】【2.0】删除无用功能代码、封包、配置(摆摊系统)

---
 /dev/null                                                                                   |  580 ------------------------------------------------
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script.ini                     |   24 --
 ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py                                  |    2 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py     |   84 -------
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py |    9 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py             |   16 -
 6 files changed, 3 insertions(+), 712 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py b/ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py
index c83e7ad..a4e117b 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py
@@ -807,7 +807,7 @@
 Def_GiveMoney_SellPackItem, # 出售背包物品
 Def_GiveMoney_CollectNPC, # 采集NPC
 Def_GiveMoney_20,
-Def_GiveMoney_StallItem, # 摆摊
+Def_GiveMoney_21,
 Def_GiveMoney_Trade, # 交易
 Def_GiveMoney_Truck, # 运镖
 Def_GiveMoney_FreeGoods, # 极品白拿 
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script.ini b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script.ini
index 0dedbe8..c6ee2ce 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script.ini
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script.ini
@@ -1114,30 +1114,6 @@
 PacketSubCMD_2=0x1
 PacketCallFunc_2=OnPlayerSetTruckMode
 
-;摆摊
-[PlayerShopItem]
-ScriptName = Player\PlayerShopItem.py
-Writer = eggxp
-Releaser = eggxp
-RegType = 0
-RegisterPackCount = 4
-
-PacketCMD_1=0x14
-PacketSubCMD_1=0x1
-PacketCallFunc_1=BeginShopItem
-
-PacketCMD_2=0x14
-PacketSubCMD_2=0x2
-PacketCallFunc_2=EndShop
-
-PacketCMD_3=0x14
-PacketSubCMD_3=0x3
-PacketCallFunc_3=WatchShop
-
-PacketCMD_4=0x14
-PacketSubCMD_4=0x4
-PacketCallFunc_4=BuyItem
-
 ;精力系统
 [PlayerEnergySys]
 ScriptName = Player\PlayerEnergySys.py
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 2e57bf2..7ba1625 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -532,8 +532,6 @@
 Def_Item_Effect_MissionMove = 2001
 #鱼竿
 Def_Item_Effect_FishTool = 2000
-#摆摊证
-Def_Item_Effect_ShopItem = 1900
 #坐骑进阶
 Def_Item_Eff_HorseUpdate = 2819
 #官爵进阶
@@ -688,7 +686,6 @@
 Def_SkillID_Red = 20021         # 红名
 Def_SkillID_ReviveTired = 20030    # 复活疲劳 SkillID
 Def_SkillID_SkillReBorn = -1  # 技能复活ID
-Def_SkillID_ShopItem = -1   # 摆摊技能ID
 Def_SkillID_LimitSuperBuff = 10000    # 有限无敌BUFF SkillID
 Def_SkillID_TJGSuperBuff = 20039    # 脱机挂死亡复活保护
 Def_SkillID_Somersault = 190    # 翻滚快速闪避
@@ -1410,12 +1407,6 @@
 Def_GameEventExpLVDiff = 5
 #组队经验加成
 Def_TeamMemberExp=[1,1,1.1,1.15,1.2,1.25,1.3]
-
-#摆摊--------------------------------------------
-#可以摆摊的状态
-Def_ShopItem_PlayerState = [IPY_GameWorld.paNull, IPY_GameWorld.paAttack]
-#摆摊距离
-Def_ShopItem_Dist = 10
 #物品--------------------------------------------
 
 #人物背包最大个数
@@ -4537,13 +4528,12 @@
 Def_Cost_FinishTruck, # 完成镖车
 Def_Cost_RefreshTimeShop, # 刷新神秘商店
 Def_Cost_OpenNoble, # 开通贵族
-Def_Cost_BuyStallItem, # 购买摆摊物品
 Def_Cost_Warehouse, # 仓库
 Def_Cost_BuyItemBack, # 回购
 Def_Cost_Trade, # 交易
 Def_Cost_Rename, # 改名
 Def_Cost_SkillLvUp, # 技能升级
-) = range(2000, 2000 + 57)
+) = range(2000, 2000 + 56)
 
 Def_Cost_Reason_SonKey = "reason_name_son" # 消费点原因子类说明key
 
@@ -4603,7 +4593,6 @@
 Def_Cost_Transport:"Transport",
 Def_Cost_OffLineExp:"OffLineExp",
 Def_Cost_GameServer:"GameServer",
-Def_Cost_BuyStallItem:"BuyStallItem",
 Def_Cost_Trade:"Trade",
 Def_Cost_Rename:"Rename",
 Def_Cost_SkillLvUp:"SkillLvUp",
@@ -4648,7 +4637,7 @@
 Def_GiveMoney_SellPackItem, # 出售背包物品
 Def_GiveMoney_CollectNPC, # 采集NPC
 Def_GiveMoney_20,
-Def_GiveMoney_StallItem, # 摆摊
+Def_GiveMoney_21,
 Def_GiveMoney_Trade, # 交易
 Def_GiveMoney_Truck, # 运镖
 Def_GiveMoney_FreeGoods, # 极品白拿 
@@ -4682,7 +4671,6 @@
 Def_GiveMoney_Warehouse:"Warehouse",
 Def_GiveMoney_SellPackItem:"SellPackItem",
 Def_GiveMoney_CollectNPC:"CollectNPC",
-Def_GiveMoney_StallItem:"StallItem",
 Def_GiveMoney_Trade:"Trade",
 Def_GiveMoney_Truck:"Truck",
 Def_GiveMoney_FreeGoods:"FreeGoods",
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py
index fbfbc0c..1638a78 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py
@@ -28,8 +28,6 @@
 # @change: "2013-09-18 17:00" Alee 退出锁定退出交易
 # @change: "2013-09-23 19:30" Alee 红名提示修改
 # @change: "2013-11-15 20:20" hxp 关闭07 3A购买背包封包功能,增加背包成功系统提示
-# @change: "2013-11-27 20:30" hxp 修改结束摆摊状态事件单独处理,不在结束事件中处理
-# @change: "2013-12-10 14:00" hxp 修改查看摆摊状态事件单独处理,不在结束事件中处理
 # @change: "2013-12-12 14:30" hxp 增加钻石购买背包计费点事件同步
 # @change: "2013-12-13 12:20" hxp 修改首登物品绑定设置
 # @change: "2013-12-27 16:00" Alee 删除多余代码
@@ -80,7 +78,6 @@
 import PlayerControl
 import FunctionNPCCommon
 import FBLogic
-import PlayerShopItem
 import ItemControler
 import ItemCommon
 import QuestCommon
@@ -3729,8 +3726,6 @@
     ExitCreateFamily(curPlayer)
     ExitBillboard(curPlayer)
     #ExitEventLock(curPlayer)
-    #ExitShopItem(curPlayer) # 奇迹只在切地图及下线时关闭摆摊
-    #ExitWatchShopItem(curPlayer)
     #npc商店退出
     ExitNPCShop(curPlayer)
     
@@ -3770,85 +3765,6 @@
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_PyPlayerAction, 0)      
     return
 
-
-##结束摆摊事件
-#@param curPlayer 玩家实例
-#@return 返回值无意义
-#@remarks 自定义函数:结束摆摊事件
-def ExitShopItem(curPlayer):
-    GameWorld.DebugLog("ExitShopItem", curPlayer.GetPlayerID())
-    playerShop = curPlayer.GetPlayerShop()
-    #在摆摊状态
-    if playerShop.GetIsStartShop():
-        PlayerShopItem.DoExitShop(curPlayer , curPlayer.GetPlayerShop())
-        
-    return
-#---------------------------------------------------------------------
-##结束查看摆摊事件
-#@param curPlayer 玩家实例
-#@return 返回值无意义
-#@remarks 自定义函数:结束查看摆摊事件
-def ExitWatchShopItem(curPlayer):
-    curPlayerShop = curPlayer.GetPlayerShop()
-    
-    if not curPlayerShop.GetIsWatchingShop():
-        return
-
-    openShopPlayer = curPlayer.GetActionPlayer()
-    __DoExitWatchShopItem(curPlayer , openShopPlayer)
-    
-    curPlayerShop.SetIsWatchingShop(0) 
-    return
-#---------------------------------------------------------------------
-##结束查看摆摊事件
-#@param curPlayer 玩家实例
-#@return 返回值无意义
-#@remarks 自定义函数:结束查看摆摊事件
-def __DoExitWatchShopItem(curPlayer , openShopPlayer):
-    
-    if openShopPlayer == None:
-        return
-    
-    shop = openShopPlayer.GetPlayerShop()
-    #没有开店
-    if not shop.GetIsStartShop():
-        return
-    
-    #商店删除这个玩家
-    shop.DeleteWatchPlayer(curPlayer.GetPlayerID())
-    return
-
-#---------------------------------------------------------------------
-##结束事件锁
-#@param curPlayer 玩家实例
-#@return 返回值无意义
-#@remarks 自定义函数:结束事件锁
-#===============================================================================
-# def ExitEventLock(curPlayer):
-#    if not curPlayer.GetHaveSetEventLock() :
-#        return
-#    
-#    #在摆摊状态不解锁,奇迹摆摊物品解锁只在切地图/下线/玩家主动结束摆摊情况下解锁
-#    playerShop = curPlayer.GetPlayerShop()
-#    if playerShop.GetIsStartShop():
-#        return
-#    
-#    #获得玩家物品管理器
-#    ItemManager = curPlayer.GetItemManager()
-#    #获得背包
-#    curPack = ItemManager.GetPack(IPY_GameWorld.rptItem)
-#    for i in range(curPack.GetCount()):
-#        item = curPack.GetAt(i)
-#        if item == None or item.IsEmpty():
-#            continue
-#        
-#        if not item.GetIsEventLocked():
-#            continue
-#        
-#        #离开事件锁
-#        item.SetIsEventLocked(False)
-#===============================================================================
-        
 #---------------------------------------------------------------------
 ##结束查看排行榜
 #@param curPlayer 玩家实例
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
index dcdb8fb..e043a34 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -1178,10 +1178,6 @@
     NPCCommon.ClearCollectNPC(curPlayer)
     #结束事件
     EventShell.DoExitEvent(curPlayer)
-    
-    # 结束摆摊/查看摆摊
-    EventShell.ExitShopItem(curPlayer)
-    EventShell.ExitWatchShopItem(curPlayer)
 
     #设置玩家的地图位置, 如果是副本, 离开副本
 #    副本规则:
@@ -1446,11 +1442,6 @@
             PlayerTruck.PlayerTruckDown(curPlayer, curTruck)
         
     curPlayer.SetChangeMapTakeTruck(takeTruck)
-    
-    # 如果在摆摊中,提示摆摊关闭
-    playerShop = curPlayer.GetPlayerShop()
-    if playerShop.GetIsStartShop():
-        NotifyCode(curPlayer, "GeRen_admin_70569")
     
     #离开地图服务器
     __PlayerLeaveServerLogic(curPlayer, tick, False)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerShopItem.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerShopItem.py
deleted file mode 100644
index 5e5e200..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerShopItem.py
+++ /dev/null
@@ -1,580 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#---------------------------------------------------------------------
-#
-#---------------------------------------------------------------------
-##@package PlayerShopItem
-# @todo: 玩家摆摊逻辑处理
-#
-# @author: panwei
-# @date 2010-04-28
-# @version 1.9
-#
-# @note: 玩家摆摊逻辑处理
-#---------------------------------------------------------------------
-# @change: "2010-05-12 18:30" zhengyang 添加注释
-# @change: "2010-06-21 15:54" panwei 恢复摆摊功能
-# @change: "2010-07-16 09:45" panwei 摆摊新增验证, 移动中不能摆摊
-# @change: "2011-09-15 16:00" chenxuewei 删除物品流向记录增加物品是否绑定
-# @change: "2012-06-27 15:30" whx 增加setCount错误oss记录
-# @change: "2012-08-10 15:00" zhangxi 修改OSS记录
-# @change: "2013-11-27 20:30" hxp 修改奇迹摆摊
-# @change: "2013-12-10 14:00" hxp 增加退出查看摆摊逻辑
-# @change: "2015-07-03 16:00" zqx 去除GM限制
-#---------------------------------------------------------------------
-"""Version = 2015-07-03 16:00"""
-#------------------------------------------------------------------------------
-import IPY_GameWorld
-import GameWorld
-import ChConfig
-import PlayerControl
-import ItemControler
-import PlayerTrade
-import ItemCommon
-import ReadChConfig
-import EventShell
-#---------------------------------------------------------------------
-
-#---------------------------------------------------------------------
-## 14 01 开始摆摊#tagCBeginShop
-## 封包触发 开始摆摊
-#  @param index 玩家索引
-#  @param tick 当前时间
-#  @return None
-#  @remarks 函数详细说明.
-def BeginShopItem(index, tick):
-#===============================================================================
-#    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
-#    
-#    #检测玩家状态
-#    if not __CheckBeginShopItemPlayerState(curPlayer):
-#        #PlayerShop_Lost 对不起,当前状态无法摆摊,操作无效
-#        PlayerControl.NotifyCode(curPlayer , "PlayerShop_Lost")
-#        return
-#    
-#    #GM无法摆摊
-# #    if GameWorld.IsGM(curPlayer):
-# #        PlayerControl.NotifyCode(curPlayer, "GeRen_admin_59724")
-# #        return
-#    
-#    playerShop = curPlayer.GetPlayerShop()
-#    
-#    if playerShop.GetIsStartShop():
-#        #GameWorld.Log("已经在摆摊状态中,请结束后在开始")
-#        return
-#    
-# #    if not curPlayer.GetMapBuff().FindBuff(ChConfig.Def_SkillID_ShopItem):
-# #        PlayerControl.NotifyCode(curPlayer, "PlayerShop_Lost_AreaError")
-# #        #GameWorld.Log("无摆摊Buff,摆摊开始失败")
-# #        return
-# 
-#    # 摆摊地图判断
-#    mapID = GameWorld.GetGameWorld().GetMapID()
-#    if mapID not in [10000]:
-#        PlayerControl.NotifyCode(curPlayer, "GeRen_admin_840854")
-#        return
-#    
-#    # 判断摆摊等级
-#    if not __CheckShopPlayerLV(curPlayer):
-#        return
-#    
-#    sendPack = IPY_GameWorld.IPY_CBeginShop()
-#    shopLV = sendPack.GetShopLV()
-#    shopName = sendPack.GetShopName()
-#    
-#    if shopName == '':
-#        GameWorld.ErrLog("摆摊名字为空" , curPlayer.GetPlayerID())
-#        return
-#    
-# # 奇迹不需要摆摊石
-# #    #获得玩家装备的
-#    itemManager = curPlayer.GetItemManager()
-# #    equipPack = itemManager.GetPack(IPY_GameWorld.rptEquip)
-# #    shopItem = equipPack.GetAt(IPY_GameWorld.retShopping)
-# #    #如果摆摊等级不为1,需要判断是否有摆摊增值物品
-# #    if not __CheckShopItem(curPlayer, shopItem, shopLV):
-# #        return
-#    
-# # 奇迹不需要摆摊等级限制摆摊个数
-# #    #当前摊位可以摆摊的最大数量
-# #    canShopItemMaxCount = 0
-# #    #检查摆摊等级
-# #    if ChConfig.Def_ShopItem_Count.has_key(shopLV):
-# #        #可以摆摊的数量
-# #        canShopItemMaxCount = ChConfig.Def_ShopItem_Count.get(shopLV)
-# #    else:
-# #        GameWorld.ErrLog("摆摊等级错误,shopLV = %s" % (shopLV) , curPlayer.GetPlayerID())
-# #        return
-#    
-#    canShopItemMaxCount = 12 # 暂定12格,先写死
-#    #获得摆摊物品的销售数量
-#    shopItemCount = sendPack.GetSellCount()
-#    
-#    if shopItemCount <= 0 or shopItemCount > canShopItemMaxCount:
-#        GameWorld.ErrLog("摆摊数量,封包异常 = %s,maxCount = %s" % (shopItemCount, canShopItemMaxCount) , curPlayer.GetPlayerID())
-#        return
-#    
-#    #玩家背包最大数量
-#    itemPack = itemManager.GetPack(IPY_GameWorld.rptItem)
-#    itemIndexList = []
-#    
-#    curItemDict = {}
-#    for i in range(shopItemCount):
-#        sendPackItem = sendPack.GetSellItemIndex(i)
-#        
-#        if sendPackItem == None:
-#            GameWorld.ErrLog("摆摊封包物品为空,itemIndex = %s" % (i) , curPlayer.GetPlayerID())
-#            return
-#            
-#        itemIndex = sendPackItem.GetItemIndex()
-#        item = itemPack.GetAt(itemIndex)
-#        
-#        if not PlayerTrade.CheckTradeItem(curPlayer, item):
-#            GameWorld.ErrLog("摆摊物品错误,itemIndex = %s" % (itemIndex) , curPlayer.GetPlayerID())
-#            return
-#        
-#        silver = sendPackItem.GetSilver()
-#        
-#        if silver < 1:
-#            GameWorld.ErrLog("摆摊物品售价, index = %s, silver = %s" % (itemIndex, silver) , curPlayer.GetPlayerID())
-#            return
-#        
-#        if curItemDict.has_key(itemIndex):
-#            GameWorld.ErrLog("摆摊物品错误, 有重复物品, itemIndex = %s" % (itemIndex) , curPlayer.GetPlayerID())
-#            return
-#        
-#        curItemDict[itemIndex] = silver
-#        itemIndexList.append([itemIndex, silver])
-#    
-#    for i in range(len(itemIndexList)):
-#        # int itemIndex, DWORD    Gold,DWORD    GoldPaper, DWORD    Silver,DWORD    SilverPaper
-#        playerShop.AddSellItem(itemIndexList[i][0], 0, 0, itemIndexList[i][1], 0)
-#        #将背包中,对应的物品锁定
-#        #GameWorld.Log('将背包中,对应的物品锁定 %d'%itemIndexList[i][0])
-#        item = itemPack.GetAt(itemIndexList[i][0])
-#        item.SetIsEventLocked(True)
-#        
-#    #扣摆摊石耐久(改为结束时候扣耐久)
-#    #__ReduceShopItem(curPlayer, shopItem, shopLV)
-#        
-#    playerShop.SetShopName(shopName)
-#    playerShop.SetShopLV(shopLV)
-#    playerShop.SetIsStartShop(True)
-#    #锁住玩家
-#    #curPlayer.BeginEvent()
-#    #开始摆摊
-#    curPlayer.View_StartShop()
-#    #买家店铺刷新
-#    curPlayer.Sync_ShopItem()
-#    PlayerControl.NotifyCode(curPlayer, "GeRen_admin_293296")
-#    GameWorld.Log("开始摆摊成功" , curPlayer.GetPlayerID())
-#===============================================================================
-    return
-
-#---------------------------------------------------------------------
-##检测玩家当前状态是否可以摆摊
-# @param curPlayer 玩家实例
-# @return 布尔值
-# @remarks 检测玩家当前状态是否可以摆摊
-def __CheckBeginShopItemPlayerState(curPlayer):
-    
-    if curPlayer.GetPlayerAction() not in ChConfig.Def_ShopItem_PlayerState:
-        return False
-
-# 奇迹跑动中或骑坐骑亦可摆摊
-#    if curPlayer.GetPlayerVehicle() != IPY_GameWorld.pvNull:
-#        return False
-#    
-#    if curPlayer.IsMoving():
-#        return False
-    
-    return True
-#---------------------------------------------------------------------
-## 结束摆摊
-#  @param index 玩家索引
-#  @param tick 当前时间
-#  @return None
-#  @remarks 函数详细说明.
-def EndShop(index, tick):
-    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
-    #sendPack = IPY_GameWorld.IPY_CEndShop()
-    playerShop = curPlayer.GetPlayerShop()
-    
-    if not playerShop.GetIsStartShop():
-        GameWorld.ErrLog("EndShop -> 不在摆摊状态" , curPlayer.GetPlayerID())
-        return
-    
-    DoExitShop(curPlayer , playerShop)
-    #主动结束事件
-    curPlayer.ExitEvent()
-    #清空移动次数
-    GameWorld.ClearPlayerPosCount(curPlayer)
-    return
-
-#---------------------------------------------------------------------
-## 14 03 查看摊位#tagCWatchShop
-## 查看摊位
-#  @param index 玩家索引
-#  @param tick 当前时间
-#  @return None
-#  @remarks 函数详细说明.
-def WatchShop(index, tick):
-    watchPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
-    watchPlayerShop = watchPlayer.GetPlayerShop()
-    
-# 奇迹任何时候都能查看摊位    
-#    if watchPlayer.GetPlayerAction() not in ChConfig.Def_ShopItem_PlayerState:
-#        #GameWorld.Log("只有空闲状态才能查看")
-#        return
-    
-    #GM无法购买物品
-#    if GameWorld.IsGM(watchPlayer):
-#        PlayerControl.NotifyCode(watchPlayer, "GeRen_admin_59724")
-#        return
-    
-    sendPack = IPY_GameWorld.IPY_CWatchShop()
-    playerID = sendPack.GetPlayerID()
-    
-    # 退出查看摆摊
-    if playerID <= 0:
-        EventShell.ExitWatchShopItem(watchPlayer)
-        return
-    
-    openShopPlayer = GameWorld.GetObj(playerID, IPY_GameWorld.gotPlayer)
-    
-    if openShopPlayer == None:
-        return
-    
-    # 判断玩家间距离
-    if not __CheckShopItemDist(watchPlayer, openShopPlayer):
-        GameWorld.DebugLog("WatchShop dist error: shopPlayID=%s" % playerID, watchPlayer.GetPlayerID())
-        return
-    
-    playerShop = openShopPlayer.GetPlayerShop()
-    
-    if not __CheckopenShopPlayer(watchPlayer, openShopPlayer, playerShop):
-        return
-    
-    #添加查看这个摊位的玩家
-    playerShop.AddWatchPlayer(watchPlayer)
-    #添加查看对象
-    watchPlayer.SetActionObj(openShopPlayer)
-    #锁住玩家
-    watchPlayer.BeginEvent()
-    #设置玩家当前状态为查看摊位状态
-    watchPlayerShop.SetIsWatchingShop(1)
-    #告诉摊位信息
-    watchPlayer.Sync_WatchShop(openShopPlayer)
-    return
-
-#---------------------------------------------------------------------
-## 14 04 购买物品#tagCBuyItem
-## 购买物品
-#  @param index 玩家索引
-#  @param tick 当前时间
-#  @return None
-#  @remarks 函数详细说明.
-def BuyItem(index, tick):
-    watchPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
-    
-    # 判断购买等级
-    if not __CheckShopPlayerLV(watchPlayer):
-        PlayerControl.NotifyCode(watchPlayer, "GeRen_chenxin_93493")
-        return
-    
-    watchPlayerShop = watchPlayer.GetPlayerShop()
-    #不在查看状态
-    if not watchPlayerShop.GetIsWatchingShop():
-        GameWorld.Log("BuyItem error: watchPlayer is not in watch state!", watchPlayer.GetPlayerID())
-        return
-    
-    if ItemControler.GetItemPackSpace(watchPlayer, IPY_GameWorld.rptItem) < 1:
-        #Task_WinLost_RoomLack02 您的背包空间不足,请整理背包后再来
-        PlayerControl.NotifyCode(watchPlayer, "Task_WinLost_RoomLack02")
-        return
-    
-    sendPack = IPY_GameWorld.IPY_CBuyItem()
-    shopItemIndex = sendPack.GetItemIndex()
-    openShopPlayer = watchPlayer.GetActionPlayer()
-    
-    if openShopPlayer == None :
-        GameWorld.Log("BuyItem -> 无对象" , watchPlayer.GetPlayerID())
-        return
-    
-    # 判断买卖双方距离
-    if not __CheckShopItemDist(watchPlayer, openShopPlayer):
-        GameWorld.Log("BuyItem dist error: shopPlayID=%s" % openShopPlayer.GetPlayerID(), watchPlayer.GetPlayerID())
-        return
-    
-    playerShop = openShopPlayer.GetPlayerShop()
-    
-    if not playerShop.GetIsStartShop():
-        GameWorld.Log("BuyItem ->目标不在摆摊状态" , watchPlayer.GetPlayerID())
-        return
-    
-    openShopPlayerPack = openShopPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
-        
-    shopItem = playerShop.GetSellItemAt(shopItemIndex)
-    
-    if shopItem == None:
-        GameWorld.Log("BuyItem ->无此摆摊物品 = %s" % (shopItemIndex) , watchPlayer.GetPlayerID())
-        return
-    
-    buyItem = openShopPlayerPack.GetAt(shopItem.GetItemIndex())
-    
-    buyCount = sendPack.GetItemCount()
-    
-    buyItemMaxCount = buyItem.GetCount()
-    
-    # 检查购买物品数量
-    if not __CheckBuyItem(watchPlayer, buyItem, buyCount, buyItemMaxCount):
-        return
-    
-    costMoney = shopItem.GetSilver() * buyCount
-    payType = IPY_GameWorld.TYPE_Price_Silver_Money
-    
-    # 判断对方金钱上限
-    if PlayerControl.GetSilver(openShopPlayer) + costMoney > ChConfig.Def_PlayerTotalMoney_Silver:
-        # 对不起,您携带的金钱已经达上限,操作无效
-        # PlayerControl.NotifyCode(openShopPlayer, "GeRen_chenxin_609765")
-        #GeRen_admin_917284 对不起,目标身上携带的金钱已经达上限,操作无效 
-        PlayerControl.NotifyCode(watchPlayer, "GeRen_admin_917284")
-        return
-    
-    #付钱
-    infoDict = {ChConfig.Def_Cost_Reason_SonKey:buyItem.GetItemTypeID()}
-    if not PlayerControl.PayMoney(watchPlayer, payType, costMoney, ChConfig.Def_Cost_BuyStallItem, infoDict):
-        GameWorld.ErrLog("BuyItem money not enough!!" , watchPlayer.GetPlayerID())
-        return
-    
-    #收钱
-    addDataDict = {ChConfig.Def_Give_Reason_SonKey:buyItem.GetItemTypeID()}
-    PlayerControl.GiveMoney(openShopPlayer, payType, costMoney, ChConfig.Def_GiveMoney_StallItem, addDataDict)
-    
-    watchPlayerID = watchPlayer.GetPlayerID()
-    openShopPlayerID = openShopPlayer.GetPlayerID()
-    
-    #-------------------------------检查完毕, 逻辑开始, 已经付钱
-    #广播查看这个摊位的玩家信息
-    openShopPlayer.View_BuyShopItemToAllShopBuyer(watchPlayer.GetPlayerID(),
-                                                      shopItemIndex, buyCount)
-    
-    watchPlayerIC = ItemControler.PlayerItemControler(watchPlayer)
-    buyItemTypeID = buyItem.GetItemTypeID()
-    
-    #全部买走
-    if buyCount == buyItemMaxCount:
-        #将主角物品,转换为单独物品
-        singItem = buyItem.GetItem()
-        singItemID = singItem.GetItemTypeID()
-        singItemGUID = singItem.GetGUID()
-        singItemCount = singItem.GetCount()
-        
-        #详细记录装备信息
-        equipNote = ItemCommon.GetItemNoteDict(singItem)
-
-        #店铺删除这个物品
-        playerShop.DeleteShopItem(shopItemIndex)
-        #删除玩家这个格子的东西
-        buyItem.Wipe()
-
-        #输出系统提示
-        #LostRes 您失去了<Info Type="Item" Name="Name" ID="{%S1%}"/>{%S2%}个
-        PlayerControl.NotifyCode(openShopPlayer, "LostRes", [singItemID, buyCount])
-        #ObtainRes01 您获得了<Info Type="Item" Name="Name" ID="{%S1%}"/>{%S2%}个
-        PlayerControl.NotifyCode(watchPlayer, "ObtainRes01", [singItemID, buyCount])
-        
-        if not watchPlayerIC.PutInItem(IPY_GameWorld.rptItem, singItem):
-            GameWorld.Log("###异常信息,放入玩家背包失败 playerID = %s" % (watchPlayerID) , openShopPlayerID , watchPlayerID)
-            return False
-        
-    #买部分
-    else:
-        #创建一个物品放入
-        newItem = ItemCommon.CreateSingleItem(buyItemTypeID)
-        
-        if newItem == None:
-            GameWorld.Log("###异常信息,玩家 = %s商店 创建物品失败 = %s" % (openShopPlayerID , buyItemTypeID), openShopPlayerID , watchPlayerID)
-            return
-        
-        ItemControler.SetItemCount(buyItem, buyItemMaxCount - buyCount,
-                                   openShopPlayer.GetPlayerID(), openShopPlayer.GetAccID(),
-                                   openShopPlayer.GetPlayerName())
-        singItem = buyItem.GetItem()
-        #详细装备信息
-        newEquipNote = ItemCommon.GetItemNoteDict(newItem)
-        
-        #输出系统提示
-        #LostRes 您失去了<Info Type="Item" Name="Name" ID="{%S1%}"/>{%S2%}个
-        PlayerControl.NotifyCode(openShopPlayer, "LostRes", [buyItemTypeID, buyCount])
-        #ObtainRes01 您获得了<Info Type="Item" Name="Name" ID="{%S1%}"/>{%S2%}个
-        PlayerControl.NotifyCode(watchPlayer, "ObtainRes01", [buyItemTypeID, buyCount])
-
-        ItemControler.SetItemCount(newItem, buyCount,
-                                   watchPlayer.GetPlayerID(), watchPlayer.GetAccID(),
-                                   watchPlayer.GetPlayerName())
-        watchPlayerIC.PutInItem(IPY_GameWorld.rptItem, newItem)
-    
-    PlayerControl.NotifyCode(openShopPlayer, "GeRen_admin_367906", [buyItemTypeID])
-    #买家店铺刷新
-    openShopPlayer.Sync_ShopItem()
-    return
-#---------------------------------------------------------------------
-## 检查是否可以购买,数量是否异常
-#  @param curPlayer 当前玩家
-#  @param sellItem 出售的物品 
-#  @param buyCount 购买数量
-#  @param buyItemMaxCount 能购买最大数量
-#  @return None or True
-#  @remarks 函数详细说明.
-def __CheckBuyItem(curPlayer, sellItem, buyCount, buyItemMaxCount):
-    if sellItem == None or sellItem.IsEmpty():
-        #GameWorld.Log("无此购买物品")
-        return
-    
-    if buyCount <= 0 or buyCount > buyItemMaxCount:
-        #GeRen_admin_774664    <n color="255,255,0">对不起,您需要购买物数量不足,操作无效!</n>   25  -   -
-        PlayerControl.NotifyCode(curPlayer, "GeRen_admin_774664")
-        #GameWorld.Log("购买数量异常 count = %s"%buyCount)
-        return
-    
-    return True
-#---------------------------------------------------------------------
-## 检测是否有这个卖家
-#  @param watchPlayer 观察者(没用到)
-#  @param openShopPlayer  出售者
-#  @param playerShop 
-#  @return None or True
-#  @remarks 函数详细说明.
-def __CheckopenShopPlayer(watchPlayer, openShopPlayer , playerShop):
-    if openShopPlayer == None:
-        GameWorld.DebugLog("查无此摆摊玩家:shopPlayerID=%s" % openShopPlayer.GetPlayerID(), watchPlayer.GetPlayerID())
-        return
-    
-    if not playerShop.GetIsStartShop():
-        GameWorld.DebugLog("摆摊玩家未摆摊:shopPlayerID=%s" % openShopPlayer.GetPlayerID(), watchPlayer.GetPlayerID())
-        return
-    
-    return True
-
-#---------------------------------------------------------------------
-## 检测摆摊石还能不能用
-#  @param curPlayer 当前玩家
-#  @param shopItem 摆摊石
-#  @param shopLV 商店等级
-#  @return None or True
-#  @remarks 函数详细说明.
-def __CheckShopItem(curPlayer, shopItem, shopLV):
-    if shopLV == 1:
-        return True
-    
-    if shopItem.IsEmpty():
-        #GameWorld.Log("无摆摊石")
-        return
-    
-    #===========================================================================
-    # if shopItem.GetCurDurg() <= 0:
-    #    #GameWorld.Log("摆摊石,无耐久")
-    #    return
-    #===========================================================================
-    
-    effIndex = shopItem.GetEffectByIndex(0)
-    
-    if effIndex.GetEffectID() != ChConfig.Def_Item_Effect_ShopItem or effIndex.GetEffectValue(0) != shopLV:
-        #GameWorld.Log("摆摊石不符合要求,等级错误")
-        return
-    
-    return True
-#---------------------------------------------------------------------
-## 人物到商店的距离 是否在规定距离内
-#  @param curPlayer
-#  @param curTagPlayer
-#  @return True or False
-#  @remarks 函数详细说明.
-def __CheckShopItemDist(curPlayer, curTagPlayer):
-    dist = GameWorld.GetDist(curPlayer.GetPosX(), curPlayer.GetPosY(),
-                             curTagPlayer.GetPosX(), curTagPlayer.GetPosY())
-
-    return ChConfig.Def_ShopItem_Dist > dist 
-#---------------------------------------------------------------------
-## 摆摊者关闭摆摊
-#  @param curPlayer 摆摊者
-#  @param playerShop 玩家的摊位
-#  @return None
-#  @remarks 函数详细说明.
-def DoExitShop(curPlayer , playerShop):
-#===============================================================================
-#    GameWorld.Log("DoExitShop -> 结束摆摊" , curPlayer.GetPlayerID())
-#    itemPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
-#    
-#    #将还在销售栏中背包对应的物品接锁
-#    for i in range(playerShop.GetSellCount()):
-#        sellItem = playerShop.GetSellItemAt(i)
-#        
-#        if sellItem == None:
-#            GameWorld.ErrLog("结束摆摊异常,无此摆摊物品 , index = %s" % i , curPlayer.GetPlayerID())
-#            continue
-#        
-#        roleItemIndex = sellItem.GetItemIndex()
-#        roleItem = itemPack.GetAt(roleItemIndex)
-#        #一定有物品
-#        if roleItem == None or roleItem.IsEmpty():
-#            GameWorld.ErrLog("结束摆摊异常,玩家解锁物品背包index = %s" % (roleItemIndex) , curPlayer.GetPlayerID())
-#            continue
-#        
-#        roleItem.SetIsEventLocked(False)
-#    
-#    #解开查看当前摊位的玩家
-#    for i in range(playerShop.GetWatchPlayersCount()):
-#        watchPlayer = playerShop.GetWatchPlayersAt(i)
-#        
-#        if watchPlayer == None:
-#            GameWorld.ErrLog("结束摆摊异常,查看摆摊玩家,无此玩家,index = %s" % i , curPlayer.GetPlayerID())
-#            continue
-#        
-#        watchPlayer.ExitEvent()
-#        
-# # 奇迹不需要摆摊石 
-# #    shopItem = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip).GetAt(IPY_GameWorld.retShopping)
-# #    #摆摊石扣耐久
-# #    __ReduceShopItem(curPlayer, shopItem , playerShop.GetShopLV())
-# 
-#    #玩家广播结束摆摊
-#    curPlayer.View_CloseShop()
-#    #清空查看这个摊位的玩家信息
-#    playerShop.ClearWatchPlayer()
-#    #清空商店
-#    playerShop.Clear()
-#===============================================================================
-    return
-
-#---------------------------------------------------------------------
-## 摆摊石减耐久
-#  @param curPlayer 玩家
-#  @param shopItem 摆摊石
-#  @param shopLV 商店等级
-#  @return None
-#  @remarks 函数详细说明.
-#===============================================================================
-# def __ReduceShopItem(curPlayer, shopItem , shopLV):
-#    if not __CheckShopItem(curPlayer, shopItem, shopLV):
-#        GameWorld.Log('###摆摊石扣除耐久失败,无法查找摆摊石 = %s' % (shopLV) , curPlayer.GetPlayerID())
-#        return
-#    
-#    shopItem.SetCurDurg(shopItem.GetCurDurg() - ChConfig.Def_Endure_Transform)
-#    if shopItem.GetCurDurg() == 0 and shopItem.GetNoEndureDisappear():
-#        shopItem.Clear()
-#        
-#    return
-#===============================================================================
-
-## 检查摆摊等级
-#  @param curPlayer 玩家
-#  @return None
-#  @remarks 函数详细说明.
-def __CheckShopPlayerLV(curPlayer):
-    tradeLVLimit = ReadChConfig.GetEvalChConfig("TradeLVLimit")
-
-    if curPlayer.GetLV() < tradeLVLimit:
-        return False
-    return True

--
Gitblit v1.8.0