Script De Quest Mal Acabado

miroking
em Lixeira Pública

miroking

Devil Minion - Elysia
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 07/11/07Posts: 13Char no Tibia: Devil Minion

Opa eu pedi um script pra um cara e ele o fez, até certo ponto estava perfeito, o script consiste de um npc que você falara com ele, se voce tiver 1kk ele tira 1kk de voce e te da um item.

 

porem se voce tiver 10kk e quiser 10 itens iguais basta voce falar 10 vezes com o npc, eu queria pedir se algum de voces poderiam terminar o script para mim fazendo com que voce só possa pegar esse item 1 vez, após isso se voce tentar novamente nada acontece e ele fala "Humano ganancioso, saia daqui"

 

acho que é até facil fazer isso mas eu sou uma besta para scripts kkkk, creio que seja adicionando um StorageValue

 

aqui está o script

 

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 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, 'QUEST') then
               selfSay('hmm... vejo que sabe sobre nós, aqui esta esse item por 1kk, diga yes se o quiser')
               talkState[talkUser] = 1
       elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then
               local price = 1000000
               if getPlayerItemCount(cid, 2160) >= 100 and getPlayerMoney(cid) >= price then
                       if doPlayerRemoveMoney(cid, price) then
                               selfSay('aqui esta esse item por 1kk', cid)
                               doPlayerRemoveItem(cid, 2160, 100)
                               doPlayerAddItem(cid, 2407, 1)
                               talkState[talkUser] = 0
                       end
               else
                       selfSay('mas oque é isso, estou pedindo uma quantidade tao baixa, nada feito', cid)
                       talkState[talkUser] = 0
               end
       elseif msgcontains(msg, 'no') and (talkState[talkUser] >= 1 and talkState[talkUser] <= 3) then
               selfSay('ok até mais', cid)
               talkState[talkUser] = 0
       end
       return true
end

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

Devil%20Minion.png

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino
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 creatureSayCallback(cid, type, msg) 

       if(not npcHandler:isFocused(cid)) then 
               return false 
       end 
       local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid 


local price = 1000000 
local storage = 95745

       if msgcontains(msg, 'QUEST') then 
       selfSay('hmm... vejo que sabe sobre nós, aqui esta esse item por 1kk, diga yes se o quiser') 
       talkState[talkUser] = 1 
       elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then
                               if getPlayerStorageValue(cid, storage) <= 0 then 
                               if doPlayerRemoveMoney(cid, price) == TRUE then
                               selfSay('aqui esta esse item por 1kk', cid)
                               doPlayerAddItem(cid, 2407, 1)
                               setPlayerStorageValue(cid, storage, 1) 
                               talkState[talkUser] = 0
               else 
                       selfSay('mas oque é isso, estou pedindo uma quantidade tao baixa, nada feito', cid) 
                       talkState[talkUser] = 0 
               end
               else 
                       selfSay('Humano ganancioso, saia daqui', cid) 
                       talkState[talkUser] = 0 
               end
       elseif msgcontains(msg, 'no') and talkState[talkUser] >= 1 then 
               selfSay('ok até mais', cid) 
               talkState[talkUser] = 0 
       end 
       return true 
end 

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

bossisg.png

miroking

Devil Minion - Elysia
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 07/11/07Posts: 13Char no Tibia: Devil Minion

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 creatureSayCallback(cid, type, msg) 

       if(not npcHandler:isFocused(cid)) then 
               return false 
       end 
       local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid 


local price = 1000000 
local storage = 95745

       if msgcontains(msg, 'QUEST') then 
       selfSay('hmm... vejo que sabe sobre nós, aqui esta esse item por 1kk, diga yes se o quiser') 
       talkState[talkUser] = 1 
       elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then
                               if getPlayerStorageValue(cid, storage) <= 0 then 
                               if doPlayerRemoveMoney(cid, price) == TRUE then
                               selfSay('aqui esta esse item por 1kk', cid)
                               doPlayerAddItem(cid, 2407, 1)
                               setPlayerStorageValue(cid, storage, 1) 
                               talkState[talkUser] = 0
               else 
                       selfSay('mas oque é isso, estou pedindo uma quantidade tao baixa, nada feito', cid) 
                       talkState[talkUser] = 0 
               end
               else 
                       selfSay('Humano ganancioso, saia daqui', cid) 
                       talkState[talkUser] = 0 
               end
       elseif msgcontains(msg, 'no') and talkState[talkUser] >= 1 then 
               selfSay('ok até mais', cid) 
               talkState[talkUser] = 0 
       end 
       return true 
end 

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

 

nas linhas

if getPlayerStorageValue(cid, storage) <= 0 then

setPlayerStorageValue(cid, storage, 1)

 

eu devo mudar o "storage" pro numero que eu quiser ?

Devil%20Minion.png

Eskylo

boa sorte
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 11/08/10Posts: 477Gênero: Masculino

 

deixa escrito storage ai mesmo, se quiser mudar muda aki

 

[color="#000088"]local[/color] storage [color="#666600"]=[/color] [color="#006666"]95745[/color] 

muda o numero

 

Atenciosamente, Eskylo

 

 

Ironman-icon.png

.

.

miroking

Devil Minion - Elysia
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 07/11/07Posts: 13Char no Tibia: Devil Minion

certo brigadao, a duvida em questao ja foi mtu bem sanada porem uma mini-duvida : como eu faço para achar todos os storage values que ainda podem ser usados, digo achar os que nao foram usados em outra quests etc ?

Devil%20Minion.png

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

seilá faz um comando/action que check se tem a storage...

bossisg.png

miroking

Devil Minion - Elysia
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 07/11/07Posts: 13Char no Tibia: Devil Minion

ok brigadao te dei um +REP

Devil%20Minion.png