1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339. | //************************************ 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 <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <cstrike>
#include <csx>
#include <fun>
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 10
//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;
//Cvar vars new
new gPcvarHudCenter;
new gPcvarGameShadows;
//Current players info
new gPlayerJump[33];
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 g_count
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 bool:gPlayerMedkitUsed[33];
new bool:is_on_knife[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 <sqlx>
new Handle:g_SqlTuple;
new g_Cache[512];
new bool:SQLenabled;
new bool:gIntermission;
#else
//nVault
#include <nvault>
new g_Vault;
new gPcvarPruneDays;
#endif
new gPlayerName;
//Bf2 includes
#if defined KOLOROWY_SAY
#include <colorchat>
#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"
#include "bf2/apteczka.inl"
#if defined SQL
#include "bf2/sql.inl"
#endif
public plugin_init()
{
register_plugin(gPluginName, gPluginVersion, "pRED // MisieQ // Dawedo"); //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, "<target> ");
register_clcmd("say_team", "cmd_say", 0, "<target> ");
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, "<player> <badge#> <level#>");
register_clcmd("bf2_addkills", "add_kills", ADMIN_LEVEL, "<player> <kills#>");
//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.sileman.net.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, "FM_PlayerPreThink1");
register_forward(FM_CmdStart, "FM_CmdStart1");
register_forward(FM_EmitSound, "EmitSound1");
//register_forward(FM_Touch,"FakeMeta_Touch")
//register_touch("apteczka", "player", "Apteczka_Touch")
}
public client_PreThink(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)
}
}
|