Ir para conteúdo
  • Cadastre-se

Sistema [8.6] Task System 4.0! (Task system + Daily Task System)


Posts Recomendados

3 horas atrás, Vodkart disse:

 

sim

Opa, testei e funcionou com sucesso, mas depois de eu ter adicionado algumas daily tasks começou a dar esse erro:
 

[Error - CreatureScript Interface]
[19:49:55.575] domodlib('task_func')
[19:49:55.579] function onLook(cid, thing, position, lookDistance)
[19:49:55.579]  if isPlayer(thing.uid) and getTaskPoints(thing.uid) > 0 then
[19:49:55.583]          doPlayerSetSpecialDescription(thing.uid, "\n"..(getPlayerSex(thing.uid) == 0 and "She" or "He").. " is a "..GetRankTask(thing.uid))
[19:49:55.587]  end
[19:49:55.587]  return true
[19:49:55.587] end
[19:49:55.587] Description:
[19:49:55.591] [string "task_sys = {..."]:39: '}' expected (to close '{' at line 28) near '['

[19:49:55.591] [Error - CreatureScript Interface]
[19:49:55.595] domodlib('task_func')
[19:49:55.595] function onKill(cid, target)
[19:49:55.599]  if isPlayer(cid) and isMonster(target) then
[19:49:55.599]          local t,daily = task_sys[getTaskMission(cid)], daily_task[getDailyTaskMission(cid)]
[19:49:55.603]          if t and getPlayerStorageValue(cid, t.start) > 0 and isInArray(t.monsters_list, getCreatureName(target):lower()) and getPlayerStorageValue(cid, task_sys_storages[3]) < t.count then
[19:49:55.611]                  setPlayerStorageValue(cid, task_sys_storages[3], getPlayerStorageValue(cid, task_sys_storages[3]) < 0 and 1 or (getPlayerStorageValue(cid, task_sys_storages[3])+1))
[19:49:55.615]                  if getPlayerStorageValue(cid, task_sys_storages[8]) <= 0 and getPlayerStorageValue(cid, task_sys_storages[3]) < t.count then
[19:49:55.619]                          doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Task System] defeated Total [" .. getPlayerStorageValue(cid, task_sys_storages[3]) .. "/" .. t.count .. "] da Task do " .. t.name .. ".")
[19:49:55.627]                  end
[19:49:55.627]                  if getPlayerStorageValue(cid, task_sys_storages[3]) >= t.count then
[19:49:55.631]                          doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Task System] Parab├®ns! Voc├¬ terminou a Task do "..t.name..", volte ao npc parece receber sua recompensa.")
[19:49:55.639]                  end
[19:49:55.639]          end
[19:49:55.639]          if daily and getPlayerStorageValue(cid, task_sys_storages[7]) > 0 and getPlayerStorageValue(cid, task_sys_storages[6]) - os.time() >= 0 and isInArray(daily.monsters_list, getCreatureName(target):lower()) and getPlayerStorageValue(cid, task_sys_storages[5]) < daily.count then
[19:49:55.651]                  setPlayerStorageValue(cid, task_sys_storages[5], getPlayerStorageValue(cid, task_sys_storages[5]) < 0 and 1 or (getPlayerStorageValue(cid, task_sys_storages[5])+1))
[19:49:55.655]                  if getPlayerStorageValue(cid, task_sys_storages[8]) <= 0 and getPlayerStorageValue(cid, task_sys_storages[5]) < daily.count then
[19:49:55.659]                          doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"[Daily Task System] defeated Total [" .. getPlayerStorageValue(cid, task_sys_storages[5]) .. "/" .. daily.count .. "] da Task do " .. daily.name .. ".")
[19:49:55.667]                  end
[19:49:55.667]                  if getPlayerStorageValue(cid, task_sys_storages[5]) >= daily.count then
[19:49:55.671]                          doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Daily Task System] Parab├®ns! Voc├¬ terminou a Task do "..daily.name..", volte ao npc parece receber sua recompensa.")
[19:49:55.679]                  end
[19:49:55.679]          end
[19:49:55.679]  end
[19:49:55.679]  return true
[19:49:55.683] end
[19:49:55.683] Description:
[19:49:55.683] [string "task_sys = {..."]:39: '}' expected (to close '{' at line 28) near '['
[19:49:55.687]  done.

