| Helló
 
 Ennél jobb témanevet nem bírtam kitalálni, szóval amelyik moderátornak/adminisztrátornak nem tetszik, az pls változtassa meg.
 
 Kezdem is: Azt kellene ebbe a pluginba beleírni, hogy amíg nem fogadja el a játékos a szabályokat, addig ugye nem tud mozogni. De mivel deathrun szerverre kéne, ezért ha sokáig húzza az időt akkor leesik. (Mer ugye deathrun mapok elején csúszol lefele.)
 Szóval azt kellene beleírni, hogy amíg nem fogadod el addig ne is csússzál lefele... Én pl úgy gondoltam, hogy picivel a föld fölött megállít, és csak akkor esel le, hogyha elfogadtad. De ha ez túl nehéz akkor máshogy is jó lenne... Lényeg az, hogy ne csússzon lefele addig míg nem fogadta el...
 
 SMA:
 
 Kód: #include <amxmodx>
 #include <cstrike>
 #include <fakemeta>
 #include <dhudmessage>
  
 #define Skip_Admin
 #if defined Skip_Admin
 #define AdminAccess ADMIN_KICK
 #endif
  
 new g_Rules[33], g_SpeedTaken[33]
 new CVAR_SpectUser, CVAR_PlugEnable, CVAR_NoDamage, CVAR_Glow, CVAR_SetInfo, CVAR_KnifeOnly, g_msgScreenFade
 new Float:UserSpeed[33]
  
 new const RulesSetInfoKey[] = "_rules"
  
 public plugin_init()
 {
         register_plugin("Szerver Szabalyok", "2.5", "Shidla")
  
         CVAR_SpectUser = register_cvar("amx_spect_user", "1")
         CVAR_PlugEnable = register_cvar("amx_rules_enable", "1")
         CVAR_NoDamage = register_cvar("amx_rules_nodamage", "1")
         CVAR_Glow = register_cvar("amx_rules_glow", "1")
         CVAR_KnifeOnly = register_cvar("amx_rules_knife", "1")
         CVAR_SetInfo = register_cvar("amx_rules_setinfo", "0")
  
         g_msgScreenFade = get_user_msgid("ScreenFade")
  
         register_cvar("Shidla", "Server Rules v2.5 Final", FCVAR_SERVER|FCVAR_SPONLY)
  
         set_task( 1.0,"dhud");
 }
  
 public client_putinserver(id)
 {
         #if defined Skip_Admin
                 if ((get_user_flags(id) & AdminAccess))
                 {
                         g_Rules[id] = true
                         return PLUGIN_CONTINUE
                 }
                 g_Rules[id] = false
         #endif
  
         if(get_pcvar_num(CVAR_SetInfo))
         {
                 new RulesSetInfo[32]
                 get_user_info(id, RulesSetInfoKey, RulesSetInfo, 31)
  
                 if(strlen(RulesSetInfo) > 0)
                 {
                         g_Rules[id] = true
                         return PLUGIN_CONTINUE
                 }
                
                 set_task(1.0, "CheckUserRulesStats", id, "", 0, "b", 0)
         }
  
         if(!is_user_bot(id))
         {
                 g_Rules[id] = false
                 g_SpeedTaken[id] = false
         }
  
         set_task(1.0, "CheckUserRulesStats", id, "", 0, "b", 0)
  
         return PLUGIN_CONTINUE
 }
  
 public client_disconnect(id)
 {
         g_Rules[id] = false
         g_SpeedTaken[id] = false
 }
  
 public CheckUserRulesStats(id)
 {
         if(!get_pcvar_num(CVAR_PlugEnable) || !is_user_connected(id) || is_user_bot(id))
                 return PLUGIN_CONTINUE
  
         #if defined Skip_Admin
                 if ((get_user_flags(id) & AdminAccess))
                         return PLUGIN_CONTINUE
         #endif
  
         if(!g_Rules[id])
         {
                 new i_Menu = menu_create("\rElfogadod a szerver szabalyzatot?", "Rules_Menu_Options")
                 menu_additem(i_Menu, "\yIgen", "1", 0)
                 menu_additem(i_Menu, "\yNem \w[KICK]", "2", 0)
                 menu_additem(i_Menu, "\yMutasd", "3", 0)
  
                 menu_display(id, i_Menu, 0)
  
                 ScreenFade(id)
  
                 if(get_pcvar_num(CVAR_Glow))
                         fm_set_rendering(id, kRenderFxGlowShell, 115, 50, 155, kRenderNormal, 25)
  
                 UserMovie(id)
         }
  
         return PLUGIN_CONTINUE
 }
  
  
 public Rules_Menu_Options(id, menu, item)
 {
         new s_Data[6], s_Name[64], i_Access, i_Callback
  
         new player[32]
         get_user_name(id, player, 32)
         menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
         new i_Key = str_to_num(s_Data)
  
         switch(i_Key)
         {
                 case 1:
                 {
                         g_Rules[id] = true
  
                         if(get_pcvar_num(CVAR_SetInfo))
                                 client_cmd(id, "setinfo %s 1", RulesSetInfoKey)
  
                         DelScreenFade(id)
  
                         fm_set_rendering(id)
  
                         UserMovie(id)
  
                         if(fm_get_user_godmode(id))
                                 fm_set_user_godmode(id)
                 }
  
                 case 2:
                 {
                         new TextREASON[ 555 ];
                         formatex( TextREASON, 554, "Nem fogadtal el a szabalyokat, ezert kickelve lettel.")
                         server_cmd("kick %s %s", player, TextREASON)
                 }
  
                 case 3:
                 {
                         show_motd( id,"addons/amxmodx/configs/modts/rules.txt");
                 }
         }
 }
  
 public UserMovie(id)
 {
         if(!is_user_alive(id) || !is_user_connected(id))
                 return PLUGIN_CONTINUE
  
         if(!g_SpeedTaken[id])
         {
                 if(is_user_alive(id) & is_user_connected(id))
                 {
                         pev(id, pev_maxspeed, UserSpeed[id])
                         g_SpeedTaken[id] = true
                 }
                 else return PLUGIN_CONTINUE
         }
  
         if(g_Rules[id] & is_user_connected(id))
         {
                 set_pev(id, pev_maxspeed, UserSpeed[id])
                 return PLUGIN_CONTINUE
         }
  
         if(is_user_alive(id) & is_user_connected(id))
         {
                 set_pev(id, pev_velocity, Float:{0.0,0.0,0.0})
                 set_pev(id, pev_maxspeed, 1.0)
         }
         else return PLUGIN_CONTINUE
  
         if(get_pcvar_num(CVAR_KnifeOnly))
         {
                 new CurrWeapon = read_data(2)
  
                 if (CurrWeapon != CSW_KNIFE)
                         engclient_cmd(id, "weapon_knife")
         }
  
         if(get_pcvar_num(CVAR_NoDamage) & is_user_connected(id))
         {
                 if(fm_get_user_godmode(id))
                         return PLUGIN_CONTINUE
                 fm_set_user_godmode(id, 1)
         }
  
         return PLUGIN_CONTINUE
 }
  
 public Spect_User(id)
 {
         if(get_pcvar_num(CVAR_SpectUser) & is_user_connected(id))
         {
                 if(is_user_alive(id))
                 {
                         new deaths = cs_get_user_deaths(id)
                         user_silentkill(id)
                         cs_set_user_deaths(id, deaths)
                 }
  
                 engclient_cmd(id, "jointeam", "6")
                 engclient_cmd(id, "joinclass", "1")
         }
  
         g_Rules[id] = false
  
         return PLUGIN_CONTINUE
 }
  
 public ScreenFade(id)
 {
         if(is_user_connected(id) & is_user_alive(id))
         {
                 message_begin(MSG_ONE, g_msgScreenFade, _, id)
                 write_short(1<<0)       // Duration
                 write_short(1<<0)       // Hold time
                 write_short(1<<2)       // Fade type
                 write_byte(0)           // Red
                 write_byte(0)           // Green
                 write_byte(0)           // Blue
                 write_byte(255)         // Alpha
                 message_end()
         }
 }
  
 public DelScreenFade(id)
 {
         if(is_user_connected(id))
         {
                 message_begin(MSG_ONE, g_msgScreenFade, _, id)
                 write_short(1<<0)       // Duration
                 write_short(1<<0)       // Hold time
                 write_short(1<<0)       // Fade type
                 write_byte(0)           // Red
                 write_byte(0)           // Green
                 write_byte(0)           // Blue
                 write_byte(0)           // Alpha
                 message_end()
         }
 }
  
 stock fm_set_rendering(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16)
 {
         static Float:color[3]
         color[0] = float(r)
         color[1] = float(g)
         color[2] = float(b)
         set_pev(entity, pev_renderfx, fx)
         set_pev(entity, pev_rendercolor, color)
         set_pev(entity, pev_rendermode, render)
         set_pev(entity, pev_renderamt, float(amount))
 }
  
 stock fm_get_user_godmode(index)
 {
         new Float:val
         pev(index, pev_takedamage, val)
  
         return (val == DAMAGE_NO)
 }
  
 stock fm_set_user_godmode(index, godmode = 0)
 {
         set_pev(index, pev_takedamage, godmode == 1 ? DAMAGE_NO : DAMAGE_AIM)
  
         return 1
 }
  
 public dhud(id)
 {
    set_dhudmessage( 255, 81, 44, -1.0, 0.30, 2, 6.0, 3.0, 0.1, 1.5 )
    show_dhudmessage(id, "Ha elfogadod a szerver szabalyzatot, akkor azt be is kell tartanod a tovabbiakban !!!")
 }
 |