Ir para conteúdo

Doempurreplayer(Cid, Player, Vez, Ultimapos)


Skymagnum

Posts Recomendados

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.

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

×
×
  • Criar Novo...