Jump to content
Sign in to follow this  
WVWMK

Убираем опыт с карты

Recommended Posts

Открываем Exp_and_Level.lua и ищем function ShareTeamExp. В конце данной функции находим такие строки:
 

exp = exp + exp_up

SetChaAttrI ( TurnToCha(t) , ATTR_CEXP, exp )


Перед этими строками вставляем этот код:

local map_name = GetChaMapName (TurnToCha(t) )

if map_name == "abandonedcity" or map_name == "abandonedcity2" or map_name == "abandonedcity3" then

SystemNotice ( TurnToCha(t) , "В данной локации опыт не будет выдан." )

exp_up = 0

end


Благодаря этому коду,в фс не будет выдаваться опыт.

 

  • Thanks 1

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

Share this post


Link to post
Share on other sites

@NMS3RR

Можно в variable.lua создать массив вида:

-- Список карт, на которых отключено получение опыта с монстров
no_exp_map = {}
no_exp_map["abandonedcity"]  = 1
no_exp_map["abandonedcity2"] = 1
no_exp_map["abandonedcity3"] = 1

и в скрипте добавления очков опыта написать следующую проверку:

local map_name = GetChaMapName(TurnToCha(t))
if (no_exp_map[map_name] == 1) then
	SystemNotice(TurnToCha(t), "В данной локации опыт не будет выдан.")
else
	exp = exp + exp_up
	SetChaAttrI(TurnToCha(t), ATTR_CEXP, exp)
end

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

&lua_all no_exp_map["<название карты>"] = 1 -- Отключили опыт
&lua_all no_exp_map["<название карты>"] = 0 -- Включили опыт

 

Возможно, условие "if (no_exp_map[map_name] == 1) then" не будет работать, если no_exp_map[map_name] = nil. Тогда нам либо нужно вручную прописать все карты, либо модифицировать скрипт:

local map_name = GetChaMapName(TurnToCha(t))
if (no_exp_map[map_name] == nil)
	no_exp_map[map_name] = 0
end

if (no_exp_map[map_name] == 1) then
	SystemNotice(TurnToCha(t), "В данной локации опыт не будет выдан.")
else
	exp = exp + exp_up
	SetChaAttrI(TurnToCha(t), ATTR_CEXP, exp)
end

 


Share this post


Link to post
Share on other sites
local map_name = GetChaMapName (TurnToCha(t[i]))
			--Notice(map_name)
			if map_name == "abandonedcity" or map_name == "abandonedcity2" or map_name == "abandonedcity3" then
				SystemNotice ( team_atker, "exp Zero." )
				exp_up = 0
			end	

 (TurnToCha(t)) 

у меня только так заработало

Спасибо.

Edited by Shapamoe

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