Ir para conteúdo

Npc Para Uma Missão


fokus090

Posts Recomendados

Olá XTibianos. Sou novo por aqui e gostaria de fazer um pedido de script que eu estou procurando a Muito tempo. Mas não encontro de maneira nenhuma.

 

----------

Estou com um projeto em andamento baseado no RPG. (coisa que esta sendo esquecida atualmente nos ots.)

Eu preciso de um Script para um NPC.

Parece simples, mas eu quero um script que contenha 3 ou + quests em apenas um unico NPC. E que se deva fazer na seguencia. Podendo fazer apenas a segunda Mission, se tiver completado a Primeira.

 

Gostaria que fizessem um Modelo, contendo 3 Quests no Script. (Para que eu possa editar caso queria mais.)

Use as Actions que quiserem as recompensa que quiserem.

 

Exemplo :.

 

Player :. HI

NPC :. Hello!

Player :. Mission

NPC :. Houve um ataque de Orc's na cidade vizinha. Preciso de informações sobre minha familia que vive por lá. Poderia buscar informações deles?

 

- (Algo simples. Modelo apenas se baseando em uma quest onde tem que se falar com outro NPC para buscar certa Storage para prosseguir com a Segunda Mission!) -

 

Player :. yes

NPC :. Cuidado, e Boa Sorte!

 

- ( Ao falar com o "Tal NPC" e ganha a storage que nescessitava. Volta, reporta o acontecido e prossegue para uma nova missão com o mesmo NPC.) -

 

Aqui esta um Exemplo de um script que encontrei em meu PC.

 

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)

NpcSystem.parseParameters(npcHandler)

local talkState = {}

 

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

 

function creatureSayCallback(cid, type, msg)

if(not npcHandler:isFocused(cid)) then

return false

end

 

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

 

 

if msgcontains(msg, 'inquisitor') then

selfSay('The churches of the gods entrusted me with the enormous and responsible task to lead the inquisition. I leave the field work to inquisitors who I recruit from fitting people that cross my way. If you wanna {join} in the inquisition, ask me why!' ,cid)

talkState[talkUser] = 1

 

elseif talkState[talkUser] == 1 then

if msgcontains(msg, 'join') then

selfSay('Do you want to join the inquisition?', cid)

talkState[talkUser] = 2

 

elseif talkState[talkUser] == 2 then

selfSay('So be it. Now you are a member of the inquisition. You might ask me for a {mission} to raise in my esteem.', cid)

talkState[talkUser] = 3

 

 

end

 

elseif msgcontains(msg, 'mission') then

if getPlayerStorageValue(cid,20000) == 1 then

selfSay('Your mission is simple,You must enter in the retreat and destruct the Shadow Nexus. Then report to me about your mission.', cid)

setPlayerStorageValue(cid,20000,2)

setPlayerStorageValue(cid,15202,1)

elseif getPlayerStorageValue(cid,20000) == 2 then

selfSay('Are you so crazy? You don\'t have finished this mission.', cid)

elseif getPlayerStorageValue(cid,20000) == 3 then

selfSay('Did you destructed the shadow nexus?', cid)

setPlayerStorageValue(cid,20000,4)

elseif getPlayerStorageValue(cid,20000) == 5 then

selfSay('Sorry, no missions yet!', cid)

end

 

elseif msgcontains(msg, 'yes') then

if getPlayerStorageValue(cid,20000) == -1 then

selfSay('So be it. Now you are a member of the inquisition. You might ask me for a {mission} to raise in my esteem.', cid)

setPlayerStorageValue(cid,20000,1)

elseif getPlayerStorageValue(cid,20000) == 4 then

selfSay('Thank you! Now you can get just one reward in the north room.', cid)

doPlayerAddExp(cid,1500000)

setPlayerStorageValue(cid,20000,5)

setPlayerStorageValue(cid,15203,1)

elseif talkState[talkUser] == 5 then

selfSay('Ok, Good Looky. Then report to me about your mission.', cid)

setPlayerStorageValue(cid,15201,4)

end

 

end

 

return true

end

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

Ele so deixa você passar pela porta, quando identifica sua Storage. Se poderem Editar este script e adicionar mais uma missão abaixo desse...

-------------

Por favor, preciso muito de um Script assim para que meu Projeto ande pra Frente! Se poderem me ajudar. Agradeço!

-------------

 

OBS :. Aproveitando este Pedido, será se poderia tambem me ensinar como faço para o NPC falar bastante .. Tipo ..

 

Player :. HI

NPC :. Em que posso ajudar?

Player :. Mission

NPC :. Esta cidade ja esta aqui a muito tempo. Lutando contra tudo e todos por sua sobrevivencia. Alcansamos premios inêditos, em busca de Paz e reconhecimento...

