Raised This Month: $51 Target: $400
 12% 

trying to do leaders..


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
liryck
Senior Member
Join Date: Mar 2007
Location: Venezuela
Old 06-14-2011 , 01:04   trying to do leaders..
Reply With Quote #1

first of all im not a pro coder not a pro scripting or something else.
the code is just coded by a new, all will say is horrible hurts their eyes etc.

what i was trying to do some time ago was to adapt and make a captain sort

that when in the yap_pug get selected this option well get 2 random players that get leaders for ct and t, randomly appear to one of them a menu with the rest of players and pick 1 by 1 alternate it.

when a leader doesnt pick caus is afk or something randomly get a pick.

i got problems with final balance, when a player leave the server when picking and other join, when a captain leave the server etc.

this was made by me with effort but couldnt done it in optimal way and clean.

surely that need to be redone caus is there other way much better to do this. but hope some 1 could help. i think to post this a lot caus it ashame me due the code. so be nice just trying to get a cool result


PHP Code:
public pug_teams_captainsort()
{
    new 
szNameT[32]
    new 
szNameCT[32]
    
    new 
retrieve 2;
    new 
count;
    new 
selected[32]
    new 
rand
    
    g_captain 
true
    set_pcvar_num
(g_enable,1)
    
    
get_players(iPlayersiNum);
    if(
retrieve iNum)
    {
        
pug_reset();
    }
    else
    {
        do{
            
rand random(iNum);
            
selected[count++] = iPlayers[rand];
            
iPlayers[rand] = iPlayers[--iNum];
        }while(
count retrieve );
        
        if(
count == 2)
        {
            for( new 
icount 1i++ )
            {
                
ct_cap selected[i]
                
get_user_name(ct_capszNameCT31)
                
LastNameCT szNameCT
                client_cmd
(ct_cap,"name ^"%(C)^"",szNameCT)
                
t_cap selected[i+1]
                
get_user_name(t_capszNameT31)
                
LastNameT szNameT
                client_cmd
(t_cap,"name ^"%(C)^"",szNameT)
                
client_print(0,print_chat,"[ESVE Pug]Terrorist Captain: %s, CT Captain: %s",szNameT,szNameCT);
                
client_print(0,print_chat,"[ESVE Pug]Captains will alternate picking players. Ten seconds per pick. if no pick. random player will be chosen.");
            }
            
            if(
cs_get_user_team(ct_cap) == CS_TEAM_T)
            {
                
cs_set_user_team(ct_cap,CS_TEAM_CT)
                
count_ct++
            }
            if(
cs_get_user_team(t_cap) == CS_TEAM_CT)
            {
                
cs_set_user_team(t_cap,CS_TEAM_T)
                
count_t++
            }
        }
        
        
g_team[ct_cap] = KEY_CT
        
g_team[t_cap] = KEY_T;
        if(
is_user_connected(ct_cap) && is_user_connected(t_cap))
        {
            
r_display random(2)
            if(
r_display == 0)
            {
                
AwesomeMenu(t_cap)
                
check_display_team()
            }
            if(
r_display == 1)
            {
                
AwesomeMenu(ct_cap)
                
check_display_team()
            }
        }
        else
        {
            
client_print(0,print_chat,"Captain Sort Has Failed, Randomization Will be Applied")
            
set_task(1.0,"randomize_teams")
            
set_task(1.5,"gen")
        }
    }
    
//pug_msg_tmp_empty(0,"Captain sort not yet implimented, using random sort");
    //pug_teams_randomize();
}

public 
AwesomeMenu(id)
{
    
//Create a variable to hold the menu
    
new menu menu_create("\yChoose Player:""menu_handler");
    
    
//Some variables to hold information about the players
    
new szName[32], szTempid[10];
    
    
//Start looping through all players
    
for( new ii<iNumi++ )
    {
        
//Save a tempid so we do not re-index
        
tempid iPlayers[i];
        
        
//Get the players name and id as strings
        
get_user_name(tempidszName31);
        
num_to_str(tempidszTempid9);
        
        
menu_setprop(menuMPROP_EXITMEXIT_NEVER);
        
        
//Add the item for this player
        
menu_additem(menuszNameszTempid0);
        
    }
    
    
menu_id2 menu
    
//We now have all players in the menu, lets display the menu
    
menu_display(idmenu0);
    
set_task(11.0,"random_choose",CHECK_TASK_MENU+menu)
    
set_task(15.0,"CaptainsOnline",CHECK_TASK_NOCAPS,"b")
    
cap_id id
}

public 
CaptainsOnline()
{
    if(!
is_user_connected(ct_cap) || !is_user_connected(t_cap))
    {
        
client_print(0,print_chat,"Captain Sort Has Failed, Randomization Will be Applied")
        
set_task(1.0,"randomize_teams")
        
set_task(1.5,"gen")
        
remove_task(CHECK_TASK_NOCAPS)
    }
}
public 
random_choose(menu)
{
    new 
player
    
new ran;
    new 
name[32]
    new 
real_menu menu CHECK_TASK_MENU
            
        
    
if(iNum 0)
    {
        
ran random(iNum);
        
iPlayers[ran] = iPlayers[--iNum];
        
player iPlayers[ran];    
    }
        
    if(
cap_id == ct_cap && is_user_connected(player) && count_ct 5)
    {
        
cs_set_user_team(playerCS_TEAM_CT)
        
get_user_name(player,name,31)
        
client_print(0,print_chat,"--> %s has been picked for CT Randomly",name)
            
        
count_ct++
        
g_team[player] = KEY_CT;
            
        
check_display_team();
        
check_continue();
            
        
team true
            
        menu_destroy
(real_menu)
        
set_task(0.2,"AwesomeMenu",t_cap)
        return 
PLUGIN_HANDLED;
    }
    else
    {
        if(
count_ct == 5)
        {
            
cs_set_user_team(playerCS_TEAM_T)
            
count_t++
            
            
g_team[player] = KEY_T;
            
            
get_user_name(player,name,31)
            
client_print(0,print_chat,"--> %s has been picked for Terrorist Randomly",name)
            
            
menu_destroy(real_menu)
            
set_task(0.2,"AwesomeMenu",t_cap)
            return 
PLUGIN_HANDLED;
        }
    }
    
    if(
cap_id == t_cap && is_user_connected(player) && count_t 5)
    {
        
cs_set_user_team(playerCS_TEAM_T)
        
get_user_name(player,name,31)
        
client_print(0,print_chat,"--> %s has been picked for Terrorist Randomly",name)
        
count_t++

        
g_team[player] = KEY_T;
        
check_display_team();
            
        
check_continue();
        
team true
            
        menu_destroy
(real_menu)
        
set_task(0.2,"AwesomeMenu",ct_cap)
        return 
PLUGIN_HANDLED;
    }
    else
    {
        if(
count_t == 5)
        {
            
cs_set_user_team(player,CS_TEAM_CT)
            
count_ct++
        
            
            
g_team[player] = KEY_CT
            
            get_user_name
(player,name,31)
            
client_print(0,print_chat,"--> %s has been picked for CT Randomly",name)
            
            
menu_destroy(real_menu)
            
set_task(0.2,"AwesomeMenu",ct_cap)
            return 
PLUGIN_HANDLED;
        }
    }
    return 
PLUGIN_CONTINUE;
}

public 
menu_handler(idmenuitem)
{
    
    new 
name[32]
    if( 
item == MENU_EXIT )
    {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }
    
    new 
data[6], iName[64];
    new 
accesscallback;
    
menu_item_getinfo(menuitemaccessdata,5iName63callback);
    
    
//Get the id of the player that was selected
    
server_print"playerid = %s" data ); 
    new 
ptempid str_to_num(data);
    
server_print"playerid = %d" ptempid ); 
    
check_display_team();
    

    if(
cap_id == ct_cap && is_user_connected(ptempid) && count_ct 5)
    {
        
cs_set_user_team(ptempidCS_TEAM_CT)
        
g_team[ptempid] = KEY_CT
        get_user_name
(ptempid,name,31)
        
client_print(0,print_chat,"--> %s has been picked for CT",name)
        
        
GetPlayerIndexptempid );
        
count_ct++;
        
        
        
remove_task(CHECK_TASK_MENU+menu)
        
team true
        check_display_team
();
        
        
check_continue();
        
menu_destroy(menu);
        
        
        
set_task(0.2,"AwesomeMenu",t_cap)
        return 
PLUGIN_HANDLED;    
    }
    else
    { 
        if(
count_ct == 5)
        {
            
remove_task(CHECK_TASK_MENU+menu)
            
menu_destroy(menu);
            
            
AwesomeMenu(t_cap);
            
check_display_team();
            return 
PLUGIN_HANDLED;
        }
    }
    
    if(
cap_id == t_cap && is_user_connected(ptempid) && count_t 5)
    {
        
cs_set_user_team(ptempid,CS_TEAM_T)
        
g_team[ptempid] = KEY_T
        get_user_name
(ptempid,name,31)
        
client_print(0,print_chat,"--> %s has been picked for Terrorist",name)
        
        
GetPlayerIndexptempid );
        
count_t++            
            
        
remove_task(CHECK_TASK_MENU+menu)
        
team true
        
        check_display_team
();
        
check_continue();
            
        
menu_destroy(menu);
        
set_task(0.2,"AwesomeMenu",ct_cap)
        return 
PLUGIN_HANDLED;
    }
    else
    {
        if(
count_t == 5)
        {
            
remove_task(CHECK_TASK_MENU+menu)
            
menu_destroy(menu);
            
            
AwesomeMenu(ct_cap);
            
check_display_team();
            return 
PLUGIN_HANDLED;
        }
    }
    return 
PLUGIN_HANDLED;
}

public 
GetPlayerIndexid )
{
    new 
name[32]
    for( new 
0iNumi++ )
    {
        if ( 
iPlayers] == id ){
            
iPlayers] = iPlayers[ --iNum ];
            
get_user_name(id,name,31)
            
        }
    }
    

liryck is offline
Send a message via MSN to liryck
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 16:46.


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