AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   show menu every 3 rounds (https://forums.alliedmods.net/showthread.php?t=345436)

KiloV92 01-13-2024 03:23

show menu every 3 rounds
 
i know we cant pass id to global event . but how can i do this ?

new g_iAdMenuUsage[33] = 0

public plugin_init()
{
register_logevent( "Logevent_RoundStart", 2, "1=Round_Start" );
register_clcmd("say /adminmenu", "clcmd_adminmenu")
}
public Logevent_RoundStart(id)
{
g_iAdMenuUsage[id] ++

}
public clcmd_adminmenu(id)
{
if(g_iAdMenuUsage[id] > 3)
{

show_menu(id)
}
}

bigdaddy424 01-13-2024 07:07

Re: show menu every 3 rounds
 
get_players()

Natsheh 01-13-2024 10:41

Re: show menu every 3 rounds
 
PHP Code:

#include <amxmodx>

public plugin_init()
{
   
register_event("HLTV""HLTV_Event""a""1=0""2=0");
}

public 
HLTV_Event()
{
   
set_task(2.0"MenuUsageIncrement4EveryPlayer");
}

public 
MenuUsageIncrement4EveryPlayer()
{
   for(new 
1<= 32i++)
   {
       if(!
is_user_alive(i)) continue;
       
g_iAdMenuUsage[i] ++;
   }



fysiks 01-13-2024 17:11

Re: show menu every 3 rounds
 
Don't loop through all player entities, use get_players() as bigdaddy424 suggested.

Uzviseni Bog 01-13-2024 19:00

Re: show menu every 3 rounds
 
Quote:

Originally Posted by fysiks (Post 2816005)
Don't loop through all player entities, use get_players() as bigdaddy424 suggested.

Yea

KiloV92 01-14-2024 01:57

Re: show menu every 3 rounds
 
Thanks . And how can i stop giving g_iAdMenuUsage[id] to players at 3 ? I mean how can i detect if a player has 3 g_iAdMenuUsage and stop giving them until they use the menu ?

Natsheh 01-14-2024 10:50

Re: show menu every 3 rounds
 
Quote:

Originally Posted by KiloV92 (Post 2816018)
Thanks . And how can i stop giving g_iAdMenuUsage[id] to players at 3 ? I mean how can i detect if a player has 3 g_iAdMenuUsage and stop giving them until they use the menu ?

g_iAdMenuUsage[i] = min(++g_iAdMenuUsage[i], 3);

mlibre 01-14-2024 13:36

Re: show menu every 3 rounds
 
PHP Code:

public hook_event()
{
    
method_get_players()
    
    
//method_get_maxplayers()
}

stock method_get_players()
{
    new 
players[32], maxplayers
    
    get_players
(playersmaxplayers"ch"// skip bots & hltv
    
    
for(new iidmaxplayersi++)
    {
        
id players[i]
        
        
chk_menu(id)
    }
}

stock method_get_maxplayers()
{    
    static 
maxplayers
    
    
if( !maxplayers )
    {
        
maxplayers get_maxplayers()
    }
    
    for(new 
id 1id <= maxplayersid++)
    {
        if(
is_user_bot(id) || is_user_hltv(id))
        {
            continue
        }
        
        
chk_menu(id)
    }
}

stock chk_menu(id)
{
    
g_iAdMenuUsage[id]++
    
    if(
g_iAdMenuUsage[id] > 3)
    {
        
show_menux(id)
        
        
//g_iAdMenuUsage[id] = 0 //<-reset¿?
    
}
}

public 
show_menux(id)
{
    
//...




All times are GMT -4. The time now is 00:33.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.