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

8.60 0.4 Need Command !skillrates

You must have command !server info? Modify it to display ether info from config or just write whatever you want in it.
 
8.60 0.4 Need Command !skillrates

View attachment 82772
Is it what you need?
I'm not sure if it works 100%

data/creaturescripts/creaturescripts.xml place:
Lua:
<event type="login" name="SkillStagesLogin" event="script" value="skillstageslogin.lua"/>
<event type="advance" name="SkillStagesAdvance" event="script" value="skillstagesadvance.lua"/>

data/creaturescripts/scripts place:
skillstagesadvance.lua
Code:
dofile(getDataDir() .. "lib/stagesconfig.lua")

function onAdvance(cid, skill, oldLevel, newLevel)
    if(skillStages[skill] ~= nil) then
        local skillRate = 1
        local oldRates = getPlayerRates(cid)
        for i, skillRateInfo in pairs(skillStages[skill]) do
            if(newLevel >= skillRateInfo[1]) then
                skillRate = skillRateInfo[2]
            else
                break
            end
        end
        doPlayerSetRate(cid, skill, skillRate)
        if(showInfoOnAdvance and skillRate ~= oldRates[skill]) then
            if(skill >= 0 and skill <= 6) then
                configRate = skillConfig.skill
            else
                configRate = skillConfig.magiclevel
            end
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, SKILL_NAMES[skill] .. " rate alterado de " .. oldRates[skill] * configRate .. "x para " .. skillRate * configRate .. "x. " .. getPlayerSkillRatesText(cid))
        end
    end
    return true
end

data/creaturescripts/scripts place:
skillstageslogin.lua

Code:
dofile(getDataDir() .. "lib/stagesconfig.lua")

function onLogin(cid)
    for skill, skillStage in pairs(skillStages) do
        if(skill >= 0 and skill <= 6) then
            nowSkill = getPlayerSkillLevel(cid, skill)
        else
            nowSkill = getPlayerMagLevel(cid, true)
        end
        for i, skillRateInfo in pairs(skillStage) do
            if(nowSkill >= skillRateInfo[1]) then
                skillRate = skillRateInfo[2]
            else
                break
            end
        end
        doPlayerSetRate(cid, skill, skillRate)
    end
    if(showInfoOnLogin) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, getPlayerSkillRatesText(cid))
    end
    registerCreatureEvent(cid, "SkillStagesAdvance")
    return TRUE
end


now in data/talkaction/talkaction.xml place:
Code:
<talkaction words="!skillrates" event="script" value="skillrates.lua"/>

data/talkaction/scripts
skillrates.lua

Code:
dofile(getDataDir() .. "lib/stagesconfig.lua")

skillConfig = {skill = getConfigValue('rateSkill'), magiclevel = getConfigValue('rateMagic')}
skillStages = {}
skillStages[SKILL_FIST] = {{0,10},{60,0}}
skillStages[SKILL_CLUB] = {{0,10},{60,6},{80,0}}
skillStages[SKILL_SWORD] = {{0,10},{60,6},{80,0}}
skillStages[SKILL_AXE] = {{0,10},{60,6},{80,0}}
skillStages[SKILL_DISTANCE] = {{0,10},{60,6},{80,0}}
skillStages[SKILL_SHIELD] = {{0,10},{60,6},{80,0}}
skillStages[SKILL_FISHING] = {{0,10},{60,6},{80,0}} -- voce pode retirar os -- desse script para ativar, por padrao esta desativado
skillStages[SKILL__MAGLEVEL] = {{0,5},{100,4},{120,3},{135,2},{150,1},{155,0}}

function onSay(cid, words, param, channel)
    local skillInfo = getPlayerRates(cid)
    doPlayerPopupFYI(cid, "~[Your Skills Rates]~\nMagic Level: " .. skillInfo[SKILL__MAGLEVEL] * skillConfig.magiclevel .. "x\nFist Fighting: " .. skillInfo[SKILL_FIST] * skillConfig.skill .. "x\nClub Fighting: " .. skillInfo[SKILL_CLUB] * skillConfig.skill .. "x\nSword Fighting: " .. skillInfo[SKILL_SWORD] * skillConfig.skill .. "x\nAxe Fighting: " .. skillInfo[SKILL_AXE] * skillConfig.skill .. "x\nDistance Fighting: " .. skillInfo[SKILL_DISTANCE] * skillConfig.skill .. "x\nShielding: " .. skillInfo[SKILL_SHIELD] * skillConfig.skill .. "x")
    return true
end

Now in data/lib/create a file called stagesconfig.lua
place inside:
Code:
skillConfig = {skill = getConfigValue('rateSkill'), magiclevel = getConfigValue('rateMagic')}
skillStages = {}
skillStages[SKILL_FIST] = {{0,10},{60,0}}
skillStages[SKILL_CLUB] = {{0,10},{60,6},{80,0}}
skillStages[SKILL_SWORD] = {{0,10},{60,6},{80,0}}
skillStages[SKILL_AXE] = {{0,10},{60,6},{80,0}}
skillStages[SKILL_DISTANCE] = {{0,10},{60,6},{80,0}}
skillStages[SKILL_SHIELD] = {{0,10},{60,6},{80,0}}
skillStages[SKILL_FISHING] = {{0,10},{60,6},{80,0}} -- voce pode retirar os -- desse script para ativar, por padrao esta desativado
skillStages[SKILL__MAGLEVEL] = {{0,5},{100,4},{120,3},{135,2},{150,1},{155,0}}
showInfoOnAdvance = true -- envia uma nova mensagem com a sua nova rate
showInfoOnLogin = true -- envia mensagem da rate ao jogador ao logar

function getPlayerSkillRatesText(cid)
local skillInfo = getPlayerRates(cid)
return "Rates Info: [ Magic Level: " .. skillInfo[SKILL__MAGLEVEL] * skillConfig.magiclevel .. "x || Fist Fighting: " .. skillInfo[SKILL_FIST] * skillConfig.skill .. "x | Club Fighting: " .. skillInfo[SKILL_CLUB] * skillConfig.skill .. "x |  Sword Fighting: " .. skillInfo[SKILL_SWORD] * skillConfig.skill .. "x | Axe Fighting: " .. skillInfo[SKILL_AXE] * skillConfig.skill .. "x | Distance Fighting: " .. skillInfo[SKILL_DISTANCE] * skillConfig.skill .. " | Shielding: " .. skillInfo[SKILL_SHIELD] * skillConfig.skill .. "x ]"
end
 
Back
Top