'... Mas atualmente a cidade passa por serios perigos. Monstros terriveis estão a espreita aos arredores da cidade. Estamos praticamente presos...'

'... Mas felizmente fiquei sabendo que bravos guerreiros havia resurgido nas Terras Tibianas. Por favor, ajude-me a eliminar essas criaturas que atormentão esta ilustre cidade!.

 

------------

 

Algo mais ou menos assim. Que ele realmente fale bastante coisas, para que eu possa transcrever e detalhar os acontecimentos em minhas quests.

 

Aqui esta um exemplo que encontrei aqui.

 

elseif(msgcontains(msg, 'Mission') or msgcontains(msg, 'mission')) and getPlayerStorageValue(cid,102502) == 3 then

setPlayerStorageValue(cid, 102502, 4)

setPlayerStorageValue(cid, 102504, -1)

setPlayerStorageValue(cid, 58266, 1)

doPlayerAddOutfit(cid,324,1)

doPlayerAddOutfit(cid,325,1)

local msgs={

"Thanks God that they sent you to us. Because of you we can normally sleep. Let me remunerate you. ...",

"You get possibility to wear our addon to your Yalaharian Outfit. Centraily it looks great at you. ...",

"Futhermore, you can choose one of rewards in room inside castle. As i want to tellin' this, i will repeat one more time. Choose wisely!"

}

doNPCTalkALot(msgs,6500) --if the 2750 is ommited, it uses 3000 always

 

elseif(msgcontains(msg, 'Mission') or msgcontains(msg, 'mission')) and getPlayerStorageValue(cid,102502) == 4 then

selfSay('Azerus understood that he do not have any chances to control Evil. I am glad that You have helped him understood.', cid)

 

Não consegui entender nem editar de maneira nenhuma. Help-me Plx!

 

Bom Galerinha .. è apenas isso !

Ajudem aew Por Favor!

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

  • 3 weeks later...
  • 3 weeks later...

Sou novo aqui.

 

Amigo eu acho que isso deve servir pra algo. ;p

 

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

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

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

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

if(msgcontains(msg, 'missoes')) then
selfSay('Hmm, eu tenho tres missões para voce a {primeira missao} é muito simples !', cid)
end
---------------------------------------------------------
if(msgcontains(msg, 'primeira missao')) then
selfSay('Bom eu preciso de grana fale {grana} !', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'grana') and talkState[talkUser] == 1) then
if (getPlayerStorageValue(cid,100) > 0) then
selfSay('Infelizmente você ja fez esta missao. Mais siga para a {segunda missao} !', cid)
else
if(doPlayerRemoveItem(cid, 2160, 8) == TRUE) then
setPlayerStorageValue(cid,100,1)
doPlayerAddExperience(cid,11000)
selfSay('Hmm, vejo que você conseguiu, mais isto é apenas o começo de tudo! Siga para a {segunda missao}.. (Você acaba de ganhar {11.000 de experiencia} por terminar a sua primeira missao !)', cid)
else
selfSay('Você não tem os itens certos !', cid)
end
end
return true
end
---------------------------------------------------------
if(msgcontains(msg, 'segunda missao')) then
selfSay('Bom eu preciso de uma Giant Sword,fale {gs} !', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'gs') and talkState[talkUser] == 1) then
if (getPlayerStorageValue(cid,101) > 0) then
selfSay('Infelizmente você ja fez esta missao. Mais siga para a {terceira missao} !', cid)
else
if(doPlayerRemoveItem(cid, 4307, 3) == TRUE) then
setPlayerStorageValue(cid,101,1)
doPlayerAddExperience(cid,30000)
selfSay('Hmm, vejo que você conseguiu, mais me ajude na terceira por favor. ! Siga para a {terceira missao}.. (Você acaba de ganhar {30.000 de experiencia} por terminar a sua segunda missao !)', cid)
else
selfSay('Você não tem os itens certos !', cid)
end
end
return true
end
---------------------------------------------------------
if(msgcontains(msg, 'terceira missao')) then
selfSay('Bom a ultima missão não é muito dificil,apenas pegue uma golden legs,fale {goldenlegs} !', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'goldenlegs') and talkState[talkUser] == 1) then
if (getPlayerStorageValue(cid,102) > 0) then
selfSay('Infelizmente esta era a ultima missao e você ja fez!', cid)
else
if(doPlayerRemoveItem(cid, 5791, 1) == TRUE) then
setPlayerStorageValue(cid,102,1)
doPlayerAddExperience(cid,135000)
selfSay('Hmm, muito obrigado!... (Você acaba de ganhar {135.000 de experiencia} por terminar a sua última missao !)', cid)
else
selfSay('Você não tem os itens certos', cid)
end
end
return true
end


end

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

 

 

Achei no meu PC.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...