hlmod.hu

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



Jelenlévő felhasználók

Jelenleg 353 felhasználó van jelen :: 2 regisztrált, 0 rejtett és 351 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], Google [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  [39303 hozzászólás ]  OldalElőző18288298308318323931Következő
Szerző Üzenet
 Hozzászólás témája: Re: Írj! - Offtopik
HozzászólásElküldve:2012.08.04. 13:16 
Offline
Tiszteletbeli
Avatar

Csatlakozott:2011.09.18. 13:01
Hozzászólások:4274
Megköszönt másnak: 55 alkalommal
Megköszönték neki: 515 alkalommal
Bence98007 írta:
Ő igen átírt aszem 10 et én meg a többit az újakat (xm8, ksg12 svd stb.) mert megmutatta a trükkjét és nagyon belelendültem!

Aztan nagy trukje van :lol: :lol: 2 sort atkell irni vagy 4 -et.Attol fugg. :lol: :lol:

_________________
Idk. Csak ugy funbooo.
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Írj! - Offtopik
HozzászólásElküldve:2012.08.04. 13:19 
Offline
Őskövület
Avatar

Csatlakozott:2013.01.01. 17:48
Hozzászólások:2441
Megköszönt másnak: 18 alkalommal
Megköszönték neki: 21 alkalommal
Hát igen de akkor is megmutatta hogy hogy kell, és ezt értékelem. Amúgy DeteCTOR nem tudom mennyire értesz a zps fegyókat pubra írásában, de vess erre egy pillantást:

Kód:
  1. #include <amxmodx>

  2. #include <engine>

  3. #include <fakemeta>

  4. #include <fun>

  5. #include <hamsandwich>

  6. #include <xs>

  7. #include <cstrike>

  8. /*

  9. #include <zombieplague>

  10. */

  11. #define ENG_NULLENT                     -1

  12. #define EV_INT_WEAPONKEY        EV_INT_impulse

  13. #define xm8_WEAPONKEY           862

  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 xm8_RELOAD_TIME  3.5

  33. #define xm8_RELOAD              1

  34. #define xm8_DRAW                2

  35. #define xm8_SHOOT1              3

  36. #define xm8_SHOOT2              4

  37.  

  38. #define write_coord_f(%1)       engfunc(EngFunc_WriteCoord,%1)

  39.  

  40. new const Fire_Sounds[][] = { "weapons/xm8_carbine.wav" }

  41.  

  42. new xm8_V_MODEL[64] = "models/zm/v_xm8.mdl"

  43. new xm8_P_MODEL[64] = "models/zm/p_xm8.mdl"

  44. new xm8_W_MODEL[64] = "models/zm/w_xm8.mdl"

  45.  

  46. new const GUNSHOT_DECALS[] = { 41, 42, 43, 44, 45 }

  47.  

  48. new cvar_dmg_xm8, cvar_recoil_xm8, g_itemid_xm8, cvar_clip_xm8, cvar_spd_xm8, cvar_xm8_ammo

  49. new g_MaxPlayers, g_orig_event_xm8, g_IsInPrimaryAttack

  50. new Float:cl_pushangle[MAX_PLAYERS + 1][3], m_iBlood[2]

  51. new g_has_xm8[33], g_clip_ammo[33], g_xm8_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: XM8 Basic Edition", "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_aug", "fw_xm8_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_aug", "fw_xm8_PrimaryAttack")

  76.         RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_aug", "fw_xm8_PrimaryAttack_Post", 1)

  77.         RegisterHam(Ham_Item_PostFrame, "weapon_aug", "xm8_ItemPostFrame")

  78.         RegisterHam(Ham_Weapon_Reload, "weapon_aug", "xm8_Reload")

  79.         RegisterHam(Ham_Weapon_Reload, "weapon_aug", "xm8_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_xm8 = register_cvar("zp_xm8_dmg", "1.0")

  94.         cvar_recoil_xm8 = register_cvar("zp_xm8_recoil", "0.98")

  95.         cvar_clip_xm8 = register_cvar("zp_xm8_clip", "30")

  96.         cvar_spd_xm8 = register_cvar("zp_xm8_spd", "0.92")

  97.         cvar_xm8_ammo = register_cvar("zp_xm8_ammo", "180")

  98.        

  99.         /*g_itemid_xm8 = zp_register_extra_item("[Assault Rifle] \rXM8 Limit", 5, ZP_TEAM_HUMAN)

  100.         g_MaxPlayers = get_maxplayers()

  101.         gmsgWeaponList = get_user_msgid("WeaponList")*/

  102.         register_clcmd("say /xm8", "xm8")

  103.         g_MaxPlayers = get_maxplayers()

  104. }

  105.  

  106. public plugin_precache()

  107. {

  108.         precache_model(xm8_V_MODEL)

  109.         precache_model(xm8_P_MODEL)

  110.         precache_model(xm8_W_MODEL)

  111.         for(new i = 0; i < sizeof Fire_Sounds; i++)

  112.         precache_sound(Fire_Sounds[i]) 

  113.         precache_sound("weapons/xm8_clipin.wav")

  114.         precache_sound("weapons/xm8_clipon.wav")

  115.         precache_sound("weapons/xm8_clipout.wav")

  116.         precache_sound("weapons/xm8_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_xm8.txt")

  120.         precache_generic("sprites/zm/640hud22.spr")

  121.         precache_generic("sprites/zm/640hud7.spr")

  122.        

  123.         register_clcmd("weapon_xm8", "weapon_hook")    

  124.  

  125.         register_forward(FM_PrecacheEvent, "fwPrecacheEvent_Post", 1)

  126. }

  127.  

  128. public weapon_hook(id)

  129. {

  130.         engclient_cmd(id, "weapon_aug")

  131.         return PLUGIN_HANDLED

  132. }

  133.  

  134. public fw_TraceAttack(iEnt, iAttacker, Float:flDamage, Float:fDir[3], ptr, iDamageType)

  135. {

  136.         if(!is_user_alive(iAttacker))

  137.                 return

  138.  

  139.         new g_currentweapon = get_user_weapon(iAttacker)

  140.  

  141.         if(g_currentweapon != CSW_AUG) return

  142.        

  143.         if(!g_has_xm8[iAttacker]) return

  144.  

  145.         static Float:flEnd[3]

  146.         get_tr2(ptr, TR_vecEndPos, flEnd)

  147.        

  148.         if(iEnt)

  149.         {

  150.                 message_begin(MSG_BROADCAST, SVC_TEMPENTITY)

  151.                 write_byte(TE_DECAL)

  152.                 write_coord_f(flEnd[0])

  153.                 write_coord_f(flEnd[1])

  154.                 write_coord_f(flEnd[2])

  155.                 write_byte(GUNSHOT_DECALS[random_num (0, sizeof GUNSHOT_DECALS -1)])

  156.                 write_short(iEnt)

  157.                 message_end()

  158.         }

  159.         else

  160.         {

  161.                 message_begin(MSG_BROADCAST, SVC_TEMPENTITY)

  162.                 write_byte(TE_WORLDDECAL)

  163.                 write_coord_f(flEnd[0])

  164.                 write_coord_f(flEnd[1])

  165.                 write_coord_f(flEnd[2])

  166.                 write_byte(GUNSHOT_DECALS[random_num (0, sizeof GUNSHOT_DECALS -1)])

  167.                 message_end()

  168.         }

  169.         message_begin(MSG_BROADCAST, SVC_TEMPENTITY)

  170.         write_byte(TE_GUNSHOTDECAL)

  171.         write_coord_f(flEnd[0])

  172.         write_coord_f(flEnd[1])

  173.         write_coord_f(flEnd[2])

  174.         write_short(iAttacker)

  175.         write_byte(GUNSHOT_DECALS[random_num (0, sizeof GUNSHOT_DECALS -1)])

  176.         message_end()

  177. }

  178.  

  179. /*public zp_user_humanized_post(id)

  180. {

  181.         g_has_xm8[id] = false

  182. }*/

  183.  

  184. public plugin_natives ()

  185. {

  186.         register_native("give_weapon_xm8", "native_give_weapon_add", 1)

  187. }

  188. public native_give_weapon_add(id)

  189. {

  190.         give_xm8(id)

  191. }

  192.  

  193. public fwPrecacheEvent_Post(type, const name[])

  194. {

  195.         if (equal("events/aug.sc", name))

  196.         {

  197.                 g_orig_event_xm8 = get_orig_retval()

  198.                 return FMRES_HANDLED

  199.         }

  200.         return FMRES_IGNORED

  201. }

  202.  

  203. public client_connect(id)

  204. {

  205.         g_has_xm8[id] = false

  206. }

  207.  

  208. public client_disconnect(id)

  209. {

  210.         g_has_xm8[id] = false

  211. }

  212.  

  213. /*public zp_user_infected_post(id)

  214. {

  215.         if (zp_get_user_zombie(id))

  216.         {

  217.                 g_has_xm8[id] = false

  218.         }

  219. }*/

  220.  

  221. public fw_SetModel(entity, model[])

  222. {

  223.         if(!is_valid_ent(entity))

  224.                 return FMRES_IGNORED

  225.        

  226.         static szClassName[33]

  227.         entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))

  228.                

  229.         if(!equal(szClassName, "weaponbox"))

  230.                 return FMRES_IGNORED

  231.        

  232.         static iOwner

  233.        

  234.         iOwner = entity_get_edict(entity, EV_ENT_owner)

  235.        

  236.         if(equal(model, "models/w_aug.mdl"))

  237.         {

  238.                 static iStoredAugID

  239.                

  240.                 iStoredAugID = find_ent_by_owner(ENG_NULLENT, "weapon_aug", entity)

  241.        

  242.                 if(!is_valid_ent(iStoredAugID))

  243.                         return FMRES_IGNORED

  244.        

  245.                 if(g_has_xm8[iOwner])

  246.                 {

  247.                         entity_set_int(iStoredAugID, EV_INT_WEAPONKEY, xm8_WEAPONKEY)

  248.                        

  249.                         g_has_xm8[iOwner] = false

  250.                        

  251.                         entity_set_model(entity, xm8_W_MODEL)

  252.                        

  253.                         return FMRES_SUPERCEDE

  254.                 }

  255.         }

  256.         return FMRES_IGNORED

  257. }

  258.  

  259. public give_xm8(id)

  260. {

  261.         drop_weapons(id, 1)

  262.         new iWep2 = give_item(id,"weapon_aug")

  263.         if( iWep2 > 0 )

  264.         {

  265.                 cs_set_weapon_ammo(iWep2, get_pcvar_num(cvar_clip_xm8))

  266.                 cs_set_user_bpammo (id, CSW_AUG, get_pcvar_num(cvar_xm8_ammo)) 

  267.                 UTIL_PlayWeaponAnimation(id, xm8_DRAW)

  268.                 set_pdata_float(id, m_flNextAttack, 1.0, PLAYER_LINUX_XTRA_OFF)

  269.  

  270.                 message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)

  271.                 write_string("weapon_xm8")

  272.                 write_byte(4)

  273.                 write_byte(90)

  274.                 write_byte(-1)

  275.                 write_byte(-1)

  276.                 write_byte(0)

  277.                 write_byte(14)

  278.                 write_byte(CSW_AUG)

  279.                 message_end()

  280.         }

  281.         g_has_xm8[id] = true

  282. }

  283.  

  284. public xm8(id, itemid)

  285. {

  286.         if(itemid != g_itemid_xm8)

  287.                 return

  288.  

  289.         give_xm8(id)

  290. }

  291.  

  292. public fw_xm8_AddToPlayer(xm8, id)

  293. {

  294.         if(!is_valid_ent(xm8) || !is_user_connected(id))

  295.                 return HAM_IGNORED

  296.        

  297.         if(entity_get_int(xm8, EV_INT_WEAPONKEY) == xm8_WEAPONKEY)

  298.         {

  299.                 g_has_xm8[id] = true

  300.                

  301.                 entity_set_int(xm8, EV_INT_WEAPONKEY, 0)

  302.  

  303.                 message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)

  304.                 write_string("weapon_xm8")

  305.                 write_byte(4)

  306.                 write_byte(90)

  307.                 write_byte(-1)

  308.                 write_byte(-1)

  309.                 write_byte(0)

  310.                 write_byte(14)

  311.                 write_byte(CSW_AUG)

  312.                 message_end()

  313.                

  314.                 return HAM_HANDLED

  315.         }

  316.         else

  317.         {

  318.                 message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)

  319.                 write_string("weapon_aug")

  320.                 write_byte(4)

  321.                 write_byte(90)

  322.                 write_byte(-1)

  323.                 write_byte(-1)

  324.                 write_byte(0)

  325.                 write_byte(14)

  326.                 write_byte(CSW_AUG)

  327.                 message_end()

  328.         }

  329.         return HAM_IGNORED

  330. }

  331.  

  332. public fw_UseStationary_Post(entity, caller, activator, use_type)

  333. {

  334.         if (use_type == USE_STOPPED && is_user_connected(caller))

  335.                 replace_weapon_models(caller, get_user_weapon(caller))

  336. }

  337.  

  338. public fw_Item_Deploy_Post(weapon_ent)

  339. {

  340.         static owner

  341.         owner = fm_cs_get_weapon_ent_owner(weapon_ent)

  342.        

  343.         static weaponid

  344.         weaponid = cs_get_weapon_id(weapon_ent)

  345.        

  346.         replace_weapon_models(owner, weaponid)

  347. }

  348.  

  349. public CurrentWeapon(id)

  350. {

  351.      replace_weapon_models(id, read_data(2))

  352.  

  353.      if(read_data(2) != CSW_AUG || !g_has_xm8[id])

  354.           return

  355.      

  356.      static Float:iSpeed

  357.      if(g_has_xm8[id])

  358.           iSpeed = get_pcvar_float(cvar_spd_xm8)

  359.      

  360.      static weapon[32],Ent

  361.      get_weaponname(read_data(2),weapon,31)

  362.      Ent = find_ent_by_owner(-1,weapon,id)

  363.      if(Ent)

  364.      {

  365.           static Float:Delay

  366.           Delay = get_pdata_float( Ent, 46, 4) * iSpeed

  367.           if (Delay > 0.0)

  368.           {

  369.                set_pdata_float(Ent, 46, Delay, 4)

  370.           }

  371.      }

  372. }

  373.  

  374. replace_weapon_models(id, weaponid)

  375. {

  376.         switch (weaponid)

  377.         {

  378.                 case CSW_AUG:

  379.                 {

  380.                         new CsTeams:userTeam = cs_get_user_team(id)

  381.                         if (userTeam == CS_TEAM_T && CS_TEAM_CT && CS_TEAM_SPECTATOR)

  382.                                 return;

  383.                        

  384.                         if(g_has_xm8[id])

  385.                         {

  386.                                 set_pev(id, pev_viewmodel2, xm8_V_MODEL)

  387.                                 set_pev(id, pev_weaponmodel2, xm8_P_MODEL)

  388.                                 if(oldweap[id] != CSW_AUG)

  389.                                 {

  390.                                         UTIL_PlayWeaponAnimation(id, xm8_DRAW)

  391.                                         set_pdata_float(id, m_flNextAttack, 1.0, PLAYER_LINUX_XTRA_OFF)

  392.  

  393.                                         message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)

  394.                                         write_string("weapon_xm8")

  395.                                         write_byte(4)

  396.                                         write_byte(90)

  397.                                         write_byte(-1)

  398.                                         write_byte(-1)

  399.                                         write_byte(0)

  400.                                         write_byte(14)

  401.                                         write_byte(CSW_AUG)

  402.                                         message_end()

  403.                                 }

  404.                         }

  405.                 }

  406.         }

  407.         oldweap[id] = weaponid

  408. }

  409.  

  410. public fw_UpdateClientData_Post(Player, SendWeapons, CD_Handle)

  411. {

  412.         if(!is_user_alive(Player) || (get_user_weapon(Player) != CSW_AUG || !g_has_xm8[Player]))

  413.                 return FMRES_IGNORED

  414.        

  415.         set_cd(CD_Handle, CD_flNextAttack, halflife_time () + 0.001)

  416.         return FMRES_HANDLED

  417. }

  418.  

  419. public fw_xm8_PrimaryAttack(Weapon)

  420. {

  421.         new Player = get_pdata_cbase(Weapon, 41, 4)

  422.        

  423.         if (!g_has_xm8[Player])

  424.                 return

  425.        

  426.         g_IsInPrimaryAttack = 1

  427.         pev(Player,pev_punchangle,cl_pushangle[Player])

  428.        

  429.         g_clip_ammo[Player] = cs_get_weapon_ammo(Weapon)

  430. }

  431.  

  432. public fwPlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2)

  433. {

  434.         if ((eventid != g_orig_event_xm8) || !g_IsInPrimaryAttack)

  435.                 return FMRES_IGNORED

  436.         if (!(1 <= invoker <= g_MaxPlayers))

  437.     return FMRES_IGNORED

  438.  

  439.         playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2)

  440.         return FMRES_SUPERCEDE

  441. }

  442.  

  443. public fw_xm8_PrimaryAttack_Post(Weapon)

  444. {

  445.         g_IsInPrimaryAttack = 0

  446.         new Player = get_pdata_cbase(Weapon, 41, 4)

  447.        

  448.         new szClip, szAmmo

  449.         get_user_weapon(Player, szClip, szAmmo)

  450.        

  451.         if(!is_user_alive(Player))

  452.                 return

  453.  

  454.         if(g_has_xm8[Player])

  455.         {

  456.                 if (!g_clip_ammo[Player])

  457.                         return

  458.  

  459.                 new Float:push[3]

  460.                 pev(Player,pev_punchangle,push)

  461.                 xs_vec_sub(push,cl_pushangle[Player],push)

  462.                

  463.                 xs_vec_mul_scalar(push,get_pcvar_float(cvar_recoil_xm8),push)

  464.                 xs_vec_add(push,cl_pushangle[Player],push)

  465.                 set_pev(Player,pev_punchangle,push)

  466.                

  467.                 emit_sound(Player, CHAN_WEAPON, Fire_Sounds[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM)

  468.                 UTIL_PlayWeaponAnimation(Player, random_num(xm8_SHOOT1, xm8_SHOOT2))

  469.         }

  470. }

  471.  

  472. public fw_TakeDamage(victim, inflictor, attacker, Float:damage)

  473. {

  474.         if (victim != attacker && is_user_connected(attacker))

  475.         {

  476.                 if(get_user_weapon(attacker) == CSW_AUG)

  477.                 {

  478.                         if(g_has_xm8[attacker])

  479.                                 SetHamParamFloat(4, damage * get_pcvar_float(cvar_dmg_xm8))

  480.                 }

  481.         }

  482. }

  483.  

  484. public message_DeathMsg(msg_id, msg_dest, id)

  485. {

  486.         static szTruncatedWeapon[33], iAttacker, iVictim

  487.        

  488.         get_msg_arg_string(4, szTruncatedWeapon, charsmax(szTruncatedWeapon))

  489.        

  490.         iAttacker = get_msg_arg_int(1)

  491.         iVictim = get_msg_arg_int(2)

  492.        

  493.         if(!is_user_connected(iAttacker) || iAttacker == iVictim)

  494.                 return PLUGIN_CONTINUE

  495.        

  496.         if(equal(szTruncatedWeapon, "aug") && get_user_weapon(iAttacker) == CSW_AUG)

  497.         {

  498.                 if(g_has_xm8[iAttacker])

  499.                         set_msg_arg_string(4, "aug")

  500.         }

  501.         return PLUGIN_CONTINUE

  502. }

  503.  

  504. stock fm_cs_get_current_weapon_ent(id)

  505. {

  506.         return get_pdata_cbase(id, OFFSET_ACTIVE_ITEM, OFFSET_LINUX)

  507. }

  508.  

  509. stock fm_cs_get_weapon_ent_owner(ent)

  510. {

  511.         return get_pdata_cbase(ent, OFFSET_WEAPONOWNER, OFFSET_LINUX_WEAPONS)

  512. }

  513.  

  514. stock UTIL_PlayWeaponAnimation(const Player, const Sequence)

  515. {

  516.         set_pev(Player, pev_weaponanim, Sequence)

  517.        

  518.         message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player)

  519.         write_byte(Sequence)

  520.         write_byte(pev(Player, pev_body))

  521.         message_end()

  522. }

  523.  

  524. public xm8_ItemPostFrame(weapon_entity)

  525. {

  526.      new id = pev(weapon_entity, pev_owner)

  527.      if (!is_user_connected(id))

  528.           return HAM_IGNORED

  529.  

  530.      if (!g_has_xm8[id])

  531.           return HAM_IGNORED

  532.  

  533.      static iClipExtra

  534.      

  535.      iClipExtra = get_pcvar_num(cvar_clip_xm8)

  536.      new Float:flNextAttack = get_pdata_float(id, m_flNextAttack, PLAYER_LINUX_XTRA_OFF)

  537.  

  538.      new iBpAmmo = cs_get_user_bpammo(id, CSW_AUG)

  539.      new iClip = get_pdata_int(weapon_entity, m_iClip, WEAP_LINUX_XTRA_OFF)

  540.  

  541.      new fInReload = get_pdata_int(weapon_entity, m_fInReload, WEAP_LINUX_XTRA_OFF)

  542.  

  543.      if( fInReload && flNextAttack <= 0.0 )

  544.      {

  545.              new j = min(iClipExtra - iClip, iBpAmmo)

  546.        

  547.              set_pdata_int(weapon_entity, m_iClip, iClip + j, WEAP_LINUX_XTRA_OFF)

  548.              cs_set_user_bpammo(id, CSW_AUG, iBpAmmo-j)

  549.                

  550.              set_pdata_int(weapon_entity, m_fInReload, 0, WEAP_LINUX_XTRA_OFF)

  551.              fInReload = 0

  552.      }

  553.      return HAM_IGNORED

  554. }

  555.  

  556. public xm8_Reload(weapon_entity)

  557. {

  558.      new id = pev(weapon_entity, pev_owner)

  559.      if (!is_user_connected(id))

  560.           return HAM_IGNORED

  561.  

  562.      if (!g_has_xm8[id])

  563.           return HAM_IGNORED

  564.  

  565.      static iClipExtra

  566.  

  567.      if(g_has_xm8[id])

  568.           iClipExtra = get_pcvar_num(cvar_clip_xm8)

  569.  

  570.      g_xm8_TmpClip[id] = -1

  571.  

  572.      new iBpAmmo = cs_get_user_bpammo(id, CSW_AUG)

  573.      new iClip = get_pdata_int(weapon_entity, m_iClip, WEAP_LINUX_XTRA_OFF)

  574.  

  575.      if (iBpAmmo <= 0)

  576.           return HAM_SUPERCEDE

  577.  

  578.      if (iClip >= iClipExtra)

  579.           return HAM_SUPERCEDE

  580.  

  581.      g_xm8_TmpClip[id] = iClip

  582.  

  583.      return HAM_IGNORED

  584. }

  585.  

  586. public xm8_Reload_Post(weapon_entity)

  587. {

  588.         new id = pev(weapon_entity, pev_owner)

  589.         if (!is_user_connected(id))

  590.                 return HAM_IGNORED

  591.  

  592.         if (!g_has_xm8[id])

  593.                 return HAM_IGNORED

  594.  

  595.         if (g_xm8_TmpClip[id] == -1)

  596.                 return HAM_IGNORED

  597.  

  598.         set_pdata_int(weapon_entity, m_iClip, g_xm8_TmpClip[id], WEAP_LINUX_XTRA_OFF)

  599.  

  600.         set_pdata_float(weapon_entity, m_flTimeWeaponIdle, xm8_RELOAD_TIME, WEAP_LINUX_XTRA_OFF)

  601.  

  602.         set_pdata_float(id, m_flNextAttack, xm8_RELOAD_TIME, PLAYER_LINUX_XTRA_OFF)

  603.  

  604.         set_pdata_int(weapon_entity, m_fInReload, 1, WEAP_LINUX_XTRA_OFF)

  605.  

  606.         UTIL_PlayWeaponAnimation(id, xm8_RELOAD)

  607.  

  608.         return HAM_IGNORED

  609. }

  610.  

  611. stock drop_weapons(id, dropwhat)

  612. {

  613.      static weapons[32], num, i, weaponid

  614.      num = 0

  615.      get_user_weapons(id, weapons, num)

  616.      

  617.      for (i = 0; i < num; i++)

  618.      {

  619.           weaponid = weapons[i]

  620.          

  621.           if (dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM))

  622.           {

  623.                static wname[32]

  624.                get_weaponname(weaponid, wname, sizeof wname - 1)

  625.                engclient_cmd(id, "drop", wname)

  626.           }

  627.      }

  628. }

  629.  


Ez pl. egy hibás, vagyis a menüben levonja a pénzt de a fegyót már oda nem adja. Ha tudod javítod légyszi? És megmutatod mi a hiba benne? akkor már az összeset meg tudom csinálni.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Írj! - Offtopik
HozzászólásElküldve:2012.08.04. 13:25 
Offline
Tiszteletbeli
Avatar

Csatlakozott:2011.09.18. 13:01
Hozzászólások:4274
Megköszönt másnak: 55 alkalommal
Megköszönték neki: 515 alkalommal
Bence98007 írta:
Hát igen de akkor is megmutatta hogy hogy kell, és ezt értékelem. Amúgy DeteCTOR nem tudom mennyire értesz a zps fegyókat pubra írásában, de vess erre egy pillantást:

Kód:
  1. #include <amxmodx>

  2. #include <engine>

  3. #include <fakemeta>

  4. #include <fun>

  5. #include <hamsandwich>

  6. #include <xs>

  7. #include <cstrike>

  8. /*

  9. #include <zombieplague>

  10. */

  11. #define ENG_NULLENT                     -1

  12. #define EV_INT_WEAPONKEY        EV_INT_impulse

  13. #define xm8_WEAPONKEY           862

  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 xm8_RELOAD_TIME  3.5

  33. #define xm8_RELOAD              1

  34. #define xm8_DRAW                2

  35. #define xm8_SHOOT1              3

  36. #define xm8_SHOOT2              4

  37.  

  38. #define write_coord_f(%1)       engfunc(EngFunc_WriteCoord,%1)

  39.  

  40. new const Fire_Sounds[][] = { "weapons/xm8_carbine.wav" }

  41.  

  42. new xm8_V_MODEL[64] = "models/zm/v_xm8.mdl"

  43. new xm8_P_MODEL[64] = "models/zm/p_xm8.mdl"

  44. new xm8_W_MODEL[64] = "models/zm/w_xm8.mdl"

  45.  

  46. new const GUNSHOT_DECALS[] = { 41, 42, 43, 44, 45 }

  47.  

  48. new cvar_dmg_xm8, cvar_recoil_xm8, g_itemid_xm8, cvar_clip_xm8, cvar_spd_xm8, cvar_xm8_ammo

  49. new g_MaxPlayers, g_orig_event_xm8, g_IsInPrimaryAttack

  50. new Float:cl_pushangle[MAX_PLAYERS + 1][3], m_iBlood[2]

  51. new g_has_xm8[33], g_clip_ammo[33], g_xm8_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: XM8 Basic Edition", "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_aug", "fw_xm8_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_aug", "fw_xm8_PrimaryAttack")

  76.         RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_aug", "fw_xm8_PrimaryAttack_Post", 1)

  77.         RegisterHam(Ham_Item_PostFrame, "weapon_aug", "xm8_ItemPostFrame")

  78.         RegisterHam(Ham_Weapon_Reload, "weapon_aug", "xm8_Reload")

  79.         RegisterHam(Ham_Weapon_Reload, "weapon_aug", "xm8_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_xm8 = register_cvar("zp_xm8_dmg", "1.0")

  94.         cvar_recoil_xm8 = register_cvar("zp_xm8_recoil", "0.98")

  95.         cvar_clip_xm8 = register_cvar("zp_xm8_clip", "30")

  96.         cvar_spd_xm8 = register_cvar("zp_xm8_spd", "0.92")

  97.         cvar_xm8_ammo = register_cvar("zp_xm8_ammo", "180")

  98.        

  99.         /*g_itemid_xm8 = zp_register_extra_item("[Assault Rifle] \rXM8 Limit", 5, ZP_TEAM_HUMAN)

  100.         g_MaxPlayers = get_maxplayers()

  101.         gmsgWeaponList = get_user_msgid("WeaponList")*/

  102.         register_clcmd("say /xm8", "xm8")

  103.         g_MaxPlayers = get_maxplayers()

  104. }

  105.  

  106. public plugin_precache()

  107. {

  108.         precache_model(xm8_V_MODEL)

  109.         precache_model(xm8_P_MODEL)

  110.         precache_model(xm8_W_MODEL)

  111.         for(new i = 0; i < sizeof Fire_Sounds; i++)

  112.         precache_sound(Fire_Sounds[i]) 

  113.         precache_sound("weapons/xm8_clipin.wav")

  114.         precache_sound("weapons/xm8_clipon.wav")

  115.         precache_sound("weapons/xm8_clipout.wav")

  116.         precache_sound("weapons/xm8_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_xm8.txt")

  120.         precache_generic("sprites/zm/640hud22.spr")

  121.         precache_generic("sprites/zm/640hud7.spr")

  122.        

  123.         register_clcmd("weapon_xm8", "weapon_hook")    

  124.  

  125.         register_forward(FM_PrecacheEvent, "fwPrecacheEvent_Post", 1)

  126. }

  127.  

  128. public weapon_hook(id)

  129. {

  130.         engclient_cmd(id, "weapon_aug")

  131.         return PLUGIN_HANDLED

  132. }

  133.  

  134. public fw_TraceAttack(iEnt, iAttacker, Float:flDamage, Float:fDir[3], ptr, iDamageType)

  135. {

  136.         if(!is_user_alive(iAttacker))

  137.                 return

  138.  

  139.         new g_currentweapon = get_user_weapon(iAttacker)

  140.  

  141.         if(g_currentweapon != CSW_AUG) return

  142.        

  143.         if(!g_has_xm8[iAttacker]) return

  144.  

  145.         static Float:flEnd[3]

  146.         get_tr2(ptr, TR_vecEndPos, flEnd)

  147.        

  148.         if(iEnt)

  149.         {

  150.                 message_begin(MSG_BROADCAST, SVC_TEMPENTITY)

  151.                 write_byte(TE_DECAL)

  152.                 write_coord_f(flEnd[0])

  153.                 write_coord_f(flEnd[1])

  154.                 write_coord_f(flEnd[2])

  155.                 write_byte(GUNSHOT_DECALS[random_num (0, sizeof GUNSHOT_DECALS -1)])

  156.                 write_short(iEnt)

  157.                 message_end()

  158.         }

  159.         else

  160.         {

  161.                 message_begin(MSG_BROADCAST, SVC_TEMPENTITY)

  162.                 write_byte(TE_WORLDDECAL)

  163.                 write_coord_f(flEnd[0])

  164.                 write_coord_f(flEnd[1])

  165.                 write_coord_f(flEnd[2])

  166.                 write_byte(GUNSHOT_DECALS[random_num (0, sizeof GUNSHOT_DECALS -1)])

  167.                 message_end()

  168.         }

  169.         message_begin(MSG_BROADCAST, SVC_TEMPENTITY)

  170.         write_byte(TE_GUNSHOTDECAL)

  171.         write_coord_f(flEnd[0])

  172.         write_coord_f(flEnd[1])

  173.         write_coord_f(flEnd[2])

  174.         write_short(iAttacker)

  175.         write_byte(GUNSHOT_DECALS[random_num (0, sizeof GUNSHOT_DECALS -1)])

  176.         message_end()

  177. }

  178.  

  179. /*public zp_user_humanized_post(id)

  180. {

  181.         g_has_xm8[id] = false

  182. }*/

  183.  

  184. public plugin_natives ()

  185. {

  186.         register_native("give_weapon_xm8", "native_give_weapon_add", 1)

  187. }

  188. public native_give_weapon_add(id)

  189. {

  190.         give_xm8(id)

  191. }

  192.  

  193. public fwPrecacheEvent_Post(type, const name[])

  194. {

  195.         if (equal("events/aug.sc", name))

  196.         {

  197.                 g_orig_event_xm8 = get_orig_retval()

  198.                 return FMRES_HANDLED

  199.         }

  200.         return FMRES_IGNORED

  201. }

  202.  

  203. public client_connect(id)

  204. {

  205.         g_has_xm8[id] = false

  206. }

  207.  

  208. public client_disconnect(id)

  209. {

  210.         g_has_xm8[id] = false

  211. }

  212.  

  213. /*public zp_user_infected_post(id)

  214. {

  215.         if (zp_get_user_zombie(id))

  216.         {

  217.                 g_has_xm8[id] = false

  218.         }

  219. }*/

  220.  

  221. public fw_SetModel(entity, model[])

  222. {

  223.         if(!is_valid_ent(entity))

  224.                 return FMRES_IGNORED

  225.        

  226.         static szClassName[33]

  227.         entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))

  228.                

  229.         if(!equal(szClassName, "weaponbox"))

  230.                 return FMRES_IGNORED

  231.        

  232.         static iOwner

  233.        

  234.         iOwner = entity_get_edict(entity, EV_ENT_owner)

  235.        

  236.         if(equal(model, "models/w_aug.mdl"))

  237.         {

  238.                 static iStoredAugID

  239.                

  240.                 iStoredAugID = find_ent_by_owner(ENG_NULLENT, "weapon_aug", entity)

  241.        

  242.                 if(!is_valid_ent(iStoredAugID))

  243.                         return FMRES_IGNORED

  244.        

  245.                 if(g_has_xm8[iOwner])

  246.                 {

  247.                         entity_set_int(iStoredAugID, EV_INT_WEAPONKEY, xm8_WEAPONKEY)

  248.                        

  249.                         g_has_xm8[iOwner] = false

  250.                        

  251.                         entity_set_model(entity, xm8_W_MODEL)

  252.                        

  253.                         return FMRES_SUPERCEDE

  254.                 }

  255.         }

  256.         return FMRES_IGNORED

  257. }

  258.  

  259. public give_xm8(id)

  260. {

  261.         drop_weapons(id, 1)

  262.         new iWep2 = give_item(id,"weapon_aug")

  263.         if( iWep2 > 0 )

  264.         {

  265.                 cs_set_weapon_ammo(iWep2, get_pcvar_num(cvar_clip_xm8))

  266.                 cs_set_user_bpammo (id, CSW_AUG, get_pcvar_num(cvar_xm8_ammo)) 

  267.                 UTIL_PlayWeaponAnimation(id, xm8_DRAW)

  268.                 set_pdata_float(id, m_flNextAttack, 1.0, PLAYER_LINUX_XTRA_OFF)

  269.  

  270.                 message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)

  271.                 write_string("weapon_xm8")

  272.                 write_byte(4)

  273.                 write_byte(90)

  274.                 write_byte(-1)

  275.                 write_byte(-1)

  276.                 write_byte(0)

  277.                 write_byte(14)

  278.                 write_byte(CSW_AUG)

  279.                 message_end()

  280.         }

  281.         g_has_xm8[id] = true

  282. }

  283.  

  284. public xm8(id, itemid)

  285. {

  286.         if(itemid != g_itemid_xm8)

  287.                 return

  288.  

  289.         give_xm8(id)

  290. }

  291.  

  292. public fw_xm8_AddToPlayer(xm8, id)

  293. {

  294.         if(!is_valid_ent(xm8) || !is_user_connected(id))

  295.                 return HAM_IGNORED

  296.        

  297.         if(entity_get_int(xm8, EV_INT_WEAPONKEY) == xm8_WEAPONKEY)

  298.         {

  299.                 g_has_xm8[id] = true

  300.                

  301.                 entity_set_int(xm8, EV_INT_WEAPONKEY, 0)

  302.  

  303.                 message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)

  304.                 write_string("weapon_xm8")

  305.                 write_byte(4)

  306.                 write_byte(90)

  307.                 write_byte(-1)

  308.                 write_byte(-1)

  309.                 write_byte(0)

  310.                 write_byte(14)

  311.                 write_byte(CSW_AUG)

  312.                 message_end()

  313.                

  314.                 return HAM_HANDLED

  315.         }

  316.         else

  317.         {

  318.                 message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)

  319.                 write_string("weapon_aug")

  320.                 write_byte(4)

  321.                 write_byte(90)

  322.                 write_byte(-1)

  323.                 write_byte(-1)

  324.                 write_byte(0)

  325.                 write_byte(14)

  326.                 write_byte(CSW_AUG)

  327.                 message_end()

  328.         }

  329.         return HAM_IGNORED

  330. }

  331.  

  332. public fw_UseStationary_Post(entity, caller, activator, use_type)

  333. {

  334.         if (use_type == USE_STOPPED && is_user_connected(caller))

  335.                 replace_weapon_models(caller, get_user_weapon(caller))

  336. }

  337.  

  338. public fw_Item_Deploy_Post(weapon_ent)

  339. {

  340.         static owner

  341.         owner = fm_cs_get_weapon_ent_owner(weapon_ent)

  342.        

  343.         static weaponid

  344.         weaponid = cs_get_weapon_id(weapon_ent)

  345.        

  346.         replace_weapon_models(owner, weaponid)

  347. }

  348.  

  349. public CurrentWeapon(id)

  350. {

  351.      replace_weapon_models(id, read_data(2))

  352.  

  353.      if(read_data(2) != CSW_AUG || !g_has_xm8[id])

  354.           return

  355.      

  356.      static Float:iSpeed

  357.      if(g_has_xm8[id])

  358.           iSpeed = get_pcvar_float(cvar_spd_xm8)

  359.      

  360.      static weapon[32],Ent

  361.      get_weaponname(read_data(2),weapon,31)

  362.      Ent = find_ent_by_owner(-1,weapon,id)

  363.      if(Ent)

  364.      {

  365.           static Float:Delay

  366.           Delay = get_pdata_float( Ent, 46, 4) * iSpeed

  367.           if (Delay > 0.0)

  368.           {

  369.                set_pdata_float(Ent, 46, Delay, 4)

  370.           }

  371.      }

  372. }

  373.  

  374. replace_weapon_models(id, weaponid)

  375. {

  376.         switch (weaponid)

  377.         {

  378.                 case CSW_AUG:

  379.                 {

  380.                         new CsTeams:userTeam = cs_get_user_team(id)

  381.                         if (userTeam == CS_TEAM_T && CS_TEAM_CT && CS_TEAM_SPECTATOR)

  382.                                 return;

  383.                        

  384.                         if(g_has_xm8[id])

  385.                         {

  386.                                 set_pev(id, pev_viewmodel2, xm8_V_MODEL)

  387.                                 set_pev(id, pev_weaponmodel2, xm8_P_MODEL)

  388.                                 if(oldweap[id] != CSW_AUG)

  389.                                 {

  390.                                         UTIL_PlayWeaponAnimation(id, xm8_DRAW)

  391.                                         set_pdata_float(id, m_flNextAttack, 1.0, PLAYER_LINUX_XTRA_OFF)

  392.  

  393.                                         message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)

  394.                                         write_string("weapon_xm8")

  395.                                         write_byte(4)

  396.                                         write_byte(90)

  397.                                         write_byte(-1)

  398.                                         write_byte(-1)

  399.                                         write_byte(0)

  400.                                         write_byte(14)

  401.                                         write_byte(CSW_AUG)

  402.                                         message_end()

  403.                                 }

  404.                         }

  405.                 }

  406.         }

  407.         oldweap[id] = weaponid

  408. }

  409.  

  410. public fw_UpdateClientData_Post(Player, SendWeapons, CD_Handle)

  411. {

  412.         if(!is_user_alive(Player) || (get_user_weapon(Player) != CSW_AUG || !g_has_xm8[Player]))

  413.                 return FMRES_IGNORED

  414.        

  415.         set_cd(CD_Handle, CD_flNextAttack, halflife_time () + 0.001)

  416.         return FMRES_HANDLED

  417. }

  418.  

  419. public fw_xm8_PrimaryAttack(Weapon)

  420. {

  421.         new Player = get_pdata_cbase(Weapon, 41, 4)

  422.        

  423.         if (!g_has_xm8[Player])

  424.                 return

  425.        

  426.         g_IsInPrimaryAttack = 1

  427.         pev(Player,pev_punchangle,cl_pushangle[Player])

  428.        

  429.         g_clip_ammo[Player] = cs_get_weapon_ammo(Weapon)

  430. }

  431.  

  432. public fwPlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2)

  433. {

  434.         if ((eventid != g_orig_event_xm8) || !g_IsInPrimaryAttack)

  435.                 return FMRES_IGNORED

  436.         if (!(1 <= invoker <= g_MaxPlayers))

  437.     return FMRES_IGNORED

  438.  

  439.         playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2)

  440.         return FMRES_SUPERCEDE

  441. }

  442.  

  443. public fw_xm8_PrimaryAttack_Post(Weapon)

  444. {

  445.         g_IsInPrimaryAttack = 0

  446.         new Player = get_pdata_cbase(Weapon, 41, 4)

  447.        

  448.         new szClip, szAmmo

  449.         get_user_weapon(Player, szClip, szAmmo)

  450.        

  451.         if(!is_user_alive(Player))

  452.                 return

  453.  

  454.         if(g_has_xm8[Player])

  455.         {

  456.                 if (!g_clip_ammo[Player])

  457.                         return

  458.  

  459.                 new Float:push[3]

  460.                 pev(Player,pev_punchangle,push)

  461.                 xs_vec_sub(push,cl_pushangle[Player],push)

  462.                

  463.                 xs_vec_mul_scalar(push,get_pcvar_float(cvar_recoil_xm8),push)

  464.                 xs_vec_add(push,cl_pushangle[Player],push)

  465.                 set_pev(Player,pev_punchangle,push)

  466.                

  467.                 emit_sound(Player, CHAN_WEAPON, Fire_Sounds[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM)

  468.                 UTIL_PlayWeaponAnimation(Player, random_num(xm8_SHOOT1, xm8_SHOOT2))

  469.         }

  470. }

  471.  

  472. public fw_TakeDamage(victim, inflictor, attacker, Float:damage)

  473. {

  474.         if (victim != attacker && is_user_connected(attacker))

  475.         {

  476.                 if(get_user_weapon(attacker) == CSW_AUG)

  477.                 {

  478.                         if(g_has_xm8[attacker])

  479.                                 SetHamParamFloat(4, damage * get_pcvar_float(cvar_dmg_xm8))

  480.                 }

  481.         }

  482. }

  483.  

  484. public message_DeathMsg(msg_id, msg_dest, id)

  485. {

  486.         static szTruncatedWeapon[33], iAttacker, iVictim

  487.        

  488.         get_msg_arg_string(4, szTruncatedWeapon, charsmax(szTruncatedWeapon))

  489.        

  490.         iAttacker = get_msg_arg_int(1)

  491.         iVictim = get_msg_arg_int(2)

  492.        

  493.         if(!is_user_connected(iAttacker) || iAttacker == iVictim)

  494.                 return PLUGIN_CONTINUE

  495.        

  496.         if(equal(szTruncatedWeapon, "aug") && get_user_weapon(iAttacker) == CSW_AUG)

  497.         {

  498.                 if(g_has_xm8[iAttacker])

  499.                         set_msg_arg_string(4, "aug")

  500.         }

  501.         return PLUGIN_CONTINUE

  502. }

  503.  

  504. stock fm_cs_get_current_weapon_ent(id)

  505. {

  506.         return get_pdata_cbase(id, OFFSET_ACTIVE_ITEM, OFFSET_LINUX)

  507. }

  508.  

  509. stock fm_cs_get_weapon_ent_owner(ent)

  510. {

  511.         return get_pdata_cbase(ent, OFFSET_WEAPONOWNER, OFFSET_LINUX_WEAPONS)

  512. }

  513.  

  514. stock UTIL_PlayWeaponAnimation(const Player, const Sequence)

  515. {

  516.         set_pev(Player, pev_weaponanim, Sequence)

  517.        

  518.         message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player)

  519.         write_byte(Sequence)

  520.         write_byte(pev(Player, pev_body))

  521.         message_end()

  522. }

  523.  

  524. public xm8_ItemPostFrame(weapon_entity)

  525. {

  526.      new id = pev(weapon_entity, pev_owner)

  527.      if (!is_user_connected(id))

  528.           return HAM_IGNORED

  529.  

  530.      if (!g_has_xm8[id])

  531.           return HAM_IGNORED

  532.  

  533.      static iClipExtra

  534.      

  535.      iClipExtra = get_pcvar_num(cvar_clip_xm8)

  536.      new Float:flNextAttack = get_pdata_float(id, m_flNextAttack, PLAYER_LINUX_XTRA_OFF)

  537.  

  538.      new iBpAmmo = cs_get_user_bpammo(id, CSW_AUG)

  539.      new iClip = get_pdata_int(weapon_entity, m_iClip, WEAP_LINUX_XTRA_OFF)

  540.  

  541.      new fInReload = get_pdata_int(weapon_entity, m_fInReload, WEAP_LINUX_XTRA_OFF)

  542.  

  543.      if( fInReload && flNextAttack <= 0.0 )

  544.      {

  545.              new j = min(iClipExtra - iClip, iBpAmmo)

  546.        

  547.              set_pdata_int(weapon_entity, m_iClip, iClip + j, WEAP_LINUX_XTRA_OFF)

  548.              cs_set_user_bpammo(id, CSW_AUG, iBpAmmo-j)

  549.                

  550.              set_pdata_int(weapon_entity, m_fInReload, 0, WEAP_LINUX_XTRA_OFF)

  551.              fInReload = 0

  552.      }

  553.      return HAM_IGNORED

  554. }

  555.  

  556. public xm8_Reload(weapon_entity)

  557. {

  558.      new id = pev(weapon_entity, pev_owner)

  559.      if (!is_user_connected(id))

  560.           return HAM_IGNORED

  561.  

  562.      if (!g_has_xm8[id])

  563.           return HAM_IGNORED

  564.  

  565.      static iClipExtra

  566.  

  567.      if(g_has_xm8[id])

  568.           iClipExtra = get_pcvar_num(cvar_clip_xm8)

  569.  

  570.      g_xm8_TmpClip[id] = -1

  571.  

  572.      new iBpAmmo = cs_get_user_bpammo(id, CSW_AUG)

  573.      new iClip = get_pdata_int(weapon_entity, m_iClip, WEAP_LINUX_XTRA_OFF)

  574.  

  575.      if (iBpAmmo <= 0)

  576.           return HAM_SUPERCEDE

  577.  

  578.      if (iClip >= iClipExtra)

  579.           return HAM_SUPERCEDE

  580.  

  581.      g_xm8_TmpClip[id] = iClip

  582.  

  583.      return HAM_IGNORED

  584. }

  585.  

  586. public xm8_Reload_Post(weapon_entity)

  587. {

  588.         new id = pev(weapon_entity, pev_owner)

  589.         if (!is_user_connected(id))

  590.                 return HAM_IGNORED

  591.  

  592.         if (!g_has_xm8[id])

  593.                 return HAM_IGNORED

  594.  

  595.         if (g_xm8_TmpClip[id] == -1)

  596.                 return HAM_IGNORED

  597.  

  598.         set_pdata_int(weapon_entity, m_iClip, g_xm8_TmpClip[id], WEAP_LINUX_XTRA_OFF)

  599.  

  600.         set_pdata_float(weapon_entity, m_flTimeWeaponIdle, xm8_RELOAD_TIME, WEAP_LINUX_XTRA_OFF)

  601.  

  602.         set_pdata_float(id, m_flNextAttack, xm8_RELOAD_TIME, PLAYER_LINUX_XTRA_OFF)

  603.  

  604.         set_pdata_int(weapon_entity, m_fInReload, 1, WEAP_LINUX_XTRA_OFF)

  605.  

  606.         UTIL_PlayWeaponAnimation(id, xm8_RELOAD)

  607.  

  608.         return HAM_IGNORED

  609. }

  610.  

  611. stock drop_weapons(id, dropwhat)

  612. {

  613.      static weapons[32], num, i, weaponid

  614.      num = 0

  615.      get_user_weapons(id, weapons, num)

  616.      

  617.      for (i = 0; i < num; i++)

  618.      {

  619.           weaponid = weapons[i]

  620.          

  621.           if (dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM))

  622.           {

  623.                static wname[32]

  624.                get_weaponname(weaponid, wname, sizeof wname - 1)

  625.                engclient_cmd(id, "drop", wname)

  626.           }

  627.      }

  628. }

  629.  


