hxp
2023-02-08 cb1d20b4aff8ca422a12a18f024a65b201687ec0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#!/usr/bin/python
# -*- coding: GBK -*-
#-------------------------------------------------------------------------------
#
##@package GM.Commands.AuctionItem
#
# @todo:ÅÄÂôÐÐ
# @author hxp
# @date 2019-03-04
# @version 1.0
#
# ÏêϸÃèÊö: ÅÄÂôÐÐ
#
#-------------------------------------------------------------------------------
#"""Version = 2019-03-04 17:00"""
#-------------------------------------------------------------------------------
 
import GameWorld
import ItemControler
import PlayerAuctionHouse
import IpyGameDataPY
 
 
#Âß¼­ÊµÏÖ
## GMÃüÁîÖ´ÐÐÈë¿Ú
#  @param curPlayer µ±Ç°Íæ¼Ò
#  @param msgList ²ÎÊýÁбí
#  @return None
#  @remarks º¯ÊýÏêϸ˵Ã÷.
def OnExec(curPlayer, msgList):
    GameWorld.DebugAnswer(curPlayer, "--------- %s" % GameWorld.GetCurrentDataTimeStr())
    if not msgList:
        __Help(curPlayer)
        return
        
    paramA = msgList[0]
    paramCount = len(msgList)
    playerID = curPlayer.GetPlayerID()
    isAuctionItem = True
    
    # Çå¿ÕÅÄÆ·
    if paramA == 0:
        PlayerAuctionHouse.QueryGameServer_AuctionHouse(playerID, "ClearAuctionItem", [])
        return
    
    # ´òÓ¡ÅÄÆ·ÐÅÏ¢
    if paramA == 3:
        PlayerAuctionHouse.QueryGameServer_AuctionHouse(playerID, "PrintAuctionItem", [])
        return
    
    # Ìí¼Ó¸öÈËÅÄÆ·
    elif paramA == 1 and paramCount >= 2:
        itemID = msgList[1]
        itemCount = max(1, msgList[2] if paramCount > 2 else 1)
        auctionGroup = max(1, msgList[3] if paramCount > 3 else 1)
        ipyData = IpyGameDataPY.GetIpyGameData("AuctionItem", itemID)
        if not ipyData:
            GameWorld.DebugAnswer(curPlayer, "·ÇÅÄÂôÎïÆ·ÎÞ·¨ÉϼÜ")
            return
        auctionItemList = []
        for _ in xrange(auctionGroup):
            curItem = ItemControler.GetOutPutItemObj(itemID, itemCount, isAuctionItem)
            auctionItemList.append([curItem])
        PlayerAuctionHouse.__DoAddAuctionItem(curPlayer, auctionItemList)
        
    # Ìí¼ÓÏÉÃËÅÄÆ·
    elif paramA == 2 and paramCount >= 2:
        familyID = curPlayer.GetFamilyID()
        if not familyID:
            GameWorld.DebugAnswer(curPlayer, "ûÓÐÏÉÃËÎÞ·¨ÉϼÜÏÉÃËÅÄÆ·")
            return
        
        itemID = msgList[1]
        itemCount = max(1, msgList[2] if paramCount > 2 else 1)
        auctionGroup = max(1, msgList[3] if paramCount > 3 else 1)
        ipyData = IpyGameDataPY.GetIpyGameData("AuctionItem", itemID)
        if not ipyData:
            GameWorld.DebugAnswer(curPlayer, "·ÇÅÄÂôÎïÆ·ÎÞ·¨ÉϼÜ")
            return
        
        familyPlayerIDList = msgList[4:] if paramCount > 4 else []
        if playerID not in familyPlayerIDList:
            familyPlayerIDList.append(playerID)
            
        familyAuctionItemList = [[itemID, itemCount]] * auctionGroup
        familyAuctionItemDict = {familyID:[familyPlayerIDList, familyAuctionItemList]}
        PlayerAuctionHouse.DoAddFamilyAuctionItem(familyAuctionItemDict)
        
    else:
        __Help(curPlayer)
        return
        
    return
 
def __Help(curPlayer):
    GameWorld.DebugAnswer(curPlayer, "Çå¿ÕËùÓÐÅÄÆ·: AuctionItem 0")
    GameWorld.DebugAnswer(curPlayer, "Ìí¼Ó¸öÈËÅÄÆ·: AuctionItem 1 ÎïÆ·ID ¸öÊý ¼¸×é")
    GameWorld.DebugAnswer(curPlayer, "Ìí¼ÓÏÉÃËÅÄÆ·: AuctionItem 2 ÎïÆ·ID ¸öÊý ¼¸×é ÊÜÒæÍæ¼ÒIDA Íæ¼ÒIDB...")
    return