247140593 发表于 2010-5-20 00:24:05

[源码]杀人升级加血等级插件

杀人加血插件,源码
*        Description:    For each kill you gain experience为 points (xp).
*                   After reaching a certain amount of xp, you level up.
*                   With each level you get more HP (Healthpoints) at
*                   the beginning of a round. You start at level 0 with 100 HP.
*
*                   Level:                  HP:
*                     0                   100
*                     1                   120
*                     2                   135
*                     3                   145
*                     4                   150
*
*                   You will get a bonus for difficult kills:
*
*                   Sort of kill:         XP you gain:
*                  为normal kill            10
*                  为Headshot               15
*                  为grenade kill             25
*                  为knifekill                40
*
*   I think that's all you need to know and I hope you'll enjoy it.
*
*       Amok
*
*
**************************************************************************************************/


#include <amxmodx>
#include <fun>

// =============================================
new xp
new level

// =============================================

public event_deathmsg()   // Event called when a deathmessage is displayed
{
        new killer = read_data(1)
        new victim = read_data(2)
        new wpn
        read_data(4,wpn,31)

        // Don't do anything if it's a suicide or TK
        if ( !killer || killer==victim || get_user_team(killer)==get_user_team(victim) )
        {
                return PLUGIN_CONTINUE
        }


        // Do the following if it's a normal kill
        else
        {
                if (killer)
                {
                        set_hudmessage(255,255,255,0.3, 0.53, 0, 3.0, 6.0, 0.5, 0.15, 3)

                        // Xp Bonus
                        if ( equal(wpn,"knife") )
                        {
                                xp += 40
                        }

                        else if ( equal(wpn,"grenade") )
                        {
                                xp += 25
                        }

                        else if (read_data(3))
                        {
                                xp += 15
                        }

                        else
                        {
                                xp += 10
                        }
                        // End of the xp bonus

                        if (xp <= 49)
                        {
                                level = 0
                                show_hudmessage(killer," 司令部: %d / 50 ^n 等级: %d ^n 您目前为士兵,血值: 100" , xp , level )
                        }

                        else if ( (xp > 49) && (xp < 100) )
                        {
                                level = 1
                                show_hudmessage(killer," 司令部: %d / 100 ^n 等级: %d ^n 恭喜您晋升为班长,血值: 120" , xp , level )
                        }

                        else if ( (xp > 99) && (xp < 150) )
                        {
                                level = 2
                                show_hudmessage(killer," 司令部: %d / 150 ^n 等级: %d ^n 恭喜您晋升为排长,血值: 135" , xp , level )
                        }

                        else if ( (xp > 149) && (xp < 200) )
                        {
                                level = 3
                                show_hudmessage(killer," 司令部: %d / 200 ^n 等级: %d ^n 恭喜您晋升为连长,血值: 145" , xp , level )
                        }

                        else if ( (xp > 199) && (xp < 250) )
                        {
                                level = 4
                                show_hudmessage(killer," 司令部: %d / 250 ^n 等级: %d ^n 恭喜您晋升为营长,血值: 165" , xp , level )
                        }

                        else if ( (xp > 249) && (xp < 300) )
                        {
                                level = 5
                                show_hudmessage(killer," 司令部: %d / 300 ^n 等级: %d ^n 恭喜您晋升为团长,血值: 195" , xp , level )
                        }

                        else if ( (xp > 299) && (xp < 350) )
                        {
                                level = 6
                                show_hudmessage(killer," 司令部: %d / 350 ^n 等级: %d ^n 恭喜您晋升为旅长,血值: 205" , xp , level )
                        }

                        else if ( (xp > 349) && (xp < 400) )
                        {
                                level = 7
                                show_hudmessage(killer," 司令部: %d / 400 ^n 等级: %d ^n 恭喜您晋升为师长,血值: 235" , xp , level )
                        }

                        else if ( (xp > 449) && (xp < 500) )
                        {
                                level = 8
                                show_hudmessage(killer," 司令部: %d / 500 ^n 等级: %d ^n 恭喜您晋升为军长,血值: 265" , xp , level )
                        }

                        else if (xp > 499)
                        {
                                level = 9
                                show_hudmessage(killer," 您杀敌无数,万众爱戴,成为了将军!. ^n 司令部: %d ^n 你的终极血值为: 1000" , xp )
                        }

                }
        }
        return PLUGIN_CONTINUE
}
// =============================================

