Advertisement
Guest User

Untitled

a guest
Mar 28th, 2020
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.98 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <engine>
  4. #include <hamsandwich>
  5. #include <jailbreak>
  6. #include <ColorChat>
  7.  
  8. #define PLUGIN "JailBreak: Powody"
  9. #define VERSION "1.0"
  10. #define AUTHOR "O'Zone"
  11.  
  12. new g_iVictim[33], g_iArraySize, Array:g_aJailReasons;
  13.  
  14. static const chatPrefix[] = "^x01[^x04REASON^x01]";
  15.  
  16. public plugin_init()
  17. {
  18. register_plugin(PLUGIN, VERSION, AUTHOR);
  19.  
  20. register_clcmd("Powod_Zabicia", "CmdReason");
  21. register_clcmd("nightvision", "CmdDeny");
  22.  
  23. register_clcmd("say /powody", "MenuReasons");
  24. register_clcmd("say_team /powody", "MenuReasons");
  25. register_clcmd("powody", "MenuReasons");
  26.  
  27. register_clcmd("say /powod", "MenuReasons");
  28. register_clcmd("say_team /powod", "MenuReasons");
  29. register_clcmd("powod", "MenuReasons");
  30.  
  31. register_event("DeathMsg", "PlayerKilled", "a");
  32.  
  33. g_aJailReasons = ArrayCreate(128, 32);
  34.  
  35. FileRead();
  36. }
  37.  
  38. public plugin_end()
  39. ArrayDestroy(g_aJailReasons);
  40.  
  41. FileRead()
  42. {
  43. new szConfigsName[256], szFilename[256];
  44.  
  45. get_configsdir(szConfigsName, charsmax(szConfigsName));
  46. formatex(szFilename, charsmax(szFilename), "%s/jail_powody.ini", szConfigsName);
  47.  
  48. new iFilePointer = fopen(szFilename, "rt");
  49.  
  50. if(iFilePointer)
  51. {
  52. new szData[128];
  53.  
  54. while(!feof(iFilePointer))
  55. {
  56. fgets(iFilePointer, szData, charsmax(szData));
  57. trim(szData);
  58.  
  59. if(szData[0] == EOS || szData[0] == ';') continue;
  60.  
  61. ArrayPushString(g_aJailReasons, szData);
  62. }
  63.  
  64. g_iArraySize = ArraySize(g_aJailReasons);
  65. fclose(iFilePointer);
  66. }
  67. }
  68.  
  69. public MenuReasons(id)
  70. {
  71. new szTitle[128], szItem[128], szName[32];
  72. get_user_name(g_iVictim[id], szName, charsmax(szName));
  73.  
  74. if(get_user_team(id) != 2 || !g_iVictim[id]) return PLUGIN_HANDLED;
  75.  
  76. formatex(szTitle, charsmax(szTitle), "\wDlaczego \rzabiles \y%s\w?:", szName);
  77.  
  78. new menu = menu_create(szTitle, "MenuReasons_Handle");
  79.  
  80. menu_additem(menu, "\wOzyw \yGracza \r(klawisz 'n')");
  81.  
  82. menu_additem(menu, "\wWlasny \yPowod \r(klawisz 't')");
  83.  
  84. for(new i = 0; i < g_iArraySize; i++)
  85. {
  86. ArrayGetString(g_aJailReasons, i, szItem, charsmax(szItem));
  87.  
  88. ucfirst(szItem);
  89.  
  90. menu_additem(menu, szItem, "", 0);
  91. }
  92.  
  93. menu_setprop(menu, MPROP_BACKNAME, "Wroc");
  94. menu_setprop(menu, MPROP_NEXTNAME, "Dalej");
  95. menu_setprop(menu, MPROP_EXIT, MEXIT_NEVER);
  96.  
  97. menu_display(id, menu, 0);
  98.  
  99. return PLUGIN_HANDLED;
  100. }
  101.  
  102. public MenuReasons_Handle(id, menu, item)
  103. {
  104. if(item == MENU_EXIT)
  105. {
  106. g_iVictim[id] = 0;
  107.  
  108. menu_destroy(menu);
  109.  
  110. return PLUGIN_HANDLED;
  111. }
  112.  
  113. switch(item)
  114. {
  115. case 0: CmdDeny(id);
  116. case 1: client_cmd(id, "messagemode Powod_Zabicia");
  117. default:
  118. {
  119. new szReason[64];
  120.  
  121. ArrayGetString(g_aJailReasons, item - 2, szReason, charsmax(szReason));
  122.  
  123. ShowReason(id, szReason);
  124. }
  125. }
  126.  
  127. menu_destroy(menu);
  128.  
  129. return PLUGIN_HANDLED;
  130. }
  131.  
  132. public PlayerKilled()
  133. {
  134. new iAttacker = read_data(1), iVictim = read_data(2);
  135.  
  136. if(is_user_connected(iAttacker) && is_user_connected(iVictim) && get_user_team(iAttacker) == 2 && get_user_team(iVictim) == 1)
  137. {
  138. g_iVictim[iAttacker] = iVictim;
  139.  
  140. if(jail_get_prisoner_last() || jail_get_play_game_id() || jail_get_poszukiwany()) return;
  141.  
  142. DestroyMenu(iAttacker);
  143. MenuReasons(iAttacker);
  144. }
  145. }
  146.  
  147. public CmdDeny(id)
  148. {
  149. if(get_user_team(id) == 2 && is_user_connected(g_iVictim[id]) && get_user_team(g_iVictim[id]) == 1)
  150. {
  151. new szName[32], szName2[32];
  152.  
  153. get_user_name(id, szName, charsmax(szName));
  154. get_user_name(g_iVictim[id], szName2, charsmax(szName2));
  155.  
  156. ColorChat(0, NORMAL, "%s^x04 %s^x01 ozywil gracza^x03 %s^x01 i przepraszam.", chatPrefix, szName, szName2);
  157. // client_print_color(0, id, "^x04[WIEZIENIE CS-RELOAD]^x03 %s^x01 ozywil gracza^x03 %s^x01 i przeprasza.", szName, szName2);
  158.  
  159. DestroyMenu(id);
  160.  
  161. if(!is_user_alive(g_iVictim[id])) ExecuteHamB(Ham_CS_RoundRespawn, g_iVictim[id]);
  162.  
  163. g_iVictim[id] = 0;
  164.  
  165. return PLUGIN_HANDLED;
  166. }
  167.  
  168. return PLUGIN_CONTINUE;
  169. }
  170.  
  171. public CmdCustom(id)
  172. {
  173. if(get_user_team(id) == 2 && g_iVictim[id])
  174. {
  175. DestroyMenu(id);
  176.  
  177. client_cmd(id, "messagemode Powod_Zabicia");
  178.  
  179. return PLUGIN_HANDLED;
  180. }
  181.  
  182. return PLUGIN_CONTINUE;
  183. }
  184.  
  185. public CmdReason(id)
  186. {
  187. new szArgs[192];
  188.  
  189. read_args(szArgs, charsmax(szArgs));
  190. remove_quotes(szArgs);
  191.  
  192. if(szArgs[0] != EOS) ShowReason(id, szArgs);
  193.  
  194. return PLUGIN_HANDLED;
  195. }
  196.  
  197. ShowReason(id, szReason[])
  198. {
  199. if(get_user_team(id) == 2 && is_user_connected(g_iVictim[id]) && get_user_team(g_iVictim[id]) == 1)
  200. {
  201. new szName[32], szName2[32];
  202.  
  203. get_user_name(id, szName, charsmax(szName));
  204. get_user_name(g_iVictim[id], szName2, charsmax(szName2));
  205.  
  206. ColorChat(0, NORMAL, "%s^x04 %s^x01 Zabil^x03 %s^x01 za^x04 %s^x01.", chatPrefix, szName, szName2, szReason);
  207.  
  208. // client_print_color(0, id, "^x04[WIEZIENIE CS-RELOAD]^x03 %s^x01 zabil^x03 %s^x01 za^x04 %s^x01.", szName, szName2, szReason);
  209.  
  210. g_iVictim[id] = 0;
  211. }
  212. }
  213.  
  214. DestroyMenu(id)
  215. {
  216. new iNewMenu, iMenu = player_menu_info(id, iMenu, iNewMenu);
  217.  
  218. if(iMenu) show_menu(id, 0, "^n", 1);
  219. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement