搜索
查看: 2558|回复: 6

请论坛的高手帮我把这个插件改成AMX 有代码

[复制链接]
发表于 2009-3-24 00:05:40 | 显示全部楼层 |阅读模式 来自 中国–湖北–宜昌
请论坛的高手帮我把这个插件改成AMX  有代码

本帖子中包含更多资源

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

×
 楼主| 发表于 2009-3-24 11:01:15 | 显示全部楼层 来自 中国–湖北–宜昌
没有人帮忙吗???
回复

使用道具 举报

发表于 2009-3-24 12:29:51 | 显示全部楼层 来自 中国–广东–深圳
直接把源代码发上来
回复

使用道具 举报

 楼主| 发表于 2009-3-24 13:04:14 | 显示全部楼层 来自 中国–湖北–宜昌
// AMX MOD X Plugin
//
// Unreal Tournament Sounds X-MOD Plugin
//
// Coded By: [WoA]-Firefox [Leader Of The Warriors Of The Apocalypse]
//
// ------------------------------------------------------------------
// CVARs:
// ------------------------------------------------------------------
// ut_streak_mode - < flags >
//
// a - announce to all players by sound
// b - announce to all players by hud message
// c - announce to scorer by sound
// d - announce to scorer by hud message
// e - announce current death/killstreak at round start
//
// bomb_mode - < flags >
//
// a - exploded
// b - planting
// c - defusing
// d - planted
// e - defused
// f - failed to defuse
// g - pickup
// h - dropped
// i - sounds
//
// hekill_mode - < flags >
//
// a - show normal HE-Kill in hud
// b - show suicide HE-Kill in hud
// c - play sound on HE-Kill
//
// kniff_mode - < flags >
//
// a - messages
// b - sounds
//
// hs_mode - < flags >
//
// a - messages
// b - sounds
//
// lastman_mode - < flags >
//
// a - messages
// b - hp
// c - sounds



#include <amxmodx>
#include <amxmod>

#define Maxsounds 1
#define LEVELS 14
#define KNIFFMESSAGES 4
#define HEMESSAGES 4
#define HESMESSAGES 4
#define MESSAGESHP 4
#define MESSAGESNOHP 4


new kills[33] = {0,...};
new deaths[33] = {0,...};
new planter
new defuser
new c4timer
new defusing
new Float:last_omg
new Float:last_plan
new alone_ann = 0
new levels[14] = {2,3,4,5,7,9,10,12,13,14,16,18,20,21};
new sounds[14][] = {
        "misc/doublekill",
        "misc/tripplekill2003",
        "misc/multikill",
        "misc/killingspree",
        "misc/rampage",
        "misc/mmmmonster",
        "misc/megakill",
        "misc/dominating",
        "misc/ultrakill",
        "misc/unstoppable",
        "misc/ludicrouskill",
        "misc/wickedsick",
        "misc/godlike",
        "misc/holyshit"
};

new messages[14][] = {
        "%s 璇?: 鎴戞潃浜嗕袱涓簡!!!",
        "%s 璇?: 鎴戜笉鏁㈢浉淇″凡鏉€浜嗕笁涓?!!",
        "%s 璇?: 娌¢敊 鏄殑 鎴戞潃浜嗗お澶氫簡 杩欐槸浜嬪疄!!!",
        "%s 璇?: 鏉€鐨勭湡鐖?!!",
        "鎴慤Fo瀵?%s 璇? 鍝﹀枖鍣?浣犲おcool浜?!!",
        "%s: 鏉€姝讳簡鍙?鎬?鎬?鎬?鎬墿!!!",
        "%s 璇?: 鎴戞潃鐨勫お澶氫簡锛?,
        "%s 鐤媯鍦板惣鍒?: 鎴戞槸缁熸不鑰?!!",
        "%s: 鏉€鐤簡!!!",
        "%s 璇?: 娌¢敊杩欐槸鏃犳硶鍋滄鐨?!!",
        "%s 璇?: 鍣㈠摝锛屾垜鐜板湪鐪熸兂鍠濅竴缃愬啺姘旀按!!!",
        "琚?%s 鏉€浜嗙殑浜哄 %s 璇? 浣犺繖涓伓妫?!!",
        "%s 璇?: 涓婂笣鍟?!!",
        "%s: 浣犺嚜宸盪!!!"
};


