Raised This Month: $ Target: $400
 0% 

Function Crashes


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
devilicioux
Veteran Member
Join Date: Jun 2013
Location: Delhi,India
Old 07-28-2013 , 21:05   Function Crashes
Reply With Quote #1

This Function frequently causes plugin crash .. Can any1 suggest optimization/correction/solution?

PHP Code:
public Random() {
    
set_pcvar_num(cvar_mp_freezetime9999)
    new 
players[32], pnumtempid;
    
get_players(playerspnum"ch");
    new 
specialCount

    
for( new ii<pnumi++ ) {
        
tempid players[i];
        
client_cmd(tempid"kill")
        
        if ( 
cs_get_user_team(tempid) != CS_TEAM_UNASSIGNED )
        {
            
specialCount++
            
cs_set_user_team(tempidCS_TEAM_SPECTATOR)
        } 
            
    }
    
    if (
specialCount 2) {
        if (
g_CustomGame) {
            
client_print(0print_chat"%s %L"PREFIXLANG_PLAYER"LESS_PLAYERS_CUSTOM")
            new 
taskId scanForTaskID()
            
set_task(3.0"RandomTeams"taskId)
        }
        
        else {
            
client_print(0print_chat"%s %L"PREFIXLANG_PLAYER"LESS_PLAYERS")
            new 
taskId scanForTaskID()
            
set_task(5.0"EndMatch"taskId)
        }
        return;
    }
        
    new 
random(pnum)
    while (
cs_get_user_team(players[z]) == CS_TEAM_UNASSIGNED)
        
random(pnum)
    
cs_set_user_team(players[z], CS_TEAM_T)
    
gCptT players[z]
    
    new 
random(pnum)
    while ( (
== z) || cs_get_user_team(players[q]) == CS_TEAM_UNASSIGNED )
        
random(pnum)
        
    
cs_set_user_team(players[q], CS_TEAM_CT
    
gCptCT players[q]
    
client_print(0print_chat"%s %L"PREFIXLANG_PLAYER"RANDOM_CHOSEN")
    
client_print(0print_chat"%s %L"PREFIXLANG_PLAYER"TERROR_FIRST")
    
g_bCpt true
    moveT
()
    return;


Last edited by devilicioux; 07-28-2013 at 21:07. Reason: tags
devilicioux is offline
President
Member
Join Date: May 2013
Old 07-29-2013 , 00:35   Re: Function Crashes
Reply With Quote #2

Show us
Quote:
Originally Posted by devilicioux View Post
PHP Code:
moveT() 
Edit:
PHP Code:
    new random(pnum)
    while (
cs_get_user_team(players[z]) == CS_TEAM_UNASSIGNED)
        
random(pnum)
    
cs_set_user_team(players[z], CS_TEAM_T)
    
gCptT players[z]
    
    new 
random(pnum)
    while ( (
== z) || cs_get_user_team(players[q]) == CS_TEAM_UNASSIGNED )
        
random(pnum)
        
    
cs_set_user_team(players[q], CS_TEAM_CT
    
gCptCT players[q
-->
PHP Code:
if(pnum)
{
    new 
zq;
    for(;;)
    {
        
random(pnum);
        if(
cs_get_user_team(players[z]) != CS_TEAM_UNASSIGNED)
            break;
    }
    
cs_set_user_team(players[z], CS_TEAM_T)
    
gCptT players[z]
    
    for(;;)
    {
        
random(pnum);
        if(
cs_get_user_team(players[z]) != CS_TEAM_UNASSIGNED && != z)
            break;
    }
    
cs_set_user_team(players[q], CS_TEAM_CT);
    
gCptCT players[q];


Last edited by President; 07-29-2013 at 01:42.
President is offline
ConnorMcLeod
Veteran Member
Join Date: Jul 2006
Location: France (95)
Old 07-29-2013 , 02:23   Re: Function Crashes
Reply With Quote #3

scanForTaskID() sounds stupid, use constants.
__________________
- tired and retired -

- my plugins -
ConnorMcLeod is offline
devilicioux
Veteran Member
Join Date: Jun 2013
Location: Delhi,India
Old 07-30-2013 , 14:14   Re: Function Crashes
Reply With Quote #4

PHP Code:

scanForTaskID
()
{
    for ( new 
1337 1337*i++ )
    {
        if ( !
task_exists(i) )
            return 
i
    
}
    return 
0

devilicioux is offline
devilicioux
Veteran Member
Join Date: Jun 2013
Location: Delhi,India
Old 07-30-2013 , 14:12   Re: Function Crashes
Reply With Quote #5

PHP Code:
public moveT() {
    
log_amx("moveT stage 1")
    
TeamsInfo()
    
log_amx("moveT stage 2")
    new 
title[64]
    
formatex(titlecharsmax(title), "%L"LANG_PLAYER"CHOOSE_PLAYER")
    
g_PlayersMenu menu_create(title"moveT_menu"); 
    new 
players[32], pnumtempid;
    new 
Tplayers[32], Tpnum;
    new 
szName[32], szTempid[10]; 
    new 
pickisdonecheck
    get_players
(playerspnum"ch"); 
    
    if ( !
pnum )
        return 
PLUGIN_HANDLED
        
    get_players
(TplayersTpnum"che""TERRORIST");
    
log_amx("moveT stage 3")
        
    for( new 
ii<pnumi++ ) 
    { 
        
tempid players[i];
        
        if ((
tempid == gCptT) || (tempid == gCptCT))
            
check++
        
        if (
cs_get_user_team(tempid) == CS_TEAM_UNASSIGNED)
            continue;
        
        else if (
cs_get_user_team(tempid) == CS_TEAM_SPECTATOR) {
            
get_user_name(tempidszName31); 
            
num_to_str(tempidszTempid9); 
            
menu_additem(g_PlayersMenuszNameszTempid);
            
pickisdone++
        }
    } 
    
    
log_amx("moveT stage 4")
    if (
check != 2) {
        
client_print(0print_chat"%s %L"PREFIXLANG_PLAYER"CAPTAINS_DISCONNECTED")
        
g_bCpt false
        removeAllTasks
()
        new 
taskId scanForTaskID()
        
set_task(3.0"RandomTeams"taskId)
        return 
PLUGIN_HANDLED
    
}
    
    if (
pickisdone == 0) {
        
client_print(0print_chat"%s %L"PREFIXLANG_PLAYER"TEAMS_ARE_SET")
        
g_bCpt false
        removeAllTasks
()
        new 
taskId scanForTaskID()
        
set_task(10.0"StartMatch"taskId)
        return 
PLUGIN_HANDLED
    
}
    
    if (
Tpnum >= get_pcvar_num(cvar_pLeft)/) {
        
client_print(0print_chat"%s %L"PREFIXLANG_PLAYER"TERROR_TEAM_FULL")
        
moveCT()
        return 
PLUGIN_HANDLED
    
}
    
    
log_amx("moveT stage 5")
 
    
menu_display(gCptTg_PlayersMenu)
    
set_task(25.0"kickhimout"gCptT)
    
log_amx("moveT stage 6")
    return 
PLUGIN_HANDLED

PHP Code:
public moveCT() {
    new 
title[64]
    
formatex(titlecharsmax(title), "%L"LANG_PLAYER"CHOOSE_PLAYER")
    
g_PlayersMenu menu_create(title"moveCT_menu"); 
    new 
players[32], pnumtempid
    new 
CTplayers[32], CTpnum;
    new 
szName[32], szTempid[10]; 
    new 
pickisdonecheck
    get_players
(playerspnum"ch"); 
    
get_players(CTplayersCTpnum"che""CT");
        
    for( new 
ii<pnumi++ ) 
    { 
        
tempid players[i];
        
        if ((
tempid == gCptT) || (tempid == gCptCT))
            
check++
        
        if (
cs_get_user_team(tempid) == CS_TEAM_UNASSIGNED)
            continue;
        
        else if (
cs_get_user_team(tempid) == CS_TEAM_SPECTATOR) {
            
get_user_name(tempidszName31); 
            
num_to_str(tempidszTempid9); 
            
menu_additem(g_PlayersMenuszNameszTempid);
            
pickisdone++
        }
    } 
    
    if (
check != 2) {
        
client_print(0print_chat"%s %L"PREFIXLANG_PLAYER"CAPTAINS_DISCONNECTED")
        
g_bCpt false
        
new taskId scanForTaskID()
        
set_task(3.0"RandomTeams"taskId)
        return 
PLUGIN_HANDLED
    
}
    
    if (
pickisdone == 0) {
        
client_print(0print_chat"%s %L"PREFIXLANG_PLAYER"TEAMS_ARE_SET")
        
g_bCpt false
        
new taskId scanForTaskID()
        
set_task(10.0"StartMatch"taskId)
        return 
PLUGIN_HANDLED
    
}
    
    if (
CTpnum >= get_pcvar_num(cvar_pLeft)/) {
        
client_print(0print_chat"%s %L"PREFIXLANG_PLAYER"CT_TEAM_FULL")
        
moveT()
        return 
PLUGIN_HANDLED
    
}
 
    
menu_display(gCptCTg_PlayersMenu)
    
set_task(20.0"kickhimout"gCptCT)
    return 
PLUGIN_HANDLED

PHP Code:
public kickhimout(id) {
    
client_print(0print_chat"%s %L"PREFIXLANG_PLAYER"CAPTAINS_AFK")
    
set_hudmessage(255000.400.3206.012.0)
    
ShowSyncHudMsg(0g_MsgSync2"%L"LANG_PLAYER"CAPTAINS_AFK")
    
show_menu(00"^n"1);
    
g_bCpt false
    
new taskId scanForTaskID()
    
set_task(5.0"RandomTeams"taskId)
    return 
PLUGIN_HANDLED


Last edited by devilicioux; 07-30-2013 at 14:15. Reason: correction
devilicioux is offline
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 15:58.


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