Ir para conteúdo

Killua Task System [Atualizado 16/04/2014]


Killua

Posts Recomendados

Aqui ta o script do NPC:

 

 

-- Script por Killua, antigo Amoeba13 --

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

for varm, tasks in pairs(amoebaTask) do
    local msg = string.lower(msg)
    if tasks.nome == msg then
        if getPlayerStorageValue(cid, tasks.storage) == -1 then
        if getPlayerStorageValue(cid, tasks.storagecount) == tasks.count then
            local esperiencia = tasks.exp > 0 and "" ..tasks.exp.. " exp e " or ""
            local dineiro = tasks.money > 0 and "" .. tasks.money .. " gold coins e " or ""
            selfSay("Voce conseguiu completar a task de ".. tasks.nome .. ", parabens! Eu vou te dar " .. esperiencia .. "" .. dineiro .."alguns itens como recompensa.", cid)
            doPlayerAddExperience(cid, tasks.exp)
            doPlayerAddMoney(cid, tasks.money)
            doPlayerSetStorageValue(cid, tasks.storage, 1)
            for juba, prize in pairs(tasks.premios) do
                doPlayerAddItem(cid, prize[1], prize[2])
        end
        else
            selfSay("Desculpe, mas voce ainda nao matou todos os " .. tasks.nome .. "s. Voce so matou " .. taskKills(cid, tasks.storagecount) .. " de " .. tasks.count .. " " .. tasks.nome .. "s.", cid)
            break
        end
    else
        selfSay("Voce so pode recber uma vez o premio de cada task.", cid)
    end
end
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new()) 

 

 

 

Data/Lib:

 

 

-- Script feito por Killua, antigo amoeba13 --

amoebaTask = {
    {nome = "Jabuti", creatures = {"Jabuti","Jabuti Hatchling"}, storage = 2312112, storagecount = 890120, count = 300, exp = 0, money = 0, premios = {{6527, 10},{10133, 1}}},
    {nome = "Thenebreus", creatures = {"Thenebreus"}, storage = 2312113, storagecount = 890121, count = 250, exp = 0, money = 0, premios = {{6527, 4},{10134, 1}}},
    {nome = "Demon", creatures = {"Demon"}, storage = 2312114, storagecount = 890122, count = 5, exp = 0, money = 0, premios = {{6527, 4},{10134, 1}}}
}

function taskKills(cid, storage)
    kills = getPlayerStorageValue(cid, storage)
    if kills < 0 then
        kills = 0
    end
    return kills
end 

 

 

Link para o comentário
Compartilhar em outros sites

Amigo, parei para reler o código todo e decidi refazê-lo. Postei uma nova versão no post principal, atualize seu sistema que irá funcionar sem problemas :)

Obrigado pelo feedback.

 

Agora funcionou! rep+ again :D

 

Quer uma sugestão?

Quando completar a task aparecer escrito [Completo] em frente do nome da lista !task

 

Muito obrigado :D

Link para o comentário
Compartilhar em outros sites

 

Agora funcionou! rep+ again :D

 

Quer uma sugestão?

Quando completar a task aparecer escrito [Completo] em frente do nome da lista !task

 

Muito obrigado :D

 

Assim que eu tiver tempo, coloco pra aparecer o completo :)

Link para o comentário
Compartilhar em outros sites

Amigo, estou com o problema a seguir, acredito que tenha sido aquele erro onKill que você citou na página anterior a resposta do Lucas, você poderia me ajudar a resolve-lo? se possível meu skype é thi-hs.

 

5o6vci.jpg

Link para o comentário
Compartilhar em outros sites

Amigo, estou com o problema a seguir, acredito que tenha sido aquele erro onKill que você citou na página anterior a resposta do Lucas, você poderia me ajudar a resolve-lo? se possível meu skype é thi-hs.

 

5o6vci.jpg

 

Amigo este erro não é do meu script... Delete o arquivo taskkill.lua que está em data/creaturescripts/scripts e cria amoebaTaskCreature.lua nessa mesma pasta e coloque:


-- Script por Killua, antigo amoeba13 --

function onKill(cid, target, lastHit)
    
    if not isMonster(target) or not isPlayer(cid) then
        return true
    end
    
    for _, tasks in pairs(amoebaTask) do
        if isInArray(tasks.creatures, getCreatureName(target)) then
            if taskKills(cid, tasks.storagecount) < tasks.count then
                doPlayerSetStorageValue(cid, tasks.storagecount, taskKills(cid, tasks.storagecount)+1)
                break
            end
        end
    end
    return true
end

E em creaturescripts.xml coloque isso:

<event type="kill" name="AmoebaTask" event="script" value="amoebaTaskCreature.lua"/>

Tem como Por Para Matar Summon e Monster . O Script so esta fazendo task com Monster =s

 

Como assim? Eu não fiz nenhuma checagem para ver se é summon...

Link para o comentário
Compartilhar em outros sites

  • 4 years later...
Em 23/04/2014 em 02:10, Killua disse:

 

Amigo este erro não é do meu script... Delete o arquivo taskkill.lua que está em data/creaturescripts/scripts e cria amoebaTaskCreature.lua nessa mesma pasta e coloque:



 

-- Script por Killua, antigo amoeba13 --

function onKill(cid, target, lastHit)
    
    if not isMonster(target) or not isPlayer(cid) then
        return true
    end
    
    for _, tasks in pairs(amoebaTask) do
        if isInArray(tasks.creatures, getCreatureName(target)) then
            if taskKills(cid, tasks.storagecount) < tasks.count then
                doPlayerSetStorageValue(cid, tasks.storagecount, taskKills(cid, tasks.storagecount)+1)
                break
            end
        end
    end
    return true
end

E em creaturescripts.xml coloque isso:


<event type="kill" name="AmoebaTask" event="script" value="amoebaTaskCreature.lua"/>

 

Como assim? Eu não fiz nenhuma checagem para ver se é summon...

Voce fez em OnDeath? nao achei o arquivo aqui no post...

em Kill nao ta funcionando pra mim... to matando os monstros e nao ta contabilizando

Link para o comentário
Compartilhar em outros sites

  • 3 months later...
Em 24/01/2014 em 15:15, FelipeGuilherme disse:
amoebaTask = {

 

{nome = "Jabuti", creatures = {"Jabuti","Jabuti Hatchling"}, storage = 2312112, storagecount = 890120, count = 300, exp = 0, money = 0, premios = {{2160, 10},{2195, 1}}},

 

 

{nome = "Thenebreus", creatures = {"Thenebreus"}, storage = 2312113, storagecount = 890121, count = 250, exp = 0, money = 0, premios = {{2160, 8},{10134, 1}}},

 

 

{nome = "Demon", creatures = {"Demon"}, storage = 2312114, storagecount = 890122, count = 200, exp = 0, money = 0, premios = {{2160, 80},{10134, 1}}}

 

 

{nome = "Dragon", creatures = {"Dragon"}, storage = 2312114, storagecount = 890123, count = 200, exp = 0, money = 0, premios = {{2160, 20},{10134, 1}}}

 

 

 

 

 

 

 

 

storagecount = 890123 < Eu adicionei o dragon so que ta dando ero oque errei ? em storage account como voçe disse n pode ser repetido adicionei 23 e da erro

 

na linha do demon faltou a virgula final

 

opa gostei da scrip, muito util, mas eu to co uma duvida, eu queria deixar o lista dos bixo em ordem quando usa o comando !task, e pelo que eu vi esta totalmente aliatorio. nao tem logica nehuma na ordem da lista, podem me ajudar.

 

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...