Jump to content
Sign in to follow this  
WVWMK

[Скрипт]Морские навыки

Recommended Posts

ItemInfo.txt
8865	Морской навык: Мастерство канонира	s0226	10130005	0	0	0	0	0	0	31	0	0	0	0	0	1	1	1	1	200	0	5000	-1	0	-1	0	0	-1	-1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0	0,0	0,0	0	0	0	0	0	0	0	0	0	ItemUse_Mor	0	0	0	0,0	0	0	Позволяет изучить морской навык	0																																																																																														
8866	Морской навык: Усилен. дерев. конструкции	s0227	10130005	0	0	0	0	0	0	31	0	0	0	0	0	1	1	1	1	200	0	5000	-1	0	-1	0	0	-1	-1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0	0,0	0,0	0	0	0	0	0	0	0	0	0	ItemUse_Mor	0	0	0	0,0	0	0	Позволяет изучить морской навык	0																																																																																														
8867	Морской навык: Мореходство	s0228	10130005	0	0	0	0	0	0	31	0	0	0	0	0	1	1	1	1	200	0	5000	-1	0	-1	0	0	-1	-1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0	0,0	0,0	0	0	0	0	0	0	0	0	0	ItemUse_Mor	0	0	0	0,0	0	0	Позволяет изучить морской навык	0																																																																																														
8868	Морской навык: Усиление корпуса	s0229	10130005	0	0	0	0	0	0	31	0	0	0	0	0	1	1	1	1	200	0	5000	-1	0	-1	0	0	-1	-1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0	0,0	0,0	0	0	0	0	0	0	0	0	0	ItemUse_Mor	0	0	0	0,0	0	0	Позволяет изучить морской навык	0																																																																																														
8869	Морской навык: Улучшение топливного бака	s0230	10130005	0	0	0	0	0	0	31	0	0	0	0	0	1	1	1	1	200	0	5000	-1	0	-1	0	0	-1	-1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0	0,0	0,0	0	0	0	0	0	0	0	0	0	ItemUse_Mor	0	0	0	0,0	0	0	Позволяет изучить морской навык	0																																																																																														
ItemInfo.lua

function ItemUse_Mor (role , Item)
	local Cha_Boat = GetCtrlBoat ( role )
	local sk_add = 0 
	local Item_ID = GetItemID ( Item )
	local need_item = 0
	local need_item2 = 0
	local count = 1
		
	if Cha_Boat ~=  nil then
		SystemNotice( role , "Не может быть использовано, когда Вы в море!"  )
		UseItemFailed ( role )
		return
	end
	
	if Item_ID ==8865 then
		sk_add=SK_HPSL
	elseif Item_ID ==8866  then
		sk_add=SK_JBJG
	elseif Item_ID ==8867  then
		sk_add=SK_CFS
	elseif Item_ID ==8868  then
		sk_add=SK_CTQH
	elseif Item_ID ==8869  then
		sk_add=SK_BJCR
	end
	
	local form_sklv = GetSkillLv( role , sk_add ) 
	
	if form_sklv == 0 then
		a = AddChaSkill ( role , sk_add, 1 , 0 , 0 ) 
		if a == 0 then 
			UseItemFailed ( role )  
			return 
		end 
	end
	
	if form_sklv == 1 then
		need_item = 3989
		need_item2 = 1667
	elseif form_sklv == 2 then
		need_item = 3991
		need_item2 = 1668
	elseif form_sklv == 3 then
		need_item = 3992
		need_item2 = 1670
	elseif form_sklv == 4 then
		need_item = 3993
		need_item2 = 1674
	elseif form_sklv == 5 then
		need_item = 3994
		need_item2 = 1782
	elseif form_sklv == 6 then
		need_item = 3995
		need_item2 = 4544
	elseif form_sklv == 7 then
		need_item = 3996
		need_item2 = 4037
	elseif form_sklv == 8 then
		need_item = 3997
		need_item2 = 4034
	elseif form_sklv == 9 then
		need_item = 3998
		need_item2 = 4546
	end
	
	local itemname1 = GetItemName(need_item)
	local itemname2 = GetItemName(need_item2) 
	
	if form_sklv >= 1 and  form_sklv < 10  then 
		count = (form_sklv + 1) * 10
		local check = DelBagItem(role,need_item,count)
		local check2 = DelBagItem(role,need_item2,count)
		
		if check == 1 and check2 == 1  then
			a = AddChaSkill ( role , sk_add, form_sklv + 1 , 0 , 0 ) 
		else
			SystemNotice(role, "Вам  нужно "..count.." шт.  " ..itemname1.. " и " ..count.." шт."..itemname2 )
			UseItemFailed ( role ) 
		end
		
		if a == 0 then 
			UseItemFailed ( role )  
			return 
		end 
	end 
end
skilleffect.lua


--Мастерство канонира +
function Skill_Hpsl_Use( role , sklv ) 
--	LG("skill_Hpsl", "enter function Skill_Oper_Hpsl:", "sklv = ", sklv ,"role = ", role , "\n") 
	local statelv = sklv  
	local ship_mxatk_dif = statelv * 5
	local ship_mnatk_dif = statelv * 5
	local ship_mxatk = ( Ship_Mxatk ( role ) + ship_mxatk_dif ) 
	local ship_mnatk = ( Ship_Mnatk ( role ) + ship_mnatk_dif )
	SetCharaAttr( ship_mxatk , role , ATTR_BOAT_SKILLV_MXATK ) 
	SetCharaAttr( ship_mnatk , role , ATTR_BOAT_SKILLV_MNATK ) 
	ALLExAttrSet(role)  
end 

