gahgah 5 Postado Dezembro 25, 2010 Share Postado Dezembro 25, 2010 Ae galera, achei um comando que quando dito você é tele transportado para frente da sua casa, so falar !home, o tele funciona apenas sem pz, vai logo abaixo uma foto, sera que alguém poderia me ajudar? OT: Alissow Server, version 0.4.1 (Alissow) – 8.60 SS: Estou no aguardo Link para o comentário Compartilhar em outros sites More sharing options...
MatheusGlad 424 Postado Dezembro 25, 2010 Share Postado Dezembro 25, 2010 Va em data/talkactions/scripts adicione um script.lua com o nome de home e bote esse script: function isWalkable(pos, creature, proj, pz)-- by Nord if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end if getTopCreature(pos).uid > 0 and creature then return false end if getTileInfo(pos).protection and pz then return false, true end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end function onSay(cid, words) if not getHouseByPlayerGUID(getPlayerGUID(cid)) then return doPlayerSendCancel(cid, "Voce nao tem casa.") end local pos = getHouseEntry(getHouseByPlayerGUID(getPlayerGUID(cid))) if getCreatureCondition(cid, CONDITION_INFIGHT) then return doPlayerSendCancel(cid, "Voce tem que estar sem battle.") end if not getTilePzInfo({x=pos.x-1, y=pos.y, z=pos.z}) and isWalkable({x=pos.x-1, y=pos.y, z=pos.z}) then pos = {x=pos.x-1, y=pos.y, z=pos.z} elseif not getTilePzInfo({x=pos.x+1, y=pos.y, z=pos.z}) and isWalkable({x=pos.x+1, y=pos.y, z=pos.z}) then pos = {x=pos.x+1, y=pos.y, z=pos.z} elseif not getTilePzInfo({x=pos.x, y=pos.y+1, z=pos.z}) and isWalkable({x=pos.x, y=pos.y+1, z=pos.z}) then pos = {x=pos.x, y=pos.y+1, z=pos.z} elseif not getTilePzInfo({x=pos.x, y=pos.y-1, z=pos.z}) and isWalkable({x=pos.x, y=pos.y-1, z=pos.z}) then pos = {x=pos.x, y=pos.y-1, z=pos.z} end doTeleportThing(cid, pos) end Agora va em talkactions.xml e adicione essa linha: <talkaction words="!home" event="script" value="home.lua"/> Link para o comentário Compartilhar em outros sites More sharing options...
Joazan 16 Postado Dezembro 25, 2010 Share Postado Dezembro 25, 2010 MatheusMkalo , muito bom axo que deveria ter esse comando em todos os OTservs rep+ ( vo coloca o topico até no favoritos xD) Link para o comentário Compartilhar em outros sites More sharing options...
gahgah 5 Postado Dezembro 25, 2010 Autor Share Postado Dezembro 25, 2010 Va em data/talkactions/scripts adicione um script.lua com o nome de home e bote esse script: function isWalkable(pos, creature, proj, pz)-- by Nord if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end if getTopCreature(pos).uid > 0 and creature then return false end if getTileInfo(pos).protection and pz then return false, true end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end function onSay(cid, words) if not getHouseByPlayerGUID(getPlayerGUID(cid)) then return doPlayerSendCancel(cid, "Voce nao tem casa.") end local pos = getHouseEntry(getHouseByPlayerGUID(getPlayerGUID(cid))) if getCreatureCondition(cid, CONDITION_INFIGHT) then return doPlayerSendCancel(cid, "Voce tem que estar sem battle.") end if not getTilePzInfo({x=pos.x-1, y=pos.y, z=pos.z}) and isWalkable({x=pos.x-1, y=pos.y, z=pos.z}) then pos = {x=pos.x-1, y=pos.y, z=pos.z} elseif not getTilePzInfo({x=pos.x+1, y=pos.y, z=pos.z}) and isWalkable({x=pos.x+1, y=pos.y, z=pos.z}) then pos = {x=pos.x+1, y=pos.y, z=pos.z} elseif not getTilePzInfo({x=pos.x, y=pos.y+1, z=pos.z}) and isWalkable({x=pos.x, y=pos.y+1, z=pos.z}) then pos = {x=pos.x, y=pos.y+1, z=pos.z} elseif not getTilePzInfo({x=pos.x, y=pos.y-1, z=pos.z}) and isWalkable({x=pos.x, y=pos.y-1, z=pos.z}) then pos = {x=pos.x, y=pos.y-1, z=pos.z} end doTeleportThing(cid, pos) end Agora va em talkactions.xml e adicione essa linha: <talkaction words="!home" event="script" value="home.lua"/> Opa vlw, funcionou perfeitamente, +rep, mais como faz para deixar estilo emoteSpells? para nao aperecer o !home no default, e o Voce nao tem casa e Voce tem que estar sem battle aparecer em azul no default? fora isso o scrip ta perfeito. Link para o comentário Compartilhar em outros sites More sharing options...
fsg 230 Postado Dezembro 25, 2010 Share Postado Dezembro 25, 2010 Bem legal este comando, obrigado Matheus! Vou dar uma dica, você deveria fazer um assim para players V.I.P clicar em um item e irem para o templo, apenas para V.I.P. Abraços. Link para o comentário Compartilhar em outros sites More sharing options...
gahgah 5 Postado Dezembro 25, 2010 Autor Share Postado Dezembro 25, 2010 MatheusMkalo , muito bom axo que deveria ter esse comando em todos os OTservs rep+ ( vo coloca o topico até no favoritos xD) É amigo, agora vai ter sim.. vim aqui pedir uma luz de como por este comando em meu server.. agora esta ai a resposta Link para o comentário Compartilhar em outros sites More sharing options...
MatheusGlad 424 Postado Dezembro 26, 2010 Share Postado Dezembro 26, 2010 Bem eu nao botei opçao pra vip e outras pois o autor do pedido nao pediu isso, se eu estivesse postando, concerteza botaria. A pra nao aparecer no default, esqueci de por um baguizin: function isWalkable(pos, creature, proj, pz)-- by Nord if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end if getTopCreature(pos).uid > 0 and creature then return false end if getTileInfo(pos).protection and pz then return false, true end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end function onSay(cid, words) if not getHouseByPlayerGUID(getPlayerGUID(cid)) then return doPlayerSendCancel(cid, "Voce nao tem casa.") end local pos = getHouseEntry(getHouseByPlayerGUID(getPlayerGUID(cid))) if getCreatureCondition(cid, CONDITION_INFIGHT) then return doPlayerSendCancel(cid, "Voce tem que estar sem battle.") end if not getTilePzInfo({x=pos.x-1, y=pos.y, z=pos.z}) and isWalkable({x=pos.x-1, y=pos.y, z=pos.z}) then pos = {x=pos.x-1, y=pos.y, z=pos.z} elseif not getTilePzInfo({x=pos.x+1, y=pos.y, z=pos.z}) and isWalkable({x=pos.x+1, y=pos.y, z=pos.z}) then pos = {x=pos.x+1, y=pos.y, z=pos.z} elseif not getTilePzInfo({x=pos.x, y=pos.y+1, z=pos.z}) and isWalkable({x=pos.x, y=pos.y+1, z=pos.z}) then pos = {x=pos.x, y=pos.y+1, z=pos.z} elseif not getTilePzInfo({x=pos.x, y=pos.y-1, z=pos.z}) and isWalkable({x=pos.x, y=pos.y-1, z=pos.z}) then pos = {x=pos.x, y=pos.y-1, z=pos.z} end doTeleportThing(cid, pos) return TRUE end Link para o comentário Compartilhar em outros sites More sharing options...
gahgah 5 Postado Dezembro 26, 2010 Autor Share Postado Dezembro 26, 2010 Vlw Matheus, script perfeito e funcionando. Link para o comentário Compartilhar em outros sites More sharing options...
luan12 83 Postado Dezembro 27, 2010 Share Postado Dezembro 27, 2010 Pedido entregue, portanto, tópico trancado. Sem mais, té. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados