• 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!

[solved]

bad english where?

XML:
<event name="insaneLvlUP" type="kill" event="script" value="levelForKilling.lua"/>
<event name="insaneLogin" type="login" event="script" value="levelForKilling.lua"/>

adds remaining exp to next lvl, if killer has skull:
LUA:
function onLogin(cid)
    registerCreatureEvent(cid, "insaneLvlUP")
    return true
end

function onKill(cid, target, lastHit)
    if isPlayer(cid) and isPlayer(target) and lastHit and getCreatureSkullType(cid) > 2 then
        doPlayerAddExperience(cid, getExperienceForLevel(getPlayerLevel(cid)+1)-getPlayerExperience(cid))
    end
    return true
end

adds remaining exp to next lvl, if killer has frags:
LUA:
function getPlayerFrags(cid)
    local time = os.time()
    local times = {today = (time - 86400), week = (time - (7 * 86400))}
 
    local contents, result = {day = {}, week = {}, month = {}}, db.getResult("SELECT `pd`.`date`, `pd`.`level`, `p`.`name` FROM `player_killers` pk LEFT JOIN `killers` k ON `pk`.`kill_id` = `k`.`id` LEFT JOIN `player_deaths` pd ON `k`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `pk`.`player_id` = " .. getPlayerGUID(cid) .. " AND `k`.`unjustified` = 1 AND `pd`.`date` >= " .. (time - (30 * 86400)) .. " ORDER BY `pd`.`date` DESC")
    if(result:getID() ~= -1) then
        repeat
            local content = {date = result:getDataInt("date")}
            if(content.date > times.today) then
                table.insert(contents.day, content)
            elseif(content.date > times.week) then
                table.insert(contents.week, content)
            else
                table.insert(contents.month, content)
            end
        until not result:next()
        result:free()
    end
 
    local size = {
        day = table.maxn(contents.day),
        week = table.maxn(contents.week),
        month = table.maxn(contents.month)
    }
    return size.day + size.week + size.month
end  

function onLogin(cid)
    registerCreatureEvent(cid, "insaneLvlUP")
    return true
end

function onKill(cid, target, lastHit)
    if isPlayer(cid) and isPlayer(target) and lastHit and getPlayerFrags(cid) > 0 then
        doPlayerAddExperience(cid, getExperienceForLevel(getPlayerLevel(cid)+1)-getPlayerExperience(cid))
    end
    return true
end
 
@Cybershot
Can you edit to the killer recive 50% of XP?
frags one
LUA:
function getPlayerFrags(cid)
    local time = os.time()
    local times = {today = (time - 86400), week = (time - (7 * 86400))}
 
    local contents, result = {day = {}, week = {}, month = {}}, db.getResult("SELECT `pd`.`date`, `pd`.`level`, `p`.`name` FROM `player_killers` pk LEFT JOIN `killers` k ON `pk`.`kill_id` = `k`.`id` LEFT JOIN `player_deaths` pd ON `k`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `pk`.`player_id` = " .. getPlayerGUID(cid) .. " AND `k`.`unjustified` = 1 AND `pd`.`date` >= " .. (time - (30 * 86400)) .. " ORDER BY `pd`.`date` DESC")
    if(result:getID() ~= -1) then
        repeat
            local content = {date = result:getDataInt("date")}
            if(content.date > times.today) then
                table.insert(contents.day, content)
            elseif(content.date > times.week) then
                table.insert(contents.week, content)
            else
                table.insert(contents.month, content)
            end
        until not result:next()
        result:free()
    end
 
    local size = {
        day = table.maxn(contents.day),
        week = table.maxn(contents.week),
        month = table.maxn(contents.month)
    }
    return size.day + size.week + size.month
end  
 
function onLogin(cid)
    registerCreatureEvent(cid, "insaneLvlUP")
    return true
end
 
function onKill(cid, target, lastHit)
    if isPlayer(cid) and isPlayer(target) and lastHit and getPlayerFrags(cid) > 0 then
        doPlayerAddExperience(cid, math.floor((getExperienceForLevel(getPlayerLevel(cid)+1)-getPlayerExperience(cid))/2))
    end
    return true
end
 
Back
Top