new kniffmessages[KNIFFMESSAGES][] = {
"%s 灏?%s 鍒囨垚浜嗗潡鐘?,
"%s 鎶涘嚭鍒€锛岀┛鍚?%s 鍐呰剰   鍝﹀枖 鎴戣鍚愪簡",
" 鍢?%s 褰撳績鍚庨潰楝艰吹绁熺鐨勪汉鍜屽垁 ",
" 鍛曪紝%s 琚?%s 鐢ㄥ垁鏉€浜?"}

new he_messages[HEMESSAGES][] = {
"%s 缁?%s 閫佸嚭涓€涓皬绀肩墿 ",  
"%s 鎵旂粰 %s 涓€涓ぜ鐗?",  
"%s 鎵斾簡鐡舵皵姘寸粰 %s 鍒堕€犱簡涓€涓垎鐐?",  
"%s 浣?%s 寰楀埌涓€涓ぇ鐖嗙偢 "}                 

new hes_messages[HESMESSAGES][] = {
"%s 浠栫敤姹芥按鐖嗕簡浠栬嚜宸?,  
" 鍢?%s 鍝﹀櫌鍣紝鐪嬬湅绾㈤浄鐨勬晥鏋滃惂",  
" 鍟婂搱鍝堝搱 %s 浠栫敤绾㈤浄鐐告帀浜嗕粬鑷繁鐨勫眮鑲?,  
"%s 鏀句簡涓眮鐐告帀浜嗕粬鐨勫眮鑲?"}                                 

new messagesnohp[MESSAGESNOHP][] = {
"%i terrorist vs %i CT^n%s: 鐜板湪锛屼綘浠墍鏈変汉鐨勫笇鏈涢兘闈犱綘浜嗭紝涓婂笣鐩镐俊浣狅紝鍔犳补!锛?,
"%i terrorist vs %i CT^n%s: 鎴戜竴鐩村笇鏈涗綘鏈変竴涓鍖?",
"%i terrorist vs %i CT^n%s: 浣犵殑鎵€鏈夐槦鍙嬮兘姝讳簡锛岀浣犲ソ杩?",
"%i terrorist vs %i CT^n%s: 鐜板湪鍙墿浣犱竴涓簡锛屽紑蹇冪偣鍚у瀛愶紝澶у閮藉湪鐪嬭繖浣?骞朵笖鎴戜竴鐩寸浉淇′綘 My hero come on, GO!"}

new messageshp[MESSAGESHP][] = {
"%i terrorist vs %i CT^n%s (%i hp): 鐜板湪锛屼綘浠墍鏈変汉鐨勫笇鏈涢兘闈犱綘浜嗭紝涓婂笣鐩镐俊浣狅紝鍔犳补!!",
"%i terrorist vs %i CT^n%s (%i hp): 鎴戜竴鐩村笇鏈涗綘鏈変竴涓鍖?",
"%i terrorist vs %i CT^n%s (%i hp): 浣犵殑鎵€鏈夐槦鍙嬮兘姝讳簡锛岀浣犲ソ杩?",
"%i terrorist vs %i CT^n%s (%i hp): 鐜板湪鍙墿浣犱竴涓簡锛屽紑蹇冪偣鍚у瀛愶紝澶у閮藉湪鐪嬭繖浣?骞朵笖鎴戜竴鐩寸浉淇′綘 My hero come on, GO!!"}


