[Resolvido] npc não da storage

nbb147
Por nbb147
em Resolvidos

nbb147

My sweet sadness, my favorite feeling. ♪♫
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 06/04/11Posts: 350Char no Tibia: Mulekepirado

Galera, eu modifiquei um npc em busca de fazer com que ele receba uma quantidade de um item especifico e em seguida dê uma storage ao player, porém, por mais que o jogador tenha os itens na bolsa, ele não os recebe e não da a storage ao player, alguem saberia como arrumar isso? Observação, não da nenhum erro na distro, script:

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


function addStorage(cid, message, keywords, parameters, node)

if(not npcHandler:isFocused(cid)) then

return false

end

if getPlayerItemCount(cid, 5897) >= 10 then -- 10 wolf paws

return true,npcHandler:say('Desculpe, mas voce nao trouxe as 10 rat paws.', cid)

elseif not doPlayerRemoveItem(cid, 5897, 10) then

return true,npcHandler:say('Voce precisa me trazer 10 rat paws.', cid)

end

setPlayerStorageValue(var, storage, 1)

npcHandler:say('Otimo servico, voce tem minha autorizacao.', cid)

npcHandler:resetNpc()

return true

end


keywordHandler:addKeyword({'vengard'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce deseja comprar uma das montarias do Vengard? Ele esta devendo muitos impostos a vila, então, eu o proibi de vender. Ele ainda ira me pagar com dinheiro ou servicos.'})

local node0 = keywordHandler:addKeyword({'servicos'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Se voce fizer alguns servicos para mim, eu te darei a permissao para comprar uma mount. Temos um acordo?'})
node0:addChildKeyword({'yes'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'A cidade esta infestada de ratos, provavelmente eles estão saindo dos esgotos, traga-me 10 rat paws como prova de que voce os matou, e eu te darei a autorizacao.'})
node0:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, ate mais.', reset = true})

local node1 = keywordHandler:addKeyword({'rats'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Você trouxe as 10 rat paws?'})
node1:addChildKeyword({'yes'}, addStorage, {storage = 10105})
node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Entao me traga.', reset = true})

npcHandler:addModule(FocusModule:new())

Qualquer ajuda, agradeço desde já.

 
 

 

Marshmello

Alone ~ [✖‿✖]
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 21/04/16Posts: 831Gênero: Masculino

@nbb147 Dei uma Simplificada nesse script, ficou um pouco bagunçado...

Spoiler

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


local item = 5897 -- item AQui
local storage = xxxxxx  ---storage Aqui
function creatureSayCallback(cid, type, msg)


if msgcontains(msg, 'sim') or msgcontains(msg, 'yes') then

if getPlayerItemCount(cid, item) > 10 then
setPlayerStorageValue(cid, storage, 1)
selfSay('Otimo serviço, você tem minha autorização.', cid)
else
selfSay('Você precisa me trazer 10 rat paws', cid)
end

end

return true

end


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

 

placa1.png.90a184502351cebe72cd7b69751e551d.png

Meu Facebook

INFOS:

Citar

CIDADE: Rio de janeiro

Idade: 22 anos
SOU: {"Scripter(lua)", "WebMaster", "ProgramadorC++"}
 

local config = {
	delrey = getPlayerCarValue(cid, DELREY),
	cigarro = getPlayerCancer(cid, DERBY),
	prostituta = getPlayerAIDS(cid, cracuda),
	tresOitao = getPlayerRevorvi(cid, 38)
}
if(delrey == "Ligado" and cigarro == "Aceso" and prostituta == "No Colo" and tresOitao == "Carregado") then
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Começou o fim de semana. #PAS")
end

 

 

 

nbb147

My sweet sadness, my favorite feeling. ♪♫
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 06/04/11Posts: 350Char no Tibia: Mulekepirado

Funcionou, porém o jogador pode repetir a missão quando quiser, o que não é legal, como eu poderia criar uma condição para que q ele não pudesse repeti-la? Pois tentei através de storages e não consegui.

 
 

 

Marshmello

Alone ~ [✖‿✖]
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 21/04/16Posts: 831Gênero: Masculino

@nbb147 Foi mal eu esqueci disso haha

Spoiler

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


local item = 5897 -- item AQui
local storage = xxxxxx  ---storage Aqui
function creatureSayCallback(cid, type, msg)


if msgcontains(msg, 'sim') or msgcontains(msg, 'yes') then

if getPlayerItemCount(cid, item) > 10 then
setPlayerStorageValue(cid, storage, 1)
selfSay('Otimo serviço, você tem minha autorização.', cid)
elseif getPlayerStorageValue(cid, storage) > 0 then
selfSay('Você já fez minha missão', cid)
else
selfSay('Você precisa me trazer 10 rat paws', cid)
end

end

return true

end


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

 

placa1.png.90a184502351cebe72cd7b69751e551d.png

Meu Facebook

INFOS:

Citar

CIDADE: Rio de janeiro

Idade: 22 anos
SOU: {"Scripter(lua)", "WebMaster", "ProgramadorC++"}
 

local config = {
	delrey = getPlayerCarValue(cid, DELREY),
	cigarro = getPlayerCancer(cid, DERBY),
	prostituta = getPlayerAIDS(cid, cracuda),
	tresOitao = getPlayerRevorvi(cid, 38)
}
if(delrey == "Ligado" and cigarro == "Aceso" and prostituta == "No Colo" and tresOitao == "Carregado") then
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Começou o fim de semana. #PAS")
end

 

 

 

nbb147

My sweet sadness, my favorite feeling. ♪♫
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 06/04/11Posts: 350Char no Tibia: Mulekepirado

amigo, eu coloquei desta forma, mas ele não recebe a storage inicialmente, apenas quando eu saio do personagem e entro novamente, e mesmo estando com a storage ele continua fazendo a missão repetidamente.

 
 

 

Marshmello

Alone ~ [✖‿✖]
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 21/04/16Posts: 831Gênero: Masculino

@nbb147

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


local item = 5897 -- item AQui
local storage = xxxxxx  ---storage Aqui
function creatureSayCallback(cid, type, msg)


if msgcontains(msg, 'sim') or msgcontains(msg, 'yes') then

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

if getPlayerItemCount(cid, item) > 10 then

setPlayerStorageValue(cid, storage, 1)
selfSay('Otimo serviço, você tem minha autorização.', cid)
else
selfSay('Você precisa me trazer 10 rat paws', cid)
end
else
selfSay('Você já fez minha missão', cid)
end
end

return true

end


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

 

placa1.png.90a184502351cebe72cd7b69751e551d.png

Meu Facebook

INFOS:

Citar

CIDADE: Rio de janeiro

Idade: 22 anos
SOU: {"Scripter(lua)", "WebMaster", "ProgramadorC++"}
 

local config = {
	delrey = getPlayerCarValue(cid, DELREY),
	cigarro = getPlayerCancer(cid, DERBY),
	prostituta = getPlayerAIDS(cid, cracuda),
	tresOitao = getPlayerRevorvi(cid, 38)
}
if(delrey == "Ligado" and cigarro == "Aceso" and prostituta == "No Colo" and tresOitao == "Carregado") then
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Começou o fim de semana. #PAS")
end

 

 

 

nbb147

My sweet sadness, my favorite feeling. ♪♫
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 06/04/11Posts: 350Char no Tibia: Mulekepirado

obg, funcionou perfeitamente amigo 

 
 

 

Yan Liima

Scripter,Programador,WebMaster.
avatar
Diretor
Diretor

INFOS

Grupo: DiretorRegistrado: 12/05/12Posts: 818Gênero: MasculinoChar no Tibia: [ADM] Night
A questão neste tópico de suporte foi respondida e/ou o autor do tópico resolveu o problema. Este tópico está fechado e foi movido para Suporte - Resolvidos. Se você tiver outras dúvidas, crie um novo tópico.

════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ═══╗

ALGUNS DOS MEUS TRABALHOS:

Spoiler

WODBOHS[DOWNLOAD]

Newstory dbo+nto+bleach[DOWNLOAD]

 

>> Mais infos <<

- Projetos lançados também feitos por mim {

DBO SKY

POKE SKY

WODBOWARS

Tic-tac-War

Dbo Universe(em desenvolvimento)

}

universe.thumb.png.6840320998d0fc1a4652b3db81a585c0.png

Separador.PNG

Te Ajudei? Rep + e ficamos Quits

imageproxy.png.84dce08dd18d31663a72aa1ce37b858a.png

Precisando de ajuda?

discord.png.1ecd188791d0141f74d99db371a2e0a4.pngDiscord: Yan Liima #3702

Programador Júnior de LUA, PHP e JavaScript

Juntos somos lendas, separados somos Mitos!

╚══════════════════════════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ═════════════════════════════╝