Descarcare: Link!
- SMA (EDITAT) | Afiseaza codul
// Includes #include < amxmodx > #include < amxmisc > #include < hamsandwich > #include < cstrike > #include < fakemeta > #include < fun > #include < fvault > // Register Plugin new const PLUGIN_NAME[ ] = "[SURF] Level System", PLUGIN_VERSION[ ] = "1.7", PLUGIN_AUTHOR[ ] = "YONTU"; #define MAX_LEVEL 15 // This is max level #define ADMIN_ACCESS ADMIN_LEVEL_G #define is_user_valid(%1) (1 <= %1 <= 32) enum bs_data { Level = 1, Gravity, Speed, Health, Armor, Flash, He, Smoke } new const Tag[ ] = "[SURF: Level System]"; new const SoundLevelUp[ ] = "misc/levelup.wav"; new const g_Vault[ ] = "surf_levelmod_1.7"; new g_UserXP[ 33 ], g_UserLevel[ 33 ]; new cvar_levelup_protect, cvar_levelup_effects, cvar_kill_xp, cvar_hs_xp; new c_levelup_protect, c_levelup_effects, SyncHudMessage; // Hack to be able to use Ham_Player_ResetMaxSpeed (by joaquimandrade) new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame; enum e_data { Xp, Float:Gravity, Float:Speed, Health, Armor, Flash, He, Smoke } new const g_PlayerData[ MAX_LEVEL+1 ][ e_data ] = { /* XP Gravity Speed Health Armor Flash He Smoke */ // e_data { 0, 800.0, 260.0, 100, 0, 0, 0, 0 }, // NU modifica nimic pe linia asta { 100, 800.0, 260.0, 100, 0, 0, 0, 0 }, // Level 1 { 250, 780.0, 260.5, 105, 5, 0, 0, 0 }, // Level 2 { 300, 760.0, 270.0, 105, 10, 0, 0, 0 }, // Level 3 { 400, 740.0, 270.5, 110, 10, 0, 0, 0 }, // Level 4 { 500, 720.0, 280.0, 110, 15, 0, 0, 0 }, // Level 5 { 750, 700.0, 280.5, 115, 20, 0, 0, 0 }, // Level 6 { 1000, 680.0, 290.0, 120, 25, 0, 0, 0 }, // Level 7 { 1400, 660.0, 290.5, 125, 30, 0, 0, 0 }, // Level 8 { 1800, 640.0, 300.0, 130, 35, 0, 0, 0 }, // Level 9 { 2500, 620.0, 300.5, 150, 50, 0, 0, 0 }, // Level 10 { 4000, 600.0, 310.0, 150, 50, 1, 0, 0 }, // Level 11 { 5500, 580.0, 310.5, 150, 50, 1, 0, 1 }, // Level 12 { 7500, 560.0, 315.0, 150, 50, 2, 0, 1 }, // Level 13 { 9000, 540.0, 320.0, 150, 50, 2, 1, 1 }, // Level 14 { 12000, 500.0, 330.0, 175, 75, 2, 1, 1 } // Level 15 /* XP Gravity Speed Health Armor Flash He Smoke */ //e_data } public plugin_init( ) { register_plugin( PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR ); register_cvar( "level_mod_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER ); set_cvar_string( "level_mod_", PLUGIN_VERSION ); cvar_kill_xp = register_cvar( "surf_kill_xp", "25" ); cvar_hs_xp = register_cvar( "surf_hs_xp", "50" ); cvar_levelup_protect = register_cvar( "surf_levelup_protect", "1" ); cvar_levelup_effects = register_cvar( "surf_levelup_effects", "1" ); register_event( "HLTV", "event_NewRound", "a", "1=0", "2=0" ); register_event( "DeathMsg", "event_DeathMsg", "a" ); // Block change name. Is restricted. register_forward( FM_ClientUserInfoChanged, "fw_ChangeName" ); RegisterHam( Ham_Spawn, "player", "fw_PlayerSpawn", 1 ); RegisterHam( Ham_Player_ResetMaxSpeed, "player", "fw_ResetMaxSpeed_Post", 1 ); register_clcmd( "say /xp", "ClShowXp" ); register_clcmd( "say_team /xp", "ClShowXp" ); register_clcmd( "say /level", "CmdManagePlayers" ); register_clcmd( "say_team /level", "CmdManagePlayers" ); SyncHudMessage = CreateHudSyncObj( ); } public plugin_precache( ) precache_sound( SoundLevelUp ); public plugin_cfg( ) { c_levelup_protect = get_pcvar_num( cvar_levelup_protect ); c_levelup_effects = get_pcvar_num( cvar_levelup_effects ); } public plugin_natives( ) { // Player specific natives register_native( "xp_mod", "native_xp_mod", 1 ); register_native( "get_user_xp", "native_get_user_xp", 1 ); register_native( "get_user_level", "native_get_user_level", 1 ); register_native( "get_max_level", "native_get_max_level", 1 ); register_native( "get_user_next_level_xp", "native_get_user_next_level_xp", 1 ); } public native_xp_mod( id, set_xp, xp, set_level, level, update, save ) { if( !is_user_valid( id ) ) { log_error( AMX_ERR_NATIVE, "%s: Invalid Player (%d).", PLUGIN_NAME, id ); return false; } return make_user_happy( id, set_xp, xp, set_level, level, update, save ); } public native_get_user_xp( id ) { if( !is_user_valid( id ) ) { log_error( AMX_ERR_NATIVE, "%s: Invalid Player (%d).", PLUGIN_NAME, id ); return false; } return g_UserXP[ id ]; } public native_get_user_level( id ) { if( !is_user_valid( id ) ) { log_error( AMX_ERR_NATIVE, "%s: Invalid Player (%d).", PLUGIN_NAME, id ); return false; } return g_UserLevel[ id ]; } public native_get_max_level( ) return MAX_LEVEL; public native_get_user_next_level_xp( id ) { if( !is_user_valid( id ) ) { log_error( AMX_ERR_NATIVE, "%s: Invalid Player (%d).", PLUGIN_NAME, id ); return false; } if( is_user_connected( id ) && g_UserLevel[ id ] <= native_get_max_level( ) ) return get_xp_on_level( id ); return true; } public client_putinserver( id ) { LoadUserExperience( id ); set_task( 1.0, "task_ShowHUD", id + 1221, _, _, "b" ); } public client_disconnect( id ) { SaveUserExperience( id ); remove_task( id + 1221 ); } public fw_ChangeName( id ) { if( is_user_connected( id ) ) { new g_NewName[ 32 ]; get_user_info( id, "name", g_NewName, charsmax( g_NewName ) ); if( !equal( get_name( id ), g_NewName ) ) { ColorChat( id, "!3%s!1 Este!4 INTERZISA!1 schimbarea numelui pe server.", Tag ); set_user_info( id, "name", get_name( id ) ); } } } public fw_ResetMaxSpeed_Post( id ) { if( !is_user_alive( id ) ) return HAM_HANDLED; new Float:fMaxSpeed = g_PlayerData[ g_UserLevel[ id ] ][ Speed ]; set_user_maxspeed( id, fMaxSpeed ); new command[ 128 ]; formatex( command, charsmax( command ), "cl_forwardspeed %.1f;cl_sidespeed %.1f;cl_backspeed %.1f", fMaxSpeed, fMaxSpeed, fMaxSpeed ); client_cmd( id, command ); return HAM_IGNORED; } public fw_PlayerSpawn( id ) { if( !is_user_alive( id ) ) return PLUGIN_HANDLED; if( g_UserLevel[ id ] == MAX_LEVEL) ColorChat( id, "!4***!1 Level:!3 %d!4 ***!1 XP:!3 %d", MAX_LEVEL, g_UserXP[ id ] ); else ColorChat( id, "!4***!1 Level:!3 %d!1/!3%d!4 ***!1 XP:!3 %d!1/!3%d", g_UserLevel[ id ], MAX_LEVEL, g_UserXP[ id ], get_xp_on_level( id ) ); if( g_UserLevel[ id ] == 0 ) { make_user_happy( id, 0, 0, 0, 0, 1, 0 ); return PLUGIN_CONTINUE; } set_task( 1.0, "set_user_items", id ); return PLUGIN_CONTINUE; } public event_NewRound( ) { c_levelup_protect = get_pcvar_num( cvar_levelup_protect ); c_levelup_effects = get_pcvar_num( cvar_levelup_effects ); } public event_DeathMsg( ) { new iAttacker = read_data( 1 ); new iVictim = read_data( 2 ); new iHeadShot = read_data( 3 ); new HitSelf = ( iAttacker == iVictim ) ? 1 : 0; if( HitSelf ) return PLUGIN_HANDLED; new _xp_kill, _xp_hs; _xp_hs = get_pcvar_num( cvar_hs_xp ); _xp_kill = get_pcvar_num( cvar_kill_xp ); if( is_user_connected( iAttacker ) && is_user_connected( iVictim ) && !HitSelf ) { if( iHeadShot ) { if( _xp_hs != 0 ) { make_user_happy( iAttacker, 1, _xp_hs, 0, 0, 1, 1 ); ColorChat( iAttacker, "!4%s!1 You have been received!3 %i xp!1 for getting a headshot.", Tag, _xp_hs ); } return PLUGIN_HANDLED; } else { if( _xp_kill != 0 ) { make_user_happy( iAttacker, 1, _xp_kill, 0, 0, 1, 1 ); ColorChat( iAttacker, "!4%s!1 You have been received!3 %i xp!1 for killing the enemy.", Tag, _xp_kill ); } return PLUGIN_HANDLED; } return PLUGIN_CONTINUE; } return PLUGIN_CONTINUE; } public ClShowXp( id ) { if( is_user_connected( id ) ) { if( g_UserLevel[ id ] == MAX_LEVEL) ColorChat( id, "!4***!1 Level:!3 %d!4 ***!1 XP:!3 %d", MAX_LEVEL, g_UserXP[ id ] ); else ColorChat( id, "!4***!1 Level:!3 %d!1/!3%d!4 ***!1 XP:!3 %d!1/!3%d", g_UserLevel[ id ], MAX_LEVEL, g_UserXP[ id ], get_xp_on_level( id ) ); } return PLUGIN_HANDLED; } public CmdManagePlayers( id ) { if( !( get_user_flags( id ) & ADMIN_ACCESS ) ) { ColorChat( id, "!4%s!1 Doar!3 ADMINII!1 au acces!", Tag ); return PLUGIN_HANDLED; } new menu = menu_create( "Alege un jucator:", "MenuHandler" ); new iPlayers[ 32 ], iNum, i, player; new szUserID[ 32 ], szName[ 64 ]; get_players( iPlayers, iNum ); for( i = 0; i < iNum; i++ ) { player = iPlayers[ i ]; formatex( szName, charsmax( szName ), "%s:\y Level:\r %d", get_name( player ), g_UserLevel[ player ] ); formatex( szUserID, charsmax( szUserID ), "%d", get_user_userid( player ) ); menu_additem( menu, szName, szUserID ); } menu_display( id, menu ); return PLUGIN_HANDLED; } public MenuHandler( id, menu, item ) { if( item == MENU_EXIT ) { menu_destroy( menu ); return PLUGIN_HANDLED; } new item_access, callback, info[ 64 ], name[ 32 ]; menu_item_getinfo( menu, item, item_access, info, charsmax( info ), name, charsmax( name ), callback ); new userid = str_to_num( info ); new player = find_player( "k", userid ); ChoosePlayer( id, player ); return PLUGIN_HANDLED; } public ChoosePlayer( id, Choosen ) { new szTitle[ 101 ], mm[ 200 ], szChoosen[ 200 ]; formatex( szTitle, charsmax( szTitle ), "Schimba-i lui \r%s\y level-ul in:", get_name( Choosen ) ); new menu = menu_create( szTitle, "SetLevelHandler" ); num_to_str( Choosen, szChoosen, charsmax( szChoosen ) ); for( new i = 1; i < sizeof( g_PlayerData ); i++ ) { formatex( mm, charsmax( mm ), "%d", g_PlayerData[ i ][ Xp ] ); menu_additem( menu, mm, szChoosen ); } menu_display( id, menu ); return PLUGIN_HANDLED; } public SetLevelHandler( id, menu, item ) { if( item == MENU_EXIT ) { menu_destroy( menu ); return PLUGIN_HANDLED; } new item_access, callback, info[ 64 ], name[ 32 ]; menu_item_getinfo( menu, item, item_access, info, charsmax( info ), name, charsmax( name ), callback ); new player = str_to_num( info ); g_UserXP[ player ] = g_PlayerData[ item ][ Xp ]; g_UserLevel[ player ] = item; CheckUserLevel( player ); //make_user_happy( player, 1, g_PlayerData[ item ][ Xp ], 1, item, 1, 1 ); ColorChat( player, "!4%s!1 Adminul!3 %s!1 ti-a schimbat level-ul in!4 %d!1.", Tag, get_name( id ), g_UserLevel[ player ] ); menu_destroy( menu ); return PLUGIN_HANDLED; } public CheckUserLevel( id ) { if( g_UserLevel[ id ] <= MAX_LEVEL ) { if( g_UserXP[ id ] >= get_xp_on_level( id ) ) { make_user_happy( id, 0, 0, 1, 1, 0, 1 ); emit_sound( id, CHAN_AUTO, SoundLevelUp, 1.0, ATTN_NORM, 0, PITCH_NORM ); // Un mic efect? Nu strica... if( c_levelup_effects ) { // Luam culorile setate pentru fiecare level in parte new g_Color[ 3 ]; g_Color[ 0 ] = get_color_level( id, 0 ); // r g_Color[ 1 ] = get_color_level( id, 1 ); // g g_Color[ 2 ] = get_color_level( id, 2 ); // b // Producem efectul jucatorului MakeFadeScreen( id, 1.5, g_Color[ 2 ], g_Color[ 1 ], g_Color[ 0 ], random_num( 100, 200 ) ); } if( c_levelup_protect ) { fm_set_user_godmode( id, 1 ); set_task( 1.0, "task_RemoveProtect", id ); } ColorChat( id, "!3%s!1 Congratulations, you've !4leveled up!1. Current level:!3 %d!1 !", Tag, g_UserLevel[ id ] ); if( g_UserLevel[ id ] <= MAX_LEVEL -1 ) ColorChat( id, "!3%s!1 Next XP:!4 %d!1 !", Tag, get_xp_on_level( id ) ); } } return PLUGIN_HANDLED; } stock MakeFadeScreen( id, const Float:Seconds, const Red, const Green, const Blue, const Alpha ) { static g_MsgScreenFade = 0; if( !g_MsgScreenFade ) g_MsgScreenFade = get_user_msgid( "ScreenFade" ); message_begin( MSG_ONE, g_MsgScreenFade, _, id ); write_short( floatround( 4096.0 * Seconds, floatround_round ) ); write_short( floatround( 4096.0 * Seconds, floatround_round ) ); write_short( 0x0000 ); write_byte( Red ); write_byte( Green ); write_byte( Blue ); write_byte( Alpha ); message_end( ); } public get_color_level( id, number ) { new g_Color[ 3 ]; switch( g_UserLevel[ id ] ) { case 1: g_Color = { 248, 172, 58 }; case 2: g_Color = { 0, 255, 128 }; case 3: g_Color = { 170, 255, 127 }; case 4: g_Color = { 155, 240, 70 }; case 5: g_Color = { 255, 255, 0 }; case 6: g_Color = { 255, 127, 85 }; case 7: g_Color = { 0, 212, 255 }; case 8: g_Color = { 70, 70, 240 }; case 9: g_Color = { 170, 0, 255 }; case 10: g_Color = { 255, 255, 0 }; default: g_Color = { 0, 255, 0 }; } return g_Color[ number ]; } public task_RemoveProtect( id ) fm_set_user_godmode( id, 0 ); public task_ShowHUD( taskid ) { new ID_SHOWHUD = taskid - 1221; new player = ID_SHOWHUD; if( !is_user_alive( player ) ) { player = pev( player, pev_iuser2 ); if( !is_user_alive( player ) ) return; } if( player == ID_SHOWHUD ) { new g_Color[ 3 ]; g_Color[ 0 ] = get_color_level( player, 0 ); g_Color[ 1 ] = get_color_level( player, 1 ); g_Color[ 2 ] = get_color_level( player, 2 ); if( g_UserLevel[ player ] == MAX_LEVEL) { set_hudmessage( g_Color[ 0 ], g_Color[ 1 ], g_Color[ 2 ], 0.02, 0.92, 0, 6.0, 1.1, 0.0, 0.0, -1 ); ShowSyncHudMsg( player, SyncHudMessage, "LEVEL: Max Level - XP: %d", g_UserXP[ player ] ); } else { set_hudmessage( g_Color[ 0 ], g_Color[ 1 ], g_Color[ 2 ], 0.02, 0.92, 0, 6.0, 1.1, 0.0, 0.0, -1 ); ShowSyncHudMsg( player, SyncHudMessage, "LEVEL: %d/%d - XP: %d/%d - SPEED: %1.f", g_UserLevel[ player ], MAX_LEVEL, g_UserXP[ player ], get_xp_on_level( player ), get_user_maxspeed( player ) ); } } } public SaveUserExperience( id ) { new szVaultKey[ 64 ], szVaultData[ 256 ]; format( szVaultKey, charsmax( szVaultKey ), "%s", get_name( id ) ); format( szVaultData, charsmax( szVaultData ), "%d %d", g_UserXP[ id ], g_UserLevel[ id ] ); fvault_set_data( g_Vault, szVaultKey, szVaultData ); } public LoadUserExperience( id ) { new szVaultKey[ 64 ], szVaultData[ 256 ], xp[ 33 ], levels[ 33 ]; format( szVaultKey, charsmax( szVaultKey ), "%s", get_name( id ) ); format( szVaultData, charsmax( szVaultData ), "%d %d", g_UserXP[ id ], g_UserLevel[ id ] ); if( fvault_get_data( g_Vault, szVaultKey, szVaultData, charsmax( szVaultData ) ) ) { parse( szVaultData, xp, charsmax( xp ), levels, charsmax( levels ) ); g_UserXP[ id ] = str_to_num( xp ); g_UserLevel[ id ] = str_to_num( levels ); } } // STOCK'S public set_user_items( id ) { if( !is_user_alive( id ) ) return; set_user_health( id, g_PlayerData[ g_UserLevel[ id ] ][ Health ] ); set_user_armor( id, g_PlayerData[ g_UserLevel[ id ] ][ Armor ] ); set_user_gravity( id, g_PlayerData[ g_UserLevel[ id ] ][ Gravity ] * 0.00125 ); if( g_PlayerData[ g_UserLevel[ id ] ][ Flash ] != 0 ) { give_item( id, "weapon_flashbang" ); cs_set_user_bpammo( id, CSW_FLASHBANG, cs_get_user_bpammo( id, CSW_FLASHBANG ) + g_PlayerData[ g_UserLevel[ id ] ][ Flash ] ); } if( g_PlayerData[ g_UserLevel[ id ] ][ He ] != 0 ) { give_item( id, "weapon_hegrenade" ); cs_set_user_bpammo( id, CSW_HEGRENADE, cs_get_user_bpammo( id, CSW_HEGRENADE ) + g_PlayerData[ g_UserLevel[ id ] ][ He ] ); } if( g_PlayerData[ g_UserLevel[ id ] ][ Smoke ] != 0 ) { give_item( id, "weapon_smokegrenade" ); cs_set_user_bpammo( id, CSW_SMOKEGRENADE, cs_get_user_bpammo( id, CSW_SMOKEGRENADE ) + g_PlayerData[ g_UserLevel[ id ] ][ Smoke ] ); } ColorChat( id, "!3%s!1 Items: [!4%i He Grenades!1] [!4%i FlashBangs!1] [!4%i Smoke!1] [!4%i Health!1] [!4%i Armor!1]", Tag, g_PlayerData[ g_UserLevel[ id ] ][ He ], g_PlayerData[ g_UserLevel[ id ] ][ Flash ], g_PlayerData[ g_UserLevel[ id ] ][ Smoke ], g_PlayerData[ g_UserLevel[ id ] ][ Health ], g_PlayerData[ g_UserLevel[ id ] ][ Armor ] ); } // Stock by YONTU, pentru a preveni toate bugurile si pentru a optimiza codul doar printr-o linie, cand e vorba de setat si sters level. // Stock-ul accepta valori pozitive si negative si eventuale activari si dezactivari stock make_user_happy(id, set_xp, xp, set_level, level, update, save) { if(!is_user_connected(id)) return PLUGIN_HANDLED; if(set_xp) { g_UserXP[id] += xp; if(g_UserXP[id] <= 0) g_UserXP[id] = 0; } if(set_level) { if(level == 0) g_UserLevel[id] = 0; else if(level > MAX_LEVEL) g_UserLevel[id] = MAX_LEVEL; else { g_UserLevel[id] += level; if(g_UserLevel[id] <= 0) g_UserLevel[id] = 0; } } if(update) CheckUserLevel(id); if(save) SaveUserExperience(id); return PLUGIN_CONTINUE; } // 'Luam' xp-ul pentru fiecare level stock get_xp_on_level( id ) { // 'Luam' xp-ul pentru fiecare level return g_PlayerData[ g_UserLevel[ id ] ][ Xp ]; } stock ColorChat( id, String[ ], any:... ) { static szMesage[ 192 ]; vformat( szMesage, charsmax( szMesage ), String, 3 ); replace_all( szMesage, charsmax( szMesage ), "!1", "^1" ); replace_all( szMesage, charsmax( szMesage ), "!3", "^3" ); replace_all( szMesage, charsmax( szMesage ), "!4", "^4" ); static g_msg_SayText = 0; if( !g_msg_SayText ) g_msg_SayText = get_user_msgid( "SayText" ); new Players[ 32 ], iNum = 1, i; if( id ) Players[ 0 ] = id; else get_players( Players, iNum, "ch" ); for( --iNum; iNum >= 0; iNum-- ) { i = Players[ iNum ]; message_begin( MSG_ONE_UNRELIABLE, g_msg_SayText, _, i ); write_byte( i ); write_string( szMesage ); message_end( ); } } stock get_name( id ) { new szName[ 32 ]; get_user_name( id, szName, charsmax( szName ) ); return szName; } stock fm_set_user_godmode( id, godmode = 0 ) { set_pev( id, pev_takedamage, godmode == 1 ? DAMAGE_NO : DAMAGE_AIM ); return PLUGIN_HANDLED; } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par } */
Versiune: 1.7
Link oficial: Pe extream!
Instalare:
1. Fisierul surf_level_mod_1.7.sma il puneti in addons/amxmodx/scripting
2. Fisierul surf_level_mod_1.7.amxx il puneti in addons/amxmodx/plugins
3. Fisierul fvault.inc il puneti in addons/amxmodx/scripting/include
4. Fisierul levelup.wav il puneti in sound
5. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma:
Code: Select all
surf_level_mod_1.7.amxx
Cvar-uri (se adauga in fisierul amxmodx\configs\amxx.cfg):
- surf_kill_xp "15" - xp-ul pe kill; daca vrei sa nu mai primesti xp pe kill, setezi 0
surf_hs_xp - xp-ul pe headshot; daca vrei sa nu mai primesti xp pe hs, setezi 0
surf_levelup_protect "1" - 1 sau 0: te protejeaza cand faci level nou
surf_levelup_effects "1" - 1 sau 0: iti coloreaza ecranul la level nou (1 - on | 0 - off)
- -
- /xp - iti arata in chat un mesaj cu xp-ul si level-ul tau
/level - poti seta dintr-un meniu jucatorilor un level
- CStrike
- Fun
- Fakemeta
- Hamsandwich
Imagini: Rog pe cineva sa faca imagini si sa le uploadezi aici.
- ALTE INFORMATII | Afiseaza codul
- daca vrei sa schimbi accesul de a seta levele, modifica linia: (o gasesti in sursa) [quote]#define ADMIN_ACCESS ADMIN_LEVEL_G[/quote] - daca vrei sa modifici tag-ul din chat, cauti linia in sursa: (modifici doar ce se afla intre "") [quote]new const Tag[ ] = "[SURF: Level System]";[/quote] - beneficiile pe care le primesti in functie de level le gasesti aici: [quote]new const g_PlayerData[ MAX_LEVEL ][ e_data ] = { /* XP Gravity Speed Health Armor Flash He Smoke */ // e_data { 0, 800.0, 260.0, 100, 0, 0, 0, 0 }, // NU modifica nimic pe linia asta { 100, 800.0, 260.0, 100, 0, 0, 0, 0 }, // Level 1 { 250, 780.0, 260.5, 105, 5, 0, 0, 0 }, // Level 2 { 300, 760.0, 270.0, 105, 10, 0, 0, 0 }, // Level 3 { 400, 740.0, 270.5, 110, 10, 0, 0, 0 }, // Level 4 { 500, 720.0, 280.0, 110, 15, 0, 0, 0 }, // Level 5 { 750, 700.0, 280.5, 115, 20, 0, 0, 0 }, // Level 6 { 1000, 680.0, 290.0, 120, 25, 0, 0, 0 }, // Level 7 { 1400, 660.0, 290.5, 125, 30, 0, 0, 0 }, // Level 8 { 1800, 640.0, 300.0, 130, 35, 0, 0, 0 }, // Level 9 { 2500, 620.0, 300.5, 150, 50, 0, 0, 0 }, // Level 10 { 4000, 600.0, 310.0, 150, 50, 1, 0, 0 }, // Level 11 { 5500, 580.0, 310.5, 150, 50, 1, 0, 1 }, // Level 12 { 7500, 560.0, 315.0, 150, 50, 2, 0, 1 }, // Level 13 { 9000, 540.0, 320.0, 150, 50, 2, 1, 1 }, // Level 14 { 12000, 500.0, 330.0, 175, 75, 2, 1, 1 } // Level 15 /* XP Gravity Speed Health Armor Flash He Smoke */ //e_data }[/quote] -pe prima coloana se afla xp-ul necesar pe care trebuie sa-l faci sa avansezi la un nou level. Acesta este: [quote]100, 250, 300, 400, 500, 750, 1000, 1400, 1800, 2500, 4000, 5500, 7500, 9000, 12000 (se poate modifica dupa bunul plac)[/quote] -pe a doua coloana se afla viteza pe care o poti primi in functie de level-ul pe care il ai, analog gravitate, viata, armura, flash, he, smoke - sa luam un exemplu: La level 10, voi avea nevoie de 4000 xp acumulat sa trec la urmatorul nivel, voi beneficia de 620.0 gravitate, 300.5 viteza, 150 viata, 50 armura, 0 grenade flash, 0 grenade he, 0 grenade smoke
Toate beneficiile se pot seta dupa bunul plac!