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 vwnmmog28 dodana przez Gość, 05.10.2012 22:26
sdsdsdsds
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. 389. 390. 391. 392. 393. 394. 395. 396. 397. 398. 399. 400. 401. 402. 403. 404. 405. 406. 407. 408. 409. 410. 411. 412. 413. 414. 415. 416. 417. 418. 419. 420. 421. 422. 423. 424. 425. 426. 427. 428. 429. 430. 431. 432. 433. 434. 435. 436. 437. 438. 439. 440.
#include <amxmodx> #include <amxmisc> #include <hamsandwich> #include <engine> #include <cstrike> #include <fakemeta> #include <xs> #include <codmod> #define fm_create_entity(%1) engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, %1)) #define VERSION "1.0" #define AUTHOR "Sh0oT3R edit by Eustachy8" #define FIRERATE 0.2 #define HITSD 0.7 #define RELOADSPEED 5.0 #define DAMAGE 45.0 #define DAMAGE_MULTI 3.0 #define CSW_WPN CSW_FAMAS new const weapon[] = "weapon_famas" new const spr_beam[] = "sprites/plasma/plasma_beam.spr" new const spr_exp[] = "sprites/plasma/plasma_exp.spr" new const spr_blood[] = "sprites/blood.spr" new const snd_fire[][] = { "plasma/plasma_fire.wav" } new const snd_reload[][] = { "plasma/plasma_reload.wav" } new const snd_hit[][] = { "plasma/plasma_hit.wav" } new bool:ma_klase[33] new g_iCurWpn[33], Float:g_flLastFireTime[33] new g_sprBeam, g_sprExp, g_sprBlood, g_msgDamage, g_msgScreenFade, g_msgScreenShake const m_pPlayer = 41 const m_fInReload = 54 const m_pActiveItem = 373 const m_flNextAttack = 83 const m_flTimeWeaponIdle = 48 const m_flNextPrimaryAttack = 46 const m_flNextSecondaryAttack = 47 const UNIT_SECOND = (1<<12) const ENG_NULLENT = -1 const WPN_MAXCLIP = 25 const ANIM_FIRE = 5 const ANIM_DRAW = 10 const ANIM_RELOAD = 9 const EV_INT_WEAPONKEY = EV_INT_impulse const WPNKEY = 2816 new const nazwa[] = "Space division"; new const opis[] = "Masz karabin plazmowy"; new const bronie = 1<<CSW_FAMAS; new const zdrowie = 20; new const kondycja = 5; new const inteligencja = 0; new const wytrzymalosc = 20; public plugin_init() { register_plugin("Plasma Rifle", VERSION, AUTHOR) cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc); register_event("CurWeapon", "event_CurWeapon", "b", "1=1") register_forward(FM_CmdStart, "fw_CmdStart") register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1) RegisterHam(Ham_Item_Deploy, weapon, "fw_Deploy_Post", 1) RegisterHam(Ham_Weapon_Reload, weapon, "fw_Reload_Post", 1) RegisterHam(Ham_Item_PostFrame, weapon, "fw_PostFrame") g_msgDamage = get_user_msgid("Damage") g_msgScreenFade = get_user_msgid("ScreenFade") g_msgScreenShake = get_user_msgid("ScreenShake") } public plugin_precache() { precache_model("models/plasma/v_plasma_16.mdl") precache_model("models/plasma/p_plasma.mdl") g_sprBlood = precache_model(spr_blood) g_sprBeam = precache_model(spr_beam) g_sprExp = precache_model(spr_exp) static i for(i = 0; i < sizeof snd_fire; i++) precache_sound(snd_fire[i]) for(i = 0; i < sizeof snd_hit; i++) precache_sound(snd_hit[i]) for(i = 0; i < sizeof snd_reload; i++) precache_sound(snd_reload[i]) } public event_CurWeapon(id) { if(!is_user_alive(id)) return PLUGIN_CONTINUE g_iCurWpn[id] = read_data(2) if(!ma_klase[id] || g_iCurWpn[id] != CSW_WPN) return PLUGIN_CONTINUE entity_set_string(id, EV_SZ_viewmodel, "models/plasma/v_plasma_16.mdl") entity_set_string(id, EV_SZ_weaponmodel, "models/plasma/p_plasma.mdl") return PLUGIN_CONTINUE } public cod_class_enabled(id) ma_klase[id] = true } public cod_class_disabled(id) { ma_klase[id] = false } public fw_CmdStart(id, handle, seed) { if(!is_user_alive(id)) return FMRES_IGNORED if(!ma_klase[id]) return FMRES_IGNORED if(g_iCurWpn[id] != CSW_WPN) return FMRES_IGNORED static iButton iButton = get_uc(handle, UC_Buttons) if(iButton & IN_ATTACK) { set_uc(handle, UC_Buttons, iButton & ~IN_ATTACK) static Float:flCurTime flCurTime = halflife_time() if(flCurTime - g_flLastFireTime[id] < FIRERATE) return FMRES_IGNORED static iWpnID, iClip iWpnID = get_pdata_cbase(id, m_pActiveItem, 5) iClip = cs_get_weapon_ammo(iWpnID) if(get_pdata_int(iWpnID, m_fInReload, 4)) return FMRES_IGNORED set_pdata_float(iWpnID, m_flNextPrimaryAttack, FIRERATE, 4) set_pdata_float(iWpnID, m_flNextSecondaryAttack, FIRERATE, 4) set_pdata_float(iWpnID, m_flTimeWeaponIdle, FIRERATE, 4) g_flLastFireTime[id] = flCurTime if(iClip <= 0) { ExecuteHamB(Ham_Weapon_PlayEmptySound, iWpnID) return FMRES_IGNORED } primary_attack(id) make_punch(id, 50) cs_set_weapon_ammo(iWpnID, --iClip) return FMRES_IGNORED } return FMRES_IGNORED } public fw_UpdateClientData_Post(id, sendweapons, handle) { if(!is_user_alive(id)) return FMRES_IGNORED if(!ma_klase[id]) return FMRES_IGNORED if(g_iCurWpn[id] != CSW_WPN) return FMRES_IGNORED set_cd(handle, CD_flNextAttack, halflife_time() + 0.001) return FMRES_HANDLED } public fw_Deploy_Post(wpn) { static id id = get_pdata_cbase(wpn, m_pPlayer, 4) if(is_user_connected(id) && ma_klase[id]) { set_wpnanim(id, ANIM_DRAW) } return HAM_IGNORED } public fw_PostFrame(wpn) { static id id = get_pdata_cbase(wpn, m_pPlayer, 4) if(is_user_alive(id) && ma_klase[id]) { static Float:flNextAttack, iBpAmmo, iClip, iInReload iInReload = get_pdata_int(wpn, m_fInReload, 4) flNextAttack = get_pdata_float(id, m_flNextAttack, 5) iBpAmmo = cs_get_user_bpammo(id, CSW_WPN) iClip = cs_get_weapon_ammo(wpn) if(iInReload && flNextAttack <= 0.0) { new iRemClip = min(WPN_MAXCLIP - iClip, iBpAmmo) cs_set_weapon_ammo(wpn, iClip + iRemClip) cs_set_user_bpammo(id, CSW_WPN, iBpAmmo-iRemClip) iInReload = 0 set_pdata_int(wpn, m_fInReload, 0, 4) } static iButton iButton = get_user_button(id) if((iButton & IN_ATTACK2 && get_pdata_float(wpn, m_flNextSecondaryAttack, 4) <= 0.0) || (iButton & IN_ATTACK && get_pdata_float(wpn, m_flNextPrimaryAttack, 4) <= 0.0)) return if(iButton & IN_RELOAD && !iInReload) { if(iClip >= WPN_MAXCLIP) { entity_set_int(id, EV_INT_button, iButton & ~IN_RELOAD) set_wpnanim(id, 0) } else if(iClip == WPN_MAXCLIP) { if(iBpAmmo) { reload(id, wpn, 1) } } } } } public fw_Reload_Post(wpn) { static id id = get_pdata_cbase(wpn, m_pPlayer, 4) if(is_user_alive(id) && ma_klase[id] && get_pdata_int(wpn, m_fInReload, 4)) { reload(id, wpn) } } public primary_attack(id) { set_wpnanim(id, ANIM_FIRE) entity_set_vector(id, EV_VEC_punchangle, Float:{ -1.5, 0.0, 0.0 }) emit_sound(id, CHAN_WEAPON, snd_fire[random_num(0, sizeof snd_fire - 1)], VOL_NORM, ATTN_NORM, 0, PITCH_NORM) static iTarget, iBody, iEndOrigin[3], iStartOrigin[3] get_user_origin(id, iStartOrigin, 1) get_user_origin(id, iEndOrigin, 3) fire_effects(iStartOrigin, iEndOrigin) get_user_aiming(id, iTarget, iBody) new iEnt = create_entity("info_target") static Float:flOrigin[3] IVecFVec(iEndOrigin, flOrigin) entity_set_origin(iEnt, flOrigin) remove_entity(iEnt) new team = get_user_team(iTarget); if(is_user_alive(iTarget)) { if(HITSD > 0.0) { static Float:flVelocity[3] get_user_velocity(iTarget, flVelocity) xs_vec_mul_scalar(flVelocity, HITSD, flVelocity) set_user_velocity(iTarget, flVelocity) } if(get_user_team(id) != team) { new iHp = pev(iTarget, pev_health) new Float:iDamage, iBloodScale if(iBody != HIT_HEAD) { iDamage = DAMAGE iBloodScale = 10 } else { iDamage = DAMAGE*DAMAGE_MULTI iBloodScale = 25 } if(iHp > iDamage) { make_blood(iTarget, iBloodScale) set_pev(iTarget, pev_health, iHp-iDamage) damage_effects(iTarget) } else if(iHp <= iDamage) { ExecuteHamB(Ham_Killed, iTarget, id, 2) } } } else { emit_sound(id, CHAN_WEAPON, snd_hit[random_num(0, sizeof snd_hit - 1)], VOL_NORM, ATTN_NORM, 0, PITCH_NORM) } } stock fire_effects(iStartOrigin[3], iEndOrigin[3]) { message_begin(MSG_BROADCAST,SVC_TEMPENTITY) write_byte(0) write_coord(iStartOrigin[0]) write_coord(iStartOrigin[1]) write_coord(iStartOrigin[2]) write_coord(iEndOrigin[0]) write_coord(iEndOrigin[1]) write_coord(iEndOrigin[2]) write_short(g_sprBeam) write_byte(1) write_byte(5) write_byte(10) write_byte(25) write_byte(0) write_byte(0) write_byte(255) write_byte(0) write_byte(100) write_byte(0) message_end() message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(3) write_coord(iEndOrigin[0]) write_coord(iEndOrigin[1]) write_coord(iEndOrigin[2]) write_short(g_sprExp) write_byte(10) write_byte(15) write_byte(4) message_end() } stock reload(id, wpn, force_reload = 0) { set_pdata_float(id, m_flNextAttack, RELOADSPEED, 5) set_wpnanim(id, ANIM_RELOAD) emit_sound(id, CHAN_WEAPON, snd_reload[random_num(0, sizeof snd_reload - 1)], VOL_NORM, ATTN_NORM, 0, PITCH_NORM) if(force_reload) set_pdata_int(wpn, m_fInReload, 1, 4) } stock damage_effects(id) { message_begin(MSG_ONE_UNRELIABLE, g_msgDamage, _, id) write_byte(0) write_byte(0) write_long(DMG_NERVEGAS) write_coord(0) write_coord(0) write_coord(0) message_end() message_begin(MSG_ONE_UNRELIABLE, g_msgScreenFade, {0,0,0}, id) write_short(1<<13) write_short(1<<14) write_short(0x0000) write_byte(0) write_byte(255) write_byte(0) write_byte(100) message_end() message_begin(MSG_ONE, g_msgScreenShake, {0,0,0}, id) write_short(0xFFFF) write_short(1<<13) write_short(0xFFFF) message_end() } stock make_blood(id, scale) { new Float:iVictimOrigin[3] pev(id, pev_origin, iVictimOrigin) message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(115) write_coord(floatround(iVictimOrigin[0]+random_num(-20,20))) write_coord(floatround(iVictimOrigin[1]+random_num(-20,20))) write_coord(floatround(iVictimOrigin[2]+random_num(-20,20))) write_short(g_sprBlood) write_short(g_sprBlood) write_byte(248) write_byte(scale) message_end() } stock set_wpnanim(id, anim) { entity_set_int(id, EV_INT_weaponanim, anim) message_begin(MSG_ONE, SVC_WEAPONANIM, {0, 0, 0}, id) write_byte(anim) write_byte(entity_get_int(id, EV_INT_body)) message_end() } stock make_punch(id, velamount) { static Float:flNewVelocity[3], Float:flCurrentVelocity[3] velocity_by_aim(id, -velamount, flNewVelocity) get_user_velocity(id, flCurrentVelocity) xs_vec_add(flNewVelocity, flCurrentVelocity, flNewVelocity) set_user_velocity(id, flNewVelocity) } stock fm_give_item(index, const item[]) { if (!equal(item, "weapon_", 7) && !equal(item, "ammo_", 5) && !equal(item, "item_", 5) && !equal(item, "tf_weapon_", 10)) return 0; new ent = fm_create_entity(item); if (!pev_valid(ent)) return 0; new Float:origin[3]; pev(index, pev_origin, origin); set_pev(ent, pev_origin, origin); set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN); dllfunc(DLLFunc_Spawn, ent); new save = pev(ent, pev_solid); dllfunc(DLLFunc_Touch, ent, index); if (pev(ent, pev_solid) != save) return ent; engfunc(EngFunc_RemoveEntity, ent); return -1; } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{ rtf1 ansi deff0{ fonttbl{ f0 fnil Tahoma;}}n viewkind4 uc1 pard lang1049 f0 fs16 n par } */
Dodanych wklejek: 11179
Powered By (Pav32) Pastebin © 2011