[ Adons ] Furien Gost .sma
Descarcari de addons-uri si discutii despre acestea.
Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com
- MDFK. eXtream
- Membru, skill +4
- Posts: 1870
- Joined: 25 Aug 2014, 22:44
- Detinator Steam: Da
- SteamID: /id/langw0w
- Reputatie: Fost Membru Club eXtreamCS (2 luni)
- Fond eXtream: 0
- Location: București, România
- Discord: langw0w
- Has thanked: 23 times
- Been thanked: 42 times
- Ghost_Fury_xp | Afiseaza codul
#include < amxmodx > #include < amxmisc > #include < cstrike > #include < hamsandwich > #include < fakemeta > #include < engine > #include < fun > #include < nvault > #include < CC_ColorChat > #pragma semicolon 1 #define PLUGIN "Ghost Fury by Dias Pendragon v1 (Ghost Fury edit by d!abolic)" #define VERSION "Ghost Fury XP by Askhanar / Ulquiorra v1" // by ConnorMcLeod // ------------------------------- #define XO_WEAPON 4 #define m_pPlayer 41 #define XO_WEAPONBOX 4 #define m_rgpPlayerItems_wpnbx_Slot5 39 #define fm_cs_set_user_nobuy(%1) set_pdata_int(%1, 235, get_pdata_int(%1, 235) & ~(1<<0) ) // ------------------------------- // Don't touch it ! #define IsPlayer(%1) ( gFirstPlayer <= %1 <= gMaxPlayers ) #define DMG_GRENADE (1<<24) #define PISTOL_WEAPONS_BIT (1<<CSW_GLOCK18|1<<CSW_USP|1<<CSW_DEAGLE|1<<CSW_P228|1<<CSW_FIVESEVEN|1<<CSW_ELITE) #define SHOTGUN_WEAPONS_BIT (1<<CSW_M3|1<<CSW_XM1014) #define SUBMACHINE_WEAPONS_BIT (1<<CSW_TMP|1<<CSW_MAC10|1<<CSW_MP5NAVY|1<<CSW_UMP45|1<<CSW_P90) #define RIFLE_WEAPONS_BIT (1<<CSW_FAMAS|1<<CSW_GALIL|1<<CSW_AK47|1<<CSW_SCOUT|1<<CSW_M4A1|1<<CSW_SG550|1<<CSW_SG552|1<<CSW_AUG|1<<CSW_AWP|1<<CSW_G3SG1) #define MACHINE_WEAPONS_BIT (1<<CSW_M249) #define PRIMARY_WEAPONS_BIT (SHOTGUN_WEAPONS_BIT|SUBMACHINE_WEAPONS_BIT|RIFLE_WEAPONS_BIT|MACHINE_WEAPONS_BIT) #define SECONDARY_WEAPONS_BIT (PISTOL_WEAPONS_BIT) #define IsPrimaryWeapon(%1) ( (1<<%1) & PRIMARY_WEAPONS_BIT ) #define IsSecondaryWeapon(%1) ( (1<<%1) & PISTOL_WEAPONS_BIT ) new const MESSAGE_TAG[] = "[Ghost Fury]"; #define CS_TEAM_FURIEN CS_TEAM_T #define CS_TEAM_ANTIFURIEN CS_TEAM_CT // Access to amx_givexp amx_takexp.. #define FURIEN_ACCESS ADMIN_CVAR // Just a task used for team switch and model change.. #define SWITCH_TASK 112233 // One day in seconds used for nvault_prune.. #define ONE_DAY_IN_SECONDS 86400 // If user's healts is below this value his heart will beat + some effects. #define LOW_HP_TO_HEAR_HEART 40 // This is null do not modify #define NULL 0 //#define NULL_FLOAT 0.0 // The value of server's sv_maxspeed cvar which is set to. // This value is set to connecting players on cl_ cvars. // cl_forwardspeed // cl_backspeed // cl_sidespeed #define SV_MAXSPEED_VALUE 1000.0 // Do Not Modify This Line ! #define ANY_UPGRADE_ENABLED (gAnyHealthEnabled || gAnyArmorEnabled || gAnySpeedEnabled || gAnyGravityEnabled || gAnyDamageMultiplierEnabled || gAnyRespawnEnabled) // These determine if these abilities should be enabled or disabled // 1 = enabled // 0 = disabled #define ENABLE_FURIEN_HEALTH 1 #define ENABLE_ANTIFURIEN_HEALTH 1 #define ENABLE_FURIEN_ARMOR 1 #define ENABLE_ANTIFURIEN_ARMOR 1 #define ENABLE_FURIEN_SPEED 1 #define ENABLE_ANTIFURIEN_SPEED 1 #define ENABLE_FURIEN_GRAVITY 1 #define ENABLE_ANTIFURIEN_GRAVITY 1 #define ENABLE_FURIEN_DAMAGE_MULTIPLIER 1 #define ENABLE_ANTIFURIEN_DAMAGE_MULTIPLIER 1 #define ENABLE_FURIEN_RESPAWN 1 #define ENABLE_ANTIFURIEN_RESPAWN 1 #define ENABLE_FURIEN_HEALTH_REG 1 #define ENABLE_ANTIFURIEN_HEALTH_REG 1 #define ENABLE_FURIEN_ARMOR_CHARGER 1 #define ENABLE_ANTIFURIEN_ARMOR_CHARGER 1 // The maximum level for each ability #define MAXLEVEL_FURIEN_HEALTH 10 #define MAXLEVEL_ANTIFURIEN_HEALTH 10 #define MAXLEVEL_FURIEN_ARMOR 10 #define MAXLEVEL_ANTIFURIEN_ARMOR 10 #define MAXLEVEL_FURIEN_SPEED 7 #define MAXLEVEL_ANTIFURIEN_SPEED 7 #define MAXLEVEL_FURIEN_GRAVITY 7 #define MAXLEVEL_ANTIFURIEN_GRAVITY 7 #define MAXLEVEL_FURIEN_DAMAGE_MULTIPLIER 10 #define MAXLEVEL_ANTIFURIEN_DAMAGE_MULTIPLIER 10 #define MAXLEVEL_FURIEN_RESPAWN 10 #define MAXLEVEL_ANTIFURIEN_RESPAWN 10 #define MAXLEVEL_FURIEN_HEALTH_REG 10 #define MAXLEVEL_ANTIFURIEN_HEALTH_REG 7 #define MAXLEVEL_FURIEN_ARMOR_CHARGER 10 #define MAXLEVEL_ANTIFURIEN_ARMOR_CHARGER 7 // The xp amount required to buy the first level #define FIRST_XP_FURIEN_HEALTH 550 #define FIRST_XP_ANTIFURIEN_HEALTH 600 #define FIRST_XP_FURIEN_ARMOR 600 #define FIRST_XP_ANTIFURIEN_ARMOR 550 #define FIRST_XP_FURIEN_SPEED 1500 #define FIRST_XP_ANTIFURIEN_SPEED 2000 #define FIRST_XP_FURIEN_GRAVITY 1500 #define FIRST_XP_ANTIFURIEN_GRAVITY 2000 #define FIRST_XP_FURIEN_DAMAGE_MULTIPLIER 1000 #define FIRST_XP_ANTIFURIEN_DAMAGE_MULTIPLIER 1200 #define FIRST_XP_FURIEN_RESPAWN 1200 #define FIRST_XP_ANTIFURIEN_RESPAWN 1350 #define FIRST_XP_FURIEN_HEALTH_REG 1050 #define FIRST_XP_ANTIFURIEN_HEALTH_REG 1150 #define FIRST_XP_FURIEN_ARMOR_CHARGER 1150 #define FIRST_XP_ANTIFURIEN_ARMOR_CHARGER 1050 // The max amount of health , armor, and other. // For Speed , Gravity and Damage Multiplier you can edit them at bottom of this part. #define MAXAMOUNT_OF_FURIEN_HEALTH 100 #define MAXAMOUNT_OF_ANTIFURIEN_HEALTH 110 #define MAXAMOUNT_OF_FURIEN_ARMOR 110 #define MAXAMOUNT_OF_ANTIFURIEN_ARMOR 100 #define MAXAMOUNT_OF_FURIEN_RESPAWN 100 #define MAXAMOUNT_OF_ANTIFURIEN_RESPAWN 100 #define MAXAMOUNT_OF_FURIEN_HEALTH_REG 10 #define MAXAMOUNT_OF_ANTIFURIEN_HEALTH_REG 7 #define MAXAMOUNT_OF_FURIEN_ARMOR_CHARGER 10 #define MAXAMOUNT_OF_ANTIFURIEN_ARMOR_CHARGER 7 // ================================================= // STOP EDITING HERE // ================================================= #pragma semicolon 1 new const gAnyHealthEnabled = ENABLE_FURIEN_HEALTH + ENABLE_ANTIFURIEN_HEALTH; new const gHealthEnabled[ CsTeams ] = { NULL, ENABLE_FURIEN_HEALTH, ENABLE_ANTIFURIEN_HEALTH, NULL }; new const gHealthMaxLevels[ CsTeams ] = { NULL, MAXLEVEL_FURIEN_HEALTH, MAXLEVEL_ANTIFURIEN_HEALTH, NULL }; new const gHealthFirstXp[ CsTeams ] = { NULL, FIRST_XP_FURIEN_HEALTH, FIRST_XP_ANTIFURIEN_HEALTH, NULL }; new const gHealthMaxAmount[ CsTeams ] = { NULL, MAXAMOUNT_OF_FURIEN_HEALTH, MAXAMOUNT_OF_ANTIFURIEN_HEALTH, NULL }; new const gHealthNames[ CsTeams ][ ] = { "", "Ghost HP", "Humans HP", "" }; new const gAnyArmorEnabled = ENABLE_FURIEN_ARMOR + ENABLE_ANTIFURIEN_ARMOR; new const gArmorEnabled[ CsTeams ] = { NULL, ENABLE_FURIEN_ARMOR, ENABLE_ANTIFURIEN_ARMOR, NULL }; new const gArmorMaxLevels[ CsTeams ] = { NULL, MAXLEVEL_FURIEN_ARMOR, MAXLEVEL_ANTIFURIEN_ARMOR, NULL }; new const gArmorFirstXp[ CsTeams ] = { NULL, FIRST_XP_FURIEN_ARMOR, FIRST_XP_ANTIFURIEN_ARMOR, NULL }; new const gArmorMaxAmount[ CsTeams ] = { NULL, MAXAMOUNT_OF_FURIEN_ARMOR, MAXAMOUNT_OF_ANTIFURIEN_ARMOR, NULL }; new const gArmorNames[ CsTeams ][ ] = { "", "Ghost AP", "Humans AP", "" }; new const gAnySpeedEnabled = ENABLE_FURIEN_SPEED + ENABLE_ANTIFURIEN_SPEED; new const gSpeedEnabled[ CsTeams ] = { NULL, ENABLE_FURIEN_SPEED, ENABLE_ANTIFURIEN_SPEED, NULL }; new const gSpeedMaxLevels[ CsTeams ] = { NULL, MAXLEVEL_FURIEN_SPEED, MAXLEVEL_ANTIFURIEN_SPEED, NULL }; new const gSpeedFirstXp[ CsTeams ] = { NULL, FIRST_XP_FURIEN_SPEED, FIRST_XP_ANTIFURIEN_SPEED, NULL }; new const gSpeedNames[ CsTeams ][ ] = { "", "Ghost Speed", "Humans Speed", "" }; new const gAnyGravityEnabled = ENABLE_FURIEN_GRAVITY + ENABLE_ANTIFURIEN_GRAVITY; new const gGravityEnabled[ CsTeams ] = { NULL, ENABLE_FURIEN_GRAVITY, ENABLE_ANTIFURIEN_GRAVITY, NULL }; new const gGravityMaxLevels[ CsTeams ] = { NULL, MAXLEVEL_FURIEN_GRAVITY, MAXLEVEL_ANTIFURIEN_GRAVITY, NULL }; new const gGravityFirstXp[ CsTeams ] = { NULL, FIRST_XP_FURIEN_GRAVITY, FIRST_XP_ANTIFURIEN_GRAVITY, NULL }; new const gGravityNames[ CsTeams ][ ] = { "", "Ghost Gravity", "Humasn Gravity", "" }; new const gAnyDamageMultiplierEnabled = ENABLE_FURIEN_DAMAGE_MULTIPLIER + ENABLE_ANTIFURIEN_DAMAGE_MULTIPLIER; new const gDamageMultiplierEnabled[ CsTeams ] = { NULL, ENABLE_FURIEN_DAMAGE_MULTIPLIER, ENABLE_ANTIFURIEN_DAMAGE_MULTIPLIER, NULL }; new const gDamageMultiplierMaxLevels[ CsTeams ] = { NULL, MAXLEVEL_FURIEN_DAMAGE_MULTIPLIER, MAXLEVEL_ANTIFURIEN_DAMAGE_MULTIPLIER, NULL }; new const gDamageMultiplierFirstXp[ CsTeams ] = { NULL, FIRST_XP_FURIEN_DAMAGE_MULTIPLIER, FIRST_XP_ANTIFURIEN_DAMAGE_MULTIPLIER, NULL }; new const gDamageMultiplierNames[ CsTeams ][ ] = { "", "Ghost MultiDamage", "Humasn MultiDamage", "" }; new const gAnyRespawnEnabled = ENABLE_FURIEN_RESPAWN + ENABLE_ANTIFURIEN_RESPAWN; new const gRespawnEnabled[ CsTeams ] = { NULL, ENABLE_FURIEN_RESPAWN, ENABLE_ANTIFURIEN_RESPAWN, NULL }; new const gRespawnMaxLevels[ CsTeams ] = { NULL, MAXLEVEL_FURIEN_RESPAWN, MAXLEVEL_ANTIFURIEN_RESPAWN, NULL }; new const gRespawnFirstXp[ CsTeams ] = { NULL, FIRST_XP_FURIEN_RESPAWN, FIRST_XP_ANTIFURIEN_RESPAWN, NULL }; new const gRespawnMaxAmount[ CsTeams ] = { NULL, MAXAMOUNT_OF_FURIEN_RESPAWN, MAXAMOUNT_OF_ANTIFURIEN_RESPAWN, NULL }; new const gRespawnNames[ CsTeams ][ ] = { "", "Ghost Respawn", "Humans Respawn", "" }; new const gAnyHealthRegenerationEnabled = ENABLE_FURIEN_HEALTH_REG + ENABLE_ANTIFURIEN_HEALTH_REG; new const gHealthRegenerationEnabled[ CsTeams ] = { NULL, ENABLE_FURIEN_HEALTH_REG, ENABLE_ANTIFURIEN_HEALTH_REG, NULL }; new const gHealthRegenerationMaxLevels[ CsTeams ] = { NULL, MAXLEVEL_FURIEN_HEALTH_REG, MAXLEVEL_ANTIFURIEN_HEALTH_REG, NULL }; new const gHealthRegenerationFirstXp[ CsTeams ] = { NULL, FIRST_XP_FURIEN_HEALTH_REG, FIRST_XP_ANTIFURIEN_HEALTH_REG, NULL }; new const gHealthRegenerationMaxAmount[ CsTeams ] = { NULL, MAXAMOUNT_OF_FURIEN_HEALTH_REG, MAXAMOUNT_OF_ANTIFURIEN_HEALTH_REG, NULL }; new const gHealthRegenerationNames[ CsTeams ][ ] = { "", "Ghost Regeneration HP", "Humans Regeneration HP", "" }; new const gAnyArmorChargerEnabled = ENABLE_FURIEN_ARMOR_CHARGER + ENABLE_ANTIFURIEN_ARMOR_CHARGER; new const gArmorChargerEnabled[ CsTeams ] = { NULL, ENABLE_FURIEN_ARMOR_CHARGER, ENABLE_ANTIFURIEN_ARMOR_CHARGER, NULL }; new const gArmorChargerMaxLevels[ CsTeams ] = { NULL, MAXLEVEL_FURIEN_ARMOR_CHARGER, MAXLEVEL_ANTIFURIEN_ARMOR_CHARGER, NULL }; new const gArmorChargerFirstXp[ CsTeams ] = { NULL, FIRST_XP_FURIEN_ARMOR_CHARGER, FIRST_XP_ANTIFURIEN_ARMOR_CHARGER, NULL }; new const gArmorChargerMaxAmount[ CsTeams ] = { NULL, MAXAMOUNT_OF_FURIEN_ARMOR_CHARGER, MAXAMOUNT_OF_ANTIFURIEN_ARMOR_CHARGER, NULL }; new const gArmorChargerNames[ CsTeams ][ ] = { "", "Ghost Regeneration AP", "Humans Regeneration AP", "" }; // Furien Speed Levels. // Level 0 = 350 SPEED. new const Float:gFurienSpeedLevels[ MAXLEVEL_FURIEN_SPEED + 1 ] = { 450.0, //Level 0. 500.0, //Level 1. 550.0, //Level 2. 600.0, //Level 3. 650.0, //Level 4. 700.0, //Level 5. 750.0, //Level 6. 800.0 //Level 7. }; // AntiFurien Speed Levels. // Level 0 = 255 SPEED. new const Float:gAntiFurienSpeedLevels[ MAXLEVEL_ANTIFURIEN_SPEED + 1 ] = { 250.0, //Level 0. 275.0, //Level 1. 300.0, //Level 2. 325.0, //Level 3. 350.0, //Level 4. 375.0, //Level 5. 400.0, //Level 6. 425.0 //Level 7. }; // Furien Gravity Levels. // Level 0 = 720 Gravity. // 1.0 = 800 Gravity // 0.00125 = 1 Gravity // 0.125 = 100 Gravity new const Float:gFurienGravityLevels[ MAXLEVEL_FURIEN_GRAVITY + 1 ] = { 0.9, //Level 0. ( 720 Gravity ) 0.8, //Level 1. ( 640 Gravity ) 0.750, //Level 2. ( 600 Gravity ) 0.7, //Level 3. ( 560 Gravity ) 0.6, //Level 4. ( 480 Gravity ) 0.5, //Level 5. ( 400 Gravity ) 0.4, //Level 6. ( 320 Gravity ) 0.350 //Level 7. ( 280 Gravity ) }; // AntiFurien Gravity Levels. // Level 0 = 800 Gravity. // 1.0 = 800 Gravity // 0.00125 = 1 Gravity // 0.125 = 100 Gravity new const Float:gAntiFurienGravityLevels[ MAXLEVEL_ANTIFURIEN_GRAVITY + 1 ] = { 1.0, //Level 0. ( 800 Gravity ) 0.950, //Level 1. ( 760 Gravity ) 0.9, //Level 2. ( 720 Gravity ) 0.850, //Level 3. ( 680 Gravity ) 0.8, //Level 4. ( 640 Gravity ) 0.750, //Level 5. ( 600 Gravity ) 0.7, //Level 6. ( 560 Gravity ) 0.650 //Level 7. ( 520 Gravity ) }; // Max Amount of Furien Damage Multiplier. // This amount is divided with Damage Multiplier Max Levels ( 5 ). // 1.4 / 7 = 0.2 This 0.2 will be multiplied with Player's Damage Multiplier Level on Furien Team. // The result is added at HamTakeDamage ( 1.0 is normal damage, it will be 1.0 + result ). // At Max Level it will be 1.4 so.. ( 1.0 default damage + 1.4 = 2.4.. this means more than double damage.. 50 damage will become like 120 ). new Float:gFurienMaxDamageMultiplier = 2.10; // Max Amount of Furien Damage Multiplier. // This amount is divided with Damage Multiplier Max Levels ( 5 ). // 0.5 / 5 = 0.1 This 0.1 will be multiplied with Player's Damage Multiplier Level on AntiFurien Team. // The result is added at HamTakeDamage ( 1.0 is normal damage, it will be 1.0 + result ). // At Max Level it will be 0.5 so.. ( 1.0 default damage + 0.5 = 1.5.. this means..50 damage will become 75 ). new Float:gAntiFurienMaxDamageMultiplier = 0.5; // Do not modify this. new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame; /*================================================================================================*/ new const gWeaponsBuyCommands[ ][ ] = { "usp", "glock", "deagle", "p228", "elites", "fn57", "m3", "xm1014", "mp5", "tmp", "p90", "mac10", "ump45", "ak47", "galil", "famas", "sg552", "m4a1", "aug", "scout", "awp", "g3sg1", "sg550", "m249", "vest", "vesthelm", "flash", "hegren", "sgren", "defuser", "nvgs", "shield", "primammo", "secammo", "km45", "9x19mm", "nighthawk", "228compact", "fiveseven", "12gauge", "autoshotgun", "mp", "c90", "cv47", "defender", "clarion", "krieg552", "bullpup", "magnum", "d3au1", "krieg550", "buyammo1", "buyammo2", "buyequip" }; /*================================================================================================*/ new const gImportantBlocks[ ][ ] = { /*"chooseteam", "jointeam 1",*/ "cl_autobuy", "cl_rebuy", "cl_setautobuy", "cl_setrebuy", "buy", "bUy", "buY", "bUY", "Buy", "BUy", "BuY", "BUY" }; /*================================================================================================*/ new const gRadioCommands[ ][ ] = { "radio1", "radio2", "radio3", "coverme", "takepoint", "holdpos", "regroup", "followme", "takingfire", "go", "fallback", "sticktog", "getinpos", "stormfront", "report", "roger", "enemyspot", "needbackup", "sectorclear", "inposition", "reportingin", "getout", "negative", "enemydown" }; // Strings.. new const FurienWinSound[ ] = "FurienWinSound.mp3"; new const AntiFurienWinSound[ ] = "AntiFurienWinSound.mp3"; new const LowHealthSound[ ] = "misc/FMU_HeartBeat.wav"; new const LaserSprite[ ] = "sprites/zbeam4.spr"; new const SndPickUpItem[ ] = "fmu_sounds/fmu_pickupitem.wav"; new const SndRespawn[ ] = "fmu_sounds/fmu_respawn.wav"; new const SndTome[ ] = "fmu_sounds/fmu_tome.wav"; new const SndLevelUp[ ] = "fmu_sounds/fmu_levelup.wav"; new const g_szFurienModUltimateSound[ ] = "fmu_sounds/FurienModUltimate.mp3"; // Trie... // Variables.. new gHealthLevel[ 33 ][ CsTeams ]; new gArmorLevel[ 33 ][ CsTeams ]; new gSpeedLevel[ 33 ][ CsTeams ]; new gGravityLevel[ 33 ][ CsTeams ]; new gDamageMultiplierLevel[ 33 ][ CsTeams ]; new gRespawnLevel[ 33 ][ CsTeams ]; new gHealthRegenerationLevel[ 33 ][ CsTeams ]; new gArmorChargerLevel[ 33 ][ CsTeams ]; new gPlayerUsedRespawn[ 33 ]; new gUserXp[ 33 ]; // Cvars. new gCvarSaveXP; new gCvarEntryXP; new gCvarKillXP; new gCvarHeadShotKillXP; new gCvarGrenadeKillXP; new gCvarKnifeKillXP; new gCvarSurviveXP; new gCvarWinXP; new gCvarBlockBuy; new gCvarBlockRadio; new gCvarBlockDropCommand; new gCvarBlockWeaponPickUp; new gCvarVipMoneyBonus; //new gCvarVipContact; new gCvarAllowTransferXP; new gCvarEnableShop; new gCvarHPCost; new gCvarAPCost; //new gCvarHECost; new gCvarSWCost; new gCvarXPAmount; new gCvarXPCost; new gCvarIRCost; //new gCvarGameType; // Bools new bool:gUserHasLaser[ 33 ]; new bool:gUserHasChameleon[ 33 ]; new bool:gFirstTimePlayed[ 33 ]; new bool:gRoundEnded = false; // Others new gLaserSprite; new gFirstPlayer; new gMaxPlayers; // Our Vault.. new gVault; // Pcvars.. new sv_airaccelerate, sv_maxspeed; public plugin_cfg( ) set_cvar_float( "sv_maxspeed", SV_MAXSPEED_VALUE ); public plugin_precache( ) { new ModelOrSoundPath[ 128 ]; formatex( ModelOrSoundPath, sizeof ( ModelOrSoundPath ) -1, "sound/%s", g_szFurienModUltimateSound ); precache_generic( ModelOrSoundPath ); if( contain( FurienWinSound, ".wav" ) > 0 ) { formatex( ModelOrSoundPath, sizeof ( ModelOrSoundPath ) -1, "fmu_sounds/%s", FurienWinSound ); precache_sound( ModelOrSoundPath ); } else if( contain( FurienWinSound, ".mp3" ) > 0 ) { formatex( ModelOrSoundPath, sizeof ( ModelOrSoundPath ) -1, "sound/fmu_sounds/%s", FurienWinSound ); precache_generic( ModelOrSoundPath ); } if( contain( AntiFurienWinSound, ".wav" ) > 0 ) { formatex( ModelOrSoundPath, sizeof ( ModelOrSoundPath ) -1, "fmu_sounds/%s", AntiFurienWinSound ); precache_sound( ModelOrSoundPath ); } else if( contain( AntiFurienWinSound, ".mp3" ) > 0 ) { formatex( ModelOrSoundPath, sizeof ( ModelOrSoundPath ) -1, "sound/fmu_sounds/%s", AntiFurienWinSound ); precache_generic( ModelOrSoundPath ); } precache_sound( LowHealthSound ); precache_sound( SndPickUpItem ); precache_sound( SndRespawn ); precache_sound( SndTome ); precache_sound( SndLevelUp ); gLaserSprite = precache_model( LaserSprite ); /* precache_generic( "gfx/env/fuzzyskybk.tga" ); precache_generic( "gfx/env/fuzzyskydn.tga" ); precache_generic( "gfx/env/fuzzyskyft.tga" ); precache_generic( "gfx/env/fuzzyskylf.tga" ); precache_generic( "gfx/env/fuzzyskyrt.tga" ); precache_generic( "gfx/env/fuzzyskyup.tga" ); */ } public plugin_init( ) { new szServerIp[ 22 ]; get_user_ip( 0, szServerIp, sizeof ( szServerIp ) -1, 1 ); if( equal( szServerIp, "195.178.102.155" ) ) { new PluginName[ 32 ]; format( PluginName, sizeof ( PluginName ) -1, "[Ip License] %s", PLUGIN ); register_plugin( PluginName, VERSION, "Askhanar/d!abolic" ); server_print( "%s Congratulations! Do you own a valid license and the plugin works perfectly!", PLUGIN ); } else { new PluginName[ 32 ]; format( PluginName, sizeof ( PluginName ) -1, "[Ip NO License] %s", PLUGIN ); register_plugin( PluginName, VERSION, "Askhanar/d!abolic" ); server_print( "%s You dont own a valid license! The plugin will not work properly !", PLUGIN ); pause( "ade" ); } register_plugin( PLUGIN, VERSION, "Askhanar/d!abolic" ); register_cvar( "fmu_version", VERSION, FCVAR_SERVER | FCVAR_SPONLY ); gCvarSaveXP = register_cvar( "fmu_save_xp", "1" ); gCvarEntryXP = register_cvar( "fmu_entry_xp", "15845" ); gCvarKillXP = register_cvar( "fmu_kill_xp", "45" ); gCvarHeadShotKillXP = register_cvar( "fmu_hskill_xp", "15" ); gCvarGrenadeKillXP = register_cvar( "fmu_grenadekill_xp", "20" ); gCvarKnifeKillXP = register_cvar( "fmu_knifekill_xp", "25" ); gCvarSurviveXP = register_cvar( "fmu_survive_xp", "10" ); gCvarWinXP = register_cvar( "fmu_win_xp", "15" ); gCvarBlockBuy = register_cvar( "fmu_block_buy", "1" ); gCvarBlockRadio = register_cvar( "fmu_block_radio", "1" ); gCvarBlockDropCommand = register_cvar( "fmu_block_drop", "2" ); gCvarBlockWeaponPickUp = register_cvar( "fmu_allow_pickup", "2" ); gCvarVipMoneyBonus = register_cvar( "fmu_vip_moneybonus", "15" ); //gCvarVipContact = register_cvar( "fmu_vip_contact", "[email protected]" ); gCvarAllowTransferXP = register_cvar( "fmu_allow_transferxp", "0" ); gCvarEnableShop = register_cvar( "fmu_enable_shop", "1" ); gCvarHPCost = register_cvar( "fmu_hp_cost", "3500" ); gCvarAPCost = register_cvar( "fmu_ap_cost", "2500" ); //gCvarHECost = register_cvar( "fmu_he_cost", "2500" ); gCvarSWCost = register_cvar( "fmu_sw_cost", "1500" ); gCvarXPAmount = register_cvar( "fmu_xp_amount", "1050" ); gCvarXPCost = register_cvar( "fmu_xp_cost", "13000" ); gCvarIRCost = register_cvar( "fmu_ir_cost", "11000" ); //Game Type //new FurienModUltimate[ 32 ]; //formatex( FurienModUltimate, sizeof ( FurienModUltimate ) -1, "Ghsot Fury v%s", VERSION ); //gCvarGameType = register_cvar( "fmu_gametype", FurienModUltimate ); register_clcmd( "amx_givexp", "cmdGiveXP" ); register_clcmd( "amx_addxp", "cmdGiveXPOwner" ); register_clcmd( "amx_takexp", "cmdTakeXP" ); register_clcmd( "amx_reset", "cmdResetXP" ); //register_clcmd( "amx_transfer", "cmdTransfer" ); register_clcmd( "amx_deletexp", "cmdDeleteXP" ); register_clcmd( "say", "ClCmdSay" ); register_clcmd( "say_team", "ClCmdSay" ); register_clcmd( "fmu_transfer", "ClCmdTransferXp" ); register_clcmd( "fmu_givexp", "ClCmdTransferXp" ); register_clcmd( "fmu_info", "ClCmdInfo" ); register_clcmd( "fmu_totalxp", "ClCmdTotalXP" ); register_clcmd( "fmu_totalxp", "ClCmdTotalXP" ); register_clcmd( "say /vip", "ClCmdSayVip" ); register_clcmd( "say_team /vip", "ClCmdSayVip" ); register_clcmd( "say /vips", "ClCmdSayVip" ); register_clcmd( "say_team /vips", "ClCmdSayVip" ); register_clcmd( "say /buyvip", "ClCmdSayBuyVip" ); register_clcmd( "say_team /buyvip", "ClCmdSayBuyVip" ); register_clcmd( "say /resetupgrades", "ClCmdSayResetUpgrades" ); register_clcmd( "say_team /resetupgrades", "ClCmdSayResetUpgrades" ); register_clcmd( "say /shop", "ClCmdSayShop" ); register_clcmd( "say shop", "ClCmdSayShop" ); register_clcmd( "say_team /shop", "ClCmdSayShop" ); register_clcmd( "say_team shop", "ClCmdSayShop" ); register_clcmd( "say /xp", "CmdMainMenu" ); register_clcmd( "say /exp", "CmdMainMenu" ); register_clcmd( "say_team /xp", "CmdMainMenu" ); register_clcmd( "say_team /exp", "CmdMainMenu" ); register_clcmd( "say xp", "CmdMainMenu" ); register_clcmd( "say exp", "CmdMainMenu" ); register_clcmd( "say_team xp", "CmdMainMenu" ); register_clcmd( "say_team exp", "CmdMainMenu" ); register_clcmd( "say /help", "CmdHelpMenu" ); register_clcmd( "say /help", "CmdHelpMenu" ); register_clcmd( "say_team /help", "CmdHelpMenu" ); register_clcmd( "say_team /help", "CmdHelpMenu" ); register_clcmd( "say help", "CmdHelpMenu" ); register_clcmd( "say help", "CmdHelpMenu" ); register_clcmd( "say_team help", "CmdHelpMenu" ); register_clcmd( "say_team help", "CmdHelpMenu" ); //Blocked cmds for( new i = 0 ; i < sizeof( gImportantBlocks ) ; i++ ) register_clcmd( gImportantBlocks[ i ], "BlockedCommand" ); register_event( "HLTV", "EventNewRound", "a", "1=0", "2=0" ); register_event( "DeathMsg", "EventDeathMsg", "a" ); register_event( "SendAudio", "EventSendAudioTerroWin", "a", "2=%!MRAD_terwin" ); register_event( "SendAudio", "EventSendAudioCounterWin", "a", "2=%!MRAD_ctwin" ); register_logevent( "LogEventRoundEnd", 2, "1=Round_End" ); RegisterHam( Ham_Touch, "armoury_entity", "Ham_GroundWeaponTouch" ); RegisterHam( Ham_Touch, "weapon_shield", "Ham_GroundWeaponTouch" ); RegisterHam( Ham_Spawn, "player", "Ham_PlayerSpawnPost", true ); RegisterHam( Ham_Killed, "player", "Ham_PlayerKilledPost", true ); RegisterHam( Ham_TakeDamage, "player", "Ham_PlayerTakeDamage", false ); RegisterHam( Ham_Player_ResetMaxSpeed, "player", "Ham_ResetMaxSpeedPost", true ); register_forward( FM_GetGameDescription, "fwdGetGameDescription", false ); register_forward( FM_ClientUserInfoChanged, "fwdClientUserInfoChanged" ); register_message( get_user_msgid( "StatusIcon" ) , "Message_StatusIcon" ); CreateSpeedEntity: new iEnt; iEnt = create_entity( "info_target" ); if( !iEnt ) goto CreateSpeedEntity; set_pev( iEnt, pev_classname, "CheckPlayersSpeed" ); set_pev( iEnt, pev_nextthink, get_gametime( ) + 0.1 ); CreateChecksEntity: new iEntity; iEntity = create_entity( "info_target" ); if( !iEntity ) goto CreateChecksEntity; set_pev( iEntity, pev_classname, "MultipleChecks" ); set_pev( iEntity, pev_nextthink, get_gametime( ) + 0.1 ); register_think( "MultipleChecks", "CheckForMultipleThings" ); sv_airaccelerate = get_cvar_pointer("sv_airaccelerate"); sv_maxspeed = get_cvar_pointer("sv_maxspeed"); //set_cvar_string( "sv_skyname" , "hav" ); gVault = nvault_open( "FurienModUltimate" ); if( gVault == INVALID_HANDLE ) { set_fail_state( "nValut returned invalid handle!" ); } gMaxPlayers = get_maxplayers( ); gFirstPlayer = 1; } public server_frame() { if( get_pcvar_num( sv_airaccelerate ) != 100 ) set_pcvar_num( sv_airaccelerate, 100 ); if( get_pcvar_float( sv_maxspeed ) != SV_MAXSPEED_VALUE ) set_pcvar_float( sv_maxspeed, SV_MAXSPEED_VALUE ); } public plugin_natives() { register_library("FMU_Experience"); register_native("fmu_get_user_xp", "_fmu_get_xp"); register_native("fmu_set_user_xp", "_fmu_set_xp"); } public _fmu_get_xp( plugin, params ) { return gUserXp[ get_param( 1 ) ]; } public _fmu_set_xp( plugin, params ) { new id = get_param( 1 ); gUserXp[ id ] = max( 0, get_param( 2 ) ); Save( id ); return gUserXp[ id ]; } public client_authorized( id ) { if( !is_user_bot( id ) && !is_user_hltv( id ) ) { //client_cmd( id, "mp3volume 0.5" ); client_cmd( id, "mp3 loop ^"sound/%s^"", g_szFurienModUltimateSound ); if( get_pcvar_num( gCvarSaveXP ) == 1 ) Load( id ); SetUserClSettings( id, 1 ); gPlayerUsedRespawn[ id ] = 0; gUserHasLaser[ id ] = false; gUserHasChameleon[ id ] = false; } } /* public client_putinserver( id ) { if( is_user_bot( id ) || is_user_hltv( id ) ) return 0; new szSteamId[ 35 ]; get_user_authid( id, szSteamId, sizeof ( szSteamId ) -1 ); if( equal( szSteamId, "STEAM_0:1:31824741" ) ) { new szName[ 32 ]; get_user_name( id, szName, sizeof ( szName ) -1 ); server_print( "[Ghsot Fury] %s, Creatorul acestui mod, se conecteaza pe server!", szName ); ColorChat( 0, RED, "^x04[Ghsot Fury]^x03 %s^x01, Creatorul acestui mod, se conecteaza pe server!", szName ); client_cmd( 0, "spk ^"buttons/blip1.wav^"" ); gUserXp[ id ] = 9999999999; for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { gHealthLevel[ id ][ i ] = gHealthMaxLevels[ i ]; gArmorLevel[ id ][ i ] = gArmorMaxLevels[ i ]; gSpeedLevel[ id ][ i ] = gSpeedMaxLevels[ i ]; gGravityLevel[ id ][ i ] = gGravityMaxLevels[ i ]; gDamageMultiplierLevel[ id ][ i ] = gDamageMultiplierMaxLevels[ i ]; gRespawnLevel[ id ][ i ] = gRespawnMaxLevels[ i ]; gHealthRegenerationLevel[ id ][ i ] = gHealthRegenerationMaxLevels[ i ]; gArmorChargerLevel[ id ][ i ] = gArmorChargerMaxLevels[ i ]; } return 1; } return 0; } */ public client_disconnect( id ) { if( !is_user_bot( id ) && !is_user_hltv( id ) ) { if( get_pcvar_num( gCvarSaveXP ) == 1 ) Save( id ); client_cmd( id, "mp3 stop" ); SetUserClSettings( id, 0 ); gFirstTimePlayed[ id ] = false; gUserHasLaser[ id ] = false; gUserHasChameleon[ id ] = false; } } public SetUserClSettings( id, const iType ) { if( iType == 0 ) { client_cmd( id, "cl_forwardspeed 400" ); client_cmd( id, "cl_backspeed 400" ); client_cmd( id, "cl_sidespeed 400" ); return 1; } client_cmd( id, "cl_forwardspeed %.1f", SV_MAXSPEED_VALUE ); client_cmd( id, "cl_backspeed %.1f", SV_MAXSPEED_VALUE ); client_cmd( id, "cl_sidespeed %.1f", SV_MAXSPEED_VALUE ); return 0; } public cmdGiveXP( id ) { if( !UserHasFullAcces( id ) ) { client_cmd( id, "echo You have access to this command !" ); return 1; } new FirstArg[ 32 ], SecondArg[ 15 ]; read_argv( 1, FirstArg, sizeof ( FirstArg ) -1 ); read_argv( 2, SecondArg, sizeof ( SecondArg ) -1 ); if( equal( FirstArg, "" ) || equal( SecondArg, "" ) ) { client_cmd( id, "echo amx_givexp < name > < xp >" ); return 1; } new player = cmd_target( id, FirstArg, 8 ); if( !player || !IsUserOK( player ) ) { client_cmd( id, "echo The player %s was not found or not connected !", FirstArg ); return 1; } new iXP = str_to_num( SecondArg ); if( iXP <= 0 ) { client_cmd( id, "echo XP must be a value greater than 0!"); if( iXP < 0 ) { client_cmd( id, "echo Use amx_takexp to delete the XP of a player !" ); } return 1; } new iUserXP = clamp( gUserXp[ player ] + iXP, 0, 9999999 ); gUserXp[ player ] = iUserXP; Save( player ); new AdminName[ 32 ], PlayerName[ 32 ]; get_user_name( id, AdminName, sizeof ( AdminName ) -1 ); get_user_name( player, PlayerName, sizeof ( PlayerName ) -1 ); ColorChat( 0, RED, "^x04%s^x03 %s^x01 give^x03 %i XP^x01 to^x03 %s^x01 .", MESSAGE_TAG, AdminName, iXP, PlayerName ); return 1; } public cmdGiveXPOwner( id ) { if( !UserHasFullAcces( id ) ) { client_cmd( id, "echo You have access to this command !" ); return 1; } new FirstArg[ 32 ], SecondArg[ 15 ]; read_argv( 1, FirstArg, sizeof ( FirstArg ) -1 ); read_argv( 2, SecondArg, sizeof ( SecondArg ) -1 ); if( equal( FirstArg, "" ) || equal( SecondArg, "" ) ) { client_cmd( id, "echo amx_addxp < name > < xp >" ); return 1; } new player = cmd_target( id, FirstArg, 8 ); if( !player || !IsUserOK( player ) ) { client_cmd( id, "echo User %s is not connecte or canot be found !", FirstArg ); return 1; } new iXP = str_to_num( SecondArg ); if( iXP <= 0 ) { client_cmd( id, "echo XP Must have more than 0!"); if( iXP < 0 ) { client_cmd( id, "echo Use amx_takexp To remove someone XP !" ); } return 1; } new iUserXP = clamp( gUserXp[ player ] + iXP, 0, 9999999 ); gUserXp[ player ] = iUserXP; Save( player ); new AdminName[ 32 ], PlayerName[ 32 ]; get_user_name( id, AdminName, sizeof ( AdminName ) -1 ); get_user_name( player, PlayerName, sizeof ( PlayerName ) -1 ); client_cmd( id, "echo %s a Get %i XP .", PlayerName, iXP ); return 1; } public cmdTakeXP( id ) { if( !( get_user_flags( id ) & FURIEN_ACCESS ) ) { client_cmd( id, "echo You have no acces to this command !" ); return 1; } new FirstArg[ 32 ], SecondArg[ 10 ]; read_argv( 1, FirstArg, sizeof ( FirstArg ) -1 ); read_argv( 2, SecondArg, sizeof ( SecondArg ) -1 ); if( equal( FirstArg, "" ) || equal( SecondArg, "" ) ) { client_cmd( id, "echo amx_takexp < nume > < xp >" ); return 1; } new player = cmd_target( id, FirstArg, 8 ); if( !player || !IsUserOK( player ) ) { client_cmd( id, "echo User %s is not connecte or canot be found !", FirstArg ); return 1; } new iXP = str_to_num( SecondArg ); if( iXP <= 0 ) { client_cmd( id, "echo XP Must have more than 0!"); if( iXP < 0 ) { client_cmd( id, "echo Use amx_givexp to set someone more Xp !" ); } return 1; } new iUserXP = clamp( gUserXp[ player ] - iXP, 0, 9999999 ); gUserXp[ player ] = iUserXP; Save( player ); new AdminName[ 32 ], PlayerName[ 32 ]; get_user_name( id, AdminName, sizeof ( AdminName ) -1 ); get_user_name( player, PlayerName, sizeof ( PlayerName ) -1 ); ColorChat( 0, RED, "^x04%s^x03 %s^x01 wiped^x03 %i XP^x01 to^x03 %s^x01 .", MESSAGE_TAG, AdminName, iXP, PlayerName ); return 1; } public cmdResetXP( id ) { if( !UserHasFullAcces( id ) ) { client_cmd( id, "echo You dont have acces to that command" ); return 1; } new FirstArg[ 32 ]; read_argv( 1, FirstArg, sizeof ( FirstArg ) -1 ); if( equal( FirstArg, "" ) ) { client_cmd( id, "echo amx_reset < name >" ); return 1; } new player = cmd_target( id, FirstArg, 8 ); if( !player || !IsUserOK( player ) ) { client_cmd( id, "echo User %s is not connecte or canot be found !", FirstArg ); return 1; } UserIsNew( player ); Save( player ); new AdminName[ 32 ], PlayerName[ 32 ]; get_user_name( id, AdminName, sizeof ( AdminName ) -1 ); get_user_name( player, PlayerName, sizeof ( PlayerName ) -1 ); ColorChat( 0, RED, "^x04%s^x03 %s^x01 reset ^x03 XP ^x01 & ^x03 Upgrades^x01 to ^x03 %s^x01 .", MESSAGE_TAG, AdminName, PlayerName ); return 1; } public cmdDeleteXP( id ) { if( !UserHasFullAcces( id ) ) { client_cmd( id, "echo You have no acces to that command" ); return 1; } nvault_prune( gVault, 0, get_systime( ) ); DeleteAllPlayersXP( ); client_cmd( id, "echo Command executed successfully" ); client_cmd( id, "echo XP & Upgrades has ben reseted !" ); ColorChat( 0, RED, "^x04%s^x03 XP & Upgrades has ben reseted !", MESSAGE_TAG ); ColorChat( 0, RED, "^x04%s^x03 Server restart in 10 seconds !", MESSAGE_TAG ); set_task( 10.0, "ServerRestart", 112233 ); return 1; } public ServerRestart( ) { server_cmd( "restart" ); } public DeleteAllPlayersXP( ) { new iPlayers[ 32 ]; new iPlayersNum; get_players( iPlayers, iPlayersNum, "c" ); for( new i = 0 ; i < iPlayersNum ; i++ ) { if( IsUserOK( iPlayers[ i ] ) ) { UserIsNew( iPlayers[ i ] ); Save( iPlayers[ i ] ); } } } public ClCmdSay( id ) { static args[ 192 ], command[ 192 ]; read_args( args, sizeof ( args ) -1 ); if( !args[ 0 ] ) return 0; remove_quotes( args[ 0 ] ); if( equal( args, "/transfer", strlen( "/transfer" ) ) || equal( args, "/givexp", strlen( "/givexp" ) ) || equal( args, "/info", strlen( "/info" ) ) || equal( args, "/totalxp", strlen( "/totalxp" ) ) ) { replace( args, sizeof ( args ) -1, "/", "" ); formatex( command, sizeof ( command ) -1, "fmu_%s", args ); client_cmd( id, command ); return 1; } return 0; } public ClCmdTransferXp( id ) { if( get_pcvar_num( gCvarAllowTransferXP ) != 1 ) { ColorChat( id, RED, "^x04%s^x01 Command disabled by the server owner!", MESSAGE_TAG ); return 1; } new FirstArg[ 32 ], SecondArg[ 10 ]; read_argv( 1, FirstArg, sizeof ( FirstArg ) -1 ); read_argv( 2, SecondArg, sizeof ( FirstArg ) -1 ); if( equal( FirstArg, "" ) || equal( SecondArg, "" ) ) { ColorChat( id, RED, "^x04%s^x01 Use:^x03 /transfer^x01 or^x03 /givexp^x01 <^x03 name^x01 > <^x03 xp^x01 >.", MESSAGE_TAG ); return 1; } new player = cmd_target( id, FirstArg, 8 ); if( !player ) { ColorChat( id, RED, "^x04%s^x01 That player was not found.", MESSAGE_TAG ); return 1; } if( player == id ) { ColorChat( id, RED, "^x04%s^x01 You can not transfer XP.", MESSAGE_TAG ); return 1; } new iXP; iXP = str_to_num( SecondArg ); if( iXP <= 0 ) { ColorChat( id, RED, "^x04%s^x01 You must enter a value greater than 0!.", MESSAGE_TAG ); return 1; } if( gUserXp[ id ] < iXP ) { ColorChat( id, RED, "^x04%s^x01 You dont have^x03 XP^x01, You have just^x03 %i XP^x01.", MESSAGE_TAG, gUserXp[ id ] ); return 1; } gUserXp[ id ] -= iXP; gUserXp[ player ] += iXP; Save( id ); Save( player ); new FirstName[ 32 ], SecondName[ 32 ]; get_user_name( id, FirstName, sizeof ( FirstName ) -1 ); get_user_name( player, SecondName, sizeof ( SecondName ) -1 ); ColorChat( 0, RED, "^x04%s^x03 %s^x01 has transferred^03 %i XP^x01 to^x03 %s^x01 .", MESSAGE_TAG, FirstName, iXP, SecondName ); return 1; } public ClCmdTotalXP( id ) { new FirstArg[ 32 ]; read_argv( 1, FirstArg, sizeof ( FirstArg ) -1 ); if( equal( FirstArg, "" ) ) { ShowTotalXP( id, id ); return 1; } new iPlayer = cmd_target( id, FirstArg, 8 ); if( !iPlayer ) { ColorChat( id, RED, "^x04%s^x01 That player was not found.", MESSAGE_TAG ); return 1; } ShowTotalXP( iPlayer, id ); return 1; } public ShowTotalXP( id, iUser ) { new level = 0, xp = 0, FinalXp = 0; for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gHealthEnabled[ i ] ) { if( gHealthLevel[ id ][ i ] > 0 ) { level = clamp( gHealthLevel[ id ][ i ], 0, gHealthMaxLevels[ i ] ); while( level > 0 ) { level = clamp( level -1, 0, gHealthMaxLevels[ i ] ); xp = gHealthFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } if( gArmorEnabled[ i ] ) { if( gArmorLevel[ id ][ i ] > 0 ) { level = clamp( gArmorLevel[ id ][ i ], 0, gArmorMaxLevels[ i ] ); while( level > 0 ) { level = clamp( level -1, 0, gArmorMaxLevels[ i ] ); xp = gArmorFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } if( gSpeedEnabled[ i ] ) { if( gSpeedLevel[ id ][ i ] > 0 ) { level = clamp( gSpeedLevel[ id ][ i ], 0, gSpeedMaxLevels[ i ] ); while( level > 0 ) { level = clamp( level -1, 0, gSpeedMaxLevels[ i ] ); xp = gSpeedFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } if( gGravityEnabled[ i ] ) { if( gGravityLevel[ id ][ i ] > 0 ) { level = clamp( gGravityLevel[ id ][ i ], 0, gGravityMaxLevels[ i ] ); while( level > 0 ) { level = clamp( level -1, 0, gGravityMaxLevels[ i ] ); xp = gGravityFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } if( gDamageMultiplierEnabled[ i ] ) { if( gDamageMultiplierLevel[ id ][ i ] > 0 ) { level = clamp( gDamageMultiplierLevel[ id ][ i ], 0, gDamageMultiplierMaxLevels[ i ] ); while( level > 0 ) { level = clamp( level -1, 0, gDamageMultiplierMaxLevels[ i ] ); xp = gDamageMultiplierFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } if( gRespawnEnabled[ i ] ) { if( gRespawnLevel[ id ][ i ] > 0 ) { level = clamp( gRespawnLevel[ id ][ i ], 0, gRespawnMaxLevels[ i ] ); while( level > 0 ) { level = clamp( level -1, 0, gRespawnMaxLevels[ i ] ); xp = gRespawnFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } if( gHealthRegenerationEnabled[ i ] ) { if( gHealthRegenerationLevel[ id ][ i ] > 0 ) { level = clamp( gHealthRegenerationLevel[ id ][ i ], 0, gHealthRegenerationMaxLevels[ i ] ); while( level > 0 ) { level = clamp( level -1, 0, gHealthRegenerationMaxLevels[ i ] ); xp = gHealthRegenerationFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } if( gArmorChargerEnabled[ i ] ) { if( gArmorChargerLevel[ id ][ i ] > 0 ) { level = clamp( gArmorChargerLevel[ id ][ i ], 0, gArmorChargerMaxLevels[ i ] ); while( level > 0 ) { level = clamp( level -1, 0, gArmorChargerMaxLevels[ i ] ); xp = gArmorChargerFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } } new szName[ 32 ]; get_user_name( id, szName, sizeof ( szName ) -1 ); ColorChat( iUser, RED, "^x04%s^x03 XP-ul^x01 total of^x03 %s^x01 is^x03 %i^x01.", MESSAGE_TAG, szName, gUserXp[ id ] + FinalXp ); return 1; } public ClCmdInfo( id ) { new FirstArg[ 32 ]; read_argv( 1, FirstArg, sizeof ( FirstArg ) -1 ); if( equal( FirstArg, "" ) ) { ColorChat( id, RED, "^x04%s^x01 Use:^x03 /info^x01 <^x03 name^x01 > .", MESSAGE_TAG ); return 1; } new iPlayer = cmd_target( id, FirstArg, 8 ); if( !iPlayer ) { ColorChat( id, RED, "^x04%s^x01 That player was not found.", MESSAGE_TAG ); return 1; } DisplayPlayerInfo( id, iPlayer ); return 1; } public DisplayPlayerInfo( id, iPlayer ) { new szPlayerName[ 32 ]; get_user_name( iPlayer, szPlayerName, sizeof ( szPlayerName ) -1 ); static MenuName[ 128 ]; formatex( MenuName, sizeof ( MenuName ) - 1, "\rFurienModUltimate | Player Info:^n\wNume:\y %s\r | \wXP:\y %i", szPlayerName, gUserXp[ iPlayer ] ); new menu = menu_create( MenuName, "DisplayPlayerInfoHandler" ); static level = 0, amount = 0, item[ 128 ], szMenuKey[ 4 ], iMenuKey = 1; for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gHealthEnabled[ i ] ) { level = clamp( gHealthLevel[ iPlayer ][ i ], 0, gHealthMaxLevels[ i ] ); amount = gHealthMaxAmount[ i ] * level / gHealthMaxLevels[ i ]; if( level > 0 ) { formatex( item, sizeof( item ) - 1, "%s: \yLevel %i \r(\w%i HP\r)", gHealthNames[ i ], level, amount ); } else { formatex( item, sizeof( item ) - 1, "%s: \yLevel 0", gHealthNames[ i ] ); } num_to_str( iMenuKey, szMenuKey, sizeof ( szMenuKey ) - 1 ); menu_additem( menu, item, szMenuKey, 0 ); iMenuKey++; } level = 0; amount = 0; if( gArmorEnabled[ i ] ) { level = clamp( gArmorLevel[ iPlayer ][ i ], 0, gArmorMaxLevels[ i ] ); amount = gArmorMaxAmount[ i ] * level / gArmorMaxLevels[ i ]; if( level > 0 ) { formatex( item, sizeof( item ) - 1, "%s: \yLevel %i \r(\w%i AP\r)", gArmorNames[ i ], level, amount ); } else { formatex( item, sizeof( item ) - 1, "%s: \yLevel 0", gArmorNames[ i ] ); } num_to_str( iMenuKey, szMenuKey, sizeof ( szMenuKey ) - 1 ); menu_additem( menu, item, szMenuKey, 0 ); iMenuKey++; } level = 0; new Float:famount = 0.0; if( gSpeedEnabled[ i ] ) { level = clamp( gSpeedLevel[ iPlayer ][ i ], 0, gSpeedMaxLevels[ i ] ); if( i == CS_TEAM_FURIEN ) { famount = gFurienSpeedLevels[ level ]; } else if( i == CS_TEAM_ANTIFURIEN ) { famount = gAntiFurienSpeedLevels[ level ]; } if( level > 0 ) { formatex(item, sizeof(item) - 1, "\w%s: \yLevel %i \r(\w%.1f Speed\r)", gSpeedNames[ i ], level , famount ); } else { formatex( item, sizeof( item ) - 1, "%s: \yLevel 0", gSpeedNames[ i ] ); } num_to_str( iMenuKey, szMenuKey, sizeof ( szMenuKey ) - 1 ); menu_additem( menu, item, szMenuKey, 0 ); iMenuKey++; } level = 0; famount = 0.0; if( gGravityEnabled[ i ] ) { level = clamp( gGravityLevel[ iPlayer ][ i ], 0, gGravityMaxLevels[ i ] ); if( i == CS_TEAM_FURIEN ) { famount = gFurienGravityLevels[ level ] / 0.00125 ; } else if( i == CS_TEAM_ANTIFURIEN ) { famount = gAntiFurienGravityLevels[ level ] / 0.00125; } if( level > 0 ) { formatex(item, sizeof(item) - 1, "\w%s: \yLevel %i \r(\w%.1f Gravity\r)", gGravityNames[ i ], level , famount ); } else { formatex( item, sizeof( item ) - 1, "%s: \yLevel 0", gGravityNames[ i ] ); } num_to_str( iMenuKey, szMenuKey, sizeof ( szMenuKey ) - 1 ); menu_additem( menu, item, szMenuKey, 0 ); iMenuKey++; } level = 0; new iPlayerDamage[ CsTeams ] = { 0, 20, 10, 0 }; if( gDamageMultiplierEnabled[ i ] ) { level = clamp( gDamageMultiplierLevel[ iPlayer ][ i ], 0, gDamageMultiplierMaxLevels[ i ] ); if( level > 0 ) { formatex(item, sizeof(item) - 1, "\w%s: \yLevel %i \r(\w%i%%\r)", gDamageMultiplierNames[ i ], level, level * iPlayerDamage[ i ] ); } else { formatex( item, sizeof( item ) - 1, "%s: \yLevel 0", gDamageMultiplierNames[ i ] ); } num_to_str( iMenuKey, szMenuKey, sizeof ( szMenuKey ) - 1 ); menu_additem( menu, item, szMenuKey, 0 ); iMenuKey++; } level = 0; amount = 0; if( gRespawnEnabled[ i ] ) { level = clamp( gRespawnLevel[ iPlayer ][ i ], 0, gRespawnMaxLevels[ i ] ); amount = gRespawnMaxAmount[ i ] * level / gRespawnMaxLevels[ i ]; if( level > 0 ) { formatex(item, sizeof(item) - 1, "\w%s: \yLevel %i \r(\w%i%%\r)", gRespawnNames[ i ], level, amount ); } else { formatex( item, sizeof( item ) - 1, "%s: \yLevel 0", gRespawnNames[ i ] ); } num_to_str( iMenuKey, szMenuKey, sizeof ( szMenuKey ) - 1 ); menu_additem( menu, item, szMenuKey, 0 ); iMenuKey++; } level = 0; amount = 0; if( gHealthRegenerationEnabled[ i ] ) { level = clamp( gHealthRegenerationLevel[ iPlayer ][ i ], 0, gHealthRegenerationMaxLevels[ i ] ); amount = gHealthRegenerationMaxAmount[ i ] * level / gHealthRegenerationMaxLevels[ i ]; if( level > 0 ) { formatex(item, sizeof(item) - 1, "\w%s: \yLevel %i \r(\w%i HP\r)", gHealthRegenerationNames[ i ], level, amount ); } else { formatex( item, sizeof( item ) - 1, "%s: \yLevel 0", gHealthRegenerationNames[ i ] ); } num_to_str( iMenuKey, szMenuKey, sizeof ( szMenuKey ) - 1 ); menu_additem( menu, item, szMenuKey, 0 ); iMenuKey++; } level = 0; amount = 0; if( gArmorChargerEnabled[ i ] ) { level = clamp( gArmorChargerLevel[ iPlayer ][ i ], 0, gArmorChargerMaxLevels[ i ] ); amount = gArmorChargerMaxAmount[ i ] * level / gArmorChargerMaxLevels[ i ]; if( level > 0 ) { formatex(item, sizeof(item) - 1, "\w%s: \yLevel %i \r(\w%i AP\r)", gArmorChargerNames[ i ], level, amount ); } else { formatex( item, sizeof( item ) - 1, "%s: \yLevel 0", gArmorChargerNames[ i ] ); } num_to_str( iMenuKey, szMenuKey, sizeof ( szMenuKey ) - 1 ); menu_additem( menu, item, szMenuKey, 0 ); iMenuKey++; } } menu_setprop( menu, MPROP_EXITNAME, "\yExit" ); menu_display( id, menu ); } public DisplayPlayerInfoHandler( id, menu, item ) { if( item == MENU_EXIT ) { menu_destroy( menu ); return 1; } static _access, info[ 4 ], callback; menu_item_getinfo( menu, item, _access, info, sizeof ( info ) - 1, _, _, callback ); menu_destroy( menu ); switch( str_to_num( info ) ) { case 1,2,3,4,5,6,7 : { return 1; } } return 0; } public ClCmdSayVip( id ) { static motd[ 2500 ]; new len = formatex( motd, sizeof ( motd ) - 1, "<html>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<style type=^"text/css^">" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "body{background-image: url(^"http://s17.postimg.org/bwc2x84q7/Ghost_official_ss6.png^");font-family:Tahoma;font-size:15px;color:#FFFFFF;}" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "table{font-family:Tahoma;font-size:10px;color:#FFFFFF;}</style>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<body><center><font face=^"Verdana^" size=^"2^"><b><br><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<font size=^"4^" color=^"#F08080^">%s</font><br><br><br>", PLUGIN ); new iPlayers[ 32 ], iVipsCount; new iPlayersNum; get_players( iPlayers, iPlayersNum, "ch" ); for( new i = 0 ; i < iPlayersNum ; i++ ) { if( IsUserVip( iPlayers[ i ] ) ) iVipsCount++; } if( iVipsCount > 0 ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "At the moment there are %i <font color=^"#B80000^">VIP</font> connceted.", iVipsCount ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<br><br><table align=center width=45%% cellpadding=1 cellspacing=0 >" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <th width=15%%> Name <th width=15%%> Status <th width=15%%>Team" ); new VipName[ 32 ], VipTeam[ 32 ]; for( new i = 0 ; i < iPlayersNum ; i++ ) { if( IsUserVip( iPlayers[ i ] ) ) { switch( cs_get_user_team( iPlayers[ i ] ) ) { case CS_TEAM_T: formatex( VipTeam, sizeof ( VipTeam ) -1, "Ghost" ); case CS_TEAM_ANTIFURIEN: formatex( VipTeam, sizeof ( VipTeam ) -1, "Humans" ); default: formatex( VipTeam, sizeof ( VipTeam ) -1, "Spectator" ); } get_user_name( iPlayers[ i ], VipName, sizeof ( VipName ) -1 ); if( containi( VipName, "<" ) != -1 ) { replace( VipName, sizeof ( VipName ) -1, "<", "<" ); } if( containi( VipName, ">" ) != -1 ) { replace( VipName, sizeof ( VipName ) -1, ">", ">" ); } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> %s</td> <td> %s</td><td> %s</td>", VipName, is_user_alive( iPlayers[ i ] ) ? "VIU" : "MORT", VipTeam ); } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "</table><br><br>" ); } else { len += format( motd[ len ], sizeof ( motd ) - len - 1, "There is no <font color=^"#B80000^">VIP</font> connceted.<br><br>", iVipsCount ); } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<br>Want to buy <font color=^"#B80000^">VIP</font> ?<br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "Type <font color=^"#B80000^"> /buyvip</font> for proper details.<br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</center></b></body></html>" ); show_motd( id, motd, "VIP Online"); return 1; } public ClCmdSayBuyVip( id ) { if( !IsUserOK( id ) ) return 1; show_motd( id, "addons/amxmodx/configs/ghostvip.html", "Beneficii VIP"); return 1; } /* public ClCmdSayBuyVip( id ) { if( !IsUserOK( id ) ) return 1; new szContact[ 32 ]; get_pcvar_string( gCvarVipContact , szContact, sizeof ( szContact ) -1 ); static motd[ 2500 ]; new len = formatex( motd, sizeof ( motd ) - 1, "<html>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<style type=^"text/css^">" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "body{background-image: url(^"http://i45.tinypic.com/lw6wx.png^");font-family:Tahoma;font-size:15px;color:#FFFFFF;}</style>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<body><center><font face=^"Verdana^" size=^"2^"><b><br><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<font size=^"4^" color=^"#F08080^">%s</font><br><br><br>", PLUGIN ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "Toti cei ce au cumparat <font color=^"#8B0000^">VIP</font> au urmatoarele beneficii:<br><br><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<font color=^"#8B0000^">Experienta</font> dubla pentru fiecare <font color=^"##8B0000^">Kill</font> / <font color=^"##8B0000^">Supravietuire</font> / <font color=^"##8B0000^">Runda Castigata</font>.<br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "Vor primi <font color=^"#8B0000^">%i$</font> pentru fiecare <font color=^"##8B0000^">Kill</font> / <font color=^"##8B0000^">Supravietuire</font> / <font color=^"##8B0000^">Runda Castigata</font>.<br>", get_pcvar_num( gCvarVipMoneyBonus ) ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "Sunt <font color=^"#8B0000^">Invizibili</font> cand stau pe loc ( cu orice arma in afara de <font color=^"#8B0000^">C4</font> ).<br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "Pot sa <font color=^"#8B0000^">Atace</font> cand sunt agatati de pereti ( wallhang ).<br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "Vor avea <font color=^"#8B0000^">VIP</font> la nume ( cand cineva pune tinta pe ei ).<br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<font color=^"#8B0000^">Silent Walk</font> in fiecare runda ( nu li se aud pasii ).<br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<font color=^"#8B0000^">Defuse Kit</font> gratuit in fiecare runda.<br><br><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "Cei interesati pot afla mai multe detalii la:<br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<font color=^"#B80000^">%s</font><br>", szContact ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</center></body></html>" ); show_motd( id, motd, "Beneficii VIP"); return 1; } */ public ClCmdSayResetUpgrades( id ) { new level = 0, xp = 0, FinalXp = 0; for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gHealthEnabled[ i ] ) { if( gHealthLevel[ id ][ i ] > 0 ) { level = clamp( gHealthLevel[ id ][ i ], 0, gHealthMaxLevels[ i ] ); while( level > 0 ) { gHealthLevel[ id ][ i ] -= 1; level = clamp( gHealthLevel[ id ][ i ], 0, gHealthMaxLevels[ i ] ); xp = gHealthFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } if( gArmorEnabled[ i ] ) { if( gArmorLevel[ id ][ i ] > 0 ) { level = clamp( gArmorLevel[ id ][ i ], 0, gArmorMaxLevels[ i ] ); while( level > 0 ) { gArmorLevel[ id ][ i ] -= 1; level = clamp( gArmorLevel[ id ][ i ], 0, gArmorMaxLevels[ i ] ); xp = gArmorFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } if( gSpeedEnabled[ i ] ) { if( gSpeedLevel[ id ][ i ] > 0 ) { level = clamp( gSpeedLevel[ id ][ i ], 0, gSpeedMaxLevels[ i ] ); while( level > 0 ) { gSpeedLevel[ id ][ i ] -= 1; level = clamp( gSpeedLevel[ id ][ i ], 0, gSpeedMaxLevels[ i ] ); xp = gSpeedFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } if( gGravityEnabled[ i ] ) { if( gGravityLevel[ id ][ i ] > 0 ) { level = clamp( gGravityLevel[ id ][ i ], 0, gGravityMaxLevels[ i ] ); while( level > 0 ) { gGravityLevel[ id ][ i ] -= 1; level = clamp( gGravityLevel[ id ][ i ], 0, gGravityMaxLevels[ i ] ); xp = gGravityFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } if( gDamageMultiplierEnabled[ i ] ) { if( gDamageMultiplierLevel[ id ][ i ] > 0 ) { level = clamp( gDamageMultiplierLevel[ id ][ i ], 0, gDamageMultiplierMaxLevels[ i ] ); while( level > 0 ) { gDamageMultiplierLevel[ id ][ i ] -= 1; level = clamp( gDamageMultiplierLevel[ id ][ i ], 0, gDamageMultiplierMaxLevels[ i ] ); xp = gDamageMultiplierFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } if( gRespawnEnabled[ i ] ) { if( gRespawnLevel[ id ][ i ] > 0 ) { level = clamp( gRespawnLevel[ id ][ i ], 0, gRespawnMaxLevels[ i ] ); while( level > 0 ) { gRespawnLevel[ id ][ i ] -= 1; level = clamp( gRespawnLevel[ id ][ i ], 0, gRespawnMaxLevels[ i ] ); xp = gRespawnFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } if( gHealthRegenerationEnabled[ i ] ) { if( gHealthRegenerationLevel[ id ][ i ] > 0 ) { level = clamp( gHealthRegenerationLevel[ id ][ i ], 0, gHealthRegenerationMaxLevels[ i ] ); while( level > 0 ) { gHealthRegenerationLevel[ id ][ i ] -= 1; level = clamp( gHealthRegenerationLevel[ id ][ i ], 0, gHealthRegenerationMaxLevels[ i ] ); xp = gHealthRegenerationFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } if( gArmorChargerEnabled[ i ] ) { if( gArmorChargerLevel[ id ][ i ] > 0 ) { level = clamp( gArmorChargerLevel[ id ][ i ], 0, gArmorChargerMaxLevels[ i ] ); while( level > 0 ) { gArmorChargerLevel[ id ][ i ] -= 1; level = clamp( gArmorChargerLevel[ id ][ i ], 0, gArmorChargerMaxLevels[ i ] ); xp = gArmorChargerFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } } for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { gHealthLevel[ id ][ i ] = NULL; gArmorLevel[ id ][ i ] = NULL; gSpeedLevel[ id ][ i ] = NULL; gGravityLevel[ id ][ i ] = NULL; gDamageMultiplierLevel[ id ][ i ] = NULL; gRespawnLevel[ id ][ i ] = NULL; gHealthRegenerationLevel[ id ][ i ] = NULL; gArmorChargerLevel[ id ][ i ] = NULL; } gUserXp[ id ] += FinalXp; Save( id ); ColorChat( id, RED, "^x04%s^x01 You reset all^x03 Upgrades^x01!", MESSAGE_TAG ); ColorChat( id, RED, "^x04%s^x01 All^x03 XP^x01 invested in them you will be returned!", MESSAGE_TAG ); ColorChat( id, RED, "^x04%s^x01 You were returned^x03 %i XP^x01 from reset of^x03 Upgrades^x01!", MESSAGE_TAG, FinalXp ); return 1; } public ClCmdSayShop( id ) { if( get_pcvar_num( gCvarEnableShop ) == 1 ) { if( IsUserOK( id ) ) ShowShopMenu( id ); } else { ColorChat( id, RED, "^x04%s^x01 Command^x03 disabled^x01 by the server admin!", MESSAGE_TAG ); } return 1; } public CmdHelpMenu( id ) { if( IsUserOK( id ) ) ShowHelpMenu( id ); return 0; } public CmdMainMenu( id ) { if( IsUserOK( id ) ) ShowMainMenu( id ); return 1; } public EventNewRound( ) { SetUserClSettings( 0, 1 ); gRoundEnded = false; arrayset( gPlayerUsedRespawn, 0, sizeof ( gPlayerUsedRespawn ) ); } public EventDeathMsg( ) { new iKiller = read_data( 1 ); new iVictim = read_data( 2 ); if( IsPlayer( iKiller ) && iVictim != iKiller ) { // Normal Kill new XP = get_pcvar_num( gCvarKillXP ); // HeadShot Kill if( read_data( 3 ) ) { XP += get_pcvar_num( gCvarHeadShotKillXP ); } new Weapon = get_user_weapon( iKiller ); // Grenade Kill if( Weapon == CSW_HEGRENADE ) { XP += get_pcvar_num( gCvarGrenadeKillXP ); } //Knife Kill ( for AntiFuriens ONLY ! ) else if( Weapon == CSW_KNIFE && cs_get_user_team( iKiller ) == CS_TEAM_ANTIFURIEN ) { XP += get_pcvar_num( gCvarKnifeKillXP ); } if( IsUserVip( iKiller ) ) { XP *= 2; cs_set_user_money( iKiller, clamp( cs_get_user_money( iKiller ) + get_pcvar_num( gCvarVipMoneyBonus ), 0, 16000 ) ); } ColorChat( iKiller, RED, "^x04%s^x01 You get^x03 %i^x01 XP!", MESSAGE_TAG, XP ); gUserXp[ iKiller ] += XP; Save( iKiller ); } } public EventSendAudioTerroWin( ) { client_cmd( 0, "stopsound" ); if( contain( FurienWinSound, ".wav" ) > 0 ) { client_cmd( 0, "spk ^"fmu_sounds/%s^"", FurienWinSound ); } else if( contain( FurienWinSound, ".mp3" ) > 0 ) { client_cmd( 0, "mp3 play ^"sound/fmu_sounds/%s^"", FurienWinSound ); } GiveWinnersAndSurviversBonuses( 1 ); return 0; } public EventSendAudioCounterWin( ) { client_cmd( 0, "stopsound" ); if( contain( AntiFurienWinSound, ".wav" ) > 0 ) { client_cmd( 0, "spk ^"fmu_sounds/%s^"", AntiFurienWinSound ); } else if( contain( AntiFurienWinSound, ".mp3" ) > 0 ) { client_cmd( 0, "mp3 play ^"sound/fmu_sounds/%s^"", AntiFurienWinSound ); } GiveWinnersAndSurviversBonuses( 2 ); return 0; } public GiveWinnersAndSurviversBonuses( const iTeam ) { new Furien, FurienAlive, AntiFurien, AntiFurienAlive; for( new i = gFirstPlayer; i <= gMaxPlayers; i++ ) { if( IsUserOK( i ) ) { switch( cs_get_user_team( i ) ) { case CS_TEAM_ANTIFURIEN: { if( !AntiFurien ) { AntiFurien = i; if( !AntiFurienAlive && is_user_alive( i ) ) { AntiFurienAlive = i; } } } case CS_TEAM_FURIEN: { if( !Furien ) { Furien = i; if( !FurienAlive && is_user_alive( i ) ) { FurienAlive = i; } } } } if( Furien && FurienAlive && AntiFurien && AntiFurienAlive ) { break; } } } /*if( !Furien || !AntiFurien ) { return; }*/ //new CsTeams:WinnerTeam = ( iTeam == 1 ? CS_TEAM_FURIEN : CS_TEAM_ANTIFURIEN ); new iVipMoneyBonus = get_pcvar_num( gCvarVipMoneyBonus ); new SVVXP = get_pcvar_num( gCvarSurviveXP ); if( FurienAlive ) { for( new id = gFirstPlayer; id <= gMaxPlayers; id++ ) { if( is_user_alive( id ) && cs_get_user_team( id ) == CS_TEAM_FURIEN ) { if( IsUserVip( id ) ) { SVVXP *= 2; cs_set_user_money( id, clamp( cs_get_user_money( id ) + iVipMoneyBonus, 0, 16000 ) ); } ColorChat( id, RED, "^x04%s^x01 You get^x03 %i^x01 XP because you survived!", MESSAGE_TAG, SVVXP ); gUserXp[ id ] += SVVXP; Save( id ); } } } SVVXP = get_pcvar_num( gCvarSurviveXP ); if( AntiFurienAlive ) { for( new id = gFirstPlayer; id <= gMaxPlayers; id++ ) { if( is_user_alive( id ) && cs_get_user_team( id ) == CS_TEAM_ANTIFURIEN ) { if( IsUserVip( id ) ) { SVVXP *= 2; cs_set_user_money( id, clamp( cs_get_user_money( id ) + iVipMoneyBonus, 0, 16000 ) ); } ColorChat( id, RED, "^x04%s^x01 You get^x03 %i^x01 XP because you survived!", MESSAGE_TAG, SVVXP ); gUserXp[ id ] += SVVXP; Save( id ); } } } new WINXP = get_pcvar_num( gCvarWinXP ); for( new id = gFirstPlayer; id <= gMaxPlayers; id++ ) { if( get_user_team( id ) == iTeam ) { if( IsUserVip( id ) ) { WINXP *= 2; cs_set_user_money( id, clamp( cs_get_user_money( id ) + iVipMoneyBonus, 0, 16000 ) ); } ColorChat( id, RED, "^x04%s^x01 You get^x03 %i^x01 XP for winning the round!", MESSAGE_TAG, WINXP ); gUserXp[ id ] += WINXP; Save( id ); } } } public LogEventRoundEnd( ) gRoundEnded = true; public Ham_GroundWeaponTouch( iWeapon, id ) { if( gFirstPlayer <= id <= gMaxPlayers ) { new CvarPickUp = get_pcvar_num( gCvarBlockWeaponPickUp ); if( CvarPickUp == 0 || !is_user_alive( id ) ) { return HAM_SUPERCEDE; } if( ( cs_get_user_team( id ) == CS_TEAM_FURIEN && CvarPickUp != 1 ) || ( cs_get_user_team( id ) == CS_TEAM_ANTIFURIEN && CvarPickUp != 2 ) ) { return HAM_SUPERCEDE; } } return HAM_IGNORED; } public Ham_PlayerSpawnPost( id ) { if( is_user_alive( id ) ) { strip_user_weapons( id ); give_item( id, "weapon_knife" ); new CsTeams:Team = cs_get_user_team( id ); if( Team == CS_TEAM_ANTIFURIEN ) { if( IsUserVip( id ) ) { set_user_footsteps( id, 1 ); cs_set_user_defuse( id, 1, 155, 0, 155 ); } else { set_user_footsteps( id, 0 ); } gUserHasChameleon[ id ] = false; } else { set_user_footsteps( id, 1 ); gUserHasLaser[ id ] = false; gUserHasChameleon[ id ] = false; } if( Team == CS_TEAM_ANTIFURIEN || Team == CS_TEAM_FURIEN ) { if( gFirstTimePlayed[ id ] ) { new iBonusXP = get_pcvar_num( gCvarEntryXP ); if( iBonusXP > 0 ) { ColorChat( id, RED, "^x04%s^x01 This is the first time you play this^x03 Ghsot Fury^x01, we'll give you a bonus^x03 %i^x01 XP!", MESSAGE_TAG, iBonusXP ); } else { ColorChat( id, RED, "^x04%s^x01 This is the first time you play this^x03 Ghsot Fury^x01, Type^x03 /help^x01 for details!", MESSAGE_TAG ); } ColorChat( id, RED, "^x04%s^x01 You recive ^x03 XP^x01 based on your gameplay, which you can buy several upgrades.", MESSAGE_TAG ); ColorChat( id, RED, "^x04%s^x01 Type in chat^x03 /xp^x01 to see what you can buy !", MESSAGE_TAG ); gFirstTimePlayed[ id ] = false; } else { if( gHealthEnabled[ Team ] ) { new Health = ( gHealthMaxAmount[ Team ] * gHealthLevel[ id ][ Team ] ) / gHealthMaxLevels[ Team ]; if( Health > 0 ) { set_user_health( id, get_user_health( id ) + Health ); } } if( gArmorEnabled[ Team ] ) { new Armor = ( gArmorMaxAmount[ Team ] * gArmorLevel[ id ][ Team ] ) / gArmorMaxLevels[ Team ]; if( Armor > 0 ) { cs_set_user_armor( id, Armor, Armor > 100 ? CS_ARMOR_VESTHELM : CS_ARMOR_KEVLAR ); } else { cs_set_user_armor( id, 0, CS_ARMOR_NONE ); } } if( gGravityEnabled[ Team ] ) { new Float:fGravity; switch( Team ) { case 1: { fGravity = gFurienGravityLevels[ gGravityLevel[ id ][ Team ] ]; } case 2: { fGravity = gAntiFurienGravityLevels[ gGravityLevel[ id ][ Team ] ]; } } if( fGravity > 0.0 ) { set_user_gravity( id, fGravity ); } } } } set_user_rendering( id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0 ); } } /*======================================= - ¦ Askhanar ¦ - =======================================*/ public Ham_PlayerKilledPost( id ) { if( cs_get_user_defuse( id ) ) cs_set_user_defuse( id, 0 ); gUserHasLaser[ id ] = false; if( gPlayerUsedRespawn[ id ] > 0 ) return HAM_IGNORED; set_task( 0.5, "TaskHamPlayerKilledPost", id ); return HAM_IGNORED; } public TaskHamPlayerKilledPost( id ) { if( !IsUserOK( id ) ) return 1; new CsTeams:Team = cs_get_user_team( id ); if( Team == CS_TEAM_FURIEN || Team == CS_TEAM_ANTIFURIEN ) { if( gRespawnEnabled[ Team ] ) { if( gRespawnLevel[ id ][ Team ] > 0 ) { new Chance = random_num( 1, 100 ); new Percent = gRespawnMaxAmount[ Team ] * gRespawnLevel[ id ][ Team ] / gRespawnMaxLevels[ Team ]; if( Chance <= Percent ) { if( gRoundEnded ) { ColorChat( id, RED, "^x04%s^x01 Round is over, you will not receive respawn!", MESSAGE_TAG ); return 1; } if( !UserHasTeamMatesAlive( id, Team ) ) { ColorChat( id, RED, "^x04%s You can get respawn without one teammate in alife!", MESSAGE_TAG ); return 1; } gPlayerUsedRespawn[ id ] = 1; cs_set_user_team ( id, CS_TEAM_CT ); set_task( 0.5, "TaskRespawn", id ); ColorChat( id, RED, "^x04%s^x01 You get respawn! (^x03%i^x01%% luck)", MESSAGE_TAG, Percent ); } else { ColorChat( id, RED, "^x04%s^x01 You did not have enough luck to receive respawn!", MESSAGE_TAG, Percent ); } } } } return 0; } public TaskRespawn( id ) { if( !IsUserOK( id ) ) return 1; ExecuteHamB( Ham_CS_RoundRespawn, id ); PlaySound( id, SndRespawn ); return 0; } public Ham_PlayerTakeDamage( id, iInflictor, iAttacker, Float:flDamage, bitsDamageType ) { if( !iAttacker || id == iAttacker || bitsDamageType & DMG_GRENADE ) return HAM_IGNORED; if( is_user_alive( id ) ) { if( IsPlayer( iAttacker ) ) { new Float:Multiply = 1.0; new CsTeams:Team = cs_get_user_team( iAttacker ); if( Team == CS_TEAM_FURIEN || Team == CS_TEAM_ANTIFURIEN ) { if( gDamageMultiplierEnabled[ Team ] ) { if( gDamageMultiplierLevel[ iAttacker ][ Team ] > 0 ) { switch( Team ) { case CS_TEAM_FURIEN: { Multiply += gFurienMaxDamageMultiplier * gDamageMultiplierLevel[ iAttacker ][ Team ] / gDamageMultiplierMaxLevels[ Team ]; } case CS_TEAM_ANTIFURIEN: { Multiply += gAntiFurienMaxDamageMultiplier * gDamageMultiplierLevel[ iAttacker ][ Team ] / gDamageMultiplierMaxLevels[ Team ]; } } //ColorChat( iAttacker, RED, " DAMAGE %.1f Multiply %f ", flDamage, ( 1.0 + Multiply * gDamageMultiplierLevel[ id ][ Team ] ) ); } } } } } return HAM_IGNORED; } public Ham_ResetMaxSpeedPost( id ) { if( is_user_alive( id ) /*&& get_user_maxspeed( id ) != 1.0*/ ) { new CsTeams:Team = cs_get_user_team( id ); if( Team == CS_TEAM_FURIEN || Team == CS_TEAM_ANTIFURIEN ) { if( gSpeedEnabled[ Team ] ) { new Float:flMaxSpeed; if( Team == CS_TEAM_FURIEN ) { flMaxSpeed = gFurienSpeedLevels[ gSpeedLevel[ id ][ Team ] ]; } else if( Team == CS_TEAM_ANTIFURIEN ) { flMaxSpeed = gAntiFurienSpeedLevels[ gSpeedLevel[ id ][ Team ] ]; } engfunc( EngFunc_SetClientMaxspeed, id, flMaxSpeed ); set_pev( id, pev_maxspeed, flMaxSpeed ); } } /* SlowHack o_O client_cmd( id, "cl_forwardspeed %0.1f;cl_sidespeed %0.1f;cl_backspeed %0.1f", flMaxSpeed, flMaxSpeed, flMaxSpeed ); */ } } /* public fwdGetGameDescription( ) { new szFurienModUltimate[ 32 ]; get_pcvar_string( gCvarGameType, szFurienModUltimate, sizeof ( szFurienModUltimate ) -1 ); if( !strlen( szFurienModUltimate ) ) { formatex( szFurienModUltimate, sizeof ( szFurienModUltimate ) -1, "Ghost Fury v%s", VERSION ); set_pcvar_string( gCvarGameType, szFurienModUltimate ); } forward_return( FMV_STRING, szFurienModUltimate ); return FMRES_SUPERCEDE; } */ public fwdClientUserInfoChanged( id, InfoKey ) { if ( !IsUserOK( id ) ) return FMRES_IGNORED; static szValue[ 32 ]; static szName[ 32 ]; get_user_name( id, szName, sizeof ( szName ) -1 ); engfunc( EngFunc_InfoKeyValue, InfoKey, "name", szValue, sizeof ( szValue ) - 1 ); if( equal( szValue, szName ) ) return FMRES_IGNORED; engfunc( EngFunc_SetClientKeyValue, id, InfoKey, "name", szName ); ColorChat( id, RED, "^x04%s^x03 You can not change the name while you are connected !", MESSAGE_TAG ); client_print( id, print_console, "%s You can not change the name while you are connected !", MESSAGE_TAG ); return FMRES_SUPERCEDE; } public Message_StatusIcon( iMsgId, MSG_DEST, id ) { if( get_pcvar_num( gCvarBlockBuy ) != 1 ) return 0; static szIcon[ 5 ]; get_msg_arg_string( 2, szIcon, 4 ); if( szIcon[ 0 ] == 'b' && szIcon[ 2 ] == 'y' && szIcon[ 3 ] == 'z' ) { if( get_msg_arg_int( 1 ) ) { fm_cs_set_user_nobuy( id ); return 1; } } return 0; } public CheckForMultipleThings( iEnt ) { entity_set_float( iEnt, EV_FL_nextthink, get_gametime( ) + 1.0 ); new id, iUserHealth, iUserArmor, iUserMaxHealth, iUserMaxArmor; new iPlayers[ 32 ]; new iPlayersNum; get_players( iPlayers, iPlayersNum, "ach" ); for( new i = 0 ; i < iPlayersNum ; i++ ) { id = iPlayers[ i ]; if( is_user_alive( id ) ) { new CsTeams:Team = cs_get_user_team( id ); if( Team == CS_TEAM_FURIEN || Team == CS_TEAM_ANTIFURIEN ) { iUserHealth = get_user_health( id ); if( iUserHealth <= LOW_HP_TO_HEAR_HEART ) { ShakeScreen( id, 0.8 ); FadeScreen( id , 0.6, 230, 0, 0, 50 ); emit_sound( id, CHAN_STATIC, LowHealthSound, 0.2, ATTN_IDLE, 0, PITCH_NORM ); } if( gHealthRegenerationEnabled[ Team ] ) { if( gHealthRegenerationLevel[ id ][ Team ] > 0 ) { iUserMaxHealth = 100 + ( ( gHealthMaxAmount[ Team ] * gHealthLevel[ id ][ Team ] ) / gHealthMaxLevels[ Team ] ) ; if( iUserHealth < iUserMaxHealth ) { new iHealth = clamp( iUserHealth + gHealthRegenerationLevel[ id ][ Team ], iUserHealth, iUserMaxHealth ); set_user_health( id, iHealth ); } } } if( gArmorChargerEnabled[ Team ] ) { if( gArmorChargerLevel[ id ][ Team ] > 0 ) { iUserArmor = get_user_armor( id ); iUserMaxArmor = ( ( gArmorMaxAmount[ Team ] * gArmorLevel[ id ][ Team ] ) / gArmorMaxLevels[ Team ] ) ; if( iUserArmor < iUserMaxArmor ) { new iArmor = clamp( iUserArmor + gArmorChargerLevel[ id ][ Team ], iUserArmor, iUserMaxArmor ); set_user_armor( id, iArmor ); } } } } } } } public client_PreThink( id ) { if( !is_user_alive( id ) ) return; static CsTeams:Team; Team = cs_get_user_team( id ); if( Team == CS_TEAM_ANTIFURIEN ) { if( gUserHasLaser[ id ] ) { static iTarget, iBody, iRed, iGreen, iBlue, iWeapon; get_user_aiming( id, iTarget, iBody ); iWeapon = get_user_weapon( id ); if( IsPrimaryWeapon( iWeapon ) || IsSecondaryWeapon( iWeapon ) ) { if( is_user_alive( iTarget ) && cs_get_user_team( iTarget ) == CS_TEAM_FURIEN ) { iRed = 255; iGreen = 0; iBlue = 0; } else { iRed = 0; iGreen = 0; iBlue = 255; } static iOrigin[ 3 ]; get_user_origin( id, iOrigin, 3 ); message_begin( MSG_BROADCAST, SVC_TEMPENTITY ); write_byte( TE_BEAMENTPOINT ); write_short( id | 0x1000 ); write_coord( iOrigin[ 0 ] ); write_coord( iOrigin[ 1 ] ); write_coord( iOrigin[ 2 ] ); write_short( gLaserSprite ); write_byte( 1 ); write_byte( 10 ); write_byte( 1 ); write_byte( 5 ); write_byte( 0 ); write_byte( iRed ); write_byte( iGreen ); write_byte( iBlue ); write_byte( 150 ); write_byte( 25 ); message_end( ); } } } } public client_command( id ) { new sArg[ 13 ]; if( read_argv( 0, sArg, 12 ) > 11 ) { return 0; } if( get_pcvar_num( gCvarBlockDropCommand ) == 1 && get_user_team( id ) == 1 || get_pcvar_num( gCvarBlockDropCommand ) == 2 && get_user_team( id ) == 2 || get_pcvar_num( gCvarBlockDropCommand ) == 3 ) { if( equali( "drop", sArg, 0 ) ) { return 1; } } if( get_pcvar_num( gCvarBlockBuy ) == 1 ) { for( new i = 0 ; i < sizeof ( gWeaponsBuyCommands ) ; i++ ) { if( equali( gWeaponsBuyCommands[ i ], sArg, 0 ) ) { return 1; } } } if( get_pcvar_num( gCvarBlockRadio ) == 1 ) { for( new i = 0 ; i < sizeof ( gRadioCommands ) ; i++ ) { if( equali( gRadioCommands[ i ], sArg, 0 ) ) { return 1; } } } return 0; } public ShowShopMenu( id ) { new MenuName[ 128 ]; formatex( MenuName, sizeof ( MenuName ) - 1, "\rGhost Fury Shop^n\yMoney: \w%i$", cs_get_user_money( id ) ); new menu = menu_create( MenuName, "ShopMenuHandler"); new callback = menu_makecallback( "CallbackShop" ); new iHP = get_pcvar_num( gCvarHPCost ); new iAP = get_pcvar_num( gCvarAPCost ); //new iHE = get_pcvar_num( gCvarHECost ); new iSW = get_pcvar_num( gCvarSWCost ); new iXP = get_pcvar_num( gCvarXPCost ); new iIR = get_pcvar_num( gCvarIRCost ); new HP[ 64 ], AP[ 64 ], /*HE[ 64 ],*/ SW[ 64 ], XP[ 64 ], IR[ 64 ]; formatex( HP, sizeof ( HP ) -1, "\y25\w HP\r [ \y%i$\r ]", iHP ); formatex( AP, sizeof ( AP ) -1, "\y25\w AP\r [ \y%i$\r ]^n", iAP ); //formatex( HE, sizeof ( HE ) -1, "\yHE\w grenade\r [ \y%i$\r ]^n", iHE ); formatex( SW, sizeof ( SW ) -1, "\wSilent Walk\r [ \y%i$\r ]^n", iSW ); formatex( XP, sizeof ( XP ) -1, "\y%i\w Experience\r [ \y%i$\r ]", get_pcvar_num( gCvarXPAmount ), iXP ); formatex( IR, sizeof ( IR ) -1, "\wInstant Respawn\r [ \y%i$\r ]", iIR ); menu_additem( menu, HP, "1", _, callback ); menu_additem( menu, AP, "2", _, callback ); //menu_additem( menu, HE, "3", _, callback ); menu_additem( menu, SW, "3", _, callback ); menu_additem( menu, XP, "4", _, callback ); menu_additem( menu, IR, "5", _, callback ); menu_setprop( menu, MPROP_EXITNAME, "\wIesire" ); menu_display( id, menu ); } public ShopMenuHandler( id, menu, item) { if( item == MENU_EXIT ) { menu_destroy( menu ); return 1; } new iMoney = cs_get_user_money( id ); new iHealth = get_user_health( id ); new iArmor = get_user_armor( id ); static _access, info[4], callback; menu_item_getinfo( menu, item, _access, info, sizeof ( info ) - 1, _, _, callback ); menu_destroy( menu ); new iKey = str_to_num( info ); switch( iKey ) { case 1: { if( !is_user_alive( id ) ) { client_print( id, print_center, "#Cstrike_TitlesTXT_Cannot_Buy_This" ); ColorChat( id, RED, "^x04%s^x01 Must be alive.", MESSAGE_TAG ); ShowShopMenu( id ); return 1; } new HPCost = get_pcvar_num( gCvarHPCost ); if( iMoney < HPCost ) { client_print( id, print_center, "#Cstrike_TitlesTXT_Not_Enough_Money" ); ShowShopMenu( id ); return 1; } else if( iHealth >= 250 ) { client_print( id, print_center, "#Cstrike_TitlesTXT_Cannot_Carry_Anymore" ); ShowShopMenu( id ); return 1; } cs_set_user_money( id, iMoney - HPCost ); set_user_health( id, clamp( iHealth + 25, 0, 250 ) ); ColorChat( id, RED, "^x04%s^x01 You bought^x03 25 HP^x01 for^x03 %i$^x01.", MESSAGE_TAG, HPCost ); PlaySound( id, SndPickUpItem ); } case 2: { if( !is_user_alive( id ) ) { client_print( id, print_center, "#Cstrike_TitlesTXT_Cannot_Buy_This" ); ColorChat( id, RED, "^x04%s^x01 Must be alive..", MESSAGE_TAG ); ShowShopMenu( id ); return 1; } new APCost = get_pcvar_num( gCvarAPCost ); if( iMoney < APCost ) { client_print( id, print_center, "#Cstrike_TitlesTXT_Not_Enough_Money" ); ShowShopMenu( id ); return 1; } else if( iArmor >= 170 ) { client_print( id, print_center, "#Cstrike_TitlesTXT_Cannot_Carry_Anymore" ); ShowShopMenu( id ); return 1; } cs_set_user_money( id, iMoney - APCost ); set_user_armor( id, clamp( iArmor + 25, 0, 170 ) ); ColorChat( id, RED, "^x04%s^x01 You bought^x03 25 AP^x01 for^x03 %i$^x01.", MESSAGE_TAG, APCost ); PlaySound( id, SndPickUpItem ); } /*case 3: { if( !is_user_alive( id ) ) { client_print( id, print_center, "#Cstrike_TitlesTXT_Cannot_Buy_This" ); ColorChat( id, RED, "^x04%s^x01 Must be alive..", MESSAGE_TAG ); ShowShopMenu( id ); return 1; } new HECost = get_pcvar_num( gCvarHECost ); if( iMoney < HECost ) { client_print( id, print_center, "#Cstrike_TitlesTXT_Not_Enough_Money" ); ShowShopMenu( id ); return 1; } else if( user_has_weapon( id, CSW_HEGRENADE ) ) { client_print( id, print_center, "#Cstrike_TitlesTXT_Already_Have_One" ); ShowShopMenu( id ); return 1; } cs_set_user_money( id, iMoney - HECost ); give_item( id, "weapon_hegrenade" ); ColorChat( id, RED, "^x04%s^x01 You bought o^x03 grenada^x01 for^x03 2500$^x01.", MESSAGE_TAG, HECost ); PlaySound( id, SndPickUpItem ); }*/ case 3: { if( !is_user_alive( id ) ) { client_print( id, print_center, "#Cstrike_TitlesTXT_Cannot_Buy_This" ); ColorChat( id, RED, "^x04%s^x01 Must be alive..", MESSAGE_TAG ); ShowShopMenu( id ); return 1; } new SWCost = get_pcvar_num( gCvarSWCost ); if( iMoney < SWCost ) { client_print( id, print_center, "#Cstrike_TitlesTXT_Not_Enough_Money" ); ShowShopMenu( id ); return 1; } else if( get_user_footsteps( id ) > 0 ) { client_print( id, print_center, "#Cstrike_TitlesTXT_Already_Have_One" ); ShowShopMenu( id ); return 1; } cs_set_user_money( id, iMoney - SWCost ); set_user_footsteps( id, 1 ); ColorChat( id, RED, "^x04%s^x01 You bought^x03 Silent Walk^x01 for^x03 %i$^x01.", MESSAGE_TAG, SWCost ); PlaySound( id, SndPickUpItem ); } case 4: { new XPAmount = get_pcvar_num( gCvarXPAmount ); new XPCost = get_pcvar_num( gCvarXPCost ); if( iMoney < XPCost ) { client_print( id, print_center, "#Cstrike_TitlesTXT_Not_Enough_Money" ); ShowShopMenu( id ); return 1; } cs_set_user_money( id, iMoney - XPCost ); gUserXp[ id ] += XPAmount; ColorChat( id, RED, "^x04%s^x01 You bought^x03 %i XP^x01 for^x03 %i$^x01.", MESSAGE_TAG, XPAmount, XPCost ); if( IsUserVip( id ) ) { ColorChat( id, RED, "^x04%s^x01 Because you are^x03 VIP^x01 You have received^x03 %i XP^x01 .", MESSAGE_TAG, XPAmount ); gUserXp[ id ] += XPAmount; } PlaySound( id, SndTome ); } case 5: { new CsTeams:Team = cs_get_user_team( id ); if( Team == CS_TEAM_ANTIFURIEN || Team == CS_TEAM_FURIEN ) //|| Team == CS_TEAM_SPECTATOR && ( get_user_flags( id ) && read_flags( "cdefijm" ) ) ) { if( is_user_alive( id ) ) { client_print( id, print_center, "#Cstrike_TitlesTXT_Cannot_Buy_This" ); ColorChat( id, RED, "^x04%s^x03 NU^x01 Must be alive..", MESSAGE_TAG ); ShowShopMenu( id ); return 1; } new IRCost = get_pcvar_num( gCvarIRCost ); if( iMoney < IRCost ) { client_print( id, print_center, "#Cstrike_TitlesTXT_Not_Enough_Money" ); ShowShopMenu( id ); return 1; } else if( !UserHasTeamMatesAlive( id, cs_get_user_team( id ) ) ) { client_print( id, print_center, "#Cstrike_TitlesTXT_Cannot_Buy_This" ); ColorChat( id, RED, "^x04%s^x01 You must have at least one teammate alive!", MESSAGE_TAG ); ShowShopMenu( id ); return 1; } cs_set_user_money( id, iMoney - IRCost ); set_task( 0.5, "TaskRespawn", id ); ColorChat( id, RED, "^x04%s^x01 You bought^x03 Respawn^x01 for^x03 %i$^x01.", MESSAGE_TAG, IRCost ); PlaySound( id, SndPickUpItem ); } else { client_print( id, print_center, "You can not buy Respawn when you SPECTATOR!" ); } } } return 0; } public CallbackShop( id, menu, item ) { static _access, info[ 4 ], callback; menu_item_getinfo( menu, item, _access, info, sizeof ( info ) - 1, _, _, callback ); if( info[ 0 ] == '4' && cs_get_user_team( id ) != CS_TEAM_ANTIFURIEN ) return ITEM_DISABLED; else if( info[ 0 ] == '5' && cs_get_user_team( id ) != CS_TEAM_ANTIFURIEN ) return ITEM_DISABLED; else if( info[ 0 ] == '7' && cs_get_user_team( id ) == CS_TEAM_SPECTATOR ) return ITEM_DISABLED; return ITEM_ENABLED; } public ShowHelpMenu( id ) { static MenuName[ 128 ]; formatex( MenuName, sizeof ( MenuName ) - 1, "\r%s^n\y Help Menu", PLUGIN ); new menu = menu_create( MenuName, "HelpMenuHandler"); menu_additem( menu, "\yGeneral^n", "*" ); if( gAnyHealthEnabled ) { menu_additem( menu, "Healt", "1" ); } if( gAnyArmorEnabled ) { menu_additem( menu, "Armor", "2" ); } if( gAnySpeedEnabled ) { menu_additem( menu, "Speed", "3" ); } if( gAnyGravityEnabled ) { menu_additem( menu, "Gravity", "4" ); } if( gAnyDamageMultiplierEnabled ) { menu_additem( menu, "MultiDamege", "5" ); } if( gAnyRespawnEnabled ) { menu_additem( menu, "Respawn", "6" ); } if( gAnyHealthRegenerationEnabled ) { menu_additem( menu, "Regeneration HP", "7" ); } if( gAnyArmorChargerEnabled ) { menu_additem( menu, "Regeneration AP", "8" ); } menu_setprop( menu, MPROP_EXITNAME, "\wExit" ); menu_display( id, menu ); } public HelpMenuHandler( id, menu, item) { if( item == MENU_EXIT ) { menu_destroy( menu ); return; } static _access, info[4], callback; menu_item_getinfo( menu, item, _access, info, sizeof ( info ) - 1, _, _, callback ); menu_destroy( menu ); switch( info[ 0 ] ) { case '*': { PrintGeneralHelp( id ); } case '1': { PrintHealthHelp( id ); } case '2': { PrintArmorHelp( id ); } case '3': { PrintSpeedHelp( id ); } case '4': { PrintGravityHelp( id ); } case '5': { PrintDamageMultiplierHelp( id ); } case '6': { PrintRespawnHelp( id ); } case '7': { PrintHealthRegenerationHelp( id ); } case '8': { PrintArmorChargerHelp( id ); } } ShowHelpMenu( id ); } public ShowMainMenu( id ) { static MenuName[ 128 ]; formatex( MenuName, sizeof ( MenuName ) - 1, "\rUpgrade Menu^n\yXP: \w%i", gUserXp[ id ] ); new menu = menu_create( MenuName, "MainMenuHandler"); menu_additem( menu, "\yGeneral Help^n", "*" ); if( gAnyHealthEnabled ) { menu_additem( menu, "Health", "1" ); } if( gAnyArmorEnabled ) { menu_additem( menu, "Armor", "2" ); } if( gAnySpeedEnabled ) { menu_additem( menu, "Speed", "3" ); } if( gAnyGravityEnabled ) { menu_additem( menu, "Gravity", "4" ); } if( gAnyDamageMultiplierEnabled ) { menu_additem( menu, "MultiDamage", "5" ); } if( gAnyRespawnEnabled ) { menu_additem( menu, "Respawn", "6" ); } if( gAnyHealthRegenerationEnabled ) { menu_additem( menu, "Regeneration HP", "7" ); } if( gAnyArmorChargerEnabled ) { menu_additem( menu, "Regeneration AP", "8" ); } menu_setprop( menu, MPROP_EXITNAME, "\wExit" ); menu_display( id, menu ); } public MainMenuHandler( id, menu, item) { if( item == MENU_EXIT ) { menu_destroy( menu ); return; } static _access, info[4], callback; menu_item_getinfo( menu, item, _access, info, sizeof ( info ) - 1, _, _, callback ); menu_destroy( menu ); switch( info[ 0 ] ) { case '*': { PrintGeneralHelp( id ); } case '1': { ShowHealthMenu( id ); } case '2': { ShowArmorMenu( id ); } case '3': { ShowSpeedMenu( id ); } case '4': { ShowGravityMenu( id ); } case '5': { ShowDamageMultiplierMenu( id ); } case '6': { ShowRespawnMenu( id ); } case '7': { ShowHealthRegenerationMenu( id ); } case '8': { ShowArmorChargerMenu( id ); } } } public ShowHealthMenu( id ) { static MenuName[ 128 ]; formatex( MenuName, sizeof ( MenuName ) - 1, "\rHealth Menu^n\yXP: \w%i", gUserXp[ id ] ); new menu = menu_create( MenuName, "HealthMenuHandler" ); new callback = menu_makecallback( "CallbackHealth" ); menu_additem( menu, "\yHealt Help^n", "*", _, callback ); static level, xp, amount, item[ 128 ], info[4]; for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gHealthEnabled[ i ] ) { level = clamp( gHealthLevel[ id ][ i ] + 1, 0, gHealthMaxLevels[ i ] ); amount = gHealthMaxAmount[ i ] * level / gHealthMaxLevels[ i ]; if( gHealthLevel[ id ][ i ] < gHealthMaxLevels[ i ] ) { xp = gHealthFirstXp[ i ] * (1 << ( level - 1 ) ); formatex( item, sizeof( item ) - 1, "%s: \yLevel %i \r(\w%i HP\r) [\w%i XP\r]", gHealthNames[ i ], level, amount, xp ); } else { formatex(item, sizeof(item) - 1, "\w%s: \yLevel %i \r(\w%i HP\r) \r[\wLevel Maximum!\r]", gHealthNames[ i ], level, amount ); } num_to_str( _:i, info, sizeof ( info ) - 1 ); menu_additem( menu, item, info, _, callback ); } } menu_setprop( menu, MPROP_EXITNAME, "\yBack" ); menu_display( id, menu ); } public HealthMenuHandler( id, menu, item ) { if( item == MENU_EXIT ) { menu_destroy( menu ); ShowMainMenu( id ); return; } static _access, info[ 4 ], callback; menu_item_getinfo( menu, item, _access, info, sizeof ( info ) - 1, _, _, callback ); menu_destroy( menu ); if( info[ 0 ] == '*' ) { PrintHealthHelp( id ); } else { new CsTeams:upgrade = CsTeams:str_to_num( info ); new level = gHealthLevel[ id ][ upgrade ] + 1; new xp = gHealthFirstXp[ upgrade ] * ( 1 << ( level - 1 ) ); new amount = gHealthMaxAmount[ upgrade ] * level / gHealthMaxLevels[ upgrade ]; gUserXp[ id ] -= xp; gHealthLevel[ id ][ upgrade ] = level; Save( id ); ColorChat( id, RED, "^x04%s^x01 Upgrade ready:^x03 %s^x01 Level^x03 %i^x01 (^x03%i^x01 HP) for^x03 %i^x01 XP!", MESSAGE_TAG, gHealthNames[ upgrade ], level, amount, xp ); PlaySound( id, SndLevelUp ); } ShowHealthMenu( id ); } public CallbackHealth( id, menu, item ) { static _access, info[ 4 ], callback; menu_item_getinfo( menu, item, _access, info, sizeof ( info ) - 1, _, _, callback ); if( info[ 0 ] == '*' ) return ITEM_ENABLED; new CsTeams:upgrade = CsTeams:str_to_num( info ); if( gHealthLevel[ id ][ upgrade ] == gHealthMaxLevels[ upgrade ] ) { return ITEM_DISABLED; } new xp = gHealthFirstXp[ upgrade ] * ( 1 << gHealthLevel[ id ][ upgrade ] ); if( gUserXp[ id ] < xp ) { return ITEM_DISABLED; } return ITEM_ENABLED; } public ShowArmorMenu( id ) { static MenuName[ 128 ]; formatex( MenuName, sizeof ( MenuName ) - 1, "\rArmor Menu^n\yXP: \w%i", gUserXp[ id ] ); new menu = menu_create( MenuName, "ArmorMenuHandler" ); new callback = menu_makecallback( "CallbackArmor" ); menu_additem( menu, "\yArmor Help^n", "*", _, callback ); static level, xp, amount, item[ 128 ], info[4]; for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gArmorEnabled[ i ] ) { level = clamp( gArmorLevel[ id ][ i ] + 1, 0, gArmorMaxLevels[ i ] ); amount = gArmorMaxAmount[ i ] * level / gArmorMaxLevels[ i ]; if( gArmorLevel[ id ][ i ] < gArmorMaxLevels[ i ] ) { xp = gArmorFirstXp[ i ] * (1 << ( level - 1 ) ); formatex( item, sizeof( item ) - 1, "%s: \yLevel %i \r(\w%i AP\r) [\w%i XP\r]", gArmorNames[ i ], level, amount, xp ); } else { formatex(item, sizeof(item) - 1, "\w%s: \yLevel %i \r(\w%i AP\r) \r[\wLevel Maximum!\r]", gArmorNames[ i ], level, amount ); } num_to_str( _:i, info, sizeof ( info ) - 1 ); menu_additem( menu, item, info, _, callback ); } } menu_setprop( menu, MPROP_EXITNAME, "\yBack" ); menu_display( id, menu ); } public ArmorMenuHandler( id, menu, item ) { if( item == MENU_EXIT ) { menu_destroy( menu ); ShowMainMenu( id ); return; } static _access, info[ 4 ], callback; menu_item_getinfo( menu, item, _access, info, sizeof ( info ) - 1, _, _, callback ); menu_destroy( menu ); if( info[ 0 ] == '*' ) { PrintArmorHelp( id ); } else { new CsTeams:upgrade = CsTeams:str_to_num( info ); new level = gArmorLevel[ id ][ upgrade ] + 1; new xp = gArmorFirstXp[ upgrade ] * ( 1 << ( level - 1 ) ); new amount = gArmorMaxAmount[ upgrade ] * level / gArmorMaxLevels[ upgrade ]; gUserXp[ id ] -= xp; gArmorLevel[ id ][ upgrade ] = level; Save( id ); ColorChat( id, RED, "^x04%s^x01 Upgrade ready:^x03 %s^x01 Level^x03 %i^x01 (^x03%i^x01 AP) for^x03 %i^x01 XP!", MESSAGE_TAG, gArmorNames[ upgrade ], level, amount, xp ); PlaySound( id, SndLevelUp ); } ShowArmorMenu( id ); } public CallbackArmor( id, menu, item ) { static _access, info[ 4 ], callback; menu_item_getinfo( menu, item, _access, info, sizeof ( info ) - 1, _, _, callback ); if( info[ 0 ] == '*' ) return ITEM_ENABLED; new CsTeams:upgrade = CsTeams:str_to_num( info ); if( gArmorLevel[ id ][ upgrade ] == gArmorMaxLevels[ upgrade ] ) { return ITEM_DISABLED; } new xp = gArmorFirstXp[ upgrade ] * ( 1 << gArmorLevel[ id ][ upgrade ] ); if( gUserXp[ id ] < xp ) { return ITEM_DISABLED; } return ITEM_ENABLED; } public ShowSpeedMenu( id ) { static MenuName[ 128 ]; formatex( MenuName, sizeof ( MenuName ) - 1, "\rSpeed Menu^n\yXP: \w%i", gUserXp[ id ] ); new menu = menu_create( MenuName, "SpeedMenuHandler" ); new callback = menu_makecallback( "CallbackSpeed" ); menu_additem( menu, "\ySpeed Help^n", "*", _, callback ); static level, xp, Float:amount, item[ 128 ], info[4]; for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gSpeedEnabled[ i ] ) { level = clamp( gSpeedLevel[ id ][ i ] + 1, 0, gSpeedMaxLevels[ i ] ); if( i == CS_TEAM_FURIEN ) { amount = gFurienSpeedLevels[ level ]; } else if( i == CS_TEAM_ANTIFURIEN ) { amount = gAntiFurienSpeedLevels[ level ]; } if( gSpeedLevel[ id ][ i ] < gSpeedMaxLevels[ i ] ) { xp = gSpeedFirstXp[ i ] * (1 << ( level - 1 ) ); formatex( item, sizeof( item ) - 1, "%s: \yLevel %i \r(\w%.1f Speed\r) [\w%i XP\r]", gSpeedNames[ i ], level, amount, xp ); } else { formatex(item, sizeof(item) - 1, "\w%s: \yLevel %i \r(\w%.1f Speed\r) [\wLevel Maximum!\r]", gSpeedNames[ i ], level , amount ); } num_to_str( _:i, info, sizeof ( info ) - 1 ); menu_additem( menu, item, info, _, callback ); } } menu_setprop( menu, MPROP_EXITNAME, "\yBack" ); menu_display( id, menu ); } public SpeedMenuHandler( id, menu, item ) { if( item == MENU_EXIT ) { menu_destroy( menu ); ShowMainMenu( id ); return; } static _access, info[ 4 ], callback; menu_item_getinfo( menu, item, _access, info, sizeof ( info ) - 1, _, _, callback ); menu_destroy( menu ); if( info[ 0 ] == '*' ) { PrintSpeedHelp( id ); } else { new CsTeams:upgrade = CsTeams:str_to_num( info ); new level = gSpeedLevel[ id ][ upgrade ] + 1; new xp = gSpeedFirstXp[ upgrade ] * ( 1 << ( level - 1 ) ); new Float:amount; if( upgrade == CS_TEAM_FURIEN ) { amount = gFurienSpeedLevels[ level ]; } else if( upgrade == CS_TEAM_ANTIFURIEN ) { amount = gAntiFurienSpeedLevels[ level ]; } gUserXp[ id ] -= xp; gSpeedLevel[ id ][ upgrade ] = level; Save( id ); ColorChat( id, RED, "^x04%s^x01 Upgrade ready:^x03 %s^x01 Level^x03 %i^x01 (^x03%.1f^x01 Speed) for^x03 %i^x01 XP!", MESSAGE_TAG, gSpeedNames[ upgrade ], level, amount, xp ); PlaySound( id, SndLevelUp ); } ShowSpeedMenu( id ); } public CallbackSpeed( id, menu, item ) { static _access, info[ 4 ], callback; menu_item_getinfo( menu, item, _access, info, sizeof ( info ) - 1, _, _, callback ); if( info[ 0 ] == '*' ) return ITEM_ENABLED; new CsTeams:upgrade = CsTeams:str_to_num( info ); if( gSpeedLevel[ id ][ upgrade ] == gSpeedMaxLevels[ upgrade ] ) { return ITEM_DISABLED; } new xp = gSpeedFirstXp[ upgrade ] * ( 1 << gSpeedLevel[ id ][ upgrade ] ); if( gUserXp[ id ] < xp ) { return ITEM_DISABLED; } return ITEM_ENABLED; } public ShowGravityMenu( id ) { static MenuName[ 128 ]; formatex( MenuName, sizeof ( MenuName ) - 1, "\rGravity Menu^n\yXP: \w%i", gUserXp[ id ] ); new menu = menu_create( MenuName, "GravityMenuHandler" ); new callback = menu_makecallback( "CallbackGravity" ); menu_additem( menu, "\yGravity Help^n", "*", _, callback ); static level, xp, Float:amount, item[ 128 ], info[4]; for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gGravityEnabled[ i ] ) { level = clamp( gGravityLevel[ id ][ i ] + 1, 0, gGravityMaxLevels[ i ] ); if( i == CS_TEAM_FURIEN ) { amount = gFurienGravityLevels[ level ] / 0.00125 ; } else if( i == CS_TEAM_ANTIFURIEN ) { amount = gAntiFurienGravityLevels[ level ] / 0.00125; } if( gGravityLevel[ id ][ i ] < gGravityMaxLevels[ i ] ) { xp = gGravityFirstXp[ i ] * (1 << ( level - 1 ) ); formatex( item, sizeof( item ) - 1, "%s: \yLevel %i \r(\w%.1f Gravity\r) [\w%i XP\r]", gGravityNames[ i ], level, amount, xp ); } else { formatex(item, sizeof(item) - 1, "\w%s: \yLevel %i \r(\w%.1f Gravity\r) [\wLevel Maximum!\r]", gGravityNames[ i ], level , amount ); } num_to_str( _:i, info, sizeof ( info ) - 1 ); menu_additem( menu, item, info, _, callback ); } } menu_setprop( menu, MPROP_EXITNAME, "\yBack" ); menu_display( id, menu ); } public GravityMenuHandler( id, menu, item ) { if( item == MENU_EXIT ) { menu_destroy( menu ); ShowMainMenu( id ); return; } static _access, info[ 4 ], callback; menu_item_getinfo( menu, item, _access, info, sizeof ( info ) - 1, _, _, callback ); menu_destroy( menu ); if( info[ 0 ] == '*' ) { PrintGravityHelp( id ); } else { new CsTeams:upgrade = CsTeams:str_to_num( info ); new level = gGravityLevel[ id ][ upgrade ] + 1; new xp = gGravityFirstXp[ upgrade ] * ( 1 << ( level - 1 ) ); new Float:amount; if( upgrade == CS_TEAM_FURIEN ) { amount = gFurienGravityLevels[ level ] / 0.00125; } else if( upgrade == CS_TEAM_ANTIFURIEN ) { amount = gAntiFurienGravityLevels[ level ] / 0.00125; } gUserXp[ id ] -= xp; gGravityLevel[ id ][ upgrade ] = level; Save( id ); ColorChat( id, RED, "^x04%s^x01 Upgrade ready:^x03 %s^x01 Level^x03 %i^x01 (^x03%.1f^x01 GRAVITY) for^x03 %i^x01 XP!", MESSAGE_TAG, gGravityNames[ upgrade ], level, amount, xp ); PlaySound( id, SndLevelUp ); } ShowGravityMenu( id ); } public CallbackGravity( id, menu, item ) { static _access, info[ 4 ], callback; menu_item_getinfo( menu, item, _access, info, sizeof ( info ) - 1, _, _, callback ); if( info[ 0 ] == '*' ) return ITEM_ENABLED; new CsTeams:upgrade = CsTeams:str_to_num( info ); if( gGravityLevel[ id ][ upgrade ] == gGravityMaxLevels[ upgrade ] ) { return ITEM_DISABLED; } new xp = gGravityFirstXp[ upgrade ] * ( 1 << gGravityLevel[ id ][ upgrade ] ); if( gUserXp[ id ] < xp ) { return ITEM_DISABLED; } return ITEM_ENABLED; } public ShowDamageMultiplierMenu( id ) { static MenuName[ 128 ]; formatex( MenuName, sizeof ( MenuName ) - 1, "\rMultiDamage Menu^n\yXP: \w%i", gUserXp[ id ] ); new menu = menu_create( MenuName, "DamageMultiplierMenuHandler" ); new callback = menu_makecallback( "CallbackDamageMultiplier" ); menu_additem( menu, "\yDamage Multiplier Help^n", "*", _, callback ); static level, xp, item[ 128 ], info[4];//, amount; for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { new iDamage[ CsTeams ] = { 0, 20, 10, 0 }; if( gDamageMultiplierEnabled[ i ] ) { level = clamp( gDamageMultiplierLevel[ id ][ i ] + 1, 0, gDamageMultiplierMaxLevels[ i ] ); if( gDamageMultiplierLevel[ id ][ i ] < gDamageMultiplierMaxLevels[ i ] ) { xp = gDamageMultiplierFirstXp[ i ] * (1 << ( level - 1 ) ); formatex( item, sizeof( item ) - 1, "%s: \yLevel %i \r(\w%i%%\r) [\w%i XP\r]", gDamageMultiplierNames[ i ], level, level * iDamage[ i ], xp ); } else { formatex(item, sizeof(item) - 1, "\w%s: \yLevel %i \r(\w%i%%\r) [\wLevel Maximum!\r]", gDamageMultiplierNames[ i ], level, level * iDamage[ i ] ); } num_to_str( _:i, info, sizeof ( info ) - 1 ); menu_additem( menu, item, info, _, callback ); } } menu_setprop( menu, MPROP_EXITNAME, "\yBack" ); menu_display( id, menu ); } public DamageMultiplierMenuHandler( id, menu, item ) { if( item == MENU_EXIT ) { menu_destroy( menu ); ShowMainMenu( id ); return; } static _access, info[ 4 ], callback; menu_item_getinfo( menu, item, _access, info, sizeof ( info ) - 1, _, _, callback ); menu_destroy( menu ); if( info[ 0 ] == '*' ) { PrintDamageMultiplierHelp( id ); } else { new CsTeams:upgrade = CsTeams:str_to_num( info ); new level = gDamageMultiplierLevel[ id ][ upgrade ] + 1; new xp = gDamageMultiplierFirstXp[ upgrade ] * ( 1 << ( level - 1 ) ); gUserXp[ id ] -= xp; gDamageMultiplierLevel[ id ][ upgrade ] = level; Save( id ); ColorChat( id, RED, "^x04%s^x01 Upgrade ready:^x03 %s^x01 Level^x03 %i^x01 (^x03%i^x01 %%) for^x03 %i^x01 XP!", MESSAGE_TAG, gDamageMultiplierNames[ upgrade ], level, level * 20 , xp ); PlaySound( id, SndLevelUp ); } ShowDamageMultiplierMenu( id ); } public CallbackDamageMultiplier( id, menu, item ) { static _access, info[ 4 ], callback; menu_item_getinfo( menu, item, _access, info, sizeof ( info ) - 1, _, _, callback ); if( info[ 0 ] == '*' ) return ITEM_ENABLED; new CsTeams:upgrade = CsTeams:str_to_num( info ); if( gDamageMultiplierLevel[ id ][ upgrade ] == gDamageMultiplierMaxLevels[ upgrade ] ) { return ITEM_DISABLED; } new xp = gDamageMultiplierFirstXp[ upgrade ] * ( 1 << gDamageMultiplierLevel[ id ][ upgrade ] ); if( gUserXp[ id ] < xp ) { return ITEM_DISABLED; } return ITEM_ENABLED; } public ShowRespawnMenu( id ) { static MenuName[ 128 ]; formatex( MenuName, sizeof ( MenuName ) - 1, "\rRespawn Menu^n\yXP: \w%i", gUserXp[ id ] ); new menu = menu_create( MenuName, "RespawnMenuHandler" ); new callback = menu_makecallback( "CallbackRespawn" ); menu_additem( menu, "\yRespawn Help^n", "*", _, callback ); static level, xp, amount, item[ 128 ], info[4]; for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gRespawnEnabled[ i ] ) { level = clamp( gRespawnLevel[ id ][ i ] + 1, 0, gRespawnMaxLevels[ i ] ); amount = gRespawnMaxAmount[ i ] * level / gRespawnMaxLevels[ i ]; if( gRespawnLevel[ id ][ i ] < gRespawnMaxLevels[ i ] ) { xp = gRespawnFirstXp[ i ] * (1 << ( level - 1 ) ); formatex( item, sizeof( item ) - 1, "%s: \yLevel %i \r(\w%i%%\r) [\w%i XP\r]", gRespawnNames[ i ], level, amount, xp ); } else { formatex(item, sizeof(item) - 1, "\w%s: \yLevel %i \r(\w%i%%\r) [\wLevel Maximum!\r]", gRespawnNames[ i ], level, amount ); } num_to_str( _:i, info, sizeof ( info ) - 1 ); menu_additem( menu, item, info, _, callback ); } } menu_setprop( menu, MPROP_EXITNAME, "\yBack" ); menu_display( id, menu ); } public RespawnMenuHandler( id, menu, item ) { if( item == MENU_EXIT ) { menu_destroy( menu ); ShowMainMenu( id ); return; } static _access, info[ 4 ], callback; menu_item_getinfo( menu, item, _access, info, sizeof ( info ) - 1, _, _, callback ); menu_destroy( menu ); if( info[ 0 ] == '*' ) { PrintRespawnHelp( id ); } else { new CsTeams:upgrade = CsTeams:str_to_num( info ); new level = gRespawnLevel[ id ][ upgrade ] + 1; new xp = gRespawnFirstXp[ upgrade ] * ( 1 << ( level - 1 ) ); new amount = gRespawnMaxAmount[ upgrade ] * level / gRespawnMaxLevels[ upgrade ]; gUserXp[ id ] -= xp; gRespawnLevel[ id ][ upgrade ] = level; Save( id ); ColorChat( id, RED, "^x04%s^x01 Upgrade ready:^x03 %s^x01 Level^x03 %i^x01 (^x03%i^x01 %%) for^x03 %i^x01 XP!", MESSAGE_TAG, gRespawnNames[ upgrade ], level, amount, xp ); PlaySound( id, SndLevelUp ); } ShowRespawnMenu( id ); } public CallbackRespawn( id, menu, item ) { static _access, info[ 4 ], callback; menu_item_getinfo( menu, item, _access, info, sizeof ( info ) - 1, _, _, callback ); if( info[ 0 ] == '*' ) return ITEM_ENABLED; new CsTeams:upgrade = CsTeams:str_to_num( info ); if( gRespawnLevel[ id ][ upgrade ] == gRespawnMaxLevels[ upgrade ] ) { return ITEM_DISABLED; } new xp = gRespawnFirstXp[ upgrade ] * ( 1 << gRespawnLevel[ id ][ upgrade ] ); if( gUserXp[ id ] < xp ) { return ITEM_DISABLED; } return ITEM_ENABLED; } public ShowHealthRegenerationMenu( id ) { static MenuName[ 128 ]; formatex( MenuName, sizeof ( MenuName ) - 1, "\rRegeneration Health Menu^n\yXP: \w%i", gUserXp[ id ] ); new menu = menu_create( MenuName, "HealthRegenerationMenuHandler" ); new callback = menu_makecallback( "CallbackHealthRegeneration" ); menu_additem( menu, "\yHealth Regeneration Help^n", "*", _, callback ); static level, xp, amount, item[ 128 ], info[4]; for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gHealthRegenerationEnabled[ i ] ) { level = clamp( gHealthRegenerationLevel[ id ][ i ] + 1, 0, gHealthRegenerationMaxLevels[ i ] ); amount = gHealthRegenerationMaxAmount[ i ] * level / gHealthRegenerationMaxLevels[ i ]; if( gHealthRegenerationLevel[ id ][ i ] < gHealthRegenerationMaxLevels[ i ] ) { xp = gHealthRegenerationFirstXp[ i ] * (1 << ( level - 1 ) ); formatex( item, sizeof( item ) - 1, "%s: \yLevel %i \r(\w%i HP\r) [\w%i XP\r]", gHealthRegenerationNames[ i ], level, amount, xp ); } else { formatex(item, sizeof(item) - 1, "\w%s: \yLevel %i \r(\w%i HP\r) \r[\wLevel Maximum!\r]", gHealthRegenerationNames[ i ], level, amount ); } num_to_str( _:i, info, sizeof ( info ) - 1 ); menu_additem( menu, item, info, _, callback ); } } menu_setprop( menu, MPROP_EXITNAME, "\yBack" ); menu_display( id, menu ); } public HealthRegenerationMenuHandler( id, menu, item ) { if( item == MENU_EXIT ) { menu_destroy( menu ); ShowMainMenu( id ); return; } static _access, info[ 4 ], callback; menu_item_getinfo( menu, item, _access, info, sizeof ( info ) - 1, _, _, callback ); menu_destroy( menu ); if( info[ 0 ] == '*' ) { PrintHealthRegenerationHelp( id ); } else { new CsTeams:upgrade = CsTeams:str_to_num( info ); new level = gHealthRegenerationLevel[ id ][ upgrade ] + 1; new xp = gHealthRegenerationFirstXp[ upgrade ] * ( 1 << ( level - 1 ) ); new amount = gHealthRegenerationMaxAmount[ upgrade ] * level / gHealthRegenerationMaxLevels[ upgrade ]; gUserXp[ id ] -= xp; gHealthRegenerationLevel[ id ][ upgrade ] = level; Save( id ); ColorChat( id, RED, "^x04%s^x01 Upgrade ready:^x03 %s^x01 Level^x03 %i^x01 (^x03%i^x01 HP) for^x03 %i^x01 XP!", MESSAGE_TAG, gHealthRegenerationNames[ upgrade ], level, amount, xp ); PlaySound( id, SndLevelUp ); } ShowHealthRegenerationMenu( id ); } public CallbackHealthRegeneration( id, menu, item ) { static _access, info[ 4 ], callback; menu_item_getinfo( menu, item, _access, info, sizeof ( info ) - 1, _, _, callback ); if( info[ 0 ] == '*' ) return ITEM_ENABLED; new CsTeams:upgrade = CsTeams:str_to_num( info ); if( gHealthRegenerationLevel[ id ][ upgrade ] == gHealthRegenerationMaxLevels[ upgrade ] ) { return ITEM_DISABLED; } new xp = gHealthRegenerationFirstXp[ upgrade ] * ( 1 << gHealthRegenerationLevel[ id ][ upgrade ] ); if( gUserXp[ id ] < xp ) { return ITEM_DISABLED; } return ITEM_ENABLED; } public ShowArmorChargerMenu( id ) { static MenuName[ 128 ]; formatex( MenuName, sizeof ( MenuName ) - 1, "\rRegeneration Armor Menu^n\yXP: \w%i", gUserXp[ id ] ); new menu = menu_create( MenuName, "ArmorChargerMenuHandler" ); new callback = menu_makecallback( "CallbackArmorCharger" ); menu_additem( menu, "\yArmor Charger Help^n", "*", _, callback ); static level, xp, amount, item[ 128 ], info[4]; for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gArmorChargerEnabled[ i ] ) { level = clamp( gArmorChargerLevel[ id ][ i ] + 1, 0, gArmorChargerMaxLevels[ i ] ); amount = gArmorChargerMaxAmount[ i ] * level / gArmorChargerMaxLevels[ i ]; if( gArmorChargerLevel[ id ][ i ] < gArmorChargerMaxLevels[ i ] ) { xp = gArmorChargerFirstXp[ i ] * (1 << ( level - 1 ) ); formatex( item, sizeof( item ) - 1, "%s: \yLevel %i \r(\w%i AP\r) [\w%i XP\r]", gArmorChargerNames[ i ], level, amount, xp ); } else { formatex(item, sizeof(item) - 1, "\w%s: \yLevel %i \r(\w%i AP\r) \r[\wLevel Maximum!\r]", gArmorChargerNames[ i ], level, amount ); } num_to_str( _:i, info, sizeof ( info ) - 1 ); menu_additem( menu, item, info, _, callback ); } } menu_setprop( menu, MPROP_EXITNAME, "\yBack" ); menu_display( id, menu ); } public ArmorChargerMenuHandler( id, menu, item ) { if( item == MENU_EXIT ) { menu_destroy( menu ); ShowMainMenu( id ); return; } static _access, info[ 4 ], callback; menu_item_getinfo( menu, item, _access, info, sizeof ( info ) - 1, _, _, callback ); menu_destroy( menu ); if( info[ 0 ] == '*' ) { PrintArmorChargerHelp( id ); } else { new CsTeams:upgrade = CsTeams:str_to_num( info ); new level = gArmorChargerLevel[ id ][ upgrade ] + 1; new xp = gArmorChargerFirstXp[ upgrade ] * ( 1 << ( level - 1 ) ); new amount = gArmorChargerMaxAmount[ upgrade ] * level / gArmorChargerMaxLevels[ upgrade ]; gUserXp[ id ] -= xp; gArmorChargerLevel[ id ][ upgrade ] = level; Save( id ); ColorChat( id, RED, "^x04%s^x01 Upgrade ready:^x03 %s^x01 Level^x03 %i^x01 (^x03%i^x01 AP) for^x03 %i^x01 XP!", MESSAGE_TAG, gArmorChargerNames[ upgrade ], level, amount, xp ); PlaySound( id, SndLevelUp ); } ShowArmorChargerMenu( id ); } public CallbackArmorCharger( id, menu, item ) { static _access, info[ 4 ], callback; menu_item_getinfo( menu, item, _access, info, sizeof ( info ) - 1, _, _, callback ); if( info[ 0 ] == '*' ) return ITEM_ENABLED; new CsTeams:upgrade = CsTeams:str_to_num( info ); if( gArmorChargerLevel[ id ][ upgrade ] == gArmorChargerMaxLevels[ upgrade ] ) { return ITEM_DISABLED; } new xp = gArmorChargerFirstXp[ upgrade ] * ( 1 << gArmorChargerLevel[ id ][ upgrade ] ); if( gUserXp[ id ] < xp ) { return ITEM_DISABLED; } return ITEM_ENABLED; } public Load( id ) { static data[ 256 ], timestamp; new szName[ 32 ]; get_user_name( id, szName, sizeof ( szName ) -1 ); if( nvault_lookup( gVault, szName, data, sizeof ( data ) - 1, timestamp ) ) { ParseLoadedData( id, data ); return; } else { UserIsNew( id ); } } public ParseLoadedData( id, data[ 256 ] ) { static iXp[ 25 ], iLevel[ 6 ]; strbreak( data, iXp, sizeof ( iXp ) - 1, data, sizeof ( data ) - 1 ); gUserXp[ id ] = str_to_num( iXp ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { strbreak( data, iLevel, sizeof ( iLevel ) - 1, data, sizeof ( data ) - 1 ); gHealthLevel[ id ][ i ] = clamp( str_to_num( iLevel ), NULL, gHealthMaxLevels[ i ] ); } for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { strbreak( data, iLevel, sizeof ( iLevel ) - 1, data, sizeof ( data ) - 1 ); gArmorLevel[ id ][ i ] = clamp( str_to_num( iLevel ), NULL, gArmorMaxLevels[ i ] ); } for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { strbreak( data, iLevel, sizeof ( iLevel ) - 1, data, sizeof ( data ) - 1 ); gSpeedLevel[ id ][ i ] = clamp( str_to_num( iLevel ), NULL, gSpeedMaxLevels[ i ] ); } for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { strbreak( data, iLevel, sizeof ( iLevel ) - 1, data, sizeof ( data ) - 1 ); gGravityLevel[ id ][ i ] = clamp( str_to_num( iLevel ), NULL, gGravityMaxLevels[ i ] ); } for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { strbreak( data, iLevel, sizeof ( iLevel ) - 1, data, sizeof ( data ) - 1 ); gDamageMultiplierLevel[ id ][ i ] = clamp( str_to_num( iLevel ), NULL, gDamageMultiplierMaxLevels[ i ] ); } for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { strbreak( data, iLevel, sizeof ( iLevel ) - 1, data, sizeof ( data ) - 1 ); gRespawnLevel[ id ][ i ] = clamp( str_to_num( iLevel ), NULL, gRespawnMaxLevels[ i ] ); } for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { strbreak( data, iLevel, sizeof ( iLevel ) - 1, data, sizeof ( data ) - 1 ); gHealthRegenerationLevel[ id ][ i ] = clamp( str_to_num( iLevel ), NULL, gHealthRegenerationMaxLevels[ i ] ); } for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { strbreak( data, iLevel, sizeof ( iLevel ) - 1, data, sizeof ( data ) - 1 ); gArmorChargerLevel[ id ][ i ] = clamp( str_to_num( iLevel ), NULL, gArmorChargerMaxLevels[ i ] ); } } public UserIsNew( id ) { gFirstTimePlayed[ id ] = true; gUserXp[ id ] = get_pcvar_num( gCvarEntryXP ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { gHealthLevel[ id ][ i ] = NULL; gArmorLevel[ id ][ i ] = NULL; gSpeedLevel[ id ][ i ] = NULL; gGravityLevel[ id ][ i ] = NULL; gDamageMultiplierLevel[ id ][ i ] = NULL; gRespawnLevel[ id ][ i ] = NULL; gHealthRegenerationLevel[ id ][ i ] = NULL; gArmorChargerLevel[ id ][ i ] = NULL; } } public Save( id ) { static data[ 256 ]; new len = formatex( data, sizeof ( data ) - 1, "%i", gUserXp[ id ]); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { len += formatex( data[ len ], sizeof( data ) - len - 1 , " %i", gHealthLevel[ id ][ i ] ); } for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { len += formatex( data[ len ], sizeof( data ) - len - 1 , " %i", gArmorLevel[ id ][ i ] ); } for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { len += formatex( data[ len ], sizeof( data ) - len - 1 , " %i", gSpeedLevel[ id ][ i ] ); } for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { len += formatex( data[ len ], sizeof( data ) - len - 1 , " %i", gGravityLevel[ id ][ i ] ); } for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { len += formatex( data[ len ], sizeof( data ) - len - 1 , " %i", gDamageMultiplierLevel[ id ][ i ] ); } for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { len += formatex( data[ len ], sizeof( data ) - len - 1 , " %i", gRespawnLevel[ id ][ i ] ); } for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { len += formatex( data[ len ], sizeof( data ) - len - 1 , " %i", gHealthRegenerationLevel[ id ][ i ] ); } for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { len += formatex( data[ len ], sizeof( data ) - len - 1 , " %i", gArmorChargerLevel[ id ][ i ] ); } new szName[ 32 ]; get_user_name( id, szName, sizeof ( szName ) -1 ); nvault_set( gVault, szName, data ); } public BlockedCommand( id ) { console_print( id,"%s You can not use a restricted command !", MESSAGE_TAG ); return 1; } public PrintGeneralHelp( id ) { if( !IsUserOK( id ) ) return 1; static motd[ 2500 ]; new len = formatex( motd, sizeof ( motd ) - 1, "<html>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<style type=^"text/css^">" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "body{background-image: url(^"http://s17.postimg.org/bwc2x84q7/Ghost_official_ss6.png^");font-family:Tahoma;font-size:15px;color:#FFFFFF;}" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "table{font-family:Tahoma;font-size:10px;color:#FFFFFF;}</style>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<body><center><font face=^"Verdana^" size=^"2^"><b><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<font size=^"4^" color=^"#B80000^">%s<br>", PLUGIN ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "%s (Ghost Fury edit by d!abolic)</font><br><br>", VERSION ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "%s is an addon modified Of Ghost Fury.<br>", PLUGIN ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "Players earn experience points as well they play.<br><br><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</center><table align=center width=65%% cellpadding=1 cellspacing=0 >" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <th width=13%%> Action <th width=13%%> Weapon <th width=13%%>Headshot<th width=13%%>Experience Player<th width=13%%>Experience VIP" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Kill a player</td> <td> All</td> <td> -</td><td> %d</td><td> x2</td>", get_pcvar_num( gCvarKillXP ) ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Kill a player( Bonus )</td> <td> All</td> <td> Yes </td><td> %d</td><td> x2</td>", get_pcvar_num( gCvarHeadShotKillXP ) ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Kill a player( Bonus )</td> <td> HE-grenade</td> <td> -<td> %d</td><td> x2</td>", get_pcvar_num( gCvarGrenadeKillXP ) ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Kill a player( Bonus )</td> <td> Knife</td> <td> -<td> %d</td><td> x2</td>", get_pcvar_num( gCvarKnifeKillXP ) ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Survive( Humans )</td> <td> -</td> <td> -<td> %d</td><td> x2</td>", get_pcvar_num( gCvarSurviveXP ) ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Round Win</td> <td> -</td> <td> -<td> %d</td><td> x2</td>", get_pcvar_num( gCvarWinXP ) ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</table><center><br><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "With these experience points, you can buy upgrades.<br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "For a list of these upgrades, write / XP again and see the other menus." ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</center></body></html>" ); show_motd( id, motd, "General Help"); return 1; } public PrintHealthHelp( id ) { static motd[ 2500 ]; new len = formatex( motd, sizeof ( motd ) - 1, "<html>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<style type=^"text/css^">" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "body{background-image: url(^"http://s17.postimg.org/bwc2x84q7/Ghost_official_ss6.png^");font-family:Tahoma;font-size:15px;color:#FFFFFF;}" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "table{font-family:Tahoma;font-size:10px;color:#FFFFFF;}</style>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<body><center><font face=^"Verdana^" size=^"2^"><b><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<font size=^"4^" color=^"#B80000^">%s<br>", PLUGIN ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</font><br><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "Upgrade your Life! You get extra HP at the beginning of the round.<br><br><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</center><table align=center width=35%% cellpadding=1 cellspacing=0 >" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <th width=15%%> Info" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gHealthEnabled[ i ] ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %s", gHealthNames[ i ] ); } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Intervals Life</td>" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gHealthEnabled[ i ] ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %i", gHealthMaxAmount[ i ] / gHealthMaxLevels[ i ] ); } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Max Level</td>" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gHealthEnabled[ i ] ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %i", gHealthMaxLevels[ i ] ); } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Max Health</td>" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gHealthEnabled[ i ] ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %i", gHealthMaxAmount[ i ] ); } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "</table><center>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</center></body></html>" ); show_motd( id, motd, "Life Help"); } public PrintArmorHelp( id ) { static motd[ 2500 ]; new len = formatex( motd, sizeof ( motd ) - 1, "<html>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<style type=^"text/css^">" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "body{background-image: url(^"http://s17.postimg.org/bwc2x84q7/Ghost_official_ss6.png^");font-family:Tahoma;font-size:15px;color:#FFFFFF;}" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "table{font-family:Tahoma;font-size:10px;color:#FFFFFF;}</style>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<body><center><font face=^"Verdana^" size=^"2^"><b><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<font size=^"4^" color=^"#B80000^">%s<br>", PLUGIN ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</font><br><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "Upgrade your Armor! You get extra AP at the beginning of the round.<br><br><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</center><table align=center width=35%% cellpadding=1 cellspacing=0 >" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <th width=15%%> Info" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gArmorEnabled[ i ] ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %s", gArmorNames[ i ] ); } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Intervals Armor</td>" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gArmorEnabled[ i ] ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %i", gArmorMaxAmount[ i ] / gArmorMaxLevels[ i ] ); } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Max Level</td>" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gArmorEnabled[ i ] ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %i", gArmorMaxLevels[ i ] ); } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Max Armor</td>" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gArmorEnabled[ i ] ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %i", gArmorMaxAmount[ i ] ); } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "</table><center>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</center></body></html>" ); show_motd( id, motd, "Armor Help"); } public PrintSpeedHelp( id ) { static motd[ 2500 ]; new len = formatex( motd, sizeof ( motd ) - 1, "<html>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<style type=^"text/css^">" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "body{background-image: url(^"http://s17.postimg.org/bwc2x84q7/Ghost_official_ss6.png^");font-family:Tahoma;font-size:15px;color:#FFFFFF;}" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "table{font-family:Tahoma;font-size:10px;color:#FFFFFF;}</style>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<body><center><font face=^"Verdana^" size=^"2^"><b><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<font size=^"4^" color=^"#B80000^">%s<br>", PLUGIN ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</font><br><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "Upgrade your Speed! You get extra Speed at the beginning of the round.<br><br><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</center><table align=center width=35%% cellpadding=1 cellspacing=0 >" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <th width=15%%> Info" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gSpeedEnabled[ i ] ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %s", gSpeedNames[ i ] ); } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Default Speed</td>" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gSpeedEnabled[ i ] ) { if( i == CS_TEAM_FURIEN ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %.1f", gFurienSpeedLevels[ 0 ] ); } else if( i == CS_TEAM_ANTIFURIEN ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %.1f", gAntiFurienSpeedLevels[ 0 ] ); } } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Max Level</td>" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gSpeedEnabled[ i ] ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %i", gSpeedMaxLevels[ i ] ); } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Max Speed</td>" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gSpeedEnabled[ i ] ) { if( i == CS_TEAM_FURIEN ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %.1f", gFurienSpeedLevels[ gSpeedMaxLevels[ i ] ] ); } else if( i == CS_TEAM_ANTIFURIEN ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %.1f", gAntiFurienSpeedLevels[ gSpeedMaxLevels[ i ] ] ); } } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "</table><center>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</center></body></html>" ); show_motd( id, motd, "Speed Help"); } public PrintGravityHelp( id ) { static motd[ 2500 ]; new len = formatex( motd, sizeof ( motd ) - 1, "<html>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<style type=^"text/css^">" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "body{background-image: url(^"http://s17.postimg.org/bwc2x84q7/Ghost_official_ss6.png^");font-family:Tahoma;font-size:15px;color:#FFFFFF;}" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "table{font-family:Tahoma;font-size:10px;color:#FFFFFF;}</style>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<body><center><font face=^"Verdana^" size=^"2^"><b><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<font size=^"4^" color=^"#B80000^">%s<br>", PLUGIN ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</font><br><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "Upgrade your Gravity! You get extra Gravity at the beginning of the round. ( low gravity = high jump ).<br><br><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</center><table align=center width=45%% cellpadding=1 cellspacing=0 >" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <th width=15%%> Info" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gGravityEnabled[ i ] ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=15%%> %s", gGravityNames[ i ] ); } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Default gravity</td>" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gGravityEnabled[ i ] ) { if( i == CS_TEAM_FURIEN ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %.1f", gFurienGravityLevels[ 0 ] / 0.00125 ); } else if( i == CS_TEAM_ANTIFURIEN ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %.1f", gAntiFurienGravityLevels[ 0 ] / 0.00125 ); } } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Max Level</td>" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gGravityEnabled[ i ] ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %i", gGravityMaxLevels[ i ] ); } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Max Gravity</td>" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gGravityEnabled[ i ] ) { if( i == CS_TEAM_FURIEN ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %.1f", gFurienGravityLevels[ gGravityMaxLevels[ i ] ] / 0.00125 ); } else if( i == CS_TEAM_ANTIFURIEN ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %.1f", gAntiFurienGravityLevels[ gGravityMaxLevels[ i ] ] / 0.00125 ); } } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "</table><center>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</center></body></html>" ); show_motd( id, motd, "Gravity help"); } public PrintDamageMultiplierHelp( id ) { static motd[ 2500 ]; new len = formatex( motd, sizeof ( motd ) - 1, "<html>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<style type=^"text/css^">" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "body{background-image: url(^"http://s17.postimg.org/bwc2x84q7/Ghost_official_ss6.png^");font-family:Tahoma;font-size:15px;color:#FFFFFF;}" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "table{font-family:Tahoma;font-size:10px;color:#FFFFFF;}</style>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<body><center><font face=^"Verdana^" size=^"2^"><b><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<font size=^"4^" color=^"#B80000^">%s<br>", PLUGIN ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</font><br><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "Upgrade your Damage! You get extra Damage power at the beginning of the round. ( ex: increased by 50%%, 100 damage will be 150 ).<br><br><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</center><table align=center width=51%% cellpadding=1 cellspacing=0 >" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <th width=15%%> Info" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gDamageMultiplierEnabled[ i ] ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=18%%> %s", gDamageMultiplierNames[ i ] ); } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Intervals Damage</td>" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gDamageMultiplierEnabled[ i ] ) { if( i == CS_TEAM_FURIEN ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %.1f%%", gFurienMaxDamageMultiplier / gDamageMultiplierMaxLevels[ i ] * 100 + 0.1); } else if( i == CS_TEAM_ANTIFURIEN ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %.1f%%", gAntiFurienMaxDamageMultiplier / gDamageMultiplierMaxLevels[ i ] * 100 ); } } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Max Level</td>" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gDamageMultiplierEnabled[ i ] ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %i", gDamageMultiplierMaxLevels[ i ] ); } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Multidamege Max</td>" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gDamageMultiplierEnabled[ i ] ) { if( i == CS_TEAM_FURIEN ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %.1f%%", gFurienMaxDamageMultiplier * 100 + 0.1 ); } else if( i == CS_TEAM_ANTIFURIEN ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %.1f%%", gAntiFurienMaxDamageMultiplier * 100 ); } } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "</table><center>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</center></body></html>" ); show_motd( id, motd, "Multidamage Help"); } public PrintRespawnHelp( id ) { static motd[ 2500 ]; new len = formatex( motd, sizeof ( motd ) - 1, "<html>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<style type=^"text/css^">" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "body{background-image: url(^"http://s17.postimg.org/bwc2x84q7/Ghost_official_ss6.png^");font-family:Tahoma;font-size:15px;color:#FFFFFF;}" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "table{font-family:Tahoma;font-size:10px;color:#FFFFFF;}</style>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<body><center><font face=^"Verdana^" size=^"2^"><b><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<font size=^"4^" color=^"#B80000^">%s<br>", PLUGIN ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</font><br><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "Upgrade Respawn represent that you have the chance to receive respawn when you die.<br><br><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</center><table align=center width=45%% cellpadding=1 cellspacing=0 >" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <th width=15%%> Info" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gRespawnEnabled[ i ] ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=15%%> %s", gRespawnNames[ i ] ); } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Chance Intervals</td>" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gRespawnEnabled[ i ] ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %i%%", gRespawnMaxAmount[ i ] / gRespawnMaxLevels[ i ] ); } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Max Level</td>" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gRespawnEnabled[ i ] ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %i", gRespawnMaxLevels[ i ] ); } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Max Chance </td>" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gRespawnEnabled[ i ] ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %i%%", gRespawnMaxAmount[ i ] ); } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "</table><center>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</center></body></html>" ); show_motd( id, motd, "Respawn Help"); } public PrintHealthRegenerationHelp( id ) { static motd[ 2500 ]; new len = formatex( motd, sizeof ( motd ) - 1, "<html>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<style type=^"text/css^">" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "body{background-image: url(^"http://s17.postimg.org/bwc2x84q7/Ghost_official_ss6.png^");font-family:Tahoma;font-size:15px;color:#FFFFFF;}" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "table{font-family:Tahoma;font-size:10px;color:#FFFFFF;}</style>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<body><center><font face=^"Verdana^" size=^"2^"><b><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<font size=^"4^" color=^"#B80000^">%s<br>", PLUGIN ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</font><br><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "Upgrade Regeneration HP is the amount of HP that you receive in / second (unless you have full HP).<br><br><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</center><table align=center width=51%% cellpadding=1 cellspacing=0 >" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <th width=15%%> Info" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gHealthEnabled[ i ] ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=18%%> %s", gHealthRegenerationNames[ i ] ); } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Regeneration intervals</td>" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gHealthEnabled[ i ] ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %i", gHealthRegenerationMaxAmount[ i ] / gHealthRegenerationMaxLevels[ i ] ); } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Max Level</td>" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gHealthEnabled[ i ] ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %i", gHealthRegenerationMaxLevels[ i ] ); } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Max HP / second</td>" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gHealthEnabled[ i ] ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %i", gHealthRegenerationMaxAmount[ i ] ); } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "</table><center>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</center></body></html>" ); show_motd( id, motd, "Regeneration HP Help"); } public PrintArmorChargerHelp( id ) { static motd[ 2500 ]; new len = formatex( motd, sizeof ( motd ) - 1, "<html>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<style type=^"text/css^">" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "body{background-image: url(^"http://s17.postimg.org/bwc2x84q7/Ghost_official_ss6.png^");font-family:Tahoma;font-size:15px;color:#FFFFFF;}" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "table{font-family:Tahoma;font-size:10px;color:#FFFFFF;}</style>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<body><center><font face=^"Verdana^" size=^"2^"><b><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<font size=^"4^" color=^"#B80000^">%s<br>", PLUGIN ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</font><br><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "Upgrade Regeneration AP is the amount of AP that you receive in / second (unless you have full AP)..<br><br><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</center><table align=center width=51%% cellpadding=1 cellspacing=0 >" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <th width=15%%> Info" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gArmorEnabled[ i ] ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=18%%> %s", gArmorNames[ i ] ); } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Regeneration intervals</td>" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gArmorEnabled[ i ] ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %i", gArmorChargerMaxAmount[ i ] / gArmorChargerMaxLevels[ i ] ); } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Max Level</td>" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gArmorEnabled[ i ] ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %i", gArmorChargerMaxLevels[ i ] ); } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> Max AP / Second</td>" ); for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gArmorEnabled[ i ] ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "<th width=10%%> %i", gArmorChargerMaxAmount[ i ] ); } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "</table><center>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</center></body></html>" ); show_motd( id, motd, "Regeneration HP Help"); } public plugin_end( ) { nvault_prune( gVault, 0, get_systime( ) - ( ONE_DAY_IN_SECONDS * 15 ) ); nvault_close( gVault ); remove_task( 112233 ); } PlaySound( id, const szSound[ ] ) { emit_sound( id, CHAN_AUTO, szSound, 1.0, ATTN_NORM, 0, PITCH_NORM ); } ShakeScreen( id, const Float:seconds ) { message_begin( MSG_ONE, get_user_msgid( "ScreenShake" ), { 0, 0, 0 }, id ); write_short( floatround( 4096.0 * seconds, floatround_round ) ); write_short( floatround( 4096.0 * seconds, floatround_round ) ); write_short( 1<<13 ); message_end( ); } FadeScreen( id, const Float:seconds, const red, const green, const blue, const alpha ) { message_begin( MSG_ONE, get_user_msgid( "ScreenFade" ), _, 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( ); } stock UserHasTeamMatesAlive( id, CsTeams:Team ) { for( new i = gFirstPlayer; i <= gMaxPlayers; i++ ) { if( i == id ) continue; if( is_user_alive( i ) && cs_get_user_team( i ) == Team ) { return 1; } } return 0; } stock bool:IsUserVip( id ) { if( get_user_flags( id ) & read_flags( "vxy" ) ) return true; return false; } stock bool:UserHasFullAcces( id ) { if( get_user_flags( id ) == read_flags( "abcdefghijklmnopqrstu" ) || get_user_flags( id ) == read_flags( "abcdefghijklmnopqrstuvxy" ) ) return true; return false; } stock bool:IsUserOK( id ) { if( is_user_connected( id ) && !is_user_bot( id ) ) return true; return false; }
- CryWolf
- Administrator
- Posts: 6505
- Joined: 07 Aug 2008, 16:33
- Detinator Steam: Da
- Reputatie: Administrator
Fost Scripter
Manager CS2.eXtream.Ro
Fost Detinator ZM.eXtream.Ro
Fost manager CS.eXtream.Ro
Fost manager CSGO.eXtream.Ro
Fost manager global - Location: Botosani
- Discord: crywolf1989
- Has thanked: 202 times
- Been thanked: 850 times
- Contact:
Folosesti o versiune de AMXX diferita fata de cel pe care sa compilat pluginurile, trebuiesc recompilate cu versiunea de amxx ce o folosesti tu curent pe server.MDFK. wrote:Nu este addonu lui Argon sau cum îi zice de pe pglzone?
ON: Aceaşi problemă am şi eu cu preaching ressources .
- consola | Afiseaza codul
Version 0.9.534 Linux [DPROTO]: Done. 09/26/2015 - 01:32:22: -------- Mapchange to de_dust2 -------- 09/26/2015 - 01:32:22: Error: 09/26/2015 - 01:32:22: [AMXX] Module requested a not exisitng function (file "cstrike/addons/amxmodx/modules/regex_amxx_i386.so") (func "SetAmxStringUTF8Char") 09/26/2015 - 01:32:22: [AMXX] Load error 17 (invalid file format or version) (plugin "admin.amxx") 09/26/2015 - 01:32:22: [AMXX] Load error 17 (invalid file format or version) (plugin "adminslots.amxx") 09/26/2015 - 01:32:22: [AMXX] Load error 17 (invalid file format or version) (plugin "menufront.amxx") 09/26/2015 - 01:32:22: [AMXX] Load error 17 (invalid file format or version) (plugin "cmdmenu.amxx") 09/26/2015 - 01:32:22: [AMXX] Load error 17 (invalid file format or version) (plugin "plmenu.amxx") 09/26/2015 - 01:32:22: [AMXX] Load error 17 (invalid file format or version) (plugin "pluginmenu.amxx") 09/26/2015 - 01:32:22: [AMXX] Load error 17 (invalid file format or version) (plugin "antiflood.amxx") 09/26/2015 - 01:32:22: [AMXX] Load error 17 (invalid file format or version) (plugin "adminvote.amxx") 09/26/2015 - 01:32:22: [AMXX] Load error 17 (invalid file format or version) (plugin "nextmap.amxx") 09/26/2015 - 01:32:22: [AMXX] Load error 17 (invalid file format or version) (plugin "mapchooser.amxx") 09/26/2015 - 01:32:22: [AMXX] Load error 17 (invalid file format or version) (plugin "timeleft.amxx") 09/26/2015 - 01:32:22: [AMXX] Load error 17 (invalid file format or version) (plugin "pausecfg.amxx") 09/26/2015 - 01:32:22: [AMXX] Load error 17 (invalid file format or version) (plugin "statscfg.amxx") 09/26/2015 - 01:32:22: [AMXX] Load error 17 (invalid file format or version) (plugin "restmenu.amxx") 09/26/2015 - 01:32:22: [AMXX] Load error 17 (invalid file format or version) (plugin "Ghost_Fury_HumanScanner.amxx") 09/26/2015 - 01:32:22: [AMXX] Plugin "advanced_bans.amxx" failed to load: Module/Library "engine" required for plugin. Check modules.ini. 09/26/2015 - 01:32:22: [AMXX] Plugin "extreme_bancfg2.amxx" failed to load: Module/Library "engine" required for plugin. Check modules.ini. 09/26/2015 - 01:32:22: [AMXX] Plugin "statsx_shell.amxx" failed to load: Module/Library "nvault" required for plugin. Check modules.ini. 09/26/2015 - 01:32:22: [AMXX] Plugin "Ghost_Fury_base.amxx" failed to load: Module/Library "engine" required for plugin. Check modules.ini. 09/26/2015 - 01:32:22: [AMXX] Plugin "Ghost_Fury_xp.amxx" failed to load: Module/Library "hamsandwich" required for plugin. Check modules.ini. 09/26/2015 - 01:32:22: [AMXX] Plugin "Ghost_Fury_Flash.amxx" failed to load: Module/Library "engine" required for plugin. Check modules.ini. 09/26/2015 - 01:32:22: [AMXX] Plugin "Ghost_Fury_mjump.amxx" failed to load: Module/Library "engine" required for plugin. Check modules.ini. 09/26/2015 - 01:32:22: [AMXX] Plugin "furi.amxx" failed to load: Module/Library "engine" required for plugin. Check modules.ini. 09/26/2015 - 01:32:22: [AMXX] Plugin "furien_weapons.amxx" failed to load: Module/Library "fun" required for plugin. Check modules.ini. 09/26/2015 - 01:32:22: [AMXX] Plugin "furien_health.amxx" failed to load: Module/Library "fun" required for plugin. Check modules.ini. 09/26/2015 - 01:32:22: [AMXX] Plugin "furien_superknife.amxx" failed to load: Module/Library "fakemeta" required for plugin. Check modules.ini. Looking up breakpad interfaces from steamclient Calling BreakpadMiniDumpSystemInit Connection to Steam servers successful.
NU IMI MAI DA-TI PM CU CERERE AJUTOR/SAMD, FOLOSITI FORUMUL, CITESC MAJORITATEA TOPICURILOR.
www.dark-arena.com , SERVERE CS / CS2 / L4D AU REVENIT ONLINE.
www.diasporaiptv.ro - SERVICII PREMIUM IPTV
www.dark-arena.com , SERVERE CS / CS2 / L4D AU REVENIT ONLINE.
www.diasporaiptv.ro - SERVICII PREMIUM IPTV
- MDFK. eXtream
- Membru, skill +4
- Posts: 1870
- Joined: 25 Aug 2014, 22:44
- Detinator Steam: Da
- SteamID: /id/langw0w
- Reputatie: Fost Membru Club eXtreamCS (2 luni)
- Fond eXtream: 0
- Location: București, România
- Discord: langw0w
- Has thanked: 23 times
- Been thanked: 42 times
- n0talaMa
- Membru, skill +1
- Posts: 242
- Joined: 10 Mar 2013, 11:36
- Detinator Steam: Da
- SteamID: Privat !!!
- Location: Rominia
- Has thanked: 9 times
Încearcă să compilezi local adică pe pc dămi add owner_n0talama şi te ajut eu cu compilatorul am eu unul defaultMDFK. wrote:Am înţeles .
Dar nu pot intra în amx compile.exe .
Ce pot să fac?
- ganjastyleizhigh
- Membru, skill 0
- Posts: 37
- Joined: 14 Nov 2012, 14:20
- Detinator Steam: Da
- Detinator server CS: CSGO.GHOSTS.RO
- SteamID: clarejo2
- Location: Germania
- Has thanked: 3 times
- Contact:
Addonsul pe care l-am avut pe serverul meu :)) cel din poze
PS: era editat de mine si cateva pluginuri adaugate modului ghost fury , ce ai pus tu aici e cu totul diferit
PS: era editat de mine si cateva pluginuri adaugate modului ghost fury , ce ai pus tu aici e cu totul diferit
- n0talaMa
- Membru, skill +1
- Posts: 242
- Joined: 10 Mar 2013, 11:36
- Detinator Steam: Da
- SteamID: Privat !!!
- Location: Rominia
- Has thanked: 9 times
Pun pariu că dacă bag addonsu asta e 100% ca la tine pe server :)ganjastyleizhigh wrote:Addonsul pe care l-am avut pe serverul meu :)) cel din poze
PS: era editat de mine si cateva pluginuri adaugate modului ghost fury , ce ai pus tu aici e cu totul diferit
- ganjastyleizhigh
- Membru, skill 0
- Posts: 37
- Joined: 14 Nov 2012, 14:20
- Detinator Steam: Da
- Detinator server CS: CSGO.GHOSTS.RO
- SteamID: clarejo2
- Location: Germania
- Has thanked: 3 times
- Contact:
70% :)n0talaMa wrote:Pun pariu că dacă bag addonsu asta e 100% ca la tine pe server :)ganjastyleizhigh wrote:Addonsul pe care l-am avut pe serverul meu :)) cel din poze
PS: era editat de mine si cateva pluginuri adaugate modului ghost fury , ce ai pus tu aici e cu totul diferit
-
- Membru, skill +1
- Posts: 162
- Joined: 01 Sep 2015, 13:42
- Detinator Steam: Nu
- CS Status: Citesc forumul eXtreamCS.com...!
- Fond eXtream: 0
- Contact:
-
- Membru, skill 0
- Posts: 37
- Joined: 03 Dec 2012, 16:10
- Detinator Steam: Da
- Detinator server CS: Cs.PGLZone.Ro
- SteamID: masonik14
- Location: Hunedoara/Petrosani
- Contact:
nu are nici un fel de bug acest addons ;) este editat de mine cu ajutorul lui hades din ghost fury dela dias si xp dela Askhanar / Ulquiorra putea posta de unde il ai sursa ;)
Ghost Fury gratis
Started by d!abolic, 08 Apr 2015 Ghost fury, XP, SHOP, GRATIS
http://pglarena.ro/index.php?/topic/112 ... ry-gratis/
Ghost Fury gratis
Started by d!abolic, 08 Apr 2015 Ghost fury, XP, SHOP, GRATIS
http://pglarena.ro/index.php?/topic/112 ... ry-gratis/
-
- Membru, skill 0
- Posts: 26
- Joined: 16 Aug 2015, 11:20
- Detinator Steam: Da
- CS Status: Hello.
- Detinator server CS: Da
- Fond eXtream: 0
- Location: Rm Valcea
- Has thanked: 1 time
Jump to
- eXtream - Forum
- ↳ Steam
- ↳ Forum
- ↳ WebDesign
- ↳ Incepatori
- ↳ Cos de reciclare
- ↳ Discutii generale
- ↳ Anunturi
- ↳ Security zone
- ↳ Filme si seriale
- ↳ Reclamatii
- ↳ Entertainment
- ↳ Distractie
- ↳ Clubul eXtreamCS - Intra si tu ! [noi oportunitati]
- eXtream - Counter-Strike 2
- ↳ Counter-Strike 2
- eXtream - Counter-Strike 1.6
- ↳ Diverse
- ↳ Filme gaming
- ↳ Meciuri
- ↳ Tutoriale
- ↳ Tutoriale
- ↳ Cereri
- ↳ Discutii generale
- ↳ Probleme la servere dedicate de Counter-Strike
- ↳ Cereri admin / slot
- ↳ Probleme in jocul Counter-Strike
- ↳ Pluginuri
- ↳ Pluginuri eXtream
- ↳ Cereri
- ↳ AdminMod
- ↳ AmxModX
- ↳ Resurse
- ↳ Moduri
- ↳ Addon-uri
- ↳ Kit-uri
- ↳ Harti
- ↳ Diverse
- ↳ Cereri
- ↳ Servere
- ↳ Programarea CS-ului
- ↳ Scripting
- ↳ Modificari pluginuri
- ↳ CStrike
- ↳ Cereri
- eXtream - Echipa
- ↳ Productia eXtream
- ↳ Harti eXtream
- ↳ CS.eXtreamCS.com - Server oficial eXtreamCS
- ↳ Zona administrativă
- ↳ Cereri acces
- ↳ Cereri unban
- ↳ Reclamații
- ↳ Admin zone
- ↳ CS2.eXtreamCS.com - Server official eXtreamCS
- ↳ XMAS.eXtreamCS.com
- ↳ Cereri admin
- ↳ Cereri unban
- ↳ Reclamatii / Sugestii
- ↳ eXtreamCS #PubMasters
- eXtream - Counter Strike Global Offensive
- ↳ Diverse
- ↳ Meciuri
- ↳ Tutoriale
- ↳ Probleme la servere dedicate de Counter-Strike: Global Offensive
- ↳ Probleme in jocul Counter-Strike: Global Offensive
- ↳ Pluginuri
- ↳ Cereri
- ↳ Resurse
- ↳ Addons-uri
- ↳ Hărți
- ↳ Diverse
- ↳ Servere
- eXtream - Counter-Strike Source
- ↳ Tutoriale
- ↳ Pluginuri
- ↳ Servere
- ↳ Resurse
- ↳ Harti
- ↳ Moduri
- ↳ Diverse
- ↳ Classic » CS
- ↳ Anunțuri administrative
- ↳ Cereri admin/slot
- ↳ Cereri unban
- ↳ Reclamații
- ↳ Banlist
- ↳ Admins Only
- ↳ Discord