hlmod.hu

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



Jelenlévő felhasználók

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

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

Regisztrált felhasználók: Bing [Bot], Majestic-12 [Bot] az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 1 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Vip Hiba
HozzászólásElküldve: 2021.01.31. 07:57 
Offline
Senior Tag
Avatar

Csatlakozott: 2021.01.08. 18:25
Hozzászólások: 273
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 20 alkalommal
Hali, nekem van egy ilyen VIP pluginom, és mikor zombi leszel nem váltja át a skint.
Hogyan lehetne megoldani?

  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fakemeta>
  4. #include <zombieplague>
  5. #include <hamsandwich>
  6. #include <cstrike>
  7. #include <engine>
  8.  
  9. #define VIPFLAG ADMIN_LEVEL_H
  10.  
  11. new g_iExtraArmor, g_iStartHealth, g_iStartArmor
  12.  
  13. // CS Offsets
  14. #if cellbits == 32
  15. const OFFSET_CLIPAMMO = 51
  16. #else
  17. const OFFSET_CLIPAMMO = 65
  18. #endif
  19. const OFFSET_LINUX_WEAPONS = 4
  20.  
  21. new Float:g_damage[33]
  22.  
  23. // Max Clip for weapons
  24. new const MAXCLIP[] = { -1, 13, -1, 10, 1, 7, -1, 30, 30, 1, 30, 20, 25, 30, 35, 25, 12, 20,
  25. 10, 30, 100, 8, 30, 30, 20, 2, 7, 30, 30, -1, 50 }
  26.  
  27. new g_has_unlimited_clip[33], g_damage_reward
  28.  
  29. enum
  30. {
  31. SCOREATTRIB_ARG_PLAYERID = 1,
  32. SCOREATTRIB_ARG_FLAGS
  33. };
  34.  
  35. enum ( <<= 1 )
  36. {
  37. SCOREATTRIB_FLAG_NONE = 0,
  38. SCOREATTRIB_FLAG_DEAD = 1,
  39. SCOREATTRIB_FLAG_BOMB,
  40. SCOREATTRIB_FLAG_VIP
  41. };
  42.  
  43. new jumpnum[33] = 0
  44. new bool:dojump[33] = false
  45.  
  46. public plugin_init()
  47. {
  48. register_plugin("Zombie - Omegle VIP", "0.1", "LegendofWarior")
  49.  
  50. RegisterHam(Ham_Spawn, "player", "OnPlayerSpawnPost", 1)
  51. RegisterHam(Ham_Killed, "player", "OnPlayerKilled")
  52.  
  53. RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
  54.  
  55. g_iExtraArmor = register_cvar("vip_extra_armor", "50")
  56. g_iStartHealth = register_cvar("vip_start_HP", "300")
  57. g_iStartArmor = register_cvar("vip_start_armor", "200")
  58. g_damage_reward = register_cvar("vip_damage_reward", "250")
  59. register_cvar("vip_enable_jumps","1")
  60. register_cvar("vip_maxjumps","2")
  61.  
  62. register_event("ResetHUD", "resetModel", "b")
  63.  
  64. register_message( get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib" );
  65. }
  66. public plugin_precache() {
  67. precache_model("models/player/vip/vip.mdl") //Prechache
  68. precache_model("models/player/vipzm/vipzm.mdl") //Prechache
  69. }
  70. /*
  71. =====================================
  72. ============MAIN CODE================
  73. =====================================
  74. */
  75. public OnPlayerSpawnPost(id)
  76. {
  77. if(is_user_alive(id) && !zp_get_user_zombie(id) && get_user_flags(id) & VIPFLAG)
  78. {
  79. set_pev(id, pev_health, get_pcvar_float(g_iStartHealth))
  80. set_pev(id, pev_armorvalue, get_pcvar_float(g_iStartArmor))
  81. }
  82. }
  83. public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)
  84. {
  85. if(get_user_flags(attacker) & VIPFLAG)
  86. {
  87. damage *= 2
  88. SetHamParamFloat(4, damage)
  89. }
  90.  
  91. if(get_user_flags(attacker) & VIPFLAG) {
  92. if(get_pcvar_num(g_damage_reward) > 0) {
  93. g_damage[attacker]+=damage
  94. if(g_damage[attacker] > get_pcvar_float(g_damage_reward)) {
  95. zp_set_user_ammo_packs(attacker, zp_get_user_ammo_packs(attacker)+1)
  96. g_damage[attacker] -= get_pcvar_float(g_damage_reward)
  97. }
  98. }  
  99. }
  100.  
  101. }
  102. public OnPlayerKilled(victim, attacker)
  103. {
  104. if(!is_user_alive(attacker) || victim == attacker)
  105. return
  106.  
  107. if(!zp_get_user_zombie(attacker) && get_user_flags(attacker) & VIPFLAG)
  108. {
  109. set_pev(attacker, pev_armorvalue, pev(attacker, pev_armorvalue) + get_pcvar_float(g_iExtraArmor))
  110. for (new id; id <= 32; id++) g_has_unlimited_clip[id] = true;
  111. }
  112. }
  113. // Reset flags for all players on newround
  114. public event_round_start()
  115. {
  116. for (new id; id <= 32; id++) g_has_unlimited_clip[id] = false;
  117. }
  118.  
  119. public client_putinserver(id)
  120. {
  121. jumpnum[id] = 0
  122. dojump[id] = false
  123. }
  124.  
  125. public client_disconnect(id)
  126. {
  127. jumpnum[id] = 0
  128. dojump[id] = false
  129. }
  130.  
  131. // Unlimited clip code
  132. public message_cur_weapon(msg_id, msg_dest, msg_entity)
  133. {
  134. // Player doesn't have the unlimited clip upgrade
  135. if (!g_has_unlimited_clip[msg_entity])
  136. return;
  137.  
  138. // Player not alive or not an active weapon
  139. if (!is_user_alive(msg_entity) || get_msg_arg_int(1) != 1)
  140. return;
  141.  
  142. static weapon, clip
  143. weapon = get_msg_arg_int(2) // get weapon ID
  144. clip = get_msg_arg_int(3) // get weapon clip
  145.  
  146. // Unlimited Clip Ammo
  147. if (MAXCLIP[weapon] > 2) // skip grenades
  148. {
  149. set_msg_arg_int(3, get_msg_argtype(3), MAXCLIP[weapon]) // HUD should show full clip all the time
  150.  
  151. if (clip < 2) // refill when clip is nearly empty
  152. {
  153. // Get the weapon entity
  154. static wname[32], weapon_ent
  155. get_weaponname(weapon, wname, sizeof wname - 1)
  156. weapon_ent = fm_find_ent_by_owner(-1, wname, msg_entity)
  157.  
  158. // Set max clip on weapon
  159. fm_set_weapon_ammo(weapon_ent, MAXCLIP[weapon])
  160. }
  161. }
  162. }
  163. public MessageScoreAttrib( iMsgId, iDest, iReceiver )
  164. {
  165. new iPlayer = get_msg_arg_int( SCOREATTRIB_ARG_PLAYERID );
  166.  
  167. if( access( iPlayer, VIPFLAG ) )
  168. {
  169. set_msg_arg_int( SCOREATTRIB_ARG_FLAGS, ARG_BYTE, SCOREATTRIB_FLAG_VIP );
  170. }
  171. }
  172.  
  173. public resetModel(id, level, cid) {
  174. if (get_user_flags(id) & VIPFLAG) {
  175. new CsTeams:userTeam = cs_get_user_team(id)
  176. if (userTeam == CS_TEAM_T) {
  177. cs_set_user_model(id, "vipzm") //VIP Zombie
  178. }
  179. else if(userTeam == CS_TEAM_CT) {
  180. cs_set_user_model(id, "vip") //VIP Human
  181. }
  182. else {
  183. cs_reset_user_model(id)
  184. }
  185. }
  186.  
  187. return PLUGIN_CONTINUE
  188. }
  189. public client_PreThink(id)
  190. {
  191. if(!is_user_alive(id)) return PLUGIN_CONTINUE
  192. if(get_cvar_num("vip_enable_jumps") && (!access(id,VIPFLAG))) return PLUGIN_CONTINUE
  193. new nbut = get_user_button(id)
  194. new obut = get_user_oldbutton(id)
  195. if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
  196. {
  197. if(jumpnum[id] < get_cvar_num("vip_maxjumps"))
  198. {
  199. dojump[id] = true
  200. jumpnum[id]++
  201. return PLUGIN_CONTINUE
  202. }
  203. }
  204. if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
  205. {
  206. jumpnum[id] = 0
  207. return PLUGIN_CONTINUE
  208. }
  209. return PLUGIN_CONTINUE
  210. }
  211.  
  212. public client_PostThink(id)
  213. {
  214. if(!is_user_alive(id)) return PLUGIN_CONTINUE
  215. if(get_cvar_num("vip_enable_jumps") && (!access(id,VIPFLAG))) return PLUGIN_CONTINUE
  216. if(dojump[id] == true)
  217. {
  218. new Float:velocity[3]  
  219. entity_get_vector(id,EV_VEC_velocity,velocity)
  220. velocity[2] = random_float(265.0,285.0)
  221. entity_set_vector(id,EV_VEC_velocity,velocity)
  222. dojump[id] = false
  223. return PLUGIN_CONTINUE
  224. }
  225. return PLUGIN_CONTINUE
  226. }
  227. /*
  228. =====================================
  229. ============STOCKS===================
  230. =====================================
  231. */
  232. // Find entity by its owner (from fakemeta_util)
  233. stock fm_find_ent_by_owner(entity, const classname[], owner)
  234. {
  235. while ((entity = engfunc(EngFunc_FindEntityByString, entity, "classname", classname)) && pev(entity, pev_owner) != owner) {}
  236.  
  237. return entity;
  238. }
  239.  
  240. // Set Weapon Clip Ammo
  241. stock fm_set_weapon_ammo(entity, amount)
  242. {
  243. set_pdata_int(entity, OFFSET_CLIPAMMO, amount, OFFSET_LINUX_WEAPONS);
  244. }
  245. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  246. *{\\ rtf1\\ fbidis\\ ansi\\ ansicpg1252\\ deff0{\\ fonttbl{\\ f0\\ fnil\\ fcharset0 Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ ltrpar\\ lang1049\\ f0\\ fs16 \n\\ par }
  247. */


Köszi előre.

_________________
Kép
FÓRUM


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


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