Ez pl. egy hibás, vagyis a menüben levonja a pénzt de a fegyót már oda nem adja. Ha tudod javítod légyszi? És megmutatod mi a hiba benne? akkor már az összeset meg tudom csinálni.


Kód:
  1. register_clcmd("say /xm8", "xm8")

---->>
Kód:
  1. register_clcmd("say /xm8", "give_xm8")


Es baszod vedd ki az alairasodbol :DAtirni se tudsz zp-fegyobol pubra oszt mar konfigolni akarod?:D

_________________
Idk. Csak ugy funbooo.
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Írj! - Offtopik
HozzászólásElküldve:2012.08.04. 13:35 
Offline
Őskövület
Avatar

Csatlakozott:2013.01.01. 17:48
Hozzászólások:2441
Megköszönt másnak: 18 alkalommal
Megköszönték neki: 21 alkalommal
Néééééémmmm :) az marad ott ahol van :) ZE-t meg tudok configolni ^^ köszi hogy segítettél Detector! Rendes tőled! És a menüben is a client_cmd(id, "give_xm8") lesz nemde?


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Írj! - Offtopik
HozzászólásElküldve:2012.08.04. 13:38 
Offline
Tiszteletbeli
Avatar

Csatlakozott:2011.09.18. 13:01
Hozzászólások:4274
Megköszönt másnak: 55 alkalommal
Megköszönték neki: 515 alkalommal
Bence98007 írta:
Néééééémmmm :) az marad ott ahol van :) ZE-t meg tudok configolni ^^ köszi hogy segítettél Detector! Rendes tőled! És a menüben is a client_cmd(id, "give_xm8") lesz nemde?

