魔力宝贝

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz

[GA] expSetting.lua--阶梯经验 在线经验加成 经验道具

[复制链接]
发表于 前天 01:58 | 显示全部楼层 |阅读模式
EXP_RATE_LIST =
{
    exprate_20 = 2;
    exprate_70 = 2;
    exprate_125 = 2;
    exprate_160 = 2;
};

local ADD_EXP_RATE = 1;
local magic_word = "XXsYZS";
local INIT_B_SKILL_RATE = 1;
local ADD_B_SKILL_RATE = 0;
local INIT_P_SKILL_RATE = 1;
local ADD_P_SKILL_RATE = 0;

Delegate.RegDelTalkEvent("ExpSettingTalkEvent");



function pequipitem(index,itemid)

for k=0,7 do
    local itemindex = Char.GetItemIndex(index,k);
        if(itemindex >= 0)then
            if(itemid == Item.GetData(itemindex, %道具_ID%))then
                        return true;
                end
        end

end
return false;

end






function ExpSettingTalkEvent(index, msg, color, range, size)
        local tbl = {};
        local cnt = 1;
        if(check_msg(msg,"["..magic_word.." setexprate ")) then
                for token in string.gmatch(msg, "[%d]+") do
                   if(tonumber(token)~=nil) then
                                ADD_EXP_RATE = tonumber(token);
--                                NLG.SystemMessage(index,"目前战斗经验 "..INIT_EXP_RATE.."倍, 加成经验 "..ADD_EXP_RATE.."倍, 总计经验 "..INIT_EXP_RATE * (ADD_EXP_RATE + 1).."倍");
                                NLG.SystemMessage(index,"系统调整了战斗经验加成,目前总经验附加了"..ADD_EXP_RATE.."%");
                                return 0;
                        end
                end
                return 0;
        end
        if(check_msg(msg,"["..magic_word.." setbattleskillrate ")) then
                for token in string.gmatch(msg, "[%d]+") do
                   if(tonumber(token)~=nil) then
                                ADD_B_SKILL_RATE = tonumber(token);
                                NLG.SystemMessage(index,"系统调整了战斗技能经验加成,目前总经验附加了"..ADD_B_SKILL_RATE.."%");
                                return 0;
                        end
                end
                return 0;
        end
        if(check_msg(msg,"["..magic_word.." setproductskillrate ")) then
                for token in string.gmatch(msg, "[%d]+") do
                   if(tonumber(token)~=nil) then
                                ADD_P_SKILL_RATE = tonumber(token);
                                NLG.SystemMessage(index,"系统调整了生产技能经验加成,目前总经验附加了"..ADD_P_SKILL_RATE.."%");
                                return 0;
                        end
                end
                return 0;
        end
end


Delegate.RegDelBattleSkillExpEvent("ExpSettingBattleSkillExpEvent");
Delegate.RegDelProductSkillExpEvent("ExpSettingProductSkillExpEvent");
Delegate.RegDelGetExpEvent("ExpSettingGetExpEvent");

function ExpSettingBattleSkillExpEvent(index, skill, exp)
        exp = exp * INIT_B_SKILL_RATE;
        if(ADD_B_SKILL_RATE>0) then
                exp = exp * (1 + ADD_B_SKILL_RATE/100);
        end
       
        return math.floor(exp);
end

function ExpSettingProductSkillExpEvent(index, skill, exp)
        exp = exp * INIT_P_SKILL_RATE;
        if(ADD_P_SKILL_RATE>0) then
                exp = exp * (1 + ADD_P_SKILL_RATE/100);
        end
        return math.floor(exp);
end

function ExpSettingGetExpEvent(index, exp)
        if(VaildChar(index)==false)then
                return exp;
        end
       
        local lv = Char.GetData(index,%对象_等级%);
        local THIS_RATE = 0;
    if (lv <= 20) then
        THIS_RATE = EXP_RATE_LIST.exprate_20;
    elseif (lv <= 70) then
        THIS_RATE = EXP_RATE_LIST.exprate_70;
    elseif (lv <= 125) then
        THIS_RATE = EXP_RATE_LIST.exprate_125;
    elseif (lv <= 160) then
        THIS_RATE = EXP_RATE_LIST.exprate_160;
    end
       
        exp = exp * tonumber(THIS_RATE);
        if(ADD_EXP_RATE > 0) then
                if(Char.GetData(index,%对象_等级%) >= 1)then
                        exp = exp * (1 + ADD_EXP_RATE/100);
                end
        end
       
       
        return exp;
end

回复

使用道具 举报

Archiver|魔力研究社

GMT+8, 2025-5-12 18:14 , Processed in 0.121560 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表