Advertisement
Guest User

Untitled

a guest
Feb 26th, 2017
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 56.81 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fakemeta_util>
  4. #include <hamsandwich>
  5. #include <fun>
  6. #include <cstrike>
  7. #include <colorchat>
  8.  
  9. #include <engine> //tylko uzyte do zablokowania latarki
  10.  
  11. #define PLUGIN "Jail Mod"
  12. #define VERSION "1.0.6a"
  13. #define AUTHOR "Cypis"
  14.  
  15. //#define DEBUG 1
  16.  
  17. #define MAX 32
  18.  
  19. #define strip_user_weapons2(%0) strip_user_weapons(%0), set_pdata_int(%0, 116, 0)
  20.  
  21. native cs_set_player_model(id, newmodel[]); //wymaga cs_player_models_api.amxx
  22.  
  23. enum
  24. {
  25.     ID_DZWIEK_POSZ = 7000,
  26.     ID_LOS_PROWADZACY,
  27.     ID_CZAS,
  28.     ID_FREZZ,
  29.     ID_SPEED_FZ,
  30. }
  31.  
  32. #define WSZYSCY 0
  33. #define ZYWI 1
  34.  
  35. new ilosc_graczy[2];
  36. new array_graczy[2][MAX+1];
  37.  
  38. new const maxAmmo[31] = {0,52,0,90,1,31,1,100,90,1,120,100,100,90,90,90,100,120,30,120,200,31,90,120,90,2,35,90,90,0,100};
  39. new const dni_tygodnia[][] = {"Niedziela", "Poniedzialek", "Wtorek", "Sroda", "Czwartek", "Piatek", "Sobota"};
  40.  
  41. new SyncHudObj1, SyncHudObj3, SyncHudObj4, jail_day;//SyncHudObj2
  42. new bool:usuwanie_ustawien, bool:end_usun, bool:pokaz_raz, bool:czas_bronie, bool:pojedynek[MAX+1], bool:free_day[MAX+1];
  43. new bool:obsluga_dala, bool:ustaw_freeday[MAX+1], bool:ustaw_duszka[MAX+1];
  44. new AdminVoice, prowadzacy, ostatni_wiezien;
  45. new szPoszukiwani[512], nazwa_gracza[MAX+1][64], gTeam[MAX+1];
  46. new g_msgid[MAX+1];
  47.  
  48. new bool:user_duszek[MAX+1];
  49.  
  50. new szInfo[257], szInfoPosz[513], dane_dnia[11], gTimeStart, id_zabawa;
  51. new fLastPrisonerShowWish, fLastPrisonerTakeWish, fRemoveData, fDayStartPre, fDayStartPost, fJoinTeam;
  52. new ProwadzacyMenu;
  53.  
  54. new pCvarMikro;
  55.  
  56. new Float:user_speed[MAX+1];
  57.  
  58. new g_RoundTime, g_FreezeTime;
  59.  
  60. new g_Buttons[10];
  61.  
  62. public plugin_init()
  63. {
  64. #if defined DEBUG
  65.     log_to_file("jail_api_jailbreak.log", "plugin_init pre");
  66. #endif
  67.     register_plugin(PLUGIN, VERSION, AUTHOR);
  68.    
  69.     RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);
  70.     RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
  71.     RegisterHam(Ham_TraceAttack, "player", "TraceAttack");
  72.     RegisterHam(Ham_Killed, "player", "SmiercGraczaPost", 1);
  73.    
  74.     RegisterHam(Ham_Item_Deploy, "weapon_knife", "WeaponKnife", 1);
  75.     RegisterHam(Ham_TraceAttack, "func_button", "ButtonTraceAttack");
  76.    
  77.     RegisterHam(Ham_Touch, "armoury_entity", "DotykBroni");
  78.     RegisterHam(Ham_Touch, "weapon_shield", "DotykBroni");
  79.     RegisterHam(Ham_Touch, "weaponbox", "DotykBroni");
  80.     RegisterHam(Ham_Use, "game_player_equip", "BlokowanieUse");
  81.     RegisterHam(Ham_Use, "player_weaponstrip", "BlokowanieUse");
  82.     RegisterHam(Ham_Use, "func_healthcharger", "BlokowanieLeczenie");
  83.    
  84.     RegisterHam(Ham_Item_AddToPlayer, "weapon_knife", "OnAddToPlayerKnife", 1);
  85.    
  86.     register_forward(FM_EmitSound, "EmitSound");
  87.     register_forward(FM_Voice_SetClientListening, "Voice_SetClientListening");
  88.    
  89.     register_event("StatusValue", "StatusShow", "be", "1=2", "2!0");
  90.     register_event("StatusValue", "StatusHide", "be", "1=1", "2=0");
  91.     register_event("TextMsg", "RoundRestart", "a", "2&#Game_w");
  92.     register_event("HLTV", "PreRoundStart", "a", "1=0", "2=0");
  93.     register_event("CurWeapon", "CurWeapon", "be", "1=1");
  94.    
  95.     register_logevent("RoundEnd", 2, "1=Round_End");
  96.     register_logevent("RoundRestart", 2, "0=World triggered", "1=Game_Commencing");
  97.     register_logevent("PostRoundStart", 2, "0=World triggered", "1=Round_Start");
  98.    
  99.     set_msg_block(106, BLOCK_SET); //block info player
  100.     set_msg_block(145, BLOCK_SET); //block dhud
  101.     set_msg_block(122, BLOCK_SET); //block clcorpse
  102.     set_msg_block(get_user_msgid("MOTD"), BLOCK_SET);
  103.    
  104.     register_clcmd("radio1", "BlokujKomende");
  105.     register_clcmd("radio2", "BlokujKomende");
  106.     register_clcmd("radio3", "BlokujKomende");
  107.     register_clcmd("drop", "BlockDrop");
  108.    
  109.     register_clcmd("weapon_piesci", "ClientCommand_SelectKnife");
  110.     register_clcmd("weapon_palka", "ClientCommand_SelectKnife");
  111.    
  112.     register_clcmd("chooseteam", "cmdChooseTeam");
  113.     register_clcmd("jail_cele", "MenuUstwianiaCel");
  114.    
  115.     register_clcmd("+adminvoice", "AdminVoiceOn");
  116.     register_clcmd("-adminvoice", "AdminVoiceOff");
  117.     register_clcmd("say /oddaj", "OddajProwadzenie");
  118.     register_clcmd("say /obsluga", "ObslugaZyczen");
  119.     register_clcmd("say /guns", "MenuBroni");
  120.     register_clcmd("say /zabawy", "MenuZabaw");
  121.     register_clcmd("say /lr", "MenuZyczen");
  122.    
  123.     register_clcmd("say /mute", "MenuMutowania");
  124.    
  125.     register_message(77 ,"msg_TextMsg");
  126.     register_message(96, "msg_show_menu");
  127.     register_impulse(100, "msg_FlashLight");
  128.     register_message(107, "msg_StatusIcon");
  129.     register_message(114, "msg_vgui_menu");
  130.    
  131.     register_menucmd(register_menuid("mainmenu"), 0x223, "_menu_chooseteam");
  132.    
  133.     pCvarMikro = register_cvar("jail_tt_mikro", "0");
  134.    
  135.     g_FreezeTime = get_pcvar_num(get_cvar_pointer("mp_freezetime"));
  136.     g_RoundTime = floatround(get_cvar_float("mp_roundtime")*60.0);
  137.    
  138.     SyncHudObj1 = CreateHudSyncObj();
  139.     //SyncHudObj2 = CreateHudSyncObj();
  140.     SyncHudObj3 = CreateHudSyncObj();
  141.     SyncHudObj4 = CreateHudSyncObj();
  142.    
  143.     fJoinTeam = CreateMultiForward("OnJoinTeam", ET_CONTINUE, FP_CELL, FP_CELL, FP_CELL, FP_CELL);
  144.     fDayStartPre = CreateMultiForward("OnDayStartPre", ET_CONTINUE, FP_CELL, FP_ARRAY, FP_ARRAY, FP_ARRAY, FP_CELL);
  145.     fDayStartPost = CreateMultiForward("OnDayStartPost", ET_CONTINUE, FP_CELL);
  146.     fLastPrisonerShowWish = CreateMultiForward("OnLastPrisonerShowWish", ET_CONTINUE, FP_CELL);
  147.     fLastPrisonerTakeWish = CreateMultiForward("OnLastPrisonerTakeWish", ET_CONTINUE, FP_CELL, FP_CELL);
  148.     fRemoveData = CreateMultiForward("OnRemoveData", ET_CONTINUE, FP_CELL);
  149.    
  150.     ProwadzacyMenu = menu_create("Pozwol wiezniowi wybrac zyczenie:", "Handel_Obsluga_Zyczen");
  151.     menu_additem(ProwadzacyMenu, "Tak");
  152.     menu_additem(ProwadzacyMenu, "Nie");
  153.    
  154.     WczytajCele();
  155.     set_task(1.0, "task_server", _, _, _, "b");
  156.     set_task(5.0, "task_cfg");
  157.    
  158. #if defined DEBUG
  159.     log_to_file("jail_api_jailbreak.log", "plugin_init post");
  160. #endif 
  161. }
  162.  
  163. public task_cfg()
  164. {
  165. #if defined DEBUG
  166.     log_to_file("jail_api_jailbreak.log", "task_cfg pre");
  167. #endif
  168.     server_cmd("exec addons/amxmodx/configs/jailbreak.cfg");
  169. #if defined DEBUG
  170.     log_to_file("jail_api_jailbreak.log", "task_cfg post");
  171. #endif
  172. }
  173.  
  174. public CurWeapon(id)
  175. {  
  176.     if(!is_user_alive(id))
  177.         return;
  178.        
  179. #if defined DEBUG
  180.     log_to_file("jail_api_jailbreak.log", "CurWeapon pre");
  181. #endif
  182.     if(!end_usun)
  183.         set_user_maxspeed(id, user_speed[id]? user_speed[id]: 250.0);
  184.  
  185.     if(user_duszek[id])
  186.     {
  187.         new weapon = read_data(2);
  188.         if(weapon != CSW_KNIFE && weapon != CSW_FLASHBANG && weapon != CSW_SMOKEGRENADE)
  189.         {
  190.             user_duszek[id] = false;
  191.             set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255);
  192.        
  193.             AddArray(id, WSZYSCY);
  194.             AddArray(id, ZYWI);
  195.         }
  196.     }
  197.     if(dane_dnia[7])
  198.     {
  199.         if(dane_dnia[7] != 3)
  200.         {
  201.             if(gTeam[id] != dane_dnia[7])
  202.                 return;
  203.         }
  204.         new weapon = read_data(2);
  205.         if(weapon == CSW_KNIFE || weapon == CSW_HEGRENADE || weapon == CSW_FLASHBANG || weapon == CSW_SMOKEGRENADE)
  206.             return;
  207.    
  208.         cs_set_user_bpammo(id, weapon, maxAmmo[weapon]);
  209.     }
  210. #if defined DEBUG
  211.     log_to_file("jail_api_jailbreak.log", "CurWeapon post");
  212. #endif
  213. }
  214.    
  215. enum
  216. {
  217.     MIKRO = 0,
  218.     WALKA,
  219.     FF_TT,
  220.     TT_GOD,
  221.     CT_GOD,
  222.     CT_NIE_MOZE_TT,
  223.     TT_NIE_MOZE_CT
  224. }
  225.  
  226. new bool:mode_gracza[7];
  227.  
  228. enum
  229. {
  230.     V_PALKA = 0,
  231.     P_PALKA,
  232.     V_PIESCI,
  233.     P_PIESCI,
  234.     V_REKAWICE,
  235.     P_REKAWICE
  236. }
  237. new SzModels[6][128];
  238.  
  239. public plugin_precache()
  240. {
  241.     SzModels[V_PALKA] = "models/jb_cypis/v_palka.mdl";
  242.     SzModels[P_PALKA] = "models/jb_cypis/p_palka.mdl";
  243.     SzModels[V_PIESCI] = "models/jb_cypis/v_piesci.mdl";
  244.     SzModels[P_PIESCI] = "models/jb_cypis/p_piesci.mdl";
  245.     SzModels[V_REKAWICE] = "models/jb_cypis/v_rekawice.mdl";
  246.     SzModels[P_REKAWICE] = "models/jb_cypis/p_rekawice.mdl";
  247.    
  248.     precache_model(SzModels[V_PALKA]);
  249.     precache_model(SzModels[P_PALKA]);
  250.     precache_model(SzModels[V_PIESCI]);
  251.     precache_model(SzModels[P_PIESCI]);
  252.     precache_model(SzModels[V_REKAWICE]);
  253.     precache_model(SzModels[P_REKAWICE]);
  254.    
  255.     precache_model("models/player/wiezien_cypis/wiezien_cypis.mdl");
  256.     precache_model("models/player/klawisz_cypis/klawisz_cypis.mdl");
  257.    
  258.     precache_sound("weapons/prawy_przycisk.wav");
  259.     precache_sound("weapons/uderzenie_mur.wav");
  260.     precache_sound("weapons/hit1.wav");
  261.     precache_sound("weapons/hit2.wav");
  262.     precache_sound("weapons/machanie.wav");
  263.    
  264.     precache_sound("jb_cypis/uciekinier.wav");
  265.    
  266.     precache_generic("sprites/weapon_piesci.txt");  
  267.     precache_generic("sprites/weapon_palka.txt");  
  268.     precache_generic("sprites/640hud41.spr");  
  269. }
  270.  
  271. /********** - Native - ************/
  272.  
  273. new Array:gZabawyName;
  274. new Array:gZyczeniaName;
  275. public plugin_natives()
  276. {
  277.     gZabawyName = ArrayCreate(32);
  278.     gZyczeniaName = ArrayCreate(32);
  279.    
  280.     register_native("jail_register_game", "ZarejstrujZabawe", 1);
  281.     register_native("jail_register_wish", "ZarejstrujZyczenie", 1);
  282.    
  283.     register_native("jail_get_prisoners_micro", "PobierzMikrofon", 1);
  284.     register_native("jail_get_prisoners_fight", "PobierzWalke", 1);
  285.     register_native("jail_get_prisoner_free", "PobierzFreeday", 1);
  286.     register_native("jail_get_prisoner_ghost", "PobierzDuszka", 1);
  287.     register_native("jail_get_prisoner_last", "PobierzOstatniego", 1);
  288.     register_native("jail_get_prowadzacy", "PobierProwadzacego", 1);
  289.     register_native("jail_get_poszukiwany", "PobierzPoszukiwany", 1);
  290.     register_native("jail_get_user_block", "PobierzPojedynek", 1);
  291.     register_native("jail_get_play_game_id", "PobierzIdZabawy", 1);
  292.     register_native("jail_get_days", "PobierzDni", 1);
  293.    
  294.     register_native("jail_set_prisoners_micro", "UstawMikrofon", 1);
  295.     register_native("jail_set_prisoners_fight", "UstawWalke", 1);
  296.     register_native("jail_set_prisoner_free", "UstawFreeday", 1);
  297.     register_native("jail_set_prisoner_ghost", "UstawDuszka", 1);
  298.     register_native("jail_set_prowadzacy", "UstawProwadzacego", 1);
  299.     register_native("jail_set_god_tt", "UstawTTGod", 1);
  300.     register_native("jail_set_god_ct", "UstawCTGod", 1);
  301.     register_native("jail_set_ct_hit_tt", "UstawCTHitTT", 1);
  302.     register_native("jail_set_tt_hit_ct", "UstawTTHitCT", 1);
  303.     register_native("jail_set_user_block", "UstawBlokade", 1);
  304.     register_native("jail_set_play_game", "UstawZabawe", 1);
  305.     register_native("jail_set_user_menuweapons", "UstawMenuWeapon", 1);
  306.     register_native("jail_set_user_speed", "UstawPredkosc", 1);
  307.    
  308.     register_native("jail_open_cele", "OtworzCele", 1);
  309. }
  310.  
  311. public ZarejstrujZyczenie(nazwa_zyczenia[])
  312. {
  313.     param_convert(1);
  314.     ArrayPushString(gZyczeniaName, nazwa_zyczenia);
  315.     static ilosc; ilosc++;
  316.     return ilosc;
  317. }
  318.  
  319. new bool:zyczenie_wybrane;
  320. public OnLastPrisonerShowWish(id)
  321. {
  322. #if defined DEBUG
  323.     log_to_file("jail_api_jailbreak.log", "OnLastPrisonerShowWish pre");
  324. #endif
  325.     MenuZyczen(id);
  326. #if defined DEBUG
  327.     log_to_file("jail_api_jailbreak.log", "OnLastPrisonerShowWish post");
  328. #endif
  329. }
  330.  
  331. public MenuZyczen(id)
  332. {
  333.     if(gTeam[id] != 1 || ostatni_wiezien != id || zyczenie_wybrane || !obsluga_dala)
  334.         return PLUGIN_HANDLED;
  335.        
  336. #if defined DEBUG
  337.     log_to_file("jail_api_jailbreak.log", "MenuZyczen pre");
  338. #endif
  339.     if(!ArraySize(gZyczeniaName))
  340.     {
  341.         ColorChat(id, TEAM_COLOR,"^x04[PrisonBreak] ^x01Nie ma zadnych zyczen na serwerze!");
  342.         return PLUGIN_HANDLED;
  343.     }
  344.        
  345.     new szZyczenia[32], szID[32], menu = menu_create("Wybierz Zyczenie:", "Handel_Zyczenie");          
  346.     for(new i=0; i<ArraySize(gZyczeniaName); i++)
  347.     {
  348.         ArrayGetString(gZyczeniaName, i, szZyczenia, 31);
  349.         num_to_str(i+1, szID, 31);
  350.         menu_additem(menu, szZyczenia, szID);
  351.     }
  352.    
  353.     menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
  354.     menu_display(id, menu);
  355. #if defined DEBUG
  356.     log_to_file("jail_api_jailbreak.log", "MenuZyczen post");
  357. #endif
  358.     return PLUGIN_HANDLED;
  359. }
  360.  
  361. public Handel_Zyczenie(id, menu, item)
  362. {
  363.     if(item == MENU_EXIT || !is_user_alive(id) || ostatni_wiezien != id)
  364.         return;
  365.    
  366. #if defined DEBUG
  367.     log_to_file("jail_api_jailbreak.log", "Handel_Zyczenie pre");
  368. #endif
  369.     new acces, szZyczenie[32], szID[32];
  370.     menu_item_getinfo(menu, item, acces, szID, 31, szZyczenie, 31, acces);
  371.    
  372.     new iRet;
  373.     ExecuteForward(fLastPrisonerTakeWish, iRet, id, str_to_num(szID))
  374.     if(iRet == -1)
  375.     {
  376.         menu_display(id, menu);
  377.         ColorChat(id, TEAM_COLOR,"^x04[PrisonBreak] ^x01Nie mozesz wybrac tego zyczenia!");
  378.         return;
  379.     }
  380.    
  381.     ColorChat(0, TEAM_COLOR,"^x04[PrisonBreak] ^x03%s ^x01wybral^x03 %s", nazwa_gracza[id], szZyczenie);
  382.     zyczenie_wybrane = true;
  383. #if defined DEBUG
  384.     log_to_file("jail_api_jailbreak.log", "Handel_Zyczenie post");
  385. #endif
  386. }
  387. ////////////////////
  388.  
  389. public ZarejstrujZabawe(nazwa_zabawy[])
  390. {
  391.     param_convert(1);
  392.     ArrayPushString(gZabawyName, nazwa_zabawy);
  393.    
  394.     static ilosc = 8; ilosc++;
  395.     return ilosc;
  396. }
  397.  
  398. new bool:zabawa_wybrana;
  399. public MenuZabaw(id)
  400. {
  401.     if(gTeam[id] != 2 || prowadzacy != id)
  402.         return PLUGIN_CONTINUE;
  403.    
  404. #if defined DEBUG
  405.     log_to_file("jail_api_jailbreak.log", "MenuZabaw pre");
  406. #endif
  407.     if(!ArraySize(gZabawyName))
  408.     {
  409.         ColorChat(id, TEAM_COLOR,"^x04[PrisonBreak] ^x01Nie ma zadnych zabaw na serwerze!");
  410.         return PLUGIN_CONTINUE;
  411.     }
  412.    
  413.     if(zabawa_wybrana)
  414.     {
  415.         ColorChat(id, TEAM_COLOR,"^x04[PrisonBreak] ^x01Juz wybrales dzisiaj zabawe");
  416.         return PLUGIN_CONTINUE;
  417.     }
  418.    
  419.     new szZabawa[32], szID[32], menu = menu_create("Menu Zabaw:", "Handel_Menu_Zabaw");
  420.     for(new i=0; i<ArraySize(gZabawyName); i++)
  421.     {
  422.         ArrayGetString(gZabawyName, i, szZabawa, 31);
  423.         num_to_str(i+9, szID, 31);
  424.         menu_additem(menu, szZabawa, szID);
  425.     }
  426.    
  427.     menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
  428.     menu_display(id, menu);
  429. #if defined DEBUG
  430.     log_to_file("jail_api_jailbreak.log", "MenuZabaw post");
  431. #endif
  432.     return PLUGIN_HANDLED;
  433. }
  434.  
  435. public Handel_Menu_Zabaw(id, menu, item)
  436. {
  437.     if(item == MENU_EXIT || zabawa_wybrana || prowadzacy != id)
  438.         return;
  439.  
  440. #if defined DEBUG
  441.     log_to_file("jail_api_jailbreak.log", "Handel_Menu_Zabaw pre");
  442. #endif
  443.     new acces, szZabawa[32], szID[32];
  444.     menu_item_getinfo(menu, item, acces, szID, 31, szZabawa, 31, acces);
  445.     ColorChat(id, TEAM_COLOR,"^x04[PrisonBreak] ^x01%s%s", UstawZabawe(str_to_num(szID), false)? "wlaczyles ": "juz jest za pozno, aby wlaczyc ", szZabawa);
  446.    
  447.     zabawa_wybrana = true;
  448.    
  449. #if defined DEBUG
  450.     log_to_file("jail_api_jailbreak.log", "Handel_Menu_Zabaw post");
  451. #endif
  452. }
  453.  
  454. public UstawPredkosc(id, Float:speed)
  455. {
  456. #if defined DEBUG
  457.     log_to_file("jail_api_jailbreak.log", "UstawPredkosc pre");
  458. #endif
  459.     user_speed[id] = speed;
  460.     if(end_usun)
  461.     {
  462.         new data[1];
  463.         data[0] = id;
  464.         set_task(g_FreezeTime-(get_systime()-gTimeStart)+0.1, "taskUstawPredkosc", ID_SPEED_FZ, data, 1);
  465.     }
  466.     else
  467.         set_user_maxspeed(id, speed);
  468.        
  469. #if defined DEBUG
  470.     log_to_file("jail_api_jailbreak.log", "UstawPredkosc post");
  471. #endif
  472. }
  473.  
  474. public taskUstawPredkosc(data[1])
  475. {
  476. #if defined DEBUG
  477.     log_to_file("jail_api_jailbreak.log", "taskUstawPredkosc pre");
  478. #endif
  479.     set_user_maxspeed(data[0], user_speed[data[0]]);
  480.        
  481. #if defined DEBUG
  482.     log_to_file("jail_api_jailbreak.log", "taskUstawPredkosc post");
  483. #endif
  484. }
  485.  
  486. public PobierzIdZabawy()
  487. {
  488.     return id_zabawa;
  489. }
  490.  
  491. public bool:PobierzPojedynek(id)
  492. {
  493.     return pojedynek[id];
  494. }
  495.  
  496. public bool:PobierzPoszukiwany(id)
  497. {
  498.     return (contain(szPoszukiwani, nazwa_gracza[id]) != -1)? true: false;
  499. }
  500.  
  501. public bool:PobierzMikrofon()
  502. {
  503.     return bool:mode_gracza[MIKRO];
  504. }
  505.  
  506. public bool:PobierzWalke()
  507. {
  508.     return bool:mode_gracza[WALKA];
  509. }
  510.  
  511. public bool:PobierzFreeday(id)
  512. {
  513.     return free_day[id];
  514. }
  515.  
  516. public bool:PobierzDuszka(id)
  517. {
  518.     return user_duszek[id];
  519. }
  520.  
  521. public PobierzOstatniego()
  522. {
  523.     return ostatni_wiezien;
  524. }
  525.  
  526. public PobierProwadzacego()
  527. {
  528.     return prowadzacy;
  529. }
  530.  
  531. public PobierzDni()
  532. {
  533.     return jail_day%7;
  534. }
  535.  
  536. public UstawMikrofon(bool:wartosc, bool:info)
  537. {
  538.     if(ostatni_wiezien || dane_dnia[1])
  539.         return;
  540.    
  541. #if defined DEBUG
  542.     log_to_file("jail_api_jailbreak.log", "UstawMikrofon pre");
  543. #endif
  544.     mode_gracza[MIKRO] = wartosc;
  545.    
  546.     if(info)
  547.         ColorChat(0, TEAM_COLOR, "^x04[PrisonBreak] ^x01Status mikro dla wiezniow: ^x03%s!", mode_gracza[MIKRO]? "wlaczone": "wylaczone");
  548. #if defined DEBUG
  549.     log_to_file("jail_api_jailbreak.log", "UstawMikrofon post");
  550. #endif
  551. }
  552.  
  553. public UstawWalke(bool:wartosc, bool:modele, bool:info)
  554. {
  555.     if(ostatni_wiezien || (dane_dnia[1] && modele))
  556.         return;
  557.        
  558. #if defined DEBUG
  559.     log_to_file("jail_api_jailbreak.log", "UstawWalke pre");
  560. #endif
  561.     mode_gracza[WALKA] = modele;
  562.     mode_gracza[FF_TT] = wartosc;
  563.    
  564.     for(new i=1; i<=MAX; i++)
  565.     {
  566.         if(!is_user_alive(i) || !is_user_connected(i) || gTeam[i] != 1 || get_user_weapon(i) != CSW_KNIFE || free_day[i] || user_duszek[i])
  567.             continue;
  568.    
  569.         set_user_health(i, 100);
  570.         set_pev(i, pev_viewmodel2, modele? SzModels[V_REKAWICE]: SzModels[V_PIESCI]);
  571.         set_pev(i, pev_weaponmodel2, modele? SzModels[P_REKAWICE]: SzModels[P_PIESCI]);
  572.     }
  573.     if(info)
  574.         ColorChat(0, TEAM_COLOR,"^x04[PrisonBreak] ^x01Walka %s!", mode_gracza[WALKA]? "wlaczona": "wylaczona");
  575.  
  576. #if defined DEBUG
  577.     log_to_file("jail_api_jailbreak.log", "UstawWalke post");
  578. #endif
  579. }
  580.  
  581. public UstawFreeday(id, bool:wartosc, bool:nextround)
  582. {
  583.     if(!id || (dane_dnia[1] && !nextround))
  584.         return 0;
  585.    
  586. #if defined DEBUG
  587.     log_to_file("jail_api_jailbreak.log", "UstawFreeday pre");
  588. #endif
  589.     if(!nextround && wartosc)
  590.     {
  591.         new podlicz = 0;
  592.         for(new i=1; i<=MAX; i++)
  593.         {
  594.             if(is_user_alive(i) && is_user_connected(i) && gTeam[i] == 1 && !free_day[i] && !user_duszek[i])
  595.                 podlicz++;
  596.         }
  597.         if(podlicz == 1)
  598.             return 0;
  599.     }
  600.    
  601.     if(wartosc)
  602.     {
  603.         DelArray(id, WSZYSCY);
  604.         DelArray(id, ZYWI);
  605.     }
  606.    
  607.     free_day[id] = wartosc;
  608.     ustaw_freeday[id] = nextround;
  609.    
  610.     if(!wartosc)
  611.     {
  612.         AddArray(id, WSZYSCY);
  613.         AddArray(id, ZYWI);
  614.     }
  615.    
  616.     set_pev(id, pev_body, wartosc? 3: random(3));
  617. #if defined DEBUG
  618.     log_to_file("jail_api_jailbreak.log", "UstawFreeday post");
  619. #endif
  620.     return 1;
  621. }
  622.  
  623. public UstawDuszka(id, bool:wartosc, bool:nextround)
  624. {
  625.     if(!id || (dane_dnia[1] && !nextround))
  626.         return 0;
  627.    
  628. #if defined DEBUG
  629.     log_to_file("jail_api_jailbreak.log", "UstawDuszka pre");
  630. #endif
  631.     if(!nextround && wartosc)
  632.     {
  633.         new podlicz = 0;
  634.         for(new i=1; i<=MAX; i++)
  635.         {
  636.             if(is_user_alive(i) && is_user_connected(i) && gTeam[i] == 1 && !free_day[i] && !user_duszek[i])
  637.                 podlicz++;
  638.         }
  639.         if(podlicz == 1)
  640.             return 0;
  641.     }
  642.    
  643.     if(wartosc)
  644.     {
  645.         DelArray(id, WSZYSCY);
  646.         DelArray(id, ZYWI);
  647.     }
  648.    
  649.     user_duszek[id] = wartosc;
  650.     ustaw_duszka[id] = nextround;
  651.    
  652.     if(!wartosc)
  653.     {
  654.         AddArray(id, WSZYSCY);
  655.         AddArray(id, ZYWI);
  656.     }
  657.     set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, wartosc? 0: 255);
  658.  
  659. #if defined DEBUG
  660.     log_to_file("jail_api_jailbreak.log", "UstawDuszka post");
  661. #endif
  662.     return 1;
  663. }
  664.  
  665. public UstawTTGod(bool:wartosc)
  666. {
  667.     mode_gracza[TT_GOD] = wartosc;
  668. }
  669.  
  670. public UstawCTGod(bool:wartosc)
  671. {
  672.     mode_gracza[CT_GOD] = wartosc;
  673. }
  674.  
  675. public UstawCTHitTT(bool:wartosc)
  676. {
  677.     mode_gracza[CT_NIE_MOZE_TT] = wartosc;
  678. }
  679.  
  680. public UstawTTHitCT(bool:wartosc)
  681. {
  682.     mode_gracza[TT_NIE_MOZE_CT] = wartosc;
  683. }
  684.  
  685. public UstawBlokade(id, bool:wartosc)
  686. {
  687.     pojedynek[id] = wartosc;
  688. }
  689.  
  690. public UstawProwadzacego(id)
  691. {
  692.     if(!dane_dnia[1])
  693.     {
  694.         if(prowadzacy != id && prowadzacy)
  695.             set_pev(prowadzacy, pev_body, 0);
  696.            
  697.         prowadzacy = id;
  698.         if(id)
  699.         {
  700.             if(task_exists(ID_LOS_PROWADZACY))
  701.                 remove_task(ID_LOS_PROWADZACY);
  702.                
  703.             set_pev(id, pev_body, 1);
  704.         }
  705.     }
  706. }
  707.  
  708. public UstawZabawe(zabawa, bool:fast)
  709. {
  710. #if defined DEBUG
  711.     log_to_file("jail_api_jailbreak.log", "UstawZabawe pre");
  712. #endif 
  713.     if(!fast)
  714.     {
  715.         if(czas_bronie || ilosc_graczy[WSZYSCY] != ilosc_graczy[ZYWI])
  716.             return 0;
  717.        
  718.         if(mode_gracza[WALKA] || mode_gracza[FF_TT])
  719.             UstawWalke(false, false, false);
  720.     }
  721.     ForwardDayStartPre(zabawa);
  722. #if defined DEBUG
  723.     log_to_file("jail_api_jailbreak.log", "UstawZabawe post");
  724. #endif 
  725.     return 1;
  726. }
  727.  
  728. public MenuBroni(id)
  729. {
  730.     if(!is_user_alive(id) || gTeam[id] != 2 || czas_bronie)
  731.         return PLUGIN_HANDLED;
  732.        
  733.     UstawMenuWeapon(id, true, true, 0, 0);
  734.     return PLUGIN_HANDLED;
  735. }
  736.  
  737. new bool:bronie_menu[MAX+1][2];
  738. new bronie_bitsum[MAX+1][2];
  739. new bronie_gracza[MAX+1][2];
  740. public UstawMenuWeapon(id, bool:bronie, bool:pistolety, bitsum_bronie, bitsum_pistolety)
  741. {
  742.     if(!bronie && !pistolety)
  743.         return;
  744.    
  745.     bronie_menu[id][0] = bronie;
  746.     bronie_menu[id][1] = pistolety;
  747.    
  748.     bronie_bitsum[id][0] = bitsum_bronie;
  749.     bronie_bitsum[id][1] = bitsum_pistolety;
  750.    
  751.     MenuBronie(id);
  752. }
  753.  
  754. public MenuBronie(id)
  755. {
  756.     if(!bronie_menu[id][0] && bronie_menu[id][1])
  757.     {
  758.         MenuPistolety(id);
  759.         return;
  760.     }
  761.     if(!bronie_menu[id][0])
  762.         return;
  763. #if defined DEBUG
  764.     log_to_file("jail_api_jailbreak.log", "MenuBronie pre");
  765. #endif
  766.  
  767.     new menu = menu_create("Wybierz Bronie:", "Handel_Bronie");
  768.     if(!(bronie_bitsum[id][0] & (1<<CSW_M4A1)))
  769.         menu_additem(menu, "M4A1", "22");
  770.     if(!(bronie_bitsum[id][0] & (1<<CSW_AK47)))
  771.         menu_additem(menu, "AK47", "28");
  772.     if(!(bronie_bitsum[id][0] & (1<<CSW_AWP)))
  773.         menu_additem(menu, "AWP", "18");
  774.     if(!(bronie_bitsum[id][0] & (1<<CSW_SCOUT)))
  775.         menu_additem(menu, "Scout", "3");
  776.     if(!(bronie_bitsum[id][0] & (1<<CSW_AUG)))
  777.         menu_additem(menu, "AUG", "8");
  778.     if(!(bronie_bitsum[id][0] & (1<<CSW_SG550)))
  779.         menu_additem(menu, "Krieg 550", "13");
  780.     if(!(bronie_bitsum[id][0] & (1<<CSW_M249)))
  781.         menu_additem(menu, "M249", "20");
  782.     if(!(bronie_bitsum[id][0] & (1<<CSW_MP5NAVY)))
  783.         menu_additem(menu, "MP5", "19");
  784.     if(!(bronie_bitsum[id][0] & (1<<CSW_UMP45)))
  785.         menu_additem(menu, "UMP45", "12");
  786.     if(!(bronie_bitsum[id][0] & (1<<CSW_FAMAS)))
  787.         menu_additem(menu, "Famas", "15");
  788.     if(!(bronie_bitsum[id][0] & (1<<CSW_GALIL)))
  789.         menu_additem(menu, "Galil", "14");
  790.     if(!(bronie_bitsum[id][0] & (1<<CSW_M3)))
  791.         menu_additem(menu, "M3", "21");
  792.     if(!(bronie_bitsum[id][0] & (1<<CSW_XM1014)))
  793.         menu_additem(menu, "XM1014", "5");
  794.     if(!(bronie_bitsum[id][0] & (1<<CSW_MAC10)))
  795.         menu_additem(menu, "Mac10", "7");
  796.     if(!(bronie_bitsum[id][0] & (1<<CSW_TMP)))
  797.         menu_additem(menu, "TMP", "23");
  798.     if(!(bronie_bitsum[id][0] & (1<<CSW_P90)))
  799.         menu_additem(menu, "P90", "30");
  800.     if(!(bronie_bitsum[id][0] & (1<<CSW_G3SG1)))
  801.         menu_additem(menu, "G3SG1 (autokampa)", "24");
  802.     if(!(bronie_bitsum[id][0] & (1<<CSW_SG552)))
  803.         menu_additem(menu, "Krieg 552 (autokampa)", "27");
  804.        
  805.     menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
  806.     menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
  807.     menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
  808.     menu_display(id, menu);
  809.    
  810. #if defined DEBUG
  811.     log_to_file("jail_api_jailbreak.log", "MenuBronie post");
  812. #endif
  813. }
  814.  
  815. public Handel_Bronie(id, menu, item)
  816. {
  817.     if(item == MENU_EXIT || !is_user_alive(id) || !bronie_menu[id][0])
  818.         return;
  819. #if defined DEBUG
  820.     log_to_file("jail_api_jailbreak.log", "Handel_Bronie pre");
  821. #endif
  822.  
  823.     new weaponname[24], data[3], weapon, callback;
  824.     menu_item_getinfo(menu, item, weapon, data, 2, _, _, callback);
  825.    
  826.     if((callback = Jaki_Pistolet(id)) > 0)
  827.         ham_strip_weapon(id, callback);
  828.    
  829.     weapon = str_to_num(data);
  830.     get_weaponname(weapon, weaponname, 23);
  831.    
  832.     give_item(id, weaponname);
  833.     cs_set_user_bpammo(id, weapon, maxAmmo[weapon]);
  834.     bronie_gracza[id][0] = weapon;
  835.    
  836.     if(bronie_menu[id][1])
  837.         MenuPistolety(id);
  838.    
  839. #if defined DEBUG
  840.     log_to_file("jail_api_jailbreak.log", "Handel_Bronie post");
  841. #endif
  842. }
  843.  
  844. public MenuPistolety(id)
  845. {
  846.     if(!bronie_menu[id][1])
  847.         return;
  848. #if defined DEBUG
  849.     log_to_file("jail_api_jailbreak.log", "MenuPistolety pre");
  850. #endif 
  851.  
  852.     new menu = menu_create("Wybierz Pistolet:", "Handel_Pistolety");
  853.     if(!(bronie_bitsum[id][1] & (1<<CSW_USP)))
  854.         menu_additem(menu, "USP",   "16");
  855.     if(!(bronie_bitsum[id][1] & (1<<CSW_GLOCK18)))
  856.         menu_additem(menu, "Glock",     "17");
  857.     if(!(bronie_bitsum[id][1] & (1<<CSW_DEAGLE)))
  858.         menu_additem(menu, "Deagle",    "26");
  859.     if(!(bronie_bitsum[id][1] & (1<<CSW_P228)))
  860.         menu_additem(menu, "P228""1");
  861.     if(!(bronie_bitsum[id][1] & (1<<CSW_FIVESEVEN)))
  862.         menu_additem(menu, "FiveSeven", "11");
  863.     if(!(bronie_bitsum[id][1] & (1<<CSW_ELITE)))
  864.         menu_additem(menu, "Dual",  "10");
  865.    
  866.     menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
  867.     menu_display(id, menu);
  868.  
  869. #if defined DEBUG
  870.     log_to_file("jail_api_jailbreak.log", "MenuPistolety post");
  871. #endif 
  872. }
  873.  
  874. public Handel_Pistolety(id, menu, item)
  875. {
  876.     if(item == MENU_EXIT || !is_user_alive(id) || !bronie_menu[id][1])
  877.         return;
  878. #if defined DEBUG
  879.     log_to_file("jail_api_jailbreak.log", "Handel_Pistolety pre");
  880. #endif
  881.  
  882.     new weaponname[24], data[3], weapon, callback;
  883.     menu_item_getinfo(menu, item, weapon, data, 2, _, _, callback);
  884.    
  885.     weapon = str_to_num(data);
  886.     get_weaponname(weapon, weaponname, 23);
  887.     give_item(id, weaponname);
  888.     cs_set_user_bpammo(id, weapon, maxAmmo[weapon]);
  889.        
  890.     bronie_gracza[id][1] = weapon;
  891.    
  892. #if defined DEBUG
  893.     log_to_file("jail_api_jailbreak.log", "Handel_Pistolety post");
  894. #endif
  895. }
  896.  
  897. /********** - Koniec Native - ************/
  898.  
  899. public ButtonTraceAttack(ent, id, Float:damage, Float:direction[3], tracehandle, damagebits)
  900. {
  901.     if(pev_valid(ent) && prowadzacy == id)
  902.     {
  903.         ExecuteHam(Ham_Use, ent, id, 0, 2, 1.0);
  904.         set_pev(ent, pev_frame, 0.0);
  905.     }
  906.     return HAM_IGNORED;
  907. }
  908.  
  909. public TakeDamage(id, ent, attacker, Float:damage, damagebits)
  910.     return vAttackDamagePlayer(id, attacker, damage, damagebits, true);
  911.  
  912. public TraceAttack(id, attacker, Float:damage, Float:direction[3], tracehandle, damagebits)
  913.     return vAttackDamagePlayer(id, attacker);
  914.  
  915. vAttackDamagePlayer(id, attacker, Float:damage=0.0, damagebits=0, bool:dmg=false)
  916. {
  917.     if(!is_user_connected(id))
  918.         return HAM_IGNORED;
  919.    
  920.     if(gTeam[id] == 1 && mode_gracza[TT_GOD])
  921.         return HAM_SUPERCEDE;
  922.    
  923.     if(gTeam[id] == 2 && mode_gracza[CT_GOD])
  924.         return HAM_SUPERCEDE;
  925.    
  926.     if(is_user_connected(attacker))
  927.     {
  928.         if(gTeam[id] == 1 && gTeam[attacker] == 1 && !mode_gracza[FF_TT])
  929.             return HAM_SUPERCEDE;
  930.        
  931.         if(gTeam[id] == 2 && gTeam[attacker] == 2)
  932.             return HAM_SUPERCEDE;
  933.            
  934.         if(gTeam[id] == 1 && gTeam[attacker] == 2 && mode_gracza[CT_NIE_MOZE_TT])
  935.             return HAM_SUPERCEDE;
  936.    
  937.         if(gTeam[id] == 2 && gTeam[attacker] == 1 && mode_gracza[TT_NIE_MOZE_CT])
  938.             return HAM_SUPERCEDE;
  939.        
  940.         if(free_day[attacker] || gTeam[attacker] == 1 && free_day[id])
  941.             return HAM_SUPERCEDE;
  942.            
  943.         if(user_duszek[id] && gTeam[attacker] == 1)
  944.             return HAM_SUPERCEDE;
  945.  
  946.         if(user_duszek[attacker] && gTeam[id] == 2)
  947.         {
  948. #if defined DEBUG
  949.             log_to_file("jail_api_jailbreak.log", "vAttackDamagePlayer pre");
  950. #endif 
  951.             user_duszek[attacker] = false;
  952.             set_user_rendering(attacker, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255);
  953.            
  954.             AddArray(attacker, WSZYSCY);
  955.             AddArray(attacker, ZYWI);
  956. #if defined DEBUG
  957.             log_to_file("jail_api_jailbreak.log", "vAttackDamagePlayer post");
  958. #endif 
  959.             return HAM_IGNORED;
  960.         }
  961.  
  962.         if(dmg)
  963.         {
  964.             if(get_user_weapon(attacker) == CSW_KNIFE && damagebits & DMG_BULLET)
  965.                 SetHamParamFloat(4, damage*0.4);
  966.         }
  967.     }
  968.     return HAM_IGNORED;
  969. }
  970.  
  971. public Odrodzenie(id)
  972. {
  973.     if(!is_user_alive(id) || !is_user_connected(id))
  974.         return;
  975.    
  976. #if defined DEBUG
  977.     log_to_file("jail_api_jailbreak.log", "Odrodzenie pre");
  978. #endif 
  979.     set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 0);
  980.     strip_user_weapons2(id);
  981.    
  982.     switch(cs_get_user_team(id))
  983.     {
  984.         case CS_TEAM_T:
  985.         {
  986.             gTeam[id] = 1;
  987.            
  988.             cs_set_player_model(id, "wiezien_cypis");
  989.             set_pev(id, pev_body, random(3));
  990.            
  991.             AddArray(id, WSZYSCY);
  992.             AddArray(id, ZYWI);
  993.         }
  994.         case CS_TEAM_CT:
  995.         {
  996.             gTeam[id] = 2;
  997.            
  998.             cs_set_player_model(id, "klawisz_cypis");
  999.                
  1000.             if(dane_dnia[4] < 2)
  1001.             {
  1002.                 if(bronie_gracza[id][0] && bronie_gracza[id][1])
  1003.                 {
  1004.                     for(new i=0; i<2; i++)
  1005.                     {
  1006.                         new weaponname[24];
  1007.                         get_weaponname(bronie_gracza[id][i], weaponname, 23);
  1008.                         give_item(id, weaponname);
  1009.                         cs_set_user_bpammo(id, bronie_gracza[id][i], maxAmmo[bronie_gracza[id][i]]);
  1010.                     }
  1011.                 }
  1012.                 else if(!czas_bronie) {
  1013.                     UstawMenuWeapon(id, true, true, 0, 0);
  1014.                 }
  1015.             }
  1016.         }
  1017.     }
  1018.     give_item(id, "weapon_knife");
  1019.    
  1020.     if(free_day[id])
  1021.         set_pev(id, pev_body, 3);
  1022.    
  1023.     if(user_duszek[id])
  1024.         set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 0);
  1025.  
  1026. #if defined DEBUG
  1027.     log_to_file("jail_api_jailbreak.log", "Odrodzenie post");
  1028. #endif 
  1029. }
  1030.  
  1031. public OddajProwadzenie(id)
  1032. {
  1033.     if(prowadzacy != id)
  1034.         return PLUGIN_HANDLED;
  1035.    
  1036. #if defined DEBUG
  1037.     log_to_file("jail_api_jailbreak.log", "OddajProwadzenie pre");
  1038. #endif
  1039.     new menu = menu_create("Oddaj Prowadzenie:", "Handel_Oddaj");
  1040.     for(new i=1; i<=MAX; i++)
  1041.     {
  1042.         if(!is_user_alive(i) || !is_user_connected(i) || gTeam[i] != 2 || prowadzacy == i)
  1043.             continue;
  1044.         new num[3];
  1045.         num_to_str(i, num, 2);
  1046.         menu_additem(menu, nazwa_gracza[i], num);
  1047.     }
  1048.    
  1049.     menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
  1050.     menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
  1051.     menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
  1052.     menu_display(id, menu);
  1053. #if defined DEBUG
  1054.     log_to_file("jail_api_jailbreak.log", "OddajProwadzenie post");
  1055. #endif
  1056.     return PLUGIN_HANDLED;
  1057. }
  1058.  
  1059. public Handel_Oddaj(id, menu, item)
  1060. {
  1061.     if(item == MENU_EXIT || !is_user_alive(id) || prowadzacy != id)
  1062.         return;
  1063. #if defined DEBUG
  1064.     log_to_file("jail_api_jailbreak.log", "Handel_Oddaj pre");
  1065. #endif
  1066.     new data[3], acces, callback;
  1067.     menu_item_getinfo(menu, item, acces, data, 2, _, _, callback);
  1068.     prowadzacy = str_to_num(data);
  1069.     ColorChat(0, GREEN, "[PrisonBreak]^x01 Zmienil sie Prowadzacy!");
  1070.    
  1071.     set_pev(id, pev_body, 0);
  1072.     set_pev(prowadzacy, pev_body, 1);
  1073. #if defined DEBUG
  1074.     log_to_file("jail_api_jailbreak.log", "Handel_Oddaj post");
  1075. #endif
  1076. }
  1077.  
  1078. public WeaponKnife(ent)
  1079. {
  1080.     new id = get_pdata_cbase(ent, 41, 4);
  1081.    
  1082.     if(!is_user_alive(id))
  1083.         return;
  1084.    
  1085.     if(cs_get_user_shield(id))
  1086.         return;
  1087.    
  1088.     if(gTeam[id] == 1 && !mode_gracza[WALKA])
  1089.     {
  1090.         set_pev(id, pev_viewmodel2, SzModels[V_PIESCI]);
  1091.         set_pev(id, pev_weaponmodel2, SzModels[P_PIESCI]);
  1092.     }
  1093.     else if(gTeam[id] == 1 && mode_gracza[WALKA])
  1094.     {
  1095.         set_pev(id, pev_viewmodel2, SzModels[V_REKAWICE]);
  1096.         set_pev(id, pev_weaponmodel2, SzModels[P_REKAWICE]);
  1097.     }
  1098.     else if(gTeam[id] == 2)
  1099.     {
  1100.         set_pev(id, pev_viewmodel2, SzModels[V_PALKA]);
  1101.         set_pev(id, pev_weaponmodel2, SzModels[P_PALKA]);
  1102.     }
  1103. }
  1104.  
  1105. public EmitSound(id, channel, sample[])
  1106. {  
  1107.     if(!is_user_alive(id) || !is_user_connected(id))
  1108.         return FMRES_IGNORED;
  1109.  
  1110.     if(equal(sample, "weapons/knife_", 14))
  1111.     {
  1112.         switch(sample[17])
  1113.         {
  1114.             case ('b'): emit_sound(id, CHAN_WEAPON, "weapons/prawy_przycisk.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
  1115.             case ('w'): emit_sound(id, CHAN_WEAPON, "weapons/uderzenie_mur.wav", 1.0, ATTN_NORM, 0, PITCH_LOW);
  1116.             case ('s'): emit_sound(id, CHAN_WEAPON, "weapons/machanie.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
  1117.             case ('1'): emit_sound(id, CHAN_WEAPON, "weapons/hit1.wav", random_float(0.5, 1.0), ATTN_NORM, 0, PITCH_NORM);
  1118.             case ('2'): emit_sound(id, CHAN_WEAPON, "weapons/hit2.wav", random_float(0.5, 1.0), ATTN_NORM, 0, PITCH_NORM);
  1119.         }
  1120.         return FMRES_SUPERCEDE;
  1121.     }
  1122.     if(equal(sample, "common/wpn_denyselect.wav"))
  1123.         return FMRES_SUPERCEDE;
  1124.     return FMRES_IGNORED;
  1125. }
  1126.  
  1127. public AdminVoiceOn(id)
  1128. {
  1129.     if(!(get_user_flags(id) & ADMIN_BAN))
  1130.         return PLUGIN_HANDLED;
  1131.  
  1132.     if(AdminVoice)
  1133.         return PLUGIN_HANDLED;
  1134.  
  1135.     AdminVoice = id;
  1136.  
  1137.     ColorChat(0,GREEN,"[PrisonBreak]^x01 Cisza! ^x03%s ^x01przemawia.", nazwa_gracza[id]);
  1138.     client_cmd(id, "+voicerecord");
  1139.     return PLUGIN_HANDLED;
  1140. }
  1141.  
  1142. public AdminVoiceOff(id)
  1143. {
  1144.     if(!(get_user_flags(id) & ADMIN_BAN))
  1145.         return PLUGIN_HANDLED;
  1146.  
  1147.     if(AdminVoice != id)
  1148.     {
  1149.         client_cmd(id, "-voicerecord");
  1150.         return PLUGIN_HANDLED;
  1151.     }
  1152.     client_cmd(id, "-voicerecord");
  1153.     AdminVoice = 0;
  1154.     return PLUGIN_HANDLED;
  1155. }
  1156.  
  1157. new bool:g_Muted[MAX+1][MAX+1];
  1158. public MenuMutowania(id)
  1159. {
  1160. #if defined DEBUG
  1161.     log_to_file("jail_api_jailbreak.log", "MenuMutowania pre");
  1162. #endif
  1163.     new menu = menu_create("Menu mutowania:", "Handel_Mute");
  1164.     for(new i=1; i<=MAX; i++)
  1165.     {
  1166.         if(!is_user_connected(i) || is_user_hltv(i))
  1167.             continue;
  1168.         new num[3], szName[64];
  1169.         num_to_str(i, num, 2);
  1170.         szName = nazwa_gracza[i];
  1171.         if(g_Muted[id][i])
  1172.             add(szName, 63, " \r[MUTE]");
  1173.            
  1174.         menu_additem(menu, szName, num);
  1175.     }
  1176.    
  1177.     menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
  1178.     menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
  1179.     menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
  1180.     menu_display(id, menu);
  1181. #if defined DEBUG
  1182.     log_to_file("jail_api_jailbreak.log", "MenuMutowania post");
  1183. #endif
  1184. }
  1185.  
  1186. public Handel_Mute(id, menu, item)
  1187. {
  1188.     if(item == MENU_EXIT )
  1189.         return;
  1190.  
  1191. #if defined DEBUG
  1192.     log_to_file("jail_api_jailbreak.log", "Handel_Mute pre");
  1193. #endif
  1194.     new data[3], acces, id2;
  1195.     menu_item_getinfo(menu, item, acces, data, 2, _, _, id2);
  1196.     id2 = str_to_num(data);
  1197.  
  1198.     g_Muted[id][id2] = !g_Muted[id][id2];
  1199.     ColorChat(id, GREEN,"[PrisonBreak] ^x01%s gracza ^x03%s", g_Muted[id][id2]? "Zmutowales": "Odmutowales", nazwa_gracza[id2]);
  1200. #if defined DEBUG
  1201.     log_to_file("jail_api_jailbreak.log", "Handel_Mute post");
  1202. #endif
  1203. }
  1204.  
  1205. public Voice_SetClientListening(odbiorca, nadawca, listen)
  1206. {
  1207.     if(odbiorca == nadawca)
  1208.         return FMRES_IGNORED;
  1209.    
  1210.     if(g_Muted[odbiorca][nadawca])
  1211.     {
  1212.         engfunc(EngFunc_SetClientListening, odbiorca, nadawca, false);
  1213.         return FMRES_SUPERCEDE;
  1214.     }
  1215.     if(AdminVoice)
  1216.     {
  1217.         if(AdminVoice == nadawca)
  1218.         {
  1219.             engfunc(EngFunc_SetClientListening, odbiorca, nadawca, true);
  1220.             return FMRES_SUPERCEDE;
  1221.         }
  1222.         else if(gTeam[nadawca] == 1)
  1223.         {
  1224.             engfunc(EngFunc_SetClientListening, odbiorca, nadawca, false);
  1225.             return FMRES_SUPERCEDE;
  1226.         }
  1227.     }
  1228.    
  1229.     if(gTeam[nadawca] == 1 && !mode_gracza[MIKRO])
  1230.     {
  1231.         engfunc(EngFunc_SetClientListening, odbiorca, nadawca, false);
  1232.         return FMRES_SUPERCEDE;
  1233.     }
  1234.    
  1235.     if(is_user_alive(odbiorca))
  1236.     {
  1237.         if(is_user_alive(nadawca))
  1238.         {
  1239.             engfunc(EngFunc_SetClientListening, odbiorca, nadawca, true);
  1240.             return FMRES_SUPERCEDE;
  1241.         }
  1242.         engfunc(EngFunc_SetClientListening, odbiorca, nadawca, false);
  1243.         return FMRES_SUPERCEDE;
  1244.     }
  1245.     return FMRES_IGNORED;
  1246. }
  1247.  
  1248. public BlokowanieUse(ent, id, activator, iType, Float:fValue)
  1249. {
  1250.     if(!is_user_connected(id) || id == activator)
  1251.         return HAM_IGNORED;
  1252.  
  1253.     if(dane_dnia[4] == 3 || dane_dnia[4] == gTeam[id] || pojedynek[id] || free_day[id])
  1254.         return HAM_SUPERCEDE;
  1255.        
  1256.     return HAM_IGNORED;
  1257. }
  1258.  
  1259. public BlokowanieLeczenie(ent, id, activator, iType, Float:fValue)
  1260. {
  1261.     if(!is_user_connected(id))
  1262.         return HAM_IGNORED;
  1263.        
  1264.     if(dane_dnia[4] == 3 || dane_dnia[4] == gTeam[id] || pojedynek[id])
  1265.         return HAM_SUPERCEDE;
  1266.        
  1267.     return HAM_IGNORED;
  1268. }
  1269.  
  1270. public DotykBroni(weapon, id)
  1271. {
  1272.     if(!is_user_connected(id))
  1273.         return HAM_IGNORED;
  1274.        
  1275.     if(free_day[id] || dane_dnia[4] == 3 || dane_dnia[4] == gTeam[id] || pojedynek[id])
  1276.         return HAM_SUPERCEDE;
  1277.  
  1278.     return HAM_IGNORED;
  1279. }
  1280.  
  1281. public BlockDrop(id)
  1282. {
  1283.     if(dane_dnia[4] == 3 || dane_dnia[4] == gTeam[id] || pojedynek[id])
  1284.         return PLUGIN_HANDLED;
  1285.     return PLUGIN_CONTINUE;
  1286. }
  1287.  
  1288. public SmiercGraczaPost(id, attacker, shouldgib)
  1289. {  
  1290.     if(!is_user_connected(id))
  1291.         return HAM_IGNORED;
  1292.        
  1293. #if defined DEBUG
  1294.     log_to_file("jail_api_jailbreak.log", "SmiercGraczaPost pre");
  1295. #endif
  1296.     if(gTeam[id] == 1)
  1297.     {
  1298.         if(is_user_connected(attacker) && gTeam[attacker] == 1)
  1299.             set_user_frags(attacker, get_user_frags(attacker)+2);
  1300.  
  1301.         if(ostatni_wiezien == id)
  1302.         {
  1303.             for(new i=1; i<=MAX; i++)
  1304.             {
  1305.                 if(is_user_alive(i) && is_user_connected(i) && (free_day[i] || user_duszek[i]))
  1306.                 {  
  1307.                     user_kill(i);
  1308.                     free_day[i] = false;
  1309.                     user_duszek[i] = false;
  1310.                 }
  1311.             }
  1312.         }
  1313.         DelPoszukiwany(id);
  1314.         DelArray(id, ZYWI);
  1315.     }
  1316.     else if(gTeam[id] == 2)
  1317.     {  
  1318.         if(is_user_connected(attacker) && gTeam[attacker] == 1 && !obsluga_dala && !dane_dnia[2])
  1319.         {
  1320.             AddPoszukiwany(attacker);
  1321.         }
  1322.         if(prowadzacy == id)
  1323.         {
  1324.             prowadzacy = 0;
  1325.             if(!obsluga_dala && !dane_dnia[2])
  1326.                 set_task(1.0, "LosujProwadzacego", ID_LOS_PROWADZACY);
  1327.         }
  1328.     }
  1329. #if defined DEBUG
  1330.     log_to_file("jail_api_jailbreak.log", "SmiercGraczaPost post");
  1331. #endif
  1332.     return HAM_IGNORED;
  1333. }
  1334.  
  1335. public StatusShow(id)
  1336. {
  1337.     new pid = read_data(2), team = gTeam[pid];
  1338.     set_hudmessage(team == 1? 255: 0, 50, team == 1? 0: 255, -1.0, 0.9, 0, 0.01, 6.0);
  1339.     ShowSyncHudMsg(id, SyncHudObj1, "%s: %s [%i]", team == 1? "Wiezien": "Straznik", nazwa_gracza[pid], get_user_health(pid));
  1340. }
  1341.  
  1342. public StatusHide(id)
  1343.     ClearSyncHud(id, SyncHudObj1);
  1344.    
  1345. public msg_FlashLight(id)
  1346. {
  1347.     if(gTeam[id] == 1)
  1348.         return PLUGIN_HANDLED; 
  1349.     return PLUGIN_CONTINUE;
  1350. }
  1351.  
  1352. public msg_TextMsg()
  1353. {  
  1354.     new message[32];
  1355.     get_msg_arg_string(2, message, 31);
  1356.    
  1357.     if(equal(message, "#Game_teammate_attack") || equal(message, "#Killed_Teammate"))
  1358.         return PLUGIN_HANDLED;
  1359.  
  1360.     if(equal(message, "#Terrorists_Win"))
  1361.     {
  1362.         set_msg_arg_string(2, "Wiezniowie wygrali!");
  1363.         return PLUGIN_CONTINUE;
  1364.     }
  1365.     else if(equal(message, "#CTs_Win"))
  1366.     {
  1367.         set_msg_arg_string(2, "Klawisze wygrali!");
  1368.         return PLUGIN_CONTINUE;
  1369.     }
  1370.     else if(equal(message, "#Round_Draw"))
  1371.     {
  1372.         set_msg_arg_string(2, "Runda remisowa!")
  1373.         return PLUGIN_CONTINUE;
  1374.     }
  1375.     else if(equal(message, "#Only_1_Team_Change"))
  1376.     {
  1377.         set_msg_arg_string(2, "Dozwolona tylko 1 zmiana druzyny!")
  1378.         return PLUGIN_CONTINUE;
  1379.     }
  1380.     else if(equal(message, "#Switch_To_SemiAuto"))
  1381.     {
  1382.         set_msg_arg_string(2, "Zmieniono na tryb pol-automatyczny")
  1383.         return PLUGIN_CONTINUE;
  1384.     }
  1385.     else if(equal(message, "#Switch_To_BurstFire"))
  1386.     {
  1387.         set_msg_arg_string(2, "Zmieniono na tryb serii")
  1388.         return PLUGIN_CONTINUE;
  1389.     }
  1390.     else if(equal(message, "#Switch_To_FullAuto"))
  1391.     {
  1392.         set_msg_arg_string(2, "Zmieniono na tryb automatyczny")
  1393.         return PLUGIN_CONTINUE;
  1394.     }
  1395.     else if(equal(message, "#Game_Commencing"))
  1396.     {
  1397.         set_msg_arg_string(2, "Rozpoczecie Gry!");
  1398.         return PLUGIN_CONTINUE;
  1399.     }
  1400.     else if(equal(message, "#Cannot_Be_Spectator"))
  1401.     {
  1402.         set_msg_arg_string(2, "Nie mozesz byc obserwatorem");
  1403.         return PLUGIN_CONTINUE;
  1404.     }
  1405.     return PLUGIN_HANDLED;
  1406. }  
  1407.  
  1408. public msg_StatusIcon(msgid, dest, id)
  1409. {
  1410.     new szIcon[8];
  1411.     get_msg_arg_string(2, szIcon, 7);
  1412.      
  1413.     if(equal(szIcon, "buyzone") && get_msg_arg_int(1))
  1414.     {
  1415.         set_pdata_int(id, 235, get_pdata_int(id, 235) & ~(1<<0));
  1416.         return PLUGIN_HANDLED;
  1417.     }
  1418.     return PLUGIN_CONTINUE;
  1419. }
  1420.  
  1421. public client_authorized(id)
  1422. {
  1423.     set_user_info(id, "_vgui_menus", "0");
  1424.     get_user_name(id, nazwa_gracza[id], 63);
  1425. }
  1426.  
  1427. public client_disconnect(id)
  1428. {
  1429. #if defined DEBUG
  1430.     log_to_file("jail_api_jailbreak.log", "client_disconnect pre");
  1431. #endif
  1432.     if(AdminVoice == id)
  1433.         AdminVoice = 0;
  1434.        
  1435.     if(prowadzacy == id)
  1436.     {
  1437.         prowadzacy = 0;
  1438.         set_task(1.0, "LosujProwadzacego", ID_LOS_PROWADZACY);
  1439.     }
  1440.    
  1441.     if(ostatni_wiezien == id)
  1442.         ostatni_wiezien = 0;
  1443.        
  1444.     user_speed[id] = 0.0;
  1445.     bronie_gracza[id][0] = 0;
  1446.     bronie_gracza[id][1] = 0;
  1447.     pojedynek[id] = false;
  1448.     free_day[id] = false;
  1449.     user_duszek[id] = false;
  1450.     ustaw_freeday[id] = false;
  1451.     ustaw_duszka[id] = false;
  1452.    
  1453.     for(new i=1; i<=MAX; i++)
  1454.         g_Muted[i][id] = false;
  1455.    
  1456.     DelPoszukiwany(id);
  1457.     if(gTeam[id] == 1)
  1458.     {
  1459.         DelArray(id, WSZYSCY);
  1460.         DelArray(id, ZYWI);
  1461.     }
  1462.     gTeam[id] = 0;
  1463. #if defined DEBUG
  1464.     log_to_file("jail_api_jailbreak.log", "client_disconnect post");
  1465. #endif
  1466. }
  1467.  
  1468. public client_infochanged(id)
  1469. {
  1470.     get_user_info(id, "name", nazwa_gracza[id], 63);
  1471. }
  1472.  
  1473. public RoundRestart()
  1474. {
  1475. #if defined DEBUG
  1476.     log_to_file("jail_api_jailbreak.log", "RoundRestart");
  1477. #endif
  1478.     usuwanie_ustawien = true;
  1479. }
  1480.  
  1481. public RoundEnd()
  1482. {
  1483. #if defined DEBUG
  1484.     log_to_file("jail_api_jailbreak.log", "RoundEnd");
  1485. #endif
  1486.     end_usun = true;
  1487.     czas_bronie = false;
  1488. }
  1489.  
  1490. public PreRoundStart()
  1491. {  
  1492. #if defined DEBUG
  1493.     log_to_file("jail_api_jailbreak.log", "PreRoundStart pre");
  1494. #endif
  1495.     UsuwanieWydarzen();
  1496.     if(usuwanie_ustawien)
  1497.     {
  1498.         jail_day = 0;
  1499.         usuwanie_ustawien = false;
  1500.     }
  1501.     else
  1502.         jail_day++;
  1503.  
  1504.    
  1505.     if(jail_day)
  1506.     {
  1507.         gTimeStart = get_systime();
  1508.         ForwardDayStartPre(jail_day%7);
  1509.     }
  1510. #if defined DEBUG
  1511.     log_to_file("jail_api_jailbreak.log", "PreRoundStart post");
  1512. #endif
  1513. }
  1514.  
  1515. UsuwanieWydarzen()
  1516. {
  1517.     //end_usun = true;
  1518. #if defined DEBUG
  1519.     log_to_file("jail_api_jailbreak.log", "UsuwanieWydarzen pre");
  1520. #endif
  1521.     szInfo = "";
  1522.     szInfoPosz = "";
  1523.     szPoszukiwani = "";
  1524.     ostatni_wiezien = 0;
  1525.     prowadzacy = 0;
  1526.    
  1527.     obsluga_dala = false;
  1528.     pokaz_raz = false;
  1529.     czas_bronie = false;
  1530.     zabawa_wybrana = false;
  1531.     zyczenie_wybrane = false
  1532.        
  1533.     mode_gracza[WALKA] = false;
  1534.  
  1535.     mode_gracza[MIKRO] = (get_pcvar_num(pCvarMikro) == 1? true: false);
  1536.    
  1537.     mode_gracza[FF_TT] = false;
  1538.     mode_gracza[TT_GOD] = false;
  1539.     mode_gracza[CT_GOD] = false;
  1540.     mode_gracza[CT_NIE_MOZE_TT] = false;
  1541.     mode_gracza[TT_NIE_MOZE_CT] = false
  1542.    
  1543.     if(task_exists(ID_DZWIEK_POSZ))
  1544.         remove_task(ID_DZWIEK_POSZ);
  1545.    
  1546.     if(task_exists(ID_LOS_PROWADZACY))
  1547.         remove_task(ID_LOS_PROWADZACY);
  1548.        
  1549.     if(task_exists(ID_CZAS))
  1550.         remove_task(ID_CZAS);
  1551.    
  1552.     if(task_exists(ID_FREZZ))
  1553.         remove_task(ID_FREZZ);
  1554.    
  1555.     if(task_exists(ID_SPEED_FZ))
  1556.         remove_task(ID_SPEED_FZ);
  1557.    
  1558.     for(new i=0; i<sizeof dane_dnia; i++)
  1559.         dane_dnia[i] = 0;
  1560.    
  1561.     for(new i=1; i<=MAX; i++)
  1562.     {
  1563.         array_graczy[WSZYSCY][i] = 0;
  1564.         array_graczy[ZYWI][i] = 0;
  1565.        
  1566.         user_speed[i] = 0.0;
  1567.         pojedynek[i] = false;
  1568.        
  1569.         bronie_menu[i][0] = false;
  1570.         bronie_menu[i][1] = false;
  1571.        
  1572.         if(ustaw_freeday[i])
  1573.         {
  1574.             ustaw_freeday[i] = false;
  1575.             free_day[i] = true;
  1576.         }
  1577.         else
  1578.             free_day[i] = false;
  1579.            
  1580.         if(ustaw_duszka[i])
  1581.         {
  1582.             ustaw_duszka[i] = false;
  1583.             user_duszek[i] = true;
  1584.         }
  1585.         else
  1586.             user_duszek[i] = false;
  1587.     }
  1588.    
  1589.     ilosc_graczy[WSZYSCY] = 0;
  1590.     ilosc_graczy[ZYWI] = 0;
  1591.    
  1592.     new iRet;
  1593.     ExecuteForward(fRemoveData, iRet, id_zabawa);
  1594.    
  1595. #if defined DEBUG
  1596.     log_to_file("jail_api_jailbreak.log", "UsuwanieWydarzen post");
  1597. #endif
  1598. }
  1599.  
  1600. public PostRoundStart()
  1601. {
  1602. #if defined DEBUG
  1603.     log_to_file("jail_api_jailbreak.log", "PostRoundStart pre");
  1604. #endif
  1605.     end_usun = false;
  1606.     set_task(60.0, "koniec_czasu", ID_CZAS);
  1607.    
  1608.     if(!jail_day)
  1609.     {
  1610.         gTimeStart = get_systime()-g_FreezeTime;
  1611.         ForwardDayStartPre(jail_day%7);
  1612.     }
  1613.     if(!prowadzacy && !dane_dnia[1])
  1614.         set_task(15.0, "LosujProwadzacego", ID_LOS_PROWADZACY);
  1615. #if defined DEBUG
  1616.     log_to_file("jail_api_jailbreak.log", "PostRoundStart post");
  1617. #endif
  1618. }
  1619.  
  1620. ForwardDayStartPre(zabawa)
  1621. {
  1622. #if defined DEBUG
  1623.     log_to_file("jail_api_jailbreak.log", "ForwardDayStartPre pre");
  1624. #endif
  1625.     new iRet, is_frezz = g_FreezeTime-(get_systime()-gTimeStart);
  1626.     ExecuteForward(fDayStartPre, iRet, zabawa, PrepareArray(szInfo, 256, 1), PrepareArray(szInfoPosz, 512, 1), PrepareArray(dane_dnia, 10, 1), g_RoundTime+min(is_frezz, 0));
  1627.     id_zabawa = zabawa;
  1628.    
  1629.     new dane[1]
  1630.     dane[0] = zabawa;
  1631.     if(is_frezz)
  1632.         set_task(is_frezz+0.1, "ForwardDayStartPost", ID_FREZZ, dane, 1);
  1633.     else
  1634.         ForwardDayStartPost(dane);
  1635.  
  1636. #if defined DEBUG
  1637.     log_to_file("jail_api_jailbreak.log", "ForwardDayStartPre post");
  1638. #endif     
  1639. }
  1640.  
  1641. public ForwardDayStartPost(zabawa[1])
  1642. {
  1643. #if defined DEBUG
  1644.     log_to_file("jail_api_jailbreak.log", "ForwardDayStartPost pre");
  1645. #endif
  1646.     new iRet;
  1647.     ExecuteForward(fDayStartPost, iRet, zabawa[0]);
  1648. #if defined DEBUG
  1649.     log_to_file("jail_api_jailbreak.log", "ForwardDayStartPost post");
  1650. #endif
  1651. }
  1652.  
  1653. public koniec_czasu()
  1654. {
  1655.     czas_bronie = true;
  1656. }
  1657.  
  1658. public LosujProwadzacego()
  1659. {
  1660.     if(!prowadzacy)
  1661.     {
  1662.         if(((prowadzacy = RandomCT()) > 0))
  1663.         {
  1664.             set_pev(prowadzacy, pev_body, 1);
  1665.         }
  1666.     }
  1667. }
  1668.  
  1669. stock RandomCT()
  1670. {
  1671. #if defined DEBUG
  1672.     log_to_file("jail_api_jailbreak.log", "RandomCT pre");
  1673. #endif
  1674.     new CT_Player[MAX+2], ile=0;
  1675.     for(new i=1; i<=MAX; i++)
  1676.     {
  1677.         if(!is_user_connected(i) || !is_user_alive(i) || gTeam[i] != 2)
  1678.             continue;
  1679.        
  1680.         CT_Player[++ile] = i;
  1681.     }
  1682. #if defined DEBUG
  1683.     log_to_file("jail_api_jailbreak.log", "RandomCT post");
  1684. #endif
  1685.     return CT_Player[(ile? random_num(1, ile): 0)];
  1686. }
  1687.  
  1688. new TimeAfk[MAX+1], LastPosition[MAX+1][3];
  1689. public task_server()
  1690. {
  1691.     if(end_usun)
  1692.         return;
  1693.        
  1694. #if defined DEBUG
  1695.     log_to_file("jail_api_jailbreak.log", "task_server pre");
  1696. #endif
  1697.     for(new id=1; id<=MAX; id++)
  1698.     {
  1699.         if(!is_user_alive(id) || !is_user_connected(id))
  1700.             continue;
  1701.    
  1702.         if(gTeam[id] == 1)
  1703.         {
  1704.             if(dane_dnia[6])
  1705.             {
  1706.                 new PlayerPos[3];
  1707.                 get_user_origin(id, PlayerPos);
  1708.                 if(PlayerPos[0] == LastPosition[id][0] && PlayerPos[1] == LastPosition[id][1])
  1709.                 {
  1710.                     TimeAfk[id]++; 
  1711.                     if(TimeAfk[id] == 15)
  1712.                     {
  1713.                         ColorChat(id, TEAM_COLOR, "^x04[PrisonBreak] ^x01Przestan Kampic!");
  1714.                         ExecuteHam(Ham_TakeDamage, id, 0, 0, 5.0, (1<<14));
  1715.                     }
  1716.                     else if(TimeAfk[id] == 18)
  1717.                     {
  1718.                         ColorChat(id, TEAM_COLOR, "^x04[PrisonBreak] ^x01Przestan Kampic!");
  1719.                         ExecuteHam(Ham_TakeDamage, id, 0, 0, 10.0, (1<<14));
  1720.                     }
  1721.                     else if(TimeAfk[id] >= 20)
  1722.                     {
  1723.                         ColorChat(id, TEAM_COLOR, "^x04[PrisonBreak] ^x01Przestan Kampic!");
  1724.                         ExecuteHam(Ham_TakeDamage, id, 0, 0, 20.0, (1<<14));
  1725.                     }
  1726.                 }
  1727.                 else
  1728.                     TimeAfk[id] = 0;
  1729.    
  1730.                 LastPosition[id][0] = PlayerPos[0];
  1731.                 LastPosition[id][1] = PlayerPos[1];
  1732.             }
  1733.            
  1734.             if(czas_bronie && dane_dnia[0] == 1 && ostatni_wiezien == id && !pokaz_raz)
  1735.             {
  1736.                 new iRet;
  1737.                 usun_ustawienia_dzien();
  1738.                
  1739.                 ExecuteForward(fLastPrisonerShowWish, iRet, id);
  1740.                
  1741.                 obsluga_dala = true;
  1742.                 pokaz_raz = true;
  1743.             }
  1744.         }
  1745.         else if(gTeam[id] == 2)
  1746.         {
  1747.             PokazStatusText(id, "Wiezniowie: %i zywi | %i Wszyscy", ilosc_graczy[ZYWI], ilosc_graczy[WSZYSCY]);
  1748.             if(czas_bronie && !dane_dnia[0] && ostatni_wiezien && prowadzacy == id && !pokaz_raz)
  1749.             {
  1750.                 menu_display(id, ProwadzacyMenu);
  1751.                
  1752.                 usun_ustawienia_dzien();
  1753.                 pokaz_raz = true;
  1754.             }
  1755.         }
  1756.     }
  1757.        
  1758.     //set_hudmessage(0, 255, 0, 0.6, 0.1, 0, 0.01, 1.0);
  1759.     //ShowSyncHudMsg(0, SyncHudObj2, "Dzien %i - %s", jail_day, dni_tygodnia[jail_day%7]);
  1760.      
  1761.     static szDay[256];
  1762.     formatex(szDay, 63, "Dzien %i - %s^n", jail_day, dni_tygodnia[jail_day%7]);
  1763.     set_hudmessage(0, 255, 0, 0.01, 0.18, 0, 0.01, 1.0);
  1764.     if(prowadzacy && !szInfo[0])
  1765.     {  
  1766.         set_hudmessage(0, 255, 0, 0.01, 0.18, 0, 0.01, 1.0);
  1767.         format(szDay, 255, "%s%s jest prowadzacym straznikiem.", szDay, nazwa_gracza[prowadzacy]);
  1768.     }
  1769.     else if(szInfo[0])
  1770.     {
  1771.         set_hudmessage(255, 0, 0, 0.01, 0.18, 0, 0.01, 1.0);
  1772.         format(szDay, 255, "%s%s", szDay, szInfo);
  1773.     }
  1774.     ShowSyncHudMsg(0, SyncHudObj3, szDay);
  1775.    
  1776.     if(szPoszukiwani[0] && !szInfoPosz[0])
  1777.     {
  1778.         set_hudmessage(255, 85, 85, 0.01, 0.4, 0, 0.01, 1.0);
  1779.         ShowSyncHudMsg(0, SyncHudObj4, "Poszukiwani:%s", szPoszukiwani);
  1780.     }
  1781.     else if(szInfoPosz[0])
  1782.     {
  1783.         set_hudmessage(0, 255, 0, 0.01, 0.22, 0, 0.01, 1.0);
  1784.         ShowSyncHudMsg(0, SyncHudObj4, szInfoPosz);
  1785.     }
  1786.    
  1787. #if defined DEBUG
  1788.     log_to_file("jail_api_jailbreak.log", "task_server post");
  1789. #endif
  1790. }
  1791.  
  1792. PokazStatusText(id, szText[], any:...)
  1793. {
  1794.     new szTemp[192];
  1795.     vformat(szTemp, 191, szText, 3);
  1796.     message_begin(MSG_ONE_UNRELIABLE, 106, {0,0,0}, id);
  1797.     write_byte(0);
  1798.     write_string(szTemp);
  1799.     message_end();
  1800. }
  1801.  
  1802. usun_ustawienia_dzien()
  1803. {
  1804. #if defined DEBUG
  1805.     log_to_file("jail_api_jailbreak.log", "usun_ustawienia_dzien pre");
  1806. #endif
  1807.     if(mode_gracza[WALKA])
  1808.     {
  1809.         mode_gracza[WALKA] = false;
  1810.         if(get_user_weapon(ostatni_wiezien) == CSW_KNIFE)
  1811.         {
  1812.             set_pev(ostatni_wiezien, pev_viewmodel2, SzModels[V_PIESCI]);
  1813.             set_pev(ostatni_wiezien, pev_weaponmodel2, SzModels[P_PIESCI]);
  1814.         }
  1815.     }
  1816.     mode_gracza[MIKRO] = true;
  1817.    
  1818.     mode_gracza[FF_TT] = false;
  1819.     mode_gracza[TT_GOD] = false;
  1820.     mode_gracza[CT_GOD] = false;
  1821.     mode_gracza[CT_NIE_MOZE_TT] = false;
  1822.     mode_gracza[TT_NIE_MOZE_CT] = false;
  1823.     dane_dnia[4] = 0;
  1824.     dane_dnia[7] = 0;
  1825.    
  1826. #if defined DEBUG
  1827.     log_to_file("jail_api_jailbreak.log", "usun_ustawienia_dzien post");
  1828. #endif
  1829. }
  1830.  
  1831. public ObslugaZyczen(id)
  1832. {
  1833.     if(prowadzacy != id || obsluga_dala || !ostatni_wiezien || !czas_bronie)
  1834.         return PLUGIN_HANDLED;
  1835.    
  1836. #if defined DEBUG
  1837.     log_to_file("jail_api_jailbreak.log", "ObslugaZyczen pre");
  1838. #endif
  1839.     menu_display(id, ProwadzacyMenu);
  1840. #if defined DEBUG
  1841.     log_to_file("jail_api_jailbreak.log", "ObslugaZyczen post");
  1842. #endif
  1843.     return PLUGIN_HANDLED;
  1844. }
  1845.  
  1846. public Handel_Obsluga_Zyczen(id, menu, item)
  1847. {
  1848.     if(prowadzacy != id || !ostatni_wiezien || !is_user_alive(id))
  1849.         return;
  1850.        
  1851.     if(item == MENU_EXIT)
  1852.         return;
  1853.  
  1854. #if defined DEBUG
  1855.     log_to_file("jail_api_jailbreak.log", "Handel_Obsluga_Zyczen pre");
  1856. #endif
  1857.     switch(item)
  1858.     {
  1859.         case 0:
  1860.         {
  1861.             ColorChat(0, TEAM_COLOR, "^x04[PrisonBreak]^x01 Obsluga wiezienia pozwolila wybrac zyczenie!");
  1862.             obsluga_dala = true;
  1863.            
  1864.             new iRet;
  1865.             ExecuteForward(fLastPrisonerShowWish, iRet, ostatni_wiezien);
  1866.         }
  1867.         case 1:
  1868.         {
  1869.             ColorChat(0, TEAM_COLOR, "^x04[PrisonBreak]^x01 Obsluga wiezienia zadecydowala ze wiezien nie ma zyczenia!");
  1870.         }
  1871.     }
  1872. #if defined DEBUG
  1873.     log_to_file("jail_api_jailbreak.log", "Handel_Obsluga_Zyczen post");
  1874. #endif
  1875. }
  1876.  
  1877. public ClientCommand_SelectKnife(id)
  1878. {
  1879.     engclient_cmd(id, "weapon_knife");
  1880. }
  1881.  
  1882. public OnAddToPlayerKnife(const item, const player)  
  1883. {  
  1884.     if(pev_valid(item) && is_user_alive(player))
  1885.     {  
  1886.         message_begin(MSG_ONE, 78, .player = player);//WeaponList = 78
  1887.         {
  1888.             write_string(cs_get_user_team(player) == CS_TEAM_T? "weapon_piesci": "weapon_palka");  // WeaponName  
  1889.             write_byte(-1);                   // PrimaryAmmoID  
  1890.             write_byte(-1);                   // PrimaryAmmoMaxAmount  
  1891.             write_byte(-1);                   // SecondaryAmmoID  
  1892.             write_byte(-1);                   // SecondaryAmmoMaxAmount  
  1893.             write_byte(2);                    // SlotID (0...N)  
  1894.             write_byte(1);                    // NumberInSlot (1...N)  
  1895.             write_byte(CSW_KNIFE);            // WeaponID  
  1896.             write_byte(0);                    // Flags  
  1897.         }
  1898.         message_end();  
  1899.     }  
  1900. }
  1901.  
  1902. public cmdChooseTeam(id)
  1903. {
  1904.     menu_chooseteam(id)
  1905.     return PLUGIN_HANDLED;
  1906. }
  1907.  
  1908. public msg_vgui_menu(msgid, dest, id)
  1909. {
  1910.     if(get_msg_arg_int(1) != 2)
  1911.         return PLUGIN_CONTINUE;
  1912.    
  1913.     g_msgid[id] = msgid;
  1914.     menu_chooseteam(id);
  1915.     return PLUGIN_HANDLED;
  1916. }
  1917.  
  1918. public msg_show_menu(msgid, dest, id)
  1919. {
  1920.     static team_select[] = "#Team_Select";
  1921.     static menu_text_code[sizeof team_select];
  1922.     get_msg_arg_string(4, menu_text_code, charsmax(menu_text_code));
  1923.    
  1924.     if(!equal(menu_text_code, team_select))
  1925.         return PLUGIN_CONTINUE;
  1926.    
  1927.     g_msgid[id] = msgid;
  1928.     menu_chooseteam(id);
  1929.     return PLUGIN_HANDLED;
  1930. }
  1931.  
  1932. public menu_chooseteam(id)
  1933. {
  1934.     if(!is_user_connected(id))
  1935.         return PLUGIN_HANDLED;
  1936.  
  1937.     new text[512], len;
  1938.     len += format(text[len], 511 - len, "\rWybierz team^n");
  1939.     len += format(text[len], 511 - len, "\r1. \wWiezniowie^n");
  1940.     len += format(text[len], 511 - len, "\r2. \wStraznicy^n^n");
  1941.     len += format(text[len], 511 - len, "\r6. \wWidzowie^n^n");
  1942.    
  1943.     if(gTeam[id])
  1944.         len += format(text[len], 511 - len, "^n\r0. \wWyjdz^n");
  1945.        
  1946.     show_menu(id, gTeam[id]? 0x223: 0x23, text, -1, "mainmenu");
  1947.     return PLUGIN_HANDLED;
  1948. }
  1949.  
  1950. public _menu_chooseteam(id, key)
  1951. {
  1952.     switch(key)
  1953.     {
  1954.         case 0, 1, 5: GdzieDojsc(id, key+1);
  1955.         case 9: return;
  1956.     }
  1957. }
  1958.  
  1959. GdzieDojsc(id, team)
  1960. {
  1961.     set_pdata_int(id, 125, get_pdata_int(id, 125) & ~(1<<8));
  1962.     if(team == 6)
  1963.     {  
  1964.         if(!is_user_alive(id))
  1965.         {
  1966.             gTeam[id] = 0;
  1967.             engclient_cmd(id, "jointeam", "6");
  1968.         }
  1969.         else
  1970.             client_print(id, print_center, "Nie mozesz byc obserwatorem");
  1971.         return;
  1972.     }
  1973.    
  1974.     if(gTeam[id] == team)
  1975.         return;
  1976.    
  1977.     new ile_graczy[2];
  1978.     for(new i=1; i<=32; i++)
  1979.     {
  1980.         if(!is_user_connected(i))
  1981.             continue;
  1982.                    
  1983.         switch(cs_get_user_team(i))
  1984.         {
  1985.             case 1: ile_graczy[0]++;
  1986.             case 2: ile_graczy[1]++;
  1987.         }
  1988.     }
  1989.     if(czas_bronie && jail_day%7 && !gTeam[id] && ((team == 1 && ile_graczy[0]) || (team == 2 && ile_graczy[1])))
  1990.     {
  1991.         ColorChat(id, GREEN, "[PrisonBreak]^x01 Mozesz dolaczyc dopiero jak sie skonczy runda!");
  1992.         GdzieDojsc(id, 6);
  1993.         return;
  1994.     }
  1995.    
  1996.     new iRet;
  1997.     ExecuteForward(fJoinTeam, iRet, id, team, ile_graczy[0], ile_graczy[1]);
  1998.    
  1999.     switch(iRet)
  2000.     {
  2001.         case -1: return;
  2002.         case 1,2: team = iRet;
  2003.     }  
  2004.    
  2005.     if(gTeam[id] == team)
  2006.         return;
  2007.    
  2008.     new msg_blocke = get_msg_block(g_msgid[id]);
  2009.     set_msg_block(g_msgid[id], BLOCK_SET);
  2010.     engclient_cmd(id, "jointeam", team==2? "2": "1");
  2011.     //set_msg_block(g_msgid[id], msg_blocke);
  2012.        
  2013.     //set_msg_block(g_msgid[id], BLOCK_SET);
  2014.     engclient_cmd(id, "joinclass", "1");
  2015.     set_msg_block(g_msgid[id], msg_blocke);
  2016.     gTeam[id] = team;
  2017. }
  2018.  
  2019. public BlokujKomende()
  2020.     return PLUGIN_HANDLED;
  2021.  
  2022. //cele menu
  2023. public WczytajCele()
  2024. {
  2025.     new szMap[32], szFile[128];
  2026.     get_mapname(szMap, 31);
  2027.     formatex(szFile, 127, "addons/amxmodx/data/cele/%s.ini", szMap);
  2028.    
  2029.     if(file_exists(szFile))
  2030.     {
  2031.         new dane_tablicy[4][32], tablica[256], txtlen;
  2032.         for(new i=0; i<file_size(szFile, 1); i++)
  2033.         {
  2034.             if(i > 1)
  2035.                 break;
  2036.                
  2037.             read_file(szFile, i, tablica, 255, txtlen);
  2038.             parse(tablica, dane_tablicy[0], 31, dane_tablicy[1], 31, dane_tablicy[2], 31, dane_tablicy[3], 31);
  2039.            
  2040.             new Float:origin[3];
  2041.             origin[0] = str_to_float(dane_tablicy[0]);
  2042.             origin[1] = str_to_float(dane_tablicy[1]);
  2043.             origin[2] = str_to_float(dane_tablicy[2]);
  2044.  
  2045.             new Float:fDistance = 9999.0, Float:fDistance2, ent;
  2046.             while((ent = find_ent_by_class(ent, dane_tablicy[3])))
  2047.             {  
  2048.                 new Float:gOrigin[3];
  2049.                 get_brush_entity_origin(ent, gOrigin);
  2050.                
  2051.                 fDistance2 = vector_distance(gOrigin, origin);
  2052.                 if(fDistance2 < fDistance)
  2053.                 {
  2054.                     fDistance = fDistance2;
  2055.                     g_Buttons[i] = ent;
  2056.                 }
  2057.             }
  2058.         }
  2059.     }
  2060.     else
  2061.         setup_buttons();
  2062.    
  2063.     AddMenuItem("Dodanie Cel", "jail_cele", ADMIN_RCON, "Jail");
  2064. }
  2065.  
  2066. public MenuUstwianiaCel(id)
  2067. {
  2068.     if(!(get_user_flags(id) & ADMIN_RCON))
  2069.         return PLUGIN_HANDLED;
  2070.        
  2071.     new menu = menu_create("Ustaw przycisk do cel:", "Handel_Cele");
  2072.  
  2073.     menu_additem(menu, "Przycisk 1");
  2074.     menu_additem(menu, "Przycisk 2 (jak sa 2 przyciski do cel)");
  2075.     menu_additem(menu, "Usun Przyciski");
  2076.    
  2077.     menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
  2078.     menu_display(id, menu);
  2079.     return PLUGIN_HANDLED;
  2080. }
  2081.  
  2082. public Handel_Cele(id, menu, item)
  2083. {
  2084.     if(item == MENU_EXIT)
  2085.     {
  2086.         return PLUGIN_CONTINUE;
  2087.     }
  2088.     switch(item)
  2089.     {
  2090.         case 0: ZapiszIdCel(id, 0);
  2091.         case 1: ZapiszIdCel(id, 1);
  2092.         case 2:{
  2093.             if(g_Buttons[0])
  2094.             {
  2095.                 new szMap[32], szFile[128];
  2096.                 get_mapname(szMap, 31);
  2097.                 formatex(szFile, 127, "addons/amxmodx/data/cele/%s.ini", szMap);
  2098.                 delete_file(szFile);
  2099.                 g_Buttons[0] = 0;
  2100.                
  2101.                 client_print(id, 3, "[Cele] Usunieto przyciski");
  2102.             }
  2103.             if(g_Buttons[1])
  2104.                 g_Buttons[1] = 0;
  2105.         }
  2106.     }
  2107.     menu_display(id, menu);
  2108.     return PLUGIN_CONTINUE;
  2109. }
  2110.  
  2111. ZapiszIdCel(id, linia)
  2112. {
  2113.     new ent, body;
  2114.     get_user_aiming(id, ent, body);
  2115.     if(!pev_valid(ent))
  2116.         return;
  2117.        
  2118.     g_Buttons[linia] = ent;
  2119.     new Float:origin[3], name[32];
  2120.     get_brush_entity_origin(ent, origin);
  2121.     pev(ent, pev_classname, name, 31);
  2122.    
  2123.     new szMap[32], szFile[128], szTemp[128];
  2124.     get_mapname(szMap, 31);
  2125.     formatex(szTemp, 127, "%f %f %f %s", origin[0], origin[1], origin[2], name);
  2126.     formatex(szFile, 127, "addons/amxmodx/data/cele/%s.ini", szMap);
  2127.    
  2128.     write_file(szFile, szTemp, linia);
  2129.     client_print(id, 3, "[Cele] Dodano przycisk %i", linia+1);
  2130. }
  2131.  
  2132. //cele auto
  2133. public setup_buttons()
  2134. {
  2135.     new ent[3], class[32], i, Float:origin[3];
  2136.     while((i <= sizeof(g_Buttons)) && (ent[0] = engfunc(EngFunc_FindEntityByString, ent[0], "classname", "info_player_deathmatch")))
  2137.     {
  2138.         pev(ent[0], pev_origin, origin)
  2139.         while((ent[1] = engfunc(EngFunc_FindEntityInSphere, ent[1], origin, 300.0)))
  2140.         {
  2141.             if(!pev_valid(ent[1]))
  2142.                 continue;
  2143.  
  2144.             pev(ent[1], pev_classname, class, 31);
  2145.             if(!equal(class, "func_door"))
  2146.                 continue;
  2147.  
  2148.             pev(ent[1], pev_targetname, class, 31)
  2149.             ent[2] = engfunc(EngFunc_FindEntityByString, 0, "target", class);
  2150.             if(pev_valid(ent[2]) && (in_array(ent[2], g_Buttons, sizeof(g_Buttons)) < 0))
  2151.             {
  2152.                 g_Buttons[i++] = ent[2];
  2153.                 ent[1] = 0;
  2154.                 ent[2] = 0;
  2155.                 break;
  2156.             }
  2157.         }
  2158.     }
  2159. }
  2160.  
  2161. stock in_array(needle, data[], size)
  2162. {
  2163.     for(new i = 0; i < size; i++)
  2164.     {
  2165.         if(data[i] == needle)
  2166.             return i;
  2167.     }
  2168.     return -1;
  2169. }
  2170.    
  2171. public OtworzCele()
  2172. {
  2173.     for(new i=0; i<sizeof(g_Buttons); i++)
  2174.     {
  2175.         if(!pev_valid(g_Buttons[i]) || !g_Buttons[i])
  2176.             continue;
  2177.         ExecuteHam(Ham_Use, g_Buttons[i], 0, 0, 2, 1.0);
  2178.     }
  2179. }  
  2180.  
  2181. AddArray(id, ktore)
  2182. {
  2183.     if(free_day[id] || user_duszek[id])
  2184.         return;
  2185.    
  2186.     if(array_graczy[ktore][id])
  2187.         return;
  2188.        
  2189.     ostatni_wiezien = (ilosc_graczy[ktore]? 0: id);
  2190.    
  2191.     array_graczy[ktore][id] = id;
  2192.     ilosc_graczy[ktore]++;
  2193. }
  2194.  
  2195. DelArray(id, ktore)
  2196. {
  2197.     if(free_day[id] || user_duszek[id])
  2198.         return;
  2199.    
  2200.     if(!array_graczy[ktore][id])
  2201.         return;
  2202.        
  2203.     array_graczy[ktore][id] = 0;
  2204.     ilosc_graczy[ktore]--;
  2205.    
  2206.     if(jail_day%7 && ktore == ZYWI)
  2207.     {
  2208.         switch(ilosc_graczy[ktore])
  2209.         {
  2210.             case 1:{
  2211.                 for(new i=1; i<=MAX; i++)
  2212.                 {
  2213.                     if(array_graczy[ktore][i])
  2214.                     {
  2215.                         ostatni_wiezien = array_graczy[ktore][i];
  2216.                         break;
  2217.                     }
  2218.                 }
  2219.             }
  2220.             default: ostatni_wiezien = 0;
  2221.         }
  2222.     }
  2223. }
  2224.  
  2225. AddPoszukiwany(attacker)
  2226. {
  2227.     if(contain(szPoszukiwani, nazwa_gracza[attacker]) == -1)
  2228.     {
  2229.         new szTemp[512];
  2230.         formatex(szTemp, charsmax(szTemp), "^n  %s%s", nazwa_gracza[attacker], szPoszukiwani);
  2231.         copy(szPoszukiwani, charsmax(szPoszukiwani), szTemp);
  2232.        
  2233.         set_pev(attacker, pev_body, 4);
  2234.     }
  2235.     if(task_exists(ID_DZWIEK_POSZ))
  2236.         remove_task(ID_DZWIEK_POSZ);
  2237.  
  2238.     dzwiek_poszukiwany();
  2239.     set_task(1.0, "dzwiek_poszukiwany", ID_DZWIEK_POSZ, .flags="a", .repeat=9);
  2240. }
  2241.  
  2242. public dzwiek_poszukiwany()
  2243.     client_cmd(0, "spk jb_cypis/uciekinier.wav");
  2244.  
  2245. DelPoszukiwany(id)
  2246. {
  2247.     if(contain(szPoszukiwani, nazwa_gracza[id]) != -1)
  2248.     {
  2249.         new szTemp[512];
  2250.         formatex(szTemp, charsmax(szTemp), "^n  %s", nazwa_gracza[id]);
  2251.         replace_all(szPoszukiwani, charsmax(szPoszukiwani), szTemp, "");
  2252.     }
  2253. }
  2254.  
  2255. stock ham_strip_weapon(id, wid)
  2256. {
  2257.     if(!wid)
  2258.         return 0;
  2259.        
  2260.     new szName[24];
  2261.     get_weaponname(wid, szName, 23);
  2262.    
  2263.     new ent;
  2264.     while((ent = engfunc(EngFunc_FindEntityByString, ent, "classname", szName)) && pev(ent, pev_owner) != id) {}
  2265.     if(!ent)
  2266.         return 0;
  2267.    
  2268.     if(get_user_weapon(id) == wid)
  2269.         ExecuteHam(Ham_Weapon_RetireWeapon, ent);
  2270.    
  2271.     if(ExecuteHam(Ham_RemovePlayerItem, id, ent))
  2272.     {
  2273.         ExecuteHam(Ham_Item_Kill, ent);
  2274.         set_pev(id, pev_weapons, pev(id, pev_weapons) & ~(1<<wid));
  2275.     }
  2276.     return 1;
  2277. }
  2278.  
  2279. stock Jaki_Pistolet(id)
  2280. {
  2281.     if(!is_user_alive(id))
  2282.         return 0;
  2283.    
  2284.     new weapons[32], numweapons;
  2285.     get_user_weapons(id, weapons, numweapons);
  2286.    
  2287.     for(new i=0; i<numweapons; i++)
  2288.         if((1<<weapons[i]) & 0x50FCF1A8)
  2289.             return weapons[i];
  2290.    
  2291.     return 0;
  2292. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement