Olá a todos, primeiramente quero agradecer á oportunidade de me tornar um scripter e membro da equipe OTBR, antiga otnet, que me ensinou tudo que eu sei de script até hoje, para comemorar isso, vou postar uma função muito útil e simplês que eu imagino que possa ajudar muita gente.
[spoiler=Padrão]
Autor: MiltonHit, Mirto
Testada: sim, tfs 0.3.6 (8.54)
Versão: 1.0
A função faz o seguinte, você vai fazer um "quadrado imaginário" setando 2 posições e checando se o player ou creature cid está lá dentro, primeiro vá até á pasta lib/050-function.lua e adicione isso na ultima linha:
function getPlayerInPos(cid, posinicial, posfinal, andar) --by mirto
local player_pos = getPlayerPosition(cid)
local pos = {inicial = posinicial, final = posfinal}
for s = 1, #pos do
if pos.inicial[s] == nil or pos.final[s] == nil then
return print('error in getPlayerInPos, parametros invalidos')
end
end
if (player_pos.x <= pos.inicial.x and player_pos.y <= pos.inicial.y) and (player_pos.x >= pos.final.x and player_pos.y >= pos.final.y) then
if not(andar == nil) then
if player_pos.z == andar then
return true
else
return false
end
else
return true
end
else
return false
end
end
Pronto, seu script está instalado no servidor, agora para usar você deverar fazer o seguinte, ex:
getPlayerInPos(cid, {x=2040,y=375}, {x=1914,y=208}, 7), esse numero no final só deve ser usado se você deseja fazer a checagem de um determinado andar, se não for colocado nada, ele vai checar a área x e y..., em todos os andares possíveis, o script retornará true se o cid estiver na pos e false se não estiver, como configurar o "quadrado":
pronto, agora que você já sabe como instalar e usar a função divirta-se! De bônus vai um exemplo de como utilizar essa função:
function onThink(cid, interval)
[i] if getPlayerInPos(cid, {x=2040,y=375}, {x=1914,y=208}) == true then
doTeleportThing(cid, pos)
end[/i]
end
Obrigado a todos, espero que todos tenham gostado da minha primeira contribuição como "sub-moderador", qualquer duvida estou aqui, abraços.