AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Solved I cant send players to spec (https://forums.alliedmods.net/showthread.php?t=333119)

The overrated maniac 06-20-2021 11:00

I cant send players to spec
 
The message ingame when the players are ready says "You cannot become a spectator"

PHP Code:

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>

#define PLUGIN "Beta tuelve"
#define VERSION "1.0"
#define AUTHOR "Maniatico"

new g_ready[33];
new 
g_player_ready;


const 
OFFSET_VGUIMENU 2;

enum _:MESSAGES_STRUCT
{
    
SAYTEXT,
    
SHOWMENU,
    
VGUIMENU,
    
STATUSICON,
    
TEXTMSG,
    
HIDEWEAPON,
    
DEATHMSG
};

new 
g_message[MESSAGES_STRUCT];


new 
started_game 0;
new 
iMaxplayers;


new 
HUD_readys;

const 
Task 2323;

#define VEO_EL_HUD (taskid-Task)
#define TEXTO "The game will start when 7 players use /ready"

public plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_clcmd("say /ready""cmdready"ADMIN_ALL);
    
    
HUD_readys CreateHudSyncObj();
    
iMaxplayers get_maxplayers();
    
    
register_clcmd("chooseteam""clcmd_chooseteam");
    
register_clcmd("jointeam""clcmd_chooseteam");
    
    
    
g_message[SHOWMENU] = get_user_msgid("ShowMenu");
    
g_message[VGUIMENU] = get_user_msgid("VGUIMenu");
    
    
register_message(g_message[SHOWMENU], "message_showmenu");
    
register_message(g_message[VGUIMENU], "message_vguimenu");    
}

public 
cmdready(id){
    
    if(
g_ready[id] != 1){
    
        static 
name[33]
        
get_user_name(idname32);
        
g_player_ready += 1;
        
chatcolor(0"!yThe player !g%s !yis ready, there are !g%d/4 players !yready to play!"nameg_player_ready);
        
g_ready[id] = 1;
        
        if(
g_player_ready >= 4){
            
start_game(id);
            
started_game1;
            
remove_task(id+Task);
        }
    }
    else{
        
chatcolor(id"!yYou're already ready!");
    }    
    
}

public 
client_putinserver(id){

    if(
started_game != 1){
    
set_task(0.5"client_jointeam"id);
    
set_task(1.0"HudCentral"id Task__"b");
    }
    
    else{
        
engclient_cmd(id"jointeam""6");
    }
}

public 
client_jointeam(id){
    
    if (
is_user_bot(id))
            return;
    
    static 
vgui;
    
vgui = (get_pdata_int(id510) & (1<<0));
                
    if (
vgui)
        
set_pdata_int(id510get_pdata_int(id510) & ~(1<<0));
    
        
set_msg_block(get_user_msgid("ShowMenu"), BLOCK_ONCE);
        
set_msg_block(get_user_msgid("VGUIMenu"), BLOCK_ONCE);
        
engclient_cmd(id"jointeam""5");
        
engclient_cmd(id"joinclass""5");
            
        
set_msg_block(get_user_msgid("ShowMenu"), get_msg_block(get_user_msgid("ShowMenu")));
        
set_msg_block(get_user_msgid("ShowMenu"), get_msg_block(get_user_msgid("VGUIMenu")));
            
    if (
vgui)
        
set_pdata_int(id510get_pdata_int(id510));
    
    
set_task(0.1"respawn_player"id);
}

public 
respawn_player(id)
    
ExecuteHamB(Ham_CS_RoundRespawnid);
    
    
public 
clcmd_chooseteam(id)
{
    return 
PLUGIN_HANDLED;
}    
    
public 
message_showmenu(msgiddestid)
{
    static 
message[21];
    
get_msg_arg_string(4messagecharsmax(message));
    
    if (
containi(message"Team_Select") != -1)
        return 
PLUGIN_HANDLED;
    
    return 
PLUGIN_CONTINUE;
}

public 
message_vguimenu(msgiddestid)
{
    if (
get_msg_arg_int(1) != OFFSET_VGUIMENU)
        return 
PLUGIN_CONTINUE;
    
    return 
PLUGIN_HANDLED;
}
    
    
public 
client_disconnect(id){
    
    if(
g_ready[id] == 1){
        
g_player_ready -= 1;
    }
    
remove_task(id+Task);
}

public 
HudCentral(taskid){
    
    
set_hudmessage(random_num(0,255), random_num(0,255), random_num(0,255), -1.0, -0.716.01.10.00.0, -1)
    
ShowSyncHudMsg(VEO_EL_HUDHUD_readys"%s"TEXTO)





public 
start_game(id){
    
    
// This dont work
    
for(new i=1i<=iMaxplayersi++) {
        
        if(!
is_user_connected(i) || !is_user_alive(i)){
            continue
        
            
engclient_cmd(0"jointeam""6");
        }
    }
}

stock chatcolor(id, const input[], any:...)
{
    static 
szMsg[191], msgSayText;
    
    if (!
msgSayText)
        
msgSayText get_user_msgid("SayText");
    
    
vformat(szMsg190input3);

    
replace_all(szMsg190"!g""^4");
    
replace_all(szMsg190"!y""^1");
    
replace_all(szMsg190"!team""^3");
    
    
message_begin(id MSG_ONE_UNRELIABLE MSG_BROADCASTmsgSayText, .player id);
    
write_byte(id id 33);
    
write_string(szMsg);
    
message_end();



Napoleon_be 06-20-2021 12:33

Re: I cant send players to spec
 
https://forums.alliedmods.net/showthread.php?t=323520

search...

Crackhead69 06-20-2021 13:21

Re: I cant send players to spec
 
Just use cs_set_user_team to send somebody spectator

The overrated maniac 06-20-2021 20:35

Re: I cant send players to spec
 
Quote:

Originally Posted by Crackhead69 (Post 2750534)
Just use cs_set_user_team to send somebody spectator

It worked, thanks

kww 06-20-2021 23:16

Re: I cant send players to spec
 
yes, u should
Quote:

Originally Posted by Napoleon_be (Post 2750520)
search...

next time


All times are GMT -4. The time now is 02:36.

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