hlmod.hu
https://hlmod.hu/

Kick plugin
https://hlmod.hu/viewtopic.php?f=29&t=14313
Oldal: 1 / 1

Szerző:  RapperFeri [2014.02.09. 01:11 ]
Hozzászólás témája:  Kick plugin

Sziasztok :D
Nos egy olyan pluginra lenne szükségem amit még nem nagyon láttam sehol se...Hasonlót láttam de azt hiába probáltam át írni nem akart müködni :/
Hirdetésért azt szeretném ha kickelné, és persze amikor kickeli akkor ki írja saybe a ts3 vagy szero ip-t vagy facebook oldalt mindenkinek aki fent van a szerveren... Nekem egy hasonló van, de az pernament bannt add IP alapján :/
Valaki léccives megtudná nekem csinálni? :)
Illetve még ezt szeretném a zombi szeromhoz de úgy hogy ha saját magam alá lövök a robbanós lőszerrel akkor ne haljak meg tölle...Valaki ezt is megtudná nekem csinálni? :)
Előre is köszönöm :D
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <engine>
  3. #include <fakemeta_util>
  4. #include <hamsandwich>
  5. #include <xs>
  6. #include <cstrike>
  7. #include <zombieplague>
  8.  
  9. #define ENG_NULLENT -1
  10. #define EV_INT_WEAPONKEY EV_INT_impulse
  11. #define b1_WEAPONKEY 621
  12. #define MAX_PLAYERS 32
  13. #define IsValidUser(%1) (1 <= %1 <= g_MaxPlayers)
  14.  
  15. const OFFSET_ACTIVE_ITEM = 373
  16. const OFFSET_WEAPONOWNER = 41
  17. const OFFSET_LINUX = 5
  18. const OFFSET_LINUX_WEAPONS = 4
  19.  
  20. #define WEAP_LINUX_XTRA_OFF 4
  21. #define m_fKnown 44
  22. #define m_flNextPrimaryAttack 46
  23. #define m_flTimeWeaponIdle 48
  24. #define m_iClip 51
  25. #define m_fInReload 54
  26. #define PLAYER_LINUX_XTRA_OFF 5
  27. #define m_flNextAttack 83
  28.  
  29. #define b1_SHOOT1 2
  30. #define b1_SHOOT2 3
  31. #define b1_SHOOT_EMPTY 3
  32. #define b1_RELOAD 4
  33. #define b1_DRAW 5
  34. #define b1_RELOAD_TIME 3.0
  35. #define write_coord_f(%1) engfunc(EngFunc_WriteCoord,%1)
  36.  
  37. new const Fire_Sounds[][] = { "weapons/balrog1-1.wav", "weapons/balrog1-2.wav" }
  38.  
  39. new b1_V_MODEL[64] = "models/swat/v_balrog1.mdl"
  40. new b1_P_MODEL[64] = "models/swat/p_balrog1.mdl"
  41. new b1_W_MODEL[64] = "models/swat/w_balrog1.mdl"
  42.  
  43. new const GUNSHOT_DECALS[] = { 41, 42, 43, 44, 45 }
  44.  
  45. new cvar_dmg_b1, cvar_recoil_b1, g_itemid_b1, cvar_clip_b1, cvar_spd_b1, cvar_b1_ammo, cvar_dmg_exp
  46. new g_MaxPlayers, g_orig_event_b1, g_IsInPrimaryAttack, g_iClip
  47. new Float:cl_pushangle[MAX_PLAYERS + 1][3], m_iBlood[2]
  48. new g_has_b1[33], g_clip_ammo[33], oldweap[33],g_b1_TmpClip[33]
  49. new gmsgWeaponList, gMode[33], sExplo
  50.  
  51. const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE)
  52. new const WEAPONENTNAMES[][] = { "", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10", "weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550", "weapon_deagle", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249",
  53. "weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552",
  54. "weapon_ak47", "weapon_knife", "weapon_p90" }
  55.  
  56. public plugin_init()
  57. {
  58. register_plugin("[ZP] Extra: Balrog-I", "1.0", "Barney")
  59. register_event("CurWeapon","CurrentWeapon","be","1=1")
  60. RegisterHam(Ham_Item_AddToPlayer, "weapon_deagle", "fw_b1_AddToPlayer")
  61. for (new i = 1; i < sizeof WEAPONENTNAMES; i++)
  62. if (WEAPONENTNAMES[i][0]) RegisterHam(Ham_Item_Deploy, WEAPONENTNAMES[i], "fw_Item_Deploy_Post", 1)
  63. RegisterHam(Ham_Item_PostFrame, "weapon_deagle", "b1_ItemPostFrame")
  64. RegisterHam(Ham_Weapon_Reload, "weapon_deagle", "b1_Reload")
  65. RegisterHam(Ham_Weapon_Reload, "weapon_deagle", "b1_Reload_Post", 1)
  66. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_deagle", "fw_b1_PrimaryAttack")
  67. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_deagle", "fw_b1_PrimaryAttack_Post", 1)
  68. RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
  69. register_forward(FM_SetModel, "fw_SetModel")
  70. register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1)
  71. register_forward(FM_PlaybackEvent, "fwPlaybackEvent")
  72.  
  73. RegisterHam(Ham_TraceAttack, "worldspawn", "fw_TraceAttack", 1)
  74. RegisterHam(Ham_TraceAttack, "func_breakable", "fw_TraceAttack", 1)
  75. RegisterHam(Ham_TraceAttack, "func_wall", "fw_TraceAttack", 1)
  76. RegisterHam(Ham_TraceAttack, "func_door", "fw_TraceAttack", 1)
  77. RegisterHam(Ham_TraceAttack, "func_door_rotating", "fw_TraceAttack", 1)
  78. RegisterHam(Ham_TraceAttack, "func_plat", "fw_TraceAttack", 1)
  79. RegisterHam(Ham_TraceAttack, "func_rotating", "fw_TraceAttack", 1)
  80.  
  81. cvar_dmg_b1 = register_cvar("zp_b1_dmg", "2.5")
  82. cvar_dmg_exp = register_cvar("zp_b1_dmg_exp", "300.")
  83. cvar_recoil_b1 = register_cvar("zp_b1_recoil", "1.0")
  84. cvar_clip_b1 = register_cvar("zp_b1_clip", "10")
  85. cvar_spd_b1 = register_cvar("zp_b1_spd", "0.7")
  86. cvar_b1_ammo = register_cvar("zp_b1_ammo", "100")
  87.  
  88. g_itemid_b1 = zp_register_extra_item("Balrog-I", 0, ZP_TEAM_HUMAN)
  89. g_MaxPlayers = get_maxplayers()
  90. gmsgWeaponList = get_user_msgid("WeaponList")
  91. }
  92.  
  93. public plugin_precache()
  94. {
  95. precache_model(b1_V_MODEL)
  96. precache_model(b1_P_MODEL)
  97. precache_model(b1_W_MODEL)
  98. for(new i = 0; i < sizeof Fire_Sounds; i++)
  99. precache_sound(Fire_Sounds[i])
  100. precache_sound("weapons/balrog1_changea.wav")
  101. precache_sound("weapons/balrog1_changeb.wav")
  102. precache_sound("weapons/balrog1_draw.wav")
  103. precache_sound("weapons/balrog1_reload.wav")
  104. precache_sound("weapons/balrog1_reloadb.wav")
  105. m_iBlood[0] = precache_model("sprites/blood.spr")
  106. m_iBlood[1] = precache_model("sprites/bloodspray.spr")
  107. precache_generic("sprites/weapon_balrog1.txt")
  108. precache_generic("sprites/640hud83.spr")
  109. precache_generic("sprites/640hud4.spr")
  110. sExplo = precache_model("sprites/balrogcritical.spr")
  111. register_clcmd("weapon_balrog1", "weapon_hook")
  112.  
  113. register_forward(FM_PrecacheEvent, "fwPrecacheEvent_Post", 1)
  114. }
  115.  
  116. public weapon_hook(id)
  117. {
  118. engclient_cmd(id, "weapon_deagle")
  119. return PLUGIN_HANDLED
  120. }
  121.  
  122. public fw_TraceAttack(iEnt, iAttacker, Float:flDamage, Float:fDir[3], ptr, iDamageType)
  123. {
  124. if(!is_user_alive(iAttacker))
  125. return
  126.  
  127. new g_currentweapon = get_user_weapon(iAttacker)
  128.  
  129. if(g_currentweapon != CSW_DEAGLE) return
  130.  
  131. if(!g_has_b1[iAttacker]) return
  132.  
  133. static Float:flEnd[3]
  134. get_tr2(ptr, TR_vecEndPos, flEnd)
  135.  
  136. if(iEnt)
  137. {
  138. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  139. write_byte(TE_DECAL)
  140. write_coord_f(flEnd[0])
  141. write_coord_f(flEnd[1])
  142. write_coord_f(flEnd[2])
  143. write_byte(GUNSHOT_DECALS[random_num (0, sizeof GUNSHOT_DECALS -1)])
  144. write_short(iEnt)
  145. message_end()
  146. }
  147. else
  148. {
  149. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  150. write_byte(TE_WORLDDECAL)
  151. write_coord_f(flEnd[0])
  152. write_coord_f(flEnd[1])
  153. write_coord_f(flEnd[2])
  154. write_byte(GUNSHOT_DECALS[random_num (0, sizeof GUNSHOT_DECALS -1)])
  155. message_end()
  156. }
  157. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  158. write_byte(TE_GUNSHOTDECAL)
  159. write_coord_f(flEnd[0])
  160. write_coord_f(flEnd[1])
  161. write_coord_f(flEnd[2])
  162. write_short(iAttacker)
  163. write_byte(GUNSHOT_DECALS[random_num (0, sizeof GUNSHOT_DECALS -1)])
  164. message_end()
  165. }
  166.  
  167. public zp_user_humanized_post(id)
  168. {
  169. g_has_b1[id] = false
  170. }
  171.  
  172. public plugin_natives ()
  173. {
  174. register_native("give_b1", "native_give_weapon_add", 1)
  175. }
  176. public native_give_weapon_add(id)
  177. {
  178. give_b1(id)
  179. }
  180.  
  181. public fwPrecacheEvent_Post(type, const name[])
  182. {
  183. if (equal("events/deagle.sc", name))
  184. {
  185. g_orig_event_b1 = get_orig_retval()
  186. return FMRES_HANDLED
  187. }
  188. return FMRES_IGNORED
  189. }
  190.  
  191. public client_connect(id)
  192. {
  193. g_has_b1[id] = false
  194. }
  195.  
  196. public client_disconnect(id)
  197. {
  198. g_has_b1[id] = false
  199. }
  200.  
  201. public zp_user_infected_post(id)
  202. {
  203. if (zp_get_user_zombie(id))
  204. {
  205. g_has_b1[id] = false
  206. }
  207. }
  208.  
  209. public fw_SetModel(entity, model[])
  210. {
  211. if(!is_valid_ent(entity))
  212. return FMRES_IGNORED
  213.  
  214. static szClassName[33]
  215. entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
  216.  
  217. if(!equal(szClassName, "weaponbox"))
  218. return FMRES_IGNORED
  219.  
  220. static iOwner
  221.  
  222. iOwner = entity_get_edict(entity, EV_ENT_owner)
  223.  
  224. if(equal(model, "models/w_deagle.mdl"))
  225. {
  226. static iStoredAugID
  227.  
  228. iStoredAugID = find_ent_by_owner(ENG_NULLENT, "weapon_deagle", entity)
  229.  
  230. if(!is_valid_ent(iStoredAugID))
  231. return FMRES_IGNORED
  232.  
  233. if(g_has_b1[iOwner])
  234. {
  235. entity_set_int(iStoredAugID, EV_INT_WEAPONKEY, b1_WEAPONKEY)
  236.  
  237. g_has_b1[iOwner] = false
  238.  
  239. entity_set_model(entity, b1_W_MODEL)
  240.  
  241. return FMRES_SUPERCEDE
  242. }
  243. }
  244. return FMRES_IGNORED
  245. }
  246.  
  247. public give_b1(id)
  248. {
  249. drop_weapons(id, 2)
  250. new iWep2 = fm_give_item(id,"weapon_deagle")
  251. if( iWep2 > 0 )
  252. {
  253. cs_set_weapon_ammo(iWep2, get_pcvar_num(cvar_clip_b1))
  254. cs_set_user_bpammo (id, CSW_DEAGLE, get_pcvar_num(cvar_b1_ammo))
  255. UTIL_PlayWeaponAnimation(id, b1_DRAW)
  256. set_pdata_float(id, m_flNextAttack, 1.0, PLAYER_LINUX_XTRA_OFF)
  257.  
  258. message_begin(MSG_ONE, gmsgWeaponList, _, id)
  259. write_string("weapon_balrog1")
  260. write_byte(8)
  261. write_byte(35)
  262. write_byte(-1)
  263. write_byte(-1)
  264. write_byte(1)
  265. write_byte(1)
  266. write_byte(CSW_DEAGLE)
  267. message_end()
  268. }
  269. g_has_b1[id] = true
  270. }
  271.  
  272. public zp_extra_item_selected(id, itemid)
  273. {
  274. if(itemid != g_itemid_b1)
  275. return
  276.  
  277. give_b1(id)
  278. }
  279.  
  280. public fw_b1_AddToPlayer(b1, id)
  281. {
  282. if(!is_valid_ent(b1) || !is_user_connected(id))
  283. return HAM_IGNORED
  284.  
  285. if(entity_get_int(b1, EV_INT_WEAPONKEY) == b1_WEAPONKEY)
  286. {
  287. g_has_b1[id] = true
  288.  
  289. entity_set_int(b1, EV_INT_WEAPONKEY, 0)
  290.  
  291. message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)
  292. write_string("weapon_balrog1")
  293. write_byte(8)
  294. write_byte(35)
  295. write_byte(-1)
  296. write_byte(-1)
  297. write_byte(1)
  298. write_byte(1)
  299. write_byte(CSW_DEAGLE)
  300. message_end()
  301.  
  302. return HAM_HANDLED
  303. }
  304. else
  305. {
  306. message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)
  307. write_string("weapon_deagle")
  308. write_byte(8)
  309. write_byte(35)
  310. write_byte(-1)
  311. write_byte(-1)
  312. write_byte(1)
  313. write_byte(1)
  314. write_byte(CSW_DEAGLE)
  315. message_end()
  316. }
  317. return HAM_IGNORED
  318. }
  319.  
  320. public fw_Item_Deploy_Post(weapon_ent)
  321. {
  322. static owner
  323. owner = fm_cs_get_weapon_ent_owner(weapon_ent)
  324.  
  325. static weaponid
  326. weaponid = cs_get_weapon_id(weapon_ent)
  327. replace_weapon_models(owner, weaponid)
  328. }
  329.  
  330. public CurrentWeapon(id)
  331. {
  332. replace_weapon_models(id, read_data(2))
  333.  
  334. if(read_data(2) != CSW_DEAGLE || !g_has_b1[id])
  335. return
  336.  
  337. static Float:iSpeed
  338. if(g_has_b1[id])
  339. iSpeed = get_pcvar_float(cvar_spd_b1)
  340.  
  341. static weapon[32],Ent
  342. get_weaponname(read_data(2),weapon,31)
  343. Ent = find_ent_by_owner(-1,weapon,id)
  344. if(Ent)
  345. {
  346. static Float:Delay
  347. Delay = get_pdata_float( Ent, 46, 4) * iSpeed
  348. if (Delay > 0.0)
  349. {
  350. set_pdata_float(Ent, 46, Delay, 4)
  351. }
  352. }
  353. }
  354.  
  355. replace_weapon_models(id, weaponid)
  356. {
  357. switch (weaponid)
  358. {
  359. case CSW_DEAGLE:
  360. {
  361. if (zp_get_user_zombie(id) || zp_get_user_survivor(id))
  362. return
  363.  
  364. if(g_has_b1[id])
  365. {
  366. set_pev(id, pev_viewmodel2, b1_V_MODEL)
  367. set_pev(id, pev_weaponmodel2, b1_P_MODEL)
  368. if(oldweap[id] != CSW_DEAGLE)
  369. {
  370. UTIL_PlayWeaponAnimation(id, b1_DRAW)
  371. set_pdata_float(id, m_flNextAttack, 1.0, PLAYER_LINUX_XTRA_OFF)
  372. gMode[id] = 0
  373. message_begin(MSG_ONE, gmsgWeaponList, _, id)
  374. write_string("weapon_balrog1")
  375. write_byte(8)
  376. write_byte(35)
  377. write_byte(-1)
  378. write_byte(-1)
  379. write_byte(1)
  380. write_byte(1)
  381. write_byte(CSW_DEAGLE)
  382. message_end()
  383. }
  384. }
  385. }
  386. }
  387. oldweap[id] = weaponid
  388. }
  389.  
  390. public fw_UpdateClientData_Post(Player, SendWeapons, CD_Handle)
  391. {
  392. if(!is_user_alive(Player) || (get_user_weapon(Player) != CSW_DEAGLE || !g_has_b1[Player]))
  393. return FMRES_IGNORED
  394.  
  395. set_cd(CD_Handle, CD_flNextAttack, halflife_time () + 0.001)
  396. return FMRES_HANDLED
  397. }
  398.  
  399. public fw_b1_PrimaryAttack(Weapon)
  400. {
  401. new Player = get_pdata_cbase(Weapon, 41, 4)
  402.  
  403. if (!g_has_b1[Player])
  404. return
  405.  
  406. g_IsInPrimaryAttack = 1
  407. pev(Player,pev_punchangle,cl_pushangle[Player])
  408.  
  409. g_clip_ammo[Player] = cs_get_weapon_ammo(Weapon)
  410. g_iClip = cs_get_weapon_ammo(Weapon)
  411. }
  412.  
  413. public explode(id)
  414. {
  415. if(is_user_alive(id))
  416. {
  417. new Float:originF[3]
  418. fm_get_aim_origin(id,originF)
  419. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  420. write_byte(TE_EXPLOSION)
  421. engfunc(EngFunc_WriteCoord, originF[0])
  422. engfunc(EngFunc_WriteCoord, originF[1])
  423. engfunc(EngFunc_WriteCoord, originF[2])
  424. write_short(sExplo)
  425. write_byte(20)
  426. write_byte(50)
  427. write_byte(0)
  428. message_end()
  429. new a = FM_NULLENT
  430. while((a = find_ent_in_sphere(a,originF,200.0)) != 0)
  431. {
  432. if(pev(a,pev_takedamage)!=DAMAGE_NO)
  433. {
  434. ExecuteHamB( Ham_TakeDamage, a ,id ,id, get_pcvar_float(cvar_dmg_exp), DMG_BULLET )
  435. }
  436. }
  437. }
  438. }
  439.  
  440. public fwPlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2)
  441. {
  442. if ((eventid != g_orig_event_b1) || !g_IsInPrimaryAttack)
  443. return FMRES_IGNORED
  444. if (!(1 <= invoker <= g_MaxPlayers))
  445. return FMRES_IGNORED
  446.  
  447. playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2)
  448. return FMRES_SUPERCEDE
  449. }
  450.  
  451. public fw_b1_PrimaryAttack_Post(Weapon)
  452. {
  453. g_IsInPrimaryAttack = 0
  454. new Player = get_pdata_cbase(Weapon, 41, 4)
  455.  
  456. new szClip, szAmmo
  457. get_user_weapon(Player, szClip, szAmmo)
  458.  
  459. if(!is_user_alive(Player))
  460. return
  461.  
  462. if (g_iClip <= cs_get_weapon_ammo(Weapon))
  463. return
  464.  
  465. if(g_has_b1[Player])
  466. {
  467. if (!g_clip_ammo[Player])
  468. return
  469.  
  470. new Float:push[3]
  471. pev(Player,pev_punchangle,push)
  472. xs_vec_sub(push,cl_pushangle[Player],push)
  473.  
  474. xs_vec_mul_scalar(push,get_pcvar_float(cvar_recoil_b1),push)
  475. xs_vec_add(push,cl_pushangle[Player],push)
  476. set_pev(Player,pev_punchangle,push)
  477. if( gMode[Player] ) {
  478. explode(Player)
  479. set_pdata_float( Player, 83, 2.0 )
  480. }
  481. emit_sound(Player, CHAN_WEAPON, Fire_Sounds[gMode[Player]], VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  482. UTIL_PlayWeaponAnimation(Player, gMode[Player]?b1_SHOOT2:b1_SHOOT1)
  483. if( gMode[Player] ) gMode[Player] = 0
  484. }
  485. }
  486.  
  487. public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
  488. {
  489. if (victim != attacker && is_user_connected(attacker))
  490. {
  491. if(get_user_weapon(attacker) == CSW_DEAGLE)
  492. {
  493. if(g_has_b1[attacker])
  494. SetHamParamFloat(4, damage * get_pcvar_float(cvar_dmg_b1))
  495. }
  496. }
  497. }
  498.  
  499. stock fm_cs_get_current_weapon_ent(id)
  500. {
  501. return get_pdata_cbase(id, OFFSET_ACTIVE_ITEM, OFFSET_LINUX)
  502. }
  503.  
  504. stock fm_cs_get_weapon_ent_owner(ent)
  505. {
  506. return get_pdata_cbase(ent, OFFSET_WEAPONOWNER, OFFSET_LINUX_WEAPONS)
  507. }
  508.  
  509. stock UTIL_PlayWeaponAnimation(const Player, const Sequence)
  510. {
  511. set_pev(Player, pev_weaponanim, Sequence)
  512.  
  513. message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player)
  514. write_byte(Sequence)
  515. write_byte(pev(Player, pev_body))
  516. message_end()
  517. }
  518.  
  519. public b1_ItemPostFrame(weapon_entity)
  520. {
  521. new id = pev(weapon_entity, pev_owner)
  522. if (!is_user_connected(id))
  523. return HAM_IGNORED
  524.  
  525. if (!g_has_b1[id])
  526. return HAM_IGNORED
  527.  
  528. static iClipExtra
  529.  
  530. iClipExtra = get_pcvar_num(cvar_clip_b1)
  531. new Float:flNextAttack = get_pdata_float(id, m_flNextAttack, PLAYER_LINUX_XTRA_OFF)
  532.  
  533. new iBpAmmo = cs_get_user_bpammo(id, CSW_DEAGLE);
  534. new iClip = get_pdata_int(weapon_entity, m_iClip, WEAP_LINUX_XTRA_OFF)
  535.  
  536. new fInReload = get_pdata_int(weapon_entity, m_fInReload, WEAP_LINUX_XTRA_OFF)
  537. if( pev( id, pev_button ) & IN_ATTACK2 && flNextAttack <= 0.0) {
  538. UTIL_PlayWeaponAnimation(id, !gMode[id]?6:7 )
  539. gMode[id] = (gMode[id]?0:1)
  540. set_pdata_float( id, 83, 2.0 )
  541. }
  542. if( fInReload && flNextAttack <= 0.0 )
  543. {
  544. new j = min(iClipExtra - iClip, iBpAmmo)
  545.  
  546. set_pdata_int(weapon_entity, m_iClip, iClip + j, WEAP_LINUX_XTRA_OFF)
  547. cs_set_user_bpammo(id, CSW_DEAGLE, iBpAmmo-j)
  548.  
  549. set_pdata_int(weapon_entity, m_fInReload, 0, WEAP_LINUX_XTRA_OFF)
  550. fInReload = 0
  551. }
  552. return HAM_IGNORED
  553. }
  554.  
  555. public b1_Reload(weapon_entity)
  556. {
  557. new id = pev(weapon_entity, pev_owner)
  558. if (!is_user_connected(id))
  559. return HAM_IGNORED
  560.  
  561. if (!g_has_b1[id])
  562. return HAM_IGNORED
  563.  
  564. static iClipExtra
  565.  
  566. if(g_has_b1[id])
  567. iClipExtra = get_pcvar_num(cvar_clip_b1)
  568.  
  569. g_b1_TmpClip[id] = -1
  570.  
  571. new iBpAmmo = cs_get_user_bpammo(id, CSW_DEAGLE)
  572. new iClip = get_pdata_int(weapon_entity, m_iClip, WEAP_LINUX_XTRA_OFF)
  573.  
  574. if (iBpAmmo <= 0)
  575. return HAM_SUPERCEDE
  576.  
  577. if (iClip >= iClipExtra)
  578. return HAM_SUPERCEDE
  579.  
  580. g_b1_TmpClip[id] = iClip
  581.  
  582. return HAM_IGNORED
  583. }
  584.  
  585. public b1_Reload_Post(weapon_entity)
  586. {
  587. new id = pev(weapon_entity, pev_owner)
  588. if (!is_user_connected(id))
  589. return HAM_IGNORED
  590.  
  591. if (!g_has_b1[id])
  592. return HAM_IGNORED
  593.  
  594. if (g_b1_TmpClip[id] == -1)
  595. return HAM_IGNORED
  596.  
  597. set_pdata_int(weapon_entity, m_iClip, g_b1_TmpClip[id], WEAP_LINUX_XTRA_OFF)
  598.  
  599. set_pdata_float(weapon_entity, m_flTimeWeaponIdle, b1_RELOAD_TIME, WEAP_LINUX_XTRA_OFF)
  600.  
  601. set_pdata_float(id, m_flNextAttack, b1_RELOAD_TIME, PLAYER_LINUX_XTRA_OFF)
  602.  
  603. set_pdata_int(weapon_entity, m_fInReload, 1, WEAP_LINUX_XTRA_OFF)
  604.  
  605. UTIL_PlayWeaponAnimation(id, gMode[id]?8:b1_RELOAD)
  606. gMode[id] = 0
  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 == 2 && ((1<<weaponid) & SECONDARY_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. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  630. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
  631. */
  632. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  633. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
  634. */
  635.  

Oldal: 1 / 1 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/