搜索
查看: 4121|回复: 14

麻烦Rulzy斑竹修改下

[复制链接]
发表于 2009-9-26 01:22:30 | 显示全部楼层 |阅读模式 来自 中国–广东–深圳–南山区
把那个插件修改成不兼容无限金钱..那些什么奖励都不要..只需要到每局结束的时候只在屏幕中间显示最佳杀人
谢谢Rulzy一直的帮助

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注个册吧

×
发表于 2009-9-26 11:15:28 | 显示全部楼层 来自 中国–安徽–合肥
你应该把源码贴出来!而非上传之下载附件
回复

使用道具 举报

 楼主| 发表于 2009-9-26 12:22:12 | 显示全部楼层 来自 中国–广东–深圳–南山区
/* Rewarding
ver 0.1 By Zhao on 2004.12.4
*/
#include <amxmodx>
#include <cstrike>
#include <csstats>
#include <unlimited_money>

#define BIG_MONEY_INDEX 16

new playerkilled[33]

new rewards[20]={50,100,300,500,1000,3000,5000,8000,10000,15000,20000,25000,40000,50000,80000,100000,150000,200000,500000,900000}
new g_firstblood,Round_Control
new g_random,g_roundcount
new rewardedbig,g_iRoundEndTriggered

public client_connect(id){
        playerkilled[id]=0;
}

public ramdon_money(params[]){
        new killer=params[0]
        new oldamount=params[1]
        new amount
        new killername[32]
        new random_range,randomvalue
        random_range=(rewardedbig)?BIG_MONEY_INDEX:20//控制大额的奖励不会出现太多次
        for(;;){
                randomvalue=random(random_range)
                amount=rewards[randomvalue]
                if (amount!=oldamount) break;
        }
        get_user_name(killer,killername,31)
        if (g_random>0){
                g_random--
                set_hudmessage(0,255,0,0.05,0.25,0, 0.02, 0.4, 0.01, 0.1, 2)
                show_hudmessage(0,"%s一马当先,奋勇杀敌,奖励%6d金钱",killername,amount)
                new param[2]
                param[0]=killer        
                param[1]=amount
                set_task(0.3,"ramdon_money",0,param,1)
        }else{
                if(randomvalue>=BIG_MONEY_INDEX) rewardedbig=1
                //set_hudmessage(0,255,0,0.75,0.18,0, 1.0, 5.0, 0.1, 0.2, 1)
                set_hudmessage(0,255,0,0.05, 0.25, 0, 0.02, 6.0, 0.01, 0.1, 2)
                show_hudmessage(0,"%s一马当先,奋勇杀敌,奖励%6d金钱",killername,amount)
                cs_set_user_money2(killer, cs_get_user_money2(killer)+amount)
                new msg[512]
                format(msg,511,"^x03%s^x01 一马当先,奋勇杀敌,奖励^x04 %d ^x01金钱",killername,amount)
                client_color(0,killer,msg)
        }
}

//public client_death(killer,victim,wpnindex,hitplace,TK){
public eDeathMsg(){
        new killer,victim,TK
        killer=read_data(1)
        if(!killer) return PLUGIN_CONTINUE
        victim=read_data(2)
        TK=(get_user_team(killer)==get_user_team(victim))?1:0
        //headshot=read_data(3)
        new wpnname[4]
        read_data(4,wpnname,3)
        new killername[32]
        //if (wpnindex==CSW_C4||TK) return PLUGIN_CONTINUE
        if(equal(wpnname,"c4")||TK) return PLUGIN_CONTINUE
        //        new headshot = ( hitplace==HIT_HEAD ) ? 1:0
        new selfkill = ( killer==victim ) ? 1:0
        if (selfkill) return PLUGIN_CONTINUE
        playerkilled[killer]++
        if(equal(wpnname,"kni")){
                cs_set_user_money2(killer, cs_get_user_money2(killer)+10000)
                get_user_name(killer,killername,31)
                set_hudmessage(0,255,0,0.05,0.25,0, 0.2, 6.0, 0.1, 0.1, 2)
                //set_hudmessage(0,255,0,0.75,0.18,0, 1.0, 1.0, 0.1, 0.2, 12)
                show_hudmessage(0,"%s使用匕首杀敌,奖励10000金钱",killername)
                new msg[100]
                format(msg,99,"^x03%s^x01使用匕首杀敌,奖励^x04 10000 ^x01 金钱",killername)
                client_color(0,killer,msg)
                //log_message("%s使用匕首杀敌,奖励10000金钱",killername)
        }
        if (g_firstblood){
                g_firstblood=0
                g_random=6
                new param[2]
                param[0]=killer
                param[1]=0;
                ramdon_money(param)
        }        
        return PLUGIN_CONTINUE
}

public client_color(playerid,colorid,msg[]){
        message_begin(playerid?MSG_ONE:MSG_ALL, get_user_msgid("SayText"), {0,0,0}, playerid)
        write_byte(colorid)
        write_string(msg)
        message_end()
}

public new_round(){
        new i
        if (!Round_Control){
                g_roundcount++
                Round_Control = 1
                g_firstblood=1
                g_iRoundEndTriggered=0
                for(i=0;i<=32;i++)playerkilled=0;        
        }
}

public eEndRound(){
        if (g_iRoundEndTriggered) return PLUGIN_CONTINUE
        g_iRoundEndTriggered=1
        Round_Control=0
        new i,maxkillcount
        maxkillcount=0
        new RoundEndMsg[513],ipos
        new playerslist[32],playerscount
        ipos=0
        ipos+=format(RoundEndMsg[ipos],512-ipos,"本局杀敌最多的玩家")
        
        get_players(playerslist,playerscount)//Get  Players
        for(i=0;i<playerscount;i++){
                if(playerkilled[playerslist]&&playerkilled[playerslist]>maxkillcount) maxkillcount=playerkilled[playerslist]
        }
        if(maxkillcount){
                new playername[33],playeradded=0
                ipos+=format(RoundEndMsg[ipos],512-ipos,"  (杀%d人)^n---------------------------------^n",maxkillcount)
                for(i=0;i<playerscount;i++){
                        if(playerkilled[playerslist]==maxkillcount){//WeiGet this players
                                get_user_name(playerslist,playername,32)
                                ipos+=format(RoundEndMsg[ipos],512-ipos,"%s^n",playername)
                                ++playeradded
                                if(playeradded>=2){
                                        ipos+=format(RoundEndMsg[ipos],512-ipos,"......^n")
                                        break;
                                }
                        }
                }
        }else{
                ipos+=format(RoundEndMsg[ipos],512-ipos,"^n---------------------------------^n大家太客气了,都没有杀敌^n")
        }
        ipos+=format(RoundEndMsg[ipos],512-ipos,"^n金钱最多的玩家^n---------------------------------^n")        
        new maxctmoney=0,maxtmoney=0,maxmoneytid=0,maxmoneyctid=0
        new id, usermoney
        for(i=0;i<playerscount;i++){
                id=playerslist
                usermoney=cs_get_user_money2(id)
                if(cs_get_user_team(id)==CS_TEAM_T){
                        if(usermoney>maxtmoney){
                                maxtmoney=usermoney
                                maxmoneytid=id
                        }
                }else {
                        if(usermoney>maxctmoney){
                                maxctmoney=usermoney
                                maxmoneyctid=id
                        }
                }
        }
        new ctname[32],tname[32]
        if(maxmoneytid)
                get_user_name(maxmoneytid,tname,31)
        else
                copy(tname, 31, "没有人")
        if(maxmoneyctid)
                get_user_name(maxmoneyctid,ctname,32)
        else
                copy(ctname, 31, "没有人")
        ipos+=format(RoundEndMsg[ipos],512-ipos,"反恐小组^n%s   %d^n恐怖分子^n%s   %d",ctname,maxctmoney,tname,maxtmoney)
        set_hudmessage( 49,179,113, -1.0, 0.55, 2, 0.02, 5.0, 0.01, 0.01, 3 )
        show_hudmessage(0,RoundEndMsg)
        return PLUGIN_CONTINUE
}

public eRestart()
{
        g_roundcount = 0
        g_firstblood = 0
        Round_Control = 0
        rewardedbig = 0
}

public plugin_init(){
        register_plugin("First Killer Reward","0.1","Zhao")
        register_event("RoundTime", "new_round", "bc")         
        register_event("DeathMsg","eDeathMsg","a")
        register_event("SendAudio", "eEndRound", "a", "2&%!MRAD_terwin","2&%!MRAD_ctwin","2&%!MRAD_rounddraw")
        register_event("TextMsg","eRestart","a","2&#Game_C","2&#Game_w")
        g_firstblood=1
        rewardedbig = 0
        g_roundcount=0
}
/* UTF-8 func by www.DT-Club.net */
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil\\ fcharset134 Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang2052\\ f0\\ fs16 \n\\ par }
*/
回复

使用道具 举报

 楼主| 发表于 2009-9-26 12:24:05 | 显示全部楼层 来自 中国–广东–深圳–南山区
就只需要剩下一个每局最后的时候屏幕中间显示一个
                                     本局杀敌最多的玩家
                                          杀敌X个
                                             ID
                                                                   ID
