SA-MP Forums Archive
Nuevo error en el comando de los cargos - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: Nuevo error en el comando de los cargos (/showthread.php?tid=544448)



Nuevo error en el comando de los cargos - Metzone - 01.11.2014

ahora, cuando uso el comando /c ID cargos, me salen como 6 mensajes seguidos de que X tiene X cargos, capturar....


Bueno, me hace flood, їPorque me pasa?

pawn Код:
CMD:c(playerid, params[]){
    new string[170];
    new cargos[MAX_PLAYER_NAME];
    new cargos2[MAX_PLAYER_NAME];
    if(!IsACop(playerid)) return SendClientMessageEx(playerid, COLOR_WHITE, "No puedes usar este comando.");
    if(OnDuty[playerid] == 0 && IsACop(playerid)) return  SendClientMessageEx(playerid, COLOR_WHITE, "No estas en servicio!");
    if(!sscanf(params,"ii", params[0], params[1]))
    {
    GetPlayerName(params[0], cargos, sizeof(cargos));
    GetPlayerName(playerid, cargos2, sizeof(cargos2));
    switch(params[1])
    {
    case 0:
    {
    Info[params[0]][pWantedLevel] = 0;
    SetPlayerWantedLevel(params[0], 0);
    for(new i = 0; i < GetMaxPlayers(); i++)
    if(IsACop(i))
    {
    SetPlayerMarkerForPlayer(i, params[0], c0_color);
    format(string, sizeof(string), "[Radio] {FFFFFF}Oficial %s dice: {00D2CF}%s {FFFFFF}no presenta ningъn delito lo dejo continuar", cargos2, cargos);
    SendRadioMessage(1, TEAM_BLUE_COLOR, string);
    }
    }
    case 1:
    {
    format(string, sizeof(string), "La policia quiere hablar contigo, no intentes escapar.", GetPlayerNameEx(playerid));
    SendClientMessageEx(params[0], COLOR_WHITE, string);
    Info[params[0]][pWantedLevel] = 1;
    SetPlayerWantedLevel(params[0], 1);
    for(new i = 0; i < GetMaxPlayers(); i++)
    if(IsACop(i))
     {
    SetPlayerMarkerForPlayer(i, params[0], c1_color);
    format(string, sizeof(string), "[Radio] {FFFFFF}Oficial %s dice: {00D2CF}%s {FFFFFF}parece sospechoso, voy a interrogarlo.", cargos2, cargos);
    SendRadioMessage(1, TEAM_BLUE_COLOR, string);
    }
    }
    case 2:
    {
    Info[params[0]][pWantedLevel] = 2;
    SetPlayerWantedLevel(params[0], 2);
    for(new i = 0; i < GetMaxPlayers(); i++)
    if(IsACop(i))
     {
    SetPlayerMarkerForPlayer(i, params[0], c2_color);
    format(string, sizeof(string), "[Radio] {FFFFFF}Oficial %s dice: {00D2CF}%s {FFFFFF}se resistiу al arresto, procedemos a su persecuciуn.", cargos2, cargos);
    SendRadioMessage(1, TEAM_BLUE_COLOR, string);
    }
    }
    case 3:
    {
    Info[params[0]][pWantedLevel] = 3;
    SetPlayerWantedLevel(params[0], 3);
    for(new i = 0; i < GetMaxPlayers(); i++)
    if(IsACop(i))
     {
    SetPlayerMarkerForPlayer(i, params[0], c3_color);
    format(string, sizeof(string), "[Radio] {FFFFFF}Oficial %s dice: {00D2CF}%s {FFFFFF}se encuentra armado, procedan con precauciуn.", cargos2, cargos);
    SendRadioMessage(1, TEAM_BLUE_COLOR, string);
    }
    }
    case 4:
    {
    Info[params[0]][pWantedLevel] = 4;
    SetPlayerWantedLevel(params[0], 4);
    for(new i = 0; i < GetMaxPlayers(); i++)
    if(IsACop(i))
     {
    SetPlayerMarkerForPlayer(i, params[0], c4_color);
    format(string, sizeof(string), "[Radio] {FFFFFF}Oficial %s dice: {00D2CF}%s {FFFFFF}abriу fuego, necesito refuerzos.", cargos2, cargos);
    SendRadioMessage(1, TEAM_BLUE_COLOR, string);
    }
    }
    case 5:
    {
    Info[params[0]][pWantedLevel] = 5;
    SetPlayerWantedLevel(params[0], 5);
    for(new i = 0; i < GetMaxPlayers(); i++)
    if(IsACop(i))
     {
    SetPlayerMarkerForPlayer(i, params[0], c5_color);
    format(string, sizeof(string), "[Radio] {FFFFFF}Oficial %s dice: {00D2CF}%s {FFFFFF}asesinу, detener vivo o muerto.", cargos2, cargos);
    SendRadioMessage(1, TEAM_BLUE_COLOR, string);
    }
    }
    case 6:
    {
    Info[params[0]][pWantedLevel] = 6;
    SetPlayerWantedLevel(params[0], 6);
    for(new i = 0; i < GetMaxPlayers(); i++)
    if(IsACop(i))
     {
    SetPlayerMarkerForPlayer(i, params[0], c6_color);
    format(string, sizeof(string), "[Radio] {FFFFFF}Oficial %s dice: {00D2CF}%s {FFFFFF}es extremadamente peligroso, disparen a matar.", cargos2, cargos);
    SendRadioMessage(1, TEAM_BLUE_COLOR, string);
    }
    }
    }
    }
    else SendClientMessage(playerid, -1, "Utiliza: {6E9AFF}/c{FFFFFF} [ID] [0-6]");
    return 1;
    }
    forward Policia(member, color, string[]);
    public Policia(member, color, string[])
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsACop(i))
    {
    SendClientMessage(i, color, string);
    }
    }
    }
    }



