Jump to content
Sign in to follow this  
NMS3RR

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

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


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

 

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×