Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Guest Message by DevFuse
Wklejka mwps5jekxs8 dodana przez Misiaczek ;c, 28.10.2013 13:26
Chowany - Diablix 0.3
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369. 370. 371. 372. 373. 374. 375. 376. 377. 378. 379. 380. 381. 382. 383. 384. 385. 386. 387. 388.
#include <amxmodx> #include <fakemeta> #include <fakemeta_util> #include <engine> #include <cstrike> #include <ColorChat> #pragma semicolon 1; #define VERSION "0.3" #define PEV_PDATA_SAFE 2 #define IsPlayer(%1) (1 <= %1 <= g_iMaxPlayers) #define OFFSET_TEAM 114 #define OFFSET_DEFUSE_PLANT 193 #define HAS_DEFUSE_KIT (1<<16) #define OFFSET_INTERNALMODEL 126 #define EXTRAOFFSET 5 #define SetPlayerBit(%1,%2) (%1 |= (1 << ( %2 & 31 ))) #define ClearPlayerBit(%1,%2) (%1 &= ~(1 << ( %2 & 31 ))) #define CheckPlayerBit(%1,%2) (%1 & (1 << ( %2 & 31 ))) #define fm_cs_set_user_nobuy(%1) set_pdata_int(%1, 235, get_pdata_int(%1, 235) & ~(1<<0)) new bool:g_HasFlashOn[33], bool:g_ChoosenColor[33], bool:g_DisableSound[33]; new g_FlashColor[33], g_Joined[33]; new g_MsgTeamInfo, g_MsgScreenFade; new g_iTimer, g_iMaxPlayers; new g_BeaconSprite, g_IsConnected, g_IsAlive; new const g_Prefix[] = "[Chowany]"; #if cellbits == 32 const OFFSET_CLIPAMMO = 51; #else const OFFSET_CLIPAMMO = 65; #endif const OFFSET_LINUX_WEAPONS = 4; new g_FlashlightColors[][3] = { {255,0,0}, {0,255,0}, {0,0,255}, {255,69,0}, {0,255,255}, {255,255,0}, {255,255,255}, {255,0,255} }; new const g_FlashlightColorNames[][] = { "Czerwonym", "Zielonym", "Niebieskim", "Pomaranczowym", "Aqua", "Zoltym", "Bialym^nBialy ratuje!", "Rozowym" }; new const gSoundlist[9][] = { "Half-Life01", "Half-Life02", "Half-Life03", "Half-Life04", "Half-Life11", "Half-Life12", "Half-Life13", "Half-Life17", "Half-Life17" }; new const gSongs[7][] = { "Chowany/1.mp3", "Chowany/2.mp3", "Chowany/3.mp3", "Chowany/4.mp3", "Chowany/5.mp3", "Chowany/6.mp3", "Chowany/7.mp3" }; enum (+= 1337) { TASK_TIME = 1337, TASK_STRIP }; public plugin_init(){ register_plugin("Chowany", VERSION, "diablix"); g_iMaxPlayers = get_maxplayers(); g_MsgTeamInfo = get_user_msgid("TeamInfo"); g_MsgScreenFade = get_user_msgid("ScreenFade"); register_menucmd(register_menuid("ColorMenu"), 1023, "handleColorMenu"); register_event("DeathMsg", "eventPlayerDeath", "a"); //register_event("TextMsg", "eventRoundRestart", "a", "2&#Game_C", "2&#Game_w"); register_event("ResetHUD", "eventPlayerSpawn", "b"); register_event("TeamInfo", "eventJoinTeam", "a", "2=TERRORIST", "2=CT"); register_event("HLTV", "eventRoundRestart", "a", "1=0", "2=0"); register_logevent("eventRoundEnd", 2, "1=Round_End"); //register_logevent("eventRoundRestart", 2, "1=Round_Start"); register_forward(FM_EmitSound, "fwEmitSound"); register_forward(FM_CmdStart, "fwCmdStart"); register_forward(FM_PlayerPreThink, "FwPlayerPreThink"); register_forward(FM_ClientKill, "fwClientKill", 0); register_message(get_user_msgid("StatusIcon") , "msgStatusIcon"); set_task(10.0, "taskCvars"); set_lights("c"); //register_clcmd("say /test", "cmdTest"); register_clcmd("say /muzyka", "toggleSound"); register_clcmd("say_team /muzyka", "toggleSound"); } public plugin_natives(){ register_library("chowany"); register_native("hns_czasukrycia", "_timer"); } public _timer(plugin) { return g_iTimer; } public toggleSound(id){ g_DisableSound[id] = !g_DisableSound[id]; ColorChat(id, GREEN, "%s^x01 %s muzyke!", g_Prefix, g_DisableSound[id] ? "Wylaczyles" : "Wlaczyles"); return 1; } public taskCvars(){ set_cvar_num("mp_flashlight", 0); set_cvar_num("sv_maxspeed", 1000); set_cvar_num("mp_friendlyfire", 0); set_cvar_num("mp_autoteambalance", 0); set_cvar_num("mp_forcechasecam", 0); set_cvar_num("mp_forcecamera", 0); set_cvar_num("mp_freezetime", 0); set_cvar_num("sv_restart", 1); } public plugin_precache(){ g_BeaconSprite = engfunc(EngFunc_PrecacheModel, "sprites/beacon.spr"); engfunc(EngFunc_PrecacheSound, "radio/enemydown.wav"); for(new i = 0; i < sizeof gSongs ; i++){ engfunc(EngFunc_PrecacheSound, gSongs[i]); break; } } public client_command(id){ static szCommand[12]; read_argv(0, szCommand, sizeof szCommand - 1); if(g_Joined[id] > 1){ if(equal(szCommand, "jointeam") || equal(szCommand, "chooseteam")){ return 1; } } return 0; } public eventJoinTeam(){ new id = read_data(1); g_Joined[id] += 1; if(g_Joined[id] > 1) return 1; checkTeam(id); return 0; } Policz(CsTeams:iTeam){ new iPlayers[32] , iPlayerCount; new iTeamPlayers[CsTeams]; get_players(iPlayers , iPlayerCount); for (new i = 0 ; i < iPlayerCount ; i++) iTeamPlayers[cs_get_user_team(iPlayers[i])] ++; return iTeamPlayers[iTeam]; } checkTeam(id) { new iNum = Policz(CS_TEAM_CT); if(iNum >= 1) { fm_cs_set_user_team(id, 1); ColorChat(id, GREY, "^x04%s^x03 Nie mozesz byc szukajacym! (%d)", g_Prefix, iNum); return 1; } else{ fm_cs_set_user_team(id, 2); ColorChat(id, GREY, "^x04%s^x03 Zostales szukajacym (%d)", g_Prefix, iNum); } return 1; } public eventRoundEnd(){ new iPlayers[32], iNum, szName[32]; get_players(iPlayers, iNum, "ch"); for(new iCt = 0; iCt < iNum; iCt++){ fm_cs_set_user_team(iPlayers[iCt], 1); } if(iNum == 1) { get_players(iPlayers, iNum, "ache", "TERRORIST"); new iTT = iPlayers[0]; fm_cs_set_user_team(iTT, 2); get_user_name(iTT, szName, sizeof szName - 1); ColorChat(iTT, GREY, "^x04%s^x01 Jestes ostatnim zywym chowajacym! Zostales^x03 szukajacym^x01!", g_Prefix); ColorChat(0, GREY, "^x04%s^x03 %s^x01 zostal ostatnim chowajacym! Zagra tera jako szukajacy!", g_Prefix, szName); client_cmd(iTT, "spk fvox/blip"); } else { get_players(iPlayers, iNum, "che", "TERRORIST"); new rNum = iPlayers[random_num(0, iNum - 1)]; get_user_name(rNum, szName, sizeof szName - 1); ColorChat(0, GREY, "^x04%s^x03 %s^x01 zostal wylosowany jako szukajacy!", g_Prefix, szName); client_cmd(rNum, "spk fvox/blip"); fm_cs_set_user_team(rNum, 2); } } public eventPlayerDeath(){ new killer = read_data(1); new victim = read_data(2); new Float:fOrigin[3]; pev(victim, pev_origin, fOrigin); set_pev(victim, pev_effects, EF_NODRAW); engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, fOrigin, 0); write_byte(TE_PARTICLEBURST); engfunc(EngFunc_WriteCoord, fOrigin[0]); engfunc(EngFunc_WriteCoord, fOrigin[1]); engfunc(EngFunc_WriteCoord, fOrigin[2]); write_short(50); write_byte(72); write_byte(10); message_end(); if(IsPlayer(killer)) emit_sound(killer, CHAN_STATIC, "radio/enemydown.wav", 0.8, ATTN_NORM, 0, PITCH_NORM); ClearPlayerBit(g_IsAlive, victim); } public eventRoundRestart(){ set_lights("c"); new iPlayers[32], iNum; get_players(iPlayers, iNum, "ch"); if(task_exists(TASK_TIME)) remove_task(TASK_TIME); g_iTimer = 35; set_task(1.0, "Countdown", TASK_TIME, _, _, "a", 35); for(new i = 0 ; i < iNum; i ++){ if(IsPlayer(iPlayers[i]) && CheckPlayerBit(g_IsConnected, iPlayers[i]) && !g_DisableSound[iPlayers[i]]){ client_cmd(iPlayers[i], "mp3 play sound/%s", gSongs[random_num(0, 6)]); fm_do_rendering(iPlayers[i], kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 16); g_ChoosenColor[iPlayers[i]] = false; g_HasFlashOn[iPlayers[i]] = false; } } } public eventPlayerSpawn(id){ SetPlayerBit(g_IsAlive, id); if(CheckPlayerBit(g_IsAlive, id)) set_task(0.3, "taskStripWeapons", id + TASK_STRIP); } public msgStatusIcon(iMsgId, MSG_DEST, id){ static szIcon[5]; get_msg_arg_string(2, szIcon, 4); if(szIcon[0] == 'b' && szIcon[2] == 'y' && szIcon[3] == 'z'){ if(get_msg_arg_int(1)){ fm_cs_set_user_nobuy(id); return 0; } } return 0; } public taskStripWeapons(id){ id -= TASK_STRIP; fm_do_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 16); g_ChoosenColor[id] = false; g_HasFlashOn[id] = false; fm_strip_user_weapons(id); fm_set_user_nvg(id, 0); if(get_user_team(id) == 2) fm_set_godmode(id, 1); fm_strip_c4(); } public fm_strip_c4(){ for ( new i = 1; i <= g_iMaxPlayers; ++i ) engclient_cmd(i, "drop", "weapon_c4"); new weapbox, bomb = fm_find_ent_by_class(-1, "weapon_c4"); if (bomb && (weapbox = pev(bomb, pev_owner)) > g_iMaxPlayers){ dllfunc(DLLFunc_Think, weapbox); message_begin(MSG_ALL, get_user_msgid("BombPickup")); message_end(); } } public Countdown(){ g_iTimer -= 1; if(g_iTimer >= 0){ set_hudmessage(0, 255, 64, 0.05, 0.65, 1, 1.0, 1.0, 0.25, 0.25, 2); show_hudmessage(0, "[Chowany - by diablix]^nChowajacy maja %d sekund na ukrycie!", g_iTimer); } if(g_iTimer == 1){ set_lights("a"); new iPlayers[32], iNum; get_players(iPlayers, iNum, "ach"); for(new i = 0; i < iNum; i++){ if(!g_DisableSound[iPlayers[i]]){ new r = random_num(0, 9 - 1); client_cmd(iPlayers[i],"mp3 play media/%s", gSoundlist[r]); } if(get_user_team(iPlayers[i]) == 1){ Make_ScreenFade(iPlayers[i], 0.5, 0.5, 128, 255, 0, 64); fm_set_user_nvg(iPlayers[i], 1); set_hudmessage(0, 255, 0, 0.43, 0.81, 1, 1.5, 1.5, 1.0, 1.0, 1); show_hudmessage(iPlayers[i], "Dostales noktowizor"); client_cmd(iPlayers[i], "spk items/nvg_on.wav"); fm_give_item(iPlayers[i], "weapon_knife"); } else if(get_user_team(iPlayers[i]) == 2){ fm_give_item(iPlayers[i], "weapon_knife"); fm_give_item(iPlayers[i], "weapon_m3"); fm_give_item(iPlayers[i], "weapon_deagle"); fm_give_item(iPlayers[i], "weapon_m249"); fm_give_item(iPlayers[i], "weapon_elite"); fm_give_item(iPlayers[i], "weapon_ak47"); fm_give_item(iPlayers[i], "weapon_awp"); fm_give_item(iPlayers[i], "weapon_scout"); fm_give_item(iPlayers[i], "weapon_p228"); fm_give_item(iPlayers[i], "weapon_glock18"); fm_give_item(iPlayers[i], "weapon_tmp"); fm_give_item(iPlayers[i], "weapon_mp5navy"); fm_give_item(iPlayers[i], "weapon_galil"); fm_give_item(iPlayers[i], "weapon_famas"); fm_give_item(iPlayers[i], "weapon_mac10"); fm_set_weapon_ammo(find_ent_by_owner(1, "weapon_m3", iPlayers[i]), 999); fm_set_weapon_ammo(find_ent_by_owner(1, "weapon_deagle", iPlayers[i]), 999); fm_set_weapon_ammo(find_ent_by_owner(1, "weapon_m249", iPlayers[i]), 999); fm_set_weapon_ammo(find_ent_by_owner(1, "weapon_elite", iPlayers[i]), 999); fm_set_weapon_ammo(find_ent_by_owner(1, "weapon_ak47", iPlayers[i]), 999); fm_set_weapon_ammo(find_ent_by_owner(1, "weapon_awp", iPlayers[i]), 999); fm_set_weapon_ammo(find_ent_by_owner(