Ir para conteúdo

Featured Replies

Postado

Versão Testada: Tibia 8.60 // TFS 0.3.6 & 0.4

 

Descrição: Evita jogadores que dão exit nos treiners upando skills. Eles são kikados automaticamente depois de alguns minutos e algumas verificações.

 

 

exit_treiner.lua

config_exit_treiner = {
	Warning = "Favor trocar seu char de direção para evitar que ele seja kikado", -- mensagem
	time = 3, -- a cada 3 minutos irá checar
	roudsKick = 3, -- se ele estiver parado na mesma direção por 3 checagem seguidas será kikado
	storages = {879780,879781}, -- n edite
	treiners = {"Trainer", "Training Monk"} -- coloque aqui os Treiners do seu ot
}





--[[Functions List]]--


function doAddRoundExitTreiner(cid)
	if not isCreature(cid) then return LUA_ERROR end
	setPlayerStorageValue(cid, config_exit_treiner.storages[1], getPlayerStorageValue(cid, config_exit_treiner.storages[1]) < 0 and 1 or getPlayerStorageValue(cid, config_exit_treiner.storages[1])+1)
	if getRoundExitTreiner(cid) >= config_exit_treiner.roudsKick then
		doKickExitTreiner(cid)
	end	
end
function getRoundExitTreiner(cid)
	if not isCreature(cid) then return LUA_ERROR end
	return getPlayerStorageValue(cid, config_exit_treiner.storages[1]) < 0 and 1 or getPlayerStorageValue(cid, config_exit_treiner.storages[1])
end
function doResetExitTreiner(cid)
	if not isCreature(cid) then return LUA_ERROR end
	return setPlayerStorageValue(cid, config_exit_treiner.storages[1], 0)
end
function doKickExitTreiner(cid)
	if not isCreature(cid) then return LUA_ERROR end
	if getTileInfo(getCreaturePosition(cid)).protection or not getTreinerSpectators(cid) then
		doResetExitTreiner(cid)
		setPlayerStorageValue(cid, config_exit_treiner.storages[2], 0)
	else		
		doResetExitTreiner(cid)
		doRemoveCreature(cid)
	end
end
function getTreinerSpectators(cid)
	local t = getSpectators(getCreaturePosition(cid), 2, 2, false)
	if t then
		for _, cid in ipairs(t) do
			if isMonster(cid) and isInArray(config_exit_treiner.treiners, getCreatureName(cid)) then
				return true
			end
		end
	end
	return false
end
function doCheckLookDirExitTreiner(cid, r)
	if not isCreature(cid) then return LUA_ERROR end
	if getTreinerSpectators(cid) then
		local new = getCreatureLookDirection(cid)
		if r == new then
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, config_exit_treiner.Warning) 
			doAddRoundExitTreiner(cid)
		else
			doResetExitTreiner(cid)
		end
		addEvent(doCheckLookDirExitTreiner,config_exit_treiner.time*60*1000, cid, new)
	else
		setPlayerStorageValue(cid, config_exit_treiner.storages[2], 0)
		doResetExitTreiner(cid)
	end 
end


--[[Script System]]--


function onLogin(cid)
    	doResetExitTreiner(cid)
	setPlayerStorageValue(cid, config_exit_treiner.storages[2], 0)
	registerCreatureEvent(cid, "NewExitTreiner")
	return true
end
function onCombat(cid, target)
	if not isCreature(cid) or not isPlayer(cid) then
		return true
	end
	if getPlayerStorageValue(cid, config_exit_treiner.storages[2]) - os.time() > 0 then
		return true
	end	
	if not isMonster(target) then
		return true
	end
	if isMonster(target) and not isInArray(config_exit_treiner.treiners, getCreatureName(target)) and getRoundExitTreiner(cid) > 0 then
		setPlayerStorageValue(cid, config_exit_treiner.storages[2], 0)
		doResetExitTreiner(cid) return true
	end
	if isMonster(target) and isInArray(config_exit_treiner.treiners, getCreatureName(target)) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, config_exit_treiner.Warning) 
		addEvent(doCheckLookDirExitTreiner, config_exit_treiner.time*60*1000, cid, getCreatureLookDirection(cid))
		setPlayerStorageValue(cid, config_exit_treiner.storages[2], os.time()+5*60)
	end 	
	return true
end

 

TAG

	<event type="login" name="ExitTreiners" event="script" value="exit_treiner.lua"/>
	<event type="combat" name="NewExitTreiner" event="script" value="exit_treiner.lua"/>

 

Postado

Parabéns, seu tópico de conteúdo foi aprovado!
Muito obrigado pela sua contribuição, nós do Tibia King agradecemos.
Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.

Spoiler

Congratulations, your content has been approved!
Thank you for your contribution, we of Tibia King we are grateful.
Your content will help many other users, you received +1 REP.

 

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo