hlmod.hu
https://hlmod.hu/

Runtime error
https://hlmod.hu/viewtopic.php?f=9&t=6607
Oldal: 1 / 1

Szerző:  rericsi8 [2012.11.13. 20:39 ]
Hozzászólás témája:  Runtime error

Hali
Ez a fegyó error és warn nélkül lefutott mégis runtime error-t dob rá a szerver, a plugin listába meg azt írja hogy lezárt, valaki tudja a hiba okát?

hiba:
Kód:
L 11/13/2012 - 20:33:54: [AMXX] Plugin ("dm_skull3.amxx") is setting itself as failed.
L 11/13/2012 - 20:33:54: [AMXX] Plugin says: Function out of bounds. Got: 186 Max: 129
L 11/13/2012 - 20:33:54: [AMXX] Run time error 1 (plugin "dm_skull3.amxx") - forced exit


SMA Forráskód: [ Mindet kijelol ]
  1.  
  2. #include <amxmodx>
  3. #include <engine>
  4. #include <fakemeta>
  5. #include <fakemeta_util>
  6. #include <hamsandwich>
  7. #include <cstrike>
  8. #include <fun>
  9.  
  10. #define PLUGIN "Primary Weapon: Skull-3"
  11. #define VERSION "1.0"
  12. #define AUTHOR "Dias"
  13.  
  14. #define weapon_skull3_m1 "weapon_mp5navy"
  15. #define weapon_skull3_m2 "weapon_p90"
  16. #define CSW_SKULL3_M1 CSW_MP5NAVY
  17. #define CSW_SKULL3_M2 CSW_P90
  18. #define SKULL3_M1_KEY 2082
  19. #define SKULL3_M2_KEY 2086
  20.  
  21. const SILENT_BS = ((1<<CSW_USP)|(1<<CSW_SKULL3_M1))
  22. const SILENT_BS2 = ((1<<CSW_USP)|(1<<CSW_SKULL3_M2))
  23. stock const g_iDftMaxClip[CSW_P90+1] = {
  24. -1, 13, -1, 10, 1, 7, 1, 30, 30, 1, 30,
  25. 20, 25, 30, 35, 25, 12, 20, 10, 30, 100,
  26. 8 , 30, 30, 20, 2, 7, 30, 30, -1, 50}
  27. stock const Float:g_fDelay[CSW_P90+1] = {
  28. 0.00, 2.70, 0.00, 2.00, 0.00, 0.55, 0.00, 3.15, 3.30, 0.00, 4.50,
  29. 2.70, 3.50, 3.35, 2.45, 3.30, 2.70, 2.20, 2.50, 2.63, 4.70,
  30. 0.55, 3.05, 2.12, 3.50, 0.00, 2.20, 3.00, 2.45, 0.00, 3.40
  31. }
  32.  
  33. new const WEAPONENTNAMES[][] =
  34. {
  35. "", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10",
  36. "weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550",
  37. "weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_m249",
  38. "weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552",
  39. "weapon_ak47", "weapon_knife"
  40. }
  41.  
  42. const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_MAC10)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_MAC10)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)
  43.  
  44. new g_skull3_id
  45. new g_had_skull3[33], g_skull3_mode[33], g_skull3_ammo[33], g_skull3_changing[33],
  46. g_zoomed[33], g_remove_ent[33], g_blood, g_bloodspray, g_pbe_skull3_m1,
  47. g_pbe_skull3_m2, g_is_attacking[33], Float:g_zoom_time[33], g_skull3_m2_ammo[33],
  48. Float:g_recoil[33], g_shot_anim[33], g_skull3_clip[33], g_reload[33], g_reg
  49. new cvar_recoil_m1, cvar_recoil_m2, cvar_clip_m1, cvar_clip_m2, cvar_speed_m1, cvar_speed_m2,
  50. cvar_damage_m1, cvar_damage_m2, cvar_decrease_speed
  51. new Float:g_oldspeed[33]
  52.  
  53. new const v_model[] = "models/zombie_plague/v_skull3.mdl"
  54. new const v_model2[] = "models/zombie_plague/v_skull3_2.mdl"
  55. new const p_model[] = "models/zombie_plague/p_skull3.mdl"
  56. new const p_model2[] = "models/zombie_plague/p_skull3dual.mdl"
  57. new const w_model[] = "models/zombie_plague/w_skull3.mdl"
  58.  
  59. new const skull3_sound[5][] =
  60. {
  61. "weapons/skull3_shoot.wav",
  62. "weapons/skull3_shoot_2.wav",
  63. "weapons/skull3_idle.wav",
  64. "weapons/skull3_clipin.wav",
  65. "weapons/skull3_boltpull.wav"
  66. }
  67.  
  68. public plugin_init()
  69. {
  70. register_plugin(PLUGIN, VERSION, AUTHOR)
  71.  
  72. g_skull3_id = register_clcmd("say /skull3", "skull3dm")
  73.  
  74. register_forward(FM_CmdStart, "fw_CmdStart")
  75. register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1)
  76. register_forward(FM_PlaybackEvent, "fw_PlaybackEvent")
  77. register_forward(FM_SetModel, "fw_SetModel")
  78.  
  79. RegisterHam(Ham_Spawn, "player", "ham_spawn_player_post", 1)
  80. RegisterHam(Ham_Item_AddToPlayer, weapon_skull3_m1, "ham_add_skull3_m1", 1)
  81. RegisterHam(Ham_Item_AddToPlayer, weapon_skull3_m2, "ham_add_skull3_m2", 1)
  82. RegisterHam(Ham_CS_Weapon_SendWeaponAnim, weapon_skull3_m1, "ham_anim_skull3_m1", 1)
  83. RegisterHam(Ham_CS_Weapon_SendWeaponAnim, weapon_skull3_m2, "ham_anim_skull3_m2", 1)
  84. RegisterHam(Ham_Item_Deploy, weapon_skull3_m1, "ham_deploy_skull3_m1", 1)
  85. RegisterHam(Ham_Item_Deploy, weapon_skull3_m2, "ham_deploy_skull3_m2", 1)
  86.  
  87. for (new i = 1; i <= CSW_P90 - 2; i++)
  88. {
  89. if (strlen(WEAPONENTNAMES[i]) && !equal(WEAPONENTNAMES[i], "weapon_knife"))
  90. RegisterHam(Ham_Item_Deploy, WEAPONENTNAMES[i], "fw_Ham_Item_Deploy_Post", 1)
  91. }
  92.  
  93. RegisterHam(Ham_Weapon_PrimaryAttack, weapon_skull3_m1, "ham_attack_skull3")
  94. RegisterHam(Ham_Weapon_PrimaryAttack, weapon_skull3_m2, "ham_attack_skull3")
  95. RegisterHam(Ham_Weapon_PrimaryAttack, weapon_skull3_m1, "ham_attack_skull3_post", 1)
  96. RegisterHam(Ham_Weapon_PrimaryAttack, weapon_skull3_m2, "ham_attack_skull3_post", 1)
  97. RegisterHam(Ham_Weapon_Reload, weapon_skull3_m1, "ham_reload_skull3")
  98. RegisterHam(Ham_Weapon_Reload, weapon_skull3_m2, "ham_reload_skull3")
  99. RegisterHam(Ham_Weapon_Reload, weapon_skull3_m1, "ham_reload_skull3_post", 1)
  100. RegisterHam(Ham_Weapon_Reload, weapon_skull3_m2, "ham_reload_skull3_post", 1)
  101. RegisterHam(Ham_Item_PostFrame, weapon_skull3_m1, "ham_postframe_skull3")
  102. RegisterHam(Ham_Item_PostFrame, weapon_skull3_m2, "ham_postframe_skull3")
  103.  
  104. RegisterHam(Ham_TraceAttack, "worldspawn", "ham_traceattack")
  105. RegisterHam(Ham_TraceAttack, "player", "ham_traceattack")
  106.  
  107. cvar_recoil_m1 = register_cvar("skull3_recoil_m1", "0.46")
  108. cvar_recoil_m2 = register_cvar("skull3_recoil_m2", "0.56")
  109. cvar_clip_m1 = register_cvar("skull3_clip_m1", "35")
  110. cvar_clip_m2 = register_cvar("skull3_clip_m2", "70")
  111. cvar_speed_m1 = register_cvar("skull3_speed_m1", "1.35")
  112. cvar_speed_m2 = register_cvar("skull3_speed_m2", "1.28")
  113. cvar_damage_m1 = register_cvar("skull3_damage_m1", "24")
  114. cvar_damage_m2 = register_cvar("skull3_damage_m2", "20")
  115. cvar_decrease_speed = register_cvar("skull3_decrease_speed", "110.0")
  116.  
  117. register_event("CurWeapon", "event_checkweapon", "be", "1=1")
  118.  
  119. register_clcmd("drop", "cmd_drop")
  120. register_clcmd("weapon_skull3", "hook_change_weapon1")
  121. register_clcmd("weapon_skull3_2", "hook_change_weapon2")
  122. }
  123.  
  124. public plugin_precache()
  125. {
  126. engfunc(EngFunc_PrecacheModel, v_model)
  127. engfunc(EngFunc_PrecacheModel, v_model2)
  128. engfunc(EngFunc_PrecacheModel, p_model)
  129. engfunc(EngFunc_PrecacheModel, p_model2)
  130. engfunc(EngFunc_PrecacheModel, w_model)
  131.  
  132. for(new i = 0; i < sizeof(skull3_sound); i++)
  133. engfunc(EngFunc_PrecacheSound, skull3_sound[i])
  134.  
  135. engfunc(EngFunc_PrecacheGeneric, "sprites/skull3_hud.spr")
  136. engfunc(EngFunc_PrecacheGeneric, "sprites/skull3_ammo.spr")
  137. engfunc(EngFunc_PrecacheGeneric, "sprites/weapon_skull3.txt")
  138. engfunc(EngFunc_PrecacheGeneric, "sprites/weapon_skull3_2.txt")
  139.  
  140. g_blood = precache_model("sprites/blood.spr")
  141. g_bloodspray = precache_model("sprites/bloodspray.spr")
  142.  
  143. register_forward(FM_PrecacheEvent, "fw_PrecacheEvent_Post", 1)
  144. }
  145.  
  146. public fw_PrecacheEvent_Post(type, const name[])
  147. {
  148. if(equal("events/mp5n.sc", name))
  149. {
  150. g_pbe_skull3_m1 = get_orig_retval()
  151. return FMRES_HANDLED
  152. } else if(equal("events/p90.sc", name)) {
  153. g_pbe_skull3_m2 = get_orig_retval()
  154. return FMRES_HANDLED
  155. }
  156.  
  157. return FMRES_IGNORED
  158. }
  159.  
  160. public fw_PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2)
  161. {
  162. if (!(1 <= invoker <= get_maxplayers()))
  163. return FMRES_IGNORED
  164. if(!g_is_attacking[invoker])
  165. return FMRES_IGNORED
  166. if(eventid == g_pbe_skull3_m1 || eventid == g_pbe_skull3_m2)
  167. playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2)
  168.  
  169. return FMRES_SUPERCEDE
  170. }
  171.  
  172. public skull3dm(id, itemid)
  173. {
  174. if(itemid != g_skull3_id)
  175. return PLUGIN_HANDLED
  176.  
  177. drop_weapons(id, 1)
  178.  
  179. g_had_skull3[id] = 1
  180. g_skull3_mode[id] = 1
  181. g_skull3_ammo[id] = 200
  182. g_skull3_changing[id] = 0
  183. g_zoomed[id] = 0
  184. g_oldspeed[id] = get_user_maxspeed(id)
  185.  
  186. give_item(id, weapon_skull3_m1)
  187. give_item(id, weapon_skull3_m2)
  188.  
  189. static skull3_ent
  190.  
  191. skull3_ent = fm_find_ent_by_owner(-1, weapon_skull3_m1, id)
  192. set_pev(skull3_ent, pev_iuser4, SKULL3_M1_KEY)
  193. cs_set_weapon_ammo(skull3_ent, get_pcvar_num(cvar_clip_m1))
  194. cs_set_user_bpammo(id, CSW_SKULL3_M1, g_skull3_ammo[id])
  195.  
  196. skull3_ent = fm_find_ent_by_owner(-1, weapon_skull3_m2, id)
  197. set_pev(skull3_ent, pev_iuser4, SKULL3_M2_KEY)
  198. cs_set_weapon_ammo(skull3_ent, get_pcvar_num(cvar_clip_m2))
  199. cs_set_user_bpammo(id, CSW_SKULL3_M2, g_skull3_ammo[id])
  200.  
  201. engclient_cmd(id, weapon_skull3_m1)
  202.  
  203. return PLUGIN_CONTINUE
  204. }
  205.  
  206. public ham_spawn_player_post(id)
  207. {
  208. remove_skull3(id)
  209. }
  210.  
  211. public remove_skull3(id)
  212. {
  213. if(!is_user_connected(id))
  214. return
  215.  
  216. g_had_skull3[id] = 0
  217. g_skull3_mode[id] = 0
  218. g_skull3_ammo[id] = 0
  219. g_skull3_changing[id] = 0
  220. g_zoomed[id] = 0
  221. }
  222.  
  223. public hook_change_weapon1(id)
  224. {
  225. if(g_had_skull3[id])
  226. {
  227. engclient_cmd(id, weapon_skull3_m1)
  228. }
  229. }
  230.  
  231. public hook_change_weapon2(id)
  232. {
  233. if(g_had_skull3[id])
  234. {
  235. engclient_cmd(id, weapon_skull3_m2)
  236. }
  237. }
  238.  
  239. public client_putinserver(id)
  240. {
  241. if(!g_reg && is_user_bot(id))
  242. {
  243. g_reg = 1
  244. set_task(0.1, "do_register", id)
  245. }
  246. }
  247.  
  248. public do_register(id)
  249. {
  250. RegisterHamFromEntity(Ham_TraceAttack, id, "ham_traceattack")
  251. RegisterHamFromEntity(Ham_Spawn, id, "ham_spawn_player")
  252. }
  253.  
  254. public event_checkweapon(id)
  255. {
  256. if(!is_user_alive(id) || !is_user_connected(id))
  257. return PLUGIN_HANDLED
  258. if(cs_get_user_team(id))
  259. return PLUGIN_HANDLED
  260. if(!g_had_skull3[id])
  261. return PLUGIN_HANDLED
  262.  
  263. static CurWeapon
  264. CurWeapon = get_user_weapon(id)
  265.  
  266. if(CurWeapon == CSW_SKULL3_M1 && g_skull3_mode[id] == 1)
  267. {
  268. set_pev(id, pev_viewmodel2, v_model)
  269. set_pev(id, pev_weaponmodel2, p_model)
  270.  
  271. check_weapon_speed(id, 1)
  272. } else if(CurWeapon == CSW_SKULL3_M2 && g_skull3_mode[id] == 2) {
  273. set_pev(id, pev_viewmodel2, v_model2)
  274. set_pev(id, pev_weaponmodel2, p_model2)
  275.  
  276. check_weapon_speed(id, 2)
  277. }
  278.  
  279. return PLUGIN_CONTINUE
  280. }
  281.  
  282. public check_weapon_speed(id, mode)
  283. {
  284. static Float:iSpeed
  285.  
  286. if(mode == 1)
  287. iSpeed = get_pcvar_float(cvar_speed_m1)
  288. else if(mode == 2)
  289. iSpeed = get_pcvar_float(cvar_speed_m2)
  290.  
  291. static weapon_name[32], ent
  292.  
  293. if(mode == 1)
  294. get_weaponname(CSW_SKULL3_M1, weapon_name, sizeof(weapon_name))
  295. else if(mode == 2)
  296. get_weaponname(CSW_SKULL3_M2, weapon_name, sizeof(weapon_name))
  297.  
  298. ent = find_ent_by_owner(-1, weapon_name, id)
  299. if(ent)
  300. {
  301. static Float:Delay, Float:M_Delay
  302. Delay = get_pdata_float(ent, 46, 4) * iSpeed
  303. M_Delay = get_pdata_float(ent, 47, 4) * iSpeed
  304. if (Delay > 0.0)
  305. {
  306. set_pdata_float(ent, 46, Delay, 4)
  307. set_pdata_float(ent, 47, M_Delay, 4)
  308. }
  309. }
  310. }
  311.  
  312. public fw_UpdateClientData_Post(id, sendweapons, cd_handle)
  313. {
  314. if(!is_user_alive(id) || !is_user_connected(id))
  315. return FMRES_IGNORED
  316. if(cs_get_user_team(id))
  317. return FMRES_IGNORED
  318. if(!g_had_skull3[id])
  319. return FMRES_IGNORED
  320.  
  321. if(get_user_weapon(id) == CSW_SKULL3_M1 || get_user_weapon(id) == CSW_SKULL3_M2)
  322. {
  323. set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001)
  324.  
  325. if(get_user_weapon(id) == CSW_SKULL3_M2)
  326. {
  327. switch(pev(id, pev_sequence))
  328. {
  329. case 10: set_pev(id, pev_sequence, 22)
  330. case 11:
  331. {
  332. if(g_shot_anim[id] == 0)
  333. {
  334. set_pev(id, pev_sequence, 23)
  335. } else if(g_shot_anim[id] == 1) {
  336. set_pev(id, pev_sequence, 24)
  337. }
  338. }
  339. case 12: set_pev(id, pev_sequence, 25)
  340. case 13: set_pev(id, pev_sequence, 26)
  341. case 14:
  342. {
  343. if(g_shot_anim[id] == 0)
  344. {
  345. set_pev(id, pev_sequence, 27)
  346. } else if(g_shot_anim[id] == 1) {
  347. set_pev(id, pev_sequence, 28)
  348. }
  349. }
  350. case 15: set_pev(id, pev_sequence, 29)
  351. }
  352. }
  353. }
  354.  
  355. return FMRES_HANDLED
  356. }
  357.  
  358. public cmd_drop(id)
  359. {
  360. if(get_user_weapon(id) == CSW_SKULL3_M1 || get_user_weapon(id) == CSW_SKULL3_M2 && g_had_skull3[id])
  361. {
  362. //return PLUGIN_HANDLED
  363. }
  364.  
  365. return PLUGIN_CONTINUE
  366. }
  367.  
  368. public fw_SetModel(entity, model[])
  369. {
  370. if(!is_valid_ent(entity))
  371. return FMRES_IGNORED;
  372.  
  373. static szClassName[33]
  374. entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
  375.  
  376. if(!equal(szClassName, "weaponbox"))
  377. return FMRES_IGNORED;
  378.  
  379. static id
  380. id = entity_get_edict(entity, EV_ENT_owner)
  381.  
  382. if(equal(model, "models/w_mp5.mdl"))
  383. {
  384. static weapon
  385. weapon = find_ent_by_owner(-1, weapon_skull3_m1, entity)
  386.  
  387. if(!pev_valid(weapon))
  388. return FMRES_IGNORED
  389.  
  390. if(g_had_skull3[id])
  391. {
  392. static weapon2
  393. weapon2 = find_ent_by_owner(-1, weapon_skull3_m2, id)
  394.  
  395. if(pev_valid(weapon2))
  396. {
  397. reset_player_maxspeed(id)
  398.  
  399. g_skull3_m2_ammo[id] = cs_get_weapon_ammo(weapon2)
  400. g_remove_ent[id] = entity
  401. //ham_strip_weapon(id, weapon_skull3_m2)
  402. //fm_strip_user_gun(id, CSW_SKULL3_M2, weapon_skull3_m2)
  403. remove_gun(id, CSW_SKULL3_M2)
  404. client_cmd(id, "slot3")
  405.  
  406. g_had_skull3[id] = 0
  407. entity_set_model(entity, w_model)
  408.  
  409. entity_set_int(weapon, EV_INT_impulse, 2085)
  410.  
  411. return FMRES_SUPERCEDE
  412. }
  413. }
  414. }
  415. if(equal(model, "models/w_p90.mdl"))
  416. {
  417. static weapon
  418. weapon = find_ent_by_owner(-1, weapon_skull3_m2, entity)
  419.  
  420. if(!pev_valid(weapon))
  421. return FMRES_IGNORED
  422.  
  423. if(g_had_skull3[id])
  424. {
  425. static weapon1
  426. weapon1 = find_ent_by_owner(-1, weapon_skull3_m1, id)
  427.  
  428. reset_player_maxspeed(id)
  429.  
  430. if(pev_valid(weapon1))
  431. {
  432. g_skull3_m2_ammo[id] = cs_get_weapon_ammo(weapon1)
  433. g_remove_ent[id] = entity
  434. //ham_strip_weapon(id, weapon_skull3_m1)
  435. //fm_strip_user_gun(id, CSW_SKULL3_M1, weapon_skull3_m1)
  436. remove_gun(id, CSW_SKULL3_M1)
  437. client_cmd(id, "slot3")
  438.  
  439. g_had_skull3[id] = 0
  440. entity_set_model(entity, w_model)
  441.  
  442. entity_set_int(weapon, EV_INT_impulse, 2085)
  443.  
  444. return FMRES_SUPERCEDE
  445. }
  446. }
  447. }
  448.  
  449.  
  450. return FMRES_IGNORED;
  451. }
  452.  
  453. public remove_gun(id, CSW)
  454. {
  455. new wpnList[32]
  456. new number
  457. get_user_weapons(id,wpnList,number)
  458. for (new i = 0;i < number ;i++) {
  459. if (wpnList[i] == CSW) {
  460. fm_strip_user_gun(id, wpnList[i])
  461. }
  462. }
  463. }
  464.  
  465. public fw_CmdStart(id, uc_handle, seed)
  466. {
  467. if(!is_user_alive(id) || !is_user_connected(id))
  468. return FMRES_IGNORED
  469. if(cs_get_user_team(id))
  470. return FMRES_IGNORED
  471. if(!g_had_skull3[id])
  472. return FMRES_IGNORED
  473. if(get_user_weapon(id) != CSW_SKULL3_M1 || g_skull3_mode[id] != 1)
  474. return FMRES_IGNORED
  475.  
  476. static CurButton
  477. CurButton = get_uc(uc_handle, UC_Buttons)
  478.  
  479. if(CurButton & IN_ATTACK2)
  480. {
  481. static Float:CurTime
  482. CurTime = get_gametime()
  483.  
  484. if(CurTime - 0.5 > g_zoom_time[id])
  485. {
  486. if(!g_zoomed[id])
  487. {
  488. cs_set_user_zoom(id, CS_SET_AUGSG552_ZOOM, 1)
  489. g_zoomed[id] = 1
  490. } else {
  491. cs_set_user_zoom(id, CS_RESET_ZOOM, 1)
  492. g_zoomed[id] = 0
  493. }
  494.  
  495. g_zoom_time[id] = CurTime
  496. }
  497. }
  498.  
  499. return FMRES_HANDLED
  500. }
  501.  
  502. public ham_traceattack(ent, attacker, Float:Damage, Float:fDir[3], ptr, iDamageType)
  503. {
  504. if(!is_user_alive(attacker) || !is_user_connected(attacker))
  505. return HAM_IGNORED
  506. if(cs_get_user_team(attacker))
  507. return HAM_IGNORED
  508. if(!g_had_skull3[attacker])
  509. return HAM_IGNORED
  510.  
  511. static Float:flEnd[3]
  512. get_tr2(ptr, TR_vecEndPos, flEnd)
  513.  
  514. if(get_user_weapon(attacker) == CSW_SKULL3_M1)
  515. {
  516. make_bullet(attacker, flEnd)
  517.  
  518. static Damage_New
  519. Damage_New = get_damage_body(get_tr2(ptr, TR_iHitgroup), get_pcvar_float(cvar_damage_m1))
  520.  
  521. SetHamParamFloat(3, float(Damage_New))
  522. } else if(get_user_weapon(attacker) == CSW_SKULL3_M2) {
  523. static Damage_New
  524. Damage_New = get_damage_body(get_tr2(ptr, TR_iHitgroup), get_pcvar_float(cvar_damage_m2))
  525.  
  526. SetHamParamFloat(3, float(Damage_New))
  527. }
  528.  
  529. return HAM_HANDLED
  530. }
  531.  
  532. public get_damage_body(body, Float:damage)
  533. {
  534. switch(body)
  535. {
  536. case HIT_HEAD: damage *= 4.0
  537. case HIT_CHEST: damage *= 1.5
  538. case HIT_STOMACH: damage *= 1.25
  539. default: damage *= 1.0
  540. }
  541.  
  542. return floatround(damage)
  543. }
  544.  
  545. public ham_add_skull3_m1(ent, id)
  546. {
  547. if(entity_get_int(ent, EV_INT_impulse) == 2085)
  548. {
  549. if(pev_valid(g_remove_ent[id]))
  550. {
  551. set_pev(g_remove_ent[id], pev_renderfx, kRenderFxGlowShell)
  552. set_pev(g_remove_ent[id], pev_rendermode, kRenderTransAlpha)
  553. set_pev(g_remove_ent[id], pev_renderamt, 0)
  554.  
  555. set_pev(g_remove_ent[id], pev_solid, SOLID_NOT)
  556. //remove_entity(g_remove_ent[id])
  557. }
  558.  
  559. g_had_skull3[id] = 1
  560. entity_set_int(id, EV_INT_impulse, 0)
  561.  
  562. fm_give_item(id, weapon_skull3_m2)
  563.  
  564. g_skull3_mode[id] = 1
  565. client_cmd(id, weapon_skull3_m1)
  566.  
  567. static weapon
  568. weapon = find_ent_by_owner(-1, weapon_skull3_m2, id)
  569. cs_set_weapon_ammo(weapon, g_skull3_m2_ammo[id])
  570.  
  571. set_pev(id, pev_viewmodel2, v_model)
  572. }
  573.  
  574. if(g_had_skull3[id])
  575. {
  576. message_begin(MSG_ONE, get_user_msgid("WeaponList"), _, id)
  577. write_string("weapon_skull3")
  578. write_byte(10)
  579. write_byte(120)
  580. write_byte(-1)
  581. write_byte(-1)
  582. write_byte(0)
  583. write_byte(7)
  584. write_byte(CSW_SKULL3_M1)
  585. write_byte(0)
  586. message_end()
  587. }
  588. }
  589.  
  590. public ham_add_skull3_m2(ent, id)
  591. {
  592. if(entity_get_int(ent, EV_INT_impulse) == 2085)
  593. {
  594. if(pev_valid(g_remove_ent[id]))
  595. {
  596. set_pev(g_remove_ent[id], pev_renderfx, kRenderFxGlowShell)
  597. set_pev(g_remove_ent[id], pev_rendermode, kRenderTransAlpha)
  598. set_pev(g_remove_ent[id], pev_renderamt, 0)
  599.  
  600. set_pev(g_remove_ent[id], pev_solid, SOLID_NOT)
  601. //remove_entity(g_remove_ent[id])
  602. }
  603.  
  604. g_had_skull3[id] = 1
  605. entity_set_int(id, EV_INT_impulse, 0)
  606.  
  607. fm_give_item(id, weapon_skull3_m1)
  608.  
  609. g_skull3_mode[id] = 2
  610. client_cmd(id, weapon_skull3_m2)
  611.  
  612. static weapon
  613. weapon = find_ent_by_owner(-1, weapon_skull3_m1, id)
  614. cs_set_weapon_ammo(weapon, g_skull3_m2_ammo[id])
  615.  
  616. set_pev(id, pev_viewmodel2, v_model2)
  617. }
  618.  
  619. if(g_had_skull3[id])
  620. {
  621. message_begin(MSG_ONE, get_user_msgid("WeaponList"), _, id)
  622. write_string("weapon_skull3_2")
  623. write_byte(7)
  624. write_byte(100)
  625. write_byte(-1)
  626. write_byte(-1)
  627. write_byte(0)
  628. write_byte(8)
  629. write_byte(CSW_SKULL3_M2)
  630. write_byte(0)
  631. message_end()
  632. }
  633. }
  634.  
  635. public ham_anim_skull3_m1(ent, anim, skiplocal, body)
  636. {
  637. if(!pev_valid(ent))
  638. return HAM_IGNORED
  639.  
  640. static id
  641. id = pev(ent, pev_owner)
  642.  
  643. if(is_user_alive(id) && is_user_connected(id) && g_had_skull3[id])
  644. {
  645. if(anim == 2)
  646. {
  647. if(g_skull3_mode[id] == 2)
  648. {
  649. g_skull3_changing[id] = 1
  650.  
  651. set_pev(id, pev_viewmodel2, v_model)
  652. set_weapon_anim(id, 6)
  653. set_pdata_int(id, 83, 3, 5)
  654.  
  655. set_task(3.0, "change_complete1", id)
  656. set_nextattack(ent, id, 3.0)
  657.  
  658. //event_checkweapon(id)
  659.  
  660. reset_player_maxspeed(id)
  661. } else if(g_skull3_mode[id] == 1) {
  662. if(!g_skull3_changing[id])
  663. {
  664. set_pev(id, pev_viewmodel2, v_model)
  665. set_weapon_anim(id, 2)
  666.  
  667. set_nextattack(ent, id, 1.0)
  668. } else {
  669. set_pev(id, pev_viewmodel2, v_model)
  670. set_weapon_anim(id, 2)
  671. set_nextattack(ent, id, 1.0)
  672.  
  673. remove_task(id)
  674.  
  675. reset_player_maxspeed(id)
  676. }
  677. }
  678. }
  679. if(anim == 0)
  680. {
  681. if(g_skull3_mode[id] == 1)
  682. {
  683. cs_set_user_bpammo(id, CSW_SKULL3_M2, cs_get_user_bpammo(id, CSW_SKULL3_M1))
  684. g_skull3_ammo[id] = cs_get_user_bpammo(id, CSW_SKULL3_M2)
  685. } else if(g_skull3_mode[id] == 2) {
  686. cs_set_user_bpammo(id, CSW_SKULL3_M1, cs_get_user_bpammo(id, CSW_SKULL3_M2))
  687. g_skull3_ammo[id] = cs_get_user_bpammo(id, CSW_SKULL3_M1)
  688. }
  689. }
  690. }
  691.  
  692. return HAM_HANDLED
  693. }
  694.  
  695. public ham_anim_skull3_m2(ent, anim, skiplocal, body)
  696. {
  697. if(!pev_valid(ent))
  698. return HAM_IGNORED
  699.  
  700. static id
  701. id = pev(ent, pev_owner)
  702.  
  703. if(is_user_alive(id) && is_user_connected(id) && g_had_skull3[id])
  704. {
  705. if(anim == 2)
  706. {
  707. if(g_skull3_mode[id] == 1)
  708. {
  709. g_skull3_changing[id] = 1
  710.  
  711. set_pev(id, pev_viewmodel2, v_model2)
  712. set_weapon_anim(id, 6)
  713. set_pdata_int(id, 83, 3, 5)
  714.  
  715. set_task(3.0, "change_complete2", id)
  716. set_nextattack(ent, id, 3.0)
  717.  
  718. //event_checkweapon(id)
  719.  
  720. if(pev(id, pev_maxspeed) != get_pcvar_float(cvar_decrease_speed))
  721. set_user_maxspeed(id, get_pcvar_float(cvar_decrease_speed))
  722. } else if(g_skull3_mode[id] == 2) {
  723. set_pev(id, pev_viewmodel2, v_model2)
  724. set_weapon_anim(id, 2)
  725.  
  726. set_nextattack(ent, id, 1.0)
  727. }
  728. }
  729.  
  730. if(anim == 0)
  731. {
  732. if(g_skull3_mode[id] == 1)
  733. {
  734. cs_set_user_bpammo(id, CSW_SKULL3_M2, cs_get_user_bpammo(id, CSW_SKULL3_M1))
  735. g_skull3_ammo[id] = cs_get_user_bpammo(id, CSW_SKULL3_M2)
  736. } else if(g_skull3_mode[id] == 2) {
  737. cs_set_user_bpammo(id, CSW_SKULL3_M1, cs_get_user_bpammo(id, CSW_SKULL3_M2))
  738. g_skull3_ammo[id] = cs_get_user_bpammo(id, CSW_SKULL3_M1)
  739. }
  740. }
  741. }
  742.  
  743. return HAM_HANDLED
  744. }
  745.  
  746. public fw_Ham_Item_Deploy_Post(ent)
  747. {
  748. if(!pev_valid(ent))
  749. return HAM_IGNORED
  750.  
  751. static id
  752. id = pev(ent, pev_owner)
  753.  
  754. if(is_user_alive(id) && is_user_connected(id))
  755. {
  756. if(pev(id, pev_maxspeed) == get_pcvar_float(cvar_decrease_speed))
  757. reset_player_maxspeed(id)
  758. }
  759.  
  760. return HAM_HANDLED
  761. }
  762.  
  763. public ham_deploy_skull3_m1(ent)
  764. {
  765. if(!pev_valid(ent))
  766. return HAM_IGNORED
  767.  
  768. static id
  769. id = pev(ent, pev_owner)
  770.  
  771. if(is_user_alive(id) && is_user_connected(id) && g_had_skull3[id] && g_skull3_changing[id])
  772. {
  773. set_nextattack(ent, id, 3.0)
  774. }
  775.  
  776. return HAM_HANDLED
  777. }
  778.  
  779. public ham_deploy_skull3_m2(ent)
  780. {
  781. if(!pev_valid(ent))
  782. return HAM_IGNORED
  783.  
  784. static id
  785. id = pev(ent, pev_owner)
  786.  
  787. if(is_user_alive(id) && is_user_connected(id) && g_had_skull3[id] && g_skull3_changing[id])
  788. {
  789. set_nextattack(ent, id, 3.0)
  790. }
  791.  
  792. return HAM_HANDLED
  793. }
  794.  
  795. public ham_attack_skull3(ent)
  796. {
  797. if(!pev_valid(ent))
  798. return HAM_IGNORED
  799.  
  800. static id
  801. id = pev(ent, pev_owner)
  802.  
  803. if(is_user_alive(id) && is_user_connected(id) && g_had_skull3[id])
  804. {
  805. g_is_attacking[id] = 1
  806. pev(id, pev_punchangle, g_recoil[id])
  807. }
  808.  
  809. return HAM_HANDLED
  810. }
  811.  
  812. public ham_attack_skull3_post(ent)
  813. {
  814. if(!pev_valid(ent))
  815. return HAM_IGNORED
  816.  
  817. static id
  818. id = pev(ent, pev_owner)
  819.  
  820. if(is_user_alive(id) && is_user_connected(id) && g_had_skull3[id])
  821. {
  822. g_is_attacking[id] = 0
  823.  
  824. new Float:static_recoil[3]
  825. pev(id, pev_punchangle, static_recoil)
  826.  
  827. xs_vec_sub(static_recoil, g_recoil[id], static_recoil)
  828.  
  829. if(g_skull3_mode[id] == 1)
  830. xs_vec_mul_scalar(static_recoil, get_pcvar_float(cvar_recoil_m1), static_recoil)
  831. else if(g_skull3_mode[id] == 2)
  832. xs_vec_mul_scalar(static_recoil, get_pcvar_float(cvar_recoil_m2), static_recoil)
  833.  
  834. xs_vec_add(static_recoil, g_recoil[id], static_recoil)
  835. set_pev(id, pev_punchangle, static_recoil)
  836.  
  837. if (!cs_get_weapon_ammo(ent))
  838. return HAM_IGNORED
  839.  
  840. emit_sound(id, CHAN_WEAPON, skull3_sound[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  841.  
  842. if(g_skull3_mode[id] == 1)
  843. {
  844. set_weapon_anim(id, 3)
  845. } else if(g_skull3_mode[id] == 2) {
  846. set_pdata_float(ent, 62, 0.4, 4)
  847. if(g_shot_anim[id] == 0)
  848. {
  849. set_weapon_anim(id, 3)
  850. g_shot_anim[id] = 1
  851. } else if(g_shot_anim[id] == 1) {
  852. set_weapon_anim(id, 5)
  853. g_shot_anim[id] = 0
  854. }
  855. }
  856. }
  857.  
  858. return HAM_HANDLED
  859. }
  860.  
  861. public ham_reload_skull3(ent)
  862. {
  863. if(!pev_valid(ent))
  864. return HAM_IGNORED
  865.  
  866. static id
  867. id = pev(ent, pev_owner)
  868.  
  869. if(is_user_alive(id) && is_user_connected(id) && g_had_skull3[id])
  870. {
  871. g_skull3_clip[id] = -1
  872.  
  873. new bpammo
  874.  
  875. if(g_skull3_mode[id] == 1)
  876. bpammo = cs_get_user_bpammo(id, CSW_SKULL3_M1)
  877. else if(g_skull3_mode[id] == 2)
  878. bpammo = cs_get_user_bpammo(id, CSW_SKULL3_M2)
  879.  
  880. new iClip = get_pdata_int(ent, 51, 4)
  881.  
  882. if (bpammo <= 0)
  883. return HAM_SUPERCEDE
  884.  
  885. if(g_skull3_mode[id] == 1)
  886. {
  887. if(iClip >= get_pcvar_num(cvar_clip_m1))
  888. return HAM_SUPERCEDE
  889. } else if(g_skull3_mode[id] == 2) {
  890. if(iClip >= get_pcvar_num(cvar_clip_m2))
  891. return HAM_SUPERCEDE
  892. }
  893.  
  894. g_skull3_clip[id] = iClip
  895. g_reload[id] = 1
  896. }
  897.  
  898. return HAM_IGNORED
  899. }
  900.  
  901. public ham_reload_skull3_post(ent)
  902. {
  903. if(!pev_valid(ent))
  904. return HAM_IGNORED
  905.  
  906. static id
  907. id = pev(ent, pev_owner)
  908.  
  909. if(is_user_alive(id) && is_user_connected(id) && g_had_skull3[id])
  910. {
  911. if (g_skull3_clip[id] == -1)
  912. return HAM_IGNORED
  913.  
  914. static Float:reload_time
  915. if(g_skull3_mode[id] == 1)
  916. reload_time = 2.2
  917. else if(g_skull3_mode[id] == 2)
  918. reload_time = 3.4
  919.  
  920. set_pdata_int(ent, 51, g_skull3_clip[id], 4)
  921. set_pdata_float(ent, 48, reload_time, 4)
  922. set_pdata_float(id, 83, reload_time, 5)
  923. set_pdata_int(ent, 54, 1, 4)
  924.  
  925. set_weapon_anim(id, 1)
  926. }
  927.  
  928. return HAM_IGNORED
  929. }
  930.  
  931. public ham_postframe_skull3(ent)
  932. {
  933. if(!pev_valid(ent))
  934. return HAM_IGNORED
  935.  
  936. static id
  937. id = pev(ent, pev_owner)
  938.  
  939. if(is_user_alive(id) && is_user_connected(id) && g_had_skull3[id])
  940. {
  941. new Float:flNextAttack = get_pdata_float(id, 83, 5)
  942.  
  943. new bpammo
  944. if(g_skull3_mode[id] == 1)
  945. bpammo = cs_get_user_bpammo(id, CSW_SKULL3_M1)
  946. else if(g_skull3_mode[id] == 2)
  947. bpammo = cs_get_user_bpammo(id, CSW_SKULL3_M2)
  948.  
  949. new iClip = get_pdata_int(ent, 51, 4)
  950. new fInReload = get_pdata_int(ent, 54, 4)
  951.  
  952. if(fInReload && flNextAttack <= 0.0)
  953. {
  954. new temp1
  955. if(g_skull3_mode[id] == 1)
  956. {
  957. temp1 = min(get_pcvar_num(cvar_clip_m1) - iClip, bpammo)
  958. } else if(g_skull3_mode[id] == 2) {
  959. temp1 = min(get_pcvar_num(cvar_clip_m2) - iClip, bpammo)
  960. }
  961.  
  962. set_pdata_int(ent, 51, iClip + temp1, 4)
  963.  
  964. if(g_skull3_mode[id] == 1)
  965. cs_set_user_bpammo(id, CSW_SKULL3_M1, bpammo-temp1)
  966. else if(g_skull3_mode[id] == 2)
  967. cs_set_user_bpammo(id, CSW_SKULL3_M2, bpammo-temp1)
  968.  
  969. set_pdata_int(ent, 54, 0, 4)
  970.  
  971. fInReload = 0
  972. g_reload[id] = 0
  973. }
  974. }
  975.  
  976. return HAM_IGNORED
  977. }
  978.  
  979. public ham_takedamage_player(victim, inflictor, attacker, Float:damage, damagebits)
  980. {
  981. if(!is_user_alive(victim) || !is_user_connected(victim))
  982. return HAM_IGNORED
  983. if(!is_user_alive(attacker) || !is_user_connected(attacker))
  984. return HAM_IGNORED
  985. if(cs_get_user_team(attacker))
  986. return HAM_IGNORED
  987. if(!g_had_skull3[attacker])
  988. return HAM_IGNORED
  989.  
  990. if(get_user_weapon(attacker) == CSW_SKULL3_M1 && g_skull3_mode[attacker] == 1)
  991. {
  992. SetHamParamFloat(4, damage * get_pcvar_float(cvar_damage_m1))
  993. } else if(get_user_weapon(attacker) == CSW_SKULL3_M2 && g_skull3_mode[attacker] == 2) {
  994. SetHamParamFloat(4, damage * get_pcvar_float(cvar_damage_m2))
  995. }
  996.  
  997. return HAM_HANDLED
  998. }
  999.  
  1000. public client_PostThink(id)
  1001. {
  1002. if(!is_user_alive(id) || !is_user_connected(id))
  1003. return
  1004. if(cs_get_user_team(id))
  1005. return
  1006. if(!g_had_skull3[id])
  1007. return
  1008. if(get_user_weapon(id) != CSW_SKULL3_M2 || g_skull3_mode[id] != 2)
  1009. return
  1010.  
  1011. if(pev(id, pev_maxspeed) != get_pcvar_float(cvar_decrease_speed))
  1012. set_user_maxspeed(id, get_pcvar_float(cvar_decrease_speed))
  1013. }
  1014.  
  1015. public change_complete1(id)
  1016. {
  1017. g_skull3_changing[id] = 0
  1018.  
  1019. if(get_user_weapon(id) == CSW_SKULL3_M1 && g_had_skull3[id])
  1020. g_skull3_mode[id] = 1
  1021. }
  1022.  
  1023. public change_complete2(id)
  1024. {
  1025. g_skull3_changing[id] = 0
  1026.  
  1027. if(get_user_weapon(id) == CSW_SKULL3_M2 && g_had_skull3[id])
  1028. g_skull3_mode[id] = 2
  1029. }
  1030.  
  1031. stock set_weapon_anim(id, anim)
  1032. {
  1033. set_pev(id, pev_weaponanim, anim)
  1034.  
  1035. message_begin(MSG_ONE, SVC_WEAPONANIM, _, id)
  1036. write_byte(anim)
  1037. write_byte(pev(id, pev_body))
  1038. message_end()
  1039. }
  1040.  
  1041. stock set_nextattack(const weapon, const player, const Float:nextTime)
  1042. {
  1043. const m_flNextPrimaryAttack = 46
  1044. const m_flNextSecondaryAttack = 47
  1045. const m_flTimeWeaponIdle = 48
  1046. const m_flNextAttack = 83
  1047.  
  1048. set_pdata_float(weapon, m_flNextPrimaryAttack , nextTime, 4)
  1049. set_pdata_float(weapon, m_flNextSecondaryAttack, nextTime, 4)
  1050. set_pdata_float(weapon, m_flTimeWeaponIdle, nextTime, 4)
  1051. set_pdata_float(player, m_flNextAttack, nextTime, 5)
  1052. }
  1053.  
  1054. stock make_bullet(id, Float:Origin[3])
  1055. {
  1056. // Find target
  1057. new target, body
  1058. get_user_aiming(id, target, body, 999999)
  1059.  
  1060. if(target > 0 && target <= get_maxplayers())
  1061. {
  1062. new Float:fStart[3], Float:fEnd[3], Float:fRes[3], Float:fVel[3]
  1063. pev(id, pev_origin, fStart)
  1064.  
  1065. // Get ids view direction
  1066. velocity_by_aim(id, 64, fVel)
  1067.  
  1068. // Calculate position where blood should be displayed
  1069. fStart[0] = Origin[0]
  1070. fStart[1] = Origin[1]
  1071. fStart[2] = Origin[2]
  1072. fEnd[0] = fStart[0]+fVel[0]
  1073. fEnd[1] = fStart[1]+fVel[1]
  1074. fEnd[2] = fStart[2]+fVel[2]
  1075.  
  1076. // Draw traceline from victims origin into ids view direction to find
  1077. // the location on the wall to put some blood on there
  1078. new res
  1079. engfunc(EngFunc_TraceLine, fStart, fEnd, 0, target, res)
  1080. get_tr2(res, TR_vecEndPos, fRes)
  1081.  
  1082. // Show some blood <!-- s:) --><img src=\"{SMILIES_PATH}/icon_e_smile.gif\" alt=\":)\" title=\"mosoly\" /><!-- s:) -->
  1083. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  1084. write_byte(TE_BLOODSPRITE)
  1085. write_coord(floatround(fStart[0]))
  1086. write_coord(floatround(fStart[1]))
  1087. write_coord(floatround(fStart[2]))
  1088. write_short(g_bloodspray)
  1089. write_short(g_blood)
  1090. write_byte(70)
  1091. write_byte(random_num(1,2))
  1092. message_end()
  1093.  
  1094.  
  1095. } else {
  1096. new decal = 41
  1097.  
  1098. // Check if the wall hit is an entity
  1099. if(target)
  1100. {
  1101. // Put decal on an entity
  1102. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  1103. write_byte(TE_DECAL)
  1104. write_coord(floatround(Origin[0]))
  1105. write_coord(floatround(Origin[1]))
  1106. write_coord(floatround(Origin[2]))
  1107. write_byte(decal)
  1108. write_short(target)
  1109. message_end()
  1110. } else {
  1111. // Put decal on "world" (a wall)
  1112. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  1113. write_byte(TE_WORLDDECAL)
  1114. write_coord(floatround(Origin[0]))
  1115. write_coord(floatround(Origin[1]))
  1116. write_coord(floatround(Origin[2]))
  1117. write_byte(decal)
  1118. message_end()
  1119. }
  1120.  
  1121. // Show sparcles
  1122. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  1123. write_byte(TE_GUNSHOTDECAL)
  1124. write_coord(floatround(Origin[0]))
  1125. write_coord(floatround(Origin[1]))
  1126. write_coord(floatround(Origin[2]))
  1127. write_short(id)
  1128. write_byte(decal)
  1129. message_end()
  1130. }
  1131. }
  1132.  
  1133. stock drop_weapons(id, dropwhat)
  1134. {
  1135. static weapons[32], num, i, weaponid
  1136. num = 0
  1137. get_user_weapons(id, weapons, num)
  1138.  
  1139. for (i = 0; i < num; i++)
  1140. {
  1141. weaponid = weapons[i]
  1142.  
  1143. if (dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM))
  1144. {
  1145. static wname[32]
  1146. get_weaponname(weaponid, wname, sizeof wname - 1)
  1147. engclient_cmd(id, "drop", wname)
  1148. }
  1149. }
  1150. }
  1151.  
  1152. stock ham_strip_weapon(id, weapon[])
  1153. {
  1154. if(!equal(weapon,"weapon_",7))
  1155. return 0
  1156.  
  1157. new wId = get_weaponid(weapon);
  1158. if(!wId)
  1159. return 0;
  1160.  
  1161. new wEnt;
  1162. while((wEnt = engfunc(EngFunc_FindEntityByString,wEnt,"classname",weapon)) && pev(wEnt,pev_owner) != id) {}
  1163. if(!wEnt)
  1164. return 0;
  1165.  
  1166. if(get_user_weapon(id) == wId) ExecuteHamB(Ham_Weapon_RetireWeapon,wEnt);
  1167.  
  1168. if(!ExecuteHamB(Ham_RemovePlayerItem,id,wEnt))
  1169. return 0;
  1170. ExecuteHamB(Ham_Item_Kill,wEnt);
  1171.  
  1172. set_pev(id,pev_weapons,pev(id,pev_weapons) & ~(1<<wId));
  1173.  
  1174. return 1
  1175. }
  1176.  
  1177. stock reset_player_maxspeed(id)
  1178. {
  1179. if(!is_user_alive(id))
  1180. return
  1181.  
  1182. set_user_maxspeed(id, g_oldspeed[id])
  1183. }
  1184.  

Szerző:  Bence98007 [2012.11.13. 20:54 ]
Hozzászólás témája:  Re: Runtime error

debug maybe?

Oldal: 1 / 1 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/