hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.04.27. 18:36



Jelenlévő felhasználók

Jelenleg 528 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 528 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  [ 8 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: vizi pisztoly
HozzászólásElküldve: 2013.05.09. 20:17 
Offline
Tud valamit

Csatlakozott: 2013.02.17. 00:16
Hozzászólások: 144
Megköszönt másnak: 12 alkalommal
sziasztok nekem kéne egy olyan plugin ami tartalmazza vizi pisztolyt és ha admin be irja /vp akkor kap egy vizipisztolyt
kick jogra pls köszönöm

_________________
[url]<iframe src="http://cache.www.gametracker.com/components/html0/?host=91.82.84.214:27224&bgColor=333333&fontColor=CCCCCC&titleBgColor=222222&titleColor=FF9900&borderColor=555555&linkColor=FFCC00&borderLinkColor=222222&showMap=1&currentPlayersHeight=100&showCurrPlayers=1&showTopPlayers=0&showBlogs=0&width=240"[/url]


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: vizi pisztoly
HozzászólásElküldve: 2013.05.09. 20:18 
Offline
Veterán
Avatar

Csatlakozott: 2012.09.01. 22:19
Hozzászólások: 1697
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 302 alkalommal
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <engine>
  3. #include <fakemeta>
  4. #include <fun>
  5. #include <hamsandwich>
  6. #include <xs>
  7. #include <cstrike>
  8.  
  9. #define ENG_NULLENT -1
  10. #define EV_INT_WEAPONKEY EV_INT_impulse
  11. #define watergun_WEAPONKEY 893
  12. #define MAX_PLAYERS 32
  13. #define IsValidUser(%1) (1 <= %1 <= g_MaxPlayers)
  14.  
  15. #define JOG ADMIN_KICK
  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 watergun_RELOAD_TIME 3.5
  33. #define watergun_RELOAD 1
  34. #define watergun_DRAW 2
  35. #define watergun_SHOOT1 3
  36. #define watergun_SHOOT2 4
  37.  
  38. #define write_coord_f(%1) engfunc(EngFunc_WriteCoord,%1)
  39.  
  40. new const Fire_Sounds[][] = { "weapons/waterp.wav" }
  41.  
  42. new watergun_V_MODEL[64] = "models/v_waterpistol.mdl"
  43. new watergun_P_MODEL[64] = "models/p_waterpistol.mdl"
  44. new watergun_W_MODEL[64] = "models/w_waterpistol.mdl"
  45.  
  46. //new const GUNSHOT_DECALS[] = { 41, 42, 43, 44, 45 }
  47.  
  48. new cvar_dmg_watergun, cvar_recoil_watergun, cvar_clip_watergun, cvar_spd_watergun, cvar_watergun_ammo
  49. new g_MaxPlayers, g_orig_event_watergun, g_IsInPrimaryAttack
  50. new Float:cl_pushangle[MAX_PLAYERS + 1][3], m_iBlood[2]
  51. new g_has_watergun[33], g_clip_ammo[33], g_watergun_TmpClip[33], oldweap[33]
  52. new watergun_sprite
  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("Water Gun", "1.0", "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_mp5navy", "fw_watergun_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_mp5navy", "fw_watergun_PrimaryAttack")
  76. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_mp5navy", "fw_watergun_PrimaryAttack_Post", 1)
  77. RegisterHam(Ham_Item_PostFrame, "weapon_mp5navy", "watergun_ItemPostFrame")
  78. RegisterHam(Ham_Weapon_Reload, "weapon_mp5navy", "watergun_Reload")
  79. RegisterHam(Ham_Weapon_Reload, "weapon_mp5navy", "watergun_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_watergun = register_cvar("watergun_dmg", "1.20")
  94. cvar_recoil_watergun = register_cvar("watergun_recoil", "1.01")
  95. cvar_clip_watergun = register_cvar("watergun_clip", "999")
  96. cvar_spd_watergun = register_cvar("watergun_spd", "1.02")
  97. cvar_watergun_ammo = register_cvar("watergun_ammo", "999")
  98.  
  99. g_MaxPlayers = get_maxplayers()
  100.  
  101. register_clcmd("say /vp", "GiveWaterGun")
  102. register_clcmd("say_team /vp", "GiveWaterGun")
  103. }
  104.  
  105. public plugin_precache()
  106. {
  107. precache_model(watergun_V_MODEL)
  108. precache_model(watergun_P_MODEL)
  109. precache_model(watergun_W_MODEL)
  110. for(new i = 0; i < sizeof Fire_Sounds; i++)
  111. precache_sound(Fire_Sounds[i])
  112. precache_sound("weapons/water_clipin.wav")
  113. precache_sound("weapons/water_clipout.wav")
  114. precache_sound("weapons/water_pump.wav")
  115. precache_sound("weapons/water_draw.wav")
  116. m_iBlood[0] = precache_model("sprites/blood.spr")
  117. m_iBlood[1] = precache_model("sprites/bloodspray.spr")
  118. watergun_sprite = precache_model("sprites/watergun.spr")
  119.  
  120. register_forward(FM_PrecacheEvent, "fwPrecacheEvent_Post", 1)
  121. }
  122.  
  123. public fwPrecacheEvent_Post(type, const name[])
  124. {
  125. if (equal("events/mp5n.sc", name))
  126. {
  127. g_orig_event_watergun = get_orig_retval()
  128. return FMRES_HANDLED
  129. }
  130. return FMRES_IGNORED
  131. }
  132.  
  133. public client_connect(id)
  134. {
  135. g_has_watergun[id] = false
  136. }
  137.  
  138. public client_disconnect(id)
  139. {
  140. g_has_watergun[id] = false
  141. }
  142.  
  143. public fw_SetModel(entity, model[])
  144. {
  145. if(!is_valid_ent(entity))
  146. return FMRES_IGNORED
  147.  
  148. static szClassName[33]
  149. entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
  150.  
  151. if(!equal(szClassName, "weaponbox"))
  152. return FMRES_IGNORED
  153.  
  154. static iOwner
  155.  
  156. iOwner = entity_get_edict(entity, EV_ENT_owner)
  157.  
  158. if(equal(model, "models/w_mp5.mdl"))
  159. {
  160. static iStoredAugID
  161.  
  162. iStoredAugID = find_ent_by_owner(ENG_NULLENT, "weapon_mp5navy", entity)
  163.  
  164. if(!is_valid_ent(iStoredAugID))
  165. return FMRES_IGNORED
  166.  
  167. if(g_has_watergun[iOwner])
  168. {
  169. entity_set_int(iStoredAugID, EV_INT_WEAPONKEY, watergun_WEAPONKEY)
  170.  
  171. g_has_watergun[iOwner] = false
  172.  
  173. entity_set_model(entity, watergun_W_MODEL)
  174.  
  175. return FMRES_SUPERCEDE
  176. }
  177. }
  178. return FMRES_IGNORED
  179. }
  180.  
  181. public GiveWaterGun(id)
  182. {
  183. if(get_user_flags(id) & JOG)
  184. {
  185. drop_weapons(id, 1)
  186. new iWep2 = give_item(id,"weapon_mp5navy")
  187. if( iWep2 > 0 )
  188. {
  189. cs_set_weapon_ammo(iWep2, get_pcvar_num(cvar_clip_watergun))
  190. cs_set_user_bpammo (id, CSW_MP5NAVY, get_pcvar_num(cvar_watergun_ammo))
  191. UTIL_PlayWeaponAnimation(id, watergun_DRAW)
  192. set_pdata_float(id, m_flNextAttack, 1.0, PLAYER_LINUX_XTRA_OFF)
  193. }
  194. g_has_watergun[id] = true
  195. }
  196. else
  197. {
  198. client_print(id, print_chat, "Csak vip-k vehetnek vizipisztolyt!")
  199. }
  200. }
  201.  
  202. public fw_watergun_AddToPlayer(watergun, id)
  203. {
  204. if(!is_valid_ent(watergun) || !is_user_connected(id))
  205. return HAM_IGNORED
  206.  
  207. if(entity_get_int(watergun, EV_INT_WEAPONKEY) == watergun_WEAPONKEY)
  208. {
  209. g_has_watergun[id] = true
  210.  
  211. entity_set_int(watergun, EV_INT_WEAPONKEY, 0)
  212.  
  213. return HAM_HANDLED
  214. }
  215. return HAM_IGNORED
  216. }
  217.  
  218. public fw_UseStationary_Post(entity, caller, activator, use_type)
  219. {
  220. if (use_type == USE_STOPPED && is_user_connected(caller))
  221. replace_weapon_models(caller, get_user_weapon(caller))
  222. }
  223.  
  224. public fw_Item_Deploy_Post(weapon_ent)
  225. {
  226. static owner
  227. owner = fm_cs_get_weapon_ent_owner(weapon_ent)
  228.  
  229. static weaponid
  230. weaponid = cs_get_weapon_id(weapon_ent)
  231.  
  232. replace_weapon_models(owner, weaponid)
  233. }
  234.  
  235. public CurrentWeapon(id)
  236. {
  237. replace_weapon_models(id, read_data(2))
  238.  
  239. if(read_data(2) != CSW_MP5NAVY || !g_has_watergun[id])
  240. return
  241.  
  242. static Float:iSpeed
  243. if(g_has_watergun[id])
  244. iSpeed = get_pcvar_float(cvar_spd_watergun)
  245.  
  246. static weapon[32],Ent
  247. get_weaponname(read_data(2),weapon,31)
  248. Ent = find_ent_by_owner(-1,weapon,id)
  249. if(Ent)
  250. {
  251. static Float:Delay
  252. Delay = get_pdata_float( Ent, 46, 4) * iSpeed
  253. if (Delay > 0.0)
  254. {
  255. set_pdata_float(Ent, 46, Delay, 4)
  256. }
  257. }
  258. }
  259.  
  260. replace_weapon_models(id, weaponid)
  261. {
  262. switch (weaponid)
  263. {
  264. case CSW_MP5NAVY:
  265. {
  266. if(g_has_watergun[id])
  267. {
  268. set_pev(id, pev_viewmodel2, watergun_V_MODEL)
  269. set_pev(id, pev_weaponmodel2, watergun_P_MODEL)
  270. if(oldweap[id] != CSW_MP5NAVY)
  271. {
  272. UTIL_PlayWeaponAnimation(id, watergun_DRAW)
  273. set_pdata_float(id, m_flNextAttack, 1.0, PLAYER_LINUX_XTRA_OFF)
  274. }
  275. }
  276. }
  277. }
  278. oldweap[id] = weaponid
  279. }
  280.  
  281. public fw_UpdateClientData_Post(Player, SendWeapons, CD_Handle)
  282. {
  283. if(!is_user_alive(Player) || (get_user_weapon(Player) != CSW_MP5NAVY || !g_has_watergun[Player]))
  284. return FMRES_IGNORED
  285.  
  286. set_cd(CD_Handle, CD_flNextAttack, halflife_time () + 0.001)
  287. return FMRES_HANDLED
  288. }
  289.  
  290. public fw_watergun_PrimaryAttack(Weapon)
  291. {
  292. new Player = get_pdata_cbase(Weapon, 41, 4)
  293.  
  294. if (!g_has_watergun[Player])
  295. return
  296.  
  297. g_IsInPrimaryAttack = 1
  298. pev(Player,pev_punchangle,cl_pushangle[Player])
  299.  
  300. g_clip_ammo[Player] = cs_get_weapon_ammo(Weapon)
  301. }
  302.  
  303. public fwPlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2)
  304. {
  305. if ((eventid != g_orig_event_watergun) || !g_IsInPrimaryAttack)
  306. return FMRES_IGNORED
  307. if (!(1 <= invoker <= g_MaxPlayers))
  308. return FMRES_IGNORED
  309.  
  310. playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2)
  311. return FMRES_SUPERCEDE
  312. }
  313.  
  314. public fw_watergun_PrimaryAttack_Post(Weapon)
  315. {
  316. g_IsInPrimaryAttack = 0
  317. new Player = get_pdata_cbase(Weapon, 41, 4)
  318.  
  319. new szClip, szAmmo
  320. get_user_weapon(Player, szClip, szAmmo)
  321.  
  322. if(!is_user_alive(Player))
  323. return
  324.  
  325. if(g_has_watergun[Player])
  326. {
  327. if (!g_clip_ammo[Player])
  328. return
  329.  
  330. new Float:push[3]
  331. pev(Player,pev_punchangle,push)
  332. xs_vec_sub(push,cl_pushangle[Player],push)
  333.  
  334. xs_vec_mul_scalar(push,get_pcvar_float(cvar_recoil_watergun),push)
  335. xs_vec_add(push,cl_pushangle[Player],push)
  336. set_pev(Player,pev_punchangle,push)
  337.  
  338. emit_sound(Player, CHAN_WEAPON, Fire_Sounds[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  339. UTIL_PlayWeaponAnimation(Player, random_num(watergun_SHOOT1, watergun_SHOOT2))
  340.  
  341. static Float:plrViewAngles[3], Float:VecEnd[3], Float:VecDir[3], Float:PlrOrigin[3]
  342. pev(Player, pev_v_angle, plrViewAngles)
  343.  
  344. static Float:VecSrc[3], Float:VecDst[3]
  345.  
  346. //VecSrc = pev->origin + pev->view_ofs
  347. pev(Player, pev_origin, PlrOrigin)
  348. pev(Player, pev_view_ofs, VecSrc)
  349. xs_vec_add(VecSrc, PlrOrigin, VecSrc)
  350.  
  351. //VecDst = VecDir * 8192.0
  352. angle_vector(plrViewAngles, ANGLEVECTOR_FORWARD, VecDir);
  353. xs_vec_mul_scalar(VecDir, 8192.0, VecDst);
  354. xs_vec_add(VecDst, VecSrc, VecDst);
  355.  
  356. new hTrace = create_tr2()
  357. engfunc(EngFunc_TraceLine, VecSrc, VecDst, 0, Player, hTrace)
  358. get_tr2(hTrace, TR_vecEndPos, VecEnd);
  359.  
  360. create_tracer_water(Player, VecSrc, VecEnd)
  361. }
  362. }
  363.  
  364. public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
  365. {
  366. if (victim != attacker && is_user_connected(attacker))
  367. {
  368. if(get_user_weapon(attacker) == CSW_MP5NAVY)
  369. {
  370. if(g_has_watergun[attacker])
  371. SetHamParamFloat(4, damage * get_pcvar_float(cvar_dmg_watergun))
  372. }
  373. }
  374. }
  375.  
  376. public message_DeathMsg(msg_id, msg_dest, id)
  377. {
  378. static szTruncatedWeapon[33], iAttacker, iVictim
  379.  
  380. get_msg_arg_string(4, szTruncatedWeapon, charsmax(szTruncatedWeapon))
  381.  
  382. iAttacker = get_msg_arg_int(1)
  383. iVictim = get_msg_arg_int(2)
  384.  
  385. if(!is_user_connected(iAttacker) || iAttacker == iVictim)
  386. return PLUGIN_CONTINUE
  387.  
  388. if(equal(szTruncatedWeapon, "mp5navy") && get_user_weapon(iAttacker) == CSW_MP5NAVY)
  389. {
  390. if(g_has_watergun[iAttacker])
  391. set_msg_arg_string(4, "mp5navy")
  392. }
  393. return PLUGIN_CONTINUE
  394. }
  395.  
  396. stock fm_cs_get_current_weapon_ent(id)
  397. {
  398. return get_pdata_cbase(id, OFFSET_ACTIVE_ITEM, OFFSET_LINUX)
  399. }
  400.  
  401. stock fm_cs_get_weapon_ent_owner(ent)
  402. {
  403. return get_pdata_cbase(ent, OFFSET_WEAPONOWNER, OFFSET_LINUX_WEAPONS)
  404. }
  405.  
  406. stock UTIL_PlayWeaponAnimation(const Player, const Sequence)
  407. {
  408. set_pev(Player, pev_weaponanim, Sequence)
  409.  
  410. message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player)
  411. write_byte(Sequence)
  412. write_byte(pev(Player, pev_body))
  413. message_end()
  414. }
  415.  
  416. public watergun_ItemPostFrame(weapon_entity)
  417. {
  418. new id = pev(weapon_entity, pev_owner)
  419. if (!is_user_connected(id))
  420. return HAM_IGNORED
  421.  
  422. if (!g_has_watergun[id])
  423. return HAM_IGNORED
  424.  
  425. static iClipExtra
  426.  
  427. iClipExtra = get_pcvar_num(cvar_clip_watergun)
  428. new Float:flNextAttack = get_pdata_float(id, m_flNextAttack, PLAYER_LINUX_XTRA_OFF)
  429.  
  430. new iBpAmmo = cs_get_user_bpammo(id, CSW_MP5NAVY);
  431. new iClip = get_pdata_int(weapon_entity, m_iClip, WEAP_LINUX_XTRA_OFF)
  432.  
  433. new fInReload = get_pdata_int(weapon_entity, m_fInReload, WEAP_LINUX_XTRA_OFF)
  434.  
  435. if( fInReload && flNextAttack <= 0.0 )
  436. {
  437. new j = min(iClipExtra - iClip, iBpAmmo)
  438.  
  439. set_pdata_int(weapon_entity, m_iClip, iClip + j, WEAP_LINUX_XTRA_OFF)
  440. cs_set_user_bpammo(id, CSW_MP5NAVY, iBpAmmo-j)
  441.  
  442. set_pdata_int(weapon_entity, m_fInReload, 0, WEAP_LINUX_XTRA_OFF)
  443. fInReload = 0
  444. }
  445. return HAM_IGNORED
  446. }
  447.  
  448. public watergun_Reload(weapon_entity)
  449. {
  450. new id = pev(weapon_entity, pev_owner)
  451. if (!is_user_connected(id))
  452. return HAM_IGNORED
  453.  
  454. if (!g_has_watergun[id])
  455. return HAM_IGNORED
  456.  
  457. static iClipExtra
  458.  
  459. if(g_has_watergun[id])
  460. iClipExtra = get_pcvar_num(cvar_clip_watergun)
  461.  
  462. g_watergun_TmpClip[id] = -1
  463.  
  464. new iBpAmmo = cs_get_user_bpammo(id, CSW_MP5NAVY)
  465. new iClip = get_pdata_int(weapon_entity, m_iClip, WEAP_LINUX_XTRA_OFF)
  466.  
  467. if (iBpAmmo <= 0)
  468. return HAM_SUPERCEDE
  469.  
  470. if (iClip >= iClipExtra)
  471. return HAM_SUPERCEDE
  472.  
  473. g_watergun_TmpClip[id] = iClip
  474.  
  475. return HAM_IGNORED
  476. }
  477.  
  478. public watergun_Reload_Post(weapon_entity)
  479. {
  480. new id = pev(weapon_entity, pev_owner)
  481. if (!is_user_connected(id))
  482. return HAM_IGNORED
  483.  
  484. if (!g_has_watergun[id])
  485. return HAM_IGNORED
  486.  
  487. if (g_watergun_TmpClip[id] == -1)
  488. return HAM_IGNORED
  489.  
  490. set_pdata_int(weapon_entity, m_iClip, g_watergun_TmpClip[id], WEAP_LINUX_XTRA_OFF)
  491.  
  492. set_pdata_float(weapon_entity, m_flTimeWeaponIdle, watergun_RELOAD_TIME, WEAP_LINUX_XTRA_OFF)
  493.  
  494. set_pdata_float(id, m_flNextAttack, watergun_RELOAD_TIME, PLAYER_LINUX_XTRA_OFF)
  495.  
  496. set_pdata_int(weapon_entity, m_fInReload, 1, WEAP_LINUX_XTRA_OFF)
  497.  
  498. UTIL_PlayWeaponAnimation(id, watergun_RELOAD)
  499.  
  500. return HAM_IGNORED
  501. }
  502.  
  503. stock create_tracer_water(id, Float:fVec1[3], Float:fVec2[3])
  504. {
  505. static iVec1[3]
  506. FVecIVec(fVec1, iVec1)
  507.  
  508. static Float:origin[3], Float:vSrc[3], Float:angles[3], Float:v_forward[3], Float:v_right[3], Float:v_up[3], Float:gun_position[3], Float:player_origin[3], Float:player_view_offset[3]
  509. pev(id, pev_v_angle, angles)
  510. engfunc(EngFunc_MakeVectors, angles)
  511. global_get(glb_v_forward, v_forward)
  512. global_get(glb_v_right, v_right)
  513. global_get(glb_v_up, v_up)
  514.  
  515. //m_pPlayer->GetGunPosition( ) = pev->origin + pev->view_ofs
  516. pev(id, pev_origin, player_origin)
  517. pev(id, pev_view_ofs, player_view_offset)
  518. xs_vec_add(player_origin, player_view_offset, gun_position)
  519.  
  520. xs_vec_mul_scalar(v_forward, 24.0, v_forward)
  521. xs_vec_mul_scalar(v_right, 3.0, v_right)
  522.  
  523. if ((pev(id, pev_flags) & FL_DUCKING) == FL_DUCKING)
  524. xs_vec_mul_scalar(v_up, 6.0, v_up)
  525. else
  526. xs_vec_mul_scalar(v_up, -2.0, v_up)
  527.  
  528. xs_vec_add(gun_position, v_forward, origin)
  529. xs_vec_add(origin, v_right, origin)
  530. xs_vec_add(origin, v_up, origin)
  531.  
  532. vSrc[0] = origin[0]
  533. vSrc[1] = origin[1]
  534. vSrc[2] = origin[2]
  535.  
  536. new Float:dist = get_distance_f(vSrc, fVec2)
  537. new CountDrops = floatround(dist / 50.0)
  538.  
  539. if (CountDrops > 20)
  540. CountDrops = 20
  541.  
  542. if (CountDrops < 2)
  543. CountDrops = 2
  544.  
  545. message_begin(MSG_PAS, SVC_TEMPENTITY, iVec1)
  546. write_byte(TE_SPRITETRAIL)
  547. engfunc(EngFunc_WriteCoord, vSrc[0])
  548. engfunc(EngFunc_WriteCoord, vSrc[1])
  549. engfunc(EngFunc_WriteCoord, vSrc[2])
  550. engfunc(EngFunc_WriteCoord, fVec2[0])
  551. engfunc(EngFunc_WriteCoord, fVec2[1])
  552. engfunc(EngFunc_WriteCoord, fVec2[2])
  553. write_short(watergun_sprite)
  554. write_byte(CountDrops)
  555. write_byte(0)
  556. write_byte(1)
  557. write_byte(60)
  558. write_byte(10)
  559. message_end()
  560.  
  561. message_begin(MSG_PAS, SVC_TEMPENTITY, iVec1)
  562. write_byte(TE_BEAMPOINTS)
  563. engfunc(EngFunc_WriteCoord, fVec2[0])
  564. engfunc(EngFunc_WriteCoord, fVec2[1])
  565. engfunc(EngFunc_WriteCoord, fVec2[2])
  566. engfunc(EngFunc_WriteCoord, vSrc[0])
  567. engfunc(EngFunc_WriteCoord, vSrc[1])
  568. engfunc(EngFunc_WriteCoord, vSrc[2])
  569. write_short(watergun_sprite)
  570. write_byte(6)
  571. write_byte(200)
  572. write_byte(1)
  573. write_byte(100)
  574. write_byte(0)
  575. write_byte(64); write_byte(64); write_byte(192);
  576. write_byte(192)
  577. write_byte(250)
  578. message_end()
  579. }
  580.  
  581. stock drop_weapons(id, dropwhat)
  582. {
  583. static weapons[32], num, i, weaponid
  584. num = 0
  585. get_user_weapons(id, weapons, num)
  586.  
  587. for (i = 0; i < num; i++)
  588. {
  589. weaponid = weapons[i]
  590.  
  591. if (dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM))
  592. {
  593. static wname[32]
  594. get_weaponname(weaponid, wname, sizeof wname - 1)
  595. engclient_cmd(id, "drop", wname)
  596. }
  597. }
  598. }
  599.  
  600. public client_PreThink(id)
  601. {
  602. if(get_user_flags(id) & JOG)
  603. return PLUGIN_HANDLED;
  604.  
  605. if(user_has_weapon(id, CSW_MP5NAVY))
  606. {
  607. if(g_has_watergun[id])
  608. {
  609. client_cmd(id, "drop")
  610. }
  611. }
  612. }

_________________
Valami új kezdete...
Kép
Egyedi pluginok készítése pénzért (Banki átutalás, PayPal) -> Privát üzenet

Ők köszönték meg crazy` nek ezt a hozzászólást: kuka10 (2013.05.09. 20:54)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: vizi pisztoly
HozzászólásElküldve: 2013.05.09. 20:26 
Offline
Őstag

Csatlakozott: 2013.01.27. 17:48
Hozzászólások: 1247
Megköszönt másnak: 6 alkalommal
Megköszönték neki: 61 alkalommal
Modellek:
http://www.mediafire.com/?sg010ab0waj85a5

_________________
banned user

Ők köszönték meg JoGoBeLLa nek ezt a hozzászólást: kuka10 (2013.05.09. 20:54)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: vizi pisztoly
HozzászólásElküldve: 2013.05.09. 20:58 
Offline
Tud valamit

Csatlakozott: 2013.02.17. 00:16
Hozzászólások: 144
Megköszönt másnak: 12 alkalommal
crazy` írta:
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <engine>
  3. #include <fakemeta>
  4. #include <fun>
  5. #include <hamsandwich>
  6. #include <xs>
  7. #include <cstrike>
  8.  
  9. #define ENG_NULLENT -1
  10. #define EV_INT_WEAPONKEY EV_INT_impulse
  11. #define watergun_WEAPONKEY 893
  12. #define MAX_PLAYERS 32
  13. #define IsValidUser(%1) (1 <= %1 <= g_MaxPlayers)
  14.  
  15. #define JOG ADMIN_KICK
  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 watergun_RELOAD_TIME 3.5
  33. #define watergun_RELOAD 1
  34. #define watergun_DRAW 2
  35. #define watergun_SHOOT1 3
  36. #define watergun_SHOOT2 4
  37.  
  38. #define write_coord_f(%1) engfunc(EngFunc_WriteCoord,%1)
  39.  
  40. new const Fire_Sounds[][] = { "weapons/waterp.wav" }
  41.  
  42. new watergun_V_MODEL[64] = "models/v_waterpistol.mdl"
  43. new watergun_P_MODEL[64] = "models/p_waterpistol.mdl"
  44. new watergun_W_MODEL[64] = "models/w_waterpistol.mdl"
  45.  
  46. //new const GUNSHOT_DECALS[] = { 41, 42, 43, 44, 45 }
  47.  
  48. new cvar_dmg_watergun, cvar_recoil_watergun, cvar_clip_watergun, cvar_spd_watergun, cvar_watergun_ammo
  49. new g_MaxPlayers, g_orig_event_watergun, g_IsInPrimaryAttack
  50. new Float:cl_pushangle[MAX_PLAYERS + 1][3], m_iBlood[2]
  51. new g_has_watergun[33], g_clip_ammo[33], g_watergun_TmpClip[33], oldweap[33]
  52. new watergun_sprite
  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("Water Gun", "1.0", "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_mp5navy", "fw_watergun_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_mp5navy", "fw_watergun_PrimaryAttack")
  76. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_mp5navy", "fw_watergun_PrimaryAttack_Post", 1)
  77. RegisterHam(Ham_Item_PostFrame, "weapon_mp5navy", "watergun_ItemPostFrame")
  78. RegisterHam(Ham_Weapon_Reload, "weapon_mp5navy", "watergun_Reload")
  79. RegisterHam(Ham_Weapon_Reload, "weapon_mp5navy", "watergun_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_watergun = register_cvar("watergun_dmg", "1.20")
  94. cvar_recoil_watergun = register_cvar("watergun_recoil", "1.01")
  95. cvar_clip_watergun = register_cvar("watergun_clip", "999")
  96. cvar_spd_watergun = register_cvar("watergun_spd", "1.02")
  97. cvar_watergun_ammo = register_cvar("watergun_ammo", "999")
  98.  
  99. g_MaxPlayers = get_maxplayers()
  100.  
  101. register_clcmd("say /vp", "GiveWaterGun")
  102. register_clcmd("say_team /vp", "GiveWaterGun")
  103. }
  104.  
  105. public plugin_precache()
  106. {
  107. precache_model(watergun_V_MODEL)
  108. precache_model(watergun_P_MODEL)
  109. precache_model(watergun_W_MODEL)
  110. for(new i = 0; i < sizeof Fire_Sounds; i++)
  111. precache_sound(Fire_Sounds[i])
  112. precache_sound("weapons/water_clipin.wav")
  113. precache_sound("weapons/water_clipout.wav")
  114. precache_sound("weapons/water_pump.wav")
  115. precache_sound("weapons/water_draw.wav")
  116. m_iBlood[0] = precache_model("sprites/blood.spr")
  117. m_iBlood[1] = precache_model("sprites/bloodspray.spr")
  118. watergun_sprite = precache_model("sprites/watergun.spr")
  119.  
  120. register_forward(FM_PrecacheEvent, "fwPrecacheEvent_Post", 1)
  121. }
  122.  
  123. public fwPrecacheEvent_Post(type, const name[])
  124. {
  125. if (equal("events/mp5n.sc", name))
  126. {
  127. g_orig_event_watergun = get_orig_retval()
  128. return FMRES_HANDLED
  129. }
  130. return FMRES_IGNORED
  131. }
  132.  
  133. public client_connect(id)
  134. {
  135. g_has_watergun[id] = false
  136. }
  137.  
  138. public client_disconnect(id)
  139. {
  140. g_has_watergun[id] = false
  141. }
  142.  
  143. public fw_SetModel(entity, model[])
  144. {
  145. if(!is_valid_ent(entity))
  146. return FMRES_IGNORED
  147.  
  148. static szClassName[33]
  149. entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
  150.  
  151. if(!equal(szClassName, "weaponbox"))
  152. return FMRES_IGNORED
  153.  
  154. static iOwner
  155.  
  156. iOwner = entity_get_edict(entity, EV_ENT_owner)
  157.  
  158. if(equal(model, "models/w_mp5.mdl"))
  159. {
  160. static iStoredAugID
  161.  
  162. iStoredAugID = find_ent_by_owner(ENG_NULLENT, "weapon_mp5navy", entity)
  163.  
  164. if(!is_valid_ent(iStoredAugID))
  165. return FMRES_IGNORED
  166.  
  167. if(g_has_watergun[iOwner])
  168. {
  169. entity_set_int(iStoredAugID, EV_INT_WEAPONKEY, watergun_WEAPONKEY)
  170.  
  171. g_has_watergun[iOwner] = false
  172.  
  173. entity_set_model(entity, watergun_W_MODEL)
  174.  
  175. return FMRES_SUPERCEDE
  176. }
  177. }
  178. return FMRES_IGNORED
  179. }
  180.  
  181. public GiveWaterGun(id)
  182. {
  183. if(get_user_flags(id) & JOG)
  184. {
  185. drop_weapons(id, 1)
  186. new iWep2 = give_item(id,"weapon_mp5navy")
  187. if( iWep2 > 0 )
  188. {
  189. cs_set_weapon_ammo(iWep2, get_pcvar_num(cvar_clip_watergun))
  190. cs_set_user_bpammo (id, CSW_MP5NAVY, get_pcvar_num(cvar_watergun_ammo))
  191. UTIL_PlayWeaponAnimation(id, watergun_DRAW)
  192. set_pdata_float(id, m_flNextAttack, 1.0, PLAYER_LINUX_XTRA_OFF)
  193. }
  194. g_has_watergun[id] = true
  195. }
  196. else
  197. {
  198. client_print(id, print_chat, "Csak vip-k vehetnek vizipisztolyt!")
  199. }
  200. }
  201.  
  202. public fw_watergun_AddToPlayer(watergun, id)
  203. {
  204. if(!is_valid_ent(watergun) || !is_user_connected(id))
  205. return HAM_IGNORED
  206.  
  207. if(entity_get_int(watergun, EV_INT_WEAPONKEY) == watergun_WEAPONKEY)
  208. {
  209. g_has_watergun[id] = true
  210.  
  211. entity_set_int(watergun, EV_INT_WEAPONKEY, 0)
  212.  
  213. return HAM_HANDLED
  214. }
  215. return HAM_IGNORED
  216. }
  217.  
  218. public fw_UseStationary_Post(entity, caller, activator, use_type)
  219. {
  220. if (use_type == USE_STOPPED && is_user_connected(caller))
  221. replace_weapon_models(caller, get_user_weapon(caller))
  222. }
  223.  
  224. public fw_Item_Deploy_Post(weapon_ent)
  225. {
  226. static owner
  227. owner = fm_cs_get_weapon_ent_owner(weapon_ent)
  228.  
  229. static weaponid
  230. weaponid = cs_get_weapon_id(weapon_ent)
  231.  
  232. replace_weapon_models(owner, weaponid)
  233. }
  234.  
  235. public CurrentWeapon(id)
  236. {
  237. replace_weapon_models(id, read_data(2))
  238.  
  239. if(read_data(2) != CSW_MP5NAVY || !g_has_watergun[id])
  240. return
  241.  
  242. static Float:iSpeed
  243. if(g_has_watergun[id])
  244. iSpeed = get_pcvar_float(cvar_spd_watergun)
  245.  
  246. static weapon[32],Ent
  247. get_weaponname(read_data(2),weapon,31)
  248. Ent = find_ent_by_owner(-1,weapon,id)
  249. if(Ent)
  250. {
  251. static Float:Delay
  252. Delay = get_pdata_float( Ent, 46, 4) * iSpeed
  253. if (Delay > 0.0)
  254. {
  255. set_pdata_float(Ent, 46, Delay, 4)
  256. }
  257. }
  258. }
  259.  
  260. replace_weapon_models(id, weaponid)
  261. {
  262. switch (weaponid)
  263. {
  264. case CSW_MP5NAVY:
  265. {
  266. if(g_has_watergun[id])
  267. {
  268. set_pev(id, pev_viewmodel2, watergun_V_MODEL)
  269. set_pev(id, pev_weaponmodel2, watergun_P_MODEL)
  270. if(oldweap[id] != CSW_MP5NAVY)
  271. {
  272. UTIL_PlayWeaponAnimation(id, watergun_DRAW)
  273. set_pdata_float(id, m_flNextAttack, 1.0, PLAYER_LINUX_XTRA_OFF)
  274. }
  275. }
  276. }
  277. }
  278. oldweap[id] = weaponid
  279. }
  280.  
  281. public fw_UpdateClientData_Post(Player, SendWeapons, CD_Handle)
  282. {
  283. if(!is_user_alive(Player) || (get_user_weapon(Player) != CSW_MP5NAVY || !g_has_watergun[Player]))
  284. return FMRES_IGNORED
  285.  
  286. set_cd(CD_Handle, CD_flNextAttack, halflife_time () + 0.001)
  287. return FMRES_HANDLED
  288. }
  289.  
  290. public fw_watergun_PrimaryAttack(Weapon)
  291. {
  292. new Player = get_pdata_cbase(Weapon, 41, 4)
  293.  
  294. if (!g_has_watergun[Player])
  295. return
  296.  
  297. g_IsInPrimaryAttack = 1
  298. pev(Player,pev_punchangle,cl_pushangle[Player])
  299.  
  300. g_clip_ammo[Player] = cs_get_weapon_ammo(Weapon)
  301. }
  302.  
  303. public fwPlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2)
  304. {
  305. if ((eventid != g_orig_event_watergun) || !g_IsInPrimaryAttack)
  306. return FMRES_IGNORED
  307. if (!(1 <= invoker <= g_MaxPlayers))
  308. return FMRES_IGNORED
  309.  
  310. playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2)
  311. return FMRES_SUPERCEDE
  312. }
  313.  
  314. public fw_watergun_PrimaryAttack_Post(Weapon)
  315. {
  316. g_IsInPrimaryAttack = 0
  317. new Player = get_pdata_cbase(Weapon, 41, 4)
  318.  
  319. new szClip, szAmmo
  320. get_user_weapon(Player, szClip, szAmmo)
  321.  
  322. if(!is_user_alive(Player))
  323. return
  324.  
  325. if(g_has_watergun[Player])
  326. {
  327. if (!g_clip_ammo[Player])
  328. return
  329.  
  330. new Float:push[3]
  331. pev(Player,pev_punchangle,push)
  332. xs_vec_sub(push,cl_pushangle[Player],push)
  333.  
  334. xs_vec_mul_scalar(push,get_pcvar_float(cvar_recoil_watergun),push)
  335. xs_vec_add(push,cl_pushangle[Player],push)
  336. set_pev(Player,pev_punchangle,push)
  337.  
  338. emit_sound(Player, CHAN_WEAPON, Fire_Sounds[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  339. UTIL_PlayWeaponAnimation(Player, random_num(watergun_SHOOT1, watergun_SHOOT2))
  340.  
  341. static Float:plrViewAngles[3], Float:VecEnd[3], Float:VecDir[3], Float:PlrOrigin[3]
  342. pev(Player, pev_v_angle, plrViewAngles)
  343.  
  344. static Float:VecSrc[3], Float:VecDst[3]
  345.  
  346. //VecSrc = pev->origin + pev->view_ofs
  347. pev(Player, pev_origin, PlrOrigin)
  348. pev(Player, pev_view_ofs, VecSrc)
  349. xs_vec_add(VecSrc, PlrOrigin, VecSrc)
  350.  
  351. //VecDst = VecDir * 8192.0
  352. angle_vector(plrViewAngles, ANGLEVECTOR_FORWARD, VecDir);
  353. xs_vec_mul_scalar(VecDir, 8192.0, VecDst);
  354. xs_vec_add(VecDst, VecSrc, VecDst);
  355.  
  356. new hTrace = create_tr2()
  357. engfunc(EngFunc_TraceLine, VecSrc, VecDst, 0, Player, hTrace)
  358. get_tr2(hTrace, TR_vecEndPos, VecEnd);
  359.  
  360. create_tracer_water(Player, VecSrc, VecEnd)
  361. }
  362. }
  363.  
  364. public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
  365. {
  366. if (victim != attacker && is_user_connected(attacker))
  367. {
  368. if(get_user_weapon(attacker) == CSW_MP5NAVY)
  369. {
  370. if(g_has_watergun[attacker])
  371. SetHamParamFloat(4, damage * get_pcvar_float(cvar_dmg_watergun))
  372. }
  373. }
  374. }
  375.  
  376. public message_DeathMsg(msg_id, msg_dest, id)
  377. {
  378. static szTruncatedWeapon[33], iAttacker, iVictim
  379.  
  380. get_msg_arg_string(4, szTruncatedWeapon, charsmax(szTruncatedWeapon))
  381.  
  382. iAttacker = get_msg_arg_int(1)
  383. iVictim = get_msg_arg_int(2)
  384.  
  385. if(!is_user_connected(iAttacker) || iAttacker == iVictim)
  386. return PLUGIN_CONTINUE
  387.  
  388. if(equal(szTruncatedWeapon, "mp5navy") && get_user_weapon(iAttacker) == CSW_MP5NAVY)
  389. {
  390. if(g_has_watergun[iAttacker])
  391. set_msg_arg_string(4, "mp5navy")
  392. }
  393. return PLUGIN_CONTINUE
  394. }
  395.  
  396. stock fm_cs_get_current_weapon_ent(id)
  397. {
  398. return get_pdata_cbase(id, OFFSET_ACTIVE_ITEM, OFFSET_LINUX)
  399. }
  400.  
  401. stock fm_cs_get_weapon_ent_owner(ent)
  402. {
  403. return get_pdata_cbase(ent, OFFSET_WEAPONOWNER, OFFSET_LINUX_WEAPONS)
  404. }
  405.  
  406. stock UTIL_PlayWeaponAnimation(const Player, const Sequence)
  407. {
  408. set_pev(Player, pev_weaponanim, Sequence)
  409.  
  410. message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player)
  411. write_byte(Sequence)
  412. write_byte(pev(Player, pev_body))
  413. message_end()
  414. }
  415.  
  416. public watergun_ItemPostFrame(weapon_entity)
  417. {
  418. new id = pev(weapon_entity, pev_owner)
  419. if (!is_user_connected(id))
  420. return HAM_IGNORED
  421.  
  422. if (!g_has_watergun[id])
  423. return HAM_IGNORED
  424.  
  425. static iClipExtra
  426.  
  427. iClipExtra = get_pcvar_num(cvar_clip_watergun)
  428. new Float:flNextAttack = get_pdata_float(id, m_flNextAttack, PLAYER_LINUX_XTRA_OFF)
  429.  
  430. new iBpAmmo = cs_get_user_bpammo(id, CSW_MP5NAVY);
  431. new iClip = get_pdata_int(weapon_entity, m_iClip, WEAP_LINUX_XTRA_OFF)
  432.  
  433. new fInReload = get_pdata_int(weapon_entity, m_fInReload, WEAP_LINUX_XTRA_OFF)
  434.  
  435. if( fInReload && flNextAttack <= 0.0 )
  436. {
  437. new j = min(iClipExtra - iClip, iBpAmmo)
  438.  
  439. set_pdata_int(weapon_entity, m_iClip, iClip + j, WEAP_LINUX_XTRA_OFF)
  440. cs_set_user_bpammo(id, CSW_MP5NAVY, iBpAmmo-j)
  441.  
  442. set_pdata_int(weapon_entity, m_fInReload, 0, WEAP_LINUX_XTRA_OFF)
  443. fInReload = 0
  444. }
  445. return HAM_IGNORED
  446. }
  447.  
  448. public watergun_Reload(weapon_entity)
  449. {
  450. new id = pev(weapon_entity, pev_owner)
  451. if (!is_user_connected(id))
  452. return HAM_IGNORED
  453.  
  454. if (!g_has_watergun[id])
  455. return HAM_IGNORED
  456.  
  457. static iClipExtra
  458.  
  459. if(g_has_watergun[id])
  460. iClipExtra = get_pcvar_num(cvar_clip_watergun)
  461.  
  462. g_watergun_TmpClip[id] = -1
  463.  
  464. new iBpAmmo = cs_get_user_bpammo(id, CSW_MP5NAVY)
  465. new iClip = get_pdata_int(weapon_entity, m_iClip, WEAP_LINUX_XTRA_OFF)
  466.  
  467. if (iBpAmmo <= 0)
  468. return HAM_SUPERCEDE
  469.  
  470. if (iClip >= iClipExtra)
  471. return HAM_SUPERCEDE
  472.  
  473. g_watergun_TmpClip[id] = iClip
  474.  
  475. return HAM_IGNORED
  476. }
  477.  
  478. public watergun_Reload_Post(weapon_entity)
  479. {
  480. new id = pev(weapon_entity, pev_owner)
  481. if (!is_user_connected(id))
  482. return HAM_IGNORED
  483.  
  484. if (!g_has_watergun[id])
  485. return HAM_IGNORED
  486.  
  487. if (g_watergun_TmpClip[id] == -1)
  488. return HAM_IGNORED
  489.  
  490. set_pdata_int(weapon_entity, m_iClip, g_watergun_TmpClip[id], WEAP_LINUX_XTRA_OFF)
  491.  
  492. set_pdata_float(weapon_entity, m_flTimeWeaponIdle, watergun_RELOAD_TIME, WEAP_LINUX_XTRA_OFF)
  493.  
  494. set_pdata_float(id, m_flNextAttack, watergun_RELOAD_TIME, PLAYER_LINUX_XTRA_OFF)
  495.  
  496. set_pdata_int(weapon_entity, m_fInReload, 1, WEAP_LINUX_XTRA_OFF)
  497.  
  498. UTIL_PlayWeaponAnimation(id, watergun_RELOAD)
  499.  
  500. return HAM_IGNORED
  501. }
  502.  
  503. stock create_tracer_water(id, Float:fVec1[3], Float:fVec2[3])
  504. {
  505. static iVec1[3]
  506. FVecIVec(fVec1, iVec1)
  507.  
  508. static Float:origin[3], Float:vSrc[3], Float:angles[3], Float:v_forward[3], Float:v_right[3], Float:v_up[3], Float:gun_position[3], Float:player_origin[3], Float:player_view_offset[3]
  509. pev(id, pev_v_angle, angles)
  510. engfunc(EngFunc_MakeVectors, angles)
  511. global_get(glb_v_forward, v_forward)
  512. global_get(glb_v_right, v_right)
  513. global_get(glb_v_up, v_up)
  514.  
  515. //m_pPlayer->GetGunPosition( ) = pev->origin + pev->view_ofs
  516. pev(id, pev_origin, player_origin)
  517. pev(id, pev_view_ofs, player_view_offset)
  518. xs_vec_add(player_origin, player_view_offset, gun_position)
  519.  
  520. xs_vec_mul_scalar(v_forward, 24.0, v_forward)
  521. xs_vec_mul_scalar(v_right, 3.0, v_right)
  522.  
  523. if ((pev(id, pev_flags) & FL_DUCKING) == FL_DUCKING)
  524. xs_vec_mul_scalar(v_up, 6.0, v_up)
  525. else
  526. xs_vec_mul_scalar(v_up, -2.0, v_up)
  527.  
  528. xs_vec_add(gun_position, v_forward, origin)
  529. xs_vec_add(origin, v_right, origin)
  530. xs_vec_add(origin, v_up, origin)
  531.  
  532. vSrc[0] = origin[0]
  533. vSrc[1] = origin[1]
  534. vSrc[2] = origin[2]
  535.  
  536. new Float:dist = get_distance_f(vSrc, fVec2)
  537. new CountDrops = floatround(dist / 50.0)
  538.  
  539. if (CountDrops > 20)
  540. CountDrops = 20
  541.  
  542. if (CountDrops < 2)
  543. CountDrops = 2
  544.  
  545. message_begin(MSG_PAS, SVC_TEMPENTITY, iVec1)
  546. write_byte(TE_SPRITETRAIL)
  547. engfunc(EngFunc_WriteCoord, vSrc[0])
  548. engfunc(EngFunc_WriteCoord, vSrc[1])
  549. engfunc(EngFunc_WriteCoord, vSrc[2])
  550. engfunc(EngFunc_WriteCoord, fVec2[0])
  551. engfunc(EngFunc_WriteCoord, fVec2[1])
  552. engfunc(EngFunc_WriteCoord, fVec2[2])
  553. write_short(watergun_sprite)
  554. write_byte(CountDrops)
  555. write_byte(0)
  556. write_byte(1)
  557. write_byte(60)
  558. write_byte(10)
  559. message_end()
  560.  
  561. message_begin(MSG_PAS, SVC_TEMPENTITY, iVec1)
  562. write_byte(TE_BEAMPOINTS)
  563. engfunc(EngFunc_WriteCoord, fVec2[0])
  564. engfunc(EngFunc_WriteCoord, fVec2[1])
  565. engfunc(EngFunc_WriteCoord, fVec2[2])
  566. engfunc(EngFunc_WriteCoord, vSrc[0])
  567. engfunc(EngFunc_WriteCoord, vSrc[1])
  568. engfunc(EngFunc_WriteCoord, vSrc[2])
  569. write_short(watergun_sprite)
  570. write_byte(6)
  571. write_byte(200)
  572. write_byte(1)
  573. write_byte(100)
  574. write_byte(0)
  575. write_byte(64); write_byte(64); write_byte(192);
  576. write_byte(192)
  577. write_byte(250)
  578. message_end()
  579. }
  580.  
  581. stock drop_weapons(id, dropwhat)
  582. {
  583. static weapons[32], num, i, weaponid
  584. num = 0
  585. get_user_weapons(id, weapons, num)
  586.  
  587. for (i = 0; i < num; i++)
  588. {
  589. weaponid = weapons[i]
  590.  
  591. if (dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM))
  592. {
  593. static wname[32]
  594. get_weaponname(weaponid, wname, sizeof wname - 1)
  595. engclient_cmd(id, "drop", wname)
  596. }
  597. }
  598. }
  599.  
  600. public client_PreThink(id)
  601. {
  602. if(get_user_flags(id) & JOG)
  603. return PLUGIN_HANDLED;
  604.  
  605. if(user_has_weapon(id, CSW_MP5NAVY))
  606. {
  607. if(g_has_watergun[id])
  608. {
  609. client_cmd(id, "drop")
  610. }
  611. }
  612. }

