Ir para conteúdo

[Encerrado] Usar tp se tiver tal cap


travisani

Posts Recomendados

Gostaria de saber se tem como adaptar um script que faça com que  entre em um determinado teleport, quem tiver tiver 400 de CAP  ou menos (capacidade)

400 ou 400- de cap

Id do teleport: 1387

 

Eu tenho esse script, porem não funcionou... 

TFS 0.3.6 ~ 0.4   Servidor 8.60

function getPlayerMaxCap(cid)           -- Function by darkhaos
   local query = db.getResult("SELECT `cap` FROM `players` WHERE `id` = " .. getPlayerGUID(cid) .. ";")
   if query:getID() ~= -1 then
       return query:getDataInt("cap")
   end
   query:free()
   return LUA_ERROR
end
 
function onStepIn(cid, item, position, fromPosition)
   if getPlayerMaxCap(cid) < 400 then
       return true
   end
   return false
end

 

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

Vc vai precisar botar uma "Action ID" pelo Remere's Map Editor no teleporte (clicando com o botão direito do mouse e indo em propriedades e modificando o numero la), eu testei com o valor 5000.

Não coloque a posição que o teleporte envia o player deixe em branco, somente modifique o Action ID.

 

Movements/movements.xml

Verifique se tem alguma outra tag utilizando o itemid="1387" (dando ctrl+F), creio que vá ter um script chamado "citizen.lua".

Ae vc vai até o script em "Movements/scripts/citizen.lua" e coloca esse script antes do ultimo return true.

Só para explicar as variáveis que vc vai ter que mudar:

local tp_menos_cap = {x=95,y=126,z=7 } --> Coloque a posição para onde a pessoa vai ser teleportada se tiver menos que 400 de cap.
local tp_mais_cap = {x=92,y=125,z=7 } --> Coloque a posição para onde a pessoa vai ser teleportada se tiver mais que 400 de cap.

local cap = getPlayerFreeCap(cid)
local tp_menos_cap = {x=95,y=126,z=7 }
local tp_mais_cap = {x=92,y=125,z=7 }

	if item.actionid == 5000 then
			if cap <= 400 then
				doTeleportThing(cid, tp_menos_cap)
				doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
				return true
			end
		doTeleportThing(cid, tp_mais_cap)
		doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
		return true
	end

Movements/scripts/citizen.lua

Juntando os 2 no meu caso ficou assim:

function onStepIn(cid, item, position, fromPosition)
	if(item.actionid > 30020 and item.actionid < 30100) then
		local townId = (item.actionid - 30020)
		doPlayerSetTown(cid, townId)
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You are the newest resident of " .. getTownName(townId) .. ".")
	end

local cap = getPlayerFreeCap(cid)
local tp_menos_cap = {x=95,y=126,z=7 }
local tp_mais_cap = {x=92,y=125,z=7 }

	if item.actionid == 5000 then
			if cap <= 400 then
				doTeleportThing(cid, tp_menos_cap)
				doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
				return true
			end
		doTeleportThing(cid, tp_mais_cap)
		doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
		return true
	end
	return true
end

 

Editado por Rayan
Link para o comentário
Compartilhar em outros sites

  • 5 months later...
Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...