From a7ab0247c7b8eff06ad104bee39bc035384ca43e Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 23 七月 2025 12:08:22 +0800
Subject: [PATCH] 80 【常规】背包-服务端(增加背包购买格子;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChItem.py |  295 ----------------------------------------------------------
 1 files changed, 2 insertions(+), 293 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChItem.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChItem.py
index 054bc14..a711479 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChItem.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChItem.py
@@ -37,13 +37,11 @@
 import UseItem
 import ItemCommon
 import ChConfig
-import EventShell
 import PlayerControl
 import FBLogic
 import ReadChConfig
 import OperControlManager
 import ShareDefine
-import PlayerAttrFruit
 import DataRecordPack
 import ChPyNetSendPack
 import NetPackCommon
@@ -111,7 +109,7 @@
 #===============================================================================
 def __Func_InitItem(tick):
     #初始化物品掉落保护
-    MapItemProtectTime = IpyGameDataPY.GetFuncCfg("MapItemProtectTime")
+    MapItemProtectTime = 120000 #IpyGameDataPY.GetFuncCfg("MapItemProtectTime")
     GameWorld.GetMapItemManager().SetProtectTime(MapItemProtectTime)
     
     #===============================================================================================
@@ -158,12 +156,6 @@
         GameWorld.Log("当前物品不存在或已经被回收,玩家拾取失败,mapItemID=%s" % mapItemID, playerID)
         return
     dropItemNPCID = GetMapItemUserDataValue(mapItem, ShareDefine.Def_MapItemInfo_NPCID)
-    
-    #镖车中,无法拾取
-    if not isGuard and curPlayer.GetPlayerVehicle() == IPY_GameWorld.pvTruck:
-        PlayerControl.NotifyCode(curPlayer, "Old_hgg_21675")
-        GameWorld.Log("使用交通工具时,无法拾取物品!mapItemID=%s,dropItemNPCID=%s" % (mapItemID, dropItemNPCID), playerID)
-        return
     
     if GameObj.GetHP(curPlayer) == 0:
         #玩家已经死亡
@@ -284,8 +276,6 @@
         #    PickupItemSysNotify(curPlayer, isTeamNotify, itemMsgList, isEquip)
         #=======================================================================
         
-        #响应事件
-        EventShell.EventRespons_OnGet(curPlayer, mapItemTypeID)
         #成就
         PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_PickUpItem, curItemCount, [curItemID])
     
@@ -657,15 +647,6 @@
         #这个物品不是一般物品, 直接返回结果
         return useSpecialItemResult
     
-    #---特殊装备不验证装备属性, 普通物品要验证装备属性---
-    itemControler = ItemControler.PlayerItemControler(curPlayer)
-    
-    #装备无法使用
-    if itemControler.PlayerCanEquipItem(curItem, False):
-        #这个物品是装备
-        PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_774045")
-        return
-    
     #物品类型ID
     itemTypeID = curItem.GetItemTypeID()
     
@@ -692,10 +673,6 @@
 #  @return None or True
 #  @remarks 函数详细说明.
 def __DealWith_SpecialItem(curPlayer, curItem, tick, useCnt, exData):
-    #果实物品
-    useFruitResult = PlayerAttrFruit.DoPlayerEatFruitItem(curPlayer, curItem, useCnt)
-    if useFruitResult != -1:
-        return useFruitResult
     
     #------------------------获得物品相关属性
     itemTypeID = curItem.GetItemTypeID()  #物品类型id
@@ -723,7 +700,6 @@
                             ChConfig.Def_Effect_Face:"Item_Face",
                             ChConfig.Def_Effect_FacePic:"Item_Face",
                             ChConfig.Def_Effect_ItemAddLV:"Item_AddLV", #升级道具
-                            ChConfig.Def_Effect_TJGAddTime:"Item_TJGAddTime", #增加脱机挂时间
                             ChConfig.Def_Effect_GuajiAward:"Item_GuajiAward", #直接给挂机收益
                             ChConfig.Def_Effect_CleanGuilt:"Item_CleanGuilt", # 洗红名
                             ChConfig.Def_Effect_PrizeCoin:"Item_PrizeCoin", # 奖励充值点券
@@ -744,6 +720,7 @@
                             ChConfig.Def_Effect_ItemGiveWeekPartyPoint1:"Item_WeekPartyPoint", # 增加活动巡礼积分
                             ChConfig.Def_Effect_AddRealmExpRate:"Item_AddRealmExpRate", # 增加聚灵效率
                             ChConfig.Def_Effect_TouchMission:"Item_TouchMission",  # 触发任务接口
+                            ChConfig.Def_Effect_HeroSkin:"Item_HeroSkin",  # 武将皮肤
                             #ChConfig.Def_Effect_FamilyImpeach:"Item_FamilyImpeach",  # 弹劾符
                             #ChConfig.Def_Effect_ClothesCoatSkin:"Item_ClothesCoatSkin", #激活时装皮肤
                             #ChConfig.Def_Effect_AddOfficialExp:"Item_AddOfficialExp", # 增加爵位经验
@@ -920,11 +897,6 @@
                                         ):
         return False
     
-    #在镖车中, 不可使用物品
-    if curPlayer.GetPlayerVehicle() == IPY_GameWorld.pvTruck :
-        PlayerControl.NotifyCode(curPlayer, "Old_hgg_0")
-        return False
-    
     #交易状态, 不可使用物品
     if curPlayer.GetPlayerAction() == IPY_GameWorld.paTrade:
         PlayerControl.NotifyCode(curPlayer, "GeRen_lhs_372238")
@@ -982,11 +954,6 @@
     
     if ItemControler.IsEventItem(curItem):
         PlayerControl.NotifyCode(curPlayer, "itemuse_chenxin_31379")
-        return
-    
-    #玩家在镖车中,不能使用物品
-    if curPlayer.GetPlayerVehicle() == IPY_GameWorld.pvTruck:
-        PlayerControl.NotifyCode(curPlayer, "Old_hgg_0")
         return
     
 #    #玩家事件中, 不能使用物品
@@ -1409,96 +1376,6 @@
 def GetBackItemInFabao(index , tick):
     return
 
-##===============================================================================
-##07 24   tagCDingDianTransport
-#
-### 定点(城市)传送 和 洞穴传送 (收包参数)
-##  @param index 玩家索引
-##  @param tick 当前时间
-##  @return None
-##  @remarks 函数详细说明.
-#def PointTransport(index, tick):
-#    return
-#    packUseItem = IPY_GameWorld.IPY_CDingDianTransport()
-#    useItemIndex = packUseItem.GetItemIndex()
-#    transportIndex = packUseItem.GetTransportIndex()
-#    
-#    #获得玩家使用的物品
-#    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
-#    backPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
-#    curItem = backPack.GetAt(useItemIndex)
-#    
-#    #检查玩家状态和物品
-#    if not CheckUseTransformItem(curPlayer, curItem, tick):
-#        return
-#    
-#    #判断属于哪种传送
-#    effIndex = curItem.GetEffectByIndex(0)
-#    curEffID = effIndex.GetEffectID()
-#    
-#    #CD验证
-#    if (tick - curPlayer.GetItemCDStartTime(curEffID)) < curItem.GetCDTime():
-#        #CD冷却时间未到
-#        PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_749572")
-#        return
-#    
-#    #判断并执行传送
-#    if not __DoTransport(curPlayer, curItem, curEffID, transportIndex, useItemIndex, tick):
-#        return
-#
-### 执行传送
-##  @param curPlayer 当前玩家
-##  @param curItem 使用物品
-##  @param curEffID 当前效果
-##  @param transportIndex 传送点索引
-##  @param useItemIndex 使用的物品索引
-##  @param tick 当前时间
-##  @return None
-##  @remarks 函数详细说明.
-#def __DoTransport(curPlayer, curItem, curEffID, transportIndex, useItemIndex, tick):
-#    #定点列表
-#    cityPosList = ReadChConfig.GetEvalChConfig('Def_List_City_Pos')
-#    #山洞列表
-#    cavePosList = ReadChConfig.GetEvalChConfig('Def_List_Cave_Pos')
-#    
-#    #定点
-#    if curEffID == ChConfig.Def_Item_150_Effect:
-#        posList = cityPosList
-#    #山洞
-#    elif curEffID == ChConfig.Def_Item_152_Effect:
-#        posList = cavePosList
-#    else:
-#        GameWorld.Log('###非法使用物品,效果值%s'%(curEffID,), curPlayer.GetPlayerID())
-#        return
-#    
-#    #检查越界
-#    if transportIndex < 0 or transportIndex >= len(posList):
-#        GameWorld.Log('###定点传送越界--%s'%(transportIndex))
-#        return
-#    
-#    #目标地图判断
-#    if not PlayerControl.CheckTagCountry(curPlayer, posList[transportIndex][0]):
-#        return
-#    
-#    itemID = curItem.GetItemTypeID()
-#    
-#    
-#    #使用xx一个
-#    PlayerControl.NotifyCode(curPlayer, "LostRes", [itemID, 1])
-#    #通知客户端
-#    curPlayer.Sync_UseItem(itemID, useItemIndex)
-#    curPlayer.SetItemCD(curItem.GetCDType(), tick)
-#    
-#    #扣除物品(先记录再删除,避免底层已经删除此物品)
-#    curItem.SetCount(curItem.GetCount() - 1)
-#    
-#    #判断成功,进行传送
-#    PlayerControl.PlayerResetWorldPos(curPlayer, posList[transportIndex][0], posList[transportIndex][1], posList[transportIndex][2], False)
-#    
-#    #传送XX地点提示
-#    PlayerControl.NotifyCode(curPlayer, "Map_Deliver_Succeed", [posList[transportIndex][0]])
-    
-#---------------------------------------------------------------------
 #===============================================================================
 # //07 26 有对象的使用物品#tagCUseItemTag
 # tagCUseItemTag       *   GettagCUseItemTag();