回复

使用道具 举报

发表于 2009-9-26 15:52:13 | 显示全部楼层 来自 中国–安徽–合肥
你这源码本身就有问题!无法编译
回复

使用道具 举报

发表于 2009-9-26 15:52:37 | 显示全部楼层 来自 中国–福建–漳州
本帖最后由 Rulzy 于 2009-9-27 13:08 编辑
  1. #include <amxmodx>
  2. #include <cstrike>

  3. new g_playerkilled[33];
  4. new g_maxplayers = 32;

  5. public plugin_init()
  6. {
  7.         register_plugin("Best Killer", "1.0", "Rulzy");
  8.         register_event("DeathMsg","eDeathMsg", "a", "1>0");
  9.         register_event("HLTV", "eNewRound", "a", "1=0", "2=0");
  10.         register_logevent("eEndRound", 2, "0=World triggered", "1=Round_End");
  11.         g_maxplayers = get_maxplayers();
  12. }

  13. public client_connect(id)
  14. {
  15.         g_playerkilled[id] = 0;
  16. }

  17. public eNewRound()
  18. {
  19.         for(new i=1; i<=g_maxplayers; i++)
  20.                 g_playerkilled[i] = 0;
  21. }

  22. public eDeathMsg()
  23. {
  24.         new killer=read_data(1);
  25.         if(!is_user_connected(killer)) return PLUGIN_CONTINUE;
  26.         new victim=read_data(2);
  27.         if(!is_user_connected(victim)) return PLUGIN_CONTINUE;
  28.         if(get_user_team(killer)==get_user_team(victim)) return PLUGIN_CONTINUE; //TK
  29.         g_playerkilled[killer]++;
  30.         return PLUGIN_CONTINUE;
  31. }

  32. public eEndRound()
  33. {
  34.         new msg[513], maxkillcount = 0, maxkillplayercount = 0;
  35.         new ipos=format(msg, 512,"本局杀敌最多的玩家^n");
  36.         new maxkillplayerlist[32];
  37.         for(new i=1; i<=g_maxplayers; i++)
  38.         {
  39.                 if(!is_user_connected(i)) continue;
  40.                 if(g_playerkilled[i]>maxkillcount)
  41.                 {
  42.                         maxkillcount = g_playerkilled[i];
  43.                         maxkillplayercount = 1;
  44.                         maxkillplayerlist[maxkillplayercount-1] = i;
  45.                 }else if(g_playerkilled[i]==maxkillcount){
  46.                         maxkillplayercount++;
  47.                         maxkillplayerlist[maxkillplayercount-1] = i;
  48.                 }
  49.         }
  50.         if(maxkillcount>0)
  51.         {
  52.                 new name[33];
  53.                 ipos+=format(msg[ipos],512-ipos,"(杀%d人)^n————————————————^n", maxkillcount);
  54.                 if(maxkillplayercount<=3)
  55.                 {
  56.                         for(new i=0; i<maxkillplayercount; i++)
  57.                         {
  58.                                 get_user_name(maxkillplayerlist[i], name, 31);
  59.                                 ipos+=format(msg[ipos], 512-ipos, "%s^n", name);
  60.                         }
  61.                 }else{
  62.                         for(new i=0; i<2; i++)
  63.                         {
  64.                                 get_user_name(maxkillplayerlist[i], name, 31);
  65.                                 ipos+=format(msg[ipos], 512-ipos, "%s^n", name);
  66.                         }
  67.                         ipos+=format(msg[ipos],512-ipos,"......^n")
  68.                 }
  69.                         
  70.         }else{
  71.                 ipos+=format(msg[ipos],512-ipos,"————————————————^n无伤亡^n")
  72.         }
  73.         set_hudmessage(80, 180, 101, -1.0, 0.6, 2, 0.02, 4.0, 0.02, 5.0, 2);
  74.         show_hudmessage(0, msg);
  75. }
复制代码
回复

使用道具 举报

发表于 2009-9-26 15:53:39 | 显示全部楼层 来自 中国–福建–漳州
未测试,请自行测试。
回复

使用道具 举报

发表于 2009-9-26 15:58:24 | 显示全部楼层 来自 中国–安徽–合肥
回复

使用道具 举报

 楼主| 发表于 2009-9-26 17:45:45 | 显示全部楼层 来自 中国–广东–深圳–南山区
经测试..什么都不显示..
回复

使用道具 举报

发表于 2009-9-26 19:12:07 | 显示全部楼层 来自 中国–福建–漳州
已修改,请重试。是代码多删了,把注册一局结束事件的代码不小心删除了。
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注个册吧

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