// Main data array. [0] is weapon CSW_ index. [1] is kills required to level-up. [2] is damage multiplier (30 = 30%, 110 = 110%).
new const weaponsData[][] =
{
{ CSW_GLOCK18, 2, 100 },
{ CSW_USP, 2, 100 },
{ CSW_P228, 2, 100 },
{ CSW_FIVESEVEN, 2, 100 },
{ CSW_DEAGLE, 2, 100 },
{ CSW_ELITE, 2, 100 },
{ CSW_M3, 3, 100 },
{ CSW_XM1014, 3, 100 },
{ CSW_TMP, 3, 100 },
{ CSW_MAC10, 3, 100 },
{ CSW_UMP45, 3, 100 },
{ CSW_MP5NAVY, 3, 100 },
{ CSW_P90, 4, 100 },
{ CSW_GALIL, 4, 100 },
{ CSW_FAMAS, 3, 100 },
{ CSW_AK47, 4, 100 },
{ CSW_SCOUT, 2, 100 },
{ CSW_M4A1, 4, 100 },
{ CSW_SG552, 4, 100 },
{ CSW_AUG, 4, 100 },
{ CSW_AWP, 4, 100 },
{ CSW_G3SG1, 2, 100 },
{ CSW_SG550, 2, 100 },
{ CSW_M249, 2, 100 },
{ CSW_HEGRENADE, 3, 100 },
{ CSW_KNIFE, 1, 100 }
};
// Custom weapon names (used in HUD, ending-message etc).
new const customWeaponNames[][] =
{
"Glock",
"USP",
"P228",
"Five-seven",
"Deagle",
"Duals",
"M3",
"XM1014",
"TMP",
"Mac-10",
"UMP",
"MP5",
"P90",
"Galil",
"Famas",
"AK-47",
"Scout",
"M4A1",
"SG-552",
"AUG",
"AWP",
"Autokampa (TT)",
"Autokampa (CT)",
"M249",
"Granat HE",
"Noz"
};
// Commands to be blocked (using PLUGIN_HANDLED_MAIN).
new const blockedCommands[][] =
{
"drop",
"fullupdate",
"radio1",
"radio2",
"radio3",
"kill"
};
// Time in which player CAN get killed, but the killer will not be granted any weapon kills if victim is in spawn protection.
const Float:spawnProtectionTime = 1.5;
// RGB of colored shell (set_user_rendering) when in spawn protection.
new const spawnProtectionColors[] = { 80, 0, 0 };
// Shell thickness.
new const spawnProtectionShell = 100;
// Respawn time during GunGame.
const Float:respawnInterval = 3.0;
// Default HE explode time.
const Float:defaultExplodeTime = 3.0;
// Modified HE explode time (set to defaultExplodeTime to disable).
new const Float:heGrenadeExplodeTime = 1.1;
// Hud objects enum.
enum (+= 1)
{
hudObjectDefault = 0,
hudObjectDamage,
hudObjectWarmup
};
// HUD refresh time.
const Float:hudDisplayInterval = 1.0;
// HUD RGB colors.
new const hudColors[] = { 200, 130, 0 };
// Time between giving a player next HE grenade (during warmup & on HE weapon level).
new const Float:giveBackHeInterval = 1.8;
// Time between giving a player next Flash grenade.
new const Float:giveBackFlashInterval = 4.5;
// Time of warmup in seconds.
new const warmupDuration = 120;
// Level that will be set to warmup winner. Value < 1 will disable notifications and picking warmup winner.
new const warmupLevelReward = 3;
// Health that players will be set to during warmup.
new const warmupHealth = 50;
// Set that to CSW_ index, -1 to get random weapon, -2 to get wands (ignoring wandEnabled value) or -3 to get random weapon for every player.
new const warmupWeapon = -3;
// Time to respawn player during warmup.
const Float:warumpRespawnInterval = 2.0;
// RGB colors of warmup HUD.
new const warmupHudColors[] = { 255, 255, 255 };
// Enable falldamage?
const bool:fallDamageEnabled = false;
// Refill weapon clip on kill?
new const bool:refillWeaponAmmo = true;
// Ammo indexes;
new const ammoAmounts[] =
{
0, 13, -0,
10, 1, 7,
0, 30, 30,
1, 30, 20,
25, 30, 35,
25, 12, 20,
10, 30, 100,
8, 30, 30,
20, 2, 7,
30, 30, 0,
50
};
// Determines interval between AFK checks.
const Float:idleCheckInterval = 3.0;
// Hit power of a slap when player is 'AFK'.
new const idleSlapPower = 5;
// Determines max strikes that player can have before slaps start occuring.
new const idleMaxStrikes = 2;
// Distance that resets camping-player idle strikes.
new const idleMaxDistance = 80;
// Armor level for every player.
new const defaultArmorLevel = 0;
// Set that really high, so we dont have to worry about screen getting back to non-colored.
const Float:blackScreenTimer = 50.0;
// If that's set to true, knife will instantly give you knifeKillReward levels. Otherwise knifeKillReward means weapon kills.
new const knifeKillInstantLevelup = false;
// Knife kill reward value based on knifeKillInstantLevelup var.
new const knifeKillReward = 2;
// Determines whether you want last level weapon to be knife (false) or wand (true).
new const wandEnabled = false;
// Wand primary attack sprite brightness.
new const wandAttackSpriteBrightness = 255;
// Wand primary attack sprite life.
new const wandAttackSpriteLife = 4;
// Wand primary attack max distance.
new const wandAttackMaxDistance = 550;
// Wand primary attack interval.
new const Float:wandAttackInterval = 2.2;
// Wand models [0] - V_ || [1] - P_.
new const wandModels[][] =
{
"models/gungame/v_wand.mdl",
"models/gungame/p_wand.mdl"
};
// Wand sounds enum.
enum (+= 1)
{
wandSoundShoot
};
// Wand sounds.
new const wandSounds[][] =
{
"testSounds/wandShoot.wav"
};
// Wand primary attack sprite RGB.
new const wandAttackSpriteColor[] =
{
20,
20,
200
};
// Wand sprites enum.
enum (+= 1)
{
wandSpriteAttack,
wandSpriteExplodeOnHit,
wandSpritePostHit,
wandSpriteBlood
};
new const wandSprites[][] =
{
"sprites/gungame/wandAttack.spr",
"sprites/gungame/wandExplodeOnHit.spr",
"sprites/gungame/wandPostHit.spr",
"sprites/blood.spr"
};
// [0] - Damage || [1] - blood scale.
new const wandDamageEffects[][] =
{
{ 0, 0 }, // None
{ 90, 25 }, // Head
{ 65, 15 }, // Chest
{ 65, 15 }, // Chest
{ 30, 10 }, // Hands
{ 30, 10 }, // Hands
{ 30, 10 }, // Legs
{ 30, 10 } // Legs
};
// Prefix shown in game-ending message and chat when leveling-up.
new const chatPrefix[] = "[GUN GAME]";
// String that will replace rest of the nickname when clumping it to the short one.
new const nicknameReplaceToken[] = "...";
// Max. name length in short-name variable (to prevent char-overflow in ending message). Ex: "pretty long nickname" -> "pretty lon".
const maxNicknameLength = 10 + charsmax(nicknameReplaceToken);
// Take damage hud hold-time.
const Float:takeDamageHudTime = 1.3;
// Take damage hud colors.
new const takeDamageHudColor[] = { 0, 200, 200 };
// Classnames of weapons on the ground (to prevent picking them up).
new const droppedWeaponsClassnames[][] =
{
"weaponbox",
"armoury_entity",
"weapon_shield"
};
// Sound types.
enum (+= 1)
{
soundLevelUp = 0,
soundLevelDown,
soundTimerTick,
soundWarmup,
soundAnnounceWinner,
soundGameStart
};
// Command executed when playing sound on client. (mp3 play / spk)
new const defaultSoundCommand[] = "mp3 play";
// Number of maximum sounds in soundsData array.
new const maxSounds = 2;
// Main sound-data array. Every index is a different sound. Indexes with strlen == 0 will be continued, instead plugin will use first available index.
new const soundsData[][][] =
{
{ "testSounds/levelup.wav", "" },
{ "testSounds/leveldown.wav", "" },
{ "testSounds/timertick4.wav", "" },
{ "testSounds/warmup.wav", "" },
{ "testSounds/announcewinner.wav", "" },
{ "testSounds/gungamestart.wav", "testSounds/gungamestart2.wav" }
};
// Custom volumes of each sound.
new const Float:soundsVolumeData[][] =
{
{ 1.0, 1.0 }, // Levelup
{ 1.0, 1.0 }, // Leveldown
{ 1.0, 1.0 }, // Timer tick
{ 0.8, 1.0 }, // Warmup
{ 1.0, 1.0 }, // Announce winner
{ 1.0, 1.0 } // Gungame start
};
// Sprites enum.
enum (+= 1)
{
spriteLevelup = 0
};
// Sprite paths.
new const spritesData[][] =
{
"sprites/levelupBeam.spr"
};
// Z axis.
new const Float:spriteLevelupZaxis = 200.0;
// Life.
new const spriteLevelupLife = 2;
// Width.
new const spriteLevelupWidth = 15;
// RGB.
new const spriteLevelupRGB[] = { 0, 255, 0 };
// Brightness.
new const spriteLevelupBrightness = 80;
// Remove weapons off the ground when loading map?
new const removeWeaponsOffTheGround = true;
// Player-info command (checked in sayHandle instead of register_clcmd to extract nickname from message).
new const lookupCommand[] = "/info";
// Commands to menu which lists weapons & their data.
new const listWeaponsCommands[][] =
{
"/lista",
"/listabroni",
"/bronie",
"/bron",
"/guns"
};
// Mysql database enum.
enum databaseEnum (+= 1)
{
databaseHost,
databaseUser,
databasePass,
databaseDB,
databaseTableName
};
// Mysql database.
new const mysqlData[][] =
{
"",
"",
"",
"",
""
};
// Determines number of top-players that will be shown in game-ending message.
const topPlayersDisplayed = 10;
// Top players motd HTML code.
new const topPlayersMotdHTML[][] =
{
"<style> body{ background: #202020 } tr{ text-align: left } table{ font-size: 12px; color: #ffffff; padding: 0px } h1{ color: #FFF; font-family: Verdana }</style><body>",
"<table width = 100%% border = 0 align = center cellpadding = 0 cellspacing = 2>",
"<tr><th><h3>Pozycja</h3><th><b><h3>Nazwa gracza</h3></b><th><h3>Wygrane gry</h3></th></tr>"
};
// Top players motd commands.
new const topPlayersMotdCommands[][] =
{
"/top",
"/topka",
"/topgg"
};
#if defined DEBUG_MODE
// Prefix used in log_amx to log custom error messages.
new const nativesLogPrefix[] = "[GUNGAME ERROR]";
#endif
// Value which will be returned if an error occured in any of natives.
new const nativesErrorValue = -1;
// Natives: [][0] is native name, [][1] is native function.
new const nativesData[][][] =
{
{ "SetUserLevel", "native_SetUserLevel" },
{ "GetUserLevel", "native_GetUserLevel" },
{ "GetMaxLevel", "native_GetMaxLevel" },
{ "RespawnPlayer", "native_RespawnPlayer" },
{ "GetUserWeapon", "native_GetUserWeapon" },
{ "GetWeaponsData", "native_GetWeaponsData" },
{ "GetUserWins", "naitve_GetUserWins" },
{ "GetUserCombo", "native_GetUserCombo" }
};