9c525cf9
 
  gaofengduan
 
add car smithy
 | 
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 
 | 
  local ipairs = ipairs
  local table = table
  local math = math
  local redisproxy = redisproxy
  local MsgPack = MsgPack
  
  local _M = {}
  
  function _M.makePotionRpc( agent, data )
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
  	local potionId = msg.id
  	local count = msg.count
  	if count < 1 then return 0 end
  	local potionBag = role:getProperty("potionBag")
  	local potionLv = role.dinerData:getProperty("dishTree"):getv(potionId, 0)
  	if potionLv < 1 then return 1 end
  
  	local potionSet = csvdb["adv_potionCsv"][potionId]
  	if not potionSet then return 2 end
  
  	local potionData = potionSet[potionLv]
  	if not potionData then return 3 end
  
  	local own = potionBag[potionId] or 0
  	if own+count > potionData.limit then
  		return 4
  	end
  
  	local cost = potionData.material:toNumMap()
 
 | 
e668f4d0
 
  gaofengduan
 
fix cost
 | 
31
32 
 | 
  	for k, n in pairs(cost) do
  		cost[k] = n * count
 
 | 
9c525cf9
 
  gaofengduan
 
add car smithy
 | 
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 
 | 
  	end
  	if not role:checkItemEnough(cost) then
  		return 5
  	end
  
  	role:costItems(cost)
  	potionBag[potionId] = own + count
  	role:updateProperty({field = "potionBag", value = potionBag})
  	SendPacket(actionCodes.Car_makePotionRpc, MsgPack.pack({potionBag = potionBag}))
  	return true
  end
  
  function _M.equipUpRpc( agent, data )
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
  	local id = msg.id
  	local count = msg.count
  	if count < 1 then return 0 end
  	local typ = math.floor((id-7000)/100)
  	local lv = (id-7000)%100
  
  	local dataSet = csvdb["equipCsv"][typ]
  	if not dataSet then return 1 end
  	local equipData = dataSet[lv]
  	if not equipData then return 21 end
  	if equipData.merge < 1 then return 22 end
  	local maxLv = 3
  	local nextLv = lv+1
  	if nextLv%10 > maxLv then
  		nextLv = nextLv+10-maxLv
  	end
  	local nextEquip = dataSet[nextLv]
  	if not nextEquip then return 23 end
  
 
 | 
43cc5f51
 
  gaofengduan
 
调整 equip 数据结构
 | 
67
68
69
70
71
72
73
74 
 | 
  	local ownSet = role.equipBag[typ]
  	if not ownSet then return 31 end
  	local ownData = ownSet[lv]
  	if not ownData then return 32 end
  
  	local own = role:getEquipCount(typ,lv)
  	local costCount = equipData.merge*count
  	if own < costCount then
 
 | 
9c525cf9
 
  gaofengduan
 
add car smithy
 | 
75
76
77
78 
 | 
  		return 3
  	end
  
  	local cost = equipData.cost:toNumMap()
 
 | 
e668f4d0
 
  gaofengduan
 
fix cost
 | 
79
80 
 | 
  	for k, n in pairs(cost) do
  		cost[k] = n * count
 
 | 
9c525cf9
 
  gaofengduan
 
add car smithy
 | 
81
82
83
84
85 
 | 
  	end
  	if not role:checkItemEnough(cost) then
  		return 4
  	end
  
 
 | 
9c525cf9
 
  gaofengduan
 
add car smithy
 | 
86 
 | 
  	role:costItems(cost)
 
 | 
43cc5f51
 
  gaofengduan
 
调整 equip 数据结构
 | 
87
88 
 | 
  	role:addEquip({type=typ,level=lv,count=-costCount})
  	role:addEquip({type=typ,level=nextLv,count=count})
 
 | 
9c525cf9
 
  gaofengduan
 
add car smithy
 | 
89
90
91
92 
 | 
  	SendPacket(actionCodes.Car_equipUpRpc, '')
  	return true
  end
  
 
 | 
fb321075
 
  gaofengduan
 
add rune up
 | 
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109 
 | 
  function _M.runeUpRpc( agent, data )
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
  	local uid = msg.uid
  	local ownRune = role.runeBag[uid]
  	if not ownRune then return 1 end
  	if ownRune:getProperty("refer") ~= 0 then return 2 end
  
  	local typ = ownRune:getProperty("type")
  	local id = ownRune:getProperty("id")
  	local level = ownRune:getProperty("level")
  
  	local runeSet = csvdb["runeCsv"][typ]
  	if not runeSet then return 4 end
  	local runeData = runeSet[id]
  	if not runeData then return 5 end
  
 
 | 
04c7448f
 
  gaofengduan
 
fix rune up
 | 
110
111
112 
 | 
  	local maxLv = table.nums(csvdb["rune_buildCsv"])-1
  	if level > maxLv then return 6 end
  	local lvData = csvdb["rune_buildCsv"][level]
 
 | 
fb321075
 
  gaofengduan
 
add rune up
 | 
113
114
115
116
117
118
119
120
121
122
123 
 | 
  	local cost = lvData.cost:toNumMap()
  	if not role:checkItemEnough(cost) then
  		return 7
  	end
  
  	role:costItems(cost)
  	ownRune:updateProperty({field = "level",value = level+1})
  	SendPacket(actionCodes.Car_runeUpRpc, '')
  	return true
  end
  
 
 | 
9c525cf9
 
  gaofengduan
 
add car smithy
 | 
124 
 | 
  return _M
 
 |