public eNewRound(id)
{
        set_hudmessage(255,255,255,0.3, 0.53, 0, 3.0, 6.0, 0.5, 0.15, 3)

        if (level == 0)
        {
                show_hudmessage(id," 司令部: %d / 50 ^n 您的等级为 士兵: %d ^n 您目前为士兵,还没有杀敌,血值: 100" , xp , level )
                set_user_health(id, 100)
        }

        else if (level == 1)
        {
                show_hudmessage(id," 司令部: %d / 100 ^n 您的等级为 班长: %d ^n 您当前血值: 120" , xp , level )
                set_user_health(id, 120)
        }

        else if (level == 2)
        {
                show_hudmessage(id," 司令部: %d / 150 ^n 您的等级为 排长: %d ^n 您当前血值: 135" , xp , level )
                set_user_health(id, 135)
        }

        else if (level == 3)
        {
                show_hudmessage(id," 司令部: %d / 200 ^n 您的等级为 连长: %d ^n 您当前血值: 145" , xp , level )
                set_user_health(id, 145)
        }

        else if (level == 4)
        {
                show_hudmessage(id," 司令部: %d / 250 ^n 您的等级为 营长: %d ^n 您当前血值: 165" , xp , level )
                set_user_health(id, 165)
        }

        else if (level == 5)
        {
                show_hudmessage(id," 司令部: %d / 300 ^n 您的等级为 团长: %d ^n 您当前血值: 195" , xp , level )
                set_user_health(id, 195)
        }

        else if (level == 6)
        {
                show_hudmessage(id," 司令部: %d / 350 ^n 您的等级为 旅长: %d ^n 您当前血值: 205" , xp , level )
                set_user_health(id, 205)
        }

        else if (level == 7)
        {
                show_hudmessage(id," 司令部: %d / 400 ^n 您的等级为 师长: %d ^n 您当前血值: 235" , xp , level )
                set_user_health(id, 235)
        }

        else if (level == 8)
        {
                show_hudmessage(id," 司令部: %d / 500 ^n 您的等级为 军长: %d ^n 您当前血值: 265" , xp , level )
                set_user_health(id, 265)
        }

        else if (level == 9)
        {
                show_hudmessage(id,"您现为司令部司令: %d^n您已成为将军,获得终极血值1000" , xp)
                set_user_health(id, 1000)
        }
}
// =============================================

public plugin_init()
{
        register_plugin("earn_health_mod","1.0","amok为 微波炉汉化增强版为 by lai为 xiwan")
        register_event("DeathMsg","event_deathmsg","a")
        register_event("RoundTime", "eNewRound", "bc")
}

该原码经测试能成功编译,只是没有数据保存功能,换图后就得重新开始升级
哪位高手若能将用户注册和数据记录代码加上去就尽乎完美了,成功了不妨拿出来分享一下!

dsylmm 发表于 2010-5-20 11:05:40

编译不成功...我编译器的过???

colaawp 发表于 2010-5-20 17:44:38

:(我看不懂无法帮你啊!!!

rsdtt 发表于 2010-5-21 01:47:37

参照魔兽插件

yesterday 发表于 2010-5-21 11:21:48

感谢楼主分享~~

dsylmm 发表于 2010-5-21 11:56:01

求楼主编译器...

247140593 发表于 2010-5-21 13:12:59

编译器软件叫Uedit,自己到百度去搜索下载

4楼的说“参照魔兽插件”,我不大懂,能请阁下帮我弄一下吗?我借用lanclub的原代码就不能编译成功,能花钱买你的时间指教一下吗?

fhzcnsdiv 发表于 2010-5-21 15:05:31

本帖最后由 fhzcnsdiv 于 2010-5-21 15:10 编辑

这年代~~如果是C++的话~可以使用SQLite~~

话说~这语法怎么越看越晕啊

发现了问题~~为什么每一行代码后面没有用分号隔开?这因该是违反C++编译的规范的~~

247140593 发表于 2010-5-21 15:43:06

语法规范与否,但我是确定该代码是可以编译成amxx的,看一下我修改的代码,什么都不用改,你直接编译就行了,只是没有数据库代码而己,你帮我添上去吧

a314205702a 发表于 2010-5-28 15:13:15

看不懂,不贵我也想学学!
页: [1] 2
查看完整版本: [源码]杀人升级加血等级插件