Ropedann 42 Report post Posted January 26, 2018 (edited) Всем привет, помогите разобраться кодом черчежей. Допустим в virable.lua из огромного количества рецептов у меня стало по 14 в каждом (ремесле и производстве) -- Производство ZHIZAO_Qua = 5 ZHIZAO_Mxcount = 14 ZHIZAO_ID = {} ZHIZAO_LV = {} ZHIZAO_ID1 = {} ZHIZAO_ID2 = {} ZHIZAO_ID3 = {} ZHIZAO__Rad = {} ZHIZAO_ID[ 1 ] = 878 ZHIZAO_LV[ 1 ] = 10 ZHIZAO_ID1[ 1 ] = 4418 ZHIZAO_ID2[ 1 ] = 3999 ZHIZAO_ID3[ 1 ] = 1677 ZHIZAO__Rad[ 1 ] = 5 ZHIZAO_ID[ 2 ] = 879 ZHIZAO_LV[ 2 ] = 10 ZHIZAO_ID1[ 2 ] = 4418 ZHIZAO_ID2[ 2 ] = 3999 ZHIZAO_ID3[ 2 ] = 1677 ZHIZAO__Rad[ 2 ] = 5 ZHIZAO_ID[ 3 ] = 880 ZHIZAO_LV[ 3 ] = 10 ZHIZAO_ID1[ 3 ] = 1708 ZHIZAO_ID2[ 3 ] = 3999 ZHIZAO_ID3[ 3 ] = 1677 ZHIZAO__Rad[ 3 ] = 5 ZHIZAO_ID[ 4 ] = 881 ZHIZAO_LV[ 4 ] = 10 ZHIZAO_ID1[ 4 ] = 1708 ZHIZAO_ID2[ 4 ] = 3999 ZHIZAO_ID3[ 4 ] = 1677 ZHIZAO__Rad[ 4 ] = 5 ZHIZAO_ID[ 5 ] = 882 ZHIZAO_LV[ 5 ] = 10 ZHIZAO_ID1[ 5 ] = 4488 ZHIZAO_ID2[ 5 ] = 3999 ZHIZAO_ID3[ 5 ] = 3116 ZHIZAO__Rad[ 5 ] = 1 ZHIZAO_ID[ 6 ] = 883 ZHIZAO_LV[ 6 ] = 10 ZHIZAO_ID1[ 6 ] = 1649 ZHIZAO_ID2[ 6 ] = 3999 ZHIZAO_ID3[ 6 ] = 3116 ZHIZAO__Rad[ 6 ] = 1 ZHIZAO_ID[ 7 ] = 884 ZHIZAO_LV[ 7 ] = 10 ZHIZAO_ID1[ 7 ] = 4340 ZHIZAO_ID2[ 7 ] = 3999 ZHIZAO_ID3[ 7 ] = 3116 ZHIZAO__Rad[ 7 ] = 1 ZHIZAO_ID[ 8 ] = 887 ZHIZAO_LV[ 8 ] = 10 ZHIZAO_ID1[ 8 ] = 4340 ZHIZAO_ID2[ 8 ] = 3999 ZHIZAO_ID3[ 8 ] = 3116 ZHIZAO__Rad[ 8 ] = 1 ZHIZAO_ID[ 9 ] = 860 ZHIZAO_LV[ 9 ] = 10 ZHIZAO_ID1[ 9 ] = 4488 ZHIZAO_ID2[ 9 ] = 3999 ZHIZAO_ID3[ 9 ] = 3116 ZHIZAO__Rad[ 9 ] = 1 ZHIZAO_ID[ 10 ] = 861 ZHIZAO_LV[ 10 ] = 10 ZHIZAO_ID1[ 10 ] = 1649 ZHIZAO_ID2[ 10 ] = 3999 ZHIZAO_ID3[ 10 ] = 3116 ZHIZAO__Rad[ 10 ] = 1 ZHIZAO_ID[ 11 ] = 863 ZHIZAO_LV[ 11 ] = 10 ZHIZAO_ID1[ 11 ] = 4488 ZHIZAO_ID2[ 11 ] = 3999 ZHIZAO_ID3[ 11 ] = 3116 ZHIZAO__Rad[ 11 ] = 1 ZHIZAO_ID[ 12 ] = 865 ZHIZAO_LV[ 12 ] = 10 ZHIZAO_ID1[ 12 ] = 4475 ZHIZAO_ID2[ 12 ] = 3999 ZHIZAO_ID3[ 12 ] = 3116 ZHIZAO__Rad[ 12 ] = 1 ZHIZAO_ID[ 13 ] = 866 ZHIZAO_LV[ 13 ] = 10 ZHIZAO_ID1[ 13 ] = 1649 ZHIZAO_ID2[ 13 ] = 3999 ZHIZAO_ID3[ 13 ] = 3116 ZHIZAO__Rad[ 13 ] = 1 ZHIZAO_ID[ 14 ] = 1012 ZHIZAO_LV[ 14 ] = 10 ZHIZAO_ID1[ 14 ] = 4475 ZHIZAO_ID2[ 14 ] = 3999 ZHIZAO_ID3[ 14 ] = 3116 ZHIZAO__Rad[ 14 ] = 1 -- Ремесло ZHUZAO_Qua = 5 ZHUZAO_Mxcount = 14 ZHUZAO_ID = {} ZHUZAO_LV = {} ZHUZAO_ID1 = {} ZHUZAO_ID2 = {} ZHUZAO_ID3 = {} ZHUZAO__Rad = {} ZHUZAO_ID[ 1 ] = 11 ZHUZAO_LV[ 1 ] = 10 ZHUZAO_ID1[ 1 ] = 4427 ZHUZAO_ID2[ 1 ] = 4415 ZHUZAO_ID3[ 1 ] = 2611 ZHUZAO__Rad[ 1 ] = 1 ZHUZAO_ID[ 2 ] = 12 ZHUZAO_LV[ 2 ] = 10 ZHUZAO_ID1[ 2 ] = 4342 ZHUZAO_ID2[ 2 ] = 4029 ZHUZAO_ID3[ 2 ] = 2614 ZHUZAO__Rad[ 2 ] = 1 ZHUZAO_ID[ 3 ] = 13 ZHUZAO_LV[ 3 ] = 10 ZHUZAO_ID1[ 3 ] = 4344 ZHUZAO_ID2[ 3 ] = 3368 ZHUZAO_ID3[ 3 ] = 2611 ZHUZAO__Rad[ 3 ] = 1 ZHUZAO_ID[ 4 ] = 14 ZHUZAO_LV[ 4 ] = 10 ZHUZAO_ID1[ 4 ] = 4339 ZHUZAO_ID2[ 4 ] = 4415 ZHUZAO_ID3[ 4 ] = 2614 ZHUZAO__Rad[ 4 ] = 1 ZHUZAO_ID[ 5 ] = 15 ZHUZAO_LV[ 5 ] = 10 ZHUZAO_ID1[ 5 ] = 1583 ZHUZAO_ID2[ 5 ] = 4415 ZHUZAO_ID3[ 5 ] = 2590 ZHUZAO__Rad[ 5 ] = 1 ZHUZAO_ID[ 6 ] = 16 ZHUZAO_LV[ 6 ] = 10 ZHUZAO_ID1[ 6 ] = 1611 ZHUZAO_ID2[ 6 ] = 4029 ZHUZAO_ID3[ 6 ] = 2590 ZHUZAO__Rad[ 6 ] = 1 ZHUZAO_ID[ 7 ] = 17 ZHUZAO_LV[ 7 ] = 10 ZHUZAO_ID1[ 7 ] = 1583 ZHUZAO_ID2[ 7 ] = 3368 ZHUZAO_ID3[ 7 ] = 2593 ZHUZAO__Rad[ 7 ] = 1 ZHUZAO_ID[ 8 ] = 18 ZHUZAO_LV[ 8 ] = 10 ZHUZAO_ID1[ 8 ] = 1611 ZHUZAO_ID2[ 8 ] = 4415 ZHUZAO_ID3[ 8 ] = 2593 ZHUZAO__Rad[ 8 ] = 1 ZHUZAO_ID[ 9 ] = 19 ZHUZAO_LV[ 9 ] = 10 ZHUZAO_ID1[ 9 ] = 1583 ZHUZAO_ID2[ 9 ] = 4029 ZHUZAO_ID3[ 9 ] = 2596 ZHUZAO__Rad[ 9 ] = 1 ZHUZAO_ID[ 10 ] = 20 ZHUZAO_LV[ 10 ] = 10 ZHUZAO_ID1[ 10 ] = 1611 ZHUZAO_ID2[ 10 ] = 3368 ZHUZAO_ID3[ 10 ] = 2596 ZHUZAO__Rad[ 10 ] = 1 ZHUZAO_ID[ 11 ] = 21 ZHUZAO_LV[ 11 ] = 10 ZHUZAO_ID1[ 11 ] = 1583 ZHUZAO_ID2[ 11 ] = 4415 ZHUZAO_ID3[ 11 ] = 2596 ZHUZAO__Rad[ 11 ] = 1 ZHUZAO_ID[ 12 ] = 22 ZHUZAO_LV[ 12 ] = 10 ZHUZAO_ID1[ 12 ] = 1611 ZHUZAO_ID2[ 12 ] = 4029 ZHUZAO_ID3[ 12 ] = 2599 ZHUZAO__Rad[ 12 ] = 1 ZHUZAO_ID[ 13 ] = 23 ZHUZAO_LV[ 13 ] = 10 ZHUZAO_ID1[ 13 ] = 1583 ZHUZAO_ID2[ 13 ] = 3368 ZHUZAO_ID3[ 13 ] = 2599 ZHUZAO__Rad[ 13 ] = 1 ZHUZAO_ID[ 14 ] = 24 ZHUZAO_LV[ 14 ] = 10 ZHUZAO_ID1[ 14 ] = 1611 ZHUZAO_ID2[ 14 ] = 4415 ZHUZAO_ID3[ 14 ] = 2599 ZHUZAO__Rad[ 14 ] = 1 Как мне изменить в чертежах пачкули и остальных чертежах(у них одна функция " ItemUse_MHDTZ( role , Item ) ") что бы у меня нормально генерировались чертежи. Функция чертежей: function ItemUse_MHDTZ( role , Item ) local Item_CanGet = GetChaFreeBagGridNum ( role ) if Item_CanGet < 1 then SystemNotice(role ,"\215\242\238\225\251 \240\224\241\239\229\247\224\242\224\242\252 \247\229\240\242\229\230 \239\238 \234\240\224\233\237\229\233 \236\229\240\229 \242\240\229\225\243\229\242\241\255 1 \241\226\238\225\238\228\237\251\233 \241\235\238\242 \226 \194\224\248\229\236 \232\237\226\229\237\242\224\240\229") UseItemFailed ( role ) return end local r1 = 0 local r2 = 0 local item_ID=GetItemID(Item) local Itemnew_ID=2300 -- Чертеж для производства local rad_ID=math.random ( 1, 100 ) if rad_ID<=40 then Itemnew_ID=2300 -- Чертеж для производства elseif rad_ID>=41 and rad_ID<=81 then Itemnew_ID=2302 -- Рецепт для Кулинарии else Itemnew_ID=2301 -- Ремесленный чертеж end r1, r2 = MakeItem ( role , Itemnew_ID , 1 , 4 ) local Itemnew = GetChaItem ( role , 2 , r2 ) local rad_energy=math.random ( 1, 100 ) local energy = 1 if item_ID==1000 then -- Чертеж Пачкули energy=1 elseif item_ID==1001 then -- Зашифрованный чертеж if rad_energy<=5 then energy=4 elseif rad_energy<=30 and rad_energy>=6 then energy=3 else energy=2 end elseif item_ID==1002 then -- Запечатанный чертеж if rad_energy<=5 then energy=6 elseif rad_energy<=30 and rad_energy>=6 then energy=5 else energy=4 end elseif item_ID==1003 then -- Чертеж призыва if rad_energy<=5 and Itemnew_ID~=2301 then -- Ремесленный чертеж energy=8 elseif rad_energy<=30 and rad_energy>=6 then energy=7 else energy=6 end end local final_ID=1849 local final_LV=20 local final_ID1=3116 local final_ID2=3116 local final_ID3=3116 local General = 0 local ItemId =3124 if Itemnew_ID==2300 then -- Чертеж для производства -- ZHIZAO_Mxcount(Кол-во элементов массива с рецептами) local STAR_BEGIN=ZHIZAO_Mxcount*(energy-1)/10+1 local STAR_END=ZHIZAO_Mxcount*energy/10 for i = STAR_BEGIN , STAR_END , 1 do -- ZHIZAO__Rad (Кол-во предметов при использовании чертежа) General = ZHIZAO__Rad[ i ] + General end local a = math.random ( 1, General ) local b = 0 local d = 0 local k = 0 local c = -1 for k = STAR_BEGIN , STAR_END , 1 do -- ZHIZAO__Rad (Кол-во предметов при использовании чертежа) d = ZHIZAO__Rad[ k ] + b if a <= d and a > b then c = k break end b = d end if c == -1 then c =STAR_BEGIN end final_ID=ZHIZAO_ID[c] -- ID пердмета массива final_LV=ZHIZAO_LV[c] -- Уровень предмета при использовании чертежа final_ID1=ZHIZAO_ID1[c] -- ID ингридиента для приготовления; final_ID2=ZHIZAO_ID2[c] -- ID ингридиента для приготовления; final_ID3=ZHIZAO_ID3[c] -- ID ингридиента для приготовления; end if Itemnew_ID==2301 then -- Ремесленный чертеж local STAR_BEGIN=1 local STAR_END=77 if energy==1 then STAR_BEGIN=1 STAR_END=77 elseif energy==2 then STAR_BEGIN=78 STAR_END=166 elseif energy==3 then STAR_BEGIN=167 STAR_END=278 elseif energy==4 then STAR_BEGIN=279 STAR_END=434 elseif energy==5 then STAR_BEGIN=435 STAR_END=596 elseif energy==6 then STAR_BEGIN=597 STAR_END=732 elseif energy==7 then STAR_BEGIN=733 STAR_END=871 elseif energy==8 then STAR_BEGIN=895 STAR_END=902 end for i = STAR_BEGIN , STAR_END , 1 do -- ZHIZAO__Rad (Кол-во предметов при использовании чертежа) General = ZHUZAO__Rad[ i ] + General end local a = math.random ( 1, General ) local b = 0 local d = 0 local k = 0 local c = -1 for k = STAR_BEGIN , STAR_END , 1 do -- ZHIZAO__Rad (Кол-во предметов при использовании чертежа) d = ZHUZAO__Rad[ k ] + b if a <= d and a > b then c = k break end b = d end if c == -1 then c =STAR_BEGIN end final_ID=ZHUZAO_ID[c] -- ID пердмета массива final_LV=ZHUZAO_LV[c] -- Уровень предмета при использовании чертежа final_ID1=ZHUZAO_ID1[c] -- ID ингридиента для приготовления; final_ID2=ZHUZAO_ID2[c] -- ID ингридиента для приготовления; final_ID3=ZHUZAO_ID3[c] -- ID ингридиента для приготовления; local final_type=GetItemType2(final_ID) local check=0 local i = 0 -- Item_CanJinglian_Num(функция Типов предметов, которые можно ковать) ------------------------------------------ -- Типы предметов, которые можно ковать -- ------------------------------------------ --[[Item_CanJinglian_Num = 13 Item_CanJinglian_ID = {} -- Кол-во типов предметов Item_CanJinglian_ID[0] = 1 -- Одноручный меч Item_CanJinglian_ID[1] = 2 -- Двуручный меч Item_CanJinglian_ID[2] = 3 -- Лук Item_CanJinglian_ID[3] = 4 -- Пистолет Item_CanJinglian_ID[4] = 7 -- Клинок покорителя морей Item_CanJinglian_ID[5] = 11 -- Щит Item_CanJinglian_ID[6] = 20 -- Шапка Item_CanJinglian_ID[7] = 22 -- Доспехи Item_CanJinglian_ID[8] = 23 -- Перчатки Item_CanJinglian_ID[9] = 24 -- Ботинки Item_CanJinglian_ID[10] = 25 -- Ожерелье Item_CanJinglian_ID[11] = 26 -- Кольцо Item_CanJinglian_ID[12] = 27 -- Тату Item_CanJinglian_ID[13] = 9 -- Посох]] for i = 0 , Item_CanJinglian_Num , 1 do if final_type == Item_CanJinglian_ID [i] then check=1 end end if check==1 then local check_rad=math.random ( 1, 1000 ) if check_rad==1 then final_LV=70 elseif check_rad>=2 and check_rad<=11 then final_LV=60 elseif check_rad>=12 and check_rad<=21 then final_LV=50 elseif check_rad>=22 and check_rad<=221 then final_LV=40 elseif check_rad>=222 and check_rad<=421 then final_LV=30 elseif check_rad>=422 and check_rad<=621 then final_LV=20 else final_LV=10 end if final_LV>70 then final_LV=70 end if final_LV~=10 and final_LV~=0 then local tmd=(energy-1)*6+final_LV*0.1-1 -- TESHU_ID(Массив с предметами для Чертежа Пачкули) final_ID3=TESHU_ID[tmd] end end end if Itemnew_ID==2302 then -- Рецепт для Кулинарии local STAR_BEGIN=1 local STAR_END=80 if energy==1 then STAR_BEGIN=1 STAR_END=7 elseif energy==2 then STAR_BEGIN=8 STAR_END=12 elseif energy==3 then STAR_BEGIN=13 STAR_END=17 elseif energy==4 then STAR_BEGIN=18 STAR_END=26 elseif energy==5 then STAR_BEGIN=27 STAR_END=31 elseif energy==6 then STAR_BEGIN=32 STAR_END=36 else STAR_BEGIN=energy+30 STAR_END=energy+30 end for i = STAR_BEGIN , STAR_END , 1 do -- ZHIZAO__Rad (Кол-во предметов при использовании чертежа) General = ZHIZAO__Rad[ i ] + General end local a = math.random ( 1, General ) local b = 0 local d = 0 local k = 0 local c = -1 for k = STAR_BEGIN , STAR_END , 1 do -- PENGREN__Rad Кол-во предметов при использовании чертежа d = PENGREN__Rad[ k ] + b if a <= d and a > b then c = k break end b = d end if c == -1 then c =STAR_BEGIN end -- вызов Массива с предметами кулинарии final_ID=PENGREN_ID[c] final_LV=PENGREN_LV[c] final_ID1=PENGREN_ID1[c] final_ID2=PENGREN_ID2[c] final_ID3=PENGREN_ID3[c] end local star_number=energy*10 local yingbi_num=math.random ( 10, star_number ) if energy<=3 then -- ITEMATTR_MAXURE (что значит?) SetItemAttr(Itemnew, ITEMATTR_MAXURE, energy ) -- ITEMATTR_URE (что значит?) SetItemAttr(Itemnew, ITEMATTR_URE, energy ) else SetItemAttr(Itemnew, ITEMATTR_MAXURE, yingbi_num ) SetItemAttr(Itemnew, ITEMATTR_URE, energy ) end local sta =math.random ( 1, 10 ) if Itemnew_ID==2301 then sta=sta*0.5 sta=math.max(1,sta) end -- ITEMATTR_VAL_STA (массив самоцветов) SetItemAttr(Itemnew, ITEMATTR_VAL_STA, sta ) local qulity=math.floor(final_LV*0.1)+100 -- ITEMATTR_MAXENERGY (Что то с максимальной энергией) SetItemAttr(Itemnew, ITEMATTR_MAXENERGY, qulity ) local ure=10-final_LV*0.1 SetItemAttr(Itemnew, ITEMATTR_ENERGY, ure ) -- Вызывается массив самоцветов SetItemAttr(Itemnew, ITEMATTR_VAL_STR, final_ID1 ) SetItemAttr(Itemnew, ITEMATTR_VAL_CON, final_ID2 ) SetItemAttr(Itemnew, ITEMATTR_VAL_DEX, final_ID3 ) SetItemAttr(Itemnew, ITEMATTR_VAL_AGI, final_ID ) local Num_new = GetItemForgeParam ( Itemnew , 1 ) local Part2_new = GetNum_Part2 ( Num_new ) local Part4_new = GetNum_Part4 ( Num_new ) local Part6_new = GetNum_Part6 ( Num_new ) Part2_new = math.random ( 3, 20 ) Part4_new = math.random ( 2, 9 ) Part6_new = math.random ( 1, 3 ) Part6_new = Part6_new*math.max(1,(energy-2)) Num_new = SetNum_Part2 ( Num_new , Part2_new ) Num_new = SetNum_Part4 ( Num_new , Part4_new ) Num_new = SetNum_Part6 ( Num_new , Part6_new ) SetItemForgeParam ( Itemnew , 1 , Num_new ) end а не вот так https://pastenow.ru/edit/dbcadb70eb6f201881b2326db1772465 ил может можно както назначить рецепт на чертеж ну то есть на конкретный чертеж. То есть например: Рецепт меча новичка, и этот рецепт упал не с пачкулика а просто с моба или еще где(думаю не важно.) Буду благодарен за помощь. Edited January 26, 2018 by Ropedann Quote Share this post Link to post Share on other sites
BETEP/macs509 87 Report post Posted January 26, 2018 Рецепт уже готовый не получиться сделать. Но можно сделать допустим запечатанный рецепт ножа новичка из которого будет при открытии выпадать нужный рецепт. По поводу неправильной работы они у тебя и не будут генерироваться, если у тебя указаны диапазоны которых в помине нет. Я лично разбирался так: убрал выдачу кулинарии и ремесла оставив только производство, убрал лишний код который не затрагивал производство и дальше уже было легко понять что к чему, потом просто на базе отредактированного производства доделал остальное. Quote Share this post Link to post Share on other sites