Ir para conteúdo
  • 0

Npc Que Dá Vocations


DenerAlc98

Pergunta

Bom , eu tenho um NPC aqui que ele dá a vocation , mais tem 2 bugs neles, se vocês puderem arrumar pra min ficaria grato. Então.

Quando eu falo com o npc eu devo falar hi

NPC:Olá , você gostária de virar a nova vocation?

Eu:Yes

NPC:Você precisaria ter um "x" item e tanto de dinheiro , gostária mesmo ?

Eu:Sim!

ai eu virava a vocation! vou passar pra vocÊs meu NPC!

 

 

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)

local position = getPlayerPosition(cid)

 

if(not npcHandler:isFocused(cid)) then

return false

end

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

 

if msgcontains(msg, 'yes') then

local preco = 2500000 -----Coloca aki o preço que ira custar

local newlevel = 8

if(doPlayerRemoveMoney(cid, preco) == TRUE) then

doPlayerSetVocation(cid, getPlayerVocation(cid) +2)

doPlayerRemoveMoney(cid, preco)

 

db.executeQuery("UPDATE `players` SET `level`="..newlevel..",`experience`="..newexp.." WHERE `players`.`id`= ".. playerid .."")

doRemoveCreature(cid)

return true

end

else

selfSay('Você quer a nova vocation?', cid)

end

return true

end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

 

Nesse script ele só tá pedindo o dinheiro e não o "x" item , queria uma ajuda pra que ele pedisse o tal item e nao só o dinheiro

 

Acho que fui claro , vlw por enquanto.

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

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)

local position = getPlayerPosition(cid)

 

if(not npcHandler:isFocused(cid)) then

return false

end

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

 

if msgcontains(msg, 'yes') then

local preco = 2500000 -----Coloca aki o preço que ira custar

local newlevel = 8

local item = 2160 -- id do item

if(doPlayerRemoveMoney(cid, preco) == TRUE) then

doPlayerSetVocation(cid, getPlayerVocation(cid) +2)

doPlayerRemoveMoney(cid, preco)

doPlayerRemoveIten(cid, item, 1)

 

db.executeQuery("UPDATE `players` SET `level`="..newlevel..",`experience`="..newexp.." WHERE `players`.`id`= ".. playerid .."")

doRemoveCreature(cid)

return true

end

else

selfSay('Você quer a nova vocation?', cid)

end

return true

end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

Coloque o script em spoiler ae. :x

 

Reportado para moverem.

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

  • 0

usa esse

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)
local position = getPlayerPosition(cid)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
if msgcontains(msg, 'yes') then
local preco = 2500000 -----Coloca aki o preço que ira custar
local newlevel = 8
local item = 2160 -- id do item
if(doPlayerRemoveMoney(cid, preco) == TRUE) then
doPlayerSetVocation(cid, getPlayerVocation(cid) +2)
doPlayerRemoveMoney(cid, preco)
doPlayerRemoveItem (cid, item, 1)
db.executeQuery("UPDATE `players` SET `level`="..newlevel..",`experience`="..newexp.." WHERE `players`.`id`= ".. playerid .."")
doRemoveCreature(cid)
return true
end
else
selfSay('Você quer a nova vocation?', cid)
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

troca o id local item = 2160 -- id do item

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

  • 0

Ambos scripts tão errados.

 

 

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)

 

local position = getPlayerPosition(cid)

if(not npcHandler:isFocused(cid)) then

return false

end

 

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

 

if msgcontains(msg, 'yes') then

local preco = 2500000 -- Preço

local newlevel = 8

local item = 2160 -- ID do item

local count = 1 -- Quantia do item

local pid = getPlayerGUID(cid)

 

if doPlayerRemoveMoney(cid, preco) and doPlayerRemoveItem(cid, item, count) then

doPlayerSetVocation(cid, getPlayerVocation(cid) +2)

db.executeQuery("UPDATE `players` SET `level` = "..newlevel.." WHERE `players`.`id` = "..pid)

doRemoveCreature(cid)

else

selfSay("Você não possui o dinheiro ou o item necessário.", cid)

talkState[talkUser] = 0

end

else

selfSay('Você quer a nova vocation?', cid)

end

return true

end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

 

Tá ai o correto.

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

  • 0

Esse tá correto sim , mais ainda quero mais uma coisa que não mencionei em cima! o NPC está virando Druid para Knight e assim por diante. mais como no script ele tá dando +2 vocations , queria que ele desse a nova vocation só pra quem é Elder Druid , Master Sorcerer , Elite Knight e Royal Paladin , e não dar a voc pra quem é knight , sorc , druid e pala.Se algum pala kina sorc ou druid for lá nesse NPC , o npc falar pra ele que o player precisa ter Promotion pra virar a nova vocation.

Link para o comentário
Compartilhar em outros sites

  • 0

Tá ai:

 

 

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)

 

local position = getPlayerPosition(cid)

if(not npcHandler:isFocused(cid)) then

return false

end

 

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

 

if msgcontains(msg, 'yes') then

local preco = 2500000 -- Preço

local newlevel = 8

local item = 2160 -- ID do item

local count = 1 -- Quantia do item

local pid = getPlayerGUID(cid)

local vocs = {"Elder Druid", "Elite Knight", "Master Sorcerer", "Royal Paladin"} -- Vocations

 

if not isInArray(vocs, getPlayerVocationName(cid)) then

selfSay("Você precisa ter promotion para isso.", cid)

talkState[talkUser] = 0

end

 

if doPlayerRemoveMoney(cid, preco) and doPlayerRemoveItem(cid, item, count) then

doPlayerSetVocation(cid, getPlayerVocation(cid) +2)

db.executeQuery("UPDATE `players` SET `level` = "..newlevel.." WHERE `players`.`id` = "..pid)

doRemoveCreature(cid)

else

selfSay("Você não possui o dinheiro ou o item necessário.", cid)

talkState[talkUser] = 0

end

else

selfSay('Você quer a nova vocation?', cid)

end

return true

end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

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

  • 0

Cara,eu to com promotion tudo e pá , ai quando eu vo pega a nova promotion , ele pega minha grana , o item mais não da a nova vocation..

 

E tipo , vamos supor que eu to Elder Druid , eu falo com o npc , ele me da Elite Knight!

Link para o comentário
Compartilhar em outros sites

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