hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2025.06.17. 01:37



Jelenlévő felhasználók

Jelenleg 343 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 342 vendég

A legtöbb felhasználó (2761 fő) 2025.01.09. 20:06-kor tartózkodott itt.

Regisztrált felhasználók: Bing [Bot]az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása Hozzászólás a témához  [7 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: CSO infinity
HozzászólásElküldve:2012.09.12. 16:13 
Offline
Őskövület
Avatar

Csatlakozott:2011.09.26. 20:33
Hozzászólások:2105
Megköszönt másnak: 28 alkalommal
Megköszönték neki: 33 alkalommal
cső
valaki linkelne egy zp-s cso infinityt-t huddal? köszi


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: CSO infinity
HozzászólásElküldve:2012.09.12. 17:33 
Offline
Őskövület
Avatar

Csatlakozott:2011.09.17. 17:54
Hozzászólások:2350
Megköszönt másnak: 40 alkalommal
Megköszönték neki: 57 alkalommal
Milyen huddal?


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: CSO infinity
HozzászólásElküldve:2012.09.12. 17:38 
Offline
Őskövület
Avatar

Csatlakozott:2011.09.26. 20:33
Hozzászólások:2105
Megköszönt másnak: 28 alkalommal
Megköszönték neki: 33 alkalommal
this:
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: CSO infinity
HozzászólásElküldve:2012.09.12. 17:39 
Offline
Őskövület
Avatar

Csatlakozott:2011.09.17. 17:54
Hozzászólások:2350
Megköszönt másnak: 40 alkalommal
Megköszönték neki: 57 alkalommal
Dual vagy sima? Am szerintem nincsen neten,de ha adsz sma-t + spritetot majd megcsinálom.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: CSO infinity
HozzászólásElküldve:2012.09.12. 17:47 
Offline
Őskövület
Avatar

Csatlakozott:2011.09.26. 20:33
Hozzászólások:2105
Megköszönt másnak: 28 alkalommal
Megköszönték neki: 33 alkalommal
SMA Forráskód: [ Mindet kijelol ]
  1.  
  2. #include <amxmodx>
  3. #include <engine>
  4. #include <fakemeta>
  5. #include <fun>
  6. #include <hamsandwich>
  7. #include <xs>
  8. #include <cstrike>
  9. #include <zombieplague>
  10.  
  11. enum
  12. {
  13. anim_idle,
  14. anim_shoot1,
  15. anim_shoot2,
  16. anim_shoot_empty,
  17. anim_reload,
  18. anim_draw
  19. }
  20.  
  21. #define ENG_NULLENT -1
  22. #define EV_INT_WEAPONKEY EV_INT_impulse
  23. #define infinityr_WEAPONKEY 1231
  24. #define MAX_PLAYERS 32
  25. #define IsValidUser(%1) (1 <= %1 <= g_MaxPlayers)
  26.  
  27. const USE_STOPPED = 0
  28. const OFFSET_ACTIVE_ITEM = 373
  29. const OFFSET_WEAPONOWNER = 41
  30. const OFFSET_LINUX = 5
  31. const OFFSET_LINUX_WEAPONS = 4
  32.  
  33. #define WEAP_LINUX_XTRA_OFF 4
  34. #define m_fKnown 44
  35. #define m_flNextPrimaryAttack 46
  36. #define m_flTimeWeaponIdle 48
  37. #define m_iClip 51
  38. #define m_fInReload 54
  39. #define PLAYER_LINUX_XTRA_OFF 5
  40. #define m_flNextAttack 83
  41.  
  42. #define infinityr_RELOAD_TIME 2.8
  43. const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_ELITE)|(1<<CSW_P228)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE)|(1<<CSW_FIVESEVEN)
  44. new const WEAPONENTNAMES[][] = { "", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10",
  45. "weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550",
  46. "weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249",
  47. "weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552",
  48. "weapon_ak47", "weapon_knife", "weapon_p90" }
  49. new const Fire_Sounds[][] = { "weapons/infinitysr_shoot1.wav" }
  50. new const GUNSHOT_DECALS[] = { 41, 42, 43, 44, 45 }
  51.  
  52. new infinityr_V_MODEL[64] = "models/cso_wpn/v_infinitysr.mdl"
  53. new infinityr_P_MODEL[64] = "models/cso_wpn/p_infinitysr.mdl"
  54. new infinityr_W_MODEL[64] = "models/cso_wpn/w_infinitysr.mdl"
  55. new g_attack1[33]
  56. new cvar_dmg_infinityr, cvar_recoil_infinityr, g_itemid_infinityr, cvar_clip_infinityr, cvar_infinityr_ammo, cvar_spd_infinityr
  57. new g_has_infinityr[33]
  58. new g_MaxPlayers, g_orig_event_infinityr, g_clip_ammo[33]
  59. new Float:cl_pushangle[MAX_PLAYERS + 1][3], m_iBlood[2]
  60. new g_infinityr_TmpClip[33]
  61. new g_canshoot[33]
  62.  
  63. public plugin_init()
  64. {
  65. register_plugin("[ZP] Weapon: infinityr", "1.0", "Crock / =)")
  66. register_message(get_user_msgid("DeathMsg"), "message_DeathMsg")
  67. register_event("CurWeapon","CurrentWeapon","be","1=1")
  68. RegisterHam(Ham_Item_AddToPlayer, "weapon_deagle", "fw_infinityr_AddToPlayer")
  69. RegisterHam(Ham_Use, "func_tank", "fw_UseStationary_Post", 1)
  70. RegisterHam(Ham_Use, "func_tankmortar", "fw_UseStationary_Post", 1)
  71. RegisterHam(Ham_Use, "func_tankrocket", "fw_UseStationary_Post", 1)
  72. RegisterHam(Ham_Use, "func_tanklaser", "fw_UseStationary_Post", 1)
  73. for (new i = 1; i < sizeof WEAPONENTNAMES; i++)
  74. if (WEAPONENTNAMES[i][0]) RegisterHam(Ham_Item_Deploy, WEAPONENTNAMES[i], "fw_Item_Deploy_Post", 1)
  75. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_deagle", "fw_infinityr_PrimaryAttack")
  76. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_deagle", "fw_infinityr_PrimaryAttack_Post", 1)
  77. RegisterHam(Ham_Item_PostFrame, "weapon_deagle", "infinityr__ItemPostFrame");
  78. RegisterHam(Ham_Weapon_Reload, "weapon_deagle", "infinityr__Reload");
  79. RegisterHam(Ham_Weapon_Reload, "weapon_deagle", "infinityr__Reload_Post", 1);
  80. RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
  81. register_forward(FM_CmdStart, "fw_CmdStart")
  82. register_forward(FM_SetModel, "fw_SetModel")
  83. register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1)
  84. register_forward(FM_PlaybackEvent, "fwPlaybackEvent")
  85.  
  86. cvar_dmg_infinityr = register_cvar("infinityred_dmg", "1.5")
  87. cvar_recoil_infinityr = register_cvar("infinityred_recoil", "0.8")
  88. cvar_clip_infinityr = register_cvar("infinityred_clipammo", "8")
  89. cvar_infinityr_ammo = register_cvar("infinityred_bpammo", "40")
  90. cvar_spd_infinityr = register_cvar("infinityred_spd", "0.0000001")
  91.  
  92. g_itemid_infinityr = zp_register_extra_item("\r[Pistol] \wInfinity", 8, ZP_TEAM_HUMAN)
  93. g_MaxPlayers = get_maxplayers()
  94. }
  95.  
  96. public plugin_precache()
  97. {
  98. precache_model(infinityr_V_MODEL)
  99. precache_model(infinityr_P_MODEL)
  100. precache_model(infinityr_W_MODEL)
  101. precache_sound("weapons/infis_clipin.wav")
  102. precache_sound("weapons/infis_clipout.wav")
  103. precache_sound("weapons/infis_draw.wav")
  104. precache_sound("weapons/infis_foley1.wav")
  105. precache_sound("weapons/infis_foley2.wav")
  106. for(new i = 0; i < sizeof Fire_Sounds; i++)
  107. precache_sound(Fire_Sounds[i])
  108. m_iBlood[0] = precache_model("sprites/blood.spr")
  109. m_iBlood[1] = precache_model("sprites/bloodspray.spr")
  110. precache_model("sprites/640hud5.spr")
  111. register_forward(FM_PrecacheEvent, "fwPrecacheEvent_Post", 1)
  112. }
  113.  
  114. public fwPrecacheEvent_Post(type, const name[])
  115. {
  116. if (equal("events/deagle.sc", name))
  117. {
  118. g_orig_event_infinityr = get_orig_retval()
  119. return FMRES_HANDLED
  120. }
  121.  
  122. return FMRES_IGNORED
  123. }
  124.  
  125. public client_connect(id)
  126. {
  127. g_has_infinityr[id] = false
  128. }
  129.  
  130. public fw_CmdStart(id, uc_handle, seed)
  131. {
  132. if(!is_user_alive(id))
  133. return PLUGIN_HANDLED
  134.  
  135. new Float:flNextAttack = get_pdata_float(id, m_flNextAttack, PLAYER_LINUX_XTRA_OFF)
  136.  
  137. if((get_uc(uc_handle, UC_Buttons) & IN_ATTACK) && (pev(id, pev_oldbuttons) & IN_ATTACK))
  138. {
  139. g_canshoot[id] = 1
  140. }else if((get_uc(uc_handle, UC_Buttons) & IN_ATTACK) && !(pev(id, pev_oldbuttons) & IN_ATTACK) && flNextAttack <= 0.0){
  141. g_canshoot[id] = 0
  142. }else{
  143. g_canshoot[id] = 1
  144. }
  145.  
  146. if(get_uc(uc_handle, UC_Buttons) & IN_ATTACK)
  147. {
  148. g_attack1[id] = 1
  149. }else{
  150. g_attack1[id] = 0
  151. }
  152.  
  153. return PLUGIN_HANDLED
  154. }
  155.  
  156. public client_disconnect(id)
  157. {
  158. g_has_infinityr[id] = false
  159. }
  160.  
  161. public zp_user_infected_post(id)
  162. {
  163. if (zp_get_user_zombie(id))
  164. {
  165. g_has_infinityr[id] = false
  166. }
  167. }
  168.  
  169. public fw_SetModel(entity, model[])
  170. {
  171. if(!is_valid_ent(entity))
  172. return FMRES_IGNORED;
  173.  
  174. static szClassName[33]
  175. entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
  176.  
  177. if(!equal(szClassName, "weaponbox"))
  178. return FMRES_IGNORED;
  179.  
  180. static iOwner
  181.  
  182. iOwner = entity_get_edict(entity, EV_ENT_owner)
  183.  
  184. if(equal(model, "models/w_deagle.mdl"))
  185. {
  186. static iStoredSVDID
  187.  
  188. iStoredSVDID = find_ent_by_owner(ENG_NULLENT, "weapon_deagle", entity)
  189.  
  190. if(!is_valid_ent(iStoredSVDID))
  191. return FMRES_IGNORED;
  192.  
  193. if(g_has_infinityr[iOwner])
  194. {
  195. entity_set_int(iStoredSVDID, EV_INT_WEAPONKEY, infinityr_WEAPONKEY)
  196. g_has_infinityr[iOwner] = false
  197.  
  198. entity_set_model(entity, infinityr_W_MODEL)
  199.  
  200. return FMRES_SUPERCEDE;
  201. }
  202. }
  203.  
  204.  
  205. return FMRES_IGNORED;
  206. }
  207.  
  208. public zp_extra_item_selected(id, itemid)
  209. {
  210. if(itemid == g_itemid_infinityr)
  211. {
  212. drop_weapons(id, 1);
  213. new iWep2 = give_item(id,"weapon_deagle")
  214. if( iWep2 > 0 )
  215. {
  216. cs_set_weapon_ammo(iWep2, get_pcvar_num(cvar_clip_infinityr))
  217. cs_set_user_bpammo (id, CSW_DEAGLE, get_pcvar_num(cvar_infinityr_ammo))
  218. }
  219. g_has_infinityr[id] = true;
  220. }
  221. }
  222.  
  223. public fw_infinityr_AddToPlayer(infinityr, id)
  224. {
  225. if(!is_valid_ent(infinityr) || !is_user_connected(id))
  226. return HAM_IGNORED;
  227.  
  228. if(entity_get_int(infinityr, EV_INT_WEAPONKEY) == infinityr_WEAPONKEY)
  229. {
  230. g_has_infinityr[id] = true
  231.  
  232. entity_set_int(infinityr, EV_INT_WEAPONKEY, 0)
  233.  
  234. return HAM_HANDLED;
  235. }
  236.  
  237. return HAM_IGNORED;
  238. }
  239.  
  240. public fw_UseStationary_Post(entity, caller, activator, use_type)
  241. {
  242. if (use_type == USE_STOPPED && is_user_connected(caller))
  243. replace_weapon_models(caller, get_user_weapon(caller))
  244. }
  245.  
  246. public fw_Item_Deploy_Post(weapon_ent)
  247. {
  248. static owner
  249. owner = fm_cs_get_weapon_ent_owner(weapon_ent)
  250.  
  251. static weaponid
  252. weaponid = cs_get_weapon_id(weapon_ent)
  253.  
  254. replace_weapon_models(owner, weaponid)
  255. }
  256.  
  257. public CurrentWeapon(id)
  258. {
  259. static iWeapon; iWeapon = read_data(2)
  260.  
  261. replace_weapon_models(id, read_data(2))
  262.  
  263. static weapon[32], iEnt
  264. get_weaponname(iWeapon, weapon, 31)
  265. iEnt = find_ent_by_owner(-1, weapon, id)
  266. if(iEnt)
  267. {
  268. static Float:Delay, Float:M_Delay
  269. static Float:iSpeed
  270. iSpeed = 0.0
  271. if(iWeapon == CSW_DEAGLE && g_has_infinityr[id])
  272. iSpeed = get_pcvar_float(cvar_spd_infinityr)
  273.  
  274. Delay = get_pdata_float(iEnt, 46, 4) * iSpeed
  275. M_Delay = get_pdata_float(iEnt, 47, 4) * iSpeed
  276. if (Delay > 0.0)
  277. {
  278. set_pdata_float(iEnt, 46, Delay, 4)
  279. set_pdata_float(iEnt, 47, M_Delay, 4)
  280. }
  281. }
  282.  
  283. }
  284.  
  285. replace_weapon_models(id, weaponid)
  286. {
  287. switch (weaponid)
  288. {
  289. case CSW_DEAGLE:
  290. {
  291. if (zp_get_user_zombie(id) || zp_get_user_survivor(id))
  292. return;
  293.  
  294. if(g_has_infinityr[id])
  295. {
  296. set_pev(id, pev_viewmodel2, infinityr_V_MODEL)
  297. set_pev(id, pev_weaponmodel2, infinityr_P_MODEL)
  298. }
  299. }
  300. }
  301. }
  302.  
  303. public fw_UpdateClientData_Post(Player, SendWeapons, CD_Handle)
  304. {
  305. if(!is_user_alive(Player) || (get_user_weapon(Player) != CSW_DEAGLE) || !g_has_infinityr[Player])
  306. return FMRES_IGNORED
  307.  
  308. set_cd(CD_Handle, CD_flNextAttack, halflife_time () + 0.001)
  309. return FMRES_HANDLED
  310. }
  311.  
  312. public fw_infinityr_PrimaryAttack(Weapon)
  313. {
  314. new Player = get_pdata_cbase(Weapon, 41, 4)
  315.  
  316. if (!g_has_infinityr[Player])
  317. return;
  318.  
  319. pev(Player,pev_punchangle,cl_pushangle[Player])
  320.  
  321. g_clip_ammo[Player] = cs_get_weapon_ammo(Weapon)
  322. }
  323.  
  324. public fwPlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2)
  325. {
  326. if ((eventid != g_orig_event_infinityr))
  327. return FMRES_IGNORED
  328. if (!(1 <= invoker <= g_MaxPlayers))
  329. return FMRES_IGNORED
  330.  
  331. playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2)
  332. return FMRES_SUPERCEDE
  333. }
  334.  
  335. public fw_infinityr_PrimaryAttack_Post(Weapon)
  336. {
  337. new Player = get_pdata_cbase(Weapon, 41, 4)
  338.  
  339. if(g_has_infinityr[Player] && g_canshoot[Player] == 0)
  340. {
  341. if (!g_clip_ammo[Player])
  342. return
  343.  
  344. new Float:push[3]
  345. pev(Player,pev_punchangle,push)
  346. xs_vec_sub(push,cl_pushangle[Player],push)
  347.  
  348. xs_vec_mul_scalar(push,get_pcvar_float(cvar_recoil_infinityr),push)
  349. xs_vec_add(push,cl_pushangle[Player],push)
  350. set_pev(Player,pev_punchangle,push)
  351.  
  352. emit_sound(Player, CHAN_WEAPON, Fire_Sounds[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  353. UTIL_PlayWeaponAnimation(Player, anim_shoot1)
  354.  
  355. make_blood_and_bulletholes(Player)
  356. set_pdata_float(Player, m_flNextAttack,0.001, PLAYER_LINUX_XTRA_OFF)
  357.  
  358. }
  359.  
  360. }
  361.  
  362. public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
  363. {
  364. if (victim != attacker && is_user_connected(attacker))
  365. {
  366. if(get_user_weapon(attacker) == CSW_DEAGLE)
  367. {
  368. if(g_has_infinityr[attacker])
  369. SetHamParamFloat(4, damage * get_pcvar_float(cvar_dmg_infinityr))
  370. }
  371. }
  372. }
  373.  
  374. public message_DeathMsg(msg_id, msg_dest, id)
  375. {
  376. static szTruncatedWeapon[33], iAttacker, iVictim
  377.  
  378. get_msg_arg_string(4, szTruncatedWeapon, charsmax(szTruncatedWeapon))
  379.  
  380. iAttacker = get_msg_arg_int(1)
  381. iVictim = get_msg_arg_int(2)
  382.  
  383. if(!is_user_connected(iAttacker) || iAttacker == iVictim)
  384. return PLUGIN_CONTINUE
  385.  
  386. if(equal(szTruncatedWeapon, "deagle") && get_user_weapon(iAttacker) == CSW_DEAGLE)
  387. {
  388. if(g_has_infinityr[iAttacker])
  389. set_msg_arg_string(4, "deagle")
  390. }
  391.  
  392. return PLUGIN_CONTINUE
  393. }
  394.  
  395. stock fm_cs_get_current_weapon_ent(id)
  396. {
  397. return get_pdata_cbase(id, OFFSET_ACTIVE_ITEM, OFFSET_LINUX);
  398. }
  399.  
  400. stock fm_cs_get_weapon_ent_owner(ent)
  401. {
  402. return get_pdata_cbase(ent, OFFSET_WEAPONOWNER, OFFSET_LINUX_WEAPONS);
  403. }
  404.  
  405. stock UTIL_PlayWeaponAnimation(const Player, const Sequence)
  406. {
  407. set_pev(Player, pev_weaponanim, Sequence)
  408.  
  409. message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player)
  410. write_byte(Sequence)
  411. write_byte(pev(Player, pev_body))
  412. message_end()
  413. }
  414.  
  415. stock make_blood_and_bulletholes(id)
  416. {
  417. new aimOrigin[3], target, body
  418. get_user_origin(id, aimOrigin, 3)
  419. get_user_aiming(id, target, body)
  420.  
  421. if(target > 0 && target <= g_MaxPlayers && zp_get_user_zombie(target))
  422. {
  423. new Float:fStart[3], Float:fEnd[3], Float:fRes[3], Float:fVel[3]
  424. pev(id, pev_origin, fStart)
  425.  
  426. velocity_by_aim(id, 64, fVel)
  427.  
  428. fStart[0] = float(aimOrigin[0])
  429. fStart[1] = float(aimOrigin[1])
  430. fStart[2] = float(aimOrigin[2])
  431. fEnd[0] = fStart[0]+fVel[0]
  432. fEnd[1] = fStart[1]+fVel[1]
  433. fEnd[2] = fStart[2]+fVel[2]
  434.  
  435. new res
  436. engfunc(EngFunc_TraceLine, fStart, fEnd, 0, target, res)
  437. get_tr2(res, TR_vecEndPos, fRes)
  438.  
  439. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  440. write_byte(TE_BLOODSPRITE)
  441. write_coord(floatround(fStart[0]))
  442. write_coord(floatround(fStart[1]))
  443. write_coord(floatround(fStart[2]))
  444. write_short( m_iBlood [ 1 ])
  445. write_short( m_iBlood [ 0 ] )
  446. write_byte(70)
  447. write_byte(random_num(1,2))
  448. message_end()
  449.  
  450.  
  451. }
  452. else if(!is_user_connected(target))
  453. {
  454. if(target)
  455. {
  456. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  457. write_byte(TE_DECAL)
  458. write_coord(aimOrigin[0])
  459. write_coord(aimOrigin[1])
  460. write_coord(aimOrigin[2])
  461. write_byte(GUNSHOT_DECALS[random_num ( 0, sizeof GUNSHOT_DECALS -1 ) ] )
  462. write_short(target)
  463. message_end()
  464. }
  465. else
  466. {
  467. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  468. write_byte(TE_WORLDDECAL)
  469. write_coord(aimOrigin[0])
  470. write_coord(aimOrigin[1])
  471. write_coord(aimOrigin[2])
  472. write_byte(GUNSHOT_DECALS[random_num ( 0, sizeof GUNSHOT_DECALS -1 ) ] )
  473. message_end()
  474. }
  475.  
  476. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  477. write_byte(TE_GUNSHOTDECAL)
  478. write_coord(aimOrigin[0])
  479. write_coord(aimOrigin[1])
  480. write_coord(aimOrigin[2])
  481. write_short(id)
  482. write_byte(GUNSHOT_DECALS[random_num ( 0, sizeof GUNSHOT_DECALS -1 ) ] )
  483. message_end()
  484. }
  485. }
  486.  
  487. public infinityr__ItemPostFrame(weapon_entity) {
  488. new id = pev(weapon_entity, pev_owner)
  489. if (!is_user_connected(id))
  490. return HAM_IGNORED;
  491.  
  492. if (!g_has_infinityr[id])
  493. return HAM_IGNORED;
  494.  
  495. new Float:flNextAttack = get_pdata_float(id, m_flNextAttack, PLAYER_LINUX_XTRA_OFF)
  496.  
  497. new iBpAmmo = cs_get_user_bpammo(id, CSW_DEAGLE);
  498. new iClip = get_pdata_int(weapon_entity, m_iClip, WEAP_LINUX_XTRA_OFF)
  499.  
  500. new fInReload = get_pdata_int(weapon_entity, m_fInReload, WEAP_LINUX_XTRA_OFF)
  501.  
  502. if( fInReload && flNextAttack <= 0.0 )
  503. {
  504. new Player = id
  505. new j = min(get_pcvar_num(cvar_clip_infinityr) - iClip, iBpAmmo)
  506.  
  507. set_pdata_int(weapon_entity, m_iClip, iClip + j, WEAP_LINUX_XTRA_OFF)
  508. cs_set_user_bpammo(id, CSW_DEAGLE, iBpAmmo-j);
  509.  
  510. if(g_attack1[id] == 1)
  511. {
  512. new Float:push[3]
  513. pev(Player,pev_punchangle,push)
  514. xs_vec_sub(push,cl_pushangle[Player],push)
  515.  
  516. xs_vec_mul_scalar(push,get_pcvar_float(cvar_recoil_infinityr),push)
  517. xs_vec_add(push,cl_pushangle[Player],push)
  518. set_pev(Player,pev_punchangle,push)
  519.  
  520. emit_sound(Player, CHAN_WEAPON, Fire_Sounds[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  521. UTIL_PlayWeaponAnimation(Player, anim_shoot1)
  522.  
  523. make_blood_and_bulletholes(Player)
  524. set_pdata_float(Player, m_flNextAttack,0.2, PLAYER_LINUX_XTRA_OFF)
  525. }
  526.  
  527. set_pdata_int(weapon_entity, m_fInReload, 0, WEAP_LINUX_XTRA_OFF)
  528. fInReload = 0
  529. }
  530.  
  531. return HAM_IGNORED;
  532. }
  533.  
  534. public infinityr__Reload(weapon_entity) {
  535. new id = pev(weapon_entity, pev_owner)
  536. if (!is_user_connected(id))
  537. return HAM_IGNORED;
  538.  
  539. if (!g_has_infinityr[id])
  540. return HAM_IGNORED;
  541.  
  542. g_infinityr_TmpClip[id] = -1;
  543.  
  544. new iBpAmmo = cs_get_user_bpammo(id, CSW_DEAGLE);
  545. new iClip = get_pdata_int(weapon_entity, m_iClip, WEAP_LINUX_XTRA_OFF)
  546.  
  547. if (iBpAmmo <= 0)
  548. return HAM_SUPERCEDE;
  549.  
  550. if (iClip >= get_pcvar_num(cvar_clip_infinityr))
  551. return HAM_SUPERCEDE;
  552.  
  553.  
  554. g_infinityr_TmpClip[id] = iClip;
  555.  
  556. return HAM_IGNORED;
  557. }
  558.  
  559. public infinityr__Reload_Post(weapon_entity) {
  560. new id = pev(weapon_entity, pev_owner)
  561. if (!is_user_connected(id))
  562. return HAM_IGNORED;
  563.  
  564. if (!g_has_infinityr[id])
  565. return HAM_IGNORED;
  566.  
  567. if (g_infinityr_TmpClip[id] == -1)
  568. return HAM_IGNORED;
  569.  
  570. set_pdata_int(weapon_entity, m_iClip, g_infinityr_TmpClip[id], WEAP_LINUX_XTRA_OFF)
  571.  
  572. set_pdata_float(weapon_entity, m_flTimeWeaponIdle, infinityr_RELOAD_TIME, WEAP_LINUX_XTRA_OFF)
  573.  
  574. set_pdata_float(id, m_flNextAttack, infinityr_RELOAD_TIME, PLAYER_LINUX_XTRA_OFF)
  575.  
  576. set_pdata_int(weapon_entity, m_fInReload, 1, WEAP_LINUX_XTRA_OFF)
  577.  
  578. // relaod animation
  579. UTIL_PlayWeaponAnimation(id, 4)
  580.  
  581. return HAM_IGNORED;
  582. }
  583.  
  584. stock drop_weapons(id, dropwhat)
  585. {
  586. static weapons[32], num, i, weaponid
  587. num = 0
  588. get_user_weapons(id, weapons, num)
  589.  
  590. for (i = 0; i < num; i++)
  591. {
  592. weaponid = weapons[i]
  593.  
  594. if (dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM))
  595. {
  596. static wname[32]
  597. get_weaponname(weaponid, wname, sizeof wname - 1)
  598. engclient_cmd(id, "drop", wname)
  599. }
  600. }
  601. }
  602.  


Csatolmányok:
spr.rar [28.31KiB]
Letöltve 49 alkalommal.
Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: CSO infinity
HozzászólásElküldve:2012.09.12. 18:16 
Offline
Őskövület
Avatar

Csatlakozott:2011.09.17. 17:54
Hozzászólások:2350
Megköszönt másnak: 40 alkalommal
Megköszönték neki: 57 alkalommal
Try:
A spr meg a txt a sprites mappán belülre.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: CSO infinity
HozzászólásElküldve:2012.09.12. 18:18 
Offline
Őskövület
Avatar

Csatlakozott:2011.09.26. 20:33
Hozzászólások:2105
Megköszönt másnak: 28 alkalommal
Megköszönték neki: 33 alkalommal
ha van időm tesztelem!


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése: Rendezés 
Új téma nyitása Hozzászólás a témához  [7 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 33 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole