[ZP][优化] 限制得到子弹包的数量

Home Home
引用 | 编辑 calove00
2010-07-19 19:38
楼主
推文 x0
先打开zombie_plague40.sma

找(2165Line)
复制程式
// Reward ammo packs for every [ammo damage] dealt


复制程式
            while (g_damagedealt[attacker] > get_pcvar_num(cvar_ammodamage))
            {
                g_ammopacks[attacker]++
                g_damagedealt[attacker] -= get_pcvar_num(cvar_ammodamage)
            }

修改成
复制程式
            while (g_damagedealt[attacker] > get_pcvar_num(cvar_ammodamage))
            {
                g_damagedealt[attacker] -= get_pcvar_num(cvar_ammodamage)
                if(g_ammopacks[attacker] < 160) // 现在子弹包上限为160
                    g_ammopacks[attacker]++
            }


以下是 将 管理员/VIP 和 普通玩家 的设定至限制不同

有两个方法

第一、(这是适用于ADMIN_LEVEL_A - ADMIN_LEVEL_H)


复制程式
            while (g_damagedealt[attacker] > get_pcvar_num(cvar_ammodamage))
            {
                g_ammopacks[attacker]++
                g_damagedealt[attacker] -= get_pcvar_num(cvar_ammodamage)
            }

修改成
复制程式
            while (g_damagedealt[attacker] > get_pcvar_num(cvar_ammodamage))
            {
                g_damagedealt[attacker] -= get_pcvar_num(cvar_ammodamage)
                if(g_ammopacks[attacker] < 200 && is_user_admin(attacker)) // VIP或管理员统一限制 (限制200)
                    g_ammopacks[attacker]++
                else if(g_ammopacks[attacker] < 160) // 普通玩家 (限制160)
                    g_ammopacks[attacker]++
            }

第二、(这是将每个不同的等级配置, 不建议使用)


复制程式
            while (g_damagedealt[attacker] > get_pcvar_num(cvar_ammodamage))
            {
                g_ammopacks[attacker]++
                g_damagedealt[attacker] -= get_pcvar_num(cvar_ammodamage)
            }

修改成
复制程式
            while (g_damagedealt[attacker] > get_pcvar_num(cvar_ammodamage))
            {
                g_damagedealt[attacker] -= get_pcvar_num(cvar_ammodamage)
                if(g_ammopacks[attacker] < 200 && get_user_flags(attacker) & ADMIN_LEVEL_A) //限制拥有LEVEL_A(限制200)
                    g_ammopacks[attacker]++
                else if(g_ammopacks[attacker] < 160) // 普通玩家 (限制160)
                    g_ammopacks[attacker]++
            }




以下是再分开每个LEVEL设定

复制程式
                     while (g_damagedealt[attacker] > get_pcvar_num(cvar_ammodamage))
                     {
                            g_damagedealt[attacker] -= get_pcvar_num(cvar_ammodamage)
                            if(g_ammopacks[attacker] < 200 && get_user_flags(attacker) & ADMIN_LEVEL_A) // LEVEL_A (200)
                                   g_ammopacks[attacker]++
                            else if(g_ammopacks[attacker] < 190 && get_user_flags(attacker) & ADMIN_LEVEL_B) // LEVEL_B (190)
                                   g_ammopacks[attacker]++
                            else if(g_ammopacks[attacker] < 180 && get_user_flags(attacker) & ADMIN_LEVEL_C) // LEVEL_C (190)
                                   g_ammopacks[attacker]++
                            else if(g_ammopacks[attacker] < 160) // 普通玩家(160)
                                   g_ammopacks[attacker]++
                     }

教学已完....(我真的很无聊-.- , 因为想不起做什么就打教学....)表情

献花 x2
引用 | 编辑 森之千手
2010-07-19 22:17
1楼
  
if(g_ammopacks[attacker] < 200 && is_user_admin(id)) // VIP或管理员统一限制 (限制200)


改成
if(g_ammopacks[attacker] < 200 && is_user_admin(attacker)) // VIP或管理员统一限制 (限制200)


比较好些

献花 x0
引用 | 编辑 calove00
2010-07-20 13:15
2楼
  
唔系改好D -.-


系我打错左.... 表情

献花 x1
引用 | 编辑 i-c0112
2010-08-02 19:43
3楼
  
这样的话不是只在人类攻击伤害累积达一定值时才有作用吗
其他状况都没设定到

献花 x0
引用 | 编辑 hemazizi
2010-08-17 16:18
4楼
  
那不限要怎样 表情

献花 x0
引用 | 编辑 dennis888
2010-11-20 10:22
5楼
  
子弹包应该是愈多愈好,加上限制不可超过160子弹包太刻薄-.-
如限制,限制400子弹包好些=.=

献花 x0
引用 | 编辑 qma
2010-11-21 18:38
6楼
  
哈哈 这个不错 用来开F 的

献花 x0
引用 | 编辑 jasonwks
2010-11-22 15:26
7楼
  
回 覆 锁 定 :

  此回覆已被锁定,只有『管理员及回覆者』看的到 !!!



献花 x0
引用 | 编辑 zdt
2011-01-30 21:55
8楼
  
其实为什么子弹包到达一定数值后会弹GAME呢?到了1000多就会了

献花 x0