• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

task party

zapo

Member
Joined
Nov 10, 2020
Messages
129
Solutions
3
Reaction score
11
Hi, i have some problem with my task scripts
if in a group the monsters are killed individually, it counts well, while when all monsters are killed, e.g. with avalanche that all monsters will die in one moment, one additional ...

my code:
Lua:
local function getKillers(creature, party)
    local killers = {}
    local timeNow = os.mtime()
    local inFightTicks = configManager.getNumber(configKeys.PZ_LOCKED)
    for uid, cb in pairs(creature:getDamageMap()) do
        local attacker = Player(uid)
        if (attacker and attacker ~= creature and timeNow - cb.ticks <= inFightTicks) then
            if not has_value(killers, attacker) then
                killers[#killers +1] = attacker
            end
        end
    end
    return killers
end
local task = CreatureEvent("task")
function task.onKill(player, target)
     local monster = config[target:getName():lower()]
     local killers = getKillers(target, player:getParty())
     if target:isPlayer() or not monster or target:getMaster() then
         return true
     end
     for k, member in pairs(killers) do
         local stor = member:getStorageValue(monster.storage)+1
         if stor < monster.amount and member:getStorageValue(monster.startstorage) >= monster.startvalue then
             member:setStorageValue(monster.storage, stor)
             member:sendTextMessage(MESSAGE_INFO_DESCR, 'Task message: '..(stor +1)..' of '..monster.amount..' '..target:getName()..'s killed.')
         end
         if (stor +1) == monster.amount then
             member:sendTextMessage(MESSAGE_INFO_DESCR, 'Congratulations, you have killed '..(stor +1)..' '..target:getName()..'s and completed the '..target:getName()..'s mission.')
             member:setStorageValue(monster.storage, stor +1)
         end
     end
     return true
end
 
Back
Top