is_mode_set(bits) {
    new mode[9];
    get_cvar_string("ut_streak_mode", mode, 8);
    return read_flags(mode) & bits;
}

get_bemode() {
        new bemode[10]
        get_cvar_string("bomb_mode",bemode,9)
        return read_flags(bemode)
}

public death_event(id) {
    new killer = read_data(1);
    new victim = read_data(2);

    kills[killer] += 1;
    kills[victim] = 0;
    deaths[killer] = 0;
    deaths[victim] += 1;

    for (new i = 0; i < LEVELS; i++) {
        if (kills[killer] == levels[i]) {
            announce(killer, i);
            return PLUGIN_CONTINUE;
        }
    }

    return PLUGIN_CONTINUE;
}

announce(killer, level) {
    new name[33];

    get_user_name(killer, name, 32);
    set_hudmessage(0, 100, 200, 0.05, 0.65, 2, 0.02, 6.0, 0.01, 0.1, 2);

    if (is_mode_set(2)) {
        show_hudmessage(0, messages[level], name);
    } else if (is_mode_set(8)) {
        show_hudmessage(killer, messages[level], name);
    }
    if (is_mode_set(1)) {
        client_cmd(0, "spk %s", sounds[level]);
    } else if (is_mode_set(4)) {
        client_cmd(killer, "spk %s", sounds[level]);
    }
}

public reset_hud(id) {
    if (is_mode_set(16)) {
        if (kills[id] > levels[0]) {
            client_print(id, print_chat,
                         "* 浣犳潃鐨勫彲鐪熷揩鍟?%d涓汉 浣犳潃浜?",
                         kills[id]);
        } else if (deaths[id] > 1) {
            client_print(id, print_chat,
                         "* T褰撳績浣犳鐨勫ソ蹇?%d娆?浣犳浜?",
                         deaths[id]);
        }
    }
}

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

public got_bomb(id){
        new bemode = get_bemode()
        if (bemode&1){
                planter = id
                defuser = defusing = 0
                if ((read_data(1)==2) && (last_omg < get_gametime())){
                        new bplayers_t[32], numte
                        get_players(bplayers_t,numte,"e","TERRORIST")
                        last_omg = get_gametime() + 15.0
                        new name[32]
                        get_user_name(planter, name , 32)
                        set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
                        show_hudmessage(bplayers_t[0],"鍝﹁€? %s 鍒拌揪闆峰尯浜?",name)
                }
        }
}
public bdef_g(id){
        new bemode = get_bemode()
        if (read_data(1) == 3){
                if (last_plan < get_gametime()){
                        if (bemode&2){
                                new bplayers_t[32], numte
                                get_players(bplayers_t,numte,"e","TERRORIST")
                                last_plan = get_gametime() + 15.0
                                new name[32]
                                set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
                                get_user_name(planter, name , 32)
                                show_hudmessage(bplayers_t[0],"%s 姝e湪甯冮浄!",name)
                        }
                }
        }
        else {
                defuser = defusing = id       
                if (last_plan < get_gametime()){
                        if (bemode&4){
                                new bplayers_ct[32], numct
                                get_players(bplayers_ct,numct,"e","CT")
                                last_plan = get_gametime() + 15.0
                                new name[32]
                                set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
                                get_user_name(defusing, name , 32)
                                show_hudmessage(bplayers_ct[0],"%s 姝e湪瑙i浄锛宑ome on蹇偣鎴戠殑鑻遍泟 :D",name)
                        }
                }
        }
}
public bdef_l(id)
        defusing = 0
public disable_c4(){
        c4timer = 0
        last_plan = 0.0
        last_omg = 0.0
        remove_task(8038)
}
public bomb_planted(){
        new bemode = get_bemode()
        if (bemode&256){
        client_cmd(0,"spk djeyl/c4powa")
        }
        if (bemode&8){
                new name[32]
                get_user_name(planter, name , 32)
                set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
                show_hudmessage(0,"%s 璇?鎴戜滑甯冧笅浜嗛浄鍖?CT瑕佸€掗湁浜?!!",name)
                c4timer = get_cvar_num("mp_c4timer") - 2
                set_task(1.0,"bomb_c",8038,"",0,"b")
                last_plan = 0.0
        }
}
回复

使用道具 举报

 楼主| 发表于 2009-3-24 13:04:32 | 显示全部楼层 来自 中国–湖北–宜昌
public bomb_c(){
        new bemode = get_bemode()
        if (--c4timer > 0){
                if (c4timer == 30 || c4timer == 20){
                        if (bemode&256){
                        new temp[48]
                        num_to_word(c4timer,temp,48)
                        client_cmd(0,"spk ^"vox/%s seconds until explosion^"",temp)
                        }
                }
                else if (c4timer < 11){
                        if (bemode&256){
                        new temp[48]
                        num_to_word(c4timer,temp,48)
                        client_cmd(0,"spk ^"vox/%s^"",temp)
                        }
                }
                if (defusing)
                        client_print(defusing,print_center,"%d",c4timer)
        }
        else{
                remove_task(8038)
        }
}
public bomb_defused(){
        new bemode = get_bemode()
        if (bemode&256){
        client_cmd(0,"spk djeyl/laugh")
        }
        if (bemode&16){
                new name[32]
                get_user_name(defuser, name , 32)
                set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
                show_hudmessage(0,"%s 瑙f帀浜嗛浄鍖咃紝浠栬OH鎴戠湡鎯冲枬鐡跺啺姘旀按!",name)
                disable_c4()
        }
}
public bomb_failure(){
        new bemode = get_bemode()
        if (defuser){
                if (bemode&256){
                client_cmd(0,"spk djeyl/witch")
                }
                if (bemode&32){
                        new name[32]
                        get_user_name(defuser, name , 32)
                        set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
                        show_hudmessage(0,"%s  瑙i浄澶辫触...come on boy浣犲凡缁忓敖鍔?,name)
                }
        }
}
public bomb_pickup(id){
        new bemode = get_bemode()
        if (bemode&64){
                new bplayers_t[32], numte
                get_players(bplayers_t,numte,"e","TERRORIST")
                new name[32]
                get_user_name(id, name , 32)
                set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
                show_hudmessage(bplayers_t[0],"%s 妫€璧蜂簡闆峰寘...",name)
        }
}
public bomb_drop(){
        new bemode = get_bemode()
        if (bemode&128){
                new bplayers_t[32], numte
                get_players(bplayers_t,numte,"e","TERRORIST")
                new name[32]
                get_user_name(planter, name , 32)
                set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
                show_hudmessage(bplayers_t[0]," OH shit %s 鎵旀帀闆峰寘閫冭窇浜?!!",name)
        }
}






public he_kills(){
   new killer_id = read_data(1)
   new victim_id = read_data(2)
   new killer_name[32], victim_name[33]
   
   get_user_name(killer_id,killer_name,33)
   get_user_name(victim_id,victim_name,33)

   new hekmode[8]
   get_cvar_string("hekill_mode",hekmode,8)
   new hekmode_bit = read_flags(hekmode)

   if (hekmode_bit & 1) {
    if (victim_id != killer_id)
     {
        if (hekmode_bit & 4) {
     client_cmd(0,"spk djeyl/grenade")
        }
        set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
        show_hudmessage(0,he_messages[ random_num(0,HEMESSAGES-1)],killer_name,victim_name)
     }
   }

   if (hekmode_bit & 2) {
    if (victim_id == killer_id)
     {
        if (hekmode_bit & 4) {
     client_cmd(0,"spk djeyl/witch")
        }
        set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
        show_hudmessage(0,hes_messages[ random_num(0,HESMESSAGES-1) ],victim_name)
     }
   }

}






public knife_kill(){

   new kniffmode[4]
   get_cvar_string("kniff_mode",kniffmode,4)
   new kniffmode_bit = read_flags(kniffmode)

   if (kniffmode_bit & 1) {
        new killer_id = read_data(1)
        new victim_id = read_data(2)
        new killer_name[33], victim_name[33]

        get_user_name(killer_id,killer_name,33)
        get_user_name(victim_id,victim_name,33)


        set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
        show_hudmessage(0,kniffmessages[ random_num(0,KNIFFMESSAGES-1) ],killer_name,victim_name)
   }
   if (kniffmode_bit & 2) {
        client_cmd(0,"spk misc/humiliation")
   }
}


public roundend_msg(id)
   alone_ann = 0

public death_msg(id){

   new lmmode[8]
   get_cvar_string("lastman_mode",lmmode,8)
   new lmmode_bit = read_flags(lmmode)

   new players_ct[32], players_t[32], ict, ite, last
   get_players(players_ct,ict,"ae","CT")   
   get_players(players_t,ite,"ae","TERRORIST")   
   if (ict==1&&ite==1){
      new name1[32], name2[32]
      get_user_name(players_ct[0],name1,32)
      get_user_name(players_t[0],name2,32)
      set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
      if (lmmode_bit & 1){
            if (lmmode_bit & 2){
            show_hudmessage(0,"%s (%i hp) vs. %s (%i hp)",name1,get_user_health(players_ct[0]),name2,get_user_health(players_t[0]))
            }
            else {
            show_hudmessage(0,"%s vs. %s",name1,name2)
            }
            if (lmmode_bit & 4){
         client_cmd(0,"spk misc/maytheforce")
         }
      }
   }
   else {   
      if (ict==1&&ite>1&&alone_ann==0&&(lmmode_bit & 4)){
         last=players_ct[0]
         client_cmd(last,"spk misc/oneandonly")
      }
      else if (ite==1&&ict>1&&alone_ann==0&&(lmmode_bit & 4)){
         last=players_t[0]
         client_cmd(last,"spk misc/oneandonly")
      }
      else {
         return PLUGIN_CONTINUE
      }
      alone_ann = last
      new name[32]   
      get_user_name(last,name,32)

      if (lmmode_bit & 1){
      set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
      if (lmmode_bit & 2){
      show_hudmessage(0,messageshp[ random_num(0,MESSAGESHP-1) ],ite ,ict ,name,get_user_health(last))
         }
         else {
      show_hudmessage(0,messagesnohp[ random_num(0,MESSAGESNOHP-1) ],ite ,ict ,name )
         }
   }
      if (lmmode_bit & 4){
      client_cmd(last,"spk misc/maytheforce")
         }
   }
   return PLUGIN_CONTINUE   
}


public hs(){
   new hsmode[4]
   get_cvar_string("hs_mode",hsmode,4)
   new hsmode_bit = read_flags(hsmode)
   if (hsmode_bit & 1){
      new killer_id = read_data(1)
      new victim_id = read_data(2)
      new victim_name[33]

      get_user_name(victim_id,victim_name,33)

      set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 3.0, 3.0, 0.15, 0.15, 1)
      show_hudmessage(killer_id,"::HEAD鐖嗗ごSHOT:: 鍝?%s 浣犵殑澶磋鍒汉褰撳仛瑗跨摐缁欑垎浜?!!",victim_name)
   }
   if (hsmode_bit & 2){
      client_cmd(0,"spk misc/headshot")
   }
}

new soundlist[Maxsounds][] = {"misc/connect"}

public client_putinserver(id) {
        new Userid[1]
        Userid[0] = id
        set_task(1.0,"consound",0,Userid,1)
        return PLUGIN_CONTINUE
}

public consound(id[]){
        new i, Usertime
        Usertime = get_user_time(id[0], 0)
        if (Usertime <= 0){
                set_task(1.0,"consound",0,id,1)
        }else{
                i = random_num(0,Maxsounds-1)
                client_cmd(id[0],"spk %s",soundlist[i])
        }
        return PLUGIN_CONTINUE
}

public plugin_precache(){
        new a
        for(a = 0; a < Maxsounds; ++a){
                new msg[128]
                format(msg,127,"%s.wav", soundlist[a])
                precache_sound( msg )
                precache_sound( "misc/mmmmonster.wav")
                precache_sound( "misc/godlike.wav")
                precache_sound( "misc/dominating.wav")
                precache_sound( "misc/doublekill.wav")
                precache_sound( "misc/holyshit.wav")
                precache_sound( "misc/wickedsick.wav")
                precache_sound( "misc/rampage.wav")
                precache_sound( "misc/tripplekill2003.wav")
                precache_sound( "misc/unstoppable.wav")
                precache_sound( "misc/ludicrouskill.wav")
                precache_sound( "misc/megakill.wav")
                precache_sound( "misc/killingspree.wav")
                precache_sound( "misc/multikill.wav")
                precache_sound( "misc/ultrakill.wav")
                precache_sound( "misc/maytheforce.wav")
                    precache_sound( "misc/oneandonly.wav")
                precache_sound( "misc/headshot.wav")
                precache_sound( "djeyl/c4powa.wav")
                   precache_sound( "djeyl/laugh.wav")
                    precache_sound( "djeyl/grenade.wav")
                   precache_sound( "djeyl/witch.wav")
}
        return PLUGIN_CONTINUE
}

