Ir para conteúdo
  • 0

Colocar para esse npc aceitar storage


Allangod

Pergunta

Eu tenho um npc que só teleporta os players que tiverem a storage 2124, 1.

Gostaria de saber se tem como colocar pra ele aceitar alem da storage 2124,1 aceitar tambem a storage 2124,2 e a 2124,3.

Ta ae o 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 pos = {x=1039, y=1072, z=7} -- Local da hunt

local posreturn = {x=1039, y=1072, z=7} -- Posiçao onde o player sera teleportado quando acabar o tempo

local money = 10000 --- Quanto de dinheiro sera removido

 

config = {

time = 1, ---Tempo que ele vai ficar na hunt sabendo que cada numeral equivale a um minuto-----

str = 2124, --- Storage que ele necessita

msg = "Você não é um ninja rank C" --- Mensagem que irá aparecer se ele não tiver a storage

}

function doReturnPos()

doTeleportThing(cid, posreturn)

setGlobalStorageValue(24688, 0)

setGlobalStorageValue(24686, none)

setPlayerStorageValue(cid, 28680, 0)

end

if(not npcHandler:isFocused(cid)) then

return false

end

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

if msgcontains(msg, 'chuunin') then

if getPlayerStorageValue(cid, config.str) ~= 1 then

doPlayerSendTextMessage(cid,22, config.msg)

return true

end

if getGlobalStorageValue(24688) == 1 then

doPlayerSendTextMessage(cid,22,"O player "..getGlobalStorageValue(24686).." esta fazendo o teste")

return true

end

if not doPlayerRemoveMoney(cid, money) then

doPlayerSendTextMessage(cid,22,""..getPlayerName(cid).." precisa de "..money.." para fazer o chuunin teste")

return true

end

doPlayerRemoveMoney(cid, money)

doPlayerSendTextMessage(cid,22,"Obrigado "..getPlayerName(cid).." foi teleportado.")

doTeleportThing(cid, pos)

setGlobalStorageValue(24688, 1)

setGlobalStorageValue(24686, getPlayerName(cid))

setPlayerStorageValue(cid, 28680, 1)

addEvent(doReturnPos, config.time*60*1000)

else

selfSay('Diga chuunin', cid)

end

return true

end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

Vlws

 

Obs: Ja tentei colocar "if getPlayerStorageValue(cid, config.str) >= 1 then"

Mas mesmo assim nao funcionou

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Tente assim e poste resultados:

 

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 pos = {x=1039, y=1072, z=7} -- Local da hunt
local posreturn = {x=1039, y=1072, z=7} -- Posiçao onde o player sera teleportado quando acabar o tempo
local money = 10000 --- Quanto de dinheiro sera removido

config = {
time = 1, ---Tempo que ele vai ficar na hunt sabendo que cada numeral equivale a um minuto-----
str = 2124, --- Storage que ele necessita
msg = "Você não é um ninja rank C" --- Mensagem que irá aparecer se ele não tiver a storage
}
function doReturnPos()
doTeleportThing(cid, posreturn)
setGlobalStorageValue(24688, 0)
setGlobalStorageValue(24686, none)
setPlayerStorageValue(cid, 28680, 0)
end
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
if msgcontains(msg, 'chuunin') then
if getPlayerStorageValue(cid, config.str) >= 1 then
doPlayerSendTextMessage(cid,22, config.msg)
return true
end
if getGlobalStorageValue(24688) == 1 then
doPlayerSendTextMessage(cid,22,"O player "..getGlobalStorageValue(24686).." esta fazendo o teste")
return true
end
if not doPlayerRemoveMoney(cid, money) then
doPlayerSendTextMessage(cid,22,""..getPlayerName(cid).." precisa de "..money.." para fazer o chuunin teste")
return true
end
doPlayerRemoveMoney(cid, money)
doPlayerSendTextMessage(cid,22,"Obrigado "..getPlayerName(cid).." foi teleportado.")
doTeleportThing(cid, pos)
setGlobalStorageValue(24688, 1)
setGlobalStorageValue(24686, getPlayerName(cid))
setPlayerStorageValue(cid, 28680, 1)
addEvent(doReturnPos, config.time*60*1000)
else
selfSay('Diga chuunin', cid)
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

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

  • 0

Nao da nem pra falar com o npc.

E da esse erro no console.

 

 

