Senior Member
Join Date: Mar 2007
Location: Venezuela
|
06-14-2011
, 01:04
trying to do leaders..
|
#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(iPlayers, iNum); 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 i; i < count - 1; i++ ) { ct_cap = selected[i] get_user_name(ct_cap, szNameCT, 31) LastNameCT = szNameCT client_cmd(ct_cap,"name ^"%s (C)^"",szNameCT) t_cap = selected[i+1] get_user_name(t_cap, szNameT, 31) LastNameT = szNameT client_cmd(t_cap,"name ^"%s (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 i; i<iNum; i++ ) { //Save a tempid so we do not re-index tempid = iPlayers[i]; //Get the players name and id as strings get_user_name(tempid, szName, 31); num_to_str(tempid, szTempid, 9); menu_setprop(menu, MPROP_EXIT, MEXIT_NEVER); //Add the item for this player menu_additem(menu, szName, szTempid, 0); } menu_id2 = menu //We now have all players in the menu, lets display the menu menu_display(id, menu, 0); 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(player, CS_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(player, CS_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(player, CS_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(id, menu, item) { new name[32] if( item == MENU_EXIT ) { menu_destroy(menu); return PLUGIN_HANDLED; } new data[6], iName[64]; new access, callback; menu_item_getinfo(menu, item, access, data,5, iName, 63, callback); //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(ptempid, CS_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) GetPlayerIndex( ptempid ); 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) GetPlayerIndex( ptempid ); 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 GetPlayerIndex( id ) { new name[32] for( new i = 0; i < iNum; i++ ) { if ( iPlayers[ i ] == id ){ iPlayers[ i ] = iPlayers[ --iNum ]; get_user_name(id,name,31) } } }
|
|