NI
pedido

Teleport

Por Nickbhz, 15 de out. de 2015 em Scripts

otserv
11
1.5k
NickbhzN
15 de outubro de 2015 às 18:13

Boa Noite xTibianos...

 

Bom, hoje venho fazer um pedido, creio que simples...

 

Preciso de um script que quando o player avançar ao level 300, ele seria teleportado para:
210 10 6

 

So que nesse script, so iria teleporta 1x, pois tem aqueles espertinho que iria se matar para voltar no lvl abaixo de 300 para ser teleportado novamente.;;

 

E uma mensagem para eu por um recadinho.. rs

 

 

vlwwss, agradeço.. REP++

Editado Outubro 15 por brendoonh

Lucas CPL
15 de outubro de 2015 às 18:30

Em creaturescript/script crie um arquivo .lua e coloque isso:

function onAdvance(cid, skill, oldLevel, newLevel)
	local pos, lvl, stg, msg = {x=210, y= 10, z= 6 }, 300, 99001, 'Sua mensagem com aspas' -- pos, level, storage para nao repetir 2x, msg
	if newLevel >= lvl and getPlayerStorageValue(cid, stg) <= 0 then
		setPlayerStorageValue(cid,stg,1)
		doTeleportThing(cid, pos, false)
		doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, msg)
		return true
	end
end 

e em creaturescript.xml coloque isso:

	<event type="advance" name="chegarlevel" event="script" value="SUA SCRIPT.lua"/>

E depois em login.lua antes do return true coloque isso:

	registerCreatureEvent(cid, "chegarlevel")

Não testei, qualquer erro coloque aqui

Editado Outubro 15 por Lucas CP

NickbhzN
15 de outubro de 2015 às 18:44

Ao pegar o level 25, que deixei só para testar, o char até foi teleportado.

So que nao apareceu a mensagem... e deu este erro na distro:

160wspe.jpg

SkyLighS
15 de outubro de 2015 às 18:53
Melhor resposta


 

function onAdvance(cid, skill, oldLevel, newLevel)

local pos, lvl, stg = {x=210, y= 10, z= 6 }, 300, 99001 -- pos, level, storage para nao repetir 2x

if newLevel == 300 and getPlayerStorageValue(cid, 99001) <= 0 then

setPlayerStorageValue(cid,99001,1)

doTeleportThing(cid, pos, false)

doPlayerSendTextMessage(cid, 22, "Você upou level 300 e foi teleportado")

return true

end

end

 

 

Editado Outubro 15 por Kissy

XScupionX
15 de outubro de 2015 às 18:58

.

local pos, lvl, stg = {x=210, y= 10, z= 6 }, 300, 99001 -- pos, level, storage para nao repetir 2x
SkyLighS
15 de outubro de 2015 às 19:00

 

.

local pos, lvl, stg = {x=210, y= 10, z= 6 }, 300, 99001 -- pos, level, storage para nao repetir 2x

 

Acabei esquecendo, consertado. :)

Lucas CPL
15 de outubro de 2015 às 19:15

Mude essa linha

doPlayerSendTextMessage(cid,MESSAGE_STATUS,CONSOLE_BLUE, msg)

para essa:

doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, msg)

Editado no meu post anterior

Editado Outubro 15 por Lucas CP

NickbhzN
15 de outubro de 2015 às 19:51

Ta dando mesmo erro, a mensagem nao é enviada e da o erro na distro...


Mude essa linha

doPlayerSendTextMessage(cid,MESSAGE_STATUS,CONSOLE_BLUE, msg)

para essa:

doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, msg)

Editado no meu post anterior

vou testar..


Ta dando o mesmo erro da foto la encima... o player so é teleportado, a mensagem nao aparece e da erro na distro...

SkyLighS
15 de outubro de 2015 às 19:52

Teste do jeito que enviei acima.

Lucas CPL
15 de outubro de 2015 às 20:26

Removido

 

Editado Outubro 15 por Lucas CP

SkyLighS
15 de outubro de 2015 às 20:28

Movido para resolvidos.


Tópico Movido
Este tópico foi movido de "OTServSuporte OTServSuporte Scripting"
para "OTServSuporte OTServSuporte ScriptingPedidos e dúvidas resolvidos - Scripting".