Graf 211 Report post Posted November 9, 2017 (edited) Хотел бы разобрать функцию чертежей. Как ими пользоваться. Ни разу ими не пользовался, так что эта тема для меня проблемна. Взял чертеж пачкули, у него функция ItemUse_MHDTZ. А там... --Чертеж Пачкули (ID 1000) 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 local STAR_BEGIN=ZHIZAO_Mxcount*(energy-1)/10+1 local STAR_END=ZHIZAO_Mxcount*energy/10 for i = STAR_BEGIN , STAR_END , 1 do 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 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] final_LV=ZHIZAO_LV[c] final_ID1=ZHIZAO_ID1[c] final_ID2=ZHIZAO_ID2[c] final_ID3=ZHIZAO_ID3[c] 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 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 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] final_LV=ZHUZAO_LV[c] final_ID1=ZHUZAO_ID1[c] final_ID2=ZHUZAO_ID2[c] final_ID3=ZHUZAO_ID3[c] local final_type=GetItemType2(final_ID) local check=0 local i = 0 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 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 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 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 SetItemAttr(Itemnew, ITEMATTR_MAXURE, energy ) 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 SetItemAttr(Itemnew, ITEMATTR_VAL_STA, sta ) local qulity=math.floor(final_LV*0.1)+100 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 Я так понимаю это рандомное "выдавание"(мозги не соображают, как правильно сказать =)). Всего в iteminfo 3 чертежа. Кулинарии, производства и ремесла. У них функций нет. Я, конечно, нашел тему https://pkodev.net/index.php?/topic/276-%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7/#comment-1501 Но там очень поверхностно. Помогите пожалуйста)) Нашел еще мануфактуру(в forge.lua), но не понимаю её))) function can_manufacture_item (...) local ItemBagCount = arg[2] local Length = ItemBagCount+3 if arg.n ~= Length then Notice("parameter value illegal"..arg.n) return 0 end local Check = 0 Check = can_manufacture_item_main ( arg ) if Check == 1 then return 1 else return 0 end end function can_manufacture_item_main ( Table ) local role = 0 local ItemBag = {} local ItemBagCount = 0 role , ItemBag , ItemBagCount = Read_manufacture ( Table ) local Item_CanGet = GetChaFreeBagGridNum ( role ) if Item_CanGet < 1 then SystemNotice(role ,"Вам нужно иметь 1 свободный слот в инвентаре ") UseItemFailed ( role ) return end local i = 0 local Item = {} local ItemID = {} local ItemType = {} for i = 1 , ItemBagCount , 1 do Item = GetChaItem ( role , 2 , ItemBag ) ItemID = GetItemID ( Item ) ItemType = GetItemType ( Item ) end if ItemType[1] ~= 59 then SystemNotice( role ,"Нужно поместить фею для начала ") return 0 end local URE_JLone = GetItemAttr( Item[1] ,ITEMATTR_URE ) if URE_JLone<=0 then SystemNotice( role ,"Покорми свою фею. Уж очень она голодна.") return 0 end local Num_JL = GetItemForgeParam ( Item[1] , 1 ) Num_JL = TansferNum ( Num_JL ) local Part1_JL = GetNum_Part1 ( Num_JL ) local Part2_JL = GetNum_Part2 ( Num_JL ) local Part3_JL = GetNum_Part3 ( Num_JL ) local Part4_JL = GetNum_Part4 ( Num_JL ) local Part5_JL = GetNum_Part5 ( Num_JL ) local Part6_JL = GetNum_Part6 ( Num_JL ) local Part7_JL = GetNum_Part7 ( Num_JL ) local JL_jineng=0 local JL_jineng_lv=0 local life_lv = 0 if ItemID[2]==2300 then if Part2_JL==13 then JL_jineng=Part2_JL JL_jineng_lv=Part3_JL elseif Part4_JL==13 then JL_jineng=Part4_JL JL_jineng_lv=Part5_JL elseif Part6_JL==13 then JL_jineng=Part6_JL JL_jineng_lv=Part7_JL end life_lv=GetSkillLv( role , SK_ZHIZAO ) end if ItemID[2]==2301 then if Part2_JL==14 then JL_jineng=Part2_JL JL_jineng_lv=Part3_JL elseif Part4_JL==14 then JL_jineng=Part4_JL JL_jineng_lv=Part5_JL elseif Part6_JL==14 then JL_jineng=Part6_JL JL_jineng_lv=Part7_JL end life_lv=GetSkillLv( role , SK_ZHUZAO ) end if ItemID[2]==2302 then if Part2_JL==16 then JL_jineng=Part2_JL JL_jineng_lv=Part3_JL elseif Part4_JL==16 then JL_jineng=Part4_JL JL_jineng_lv=Part5_JL elseif Part6_JL==16 then JL_jineng=Part6_JL JL_jineng_lv=Part7_JL end life_lv=GetSkillLv( role , SK_PENGREN ) end if ItemID[3]~=1067 and ItemID[3]~=1068 and ItemID[3]~=1069 then SystemNotice( role ,"Пожалуйста используйте инструменты ") return 0 end if ItemID[3]==1067 or ItemID[3]==1068 or ItemID[3]==1069 or ItemID[3]==1070 then local Gj_ure=GetItemAttr ( Item[3] , ITEMATTR_URE ) if Gj_ure<=0 then Gj_ure=0 SystemNotice( role ,"Прочность инструмента низка. Используйте Вечный очаг в Веснограде, чтобы починить частицу ") return 0 end if ItemID[3]==1068 and ItemID[2]~=2300 then SystemNotice( role ,"Уровень инструмента не подходит для этого чертежа ") return 0 end if ItemID[3]==1069 and ItemID[2]~=2301 then SystemNotice( role ,"Уровень инструмента не подходит для этого чертежа ") return 0 end if ItemID[3]==1067 and ItemID[2]~=2302 then SystemNotice( role ,"Уровень инструмента не подходит для этого чертежа ") return 0 end local Gj_lv=GetItemAttr ( Item[3] , ITEMATTR_VAL_STR ) JL_jineng_lv=3*JL_jineng_lv+1 if JL_jineng_lv<Gj_lv then SystemNotice( role ,"Уровень феи не соответствует уровню инструмента ") return 0 end end if ItemType[2] ~= 69 then SystemNotice( role ,"Как вы смеете использовать поддельный чертеж!") return 0 end local paper_lv = GetItemAttr(Item[2], ITEMATTR_URE ) if life_lv<paper_lv then SystemNotice( role ,"Уровень навыка не соответствует уровню чертежа ") return 0 end local paper_id1=GetItemAttr(Item[2], ITEMATTR_VAL_STR ) local paper_id2=GetItemAttr(Item[2], ITEMATTR_VAL_CON ) local paper_id3=GetItemAttr(Item[2], ITEMATTR_VAL_DEX ) if ItemID[4]~=paper_id1 or ItemID[5]~=paper_id2 or ItemID[6]~=paper_id3 then SystemNotice( role ,"Проверьте необходимый материал в чертеже и его наличие ") return 0 end local Num_paper = GetItemForgeParam ( Item[2] , 1 ) Num_paper = TansferNum ( Num_paper ) local Part1_paper = GetNum_Part1 ( Num_paper ) local Part2_paper = GetNum_Part2 ( Num_paper ) local Part3_paper = GetNum_Part3 ( Num_paper ) local Part4_paper = GetNum_Part4 ( Num_paper ) local Part5_paper = GetNum_Part5 ( Num_paper ) local Part6_paper = GetNum_Part6 ( Num_paper ) local Part7_paper = GetNum_Part7 ( Num_paper ) local i1 = CheckBagItem( role, ItemID[4] ) local i2 = CheckBagItem( role, ItemID[5] ) local i3 = CheckBagItem( role, ItemID[6] ) if i1 < Part2_paper or i2 < Part4_paper or i3 < Part6_paper then SystemNotice( role ,"Проверьте ингридиенты или оставшееся кол-во использования ") return 0 end local paper_num=GetItemAttr(Item[2], ITEMATTR_VAL_STA ) if paper_num==0 then SystemNotice( role ,"Чертеж невозможно использовать бесконечно. Возьмите новый чертеж ") return 0 end local a1 = CheckBagItem( role, 855 ) local a1_num=GetItemAttr(Item[2], ITEMATTR_MAXURE ) if a1< a1_num then SystemNotice( role ,"У вас не хватает Монет фей ") return 0 end return 1 end function Read_manufacture ( Table ) local role = Table [1] local ItemBagCount = Table [2] local ItemBag = {} local i = 0 if ItemBagCount==0 then return role , ItemBag , ItemBagCount end for i = 1 , ItemBagCount , 1 do local ReadNow = i + 2 ItemBag = Table [ReadNow] end return role , ItemBag , ItemBagCount end function begin_manufacture_item (...) local role = 0 local ItemBag = {} local ItemBagCount = 0 role , ItemBag , ItemBagCount = Read_manufacture ( arg ) local Check1 = can_manufacture_item_main ( arg ) if Check1 ~= 1 then return 0 end local i = 0 local j = 0 local Item = {} local ItemID = {} local ItemType = {} for j = 1 , ItemBagCount , 1 do Item[j] = GetChaItem ( role , 2 , ItemBag [j] ) ItemID[j] = GetItemID ( Item[j] ) ItemType[j] = GetItemType ( Item[j] ) end local Gj_lv= 0 if ItemID[3]==1068 then Gj_lv=GetItemAttr ( Item[3] , ITEMATTR_VAL_STR ) end local life_lv=GetSkillLv( role , SK_ZHIZAO ) local paper_lv = GetItemAttr(Item[2], ITEMATTR_URE ) local paper_energy = GetItemAttr(Item[2], ITEMATTR_MAXENERGY )-100 local star_good=(math.min(life_lv,paper_lv)*0.03+Gj_lv*0.05+(100-paper_energy*10)*0.01)*100 local star_radom = math.random ( 1, 100 ) local eleven=2 local a1 = star_radom+7 local a2 = star_radom+14 local a3 = star_radom+21 local a4 = star_radom+28 local a5 = star_radom+35 local a6 = star_radom+42 local a7 = star_radom+49 local a8 = star_radom+56 local a9 = star_radom+63 if star_good<star_radom then eleven=1 elseif star_good>=98 then eleven=11 elseif star_good>=a9 then eleven=10 elseif star_good>=a8 then eleven=9 elseif star_good>=a7 then eleven=8 elseif star_good>=a6 then eleven=7 elseif star_good>=a5 then eleven=6 elseif star_good>=a4 then eleven=5 elseif star_good>=a3 then eleven=4 elseif star_good>=a2 then eleven=3 elseif star_good>=a1 then eleven=2 end local star_begin=3*(1+paper_lv) local star_end=5*(1+paper_lv) local star=math.random ( star_begin , star_end ) if star>64 then star=64 end local run_time = star return 2,run_time,eleven end function begin_manufacture1_item (...) local role = 0 local ItemBag = {} local ItemBagCount = 0 role , ItemBag , ItemBagCount = Read_manufacture ( arg ) local Check1 = can_manufacture_item_main ( arg ) if Check1 ~= 1 then return 0 end local i = 0 local j = 0 local Item = {} local ItemID = {} local ItemType = {} for j = 1 , ItemBagCount , 1 do Item[j] = GetChaItem ( role , 2 , ItemBag [j] ) ItemID[j] = GetItemID ( Item[j] ) ItemType[j] = GetItemType ( Item[j] ) end local paper_lv = GetItemAttr(Item[2], ITEMATTR_URE ) local star_begin=3*(1+paper_lv) local star_end=5*(1+paper_lv) local star=math.random ( star_begin , star_end ) if star>64 then star=64 end local run_time = star local WORD1 =math.random ( 1, 6 ) local WORD2 =math.random ( 1, 6 ) local WORD3 =math.random ( 1, 6 ) local str =""..WORD1..","..WORD2..","..WORD3 return 2,run_time,str end function begin_manufacture2_item (...) local role = 0 local ItemBag = {} local ItemBagCount = 0 role , ItemBag , ItemBagCount = Read_manufacture ( arg ) local Check1 = can_manufacture_item_main ( arg ) if Check1 ~= 1 then return 0 end local i = 0 local j = 0 local Item = {} local ItemID = {} local ItemType = {} for j = 1 , ItemBagCount , 1 do Item[j] = GetChaItem ( role , 2 , ItemBag [j] ) ItemID[j] = GetItemID ( Item[j] ) ItemType[j] = GetItemType ( Item[j] ) end local paper_lv = GetItemAttr(Item[2], ITEMATTR_URE ) local star_begin=3*(1+paper_lv) local star_end=4*(1+paper_lv) local star=math.random ( star_begin , star_end ) if star>64 then star=64 end local run_time = star local star_ok = 12 return 2,run_time,star_ok end function begin_manufacture3_item (...) local role = 0 local ItemBag = {} local ItemBagCount = 0 role , ItemBag , ItemBagCount = Read_manufacture ( arg ) local Check1 = can_fenjie_item_main ( arg ) if Check1 ~= 1 then return 0 end local i = 0 local j = 0 local Item = {} local ItemID = {} local ItemType = {} for j = 1 , ItemBagCount , 1 do Item[j] = GetChaItem ( role , 2 , ItemBag [j] ) ItemID[j] = GetItemID ( Item[j] ) ItemType[j] = GetItemType ( Item[j] ) end local Item_Lv = GetItemLv ( Item[3] ) if ItemID[3]>=5000 then local tmd_rad=math.random ( 1 , 10 ) if tmd_rad==1 then Item_Lv=80 elseif tmd_rad==2 then Item_Lv=70 elseif tmd_rad==3 then Item_Lv=60 elseif tmd_rad==4 then Item_Lv=50 elseif tmd_rad==5 then Item_Lv=40 elseif tmd_rad==6 then Item_Lv=30 elseif tmd_rad==7 then Item_Lv=20 else Item_Lv=10 end end local base_rad=0 base_rad=math.max((80-math.max(Item_Lv,10))*0.01,0.15) local Num_JL = GetItemForgeParam ( Item[1] , 1 ) Num_JL = TansferNum ( Num_JL ) local Part1_JL = GetNum_Part1 ( Num_JL ) local Part2_JL = GetNum_Part2 ( Num_JL ) local Part3_JL = GetNum_Part3 ( Num_JL ) local Part4_JL = GetNum_Part4 ( Num_JL ) local Part5_JL = GetNum_Part5 ( Num_JL ) local Part6_JL = GetNum_Part6 ( Num_JL ) local Part7_JL = GetNum_Part7 ( Num_JL ) local JL_jineng=0 local JL_jineng_lv=0 if Part2_JL==16 then JL_jineng=Part2_JL JL_jineng_lv=Part3_JL elseif Part4_JL==16 then JL_jineng=Part4_JL JL_jineng_lv=Part5_JL elseif Part6_JL==16 then JL_jineng=Part6_JL JL_jineng_lv=Part7_JL end local Gj_lv=0 if ItemID[2]==1070 then Gj_lv=GetItemAttr ( Item[2] , ITEMATTR_VAL_STR ) end local life_lv = 0 life_lv=GetSkillLv( role , SK_FENJIE ) local run_time = math.random ( 4, 8 ) local word_test = math.floor((JL_jineng_lv*0.05+life_lv*0.02+Gj_lv*0.03+base_rad)*100000) if word_test>99999 then word_test=99999 end local word_radom = math.random ( 10000, 99999 ) local str =""..word_test..","..word_radom return 2,run_time,str end function end_manufacture_item (...) local role = 0 local ItemBag = {} local ItemBagCount = 0 role , ItemBag , ItemBagCount = Read_manufacture ( arg ) local i = 0 local j = 0 local star_check=0 star_check=arg[arg.n] local Item = {} local ItemID = {} local ItemType = {} local check = {} for j = 1 , ItemBagCount , 1 do Item[j] = GetChaItem ( role , 2 , ItemBag [j] ) ItemID[j] = GetItemID ( Item[j] ) ItemType[j] = GetItemType ( Item[j] ) end local paper_id1=GetItemAttr(Item[2], ITEMATTR_VAL_STR ) local paper_id2=GetItemAttr(Item[2], ITEMATTR_VAL_CON ) local paper_id3=GetItemAttr(Item[2], ITEMATTR_VAL_DEX ) local Num_paper = GetItemForgeParam ( Item[2] , 1 ) Num_paper = TansferNum ( Num_paper ) local Part2_paper = GetNum_Part2 ( Num_paper ) local Part4_paper = GetNum_Part4 ( Num_paper ) local Part6_paper = GetNum_Part6 ( Num_paper ) local life_lv = 0 local Gj_lv= 0 local paper_lv = GetItemAttr(Item[2], ITEMATTR_URE ) local num_x=1 local star_num_qulity=4 if ItemID[2]==2300 then life_lv=GetSkillLv( role , SK_ZHIZAO ) if star_check==1 then num_x=0 elseif star_check==2 or star_check==3 or star_check==4 then num_x=1 elseif star_check==5 or star_check==6 or star_check==7 then num_x=2 elseif star_check==8 or star_check==9 or star_check==10 then num_x=3 elseif star_check==11 then num_x=4 end end if ItemID[2]==2301 then life_lv=GetSkillLv( role , SK_ZHUZAO ) end if ItemID[2]==2302 then life_lv=GetSkillLv( role , SK_PENGREN ) local differ_check=math.abs(star_check-75) if differ_check==0 then num_x=5 elseif differ_check==1 then num_x=4 elseif differ_check==2 then num_x=3 elseif differ_check>=3 and differ_check<=6 and star_check<=77 then num_x=2 elseif differ_check>=7 and differ_check<=25 and star_check<=77 then num_x=1 else num_x=0 end end if ItemID[3]==1067 or ItemID[3]==1068 or ItemID[3]==1069 or ItemID[3]==1070 then Gj_lv=GetItemAttr ( Item[3] , ITEMATTR_VAL_STR ) end local i1 = 0 local i2 = 0 local i3 = 0 i1 =TakeItem( role, 0, paper_id1, Part2_paper) i2 =TakeItem( role, 0, paper_id2, Part4_paper) i3 =TakeItem( role, 0, paper_id3, Part6_paper) if i1 == 0 or i2 == 0 or i3 == 0 then LG( "Hecheng_BS" , "Удалить предмет не удалось " ) end local a1_num=GetItemAttr(Item[2], ITEMATTR_MAXURE ) local a1=TakeItem( role, 0, 855, a1_num ) if a1==0 then SystemNotice ( role ,"Не удалось удалить Монету Феи ") return end local new_num = GetItemAttr(Item[2], ITEMATTR_VAL_AGI ) if ItemID[2]==2300 then if new_num==1067 or new_num==1068 or new_num==1069 or new_num==1070 or new_num==2236 then num_x=1 end end local paper_energy = GetItemAttr(Item[2], ITEMATTR_MAXENERGY )-100 local star_good=(math.min(life_lv,paper_lv)*0.03+Gj_lv*0.05+(100-paper_energy*10)*0.01)*100 local star_radom = math.random ( 1, 100 ) local m1 = -1 local m2 = -1 if ItemID[2]==2300 then if star_check>=2 then star_good=100 star_radom=1 else star_good=1 star_radom=100 end end local star_check_chenggong=0 if star_check~=0 and star_good >star_radom and num_x~=0 then star_check_chenggong=1 m1, m2 = MakeItem ( role , new_num , num_x , star_num_qulity ) local Itemfinal = GetChaItem ( role , 2 , m2 ) if ItemID[2]==2301 and CheckItem_CanJinglian(Itemfinal)==1 then local Itemfinal_energy=GetItemAttr ( Itemfinal ,ITEMATTR_ENERGY) local itemfinal_maxenergy =GetItemAttrRange(new_num , ITEMATTR_MAXENERGY , 1 ) local itemfinal_minenergy = GetItemAttrRange(new_num ,ITEMATTR_MAXENERGY , 0 ) if paper_energy>7 then paper_energy=7 end if itemfinal_maxenergy~=itemfinal_minenergy then Itemfinal_energy=math.mod(Itemfinal_energy,1000)+paper_energy*1000 SetItemAttr ( Itemfinal ,ITEMATTR_MAXENERGY , Itemfinal_energy) SetItemAttr ( Itemfinal ,ITEMATTR_ENERGY , Itemfinal_energy) end end local item_final_ID=GetItemID(Itemfinal) if item_final_ID==1067 or item_final_ID==1068 or item_final_ID==1069 or item_final_ID==1070 then SetItemAttr(Itemfinal, ITEMATTR_VAL_STR ,1) SetItemAttr(Itemfinal, ITEMATTR_MAXENERGY ,10000) SetItemAttr(Itemfinal, ITEMATTR_ENERGY ,1) end if item_final_ID==2236 then SetItemAttr(Itemfinal, ITEMATTR_VAL_STR ,paper_lv) end else SystemNotice( role , "Действие завершилось неудачей. Наверное вы что-то неверно делали ") end local paper_num=GetItemAttr(Item[2], ITEMATTR_VAL_STA ) paper_num=paper_num-1 SetItemAttr(Item[2], ITEMATTR_VAL_STA , paper_num ) local Gj_ure=0 if ItemID[3]==1067 or ItemID[3]==1068 or ItemID[3]==1069 or ItemID[3]==1070 then Gj_ure=GetItemAttr ( Item[3] , ITEMATTR_URE ) local star_gjlv_num=GetItemAttr ( Item[3] , ITEMATTR_VAL_STR ) Gj_ure=Gj_ure-50*star_gjlv_num if Gj_ure<=0 then Gj_ure=0 end local star_lv_num = GetItemAttr( Item[3] ,ITEMATTR_ENERGY ) if star_check_chenggong==1 then star_lv_num=star_lv_num+paper_lv else star_lv_num=star_lv_num+1 end if star_lv_num>=10000 then star_lv_num=10000 end SystemNotice( role , "Ваш инструмент получил "..star_lv_num.." очков опыта ") if star_lv_num>=star_gjlv_num*star_gjlv_num*100 then star_gjlv_num=star_gjlv_num+1 SetItemAttr ( Item[3] , ITEMATTR_VAL_STR ,star_gjlv_num) SystemNotice( role , "Поздравляем, уровень вашего инструмента повышен!") star_lv_num=0 end SetItemAttr ( Item[3] , ITEMATTR_ENERGY , star_lv_num ) SetItemAttr ( Item[3] , ITEMATTR_URE ,Gj_ure) end local cha_name = GetChaDefaultName ( role ) LG( "star_SHENGHUO_lg" ,cha_name, star_check , ItemID[2] , paper_lv , paper_id1 , Part2_paper , paper_id2 , Part4_paper , paper_id3 , Part6_paper , ItemID[3] , Gj_lv , life_lv ) SynChaKitbag(role,13) return m2 end function can_manufacture_item (...) local ItemBagCount = arg[2] local Length = ItemBagCount+3 if arg.n ~= Length then Notice("parameter value illegal"..arg.n) return 0 end local Check = 0 Check = can_manufacture_item_main ( arg ) if Check == 1 then return 1 else return 0 end end function can_manufacture_item_main ( Table ) local role = 0 local ItemBag = {} local ItemBagCount = 0 role , ItemBag , ItemBagCount = Read_manufacture ( Table ) local Item_CanGet = GetChaFreeBagGridNum ( role ) if Item_CanGet < 1 then SystemNotice(role ,"Вам нужно иметь 1 свободный слот в инвентаре ") UseItemFailed ( role ) return end local i = 0 local Item = {} local ItemID = {} local ItemType = {} for i = 1 , ItemBagCount , 1 do Item[i] = GetChaItem ( role , 2 , ItemBag [i] ) ItemID[i] = GetItemID ( Item[i] ) ItemType[i] = GetItemType ( Item[i] ) end if ItemType[1] ~= 59 then SystemNotice( role ,"Нужно поместить фею для начала ") return 0 end local URE_JLone = GetItemAttr( Item[1] ,ITEMATTR_URE ) if URE_JLone<=0 then SystemNotice( role ,"Покорми свою фею. Уж очень она голодна.") return 0 end local Num_JL = GetItemForgeParam ( Item[1] , 1 ) Num_JL = TansferNum ( Num_JL ) local Part1_JL = GetNum_Part1 ( Num_JL ) local Part2_JL = GetNum_Part2 ( Num_JL ) local Part3_JL = GetNum_Part3 ( Num_JL ) local Part4_JL = GetNum_Part4 ( Num_JL ) local Part5_JL = GetNum_Part5 ( Num_JL ) local Part6_JL = GetNum_Part6 ( Num_JL ) local Part7_JL = GetNum_Part7 ( Num_JL ) local JL_jineng=0 local JL_jineng_lv=0 local life_lv = 0 if ItemID[2]==2300 then if Part2_JL==13 then JL_jineng=Part2_JL JL_jineng_lv=Part3_JL elseif Part4_JL==13 then JL_jineng=Part4_JL JL_jineng_lv=Part5_JL elseif Part6_JL==13 then JL_jineng=Part6_JL JL_jineng_lv=Part7_JL end life_lv=GetSkillLv( role , SK_ZHIZAO ) end if ItemID[2]==2301 then if Part2_JL==14 then JL_jineng=Part2_JL JL_jineng_lv=Part3_JL elseif Part4_JL==14 then JL_jineng=Part4_JL JL_jineng_lv=Part5_JL elseif Part6_JL==14 then JL_jineng=Part6_JL JL_jineng_lv=Part7_JL end life_lv=GetSkillLv( role , SK_ZHUZAO ) end if ItemID[2]==2302 then if Part2_JL==16 then JL_jineng=Part2_JL JL_jineng_lv=Part3_JL elseif Part4_JL==16 then JL_jineng=Part4_JL JL_jineng_lv=Part5_JL elseif Part6_JL==16 then JL_jineng=Part6_JL JL_jineng_lv=Part7_JL end life_lv=GetSkillLv( role , SK_PENGREN ) end if ItemID[3]~=1067 and ItemID[3]~=1068 and ItemID[3]~=1069 then SystemNotice( role ,"Пожалуйста используйте инструменты ") return 0 end if ItemID[3]==1067 or ItemID[3]==1068 or ItemID[3]==1069 or ItemID[3]==1070 then local Gj_ure=GetItemAttr ( Item[3] , ITEMATTR_URE ) if Gj_ure<=0 then Gj_ure=0 SystemNotice( role ,"Прочность инструмента низка. Используйте Вечный очаг в Веснограде, чтобы починить частицу ") return 0 end if ItemID[3]==1068 and ItemID[2]~=2300 then SystemNotice( role ,"Уровень инструмента не подходит для этого чертежа ") return 0 end if ItemID[3]==1069 and ItemID[2]~=2301 then SystemNotice( role ,"Уровень инструмента не подходит для этого чертежа ") return 0 end if ItemID[3]==1067 and ItemID[2]~=2302 then SystemNotice( role ,"Уровень инструмента не подходит для этого чертежа ") return 0 end local Gj_lv=GetItemAttr ( Item[3] , ITEMATTR_VAL_STR ) JL_jineng_lv=3*JL_jineng_lv+1 if JL_jineng_lv<Gj_lv then SystemNotice( role ,"Уровень феи не соответствует уровню инструмента ") return 0 end end if ItemType[2] ~= 69 then SystemNotice( role ,"Как вы смеете использовать поддельный чертеж!") return 0 end local paper_lv = GetItemAttr(Item[2], ITEMATTR_URE ) if life_lv<paper_lv then SystemNotice( role ,"Уровень навыка не соответствует уровню чертежа ") return 0 end local paper_id1=GetItemAttr(Item[2], ITEMATTR_VAL_STR ) local paper_id2=GetItemAttr(Item[2], ITEMATTR_VAL_CON ) local paper_id3=GetItemAttr(Item[2], ITEMATTR_VAL_DEX ) if ItemID[4]~=paper_id1 or ItemID[5]~=paper_id2 or ItemID[6]~=paper_id3 then SystemNotice( role ,"Проверьте необходимый материал в чертеже и его наличие ") return 0 end local Num_paper = GetItemForgeParam ( Item[2] , 1 ) Num_paper = TansferNum ( Num_paper ) local Part1_paper = GetNum_Part1 ( Num_paper ) local Part2_paper = GetNum_Part2 ( Num_paper ) local Part3_paper = GetNum_Part3 ( Num_paper ) local Part4_paper = GetNum_Part4 ( Num_paper ) local Part5_paper = GetNum_Part5 ( Num_paper ) local Part6_paper = GetNum_Part6 ( Num_paper ) local Part7_paper = GetNum_Part7 ( Num_paper ) local i1 = CheckBagItem( role, ItemID[4] ) local i2 = CheckBagItem( role, ItemID[5] ) local i3 = CheckBagItem( role, ItemID[6] ) if i1 < Part2_paper or i2 < Part4_paper or i3 < Part6_paper then SystemNotice( role ,"Проверьте ингридиенты или оставшееся кол-во использования ") return 0 end local paper_num=GetItemAttr(Item[2], ITEMATTR_VAL_STA ) if paper_num==0 then SystemNotice( role ,"Чертеж невозможно использовать бесконечно. Возьмите новый чертеж ") return 0 end local a1 = CheckBagItem( role, 855 ) local a1_num=GetItemAttr(Item[2], ITEMATTR_MAXURE ) if a1< a1_num then SystemNotice( role ,"У вас не хватает Монет фей ") return 0 end return 1 end function Read_manufacture ( Table ) local role = Table [1] local ItemBagCount = Table [2] local ItemBag = {} local i = 0 if ItemBagCount==0 then return role , ItemBag , ItemBagCount end for i = 1 , ItemBagCount , 1 do local ReadNow = i + 2 ItemBag [i] = Table [ReadNow] end return role , ItemBag , ItemBagCount end function begin_manufacture_item (...) local role = 0 local ItemBag = {} local ItemBagCount = 0 role , ItemBag , ItemBagCount = Read_manufacture ( arg ) local Check1 = can_manufacture_item_main ( arg ) if Check1 ~= 1 then return 0 end local i = 0 local j = 0 local Item = {} local ItemID = {} local ItemType = {} for j = 1 , ItemBagCount , 1 do Item[j] = GetChaItem ( role , 2 , ItemBag [j] ) ItemID[j] = GetItemID ( Item[j] ) ItemType[j] = GetItemType ( Item[j] ) end local Gj_lv= 0 if ItemID[3]==1068 then Gj_lv=GetItemAttr ( Item[3] , ITEMATTR_VAL_STR ) end local life_lv=GetSkillLv( role , SK_ZHIZAO ) local paper_lv = GetItemAttr(Item[2], ITEMATTR_URE ) local paper_energy = GetItemAttr(Item[2], ITEMATTR_MAXENERGY )-100 local star_good=(math.min(life_lv,paper_lv)*0.03+Gj_lv*0.05+(100-paper_energy*10)*0.01)*100 local star_radom = math.random ( 1, 100 ) local eleven=2 local a1 = star_radom+7 local a2 = star_radom+14 local a3 = star_radom+21 local a4 = star_radom+28 local a5 = star_radom+35 local a6 = star_radom+42 local a7 = star_radom+49 local a8 = star_radom+56 local a9 = star_radom+63 if star_good<star_radom then eleven=1 elseif star_good>=98 then eleven=11 elseif star_good>=a9 then eleven=10 elseif star_good>=a8 then eleven=9 elseif star_good>=a7 then eleven=8 elseif star_good>=a6 then eleven=7 elseif star_good>=a5 then eleven=6 elseif star_good>=a4 then eleven=5 elseif star_good>=a3 then eleven=4 elseif star_good>=a2 then eleven=3 elseif star_good>=a1 then eleven=2 end local star_begin=3*(1+paper_lv) local star_end=5*(1+paper_lv) local star=math.random ( star_begin , star_end ) if star>64 then star=64 end local run_time = star return 2,run_time,eleven end function begin_manufacture1_item (...) local role = 0 local ItemBag = {} local ItemBagCount = 0 role , ItemBag , ItemBagCount = Read_manufacture ( arg ) local Check1 = can_manufacture_item_main ( arg ) if Check1 ~= 1 then return 0 end local i = 0 local j = 0 local Item = {} local ItemID = {} local ItemType = {} for j = 1 , ItemBagCount , 1 do Item[j] = GetChaItem ( role , 2 , ItemBag [j] ) ItemID[j] = GetItemID ( Item[j] ) ItemType[j] = GetItemType ( Item[j] ) end local paper_lv = GetItemAttr(Item[2], ITEMATTR_URE ) local star_begin=3*(1+paper_lv) local star_end=5*(1+paper_lv) local star=math.random ( star_begin , star_end ) if star>64 then star=64 end local run_time = star local WORD1 =math.random ( 1, 6 ) local WORD2 =math.random ( 1, 6 ) local WORD3 =math.random ( 1, 6 ) local str =""..WORD1..","..WORD2..","..WORD3 return 2,run_time,str end function begin_manufacture2_item (...) local role = 0 local ItemBag = {} local ItemBagCount = 0 role , ItemBag , ItemBagCount = Read_manufacture ( arg ) local Check1 = can_manufacture_item_main ( arg ) if Check1 ~= 1 then return 0 end local i = 0 local j = 0 local Item = {} local ItemID = {} local ItemType = {} for j = 1 , ItemBagCount , 1 do Item[j] = GetChaItem ( role , 2 , ItemBag [j] ) ItemID[j] = GetItemID ( Item[j] ) ItemType[j] = GetItemType ( Item[j] ) end local paper_lv = GetItemAttr(Item[2], ITEMATTR_URE ) local star_begin=3*(1+paper_lv) local star_end=4*(1+paper_lv) local star=math.random ( star_begin , star_end ) if star>64 then star=64 end local run_time = star local star_ok = 12 return 2,run_time,star_ok end function begin_manufacture3_item (...) local role = 0 local ItemBag = {} local ItemBagCount = 0 role , ItemBag , ItemBagCount = Read_manufacture ( arg ) local Check1 = can_fenjie_item_main ( arg ) if Check1 ~= 1 then return 0 end local i = 0 local j = 0 local Item = {} local ItemID = {} local ItemType = {} for j = 1 , ItemBagCount , 1 do Item[j] = GetChaItem ( role , 2 , ItemBag [j] ) ItemID[j] = GetItemID ( Item[j] ) ItemType[j] = GetItemType ( Item[j] ) end local Item_Lv = GetItemLv ( Item[3] ) if ItemID[3]>=5000 then local tmd_rad=math.random ( 1 , 10 ) if tmd_rad==1 then Item_Lv=80 elseif tmd_rad==2 then Item_Lv=70 elseif tmd_rad==3 then Item_Lv=60 elseif tmd_rad==4 then Item_Lv=50 elseif tmd_rad==5 then Item_Lv=40 elseif tmd_rad==6 then Item_Lv=30 elseif tmd_rad==7 then Item_Lv=20 else Item_Lv=10 end end local base_rad=0 base_rad=math.max((80-math.max(Item_Lv,10))*0.01,0.15) local Num_JL = GetItemForgeParam ( Item[1] , 1 ) Num_JL = TansferNum ( Num_JL ) local Part1_JL = GetNum_Part1 ( Num_JL ) local Part2_JL = GetNum_Part2 ( Num_JL ) local Part3_JL = GetNum_Part3 ( Num_JL ) local Part4_JL = GetNum_Part4 ( Num_JL ) local Part5_JL = GetNum_Part5 ( Num_JL ) local Part6_JL = GetNum_Part6 ( Num_JL ) local Part7_JL = GetNum_Part7 ( Num_JL ) local JL_jineng=0 local JL_jineng_lv=0 if Part2_JL==16 then JL_jineng=Part2_JL JL_jineng_lv=Part3_JL elseif Part4_JL==16 then JL_jineng=Part4_JL JL_jineng_lv=Part5_JL elseif Part6_JL==16 then JL_jineng=Part6_JL JL_jineng_lv=Part7_JL end local Gj_lv=0 if ItemID[2]==1070 then Gj_lv=GetItemAttr ( Item[2] , ITEMATTR_VAL_STR ) end local life_lv = 0 life_lv=GetSkillLv( role , SK_FENJIE ) local run_time = math.random ( 4, 8 ) local word_test = math.floor((JL_jineng_lv*0.05+life_lv*0.02+Gj_lv*0.03+base_rad)*100000) if word_test>99999 then word_test=99999 end local word_radom = math.random ( 10000, 99999 ) local str =""..word_test..","..word_radom return 2,run_time,str end function end_manufacture_item (...) local role = 0 local ItemBag = {} local ItemBagCount = 0 role , ItemBag , ItemBagCount = Read_manufacture ( arg ) local i = 0 local j = 0 local star_check=0 star_check=arg[arg.n] local Item = {} local ItemID = {} local ItemType = {} local check = {} for j = 1 , ItemBagCount , 1 do Item[j] = GetChaItem ( role , 2 , ItemBag [j] ) ItemID[j] = GetItemID ( Item[j] ) ItemType[j] = GetItemType ( Item[j] ) end local paper_id1=GetItemAttr(Item[2], ITEMATTR_VAL_STR ) local paper_id2=GetItemAttr(Item[2], ITEMATTR_VAL_CON ) local paper_id3=GetItemAttr(Item[2], ITEMATTR_VAL_DEX ) local Num_paper = GetItemForgeParam ( Item[2] , 1 ) Num_paper = TansferNum ( Num_paper ) local Part2_paper = GetNum_Part2 ( Num_paper ) local Part4_paper = GetNum_Part4 ( Num_paper ) local Part6_paper = GetNum_Part6 ( Num_paper ) local life_lv = 0 local Gj_lv= 0 local paper_lv = GetItemAttr(Item[2], ITEMATTR_URE ) local num_x=1 local star_num_qulity=4 if ItemID[2]==2300 then life_lv=GetSkillLv( role , SK_ZHIZAO ) if star_check==1 then num_x=0 elseif star_check==2 or star_check==3 or star_check==4 then num_x=1 elseif star_check==5 or star_check==6 or star_check==7 then num_x=2 elseif star_check==8 or star_check==9 or star_check==10 then num_x=3 elseif star_check==11 then num_x=4 end end if ItemID[2]==2301 then life_lv=GetSkillLv( role , SK_ZHUZAO ) end if ItemID[2]==2302 then life_lv=GetSkillLv( role , SK_PENGREN ) local differ_check=math.abs(star_check-75) if differ_check==0 then num_x=5 elseif differ_check==1 then num_x=4 elseif differ_check==2 then num_x=3 elseif differ_check>=3 and differ_check<=6 and star_check<=77 then num_x=2 elseif differ_check>=7 and differ_check<=25 and star_check<=77 then num_x=1 else num_x=0 end end if ItemID[3]==1067 or ItemID[3]==1068 or ItemID[3]==1069 or ItemID[3]==1070 then Gj_lv=GetItemAttr ( Item[3] , ITEMATTR_VAL_STR ) end local i1 = 0 local i2 = 0 local i3 = 0 i1 =TakeItem( role, 0, paper_id1, Part2_paper) i2 =TakeItem( role, 0, paper_id2, Part4_paper) i3 =TakeItem( role, 0, paper_id3, Part6_paper) if i1 == 0 or i2 == 0 or i3 == 0 then LG( "Hecheng_BS" , "Удалить предмет не удалось " ) end local a1_num=GetItemAttr(Item[2], ITEMATTR_MAXURE ) local a1=TakeItem( role, 0, 855, a1_num ) if a1==0 then SystemNotice ( role ,"Не удалось удалить Монету Феи ") return end local new_num = GetItemAttr(Item[2], ITEMATTR_VAL_AGI ) if ItemID[2]==2300 then if new_num==1067 or new_num==1068 or new_num==1069 or new_num==1070 or new_num==2236 then num_x=1 end end local paper_energy = GetItemAttr(Item[2], ITEMATTR_MAXENERGY )-100 local star_good=(math.min(life_lv,paper_lv)*0.03+Gj_lv*0.05+(100-paper_energy*10)*0.01)*100 local star_radom = math.random ( 1, 100 ) local m1 = -1 local m2 = -1 if ItemID[2]==2300 then if star_check>=2 then star_good=100 star_radom=1 else star_good=1 star_radom=100 end end local star_check_chenggong=0 if star_check~=0 and star_good >star_radom and num_x~=0 then star_check_chenggong=1 m1, m2 = MakeItem ( role , new_num , num_x , star_num_qulity ) local Itemfinal = GetChaItem ( role , 2 , m2 ) if ItemID[2]==2301 and CheckItem_CanJinglian(Itemfinal)==1 then local Itemfinal_energy=GetItemAttr ( Itemfinal ,ITEMATTR_ENERGY) local itemfinal_maxenergy =GetItemAttrRange(new_num , ITEMATTR_MAXENERGY , 1 ) local itemfinal_minenergy = GetItemAttrRange(new_num ,ITEMATTR_MAXENERGY , 0 ) if paper_energy>7 then paper_energy=7 end if itemfinal_maxenergy~=itemfinal_minenergy then Itemfinal_energy=math.mod(Itemfinal_energy,1000)+paper_energy*1000 SetItemAttr ( Itemfinal ,ITEMATTR_MAXENERGY , Itemfinal_energy) SetItemAttr ( Itemfinal ,ITEMATTR_ENERGY , Itemfinal_energy) end end local item_final_ID=GetItemID(Itemfinal) if item_final_ID==1067 or item_final_ID==1068 or item_final_ID==1069 or item_final_ID==1070 then SetItemAttr(Itemfinal, ITEMATTR_VAL_STR ,1) SetItemAttr(Itemfinal, ITEMATTR_MAXENERGY ,10000) SetItemAttr(Itemfinal, ITEMATTR_ENERGY ,1) end if item_final_ID==2236 then SetItemAttr(Itemfinal, ITEMATTR_VAL_STR ,paper_lv) end else SystemNotice( role , "Действие завершилось неудачей. Наверное вы что-то неверно делали ") end local paper_num=GetItemAttr(Item[2], ITEMATTR_VAL_STA ) paper_num=paper_num-1 SetItemAttr(Item[2], ITEMATTR_VAL_STA , paper_num ) local Gj_ure=0 if ItemID[3]==1067 or ItemID[3]==1068 or ItemID[3]==1069 or ItemID[3]==1070 then Gj_ure=GetItemAttr ( Item[3] , ITEMATTR_URE ) local star_gjlv_num=GetItemAttr ( Item[3] , ITEMATTR_VAL_STR ) Gj_ure=Gj_ure-50*star_gjlv_num if Gj_ure<=0 then Gj_ure=0 end local star_lv_num = GetItemAttr( Item[3] ,ITEMATTR_ENERGY ) if star_check_chenggong==1 then star_lv_num=star_lv_num+paper_lv else star_lv_num=star_lv_num+1 end if star_lv_num>=10000 then star_lv_num=10000 end SystemNotice( role , "Ваш инструмент получил "..star_lv_num.." очков опыта ") if star_lv_num>=star_gjlv_num*star_gjlv_num*100 then star_gjlv_num=star_gjlv_num+1 SetItemAttr ( Item[3] , ITEMATTR_VAL_STR ,star_gjlv_num) SystemNotice( role , "Поздравляем, уровень вашего инструмента повышен!") star_lv_num=0 end SetItemAttr ( Item[3] , ITEMATTR_ENERGY , star_lv_num ) SetItemAttr ( Item[3] , ITEMATTR_URE ,Gj_ure) end local cha_name = GetChaDefaultName ( role ) LG( "star_SHENGHUO_lg" ,cha_name, star_check , ItemID[2] , paper_lv , paper_id1 , Part2_paper , paper_id2 , Part4_paper , paper_id3 , Part6_paper , ItemID[3] , Gj_lv , life_lv ) SynChaKitbag(role,13) return m2 end Edited November 9, 2017 by Graf Quote Share this post Link to post Share on other sites
BETEP/macs509 87 Report post Posted November 9, 2017 Ты сначала скажи что хочешь сделать. Я у себя добавил новые чертежи. Когда открываешь пачкули он рандомно генерирует один из 3х чертежей (сначала всё генерируется и уже потом записывается в выдаваемый предмет - поэтому на рецептах и нет функции, всё делается при открытии пачкули), а так же по заданным критериям сам рецепт составляющих которые хранятся в variable. На самом деле очень просто, разбей по частям и посмотри, единственное насколько помню ты можешь создать новые запечатанные чертежи, а вот сами id рецептов зашиты в game.exe то есть если сделаешь другие то в окно машин не вставить. Тогда можно будет при помощи "молоточка" делать крафты, как с алтарём. Quote Share this post Link to post Share on other sites
Graf 211 Report post Posted November 9, 2017 (edited) 47 минут назад, BETEP/macs509 сказал: Ты сначала скажи что хочешь сделать. Я у себя добавил новые чертежи. Когда открываешь пачкули он рандомно генерирует один из 3х чертежей (сначала всё генерируется и уже потом записывается в выдаваемый предмет - поэтому на рецептах и нет функции, всё делается при открытии пачкули), а так же по заданным критериям сам рецепт составляющих которые хранятся в variable. На самом деле очень просто, разбей по частям и посмотри, единственное насколько помню ты можешь создать новые запечатанные чертежи, а вот сами id рецептов зашиты в game.exe то есть если сделаешь другие то в окно машин не вставить. Тогда можно будет при помощи "молоточка" делать крафты, как с алтарём. Хочу создать чертеж, да. И... "окно машин"?? Edited November 9, 2017 by Graf Quote Share this post Link to post Share on other sites
BETEP/macs509 87 Report post Posted November 10, 2017 Крафта. Дублирую функцию, переименовывай, создавай предмет, привязывай к нему функцию, добавляй нужные массивы в variable и используй уже существующие чертежи. Всё зависит от чертежа, текущий код можно сократить раз в 5. Окно машин, это куда ты предмет вставляешь для крафта. Quote Share this post Link to post Share on other sites
Graf 211 Report post Posted November 10, 2017 3 часа назад, BETEP/macs509 сказал: Крафта. Дублирую функцию, переименовывай, создавай предмет, привязывай к нему функцию, добавляй нужные массивы в variable и используй уже существующие чертежи. Всё зависит от чертежа, текущий код можно сократить раз в 5. Окно машин, это куда ты предмет вставляешь для крафта. Спасибо Quote Share this post Link to post Share on other sites