Respuesta: Nuevo error en el comando de los cargos - aoEXE - 01.11.2014

podrнas hacerlo con un solo bucle. Usa return 1 al mandar el mensaje


Re: Nuevo error en el comando de los cargos - Metzone - 02.11.2014

їASi?

pawn Код:
return SendRadioMessage(1, TEAM_BLUE_COLOR, string);

Y el error es que si hay 10 policias en la faccion, manda 10 mensajes, si hay 1, manda 1, si hay 20 manda 20.


Re: Nuevo error en el comando de los cargos - Ochenta - 02.11.2014

Te ayudarнa, pero el comando perjudicarнa la salud de mis ojos.


Respuesta: Nuevo error en el comando de los cargos - [J]ulian - 02.11.2014

En tu caso no necesitas un bucle, ve a ver como estб hecha la funciуn SendRadioMessage. El bucle ya estб dentro de la funciуn.

Yo lo harнa asн:

pawn Код:
CMD:c(playerid, params[])
{
    new string[170];
    new cargos[MAX_PLAYER_NAME];
    new cargos2[MAX_PLAYER_NAME];
    if(!IsACop(playerid)) return SendClientMessageEx(playerid, COLOR_WHITE, "No puedes usar este comando.");
    if(OnDuty[playerid] == 0 && IsACop(playerid)) return  SendClientMessageEx(playerid, COLOR_WHITE, "No estas en servicio!");
    if(!sscanf(params,"ui", params[0], params[1]))
    {
        GetPlayerName(params[0], cargos, sizeof(cargos));
        GetPlayerName(playerid, cargos2, sizeof(cargos2));
        Info[params[0]][pWantedLevel] = params[1];
        SetPlayerWantedLevel(params[0], params[1]);
        switch(params[1])
        {
            case 0:
            {
                SetPlayerMarkerForPlayer(i, params[0], c0_color);
                format(string, sizeof(string), "[Radio] {FFFFFF}Oficial %s dice: {00D2CF}%s {FFFFFF}no presenta ningъn delito lo dejo continuar", cargos2, cargos);
                SendRadioMessage(1, TEAM_BLUE_COLOR, string);
            }
            case 1:
            {
                format(string, sizeof(string), "La policia quiere hablar contigo, no intentes escapar.", GetPlayerNameEx(playerid));
                SendClientMessageEx(params[0], COLOR_WHITE, string);
                SetPlayerMarkerForPlayer(i, params[0], c1_color);
                format(string, sizeof(string), "[Radio] {FFFFFF}Oficial %s dice: {00D2CF}%s {FFFFFF}parece sospechoso, voy a interrogarlo.", cargos2, cargos);
                SendRadioMessage(1, TEAM_BLUE_COLOR, string);
            }
            case 2:
            {
                SetPlayerMarkerForPlayer(i, params[0], c2_color);
                format(string, sizeof(string), "[Radio] {FFFFFF}Oficial %s dice: {00D2CF}%s {FFFFFF}se resistiу al arresto, procedemos a su persecuciуn.", cargos2, cargos);
                SendRadioMessage(1, TEAM_BLUE_COLOR, string);
            }
            case 3:
            {
                SetPlayerMarkerForPlayer(i, params[0], c3_color);
                format(string, sizeof(string), "[Radio] {FFFFFF}Oficial %s dice: {00D2CF}%s {FFFFFF}se encuentra armado, procedan con precauciуn.", cargos2, cargos);
                SendRadioMessage(1, TEAM_BLUE_COLOR, string);
            }
            case 4:
            {
                SetPlayerMarkerForPlayer(i, params[0], c4_color);
                format(string, sizeof(string), "[Radio] {FFFFFF}Oficial %s dice: {00D2CF}%s {FFFFFF}abriу fuego, necesito refuerzos.", cargos2, cargos);
                SendRadioMessage(1, TEAM_BLUE_COLOR, string);
            }
            case 5:
            {
                SetPlayerMarkerForPlayer(i, params[0], c5_color);
                format(string, sizeof(string), "[Radio] {FFFFFF}Oficial %s dice: {00D2CF}%s {FFFFFF}asesinу, detener vivo o muerto.", cargos2, cargos);
                SendRadioMessage(1, TEAM_BLUE_COLOR, string);
            }
            case 6:
            {
                SetPlayerMarkerForPlayer(i, params[0], c6_color);
                format(string, sizeof(string), "[Radio] {FFFFFF}Oficial %s dice: {00D2CF}%s {FFFFFF}es extremadamente peligroso, disparen a matar.", cargos2, cargos);
                SendRadioMessage(1, TEAM_BLUE_COLOR, string);
            }
        }
    }
    else SendClientMessage(playerid, -1, "Utiliza: {6E9AFF}/c{FFFFFF} [ID] [0-6]");
}



Re: Nuevo error en el comando de los cargos - Metzone - 02.11.2014

Ahi creo que los players que los policias marcan, los verian los que no son policia... їNo?


Respuesta: Re: Nuevo error en el comando de los cargos - [J]ulian - 02.11.2014

Quote:
Originally Posted by Metzone
Посмотреть сообщение
Ahi creo que los players que los policias marcan, los verian los que no son policia... їNo?
No. Sуlo lo verнa la facciуn 1 (suponiendo que la funciуn SendRadioMessage estй bien hecha).


Re: Nuevo error en el comando de los cargos - Metzone - 02.11.2014

Me da errores,

undefined symbol (i)


Respuesta: Nuevo error en el comando de los cargos - [J]ulian - 02.11.2014

Cambia los 'i' de SetPlayerMarkerForPlayer por el parбmetro que corresponda (playerid, si no me equivoco. Depende como quieras mostrar el marker).


Re: Nuevo error en el comando de los cargos - Metzone - 02.11.2014

їNo tiene return al final?