SOLUCIONADO problemas con el !forceready y !forceunready
#1
buenas tengo un problema con el !forceready y !forceunready cuando coloco el comando me sale esto en consola Hay mas de un cliente que coincide con su argumento

Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>

#include <PugCore>
#include <PugStocks>

#pragma semicolon 1

new bool:g_bActive false;
new 
bool:g_bReady[MAX_PLAYERS+1];

new 
g_pAutoSwap;

new 
g_pPlayersMin;
new 
g_pRoundsMax;
new 
g_pSwapDelay;

public 
plugin_init()
{
    
register_plugin("Pug Mod (Ready System)",PUG_MOD_VERSION,PUG_MOD_AUTHOR);
    
    
register_dictionary("PugReady.txt");
    
    
g_pAutoSwap create_cvar("pug_force_auto_swap","1",FCVAR_NONE,"Auto Swap teams without Ready-System if the teams are complete");
    
    
PugRegCommand("ready","fnReady",ADMIN_ALL,"PUG_DESC_READY");
    
PugRegCommand("unready","fnNotReady",ADMIN_ALL,"PUG_DESC_NOTREADY");
    
    
PugRegAdminCommand("forceready","fnForceReady",PUG_CMD_LVL,"PUG_DESC_FORCEREADY");
    
PugRegAdminCommand("forceunready","fnForceUnReady",PUG_CMD_LVL,"PUG_DESC_FORCENOTREADY");
    
    
g_pPlayersMin     get_cvar_pointer("pug_players_min");
    
g_pRoundsMax    get_cvar_pointer("pug_rounds_max");
    
g_pSwapDelay     get_cvar_pointer("pug_swap_delay");
    
    
register_event("ResetHUD","fnKeepMenu","bf");
    
    
hook_cvar_change(g_pPlayersMin,"fnKeepMenu");
    
hook_cvar_change(get_cvar_pointer("amx_language"),"fnKeepMenu");
    
    
register_clcmd("joinclass","fnJoinedClass");
    
register_clcmd("menuselect","fnJoinedClass");
    
    
RegisterHamPlayer(Ham_Killed,"fnKilledPost",true);
    
RegisterHamPlayer(Ham_Spawn,"fnSpawnPost",true);
    
    
register_forward(FM_CmdStart,"fnCmdStart",true);
    
register_forward(FM_SetModel,"fnSetModel",true);
    
    
register_message(get_user_msgid("Money"),"fnMoney");
}

public 
client_disconnected(id,bool:bDrop,szMessage[],iLen)
{
    if(
g_bActive)
    {
        
g_bReady[id] = false;
        
RequestFrame("fnKeepMenu");
    }
}

public 
client_infochanged(id)
{
    if(
g_bActive)
    {
        
RequestFrame("fnKeepMenu");
    }
}

public 
PugEventWarmup(iStage)
{
    
fnReadySystem(true);
}

public 
PugEventStart(iStage)
{
    
fnReadySystem(false);
}

public 
PugEventHalfTime(iStage)
{
    if(
PugGetPlayersNum(true) < get_pcvar_num(g_pPlayersMin))
    {
        
fnReadySystem(true);
    }
    else
    {
        if(
get_pcvar_num(g_pAutoSwap))
        {
            
arrayset(g_bReady,true,sizeof(g_bReady));
            
set_task(get_pcvar_float(g_pSwapDelay),"fnCheckReady");
        }
        else
        {
            
fnReadySystem(true);
        }
    }
}

public 
PugEventSecondHalf(iStage)
{
    
fnReadySystem(false);
}

public 
PugEventOvertime(iStage)
{
    
fnReadySystem(false);
}

fnReadySystem(bool:bActive)
{
    
g_bActive bActive;
    
PugRemoveMapEntities(bActive);
    
    if(
g_bActive)
    {
        
fnKeepMenu();
        
PugChat(0,"%L",LANG_SERVER,"PUG_READY_SYSTEM_1");
    }
    else
    {
        
fnDisplay(0.0);
        
PugChat(0,"%L",LANG_SERVER,"PUG_READY_SYSTEM_2");
    }
    
    
arrayset(g_bReady,false,sizeof(g_bReady));
}

public 
fnReady(id)
{
    if(
g_bActive && is_user_connected(id) && (CS_TEAM_T <= cs_get_user_team(id) <= CS_TEAM_CT))
    {
        if(
g_bReady[id])
        {
            
PugChat(id,"%L",LANG_SERVER,"PUG_READY_A");
        }
        else
        {
            
g_bReady[id] = true;
            
            new 
szName[MAX_NAME_LENGTH];
            
get_user_name(id,szName,charsmax(szName));
            
            
PugChat(id,"%L",LANG_SERVER,"PUG_READY_1",szName);
            
            
fnCheckReady();
        }
    }
    else
    {
        
PugChat(id,"%L",LANG_SERVER,"PUG_UNABLE_CMD");
    }
    
    return 
PLUGIN_HANDLED;
}

