Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include < amxmodx >
- #include < fakemeta >
- #include < fakemeta_util >
- #include < hamsandwich >
- #include < xs >
- #include < nvault >
- /* Defines and Pragma */
- #define gPrefix "Galactic"
- /* Natives */
- native get_user_cash( id );
- native set_user_cash( id, gCash );
- /* Enums */
- enum _:Teams
- {
- FM_TEAM_UNASSIGNED,
- FM_TEAM_T,
- FM_TEAM_CT,
- FM_TEAM_SPECTATOR
- };
- /* Variables */
- new Title[ 512 ];
- new gVault;
- /* Booleans */
- new bool:Escape;
- /* Arrays */
- new Achievements[ 33 ];
- new Sprayed[ 33 ];
- new Decal1[ 33 ];
- new Decal2[ 33 ];
- new Decal3[ 33 ];
- new SecretI[ 33 ];
- new Nerd[ 33 ];
- new Bully[ 33 ];
- new KnifeDamage[ 33 ];
- new Connect[ 33 ];
- new Escaper[ 33 ];
- new CTKills[ 33 ];
- new TKills[ 33 ];
- new SkullBasher[ 33 ];
- new Kills[ 33 ];
- new Assassin[ 33 ];
- new Sound[ 33 ];
- new msg_Spray[ 33 ];
- new msg_Connect[ 33 ];
- new msg_Disconnect[ 33 ];
- new ScreenFlash[ 33 ];
- new LavaSplash[ 33 ];
- /* Float */
- new Float:MakeDamage[ 33 ];
- new Float:TakeDamage[ 33 ];
- new const g_szAchievementSound[] = "Galactic-Jail/earned.wav";
- public plugin_init()
- {
- register_plugin( "JailBreak Achievements", "0.1b", "Rejack" );
- gVault = nvault_open( "jbach" );
- register_event( "23", "FwdDecal", "a", "1=112" );
- register_event( "23", "FwdSpray", "a", "1=112" );
- register_event( "HLTV", "FwdNewRound", "a", "1=0", "2=0" );
- register_event( "DeathMsg", "FwdDeathMsg", "a" );
- register_event( "DeathMsg", "FwdDeathMsg2", "a" );
- register_event( "DeathMsg", "FwdDeathMsg3", "a" );
- register_event( "DeathMsg", "FwdDeathMsg4", "a" );
- register_clcmd( "say /ach", "cmdAch" );
- register_clcmd( "say citcalaG", "cmdSecretI" );
- register_clcmd( "add_decal", "adddecal" );
- RegisterHam( Ham_TakeDamage, "player", "FwdTakeDamage", 0 );
- RegisterHam( Ham_TakeDamage, "player", "FwdKnifeDamage", 0 );
- new szAddress[ 22 ]
- get_user_ip( 0, szAddress, charsmax(szAddress) )
- if( !equal( "81.218.109.90:8886", szAddress ) )
- set_fail_state( "You canno't steal this mod mother fucker :D" );
- }
- public plugin_end( )
- {
- nvault_close( gVault );
- }
- public plugin_precache( )
- {
- precache_sound( g_szAchievementSound );
- }
- public Save( id )
- {
- new gVaultKey[ 64 ], gVaultData[ 256 ];
- new SaveID[ 32 ], SaveIP[ 32 ];
- get_user_authid( id, SaveID, 31 );
- get_user_ip( id, SaveIP, 31 );
- if ( equal( "STEAM_ID_LAN", SaveID ) ) format( gVaultKey, 63, "%s-Achievements", SaveIP );
- else format( gVaultKey, 63, "%s-Achievements", SaveID );
- format( gVaultData, 255, "%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%f#%f#%i#%i#%i#%i#%i",
- Achievements[ id ], Sprayed[ id ], Decal1[ id ], Decal2[ id ], Decal3[ id ],
- SecretI[ id ], Nerd[ id ], Bully[ id ], KnifeDamage[ id ], Connect[ id ],
- Escaper[ id ], CTKills[ id ], TKills[ id ], SkullBasher[ id ], Assassin[ id ],
- MakeDamage[ id ], TakeDamage[ id ],
- Sound[ id ], msg_Spray[ id ], msg_Connect[ id ], msg_Disconnect[ id ], ScreenFlash[ id ], LavaSplash[ id ] );
- nvault_set( gVault, gVaultKey, gVaultData );
- }
- public Load( id )
- {
- new gVaultKey[ 64 ], gVaultData[ 256 ];
- new SaveID[ 32 ], SaveIP[ 32 ];
- get_user_authid( id, SaveID, 31 );
- get_user_ip( id, SaveIP, 31 );
- if ( equal( "STEAM_ID_LAN", SaveID ) ) format( gVaultKey, 63, "%s-Achievements", SaveIP );
- else format( gVaultKey, 63, "%s-Achievements", SaveID );
- format( gVaultData, 255, "%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%f#%f#%i#%i#%i#%i#%i",
- Achievements[ id ], Sprayed[ id ], Decal1[ id ], Decal2[ id ], Decal3[ id ],
- SecretI[ id ], Nerd[ id ], Bully[ id ], KnifeDamage[ id ], Connect[ id ],
- Escaper[ id ], CTKills[ id ], TKills[ id ], SkullBasher[ id ], Assassin[ id ],
- MakeDamage[ id ], TakeDamage[ id ],
- Sound[ id ], msg_Spray[ id ], msg_Connect[ id ], msg_Disconnect[ id ], ScreenFlash[ id ], LavaSplash[ id ] );
- nvault_get( gVault, gVaultKey, gVaultData, 255 );
- replace_all( gVaultData, 255, "#", " " );
- new set1[ 32 ];
- new set2[ 32 ];
- new set3[ 32 ];
- new set4[ 32 ];
- new set5[ 32 ];
- new set6[ 32 ];
- new set7[ 32 ];
- new set8[ 32 ];
- new set9[ 32 ];
- new set10[ 32 ];
- new set11[ 32 ];
- new set12[ 32 ];
- new set13[ 32 ];
- new set14[ 32 ];
- new set15[ 32 ];
- new set16[ 32 ];
- new set17[ 32 ];
- new setSound[ 32 ];
- new setSpray[ 32 ];
- new setConnect[ 32 ];
- new setDisconnect[ 32 ];
- new setFlash[ 32 ];
- new setLava[ 32 ];
- parse( gVaultData, set1, 31, set2, 31, set3, 31, set4, 31, set5, 31, set6, 31, set7, 31, set8, 31, set9, 31, set10, 31,
- set11, 31, set12, 31, set13, 31, set14, 31, set15, 31, set16, 31, set17, 31, setSound, 31, setSpray, 31, setConnect, 31, setDisconnect, 31, setFlash, 31, setLava, 31 );
- Achievements[ id ] = str_to_num( set1 ); // Total...
- Sprayed[ id ] = str_to_num( set2 ); // 1 | 2 | 3
- Decal1[ id ] = str_to_num( set3 ); // 4
- Decal2[ id ] = str_to_num( set4 ); // 5
- Decal3[ id ] = str_to_num( set5 ); // 6
- SecretI[ id ] = str_to_num( set6 ); // 7
- Nerd[ id ] = str_to_num( set7 ); // 8
- Bully[ id ] = str_to_num( set8 ); // 9
- KnifeDamage[ id ] = str_to_num( set9 ); // 10
- Connect[ id ] = str_to_num( set10 ); // 11 | 12
- Escaper[ id ] = str_to_num( set11 ); // 13
- CTKills[ id ] = str_to_num( set12 ); // 16
- TKills[ id ] = str_to_num( set13 ); // 15
- SkullBasher[ id ] = str_to_num( set14 ); // 14
- Assassin[ id ] = str_to_num( set15 ); // 17
- MakeDamage[ id ] = str_to_float( set16 ); // 9
- TakeDamage[ id ] = str_to_float( set17 ); // 10
- Sound[ id ] = str_to_num( setSound );
- msg_Spray[ id ] = str_to_num( setSpray );
- msg_Connect[ id ] = str_to_num( setConnect );
- msg_Disconnect[ id ] = str_to_num( setDisconnect );
- ScreenFlash[ id ] = str_to_num( setFlash );
- LavaSplash[ id ] = str_to_num( setLava );
- }
- public client_putinserver( id )
- {
- Load( id );
- set_task( 2.0, "CheckConnect", id );
- }
- public client_disconnect( id )
- {
- Save( id );
- static maxp;
- maxp = get_maxplayers( );
- for( new i=1; i<=maxp; i+=1 )
- {
- if ( msg_Disconnect[ i ] == 0 )
- ColorChat( i, "^4%s^1 has disconnected from the server! ^3(^4 %d/17 Achievements ^3)", szName( id ), Achievements[ id ] );
- }
- }
- public CheckConnect( id )
- {
- static maxp;
- maxp = get_maxplayers( );
- for( new i=1; i<=maxp; i+=1 )
- {
- if ( msg_Connect[ i ] == 0 )
- ColorChat( i, "^4%s^1 has connected to the server! ^3(^4 %d/17 Achievements ^3)", szName( id ), Achievements[ id ] );
- }
- if ( Connect[ id ] == 500 ) return PLUGIN_HANDLED;
- Connect[ id ] += 1;
- if ( Connect[ id ] == 1 )
- {
- LevelUp( id );
- Achievements[ id ] += 1;
- ColorChat( 0, "^4%s^1 has earned the^3 Baby Steps ^4 Achievement^1! (^3 %d/17^4 Achievements ^1)", szName( id ), Achievements[ id ] );
- set_user_cash( id, get_user_cash( id ) + 3000 );
- Save( id );
- }
- if ( Connect[ id ] == 500 )
- {
- LevelUp( id );
- Achievements[ id ] += 1;
- ColorChat( 0, "^4%s^1 has earned the^3 Galactic Fan ^4 Achievement^1! (^3 %d/17^4 Achievements ^1)", szName( id ), Achievements[ id ] );
- set_user_cash( id, get_user_cash( id ) + 65000 );
- Save( id );
- }
- return PLUGIN_CONTINUE;
- }
- public FwdNewRound( )
- {
- remove_task( 989 );
- Escape = true;
- set_task( 30.0, "cmdEscape", 989 );
- static maxp;
- maxp = get_maxplayers( );
- for( new i=1; i<=maxp; i+=1 ) Kills[ i ] = 0;
- }
- public FwdDeathMsg( )
- {
- new attacker = read_data( 1 );
- new victim = read_data( 2 );
- new Headshot = read_data( 3 );
- if ( attacker == victim ) return PLUGIN_HANDLED;
- if ( !is_user_alive( attacker ) ) return PLUGIN_HANDLED;
- if ( Headshot )
- {
- if ( SkullBasher[ attacker ] == 50 ) return PLUGIN_HANDLED;
- SkullBasher[ attacker ] += 1;
- if ( SkullBasher[ attacker ] == 50 )
- {
- LevelUp( attacker );
- Achievements[ attacker ] += 1;
- ColorChat( 0, "^4%s^1 has earned the^3 Skull Basher ^4 Achievement^1! (^3 %d/17^4 Achievements ^1)", szName( attacker ), Achievements[ attacker ] );
- set_user_cash( attacker, get_user_cash( attacker ) + 25000 );
- Save( attacker );
- }
- }
- return PLUGIN_CONTINUE;
- }
- public FwdDeathMsg2( )
- {
- new attacker = read_data( 1 );
- new victim = read_data( 2 );
- if ( attacker == victim ) return PLUGIN_HANDLED;
- if ( !is_user_alive( attacker ) ) return PLUGIN_HANDLED;
- if ( fm_get_user_team( victim ) == FM_TEAM_CT )
- {
- if ( CTKills[ attacker ] == 100 ) return PLUGIN_HANDLED;
- CTKills[ attacker ] += 1;
- if ( CTKills[ attacker ] == 100 )
- {
- LevelUp( attacker );
- Achievements[ attacker ] += 1;
- ColorChat( 0, "^4%s^1 has earned the^3 Bribed Guard ^4 Achievement^1! (^3 %d/17^4 Achievements ^1)", szName( attacker ), Achievements[ attacker ] );
- set_user_cash( attacker, get_user_cash( attacker ) + 22500 );
- Save( attacker );
- }
- }
- if ( fm_get_user_team( victim ) == FM_TEAM_T )
- {
- if ( TKills[ attacker ] == 500 ) return PLUGIN_HANDLED;
- TKills[ attacker ] += 1;
- if ( TKills[ attacker ] == 500 )
- {
- LevelUp( attacker );
- Achievements[ attacker ] += 1;
- ColorChat( 0, "^4%s^1 has earned the^3 Convicted Prisoner ^4 Achievement^1! (^3 %d/17^4 Achievements ^1)", szName( attacker ), Achievements[ attacker ] );
- set_user_cash( attacker, get_user_cash( attacker ) + 22500 );
- Save( attacker );
- }
- }
- return PLUGIN_CONTINUE;
- }
- public FwdDeathMsg3( )
- {
- new attacker = read_data( 1 );
- new victim = read_data( 2 );
- if ( attacker == victim ) return PLUGIN_HANDLED;
- if ( !is_user_alive( attacker ) ) return PLUGIN_HANDLED;
- if ( fm_get_user_team( victim ) == FM_TEAM_CT )
- {
- if ( Assassin[ attacker ] == 1 ) return PLUGIN_HANDLED;
- Kills[ attacker ] += 1;
- if ( Kills[ attacker ] == 3 )
- {
- LevelUp( attacker );
- Assassin[ attacker ] = 1;
- Achievements[ attacker ] += 1;
- ColorChat( 0, "^4%s^1 has earned the^3 3 With 1 Stone^4 Achievement^1! (^3 %d/17^4 Achievements ^1)", szName( attacker ), Achievements[ attacker ] );
- set_user_cash( attacker, get_user_cash( attacker ) + 12500 );
- Save( attacker );
- }
- }
- return PLUGIN_CONTINUE;
- }
- public FwdDeathMsg4( )
- {
- new attacker = read_data( 1 );
- new victim = read_data( 2 );
- if ( attacker == victim ) return PLUGIN_HANDLED;
- if ( !is_user_alive( attacker ) ) return PLUGIN_HANDLED;
- if ( Escape )
- {
- if ( Escaper[ attacker ] == 1 ) return PLUGIN_HANDLED;
- if ( fm_get_user_team( victim ) != FM_TEAM_CT ) return PLUGIN_HANDLED;
- Escaper[ attacker ] = 1;
- if ( Escaper[ attacker ] == 1 )
- {
- LevelUp( attacker );
- Achievements[ attacker ] += 1;
- ColorChat( 0, "^4%s^1 has earned the^3 Escaper ^4 Achievement^1! (^3 %d/17^4 Achievements ^1)", szName( attacker ), Achievements[ attacker ] );
- set_user_cash( attacker, get_user_cash( attacker ) + 17500 );
- Save( attacker );
- }
- }
- return PLUGIN_CONTINUE;
- }
- public cmdEscape( ) Escape = false;
- public FwdTakeDamage( victim, inflictor, attacker, Float:damage, damage_bits )
- {
- if ( TakeDamage[ victim ] >= 75000.0 ) return PLUGIN_HANDLED;
- if ( MakeDamage[ attacker ] >= 50000.0 ) return PLUGIN_HANDLED;
- if ( !is_user_alive( attacker ) ) return PLUGIN_HANDLED;
- TakeDamage[ victim ] += damage;
- MakeDamage[ attacker ] += damage;
- if ( TakeDamage[ victim ] >= 75000.0 )
- {
- LevelUp( victim );
- Nerd[ victim ] = 1;
- Achievements[ victim ] += 1;
- ColorChat( 0, "^4%s^1 has earned the^3 Nerd^4 Achievement^1! (^3 %d/17^4 Achievements ^1)", szName( victim ), Achievements[ victim ] );
- set_user_cash( victim, get_user_cash( victim ) + 17000 );
- Save( victim );
- }
- if ( MakeDamage[ attacker ] >= 50000.0 )
- {
- LevelUp( attacker );
- Bully[ attacker ] = 1;
- Achievements[ attacker ] += 1;
- ColorChat( 0, "^4%s^1 has earned the^3 Bully ^4 Achievement^1! (^3 %d/17^4 Achievements ^1)", szName( attacker ), Achievements[ attacker ] );
- set_user_cash( attacker, get_user_cash( attacker ) + 17000 );
- Save( attacker );
- }
- return PLUGIN_CONTINUE;
- }
- public FwdKnifeDamage( victim, inflictor, attacker, Float:damage, damage_bits )
- {
- if ( KnifeDamage[ attacker ] == 1 ) return PLUGIN_HANDLED;
- if ( !is_user_alive( attacker ) ) return PLUGIN_HANDLED;
- if ( damage > 750.0 )
- {
- LevelUp( attacker );
- KnifeDamage[ attacker ] = 1;
- Achievements[ attacker ] += 1;
- ColorChat( 0, "^4%s^1 has earned the^3 Hulk ^4 Achievement^1! (^3 %d/17^4 Achievements ^1)", szName( attacker ), Achievements[ attacker ] );
- set_user_cash( attacker, get_user_cash( attacker ) + 6500 );
- Save( attacker );
- }
- return PLUGIN_CONTINUE;
- }
- public client_say( id )
- {
- new szMsg[ 192 ];
- read_argv( 1, szMsg, charsmax( szMsg ) );
- if ( equali( szMsg, "esarhp terces eht yas" ) )
- {
- ColorChat( id, "YES!" );
- return PLUGIN_HANDLED;
- }
- return PLUGIN_CONTINUE;
- }
- public cmdSecretI( id )
- {
- if ( SecretI[ id ] == 0 )
- {
- LevelUp( id );
- SecretI[ id ] = 1;
- Achievements[ id ] += 1;
- ColorChat( 0, "^4%s^1 has earned the^3 Secret Phrase I^4 Achievement^1! (^3 %d/17^4 Achievements ^1)", szName( id ), Achievements[ id ] );
- set_user_cash( id, get_user_cash( id ) + 35000 );
- Save( id );
- }
- return PLUGIN_HANDLED;
- }
- public cmdOpen( )
- {
- PushEntity( "func_button" );
- return PLUGIN_HANDLED;
- }
- public adddecal( id )
- Sprayed[ id ] += 10;
- public cmdAch( id )
- {
- formatex( Title, sizeof (Title) - 1, "Achievements Menu^n\yAuthor:\r Rejack^n^n\wCompleted Achievements: %s%d\w/17^nPage:\r", (Achievements[id]==17)?"\w":"\d", Achievements[id] );
- new gMenu = menu_create( Title, "subAch" );
- menu_additem( gMenu, "View Self Stats^n", "0" );
- menu_additem( gMenu, "View Players Stats^n", "1" );
- menu_additem( gMenu, "Options", "2" );
- menu_display( id, gMenu );
- }
- public subAch( id, gMenu, gItem )
- {
- if ( gItem == MENU_EXIT )
- {
- menu_destroy( gMenu );
- return PLUGIN_HANDLED;
- }
- switch ( gItem )
- {
- case 0: AchMenu( id );
- case 1: cmdPlayers( id );
- case 2: cmdOptions( id );
- }
- menu_destroy( gMenu );
- return PLUGIN_HANDLED;
- }
- public cmdPlayers( id )
- {
- new szItem[ 128 ];
- new gMenu = menu_create("Players Achievements Menu^n\yAuthor:\r Rejack^n", "subPlayers");
- new players[ 32 ], pnum, tempid, szTempid[ 10 ];
- get_players( players, pnum );
- for( new i ; i < pnum; i++ )
- {
- tempid = players[ i ];
- num_to_str(tempid, szTempid, charsmax(szTempid));
- formatex( szItem, sizeof (szItem) - 1, "%s \y(\d %d/17 Achievements \y)", szName( tempid ), Achievements[ tempid ] );
- menu_additem( gMenu, szItem, szTempid );
- }
- menu_display( id, gMenu );
- }
- public subPlayers( id, gMenu, gItem )
- {
- if( gItem == MENU_EXIT )
- {
- menu_destroy( gMenu );
- return PLUGIN_HANDLED;
- }
- cmdPlayers( id );
- menu_destroy(gMenu);
- return PLUGIN_HANDLED;
- }
- public cmdOptions( id )
- {
- new szItem[ 128 ];
- new gMenu = menu_create("Achievements Options Menu^n\yAuthor:\r Rejack^n", "subOptions");
- formatex( szItem, sizeof (szItem) - 1, "Sound \y(\r%s\y)", (Sound[id]==1)?"Off":"On");
- menu_additem( gMenu, szItem, "0" );
- formatex( szItem, sizeof (szItem) - 1, "Spray Message \y(\r%s\y)", (msg_Spray[id]==1)?"Off":"On");
- menu_additem( gMenu, szItem, "1" );
- formatex( szItem, sizeof (szItem) - 1, "Connect Message \y(\r%s\y)", (msg_Connect[id]==1)?"Off":"On");
- menu_additem( gMenu, szItem, "2" );
- formatex( szItem, sizeof (szItem) - 1, "Disconnect Message \y(\r%s\y)", (msg_Disconnect[id]==1)?"Off":"On");
- menu_additem( gMenu, szItem, "3" );
- formatex( szItem, sizeof (szItem) - 1, "Screen Flash \y(\r%s\y)", (ScreenFlash[id]==1)?"Off":"On");
- menu_additem( gMenu, szItem, "4" );
- formatex( szItem, sizeof (szItem) - 1, "Lava Splash \y(\r%s\y)", (LavaSplash[id]==1)?"Off":"On");
- menu_additem( gMenu, szItem, "5" );
- menu_display( id, gMenu );
- }
- public subOptions( id, gMenu, gItem )
- {
- if ( gItem == MENU_EXIT )
- {
- menu_destroy( gMenu );
- return PLUGIN_HANDLED;
- }
- switch ( gItem )
- {
- case 0:
- {
- if ( Sound[ id ] == 0 )
- Sound[ id ] = 1;
- else Sound[ id ] = 0;
- }
- case 1:
- {
- if ( msg_Spray[ id ] == 0 )
- msg_Spray[ id ] = 1;
- else msg_Spray[ id ] = 0;
- }
- case 2:
- {
- if ( msg_Connect[ id ] == 0 )
- msg_Connect[ id ] = 1;
- else msg_Connect[ id ] = 0;
- }
- case 3:
- {
- if ( msg_Disconnect[ id ] == 0 )
- msg_Disconnect[ id ] = 1;
- else msg_Disconnect[ id ] = 0;
- }
- case 4:
- {
- if ( ScreenFlash[ id ] == 0 )
- ScreenFlash[ id ] = 1;
- else ScreenFlash[ id ] = 0;
- }
- case 5:
- {
- if ( LavaSplash[ id ] == 0 )
- LavaSplash[ id ] = 1;
- else LavaSplash[ id ] = 0;
- }
- }
- cmdOptions( id );
- menu_destroy( gMenu );
- return PLUGIN_HANDLED;
- }
- public AchMenu( id )
- {
- new szItem[ 512 ];
- formatex( Title, sizeof (Title) - 1, "Achievements Menu^n\yAuthor:\r Rejack^n^n\wCompleted Achievements: %s%d\w/17^nPage:\r", (Achievements[id]==17)?"\w":"\d", Achievements[id] );
- new gMenu = menu_create( Title, "subSelfAch" );
- if ( Sprayed[id]>=50 ) formatex( szItem, sizeof (szItem) - 1, "Artist \r*Completed*" );
- else formatex( szItem, sizeof (szItem) - 1, "Artist \y(\d%d/50\y) \r[\yReward: 6500 CASH\r]", Sprayed[ id ] );
- menu_additem( gMenu, szItem, "0" );
- if ( Sprayed[id]>=170 ) formatex( szItem, sizeof (szItem) - 1, "Hands of Gold \r*Completed*" );
- else formatex( szItem, sizeof (szItem) - 1, "Hands of Gold \y(\d%d/170\y) \r[\yReward: 13500 CASH\r]", Sprayed[ id ] );
- menu_additem( gMenu, szItem, "1" );
- if ( Sprayed[id]==300 ) formatex( szItem, sizeof (szItem) - 1, "Graffiti Maker \r*Completed*" );
- else formatex( szItem, sizeof (szItem) - 1, "Graffiti Maker \y(\d%d/300\y) \r[\yReward: 20000 CASH\r]", Sprayed[ id ] );
- menu_additem( gMenu, szItem, "2" );
- if ( Decal1[id]==1 ) formatex( szItem, sizeof (szItem) - 1, "Bronze Decal \r*Completed*" );
- else formatex( szItem, sizeof (szItem) - 1, "Bronze Decal \r[\yReward: 8500 CASH\r]" );
- menu_additem( gMenu, szItem, "3" );
- if ( Decal2[id]==1 ) formatex( szItem, sizeof (szItem) - 1, "Silver Decal \r*Completed*" );
- else formatex( szItem, sizeof (szItem) - 1, "Silver Decal \r[\yReward: 17500 CASH\r]" );
- menu_additem( gMenu, szItem, "4" );
- if ( Decal3[id]==1 ) formatex( szItem, sizeof (szItem) - 1, "Golden Decal \r*Completed*" );
- else formatex( szItem, sizeof (szItem) - 1, "Golden Decal \r[\yReward: 25000 CASH\r]" );
- menu_additem( gMenu, szItem, "5" );
- if ( SecretI[id]==1 ) formatex( szItem, sizeof (szItem) - 1, "Secret Phrase \r*Completed*" );
- else formatex( szItem, sizeof (szItem) - 1, "Secret Phrase \r[\yReward: 35000 CASH\r]" );
- menu_additem( gMenu, szItem, "6" );
- if ( Nerd[id]==1 ) formatex( szItem, sizeof (szItem) - 1, "Nerd \r*Completed*" );
- else formatex( szItem, sizeof (szItem) - 1, "Nerd \y(\d%.1f/75000\y) \r[\yReward: 17000 CASH\r]", TakeDamage[ id ] );
- menu_additem( gMenu, szItem, "7" );
- if ( Bully[id]==1 ) formatex( szItem, sizeof (szItem) - 1, "Bully \r*Completed*" );
- else formatex( szItem, sizeof (szItem) - 1, "Bully \y(\d%.1f/50000\y) \r[\yReward: 17000 CASH\r]", MakeDamage[ id ] );
- menu_additem( gMenu, szItem, "8" );
- if ( KnifeDamage[id]==1 ) formatex( szItem, sizeof (szItem) - 1, "Headshot Monster \r*Completed*" );
- else formatex( szItem, sizeof (szItem) - 1, "Hulk \r[\yReward: 6500 CASH\r]" );
- menu_additem( gMenu, szItem, "9" );
- if ( Connect[id]>=1 ) formatex( szItem, sizeof (szItem) - 1, "Baby Steps \r*Completed*" );
- else formatex( szItem, sizeof (szItem) - 1, "Baby Steps \r[\yReward: 3000 CASH\r]" );
- menu_additem( gMenu, szItem, "10" );
- if ( Connect[id]==500 ) formatex( szItem, sizeof (szItem) - 1, "Galactic Fan \r*Completed*" );
- else formatex( szItem, sizeof (szItem) - 1, "Galactic Fan \y(\d%d/500\y) \r[\yReward: 65000 CASH\r]", Connect[ id ] );
- menu_additem( gMenu, szItem, "11" );
- if ( Escaper[id]==1 ) formatex( szItem, sizeof (szItem) - 1, "Escaper \r*Completed*" );
- else formatex( szItem, sizeof (szItem) - 1, "Escaper \r[\yReward: 17500 CASH\r]" );
- menu_additem( gMenu, szItem, "12" );
- if ( SkullBasher[id]==50 ) formatex( szItem, sizeof (szItem) - 1, "Skull Basher \r*Completed*" );
- else formatex( szItem, sizeof (szItem) - 1, "Skull Basher \y(\d%d/50\y) \r[\yReward: 25000 CASH\r]", SkullBasher[ id ] );
- menu_additem( gMenu, szItem, "13" );
- if ( TKills[id]==500 ) formatex( szItem, sizeof (szItem) - 1, "Bribed Guard \r*Completed*" );
- else formatex( szItem, sizeof (szItem) - 1, "Bribed Guard \y(\d%d/500\y) \r[\yReward: 22500 CASH\r]", TKills[ id ] );
- menu_additem( gMenu, szItem, "14" );
- if ( CTKills[id]==100 ) formatex( szItem, sizeof (szItem) - 1, "Convicted Prisoner \r*Completed*" );
- else formatex( szItem, sizeof (szItem) - 1, "Convicted Prisoner \y(\d%d/100\y) \r[\yReward: 22500 CASH\r]", CTKills[ id ] );
- menu_additem( gMenu, szItem, "15" );
- if ( Assassin[id]==1 ) formatex( szItem, sizeof (szItem) - 1, "3 With 1 Stone \r*Completed*" );
- else formatex( szItem, sizeof (szItem) - 1, "3 With 1 Stone \r[\yReward: 12500 CASH\r]" );
- menu_additem( gMenu, szItem, "16" );
- menu_display( id, gMenu );
- }
- public subSelfAch( id, gMenu, gItem )
- {
- if ( gItem == MENU_EXIT )
- {
- menu_destroy( gMenu );
- return PLUGIN_HANDLED;
- }
- AchMenu( id );
- return PLUGIN_HANDLED;
- }
- public FwdDecal( )
- {
- new id = read_data(2 );
- if ( !is_user_alive( id ) ) return PLUGIN_HANDLED;
- new iOrigin[ 3 ];
- new Float:vecOrigin[ 3 ];
- new Float:vecDirection[ 3 ];
- new Float:vecStop[ 3 ];
- new Float:vecStart[ 3 ];
- iOrigin[ 0 ] = read_data( 3 );
- iOrigin[ 1 ] = read_data( 4 );
- iOrigin[ 2 ] = read_data( 5 );
- IVecFVec( iOrigin, vecOrigin );
- velocity_by_aim( id, 5, vecDirection );
- xs_vec_add( vecOrigin, vecDirection, vecStop );
- xs_vec_mul_scalar( vecDirection, -1.0, vecDirection );
- xs_vec_add( vecOrigin, vecDirection, vecStart );
- engfunc( EngFunc_TraceLine, vecStart, vecStop, IGNORE_MONSTERS, -1, 0 );
- get_tr2( 0, TR_vecPlaneNormal, vecDirection );
- vecDirection[ 2 ] = 0.0;
- xs_vec_normalize( vecDirection, vecDirection );
- xs_vec_mul_scalar( vecDirection, 5.0, vecDirection );
- xs_vec_add( vecOrigin, vecDirection, vecStart );
- xs_vec_copy( vecStart, vecStop );
- vecStop[ 2 ] -= 9999.0;
- engfunc( EngFunc_TraceLine, vecStart, vecStop, IGNORE_MONSTERS, -1, 0 );
- get_tr2( 0, TR_vecEndPos, vecStop );
- if ( msg_Spray[ id ] == 0 )
- ColorChat( id, "You have sprayed^4 %.1f units^1 above the^3 ground^1!", ( vecStart[ 2 ] - vecStop[ 2 ] ) );
- if ( vecStart[ 2 ] - vecStop[ 2 ] > 370.0 )
- {
- if ( Decal3[ id ] != 0 ) return PLUGIN_CONTINUE;
- LevelUp( id );
- Decal3[ id ] = 1;
- Achievements[ id ] += 1;
- ColorChat( 0, "^4%s^1 has earned the^3 Golden Decal^4 Achievement^1! (^3 %d/17^4 Achievements ^1)", szName( id ), Achievements[ id ] );
- set_user_cash( id, get_user_cash( id ) + 8500 );
- Save( id );
- }
- if ( vecStart[ 2 ] - vecStop[ 2 ] > 350.0 )
- {
- if ( Decal2[ id ] != 0 ) return PLUGIN_CONTINUE;
- LevelUp( id );
- Decal2[ id ] = 1;
- Achievements[ id ] += 1;
- ColorChat( 0, "^4%s^1 has earned the^3 Silver Decal^4 Achievement^1! (^3 %d/17^4 Achievements ^1)", szName( id ), Achievements[ id ] );
- set_user_cash( id, get_user_cash( id ) + 17500 );
- Save( id );
- }
- if ( vecStart[ 2 ] - vecStop[ 2 ] > 270.0 )
- {
- if ( Decal1[ id ] != 0 ) return PLUGIN_CONTINUE;
- LevelUp( id );
- Decal1[ id ] = 1;
- Achievements[ id ] += 1;
- ColorChat( 0, "^4%s^1 has earned the^3 Bronze Decal^4 Achievement^1! (^3 %d/17^4 Achievements ^1)", szName( id ), Achievements[ id ] );
- set_user_cash( id, get_user_cash( id ) + 20000 );
- Save( id );
- }
- return PLUGIN_CONTINUE;
- }
- public FwdSpray( )
- {
- new id = read_data(2 );
- if ( !is_user_alive( id ) ) return PLUGIN_HANDLED;
- if ( Sprayed[ id ] >= 300 ) return PLUGIN_HANDLED;
- Sprayed[ id ] += 1;
- if ( Sprayed[ id ] == 50 )
- {
- LevelUp( id );
- Achievements[ id ] += 1;
- ColorChat( 0, "^4%s^1 has earned the^3 Artist^4 Achievement^1! (^3 %d/17^4 Achievements ^1)", szName( id ), Achievements[ id ] );
- set_user_cash( id, get_user_cash( id ) + 6500 );
- Save( id );
- }
- if ( Sprayed[ id ] == 170 )
- {
- LevelUp( id );
- Achievements[ id ] += 1;
- ColorChat( 0, "^4%s^1 has earned the^3 Hands of Gold^4 Achievement^1! (^3 %d/17^4 Achievements ^1)", szName( id ), Achievements[ id ] );
- set_user_cash( id, get_user_cash( id ) + 13500 );
- Save( id );
- }
- if ( Sprayed[ id ] == 300 )
- {
- LevelUp( id );
- Achievements[ id ] += 1;
- ColorChat( 0, "^4%s^1 has earned the^3 Graffiti Maker^4 Achievement^1! (^3 %d/17^4 Achievements ^1)", szName( id ), Achievements[ id ] );
- set_user_cash( id, get_user_cash( id ) + 20000 );
- Save( id );
- }
- return PLUGIN_CONTINUE;
- }
- public LevelUp( id )
- {
- if ( ScreenFlash[ id ] == 0 )
- {
- message_begin( MSG_ONE, get_user_msgid( "ScreenFade" ), {0,0,0}, id );
- write_short( 1<<10 );
- write_short( 1<<10 );
- write_short( 0 );
- write_byte( 255 );
- write_byte( 0 );
- write_byte( 0 );
- write_byte( 100 );
- message_end( );
- }
- if ( Sound[ id ] == 0 )
- emit_sound( id, CHAN_STATIC, g_szAchievementSound, 1.0, ATTN_NORM, 0, PITCH_NORM )
- if ( LavaSplash[ id ] == 0 )
- cmdLava( id );
- }
- cmdLava( const index )
- {
- new iOrigin[ 3 ];
- get_user_origin( index, iOrigin, 3 );
- message_begin( MSG_PVS, SVC_TEMPENTITY, iOrigin )
- write_byte( TE_LAVASPLASH );
- write_coord( iOrigin[ 0 ] );
- write_coord( iOrigin[ 1 ] );
- write_coord( iOrigin[ 2 ] );
- message_end( );
- }
- /* Stocks */
- stock ColorChat( const id, const string[], any:... )
- {
- new msg[ 191 ], players[ 32 ], count = 1;
- static len; len = formatex( msg, charsmax( msg ), "^1[^4 %s ^1] ", gPrefix );
- vformat( msg[ len ], charsmax( msg ) - len, string, 3 );
- if( id ) players[ 0 ] = id;
- else get_players( players,count,"ch" );
- for ( new i = 0; i < count; i++ )
- {
- if( is_user_connected( players[ i ] ) )
- {
- message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ), _, players[ i ] );
- write_byte( players[ i ] );
- write_string( msg );
- message_end( );
- }
- }
- }
- stock PushEntity( const szClassname[] )
- {
- static szClass[ 32 ], target[ 32 ], ent = -1, door;
- while( ( ent = fm_find_ent_by_class( ent, szClassname ) ) )
- {
- pev( ent, pev_target, target, charsmax( target ) );
- door = engfunc( EngFunc_FindEntityByString, 0, "targetname", target );
- if( !pev_valid( door ) )
- continue;
- pev( door, pev_classname, szClass, charsmax( szClass ) );
- if( !equali( szClass, "func_door" ) )
- continue;
- dllfunc( DLLFunc_Use, ent, 0 );
- }
- }
- stock szName( const index )
- {
- static Name[ 32 ];
- get_user_name( index, Name, charsmax( Name ) );
- return Name;
- }
- stock fm_get_user_team( id )
- return get_pdata_int( id, 114 );
Add Comment
Please, Sign In to add comment