Jump to content
Sign in to follow this  
Graf

Ограничение опыта за убийство.

Recommended Posts

Ограничение опыта за убийство.

Задача такова:

Если уровень персонажа >= уровню монстра, то опыт не дается. Естественно в этом проблем не возникло.

Файл - exp_and_lvl.lua

функция - ShareTeamExp

			local Lv_character = Lv ( TurnToCha(t[i]) )
			local Lv_dead = Lv ( dead )
			if Lv_character >= Lv_dead then
				exp_up = 0
			end

Проблема в том, что при создании отряда..

Допустим персонаж 45 уровня, монстр 45 уровня, а второй персонаж 30 уровня.

При убийстве в отряде первым персонажем монстра, то опыт не дается никому.

В целом это логично, судя по записи, НО.

Что-то тут не так))

Идеи/намеки/хоть что-нибудь, пожалуйста)

Share this post


Link to post
Share on other sites
	if exp_up == 0 then --§Я§Ц§Э§о§Щ§с §б§а§Э§е§й§Ъ§д§о §а§б§н§д
			SystemNotice ( TurnToCha(t[i]) , "\194\251 \237\229\236\238\230\229\242\229 \239\238\235\243\247\232\242\252 \238\239\251\242." )
		end 		
		local map_name = GetChaMapName(TurnToCha(t[i]))
		if (no_exp_map[map_name] == 1) then
				--SystemNotice(TurnToCha(t[i]), "111111")
		else			
			exp = exp + exp_up  
			SetChaAttrI ( TurnToCha(t[i]) , ATTR_CEXP, exp ) 
			LG("exp" , "exp_now = " , exp ) 
		end
		else 
	        --SystemNotice ( team_atker , "¶УФ±ЕЕО»["..i.."]µДЦµОЄїХ")
		end 
	end 
	local star112=GetChaAttr (  team_atker , ATTR_CEXP )----------µ±З°µИј¶ѕ­Сй
	LG("star_exp" , "НжјТ"..cha_name1100.."µ±З°ѕ­СйОЄ"..star112.."ЅбКшShareTeamExp" ) 
	LG("exp" , "end getexp " )

мне кажеться тут надо ковырять в самом конце

Share this post


Link to post
Share on other sites

Переменная exp_up общая для всех персонажей. Ты ее обнуляешь в цикле как только натыкаешься на персонажа, который не проходит по условию.

 

Попробуй заменить

SetChaAttrI (TurnToCha(t[i]), ATTR_CEXP, exp) 

на 

local cha = TurnToCha(t[i])
if (Lv(cha) < dead_lv) then
	SetChaAttrI(cha, ATTR_CEXP, exp) 
else
	SystemNotice(cha, "Ваш уровень больше уровня монстра, опыт не был получен.")
end

 

  • Like 1

Share this post


Link to post
Share on other sites
17 minutes ago, Graf said:

@V3ct0r В отряде опыт не идет, но спасибо за попытку)

Так я и написал про решение для отряда


Share this post


Link to post
Share on other sites
23 часа назад, V3ct0r сказал:

Так я и написал про решение для отряда

А, извиняюсь, спасибо)

Share this post


Link to post
Share on other sites

В файлах лежит функция PartyNum(), используя её можно проверять и назначать необходимые условия индивидуально, для каждого члена отряда.

 

Edited by e1mer

Share this post


Link to post
Share on other sites
В 23.05.2018 в 08:12, Stinger сказал:

 

Не надо придумывать какую то чушь, просто так делаем и всё!

 


local lv_gap = Lv (t[i]) <= Lv (dead)

if (lv_gap ) then

SetChaAttrI ( TurnToCha(t[i]) , ATTR_CEXP, exp ) 
	
end

 

Работает ли это ? О да , это работает!

Я вот не понимаю как и что работает, не мог бы ты мне растолковать за что отвечает каждая строка твоего кода, и почему именно так а не иначе? 

Я просто только учить скриптинг начинаю.

  • Thanks 1

Share this post


Link to post
Share on other sites

Не нужно в моем сообщении искать какую-то агрессию, я уверен что твои знания и опыт превосходят мои, во многом, развернутый ответ я просил как ты понимаешь не для себя, мое почтение что ты нашел время на объяснение, я уверен что кому-то это будет очень полезным.

 

И да, partynum можно использовать, к сожалению нет возможности открыть файлы и прокомментировать, ткнул по памяти.

Хотя, возможно я ошибаюсь.

 

Витя создал эту замечательную площадку для обмена опытом, и пока тут есть такие пользователи как ты, эта площадка будет жить. 

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