Advertisement
eyal282

ct rounds bug

Nov 5th, 2012
629
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.78 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <cstrike>
  4. #include <hamsandwich>
  5.  
  6. #pragma semicolon 1
  7.  
  8. #define MAX_CMDS 4
  9. #define MAX_NUMBERS 10
  10. #define MAX_LETTERS 26
  11. #define TASKID 325
  12.  
  13. new const g_CmdStart[ MAX_CMDS ][] =
  14. {
  15. "say /fw",
  16. "say /first",
  17. "say_team /fw",
  18. "say_team /first"
  19. };
  20. new const g_CmdStop[ MAX_CMDS ][] =
  21. {
  22. "say /stopfirst",
  23. "say /stopfw",
  24. "say_team /stopfirst",
  25. "say_team /stopfw"
  26. };
  27.  
  28.  
  29. new const fw_Letters[ MAX_LETTERS ][] =
  30. {
  31. "a", "b", "c", "d", "e", "f", "g",
  32. "h", "i", "j", "k", "l", "m", "n",
  33. "o", "p", "q", "r", "s", "t", "u",
  34. "v", "w", "x", "y", "z"
  35. };
  36.  
  37. new const fw_Numbers[ MAX_NUMBERS ][] =
  38. {
  39. "0", "1", "2", "3", "4",
  40. "5", "6", "7", "8", "9"
  41. };
  42.  
  43.  
  44. new bool:g_fwActive, bool:g_fwAllowMove;
  45. new g_FWCount, g_MixChars[ 6 ], g_LastChars[ 6 ];
  46. new g_Round[33];
  47. new g_MaxPlayers,g_Cvar,g_Cvar2;
  48.  
  49. public plugin_init(){
  50. register_plugin("JB Max Rounds","1.2","NorToN");
  51.  
  52. for( new i; i < MAX_CMDS; i++ )
  53. {
  54. register_clcmd( g_CmdStart[ i ], "fnFwStart" );
  55. register_clcmd( g_CmdStop[ i ], "fnFwStop" );
  56. }
  57. register_clcmd("say","HandleSay");
  58. register_clcmd("say_team","HandleSay");
  59. register_clcmd( "say", "Handle_Say" );
  60. register_event( "SendAudio", "EventTeamWin", "a", "2=%!MRAD_terwin", "2=%!MRAD_ctwin", "2&%!MRAD_ROUNDDRAW" );
  61.  
  62. RegisterHam( Ham_Spawn, "player", "FwdPlayerSpawn", 1 );
  63.  
  64. g_Cvar = register_cvar("amx_maxrounds","10");
  65. g_MaxPlayers = get_maxplayers();
  66. }
  67. public client_putinserver(id) g_Round[id] = 0;
  68. public client_disconnect(id) g_Round[id] = 0;
  69.  
  70. public FwdPlayerSpawn(client)
  71. {
  72. g_Cvar2 = get_pcvar_num(g_Cvar);
  73. for (new i = 1; i <= g_MaxPlayers; i++)
  74. {
  75. if (!is_user_connected(i))
  76. continue;
  77.  
  78. else if (cs_get_user_team(i) != CS_TEAM_CT)
  79. continue;
  80. else
  81. ColorChat(client,"You played: ^4%i/%i^1 rounds.",g_Round[i],g_Cvar2);
  82. }
  83. }
  84. public EventTeamWin(client){
  85. new szName [ 32 ];
  86. g_Cvar2 = get_pcvar_num(g_Cvar);
  87. for (new i = 1; i <= g_MaxPlayers; i++)
  88. {
  89. if (!is_user_connected(i))
  90. continue;
  91.  
  92. else if (cs_get_user_team(i) != CS_TEAM_CT)
  93. continue;
  94.  
  95.  
  96. g_Round[i]++;
  97.  
  98. if (g_Round[i] > g_Cvar2)
  99. {
  100. set_task(5.0, "FwStart");
  101. cs_set_user_team( client, CS_TEAM_T );
  102. ExecuteHamB( Ham_CS_RoundRespawn, client );
  103. ColorChat( 0, "^03תוינש 5 דועב ליחתמ םשורש ןושארה ^3", szName );
  104. g_Round[i] = 0;
  105. }
  106. }
  107. }
  108.  
  109. public cl_cmdrounds(id){
  110. new Args[32],szName[32];
  111. read_argv(1,Args,charsmax(Args));
  112.  
  113. if (equali(Args,""))
  114. {
  115. client_print(id,print_console,"Usage: /round name");
  116. return 1;
  117. }
  118.  
  119. new player = cmd_target(id,Args,8);
  120. g_Cvar2 = get_pcvar_num(g_Cvar);
  121.  
  122. if(!player)
  123. return 1;
  124.  
  125. get_user_name(player,szName,charsmax(szName));
  126.  
  127. if (cs_get_user_team(player) != CS_TEAM_CT)
  128. {
  129. client_print(id,print_console,"%s isn't in the Counter-Terrorist (CT) team!",szName);
  130. return 1;
  131. }
  132.  
  133. else if (id == player)
  134. {
  135. client_print(id,print_console,"You played: %i/%i rounds.",g_Round[player],g_Cvar2);
  136. return 1;
  137. }
  138.  
  139. client_print(id,print_console,"%s played: %i/%i rounds.",szName,g_Round[player],g_Cvar2);
  140. return 1;
  141. }
  142. public FwStart( client )
  143. {
  144. new szName[ 32 ];
  145. get_user_name( client, szName, charsmax( szName ) );
  146.  
  147. g_FWCount = 5;
  148. g_fwActive = true;
  149. set_task( 1.0, "ActionTimer", TASKID );
  150. return PLUGIN_HANDLED;
  151. }
  152. public fnFwStart( client )
  153. {
  154. if ( !(get_user_flags( client ) & ADMIN_RCON) )
  155. {
  156. ColorChat(client, "^x03תאזה^x04 הדוקפל^x04 תושיג ךל ןיא^x03 !" );
  157. return PLUGIN_HANDLED;
  158. }
  159. if( g_fwActive )
  160. {
  161. ColorChat( client, "^x04ליחתה רבכ םשורש ןושארה^x03 !" );
  162. return PLUGIN_HANDLED;
  163. }
  164. new szName[ 32 ];
  165. get_user_name( client, szName, charsmax( szName ) );
  166.  
  167. g_FWCount = 5;
  168. g_fwActive = true;
  169. set_task( 1.0, "ActionTimer", TASKID );
  170.  
  171. ColorChat( 0, "^x03 םשורש ןושארה^x04 ליחתה^x03 %s !", szName );
  172. return PLUGIN_HANDLED;
  173. }
  174.  
  175.  
  176. public fnFwStop( client )
  177. {
  178. if ( !(get_user_flags( client ) & ADMIN_RCON ) )
  179. {
  180. ColorChat( client, "^x03תאזה^x04 הדוקפל^x04 תושיג ךל ןיא^x03 !" );
  181. return PLUGIN_HANDLED;
  182. }
  183. if( !g_fwActive )
  184. {
  185. ColorChat( client, "^xןיידע^x03 ליחתה^x04 םשורש^x03 ןושארה" );
  186. return PLUGIN_HANDLED;
  187. }
  188.  
  189. new szName[ 32 ];
  190. get_user_name( client, szName, charsmax( szName ) );
  191.  
  192. g_fwActive = false;
  193. remove_task( TASKID );
  194. g_fwAllowMove = false;
  195. ColorChat( 0, "^x04%s^x03 םשורה תא^x04 רצע^x03 !", szName );
  196. return PLUGIN_HANDLED;
  197. }
  198. public Handle_Say( client )
  199. {
  200. new szMsg[ 32 ], szName[ 32 ];
  201. read_args( szMsg, charsmax( szMsg ) );
  202. remove_quotes( szMsg );
  203.  
  204. if( g_fwAllowMove )
  205. {
  206. if ( !is_user_alive( client ) )
  207. {
  208. ColorChat( client, "^x03ייח^x04 תויהל בייח התא^x03 !" );
  209. return PLUGIN_HANDLED;
  210. }
  211.  
  212. if ( cs_get_user_team( client ) != CS_TEAM_T )
  213. {
  214. ColorChat( client, "^x03תונעל םילוכי רורט קר^x03 !" );
  215. return PLUGIN_HANDLED;
  216. }
  217.  
  218. if( equali( szMsg, g_MixChars ) )
  219. {
  220. new RGB[ 3 ];
  221. RGB[ 0 ] = random_num( 50, 250 );
  222. RGB[ 1 ] = random_num( 50, 250 );
  223. RGB[ 2 ] = random_num( 50, 250 );
  224. cs_set_user_team( client, CS_TEAM_CT );
  225. ExecuteHamB( Ham_CS_RoundRespawn, client );
  226. get_user_name( client, szName, charsmax( szName ) );
  227. set_hudmessage( RGB[ 0 ], RGB[ 1 ], RGB[ 2 ], -1.0, 0.30, 2, 8.0, 8.0 );
  228. show_hudmessage( 0, "%s !אוה חצנמה ", szName );
  229. ColorChat( 0, "^x04%s^x03 יטיסל רבעומו חצינ^x03.", szName );
  230. client_cmd( client, "spk holo/tr_holo_nicejob" );
  231. remove_task( TASKID );
  232. g_fwAllowMove = false;
  233. g_fwActive = false;
  234. }
  235. else
  236. {
  237. ColorChat( client, "^x03הנוכנ אל ךלש הבושתה^x03 !" );
  238. client_cmd( client, "spk scientist/completelywrong" );
  239. }
  240. }
  241. return PLUGIN_CONTINUE;
  242. }
  243.  
  244.  
  245. public ActionTimer( )
  246. {
  247. new RGB[ 3 ];
  248. RGB[ 0 ] = random_num( 50, 250 );
  249. RGB[ 1 ] = random_num( 50, 250 );
  250. RGB[ 2 ] = random_num( 50, 250 );
  251.  
  252. if( g_FWCount <= 0 )
  253. {
  254. remove_task( TASKID );
  255. g_fwAllowMove = true;
  256. switch( random_num( 1,3 ) )
  257. {
  258. case 1:
  259. {
  260. formatex( g_MixChars, charsmax( g_MixChars ), "%s%s%s%s%s",
  261. fw_Letters[ random( MAX_LETTERS - 1 ) ],
  262. fw_Numbers[ random( MAX_NUMBERS - 1 ) ],
  263. fw_Letters[ random( MAX_LETTERS - 1 ) ],
  264. fw_Numbers[ random( MAX_NUMBERS - 1 ) ],
  265. fw_Letters[ random( MAX_LETTERS - 1 ) ]
  266. );
  267. }
  268. case 2:
  269. {
  270. formatex( g_MixChars, charsmax( g_MixChars ), "%s%s%s%s%s",
  271. fw_Letters[ random( MAX_LETTERS - 1 ) ],
  272. fw_Numbers[ random( MAX_NUMBERS - 1 ) ],
  273. fw_Letters[ random( MAX_LETTERS - 1 ) ],
  274. fw_Numbers[ random( MAX_NUMBERS - 1 ) ],
  275. fw_Letters[ random( MAX_LETTERS - 1 ) ]
  276. );
  277. }
  278. case 3:
  279. {
  280. formatex( g_MixChars, charsmax( g_MixChars ), "%s%s%s%s%s",
  281. fw_Letters[ random( MAX_LETTERS - 1 ) ],
  282. fw_Numbers[ random( MAX_NUMBERS - 1 ) ],
  283. fw_Letters[ random( MAX_LETTERS - 1 ) ],
  284. fw_Numbers[ random( MAX_NUMBERS - 1 ) ],
  285. fw_Letters[ random( MAX_LETTERS - 1 ) ]
  286. );
  287. }
  288. }
  289. g_LastChars = g_MixChars;
  290. set_hudmessage( RGB[ 0 ], RGB[ 1 ], RGB[ 2 ], -1.0, 0.30, 0, 8.0, 8.0 );
  291. show_hudmessage( 0, "[ %s ]", g_LastChars );
  292. ColorChat( 0,"^x04 םשורש ימ %s^x03 יטיס^x04מועבר ל !", g_LastChars );
  293. set_task( 15.0, "ActionFailed", 239 );
  294. }
  295.  
  296. if( g_FWCount != 0 )
  297. {
  298. new g_CountVoice[ 21 ];
  299. num_to_word( g_FWCount, g_CountVoice, charsmax( g_CountVoice ) );
  300. client_cmd( 0, "spk ^"vox/%s seconds^"", g_CountVoice );
  301. set_hudmessage( RGB[ 0 ], RGB[ 1 ], RGB[ 2 ], -1.0, 0.30, 0, 0.1, 0.5 );
  302. show_hudmessage( 0, "תוינש %i דועב ליחתמ םשורש ןושארה", g_FWCount );
  303. --g_FWCount;
  304. set_task( 1.0, "ActionTimer", TASKID );
  305. }
  306. }
  307.  
  308.  
  309. public ActionFailed( )
  310. {
  311. if( g_fwAllowMove )
  312. {
  313. new RGB[ 3 ];
  314. RGB[ 0 ] = random_num( 50, 250 );
  315. RGB[ 1 ] = random_num( 50, 250 );
  316. RGB[ 2 ] = random_num( 50, 250 );
  317. set_hudmessage( RGB[ 0 ], RGB[ 1 ], RGB[ 2 ], -1.0, 0.30, 0, 6.0, 6.0 );
  318. show_hudmessage( 0,"ןוכנ םשר אל דחא ףא!" );
  319. ColorChat( 0, "^x03ןוכנ^x04 םשר אל דחא ףא !" );
  320. client_cmd( 0,"spk holo/tr_holo_tryagain" );
  321. g_fwAllowMove = false;
  322. g_fwActive = false;
  323. remove_task( TASKID );
  324. }
  325. }
  326.  
  327. public HandleSay(id){
  328. new Args[128],Args2[16],Args3[32],szName[32];
  329. read_argv(1,Args,charsmax(Args));
  330. parse(Args,Args2,charsmax(Args2),Args3,charsmax(Args3));
  331. if(equali(Args2,"/round") || equali(Args2,"!round"))
  332. {
  333. if (equali(Args3,""))
  334. {
  335. ColorChat(id,"Usage: ^4/round <name>^1 or ^4!round <name>^1");
  336. return 1;
  337. }
  338. new player = cmd_target(id,Args3,8);
  339. g_Cvar2 = get_pcvar_num(g_Cvar);
  340.  
  341. if(!player)
  342. {
  343. ColorChat(id,"Player ^4%s^1 does not exist / isn't not connected!",Args3);
  344. return 1;
  345. }
  346.  
  347. get_user_name(player,szName,charsmax(szName));
  348.  
  349. if (cs_get_user_team(player) != CS_TEAM_CT)
  350. {
  351. ColorChat(id,"^4%s^1 isn't in the ^4Counter-Terrorist^1 (CT) team!",szName);
  352. return 1;
  353. }
  354.  
  355. else if (id == player)
  356. {
  357. ColorChat(id,"You played: ^4%i/%i^1 rounds.",g_Round[player],g_Cvar2);
  358. return 1;
  359. }
  360.  
  361. ColorChat(id,"^4%s^1 played: ^4%i/%i^1 rounds.",szName,g_Round[player],g_Cvar2);
  362. return 1;
  363. }
  364.  
  365. return 0;
  366. }
  367.  
  368. stock ColorChat(const id, const string[], {Float, Sql, Resul,_}:...){
  369. new msg[191], players[32], count = 1;
  370.  
  371. static len; len = formatex(msg, charsmax(msg), "^x04[^x01 JailBreak ^x04]^x01 ");
  372. vformat(msg[len], charsmax(msg) - len, string, 3);
  373.  
  374. if(id) players[0] = id;
  375. else get_players(players,count,"ch");
  376.  
  377. for (new i = 0; i < count; i++)
  378. {
  379. if(is_user_connected(players[i]))
  380. {
  381. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"),_, players[i]);
  382. write_byte(players[i]);
  383. write_string(msg);
  384. message_end();
  385. }
  386. }
  387. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement