RSSy MYGO.pl Opublikowano Sierpień 29, 2020 o 12:36 RSSy Udostępnij Opublikowano Sierpień 29, 2020 o 12:36 This is a perfect plugin i want :D i saw 1.5 version here but it is useless and not working lol https://forums.alliedmods.net/showthread.php?t=244122 but 1.4 version is working fine i need some changes if someone can do can someone make this plugin explode immediately or add a cvar of timer too :D atleast i can set how much time it will took to explode ....ppl enjoy this plugin a lot ...in my server ...and they always request to blast it urgent ...bcz they wan't to save themselves by getting knifed :D Code: /* Suicide Bomber Information Center: The 'Suicide Bomber' idea came to me from a somewhat old mod that Exolent made (I've also made a version myself). Once you've gotten enough cash (cvar controlled), you will be permitted to purchase a 'Suicide Bomb'. You will then be able to activate it and blow anyone up in a certain radius of yourself, thus creating an epic death scene. */ #include <amxmodx> #include <hamsandwich> #include <engine> #include <cstrike> #define PLUGIN "Suicide Bomb" #define AUTHOR "GXLZPGX" #define VERSION "1.4" #define is_player(%1) (1 <= %1 <= g_iMaxPlayers) #define BOMB 100 /* Self explanitory private variables */ new g_BombTimer[33]; /* Self explanitory private bools */ new bool:g_HasBomb[33]; new bool:g_BombRemoved[33]; /* Self explanitory public variables */ new pcvar_BombEnable; new pcvar_BombPrice; new pcvar_BombRadius; new pcvar_BombFF; /* Self explanitory public bools */ new bool:g_RoundEnded; /* Self explanitory sound path */ new const gszC4[] = "weapons/c4_beep4.wav" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) /* Player commands */ register_clcmd( "say /buybomb", "Bomb_Buy" ) register_clcmd( "say /bb", "Bomb_Buy" ) register_clcmd( "say_team /buybomb", "Bomb_Buy" ) register_clcmd( "say_team /bb", "Bomb_Buy" ) /* Server vars */ pcvar_BombEnable = register_cvar( "sb_enabled", "1" ) pcvar_BombPrice = register_cvar( "sb_price", "8000" ) pcvar_BombRadius = register_cvar( "sb_radius", "400" ) pcvar_BombFF = register_cvar( "sb_friendlyfire", "0" ) /* Hooking flashlight */ register_impulse( 100, "Event_Flashlight" ) /* Round beginning */ register_logevent( "Event_RoundBegin", 2, "1=Round_Start" ); /* Round ending */ register_logevent( "Event_RoundEnd", 2, "1=Round_End" ) } public client_disconnect(id) { g_HasBomb[id] = false; } public plugin_precache() { precache_sound( gszC4 ) } public Event_RoundEnd() { g_RoundEnded = true; } public Event_RoundBegin() { g_RoundEnded = false; arrayset( g_HasBomb, false, charsmax(g_HasBomb) ) arrayset( g_BombRemoved, false, charsmax(g_BombRemoved) ) } public Bomb_Buy(id) { if( get_pcvar_num(pcvar_BombEnable) == 0 ) { client_print( id, print_chat, "[Suicide Bomb] Suicide bombs are currently disabled." ) return PLUGIN_HANDLED; } new szBombMenu[104]; formatex( szBombMenu, charsmax(szBombMenu), "\ySuicide Bomb Shop^n\rCurrent Price:\w %d^n^n\w Are you sure you want to buy a suicide bomb?", get_pcvar_num(pcvar_BombPrice) ) new menu = menu_create( szBombMenu, "BombMenu_Handler" ) menu_additem( menu, "Yes", "1", 0 ) menu_additem( menu, "No", "2", 0 ) menu_display( id, menu, 0 ) menu_setprop( menu, MPROP_EXIT, MEXIT_ALL ) return PLUGIN_HANDLED } public BombMenu_Handler(id, menu, item) { if( item == MENU_EXIT ) { menu_destroy( menu ); return PLUGIN_HANDLED; } new data[6], iName[64]; new access, callback; menu_item_getinfo( menu, item, access, data, 6, iName, 63, callback ) new key = str_to_num( data ); switch( key ) { case 1: { new money = cs_get_user_money(id) if( (money >= get_pcvar_num(pcvar_BombPrice)) && g_BombRemoved[id] == false ) { cs_set_user_money( id, money - get_pcvar_num(pcvar_BombPrice) ) client_print( id, print_chat, "[Suicide Bomb] You're now armed with a suicide bomb. Use your flashlight to activate it." ) g_HasBomb[id] = true; g_BombRemoved[id] = true; } else { client_print( id, print_chat, "[Suicide Bomb] You're not permitted to use that, soldier!" ) } } } menu_destroy(menu); return PLUGIN_HANDLED; } public Event_Flashlight(id) { if( !is_user_alive(id) ) { return PLUGIN_HANDLED; } if( g_HasBomb[id] == true && g_RoundEnded == false ) { g_BombTimer[id] = 3; if( task_exists( BOMB + id ) || g_BombTimer[id] < 3 ) { return PLUGIN_HANDLED; } set_task( 1.0, "CountDownExplode", BOMB + id, _, _, "b" ) } return PLUGIN_CONTINUE; } public CountDownExplode(id) { id -= BOMB if( !is_user_alive(id) || g_RoundEnded == true ) { remove_task( id + BOMB ) return PLUGIN_HANDLED; } if( g_BombTimer[id] > 1 ) { if( g_BombTimer[id] > 2 ) { emit_sound(id, CHAN_AUTO, gszC4, 1.0, ATTN_NORM, 0, PITCH_NORM) } g_BombTimer[id] -= 1 } else { Explode(id) new iPlayers[32], iNum, plr; get_players(iPlayers, iNum, "ah" ) new origin[3]; for( new i = 0; i < iNum; i++ ) { plr = iPlayers new origin2[3]; get_user_origin( id, origin, 0 ) get_user_origin( plr, origin2, 0 ) if( get_distance( origin, origin2 ) <= get_pcvar_num(pcvar_BombRadius) && is_user_alive(plr) ) { if( get_pcvar_num(pcvar_BombFF) == 1 ) { user_silentkill(plr) Create_DeathMsg( plr, id ) } else { if( (cs_get_user_team(id) != cs_get_user_team(plr)) ) { user_silentkill(plr) Create_DeathMsg( plr, id ) } } } } user_silentkill(id) remove_task( id + BOMB ) } return PLUGIN_HANDLED; } Explode(id) { new origin[3] get_user_origin(id, origin, 0) message_begin( MSG_BROADCAST, SVC_TEMPENTITY ) write_byte(TE_TAREXPLOSION) write_coord(origin[0]) write_coord(origin[1]) write_coord(origin[2]) message_end() } public Create_DeathMsg( Victim, Attacker ) { message_begin(MSG_BROADCAST, get_user_msgid("DeathMsg"), {0,0,0}); write_byte(Attacker); write_byte(Victim); write_byte(1) write_string("worldspawn"); message_end(); } Przeczytaj cały wpis Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi