Ir para conteúdo
  • Cadastre-se

(Resolvido)NPC scripter


Ir para solução Resolvido por KotZletY,

Posts Recomendados

Galera tô precisando de um npc, que teleporte player por vocação, exemplo, medico ele teleporta o medico pra x posição que no caso e o templo, ladrão ele teleporta pra outra vocação que no caso é o templo, e policial, do mesmo jeito. se alguém puder ajuda agradeço.

Link para o post
Compartilhar em outros sites

@StormsHard explica melhor, cada vocação será teleportado para uma pós, tem vocações que irão para a mesma pos ? 

O cara fala hi, o npc responde, ele fala sim, e é teleportado ?

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites
53 minutos atrás, KotZletY disse:

@StormsHard explica melhor, cada vocação será teleportado para uma pós, tem vocações que irão para a mesma pos ? 

O cara fala hi, o npc responde, ele fala sim, e é teleportado ?

Meu amigo tá bem explicado, mais vou explicar denovo, é um npc, que teleporta player com vocação, mais como assim ? exemplo: eu sou medico ai falo com esse npc, ele me teleporta pro templo de medico e quando eu morrer vou nascer lá no templo de medico. outro exemplo: sou ladrão esse npc me teleporta pro templo do ladrão, se eu morrer e for ladrão vou nascer no templo do ladrão ou seja, um npc de vocação.... e sim, cada player com diferente voc, será teleportado pro seu templo, player fala hi, npc fala você quer ser teleportado pro seu DP, player yes.. e pronto.

Editado por StormsHard (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
Agora, KotZletY disse:

@StormsHard a parte de morrer e nascer em tal templo, não é com o npc.

Ok, mais poderia ajudar só na parte do teleporte e tals ?

Link para o post
Compartilhar em outros sites

@StormsHard sim, farei ambos, é algo simples tanto a parte da morte, quanto o npc!! 

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites
Em 2017-6-1 ás 21:50, KotZletY disse:

@StormsHard sim, farei ambos, é algo simples tanto a parte da morte, quanto o npc!! 

Ok, fico aguardando obrigado.

@KotZletY só pra ver se tu não esqueceu kk

Editado por StormsHard (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Solução

@StormsHard hahahahaha, tava dormindo, cansado pra k4r4lh@. Huahsuas

data/npc e cria um arquivo com o nome que quiser extensão xml, dentro coloca:

Spoiler

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Manjo dos Teleporte" script="posvoc.lua" walkinterval="0" floorchange="0">
	<health now="100" max="100"/>
	<look type="676"/>
    <parameters>
		<parameter key="message_greet" value="Oi |PLAYERNAME|, gostaria de viajar agora ?"/>
    </parameters>
	</npc>

 

 

data/npc/scripts e cria um arquivo chamado posvoc.lua e dentro adicione:

Spoiler

local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)


function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end


local storage = 123411 -- storage para não teleporta novamente.
local posVoc = {
--[id da voc] = {pos da voc}
[0] = {x=0000, y=0000, z=0},
[0] = {x=0000, y=0000, z=0},
[0] = {x=0000, y=0000, z=0},
[0] = {x=0000, y=0000, z=0},
[0] = {x=0000, y=0000, z=0},
}

function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
 return false
end


if isInArray({"sim", "yes"}, msg) then
if getPlayerStorageValue(cid, storage) < 1 then 
selfSay('Boa sorte!!', cid)
setPlayerStorageValue(cid, storage, 1)
doTeleportThing(cid, posVoc[getPlayerVocation(cid)], false)	
else
selfSay('Você não pode teleporta novamente!', cid)
end
end
return TRUE
end


npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new()) 

 

 

Configure o id da vocação e onde ele vai ser teleportado.

 

Agora em data/creaturescripts/scripts crie um arquivo chamado posvoc.lua e dentro adicione:

Spoiler

function onDeath(cid, corpse)
if isPlayer(cid) then
setPlayerStorageValue(cid, 99222036, 1)
end
return true
end



function onLogin(cid)

local posVoc = {
--[id da voc] = {pos da voc}
[0] = {x=0000, y=0000, z=0},
[0] = {x=0000, y=0000, z=0},
[0] = {x=0000, y=0000, z=0},
[0] = {x=0000, y=0000, z=0},
[0] = {x=0000, y=0000, z=0},
}

if getPlayerStorageValue(cid, 99222036) == 1 then
 if posVoc[getPlayerVocation(cid)] then
  doTeleportThing(cid, posVoc[getPlayerVocation(cid)], false)	
  setPlayerStorageValue(cid, 99222036, 0)    
 end  
end
	registerCreatureEvent(cid, "PosVocs")
	return true
end

 

 

na xml do creature script, adicione as seguintes tags:

<event type="death" name="PosVocs" event="script" value="posvoc.lua"/>
<event type="login" name="PosVocs" event="script" value="posvoc.lua"/>

 

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites
3 minutos atrás, KotZletY disse:

@StormsHard hahahahaha, tava dormindo, cansado pra k4r4lh@. Huahsuas

data/npc e cria um arquivo com o nome que quiser extensão xml, dentro coloca:

  Ocultar conteúdo


<?xml version="1.0" encoding="UTF-8"?>
<npc name="Manjo dos Teleporte" script="posvoc.lua" walkinterval="0" floorchange="0">
	<health now="100" max="100"/>
	<look type="676"/>
    <parameters>
		<parameter key="message_greet" value="Oi |PLAYERNAME|, gostaria de viajar agora ?"/>
    </parameters>
	</npc>

 

 

data/npc/scripts e cria um arquivo chamado posvoc.lua e dentro adicione:

  Mostrar conteúdo oculto


local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)


