Jump to content
Sign in to follow this  
Ropedann

Чертежи(производства,ремесла)

Recommended Posts

Всем привет, помогите разобраться кодом черчежей.

 

Допустим в 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 by Ropedann

Share this post


Link to post
Share on other sites

Рецепт уже готовый не получиться сделать. Но можно сделать допустим запечатанный рецепт ножа новичка из которого будет при открытии выпадать нужный рецепт. По поводу неправильной работы они у тебя и не будут генерироваться, если у тебя указаны диапазоны которых в помине нет. Я лично разбирался так: убрал выдачу кулинарии и ремесла оставив только производство, убрал лишний код который не затрагивал производство и дальше уже было легко понять что к чему, потом просто на базе отредактированного производства доделал остальное.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...