@@ -1650,100 +1527,6 @@
         return
     return
 
-#---------------------------------------------------------------------
-#===============================================================================
-# //07 33 使用五行卷#tagCUseWuXingJuan
-# tagCUseWuXingJuan       *   GettagCUseWuXingJuan();
-# 
-# class   IPY_CUseWuXingJuan
-# {
-# public:
-#    //物品Index
-#    int      GetItemIndex();
-#    //新的五行
-#    int      GetNewWuXing();
-# };
-#===============================================================================
-## 使用五行卷轴(封包参数)
-#  @param index 玩家索引
-#  @param tick 当前时间
-#  @return None or False
-#  @remarks 函数详细说明.
-def UseWuXingJuan(index , tick):
-    return
-
-## 检测物品是否是五行卷轴
-#  @param curItem 等待检测的物品
-#  @return 布尔值
-#  @remarks 函数详细说明.
-#===============================================================================
-# def CheckWuXingJuan(curItem):
-#    if not ItemCommon.CheckItemCanUse(curItem):
-#        return False
-#    
-#    #这个物品不是五行转换卷轴
-#    if curItem.GetEffectByIndex(0).GetEffectID() != ChConfig.Def_Effect_ItemWuXingJuan:
-#        return False
-#    
-#    return True
-#===============================================================================
-
-
-## 使用回城
-#  @param curPlayer 当前玩家 
-#  @return None or True
-#  @remarks 函数详细说明.
-def UseTownPortal(curPlayer):
-    #检查是否是回城卷
-    itemIndex = curPlayer.GetDictByKey(ChConfig.Def_Use_Item_303_Index)
-    curItem = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem).GetAt(itemIndex)
-    
-    #物品不存在,不是回城卷不处理
-    if not ItemCommon.CheckItemCanUse(curItem) or curItem.GetItemTypeID() != 303:
-        #不能获得物品ID只能写死,否则玩家移动将找不到物品,或ID不匹配
-        PlayerControl.NotifyCode(curPlayer, "B66BA2D6-0B3C-4177-B3FE66153B638DD0", [303, 303])
-        return
-    
-    useCount = 1
-    itemID = curItem.GetItemTypeID()
-    guID = curItem.GetGUID()
-    
-    dataDict = {"ItemID":itemID, "ItemCount":useCount, "IsBind":curItem.GetIsBind(),"ItemGUID":guID}
-    DataRecordPack.DR_DeleteItem(curPlayer, 'UseTownPortal', dataDict)
-
-    #物品使用减少
-    if curItem.GetCount() > useCount:
-        ItemControler.SetItemCount(curItem, curItem.GetCount() - useCount, 
-                                   curPlayer.GetID(), curPlayer.GetAccID(), curPlayer.GetPlayerName())
-    else: 
-        curItem.Clear()
-        
-    #PlayerControl.NotifyCode(curPlayer, "LostRes", [itemID, useCount])
-    playerControl = PlayerControl.PlayerControl(curPlayer)
-    #把人物设置回重生点
-    playerControl.SetToBornPlace()
-
-    return True
-    
-#===============================================================================
-# 07 39 使用指定数量的物品 tagCUseItemCount
-# struct    tagCUseItemCount
-# {
-#     tagHead        Head;
-#     BYTE        Type;    //物品类型
-#     DWORD        Count;       //物品数量
-# }
-#===============================================================================
-
-## 07 39封包 使用指定数量的物品
-#  @param index 玩家索引
-#  @param tick 当前时间
-#  @return 无
-#  @remarks 和客户端约定的类型来取得指定物品,目前用于离线挂机,扣乾坤珠
-def UseOfflineTime(index, tick):
-    return
-
-    
 #===============================================================================
 # struct   tagCPetUseItemByIndex
 # {