Link para o post
Compartilhar em outros sites
  • Respostas 298
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Removido:   *Boss Room *Rank Task *Prêmios para os 10 primeiros a terminar todas as tasks   Adicionado:   *Daily Task System (Sistema exclusivo de Task diario,

tenta deixar essa linha: if isPlayer(cid) and isMonster(target) and not isSummon(target) then assim if isPlayer(cid) and isMonster(target) then   e testa

gostei dessa ideia, então estou num projeto e estou meio sem tempo, já passei parto do simple task pra tfs 1.2 e tal. terminando esse projeto e de passar o sistema pra tfs 1.2 eu começo a editar o sis

Posted Images

Testei e o erro está nesta parte:

    [1] = {name = "Orcs Daily" ,monsters_list = {"Orc Berserker","orc","orc warrior","orc spearman","orc shaman"}, count = 300, points = 1, reward = {}, exp = 12000, money = 15000},
    [3] = {name = "Rotworms Daily" ,monsters_list = {"rotworm","carrion worm","Rotworm Queen"}, count = 300, points = 1, reward = {}, exp = 12000, money = 8000},
    [4] = {name = "Cyclops Daily" ,monsters_list = {"cyclops","cyclops smith","cyclops drone"}, count = 300, points = 1, reward = {}, exp = 15000, money = 10000},
    [5] = {name = "Lizards Daily" ,monsters_list = {"lizard sentinel","lizard snakecharmer","lizard templar"}, count = 200, points = 1, reward = {}, exp = 12000, money = 8000},
    [6] = {name = "Cemitery Daily" ,monsters_list = {"ghoul","skeleton warrior"}, count = 200, points = 1, reward = {}, exp = 12000, money = 8000},
    [7] = {name = "Thiefs Daily" ,monsters_list = {"bandit","smugler","wild warrior"}, count = 150, points = 1, reward = {}, exp = 12000, money = 8000},
    [8] = {name = "Cyclops Smith Daily" ,monsters_list = {"Cyclops Smith"}, count = 150, points = 1, reward = {}, exp = 20000, money = 15000},
    [9] = {name = "Wyvern Daily" ,monsters_list = {"Wyvern"}, count = 30, points = 1, reward = {}, exp = 15000, money = 10000},
    [10] = {name = "Big Foot Daily" ,monsters_list = {"Big Foot"}, count = 2, points = 2, reward = {}, exp = 20000, money = 20000},
    [11] = {name = "The Giant Daily" ,monsters_list = {"Golliath"}, count = 2, points = 2, reward = {{2173,1}}, exp = 30000, money = 30000}    
    [12] = {name = "Superior Orcs Daily" ,monsters_list = {"Orc Berserker","Orc Rider","Orc Leader","Orc Warlord"}, count = 100, points = 1, reward = {}, exp = 15000, money = 10000},
    [13] = {name = "Giant Spiders Daily" ,monsters_list = {"Giant Spider"}, count = 40, points = 1, reward = {}, exp = 15000, money = 10000},
    [14] = {name = "Dragons Daily" ,monsters_list = {"Dragon","Dragon Lord"}, count = 150, points = 1, reward = {}, exp = 20000, money = 20000},
    [15] = {name = "Wyrm Daily" ,monsters_list = {"Wyrm"}, count = 100, points = 1, reward = {}, exp = 15000, money = 15000},
    [16] = {name = "Ancient Scarabs Daily" ,monsters_list = {"Ancient Scarab"}, count = 180, points = 1, reward = {}, exp = 22000, money = 20000},
    [17] = {name = "High Class Lizards Daily" ,monsters_list = {"Lizard Chosen","Lizard Dragon Priest","Lizard High Guard","Lizard Legionnaire","Lizard Zaogun"}, count = 300, points = 1, reward = {}, exp = 20000, money = 20000},
    [18] = {name = "Firelord Daily" ,monsters_list = {"Diabolic Imp","Dragon Lord"}, count = 250, points = 1, reward = {}, exp = 30000, money = 30000},
    [19] = {name = "Frost Dragons Daily" ,monsters_list = {"Frost Dragon"}, count = 150, points = 2, reward = {}, exp = 35000, money = 35000},
    [20] = {name = "General Luther Daily" ,monsters_list = {"General Luther"}, count = 1, points = 1, reward = {}, exp = 20000, money = 20000},
    [21] = {name = "Hydras Daily" ,monsters_list = {"Hydra"}, count = 150, points = 2, reward = {}, exp = 30000, money = 25000},
    [22] = {name = "The Bosses Daily" ,monsters_list = {"General Luther", "King Orc", "Spider Queen"}, count = 3, points = 3, reward = {{2173,1}}, exp = 100000, money = 80000},
    [23] = {name = "The Dragon Bosses Daily" ,monsters_list = {"Lord Murdrake", "Twister", "Undra"}, count = 3, points = 5, reward = {{2173,1}}, exp = 300000, money = 150000},
    [24] = {name = "Drakens Daily" ,monsters_list = {"Draken Elite", "Draken Abomination", "Draken Spellweaver"}, count = 100, points = 1, reward = {{2173,1}}, exp = 50000, money = 30000}

 

Não sei se é por causa da quantidade ou se redigi algo incorretamente, olhei bastante por cima mas ainda não identifiquei o erro, please help!

4 minutos atrás, darlandm disse:

Testei e o erro está nesta parte:

    [1] = {name = "Orcs Daily" ,monsters_list = {"Orc Berserker","orc","orc warrior","orc spearman","orc shaman"}, count = 300, points = 1, reward = {}, exp = 12000, money = 15000},
    [3] = {name = "Rotworms Daily" ,monsters_list = {"rotworm","carrion worm","Rotworm Queen"}, count = 300, points = 1, reward = {}, exp = 12000, money = 8000},
    [4] = {name = "Cyclops Daily" ,monsters_list = {"cyclops","cyclops smith","cyclops drone"}, count = 300, points = 1, reward = {}, exp = 15000, money = 10000},
    [5] = {name = "Lizards Daily" ,monsters_list = {"lizard sentinel","lizard snakecharmer","lizard templar"}, count = 200, points = 1, reward = {}, exp = 12000, money = 8000},
    [6] = {name = "Cemitery Daily" ,monsters_list = {"ghoul","skeleton warrior"}, count = 200, points = 1, reward = {}, exp = 12000, money = 8000},
    [7] = {name = "Thiefs Daily" ,monsters_list = {"bandit","smugler","wild warrior"}, count = 150, points = 1, reward = {}, exp = 12000, money = 8000},
    [8] = {name = "Cyclops Smith Daily" ,monsters_list = {"Cyclops Smith"}, count = 150, points = 1, reward = {}, exp = 20000, money = 15000},
    [9] = {name = "Wyvern Daily" ,monsters_list = {"Wyvern"}, count = 30, points = 1, reward = {}, exp = 15000, money = 10000},
    [10] = {name = "Big Foot Daily" ,monsters_list = {"Big Foot"}, count = 2, points = 2, reward = {}, exp = 20000, money = 20000},
    [11] = {name = "The Giant Daily" ,monsters_list = {"Golliath"}, count = 2, points = 2, reward = {{2173,1}}, exp = 30000, money = 30000}    
    [12] = {name = "Superior Orcs Daily" ,monsters_list = {"Orc Berserker","Orc Rider","Orc Leader","Orc Warlord"}, count = 100, points = 1, reward = {}, exp = 15000, money = 10000},
    [13] = {name = "Giant Spiders Daily" ,monsters_list = {"Giant Spider"}, count = 40, points = 1, reward = {}, exp = 15000, money = 10000},
    [14] = {name = "Dragons Daily" ,monsters_list = {"Dragon","Dragon Lord"}, count = 150, points = 1, reward = {}, exp = 20000, money = 20000},
    [15] = {name = "Wyrm Daily" ,monsters_list = {"Wyrm"}, count = 100, points = 1, reward = {}, exp = 15000, money = 15000},
    [16] = {name = "Ancient Scarabs Daily" ,monsters_list = {"Ancient Scarab"}, count = 180, points = 1, reward = {}, exp = 22000, money = 20000},
    [17] = {name = "High Class Lizards Daily" ,monsters_list = {"Lizard Chosen","Lizard Dragon Priest","Lizard High Guard","Lizard Legionnaire","Lizard Zaogun"}, count = 300, points = 1, reward = {}, exp = 20000, money = 20000},
    [18] = {name = "Firelord Daily" ,monsters_list = {"Diabolic Imp","Dragon Lord"}, count = 250, points = 1, reward = {}, exp = 30000, money = 30000},
    [19] = {name = "Frost Dragons Daily" ,monsters_list = {"Frost Dragon"}, count = 150, points = 2, reward = {}, exp = 35000, money = 35000},
    [20] = {name = "General Luther Daily" ,monsters_list = {"General Luther"}, count = 1, points = 1, reward = {}, exp = 20000, money = 20000},
    [21] = {name = "Hydras Daily" ,monsters_list = {"Hydra"}, count = 150, points = 2, reward = {}, exp = 30000, money = 25000},
    [22] = {name = "The Bosses Daily" ,monsters_list = {"General Luther", "King Orc", "Spider Queen"}, count = 3, points = 3, reward = {{2173,1}}, exp = 100000, money = 80000},
    [23] = {name = "The Dragon Bosses Daily" ,monsters_list = {"Lord Murdrake", "Twister", "Undra"}, count = 3, points = 5, reward = {{2173,1}}, exp = 300000, money = 150000},
    [24] = {name = "Drakens Daily" ,monsters_list = {"Draken Elite", "Draken Abomination", "Draken Spellweaver"}, count = 100, points = 1, reward = {{2173,1}}, exp = 50000, money = 30000}

 

Não sei se é por causa da quantidade ou se redigi algo incorretamente, olhei bastante por cima mas ainda não identifiquei o erro, please help!

Arrumei o smuggler escrito errado ali mas o erro continua.

Link para o post
Compartilhar em outros sites

pode me passar o mods todo pelo pastebin?

 

o que eu ja reparei aqui é que vc pulou o "[2]", excluiu o index "start" que é a storage, importante para o funcionamento do script, falta fechar umas tabelas, etc...

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
11 minutos atrás, Vodkart disse:

pode me passar o mods todo pelo pastebin?

 

o que eu ja reparei aqui é que vc pulou o "[2]", excluiu o index "start" que é a storage, importante para o funcionamento do script, falta fechar umas tabelas, etc...

Bons olhos! Arrumei a contagem mas o erro continua, no seu também não tem o index "start" nas daily tasks.

https://pastebin.com/1HQJiZve

Link para o post
Compartilhar em outros sites
  • 2 weeks later...
  • 2 weeks later...

Bom dia ! ?

 

    Esse seu sistema é perfeito Vodkart assim como todos que você faz !
    Eu estou com um problema quando tento colocar algum item para entregar junto a Task não da certo, não buga nada na distro, porém o comando !task para de funcionar ...

Link para o post
Compartilhar em outros sites
  • 2 weeks later...

ola poderia me ajudar nesses erros ja tentei de tudo e continua dando  esse erro vo posta no pasterbin blz Erros >> https://pastebin.com/SxyY4kqf

 

aqui esta meu mods da task q editei poderia ver por que esta dando aqueles erro q postei logo a cima do pastebin mods >> https://pastebin.com/8bFdNtAy

Editado por Pro Jota (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
7 horas atrás, Pro Jota disse:

ola poderia me ajudar nesses erros ja tentei de tudo e continua dando  esse erro vo posta no pasterbin blz Erros >> https://pastebin.com/SxyY4kqf

 

aqui esta meu mods da task q editei poderia ver por que esta dando aqueles erro q postei logo a cima do pastebin mods >> https://pastebin.com/8bFdNtAy

 

vc copiou algo a mais, deve ter sido isso.. aqui está: https://pastebin.com/raw/hVCv9A9m

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

>>> Loading Simple Task.xml ...[Error - LuaInterface::loadBuffer] [string "LuaInterface::loadBuffer"]:25: '<eof>' expected near 'end'
[Error - Event::checkScript] Cannot load script (domodlib('task_func')
function onKill(cid, target)

                local t,daily = task_sys[getTaskMission(cid)], daily_task[getDailyTaskMission(cid)]
                if t and getPlayerStorageValue(cid, t.start) > 0 and isInArray(t.monsters_list, getCreatureName(target):lower()) and getPlayerStorageValue(cid, task_sys_storages[3]) < t.count then
                        setPlayerStorageValue(cid, task_sys_storages[3], getPlayerStorageValue(cid, task_sys_storages[3]) < 0 and 1 or (getPlayerStorageValue(cid, task_sys_storages[3])+1))
                        if getPlayerStorageValue(cid, task_sys_storages[8]) <= 0 and getPlayerStorageValue(cid, task_sys_storages[3]) < t.count then
                                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Task System] defeated Total [" .. getPlayerStorageValue(cid, task_sys_storages[3]) .. "/" .. t.count .. "] da Task do " .. t.name .. ".")
                        end
                        if getPlayerStorageValue(cid, task_sys_storages[3]) >= t.count then
                                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Task System] Parab�ns! Voc� terminou a Task do "..t.name..", volte ao npc parece receber sua recompensa.")
                        end
                end
                if daily and getPlayerStorageValue(cid, task_sys_storages[7]) > 0 and getPlayerStorageValue(cid, task_sys_storages[6]) - os.time() >= 0 and isInArray(daily.monsters_list, getCreatureName(target):lower()) and getPlayerStorageValue(cid, task_sys_storages[5]) < daily.count then
                        setPlayerStorageValue(cid, task_sys_storages[5], getPlayerStorageValue(cid, task_sys_storages[5]) < 0 and 1 or (getPlayerStorageValue(cid, task_sys_storages[5])+1))
                        if getPlayerStorageValue(cid, task_sys_storages[8]) <= 0 and getPlayerStorageValue(cid, task_sys_storages[5]) < daily.count then
                                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"[Daily Task System] defeated Total [" .. getPlayerStorageValue(cid, task_sys_storages[5]) .. "/" .. daily.count .. "] da Task do " .. daily.name .. ".")
                        end
                        if getPlayerStorageValue(cid, task_sys_storages[5]) >= daily.count then
                                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Daily Task System] Parab�ns! Voc� terminou a Task do "..daily.name..", volte ao npc parece receber sua recompensa.")
                        end
                end
        end
        return true
