OU
pedido

npc

Por outbreaks, 01 de nov. de 2013 em Scripts

npc
resolvido
script
28
2.6k
OmegaO
04 de novembro de 2013 às 00:46

Muda getThingPos(cid) pra getCreaturePosition(cid)

 

Zipter o getThingPos vc usa pra itens

 

getThingPos(uid) serve pra item e criatura.

KilluaK
04 de novembro de 2013 às 00:54

O globalevent vc deixa assim:

 

function onThink(cid, interval, lastExecution)
Local posis = {{x = 1086, y = 1065, z = 12}, {x = 1087, y = 1065, z = 12}, {x = 1088, y = 1065, z = 12}, {x = 1089, y = 1065, z = 12}, {x = 1090, y = 1065, z = 12}, {x = 1091, y = 1065, z = 12}, {x = 1092, y = 1065, z = 12}} --Edite aqui as posições dos tiles.

local cfg = {eff_one = 0, --Efeito que irá aparecer no tile de dano após os dois segundos.
eff_two = 56, --Efeito que irá aparecer nos tiles de dano.}

for a, i in ipairs(posis) do
doSendMagicEffect(i, cfg.eff_two)
end
return true
End
E cria um danos.lua no data movements scripts com esse codigo:

 

local dano = xx
local efeito = CONST_ME_DEATH

function onStepIn(cid, item, topos)
doSendMagicEffect(topos, efeito)
doCreatureAddHealth(cid, -dano)
return true
end
Dai vc registra a tag no xml com um action id a sua escolha e coloca ele em todos os tiles que quer o dano. Da pra fazer isso tudo em um script só mas to sem minha lista de funçoes e é mt chato fazer pelo celular.

 

@Omega: só agora que eu me toquei que o erro nao é pela funçao e sim pelo script estar tentando achar o player de forma errada.

 

 

@zipter: desculpa pela informaçao erra, mas , de qualquer forma, vc pode usar o getThingPos pra pegar posiçao de itens

Editado Novembro 4 por amoeba13

OmegaO
04 de novembro de 2013 às 01:06

Pra executar alguma coisa pra cada jogador por global event, vocês tem que usar um loop usando getPlayersOnline(). A função onThink pra globalevents não tem parâmetros, essa onThink(cid, interval, lastExecution) é de creaturescripts.

outbreaksO
04 de novembro de 2013 às 09:45

vo te que colok action id no chao?

KilluaK
04 de novembro de 2013 às 10:01

Sim

outbreaksO
04 de novembro de 2013 às 10:25

nuss isso vai da trabalho!

quando termina vo testa! se funciona aviso!

ow uma pergunta

quanto vai bate o efeito no player?

Editado Novembro 4 por outbreaks

KilluaK
04 de novembro de 2013 às 10:38

O tanto que vc quiser, só mudar ali no local dano.

Pra testar coloca o action id em um piso só e testa.

outbreaksO
04 de novembro de 2013 às 18:53
deu isso ai man

/2013 18:50:46] [Error - LuaScriptInterface::loadFile] cannot open data/movements/scripts/dano tiles: No such file or directory
[04/11/2013 18:50:46] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/dano tiles)
[04/11/2013 18:50:46] cannot open data/movements/scripts/dano tiles: No such file or directory
[04/11/2013 18:50:47] [Error - LuaScriptInterface::loadFile] data/globalevents/scripts/tiles.lua:1: '=' expected near 'posis'
[04/11/2013 18:50:47] [Warning - Event::loadScript] Cannot load script (data/globalevents/scripts/tiles.lua)
[04/11/2013 18:50:47] data/globalevents/scripts/tiles.lua:1: '=' expected near 'posis'

Editado Novembro 4 por outbreaks

KilluaK
04 de novembro de 2013 às 18:59

Vc coloco a tag errado. Confere se ta certo o nome do script com o nome q ta na tag

 

E o globalevent assim


function onThink(cid, interval, lastExecution)
    local posis = {{x = 1086, y = 1065, z = 12}, {x = 1087, y = 1065, z = 12}, {x = 1088, y = 1065, z = 12}, {x = 1089, y = 1065, z = 12}, {x = 1090, y = 1065, z = 12}, {x = 1091, y = 1065, z = 12}, {x = 1092, y = 1065, z = 12}} --Edite aqui as posições dos tiles.

local eff_two = 56 --Efeito que irá aparecer nos tiles de dano.

for a, i in ipairs(posis) do
    doSendMagicEffect(i, eff_two)
end
return true
end

Editado Novembro 4 por amoeba13

outbreaksO
04 de novembro de 2013 às 21:12

deu isso, parece que movements n ta achando o globalevents eu acho!

 

 

 

[04/11/2013 21:11:04] >> Loading script systems

[04/11/2013 21:11:07] [Error - LuaScriptInterface::loadFile] cannot open data/movements/scripts/dano tiles: No such file or directory
[04/11/2013 21:11:07] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/dano tiles)
[04/11/2013 21:11:07] cannot open data/movements/scripts/dano tiles: No such file or directory

 

KilluaK
04 de novembro de 2013 às 21:48

Na pasata data/movements/scripts vc vai criar um arquivo chamado danos.lua e colocar esse codigo:

local dano = xx
local efeito = CONST_ME_DEATH

function onStepIn(cid, item, topos)
doSendMagicEffect(topos, efeito)
doCreatureAddHealth(cid, -dano)
return true
end

No movements.xml vc coloca essa tag

<movevent type="StepIn" actionid="XXXX" event="script" value="danos.lua"/>

NO LUGAR DO XXXX VC ESCOLHE UM NUMERO PRA SER A ACTION ID. ESSE NUMERO VC VAI TER QUE COLOCAR EM TODOS SQM QUE FOR TER DANO

 

 

 

Em data/globalevents/scripts vc cria efeitosdano.lua e coloca

function onThink(cid, interval, lastExecution)
local posis = {{x = 1086, y = 1065, z = 12}, {x = 1087, y = 1065, z = 12}, {x = 1088, y = 1065, z = 12}, {x = 1089, y = 1065, z = 12}, {x = 1090, y = 1065, z = 12}, {x = 1091, y = 1065, z = 12}, {x = 1092, y = 1065, z = 12}} --Edite aqui as posições dos tiles.

local eff_two = 56 --Efeito que irá aparecer nos tiles de dano.

for a, i in ipairs(posis) do
doSendMagicEffect(i, eff_two)
end
return true
end

No globalevents.xml vc coloca essa tag:

 <globalevent name="tilescomefeito" interval="2000" event="script" value="efeitosdano.lua"/>
outbreaksO
05 de novembro de 2013 às 09:59

ow man conseguir vc ja ganho meu rep

so que tipo, quando o pokemon fica ensima da tiles

ele so perde 1x a vida

queria que ficase perdendo toda hr!

se o pokemon fica ensima do tile

ele fica perdendo 2k vida em 2 em 2 segundos sera que vc consegue?

se vc conseguir deixa ja ta bom assim!


ow vlw ai podem fecha topico!rep+

Editado Novembro 4 por outbreaks

OmegaO
05 de novembro de 2013 às 10:32

Tópico movido para a seção de dúvidas e pedidos resolvidos.