köszi az smat de még ujj vagyok pls át tudod alakítani amxx be és el tudod küldeni pls v tölsd fel netre köszi

_________________
[url]<iframe src="http://cache.www.gametracker.com/components/html0/?host=91.82.84.214:27224&bgColor=333333&fontColor=CCCCCC&titleBgColor=222222&titleColor=FF9900&borderColor=555555&linkColor=FFCC00&borderLinkColor=222222&showMap=1&currentPlayersHeight=100&showCurrPlayers=1&showTopPlayers=0&showBlogs=0&width=240"[/url]


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: vizi pisztoly
HozzászólásElküldve: 2013.05.09. 20:59 
Offline
Őstag

Csatlakozott: 2013.01.27. 17:48
Hozzászólások: 1247
Megköszönt másnak: 6 alkalommal
Megköszönték neki: 61 alkalommal
http://amxx.try.hu/ -ra felmész bejelentkezel oda mész, h átalakító oda bemásolod és átalakítod!

_________________
banned user


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: vizi pisztoly
HozzászólásElküldve: 2013.05.09. 21:18 
Offline
Tud valamit

Csatlakozott: 2013.02.17. 00:16
Hozzászólások: 144
Megköszönt másnak: 12 alkalommal
JoGoBeLLa írta:
http://amxx.try.hu/ -ra felmész bejelentkezel oda mész, h átalakító oda bemásolod és átalakítod!

