Pegar lvl 8 e já ir direto teleportado pra pos e falar hi

luccagomes
em Scripts

luccagomes

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 10/06/13Posts: 62

Usando sources 0.4

 

Alguém poderia me fazer um script que ao upar lvl 8, ir teleportado pra pos x= 100, y= 100, z= 7

E chegar falando hi com o npc? Ou começar alguma coisa pra ele saber q ta falando com o npc ou tem que falar com npc com clareza pra ir pra main?

Danihcv

I'm Coordenador, Bitch!
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 08/04/15Posts: 926Gênero: Masculino

Vá em data\creaturescripts e adicione essa tag ao arquivo creaturescripts.xml:

<event type="advance" name="Advance8NPC" event="script" value="advance8npc.lua"/>

Agora vá em data\creaturescripts\scritps e crie um arquivo chamado advance8npc.lua e coloque isso dentro:

local pos = {x=100, y=100, z=7}
local msg = "Parabéns! Você alcançou o level 8. Fale com o NPC para prosseguir sua caminhada"  --vc pode editar essa mensagem, só precisa deixar ela dentro das aspas duplas!

function onAdvance(cid, position)
    if getLevel(cid) == 8 then
		doTeleportThing(cid, pos)
		doPlayerSendTextMessage(cid, 18, msg)
    end
return true
end

Agora vá em data\creaturescripts\scritps abra o arquivo login.lua e adicione isso antes do ultimo return true:

registerCreatureEvent(cid, "Advance8NPC")

Te ajudei?? REP+ e ficamos quites... happyy.png

Atenciosamente,
                    Danihcv.
                           Abraços!

Night Wolf

Coordenador de Desenvolvimento
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 14/02/14Posts: 341Gênero: MasculinoChar no Tibia: Night Wolf

Primeiro de tudo:

 

function onAdvance(cid, position)


O callback correto é onAdvance(cid, skill, oldLevel, newLevel)
Segundo:
getLevel(cid) == 8
Isso aqui vai dar erro porque em 0.4 não existe getLevel... mas não precisa usar função pra pegar o level, vc tá avançando e um dos parametros é o level novo.

Fica assim:
local pos = {x=100, y=100, z=7}
local msg = "Parabéns! Você alcançou o level 8. Fale com o NPC para prosseguir sua caminhada"  --vc pode editar essa mensagem, só precisa deixar ela dentro das aspas duplas!
local stor = 27182

function onAdvance(cid, skill, oldLevel, newLevel)
    if (newLevel == 8 and skill == SKILL__LEVEL and oldLevel < newLevel) and getPlayerStorageValue(cid, stor) < 1 then
		doTeleportThing(cid, pos)
		doPlayerSendTextMessage(cid, 18, msg)
		setPlayerStorageValue(cid, stor, 1)
    end
return true
end 

Essa segunda checagem é pra garantir que o player não morra em main, upe e seja enviado novamente pra posição do oracle (por ex);
As primeiras são pra garantir integridade -> tem que ser nv 8, tem q ser a skill level (onAdvance serve pra todas as skills) e o nível anterior tem que ser menor que o novo (tem casos em q morrer ativa o callback onAdvance, n sei pq e só acontece em algumas sources)

 

I9AtE9T.png
/NW

Danihcv

I'm Coordenador, Bitch!
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 08/04/15Posts: 926Gênero: Masculino

@@Night Wolf, só li verdades verdadeiras. Ainda to desenferrujando... Quase um ano sem mexer nessas desgraça. :p

Te ajudei?? REP+ e ficamos quites... happyy.png

Atenciosamente,
                    Danihcv.
                           Abraços!

Night Wolf

Coordenador de Desenvolvimento
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 14/02/14Posts: 341Gênero: MasculinoChar no Tibia: Night Wolf

relaxa amigão, faz sem medo de errar que eu te corrijo qlqer coisa.. você ainda é o mais eficiente aqui desse site :lolz:

I9AtE9T.png
/NW

luccagomes

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 10/06/13Posts: 62

Muito obrigado aos dois!

Danihcv

I'm Coordenador, Bitch!
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 08/04/15Posts: 926Gênero: Masculino

Tópico movido para dúvidas / pedidos resolvidos.

Te ajudei?? REP+ e ficamos quites... happyy.png

Atenciosamente,
                    Danihcv.
                           Abraços!