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 !!!") 
- }