找回密码
 注册
搜索
查看: 1725|回复: 8

master 代码请教

[复制链接]
门派:不明
发表于 2010-4-14 23:50:40 | 显示全部楼层 |阅读模式
8M以后挂机经验减少的相关代码
//增加vip加成修正         
         if (query("registered")==5)
                oexp = iexp * gift_mul * 110 /10000;
        else if (query("registered")==4)
                oexp = iexp * gift_mul * 110 /10000;
        else if (query("registered")==3)
                oexp = iexp * gift_mul * 105 /10000;
        else  
                oexp = iexp * gift_mul /100;
               
        /*奖励控制函数*/
        k = uptime()-query_temp("time");


         if (!job_flag && k>0
                && query("combat_exp") > 8000000
                && query_condition("db_exp")<1){
                l = query("combat_exp") - query_temp("combat_exp") + oexp;
                m = l*3600/k;
        
          m = to_int(m/(1.0+(query("int")-20)*0.03)); //增加悟性修正
          if (query("registered")==5)
                        m = to_int(m/1.1);
                else if (query("registered")==4)
                        m = to_int(m/1.1);
                else if (query("registered")==3)
                        m = to_int(m/1.05);
         
          if (time() - query("last_loseletter") > 3600){
                        if(m<4000) oexp = oexp;
                        else if(m<5000) oexp = oexp * 60/100;
                        else if(m<6000) oexp = oexp * 50/100;
                        else if(m<7000) oexp = oexp * 40/100;
                        else if(m<8000) oexp = oexp * 30/100;
                        else oexp =  oexp * 20/100;        
                }
                else{
                        if(m<9000) oexp = oexp;
                        else if( m<10000) oexp = oexp * 80/100;
                        else if( m<11000) oexp = oexp * 70/100;
                        else if( m<12000) oexp = oexp * 60/100;
                        else oexp = oexp * 50/100;        
                }
        }
门派:不明
 楼主| 发表于 2010-4-14 23:52:27 | 显示全部楼层
if (query("registered")==5)
                oexp = iexp * gift_mul * 110 /10000;
        else if (query("registered")==4)
                oexp = iexp * gift_mul * 110 /10000;
        else if (query("registered")==3)
                oexp = iexp * gift_mul * 105 /10000;
        else  
                oexp = iexp * gift_mul /100;

这里应该是VIP级别奖励制度吧?
registered=5和4分别奖励10%
registered=3奖励5%

**
registered级别无经验加成奖励??
门派:不明
 楼主| 发表于 2010-4-14 23:53:40 | 显示全部楼层
m = to_int(m/(1.0+(query("int")-20)*0.03)); //增加悟性修正
          if (query("registered")==5)
                        m = to_int(m/1.1);
                else if (query("registered")==4)
                        m = to_int(m/1.1);
                else if (query("registered")==3)
                        m = to_int(m/1.05);

这里又有关于wx的算法。。
门派:不明
 楼主| 发表于 2010-4-14 23:54:08 | 显示全部楼层
if (time() - query("last_loseletter") > 3600){
                        if(m<4000) oexp = oexp;
                        else if(m<5000) oexp = oexp * 60/100;
                        else if(m<6000) oexp = oexp * 50/100;
                        else if(m<7000) oexp = oexp * 40/100;
                        else if(m<8000) oexp = oexp * 30/100;
                        else oexp =  oexp * 20/100;        
                }
                else{
                        if(m<9000) oexp = oexp;
                        else if( m<10000) oexp = oexp * 80/100;
                        else if( m<11000) oexp = oexp * 70/100;
                        else if( m<12000) oexp = oexp * 60/100;
                        else oexp = oexp * 50/100;        
                }

这里
门派:不明
 楼主| 发表于 2010-4-14 23:56:58 | 显示全部楼层
好像是如果有lost_letter标示>3600
这里3600是按什么计算呢?


                        if(m<4000) oexp = oexp;
                        else if(m<5000) oexp = oexp * 60/100;
                        else if(m<6000) oexp = oexp * 50/100;
                        else if(m<7000) oexp = oexp * 40/100;
                        else if(m<8000) oexp = oexp * 30/100;
                        else oexp =  oexp * 20/100;        


m<4000

                        if(m<9000) oexp = oexp;
                        else if( m<10000) oexp = oexp * 80/100;
                        else if( m<11000) oexp = oexp * 70/100;
                        else if( m<12000) oexp = oexp * 60/100;
                        else oexp = oexp * 50/100;        

如果么有Lost_letter标示
exp<9000 exp 无变动

大于9K小于10   大于10K小于11K  大于11K小于12K
EXP递减
大于12K 50%?
exp 不变

下面依次类推  递减
门派:不明
 楼主| 发表于 2010-4-14 23:57:59 | 显示全部楼层
if (!job_flag && k>0
                && query("combat_exp") > 8000000
                && query_condition("db_exp")<1){
                l = query("combat_exp") - query_temp("combat_exp") + oexp;
                m = l*3600/k;
门派:不明
 楼主| 发表于 2010-4-14 23:59:49 | 显示全部楼层
这里的db_exp是什么含义?
double_exp ??

是一个什么状态呢??

job_flag 和 k>0 又是什么变量 ??

含义是什么?

l = query("combat_exp") - query_temp("combat_exp") + oexp;


这里算法费解了
发表于 2010-4-15 00:47:48 | 显示全部楼层
db_exp 是 ebook

query_temp("combat_exp")  是 上线时的exp

job_flag  是不受影响job的标志
门派:不明
发表于 2010-4-15 13:43:32 | 显示全部楼层
db_exp是经验之书的标记?



无语了。。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|书剑永恒MUD ( 闽ICP备14012032号|闽公网安备 35050202000162号 )

GMT+8, 2025-5-28 04:53 , Processed in 0.022649 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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