function Skill_Hpsl_Unuse( role , sklv ) 
--	LG("skill_Bkzj", "enter function Skill_Oper_Bkzj:", "sklv = ", sklv ,"role = ", role , "\n") 
	local statelv = sklv  
	local ship_mxatk_dif = statelv * 5
	local ship_mnatk_dif = statelv * 5
	local ship_mxatk = ( Ship_Mxatk ( role ) - ship_mxatk_dif ) 
	local ship_mnatk = ( Ship_Mnatk ( role ) - ship_mnatk_dif )
	SetCharaAttr( ship_mxatk , role , ATTR_BOAT_SKILLV_MXATK ) 
	SetCharaAttr( ship_mnatk , role , ATTR_BOAT_SKILLV_MNATK ) 
	ALLExAttrSet(role)  
end 

--Усилен. дерев. конструкции +
function Skill_Jbjg_Use( role , sklv ) 
	LG("skill_Jbjg", "enter function Skill_Oper_Jbjg:", "sklv = ", sklv ,"role = ", role , "\n") 
	local statelv = sklv  
	local ship_def_dif = statelv * 15    
	local ship_def = ( Ship_Def ( role ) + ship_def_dif )  
	SetCharaAttr( ship_def , role , ATTR_BOAT_SKILLV_DEF ) 
	ALLExAttrSet(role)  
end 

function Skill_Jbjg_Unuse( role , sklv ) 
	LG("skill_Jbjg", "enter function Skill_Oper_Jbjg:", "sklv = ", sklv ,"role = ", role , "\n") 
	local statelv = sklv  
	local ship_def_dif = statelv * 15   
	local ship_def = ( Ship_Def ( role ) - ship_def_dif )  
	SetCharaAttr( ship_def , role , ATTR_BOAT_SKILLV_DEF ) 
	ALLExAttrSet(role)  
end 

--Мореходство
function Skill_Cfs_Use( role , sklv ) 
	LG("skill_Cfs", "enter function Skill_Oper_Cfs:", "sklv = ", sklv ,"role = ", role , "\n") 
	local statelv = sklv  
	local ship_aspdsa_dif = 0.1 + statelv * 0.03     
	local ship_aspdsa = ( Ship_AspdSa ( role ) + ship_aspdsa_dif )  * ATTR_RADIX
	SetCharaAttr( ship_aspdsa , role , ATTR_BOAT_SKILLC_MSPD ) 
	ALLExAttrSet(role)  
end 

function Skill_Cfs_Unuse( role , sklv ) 
	LG("skill_Cfs", "enter function Skill_Oper_Cfs:", "sklv = ", sklv ,"role = ", role , "\n") 
	local statelv = sklv  
	local ship_aspdsa_dif = 0.1 + statelv  * 0.03    
	local ship_aspdsa = ( Ship_AspdSa ( role ) - ship_aspdsa_dif )  * ATTR_RADIX
	SetCharaAttr( ship_aspdsa , role , ATTR_BOAT_SKILLC_MSPD ) 
	ALLExAttrSet(role)  
end 

--Усиление корпуса
function Skill_Ctqh_Use( role , sklv ) 
	LG("skill_Ctqh", "enter function Skill_Oper_Ctqh:", "sklv = ", sklv ,"role = ", role , "\n") 
	local statelv = sklv  
	local ship_hp_dif = statelv * 550    
	local ship_hp = ( Ship_Mxhp ( role ) + ship_hp_dif ) 
	SetCharaAttr( ship_hp , role , ATTR_BOAT_SKILLV_MXUSE ) 
	ALLExAttrSet(role)  
end 

function Skill_Ctqh_Unuse( role , sklv ) 
	LG("skill_Ctqh", "enter function Skill_Oper_Ctqh:", "sklv = ", sklv ,"role = ", role , "\n") 
	local statelv = sklv  
	local ship_hp_dif = statelv * 550    
	local ship_hp = ( Ship_Mxhp ( role ) - ship_hp_dif ) 
	SetCharaAttr( ship_hp , role , ATTR_BOAT_SKILLV_MXUSE ) 
	ALLExAttrSet(role)  
end 

--Топливо
function Skill_Bjkr_Use( role , sklv ) 
	LG("skill_Bjcr", "enter function Skill_Oper_Bjcr:", "sklv = ", sklv ,"role = ", role , "\n") 
	local statelv = sklv  
	local ship_sp_dif = statelv * 120    
	local ship_sp = ( Ship_Mxsp ( role ) + ship_sp_dif ) 
	SetCharaAttr( ship_sp , role , ATTR_BOAT_SKILLV_MXSPLY ) 
	ALLExAttrSet(role)  
end 

function Skill_Bjkr_Unuse( role , sklv ) 
	LG("skill_Bjcr", "enter function Skill_Oper_Bjcr:", "sklv = ", sklv ,"role = ", role , "\n") 
	local statelv = sklv  
	local ship_sp_dif = statelv * 120    
	local ship_sp = ( Ship_Mxsp ( role ) - ship_sp_dif ) 
	SetCharaAttr( ship_sp , role , ATTR_BOAT_SKILLV_MXSPLY ) 
	ALLExAttrSet(role)  
end 

Навыки добавлять не нужно, так как они в стандартных сборках все есть и в массивах variable
Система изучения такова - чтобы изучить навык 1 уровня вам не нужно ничего, для 2 уровня понадобится иметь при себе 2 лутины в заданном кол-ве, с каждым уровнем повышается кол-во лутин и изменяются сами лутины(дерево и руда насколько помню)

Баланс навыков переделан для полуфан сборок

 

Проверки на наличие лутин нужно проверить, не помню как они работали(вроде все было норм, но сомневаюсь)

Если оптимизировать код будет меньше строчек.


Делай добро и бросай его в воду

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...