Всем привет, помогите разобраться кодом черчежей.
Допустим в 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
ил может можно както назначить рецепт на чертеж ну то есть на конкретный чертеж. То есть например: Рецепт меча новичка, и этот рецепт упал не с пачкулика а просто с моба или еще где(думаю не важно.) Буду благодарен за помощь.