- Transfer Life SMA | Afiseaza codul
//#define USE_ZOMBIE_PLAGUE #define USE_ANTI_ABUSE #define USE_MENU_COMMAND #define USE_EFFECT #include < amxmodx > #include < amxmisc > #include < hamsandwich > #include < fun > #if defined USE_ZOMBIE_PLAGUE #include < zombieplague > #endif #if defined USE_ANTI_ABUSE #include < fakemeta > new bool:g_anti_abuse[ 33 ] #endif #if !defined USE_ZOMBIE_PLAGUE new g_msgscoreinfo #endif new cvar_health, cvar_bonus, cvar_teams new g_sender, g_selected[ 33 ] #if defined USE_EFFECT new sprite_smoke, g_msgscreenfade public plugin_precache() { sprite_smoke = precache_model( "sprites/steam1.spr" ) } #endif public plugin_init() { register_plugin( "Transfer Life", "1.1+", "P.Of.Pw" ) cvar_health = register_cvar( "tf_health_system", "0" ) cvar_bonus = register_cvar( "tf_bonus", "10" ) cvar_teams = register_cvar( "tf_teams", "3" ) // 1 = T only, 2 = CT only, 3 = both teams. #if !defined USE_ZOMBIE_PLAGUE g_msgscoreinfo = get_user_msgid( "ScoreInfo" ) #endif #if defined USE_EFFECT g_msgscreenfade = get_user_msgid( "ScreenFade" ) #endif RegisterHam( Ham_Spawn, "player", "fwd_HamPlayerSpawnPost", 1 ) #if defined USE_ANTI_ABUSE register_forward( FM_ClientKill, "fw_ClientSuicide" ) #endif register_clcmd( "say", "clcmdsay_transfer_life" ) register_clcmd( "say_team", "clcmdsay_transfer_life" ) register_clcmd( "life", "transfer_life" ) #if defined USE_MENU_COMMAND register_clcmd( "lifemenu", "transfer_life_menu" ) register_clcmd( "say /lifemenu", "transfer_life_menu" ) register_clcmd( "say_team /lifemenu", "transfer_life_menu" ) #endif } public client_disconnect( id ) { #if defined USE_ANTI_ABUSE g_anti_abuse[ id ] = false #endif g_selected[ id ] = 0 } public fwd_HamPlayerSpawnPost( id ) { #if defined USE_ANTI_ABUSE arrayset( g_anti_abuse, false, 32 ) #endif g_sender = 0 g_selected[ id ] = 0 } #if defined USE_ANTI_ABUSE public fw_ClientSuicide( id ) //suicide g_anti_abuse[ id ] = true #endif public clcmdsay_transfer_life( id ) { static args[ 192 ], command[ 192 ] read_args( args, charsmax( args ) ) if( !args[ 0 ] ) return PLUGIN_CONTINUE remove_quotes( args[ 0 ] ) if( equal( args, "/life", strlen( "/life" ) ) ) { replace( args, charsmax( args ), "/", "" ) formatex( command, charsmax( command ), "%s", args ) client_cmd( id, command ) } return PLUGIN_CONTINUE } public transfer_life( id ) { if( !( get_pcvar_num( cvar_teams ) & get_user_team( id ) ) ) { console_print( id, "[Transfer Life] NU poti folosi aceasta comanda!" ) return PLUGIN_HANDLED } if( !is_user_alive( id ) ) { console_print( id, "[Transfer Life] Trebuie sa fi in viata!" ) return PLUGIN_HANDLED } #if defined USE_ANTI_ABUSE if( g_anti_abuse[ id ] ) { console_print( id, "[Transfer Life] NU mai poti folosi comanda!" ) return PLUGIN_HANDLED } #endif new arg[ 32 ] read_argv( 1, arg, 31 ) new target = cmd_target( id, arg, 0 ) if( !target ) { console_print( id, "[Transfer Life] Jucatorul NU se afla pe server!" ) return PLUGIN_HANDLED } if( is_user_alive( target ) ) { console_print( id, "[Transfer Life] Jucatorul este deja in viata!" ) return PLUGIN_HANDLED } #if defined USE_ANTI_ABUSE if( g_anti_abuse[ target ] ) { console_print( id, "[Transfer Life] NU poti folosi comanda pe acest jucator!" ) return PLUGIN_HANDLED } g_anti_abuse[ id ] = true #endif if( get_user_team( id ) != get_user_team( target ) ) { console_print( id, "[Transfer Life] Jucatorul trebuie sa fie in aceeasi echipa cu tine!" ) return PLUGIN_HANDLED } fn_show_menu_target( id, target ) return PLUGIN_HANDLED } public fn_show_menu_target( id, target ) { new name[ 32 ], tname[ 32 ] get_user_name(id, name, sizeof name - 1 ) get_user_name(target, tname, sizeof tname - 1 ) new title[ 64 ] formatex( title, sizeof title - 1, "\r%s \ydoreste sa iti dea viata", name ) new menu = menu_create( title, "menu_thandler", 0 ) menu_additem( menu, "Accept", "1", 0, -1 ) menu_additem( menu, "Nu, mersi", "2", 0, -1 ) menu_setprop( menu, MPROP_EXIT, MEXIT_NEVER ) menu_display( target, menu, 0 ) client_print( 0, print_chat, "[Transfer Life] %s doreste sa ii dea viata lui %s.", name, tname ) set_task( 3.0, "what_choose", target ) g_sender = id } public menu_thandler( id, menu, item ) // id = target { if( !is_user_connected( id ) ) return PLUGIN_HANDLED new data[ 6 ], access, callback menu_item_getinfo( menu, item, access, data, sizeof data - 1, _, _, callback ) new key = str_to_num( data ) new name[ 32 ] get_user_name( id, name, sizeof name - 1 ) switch( key ) { case 1: { client_print( 0, print_chat, "[Transfer Life] %s a acceptat cererea!", name ) g_selected[ id ] += 1 fn_life_stuff( g_sender, id ) menu_destroy( menu ) return PLUGIN_HANDLED } case 2: { client_print(0, print_chat, "[Transfer Life] %s a refuzat cererea!", name ) g_selected[ id ] = 0 g_anti_abuse[ g_sender ] = false menu_destroy( menu ) return PLUGIN_HANDLED } } return PLUGIN_HANDLED } public what_choose( id ) { if( g_selected[ id ] < 1 ) { //show_menu( id, 0, "^n", 1 ) client_cmd( id, "slot2;slot1" ) } } public fn_life_stuff( id, target ) { if( !is_user_connected( target ) || !is_user_connected( id ) ) return; new tf_health_system = get_pcvar_num( cvar_health ), tf_bonus = get_pcvar_num( cvar_bonus ), origin[ 3 ], name[ 32 ], target_name[ 32 ], health if( tf_health_system == 1 ) { health = get_user_health( id ) if( health < 25 ) { console_print( id, "[Transfer Life] Viata ta este prea mica!" ) return; } } #if !defined USE_ZOMBIE_PLAGUE strip_user_weapons( id ) #endif user_silentkill( id ) ExecuteHamB( Ham_CS_RoundRespawn, target ) if( tf_health_system == 1 ) set_user_health( target, health ) get_user_origin( id, origin, 0 ) origin[ 2 ] += 20 set_user_origin( target, origin ) strip_user_weapons( target ) give_item( target, "weapon_knife" ) #if defined USE_EFFECT set_task( 0.5, "create_smoke", target ) set_task( 0.8, "create_blast", target ) #endif get_user_name( id, name, 31 ) get_user_name( target, target_name, 31 ) #if defined USE_ZOMBIE_PLAGUE zp_set_user_ammo_packs( id, zp_get_user_ammo_packs( id ) + tf_bonus ) client_print( id, print_chat, "[Transfer Life] Ti-ai dat viata si ai primit %d Ammo Pack-uri bonus!", tf_bonus ) client_print( 0, print_chat, "[Transfer Life] %s i-a dat viata lui %s si a primit %d Ammo Pack-uri bonus!", name, target_name, tf_bonus ) #else set_user_frags( id, get_user_frags( id ) + tf_bonus ) message_begin( MSG_ALL, g_msgscoreinfo ) write_byte( id ) write_short( get_user_frags( id ) ) write_short( get_user_deaths( id ) ) write_short( 0 ) write_short( get_user_team( id ) ) message_end() client_print( id, print_chat, "[Transfer Life] Ti-ai dat viata si ai primit %d Fraguri bonus!", tf_bonus ) client_print( 0, print_chat, "[Transfer Life] %s i-a dat viata lui %s si a primit %d Fraguri bonus!", name, target_name, tf_bonus ) #endif } #if defined USE_MENU_COMMAND public transfer_life_menu( id ) { if( !( get_pcvar_num( cvar_teams ) & get_user_team( id ) ) ) { console_print( id, "[Transfer Life] NU poti folosi aceasta comanda!" ) return; } if( !is_user_alive( id ) ) { console_print( id, "[Transfer Life] Meniul nu poate fi deschis!" ) return; } new menu = menu_create( "\rTransfer Life Menu:", "menu_handler" ) new players[ 32 ], pnum, tempid, name_players[ 32 ], tempid2[ 10 ] get_players(players, pnum) for( new i; i < pnum; i++ ) { tempid = players[ i ] if( get_user_team( id ) != get_user_team( tempid ) ) continue if( is_user_alive( tempid ) ) continue get_user_name( tempid, name_players, 31 ) num_to_str( tempid, tempid2, 9 ) menu_additem( menu, name_players, tempid2, 0 ) } menu_display( id, menu, 0 ) } public menu_handler( id, menu, item ) { if( item == MENU_EXIT ) { menu_destroy( menu ) return PLUGIN_HANDLED } new data[ 6 ], access, callback, name_target[ 32 ] menu_item_getinfo( menu, item, access, data, sizeof data - 1, _, _, callback ) new tempid = str_to_num( data ) get_user_name( tempid, name_target, 31 ) client_cmd( id, "life %s", name_target ) menu_destroy( menu ) return PLUGIN_HANDLED } #endif #if defined USE_EFFECT public create_smoke( target ) { new target_origin[ 3 ] get_user_origin( target, target_origin, 0 ) message_begin( MSG_BROADCAST, SVC_TEMPENTITY ) write_byte( TE_FIREFIELD ) write_coord( target_origin[ 0 ] ) write_coord( target_origin[ 1 ] ) write_coord( target_origin[ 2 ] + 50 ) write_short( 100 ) write_short( sprite_smoke ) write_byte( 100 ) write_byte( TEFIRE_FLAG_ALPHA ) write_byte( 30 ) // duration (in seconds) * 10) (will be randomized a bit) message_end() message_begin( MSG_BROADCAST, SVC_TEMPENTITY ) write_byte( TE_FIREFIELD ) write_coord( target_origin[ 0 ] ) write_coord( target_origin[ 1 ] ) write_coord( target_origin[ 2 ] + 50 ) write_short( 150 ) write_short( sprite_smoke ) write_byte( 10 ) write_byte( TEFIRE_FLAG_ALPHA | TEFIRE_FLAG_SOMEFLOAT ) write_byte( 30 ) // duration (in seconds) * 10) (will be randomized a bit) message_end() } public create_blast( target ) { message_begin( MSG_ONE_UNRELIABLE, g_msgscreenfade, { 0, 0, 0 }, target ) write_short( ( 1<<12 ) * 4 ) write_short( ( 1<<12 ) * 1 ) write_short( 0x0001 ) write_byte( 255 ) write_byte( 255 ) write_byte( 255 ) write_byte( 155 ) message_end() } #endif /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang3081\\ f0\\ fs16 \n\\ par } */
Modificare plugin transfer life
Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com
- Laurentiu P.
- Fost moderator
- Posts: 2549
- Joined: 10 Jul 2013, 21:26
- Detinator Steam: Da
- Reputatie: Fost super moderator
- Fond eXtream: 100
- Has thanked: 26 times
- Been thanked: 62 times
- Contact:
Salut am pluginul de "Transfer Life" pentru modul dr si as dorii o mica modificare la el si anume cand ramane ultimul CT in viata si acela doreste sa-i transfere viata unui jucator sa nu se termine runda. In general runda se termina daca ultimul Ct transfera viata altui jucator.
- Transfer Life SMA | Afiseaza codul
no...
- Laurentiu P.
- Fost moderator
- Posts: 2549
- Joined: 10 Jul 2013, 21:26
- Detinator Steam: Da
- Reputatie: Fost super moderator
- Fond eXtream: 100
- Has thanked: 26 times
- Been thanked: 62 times
- Contact:
Careva ?!
no...
-
- Fost moderator
- Posts: 1367
- Joined: 16 Feb 2014, 16:28
- Detinator Steam: Nu
- CS Status: N-avem!
- Detinator server CS: Zm.Darkcs.ro
- Reputatie: Fost moderator ajutator
- Has thanked: 3 times
- Been thanked: 1 time
nu prea inteleg. daca ramane ultimul, cui sa mai transfere deca restul sunt morti ?
Code: Select all
anume cand ramane ultimul CT in viata si acela doreste sa-i transfere viata unui jucator sa nu se termine runda.