hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.04.25. 10:23



Jelenlévő felhasználók

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

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: Majestic-12 [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  [ 3 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: fegyver adatok(lövés töltés..)
HozzászólásElküldve: 2012.10.12. 17:15 
Offline
Félisten

Csatlakozott: 2012.01.07. 21:10
Hozzászólások: 850
Megköszönt másnak: 9 alkalommal
Megköszönték neki: 154 alkalommal
Huhh de régen nyitottam már témát :) Na de most elakadtam.
3 dologra lenne szükségem:
Hogy lehet megváltoztatni a fegyver:
Lövési sebességét, Újratöltési idejét, és előhúzási idejét?
Mindhárom kellene.


Ui.:Néztem zmes fegyókat, de a legtöbben nem volt ilyen.

_________________
Megköszönni nem szégyen!
Csak kattints a Kép jelre. --->


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: fegyver adatok(lövés töltés..)
HozzászólásElküldve: 2012.10.12. 17:26 
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
HunGamer írta:
Huhh de régen nyitottam már témát :) Na de most elakadtam.
3 dologra lenne szükségem:
Hogy lehet megváltoztatni a fegyver:
Lövési sebességét, Újratöltési idejét, és előhúzási idejét?
Mindhárom kellene.


Ui.:Néztem zmes fegyókat, de a legtöbben nem volt ilyen.


