Переглянути джерело

提交grid 修复makeitem 问题

mafei 1 рік тому
батько
коміт
9f92061bc1
1 змінених файлів з 31 додано та 7 видалено
  1. 31 7
      script/module/bag/Grid.lua

+ 31 - 7
script/module/bag/Grid.lua

@@ -30,7 +30,6 @@ function makeItem(net, itemID, itemCnt, shuijingAttrID, itemGrid, itemIndex, opF
 	net.price = itemConfig and itemConfig.price and itemConfig.price[2] or 0
 	net.rare  = itemConfig and itemConfig.rare or 0
 	net.score  = itemConfig and itemConfig.score or 0
-	net.getway = net.getway or {}
 	net.getway[0] = (itemConfig and itemConfig.getway) and #itemConfig.getway or 0	
 	for i=1, net.getway[0] do
 		net.getway[i] = itemConfig.getway[i]
@@ -40,11 +39,11 @@ function makeItem(net, itemID, itemCnt, shuijingAttrID, itemGrid, itemIndex, opF
     net.effects = itemConfig and itemConfig.effects or 0
 	net.opflag = opFlag or getOpflag(itemConfig) or 0
 	net.suipian = net.suipian or {}
-	net.suipian[0] = 0
 	net.equip = net.equip or {}
+	net.fuwen= net.fuwen or {}
+	net.suipian[0] = 0
     net.equip[0] = 0
-	net.fuwen = net.fuwen or {}
-    net.fuwen[0] = 0    
+    net.fuwen[0] = 0
     if not itemConfig then return end
 
     makeItemSuipian(net, itemConfig)
@@ -73,6 +72,7 @@ function makeItemFuwen(net, itemID, itemConfig, fuwenGrid, fuwenIndex)
     local netTemp = nil
     if net.fuwen then
 	    net.fuwen[0] = 1
+		net.fuwen[1] = net.fuwen[1] or {}
         netTemp = net.fuwen[1]
     else
         netTemp = net
@@ -81,7 +81,9 @@ function makeItemFuwen(net, itemID, itemConfig, fuwenGrid, fuwenIndex)
 	netTemp.index = fuwenIndex or 0
 	netTemp.fenjieGet = itemConfig.fenjieJinghua
 	netTemp.refine = 0
+	netTemp.attrs = netTemp.attrs  or {}
 	netTemp.attrs[0] = 0
+	netTemp.skills = netTemp.skills or {}
 	netTemp.skills[0] = 0
 	netTemp.zhandouli = 0
 	if fuwenGrid ~= nil then
@@ -90,6 +92,7 @@ function makeItemFuwen(net, itemID, itemConfig, fuwenGrid, fuwenIndex)
 		for zz = 1, #fuwenGrid.attr do
 			local key = fuwenGrid.attr[zz][1]
 			local value = fuwenGrid.attr[zz][2]
+			netTemp.attrs[zz] = netTemp.attrs[zz] or {}
 			netTemp.attrs[zz].key = key
 			netTemp.attrs[zz].value = value
 			zhandouli = zhandouli + RoleAttr.getPointByKey(key) * value
@@ -100,6 +103,7 @@ function makeItemFuwen(net, itemID, itemConfig, fuwenGrid, fuwenIndex)
 		else
 			for zz = 1,#fuwenGrid.skill do
 				local skillID = fuwenGrid.skill[zz]
+				netTemp.skills[zz] = netTemp.skills[zz] or {}
 				makeFuwenSkill(netTemp.skills[zz], skillID)
 			end
 			netTemp.skills[0] =  #fuwenGrid.skill
@@ -114,12 +118,14 @@ function makeItemEquip(net, itemConfig, equipGrid, equipIndex, shuijingAttrID, e
 	end
 
 	net.equip[0] = 1
+	net.equip[1] = net.equip[1] or {}
     net.equip[1].index = equipIndex or 0
 	net.equip[1].level = itemConfig.level
 	net.equip[1].exp = itemConfig.shenqiExp or 0
     net.equip[1].star = itemConfig.star or 0
     net.equip[1].uuid = equipGrid and equipGrid.uuid or ""
     net.equip[1].putUuid = equipGrid and equipGrid.putUuid or ""
+	net.equip[1].args = net.equip[1].args or {}
 	net.equip[1].args[0] = 0
 
     local maxQuality = EquipLogic.getEquipMaxQuality(itemConfig)
@@ -128,6 +134,7 @@ function makeItemEquip(net, itemConfig, equipGrid, equipIndex, shuijingAttrID, e
 	-- 装备基础属性
 	if itemConfig.subType == ItemDefine.EQUIP_SUBTYPE_SHUIJIN then 
 		-- 水晶属性
+		net.equip[1].attr = net.equip[1].attr or {}
 		net.equip[1].attr[0] = 0
 		net.equip[1].args[0] = 1
 		local upcf = EquipExcel.shuijingUpNeed[net.id]
@@ -137,6 +144,7 @@ function makeItemEquip(net, itemConfig, equipGrid, equipIndex, shuijingAttrID, e
 			local shuijingAttrTB = shuijingConfig.attr
 			net.equip[1].attr[0] = #shuijingAttrTB
 			for i=1, net.equip[1].attr[0] do
+				net.equip[1].attr[i] = net.equip[1].attr[i] or {}
 				net.equip[1].attr[i].key = shuijingAttrTB[i][1]
 				net.equip[1].attr[i].value = shuijingAttrTB[i][2]
 			end
@@ -145,17 +153,21 @@ function makeItemEquip(net, itemConfig, equipGrid, equipIndex, shuijingAttrID, e
         local baseRate = EquipLogic.getEquipBaseRate(net.rare)
         net.score  = math.floor(net.score * baseRate)
         -- 基础属性
+		net.equip[1].baseAttr = {}
 		net.equip[1].baseAttr[0] = #itemConfig.base
 		for i=1, net.equip[1].baseAttr[0] do
+			net.equip[1].baseAttr[i] = net.equip[1].baseAttr[i] or {}
 			net.equip[1].baseAttr[i].key = itemConfig.base[i][1]
 			net.equip[1].baseAttr[i].value = math.floor(itemConfig.base[i][2] * baseRate)
 		end
         -- 随机属性
         local attrLen = 0
+		net.equip[1].tzAttr = net.equip[1].tzAttr or {}
         if equipGrid then
            EquipLogic.checkAttr(equipGrid)
 		   for key, value in pairs(equipGrid.attr) do
               attrLen = attrLen + 1
+			  net.equip[1].tzAttr[attrLen] = net.equip[1].tzAttr[attrLen] or {}
 		   	  net.equip[1].tzAttr[attrLen].key = key
 		   	  net.equip[1].tzAttr[attrLen].value = math.floor(value * baseRate) 
 		   end
@@ -163,9 +175,10 @@ function makeItemEquip(net, itemConfig, equipGrid, equipIndex, shuijingAttrID, e
            local randomAttr = EquipLogic.getEquipTzAttr(itemConfig)
            if randomAttr then
 		      for _, attr in pairs(randomAttr) do
-                 attrLen = attrLen + 1
-		      	  net.equip[1].tzAttr[attrLen].key = attr[1]
-		      	  net.equip[1].tzAttr[attrLen].value = attr[2]
+                attrLen = attrLen + 1
+				net.equip[1].tzAttr[attrLen] = net.equip[1].tzAttr[attrLen] or {}
+		      	net.equip[1].tzAttr[attrLen].key = attr[1]
+		      	net.equip[1].tzAttr[attrLen].value = attr[2]
 		      end
            end
         end
@@ -174,16 +187,22 @@ function makeItemEquip(net, itemConfig, equipGrid, equipIndex, shuijingAttrID, e
 	if itemConfig.subType == ItemDefine.EQUIP_SUBTYPE_SHENQI then
 		local shenqiUpNeedConfig = EquipExcel.shenqiUpNeed[net.id]
 		local nextID = shenqiUpNeedConfig and shenqiUpNeedConfig.nextID
+		net.equip[1].args = net.equip[1].args or {}
 		net.equip[1].args[0] = 1
 		net.equip[1].args[1] = (not nextID or nextID < 1) and 1 or 0
 	end
 	
 	-- 装备套装属性
+	net.equip[1].suit = net.equip[1].suit or {}
 	net.equip[1].suit[0] = 0
 	if itemConfig.suitIm then
+		net.equip[1].suit = net.equip[1].suit or {}
 		net.equip[1].suit[0] = 1
+		net.equip[1].suit[1] = net.equip[1].suit[1] or {}
+		net.equip[1].suit[1].attr = net.equip[1].suit[1].attr or {}
     	net.equip[1].suit[1].attr[0] = #itemConfig.suitIm
     	for i=1,net.equip[1].suit[1].attr[0] do
+			net.equip[1].suit[1].attr[i] = net.equip[1].suit[1].attr[i] or {}
 			net.equip[1].suit[1].attr[i].key = itemConfig.suitIm[i][1]
 			net.equip[1].suit[1].attr[i].value = itemConfig.suitIm[i][2]
 		end
@@ -194,16 +213,20 @@ function makeItemEquip(net, itemConfig, equipGrid, equipIndex, shuijingAttrID, e
 	
 	-- 装备职业专属属性
 	net.equip[1].job = itemConfig.job
+	net.equip[1].jobAttr = net.equip[1].jobAttr or {}
 	net.equip[1].jobAttr[0] = #itemConfig.jobAttr
 	for i = 1, net.equip[1].jobAttr[0] do
+		net.equip[1].jobAttr[i] = net.equip[1].jobAttr[i] or {}
 		net.equip[1].jobAttr[i].key = itemConfig.jobAttr[i][1]
 		net.equip[1].jobAttr[i].value = itemConfig.jobAttr[i][2]
 	end
 	
 	-- 装备阵营专属属性
 	net.equip[1].camp = itemConfig.camp
+	net.equip[1].campAttr = net.equip[1].campAttr or {}
 	net.equip[1].campAttr[0] = #itemConfig.campAttr
 	for i = 1, net.equip[1].campAttr[0] do
+		net.equip[1].campAttr[i] = net.equip[1].campAttr[i] or {}
 		net.equip[1].campAttr[i].key = itemConfig.campAttr[i][1]
 		net.equip[1].campAttr[i].value = itemConfig.campAttr[i][2]
     end
@@ -220,6 +243,7 @@ function makeItemSuipian(net, itemConfig)
 	end
 
 	net.suipian[0] = 1
+	net.suipian[1] = net.suipian[1] or {}
 	net.suipian[1].fullcnt = itemConfig.fullCnt
 	net.suipian[1].camp = itemConfig.cond[1] or 0
 	net.suipian[1].star = itemConfig.cond[2] or 0