TIPO: Função
Versão: 1.0.
Testado: Sim, tfs 0.3.6(OITO.SESSENTA[8.6]).
@Oque Faz?.
>função que empurra jogadores(ou monstros) ela empurra em um determinado interval.
@Instalando
Primeiramente vá em pasta do seu servidor depois entre na pasta data e em seguida lib agora entre no arquivo 050 - function e adicione o seguinte conteúdo lá:
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 cr = getThingFromPos({x = pos.x, y = pos.y, z = pos.z, stackpos = STACKPOS_TOP_CREATURE}) if isPlayer(cr.uid) or isMonster(cr.uid) 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 doEmpurrePlayer(cid, player, vez, ultimapos) if not isCreature(player) then return true end if vez == 10 then return true end tab = {100, 150, 200, 350, 400, 550, 600, 750, 900, 1000} if isWalkable(getPositionByDirection(getThingPos(player), getCreatureLookDir(cid), 1)) then doTeleportThing(player, getPosByDir(ultimapos, getCreatureLookDirection(cid), 1)) doSendMagicEffect(getThingPos(player), 34) ultimapos = getThingPos(player) addEvent(executeEmpurro, tab[vez], cid, player, vez + 1, ultimapos) end end
@Explicando!.
Sintaxe
CID -- aqui é a pessoa que vai empurrar no caso o caster da talk/spell/action/movement etc..
PLAYER -- aqui é quem vai ser empurrado no caso quem estiver na frente do player.
VEZ -- aqui checa quantas vezes foi executado(NÃO MEXA)
ULTIMAPOS -- aqui pega a pos do PLAYER.
Para mudar quantas vezes irá empurrar você modifica essa linha
if vez == 10 then return true end
ali em 10 e quantas vezes vai empurrar então você coloca mais ou menos.
O efeito é nessa linha
doSendMagicEffect(getThingPos(player), 34)[/b] [font=comic sans ms,cursive]é só mudar o 34 para outro efeito desejado.[/font] [font=comic sans ms,cursive][b]L[/b]embrando que se você alterar quantas vezes irá empurrar você deve alterar aqui também:[/font] [code]tab = {100, 150, 200, 350, 400, 550, 600, 750, 900, 1000}
ali e o interval entre os empurrões do 1 pro segundo é 100 e assim por diante se você diminuir deve tirar ali, se quiser aumentar só adicionar.
@Exêmplo!.
Um exêmplo de como usar:
local pos = getPosByDir(getCreaturePosition(cid), getCreatureLookDirection(cid), 1) pos.stackpos = 253 if (isPlayer(getThingFromPos(pos).uid)) then player = getThingFromPos(pos).uid addEvent(doEmpurrePlayer, 1, cid, player, 1, getCreaturePosition(cid)) end
é isso esperem que gostem.
CRÉDITOS
Eu
Xotservx.