hlmod.hu

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



Jelenlévő felhasználók

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

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

Regisztrált felhasználók: 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  [ 2 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Kezdővédelm, glow kitéle
HozzászólásElküldve: 2012.12.30. 12:58 
Offline
Őstag
Avatar

Csatlakozott: 2011.11.15. 16:29
Hozzászólások: 1142
Megköszönt másnak: 8 alkalommal
Megköszönték neki: 24 alkalommal
SMA Forráskód: [ Mindet kijelol ]
  1. /* Formatright © 2011, ConnorMcLeod
  2.  
  3. This plugin is free software;
  4. you can redistribute it and/or modify it under the terms of the
  5. GNU General Public License as published by the Free Software Foundation.
  6.  
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU General Public License for more details.
  11.  
  12. You should have received a copy of the GNU General Public License
  13. along with this plugin; if not, write to the
  14. Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  15. Boston, MA 02111-1307, USA.
  16. */
  17.  
  18. #include <amxmodx>
  19. #include <fakemeta>
  20. #include <hamsandwich>
  21. #include <fun>
  22. #include <cstrike>
  23.  
  24. #define VERSION "0.1.2"
  25. #define PLUGIN "Spawn Protection"
  26.  
  27. const MAX_PLAYERS = 32
  28.  
  29. const DMG_GRENADE = (1<<24)
  30.  
  31. #define MaskEnt(%0) ( 1<<(%0 & 31) )
  32.  
  33. new g_bitProtectedPlayers
  34. #define MarkUserProtected(%0) g_bitProtectedPlayers |= MaskEnt(%0)
  35. #define ClearUserProtected(%0) g_bitProtectedPlayers &= ~MaskEnt(%0)
  36. #define IsUserProtected(%0) ( g_bitProtectedPlayers & MaskEnt(%0) )
  37.  
  38. new g_iMaxPlayers
  39. #define IsPlayer(%0) ( 1 <= %0 <= g_iMaxPlayers )
  40.  
  41. new Float:g_flEndOfProtection[MAX_PLAYERS+1]
  42. new g_pCvarProtectTime, g_pCvarDisplayHud
  43. new HamHook:g_iHhTakeDamage, HamHook:g_iHhTraceAttack, HamHook:g_iHhCSoundEntThinkPost,
  44. HamHook:g_iHhTakeDamage_CZBot, HamHook:g_iHhTraceAttack_CZBot
  45. new g_iSyncHud
  46.  
  47. public plugin_init()
  48. {
  49. register_plugin(PLUGIN, VERSION, "ConnorMcLeod")
  50.  
  51. g_pCvarProtectTime = register_cvar("amx_spawn_protection", "3.0")
  52. g_pCvarDisplayHud = register_cvar("amx_spawn_protect_display", "1")
  53. g_iSyncHud = CreateHudSyncObj()
  54.  
  55. RegisterHam(Ham_Spawn, "player", "OnCBasePlayer_Spawn_Post", true)
  56.  
  57. DisableHamForward( g_iHhTakeDamage = RegisterHam(Ham_TakeDamage, "player", "OnCBasePlayer_TakeDamage", false) )
  58. DisableHamForward( g_iHhTraceAttack = RegisterHam(Ham_TraceAttack, "player", "OnCBasePlayer_TraceAttack", false) )
  59.  
  60. g_iMaxPlayers = get_maxplayers()
  61.  
  62. for(new __ent = g_iMaxPlayers+1, __maxEntities = global_get(glb_maxEntities); __ent<__maxEntities; __ent++)
  63. {
  64. if( pev_valid(__ent) && !pev(__ent, pev_classname) )
  65. {
  66. DisableHamForward( g_iHhCSoundEntThinkPost = RegisterHamFromEntity(Ham_Think, __ent, "OnCSoundEnt_Think_Post", true) )
  67. break
  68. }
  69. }
  70. }
  71.  
  72. public cz_bot_ham_registerable( id )
  73. {
  74. RegisterHamFromEntity(Ham_Spawn, id, "OnCBasePlayer_Spawn_Post", true)
  75. DisableHamForward( g_iHhTakeDamage_CZBot = RegisterHamFromEntity(Ham_TakeDamage, id, "OnCBasePlayer_TakeDamage", false) )
  76. DisableHamForward( g_iHhTraceAttack_CZBot = RegisterHamFromEntity(Ham_TraceAttack, id, "OnCBasePlayer_TraceAttack", false) )
  77. }
  78.  
  79. public client_disconnect(id)
  80. {
  81. ClearUserProtected(id)
  82. if( !g_bitProtectedPlayers )
  83. {
  84. DisableHamForward( g_iHhTakeDamage )
  85. DisableHamForward( g_iHhTraceAttack )
  86. DisableHamForward( g_iHhCSoundEntThinkPost )
  87. if( g_iHhTakeDamage_CZBot )
  88. {
  89. DisableHamForward( g_iHhTakeDamage_CZBot )
  90. DisableHamForward( g_iHhTraceAttack_CZBot )
  91. }
  92. }
  93. }
  94.  
  95. public OnCBasePlayer_TraceAttack(id, iAttacker, Float:flDamage, Float:fVecDir[3], ptr, bitsDamageType)
  96. {
  97. if( IsUserProtected(id) || (IsPlayer(iAttacker) && IsUserProtected(iAttacker) ) )
  98. {
  99. return HAM_SUPERCEDE
  100. }
  101. return HAM_IGNORED
  102. }
  103.  
  104. public OnCBasePlayer_TakeDamage(id, iInflictor, iAttacker, Float:flDamage, bitsDamageType)
  105. {
  106. if( bitsDamageType & DMG_GRENADE && ( IsUserProtected(id) || (IsPlayer(iAttacker) && IsUserProtected(iAttacker) ) ) )
  107. {
  108. SetHamReturnInteger(0)
  109. return HAM_SUPERCEDE
  110. }
  111. return HAM_IGNORED
  112. }
  113.  
  114. public OnCBasePlayer_Spawn_Post( id )
  115. {
  116. if( is_user_alive(id) )
  117. {
  118. switch( cs_get_user_team(id) )
  119. {
  120. case CS_TEAM_T:
  121. {
  122. set_user_rendering(id, kRenderFxGlowShell, 200, 0, 0, kRenderNormal, 24)
  123. }
  124. case CS_TEAM_CT:
  125. {
  126. set_user_rendering(id, kRenderFxGlowShell, 0, 0, 200, kRenderNormal, 24)
  127. }
  128. default:
  129. {
  130. return
  131. }
  132. }
  133. if( !g_bitProtectedPlayers )
  134. {
  135. EnableHamForward( g_iHhTakeDamage )
  136. EnableHamForward( g_iHhTraceAttack )
  137. EnableHamForward( g_iHhCSoundEntThinkPost )
  138.  
  139. if( g_iHhTakeDamage_CZBot )
  140. {
  141. EnableHamForward( g_iHhTakeDamage_CZBot )
  142. EnableHamForward( g_iHhTraceAttack_CZBot )
  143. }
  144. }
  145. MarkUserProtected(id)
  146. new Float:flProtectTime = get_pcvar_float( g_pCvarProtectTime )
  147. g_flEndOfProtection[id] = get_gametime() + flProtectTime
  148. if( get_pcvar_num(g_pCvarDisplayHud) )
  149. {
  150. set_hudmessage(0, 100, 200, -1.0, 0.75, 0, 0.01, flProtectTime, 0.01, 0.01, -1)
  151. ShowSyncHudMsg(id, g_iSyncHud, "You are protected and can't shoot during %.1f seconds", flProtectTime)
  152. }
  153. }
  154. }
  155.  
  156. public OnCSoundEnt_Think_Post( ent )
  157. {
  158. new iPlayers[32], iNum, id, Float:flGameTime = get_gametime()
  159. get_players(iPlayers, iNum, "h")
  160. set_hudmessage(0, 100, 200, -1.0, 0.75, 0, 0.01, 0.5, 0.01, 0.01, -1)
  161. for(--iNum; iNum>=0; iNum--)
  162. {
  163. id = iPlayers[iNum]
  164. if( IsUserProtected(id) && (g_flEndOfProtection[id] <= flGameTime || !is_user_alive(id) ) )
  165. {
  166. set_user_rendering(id, _, 0, 0, 0, _, 0)
  167. ClearUserProtected(id)
  168. ShowSyncHudMsg(id, g_iSyncHud, "You can shoot now.")
  169. }
  170. }
  171.  
  172. if( !g_bitProtectedPlayers )
  173. {
  174. DisableHamForward( g_iHhTakeDamage )
  175. DisableHamForward( g_iHhTraceAttack )
  176. DisableHamForward( g_iHhCSoundEntThinkPost )
  177. if( g_iHhTakeDamage_CZBot )
  178. {
  179. DisableHamForward( g_iHhTakeDamage_CZBot )
  180. DisableHamForward( g_iHhTraceAttack_CZBot )
  181. }
  182. }
  183. }


Sziasztok , valaki kibírnál ebből venni a glowot?
A kérdés meg azt,hogy mit kell kivenni ... :D hogy legközelebb már tudjam :)

_________________
[url=http://www.gametracker.com/server_info/188.227.227.114:27286/][img]http://cache.www.gametracker.com/server_info/188.227.227.114:27286/b_350_20_323957_202743_F19A15_111111.png[/img][/url]


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Kezdővédelm, glow kitéle
HozzászólásElküldve: 2012.12.30. 13:42 
Offline
Fanatikus

Csatlakozott: 2012.12.04. 19:05
Hozzászólások: 158
Megköszönt másnak: 3 alkalommal
Megköszönték neki: 10 alkalommal
SMA Forráskód: [ Mindet kijelol ]
  1. /* Formatright © 2011, ConnorMcLeod
  2.  
  3. This plugin is free software;
  4. you can redistribute it and/or modify it under the terms of the
  5. GNU General Public License as published by the Free Software Foundation.
  6.  
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU General Public License for more details.
  11.  
  12. You should have received a copy of the GNU General Public License
  13. along with this plugin; if not, write to the
  14. Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  15. Boston, MA 02111-1307, USA.
  16. */
  17.  
  18. #include <amxmodx>
  19. #include <fakemeta>
  20. #include <hamsandwich>
  21. #include <fun>
  22. #include <cstrike>
  23.  
  24. #define VERSION "0.1.2"
  25. #define PLUGIN "Spawn Protection"
  26.  
  27. const MAX_PLAYERS = 32
  28.  
  29. const DMG_GRENADE = (1<<24)
  30.  
  31. #define MaskEnt(%0) ( 1<<(%0 & 31) )
  32.  
  33. new g_bitProtectedPlayers
  34. #define MarkUserProtected(%0) g_bitProtectedPlayers |= MaskEnt(%0)
  35. #define ClearUserProtected(%0) g_bitProtectedPlayers &= ~MaskEnt(%0)
  36. #define IsUserProtected(%0) ( g_bitProtectedPlayers & MaskEnt(%0) )
  37.  
  38. new g_iMaxPlayers
  39. #define IsPlayer(%0) ( 1 <= %0 <= g_iMaxPlayers )
  40.  
  41. new Float:g_flEndOfProtection[MAX_PLAYERS+1]
  42. new g_pCvarProtectTime, g_pCvarDisplayHud
  43. new HamHook:g_iHhTakeDamage, HamHook:g_iHhTraceAttack, HamHook:g_iHhCSoundEntThinkPost,
  44. HamHook:g_iHhTakeDamage_CZBot, HamHook:g_iHhTraceAttack_CZBot
  45. new g_iSyncHud
  46.  
  47. public plugin_init()
  48. {
  49. register_plugin(PLUGIN, VERSION, "ConnorMcLeod")
  50.  
  51. g_pCvarProtectTime = register_cvar("amx_spawn_protection", "3.0")
  52. g_pCvarDisplayHud = register_cvar("amx_spawn_protect_display", "1")
  53. g_iSyncHud = CreateHudSyncObj()
  54.  
  55. RegisterHam(Ham_Spawn, "player", "OnCBasePlayer_Spawn_Post", true)
  56.  
  57. DisableHamForward( g_iHhTakeDamage = RegisterHam(Ham_TakeDamage, "player", "OnCBasePlayer_TakeDamage", false) )
  58. DisableHamForward( g_iHhTraceAttack = RegisterHam(Ham_TraceAttack, "player", "OnCBasePlayer_TraceAttack", false) )
  59.  
  60. g_iMaxPlayers = get_maxplayers()
  61.  
  62. for(new __ent = g_iMaxPlayers+1, __maxEntities = global_get(glb_maxEntities); __ent<__maxEntities; __ent++)
  63. {
  64. if( pev_valid(__ent) && !pev(__ent, pev_classname) )
  65. {
  66. DisableHamForward( g_iHhCSoundEntThinkPost = RegisterHamFromEntity(Ham_Think, __ent, "OnCSoundEnt_Think_Post", true) )
  67. break
  68. }
  69. }
  70. }
  71.  
  72. public cz_bot_ham_registerable( id )
  73. {
  74. RegisterHamFromEntity(Ham_Spawn, id, "OnCBasePlayer_Spawn_Post", true)
  75. DisableHamForward( g_iHhTakeDamage_CZBot = RegisterHamFromEntity(Ham_TakeDamage, id, "OnCBasePlayer_TakeDamage", false) )
  76. DisableHamForward( g_iHhTraceAttack_CZBot = RegisterHamFromEntity(Ham_TraceAttack, id, "OnCBasePlayer_TraceAttack", false) )
  77. }
  78.  
  79. public client_disconnect(id)
  80. {
  81. ClearUserProtected(id)
  82. if( !g_bitProtectedPlayers )
  83. {
  84. DisableHamForward( g_iHhTakeDamage )
  85. DisableHamForward( g_iHhTraceAttack )
  86. DisableHamForward( g_iHhCSoundEntThinkPost )
  87. if( g_iHhTakeDamage_CZBot )
  88. {
  89. DisableHamForward( g_iHhTakeDamage_CZBot )
  90. DisableHamForward( g_iHhTraceAttack_CZBot )
  91. }
  92. }
  93. }
  94.  
  95. public OnCBasePlayer_TraceAttack(id, iAttacker, Float:flDamage, Float:fVecDir[3], ptr, bitsDamageType)
  96. {
  97. if( IsUserProtected(id) || (IsPlayer(iAttacker) && IsUserProtected(iAttacker) ) )
  98. {
  99. return HAM_SUPERCEDE
  100. }
  101. return HAM_IGNORED
  102. }
  103.  
  104. public OnCBasePlayer_TakeDamage(id, iInflictor, iAttacker, Float:flDamage, bitsDamageType)
  105. {
  106. if( bitsDamageType & DMG_GRENADE && ( IsUserProtected(id) || (IsPlayer(iAttacker) && IsUserProtected(iAttacker) ) ) )
  107. {
  108. SetHamReturnInteger(0)
  109. return HAM_SUPERCEDE
  110. }
  111. return HAM_IGNORED
  112. }
  113.  
  114. public OnCBasePlayer_Spawn_Post( id )
  115. {
  116. if( is_user_alive(id) )
  117. {
  118. }
  119. if( !g_bitProtectedPlayers )
  120. {
  121. EnableHamForward( g_iHhTakeDamage )
  122. EnableHamForward( g_iHhTraceAttack )
  123. EnableHamForward( g_iHhCSoundEntThinkPost )
  124.  
  125. if( g_iHhTakeDamage_CZBot )
  126. {
  127. EnableHamForward( g_iHhTakeDamage_CZBot )
  128. EnableHamForward( g_iHhTraceAttack_CZBot )
  129. }
  130. }
  131. MarkUserProtected(id)
  132. new Float:flProtectTime = get_pcvar_float( g_pCvarProtectTime )
  133. g_flEndOfProtection[id] = get_gametime() + flProtectTime
  134. if( get_pcvar_num(g_pCvarDisplayHud) )
  135. {
  136. set_hudmessage(0, 100, 200, -1.0, 0.75, 0, 0.01, flProtectTime, 0.01, 0.01, -1)
  137. ShowSyncHudMsg(id, g_iSyncHud, "You are protected and can't shoot during %.1f seconds", flProtectTime)
  138. }
  139. }
  140. }
  141.  
  142. public OnCSoundEnt_Think_Post( ent )
  143. {
  144. new iPlayers[32], iNum, id, Float:flGameTime = get_gametime()
  145. get_players(iPlayers, iNum, "h")
  146. set_hudmessage(0, 100, 200, -1.0, 0.75, 0, 0.01, 0.5, 0.01, 0.01, -1)
  147. for(--iNum; iNum>=0; iNum--)
  148. {
  149. id = iPlayers[iNum]
  150. if( IsUserProtected(id) && (g_flEndOfProtection[id] <= flGameTime || !is_user_alive(id) ) )
  151. {
  152. set_user_rendering(id, _, 0, 0, 0, _, 0)
  153. ClearUserProtected(id)
  154. ShowSyncHudMsg(id, g_iSyncHud, "You can shoot now.")
  155. }
  156. }
  157.  
  158. if( !g_bitProtectedPlayers )
  159. {
  160. DisableHamForward( g_iHhTakeDamage )
  161. DisableHamForward( g_iHhTraceAttack )
  162. DisableHamForward( g_iHhCSoundEntThinkPost )
  163. if( g_iHhTakeDamage_CZBot )
  164. {
  165. DisableHamForward( g_iHhTakeDamage_CZBot )
  166. DisableHamForward( g_iHhTraceAttack_CZBot )
  167. }
  168. }
  169. }
  170.  


Player spawn forwardnál kellet kivenni a set_user_rendering függvényeket

_________________
[mozgo][kozep]
Ha szeretnél tutorialt (bemutatót) kérni, írj, szívesen megcsinálom!
[/kozep][/mozgo]


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


Ki van itt

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