hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.05.22. 15:54



Jelenlévő felhasználók

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

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

Regisztrált felhasználók: nincs regisztrált felhasználó 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  [ 5 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Skull 4 Dual tartás
HozzászólásElküldve: 2013.06.16. 14:16 
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 beleírná ebbe a zp-s fegyverbe hogy a player úgy tartsa mint a dual elitet?
Azaz gondolok itt a crouch_aim_dualpistols, crouch_shoot_dualpistols, crouch_shoot2_dualpistols, crouch_reload_dualpistols, ref_aim_dualpistols, ref_shoot_dualpistols, ref_shoot2_dualpistols és a ref_reload_dualpistols animációkra. Ja és aki megcsinálja nekem az létszíves mutassa meg hogy mit és hol változtatott/írt bele mert okulni szeretnék. Előre is köszi.

SMA:
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 skull4_WEAPONKEY 65451
  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 skull4_RELOAD_TIME 3.4
  33. #define skull4_RELOAD 1
  34. #define skull4_DRAW 2
  35. #define skull4_SHOOT_L 3
  36. #define skull4_SHOOT_R 4
  37.  
  38. #define write_coord_f(%1) engfunc(EngFunc_WriteCoord,%1)
  39.  
  40. new const Fire_Sounds[][] = { "weapons/skull4_shoot1.wav" }
  41.  
  42. new skull4_V_MODEL[64] = "models/v_skull4.mdl"
  43. new skull4_P_MODEL[64] = "models/p_skull4.mdl"
  44. new skull4_W_MODEL[64] = "models/w_skull4.mdl"
  45. new const Sound_Zoom[] = { "weapons/zoom.wav" }
  46.  
  47. new const GUNSHOT_DECALS[] = { 41, 42, 43, 44, 45 }
  48.  
  49. new cvar_dmg_skull4, cvar_recoil_skull4, g_itemid_skull4, cvar_clip_skull4, cvar_spd_skull4, cvar_skull4_ammo
  50. new g_MaxPlayers, g_orig_event_skull4, g_IsInPrimaryAttack, gmsgWeaponList
  51. new Float:cl_pushangle[MAX_PLAYERS + 1][3], m_iBlood[2]
  52. new g_has_skull4[33], g_clip_ammo[33], g_skull4_TmpClip[33], oldweap[33], g_right_attack[33], g_hasZoom[33], Float:g_flNextUseTime[33], g_Reload[33]
  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: SKULL4", "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_ak47", "fw_skull4_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_ak47", "fw_skull4_PrimaryAttack")
  76. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_ak47", "fw_skull4_PrimaryAttack_Post", 1)
  77. RegisterHam(Ham_Item_PostFrame, "weapon_ak47", "skull4_ItemPostFrame")
  78. RegisterHam(Ham_Weapon_Reload, "weapon_ak47", "skull4_Reload")
  79. RegisterHam(Ham_Weapon_Reload, "weapon_ak47", "skull4_Reload_Post", 1)
  80. RegisterHam(Ham_Item_Holster, "weapon_ak47", "fw_mg36_Holster_Post", 1)
  81. RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
  82. register_forward(FM_SetModel, "fw_SetModel")
  83. register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1)
  84. register_forward(FM_PlaybackEvent, "fwPlaybackEvent")
  85. register_forward(FM_CmdStart, "fw_CmdStart")
  86.  
  87. RegisterHam(Ham_TraceAttack, "worldspawn", "fw_TraceAttack", 1)
  88. RegisterHam(Ham_TraceAttack, "func_breakable", "fw_TraceAttack", 1)
  89. RegisterHam(Ham_TraceAttack, "func_wall", "fw_TraceAttack", 1)
  90. RegisterHam(Ham_TraceAttack, "func_door", "fw_TraceAttack", 1)
  91. RegisterHam(Ham_TraceAttack, "func_door_rotating", "fw_TraceAttack", 1)
  92. RegisterHam(Ham_TraceAttack, "func_plat", "fw_TraceAttack", 1)
  93. RegisterHam(Ham_TraceAttack, "func_rotating", "fw_TraceAttack", 1)
  94.  
  95. cvar_dmg_skull4 = register_cvar("zp_skull4_dmg", "1.32")
  96. cvar_recoil_skull4 = register_cvar("zp_skull4_recoil", "0.9")
  97. cvar_clip_skull4 = register_cvar("zp_skull4_clip", "48")
  98. cvar_spd_skull4 = register_cvar("zp_skull4_spd", "2.9")
  99. cvar_skull4_ammo = register_cvar("zp_skull4_ammo", "200")
  100.  
  101. g_itemid_skull4 = zp_register_extra_item("Skull4", 0, ZP_TEAM_HUMAN)
  102. g_MaxPlayers = get_maxplayers()
  103. gmsgWeaponList = get_user_msgid("WeaponList")
  104. }
  105.  
  106. public plugin_precache()
  107. {
  108. precache_model(skull4_V_MODEL)
  109. precache_model(skull4_P_MODEL)
  110. precache_model(skull4_W_MODEL)
  111. for(new i = 0; i < sizeof Fire_Sounds; i++)
  112. precache_sound(Fire_Sounds[i])
  113. precache_sound(Sound_Zoom)
  114. precache_sound("weapons/skull4_clipin.wav")
  115. precache_sound("weapons/skull4_clipout.wav")
  116. precache_sound("weapons/skull4_draw.wav")
  117. m_iBlood[0] = precache_model("sprites/blood.spr")
  118. m_iBlood[1] = precache_model("sprites/bloodspray.spr")
  119. precache_generic( "sprites/weapon_skull4.txt" )
  120. precache_generic( "sprites/640hud87.spr" )
  121. precache_generic( "sprites/640hud7.spr" )
  122. register_clcmd("weapon_skull4", "Hook_Select")
  123.  
  124. register_forward(FM_PrecacheEvent, "fwPrecacheEvent_Post", 1)
  125. }
  126.  
  127. public Hook_Select(id)
  128. {
  129. engclient_cmd(id, "weapon_ak47")
  130. return PLUGIN_HANDLED
  131. }
  132.  
  133. public fw_TraceAttack(iEnt, iAttacker, Float:flDamage, Float:fDir[3], ptr, iDamageType)
  134. {
  135. if(!is_user_alive(iAttacker))
  136. return
  137.  
  138. new g_currentweapon = get_user_weapon(iAttacker)
  139.  
  140. if(g_currentweapon != CSW_AK47) return
  141.  
  142. if(!g_has_skull4[iAttacker]) return
  143.  
  144. static Float:flEnd[3]
  145. get_tr2(ptr, TR_vecEndPos, flEnd)
  146.  
  147. if(iEnt)
  148. {
  149. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  150. write_byte(TE_DECAL)
  151. write_coord_f(flEnd[0])
  152. write_coord_f(flEnd[1])
  153. write_coord_f(flEnd[2])
  154. write_byte(GUNSHOT_DECALS[random_num (0, sizeof GUNSHOT_DECALS -1)])
  155. write_short(iEnt)
  156. message_end()
  157. }
  158. else
  159. {
  160. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  161. write_byte(TE_WORLDDECAL)
  162. write_coord_f(flEnd[0])
  163. write_coord_f(flEnd[1])
  164. write_coord_f(flEnd[2])
  165. write_byte(GUNSHOT_DECALS[random_num (0, sizeof GUNSHOT_DECALS -1)])
  166. message_end()
  167. }
  168. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  169. write_byte(TE_GUNSHOTDECAL)
  170. write_coord_f(flEnd[0])
  171. write_coord_f(flEnd[1])
  172. write_coord_f(flEnd[2])
  173. write_short(iAttacker)
  174. write_byte(GUNSHOT_DECALS[random_num (0, sizeof GUNSHOT_DECALS -1)])
  175. message_end()
  176. }
  177.  
  178. public zp_user_humanized_post(id)
  179. {
  180. g_has_skull4[id] = false
  181. }
  182.  
  183. public plugin_natives ()
  184. {
  185. register_native("give_weapon_skull4", "native_give_weapon_add", 1)
  186. }
  187. public native_give_weapon_add(id)
  188. {
  189. give_skull4(id)
  190. }
  191.  
  192. public fwPrecacheEvent_Post(type, const name[])
  193. {
  194. if (equal("events/ak47.sc", name))
  195. {
  196. g_orig_event_skull4 = get_orig_retval()
  197. return FMRES_HANDLED
  198. }
  199. return FMRES_IGNORED
  200. }
  201.  
  202. public client_connect(id)
  203. {
  204. g_has_skull4[id] = false
  205. }
  206.  
  207. public client_disconnect(id)
  208. {
  209. g_has_skull4[id] = false
  210. }
  211.  
  212. public zp_user_infected_post(id)
  213. {
  214. if (zp_get_user_zombie(id))
  215. {
  216. g_has_skull4[id] = false
  217. }
  218. }
  219.  
  220. public fw_SetModel(entity, model[])
  221. {
  222. if(!is_valid_ent(entity))
  223. return FMRES_IGNORED
  224.  
  225. static szClassName[33]
  226. entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
  227.  
  228. if(!equal(szClassName, "weaponbox"))
  229. return FMRES_IGNORED
  230.  
  231. static iOwner
  232.  
  233. iOwner = entity_get_edict(entity, EV_ENT_owner)
  234.  
  235. if(equal(model, "models/w_ak47.mdl"))
  236. {
  237. static iStoredAugID
  238.  
  239. iStoredAugID = find_ent_by_owner(ENG_NULLENT, "weapon_ak47", entity)
  240.  
  241. if(!is_valid_ent(iStoredAugID))
  242. return FMRES_IGNORED
  243.  
  244. if(g_has_skull4[iOwner])
  245. {
  246. entity_set_int(iStoredAugID, EV_INT_WEAPONKEY, skull4_WEAPONKEY)
  247.  
  248. g_has_skull4[iOwner] = false
  249.  
  250. entity_set_model(entity, skull4_W_MODEL)
  251.  
  252. return FMRES_SUPERCEDE
  253. }
  254. }
  255. return FMRES_IGNORED
  256. }
  257.  
  258. public give_skull4(id)
  259. {
  260. drop_weapons(id, 1)
  261. new iWep2 = give_item(id,"weapon_ak47")
  262. if( iWep2 > 0 )
  263. {
  264. cs_set_weapon_ammo(iWep2, get_pcvar_num(cvar_clip_skull4))
  265. cs_set_user_bpammo (id, CSW_AK47, get_pcvar_num(cvar_skull4_ammo))
  266. UTIL_PlayWeaponAnimation(id, skull4_DRAW)
  267. set_pdata_float(id, m_flNextAttack, 1.0, PLAYER_LINUX_XTRA_OFF)
  268. }
  269. g_has_skull4[id] = true
  270. g_right_attack[id] = true
  271. g_Reload[id] = false
  272. }
  273.  
  274. public zp_extra_item_selected(id, itemid)
  275. {
  276. if(itemid != g_itemid_skull4)
  277. return
  278.  
  279. give_skull4(id)
  280. Sprite(id)
  281. }
  282.  
  283. public fw_skull4_AddToPlayer(skull4, id)
  284. {
  285. if(!is_valid_ent(skull4) || !is_user_connected(id))
  286. return HAM_IGNORED
  287.  
  288. if(entity_get_int(skull4, EV_INT_WEAPONKEY) == skull4_WEAPONKEY)
  289. {
  290. g_has_skull4[id] = true
  291.  
  292. Sprite(id)
  293. return HAM_HANDLED;
  294. }
  295. if(entity_get_int(skull4, EV_INT_WEAPONKEY) != skull4_WEAPONKEY)
  296. {
  297. Sprite1(id)
  298. return HAM_HANDLED;
  299. }
  300. return HAM_IGNORED;
  301. }
  302.  
  303. public Sprite(id)
  304. {
  305.  
  306. message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)
  307. write_string("weapon_skull4")
  308. write_byte(2)
  309. write_byte(90)
  310. write_byte(-1)
  311. write_byte(-1)
  312. write_byte(0)
  313. write_byte(1)
  314. write_byte(28)
  315. write_byte(0)
  316. message_end()
  317.  
  318. }
  319.  
  320. public Sprite1(id)
  321. {
  322.  
  323. message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)
  324. write_string("weapon_ak47")
  325. write_byte(2)
  326. write_byte(90)
  327. write_byte(-1)
  328. write_byte(-1)
  329. write_byte(0)
  330. write_byte(1)
  331. write_byte(28)
  332. write_byte(0)
  333. message_end()
  334.  
  335. }
  336.  
  337. public fw_UseStationary_Post(entity, caller, activator, use_type)
  338. {
  339. if (use_type == USE_STOPPED && is_user_connected(caller))
  340. replace_weapon_models(caller, get_user_weapon(caller))
  341. }
  342.  
  343. public fw_Item_Deploy_Post(weapon_ent)
  344. {
  345. static owner
  346. owner = fm_cs_get_weapon_ent_owner(weapon_ent)
  347.  
  348. static weaponid
  349. weaponid = cs_get_weapon_id(weapon_ent)
  350.  
  351. replace_weapon_models(owner, weaponid)
  352. }
  353.  
  354. public CurrentWeapon(id)
  355. {
  356. replace_weapon_models(id, read_data(2))
  357.  
  358. if(read_data(2) != CSW_AK47 || !g_has_skull4[id])
  359. return
  360.  
  361. static Float:iSpeed
  362. if(g_has_skull4[id])
  363. iSpeed = get_pcvar_float(cvar_spd_skull4)
  364.  
  365. static weapon[32],Ent
  366. get_weaponname(read_data(2),weapon,31)
  367. Ent = find_ent_by_owner(-1,weapon,id)
  368. if(Ent)
  369. {
  370. static Float:Delay
  371. Delay = get_pdata_float( Ent, 46, 4) * iSpeed
  372. if (Delay > 0.0)
  373. {
  374. set_pdata_float(Ent, 46, Delay, 4)
  375. }
  376. }
  377. }
  378.  
  379. replace_weapon_models(id, weaponid)
  380. {
  381. switch (weaponid)
  382. {
  383. case CSW_AK47:
  384. {
  385. if (zp_get_user_zombie(id) || zp_get_user_survivor(id))
  386. return
  387.  
  388. if(g_has_skull4[id])
  389. {
  390. set_pev(id, pev_viewmodel2, skull4_V_MODEL)
  391. set_pev(id, pev_weaponmodel2, skull4_P_MODEL)
  392. if(oldweap[id] != CSW_AK47)
  393. {
  394. UTIL_PlayWeaponAnimation(id, skull4_DRAW)
  395. set_pdata_float(id, m_flNextAttack, 1.0, PLAYER_LINUX_XTRA_OFF)
  396.  
  397. Sprite(id)
  398. }
  399. }
  400. }
  401. }
  402. oldweap[id] = weaponid
  403. }
  404.  
  405. public fw_UpdateClientData_Post(Player, SendWeapons, CD_Handle)
  406. {
  407. if(!is_user_alive(Player) || (get_user_weapon(Player) != CSW_AK47 || !g_has_skull4[Player]))
  408. return FMRES_IGNORED
  409.  
  410. set_cd(CD_Handle, CD_flNextAttack, halflife_time () + 0.001)
  411. return FMRES_HANDLED
  412. }
  413.  
  414. public fw_skull4_PrimaryAttack(Weapon)
  415. {
  416. new Player = get_pdata_cbase(Weapon, 41, 4)
  417.  
  418. if (!g_has_skull4[Player])
  419. return
  420.  
  421. g_IsInPrimaryAttack = 1
  422. pev(Player,pev_punchangle,cl_pushangle[Player])
  423.  
  424. g_clip_ammo[Player] = cs_get_weapon_ammo(Weapon)
  425. }
  426.  
  427. public fwPlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2)
  428. {
  429. if ((eventid != g_orig_event_skull4) || !g_IsInPrimaryAttack)
  430. return FMRES_IGNORED
  431. if (!(1 <= invoker <= g_MaxPlayers))
  432. return FMRES_IGNORED
  433.  
  434. playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2)
  435. return FMRES_SUPERCEDE
  436. }
  437.  
  438. public fw_CmdStart(id, uc_handle, seed)
  439. {
  440. if (!is_user_alive(id) || g_Reload[id] || !g_has_skull4[id])
  441. return FMRES_IGNORED
  442.  
  443. if((get_uc(uc_handle, UC_Buttons) & IN_ATTACK2) && !(pev(id, pev_oldbuttons) & IN_ATTACK2))
  444. {
  445. new szClip, szAmmo
  446. new szWeapID = get_user_weapon(id, szClip, szAmmo)
  447.  
  448. if(szWeapID == CSW_AK47 && g_has_skull4[id] && !g_hasZoom[id] == true)
  449. {
  450. g_hasZoom[id] = true
  451. cs_set_user_zoom(id, CS_SET_AUGSG552_ZOOM, 0)
  452. emit_sound(id, CHAN_ITEM, Sound_Zoom, 0.20, 2.40, 0, 100)
  453. }
  454. else if(szWeapID == CSW_AK47 && g_has_skull4[id] && g_hasZoom[id])
  455. {
  456. g_hasZoom[id] = false
  457. cs_set_user_zoom(id, CS_RESET_ZOOM, 0)
  458. }
  459. }
  460. return FMRES_IGNORED
  461. }
  462.  
  463.  
  464. public fw_skull4_PrimaryAttack_Post(Weapon)
  465. {
  466. g_IsInPrimaryAttack = 0
  467. new Player = get_pdata_cbase(Weapon, 41, 4)
  468.  
  469. new szClip, szAmmo
  470. get_user_weapon(Player, szClip, szAmmo)
  471.  
  472. if(!is_user_alive(Player))
  473. return
  474.  
  475. if(g_has_skull4[Player])
  476. {
  477. if (!g_clip_ammo[Player])
  478. return
  479.  
  480. new Float:push[3]
  481. pev(Player,pev_punchangle,push)
  482. xs_vec_sub(push,cl_pushangle[Player],push)
  483.  
  484. xs_vec_mul_scalar(push,get_pcvar_float(cvar_recoil_skull4),push)
  485. xs_vec_add(push,cl_pushangle[Player],push)
  486. set_pev(Player,pev_punchangle,push)
  487.  
  488. emit_sound(Player, CHAN_WEAPON, Fire_Sounds[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  489.  
  490. switch(g_right_attack[Player])
  491. {
  492. case 0:
  493. {
  494. UTIL_PlayWeaponAnimation(Player, skull4_SHOOT_R)
  495. g_right_attack[Player] = true
  496. }
  497. case 1:
  498. {
  499. UTIL_PlayWeaponAnimation(Player, skull4_SHOOT_L)
  500. g_right_attack[Player] = false
  501. }
  502. }
  503. }
  504. }
  505.  
  506. public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
  507. {
  508. if (victim != attacker && is_user_connected(attacker))
  509. {
  510. if(get_user_weapon(attacker) == CSW_AK47)
  511. {
  512. if(g_has_skull4[attacker])
  513. SetHamParamFloat(4, damage * get_pcvar_float(cvar_dmg_skull4))
  514. }
  515. }
  516. }
  517.  
  518. public message_DeathMsg(msg_id, msg_dest, id)
  519. {
  520. static szTruncatedWeapon[33], iAttacker, iVictim
  521.  
  522. get_msg_arg_string(4, szTruncatedWeapon, charsmax(szTruncatedWeapon))
  523.  
  524. iAttacker = get_msg_arg_int(1)
  525. iVictim = get_msg_arg_int(2)
  526.  
  527. if(!is_user_connected(iAttacker) || iAttacker == iVictim)
  528. return PLUGIN_CONTINUE
  529.  
  530. if(equal(szTruncatedWeapon, "ak47") && get_user_weapon(iAttacker) == CSW_AK47)
  531. {
  532. if(g_has_skull4[iAttacker])
  533. set_msg_arg_string(4, "skull4")
  534. }
  535. return PLUGIN_CONTINUE
  536. }
  537.  
  538. stock fm_cs_get_current_weapon_ent(id)
  539. {
  540. return get_pdata_cbase(id, OFFSET_ACTIVE_ITEM, OFFSET_LINUX)
  541. }
  542.  
  543. stock fm_cs_get_weapon_ent_owner(ent)
  544. {
  545. return get_pdata_cbase(ent, OFFSET_WEAPONOWNER, OFFSET_LINUX_WEAPONS)
  546. }
  547.  
  548. stock UTIL_PlayWeaponAnimation(const Player, const Sequence)
  549. {
  550. set_pev(Player, pev_weaponanim, Sequence)
  551.  
  552. message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player)
  553. write_byte(Sequence)
  554. write_byte(pev(Player, pev_body))
  555. message_end()
  556. }
  557.  
  558. public skull4_ItemPostFrame(weapon_entity)
  559. {
  560. new id = pev(weapon_entity, pev_owner)
  561. if (!is_user_connected(id))
  562. return HAM_IGNORED
  563.  
  564. if (!g_has_skull4[id])
  565. return HAM_IGNORED
  566.  
  567. static iClipExtra
  568.  
  569. iClipExtra = get_pcvar_num(cvar_clip_skull4)
  570. new Float:flNextAttack = get_pdata_float(id, m_flNextAttack, PLAYER_LINUX_XTRA_OFF)
  571.  
  572. new iBpAmmo = cs_get_user_bpammo(id, CSW_AK47)
  573. new iClip = get_pdata_int(weapon_entity, m_iClip, WEAP_LINUX_XTRA_OFF)
  574.  
  575. new fInReload = get_pdata_int(weapon_entity, m_fInReload, WEAP_LINUX_XTRA_OFF)
  576.  
  577. if( fInReload && flNextAttack <= 0.0 )
  578. {
  579. new j = min(iClipExtra - iClip, iBpAmmo)
  580.  
  581. set_pdata_int(weapon_entity, m_iClip, iClip + j, WEAP_LINUX_XTRA_OFF)
  582. cs_set_user_bpammo(id, CSW_AK47, iBpAmmo-j)
  583.  
  584. set_pdata_int(weapon_entity, m_fInReload, 0, WEAP_LINUX_XTRA_OFF)
  585. fInReload = 0
  586. g_Reload[id] = 0
  587. }
  588. return HAM_IGNORED
  589. }
  590.  
  591. public skull4_Reload(weapon_entity)
  592. {
  593. new id = pev(weapon_entity, pev_owner)
  594. if (!is_user_connected(id))
  595. return HAM_IGNORED
  596.  
  597. if (!g_has_skull4[id])
  598. return HAM_IGNORED
  599.  
  600. static iClipExtra
  601.  
  602. if(g_has_skull4[id])
  603. iClipExtra = get_pcvar_num(cvar_clip_skull4)
  604.  
  605. g_skull4_TmpClip[id] = -1
  606.  
  607. new iBpAmmo = cs_get_user_bpammo(id, CSW_AK47)
  608. new iClip = get_pdata_int(weapon_entity, m_iClip, WEAP_LINUX_XTRA_OFF)
  609.  
  610. if (iBpAmmo <= 0)
  611. return HAM_SUPERCEDE
  612.  
  613. if (iClip >= iClipExtra)
  614. return HAM_SUPERCEDE
  615.  
  616. g_skull4_TmpClip[id] = iClip
  617.  
  618. return HAM_IGNORED
  619. }
  620.  
  621. public skull4_Reload_Post(weapon_entity)
  622. {
  623. new id = pev(weapon_entity, pev_owner)
  624. if (!is_user_connected(id))
  625. return HAM_IGNORED
  626.  
  627. if (!g_has_skull4[id])
  628. return HAM_IGNORED
  629.  
  630. if (g_skull4_TmpClip[id] == -1)
  631. return HAM_IGNORED
  632.  
  633. set_pdata_int(weapon_entity, m_iClip, g_skull4_TmpClip[id], WEAP_LINUX_XTRA_OFF)
  634.  
  635. cs_set_user_zoom(id, CS_RESET_ZOOM, 1)
  636.  
  637. set_pdata_float(weapon_entity, m_flTimeWeaponIdle, skull4_RELOAD_TIME, WEAP_LINUX_XTRA_OFF)
  638.  
  639. set_pdata_float(id, m_flNextAttack, skull4_RELOAD_TIME, PLAYER_LINUX_XTRA_OFF)
  640.  
  641. set_pdata_int(weapon_entity, m_fInReload, 1, WEAP_LINUX_XTRA_OFF)
  642.  
  643. UTIL_PlayWeaponAnimation(id, skull4_RELOAD)
  644.  
  645. g_Reload[id] = 1
  646.  
  647. return HAM_IGNORED
  648. }
  649.  
  650.  
  651. public fw_mg36_Holster_Post(weapon_entity)
  652. {
  653. static Player
  654. Player = get_pdata_cbase(weapon_entity, OFFSET_WEAPONOWNER, OFFSET_LINUX_WEAPONS)
  655.  
  656. g_flNextUseTime[Player] = 0.0
  657.  
  658. if(g_has_skull4[Player])
  659. {
  660. cs_set_user_zoom(Player, CS_RESET_ZOOM, 1)
  661. }
  662. }
  663.  
  664. stock drop_weapons(id, dropwhat)
  665. {
  666. static weapons[32], num, i, weaponid
  667. num = 0
  668. get_user_weapons(id, weapons, num)
  669.  
  670. for (i = 0; i < num; i++)
  671. {
  672. weaponid = weapons[i]
  673.  
  674. if (dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM))
  675. {
  676. static wname[32]
  677. get_weaponname(weaponid, wname, sizeof wname - 1)
  678. engclient_cmd(id, "drop", wname)
  679. }
  680. }
  681. }
  682. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  683. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
  684. */
  685.  


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Skull 4 Dual tartás
HozzászólásElküldve: 2013.06.16. 15:11 
Offline
Félisten
Avatar