public 
fnNotReady(id)
{
    if(
g_bActive && is_user_connected(id) && (CS_TEAM_T <= cs_get_user_team(id) <= CS_TEAM_CT))
    {
        if(!
g_bReady[id])
        {
            
PugChat(id,"%L",LANG_SERVER,"PUG_READY_B");
        }
        else
        {
            
g_bReady[id] = false;
            
            new 
szName[MAX_NAME_LENGTH];
            
get_user_name(id,szName,charsmax(szName));
            
            
PugChat(id,"%L",LANG_SERVER,"PUG_READY_2",szName);
            
            
fnCheckReady();
        }
    }
    else
    {
        
PugChat(id,"%L",LANG_SERVER,"PUG_UNABLE_CMD");
    }
    
    return 
PLUGIN_HANDLED;
}

public 
fnForceReady(id)
{
    if(
g_bActive)
    {
        if(!
access(id,PUG_CMD_LVL) && (id != 0))
        {
            
PugChat(id,"PUG_CMD_NOTALLOWED");
        }
        else
        {
            new 
szArg[32];
            
read_argv(1,szArg,charsmax(szArg));
            
            new 
iPlayer cmd_target(id,szArg,CMDTARGET_OBEY_IMMUNITY);
            
            if(
iPlayer && (<= get_user_team(id) <= 2) && !g_bReady[iPlayer])
            {
                
PugRunCmdOnClient(id,"Force .ready","PUG_FORCE_READY",iPlayer,fnReady(iPlayer));
            }
        }
    }
    else
    {
        
PugChat(id,"%L",LANG_SERVER,"PUG_UNABLE_CMD");
    }
    
    return 
PLUGIN_HANDLED;
}

public 
fnForceUnReady(id)
{
    if(
g_bActive)
    {
        if(!
access(id,PUG_CMD_LVL) && (id != 0))
        {
            
PugChat(id,"PUG_CMD_NOTALLOWED");
        }
        else
        {
            new 
szArg[32];
            
read_argv(1,szArg,charsmax(szArg));
            
            new 
iPlayer cmd_target(id,szArg,CMDTARGET_OBEY_IMMUNITY);
            
            if(
iPlayer && (<= get_user_team(id) <= 2) && g_bReady[iPlayer])
            {
                
PugRunCmdOnClient(id,"Force .unready","PUG_FORCE_NOTREADY",iPlayer,fnNotReady(iPlayer));
            }
        }
    }
    else
    {
        
PugChat(id,"%L",LANG_SERVER,"PUG_UNABLE_CMD");
    }
    
    return 
PLUGIN_HANDLED;
}

public 
fnKeepMenu()
{
    if(
g_bActive)
    {
        
fnDisplay(999.0);
    }
}

public 
fnDisplay(Float:fHoldTime)
{
    new 
iPlayers[MAX_PLAYERS],iNum,iPlayer;
    
get_players(iPlayers,iNum,"ch");
    
    new 
iPlayersNum,iReadys;
    new 
szList[2][512],sName[MAX_NAME_LENGTH];
    
    for(new 
i;iNum;i++)
    {
        
iPlayer iPlayers[i];
        
        if(
CS_TEAM_T <= cs_get_user_team(iPlayer) <= CS_TEAM_CT)
        {
            
iPlayersNum++;
            
get_user_name(iPlayer,sName,charsmax(sName));
    
            if(
g_bReady[iPlayer])
            {
                
iReadys++;
                
format(szList[0],charsmax(szList[]),"%s%s^n",szList[0],sName);
            }
            else
            {
                
format(szList[1],charsmax(szList[]),"%s%s^n",szList[1],sName);
            }
        }
    }
    
    new 
iMinPlayers get_pcvar_num(g_pPlayersMin);

    
set_hudmessage(0,255,0,0.23,0.02,0,0.0,fHoldTime,0.0,0.0,1);
    
show_hudmessage(0,"%L",LANG_SERVER,"PUG_LIST_A",(iPlayersNum iReadys),iMinPlayers);

    
set_hudmessage(0,255,0,0.58,0.02,0,0.0,fHoldTime,0.0,0.0,2);
    
show_hudmessage(0,"%L",LANG_SERVER,"PUG_LIST_B",iReadys,iMinPlayers);

    
set_hudmessage(255,255,225,0.58,0.02,0,0.0,fHoldTime,0.0,0.0,3);
    
show_hudmessage(0,"^n%s",szList[0]);

    
set_hudmessage(255,255,225,0.23,0.02,0,0.0,fHoldTime,0.0,0.0,4);
    
show_hudmessage(0,"^n%s",szList[1]);
}

