SA-MP Forums Archive
[Ajuda] Chat family - 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: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Chat family (/showthread.php?tid=510368)



Chat family - gmstrikker - 30.04.2014

A um tempo to tentando fazer um chat de famlia tentei de todos os jeitos que eu achava que ia dar, mas nгo deu, funciona assim:
pega seu sobrenome, Eu Gm_Strikker falo OOOOOOOI, todos que tem Nome_Strikker vгo ver esse OOOOOI os outros nгo

Tentei assim:
pawn Код:
if(strcmp(cmd, "/familia", true) == 0 || strcmp(cmd, "/fa", true) == 0)
    {
        if(PlayerInfo[playerid][pMuted] == 1)
        {
            SendClientMessage(playerid, TEAM_CYAN_COLOR, "Vocк nгo pode falar, pois foi calado");
            return 1;
        }
        if(radio[playerid] == 0)
        {
            SendClientMessage(playerid, TEAM_CYAN_COLOR, "Vocк nгo tem um rбdio vб atй uma 24-7 (/gps)");
            return 1;
        }
        if(IsPlayerConnected(playerid))
        {
            GetPlayerName(playerid, sendername, sizeof(sendername));
            new length = strlen(cmdtext);
            while ((idx < length) && (cmdtext[idx] <= ' '))
            {
                idx++;
            }
            new offset = idx;
            new result[64];
            while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
            {
                result[idx - offset] = cmdtext[idx];
                idx++;
            }
            result[idx - offset] = EOS;
            if(!strlen(result))
            {
                SendClientMessage(playerid, COLOR_R, "USE: (/fa)milia [radio chat]");
                return 1;
            }
            if(TentouDivulgar(result))
            {
                if(cdivulgar[playerid] >= 6)
                {
                    SendClientMessage(playerid, COLOR_LIGHTBLUE,"Mano aque e o Seguinte vc nгo Divulga Server!");
                    SendClientMessage(playerid, COLOR_LIGHTBLUE,"Seu servidor й uma merda, nгo divulgue-o aqui!");
                    SendClientMessage(playerid, COLOR_LIGHTBLUE,"Seu noob peguei esse IP e vou Derrubar ele HAHAHA");
                    PlayerPlaySound(playerid, 1133, 0.0, 0.0, 0.0);
                    Kick(playerid);
                }
                GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
                format(string, 128, "AdmAviso: [%d]%s tentou divulgar: %s.",playerid,playername,result);
                ABroadCast(COLOR_YELLOW,string,1);
                DivulgouLog(string);
                cdivulgar[playerid] += 1;
                return 1;
            }
                for(new i = 0; i < MAX_PLAYERS; i++)
                {
                    if(strcmp(GetPlayerLastName(i), GetPlayerLastName2(i), true) == 0)
                    {
                        format(string, sizeof(string), "** Familia %s: %s over. **", sendername, result);
                        SendClientMessage(playerid, COLOR_BLUE, string);
                    }
                }
                printf("%s", string);
                format(string, sizeof(string), "%s (rбdio): %s", sendername, result);
                ProxDetector(20.0, playerid, string, COLOR_GREY,COLOR_GREY,COLOR_GREY,COLOR_GREY,COLOR_GREY);
                return 1;
        }

        return 1;
    }
pawn Код:
stock GetPlayerLastName(playerid)
{
    new namestring[2][MAX_PLAYER_NAME], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    split(name, namestring, '_');
    return namestring[1];
}
stock GetPlayerLastName2(playerid)
{
    new namestring[2][MAX_PLAYER_NAME], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    split(name, namestring, '_');
    return namestring[1];
}
Mas o que ta acontecendo й que quando eu falo /fa OOOI sai uns 50 OIs (max_players) e ninguem com sobrenome ve, sу eu =( alguem ajuda ai


Re: Chat family - Gii - 30.04.2014

Nгo testei, muito menos compilei.

pawn Код:
stock getLastName(nome_completo) {

    strdel(nome_completo, 0, strfind(nome_completo, "_"));
    return nome_completo;
}

CMD:fa(playerid, params[])
    return cmd_familia(playerid, params);
   
CMD:familia(playerid, params[]) {

    if ( isnull(params))
        return SendClientMessage(playerid, -1, "Uso correto: /fa(milia) [mensagem]");


    static
        i,
        e,
        minha_familia[20],
        nome[24],
        str[128]
    ;
   
    GetPlayerName(playerid, nome, 24);
   
    format ( minha_familia, 20, getLastName(nome) );
    format (str, 128, "CHAT DA FAMНLIA %s: %s diz %s", minha_familia, nome, params);
   
   
    for ( i = 0, e = GetMaxPlayers(); i < e; ++i ) {
   
        if ( IsPlayerConnected(i) ) {
       
            GetPlayerName(i, nome, 24);
           
            if ( !strcmp(minha_familia, getLastName(nome) ) )
                SendClientMessage(i, -1, str);
        }
    }
   
    return 1;
}