Problema con TeamChat
#1

Bueno. esto lo busque en una seccion de portugues XD, asi que masomenos entendi
Esto es un pedazo de lo que tengo
pawn Код:
public OnPlayerText(playerid, text[])
{

    if(text[0] == ';')
    {
        for(new i = 0; i < MAX_PLAYERS; i++)
        {
            if(IsPlayerConnected(i) && gTeam[i] == TEAM_PILOT)
            {
                new str[128];
                new playername[MAX_PLAYER_NAME];
                GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
                format(str, sizeof(str), "%d> [Team:Pilot] %s: %s", playerid, playername, text[1]);
                SendClientMessage(i, 0xFFFF30FF, str);
            }
            else if(IsPlayerConnected(i) && gTeam[i] == TEAM_RICH)
            {
                new str[128];
                new playername[MAX_PLAYER_NAME];
                GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
                format(str, sizeof(str), "%d> [Team:Rich] %s: %s", playerid, playername, text[1]);
                SendClientMessage(i, 0xFFFF30FF, str);
            }
    return 0;
    }


    new pName[MAX_PLAYER_NAME], string[128];
    GetPlayerName(playerid, pName,sizeof(pName));
    format(string,sizeof(string),"%d> %s: %s", playerid, pName, text);
    printf(string);
    SendClientMessageToAll(GetPlayerColor(playerid),string);
    return 0;

}
Bueno, la cosa es que si sos "Pilot" al escribir " ;hola "sale " [TeamPilot]Hola " Pero el problema es que si uno esta en "Rich" y usa su teamchat, a el le aparece [TeamRich]mensaje, Pero al TeamPilot le aparece en su team chat lo que escribio el rich nomas que dice [TeamPilot]mensaje sin estar en teampilot.. no se si se entiende..

Mejor explicado: un rich habla con su teamchat y el ve esto: [TeamRich]Mensaje
un pilot puede ver que el rich hablo en teamchat (No deveria), y en vez de decir: [TeamRich]Mensaje le sale esto: [TeamPilot]mensaje

Y asi pasa con los demas TeamChat de los otors equipos.. Todos pueden ver el teamchat de todos los equipos, nomas que el [Team****] Empieza con el equipo que uno esta en ese momento. La idea es que caa equipo solo pueda ver su TemaChat
Reply
#2

intenta asi:
pawn Код:
public OnPlayerText(playerid, text[])
{
    new name[MAX_PLAYER_NAME], str[128];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    if(text[0] == ';'){
        for(new i, j=GetMaxPlayers(); i<j; i++){
            if(IsPlayerConnected(i)){
                if(gTeam[i] == TEAM_PILOT){
                    format(str, 128, "%d> [Team:Pilot] %s: %s", playerid, name, text[1]);
                    SendClientMessage(i, 0xFFFF30FF, str);
                }
                else if(gTeam[i] == TEAM_RICH)
                {
                    format(str, 128, "%d> [Team:Rich] %s: %s", playerid, name, text[1]);
                    SendClientMessage(i, 0xFFFF30FF, str);
                }
            }
        }
        return 0;
    }
    format(str, 128, "%d> %s: %s", playerid, name, text);
    printf(str);
    SendClientMessageToAll(GetPlayerColor(playerid), str);
    return 0;
}
Reply
#3

Pero igual este no jodia.
pawn Код:
new pName[MAX_PLAYER_NAME], string[128];
    GetPlayerName(playerid, pName,sizeof(pName));
    format(string,sizeof(string),"%d> %s: %s", playerid, pName, text);
    printf(string);
    SendClientMessageToAll(GetPlayerColor(playerid),string);
    return 0;
o tiene que quedar asi?
pawn Код:
format(str, 128, "%d> %s: %s", playerid, name, text);
    printf(str);
    SendClientMessageToAll(GetPlayerColor(playerid), str);
    return 0;
Eso lo unico que hacia era poner la ID de uno al hablar, no por teamchat
O es lo mismo poniendolo asi?
Reply
#4

lo que hice fue re-ordenar tu codigo y optimizar un poquito en reducir lineas ya que las variables las ibas a crear si o si. Te pregunte si te funcionaba xq lo re-ordene un toque.
Reply
#5

Ok gracias.. Lo compilу sin errores, pero aun no se si funciona porque necesito probarlo con un amigo los 2 al mismo tiempo, porque yo solo no lo puedo probarlo.
Gracias Chaoz
Reply
#6

Si no te funciona avisame y buscamos otra forma de hacer que funcione.
Reply
#7

lo probe y sigue pasando lo mismo que antes..
Reply
#8

Bueno, el problema no nada mas puede se ahн, estas seguro de que a la variable g_Team[i] se le asigna un valor o tambien si tienes definido con diferente numero TEAM_RICH y TEAM_PILOT
Reply
#9

No te entendi mucho.. Aca tengo un pedazo de equipo
pawn Код:
else if(gTeam[playerid] == TEAM_PILOT)
    {
        GivePlayerWeapon(playerid, 46, 1);
        GivePlayerWeapon(playerid, 18, 5);
        SetPlayerColor(playerid,COLOR_DARKGREY);
    }
Puede ser que en todo el GM yo uso solo gTeam y ahi en el TeamChat esta puesto como gTeam[i] y esto " [i] " Esta de mas??

Entonces lo unico que tegno que ahcer es en todo el TeamChat es eliminar la [i] ?
Reply
#10

Quote:
Originally Posted by Ghostmen
Посмотреть сообщение
No te entendi mucho.. Aca tengo un pedazo de equipo
pawn Код:
else if(gTeam[playerid] == TEAM_PILOT)
    {
        GivePlayerWeapon(playerid, 46, 1);
        GivePlayerWeapon(playerid, 18, 5);
        SetPlayerColor(playerid,COLOR_DARKGREY);
    }
Puede ser que en todo el GM yo uso solo gTeam y ahi en el TeamChat esta puesto como gTeam[i] y esto " [i] " Esta de mas??

Entonces lo unico que tegno que ahcer es en todo el TeamChat es eliminar la [i] ?
no no, pasa los defines de TEAM_RICH y TEAM_PILOT
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)