Persze hogynem De te tudsz Ze-t konfigolni :D :lol:

_________________
Idk. Csak ugy funbooo.
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Írj! - Offtopik
HozzászólásElküldve:2012.08.04. 13:41 
Offline
Őskövület
Avatar

Csatlakozott:2013.01.01. 17:48
Hozzászólások:2441
Megköszönt másnak: 18 alkalommal
Megköszönték neki: 21 alkalommal
Ez most nem nagyon ZE hez tartozik szal ssuk van xD


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Írj! - Offtopik
HozzászólásElküldve:2012.08.04. 13:43 
Offline
Őskövület
Avatar

Csatlakozott:2013.01.01. 17:48
Hozzászólások:2441
Megköszönt másnak: 18 alkalommal
Megköszönték neki: 21 alkalommal
Akkor a client cmdt is írjam át ugye?


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Írj! - Offtopik
HozzászólásElküldve:2012.08.04. 16:44 
Offline
Signore Senior
Avatar

Csatlakozott:2011.09.09. 17:39
Hozzászólások:4020
Megköszönt másnak: 12 alkalommal
Megköszönték neki: 139 alkalommal
lol...

Gyerek HFG-nél rámír. Szia, írtam egy plugint, be tudnád nekem tenni?

Mondom azigen. Mi a neve?