példa sma egy komolyabb zp-s fegyóból :) , remélem kitudod nézni a megfelelő kód sorokat

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. #define ENG_NULLENT -1
  12. #define EV_INT_WEAPONKEY EV_INT_impulse
  13. #define ak47long_WEAPONKEY 834
  14. #define MAX_PLAYERS 32
  15. #define IsValidUser(%1) (1 <= %1 <= g_MaxPlayers)
  16.  
  17. const USE_STOPPED = 0
  18. const OFFSET_ACTIVE_ITEM = 373
  19. const OFFSET_WEAPONOWNER = 41
  20. const OFFSET_LINUX = 5
  21. const OFFSET_LINUX_WEAPONS = 4
  22.  
  23. #define WEAP_LINUX_XTRA_OFF 4
  24. #define m_fKnown 44
  25. #define m_flNextPrimaryAttack 46
  26. #define m_flTimeWeaponIdle 48
  27. #define m_iClip 51
  28. #define m_fInReload 54
  29. #define PLAYER_LINUX_XTRA_OFF 5
  30. #define m_flNextAttack 83
  31.  
  32. #define ak47long_RELOAD_TIME 3.3 // ITT VAN A RELOAD TIME
  33. #define ak47long_RELOAD 1
  34. #define ak47long_DRAW 2
  35. #define ak47long_SHOOT1 3
  36. #define ak47long_SHOOT2 4
  37.  
  38. #define write_coord_f(%1) engfunc(EngFunc_WriteCoord,%1)
  39.  
  40. new const Fire_Sounds[][] = { "weapons/ak_long-1.wav" }
  41.  
  42. new ak47long_V_MODEL[64] = "models/DoNoR/v_ak47long.mdl"
  43. new ak47long_P_MODEL[64] = "models/DoNoR/p_ak47long.mdl"
  44. new ak47long_W_MODEL[64] = "models/DoNoR/w_ak47long.mdl"
  45.  
  46. new const GUNSHOT_DECALS[] = { 41, 42, 43, 44, 45 }
  47.  
  48. new cvar_dmg_ak47long, cvar_recoil_ak47long, g_itemid_ak47long, cvar_clip_ak47long, cvar_spd_ak47long, cvar_ak47long_ammo
  49. new g_MaxPlayers, g_orig_event_ak47long, g_IsInPrimaryAttack
  50. new Float:cl_pushangle[MAX_PLAYERS + 1][3], m_iBlood[2]
  51. new g_has_ak47long[33], g_clip_ammo[33], g_ak47long_TmpClip[33], oldweap[33]
  52. new gmsgWeaponList
  53.  
  54. const PRIMARY_WEAPONS_BIT_SUM =
  55. (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<
  56. 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)
  57. new const WEAPONENTNAMES[][] = { "", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10",
  58. "weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550",
  59. "weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249",
  60. "weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552",
  61. "weapon_ak47", "weapon_knife", "weapon_p90" }
  62.  
  63. public plugin_init()
  64. {
  65. register_plugin("[ZP] Extra: Leader ak47long", "1.0", "Crock / =) (Poprogun4ik) / LARS-DAY[BR]EAKER")
  66. register_message(get_user_msgid("DeathMsg"), "message_DeathMsg")
  67. register_event("CurWeapon","CurrentWeapon","be","1=1")
  68. RegisterHam(Ham_Item_AddToPlayer, "weapon_sg552", "fw_ak47long_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_sg552", "fw_ak47long_PrimaryAttack")
  76. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_sg552", "fw_ak47long_PrimaryAttack_Post", 1)
  77. RegisterHam(Ham_Item_PostFrame, "weapon_sg552", "ak47long_ItemPostFrame")
  78. RegisterHam(Ham_Weapon_Reload, "weapon_sg552", "ak47long_Reload")
  79. RegisterHam(Ham_Weapon_Reload, "weapon_sg552", "ak47long_Reload_Post", 1)
  80. RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
  81. register_forward(FM_SetModel, "fw_SetModel")
  82. register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1)
  83. register_forward(FM_PlaybackEvent, "fwPlaybackEvent")
  84.  
  85. RegisterHam(Ham_TraceAttack, "worldspawn", "fw_TraceAttack", 1)
  86. RegisterHam(Ham_TraceAttack, "func_breakable", "fw_TraceAttack", 1)
  87. RegisterHam(Ham_TraceAttack, "func_wall", "fw_TraceAttack", 1)
  88. RegisterHam(Ham_TraceAttack, "func_door", "fw_TraceAttack", 1)
  89. RegisterHam(Ham_TraceAttack, "func_door_rotating", "fw_TraceAttack", 1)
  90. RegisterHam(Ham_TraceAttack, "func_plat", "fw_TraceAttack", 1)
  91. RegisterHam(Ham_TraceAttack, "func_rotating", "fw_TraceAttack", 1)
  92.  
  93. cvar_dmg_ak47long = register_cvar("zp_ak47long_dmg", "0.96")
  94. cvar_recoil_ak47long = register_cvar("zp_ak47long_recoil", "1.3")
  95. cvar_clip_ak47long = register_cvar("zp_ak47long_clip", "60")
  96. cvar_spd_ak47long = register_cvar("zp_ak47long_spd", "0.7") [size=150:smte4dod]// ITT VAN A LÖVÉSI SEBESSÉG[/size]
  97. cvar_ak47long_ammo = register_cvar("zp_ak47long_ammo", "90")
  98.  
  99. register_clcmd("say /ak47long", "ak47long")
  100. g_MaxPlayers = get_maxplayers()
  101. gmsgWeaponList = get_user_msgid("WeaponList")
  102. }
  103.  
  104. public plugin_precache()
  105. {
  106. precache_model(ak47long_V_MODEL)
  107. precache_model(ak47long_P_MODEL)
  108. precache_model(ak47long_W_MODEL)
  109. for(new i = 0; i < sizeof Fire_Sounds; i++)
  110. precache_sound(Fire_Sounds[i])
  111. precache_sound("weapons/ak47long_draw.wav")
  112. precache_sound("weapons/ak47_draw.wav")
  113. precache_sound("weapons/ak47_clipin.wav")
  114. precache_sound("weapons/ak47_clipout.wav")
  115. m_iBlood[0] = precache_model("sprites/blood.spr")
  116. m_iBlood[1] = precache_model("sprites/bloodspray.spr")
  117. precache_generic("sprites/weapon_ak47l.txt")
  118. precache_generic("sprites/640hud32.spr")
  119. precache_generic("sprites/640hud7.spr")
  120.  
  121. register_clcmd("weapon_ak47long", "weapon_hook")
  122.  
  123. register_forward(FM_PrecacheEvent, "fwPrecacheEvent_Post", 1)
  124. }
  125.  
  126. public weapon_hook(id)
  127. {
  128. engclient_cmd(id, "weapon_sg552")
  129. return PLUGIN_HANDLED
  130. }
  131.  
  132. public fw_TraceAttack(iEnt, iAttacker, Float:flDamage, Float:fDir[3], ptr, iDamageType)
  133. {
  134. if(!is_user_alive(iAttacker))
  135. return
  136.  
  137. new g_currentweapon = get_user_weapon(iAttacker)
  138.  
  139. if(g_currentweapon != CSW_SG552) return
  140.  
  141. if(!g_has_ak47long[iAttacker]) return
  142.  
  143. static Float:flEnd[3]
  144. get_tr2(ptr, TR_vecEndPos, flEnd)
  145.  
  146. if(iEnt)
  147. {
  148. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  149. write_byte(TE_DECAL)
  150. write_coord_f(flEnd[0])
  151. write_coord_f(flEnd[1])
  152. write_coord_f(flEnd[2])
  153. write_byte(GUNSHOT_DECALS[random_num (0, sizeof GUNSHOT_DECALS -1)])
  154. write_short(iEnt)
  155. message_end()
  156. }
  157. else
  158. {
  159. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  160. write_byte(TE_WORLDDECAL)
  161. write_coord_f(flEnd[0])
  162. write_coord_f(flEnd[1])
  163. write_coord_f(flEnd[2])
  164. write_byte(GUNSHOT_DECALS[random_num (0, sizeof GUNSHOT_DECALS -1)])
  165. message_end()
  166. }
  167. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  168. write_byte(TE_GUNSHOTDECAL)
  169. write_coord_f(flEnd[0])
  170. write_coord_f(flEnd[1])
  171. write_coord_f(flEnd[2])
  172. write_short(iAttacker)
  173. write_byte(GUNSHOT_DECALS[random_num (0, sizeof GUNSHOT_DECALS -1)])
  174. message_end()
  175. }
  176.  
  177. public plugin_natives ()
  178. {
  179. register_native("give_weapon_ak47long", "native_give_weapon_add", 1)
  180. }
  181. public native_give_weapon_add(id)
  182. {
  183. give_ak47long(id)
  184. }
  185.  
  186. public fwPrecacheEvent_Post(type, const name[])
  187. {
  188. if (equal("events/sg552.sc", name))
  189. {
  190. g_orig_event_ak47long = get_orig_retval()
  191. return FMRES_HANDLED
  192. }
  193. return FMRES_IGNORED
  194. }
  195.  
  196. public client_connect(id)
  197. {
  198. g_has_ak47long[id] = false
  199. }
  200.  
  201. public client_disconnect(id)
  202. {
  203. g_has_ak47long[id] = false
  204. }
  205.  
  206. public fw_SetModel(entity, model[])
  207. {
  208. if(!is_valid_ent(entity))
  209. return FMRES_IGNORED
  210.  
  211. static szClassName[33]
  212. entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
  213.  
  214. if(!equal(szClassName, "weaponbox"))
  215. return FMRES_IGNORED
  216.  
  217. static iOwner
  218.  
  219. iOwner = entity_get_edict(entity, EV_ENT_owner)
  220.  
  221. if(equal(model, "models/w_sg552.mdl"))
  222. {
  223. static iStoredAugID
  224.  
  225. iStoredAugID = find_ent_by_owner(ENG_NULLENT, "weapon_sg552", entity)
  226.  
  227. if(!is_valid_ent(iStoredAugID))
  228. return FMRES_IGNORED
  229.  
  230. if(g_has_ak47long[iOwner])
  231. {
  232. entity_set_int(iStoredAugID, EV_INT_WEAPONKEY, ak47long_WEAPONKEY)
  233.  
  234. g_has_ak47long[iOwner] = false
  235.  
  236. entity_set_model(entity, ak47long_W_MODEL)
  237.  
  238. return FMRES_SUPERCEDE
  239. }
  240. }
  241. return FMRES_IGNORED
  242. }
  243.  
  244. public give_ak47long(id)
  245. {
  246. drop_weapons(id, 1)
  247. new iWep2 = give_item(id,"weapon_sg552")
  248. if( iWep2 > 0 )
  249. {
  250. cs_set_weapon_ammo(iWep2, get_pcvar_num(cvar_clip_ak47long))
  251. cs_set_user_bpammo (id, CSW_SG552, get_pcvar_num(cvar_ak47long_ammo))
  252. UTIL_PlayWeaponAnimation(id, ak47long_DRAW)
  253. set_pdata_float(id, m_flNextAttack, 1.0, PLAYER_LINUX_XTRA_OFF)
  254.  
  255. message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)
  256. write_string("weapon_ak47long")
  257. write_byte(4)
  258. write_byte(90)
  259. write_byte(-1)
  260. write_byte(-1)
  261. write_byte(0)
  262. write_byte(10)
  263. write_byte(CSW_SG552)
  264. message_end()
  265. }
  266. g_has_ak47long[id] = true
  267. }
  268.  
  269. public ak47long(id, itemid)
  270. {
  271. if(cs_get_user_money(id) >= 5000)
  272. if(itemid != g_itemid_ak47long)
  273. return
  274.  
  275. give_ak47long(id)
  276. cs_set_user_money(id, cs_get_user_money(id) - 5000);
  277. }
  278.  
  279. public fw_ak47long_AddToPlayer(ak47long, id)
  280. {
  281. if(!is_valid_ent(ak47long) || !is_user_connected(id))
  282. return HAM_IGNORED
  283.  
  284. if(entity_get_int(ak47long, EV_INT_WEAPONKEY) == ak47long_WEAPONKEY)
  285. {
  286. g_has_ak47long[id] = true
  287.  
  288. entity_set_int(ak47long, EV_INT_WEAPONKEY, 0)
  289.  
  290. message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)
  291. write_string("weapon_ak47long")
  292. write_byte(4)
  293. write_byte(90)
  294. write_byte(-1)
  295. write_byte(-1)
  296. write_byte(0)
  297. write_byte(10)
  298. write_byte(CSW_SG552)
  299. message_end()
  300.  
  301. return HAM_HANDLED
  302. }
  303. else
  304. {
  305. message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)
  306. write_string("weapon_sg552")
  307. write_byte(4)
  308. write_byte(90)
  309. write_byte(-1)
  310. write_byte(-1)
  311. write_byte(0)
  312. write_byte(10)
  313. write_byte(CSW_SG552)
  314. message_end()
  315. }
  316. return HAM_IGNORED
  317. }
  318.  
  319. public fw_UseStationary_Post(entity, caller, activator, use_type)
  320. {
  321. if (use_type == USE_STOPPED && is_user_connected(caller))
  322. replace_weapon_models(caller, get_user_weapon(caller))
  323. }
  324.  
  325. public fw_Item_Deploy_Post(weapon_ent)
  326. {
  327. static owner
  328. owner = fm_cs_get_weapon_ent_owner(weapon_ent)
  329.  
  330. static weaponid
  331. weaponid = cs_get_weapon_id(weapon_ent)
  332.  
  333. replace_weapon_models(owner, weaponid)
  334. }
  335.  
  336. public CurrentWeapon(id)
  337. {
  338. replace_weapon_models(id, read_data(2))
  339.  
  340. if(read_data(2) != CSW_SG552 || !g_has_ak47long[id])
  341. return
  342.  
  343. static Float:iSpeed
  344. if(g_has_ak47long[id])
  345. iSpeed = get_pcvar_float(cvar_spd_ak47long)
  346.  
  347. static weapon[32],Ent
  348. get_weaponname(read_data(2),weapon,31)
  349. Ent = find_ent_by_owner(-1,weapon,id)
  350. if(Ent)
  351. {
  352. static Float:Delay
  353. Delay = get_pdata_float( Ent, 46, 4) * iSpeed
  354. if (Delay > 0.0)
  355. {
  356. set_pdata_float(Ent, 46, Delay, 4)
  357. }
  358. }
  359. }
  360.  
  361. replace_weapon_models(id, weaponid)
  362. {
  363. switch (weaponid)
  364. {
  365. case CSW_SG552:
  366. {
  367. new CsTeams:userTeam = cs_get_user_team(id)
  368. if (userTeam == CS_TEAM_CT & CS_TEAM_T & CS_TEAM_SPECTATOR)
  369. return;
  370.  
  371. if(g_has_ak47long[id])
  372. {
  373. set_pev(id, pev_viewmodel2, ak47long_V_MODEL)
  374. set_pev(id, pev_weaponmodel2, ak47long_P_MODEL)
  375. if(oldweap[id] != CSW_SG552)
  376. {
  377. UTIL_PlayWeaponAnimation(id, ak47long_DRAW)
  378. set_pdata_float(id, m_flNextAttack, 1.0, PLAYER_LINUX_XTRA_OFF)
  379.  
  380. message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)
  381. write_string("weapon_ak47long")
  382. write_byte(4)
  383. write_byte(90)
  384. write_byte(-1)
  385. write_byte(-1)
  386. write_byte(0)
  387. write_byte(10)
  388. write_byte(CSW_SG552)
  389. message_end()
  390. }
  391. }
  392. }
  393. }
  394. oldweap[id] = weaponid
  395. }
  396.  
  397. public fw_UpdateClientData_Post(Player, SendWeapons, CD_Handle)
  398. {
  399. if(!is_user_alive(Player) || (get_user_weapon(Player) != CSW_SG552 || !g_has_ak47long[Player]))
  400. return FMRES_IGNORED
  401.  
  402. set_cd(CD_Handle, CD_flNextAttack, halflife_time () + 0.001)
  403. return FMRES_HANDLED
  404. }
  405.  
  406. public fw_ak47long_PrimaryAttack(Weapon)
  407. {
  408. new Player = get_pdata_cbase(Weapon, 41, 4)
  409.  
  410. if (!g_has_ak47long[Player])
  411. return
  412.  
  413. g_IsInPrimaryAttack = 1
  414. pev(Player,pev_punchangle,cl_pushangle[Player])
  415.  
  416. g_clip_ammo[Player] = cs_get_weapon_ammo(Weapon)
  417. }
  418.  
  419. public fwPlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2)
  420. {
  421. if ((eventid != g_orig_event_ak47long) || !g_IsInPrimaryAttack)
  422. return FMRES_IGNORED
  423. if (!(1 <= invoker <= g_MaxPlayers))
  424. return FMRES_IGNORED
  425.  
  426. playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2)
  427. return FMRES_SUPERCEDE
  428. }
  429.  
  430. public fw_ak47long_PrimaryAttack_Post(Weapon)
  431. {
  432. g_IsInPrimaryAttack = 0
  433. new Player = get_pdata_cbase(Weapon, 41, 4)
  434.  
  435. new szClip, szAmmo
  436. get_user_weapon(Player, szClip, szAmmo)
  437.  
  438. if(!is_user_alive(Player))
  439. return
  440.  
  441. if(g_has_ak47long[Player])
  442. {
  443. if (!g_clip_ammo[Player])
  444. return
  445.  
  446. new Float:push[3]
  447. pev(Player,pev_punchangle,push)
  448. xs_vec_sub(push,cl_pushangle[Player],push)
  449.  
  450. xs_vec_mul_scalar(push,get_pcvar_float(cvar_recoil_ak47long),push)
  451. xs_vec_add(push,cl_pushangle[Player],push)
  452. set_pev(Player,pev_punchangle,push)
  453.  
  454. emit_sound(Player, CHAN_WEAPON, Fire_Sounds[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  455. UTIL_PlayWeaponAnimation(Player, random_num(ak47long_SHOOT1, ak47long_SHOOT2))
  456. }
  457. }
  458.  
  459. public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
  460. {
  461. if (victim != attacker && is_user_connected(attacker))
  462. {
  463. if(get_user_weapon(attacker) == CSW_SG552)
  464. {
  465. if(g_has_ak47long[attacker])
  466. SetHamParamFloat(4, damage * get_pcvar_float(cvar_dmg_ak47long))
  467. }
  468. }
  469. }
  470.  
  471. public message_DeathMsg(msg_id, msg_dest, id)
  472. {
  473. static szTruncatedWeapon[33], iAttacker, iVictim
  474.  
  475. get_msg_arg_string(4, szTruncatedWeapon, charsmax(szTruncatedWeapon))
  476.  
  477. iAttacker = get_msg_arg_int(1)
  478. iVictim = get_msg_arg_int(2)
  479.  
  480. if(!is_user_connected(iAttacker) || iAttacker == iVictim)
  481. return PLUGIN_CONTINUE
  482.  
  483. if(equal(szTruncatedWeapon, "sg552") && get_user_weapon(iAttacker) == CSW_SG552)
  484. {
  485. if(g_has_ak47long[iAttacker])
  486. set_msg_arg_string(4, "sg552")
  487. }
  488. return PLUGIN_CONTINUE
  489. }
  490.  
  491. stock fm_cs_get_current_weapon_ent(id)
  492. {
  493. return get_pdata_cbase(id, OFFSET_ACTIVE_ITEM, OFFSET_LINUX)
  494. }
  495.  
  496. stock fm_cs_get_weapon_ent_owner(ent)
  497. {
  498. return get_pdata_cbase(ent, OFFSET_WEAPONOWNER, OFFSET_LINUX_WEAPONS)
  499. }
  500.  
  501. stock UTIL_PlayWeaponAnimation(const Player, const Sequence)
  502. {
  503. set_pev(Player, pev_weaponanim, Sequence)
  504.  
  505. message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player)
  506. write_byte(Sequence)
  507. write_byte(pev(Player, pev_body))
  508. message_end()
  509. }
  510.  
  511. public ak47long_ItemPostFrame(weapon_entity)
  512. {
  513. new id = pev(weapon_entity, pev_owner)
  514. if (!is_user_connected(id))
  515. return HAM_IGNORED
  516.  
  517. if (!g_has_ak47long[id])
  518. return HAM_IGNORED
  519.  
  520. static iClipExtra
  521.  
  522. iClipExtra = get_pcvar_num(cvar_clip_ak47long)
  523. new Float:flNextAttack = get_pdata_float(id, m_flNextAttack, PLAYER_LINUX_XTRA_OFF)
  524.  
  525. new iBpAmmo = cs_get_user_bpammo(id, CSW_SG552)
  526. new iClip = get_pdata_int(weapon_entity, m_iClip, WEAP_LINUX_XTRA_OFF)
  527.  
  528. new fInReload = get_pdata_int(weapon_entity, m_fInReload, WEAP_LINUX_XTRA_OFF)
  529.  
  530. if( fInReload && flNextAttack <= 0.0 )
  531. {
  532. new j = min(iClipExtra - iClip, iBpAmmo)
  533.  
  534. set_pdata_int(weapon_entity, m_iClip, iClip + j, WEAP_LINUX_XTRA_OFF)
  535. cs_set_user_bpammo(id, CSW_SG552, iBpAmmo-j)
  536.  
  537. set_pdata_int(weapon_entity, m_fInReload, 0, WEAP_LINUX_XTRA_OFF)
  538. fInReload = 0
  539. }
  540. return HAM_IGNORED
  541. }
  542.  
  543. public ak47long_Reload(weapon_entity)
  544. {
  545. new id = pev(weapon_entity, pev_owner)
  546. if (!is_user_connected(id))
  547. return HAM_IGNORED
  548.  
  549. if (!g_has_ak47long[id])
  550. return HAM_IGNORED
  551.  
  552. static iClipExtra
  553.  
  554. if(g_has_ak47long[id])
  555. iClipExtra = get_pcvar_num(cvar_clip_ak47long)
  556.  
  557. g_ak47long_TmpClip[id] = -1
  558.  
  559. new iBpAmmo = cs_get_user_bpammo(id, CSW_SG552)
  560. new iClip = get_pdata_int(weapon_entity, m_iClip, WEAP_LINUX_XTRA_OFF)
  561.  
  562. if (iBpAmmo <= 0)
  563. return HAM_SUPERCEDE
  564.  
  565. if (iClip >= iClipExtra)
  566. return HAM_SUPERCEDE
  567.  
  568. g_ak47long_TmpClip[id] = iClip
  569.  
  570. return HAM_IGNORED
  571. }
  572.  
  573. public ak47long_Reload_Post(weapon_entity)
  574. {
  575. new id = pev(weapon_entity, pev_owner)
  576. if (!is_user_connected(id))
  577. return HAM_IGNORED
  578.  
  579. if (!g_has_ak47long[id])
  580. return HAM_IGNORED
  581.  
  582. if (g_ak47long_TmpClip[id] == -1)
  583. return HAM_IGNORED
  584.  
  585. set_pdata_int(weapon_entity, m_iClip, g_ak47long_TmpClip[id], WEAP_LINUX_XTRA_OFF)
  586.  
  587. set_pdata_float(weapon_entity, m_flTimeWeaponIdle, ak47long_RELOAD_TIME, WEAP_LINUX_XTRA_OFF)
  588.  
  589. set_pdata_float(id, m_flNextAttack, ak47long_RELOAD_TIME, PLAYER_LINUX_XTRA_OFF)
  590.  
  591. set_pdata_int(weapon_entity, m_fInReload, 1, WEAP_LINUX_XTRA_OFF)
  592.  
  593. UTIL_PlayWeaponAnimation(id, ak47long_RELOAD)
  594.  
  595. return HAM_IGNORED
  596. }
  597.  
  598. stock drop_weapons(id, dropwhat)
  599. {
  600. static weapons[32], num, i, weaponid
  601. num = 0
  602. get_user_weapons(id, weapons, num)
  603.  
  604. for (i = 0; i < num; i++)
  605. {
  606. weaponid = weapons[i]
  607.  
  608. if (dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM))
  609. {
  610. static wname[32]
  611. get_weaponname(weaponid, wname, sizeof wname - 1)
  612. engclient_cmd(id, "drop", wname)
  613. }
  614. }
  615. }
  616.  

Ők köszönték meg rericsi8 nek ezt a hozzászólást: HunGamer (2012.10.12. 18:02)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: fegyver adatok(lövés töltés..)
HozzászólásElküldve: 2012.10.12. 19:11 
Offline
Félisten

Csatlakozott: 2012.01.07. 21:10
Hozzászólások: 850
Megköszönt másnak: 9 alkalommal
Megköszönték neki: 154 alkalommal
Köszönöm. A lövési/újra töltési időt megtaláltam benne, az előszedésre meg rájöttem.

_________________
Megköszönni nem szégyen!
Csak kattints a Kép jelre. --->


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  [ 3 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 21 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