[AJUDA] Chat Rбdio
#1

Bom pessoal a pouco eu fiz um topico sobre como fazer um Rбdio aйreo onde sу avioes poderiam se comunicar... Acabou que nao consegui fazer da forma que me falaram mais consegui de outra e deu tudo certo...

Porem, no meu sv (gtafmb.webs.com) tem a FAB (sou o Mattos) e eu qeuria que a FAB mesmo que nao estivesse em aviao, pudesse ler e enviar as mensagens, entao eu pensei:

Код:
if (text[0] == ' " ') // Rбdio Aйreo
	{
        new vehicleid;
        new sendername[MAX_PLAYER_NAME];
        new string[128];
        format(string,sizeof(string),"Rбdio Aйreo: %s: (%d): %s",pName(playerid), playerid, text[1]);
        for (new i = 0; i < GetMaxPlayers(); i++)
        {
        GetPlayerName(playerid,sendername,sizeof(sendername));
        if((!strfind(sendername, "[FAB]"))){
        SendClientMessage(i, 0x7F7F7F7F, string);
        }else{

        switch(GetVehicleModel(GetPlayerVehicleID(playerid)))
        {
        case 417 ,425, 447, 592, 577, 511, 512,
        593, 520, 553, 476, 519, 460, 513, 548,
        487, 488, 497, 563, 469:{}
        default:SendClientMessage(playerid, 0xFF0000FF, "Vocк deve estar em um Aviгo ou Helicуptero para usar o Rбdio Aйreo.");
        }
        if(!IsPlayerConnected(i) || !IsPlayerInAnyVehicle(i)) continue;
        vehicleid = GetPlayerVehicleID(i);
        switch(GetVehicleModel(vehicleid))
        {
        case 417 ,425, 447, 592, 577, 511, 512,
        593, 520, 553, 476, 519, 460, 513, 548,
        487, 488, 497, 563, 469:
        SendClientMessage(i, 0x7F7F7F7F, string);
        }
        }

        return 1;



    }
Bom, entrei com [FAB] No nome e deu tudo certo... eu consegui enviar a mensagem... Porйm quando entrei com qualquer outro nome e tentei usar ' " ' o sv me mandou infinitas vezes a mesma mensagem dizendo que eu nao estava em um aviao: "Vocк deve estar em um Aviгo ou Helicуptero para usar o Rбdio Aйreo."

Bom como concerto isso: tem algo de errado? existe outra forma de eu incluir pessoas com [FAB] no nome poderem usar o mesmo chat?

Se for preciso o cуdigo primario sу do chat entre avioes estб logo embaixo:

Код:

if (text[0] == '"') // Rбdio Aйreo
	{
        new vehicleid;
        switch(GetVehicleModel(GetPlayerVehicleID(playerid)))
        {
        case 417 ,425, 447, 592, 577, 511, 512,
        593, 520, 553, 476, 519, 460, 513, 548,
        487, 488, 497, 563, 469:{}
        default:SendClientMessage(playerid, 0xFF0000FF, "Vocк deve estar em um Aviгo ou Helicуptero para usar o Rбdio Aйreo.");
        }
        new string[128];
        format(string,sizeof(string),"Rбdio Aйreo: %s: (%d): %s",pName(playerid), playerid, text[1]);
        for (new i = 0; i < GetMaxPlayers(); i++)
        {
        if(!IsPlayerConnected(i) || !IsPlayerInAnyVehicle(i)) continue;
        vehicleid = GetPlayerVehicleID(i);
        switch(GetVehicleModel(vehicleid))
        {
        case 417 ,425, 447, 592, 577, 511, 512,
        593, 520, 553, 476, 519, 460, 513, 548,
        487, 488, 497, 563, 469:
        SendClientMessage(i, 0x7F7F7F7F, string);
        }
        }
        return 1;

    }
Reply
#2

Tou Por Fora '-'
Reply
#3

mais alguem?
Reply
#4

pawn Код:
public OnPlayerText(playerid,text[])
{
    if(text[0] == '!')
    {
        new
            bool:Vhc = false,
            vehicleid = GetPlayerVehicleID(playerid);

        switch(GetVehicleModel(vehicleid))
        {
            case 417,425,447,592,577,511,512,
            593,520,553,476,519,460,513,548,
            487,488,497,563,469:Vhc = true;
        }

        if(Vhc == false)
            return SendClientMessage(playerid,0xFF0000FF,"ERROR: Vocк nгo estб em um aviгo.");

        new
            Nam[MAX_PLAYER_NAME];

        GetPlayerName(playerid,Nam,sizeof(Nam));

        if(strfind(Nam,"[FAB]",true) == -1)
            return SendClientMessage(playerid,0xFF0000FF,"ERROR: Vocк nгo й da FAB.");

        new
            Str[128];

        format(Str,sizeof(Str),"Rбdio Aйreo: %s: (%d): %s",Nam,playerid,text[1]);

        for(new ii = 0, sz = GetMaxPlayers(); ii != sz; ii++)
        {
            if(!IsPlayerConnected(ii))
                goto Next;
               
            GetPlayerName(ii,Nam,sizeof(Nam));

            vehicleid = GetPlayerVehicleID(ii);

            if(strfind(Nam,"[FAB]",true) == -1)
                goto Next;

            switch(GetVehicleModel(vehicleid))
            {
                case 417,425,447,592,577,511,512,
                593,520,553,476,519,460,513,548,
                487,488,497,563,469: SendClientMessage(ii,GetPlayerColor(playerid),Str);
            }
            Next:
        }
    }
    return 0;
}
Reply
#5

Desta forma, ate quem nao e fab, podera usar o comando? tipo, e pra poder quskuwrr um usar o comando so que detro do aviao, e quem e fab nao precisa estar em um aviao pra usar o comando, desta forma, nao faz sentido o retrun "vc nao e um fab" pois quando o player estuver fora de um aviao, ele recebera o return de que deve estar em um aviao para usar o comanfo, e quando ele estiver em um aviao, ele vai poder usar o comando, entao n tem o pq de dar um return vc n e um fab, certo?
Reply
#6

Cara, para mim precisaria ter [FAB] e estar em um aviгo, vou arrumar.
Reply
#7

Ai que ta, nao e so pra fab usar comando.... Todos podem usar o comando deade que estejam dentro de um aviao. Ja a fab como deve controlar o espasso awreo mesmo nao estando denteo se um aviao, deve poder ler e escrever as mensagens. entendde?
Reply
#8

Por isso eu fiz aquele else la no meu codigo, eu acho que ele ta certinho, so nao entendo aqyilo q perguntei la, aquele nwgocio de repetir varias veses a mesma mensagem pra quem n ta de fab e usa o comando fora de um aviao
Reply
#9

pawn Код:
public OnPlayerText(playerid,text[])
{
    if(text[0] == '!')
    {
        new
            bool:Vhc = false,
            Nam[MAX_PLAYER_NAME],
            vehicleid = GetPlayerVehicleID(playerid);

        switch(GetVehicleModel(vehicleid))
        {
            case 417,425,447,592,577,511,512,
            593,520,553,476,519,460,513,548,
            487,488,497,563,469:Vhc = true;
        }

        GetPlayerName(playerid,Nam,sizeof(Nam));
       
        if(!Vhc && strfind(Nam,"[FAB]",true) == -1)
            return SendClientMessage(playerid,0xFF0000FF,"ERROR: Vocк nгo estб em um aviгo.");

        new
            Str[128],
            bool:Allowed;

        format(Str,sizeof(Str),"Rбdio Aйreo: %s: (%d): %s",Nam,playerid,text[1]);

        for(new ii = 0, sz = GetMaxPlayers(); ii != sz; ii++)
        {
            if(!IsPlayerConnected(ii))
                goto Next;

            GetPlayerName(ii,Nam,sizeof(Nam));

            vehicleid = GetPlayerVehicleID(ii);

            switch(GetVehicleModel(vehicleid))
            {
                case 417,425,447,592,577,511,512,
                593,520,553,476,519,460,513,548,
                487,488,497,563,469: Allowed = true;
            }
           
            if(strfind(Nam,"[FAB]",true) != -1 || Allowed)
                SendClientMessage(ii,GetPlayerColor(playerid),Str);
               
            Next:
        }
    }
    return 0;
}
Pronto, acredito que esteja funcionando. Todos que forem da [FAB] vгo poder usar o comando, e todos os players que estiverem em um veнculo aйrio vai poder usar. Todos da [FAB] vгo ler e quem estiver em um veнculo aйrio tambйm vai ler.
Reply
#10

Certo, muito obrigado... N to no pc agora, to falando do celular... Amanha eu testo certim, e se der algumerro eu volto aqui
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)