@@ -1946,80 +1729,6 @@
         infoDict[ShareDefine.Def_MapItemInfo_IsSuite] = 1
            
     return infoDict
-
-# 特别设定:卓越物品必带武器技能增强效果,使用者请特别注意
-## 装备动态属性,只用于未设置属性的singleItem,roleItem使用多次发背包刷新包
-#  @param curItem 玩家实例
-#  @param equipData
-#  @return 
-def EquipAddAdditionEx(curItem, equipData):
-    # 绑定
-    #if equipData.isBind:
-    #    ItemControler.SetItemIsBind(curItem, equipData.isBind)
-    
-    if not ItemCommon.CheckItemIsEquip(curItem):
-        return
-        
-    #===========================================================================
-    # # 强化等级
-    # if equipData.starLV:
-    #    curItem.SetItemStarLV(equipData.starLV)
-    # # 打孔
-    # if 0 < equipData.holeCnt <= curItem.GetMaxHoleCount():
-    #    curItem.SetCanPlaceStoneCount(equipData.holeCnt)
-    #    
-    # # 给镶嵌宝石
-    # for i, stoneID in enumerate(equipData.stoneData):
-    #    if i > equipData.holeCnt - 1:
-    #        break
-    #    
-    #    if stoneID <= 0:
-    #        continue
-    #    
-    #    curItem.SetStone(i, stoneID)
-    #===========================================================================
-           
-    # 套装
-    #if equipData.isSuite:
-    #    curItem.SetIsSuite(equipData.isSuite)
-    #if equipData.suiteLV:
-    #    curItem.SetUserAttr(ShareDefine.Def_IudetSuiteLV, equipData.suiteLV)
-    # 物品来源
-    if equipData.source:
-        curItem.SetUserAttr(ShareDefine.Def_IudetSource, equipData.source)
-    
-    # 传奇属性
-    if equipData.legendAttrIDList and equipData.legendAttrValueList:
-        curItem.ClearUserAttr(ShareDefine.Def_IudetLegendAttrID)
-        curItem.ClearUserAttr(ShareDefine.Def_IudetLegendAttrValue)
-        for i in xrange(len(equipData.legendAttrIDList)):
-            curItem.AddUserAttr(ShareDefine.Def_IudetLegendAttrID, equipData.legendAttrIDList[i])
-            curItem.AddUserAttr(ShareDefine.Def_IudetLegendAttrValue, equipData.legendAttrValueList[i])
-    # 传奇属性 - 神
-    if equipData.legendAttrIDListShen and equipData.legendAttrValueListShen:
-        curItem.ClearUserAttr(ShareDefine.Def_IudetLegendAttrIDShen)
-        curItem.ClearUserAttr(ShareDefine.Def_IudetLegendAttrValueShen)
-        for i in xrange(len(equipData.legendAttrIDListShen)):
-            curItem.AddUserAttr(ShareDefine.Def_IudetLegendAttrIDShen, equipData.legendAttrIDListShen[i])
-            curItem.AddUserAttr(ShareDefine.Def_IudetLegendAttrValueShen, equipData.legendAttrValueListShen[i])
-    # 传奇属性 - 仙
-    if equipData.legendAttrIDListXian and equipData.legendAttrValueListXian:
-        curItem.ClearUserAttr(ShareDefine.Def_IudetLegendAttrIDXian)
-        curItem.ClearUserAttr(ShareDefine.Def_IudetLegendAttrValueXian)
-        for i in xrange(len(equipData.legendAttrIDListXian)):
-            curItem.AddUserAttr(ShareDefine.Def_IudetLegendAttrIDXian, equipData.legendAttrIDListXian[i])
-            curItem.AddUserAttr(ShareDefine.Def_IudetLegendAttrValueXian, equipData.legendAttrValueListXian[i])
-    # 传奇属性 - 极
-    if equipData.legendAttrIDListJi and equipData.legendAttrValueListJi:
-        curItem.ClearUserAttr(ShareDefine.Def_IudetLegendAttrIDJi)
-        curItem.ClearUserAttr(ShareDefine.Def_IudetLegendAttrValueJi)
-        for i in xrange(len(equipData.legendAttrIDListJi)):
-            curItem.AddUserAttr(ShareDefine.Def_IudetLegendAttrIDJi, equipData.legendAttrIDListJi[i])
-            curItem.AddUserAttr(ShareDefine.Def_IudetLegendAttrValueJi, equipData.legendAttrValueListJi[i])
-            
-    ItemCommon.MakeEquipGS(curItem) 
-    return
-
 
 ## 判断装备是否是可加强装备
 #  @param curItem 物品实例

--
Gitblit v1.8.0