[18/12/2012 14:58:04] [Error - Npc interface]

[18/12/2012 14:58:04] (Unknown script file)

[18/12/2012 14:58:04] Description:

[18/12/2012 14:58:04] attempt to call a nil value

[18/12/2012 14:58:04] stack traceback:

Link para o comentário
Compartilhar em outros sites

  • 0

Tente do jeito que eu editei lá em cima agora, agora que percebi está assim:

 

if getPlayerStorageValue(cid, config.str) ~= 1 then

Se a storage 2124 tiver valor diferente de 1... (~=) isso é diferente, e 2 e 3 é diferente de 1 correto? Então automaticamente já está aceitando as storages 2124,2 e 2124,3!

Link para o comentário
Compartilhar em outros sites

  • 0

Tente do jeito que eu editei lá em cima agora, agora que percebi está assim:

 

if getPlayerStorageValue(cid, config.str) ~= 1 then

Se a storage 2124 tiver valor diferente de 1... (~=) isso é diferente, e 2 e 3 é diferente de 1 correto? Então automaticamente já está aceitando as storages 2124,2 e 2124,3!

 

Mesmo assim nao deu amigo ;S

Fala que eu nao sou rank c (Nao tenho a storage)

Link para o comentário
Compartilhar em outros sites

  • 0

Quem te passou esse script?Está certo. No script diz: Se tiver a storage 2124 de valor 1 ou maior. Então envie a mensagem que não tem rank C...

 

Na verdade fala que se tiver a storage 2124 ele será teleportado.

Eu ja tentei colocar >= 1 (maior ou igual a 1) mas mesmo assim não foi.

Link para o comentário
Compartilhar em outros sites

  • 0

Tenta ae !!

 

 

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 pos = {x=1039, y=1072, z=7} -- Local da hunt

local posreturn = {x=1039, y=1072, z=7} -- Posiçao onde o player sera teleportado quando acabar o tempo

local money = 10000 --- Quanto de dinheiro sera removido

config = {

time = 1, 2, 3 ---Tempo que ele vai ficar na hunt sabendo que cada numeral equivale a um minuto-----

str = 2124, --- Storage que ele necessita

msg = "Você não é um ninja rank C" --- Mensagem que irá aparecer se ele não tiver a storage

}

function doReturnPos()

doTeleportThing(cid, posreturn)

setGlobalStorageValue(24688, 0)

setGlobalStorageValue(24686, none)

setPlayerStorageValue(cid, 28680, 0)

end

if(not npcHandler:isFocused(cid)) then

return false

end

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

if msgcontains(msg, 'chuunin') then

if getPlayerStorageValue(cid, config.str) ~= 1 then

doPlayerSendTextMessage(cid,22, config.msg)

return true

end

if getGlobalStorageValue(24688) == 1 then

doPlayerSendTextMessage(cid,22,"O player "..getGlobalStorageValue(24686).." esta fazendo o teste")

return true

end

if not doPlayerRemoveMoney(cid, money) then

doPlayerSendTextMessage(cid,22,""..getPlayerName(cid).." precisa de "..money.." para fazer o chuunin teste")

return true

end

doPlayerRemoveMoney(cid, money)

doPlayerSendTextMessage(cid,22,"Obrigado "..getPlayerName(cid).." foi teleportado.")

doTeleportThing(cid, pos)

setGlobalStorageValue(24688, 1)

setGlobalStorageValue(24686, getPlayerName(cid))

setPlayerStorageValue(cid, 28680, 1)

addEvent(doReturnPos, config.time*60*1000)

else

selfSay('Diga chuunin', cid)

end

return true

end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

Link para o comentário
Compartilhar em outros sites

  • 0

A storage 2124 foi feita para saber se o player fez a missão anterior que quando vc termina ela, vc ganha a storage 2124. Quando o player faz essa missão, ele ganha a storage 2124,1 e como vc ja viu, para começar o test vc precisa da missão 2124,1. Caso o player faça a proxima missão antes de fazer o teste (ou seja, ele ganha a storage 2124,2 e perde a storage 2124,1) ele nao iria conseguir fazer o teste ja que perdeu a storage 2124,1. Por isso eu queria que o npc aceitasse a storage 2124,1 2124,2 2124,3 e assim vai.

 

Nao pego flavio :/

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

×
×
  • Criar Novo...