public plugin_init() {
    register_plugin("UT Sounds X", "1.5", "鐢盪Fo姹夊寲");
    register_cvar("ut_streak_mode", "cde");
    register_event("ResetHUD", "reset_hud", "b");
    register_event("DeathMsg", "death_event", "a");
    register_event("DeathMsg","hs","a","3=1")
    register_event("DeathMsg","knife_kill","a","4&kni")
    register_event("DeathMsg","he_kills","a","4&gren")
    register_event("StatusIcon", "got_bomb", "be", "1=1", "1=2", "2=c4")
    register_event("SendAudio", "bomb_planted", "a", "2&%!MRAD_BOMBPL")
    register_event("SendAudio", "bomb_defused", "a", "2&%!MRAD_BOMBDEF")
    register_event("TextMsg", "bomb_failure", "a", "2&#Target_B")
    register_event("BarTime", "bdef_g", "be", "1=10", "1=5","1=3")
    register_event("BarTime", "bdef_l", "be", "1=0")
    register_event("TextMsg", "bomb_pickup", "bc", "2&#Got_bomb")
    register_event("TextMsg", "bomb_drop", "bc", "2&#Game_bomb_d")
    register_event("SendAudio", "disable_c4", "a", "2&%!MRAD_terwin","2&%!MRAD_ctwin","2&%!MRAD_rounddraw")
    register_event("TextMsg","disable_c4","a","2&#Game_C","2&#Game_w")
    register_event("SendAudio","roundend_msg","a","2=%!MRAD_terwin","2=%!MRAD_ctwin","2=%!MRAD_rounddraw")
    register_event("TextMsg","roundend_msg","a","2&#Game_C","2&#Game_w")
    register_event("DeathMsg","death_msg","a")
    register_cvar("lastman_mode","abc")
    register_cvar("bomb_mode","abcdefghi")
    register_cvar("hekill_mode","abc")
    register_cvar("kniff_mode","ab")
    register_cvar("hs_mode","ab")

    return PLUGIN_CONTINUE;
}
回复

使用道具 举报

 楼主| 发表于 2009-3-24 13:04:55 | 显示全部楼层 来自 中国–湖北–宜昌
代码太长了。。 分2次发完
回复

使用道具 举报

发表于 2009-3-24 20:45:50 | 显示全部楼层 来自 中国–台湾
回复

使用道具 举报

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

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