Ir para conteúdo
  • 0

YagoBlind

Pergunta

Olá galerinha do xTibia , eu gostaria de fazer um pedido a vocês , veja se vocês podem me ajudar .

 

~> Como deve ser a script ?

Eu gostaria de um NPC , que ele da para o player 3 missões , nível 1 , nível 2 , e nível 3 . Para fazer a nível 2 é preciso ter feito a nível 1 e para fazer a nível 3 é preciso ter feito os níveis 1 e 2.

Em troca das missões realizadas pelo player o NPC vai dar uma premiação para cada missão.

Nível 1 -> O player tem que levar um item para o NPC e em troca o NPC vai dar 10kk

Nível 2 -> O player vai ganhar 300000 de EXP

Nível 3 -> O player vai ganhar 1 medal

OBS: Eu gostaria de configurar a 3° missão a meu gosto por causa da id da medal .

 

Caso você me ajude darei REP++

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Npc.xml:

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Quester" script="data/npc/scripts/quester.lua" walkinterval="2000" speed="0" floorchange="0">
<health now="100" max="100"/>
<look type="10" head="19" body="113" legs="95" feet="115" addons="0"/>
 <parameters>
   <parameter key="message_greet" value="Ola guerreiro, por favor, tenho algumas {missoes}." />
 </parameters>
</npc>

 

npc/scripts/quester.lua:

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('Ok, Para começar vamos fazer a {primeira missao}?', cid)
end
---------------------------------------------------------
if(msgcontains(msg, 'primeira missao')) then
selfSay('Mate alguns orcs e me traga 1 {club}', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'club') and talkState[talkUser] == 1) then
if (getPlayerStorageValue(cid,111) > 0) then
selfSay('Voce ja terminou essa missao.', cid)
else
if(doPlayerRemoveItem(cid, 2382, 1) == TRUE) then
setPlayerStorageValue(cid,111,1)
doPlayerAddItem(cid,2160,1000000)
selfSay('Obrigado! Se quiser ja podes fazer a {segunda missao}..', cid)
else
selfSay('Voce não tens os 1 club para me dar..', cid)
end
end
return true
end
---------------------------------------------------------
if(msgcontains(msg, 'segunda missao')) then
selfSay('Mate uns Orcs e me de 1 battle {axe}', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'axe') and talkState[talkUser] == 1) then
if (getPlayerStorageValue(cid,112) > 0) then
selfSay('Voce ja acabou essa missao.', cid)
else
if(doPlayerRemoveItem(cid, 2378, 1) == TRUE) then
setPlayerStorageValue(cid,112,1)
doPlayerAddExperience(cid,300000)
selfSay('Obrigado! Se quiser ja podes fazer a {terceira missao}..', cid)
else
selfSay('Voce não tens 1 battle axe para me dar..', cid)
end
end
return true
end
---------------------------------------------------------
if(msgcontains(msg, 'terceira missao')) then
selfSay('Mate alguns Orcs e me de 1 chain {armor} .', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'armor') and talkState[talkUser] == 1) then
if (getPlayerStorageValue(cid,113) > 0) then
selfSay('Você ja terminou essa missão e ainda não tenho uma quarta missão para lhe dar.', cid)
else
if(doPlayerRemoveItem(cid, 2464, 1) == TRUE) then
setPlayerStorageValue(cid,113,1)
doPlayerAddItem(cid,10136,1)
selfSay('Obrigado! Voce ja terminou as minhas 3 missões.)', cid)
else
selfSay('Voce não pegou o Chain armor ainda', cid)
end
end
return true
end


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

 

Para configurar apenas troque os ID dos items e quantidade, nada de mais, xD

 

Para fazer novas missões apenas acrescente essa parte a baixo da 3 missao:

---------------------------------------------------------
if(msgcontains(msg, 'quarta missao')) then
selfSay('Mate alguns Orcs e me de 2 {chain armor} .', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'chain armor') and talkState[talkUser] == 1) then
if (getPlayerStorageValue(cid,114) > 0) then
selfSay('Você ja terminou essa missão e ainda não tenho uma quarta missão para lhe dar.', cid)
else
if(doPlayerRemoveItem(cid, 2464, 2) == TRUE) then
setPlayerStorageValue(cid,114,1)
doPlayerAddItem(cid,10136,1)
selfSay('Obrigado! Voce ja terminou as minhas 3 missões.)', cid)
else
selfSay('Voce não pegou os 2 Chain armor ainda', cid)
end
end
return true
end

Nunca esquecendo tambem de trocar as storages dadas quando terminar a missão.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...