· 6 years ago · Sep 20, 2019, 12:46 AM
1// Ignored xs__ variables
2#pragma semicolon 1
3#pragma ctrlchar '\'
4
5new MaxClients;
6new NULL_STRING[1];
7new Float:NULL_VECTOR[3];
8new hns_tag[16] =
9{
10 1, 91, 3, 67, 117, 108, 116, 117, 114, 97, 1, 93, 0, 0, 0, 0
11}
12new hns_jumpstat[18] =
13{
14 117, 113, 95, 106, 117, 109, 112, 115, 116, 97, 116, 115, 46, 97, 109, 120, 120, 0
15}
16new SOUND_END[22] =
17{
18 99, 117, 108, 116, 117, 114, 97, 47, 109, 101, 116, 97, 108, 95, 101, 110, 100, 46, 119, 97, 118, 0
19}
20new SOUND_ABUNAI[19] =
21{
22 99, 117, 108, 116, 117, 114, 97, 47, 97, 98, 117, 110, 97, 105, 46, 119, 97, 118, 0
23}
24new gmsgMoney;
25new Float:g_flRoundTime;
26new g_Captime;
27new cvarGamename;
28new bool:Survival;
29new bool:GameStarted;
30new iCurrentSW;
31new Float:flSidesTime[2];
32new g_pRoundTime;
33new g_szDefaultEntities[9][] =
34{
35 "func_hostage_rescue",
36 "func_bomb_target",
37 "info_bomb_target",
38 "hostage_entity",
39 "info_vip_start",
40 "func_vip_safetyzone",
41 "func_escapezone",
42 "armoury_entity",
43 "monster_scentist"
44};
45new g_iGiveNadesTo;
46new snd_denyselect[26] =
47{
48 99, 111, 109, 109, 111, 110, 47, 119, 112, 110, 95, 100, 101, 110, 121, 115, 101, 108, 101, 99, 116, 46, 119, 97, 118, 0
49}
50new g_szUseSound[18] =
51{
52 98, 117, 116, 116, 111, 110, 115, 47, 98, 108, 105, 112, 49, 46, 119, 97, 118, 0
53}
54new g_szNewNadesMenu[48] =
55{
56 92, 114, 68, 111, 32, 121, 111, 117, 32, 110, 101, 101, 100, 32, 115, 111, 109, 101, 32, 110, 97, 100, 101, 115, 63, 10, 10, 92, 114, 49, 46, 32, 92, 119, 89, 101, 115, 10, 92, 114, 50, 46, 32, 92, 119, 78, 111, 0
57}
58new bool:hns_hooked[33];
59new hookorigin[33][3];
60new HamHook:Player_Killed_Pre;
61new Float:gCheckpoints[33][2][3];
62new g_iCurrentMode;
63new bool:g_bFreezePeriod;
64new bool:g_bCheckpointAlternate[33];
65new bool:g_bLastFlash[33];
66new bool:ishooked[33];
67new bool:plr_noplay[33];
68new Sbeam;
69new bool:g_bSpec[33];
70new TeamName:hTeam[33];
71new cvarFlashNum;
72new cvarSmokeNum;
73new cvarAA;
74new cvarLastMode;
75new WhatSemiclip;
76new g_iRegisterSpawn;
77new bool:g_bSemiclip;
78new g_iGameStops;
79new g_eRoundData[33][2];
80new g_iCaptain[2];
81new g_iCaptainPick;
82new g_iPickMenu;
83new bool:g_bCaptainsBattle;
84new g_eSurrenderData[4];
85new g_iSurrenderVotes[2];
86new bool:g_bSurrenderVoted[33];
87new Array:g_aPlayersLoadData;
88new g_sBuffer[2048];
89new bool:g_bPlayersListLoaded;
90new Float:g_flPrepare;
91new Float:g_flRetry;
92new Float:g_flAbunaiDelay;
93new Trie:g_tPlayerData;
94new g_ePlayerData[33][26];
95new g_eMatchInfo[77];
96new g_hForwards[4];
97new g_iHostageEnt;
98
99Float:operator++(Float:)(Float:oper)
100{
101 return oper + 1.00;
102}
103
104Float:operator*(Float:,_:)(Float:oper1, oper2)
105{
106 return oper1 * float(oper2);
107}
108
109Float:operator/(Float:,_:)(Float:oper1, oper2)
110{
111 return oper1 / float(oper2);
112}
113
114Float:operator/(_:,Float:)(oper1, Float:oper2)
115{
116 return float(oper1) / oper2;
117}
118
119Float:operator+(Float:,_:)(Float:oper1, oper2)
120{
121 return oper1 + float(oper2);
122}
123
124Float:operator-(Float:,_:)(Float:oper1, oper2)
125{
126 return oper1 - float(oper2);
127}
128
129bool:operator==(Float:,Float:)(Float:oper1, Float:oper2)
130{
131 return floatcmp(oper1, oper2) == 0;
132}
133
134bool:operator==(Float:,_:)(Float:oper1, oper2)
135{
136 return floatcmp(oper1, float(oper2)) == 0;
137}
138
139bool:operator>(Float:,Float:)(Float:oper1, Float:oper2)
140{
141 return floatcmp(oper1, oper2) > 0;
142}
143
144bool:operator>(Float:,_:)(Float:oper1, oper2)
145{
146 return floatcmp(oper1, float(oper2)) > 0;
147}
148
149bool:operator>=(Float:,Float:)(Float:oper1, Float:oper2)
150{
151 return floatcmp(oper1, oper2) >= 0;
152}
153
154bool:operator<(Float:,Float:)(Float:oper1, Float:oper2)
155{
156 return floatcmp(oper1, oper2) < 0;
157}
158
159bool:operator!(Float:)(Float:oper)
160{
161 return oper & -1 == 0;
162}
163
164
165user_silentkill(index, flag)
166{
167 static msgid;
168 new msgblock = 0;
169 if (!msgid)
170 {
171 msgid = get_user_msgid("DeathMsg");
172 }
173 msgblock = get_msg_block(msgid);
174 set_msg_block(msgid, 1);
175 user_kill(index, flag);
176 set_msg_block(msgid, msgblock);
177 return 1;
178}
179
180
181cmd_access(id, level, cid, num, bool:accesssilent)
182{
183 !!! Removed Phi
184 new has_access = 0;
185 new var1;
186 if (is_dedicated_server())
187 {
188 var1 = 0;
189 }
190 else
191 {
192 var1 = 1;
193 }
194 if (var1 == id)
195 {
196 has_access = 1;
197 }
198 else
199 {
200 if (level == 16777216)
201 {
202 if (is_user_admin(id))
203 {
204 has_access = 1;
205 }
206 }
207 if (level & get_user_flags(id, 0))
208 {
209 has_access = 1;
210 }
211 if (level)
212 {
213 }
214 else
215 {
216 has_access = 1;
217 }
218 }
219 if (has_access)
220 {
221 if (num > read_argc())
222 {
223 new hcmd[32];
224 new hinfo[128];
225 new hflag = 0;
226 new bool:info_ml = 0;
227 get_concmd(cid, hcmd, 31, hflag, hinfo, 127, level, -1, info_ml);
228 if (info_ml)
229 {
230 LookupLangKey(hinfo, 127, hinfo, id);
231 }
232 console_print(id, "%L: %s %s", id, "USAGE", hcmd, hinfo);
233 return 0;
234 }
235 return 1;
236 }
237 if (!accesssilent)
238 {
239 console_print(id, "%L", id, "NO_ACC_COM");
240 }
241 return 0;
242}
243
244get_configsdir(String:name[], len)
245{
246 return get_localinfo("amxx_configsdir", name, len);
247}
248
249register_menu(String:title[], keys, String:function[], outside)
250{
251 register_menucmd(register_menuid(title, outside), keys, function);
252 return 0;
253}
254
255public __fatal_ham_error(Ham:id, HamError:err, String:reason[])
256{
257 !!! Removed Phi
258 if (func != -1 && callfunc_begin_i(func, -1) == 1)
259 {
260 callfunc_push_int(id);
261 callfunc_push_int(err);
262 callfunc_push_str(reason, false);
263 if (callfunc_end() == 1)
264 {
265 fail = 0;
266 }
267 }
268 if (fail)
269 {
270 set_fail_state(reason);
271 }
272 return 0;
273}
274
275public __reapi_version_check(majorVersion, minorVersion)
276{
277 if (majorVersion != 5)
278 {
279 new temp[512];
280 formatex(temp, 511, "[ReAPI]: Api major version mismatch; expected %d, real %d", 5, majorVersion);
281 set_fail_state(temp);
282 return 0;
283 }
284 if (minorVersion < 9)
285 {
286 new temp[512];
287 formatex(temp, 511, "[ReAPI]: Api minor version mismatch; expected at least %d, real %d", 9, minorVersion);
288 set_fail_state(temp);
289 return 0;
290 }
291 return 0;
292}
293
294public plugin_precache()
295{
296 engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "func_buyzone"));
297 g_iRegisterSpawn = register_forward(FM_Spawn, "fwdSpawn", 1);
298 precache_sound(g_szUseSound);
299 precache_sound(SOUND_END);
300 precache_sound(SOUND_ABUNAI);
301 Sbeam = precache_model("sprites/laserbeam.spr");
302 return 0;
303}
304
305public plugin_init()
306{
307 register_plugin("Hide'n'Seek Match System", "0.1b", "Cultura");
308 get_mapname(g_eMatchInfo, 31);
309 g_pRoundTime = get_cvar_pointer("mp_roundtime");
310 g_Captime = register_cvar("hns_wintime", "20", 0, 0.00);
311 register_clcmd("say", "sayHandle", -1, "", -1, MaxClients);
312 register_clcmd("nightvision", "hns_mix_menu", 4096, "", -1, MaxClients);
313 register_clcmd("+hook", "hns_hook_on", -1, "", -1, MaxClients);
314 register_clcmd("-hook", "hns_hook_off", -1, "", -1, MaxClients);
315 register_clcmd("chooseteam", "BlockCmd", -1, "", -1, MaxClients);
316 register_clcmd("jointeam", "BlockCmd", -1, "", -1, MaxClients);
317 register_clcmd("joinclass", "BlockCmd", -1, "", -1, MaxClients);
318 new var1 = Heap_4;
319 var1[0] = 18592;
320 fnRegisterSayCmd("surrender", "sur", "CmdSurrender", -1, var1);
321 fnRegisterSayCmd("pub", "public", "hns_pub", 4096, "Publick mode");
322 fnRegisterSayCmd("зги", "згидшс", "hns_pub", 4096, "Publick mode");
323 fnRegisterSayCmd("def", "off", "hns_pub_off", 4096, "Publick mode off");
324 fnRegisterSayCmd("вуа", "щаа", "hns_pub_off", 4096, "Publick mode off");
325 fnRegisterSayCmd("puboff", "згищаа", "hns_pub_off", 4096, "Publick mode off");
326 fnRegisterSayCmd("save", "sv", "SavePlayers", 4096, "Save Players");
327 fnRegisterSayCmd("specall", "specall", "hns_transfer_spec", 4096, "Spec Transfer");
328 fnRegisterSayCmd("ttall", "ttall", "hns_transfer_tt", 4096, "TT Transfer");
329 fnRegisterSayCmd("ctall", "ctall", "hns_transfer_ct", 4096, "CT Transfer");
330 fnRegisterSayCmd("score", "s", "ShowTimers", 0, "Starts Round");
331 fnRegisterSayCmd("ысщку", "ы", "ShowTimers", 0, "Starts Round");
332 fnRegisterSayCmd("startmix", "start", "cmdStartRound", 4096, "Starts Round");
333 fnRegisterSayCmd("ыефкеьшч", "ыефке", "cmdStartRound", 4096, "Starts Round");
334 fnRegisterSayCmd("kniferound", "kf", "cmdKnifeRound", 4096, "Knife Round");
335 fnRegisterSayCmd("лтшаукщгтв", "ла", "cmdKnifeRound", 4096, "Knife Round");
336 fnRegisterSayCmd("captain", "cap", "CmdCaptain", 4096, "Captain Mode");
337 fnRegisterSayCmd("сфзефшт", "сфз", "CmdCaptain", 4096, "Captain Mode");
338 fnRegisterSayCmd("stopcaptain", "stopcap", "CmdStopCaptain", 4096, "Captain Mode");
339 fnRegisterSayCmd("ыещзсфзефшт", "ыещзсфз", "CmdStopCaptain", 4096, "Captain Mode");
340 fnRegisterSayCmd("stop", "st", "CmdStop", 4096, "Stop Current Mode");
341 fnRegisterSayCmd("ыещз", "ые", "CmdStop", 4096, "Stop Current Mode");
342 new var2 = Heap_4;
343 var2[0] = 18592;
344 fnRegisterSayCmd("pause", "ps", "hns_startpause", -1, var2);
345 new var3 = Heap_4;
346 var3[0] = 18592;
347 fnRegisterSayCmd("зфгыу", "ps", "hns_startpause", -1, var3);
348 new var4 = Heap_4;
349 var4[0] = 18592;
350 fnRegisterSayCmd("live", "unpause", "hns_unpause", -1, var4);
351 new var5 = Heap_4;
352 var5[0] = 18592;
353 fnRegisterSayCmd("дшму", "гтзфгыу", "hns_unpause", -1, var5);
354 fnRegisterSayCmd("checkpoint", "cp", "cmdCheckpoint", 0, "Save checkpoint");
355 fnRegisterSayCmd("gocheck", "gc", "cmdGoCheck", 0, "Go to checkpoint");
356 fnRegisterSayCmd("teleport", "tp", "cmdGoCheck", 0, "Go to checkpoint");
357 fnRegisterSayCmd("skill", "ылшдд", "hns_skill", 4096, "Skill mode");
358 fnRegisterSayCmd("boost", "ищщые", "hns_boost", 4096, "Boost mode");
359 fnRegisterSayCmd("aa10", "10aa", "hns_aa10", 4096, "10аа");
360 fnRegisterSayCmd("фф10", "10фф", "hns_aa10", 4096, "10аа");
361 fnRegisterSayCmd("aa100", "100aa", "hns_aa100", 4096, "100аа");
362 fnRegisterSayCmd("фф100", "100фф", "hns_aa100", 4096, "100аа");
363 fnRegisterSayCmd("rr", "кк", "CmdRestartRound", 4096, "rr");
364 fnRegisterSayCmd("swap", "ыцфз", "hns_swap_teams", 4096, "swap");
365 fnRegisterSayCmd("mix", "ьшч", "hns_mix_menu", 4096, "Main menu admin");
366 fnRegisterSayCmd("pick", "зшсл", "CmdPick", 0, "Pick player");
367 fnRegisterSayCmd("back", "spec", "team_spec", 0, "Spec/Back player");
368 fnRegisterSayCmd("np", "noplay", "CmdNoPlay", 0, "No play");
369 fnRegisterSayCmd("nop", "yaneplay", "CmdNoPlay", 0, "No play");
370 fnRegisterSayCmd("ip", "play", "CmdPlay", 0, "Play play");
371 fnRegisterSayCmd("ip", "yaplay", "CmdPlay", 0, "Play play");
372 cvarFlashNum = register_cvar("hns_flash", "2", 5, 0.00);
373 cvarSmokeNum = register_cvar("hns_smoke", "1", 5, 0.00);
374 cvarLastMode = register_cvar("hns_lastmode", "0", 5, 0.00);
375 cvarAA = register_cvar("hns_aa", "100", 5, 0.00);
376 WhatSemiclip = register_cvar("hns_semiclip", "0", 5, 0.00);
377 cvarGamename = register_cvar("hns_gamename", "Boost / Skill", 0, 0.00);
378 RegisterHookChain(1027, "RoundEnd_Pre", MaxClients);
379 RegisterHookChain(3085, "CBasePlayer_ResetMaxSpeed_Pre", MaxClients);
380 RegisterHookChain("", "CSGameRules_RestartRound_Pre", MaxClients);
381 RegisterHookChain("", "CSGameRules_OnRoundFreezeEnd_Post", "");
382 RegisterHookChain(3072, "CBasePlayer_Spawn_Post", "");
383 RegisterHookChain("", "SV_DropClient_Pre", MaxClients);
384 RegisterHookChain("", "CBasePlayer_Killed_Post", "");
385 RegisterHookChain("", "PlayerBlind", MaxClients);
386 RegisterHookChain(3109, "CBasePlayer_MakeBomber_Pre", MaxClients);
387 Player_Killed_Pre = RegisterHam(Ham_Killed, "player", "fwd_PlayerKilled_Pre", 0, MaxClients);
388 RegisterHam(Ham_Item_Deploy, "weapon_knife", "FwdDeployKnife", 1, MaxClients);
389 RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_knife", "FwdKnifePrim", 0, MaxClients);
390 register_forward(FM_Voice_SetClientListening, "Forward_SetClientListening", 0);
391 register_forward(FM_EmitSound, "fwd_EmitSound_Pre", 0);
392 register_forward(FM_ClientKill, "fwd_ClientKill", 0);
393 unregister_forward(FM_Spawn, g_iRegisterSpawn, 1);
394 register_forward(FM_GetGameDescription, "GameNameDesc", 0);
395 register_menucmd(register_menuid("NadesMenu", 0), 3, "HandleNadesMenu");
396 register_menu("ShowTop", 1023, "ShowTopHandler", 0);
397 register_message(get_user_msgid("HostagePos"), "message_hostage_pos");
398 register_message(get_user_msgid("ShowMenu"), "message_show_menu");
399 register_message(get_user_msgid("VGUIMenu"), "message_vgui_menu");
400 set_msg_block(get_user_msgid("HudTextArgs"), 2);
401 set_task(0.50, "delayed_mode", 0, "", 0, "", 0);
402 new var6 = get_user_msgid("Money");
403 gmsgMoney = var6;
404 set_msg_block(var6, 2);
405 set_task(0.25, "ShowSpeedAsMoney", 15671983, "", 0, "b", 0);
406 g_aPlayersLoadData = ArrayCreate(25, 32);
407 g_tPlayerData = TrieCreate();
408 RegisterMode();
409 LoadPlayers();
410 InitForwards();
411 return 0;
412}
413
414public RegisterMode()
415{
416 g_iHostageEnt = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "hostage_entity"));
417 set_pev(g_iHostageEnt, pev_origin, "");
418 set_pev(g_iHostageEnt, pev_size, "", "");
419 dllfunc(DLLFunc_Spawn, g_iHostageEnt);
420 return 0;
421}
422
423LoadPlayers()
424{
425 !!! Removed Phi
426 if (!equali("", "hnsru_arena", 0))
427 {
428 g_bPlayersListLoaded = PDS_GetString("playerslist", g_sBuffer, 2047);
429 }
430 if (g_bPlayersListLoaded)
431 {
432 if (root_array != JSON:-1 && json_get_type(root_array) == 5)
433 {
434 if (root_array != JSON:-1)
435 {
436 json_free(root_array);
437 }
438 server_print("Root value is not array!");
439 return 0;
440 }
441 DecodeArray(root_array);
442 json_free(root_array);
443 g_flPrepare = get_gametime() + 40;
444 }
445 return 0;
446}
447
448DecodeArray(&JSON:array)
449{
450 new JSON:array_value = 0;
451 new i = 0;
452 while (json_array_get_count(array) > i)
453 {
454 array_value = json_array_get_value(array, i);
455 if (json_get_type(array_value) == 4)
456 {
457 DecodeObject(array_value);
458 }
459 json_free(array_value);
460 i++;
461 }
462 return 0;
463}
464
465DecodeObject(&JSON:object)
466{
467 new key[30];
468 new JSON:obj_value = 0;
469 new TempPlayer[25];
470 new save = 0;
471 new i = 0;
472 while (json_object_get_count(object) > i)
473 {
474 json_object_get_name(object, i, key, "");
475 obj_value = json_object_get_value_at(object, i);
476 switch (json_get_type(obj_value))
477 {
478 case 2:
479 {
480 json_get_string(obj_value, TempPlayer, "");
481 save++;
482 }
483 case 3:
484 {
485 TempPlayer[24] = json_get_number(obj_value);
486 save++;
487 }
488 default:
489 {
490 }
491 }
492 if (save == 2)
493 {
494 ArrayPushArray(g_aPlayersLoadData, TempPlayer, -1);
495 arrayset(TempPlayer, 0, 25);
496 save = 0;
497 }
498 json_free(obj_value);
499 i++;
500 }
501 return 0;
502}
503
504public PDS_Save()
505{
506 if (equali("", "hnsru_arena", 0))
507 {
508 if (g_sBuffer[0][0])
509 {
510 PDS_SetString("playerslist", g_sBuffer);
511 }
512 }
513 return 0;
514}
515
516public plugin_end()
517{
518 TrieDestroy(g_tPlayerData);
519 ArrayDestroy(g_aPlayersLoadData);
520 return 0;
521}
522
523public client_putinserver(id)
524{
525 !!! Removed Phi
526 if (g_iCurrentMode == 4 || g_iCurrentMode == 1)
527 {
528 if (g_iGameStops > g_ePlayerData[id][0][0][8])
529 {
530 if (g_ePlayerData[id][0][0][5])
531 {
532 new var4 = g_ePlayerData[id][0][0];
533 var4[0] = var4[0] - g_ePlayerData[id][0][0][5];
534 g_ePlayerData[id][0][0][5] = 0;
535 }
536 if (g_ePlayerData[id][0][0][6] || g_ePlayerData[id][0][0][7])
537 {
538 g_ePlayerData[id][0][0][1] -= g_ePlayerData[id][0][0][6];
539 g_ePlayerData[id][0][0][2] -= g_ePlayerData[id][0][0][7];
540 g_ePlayerData[id][0][0][6] = 0;
541 g_ePlayerData[id][0][0][7] = 0;
542 SetScoreInfo(id);
543 }
544 }
545 else
546 {
547 if (g_ePlayerData[id][0][0][1] || g_ePlayerData[id][0][0][2])
548 {
549 SetScoreInfo(id);
550 }
551 }
552 if (g_ePlayerData[id][0][0][4] > get_gametime())
553 {
554 new iPlayers[32];
555 new iNum = 0;
556 get_players(iPlayers, iNum, "ce", g_ePlayerData[id][0][0][9]);
557 if (g_eMatchInfo[32][0] > iNum)
558 {
559 set_task(0.50, "task_SetTeam", id + 23456, "", 0, "", 0);
560 }
561 }
562 }
563 else
564 {
565 arrayset(g_ePlayerData[id][0][0], 0, 26);
566 }
567 return 0;
568}
569
570SetScoreInfo(id)
571{
572 set_entvar(id, "", float(g_ePlayerData[id][0][0][1]));
573 set_member(id, "", g_ePlayerData[id][0][0][2]);
574 Msg_Update_ScoreInfo(id);
575 return 0;
576}
577
578public task_SetTeam(id)
579{
580 !!! Removed Phi
581 if (g_iCurrentMode != 4 && g_iCurrentMode != 1)
582 {
583 return 0;
584 }
585 new var2;
586 if (g_ePlayerData[id][0][0][9] == 84)
587 {
588 var2 = 1;
589 }
590 else
591 {
592 var2 = 2;
593 }
594 if (!g_ePlayerData[id][0][0][25] || g_iCurrentMode == 1)
595 {
596 client_print_color(MaxClients, -3, 28064, hns_tag, id);
597 if (g_iCurrentMode == 1)
598 {
599 rg_round_respawn(id);
600 }
601 return 0;
602 }
603 new iPlayers[32];
604 new iNum = 0;
605 new bool:restart_round = 0;
606 get_players(iPlayers, iNum, "ace", g_ePlayerData[id][0][0][9]);
607 new bid = 0;
608 new i = 0;
609 while (i < iNum)
610 {
611 new iPlayer = iPlayers[i];
612 if (get_entvar(iPlayer, "") < 95.00/*1119748096*/)
613 {
614 bid++;
615 i++;
616 }
617 i++;
618 }
619 if (g_eMatchInfo[32][0] - 1 == iNum && !bid)
620 {
621 var5 = 1;
622 }
623 else
624 {
625 var5 = 0;
626 }
627 restart_round = var5;
628 if (restart_round)
629 {
630 RestartRound(0.50);
631 }
632 new var6;
633 if (restart_round)
634 {
635 var6 = 28268;
636 }
637 else
638 {
639 var6 = 28336;
640 }
641 client_print_color(MaxClients, -3, 28172, hns_tag, id, var6);
642 return 0;
643}
644
645public SV_DropClient_Pre(id, bool:crash)
646{
647 !!! Removed Phi
648 if (!is_entity(id))
649 {
650 return 0;
651 }
652 if ((get_member(id, "") == 1 || get_member(id, "") == 2) && (g_iCurrentMode == 4 || g_iCurrentMode == 1))
653 {
654 if (get_entvar(id, "") >= 95.00/*1119748096*/ && g_iCurrentMode != 1)
655 {
656 var5 = 1;
657 }
658 else
659 {
660 var5 = 0;
661 }
662 g_ePlayerData[id][0][0][25] = var5;
663 new var6;
664 if (get_member(id, "") == 1)
665 {
666 var6 = 28356;
667 }
668 else
669 {
670 var6 = 28396;
671 }
672 if (g_eRoundData[id][0][0][0] || g_eRoundData[id][0][0][1])
673 {
674 g_ePlayerData[id][0][0][6] = g_eRoundData[id][0][0][0];
675 g_ePlayerData[id][0][0][7] = g_eRoundData[id][0][0][1];
676 }
677 g_ePlayerData[id][0][0][8] = g_iGameStops;
678 client_print_color(MaxClients, -3, 28408, hns_tag, id);
679 }
680 GetKey(id);
681 TrieSetArray(g_tPlayerData, Heap_96, g_ePlayerData[id][0][0], 26, "");
682 return 0;
683}
684
685InitForwards()
686{
687 g_hForwards[0] = CreateMultiForward("cultura_match_started", 3, 2, 0, 0, 2, 0);
688 g_hForwards[1] = CreateMultiForward("cultura_match_stopped", 3, 0, 0);
689 g_hForwards[2] = CreateMultiForward("cultura_match_finished", 3, 2, 0, 0);
690 g_hForwards[3] = CreateMultiForward("cultura_match_surrendered", 3, 0, 0);
691 return 0;
692}
693
694public plugin_natives()
695{
696 register_native("cultura_get_prefix", "native_get_prefix", 0);
697 register_native("cultura_get_access", "native_get_access", 0);
698 register_native("cultura_restart_round", "native_restart_round", 0);
699 register_native("cultura_get_mode", "native_get_mode", 0);
700 register_native("cultura_set_mode", "native_set_mode", 0);
701 register_native("cultura_stop_current_mode", "native_stop_current_mode", 0);
702 register_native("cultura_pause_mix", "native_pause_mix", 0);
703 register_native("cultura_unpause_mix", "native_unpause_mix", 0);
704 register_native("cultura_get_semiclip", "native_get_semiclip", 0);
705 register_native("cultura_get_kills", "native_get_kills", 0);
706 register_native("cultura_get_deaths", "native_get_deaths", 0);
707 register_native("cultura_get_survive_time", "native_get_survive_time", 0);
708 return 0;
709}
710
711public native_get_prefix(amxx, params)
712{
713 set_string(1, hns_tag, get_param(2));
714 return 0;
715}
716
717public native_get_access(amxx, params)
718{
719 return 4096;
720}
721
722public native_restart_round(amxx, params)
723{
724 new Float:flDelay = get_param_f(1);
725 if (!flDelay)
726 {
727 RestartRound(0.50);
728 }
729 else
730 {
731 RestartRound(flDelay);
732 }
733 return 0;
734}
735
736public native_get_mode(amxx, params)
737{
738 return g_iCurrentMode;
739}
740
741public native_set_mode(amxx, params)
742{
743 g_iCurrentMode = get_param(1);
744 PrepareMode(1);
745 return 0;
746}
747
748public native_stop_current_mode(amxx, params)
749{
750 CmdStop(0);
751 return 0;
752}
753
754public native_pause_mix(amxx, params)
755{
756 hns_startpause(0);
757 return 0;
758}
759
760public native_unpause_mix(amxx, params)
761{
762 hns_unpause(0);
763 return 0;
764}
765
766public native_get_semiclip(amxx, params)
767{
768 return g_bSemiclip;
769}
770
771public native_get_kills(amxx, params)
772{
773 return g_ePlayerData[get_param(1)][0][0][1];
774}
775
776public native_get_deaths(amxx, params)
777{
778 return g_ePlayerData[get_param(1)][0][0][2];
779}
780
781public Float:native_get_survive_time(amxx, params)
782{
783 return g_ePlayerData[get_param(1)][0][0][0];
784}
785
786public CBasePlayer_MakeBomber_Pre(this)
787{
788 SetHookChainReturn("", 0);
789 return 1;
790}
791
792public RoundEnd_Pre(WinStatus:status, ScenarioEventEndRound:event, Float:tmDelay)
793{
794 !!! Removed Phi
795 if (event == ScenarioEventEndRound:12 || event == ScenarioEventEndRound:13)
796 {
797 SetHookChainArg("", MaxClients, 2);
798 SetHookChainArg("", MaxClients, 4);
799 return 0;
800 }
801 if (event == ScenarioEventEndRound:16)
802 {
803 set_member_game("", 1);
804 SetHookChainReturn("", 0);
805 return 1;
806 }
807 switch (g_iCurrentMode)
808 {
809 case 2:
810 {
811 if (g_bCaptainsBattle)
812 {
813 if (status == WinStatus:1)
814 {
815 g_iCaptainPick = g_iCaptain[1][0];
816 }
817 else
818 {
819 g_iCaptainPick = g_iCaptain[0][0];
820 }
821 fmt("Captain %n win!", g_iCaptainPick);
822 Task_Hud(0, 2.00, 1, 100, 100, 100, 3.00, Heap_1024);
823 PrepareMode(3);
824 g_bCaptainsBattle = 0;
825 MenuPick();
826 menu_display(g_iCaptainPick, g_iPickMenu, 0, -1);
827 }
828 else
829 {
830 if (status == WinStatus:1)
831 {
832 SwitchTeams();
833 }
834 Task_Hud(0, 2.00, 1, 100, 100, 100, 3.00, "Team Terrorist Win");
835 SavePlayers();
836 PrepareMode(0);
837 }
838 }
839 case 4:
840 {
841 if (status == WinStatus:1)
842 {
843 Survival = 0;
844 iCurrentSW = !iCurrentSW;
845 SwitchTeams();
846 }
847 }
848 case 5:
849 {
850 if (status == WinStatus:1)
851 {
852 SwitchTeams();
853 }
854 }
855 case 6:
856 {
857 if (g_bCaptainsBattle)
858 {
859 if (status == WinStatus:1)
860 {
861 g_iCaptainPick = g_iCaptain[1][0];
862 }
863 else
864 {
865 g_iCaptainPick = g_iCaptain[0][0];
866 }
867 fmt("Captain %n win!", g_iCaptainPick);
868 Task_Hud(0, 2.00, 1, 100, 100, 100, 3.00, Heap_1024);
869 PrepareMode(3);
870 g_bCaptainsBattle = 0;
871 MenuPick();
872 menu_display(g_iCaptainPick, g_iPickMenu, 0, -1);
873 }
874 else
875 {
876 if (status == WinStatus:1)
877 {
878 SwitchTeams();
879 }
880 Task_Hud(0, 2.00, 1, 100, 100, 100, 3.00, "Team Terrorist Win");
881 SavePlayers();
882 PrepareMode(0);
883 }
884 }
885 default:
886 {
887 }
888 }
889 return 0;
890}
891
892public CmdSurrender(id)
893{
894 !!! Removed Phi
895 if (!is_user_connected(id))
896 {
897 return 0;
898 }
899 if (g_iCurrentMode != 4 && g_iCurrentMode != 1)
900 {
901 return 0;
902 }
903 if (!PlayerInMatch(id))
904 {
905 return 0;
906 }
907 if (g_eSurrenderData[0][0])
908 {
909 return 0;
910 }
911 if (g_eSurrenderData[2][0] > get_gametime())
912 {
913 secondsToDHM(floatround(g_eSurrenderData[2][0] - get_gametime(), floatround_floor));
914 client_print_color(id, -3, 30936, hns_tag, Heap_128);
915 return 0;
916 }
917 new iPlayers[32];
918 new iNum = 0;
919 new var2;
920 if (get_member(id, "") == 1)
921 {
922 var2[0] = 31060;
923 }
924 else
925 {
926 var2[0] = 31100;
927 }
928 get_players(iPlayers, iNum, "ce", var2);
929 if (g_eMatchInfo[32][0] != iNum)
930 {
931 return 0;
932 }
933 g_eSurrenderData[0] = 1;
934 g_eSurrenderData[1] = id;
935 g_eSurrenderData[2] = get_gametime() + 120;
936 new var3;
937 if (get_member(id, "") == 1)
938 {
939 var3 = 31312;
940 }
941 else
942 {
943 var3 = 31356;
944 }
945 client_print_color(MaxClients, -3, 31112, hns_tag, id, var3);
946 new i = 0;
947 while (i < iNum)
948 {
949 new iPlayer = iPlayers[i];
950 MenuSurrender(iPlayer);
951 i++;
952 }
953 set_task(1.00, "task_Surrender", 35671, "", 0, "b", 0);
954 return 0;
955}
956
957public task_Surrender()
958{
959 !!! Removed Phi
960 new id = g_eSurrenderData[1][0];
961 new iPlayers[32];
962 new iNum = 0;
963 new var1;
964 if (get_member(id, "") == 1)
965 {
966 var1[0] = 31452;
967 }
968 else
969 {
970 var1[0] = 31492;
971 }
972 get_players(iPlayers, iNum, "ce", var1);
973 if (!is_user_connected(id))
974 {
975 ResetSurrenderData();
976 return 0;
977 }
978 if (g_iCurrentMode != 4 && g_iCurrentMode != 1)
979 {
980 ResetSurrenderData();
981 return 0;
982 }
983 if (get_member(id, "") == 3)
984 {
985 ResetSurrenderData();
986 return 0;
987 }
988 if (g_eMatchInfo[32][0] != iNum)
989 {
990 ResetSurrenderData();
991 return 0;
992 }
993 if (g_eMatchInfo[32][0] == g_iSurrenderVotes[0][0])
994 {
995 AutoLose(get_member(id, ""));
996 ResetSurrenderData();
997 return 0;
998 }
999 if (g_eMatchInfo[32][0] == g_iSurrenderVotes[1][0])
1000 {
1001 ResetSurrenderData();
1002 return 0;
1003 }
1004 if (g_eSurrenderData[3][0] == 10)
1005 {
1006 new i = 0;
1007 while (i < iNum)
1008 {
1009 new iPlayer = iPlayers[i];
1010 client_print_color(iPlayer, -3, 31504, hns_tag, 17184 + 128, 17184 + 128);
1011 i++;
1012 }
1013 ResetSurrenderData();
1014 return 0;
1015 }
1016 new var3 = g_eSurrenderData[3];
1017 var3 = var3[0] + 1.00;
1018 return 0;
1019}
1020
1021public MenuSurrender(id)
1022{
1023 !!! Removed Phi
1024 if (!is_user_connected(id))
1025 {
1026 return 0;
1027 }
1028 if (g_iCurrentMode != 4 && g_iCurrentMode != 1)
1029 {
1030 return 0;
1031 }
1032 if (!PlayerInMatch(id))
1033 {
1034 return 0;
1035 }
1036 new iPlayer = g_eSurrenderData[1][0];
1037 if (get_member(iPlayer, "") != get_member(id, ""))
1038 {
1039 return 0;
1040 }
1041 new menu;
1042 fmt("\rSurrender?\n\dVote by %n", iPlayer);
1043 menu = menu_create(Heap_1024, "SurrenderHandler", 0);
1044 menu_additem(menu, "Yes", "", 0, -1);
1045 menu_additem(menu, "No", "", 0, -1);
1046 menu_setprop(menu, 6, -1);
1047 menu_display(id, menu, 0, -1);
1048 return 0;
1049}
1050
1051public SurrenderHandler(id, menu, item)
1052{
1053 !!! Removed Phi
1054 menu_destroy(menu);
1055 if (!is_user_connected(id))
1056 {
1057 return 0;
1058 }
1059 if (item == -3)
1060 {
1061 return 0;
1062 }
1063 if (g_iCurrentMode != 4 && g_iCurrentMode != 1)
1064 {
1065 return 0;
1066 }
1067 if (!PlayerInMatch(id))
1068 {
1069 return 0;
1070 }
1071 new iPlayer = g_eSurrenderData[1][0];
1072 if (get_member(iPlayer, "") != get_member(id, ""))
1073 {
1074 return 0;
1075 }
1076 if (g_bSurrenderVoted[id][0][0])
1077 {
1078 return 0;
1079 }
1080 g_iSurrenderVotes[item]++;
1081 g_bSurrenderVoted[id] = 1;
1082 return 0;
1083}
1084
1085AutoLose(TeamName:iTeam)
1086{
1087 new var1;
1088 if (iTeam == TeamName:1)
1089 {
1090 var1 = 31960;
1091 }
1092 else
1093 {
1094 var1 = 32004;
1095 }
1096
1097/ * ERROR! Не удалось привести тип объекта "Lysis.DSentinel" к типу "Lysis.DReturn". * /
1098 function "AutoLose"
1099AutoLose(TeamName:iTeam)
1100
1101ResetSurrenderData()
1102{
1103 new iPlayers[32];
1104 new iNum = 0;
1105 get_players(iPlayers, iNum, "c", "");
1106 new i = 0;
1107 while (i < iNum)
1108 {
1109 new id = iPlayers[i];
1110 g_bSurrenderVoted[id] = 0;
1111 i++;
1112 }
1113 arrayset("", 0, 2);
1114 arrayset("", 0, 4);
1115 remove_task(35671, 0);
1116 return 0;
1117}
1118
1119bool:PlayerInMatch(id)
1120{
1121 !!! Removed Phi
1122 if (g_iCurrentMode != 4 && g_iCurrentMode != 1)
1123 {
1124 return false;
1125 }
1126 new iPlayers[32];
1127 new iNum = 0;
1128 get_players(iPlayers, iNum, "c", "");
1129 new i = 0;
1130 while (i < iNum)
1131 {
1132 new iPlayer = iPlayers[i];
1133 if (!(get_member(iPlayer, "") == 3))
1134 {
1135 if (iPlayer == id)
1136 {
1137 return true;
1138 }
1139 }
1140 i++;
1141 }
1142 return false;
1143}
1144
1145public delayed_mode()
1146{
1147 if (equali("hnsru_arena", "", 0))
1148 {
1149 PrepareMode(0);
1150 }
1151 else
1152 {
1153 if (!get_pcvar_num(cvarLastMode))
1154 {
1155 PrepareMode(0);
1156 }
1157 PrepareMode(5);
1158 }
1159 return 0;
1160}
1161
1162public ShowSpeedAsMoney()
1163{
1164 !!! Removed Phi
1165 if (Survival)
1166 {
1167 static id;
1168 static num;
1169 static players[32];
1170 get_players("", num, "ac", "");
1171 num += -1;
1172 while (0 <= num)
1173 {
1174 id = players[num][0][0];
1175 message_begin(MSG_ONE, gmsgMoney, 32276, id);
1176 write_long(floatround(get_pcvar_float(g_Captime) * 60.00 - flSidesTime[iCurrentSW][0][0], floatround_floor));
1177 write_byte(0);
1178 message_end();
1179 num += -1;
1180 }
1181 }
1182 return 0;
1183}
1184
1185public GameNameDesc()
1186{
1187 static gamename[32];
1188 get_pcvar_string(cvarGamename, gamename, 31);
1189 forward_return(1, gamename);
1190 return 4;
1191}
1192
1193public CmdNoPlay(id)
1194{
1195 new var2 = g_ePlayerData[id][0][0][3];
1196 new var1;
1197 if (get_gametime() > var2)
1198 {
1199 new var3 = plr_noplay;
1200 if (!var3[id][0][0])
1201 {
1202 g_ePlayerData[id][0][0][3] = get_gametime() + 30.00;
1203 plr_noplay[id] = 1;
1204 new sz_name[64];
1205 get_user_name(id, sz_name, 63);
1206 client_print_color(MaxClients, -3, 32416, hns_tag, sz_name);
1207 var1 = sz_name;
1208 }
1209 var1 = var3;
1210 }
1211 else
1212 {
1213 var1 = var2;
1214 }
1215 return 0;
1216}
1217
1218public CmdPlay(id)
1219{
1220 new var2 = g_ePlayerData[id][0][0][3];
1221 new var1;
1222 if (get_gametime() > var2)
1223 {
1224 new var3 = plr_noplay;
1225 if (var3[id][0][0])
1226 {
1227 g_ePlayerData[id][0][0][3] = get_gametime() + 30.00;
1228 plr_noplay[id] = 0;
1229 new sz_name[64];
1230 get_user_name(id, sz_name, 63);
1231 client_print_color(MaxClients, -3, 32540, hns_tag, sz_name);
1232 var1 = sz_name;
1233 }
1234 var1 = var3;
1235 }
1236 else
1237 {
1238 var1 = var2;
1239 }
1240 return 0;
1241}
1242
1243public sayHandle(id)
1244{
1245 !!! Removed Phi
1246 new szArgs[64];
1247 read_args(szArgs, 63);
1248 remove_quotes(szArgs);
1249 trim(szArgs);
1250 if (!szArgs[0])
1251 {
1252 return 1;
1253 }
1254 if (equali(szArgs, "abunai", 0))
1255 {
1256 new Float:fCommandDelay = 120.00/*1123024896*/;
1257 if (g_flAbunaiDelay > get_gametime())
1258 {
1259 return 0;
1260 }
1261 rg_send_audio(MaxClients, SOUND_ABUNAI, 100);
1262 g_flAbunaiDelay = get_gametime() + fCommandDelay;
1263 }
1264 if (szArgs[0] != 47)
1265 {
1266 return 0;
1267 }
1268 new szTarget[32];
1269 parse(szArgs, szArgs, 63, szTarget, 31);
1270 if (equali(szArgs, "/wintime", 8))
1271 {
1272 trim(szTarget);
1273 if (!get_user_flags(id, 0) & 4096)
1274 {
1275 return 1;
1276 }
1277 if (is_str_num(szTarget))
1278 {
1279 set_pcvar_num(g_Captime, str_to_num(szTarget));
1280 new sz_name[64];
1281 get_user_name(id, sz_name, 63);
1282 client_print_color(MaxClients, -3, 32720, hns_tag, sz_name, str_to_num(szTarget));
1283 }
1284 return 0;
1285 }
1286 if (equali(szArgs, "/roundtime", 10))
1287 {
1288 trim(szTarget);
1289 if (!get_user_flags(id, 0) & 4096)
1290 {
1291 return 1;
1292 }
1293 if (is_str_num(szTarget))
1294 {
1295 set_pcvar_float(g_pRoundTime, str_to_float(szTarget));
1296 new sz_name[64];
1297 get_user_name(id, sz_name, 63);
1298 client_print_color(MaxClients, -3, 32900, hns_tag, sz_name, str_to_float(szTarget));
1299 }
1300 return 0;
1301 }
1302 if (equali(szArgs, "/tt", 10))
1303 {
1304 trim(szTarget);
1305 if (!get_user_flags(id, 0) & 4096)
1306 {
1307 return 1;
1308 }
1309 if (is_str_num(szTarget))
1310 {
1311 new Float:time = str_to_float(szTarget);
1312 new minutes = floatround(time, floatround_floor);
1313 new seconds = floatround(time - minutes * 100, floatround_round);
1314 flSidesTime[iCurrentSW] = get_pcvar_float(g_Captime) - seconds / 60.00/*1114636288*/ + minutes * 60.00;
1315 client_print_color(MaxClients, -3, 33068, hns_tag, id, str_to_float(szTarget));
1316 }
1317 return 0;
1318 }
1319 if (equali(szArgs, "/ct", 10))
1320 {
1321 trim(szTarget);
1322 if (!get_user_flags(id, 0) & 4096)
1323 {
1324 return 1;
1325 }
1326 if (is_str_num(szTarget))
1327 {
1328 new Float:time = str_to_float(szTarget);
1329 new minutes = floatround(time, floatround_floor);
1330 new seconds = floatround(time - minutes * 100, floatround_round);
1331 flSidesTime[!iCurrentSW] = get_pcvar_float(g_Captime) - seconds / 60.00/*1114636288*/ + minutes * 60.00;
1332 client_print_color(MaxClients, -3, 33268, hns_tag, id, str_to_float(szTarget));
1333 }
1334 return 0;
1335 }
1336 return 0;
1337}
1338
1339public PlayerBlind(index, inflictor, attacker, Float:fadeTime, Float:fadeHold, alpha, Float:color[3])
1340{
1341 !!! Removed Phi
1342 if (get_member(index, "") == 1 || get_member(index, "") == 3)
1343 {
1344 return 1;
1345 }
1346 return 0;
1347}
1348
1349public message_hostage_pos(msgid, dest, id)
1350{
1351 return 1;
1352}
1353
1354public message_show_menu(msgid, dest, id)
1355{
1356 if (!should_autojoin(id))
1357 {
1358 return 0;
1359 }
1360 static team_select[13] =
1361 {
1362 35, 84, 101, 97, 109, 95, 83, 101, 108, 101, 99, 116, 0
1363 }
1364 static menu_text_code[13];
1365 get_msg_arg_string(4, "", 12);
1366 if (!equal("", "#Team_Select", 0))
1367 {
1368 return 0;
1369 }
1370 set_force_team_join_task(id, msgid);
1371 return 1;
1372}
1373
1374public message_vgui_menu(msgid, dest, id)
1375{
1376 !!! Removed Phi
1377 if (get_msg_arg_int(1) == 2 && !should_autojoin(id))
1378 {
1379 return 0;
1380 }
1381 set_force_team_join_task(id, msgid);
1382 return 1;
1383}
1384
1385
1386set_force_team_join_task(id, menu_msgid)
1387{
1388 static param_menu_msgid[2];
1389 param_menu_msgid[0] = menu_msgid;
1390 set_task(0.10, "task_force_team_join", id, "", 2, "", 0);
1391 return 0;
1392}
1393
1394public task_force_team_join(String:menu_msgid[], id)
1395{
1396 new var1 = Heap_4;
1397 var1[0] = 33556;
1398 if (get_user_team(id, var1, 0))
1399 {
1400 return 0;
1401 }
1402 force_team_join(id, menu_msgid[0], "5", "5");
1403 return 0;
1404}
1405
1406force_team_join(id, menu_msgid, String:team[], String:class[])
1407{
1408 static jointeam[9] =
1409 {
1410 106, 111, 105, 110, 116, 101, 97, 109, 0
1411 }
1412 if (class[0] == 48)
1413 {
1414 engclient_cmd(id, "jointeam", team, "");
1415 return 0;
1416 }
1417 static joinclass[10] =
1418 {
1419 106, 111, 105, 110, 99, 108, 97, 115, 115, 0
1420 }
1421 static msg_block;
1422 msg_block = get_msg_block(menu_msgid);
1423 set_msg_block(menu_msgid, 2);
1424 engclient_cmd(id, "jointeam", team, "");
1425 engclient_cmd(id, "joinclass", class, "");
1426 set_msg_block(menu_msgid, msg_block);
1427 set_task(0.10, "SetPlayerTeam", id, "", 0, "", 0);
1428 return 0;
1429}
1430
1431public SetPlayerTeam(id)
1432{
1433 !!! Removed Phi
1434 if (!is_user_connected(id))
1435 {
1436 return 0;
1437 }
1438 if (g_iCurrentMode >= 1 && g_iCurrentMode != 5)
1439 {
1440 TransferToSpec(id);
1441 return 0;
1442 }
1443 if (!g_iCurrentMode)
1444 {
1445 if (equali("", "hnsru_arena", 0))
1446 {
1447 rg_round_respawn(id);
1448 return 0;
1449 }
1450 if (g_bPlayersListLoaded && g_flPrepare > get_gametime())
1451 {
1452 if (!CheckPlayer(id))
1453 {
1454 TransferToSpec(id);
1455 }
1456 else
1457 {
1458 rg_round_respawn(id);
1459 }
1460 }
1461 rg_round_respawn(id);
1462 }
1463 return 0;
1464}
1465
1466public BlockCmd(id)
1467{
1468 if (g_iCurrentMode)
1469 {
1470 return 1;
1471 }
1472 return 0;
1473}
1474
1475public team_spec(id)
1476{
1477 if (g_iCurrentMode != 5)
1478 {
1479 return 0;
1480 }
1481 g_bSpec[id] = !g_bSpec[id][0][0];
1482 new var1;
1483 if (g_bSpec[id][0][0])
1484 {
1485 if (get_member(id, "") == 3)
1486 {
1487 g_bSpec[id] = 0;
1488 return 0;
1489 }
1490 new var2 = hTeam[id];
1491 var2 = get_member(id, "");
1492 TransferToSpec(id);
1493 var1 = var2;
1494 }
1495 else
1496 {
1497 if (get_member(id, "") != 3)
1498 {
1499 g_bSpec[id] = 1;
1500 return 0;
1501 }
1502 new var3 = hTeam;
1503 rg_set_user_team(id, var3[id][0][0], "", "");
1504 var1 = var3;
1505 }
1506 return 0;
1507}
1508
1509public fwd_EmitSound_Pre(id, iChannel, String:szSample[], Float:volume, Float:attenuation, fFlags, pitch)
1510{
1511 !!! Removed Phi
1512 if (equal(szSample, "weapons/knife_deploy1.wav", 0))
1513 {
1514 return 4;
1515 }
1516 if (is_user_alive(id) && get_member(id, "") == 1 && equal(szSample, "common/wpn_denyselect.wav", 0))
1517 {
1518 emit_sound(id, iChannel, g_szUseSound, volume, attenuation, fFlags, pitch);
1519 return 4;
1520 }
1521 return 1;
1522}
1523
1524public fwd_ClientKill(id)
1525{
1526 new sz_name[64];
1527 get_user_name(id, sz_name, 63);
1528 client_print_color(id, -3, 33960, hns_tag, sz_name);
1529 return 0;
1530}
1531
1532public CBasePlayer_Killed_Post(victim, attacker, gib)
1533{
1534 if (!is_user_connected(attacker))
1535 {
1536 return 0;
1537 }
1538 if (g_iCurrentMode != 4)
1539 {
1540 return 0;
1541 }
1542 g_ePlayerData[victim][0][0][2]++;
1543 g_eRoundData[victim][0][0][1]++;
1544 if (victim == attacker)
1545 {
1546 return 0;
1547 }
1548 g_ePlayerData[attacker][0][0][1]++;
1549 g_eRoundData[attacker][0][0]++;
1550 return 0;
1551}
1552
1553public fwd_PlayerKilled_Pre(id)
1554{
1555 !!! Removed Phi
1556 if (get_member(id, "") != 1)
1557 {
1558 return 0;
1559 }
1560 if (g_iCurrentMode == 4 || g_iCurrentMode == 5)
1561 {
1562 new players[32];
1563 new num = 0;
1564 new index = 0;
1565 get_players(players, num, "ace", "TERRORIST");
1566 if (num == 1)
1567 {
1568 index = players[0];
1569 g_bLastFlash[index] = 1;
1570 g_iGiveNadesTo = index;
1571 show_menu(index, 3, "\rDo you need some nades?\n\n\r1. \wYes\n\r2. \wNo", -1, "NadesMenu");
1572 DisableHamForward(Player_Killed_Pre);
1573 }
1574 }
1575 return 0;
1576}
1577
1578public HandleNadesMenu(id, key)
1579{
1580 !!! Removed Phi
1581 if (!g_bLastFlash[id][0][0] || g_iGiveNadesTo == id || !is_user_alive(id) || get_member(id, "") == 1)
1582 {
1583 return 0;
1584 }
1585 if (!key)
1586 {
1587 if (user_has_weapon(id, 9, -1))
1588 {
1589 rg_set_user_bpammo(id, "", rg_get_user_bpammo(id, "") + 1);
1590 }
1591 else
1592 {
1593 rg_give_item(id, "weapon_smokegrenade", MaxClients);
1594 }
1595 if (get_pcvar_num(WhatSemiclip) && g_iCurrentMode == 4)
1596 {
1597 if (user_has_weapon(id, 4, -1))
1598 {
1599 rg_set_user_bpammo(id, NULL_STRING, rg_get_user_bpammo(id, NULL_STRING) + 1);
1600 }
1601 rg_give_item(id, "weapon_hegrenade", MaxClients);
1602 client_print_color(id, -3, 34296, hns_tag);
1603 }
1604 if (user_has_weapon(id, 25, -1))
1605 {
1606 rg_set_user_bpammo(id, "", rg_get_user_bpammo(id, "") + 1);
1607 }
1608 rg_give_item(id, "weapon_flashbang", MaxClients);
1609 }
1610 g_bLastFlash[id] = 0;
1611 g_iGiveNadesTo = 0;
1612 return 0;
1613}
1614
1615public fwdSpawn(entid)
1616{
1617 !!! Removed Phi
1618 static szClassName[32];
1619 if (pev_valid(entid))
1620 {
1621 pev(entid, pev_classname, szClassName, 31);
1622 if (equal("", "func_buyzone", 0))
1623 {
1624 engfunc(EngFunc_RemoveEntity, entid);
1625 }
1626 new i = 0;
1627 while (i < 9)
1628 {
1629 if (equal("", g_szDefaultEntities[i][0][0], 0))
1630 {
1631 engfunc(EngFunc_RemoveEntity, entid);
1632 }
1633 i++;
1634 }
1635 }
1636 return 0;
1637}
1638
1639public hns_hud_paused()
1640{
1641 if (g_iCurrentMode == 1)
1642 {
1643 set_dhudmessage(100, 100, 100, -1.00/*-1082130432*/, 0.70/*1060320051*/, MaxClients, MaxClients, 1.01/*1065437102*/, MaxClients, MaxClients);
1644 show_dhudmessage(MaxClients, "GAME PAUSE");
1645 }
1646 return 0;
1647}
1648
1649ResetPlayerRoundData(id)
1650{
1651 !!! Removed Phi
1652 if (get_member(id, "") == 1)
1653 {
1654 new var2 = g_ePlayerData[id][0][0];
1655 var2[0] = var2[0] - g_flRoundTime;
1656 }
1657 if (g_eRoundData[id][0][0][0] || g_eRoundData[id][0][0][1])
1658 {
1659 g_ePlayerData[id][0][0][1] -= g_eRoundData[id][0][0][0];
1660 g_ePlayerData[id][0][0][2] -= g_eRoundData[id][0][0][1];
1661 SetScoreInfo(id);
1662 }
1663 return 0;
1664}
1665
1666public hns_startpause(id)
1667{
1668 !!! Removed Phi
1669 if (id && ~get_user_flags(id, 0) & 4096)
1670 {
1671 return 1;
1672 }
1673 if (g_iCurrentMode == 4)
1674 {
1675 if (id)
1676 {
1677 g_iGameStops += 1;
1678 }
1679 new iPlayers[32];
1680 new iNum = 0;
1681 get_players(iPlayers, iNum, "c", "");
1682 g_iCurrentMode = 1;
1683 if (GameStarted)
1684 {
1685 new var2 = flSidesTime[iCurrentSW];
1686 var2 = var2[0][0] - g_flRoundTime;
1687 new i = 0;
1688 while (i < iNum)
1689 {
1690 new iPlayer = iPlayers[i];
1691 ResetPlayerRoundData(iPlayer);
1692 i++;
1693 }
1694 Survival = 0;
1695 GameStarted = 0;
1696 }
1697 else
1698 {
1699 if (id)
1700 {
1701 client_print_color(id, -3, 34788, hns_tag);
1702 }
1703 }
1704 get_players(iPlayers, iNum, "ac", "");
1705 new i = 0;
1706 while (i < iNum)
1707 {
1708 new iPlayer = iPlayers[i];
1709 rg_remove_all_items(iPlayer, MaxClients);
1710 rg_give_item(iPlayer, "weapon_knife", MaxClients);
1711 rg_set_user_godmode(iPlayer, 1);
1712 rg_reset_maxspeed(iPlayer);
1713 i++;
1714 }
1715 set_task(1.00, "hns_hud_paused", 0, "", 0, "b", 0);
1716 set_dhudmessage(100, 100, 100, -1.00/*-1082130432*/, 0.70/*1060320051*/, MaxClients, MaxClients, MaxClients, 1.05/*1065772646*/, MaxClients);
1717 show_dhudmessage(MaxClients, "GAME PAUSE");
1718 if (id)
1719 {
1720 new hns_name[32];
1721 get_user_name(id, hns_name, 31);
1722 client_print_color(MaxClients, -3, 35176, hns_tag, hns_name);
1723 }
1724 rg_send_audio(MaxClients, "fvox/activated.wav", 100);
1725 }
1726 return 1;
1727}
1728
1729public hns_unpause(id)
1730{
1731 !!! Removed Phi
1732 if (id && ~get_user_flags(id, 0) & 4096)
1733 {
1734 return 1;
1735 }
1736 if (g_iCurrentMode == 1)
1737 {
1738 g_iCurrentMode = 4;
1739 if (id)
1740 {
1741 new hns_name[32];
1742 get_user_name(id, hns_name, 31);
1743 client_print_color(MaxClients, -3, 35348, hns_tag, hns_name);
1744 }
1745 rg_send_audio(MaxClients, "fvox/deactivated.wav", 100);
1746 GameStarted = 1;
1747 Task_Hud(0, 1.00, 1, 100, 100, 100, 3.00, "Game Unpause\nLive Live Live");
1748 RestartRound(0.50);
1749 remove_hook(id);
1750 if (get_pcvar_num(WhatSemiclip) == 1)
1751 {
1752 enable_semiclip(3);
1753 server_cmd("mp_freezetime 5");
1754 }
1755 server_cmd("mp_freezetime 15");
1756 disable_semiclip();
1757 }
1758 return 1;
1759}
1760
1761public hns_swap_teams(id, level, cid)
1762{
1763 if (!cmd_access(id, level, cid, 1, false))
1764 {
1765 return 1;
1766 }
1767 new hns_name[32];
1768 get_user_name(id, hns_name, 31);
1769 client_print_color(MaxClients, -3, 35780, hns_tag, hns_name);
1770 iCurrentSW = !iCurrentSW;
1771 SwitchTeams();
1772 RestartRound(0.50);
1773 if (g_iCurrentMode == 4)
1774 {
1775 g_iGameStops += 1;
1776 }
1777 return 1;
1778}
1779
1780public CmdRestartRound(id, level, cid)
1781{
1782 if (!cmd_access(id, level, cid, 1, false))
1783 {
1784 return 1;
1785 }
1786 new hns_name[32];
1787 get_user_name(id, hns_name, 31);
1788 client_print_color(MaxClients, -3, 35856, hns_tag, hns_name);
1789 RestartRound(0.50);
1790 if (g_iCurrentMode == 4)
1791 {
1792 g_iGameStops += 1;
1793 }
1794 return 1;
1795}
1796
1797public hns_pub(id, level, cid)
1798{
1799 !!! Removed Phi
1800 if (!cmd_access(id, level, cid, 1, false))
1801 {
1802 return 1;
1803 }
1804 new hns_name[32];
1805 get_user_name(id, hns_name, 31);
1806 if (g_iCurrentMode != 5)
1807 {
1808 if (g_iCurrentMode != 4 && g_iCurrentMode != 2 && g_iCurrentMode != 1 && g_iCurrentMode != 6)
1809 {
1810 PrepareMode(5);
1811 client_print_color(MaxClients, -3, 35936, hns_tag, hns_name);
1812 }
1813 }
1814 else
1815 {
1816 client_print_color(id, -3, 36072, hns_tag, hns_name);
1817 }
1818 if (containi("", "boost") != -1)
1819 {
1820 disable_semiclip();
1821 }
1822 else
1823 {
1824 enable_semiclip(3);
1825 }
1826 remove_hook(id);
1827 return 1;
1828}
1829
1830public hns_pub_off(id, level, cid)
1831{
1832 if (!cmd_access(id, level, cid, 1, false))
1833 {
1834 return 1;
1835 }
1836 new hns_name[32];
1837 get_user_name(id, hns_name, 31);
1838 if (g_iCurrentMode == 5)
1839 {
1840 g_iCurrentMode = 0;
1841 enable_semiclip(0);
1842 server_cmd("mp_forcechasecam 2");
1843 server_cmd("mp_forcecamera 2");
1844 server_cmd("hns_switch 0");
1845 server_cmd("mp_roundtime 99");
1846 set_cvar_num("mp_freezetime", 0);
1847 server_cmd("hns_flash 0");
1848 server_cmd("mp_autoteambalance 0");
1849 new iPlayers[32];
1850 new iNum = 0;
1851 get_players(iPlayers, iNum, "ac", "");
1852 new i = 0;
1853 while (i < iNum)
1854 {
1855 new iPlayer = iPlayers[i];
1856 rg_remove_all_items(iPlayer, MaxClients);
1857 rg_give_item(iPlayer, "weapon_knife", MaxClients);
1858 rg_reset_maxspeed(iPlayer);
1859 rg_set_user_godmode(iPlayer, 1);
1860 i++;
1861 }
1862 client_print_color(MaxClients, -3, 36764, hns_tag, hns_name);
1863 }
1864 else
1865 {
1866 client_print_color(id, -3, 36896, hns_tag, hns_name);
1867 }
1868 remove_hook(id);
1869 return 1;
1870}
1871
1872public hns_transfer_spec(id)
1873{
1874 if (!get_user_flags(id, 0) & 4096)
1875 {
1876 return 1;
1877 }
1878 new hns_name[32];
1879 get_user_name(id, hns_name, 31);
1880 client_print_color(MaxClients, -3, 37036, hns_tag, hns_name);
1881 TransferPlayers(TeamName:3);
1882 return 1;
1883}
1884
1885public hns_transfer_tt(id)
1886{
1887 if (!get_user_flags(id, 0) & 4096)
1888 {
1889 return 1;
1890 }
1891 new hns_name[32];
1892 get_user_name(id, hns_name, 31);
1893 client_print_color(MaxClients, -3, 37216, hns_tag, hns_name);
1894 new Players[32];
1895 new Num = 0;
1896 get_players(Players, Num, "ch", "");
1897 TransferPlayers(TeamName:1);
1898 return 1;
1899}
1900
1901public hns_transfer_ct(id)
1902{
1903 if (!get_user_flags(id, 0) & 4096)
1904 {
1905 return 1;
1906 }
1907 new hns_name[32];
1908 get_user_name(id, hns_name, 31);
1909 client_print_color(MaxClients, -3, 37404, hns_tag, hns_name);
1910 new Players[32];
1911 new Num = 0;
1912 get_players(Players, Num, "ch", "");
1913 TransferPlayers(TeamName:2);
1914 return 1;
1915}
1916
1917public hns_skill(id, level, cid)
1918{
1919 if (!cmd_access(id, level, cid, 1, false))
1920 {
1921 return 1;
1922 }
1923 new hns_name[32];
1924 get_user_name(id, hns_name, 31);
1925 client_print_color(MaxClients, -3, 37624, hns_tag, hns_name);
1926 if (equali("hnsru_arena", "", 0))
1927 {
1928 enable_semiclip(0);
1929 }
1930 else
1931 {
1932 if (g_iCurrentMode)
1933 {
1934 enable_semiclip(3);
1935 }
1936 enable_semiclip(0);
1937 }
1938 if (g_iCurrentMode == 4)
1939 {
1940 set_cvar_num("mp_freezetime", 5);
1941 set_cvar_float("mp_roundtime", 2.50);
1942 set_pcvar_num(cvarFlashNum, 1);
1943 set_pcvar_num(cvarSmokeNum, 1);
1944 }
1945 set_pcvar_num(WhatSemiclip, 1);
1946 return 1;
1947}
1948
1949public hns_boost(id, level, cid)
1950{
1951 if (!cmd_access(id, level, cid, 1, false))
1952 {
1953 return 1;
1954 }
1955 new hns_name[32];
1956 get_user_name(id, hns_name, 31);
1957 client_print_color(MaxClients, -3, 37912, hns_tag, hns_name);
1958 if (g_iCurrentMode == 4)
1959 {
1960 set_cvar_num("mp_freezetime", 15);
1961 set_cvar_float("mp_roundtime", 3.50);
1962 set_pcvar_num(cvarFlashNum, 3);
1963 set_pcvar_num(cvarSmokeNum, 1);
1964 }
1965 set_pcvar_num(WhatSemiclip, 0);
1966 disable_semiclip();
1967 return 1;
1968}
1969
1970public hns_aa10(id, level, cid)
1971{
1972 if (!cmd_access(id, level, cid, 1, false))
1973 {
1974 return 1;
1975 }
1976 new hns_name[32];
1977 get_user_name(id, hns_name, 31);
1978 client_print_color(MaxClients, -3, 38152, hns_tag, hns_name);
1979 server_cmd("sv_airaccelerate 10");
1980 set_pcvar_num(cvarAA, 10);
1981 return 1;
1982}
1983
1984public hns_aa100(id, level, cid)
1985{
1986 if (!cmd_access(id, level, cid, 1, false))
1987 {
1988 return 1;
1989 }
1990 new hns_name[32];
1991 get_user_name(id, hns_name, 31);
1992 client_print_color(MaxClients, -3, 38376, hns_tag, hns_name);
1993 server_cmd("sv_airaccelerate 100");
1994 set_pcvar_num(cvarAA, 100);
1995 return 1;
1996}
1997
1998public hns_mix_menu(id)
1999{
2000 !!! Removed Phi
2001 if (~get_user_flags(id, 0) & 4096)
2002 {
2003 return 1;
2004 }
2005 new i_Menu = menu_create("\rHide'n'Seek Mix system", "hns_mix_menu_code", 0);
2006 if (equali("hnsru_arena", "", 0))
2007 {
2008 if (g_iCurrentMode != 3 && g_iCurrentMode != 2 && g_iCurrentMode != 6)
2009 {
2010 menu_additem(i_Menu, "Start Captain mod", "1", 0, -1);
2011 }
2012 else
2013 {
2014 menu_additem(i_Menu, "Stop Captain mod", "1", 0, -1);
2015 }
2016 }
2017 else
2018 {
2019 if (g_iCurrentMode == 5)
2020 {
2021 menu_additem(i_Menu, "Stop Public mode", "1", 0, -1);
2022 }
2023 if (g_iCurrentMode)
2024 {
2025 if (get_user_flags(id, 0) & 4)
2026 {
2027 menu_additem(i_Menu, "Stop Mix match", "1", 0, -1);
2028 }
2029 menu_additem(i_Menu, "\dStop Mix match", "1", 0, -1);
2030 }
2031 menu_additem(i_Menu, "Start Mix match", "1", 0, -1);
2032 }
2033 if (equali("hnsru_arena", "", 0))
2034 {
2035 if (g_iCurrentMode != 4 && g_iCurrentMode != 1)
2036 {
2037 if (g_iCurrentMode == 2)
2038 {
2039 menu_additem(i_Menu, "Stop kniferound\n", "2", 0, -1);
2040 }
2041 menu_additem(i_Menu, "Start kniferound\n", "2", 0, -1);
2042 }
2043 }
2044 else
2045 {
2046 if (g_iCurrentMode)
2047 {
2048 if (g_iCurrentMode == 5)
2049 {
2050 menu_additem(i_Menu, "\dBlend Team\n", "2", 0, -1);
2051 }
2052 if (g_iCurrentMode != 1)
2053 {
2054 menu_additem(i_Menu, "Pause match\n", "2", 0, -1);
2055 }
2056 menu_additem(i_Menu, "Unpause match\n", "2", 0, -1);
2057 }
2058 menu_additem(i_Menu, "Start Public mode\n", "2", 0, -1);
2059 }
2060 menu_additem(i_Menu, "Mix system settings\n", "3", 0, -1);
2061 menu_additem(i_Menu, "Restart round", "4", 0, -1);
2062 menu_additem(i_Menu, "Swap teams\n", "5", 0, -1);
2063 menu_additem(i_Menu, "Team Transfer Player", "6", 0, -1);
2064 menu_additem(i_Menu, "Change map", "7", 0, -1);
2065 menu_display(id, i_Menu, 0, -1);
2066 return 1;
2067}
2068
2069public hns_mix_menu_code(id, menu, item, level, cid)
2070{
2071 !!! Removed Phi
2072 if (item == -3)
2073 {
2074 menu_destroy(menu);
2075 return 1;
2076 }
2077 new s_Data[6];
2078 new s_Name[64];
2079 new i_Access = 0;
2080 new i_Callback = 0;
2081 menu_item_getinfo(menu, item, i_Access, s_Data, 5, s_Name, 63, i_Callback);
2082 menu_destroy(menu);
2083 new i_Key = str_to_num(s_Data);
2084 switch (i_Key)
2085 {
2086 case 1:
2087 {
2088 if (equali("hnsru_arena", "", 0))
2089 {
2090 CmdStop(id);
2091 }
2092 else
2093 {
2094 if (g_iCurrentMode == 5 && get_user_flags(id, 0) & 4096)
2095 {
2096 hns_pub_off(id, level, cid);
2097 }
2098 if (g_iCurrentMode && get_user_flags(id, 0) & 4096)
2099 {
2100 cmdStartRound(id);
2101 }
2102 if (get_user_flags(id, 0) & 4)
2103 {
2104 menu_verif(id);
2105 }
2106 client_print_color(id, -3, "%s Watcher does not have access to stop game", hns_tag);
2107 }
2108 }
2109 case 2:
2110 {
2111 if (equali("hnsru_arena", "", 0))
2112 {
2113 if (g_iCurrentMode != 4 && g_iCurrentMode != 1 && get_user_flags(id, 0) & 4096)
2114 {
2115 if (g_iCurrentMode == 2 && get_user_flags(id, 0) & 4096)
2116 {
2117 CmdStop(id);
2118 }
2119 cmdKnifeRound(id);
2120 }
2121 }
2122 else
2123 {
2124 if (g_iCurrentMode && get_user_flags(id, 0) & 4096)
2125 {
2126 hns_pub(id, level, cid);
2127 }
2128 if (g_iCurrentMode == 5 && get_user_flags(id, 0) & 4096)
2129 {
2130 return 0;
2131 }
2132 if (g_iCurrentMode != 1 && get_user_flags(id, 0) & 4096)
2133 {
2134 hns_startpause(id);
2135 }
2136 hns_unpause(id);
2137 }
2138 }
2139 case 3:
2140 {
2141 hns_mix_menu_msettings(id);
2142 }
2143 case 4:
2144 {
2145 CmdRestartRound(id, level, cid);
2146 }
2147 case 5:
2148 {
2149 hns_swap_teams(id, level, cid);
2150 }
2151 case 6:
2152 {
2153 amxclient_cmd(id, "amx_teammenu", "", "");
2154 }
2155 case 7:
2156 {
2157 amxclient_cmd(id, "amx_mapmenu", "", "");
2158 }
2159 default:
2160 {
2161 }
2162 }
2163 return 1;
2164}
2165
2166public hns_mix_menu_msettings(id)
2167{
2168 !!! Removed Phi
2169 if (~get_user_flags(id, 0) & 4096)
2170 {
2171 return 0;
2172 }
2173 new title[64];
2174 formatex(title, 63, "\rMix system settings");
2175 new i_Menu = menu_create(title, "hns_mix_menu_msettings_code", 0);
2176 new title_roundtime[64];
2177 if (get_cvar_float("mp_roundtime") > 10)
2178 {
2179 formatex(title_roundtime, 63, "Roundtime: \dcannot changed in training");
2180 }
2181 else
2182 {
2183 formatex(title_roundtime, 63, "Roundtime: \y%.1f", get_cvar_float("mp_roundtime"));
2184 }
2185 new title_freeztime[64];
2186 formatex(title_freeztime, 63, "Freezetime: \y%d", get_cvar_num("mp_freezetime"));
2187 new title_timertime[64];
2188 formatex(title_timertime, 63, "Timer to win: \y%d\n", get_pcvar_num(g_Captime));
2189 new title_flahs[64];
2190 formatex(title_flahs, 63, "Flash: \y%d", get_pcvar_num(cvarFlashNum));
2191 new title_smoke[64];
2192 formatex(title_smoke, 63, "Smoke: \y%d\n", get_pcvar_num(cvarSmokeNum));
2193 new title_aa[64];
2194 formatex(title_aa, 63, "Airaccelerate \y%d\n", get_pcvar_num(cvarAA));
2195 menu_additem(i_Menu, title_roundtime, "1", 0, -1);
2196 menu_additem(i_Menu, title_freeztime, "2", 0, -1);
2197 menu_additem(i_Menu, title_timertime, "3", 0, -1);
2198 menu_additem(i_Menu, title_flahs, "4", 0, -1);
2199 menu_additem(i_Menu, title_smoke, "5", 0, -1);
2200 menu_additem(i_Menu, title_aa, "6", 0, -1);
2201 menu_display(id, i_Menu, 0, -1);
2202 return 0;
2203}
2204
2205public hns_mix_menu_msettings_code(id, menu, item, level, cid)
2206{
2207 if (item == -3)
2208 {
2209 menu_destroy(menu);
2210 hns_mix_menu(id);
2211 }
2212 new s_Data[6];
2213 new s_Name[64];
2214 new i_Access = 0;
2215 new i_Callback = 0;
2216 menu_item_getinfo(menu, item, i_Access, s_Data, 5, s_Name, 63, i_Callback);
2217 new i_Key = str_to_num(s_Data);
2218 switch (i_Key)
2219 {
2220 case 1:
2221 {
2222 if (2.50/*1075838976*/ == get_cvar_float("mp_roundtime"))
2223 {
2224 set_cvar_float("mp_roundtime", 3.00);
2225 }
2226 else
2227 {
2228 if (3.00/*1077936128*/ == get_cvar_float("mp_roundtime"))
2229 {
2230 set_cvar_float("mp_roundtime", 3.50);
2231 }
2232 if (3.50/*1080033280*/ == get_cvar_float("mp_roundtime"))
2233 {
2234 set_cvar_float("mp_roundtime", 4.00);
2235 }
2236 if (4.00/*1082130432*/ == get_cvar_float("mp_roundtime"))
2237 {
2238 set_cvar_float("mp_roundtime", 10.00);
2239 }
2240 if (10.00/*1092616192*/ == get_cvar_float("mp_roundtime"))
2241 {
2242 set_cvar_float("mp_roundtime", 2.50);
2243 }
2244 }
2245 hns_mix_menu_msettings(id);
2246 }
2247 case 2:
2248 {
2249 if (get_cvar_num("mp_freezetime"))
2250 {
2251 if (get_cvar_num("mp_freezetime") == 5)
2252 {
2253 set_cvar_num("mp_freezetime", 10);
2254 }
2255 if (get_cvar_num("mp_freezetime") == 10)
2256 {
2257 set_cvar_num("mp_freezetime", 15);
2258 }
2259 if (get_cvar_num("mp_freezetime") == 15)
2260 {
2261 set_cvar_num("mp_freezetime", 0);
2262 }
2263 }
2264 else
2265 {
2266 set_cvar_num("mp_freezetime", 5);
2267 }
2268 hns_mix_menu_msettings(id);
2269 }
2270 case 3:
2271 {
2272 if (get_pcvar_num(g_Captime) == 5)
2273 {
2274 set_pcvar_num(g_Captime, 10);
2275 }
2276 else
2277 {
2278 if (get_pcvar_num(g_Captime) == 10)
2279 {
2280 set_pcvar_num(g_Captime, 15);
2281 }
2282 if (get_pcvar_num(g_Captime) == 15)
2283 {
2284 set_pcvar_num(g_Captime, 20);
2285 }
2286 if (get_pcvar_num(g_Captime) == 20)
2287 {
2288 set_pcvar_num(g_Captime, 5);
2289 }
2290 }
2291 hns_mix_menu_msettings(id);
2292 }
2293 case 4:
2294 {
2295 if (get_pcvar_num(cvarFlashNum) == 1)
2296 {
2297 set_pcvar_num(cvarFlashNum, 2);
2298 }
2299 else
2300 {
2301 if (get_pcvar_num(cvarFlashNum) == 2)
2302 {
2303 set_pcvar_num(cvarFlashNum, 3);
2304 }
2305 if (get_pcvar_num(cvarFlashNum) == 3)
2306 {
2307 set_pcvar_num(cvarFlashNum, 1);
2308 }
2309 }
2310 hns_mix_menu_msettings(id);
2311 }
2312 case 5:
2313 {
2314 if (get_pcvar_num(cvarSmokeNum) == 1)
2315 {
2316 set_pcvar_num(cvarSmokeNum, 2);
2317 }
2318 else
2319 {
2320 if (get_pcvar_num(cvarSmokeNum) == 2)
2321 {
2322 set_pcvar_num(cvarSmokeNum, 1);
2323 }
2324 }
2325 hns_mix_menu_msettings(id);
2326 }
2327 case 6:
2328 {
2329 if (100 > get_pcvar_num(cvarAA))
2330 {
2331 hns_aa100(id, level, cid);
2332 }
2333 else
2334 {
2335 hns_aa10(id, level, cid);
2336 }
2337 hns_mix_menu_msettings(id);
2338 }
2339 default:
2340 {
2341 }
2342 }
2343 menu_destroy(menu);
2344 return 1;
2345}
2346
2347public menu_verif(id)
2348{
2349 new i_Menu = menu_create("\rVerification menu\n\n\dAre you sure you want to stop this mod:", "menu_verif_handler", 0);
2350 menu_additem(i_Menu, "\wNO", "1", 0, -1);
2351 menu_additem(i_Menu, "\wYES", "2", 0, -1);
2352 menu_setprop(i_Menu, 6, 1);
2353 menu_display(id, i_Menu, 0, -1);
2354 return 0;
2355}
2356
2357public menu_verif_handler(id, menu, item, level, cid)
2358{
2359 if (item == -3)
2360 {
2361 menu_destroy(menu);
2362 return 1;
2363 }
2364 new s_Data[6];
2365 new s_Name[64];
2366 new i_Access = 0;
2367 new i_Callback = 0;
2368 menu_item_getinfo(menu, item, i_Access, s_Data, 5, s_Name, 63, i_Callback);
2369 new i_Key = str_to_num(s_Data);
2370 switch (i_Key)
2371 {
2372 case 1:
2373 {
2374 menu_destroy(menu);
2375 return 1;
2376 }
2377 case 2:
2378 {
2379 CmdStop(id);
2380 }
2381 default:
2382 {
2383 }
2384 }
2385 menu_destroy(menu);
2386 return 1;
2387}
2388
2389public hns_hook_on(id)
2390{
2391 !!! Removed Phi
2392 if (g_iCurrentMode > 1 && g_iCurrentMode != 3)
2393 {
2394 return 1;
2395 }
2396 if (!is_user_alive(id))
2397 {
2398 return 1;
2399 }
2400 get_user_origin(id, hookorigin[id][0][0], 3);
2401 hns_hooked[id] = 1;
2402 set_task(0.10, "hns_hook_task", id + 9999, "", 0, "ab", 0);
2403 hns_hook_task(id + 9999);
2404 return 1;
2405}
2406
2407public is_hooked(id)
2408{
2409 return hns_hooked[id][0][0];
2410}
2411
2412public hns_hook_off(id)
2413{
2414 remove_hook(id);
2415 return 1;
2416}
2417
2418public hns_hook_task(id)
2419{
2420 !!! Removed Phi
2421 if (!is_user_connected(id) || !is_user_alive(id) || (g_iCurrentMode > 1 && g_iCurrentMode != 3))
2422 {
2423 remove_hook(id);
2424 return 0;
2425 }
2426 remove_beam(id);
2427 draw_hook(id);
2428 new origin[3];
2429 new Float:velocity[3];
2430 get_user_origin(id, origin, 0);
2431 new distance = get_distance(hookorigin[id][0][0], origin);
2432 if (distance > 60)
2433 {
2434 velocity[0] = 2.00/*1073741824*/ * 400 / distance * hookorigin[id][0][0][0] - origin[0];
2435 velocity[1] = 2.00/*1073741824*/ * 400 / distance * hookorigin[id][0][0][1] - origin[1];
2436 velocity[2] = 2.00/*1073741824*/ * 400 / distance * hookorigin[id][0][0][2] - origin[2];
2437 set_entvar(id, "", velocity);
2438 }
2439 else
2440 {
2441 set_entvar(id, "", "");
2442 set_entvar(id, "", 841731191);
2443 }
2444 set_entvar(id, "", 55);
2445 set_entvar(id, "", 0);
2446 return 0;
2447}
2448
2449public draw_hook(id)
2450{
2451 message_begin(MSG_BROADCAST, SVC_TEMPENTITY, 32276, 0);
2452 write_byte(1);
2453 write_short(id);
2454 write_coord(hookorigin[id][0][0][0]);
2455 write_coord(hookorigin[id][0][0][1]);
2456 write_coord(hookorigin[id][0][0][2]);
2457 write_short(Sbeam);
2458 write_byte(0);
2459 write_byte(0);
2460 write_byte(100);
2461 write_byte(1);
2462 write_byte(0);
2463 write_byte(100);
2464 write_byte(100);
2465 write_byte(100);
2466 write_byte(100);
2467 write_byte(0);
2468 message_end();
2469 return 0;
2470}
2471
2472public remove_hook(id)
2473{
2474 if (task_exists(id + 9999, 0))
2475 {
2476 remove_task(id + 9999, 0);
2477 }
2478 if (!is_entity(id))
2479 {
2480 return 0;
2481 }
2482 remove_beam(id);
2483 set_entvar(id, "", 1.00/*1065353216*/);
2484 ishooked[id] = 0;
2485 return 0;
2486}
2487
2488public remove_beam(id)
2489{
2490 message_begin(MSG_BROADCAST, SVC_TEMPENTITY, 32276, 0);
2491 write_byte(99);
2492 write_short(id);
2493 message_end();
2494 return 0;
2495}
2496
2497public cmdCheckpoint(plr)
2498{
2499 if (g_iCurrentMode > 1)
2500 {
2501 Task_Hud(plr, 0.00, 1, 50, 50, 50, 1.00, "Checkpoints are disabled");
2502 return 1;
2503 }
2504 if (!is_user_alive(plr))
2505 {
2506 return 1;
2507 }
2508 new var1;
2509 if (g_bCheckpointAlternate[plr][0][0])
2510 {
2511 var1 = 1;
2512 }
2513 else
2514 {
2515 var1 = 0;
2516 }
2517
2518/ * ERROR! Не удалось привести тип объекта "Lysis.DSentinel" к типу "Lysis.DReturn". * /
2519 function "cmdCheckpoint"
2520public cmdCheckpoint(plr)
2521
2522public cmdGoCheck(plr)
2523{
2524 if (g_iCurrentMode > 1)
2525 {
2526 Task_Hud(plr, 0.00, 1, 50, 50, 50, 1.00, "Checkpoints are disabled");
2527 return 1;
2528 }
2529 if (!is_user_alive(plr))
2530 {
2531 return 1;
2532 }
2533 new var1 = gCheckpoints[plr][0][0];
2534 if (!var1[0][var1])
2535 {
2536 Task_Hud(plr, 0.00, 1, 50, 50, 50, 1.00, "You don't have any checkpoints");
2537 return 1;
2538 }
2539 set_entvar(plr, "", "");
2540 set_entvar(plr, "", pev(plr, pev_flags) | 16384);
2541 engfunc(EngFunc_SetOrigin, plr, gCheckpoints[plr][0][0][!g_bCheckpointAlternate[plr][0][0]]);
2542 return 1;
2543}
2544
2545public cmdStartRound(id)
2546{
2547 !!! Removed Phi
2548 if (get_user_flags(id, 0) & 4096)
2549 {
2550 if (g_iCurrentMode)
2551 {
2552 client_print_color(id, -3, "%s Please disable other mode before start mix game", hns_tag);
2553 return 0;
2554 }
2555 if (equali("", "hnsru_arena", 0))
2556 {
2557 return 0;
2558 }
2559 GetName(id);
2560 client_print_color(MaxClients, -3, 43492, hns_tag, Heap_512);
2561 g_eSurrenderData[2] = get_gametime() + 120;
2562 new iPlayers[32];
2563 new iNum = 0;
2564 get_players(iPlayers, iNum, "c", "");
2565 new i = 0;
2566 while (i < iNum)
2567 {
2568 new iPlayer = iPlayers[i];
2569 arrayset(g_ePlayerData[iPlayer][0][0], 0, 26);
2570 SetScoreInfo(iPlayer);
2571 i++;
2572 }
2573 remove_hook(id);
2574 pf_Scrim();
2575 }
2576 return 0;
2577}
2578
2579public CmdStop(id)
2580{
2581 !!! Removed Phi
2582 if (id && ~get_user_flags(id, 0) & 4096)
2583 {
2584 return 0;
2585 }
2586 if (!g_iCurrentMode)
2587 {
2588 return 0;
2589 }
2590 if (!id)
2591 {
2592 if (g_iCurrentMode == 4 || g_iCurrentMode == 1)
2593 {
2594 new var3 = Heap_4;
2595 var3[0] = 43616;
2596 ShowTop(var3);
2597 GameStarted = 0;
2598 Survival = 0;
2599 g_bPlayersListLoaded = 0;
2600 PrepareMode(0);
2601 enable_semiclip(0);
2602 return 0;
2603 }
2604 rg_send_audio(MaxClients, "fvox/fuzz.wav", 100);
2605 PrepareMode(0);
2606 enable_semiclip(0);
2607 return 0;
2608 }
2609 switch (g_iCurrentMode)
2610 {
2611 case 1:
2612 {
2613 GetName(id);
2614 client_print_color(MaxClients, -3, 43676, hns_tag, Heap_512);
2615 GameStarted = 0;
2616 Survival = 0;
2617 g_bPlayersListLoaded = 0;
2618 g_eMatchInfo[76] = 0;
2619 ExecuteForward(g_hForwards[1][0], 0, id, 17184 + 304);
2620 new var4 = Heap_4;
2621 var4[0] = 43616;
2622 ShowTop(var4);
2623 }
2624 case 2:
2625 {
2626 GetName(id);
2627 client_print_color(MaxClients, -3, 43776, hns_tag, Heap_512);
2628 }
2629 case 3:
2630 {
2631 GetName(id);
2632 client_print_color(MaxClients, -3, 43888, hns_tag, Heap_512);
2633 ResetCaptainData();
2634 return 0;
2635 }
2636 case 4:
2637 {
2638 GetName(id);
2639 client_print_color(MaxClients, -3, 43676, hns_tag, Heap_512);
2640 GameStarted = 0;
2641 Survival = 0;
2642 g_bPlayersListLoaded = 0;
2643 g_eMatchInfo[76] = 0;
2644 ExecuteForward(g_hForwards[1][0], 0, id, 17184 + 304);
2645 new var4 = Heap_4;
2646 var4[0] = 43616;
2647 ShowTop(var4);
2648 }
2649 case 5:
2650 {
2651 GetName(id);
2652 client_print_color(MaxClients, -3, 44004, hns_tag, Heap_512);
2653 }
2654 case 6:
2655 {
2656 client_print_color(MaxClients, -3, 44116, hns_tag, id);
2657 cultura_end_battle();
2658 return 0;
2659 }
2660 default:
2661 {
2662 }
2663 }
2664 rg_send_audio(MaxClients, "fvox/fuzz.wav", 100);
2665 PrepareMode(0);
2666 enable_semiclip(0);
2667 return 0;
2668}
2669
2670public cmdKnifeRound(id)
2671{
2672 if (get_user_flags(id, 0) & 4096)
2673 {
2674 if (g_iCurrentMode)
2675 {
2676 client_print_color(id, -3, "%s Please disable other mode before start knife", hns_tag);
2677 return 0;
2678 }
2679 pf_KnifeRound(id);
2680 remove_hook(id);
2681 }
2682 return 0;
2683}
2684
2685public pf_Scrim()
2686{
2687 g_iGameStops = 0;
2688 set_task(2.50, "PrepareMode", 4, "", 0, "", 0);
2689 Task_Hud(0, 0.00, 1, 100, 100, 100, 3.00, "Going Live in 3 second");
2690 Task_Hud(0, 4.00, 1, 100, 100, 100, 3.00, "Live Live Live\nGood Luck & Have Fun");
2691 rg_send_audio(MaxClients, "plats/elevbell1.wav", 100);
2692 return 0;
2693}
2694
2695public pf_KnifeRound(id)
2696{
2697 PrepareMode(2);
2698 Task_Hud(0, 2.00, 1, 100, 100, 100, 3.00, "Knife Round Started");
2699 if (id)
2700 {
2701 GetName(id);
2702 client_print_color(MaxClients, -3, 44904, hns_tag, Heap_512);
2703 }
2704 return 1;
2705}
2706
2707public CBasePlayer_ResetMaxSpeed_Pre(id)
2708{
2709 !!! Removed Phi
2710 if (!g_bFreezePeriod)
2711 {
2712 return 0;
2713 }
2714 if (get_member(id, "") == 1 || g_iCurrentMode || g_iCurrentMode == 1)
2715 {
2716 set_entvar(id, "", 250.00/*1132068864*/);
2717 return 1;
2718 }
2719 return 0;
2720}
2721
2722public ShowTimers(id)
2723{
2724 !!! Removed Phi
2725 if (GameStarted || g_iCurrentMode == 1)
2726 {
2727 new TimeToWin[2][24];
2728 TimeToWin[0] = 45016;
2729 fnConvertTime(get_pcvar_float(g_Captime) * 60.00 - flSidesTime[iCurrentSW][0][0], TimeToWin[0][TimeToWin], 23);
2730 fnConvertTime(get_pcvar_float(g_Captime) * 60.00 - flSidesTime[!iCurrentSW][0][0], TimeToWin[1], 23);
2731 if (!iCurrentSW)
2732 {
2733 client_print_color(id, -3, 45024, hns_tag, TimeToWin[iCurrentSW], TimeToWin[!iCurrentSW]);
2734 }
2735 else
2736 {
2737 client_print_color(id, -3, 45132, hns_tag, TimeToWin[!iCurrentSW], TimeToWin[iCurrentSW]);
2738 }
2739 }
2740 else
2741 {
2742 client_print_color(id, -3, 45240, hns_tag);
2743 }
2744 return 0;
2745}
2746
2747public CSGameRules_RestartRound_Pre()
2748{
2749 !!! Removed Phi
2750 remove_task(8888, 0);
2751 if (GameStarted)
2752 {
2753 ShowTimers(0);
2754 }
2755 g_flRoundTime = 0;
2756 EnableHamForward(Player_Killed_Pre);
2757 new iPlayers[32];
2758 new iNum = 0;
2759 get_players(iPlayers, iNum, "c", "");
2760 new j = 0;
2761 while (j < iNum)
2762 {
2763 new id = iPlayers[j];
2764 arrayset(g_eRoundData[id][0][0], 0, 2);
2765 j++;
2766 }
2767 get_players(iPlayers, iNum, "ce", "TERRORIST");
2768 new i = 0;
2769 while (i < iNum)
2770 {
2771 new iPlayer = iPlayers[i];
2772 if (g_bLastFlash[iPlayer][0][0])
2773 {
2774 g_bLastFlash[iPlayer] = 0;
2775 show_menu(i, 0, "\n", 1, "");
2776 i++;
2777 }
2778 i++;
2779 }
2780 if (g_iCurrentMode == 4 || g_iCurrentMode == 1)
2781 {
2782 g_flRetry = get_gametime() + 30;
2783 }
2784 if (g_iCurrentMode && g_iCurrentMode == 1)
2785 {
2786 get_players(iPlayers, iNum, "ac", "");
2787 new i = 0;
2788 while (i < iNum)
2789 {
2790 new iPlayer = iPlayers[i];
2791 rg_reset_maxspeed(iPlayer);
2792 i++;
2793 }
2794 }
2795 return 0;
2796}
2797
2798public CSGameRules_OnRoundFreezeEnd_Post()
2799{
2800 !!! Removed Phi
2801 if (g_iCurrentMode != 4)
2802 {
2803 return 0;
2804 }
2805 g_bFreezePeriod = 0;
2806 if (GameStarted)
2807 {
2808 Survival = 1;
2809 }
2810 set_task(0.25, "RoundEnd", 8888, "", 0, "b", 0);
2811 if (g_iCurrentMode == 1)
2812 {
2813 g_flRetry = get_gametime() + 30;
2814 }
2815 return 0;
2816}
2817
2818public RoundEnd()
2819{
2820 if (Survival)
2821 {
2822 new Players[32];
2823 new Count = 0;
2824 get_players(Players, Count, "ce", "TERRORIST");
2825 g_flRoundTime = g_flRoundTime + 0.25;
2826 new var1 = flSidesTime[iCurrentSW];
2827 var1 = var1[0][0] + 0.25;
2828 new i = 0;
2829 while (i < Count)
2830 {
2831 new id = Players[i];
2832 if (is_user_alive(id))
2833 {
2834 new var2 = g_ePlayerData[id][0][0];
2835 var2[0] = var2[0] + 0.25;
2836 }
2837 i++;
2838 }
2839 if (flSidesTime[iCurrentSW][0][0] >= get_pcvar_float(g_Captime) * 60.00)
2840 {
2841 GameStarted = 0;
2842 Survival = 0;
2843 new Float:TimeDiff = 0;
2844 if (iCurrentSW)
2845 {
2846 TimeDiff = flSidesTime[iCurrentSW][0][0] - flSidesTime[0][0];
2847 }
2848 else
2849 {
2850 TimeDiff = flSidesTime[iCurrentSW][0][0] - flSidesTime[1][0];
2851 }
2852 new sTime[24];
2853 fnConvertTime(TimeDiff, sTime, 23);
2854 client_print_color(MaxClients, -3, 45648, hns_tag, sTime);
2855 copy(17184 + 232, 15, sTime);
2856 g_eMatchInfo[75] = get_systime(0);
2857 g_eMatchInfo[76] = 1;
2858 ExecuteForward(g_hForwards[2][0], 0, 17184 + 232, 17184 + 300, 17184 + 304);
2859 Task_Hud(0, 0.00, 1, 100, 100, 100, 4.00, "Game Over");
2860 rg_send_audio(MaxClients, SOUND_END, 100);
2861 PrepareMode(0);
2862 ShowTop(sTime);
2863 g_bPlayersListLoaded = 0;
2864 }
2865 }
2866 if (g_flRoundTime / 60.00 >= get_pcvar_float(g_pRoundTime))
2867 {
2868 if (GameStarted)
2869 {
2870 Survival = 0;
2871 }
2872 remove_task(8888, 0);
2873 }
2874 return 0;
2875}
2876
2877ShowTop(String:sTime[])
2878{
2879 !!! Removed Phi
2880 new best_id[10];
2881 new Float:best_time[10];
2882 new iPlayers[32];
2883 new iNum = 0;
2884 get_players(iPlayers, iNum, "c", "");
2885 new bid = 0;
2886 new i = 0;
2887 while (i < iNum)
2888 {
2889 new id = iPlayers[i];
2890 if (!(get_member(id, "") == 3))
2891 {
2892 if (bid >= 10)
2893 {
2894 new i = 0;
2895 while (i < 10)
2896 {
2897 new j = 0;
2898 while (j < 10)
2899 {
2900 if (best_time[j] < best_time[i])
2901 {
2902 new Float:tmp = best_time[i];
2903 new tmpid = best_id[i];
2904 best_time[i] = best_time[j];
2905 best_time[j] = tmp;
2906 best_id[i] = best_id[j];
2907 best_id[j] = tmpid;
2908 j++;
2909 }
2910 j++;
2911 }
2912 i++;
2913 }
2914 new szMenu[512];
2915 new iLen = 0;
2916 if (sTime[0])
2917 {
2918 iLen = formatex(szMenu, 511, "\wBest Players:\9\9 \d(%s difference)\n\n", sTime);
2919 }
2920 else
2921 {
2922 iLen = formatex(szMenu, 511, "\wBest Players:\n\n");
2923 }
2924 new time[24];
2925 new i = 0;
2926 while (i < 10)
2927 {
2928 fnConvertTime(best_time[i], time, 23);
2929 new iPlayer = best_id[i];
2930 iLen = formatex(szMenu[iLen], 511 - iLen, "\r%d.\9\9\d%s\9\9\w%n\n", i + 1, time, iPlayer) + iLen;
2931 i++;
2932 }
2933 new i = 1;
2934 while (i <= MaxClients)
2935 {
2936 if (is_user_connected(i))
2937 {
2938 show_menu(i, 1023, szMenu, -1, "ShowTop");
2939 arrayset(g_ePlayerData[i][0][0], 0, 26);
2940 i++;
2941 }
2942 i++;
2943 }
2944 return 0;
2945 }
2946 else
2947 {
2948 best_id[bid] = id;
2949 best_time[bid] = g_ePlayerData[id][0][0][0];
2950 bid++;
2951 rg_set_user_godmode(id, 1);
2952 }
2953 new i = 0;
2954 while (i < 10)
2955 {
2956 new j = 0;
2957 while (j < 10)
2958 {
2959 if (best_time[j] < best_time[i])
2960 {
2961 new Float:tmp = best_time[i];
2962 new tmpid = best_id[i];
2963 best_time[i] = best_time[j];
2964 best_time[j] = tmp;
2965 best_id[i] = best_id[j];
2966 best_id[j] = tmpid;
2967 j++;
2968 }
2969 j++;
2970 }
2971 i++;
2972 }
2973 new szMenu[512];
2974 new iLen = 0;
2975 if (sTime[0])
2976 {
2977 iLen = formatex(szMenu, 511, "\wBest Players:\9\9 \d(%s difference)\n\n", sTime);
2978 }
2979 else
2980 {
2981 iLen = formatex(szMenu, 511, "\wBest Players:\n\n");
2982 }
2983 new time[24];
2984 new i = 0;
2985 while (i < 10)
2986 {
2987 fnConvertTime(best_time[i], time, 23);
2988 new iPlayer = best_id[i];
2989 iLen = formatex(szMenu[iLen], 511 - iLen, "\r%d.\9\9\d%s\9\9\w%n\n", i + 1, time, iPlayer) + iLen;
2990 i++;
2991 }
2992 new i = 1;
2993 while (i <= MaxClients)
2994 {
2995 if (is_user_connected(i))
2996 {
2997 show_menu(i, 1023, szMenu, -1, "ShowTop");
2998 arrayset(g_ePlayerData[i][0][0], 0, 26);
2999 i++;
3000 }
3001 i++;
3002 }
3003 return 0;
3004 }
3005 i++;
3006 }
3007 new i = 0;
3008 while (i < 10)
3009 {
3010 new j = 0;
3011 while (j < 10)
3012 {
3013 if (best_time[j] < best_time[i])
3014 {
3015 new Float:tmp = best_time[i];
3016 new tmpid = best_id[i];
3017 best_time[i] = best_time[j];
3018 best_time[j] = tmp;
3019 best_id[i] = best_id[j];
3020 best_id[j] = tmpid;
3021 j++;
3022 }
3023 j++;
3024 }
3025 i++;
3026 }
3027 new szMenu[512];
3028 new iLen = 0;
3029 if (sTime[0])
3030 {
3031 iLen = formatex(szMenu, 511, "\wBest Players:\9\9 \d(%s difference)\n\n", sTime);
3032 }
3033 else
3034 {
3035 iLen = formatex(szMenu, 511, "\wBest Players:\n\n");
3036 }
3037 new time[24];
3038 new i = 0;
3039 while (i < 10)
3040 {
3041 fnConvertTime(best_time[i], time, 23);
3042 new iPlayer = best_id[i];
3043 iLen = formatex(szMenu[iLen], 511 - iLen, "\r%d.\9\9\d%s\9\9\w%n\n", i + 1, time, iPlayer) + iLen;
3044 i++;
3045 }
3046 new i = 1;
3047 while (i <= MaxClients)
3048 {
3049 if (is_user_connected(i))
3050 {
3051 show_menu(i, 1023, szMenu, -1, "ShowTop");
3052 arrayset(g_ePlayerData[i][0][0], 0, 26);
3053 i++;
3054 }
3055 i++;
3056 }
3057 return 0;
3058}
3059
3060public ShowTopHandler(id, iKey)
3061{
3062 return 1;
3063}
3064
3065public SwitchTeams()
3066{
3067 rg_swap_all_players();
3068 return 0;
3069}
3070
3071public CBasePlayer_Spawn_Post(id)
3072{
3073 !!! Removed Phi
3074 if (!is_user_alive(id))
3075 {
3076 return 0;
3077 }
3078 if (g_iCurrentMode >= 1 && g_iCurrentMode != 5)
3079 {
3080 set_task(1.50, "task_CheckBan", id + 94501, "", 0, "", 0);
3081 }
3082 if (g_iCurrentMode <= 1 || g_iCurrentMode == 3)
3083 {
3084 rg_set_user_godmode(id, 1);
3085 }
3086 SetRole(id);
3087 return 0;
3088}
3089
3090public task_CheckBan(id)
3091{
3092 id += -94501;
3093 if (!is_user_connected(id))
3094 {
3095 return 0;
3096 }
3097 if (get_member(id, "") == 3)
3098 {
3099 return 0;
3100 }
3101 if (cultura_get_player_banned(id))
3102 {
3103 new expired[32];
3104 cultura_get_player_expired_ban(id, expired, 31);
3105 client_print_color(MaxClients, -3, 46240, hns_tag, id, expired);
3106 TransferToSpec(id);
3107 if (g_iCurrentMode == 4)
3108 {
3109 hns_startpause(0);
3110 }
3111 }
3112 return 0;
3113}
3114
3115public SetRole(id)
3116{
3117 !!! Removed Phi
3118 if (g_iCurrentMode > 2 && g_iCurrentMode != 6 && g_iCurrentMode != 3)
3119 {
3120 switch (team)
3121 {
3122 case 1:
3123 {
3124 set_user_footsteps(id, 1);
3125 rg_give_item(id, "weapon_knife", MaxClients);
3126 if (1 <= get_pcvar_num(cvarFlashNum))
3127 {
3128 rg_give_item(id, "weapon_flashbang", MaxClients);
3129 rg_set_user_bpammo(id, "", get_pcvar_num(cvarFlashNum));
3130 }
3131 if (1 <= get_pcvar_num(cvarSmokeNum))
3132 {
3133 rg_give_item(id, "weapon_smokegrenade", MaxClients);
3134 rg_set_user_bpammo(id, "", get_pcvar_num(cvarSmokeNum));
3135 }
3136 }
3137 case 2:
3138 {
3139 set_user_footsteps(id, 0);
3140 rg_give_item(id, "weapon_knife", MaxClients);
3141 }
3142 default:
3143 {
3144 }
3145 }
3146 }
3147 else
3148 {
3149 rg_give_item(id, "weapon_knife", MaxClients);
3150 }
3151 return 0;
3152}
3153
3154public GetName(id)
3155{
3156 new szName[128];
3157 get_user_name(id, szName, 127);
3158
3159/ * ERROR! Ссылка на объект не указывает на экземпляр объекта. * /
3160 function "GetName"
3161public GetName(id)
3162
3163public PrepareMode(mode)
3164{
3165 switch (mode)
3166 {
3167 case 0:
3168 {
3169 server_cmd("amxx unpause %s", hns_jumpstat);
3170 server_cmd("mp_timelimit 0");
3171 server_cmd("mp_roundtime 99");
3172 server_cmd("mp_freezetime 0");
3173 server_cmd("mp_autoteambalance 0");
3174 server_cmd("sv_alltalk 1");
3175 enable_semiclip(0);
3176 g_iCurrentMode = 0;
3177 server_cmd("hns_lastmode 0");
3178 }
3179 case 2:
3180 {
3181 server_cmd("mp_freezetime 0");
3182 server_cmd("mp_timelimit 0");
3183 server_cmd("mp_autoteambalance 0");
3184 server_cmd("mp_forcechasecam 2");
3185 server_cmd("mp_forcecamera 2");
3186 disable_semiclip();
3187 g_iCurrentMode = 2;
3188 server_cmd("hns_lastmode 0");
3189 }
3190 case 3:
3191 {
3192 g_iCurrentMode = 3;
3193 server_cmd("amxx unpause %s", hns_jumpstat);
3194 server_cmd("mp_timelimit 0");
3195 server_cmd("mp_roundtime 99");
3196 server_cmd("mp_freezetime 0");
3197 server_cmd("mp_autoteambalance 0");
3198 server_cmd("sv_alltalk 1");
3199 enable_semiclip(0);
3200 }
3201 case 4:
3202 {
3203 flSidesTime[0] = 0;
3204 flSidesTime[1] = 0;
3205 iCurrentSW = 1;
3206 GameStarted = 1;
3207 server_cmd("mp_forcechasecam 2");
3208 server_cmd("mp_forcecamera 2");
3209 server_cmd("mp_autoteambalance 0");
3210 server_cmd("mp_timelimit 0");
3211 if (get_pcvar_num(WhatSemiclip) == 1)
3212 {
3213 set_cvar_num("mp_freezetime", 5);
3214 set_cvar_float("mp_roundtime", 2.50);
3215 set_pcvar_num(cvarFlashNum, 1);
3216 set_pcvar_num(cvarSmokeNum, 1);
3217 set_pcvar_num(WhatSemiclip, 1);
3218 enable_semiclip(3);
3219 }
3220 else
3221 {
3222 set_cvar_num("mp_freezetime", 15);
3223 set_cvar_float("mp_roundtime", 3.50);
3224 set_pcvar_num(cvarFlashNum, 3);
3225 set_pcvar_num(cvarSmokeNum, 1);
3226 set_pcvar_num(WhatSemiclip, 0);
3227 disable_semiclip();
3228 }
3229 g_iCurrentMode = 4;
3230 server_cmd("hns_lastmode 0");
3231 new iPlayers[32];
3232 new iNum = 0;
3233 get_players(iPlayers, iNum, "ce", "TERRORIST");
3234 g_eMatchInfo[32] = iNum;
3235 g_eMatchInfo[33] = get_pcvar_num(cvarAA);
3236 fnConvertTime(get_pcvar_float(g_Captime) * 60.00, 17184 + 136, 23);
3237 g_eMatchInfo[74] = get_systime(0);
3238 ExecuteForward(g_hForwards[0][0], 0, g_eMatchInfo, 17184 + 128, 17184 + 132, 17184 + 136, get_systime(0));
3239 }
3240 case 5:
3241 {
3242 g_iCurrentMode = 5;
3243 server_cmd("amxx unpause %s", hns_jumpstat);
3244 server_cmd("mp_timelimit 0");
3245 server_cmd("mp_forcechasecam 0");
3246 server_cmd("mp_forcecamera 0");
3247 server_cmd("hns_switch 1");
3248 server_cmd("mp_autoteambalance 2");
3249 server_cmd("mp_roundtime 2.5");
3250 server_cmd("mp_freezetime 5");
3251 server_cmd("hns_flash 1");
3252 server_cmd("hns_checkpoints 1");
3253 server_cmd("hns_hook 1");
3254 server_cmd("hns_lastmode 1");
3255 enable_semiclip(3);
3256 }
3257 case 6:
3258 {
3259 server_cmd("mp_timelimit 0");
3260 server_cmd("mp_roundtime 99");
3261 server_cmd("mp_freezetime 0");
3262 server_cmd("mp_autoteambalance 0");
3263 server_cmd("sv_alltalk 0");
3264 enable_semiclip(0);
3265 g_iCurrentMode = 6;
3266 server_cmd("hns_lastmode 0");
3267 }
3268 default:
3269 {
3270 }
3271 }
3272 RestartRound(0.50);
3273 return 0;
3274}
3275
3276RestartRound(Float:delay)
3277{
3278 if (Survival)
3279 {
3280 new iPlayers[32];
3281 new iNum = 0;
3282 get_players(iPlayers, iNum, "c", "");
3283 new var1 = flSidesTime[iCurrentSW];
3284 var1 = var1[0][0] - g_flRoundTime;
3285 new i = 0;
3286 while (i < iNum)
3287 {
3288 new iPlayer = iPlayers[i];
3289 ResetPlayerRoundData(iPlayer);
3290 i++;
3291 }
3292 }
3293 Survival = 0;
3294 rg_round_end(delay, "", "", "Round Restarted", "none", MaxClients);
3295 return 0;
3296}
3297
3298public FwdKnifePrim(iPlayer)
3299{
3300 if (g_iCurrentMode)
3301 {
3302 ExecuteHamB(Ham_Weapon_SecondaryAttack, iPlayer);
3303 return 4;
3304 }
3305 return 1;
3306}
3307
3308public FwdDeployKnife(iEntity)
3309{
3310 !!! Removed Phi
3311 new iClient = get_member(iEntity, "");
3312 if (g_iCurrentMode == 6)
3313 {
3314 set_member(iEntity, "", 9999.00/*1176255488*/);
3315 set_member(iEntity, "", 9999.00/*1176255488*/);
3316 return 0;
3317 }
3318 if (get_user_team(iClient, var2, 0) == 1 && g_iCurrentMode != 2)
3319 {
3320 set_member(iEntity, "", 9999.00/*1176255488*/);
3321 set_member(iEntity, "", 9999.00/*1176255488*/);
3322 }
3323 return 0;
3324}
3325
3326public Task_Hud(id, Float:Time, Dhud, Red, Green, Blue, Float:HoldTime, String:Text[])
3327{
3328 new message[128];
3329 vformat(message, 127, Text, 9);
3330 new Args[7];
3331 Args[0] = id;
3332 Args[1] = EncodeText(message);
3333 Args[2] = Red;
3334 Args[3] = Green;
3335 Args[4] = Blue;
3336 Args[5] = Dhud;
3337 Args[6] = HoldTime;
3338 if (Time > 0.00)
3339 {
3340 set_task(Time, "Hud_Message", 89000, Args, 7, "", 0);
3341 }
3342 else
3343 {
3344 Hud_Message(Args);
3345 }
3346 return 0;
3347}
3348
3349public Hud_Message(String:Params[])
3350{
3351 !!! Removed Phi
3352 if (!id || is_user_connected(id))
3353 {
3354 if (dhud)
3355 {
3356 set_dhudmessage(RRR, GGG, BBB, -1.00/*-1082130432*/, 0.75/*1061158912*/, MaxClients, MaxClients, HoldTime, 0.10/*1036831949*/, 0.10/*1036831949*/);
3357 show_dhudmessage(id, Text);
3358 }
3359 set_hudmessage(RRR, GGG, BBB, -1.00, 0.75, 0, 0.00, HoldTime, 0.10, 0.10, -1);
3360 show_hudmessage(id, Text);
3361 }
3362 return 0;
3363}
3364
3365fnRegisterSayCmd(String:szCmd[], String:szShort[], String:szFunc[], flags, String:szInfo[])
3366{
3367 new szTemp[65];
3368 new szInfoLang[65];
3369 format(szInfoLang, 64, "%L", 0, szInfo);
3370 format(szTemp, 64, "say /%s", szCmd);
3371 register_clcmd(szTemp, szFunc, flags, szInfoLang, -1, MaxClients);
3372 format(szTemp, 64, "say .%s", szCmd);
3373 register_clcmd(szTemp, szFunc, flags, szInfoLang, -1, MaxClients);
3374 format(szTemp, 64, "/%s", szCmd);
3375 register_clcmd(szTemp, szFunc, flags, szInfoLang, -1, MaxClients);
3376 format(szTemp, 64, "%s", szCmd);
3377 register_clcmd(szTemp, szFunc, flags, szInfoLang, -1, MaxClients);
3378 format(szTemp, 64, "say /%s", szShort);
3379 register_clcmd(szTemp, szFunc, flags, szInfoLang, -1, MaxClients);
3380 format(szTemp, 64, "say .%s", szShort);
3381 register_clcmd(szTemp, szFunc, flags, szInfoLang, -1, MaxClients);
3382 format(szTemp, 64, "/%s", szShort);
3383 register_clcmd(szTemp, szFunc, flags, szInfoLang, -1, MaxClients);
3384 format(szTemp, 64, "%s", szShort);
3385 register_clcmd(szTemp, szFunc, flags, szInfoLang, -1, MaxClients);
3386 return 1;
3387}
3388
3389EncodeText(String:text[])
3390{
3391 return engfunc(EngFunc_AllocString, text);
3392}
3393
3394DecodeText(text, String:string[], length)
3395{
3396 global_get(glb_pStringBase, text, string, length);
3397 return 0;
3398}
3399
3400public CmdCaptain(id)
3401{
3402 if (~get_user_flags(id, 0) & 4096)
3403 {
3404 return 0;
3405 }
3406 if (!equali("", "hnsru_arena", 0))
3407 {
3408 return 0;
3409 }
3410 if (g_iCurrentMode)
3411 {
3412 return 0;
3413 }
3414 ResetCaptainData();
3415 g_iCurrentMode = 3;
3416 new iPlayers[32];
3417 new iNum = 0;
3418 get_players(iPlayers, iNum, "c", "");
3419 new i = 0;
3420 while (i < iNum)
3421 {
3422 new iPlayer = iPlayers[i];
3423 if (!(get_member(iPlayer, "") == 3))
3424 {
3425 TransferToSpec(iPlayer);
3426 }
3427 i++;
3428 }
3429 MenuChooseCaps(id);
3430 return 0;
3431}
3432
3433public MenuChooseCaps(id)
3434{
3435 !!! Removed Phi
3436 if (!is_user_connected(id))
3437 {
3438 return 0;
3439 }
3440 if (~get_user_flags(id, 0) & 4096)
3441 {
3442 return 0;
3443 }
3444 if (g_iCurrentMode != 3)
3445 {
3446 return 0;
3447 }
3448 new menu = menu_create("\rChoose captains", "ChooseCapsHandler", 0);
3449 new iPlayers[32];
3450 new iNum = 0;
3451 new szPlayer[10];
3452 new iPlayer = 0;
3453 get_players(iPlayers, iNum, "c", "");
3454 new i = 0;
3455 while (i < iNum)
3456 {
3457 if (g_iCaptain[0][0] != iPlayer && g_iCaptain[1][0] != iPlayer)
3458 {
3459 }
3460 else
3461 {
3462 num_to_str(iPlayer, szPlayer, 9);
3463 new var2;
3464 if (cultura_get_player_banned(iPlayer))
3465 {
3466 var2 = 50312;
3467 }
3468 else
3469 {
3470 var2 = 50356;
3471 }
3472 fmt("%n %s", iPlayer, var2);
3473 menu_additem(menu, Heap_1024, szPlayer, 0, -1);
3474 }
3475 i++;
3476 }
3477 menu_setprop(menu, 4, "Refresh");
3478 menu_setprop(menu, 12, 0);
3479 menu_display(id, menu, 0, -1);
3480 return 0;
3481}
3482
3483public ChooseCapsHandler(id, menu, item)
3484{
3485 !!! Removed Phi
3486 if (!is_user_connected(id))
3487 {
3488 menu_destroy(menu);
3489 return 0;
3490 }
3491 if (g_iCurrentMode != 3)
3492 {
3493 menu_destroy(menu);
3494 return 0;
3495 }
3496 if (item == -3)
3497 {
3498 menu_destroy(menu);
3499 MenuChooseCaps(id);
3500 return 0;
3501 }
3502 new s_Data[6];
3503 new s_Name[64];
3504 new i_Access = 0;
3505 new i_Callback = 0;
3506 menu_item_getinfo(menu, item, i_Access, s_Data, 5, s_Name, 63, i_Callback);
3507 menu_destroy(menu);
3508 new iPlayer = str_to_num(s_Data);
3509 if (!is_user_connected(iPlayer))
3510 {
3511 MenuChooseCaps(id);
3512 return 0;
3513 }
3514 if (cultura_get_player_banned(iPlayer))
3515 {
3516 MenuChooseCaps(id);
3517 return 0;
3518 }
3519 if (!g_iCaptain[0][0])
3520 {
3521 g_iCaptain[0] = iPlayer;
3522 client_print_color(MaxClients, -3, 50392, hns_tag, iPlayer);
3523 MenuChooseCaps(id);
3524 }
3525 else
3526 {
3527 if (!g_iCaptain[1][0])
3528 {
3529 if (is_user_connected(g_iCaptain[0][0]) && is_user_connected(g_iCaptain[1][0]))
3530 {
3531 rg_set_user_team(g_iCaptain[0][0], "", "", "");
3532 rg_set_user_team(g_iCaptain[1][0], "", "", "");
3533 new random = random_num(0, 1);
3534 if (random)
3535 {
3536 client_print_color(MaxClients, -3, "%s Randomly selected bhop battle!", hns_tag);
3537 new random_arena = random_num(0, 3);
3538 cultura_start_battle(random_arena, MaxClients);
3539 }
3540 else
3541 {
3542 client_print_color(MaxClients, -3, "%s Randomly selected knife!", hns_tag);
3543 pf_KnifeRound(0);
3544 }
3545 g_bCaptainsBattle = 1;
3546 }
3547 client_print_color(MaxClients, -3, "%s One of the captains left, captain mode stopped!", hns_tag);
3548 ResetCaptainData();
3549 }
3550 }
3551 return 0;
3552}
3553
3554public CmdPick(id)
3555{
3556 if (!is_user_connected(id))
3557 {
3558 return 0;
3559 }
3560 if (g_iCurrentMode != 3)
3561 {
3562 return 0;
3563 }
3564 if (g_iCaptainPick != id)
3565 {
3566 return 0;
3567 }
3568 MenuPick();
3569 menu_display(id, g_iPickMenu, 0, -1);
3570 return 0;
3571}
3572
3573public MenuPick()
3574{
3575 if (g_iPickMenu)
3576 {
3577 menu_destroy(g_iPickMenu);
3578 }
3579 g_iPickMenu = menu_create("\rPick player", "PickHandler", 0);
3580 new iPlayers[32];
3581 new iNum = 0;
3582 new szPlayer[10];
3583 new iPlayer = 0;
3584 get_players(iPlayers, iNum, "ce", "SPECTATOR");
3585 new i = 0;
3586 while (i < iNum)
3587 {
3588 iPlayer = iPlayers[i];
3589 num_to_str(iPlayer, szPlayer, 9);
3590 new var1;
3591 if (cultura_get_player_banned(iPlayer))
3592 {
3593 var1 = 51212;
3594 }
3595 else
3596 {
3597 var1 = 51256;
3598 }
3599
3600/ * ERROR! Не удалось привести тип объекта "Lysis.DSentinel" к типу "Lysis.DReturn". * /
3601 function "MenuPick"
3602public MenuPick()
3603
3604public PickHandler(id, menu, item)
3605{
3606 if (!is_user_connected(id))
3607 {
3608 return 0;
3609 }
3610 if (g_iCurrentMode != 3)
3611 {
3612 return 0;
3613 }
3614 if (g_iCaptainPick != id)
3615 {
3616 return 0;
3617 }
3618 if (get_member(id, "") == 3)
3619 {
3620 return 0;
3621 }
3622 if (item == -3)
3623 {
3624 MenuPick();
3625 menu_display(id, g_iPickMenu, 0, -1);
3626 return 0;
3627 }
3628 new s_Data[6];
3629 new s_Name[64];
3630 new i_Access = 0;
3631 new i_Callback = 0;
3632 menu_item_getinfo(menu, item, i_Access, s_Data, 5, s_Name, 63, i_Callback);
3633 new iPlayer = str_to_num(s_Data);
3634 if (!is_user_connected(iPlayer))
3635 {
3636 menu_display(id, g_iPickMenu, 0, -1);
3637 return 0;
3638 }
3639 if (cultura_get_player_banned(iPlayer))
3640 {
3641 menu_display(id, g_iPickMenu, 0, -1);
3642 return 0;
3643 }
3644 client_print_color(MaxClients, -3, 51292, hns_tag, id, iPlayer);
3645 rg_set_user_team(iPlayer, get_member(id, ""), "", "");
3646 rg_round_respawn(iPlayer);
3647 new var1;
3648 if (g_iCaptain[0][0] == id)
3649 {
3650 var1 = g_iCaptain[1][0];
3651 }
3652 else
3653 {
3654 var1 = g_iCaptain[0][0];
3655 }
3656 g_iCaptainPick = var1;
3657 MenuPick();
3658 menu_display(g_iCaptainPick, g_iPickMenu, 0, -1);
3659 new iPlayers[32];
3660 new iNum = 0;
3661 get_players(iPlayers, iNum, "c", "");
3662 new total_players = 0;
3663 new i = 0;
3664 while (i < iNum)
3665 {
3666 new tempid = iPlayers[i];
3667 if (!(get_member(tempid, "") == 3))
3668 {
3669 total_players++;
3670 }
3671 i++;
3672 }
3673 if (total_players == 10)
3674 {
3675 ResetCaptainData();
3676 client_print_color(MaxClients, -3, "%s Teams filled!", hns_tag);
3677 }
3678 return 0;
3679}
3680
3681ResetCaptainData()
3682{
3683 g_iCaptainPick = 0;
3684 g_bCaptainsBattle = 0;
3685 new i = 0;
3686 while (i < 2)
3687 {
3688 show_menu(g_iCaptain[i][0][0], 0, "\n", 1, "");
3689 g_iCaptain[i] = 0;
3690 i++;
3691 }
3692 PrepareMode(0);
3693 return 0;
3694}
3695
3696public CmdStopCaptain(id)
3697{
3698 if (~get_user_flags(id, 0) & 4096)
3699 {
3700 return 0;
3701 }
3702 if (!equali("", "hnsru_arena", 0))
3703 {
3704 return 0;
3705 }
3706 if (g_iCurrentMode != 3)
3707 {
3708 return 0;
3709 }
3710 client_print_color(MaxClients, -3, 51568, hns_tag, id);
3711 ResetCaptainData();
3712 return 0;
3713}
3714
3715public LoadMapCFG()
3716{
3717 new szPath[128];
3718 get_configsdir(szPath, 127);
3719 format(szPath, 127, "%s/mixsystem", szPath);
3720 if (!dir_exists(szPath, MaxClients))
3721 {
3722 mkdir(szPath, 511, MaxClients, "GAMECONFIG");
3723 }
3724 format(szPath, 127, "%s/%s.cfg", szPath, g_eMatchInfo);
3725 if (file_exists(szPath, MaxClients))
3726 {
3727 server_cmd("exec %s", szPath);
3728 }
3729 else
3730 {
3731 server_cmd("mp_roundtime 3");
3732 }
3733 return 0;
3734}
3735
3736public bool:CheckPlayer(id)
3737{
3738 new TempPlayer[25];
3739 new iSize = ArraySize(g_aPlayersLoadData);
3740 new szAuth[24];
3741 get_user_authid(id, szAuth, 23);
3742 new i = 0;
3743 while (i < iSize)
3744 {
3745 ArrayGetArray(g_aPlayersLoadData, i, TempPlayer, -1);
3746 if (equal(szAuth, TempPlayer, 0))
3747 {
3748 rg_set_user_team(id, TempPlayer[24], "", "");
3749 return true;
3750 }
3751 i++;
3752 }
3753 return false;
3754}
3755
3756public SavePlayers()
3757{
3758 new JSON:root_array = json_init_array();
3759 new iPlayers[32];
3760 new iNum = 0;
3761 new szAuth[24];
3762 get_players(iPlayers, iNum, "c", "");
3763 new i = 0;
3764 while (i < iNum)
3765 {
3766 new id = iPlayers[i];
3767 if (!(get_member(id, "") == 3))
3768 {
3769 get_user_authid(id, szAuth, 23);
3770 fmt("player_%i", i + 1);
3771 ArrayAppendValue(root_array, json_init_string(Heap_1024));
3772 new JSON:object = json_init_object();
3773 fmt("%s", szAuth);
3774 json_object_set_string(object, "player_steamid", Heap_1024, MaxClients);
3775 json_object_set_number(object, "player_auth", get_member(id, ""), MaxClients);
3776 ArrayAppendValue(root_array, object);
3777 json_free(object);
3778 }
3779 i++;
3780 }
3781 json_serial_to_string(root_array, g_sBuffer, 2047, "");
3782 server_print("Players saved (%d bytes)", json_serial_size(root_array, "", MaxClients));
3783 json_free(root_array);
3784 return 0;
3785}
3786
3787ArrayAppendValue(JSON:array, JSON:node)
3788{
3789 json_array_append_value(array, node);
3790 json_free(node);
3791 return 0;
3792}
3793
3794public TaskDestroyBreakables()
3795{
3796 new iEntity = -1;
3797 new var1 = rg_find_ent_by_class(iEntity, "func_breakable", MaxClients);
3798 iEntity = var1;
3799 while (var1)
3800 {
3801 if (get_entvar(iEntity, ""))
3802 {
3803 set_entvar(iEntity, "", "");
3804 }
3805 }
3806 return 0;
3807}
3808
3809public Forward_SetClientListening(iReceiver, iSender, bool:bListen)
3810{
3811 !!! Removed Phi
3812 if (g_iCurrentMode <= 1 || g_iCurrentMode == 3 || g_iCurrentMode == 5)
3813 {
3814 engfunc(EngFunc_SetClientListening, iReceiver, iSender, 1);
3815 forward_return(3, 1);
3816 return 4;
3817 }
3818 if (is_user_connected(iReceiver) && is_user_connected(iSender))
3819 {
3820 new var4 = Heap_4;
3821 var4[0] = 33556;
3822 new var5 = Heap_4;
3823 var5[0] = 33556;
3824 if (get_user_team(iSender, var5, 0) == get_user_team(iReceiver, var4, 0))
3825 {
3826 engfunc(EngFunc_SetClientListening, iReceiver, iSender, 1);
3827 forward_return(3, 1);
3828 return 4;
3829 }
3830 if (get_user_team(iReceiver, var6, 0) != 1 && get_user_team(iReceiver, var7, 0) != 2)
3831 {
3832 engfunc(EngFunc_SetClientListening, iReceiver, iSender, 1);
3833 forward_return(3, 1);
3834 return 4;
3835 }
3836 }
3837 engfunc(EngFunc_SetClientListening, iReceiver, iSender, 0);
3838 forward_return(3, 0);
3839 return 4;
3840}
3841
3842public TransferPlayers(TeamName:iTeam)
3843{
3844 new Float:flTime = 0;
3845 new iPlayers[32];
3846 new iPlayersNum = 0;
3847 get_players(iPlayers, iPlayersNum, "ch", "");
3848 new i = 0;
3849 while (i < iPlayersNum)
3850 {
3851 new id = iPlayers[i];
3852 if (is_user_connected(id))
3853 {
3854 switch (id)
3855 {
3856 case 1:
3857 {
3858 flTime = 0.10/*1036831949*/;
3859 }
3860 case 2:
3861 {
3862 flTime = 0.10/*1036831949*/;
3863 }
3864 case 3:
3865 {
3866 flTime = 0.10/*1036831949*/;
3867 }
3868 case 4:
3869 {
3870 flTime = 0.10/*1036831949*/;
3871 }
3872 case 5:
3873 {
3874 flTime = 0.10/*1036831949*/;
3875 }
3876 case 6:
3877 {
3878 flTime = 0.10/*1036831949*/;
3879 }
3880 case 7:
3881 {
3882 flTime = 0.10/*1036831949*/;
3883 }
3884 case 8:
3885 {
3886 flTime = 0.10/*1036831949*/;
3887 }
3888 case 9:
3889 {
3890 flTime = 0.20/*1045220557*/;
3891 }
3892 case 10:
3893 {
3894 flTime = 0.20/*1045220557*/;
3895 }
3896 case 11:
3897 {
3898 flTime = 0.20/*1045220557*/;
3899 }
3900 case 12:
3901 {
3902 flTime = 0.20/*1045220557*/;
3903 }
3904 case 13:
3905 {
3906 flTime = 0.20/*1045220557*/;
3907 }
3908 case 14:
3909 {
3910 flTime = 0.20/*1045220557*/;
3911 }
3912 case 15:
3913 {
3914 flTime = 0.20/*1045220557*/;
3915 }
3916 case 16:
3917 {
3918 flTime = 0.20/*1045220557*/;
3919 }
3920 case 17:
3921 {
3922 flTime = 0.30/*1050253722*/;
3923 }
3924 case 18:
3925 {
3926 flTime = 0.30/*1050253722*/;
3927 }
3928 case 19:
3929 {
3930 flTime = 0.30/*1050253722*/;
3931 }
3932 case 20:
3933 {
3934 flTime = 0.30/*1050253722*/;
3935 }
3936 case 21:
3937 {
3938 flTime = 0.30/*1050253722*/;
3939 }
3940 case 22:
3941 {
3942 flTime = 0.30/*1050253722*/;
3943 }
3944 case 23:
3945 {
3946 flTime = 0.30/*1050253722*/;
3947 }
3948 case 24:
3949 {
3950 flTime = 0.30/*1050253722*/;
3951 }
3952 case 25:
3953 {
3954 flTime = 0.40/*1053609165*/;
3955 }
3956 case 26:
3957 {
3958 flTime = 0.40/*1053609165*/;
3959 }
3960 case 27:
3961 {
3962 flTime = 0.40/*1053609165*/;
3963 }
3964 case 28:
3965 {
3966 flTime = 0.40/*1053609165*/;
3967 }
3968 case 29:
3969 {
3970 flTime = 0.40/*1053609165*/;
3971 }
3972 case 30:
3973 {
3974 flTime = 0.40/*1053609165*/;
3975 }
3976 case 31:
3977 {
3978 flTime = 0.40/*1053609165*/;
3979 }
3980 case 32:
3981 {
3982 flTime = 0.40/*1053609165*/;
3983 }
3984 default:
3985 {
3986 }
3987 }
3988
3989/ * ERROR! Ссылка на объект не указывает на экземпляр объекта. * /
3990 function "TransferPlayers"
3991public TransferPlayers(TeamName:iTeam)
3992
3993public task_to_team(String:Params[])
3994{
3995 new id = Params[0];
3996 new team = Params[1];
3997 if (is_user_connected(id))
3998 {
3999 if (is_user_alive(id))
4000 {
4001 user_silentkill(id, 1);
4002 }
4003 if (team != get_member(id, ""))
4004 {
4005 SetTeam(id, team);
4006 }
4007 }
4008 return 0;
4009}
4010
4011rg_set_user_godmode(index, godmode)
4012{
4013 new var1;
4014 if (godmode == 1)
4015 {
4016 var1 = 0;
4017 }
4018 else
4019 {
4020 var1 = 2.00/*1073741824*/;
4021 }
4022
4023/ * ERROR! Не удалось привести тип объекта "Lysis.DSentinel" к типу "Lysis.DReturn". * /
4024 function "rg_set_user_godmode"
4025rg_set_user_godmode(index, godmode)
4026
4027public fnConvertTime(Float:time, String:convert_time[], len)
4028{
4029 new sTemp[24];
4030 new Float:fSeconds = time;
4031 new iMinutes = 0;
4032 iMinutes = floatround(fSeconds / 60.00, floatround_floor);
4033 fSeconds -= 60.00/*1114636288*/ * iMinutes;
4034 new intpart = floatround(fSeconds, floatround_floor);
4035 new Float:decpart = fSeconds - intpart * 100.00;
4036 intpart = floatround(decpart, floatround_round);
4037 formatex(sTemp, 23, "%02i:%02.0f.%d", iMinutes, fSeconds, intpart);
4038 formatex(convert_time, len, sTemp);
4039 return 1;
4040}
4041
4042TransferToSpec(id)
4043{
4044 if (is_user_alive(id))
4045 {
4046 user_silentkill(id, 1);
4047 }
4048 SetTeam(id, TeamName:3);
4049 set_entvar(id, "", 0);
4050 set_entvar(id, "", 5);
4051 return 0;
4052}
4053
4054enable_semiclip(team)
4055{
4056 server_cmd("semiclip_option semiclip 1");
4057 server_cmd("semiclip_option team %d", team);
4058 server_cmd("semiclip_option time 0");
4059 g_bSemiclip = 1;
4060 return 0;
4061}
4062
4063public disable_semiclip()
4064{
4065 server_cmd("semiclip_option semiclip 0");
4066 server_cmd("semiclip_option team 0");
4067 server_cmd("semiclip_option time 0");
4068 g_bSemiclip = 0;
4069 return 0;
4070}
4071
4072GetKey(id)
4073{
4074 new szAuth[24];
4075 get_user_authid(id, szAuth, 23);
4076
4077/ * ERROR! Ссылка на объект не указывает на экземпляр объекта. * /
4078 function "GetKey"
4079GetKey(id)
4080
4081Msg_Update_ScoreInfo(id)
4082{
4083 message_begin(MSG_BROADCAST, !MSG_ID:85, 32276, 0);
4084 write_byte(id);
4085 write_short(0);
4086 write_short(0);
4087 write_short(0);
4088 write_short(0);
4089 message_end();
4090 return 0;
4091}
4092
4093SetTeam(id, TeamName:iTeam)
4094{
4095 set_member(id, "", 0);
4096 if (is_user_alive(id))
4097 {
4098 user_silentkill(id, 1);
4099 }
4100 switch (iTeam)
4101 {
4102 case 1:
4103 {
4104 rg_internal_cmd(id, "jointeam", "1");
4105 fmt("%d", random_num(1, 4));
4106 rg_internal_cmd(id, "joinclass", Heap_1024);
4107 }
4108 case 2:
4109 {
4110 rg_internal_cmd(id, "jointeam", "2");
4111 fmt("%d", random_num(1, 4));
4112 rg_internal_cmd(id, "joinclass", Heap_1024);
4113 }
4114 case 3:
4115 {
4116 rg_internal_cmd(id, "jointeam", "6");
4117 }
4118 default:
4119 {
4120 }
4121 }
4122 return 0;
4123}
4124
4125secondsToDHM(time)
4126{
4127 !!! Removed Phi
4128 new szTime[32];
4129 if (time < 60)
4130 {
4131 formatex(szTime, 31, "%ds.", time);
4132 }
4133 else
4134 {
4135 new days = time / 86400;
4136 new hours = time - days * 86400 / 3600;
4137 new minutes = time - days * 86400 - hours * 3600 / 60;
4138 new seconds = time;
4139 if (days)
4140 {
4141 formatex(szTime, 31, "%dd.", days);
4142 }
4143 if (hours)
4144 {
4145 formatex(szTime, 31, "%s %dh.", szTime, hours);
4146 }
4147 if (minutes)
4148 {
4149 formatex(szTime, 31, "%s %dm.", szTime, minutes);
4150 }
4151 if (seconds)
4152 {
4153 formatex(szTime, 31, "%s %ds.", szTime, seconds);
4154 }
4155 trim(szTime);
4156 }