end)
[string "LuaInterface::loadBuffer"]:25: '<eof>' expected near 'end'
 (done).

 

 

Esse e o script q peguei do seu post voce pode me ajudar nesse erro 

domodlib('task_func')
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,msg, str,rst = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid, msg:lower(),"",""
    local task,daily, hours = getTaskMission(cid),getDailyTaskMission(cid), 24
    if isInArray({"task","tasks","missao","mission"}, msg) then
        if task_sys[task] then
            if getPlayerStorageValue(cid, task_sys[task].start) <= 0 then
                if getPlayerLevel(cid) >= task_sys[task].level then
                    setPlayerStorageValue(cid, task_sys[task].start, 1)
                    npcHandler:say("[Task System] Parabéns, agora você está participando da Task do "..task_sys[task].name.." e deverá matar "..task_sys[task].count.." desta lista: "..getMonsterFromList(task_sys[task].monsters_list)..". "..(#task_sys[task].items > 0 and "Ah e por favor me traga "..getItemsFromList(task_sys[task].items).." para mim." or "").."" , cid)
                else
                    npcHandler:say("Desculpe, Mas você precisa alcançar level "..task_sys[task].level.." para poder participar da Task dos "..task_sys[task].name.."!", cid)
                end
            else
                npcHandler:say("Desculpe, Mas você atualmente está na task "..task_sys[task].name..". Você pode {entregar} caso já tenha terminado.", cid)
            end
        else
            npcHandler:say("Desculpe, Mas por enquanto não tenho mais nenhuma task para você!", cid)
        end
    elseif isInArray({"diaria","daili","daily","dayli","diario"}, msg) then
        if getPlayerStorageValue(cid, task_sys_storages[6]) - os.time() > 0 then
            npcHandler:say("Desculpe, você deve esperar até "..os.date("%d %B %Y %X ", getPlayerStorageValue(cid,task_sys_storages[6])).." para iniciar uma nova task diaria!", cid) return true
        elseif daily_task[daily] and getPlayerStorageValue(cid, task_sys_storages[5]) >= daily_task[daily].count then
            npcHandler:say("Desculpe, você tem task para {entregar} !", cid) return true
        end
        local r = doRandomDailyTask(cid)
        if r == 0 then
            npcHandler:say("Desculpe, mas você não tem level para completar nenhuma Task diaria.", cid) return true
        end
        setPlayerStorageValue(cid, task_sys_storages[4], r)
        setPlayerStorageValue(cid, task_sys_storages[6], os.time()+hours*3600)
        setPlayerStorageValue(cid, task_sys_storages[7], 1)
        setPlayerStorageValue(cid, task_sys_storages[5], 0)
       local dtask = daily_task[r]
        npcHandler:say("[Daily Task System] Parabéns, agora você está participando da Task Diaria do "..dtask.name.." e deverá matar "..dtask.count.." monstros desta lista: "..getMonsterFromList(dtask.monsters_list).." até "..os.date("%d %B %Y %X ", getPlayerStorageValue(cid,task_sys_storages[6]))..". Boa sorte!" , cid)
    elseif isInArray({"receber","reward","recompensa","report","reportar","entregar","entrega"}, msg) then
        local v, k = task_sys[task], daily_task[daily] 
        if v then -- original task
            if getPlayerStorageValue(cid, v.start) > 0 then
                if getPlayerStorageValue(cid,task_sys_storages[3]) >= v.count then
                    if #v.items > 0 and not doRemoveItemsFromList(cid, v.items) then
                        npcHandler:say("Desculpe, Mas você também precisa entregar os itens desta lista: "..getItemsFromList(v.items), cid) return true
                    end
             if v.exp > 0 then doPlayerAddExp(cid, v.exp) str = str.."".. (str == "" and "" or ", ") .." "..v.exp.." de exp" end
                 if v.points > 0 then setPlayerStorageValue(cid, task_sys_storages[2], (getTaskPoints(cid)+v.points)) str = str.."".. (str == "" and "" or ", ") .." + "..v.points.."task points" end
                 if v.money > 0 then doPlayerAddMoney(cid, v.money) str = str.."".. (str == "" and "" or ", ") ..""..v.money.." gps" end
                 if table.maxn(v.reward) > 0 then GiveRewardsTask(cid, v.reward) str = str.."".. (str == "" and "" or ", ") ..""..getItemsFromList(v.reward) end
                    npcHandler:say("Obrigado pela sua ajuda Recompensas: "..(str == "" and "nenhuma" or ""..str.."").." por ter completado a task do "..v.name, cid)
                    setPlayerStorageValue(cid, task_sys_storages[3], 0)
                    setPlayerStorageValue(cid, task_sys_storages[1], (task+1))
                else
                    npcHandler:say("Desculpe, Mas você ainda não terminou a sua task do "..v.name..". Preciso que mate mais "..(getPlayerStorageValue(cid, task_sys_storages[3]) < 0 and v.count or -(getPlayerStorageValue(cid,task_sys_storages[3])-v.count)).." Destes monstros terriveis!", cid)
                end
            end
        end
        if k then -- daily task
            if getPlayerStorageValue(cid, task_sys_storages[7]) > 0 then
                if getPlayerStorageValue(cid, task_sys_storages[5]) >= k.count then
                if k.exp > 0 then doPlayerAddExp(cid, k.exp) rst = rst.."".. (rst == "" and "" or ", ") .." "..k.exp.." de exp" end
                 if k.points > 0 then setPlayerStorageValue(cid, task_sys_storages[2], (getTaskPoints(cid)+k.points)) rst = rst.."".. (rst == "" and "" or ", ") .." + "..k.points.."task points" end
                 if k.money > 0 then doPlayerAddMoney(cid, k.money) rst = rst.."".. (rst == "" and "" or ", ") ..""..k.money.." gps" end
                 if table.maxn(k.reward) > 0 then GiveRewardsTask(cid, k.reward) rst = rst.."".. (rst == "" and "" or ", ") ..""..getItemsFromList(k.reward) end
                    npcHandler:say("Obrigado pela sua ajuda! Recompensas: "..(rst == "" and "nenhuma" or ""..rst.."").." por ter completado a task do "..k.name, cid)
                    setPlayerStorageValue(cid, task_sys_storages[4], 0)
                    setPlayerStorageValue(cid, task_sys_storages[5], 0)
                    setPlayerStorageValue(cid, task_sys_storages[7], 0)
                    else
                    npcHandler:say("Desculpe, Mas você ainda não terminou a sua task diaria do "..k.name..". Preciso que mate mais "..(getPlayerStorageValue(cid, task_sys_storages[5]) < 0 and k.count or -(getPlayerStorageValue(cid,task_sys_storages[5])-k.count)).." Destes monstros!", cid)
                end
            end
        end
    elseif msg == "no" then 
        selfSay("Tudo bem então", cid) 
        talkState[talkUser] = 0 
        npcHandler:releaseFocus(cid) 
    end
    return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Link para o post
Compartilhar em outros sites
  • 2 weeks later...

aqui ta dando esse erro na distro.


 

Spoiler

[Error - Npc interface]
data/npc/scripts/simple_task.lua:onCreatureSay
Description:
data/npc/scripts/simple_task.lua:15: attempt to call global 'getTaskMission' (a
nil value)
stack traceback:
        data/npc/scripts/simple_task.lua:15: in function 'callback'
        data/npc/lib/npcsystem/npchandler.lua:383: in function 'onCreatureSay'
        data/npc/scripts/simple_task.lua:8: in function <data/npc/scripts/simple
_task.lua:8>

Em 29/09/2018 em 23:41, Vodkart disse:

vc copiou algo a mais, deve ter sido isso.. aqui está: https://pastebin.com/raw/hVCv9A9m

 

 

Link para o post
Compartilhar em outros sites
  • 2 weeks later...
  • 2 months later...
  • 3 weeks later...

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por luanluciano93
      Olá pessoal, estou desenvolvendo esse sistema vip para TFS 1.x, se precisarem de alguma função nova é só comentar, criei para usar em um servidor meu e resolvi postar, bom proveito a todos.
       
      É só ir no arquivo data/lib/core/player.lua e adicionar esse código no começo do script:
      -- ALTER TABLE `accounts` ADD `vip_time` BIGINT(20) NOT NULL DEFAULT 0; -- player:getVipTime() function Player.getVipTime(self) local resultId = db.storeQuery("SELECT `vip_time` FROM `accounts` WHERE `id` = '".. self:getAccountId() .."';") local time = resultId ~= false and result.getNumber(resultId, "vip_time") or 0 result.free(resultId) return time end -- player:isVip() function Player.isVip(self) return self:getVipTime() > os.time() and true or false end -- player:addVipDays(days) function Player.addVipDays(self, days) return(self:isVip() and tonumber((days * 86400))) and db.query("UPDATE `accounts` SET `vip_time` = '".. (self:getVipTime() + (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") or db.query("UPDATE `accounts` SET `vip_time` = '".. (os.time() + (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:removeVipDays(days) function Player.removeVipDays(self, days) return(self:isVip() and tonumber((days * 86400))) and db.query("UPDATE `accounts` SET `vip_time` = '".. (self:getVipTime() - (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") or db.query("UPDATE `accounts` SET `vip_time` = '".. (os.time() - (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:setVipDays(days) function Player.setVipDays(self, days) return db.query("UPDATE `accounts` SET `vip_time` = '".. (os.time() - (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:removeVip() function Player.removeVip(self) db.query("UPDATE `accounts` SET `vip_time` = '0' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:sendVipDaysMessage() function Player.sendVipDaysMessage(self) if self:isVip() then local vipTime = self:getVipTime() - os.time() local vipDays = 1 + (math.floor(vipTime / 86400)) return self:getVipTime() ~= false and self:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'You have '.. vipDays .. ' vip day(s) in your account.') end end -- player:checkVipLogin() function Player.checkVipLogin(self) if self:getVipTime() > 0 and not self:isVip() then return self:removeVip() and self:teleportTo(self:getTown():getTemplePosition()) end end  
       
      As funções são:
      • player:getVipTime() - Retorna o valor da tabela vip_time (igual esta na database).
      • player:isVip() - Retorna se o player é vip ou não.
      • player:addVipDays(days) - Usa-se em algum script para para adicionar dias de vip ao player (parâmetro de entrada "days").
      • player:removeVipDays(days) - Usa-se em algum script para para remover dias de vip do player (parâmetro de entrada "days").
      • player:setVipDays(days) - Usa-se em algum script para para mudar os dias de vip do player (parâmetro de entrada "days").
      • player:removeVip() - Usa-se em algum script para para remover todo tempo de vip do player.
      • player:sendVipDaysMessage() - Retorna uma mensagem no player mostrando os dias de vip que ainda restam ao player.
      • player:checkVipLogin() - Checa se a vip do player acabou, se sim teleporta ele para o templo.
       

      Qualquer dúvida ou erro/bug poste aqui.
    • Por Killua
      Como funciona?
      A cada monstro que vc mata, seus itens equipados ganham 1 de exp. Quando seus itens chegarem às quantidades de exp definidas, eles upam e ficam com o nome assim: Demon Helmet + 1. Helmets, armors, legs, e boots recebem 1 de arm a cada vez que upam. Armas recebem 1 de ataque e escudos 1 de defesa.
       
      Para o monstro contar, ele deve dar um mínimo de exp (definido no script). O número de exp a que me refiro é aquele um presente no arquivo .xml.
       
      Para instalar, crie Killua Items Upgrade.lua em data/creaturescripts/scripts e coloque:
        Em data/creaturescripts/creaturescripts.xml coloque essas duas tags:
      <event type="kill" name="Item level" event="script" value="Killua Items Upgrade.lua"/> <event type="login" name="Item levell" event="script" value="Killua Items Upgrade.lua"/> Configurando: Na tabela table_of_slots, coloque em quais slots os itens upam.
      min_exp é a experiência mínima que o monstro deve ter para contar exp para o item. Se vc colocar 500, somente os monstros que tem exp igual ou superior a 500 no arquivo.xml vão valer.
      exp_levels são os valores de exp que os itens devem atingir para upar. No meu caso, quando o item alcançar 50 de exp, ele upa para o level 1. Quando alcançar 50 de exp, upa para o level 2 e assim por diante.
    • Por Sekk
      Bom, procurei esse Castle por MUITO TEMPO, mas não achei em NENHUM LUGAR DA INTERNET. Ontem, eu estava vendo alguns mapas do @Deathrocks, e vi nos prints, que o mapa possuia o evento que eu queria!
       
      Então baixei o mapa e extrai o evento, então venho lhes trazer!
       
       
      Nome: Castle 24H
      Cliente: 8.6
      Versão TFS: 0.4
      Tipo: Evento
       
      Bom, para começar, vamos em actions/scripts e crie 2 arquivos:
       
      castledoor1.lua
       
      castlewar1.lua
       
        Agora em actions.xml adicione as tags:
       
      Agora em monster/traps crie 3 arquivos:
       
      porta.xml
       
      protectcastle.xml  
      statue.xml  
      Agora em monsters.xml adicione as tags:    
      Vamos para movements/scripts e crie 2 arquivos:
       
      castlewar2.lua
       
      level.lua  
      Agora em movements.xml adicione as tags:  
       
      Pronto. Agora você só precisa baixar o mapa, inserir o mesmo ao seu servidor, configurar os teleports, e as hunts dentro do castle etc.
       
      PRINTS:
      1ª parte
       
      2ª parte:
       
      Obs.: Todos os ActionID e monsters já estão no mapa! Você só precisa configurar as coordenadas dos teleports, e o que possui no castle!
       
      Obs².: Tudo o que você pode configurar, já está escrito em cada script!
       
       
      Créditos:
      @DeathRocks
      PC98
      mapa.rar
    • Por gpedro
      Testado: MySQL & SQLite
      Distro: TFS 0.4_SVN & TFS 0.3.6

      MySQL

      ALTER TABLE `players` ADD `resets` INT(11) NOT NULL DEFAULT "0"; SQLite ALTER TABLE players ADD resets INTEGER not null default 0 Adicionando nas sources player.h procure por: uint32_t level; logo abaixo, adicione: uint32_t resets; iologindata.cpp procure por query << "SELECT `id`, `account_id`, `group_id`, `world_id`, `sex`, `vocation`, `experience`, `level`," substitua por: query << "SELECT `id`, `account_id`, `group_id`, `world_id`, `sex`, `vocation`, `experience`, `level`, `resets`, " procure por player->level = std::max((uint32_t)1, (uint32_t)result->getDataInt("level")); logo abaixo adicione: player->resets = (uint32_t)result->getDataInt("resets"); procure por query << "`maglevel` = " << player->magLevel << ", "; logo abaixo adicione: query << "`resets` = " << player->resets << ", "; players.cpp procure por: s << " (Level " << level << ")"; substitua por: s << " (Level " << level << ") [Reset " << resets << "]"; players.h procure por: void setPromotionLevel(uint32_t pLevel); logo abaixo adicione: uint32_t getResets() { return resets;} void setResets(int32_t amount) { resets += amount; if (resets < 0) {resets = 0;} } luascript.cpp para 0.3.6 static int32_t luaDoPlayerSetIdleTime(lua_State* L); logo abaixo adicione: static int32_t luaGetResets(lua_State* L); static int32_t luaSetResets(lua_State* L); talkactions.xml <talkaction words="!rank;/rank" event="script" value="ranks.lua"/> <talkaction words="!reset;/reset" script="reset.lua"/> ranks.lua
      Créditos: Dark Skyllen, Marcryzius, Mock, Kydrai, Cykotitan, gpedro*.
      * adaptação para 0.4
    • Por VitorSubhi
      Apresentação: Olá galera do Tibia King, este é meu primeiro tutorial que desenvolvo após anos apenas sugando da comunidade, chegou a hora de compartilhar um pouco de conhecimento, rsrs...
      Após ver que muitos usuários tinham interesse em um sistema de Trade de Points in-game resolvi trazer um sistema totalmente completo para vocês.
       
      Funcionamento:
      Player 1 após adquirir os Points, pode iniciar uma negociação com o Player 2 através do comando /tradepoints Player 2, Quantidade. Será aberto uma Janela de Trade com o item referente aos Points. Após ambos aceitarem a negociação será realizado a troca de Points pelo item requisitado.
      Observações:
      Necessário ter acesso às Sources de sua Distro. Testado em servidor 8.6 (The Forgotten Server 0.4). Antes que venham falar que possui sistemas parecidos, veja o diferencial (Item não aparece em nenhum inventário, e não é necessário usar/comprar qualquer item).  
      Algumas Imagens:
       
      Instalação:
      Sources > Luascript.cpp Sources > Luascript.cpp Sources > Luascript.h  
       
      Server > Data > Lib > 050-function Server > Data > Creaturescripts > Scripts >Trade_Orbs.lua Server > Data > Creaturescripts > Creaturescripts.xml Server > Data > Creaturescripts > Scripts > Login.lua Server > Data > Talkactions > Scripts > Points_Trade.lua Server > Data > Talkactions > Talkactions.xml Créditos:
      Todo o sistema foi feito completamente por mim: Vítor Subhi.
      The Forgotten Server (Pelas Sources)
      Vodkart, White Wolf, Natanael Beckman, e a todos os demais membros do TK que não lembro o nome, que contribuíram indiretamente através de seus tutoriais.
       
       
       
       
       

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo