AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   DRM Help (https://forums.alliedmods.net/showthread.php?t=82688)

xPaw 12-28-2008 05:27

DRM Help
 
Hi, i have problem in my deathrun manager with doing new terr at round spawn, i cant figure out how to fix, maybe someone can help me

the part of code where selecting new terr:
PHP Code:

// Making new Terr
public eRandromize() {
    if(
get_pcvar_num(g_Toggle) == 0)
        return 
PLUGIN_HANDLED;
    
    if(
g_FirstRound || g_Randromized)
        return 
PLUGIN_HANDLED;
    
    
g_Randromized true;
    
    new 
g_Players;
    new 
indexArray[32];
 
    for(new 
i=1i<=g_Maxplayersi++) {
        if(
is_user_connected(i)) {
            
indexArray[g_Players] = i;
            
g_Players++;
        }
 
        if(
get_user_team(i) == 1)
            
fm_set_user_team(iFM_TEAM_CT);
    }

    if(
g_Players <= 1)
        return 
PLUGIN_HANDLED;
        
    if(
g_FirstRound)
        return 
PLUGIN_HANDLED;

    new 
g_ID indexArray[random_num(0g_Players 1)];
    
    if(
get_user_team(g_ID) == && is_user_connected(g_ID)) {
        new 
name[32];
        
get_user_name(g_IDname31);
    
        
client_print(0print_chat"[Deathrun] %L"LANG_PLAYER"MSG_NOW_TERR"name);

        
fm_set_user_team(g_IDFM_TEAM_T);
    } else {
        if(
g_Restart)
            return 
PLUGIN_HANDLED;
        
        
g_Restart true;
        
        
client_print(0print_chat"[Deathrun] %L"LANG_PLAYER"MSG_TOO_LAZY");
        
        
eRandromize();
        for(new 
i=0i<g_Maxplayersi++)
            if(
is_user_alive(i) && get_user_team(i) == 2)
                
fm_user_kill(i);
    }
    
    return 
PLUGIN_HANDLED;
}

// New Round
public eStartRound() {
    if(
get_pcvar_num(g_Toggle) == 0)
        return 
PLUGIN_HANDLED;
    
    
g_Randromized    false;
    
g_Restart    false;
    
    new 
g_Players;
    
    for(new 
i=0i<g_Maxplayersi++)
        if(
is_user_connected(i))
            
g_Players++;
    
    if(
g_Players <= 1)
        return 
PLUGIN_HANDLED;
    
    
set_cvar_num("sv_autoteambalance"0);
    
set_cvar_num("mp_limitteams"g_Maxplayers);

    
set_hudmessage(2551270, -1.00.127.07.00.20.5, -1);
    
show_hudmessage(0"%L"LANG_PLAYER"MSG_PREPARE");
    
    if(
g_FirstRound) {
        
log_amx("[DeathRun] %L"LANG_SERVER"MSG_STARTING");
        
client_print(0print_chat"[Deathrun] %L"LANG_PLAYER"MSG_STARTING");
        
set_cvar_num("sv_restartround"10);
        
g_FirstRound false;
    }
    return 
PLUGIN_CONTINUE;
}

// Terrorist check
public eTerrorCheck() {
    if(
g_FirstRound)
        return 
PLUGIN_HANDLED;
    
    new 
g_Terrors;
    new 
g_Players;
    
    for(new 
i=0i<g_Maxplayersi++) {
        if(
get_user_team(i) == 1)
            
g_Terrors++;
            
        if(
is_user_connected(i))
            
g_Players++;
    }
    
    if(
g_Players <= 1)
        return 
PLUGIN_HANDLED;
    
    if(
g_Terrors == 0) {
        if(
g_Restart)
            return 
PLUGIN_HANDLED;
        
        
g_Restart true;
        
client_print(0print_chat"[Deathrun] %L"LANG_PLAYER"MSG_NO_DETECT");
        
log_amx("[DeathRun] %L"LANG_SERVER"MSG_NO_DETECT");
        
        
eRandromize();
        for(new 
i=0i<g_Maxplayersi++)
            if(
is_user_alive(i) && get_user_team(i) == 2)
                
fm_user_kill(i);
    }
    return 
PLUGIN_CONTINUE;


Fullcode link: http://forums.alliedmods.net/showthread.php?t=78197

stupok 12-28-2008 07:09

Re: DRM Help
 
I'm not sure what's wrong or what you're really trying to do, but I tried to clean up the code a bit:

PHP Code:

// Making new Terr
public eRandromize() {
    if(
get_pcvar_num(g_Toggle) == || g_FirstRound || g_Randromized//Rand_r_omized ???
        
return PLUGIN_HANDLED;
    
    
g_Randromized true;
    
    new 
g_Players;
    new 
indexArray[32];
    
    for(new 
i=1i<=g_Maxplayersi++) {
        if(
is_user_connected(i)) {
            
indexArray[g_Players] = i;
            
g_Players++;
        }
        
        if(
get_user_team(i) == 1// all players to CT
            
fm_set_user_team(iFM_TEAM_CT);
    }
    
    if(
g_Players <= 1)
        return 
PLUGIN_HANDLED;
    
    new 
g_ID indexArray[random_num(0g_Players 1)];
    
    new 
name[32];
    
get_user_name(g_IDname31);
    
    
client_print(0print_chat"[Deathrun] %L"LANG_PLAYER"MSG_NOW_TERR"name);
    
    
fm_set_user_team(g_IDFM_TEAM_T); // one player to T
    
    
return PLUGIN_HANDLED;
}

// New Round
public eStartRound() {
    if(
get_pcvar_num(g_Toggle) == 0)
        return 
PLUGIN_HANDLED;
    
    
g_Randromized false;
    
g_Restart false;
    
    new 
g_Players;
    
    for(new 
i=1i<=g_Maxplayersi++)
    {
        if(
is_user_connected(i))
            
g_Players++;
    }
    
    if(
g_Players <= 1)
        return 
PLUGIN_HANDLED;
    
    
set_cvar_num("sv_autoteambalance"0);
    
set_cvar_num("mp_limitteams"g_Maxplayers);
    
    
set_hudmessage(2551270, -1.00.127.07.00.20.5, -1);
    
show_hudmessage(0"%L"LANG_PLAYER"MSG_PREPARE");
    
    if(
g_FirstRound) {
        
log_amx("[DeathRun] %L"LANG_SERVER"MSG_STARTING");
        
client_print(0print_chat"[Deathrun] %L"LANG_PLAYER"MSG_STARTING");
        
set_cvar_num("sv_restartround"10);
        
g_FirstRound false;
    }
    
    return 
PLUGIN_CONTINUE;
}

// Terrorist check
public eTerrorCheck() {
    if(
g_FirstRound)
        return 
PLUGIN_HANDLED;
    
    new 
g_Terrors;
    new 
g_Players;
    
    for(new 
i=1i<=g_Maxplayersi++) {
        if(
get_user_team(i) == 1)
            
g_Terrors++;
        
        if(
is_user_connected(i))
            
g_Players++;
    }
    
    if(
g_Players <= 1)
        return 
PLUGIN_HANDLED;
    
    if(
g_Terrors == 0) {
        if(
g_Restart)
            return 
PLUGIN_HANDLED;
        
        
g_Restart true;
        
client_print(0print_chat"[Deathrun] %L"LANG_PLAYER"MSG_NO_DETECT");
        
log_amx("[DeathRun] %L"LANG_SERVER"MSG_NO_DETECT");
        
        
eRandromize(); // All players to CT team
        
for(new i=1i<=g_Maxplayersi++) {
            if(
is_user_alive(i) && get_user_team(i) == 2// Kill all CT's ... ?
                
fm_user_kill(i);
        }
    }
    
    return 
PLUGIN_CONTINUE;




All times are GMT -4. The time now is 09:13.

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