function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end


local posVoc = {
--[id da voc] = {pos da voc}
[0] = {x=0000, y=0000, z=0},
[0] = {x=0000, y=0000, z=0},
[0] = {x=0000, y=0000, z=0},
[0] = {x=0000, y=0000, z=0},
[0] = {x=0000, y=0000, z=0},
}

function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
 return false
end

if isInArray({"sim", "yes"}, msg) then
selfSay('Boa sorte!!', cid)
doTeleportThing(cid, posVoc[getPlayerVocation(cid)], false)	
end
return TRUE
end


npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new()) 

 

 

Configure o id da vocação e onde ele vai ser teleportado.

 

Agora em data/creaturescripts/scripts crie um arquivo chamado posvoc.lua e dentro adicione:

  Mostrar conteúdo oculto


function onDeath(cid, corpse)
if isPlayer(cid) then
setPlayerStorageValue(cid, 99222036, 1)
end
return true
end



function onLogin(cid)

local posVoc = {
--[id da voc] = {pos da voc}
[0] = {x=0000, y=0000, z=0},
[0] = {x=0000, y=0000, z=0},
[0] = {x=0000, y=0000, z=0},
[0] = {x=0000, y=0000, z=0},
[0] = {x=0000, y=0000, z=0},
}

if getPlayerStorageValue(cid, 99222036) == 1 then
 if posVoc[getPlayerVocation(cid)] then
  doTeleportThing(cid, posVoc[getPlayerVocation(cid)], false)	
 end  
end
	registerCreatureEvent(cid, "PosVocs")
	return true
end

 

 

na xml do creature script, adicione as seguintes tags:


<event type="death" name="PosVocs" event="script" value="posvoc.lua"/>
<event type="login" name="PosVocs" event="script" value="posvoc.lua"/>

 

Ok, vou colocando aqui já, mais já vou deixando rep + porque sei que tu é foda.

já tá configurando pra quando morrer nascer no templo certo cada voc ?

Editado por StormsHard (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

@StormsHard contém duas, tabelas, acho que por ser algo simples, não precisava colocar de forma global. Huashuas.

 

Configure o NPC, pra quando o player falar com ele, o medico vai pra tal pos, fulano vai pra outra pos, ciclano vai pra outra pos e etc...

 

Na tabela do creaturescript faça a mesma coisa, o caso, são a mesma configuração, [0] = {x=0000, y=0000, z=0},

 

id da vocação e a pos onde ele vai nascer ao morrer, a parte de morrer ta feita, basta configurar a voc e a pos que vai nascer cada voc ao morrer! 

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites
Agora, KotZletY disse:

@StormsHard contém duas, tabelas, acho que por ser algo simples, não precisava colocar de forma global. Huashuas.

 

Configure o NPC, pra quando o player falar com ele, o medico vai pra tal pos, fulano vai pra outra pos, ciclano vai pra outra pos e etc...

 

Na tabela do creaturescript faça a mesma coisa, o caso, são a mesma configuração, [0] = {x=0000, y=0000, z=0},

 

id da vocação e a pos onde ele vai nascer ao morrer, a parte de morrer ta feita, basta configurar a voc e a pos que vai nascer cada voc ao morrer! 

Opa meu amigo, valeu, qualquer coisa te falo aqui obrigadão <3

Link para o post
Compartilhar em outros sites

@StormsHard tinha um pequeno erro na parte do login, está tudo ok agora, foi somente seta a storage em 0 apos nascer, caso contrario se ele deslogar e logar novamente, iria nascer na mesma pos. Kkk

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites
1 hora atrás, KotZletY disse:

@StormsHard tinha um pequeno erro na parte do login, está tudo ok agora, foi somente seta a storage em 0 apos nascer, caso contrario se ele deslogar e logar novamente, iria nascer na mesma pos. Kkk

Ah sim ok, obrigado kkk, tô fazendo umas coisas aqui mais já vou testar, mano tava pensando aqui, será que teria como fazer cada player, dessas voc ter os equipamentos diferentes?, sei que n falei antes, mais veio na cabeça agora kk. exemplo: tipo o policial com uma armor diferente, médico diferente e tals. @KotZletY mano tá com um problema, teria como por pra cada player falar com ele só uma vez ? porque se não ele vai ser usado de teleporte kjk

Editado por StormsHard (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

@StormsHard

18 horas atrás, StormsHard disse:

tipo o policial com uma armor diferente, médico diferente e tals

Movements, cria o item, e na movements.xml coloque aquele item para ser usado somente pela/s vocação/ões que você quer! 

 

18 horas atrás, StormsHard disse:

mano tá com um problema, teria como por pra cada player falar com ele só uma vez ? porque se não ele vai ser usado de teleporte kjk

Como assim ? Achei que não é preciso pois pela lógica, todos nascem em uma ilha e quando é teleportado para sua cidade, não tem como voltar para essa ilha, então você só falava com NPC uma vez. 

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites
2 horas atrás, KotZletY disse:

@StormsHard

Movements, cria o item, e na movements.xml coloque aquele item para ser usado somente pela/s vocação/ões que você quer! 

 

Como assim ? Achei que não é preciso pois pela lógica, todos nascem em uma ilha e quando é teleportado para sua cidade, não tem como voltar para essa ilha, então você só falava com NPC uma vez. 

Mais a ilha, do meu servidor é uma cidade ou sejaaa dar pra voltar pra ela sim kk.

Link para o post
Compartilhar em outros sites

@StormsHard editei o script do npc, agora só teleporta 1x!!

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites
Agora, KotZletY disse:

@StormsHard editei o script do npc, agora só teleporta 1x!!

Obrigado dlç <3, + 1 rep.

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo