Limite de Skills

lucasromero0110
em Resolvidos

lucasromero0110

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 11/02/12Posts: 22

Então pessoal, creio que aqui seja a parte onde mexão com sources.
Eu queria por limite em skills por exemplo:
O Player pega skill 80, depois disso a skill não sobe mais.
Queria por o limite para:
Distance, Axe, Club, Sword.


Versão: 8.54
Só isso, espero a resposta.
Valeu

Te ajudei ou não? REP+ button_ok.pnguaehueha'

othereality

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 18/01/11Posts: 343Char no Tibia: Zodriac

em creaturescripts.xml adiciona isso:

    <event type="login" name="SkillStagesLogin" event="script" value="skillstageslogin.lua"/> 
    <event type="advance" name="SkillStagesAdvance" event="script" value="skillstagesadvance.lua"/>

e cria os seguintes arquivos .lua:

 

 

skillstagesadvance

local config = {
savePlayersOnAdvance = true
}


function onAdvance(cid, skill, oldLevel, newLevel)
    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  

skillstageslogin

dofile(getDataDir() .. "creaturescripts/scripts/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  

stagesconfig

skillConfig = {skill = getConfigValue('rateSkill'), magiclevel = getConfigValue('rateMagic')} skillStages = {} 
skillStages[SKILL_FIST] =  {{0,20},{20,30},{30,40},{40,50},{50,60},{65,0}}
skillStages[SKILL_CLUB] =  {{0,20},{20,30},{30,40},{40,50},{50,60},{65,0}}
skillStages[SKILL_SWORD] =  {{0,20},{20,30},{30,40},{40,50},{50,60},{65,0}}
skillStages[SKILL_AXE] =  {{0,20},{20,30},{30,40},{40,50},{50,60},{65,0}}
skillStages[SKILL_DISTANCE] =  {{0,20},{20,30},{30,40},{40,50},{50,60},{65,0}}
skillStages[SKILL_SHIELD] =  {{0,40},{20,60},{30,80},{40,100},{50,120},{65,0}}
--skillStages[SKILL_FISHING] =  {{0,15},{25,10},{45,5},{50,0}}
skillStages[SKILL__MAGLEVEL] =  {{0,0}}
showInfoOnAdvance = false -- send player message about skill rate change 
showInfoOnLogin = true -- send player message about skill rates when he login 
  
function getPlayerSkillRatesText(cid) 
 local skillInfo = getPlayerRates(cid) 
 return "skill rates: [ Magic Level: " .. skillInfo[SKILL__MAGLEVEL] * skillConfig.magiclevel .. "x || Fist: " .. skillInfo[SKILL_FIST] * skillConfig.skill .. "x | Club: " .. skillInfo[SKILL_CLUB] * skillConfig.skill .. "x |  Sword: " .. skillInfo[SKILL_SWORD] * skillConfig.skill .. "x | Axe: " .. skillInfo[SKILL_AXE] * skillConfig.skill .. "x |  Distance: " .. skillInfo[SKILL_DISTANCE] * skillConfig.skill .. "x | Shielding: " .. skillInfo[SKILL_SHIELD] * skillConfig.skill .. "x | Fishing: " .. skillInfo[SKILL_FISHING] * skillConfig.skill .. "x ]" 
end  

Nesse caso o skill fist por exemplo está assim:
a partir do level 0 rate 20
a partir do level 20 rate 30
a partir do level 30 rate 40
a partir do level 40 rate 50
a partir do level 50 rate 60
e a partir do 65 rate 0
level no caso se refere ao level do skill e não do player.
então o skill máximo está configurado para 65.

ps: a rate vai aumentando pq eu usei assim no uwnia, mas vc pode manter a mesmo ou ir diminuindo.
pps: não renomeia os arquivos que pode dar merda, usa os nomes que eu botei aí pra garantir.

*não fui eu que fiz o script. (não lembro quem fez pra mim ou de onde peguei, faz tempo.)

não me dê rep

apenas leia abaixo

###motivos pra você clicar aqui agora e entrar no Uwnia99 OT###

 

Temos 15 classes e está sempre lançando mais.
A classe Assassin fica invisível até pra
 players :rip:

A classe Cake Guardian tem uma magia de refletir dano

Temos Eventos próprios acontecendo todo momento

Temos várias sprites únicas do OT

 A classe Feral Druid se transforma em vários bichos e tem magias diferentes dependendo da forma que está  :beurk:

Temos um contato muito grande entre desenvolvedor e jogador

 Temos uma classe chamada CAKE GUARDIAN! ELE ATIRA BOLOS!!!!! :love:

Não temos sistema vip e não vamos ter

Não vendemos nenhum tipo de vantagem na loja do site e nem vamos vender (apenas cosméticos)

 24h  :ph34r:

 

Entre no site clicando aqui!

lucasromero0110

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 11/02/12Posts: 22

Opa, fiquei um tempo se vir no forum, mais obrigado ai pela ajuda.
Rep +

@Reportado para fechar, pedido sanado.

Te ajudei ou não? REP+ button_ok.pnguaehueha'

zipter98

avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 20/09/12Posts: 2553Gênero: Masculino

Resolvido, fechado e movido para pedidos e duvidas resolvidos.

Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.