igen meg csináltam de error ir ki

_________________
[url]<iframe src="http://cache.www.gametracker.com/components/html0/?host=91.82.84.214:27224&bgColor=333333&fontColor=CCCCCC&titleBgColor=222222&titleColor=FF9900&borderColor=555555&linkColor=FFCC00&borderLinkColor=222222&showMap=1&currentPlayersHeight=100&showCurrPlayers=1&showTopPlayers=0&showBlogs=0&width=240"[/url]


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: vizi pisztoly
HozzászólásElküldve: 2013.05.09. 21:18 
Offline
Őstag

Csatlakozott: 2013.01.27. 17:48
Hozzászólások: 1247
Megköszönt másnak: 6 alkalommal
Megköszönték neki: 61 alkalommal
kuka10 írta:
JoGoBeLLa írta:
http://amxx.try.hu/ -ra felmész bejelentkezel oda mész, h átalakító oda bemásolod és átalakítod!

igen meg csináltam de error ir ki

másold be, hogy mit!

_________________
banned user


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: vizi pisztoly
HozzászólásElküldve: 2013.05.09. 21:45 
Offline
Tud valamit

Csatlakozott: 2013.02.17. 00:16
Hozzászólások: 144
Megköszönt másnak: 12 alkalommal
JoGoBeLLa írta:
kuka10 írta:
JoGoBeLLa írta:
http://amxx.try.hu/ -ra felmész bejelentkezel oda mész, h átalakító oda bemásolod és átalakítod!

igen meg csináltam de error ir ki

másold be, hogy mit!


Feltoltes sikeres. (ID: 518bfcdbdc735)

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

518bfcdbdc735.sma(1) : error 010: invalid function or declaration
518bfcdbdc735.sma(3) : error 010: invalid function or declaration
518bfcdbdc735.sma(5) : error 010: invalid function or declaration
518bfcdbdc735.sma(7) : error 010: invalid function or declaration
518bfcdbdc735.sma(9) : error 010: invalid function or declaration
518bfcdbdc735.sma(11) : error 010: invalid function or declaration
518bfcdbdc735.sma(13) : error 010: invalid function or declaration
518bfcdbdc735.sma(15) : error 010: invalid function or declaration
518bfcdbdc735.sma(17) : error 010: invalid function or declaration
518bfcdbdc735.sma(19) : error 010: invalid function or declaration
518bfcdbdc735.sma(21) : error 010: invalid function or declaration
518bfcdbdc735.sma(23) : error 010: invalid function or declaration
518bfcdbdc735.sma(25) : error 010: invalid function or declaration
518bfcdbdc735.sma(27) : error 010: invalid function or declaration
518bfcdbdc735.sma(29) : error 010: invalid function or declaration
518bfcdbdc735.sma(31) : error 010: invalid function or declaration
518bfcdbdc735.sma(33) : error 010: invalid function or declaration
518bfcdbdc735.sma(35) : error 010: invalid function or declaration
518bfcdbdc735.sma(37) : error 010: invalid function or declaration
518bfcdbdc735.sma(39) : error 010: invalid function or declaration
518bfcdbdc735.sma(41) : error 010: invalid function or declaration
518bfcdbdc735.sma(43) : error 010: invalid function or declaration
518bfcdbdc735.sma(45) : error 010: invalid function or declaration
518bfcdbdc735.sma(47) : error 010: invalid function or declaration
518bfcdbdc735.sma(49) : error 010: invalid function or declaration
518bfcdbdc735.sma(51) : error 010: invalid function or declaration

Compilation aborted.
26 Errors.

Hiba! - Az atalakitas sikertelen. (Forras fajlok torolve.)

ezt irja ki

_________________
[url]<iframe src="http://cache.www.gametracker.com/components/html0/?host=91.82.84.214:27224&bgColor=333333&fontColor=CCCCCC&titleBgColor=222222&titleColor=FF9900&borderColor=555555&linkColor=FFCC00&borderLinkColor=222222&showMap=1&currentPlayersHeight=100&showCurrPlayers=1&showTopPlayers=0&showBlogs=0&width=240"[/url]


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


Ki van itt

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