Csatlakozott: 2010.09.16. 20:57
Hozzászólások: 950
Megköszönt másnak: 9 alkalommal
Megköszönték neki: 101 alkalommal
Skull-3 ból csak átkéne írni ebbe

_________________
Weboldalam: nandee.smmg.hu
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Skull 4 Dual tartás
HozzászólásElküldve: 2013.06.16. 18:39 
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
Most komolyan ilyen nehezet kértem volna?


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Skull 4 Dual tartás
HozzászólásElküldve: 2013.06.16. 18:42 
Offline
Őstag

Csatlakozott: 2011.06.12. 20:51
Hozzászólások: 1089
Megköszönt másnak: 3 alkalommal
Megköszönték neki: 44 alkalommal
rericsi8 írta:
Most komolyan ilyen nehezet kértem volna?

ha nem nehéz akkor mért nem csinálod meg? én nem értek a zp fegyókhoz

_________________
[img]semmi[/img]


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Skull 4 Dual tartás
HozzászólásElküldve: 2013.06.16. 19:04 
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
fuck604 írta:
rericsi8 írta:
Most komolyan ilyen nehezet kértem volna?

ha nem nehéz akkor mért nem csinálod meg? én nem értek a zp fegyókhoz

3órája próbálom


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


Ki van itt

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