public 
fnCheckReady()
{
    
fnKeepMenu();
    
    new 
iReady 0;
    
    for(new 
i;sizeof(g_bReady);i++)
    {
        if(
g_bReady[i])
        {
            
iReady++;
        }
    }

    if(
iReady >= get_pcvar_num(g_pPlayersMin))
    {
        switch(
GET_PUG_STAGE())
        {
            case 
STAGE_WARMUP:
            {
                
PugStart();
            }
            case 
STAGE_HALFTIME:
            {
                if(
GET_PUG_ROUND() < get_pcvar_num(g_pRoundsMax))
                {
                    
PugSecondHalf();
                }
                else
                {
                    
PugOvertime();
                }
            }
        }
    }
}

public 
fnJoinedClass(id)
{
    if(
g_bActive)
    {
        if(
get_ent_data(id,"CBasePlayer","m_iMenu") == CS_Menu_ChooseAppearance)
        {
            
set_task(0.75,"fnRespawn",id);
        }
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
fnKilledPost(id)
{
    if(
g_bActive)
    {
        
set_task(0.75,"fnRespawn",id);
    }
}

public 
fnRespawn(id)
{
    if(
is_user_connected(id) && !is_user_alive(id) && (CS_TEAM_T <= cs_get_user_team(id) <= CS_TEAM_CT))
    {
        
ExecuteHamB(Ham_CS_RoundRespawn,id);
    }
}

public 
fnSpawnPost(id)
{
    if(
g_bActive)
    {
        
set_pev(id,pev_takedamage,DAMAGE_NO);
    }
}

public 
fnCmdStart(id,Handle,Seed)
{
    if(
g_bActive)
    {
        if(
is_user_alive(id) && pev(id,pev_takedamage) == DAMAGE_NO)
        {
            if(
get_uc(Handle,UC_Buttons) & (IN_FORWARD|IN_BACK|IN_MOVELEFT|IN_MOVERIGHT|IN_DUCK|IN_ATTACK|IN_ATTACK2))
            {
                
set_pev(id,pev_takedamage,DAMAGE_AIM);
            }
        }
    }
}

public 
fnSetModel(iEntity)
{
    if(
g_bActive)
    {
        if(
pev_valid(iEntity))
        {
            new 
szName[MAX_NAME_LENGTH];
            
pev(iEntity,pev_classname,szName,charsmax(szName));
            
            if(
equali(szName,"weaponbox"))
            {
                
set_pev(iEntity,pev_effects,EF_NODRAW);
                
set_pev(iEntity,pev_nextthink,get_gametime() + 0.1);
            }
            else if(
equali(szName,"weapon_shield"))
            {
                
set_pev(iEntity,pev_effects,EF_NODRAW);
                
RequestFrame("fnRemoveEntity",iEntity);
            }
        }
    }
}

public 
fnRemoveEntity(iEntity)
{
    
dllfunc(DLLFunc_Think,iEntity);
}

public 
fnMoney(iMsg,iMsgDest,id)
{
    if(
g_bActive)
    {
        if(
is_user_alive(id))
        {
            
cs_set_user_money(id,16000,0);
        }

        return 
PLUGIN_HANDLED;
    }

    return 
PLUGIN_CONTINUE;
}

public 
CS_OnBuy(id,iWeapon)
{
    if(
g_bActive)
    {
        if(
cs_get_weapon_class(iWeapon) == CS_WEAPONCLASS_GRENADE)
        {
            return 
PLUGIN_HANDLED;
        }
    }
    
    return 
PLUGIN_CONTINUE;

Responder
#2
Tenes que poner forceready NOMBRE ( de un jugador )
Responder
#3
(28/08/2018, 04:04 PM)Chema escribió: Tenes que poner forceready NOMBRE ( de un jugador )

pero no se puede poner para forzar a todos a estar listo?
Responder
#4
Utiliza un for con todos los jugadores, etc.
Responder
#5
(28/08/2018, 04:12 PM)Chema escribió: Utiliza un for con todos los jugadores, etc.

una ayudita Excitedeyes
Responder
#6
Código PHP:
public fnForceReady(id)
{
    if(
g_bActive)
    {
        if(!
access(id,PUG_CMD_LVL) && (id != 0))
        {
            
PugChat(id,"PUG_CMD_NOTALLOWED");
        }
        else
        {
            for( new 
iPlayer iPlayer <= get_maxplayers(); ++iPlayer )
            {
// No se mucho de PUGS pero el get_user_team no deberia llevar iPlayer en vez de id ? digo para que quiero saber mi equipo, lo que me interesa es el equipo del que forzare el comando :whatever:
                
if(iPlayer && (<= get_user_team(id) <= 2) && !g_bReady[iPlayer]) 
                {
                    
PugRunCmdOnClient(id,"Force .ready","PUG_FORCE_READY",iPlayer,fnReady(iPlayer));
                }
            }
        }
    }
    else
    {
        
PugChat(id,"%L",LANG_SERVER,"PUG_UNABLE_CMD");
    }
    
    return 
PLUGIN_HANDLED;


Código PHP:
public fnForceUnReady(id)
{
    if(
g_bActive)
    {
        if(!
access(id,PUG_CMD_LVL) && (id != 0))
        {
            
PugChat(id,"PUG_CMD_NOTALLOWED");
        }
        else
        {
            for( new 
iPlayer iPlayer <= get_maxplayers(); ++iPlayer )
           {
                if(
iPlayer && (<= get_user_team(id) <= 2) && g_bReady[iPlayer])
                {
                    
PugRunCmdOnClient(id,"Force .unready","PUG_FORCE_NOTREADY",iPlayer,fnNotReady(iPlayer));
                }
            }
        }
    }
    else
    {
        
PugChat(id,"%L",LANG_SERVER,"PUG_UNABLE_CMD");
    }
    
    return 
PLUGIN_HANDLED;

[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#7
(28/08/2018, 05:25 PM)kikizon2 escribió:
Código PHP:
public fnForceReady(id)
{
    if(
g_bActive)
    {
        if(!
access(id,PUG_CMD_LVL) && (id != 0))
        {
            
PugChat(id,"PUG_CMD_NOTALLOWED");
        }
        else
        {
            for( new 
iPlayer iPlayer <= get_maxplayers(); ++iPlayer )
            {
// No se mucho de PUGS pero el get_user_team no deberia llevar iPlayer en vez de id ? digo para que quiero saber mi equipo, lo que me interesa es el equipo del que forzare el comando :whatever:
                
if(iPlayer && (<= get_user_team(id) <= 2) && !g_bReady[iPlayer]) 
                {
                    
PugRunCmdOnClient(id,"Force .ready","PUG_FORCE_READY",iPlayer,fnReady(iPlayer));
                }
            }
        }
    }
    else
    {
        
PugChat(id,"%L",LANG_SERVER,"PUG_UNABLE_CMD");
    }
    
    return 
PLUGIN_HANDLED;


Código PHP:
public fnForceUnReady(id)
{
    if(
g_bActive)
    {
        if(!
access(id,PUG_CMD_LVL) && (id != 0))
        {
            
PugChat(id,"PUG_CMD_NOTALLOWED");
        }
        else
        {
            for( new 
iPlayer iPlayer <= get_maxplayers(); ++iPlayer )
           {
                if(
iPlayer && (<= get_user_team(id) <= 2) && g_bReady[iPlayer])
                {
                    
PugRunCmdOnClient(id,"Force .unready","PUG_FORCE_NOTREADY",iPlayer,fnNotReady(iPlayer));
                }
            }
        }
    }
    else
    {
        
PugChat(id,"%L",LANG_SERVER,"PUG_UNABLE_CMD");
    }
    
    return 
PLUGIN_HANDLED;


cuando coloco !forceready aun me sigue saliendo lo mismo tengo q poner !forceready "nombre" pero no se puede poner para q solo poner !forceready y a si forzar a todos a estar listo
Responder
#8
Código PHP:
public fnForceReady(id)
{
    if(
g_bActive)
    {
        if(!
access(id,PUG_CMD_LVL) && (id != 0))
        {
            
PugChat(id,"PUG_CMD_NOTALLOWED");
        }
        else
        {
            static 
iMaxPlayers
            
if(!iMaxPlayersiMaxPlayers get_maxplayers();
            
            for( new 
iPlayer iPlayer <= iMaxPlayersiPlayer++ )
            {
                if(
is_user_connected(iPlayer) && (<= get_user_team(iPlayer) <= 2) && !g_bReady[iPlayer])
                {
                    
PugRunCmdOnClient(id"Force .ready","PUG_FORCE_READY"iPlayerfnReady(iPlayer));
                }
            }
        }
    }
    else
    {
        
PugChat(id,"%L",LANG_SERVER,"PUG_UNABLE_CMD");
    }

    return 
PLUGIN_HANDLED;

Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)