Ir para conteúdo

Npc Quest para PDA - Slicer !


StyloMaldoso

Posts Recomendados

Bom pessoal, com a ajuda do slicer consegui cria meu 2° scripter de quest por npc kk, é bem basíco mais para min ja é um otímo começo não? vamos lá, data/npc/xxx.lua

<?xml version="1.0" encoding="UTF-8"?>

<npc name="xxx" script="xxxxx.lua" walkinterval="0" floorchange="0" access="5" level="1" maglevel="1">
<health now="150" max="150"/>
<look type="1438" head="114" body="119" legs="114" feet="114" corpse="2212"/>

<parameters>
<parameter key="message_greet" value="Olá |PLAYERNAME|, você quer faze a minha quest? digite Help ?"/>
</parameters>
</npc>

 

 

data/npc/script/xxx.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
msg = string.lower(msg)
---------
local configuration = {
add_item = 2154,
remove_item = 2160,
StoAdd = 52312,
}

local pos = {x=1024, y=1025, z=7}

if (msgcontains(msg, 'Help') or msgcontains(msg, 'help')) then  
  if getPlayerStorageValue(cid, configuration.StoAdd) >= 0 then
  selfSay("Desculpe , você ja completou essa quest, soma daqui !!", cid)
  return true
  end
selfSay("Olá.Pareçe que você esta intereçado a completar a missão que irei lhe dar né? se você quizer digite yes ou sim para continuar!", cid)
talkState[talkUser] = 1
return true

elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then
selfSay("hum, você realmente esta intereçado intão vamos lá, eu preciso de 10 hunter dollar para eu lhe recompesar, você deseja continuar,se sim digite finish!?", cid)
talkState[talkUser] = 2

elseif msgcontains(msg, 'finish') and talkState[talkUser] == 2 then
	 if getPlayerItemCount(cid, configuration.remove_item) < 10 then
	 selfSay("Desculpe, mais voce não tem os 10 hunter doller necessario para completa essa quest, volte quando tiver!", cid)
	 talkState[talkUser] = 0
	 return true
	 end
selfSay("muito bom, como prometido você cumpriou oque tinha dito e trouse, isso que é o mais importante toma a recompensa e você sera teleportado pra X lugar!", cid)
talkState[talkUser] = 0
doPlayerAddItem(cid, configuration.add_item, 10)
doPlayerRemoveItem(cid, configuration.remove_item, 1)
setPlayerStorageValue(cid, 52312, 1)
doTeleportThing(cid, pos)
doSendMagicEffect(getThingPos(cid), 29)
	  return true
	  end
return true
end	


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

 

 

Vamos as explicações !

vou posta esse script porque é muuuito facil de se editar mesmo e da pra mudar varias coisas e deicha do jeito que bem quizer. pra edita o item que o player vai ganha so altera aqui..

add_item = 2154,

e aqui.. q sera a quantidade

doPlayerAddItem(cid, configuration.add_item, 10)

Aquele "10" é a quantidade !

 

e tem como tu edita o item que o o npc vai pedi pro player pra pode da a recompensa..

remove_item = 2160,

e edita aqui também que é a vereficação e a quantidade.....

  if getPlayerItemCount(cid, configuration.remove_item) < 10 then
	 selfSay("Desculpe, mais voce não tem os 10 hunter doller necessario para completa essa quest, volte quando tiver!", cid)
	 talkState[talkUser] = 0
	 return true
	 end

Aquele "< 10" ó 10 diz q ele vai verefica se o player estiver com 10 hd na bag.. se n tiver vai apareçe a msg..se tiver ele vai remove e so edita aqui também.

doPlayerRemoveItem(cid, configuration.remove_item, 10)

o 10 também a quantidade que vai remove, vo da uma explicação como o npc funciona.

 

Bom se você tiver os 10 hds e termina a quest ele te da a recompensa te teleporta pra x posição ai voceis editão do jeito que bem quizer, para edita a posição só edita simplismente aqui

local pos = {x=1024, y=1025, z=7}

 

Good luck ae, testei aqui no PDA v1.9 funciono sem poblemas.

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

  • 2 months later...
  • 5 months later...
  • 2 weeks later...
  • 1 month later...
×
×
  • Criar Novo...