Advanced Resetscore

én itt le is tiltottam msn-ről :D :D :D


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Írj! - Offtopik
HozzászólásElküldve:2012.08.04. 16:54 
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
xDDDDD pedig biztos sokat dolgozott vele :D

Bence:
Kód:
  1. register_clcmd("say /xm8", "xm8")

Kód:
  1. client_cmd(id, "xm8")

Az a SAY nem kell oda.

_________________
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: Írj! - Offtopik
HozzászólásElküldve:2012.08.04. 17:25 
Offline
Őskövület
Avatar

Csatlakozott:2013.01.01. 17:48
Hozzászólások:2441
Megköszönt másnak: 18 alkalommal
Megköszönték neki: 21 alkalommal
HunGamer írta:
xDDDDD pedig biztos sokat dolgozott vele :D

Bence:
Kód:
  1. register_clcmd("say /xm8", "xm8")

Kód:
  1. client_cmd(id, "xm8")

Az a SAY nem kell oda.


Ezt nem értem teljesen.... amikor a register_clcmd-t csinálom, ott say /xm8, de én nem írtam a client_cmdhez hogy say... Hungamer részleteznéd mert így nem nagyon értem...


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  [39303 hozzászólás ]  OldalElőző18288298308318323931Következő


Ki van itt

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