No więc chciałem dodać do silnika nowy hud stworzony przez MisieQ no i wyskoczył mi problemy przy kompilacji.
Welcome to the AMX Mod X 1.8.1-300 Compiler. Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team Warning: Symbol is assigned a value that is never used: "gPcvarGameShadows" on line 332 Warning: Symbol is assigned a value that is never used: "gPcvarHudCenter" on line 332 Header size: 4644 bytes Code size: 96936 bytes Data size: 65580 bytes Stack/heap size: 16384 bytes; max. usage is unknown, due to recursion Total requirements: 183544 bytes 2 Warnings. Done.
Sma bf2rank:
Spoiler
#>#>#>
//************************************ Compile Settings ************************************//
// Uncomment to use MySQL instead of the default nVault saving
//#define SQL
// Admin flag settings for giving points/badges and server saved data reset
// These can also be set in cmdaccess.ini without need to change here
// (See amxconst.inc for more admin level constants)
#define ADMIN_LEVEL ADMIN_IMMUNITY
#define ADMIN_RESET ADMIN_IMMUNITY
// Aby wlaczyc kolorowy say(colorchat) w grze odkomentuj
//#define KOLOROWY_SAY
// Note: Changing any of the above the above requires plugin to be recompiled
//******************************************************************************************//
#include
#include
#include
#include
#include
#include
#include
#include
new const gPluginName[] = "Battlefield 2: Rank Mod";
new const gPluginVersion[] = "1.0.4";
//Message sending variables
#if defined KOLOROWY_SAY
new gmsgStatusText;
new gmsgScreenFade;
new gmsgScreenShake;
#else
new gmsgStatusText;
new gmsgScreenFade;
new gmsgScreenShake;
new gmsgSayText;
#endif
new gHUD;
//Task
#define TASK_HUD 9897
new gHudSyncAimInfo;
new gMaxPlayers;
new bool:gCZBotRegisterHam;
#define MAX_RANKS 17
#define MAX_BADGES 8
//Motd variables
new configsdir[200];
new configfile[200];
//Cvar vars
new gPcvarBF2Active;
new gPcvarBadgesActive;
new gPcvarFreeAwp;
new gPcvarXpMultiplier;
new gPcvarIconTime;
new gPcvarFlagKills;
new gPcvarHelpUrl;
new gPcvarBadgePowers;
new gPcvarFlagRoundPoints;
new gPcvarFlagMatchPoints;
new gPcvarXpMinPlayers;
new gPcvarHudOptions;
new gPcvarStatusText;
new gPcvarFFA;
new gPcvarSaveType;
new gPcvarRankBots;
new gPcvarBotQuota;
new gPcvarSVLan;
new gPcvarWymus;
//Cvar vars new
new gPcvarHudCenter;
new gPcvarGameShadows;
//Current players info
new g_PlayerRank[33];
new g_PlayerBadges[33][MAX_BADGES];
new knifekills[33];
new pistolkills[33];
new sniperkills[33];
new parakills[33];
new defuses[33];
new plants[33];
new explosions[33];
new accuracy[33];
new totalkills[33];
new gSaveKey[33][32];
new smgkills[33];
new shotgunkills[33];
new riflekills[33];
new grenadekills[33];
new bronze[33];
new silver[33];
new gold[33];
//Temp storage variables
new numofbadges[33];
new bool:newplayer[33];
new g_lastwpn[33];
new bool:g_imobile[33];
new bool:freezetime;
new highestrank;
new highestrankid;
new gStatsLoaded[33];
new gCurrentFOV[33];
new g_friend[33];
new bool:g_invis[33];
new menuselection[33];
//Server stats
new highestrankserver, highestrankservername[32], mostkills, mostkillsid, mostkillsname[32], mostwins, mostwinsname[32];
new menuselected[33][3];
//0 - Badge/Kills selected 0/1
//1 - Badgenum/Kills
//2 - Badgelevel
//Sound Vars
new gSoundRank[] = "bf2rank/bf2rank_promotion.wav"; //Rank gained sound
new gSoundBadge[] = "bf2rank/bf2rank_award.wav"; //Badges earned sound
//Sprite vars
new gSprite[22];
#if defined SQL
//SQl vars
#include
new Handle:g_SqlTuple;
new g_Cache[512];
new bool:SQLenabled;
new bool:gIntermission;
#else
//nVault
#include
new g_Vault;
new gPcvarPruneDays;
#endif
new gPlayerName;
//Bf2 includes
#if defined KOLOROWY_SAY
#include
#endif
#include "bf2/const.inl"
#include "bf2/effect.inl"
#include "bf2/cmds.inl"
#include "bf2/events.inl"
#include "bf2/save.inl"
#include "bf2/forwards.inl"
#include "bf2/check.inl"
#include "bf2/badgepowers.inl"
#include "bf2/menu.inl"
#include "bf2/hud.inl"
#include "bf2/othermods.inl"
#include "bf2/csx.inl"
#include "bf2/ham.inl"
#if defined SQL
#include "bf2/sql.inl"
#endif
public plugin_init()
{
register_plugin(gPluginName, gPluginVersion, "MisieQ"); //Bazuje na Battlefield 2: Rank Mod 1.5.3 by pRED*
//Register all the say commands
//Public
register_clcmd("say /ranks","show_rankhelp",0, "Pokazuje Informacje o Ranku");
register_clcmd("say_team /ranks","show_rankhelp",0, "Pokazuje Informacje o Ranku");
register_clcmd("say /badges1","show_badgehelp",0, "Pokazuje Informacje o Odznakach");
register_clcmd("say_team /badges1","show_badgehelp",0, "Pokazuje Informacje o Odznakach");
register_clcmd("say /odznaki1","show_badgehelp",0, "Pokazuje Informacje o Odznakach");
register_clcmd("say_team /odznaki1","show_badgehelp",0, "Pokazuje Informacje o Odznakach");
register_clcmd("say /badges2","show_badgehelp2",0, "Pokazuje Informacje o Odznakach 2");
register_clcmd("say_team /badges2","show_badgehelp2",0, "Pokazuje Informacje o Odznakach 2");
register_clcmd("say /odznaki2","show_badgehelp2",0, "Pokazuje Informacje o Odznakach 2");
register_clcmd("say_team /odznaki2","show_badgehelp2",0, "Pokazuje Informacje o Odznakach 2");
register_clcmd("say /badges3","show_badgehelp3",0, "Pokazuje Informacje o Odznakach 3");
register_clcmd("say_team /badges3","show_badgehelp3",0, "Pokazuje Informacje o Odznakach 3");
register_clcmd("say /odznaki3","show_badgehelp3",0, "Pokazuje Informacje o Odznakach 3");
register_clcmd("say_team /odznaki3","show_badgehelp3",0, "Pokazuje Informacje o Odznakach 3");
register_clcmd("say", "cmd_say", 0, " ");
register_clcmd("say_team", "cmd_say", 0, " ");
register_clcmd("say /who", "cmd_who", 0, "Wyswietla liste graczy i ich pozimy");
register_clcmd("say_team /who", "cmd_who", 0, "Wyswietla liste graczy i ich pozimy");
register_clcmd("say /gracze", "cmd_who", 0, "Wyswietla liste graczy i ich pozimy");
register_clcmd("say_team /gracze", "cmd_who", 0, "Wyswietla liste graczy i ich pozimy");
register_clcmd("say /help", "cmd_help", 0, "Pokaz pomoc BF2Mod");
register_clcmd("say_team /help", "cmd_help", 0, "Pokaz pomoc BF2Mod");
register_clcmd("say /bf2menu", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say_team /bf2menu", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say bf2menu", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say_team bf2menu", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say /bf2", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say_team /bf2", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say bf2", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say_team bf2", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say /menu", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say_team /menu", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say menu", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say_team menu", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say /help", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say_team /help", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say help", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say_team help", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say /bf2helpmenu", "helpmenu", 0, "Pokazuje Menu Pomocy");
register_clcmd("say_team /bf2helpmenu", "helpmenu", 0, "Pokazuje Menu Pomocy");
register_clcmd("say /bf2statsmenu", "helpmenu", 0, "Pokazuje Menu Statystyk");
register_clcmd("say_team /bf2statsmenu", "helpmenu", 0, "Pokazuje Menu Statystyk");
register_clcmd("say /bf2adminmenu", "adminmenu", 0, "Pokazuje Menu Admina");
register_clcmd("say_team /bf2adminmenu", "adminmenu", 0, "Pokazuje Menu Admina");
register_clcmd("say /bf2stats", "show_stats", 0, "Pokazuje twoje aktualne statystyki");
register_clcmd("say_team /bf2stats", "show_stats", 0, "Pokazuje twoje aktualne statystyki");
register_clcmd("say /serverstats", "show_server_stats", 0, "Pokazuje aktualne statystyki serwera");
register_clcmd("say_team /serverstats", "show_server_stats", 0, "Pokazuje aktualne statystyki serwera");
register_clcmd("say /bf2save", "save_badges", 0, "Zapisuje Aktualne Statystyki");
register_clcmd("say_team /bf2save", "save_badges", 0, "Zapisuje Aktualne Statystyki");
//Admin
register_clcmd("bf2_addbadge", "add_badge", ADMIN_LEVEL, "");
register_clcmd("bf2_addkills", "add_kills", ADMIN_LEVEL, "");
//Cvars
//FCVAR_SERVER cvar for game monitor.
register_cvar("bf2_version", gPluginVersion, FCVAR_SERVER);
// Set cvar to update version in case new version loaded while server still running
set_cvar_string("bf2_version", gPluginVersion);
gPcvarBF2Active = register_cvar("bf2_active", "1");
gPcvarBadgesActive = register_cvar("bf2_badges", "1");
gPcvarFreeAwp = register_cvar("bf2_awp", "0");
gPcvarXpMultiplier = register_cvar("bf2_xpmultiplier", "0.1");
gPcvarXpMinPlayers = register_cvar("bf2_xpminplayers", "2");
gPcvarIconTime = register_cvar("bf2_icon_time", "1.5");
gPcvarHelpUrl = register_cvar("bf2_help_url", "http://misieq.silema...t.pl/bf2webdocs");
gPcvarBadgePowers = register_cvar("bf2_badgepowers", "0");
gPcvarHudOptions = register_cvar("bf2_hud_options", "abcde");
gPcvarStatusText = register_cvar("bf2_statustext", "1");
#if !defined SQL
gPcvarPruneDays = register_cvar("bf2_reset_days", "21");
#endif
gPcvarFFA = register_cvar("bf2_ffa", "0");
gPcvarHudCenter = register_cvar("bf2_hud", "0");
gPcvarGameShadows = register_cvar("bf2_shadows", "0");
gPcvarFlagKills = register_cvar("bf2_flag_kills", "2");
gPcvarFlagRoundPoints = register_cvar("bf2_flag_round_kills", "0");
gPcvarFlagMatchPoints = register_cvar("bf2_flag_match_kills", "0");
gPcvarSaveType = get_cvar_pointer("csstats_rank");
gPcvarRankBots = get_cvar_pointer("csstats_rankbots");
gPcvarBotQuota = get_cvar_pointer("bot_quota");
gPcvarSVLan = get_cvar_pointer("sv_lan");
//Message sending.
#if defined KOLOROWY_SAY
gmsgStatusText = get_user_msgid("StatusText");
gmsgScreenFade = get_user_msgid("ScreenFade");
gmsgScreenShake = get_user_msgid("ScreenShake");
#else
gmsgStatusText = get_user_msgid("StatusText");
gmsgScreenFade = get_user_msgid("ScreenFade");
gmsgScreenShake = get_user_msgid("ScreenShake");
gmsgSayText = get_user_msgid("SayText");
#endif
gHUD = CreateHudSyncObj();
//Register events, logs and forwards to be captured
register_event("HLTV", "Event_HLTV", "a", "1=0", "2=0"); //add freeztime start code
register_event("CurWeapon", "Event_CurWeapon", "be", "1=1");
register_event("SetFOV", "Event_SetFOV", "be");
register_event("DeathMsg", "Event_DeathMsg", "a");
register_logevent("LogEvent_Round_Start", 2, "0=World triggered", "1=Round_Start"); //freezetime end code
register_logevent("LogEvent_Round_End", 2, "1=Round_End");
register_message(SVC_INTERMISSION, "Message_Intermission");
register_message(get_user_msgid("StatusValue"), "Message_StatusValue");
register_event("StatusValue", "setTeam", "be", "1=1");
register_event("StatusValue", "on_ShowStatus", "be", "1=2", "2!0");
register_event("StatusValue", "on_HideStatus", "be", "1=1", "2=0");
// Must use post or else is_user_alive will return false when dead player respawns
RegisterHam(Ham_Spawn, "player", "Ham_Spawn_Post", 1); // cz bots won't hook here must RegisterHamFromEntity
RegisterHam(Ham_TakeDamage, "player", "Ham_TakeDamage_Pre");
RegisterHam(Ham_Killed, "player", "Ham_Death_Player", 1);
gHudSyncAimInfo = CreateHudSyncObj();
gMaxPlayers = get_maxplayers();
gPlayerName = get_xvar_id("PlayerName");
register_forward(FM_PlayerPreThink, "Forward_FM_PlayerPreThink")
}
public Forward_FM_PlayerPreThink(id)
{
if(is_user_alive(id))
{
new Float:fVector[3];
pev(id, pev_velocity, fVector)
new Float: fSpeed = floatsqroot(fVector[0]*fVector[0]+fVector[1]*fVector[1]+fVector[2]*fVector[2])
if((fm_get_user_maxspeed(id) * 5) > (fSpeed*9))
set_pev(id, pev_flTimeStepSound, 300)
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/
// Uncomment to use MySQL instead of the default nVault saving
//#define SQL
// Admin flag settings for giving points/badges and server saved data reset
// These can also be set in cmdaccess.ini without need to change here
// (See amxconst.inc for more admin level constants)
#define ADMIN_LEVEL ADMIN_IMMUNITY
#define ADMIN_RESET ADMIN_IMMUNITY
// Aby wlaczyc kolorowy say(colorchat) w grze odkomentuj
//#define KOLOROWY_SAY
// Note: Changing any of the above the above requires plugin to be recompiled
//******************************************************************************************//
#include
#include
#include
#include
#include
#include
#include
#include
new const gPluginName[] = "Battlefield 2: Rank Mod";
new const gPluginVersion[] = "1.0.4";
//Message sending variables
#if defined KOLOROWY_SAY
new gmsgStatusText;
new gmsgScreenFade;
new gmsgScreenShake;
#else
new gmsgStatusText;
new gmsgScreenFade;
new gmsgScreenShake;
new gmsgSayText;
#endif
new gHUD;
//Task
#define TASK_HUD 9897
new gHudSyncAimInfo;
new gMaxPlayers;
new bool:gCZBotRegisterHam;
#define MAX_RANKS 17
#define MAX_BADGES 8
//Motd variables
new configsdir[200];
new configfile[200];
//Cvar vars
new gPcvarBF2Active;
new gPcvarBadgesActive;
new gPcvarFreeAwp;
new gPcvarXpMultiplier;
new gPcvarIconTime;
new gPcvarFlagKills;
new gPcvarHelpUrl;
new gPcvarBadgePowers;
new gPcvarFlagRoundPoints;
new gPcvarFlagMatchPoints;
new gPcvarXpMinPlayers;
new gPcvarHudOptions;
new gPcvarStatusText;
new gPcvarFFA;
new gPcvarSaveType;
new gPcvarRankBots;
new gPcvarBotQuota;
new gPcvarSVLan;
new gPcvarWymus;
//Cvar vars new
new gPcvarHudCenter;
new gPcvarGameShadows;
//Current players info
new g_PlayerRank[33];
new g_PlayerBadges[33][MAX_BADGES];
new knifekills[33];
new pistolkills[33];
new sniperkills[33];
new parakills[33];
new defuses[33];
new plants[33];
new explosions[33];
new accuracy[33];
new totalkills[33];
new gSaveKey[33][32];
new smgkills[33];
new shotgunkills[33];
new riflekills[33];
new grenadekills[33];
new bronze[33];
new silver[33];
new gold[33];
//Temp storage variables
new numofbadges[33];
new bool:newplayer[33];
new g_lastwpn[33];
new bool:g_imobile[33];
new bool:freezetime;
new highestrank;
new highestrankid;
new gStatsLoaded[33];
new gCurrentFOV[33];
new g_friend[33];
new bool:g_invis[33];
new menuselection[33];
//Server stats
new highestrankserver, highestrankservername[32], mostkills, mostkillsid, mostkillsname[32], mostwins, mostwinsname[32];
new menuselected[33][3];
//0 - Badge/Kills selected 0/1
//1 - Badgenum/Kills
//2 - Badgelevel
//Sound Vars
new gSoundRank[] = "bf2rank/bf2rank_promotion.wav"; //Rank gained sound
new gSoundBadge[] = "bf2rank/bf2rank_award.wav"; //Badges earned sound
//Sprite vars
new gSprite[22];
#if defined SQL
//SQl vars
#include
new Handle:g_SqlTuple;
new g_Cache[512];
new bool:SQLenabled;
new bool:gIntermission;
#else
//nVault
#include
new g_Vault;
new gPcvarPruneDays;
#endif
new gPlayerName;
//Bf2 includes
#if defined KOLOROWY_SAY
#include
#endif
#include "bf2/const.inl"
#include "bf2/effect.inl"
#include "bf2/cmds.inl"
#include "bf2/events.inl"
#include "bf2/save.inl"
#include "bf2/forwards.inl"
#include "bf2/check.inl"
#include "bf2/badgepowers.inl"
#include "bf2/menu.inl"
#include "bf2/hud.inl"
#include "bf2/othermods.inl"
#include "bf2/csx.inl"
#include "bf2/ham.inl"
#if defined SQL
#include "bf2/sql.inl"
#endif
public plugin_init()
{
register_plugin(gPluginName, gPluginVersion, "MisieQ"); //Bazuje na Battlefield 2: Rank Mod 1.5.3 by pRED*
//Register all the say commands
//Public
register_clcmd("say /ranks","show_rankhelp",0, "Pokazuje Informacje o Ranku");
register_clcmd("say_team /ranks","show_rankhelp",0, "Pokazuje Informacje o Ranku");
register_clcmd("say /badges1","show_badgehelp",0, "Pokazuje Informacje o Odznakach");
register_clcmd("say_team /badges1","show_badgehelp",0, "Pokazuje Informacje o Odznakach");
register_clcmd("say /odznaki1","show_badgehelp",0, "Pokazuje Informacje o Odznakach");
register_clcmd("say_team /odznaki1","show_badgehelp",0, "Pokazuje Informacje o Odznakach");
register_clcmd("say /badges2","show_badgehelp2",0, "Pokazuje Informacje o Odznakach 2");
register_clcmd("say_team /badges2","show_badgehelp2",0, "Pokazuje Informacje o Odznakach 2");
register_clcmd("say /odznaki2","show_badgehelp2",0, "Pokazuje Informacje o Odznakach 2");
register_clcmd("say_team /odznaki2","show_badgehelp2",0, "Pokazuje Informacje o Odznakach 2");
register_clcmd("say /badges3","show_badgehelp3",0, "Pokazuje Informacje o Odznakach 3");
register_clcmd("say_team /badges3","show_badgehelp3",0, "Pokazuje Informacje o Odznakach 3");
register_clcmd("say /odznaki3","show_badgehelp3",0, "Pokazuje Informacje o Odznakach 3");
register_clcmd("say_team /odznaki3","show_badgehelp3",0, "Pokazuje Informacje o Odznakach 3");
register_clcmd("say", "cmd_say", 0, " ");
register_clcmd("say_team", "cmd_say", 0, " ");
register_clcmd("say /who", "cmd_who", 0, "Wyswietla liste graczy i ich pozimy");
register_clcmd("say_team /who", "cmd_who", 0, "Wyswietla liste graczy i ich pozimy");
register_clcmd("say /gracze", "cmd_who", 0, "Wyswietla liste graczy i ich pozimy");
register_clcmd("say_team /gracze", "cmd_who", 0, "Wyswietla liste graczy i ich pozimy");
register_clcmd("say /help", "cmd_help", 0, "Pokaz pomoc BF2Mod");
register_clcmd("say_team /help", "cmd_help", 0, "Pokaz pomoc BF2Mod");
register_clcmd("say /bf2menu", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say_team /bf2menu", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say bf2menu", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say_team bf2menu", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say /bf2", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say_team /bf2", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say bf2", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say_team bf2", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say /menu", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say_team /menu", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say menu", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say_team menu", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say /help", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say_team /help", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say help", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say_team help", "Bf2menu", 0, "Pokazuje Menu");
register_clcmd("say /bf2helpmenu", "helpmenu", 0, "Pokazuje Menu Pomocy");
register_clcmd("say_team /bf2helpmenu", "helpmenu", 0, "Pokazuje Menu Pomocy");
register_clcmd("say /bf2statsmenu", "helpmenu", 0, "Pokazuje Menu Statystyk");
register_clcmd("say_team /bf2statsmenu", "helpmenu", 0, "Pokazuje Menu Statystyk");
register_clcmd("say /bf2adminmenu", "adminmenu", 0, "Pokazuje Menu Admina");
register_clcmd("say_team /bf2adminmenu", "adminmenu", 0, "Pokazuje Menu Admina");
register_clcmd("say /bf2stats", "show_stats", 0, "Pokazuje twoje aktualne statystyki");
register_clcmd("say_team /bf2stats", "show_stats", 0, "Pokazuje twoje aktualne statystyki");
register_clcmd("say /serverstats", "show_server_stats", 0, "Pokazuje aktualne statystyki serwera");
register_clcmd("say_team /serverstats", "show_server_stats", 0, "Pokazuje aktualne statystyki serwera");
register_clcmd("say /bf2save", "save_badges", 0, "Zapisuje Aktualne Statystyki");
register_clcmd("say_team /bf2save", "save_badges", 0, "Zapisuje Aktualne Statystyki");
//Admin
register_clcmd("bf2_addbadge", "add_badge", ADMIN_LEVEL, "");
register_clcmd("bf2_addkills", "add_kills", ADMIN_LEVEL, "");
//Cvars
//FCVAR_SERVER cvar for game monitor.
register_cvar("bf2_version", gPluginVersion, FCVAR_SERVER);
// Set cvar to update version in case new version loaded while server still running
set_cvar_string("bf2_version", gPluginVersion);
gPcvarBF2Active = register_cvar("bf2_active", "1");
gPcvarBadgesActive = register_cvar("bf2_badges", "1");
gPcvarFreeAwp = register_cvar("bf2_awp", "0");
gPcvarXpMultiplier = register_cvar("bf2_xpmultiplier", "0.1");
gPcvarXpMinPlayers = register_cvar("bf2_xpminplayers", "2");
gPcvarIconTime = register_cvar("bf2_icon_time", "1.5");
gPcvarHelpUrl = register_cvar("bf2_help_url", "http://misieq.silema...t.pl/bf2webdocs");
gPcvarBadgePowers = register_cvar("bf2_badgepowers", "0");
gPcvarHudOptions = register_cvar("bf2_hud_options", "abcde");
gPcvarStatusText = register_cvar("bf2_statustext", "1");
#if !defined SQL
gPcvarPruneDays = register_cvar("bf2_reset_days", "21");
#endif
gPcvarFFA = register_cvar("bf2_ffa", "0");
gPcvarHudCenter = register_cvar("bf2_hud", "0");
gPcvarGameShadows = register_cvar("bf2_shadows", "0");
gPcvarFlagKills = register_cvar("bf2_flag_kills", "2");
gPcvarFlagRoundPoints = register_cvar("bf2_flag_round_kills", "0");
gPcvarFlagMatchPoints = register_cvar("bf2_flag_match_kills", "0");
gPcvarSaveType = get_cvar_pointer("csstats_rank");
gPcvarRankBots = get_cvar_pointer("csstats_rankbots");
gPcvarBotQuota = get_cvar_pointer("bot_quota");
gPcvarSVLan = get_cvar_pointer("sv_lan");
//Message sending.
#if defined KOLOROWY_SAY
gmsgStatusText = get_user_msgid("StatusText");
gmsgScreenFade = get_user_msgid("ScreenFade");
gmsgScreenShake = get_user_msgid("ScreenShake");
#else
gmsgStatusText = get_user_msgid("StatusText");
gmsgScreenFade = get_user_msgid("ScreenFade");
gmsgScreenShake = get_user_msgid("ScreenShake");
gmsgSayText = get_user_msgid("SayText");
#endif
gHUD = CreateHudSyncObj();
//Register events, logs and forwards to be captured
register_event("HLTV", "Event_HLTV", "a", "1=0", "2=0"); //add freeztime start code
register_event("CurWeapon", "Event_CurWeapon", "be", "1=1");
register_event("SetFOV", "Event_SetFOV", "be");
register_event("DeathMsg", "Event_DeathMsg", "a");
register_logevent("LogEvent_Round_Start", 2, "0=World triggered", "1=Round_Start"); //freezetime end code
register_logevent("LogEvent_Round_End", 2, "1=Round_End");
register_message(SVC_INTERMISSION, "Message_Intermission");
register_message(get_user_msgid("StatusValue"), "Message_StatusValue");
register_event("StatusValue", "setTeam", "be", "1=1");
register_event("StatusValue", "on_ShowStatus", "be", "1=2", "2!0");
register_event("StatusValue", "on_HideStatus", "be", "1=1", "2=0");
// Must use post or else is_user_alive will return false when dead player respawns
RegisterHam(Ham_Spawn, "player", "Ham_Spawn_Post", 1); // cz bots won't hook here must RegisterHamFromEntity
RegisterHam(Ham_TakeDamage, "player", "Ham_TakeDamage_Pre");
RegisterHam(Ham_Killed, "player", "Ham_Death_Player", 1);
gHudSyncAimInfo = CreateHudSyncObj();
gMaxPlayers = get_maxplayers();
gPlayerName = get_xvar_id("PlayerName");
register_forward(FM_PlayerPreThink, "Forward_FM_PlayerPreThink")
}
public Forward_FM_PlayerPreThink(id)
{
if(is_user_alive(id))
{
new Float:fVector[3];
pev(id, pev_velocity, fVector)
new Float: fSpeed = floatsqroot(fVector[0]*fVector[0]+fVector[1]*fVector[1]+fVector[2]*fVector[2])
if((fm_get_user_maxspeed(id) * 5) > (fSpeed*9))
set_pev(id, pev_flTimeStepSound, 300)
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/
hud.inl
Spoiler
//Bf2 Rank Mod HUD File
//Contains all the HUD functions.
#if defined bf2_hud_included
#endinput
#endif
#define bf2_hud_included
//Show an announcement display
public Announcement(id)
{
if ( !get_pcvar_num(gPcvarBF2Active) || is_user_bot(id) ) return;
#if defined KOLOROWY_SAY
ColorChat(id,TEAM_COLOR,"[BF2]^x03 Ten serwer uzywa^x04 %s.^x03 Wpisz^x04 ^"/bf2menu^"^x03 aby uzyskac wiecej informacji", gPluginName);
#else
client_print(id, print_chat, "[BF2] Ten serwer uzywa %s. Wpisz ^"/bf2menu^" aby uzyskac wiecej informacji", gPluginName);
#endif
}
//Displays the HUD to the user
public DisplayHUD(id)
{
id -= TASK_HUD;
if ( !get_pcvar_num(gPcvarBF2Active) || !get_pcvar_num(gPcvarStatusText) )
return;
if ( !is_user_alive(id) || is_user_bot(id) )
return;
if(!is_user_connected(id))
{
remove_task(id+TASK_HUD);
return;
}
set_hudmessage(227, 96, 8, 0.05, 0.15, 0, 0.0, 0.3, 0.0, 0.0, 3)
if ( !gStatsLoaded[id] )
{
ShowSyncHudMsg(id, gHUD,"[%s] Wczytuje Dane...", gPluginName)
}
else
{
new rank = g_PlayerRank[id];
new nextrank;
switch(rank)
{
case 16, 19, 20, 21: nextrank = 15;
case 17: nextrank = 7;
case 18: nextrank = 8;
default: nextrank = rank;
}
++nextrank;
new nextrankxp = floatround(gRankXP[nextrank] * get_pcvar_float(gPcvarXpMultiplier));
if ( !get_pcvar_num(gPcvarBadgesActive) )
{
ShowSyncHudMsg(id, gHUD,"[%s]^nRanga: %s^nZabicia: %d/%d", gPluginName, gRankName[rank], totalkills[id], nextrankxp)
}
else
{
ShowSyncHudMsg(id, gHUD,"[%s]^nRanga: %s^nIlosc Odznak: %d^nZabicia: %d/%d", gPluginName, gRankName[rank], numofbadges[id], totalkills[id], nextrankxp)
}
}
}
public RemoveHUD(id)
{
remove_task(id+TASK_HUD);
}
//Contains all the HUD functions.
#if defined bf2_hud_included
#endinput
#endif
#define bf2_hud_included
//Show an announcement display
public Announcement(id)
{
if ( !get_pcvar_num(gPcvarBF2Active) || is_user_bot(id) ) return;
#if defined KOLOROWY_SAY
ColorChat(id,TEAM_COLOR,"[BF2]^x03 Ten serwer uzywa^x04 %s.^x03 Wpisz^x04 ^"/bf2menu^"^x03 aby uzyskac wiecej informacji", gPluginName);
#else
client_print(id, print_chat, "[BF2] Ten serwer uzywa %s. Wpisz ^"/bf2menu^" aby uzyskac wiecej informacji", gPluginName);
#endif
}
//Displays the HUD to the user
public DisplayHUD(id)
{
id -= TASK_HUD;
if ( !get_pcvar_num(gPcvarBF2Active) || !get_pcvar_num(gPcvarStatusText) )
return;
if ( !is_user_alive(id) || is_user_bot(id) )
return;
if(!is_user_connected(id))
{
remove_task(id+TASK_HUD);
return;
}
set_hudmessage(227, 96, 8, 0.05, 0.15, 0, 0.0, 0.3, 0.0, 0.0, 3)
if ( !gStatsLoaded[id] )
{
ShowSyncHudMsg(id, gHUD,"[%s] Wczytuje Dane...", gPluginName)
}
else
{
new rank = g_PlayerRank[id];
new nextrank;
switch(rank)
{
case 16, 19, 20, 21: nextrank = 15;
case 17: nextrank = 7;
case 18: nextrank = 8;
default: nextrank = rank;
}
++nextrank;
new nextrankxp = floatround(gRankXP[nextrank] * get_pcvar_float(gPcvarXpMultiplier));
if ( !get_pcvar_num(gPcvarBadgesActive) )
{
ShowSyncHudMsg(id, gHUD,"[%s]^nRanga: %s^nZabicia: %d/%d", gPluginName, gRankName[rank], totalkills[id], nextrankxp)
}
else
{
ShowSyncHudMsg(id, gHUD,"[%s]^nRanga: %s^nIlosc Odznak: %d^nZabicia: %d/%d", gPluginName, gRankName[rank], numofbadges[id], totalkills[id], nextrankxp)
}
}
}
public RemoveHUD(id)
{
remove_task(id+TASK_HUD);
}
ham.inl
Spoiler
//Bf2 Rank Mod hamsandwich File
//Contains all the Ham Sandwich functions.
#if defined bf2_ham_included
#endinput
#endif
#define bf2_ham_included
//Called on task from client_putinserver
public RegisterHam_CZBot(id)
{
// Thx to Avalanche and GunGame for which this method is based on.
if ( gCZBotRegisterHam || !is_user_connected(id) ) return;
// Make sure it's a bot and if quota greater than 0 it's a cz bot.
if ( gPcvarBotQuota && get_pcvar_num(gPcvarBotQuota) > 0 && is_user_bot(id) ) {
// Post-spawn fix for cz bots, since RegisterHam does not work for them.
RegisterHamFromEntity(Ham_Spawn, id, "Ham_Spawn_Post", 1);
RegisterHamFromEntity(Ham_TakeDamage, id, "Ham_TakeDamage_Pre");
gCZBotRegisterHam = true;
// Incase this CZ bot was spawned alive during a round, call the Ham_Spawn
// because it would have happened before the RegisterHam.
if ( is_user_alive(id) ) Ham_Spawn_Post(id);
}
}
public Ham_Spawn_Post(id)
{
if ( !get_pcvar_num(gPcvarBF2Active) ) return HAM_IGNORED;
// Verify the client is not just put in server but is alive
if ( !is_user_alive(id) ) return HAM_IGNORED;
// Make sure this is not a bot creation before it spawns
if ( cs_get_user_team(id) == CS_TEAM_UNASSIGNED ) return HAM_IGNORED;
check_level(id);
// Task is needed because sometimes when survived round StatusText gets cleared on spawn
if(!task_exists(id+TASK_HUD))
{
set_task(0.1, "DisplayHUD", id+TASK_HUD, _, _, "b");
}
if ( !get_pcvar_num(gPcvarBadgesActive) || !get_pcvar_num(gPcvarBadgePowers) ) return HAM_IGNORED;
set_invis(id);
set_task(0.5, "give_userweapon", id);
set_task(0.6, "set_speed", id);
return HAM_IGNORED;
}
public Ham_TakeDamage_Pre(victim, inflictor, attacker, Float:damage, damagebits)
{
if ( !get_pcvar_num(gPcvarBadgesActive) || !get_pcvar_num(gPcvarBadgePowers) ) return HAM_IGNORED;
if ( !is_user_connected(attacker) || !is_user_alive(victim) ) return HAM_IGNORED;
if ( victim != attacker && cs_get_user_team(victim) == cs_get_user_team(attacker) && !get_pcvar_num(gPcvarFFA) ) return HAM_IGNORED;
new expBadgeLevel = g_PlayerBadges[attacker][BADGE_EXPLOSIVES];
new supBadgeLevel = g_PlayerBadges[attacker][BADGE_SUPPORT];
if ( expBadgeLevel && (damagebits & DMG_GRENADE) ) //Explosives badge, nade dmg
{
//multiply .2 nade damage per level
damage += damage * expBadgeLevel * 0.15;
}
else if ( supBadgeLevel && inflictor == attacker && get_user_weapon(attacker) == CSW_M249 ) //Support badge, bonus damg
{
//add to 2 m249 damage per level
damage += supBadgeLevel * 2.0;
}
else
{
return HAM_IGNORED;
}
SetHamParamFloat(4, damage);
return HAM_HANDLED;
}
public Ham_Death_Player(id)
{
if(!is_user_connected(id))
return HAM_IGNORED;
RemoveHUD(id)
return HAM_IGNORED;
}
//Contains all the Ham Sandwich functions.
#if defined bf2_ham_included
#endinput
#endif
#define bf2_ham_included
//Called on task from client_putinserver
public RegisterHam_CZBot(id)
{
// Thx to Avalanche and GunGame for which this method is based on.
if ( gCZBotRegisterHam || !is_user_connected(id) ) return;
// Make sure it's a bot and if quota greater than 0 it's a cz bot.
if ( gPcvarBotQuota && get_pcvar_num(gPcvarBotQuota) > 0 && is_user_bot(id) ) {
// Post-spawn fix for cz bots, since RegisterHam does not work for them.
RegisterHamFromEntity(Ham_Spawn, id, "Ham_Spawn_Post", 1);
RegisterHamFromEntity(Ham_TakeDamage, id, "Ham_TakeDamage_Pre");
gCZBotRegisterHam = true;
// Incase this CZ bot was spawned alive during a round, call the Ham_Spawn
// because it would have happened before the RegisterHam.
if ( is_user_alive(id) ) Ham_Spawn_Post(id);
}
}
public Ham_Spawn_Post(id)
{
if ( !get_pcvar_num(gPcvarBF2Active) ) return HAM_IGNORED;
// Verify the client is not just put in server but is alive
if ( !is_user_alive(id) ) return HAM_IGNORED;
// Make sure this is not a bot creation before it spawns
if ( cs_get_user_team(id) == CS_TEAM_UNASSIGNED ) return HAM_IGNORED;
check_level(id);
// Task is needed because sometimes when survived round StatusText gets cleared on spawn
if(!task_exists(id+TASK_HUD))
{
set_task(0.1, "DisplayHUD", id+TASK_HUD, _, _, "b");
}
if ( !get_pcvar_num(gPcvarBadgesActive) || !get_pcvar_num(gPcvarBadgePowers) ) return HAM_IGNORED;
set_invis(id);
set_task(0.5, "give_userweapon", id);
set_task(0.6, "set_speed", id);
return HAM_IGNORED;
}
public Ham_TakeDamage_Pre(victim, inflictor, attacker, Float:damage, damagebits)
{
if ( !get_pcvar_num(gPcvarBadgesActive) || !get_pcvar_num(gPcvarBadgePowers) ) return HAM_IGNORED;
if ( !is_user_connected(attacker) || !is_user_alive(victim) ) return HAM_IGNORED;
if ( victim != attacker && cs_get_user_team(victim) == cs_get_user_team(attacker) && !get_pcvar_num(gPcvarFFA) ) return HAM_IGNORED;
new expBadgeLevel = g_PlayerBadges[attacker][BADGE_EXPLOSIVES];
new supBadgeLevel = g_PlayerBadges[attacker][BADGE_SUPPORT];
if ( expBadgeLevel && (damagebits & DMG_GRENADE) ) //Explosives badge, nade dmg
{
//multiply .2 nade damage per level
damage += damage * expBadgeLevel * 0.15;
}
else if ( supBadgeLevel && inflictor == attacker && get_user_weapon(attacker) == CSW_M249 ) //Support badge, bonus damg
{
//add to 2 m249 damage per level
damage += supBadgeLevel * 2.0;
}
else
{
return HAM_IGNORED;
}
SetHamParamFloat(4, damage);
return HAM_HANDLED;
}
public Ham_Death_Player(id)
{
if(!is_user_connected(id))
return HAM_IGNORED;
RemoveHUD(id)
return HAM_IGNORED;
}
forwards.inl
Spoiler
//Bf2 Rank Mod forwards File
//Contains all the standard forwarded functions
#if defined bf2_forward_included
#endinput
#endif
#define bf2_forward_included
public plugin_precache()
{
new tempSound[64];
formatex(tempSound, charsmax(tempSound), "sound/%s", gSoundRank);
if ( !file_exists(tempSound) )
{
copy(gSoundRank, charsmax(gSoundRank), "buttons/bell1.wav");
}
formatex(tempSound, charsmax(tempSound), "sound/%s", gSoundBadge);
if ( !file_exists(tempSound) )
{
copy(gSoundBadge, charsmax(gSoundBadge), "fvox/bell.wav");
}
precache_sound(gSoundRank);
precache_sound(gSoundBadge);
new bool:error = false;
new spriteFile[26];
for ( new counter; counter < MAX_RANKS+5; counter++)
{
spriteFile[0] = '^0';
formatex(spriteFile, charsmax(spriteFile), "sprites/bf2rankspr/%d.spr", counter);
//Done this way so that a message is logged for each missing file
if ( !file_exists( spriteFile ) )
{
log_amx("[ERROR] Brakujacy plik sprite: ^"%s^"", spriteFile);
error = true;
}
else {
gSprite[counter] = precache_model(spriteFile);
}
}
if ( error )
{
set_fail_state("Brakuje plikow sprite , zaladowanie pluginu niemozliwe! Sprawdz Logi AMXX");
}
}
public plugin_cfg()
{
get_configsdir(configsdir, charsmax(configsdir));
//SQL
#if defined SQL
SQLenabled = false;
set_task(1.0, "sql_init");
#else
vault_init();
#endif
set_cvar_string("bf2_version", gPluginVersion);
if ( gPlayerName != -1 && get_xvar_num(gPlayerName) )
{
log_amx("miscstats.amxx ^"PlayerName^" opcja jest wlaczona, BF2 aim info nie będzie pokazywane.");
}
//set_task(10.0, "ranking_officer_disconnect");
}
public client_putinserver(id)
{
// Find a czero bot to register Ham_Spawn
if ( !gCZBotRegisterHam && gPcvarBotQuota && get_pcvar_num(gPcvarBotQuota) > 0 && is_user_bot(id) )
{
// Delay for private data to initialize
set_task(0.1, "RegisterHam_CZBot", id);
}
g_imobile[id] = false;
newplayer[id] = true;
gStatsLoaded[id] = 0;
get_save_key(id);
if (!get_pcvar_num(gPcvarWymus))
{
client_cmd(id,"hud_centerid 0");
client_cmd(id,"cl_shadows 0");
set_task(20.0, "Announcement", id);
}
else
{
set_task(20.0, "Announcement", id);
}
RemoveHUD(id);
}
public client_disconnect(id)
{
save_badges(id);
if ( id == highestrankid )
{
set_task(2.0, "ranking_officer_disconnect");
}
clear_stat_globals(id);
gStatsLoaded[id] = 0;
RemoveHUD(id);
}
public plugin_end()
{
server_save();
#if defined SQL
if ( SQLenabled )
{
//Free the handle thingy..
SQL_FreeHandle(g_SqlTuple);
}
#else
new pruneDelay = (NEGATIVE_SECONDSINDAY * get_pcvar_num(gPcvarPruneDays));
nvault_prune(g_Vault, 0, get_systime(pruneDelay));
nvault_close(g_Vault);
#endif
}
//Contains all the standard forwarded functions
#if defined bf2_forward_included
#endinput
#endif
#define bf2_forward_included
public plugin_precache()
{
new tempSound[64];
formatex(tempSound, charsmax(tempSound), "sound/%s", gSoundRank);
if ( !file_exists(tempSound) )
{
copy(gSoundRank, charsmax(gSoundRank), "buttons/bell1.wav");
}
formatex(tempSound, charsmax(tempSound), "sound/%s", gSoundBadge);
if ( !file_exists(tempSound) )
{
copy(gSoundBadge, charsmax(gSoundBadge), "fvox/bell.wav");
}
precache_sound(gSoundRank);
precache_sound(gSoundBadge);
new bool:error = false;
new spriteFile[26];
for ( new counter; counter < MAX_RANKS+5; counter++)
{
spriteFile[0] = '^0';
formatex(spriteFile, charsmax(spriteFile), "sprites/bf2rankspr/%d.spr", counter);
//Done this way so that a message is logged for each missing file
if ( !file_exists( spriteFile ) )
{
log_amx("[ERROR] Brakujacy plik sprite: ^"%s^"", spriteFile);
error = true;
}
else {
gSprite[counter] = precache_model(spriteFile);
}
}
if ( error )
{
set_fail_state("Brakuje plikow sprite , zaladowanie pluginu niemozliwe! Sprawdz Logi AMXX");
}
}
public plugin_cfg()
{
get_configsdir(configsdir, charsmax(configsdir));
//SQL
#if defined SQL
SQLenabled = false;
set_task(1.0, "sql_init");
#else
vault_init();
#endif
set_cvar_string("bf2_version", gPluginVersion);
if ( gPlayerName != -1 && get_xvar_num(gPlayerName) )
{
log_amx("miscstats.amxx ^"PlayerName^" opcja jest wlaczona, BF2 aim info nie będzie pokazywane.");
}
//set_task(10.0, "ranking_officer_disconnect");
}
public client_putinserver(id)
{
// Find a czero bot to register Ham_Spawn
if ( !gCZBotRegisterHam && gPcvarBotQuota && get_pcvar_num(gPcvarBotQuota) > 0 && is_user_bot(id) )
{
// Delay for private data to initialize
set_task(0.1, "RegisterHam_CZBot", id);
}
g_imobile[id] = false;
newplayer[id] = true;
gStatsLoaded[id] = 0;
get_save_key(id);
if (!get_pcvar_num(gPcvarWymus))
{
client_cmd(id,"hud_centerid 0");
client_cmd(id,"cl_shadows 0");
set_task(20.0, "Announcement", id);
}
else
{
set_task(20.0, "Announcement", id);
}
RemoveHUD(id);
}
public client_disconnect(id)
{
save_badges(id);
if ( id == highestrankid )
{
set_task(2.0, "ranking_officer_disconnect");
}
clear_stat_globals(id);
gStatsLoaded[id] = 0;
RemoveHUD(id);
}
public plugin_end()
{
server_save();
#if defined SQL
if ( SQLenabled )
{
//Free the handle thingy..
SQL_FreeHandle(g_SqlTuple);
}
#else
new pruneDelay = (NEGATIVE_SECONDSINDAY * get_pcvar_num(gPcvarPruneDays));
nvault_prune(g_Vault, 0, get_systime(pruneDelay));
nvault_close(g_Vault);
#endif
}
Niby działa na serwerze ale jak dodam odznakę to w hud w tym lewym gornym rogu pokazuje dobrze a w tym lewym dolnym rogu pokazuje tak jak było wcześniej. Albo jak by mozna bylo usuąnć tą informacje w lewym dolnym rogu to byłbym wdzięczny. Z góry dziękuje i pozdrawiam.