[Ajuda] Muito complexo pra mim :/
#1

Sгo poucas as vezes q eu venho aq pedir ajuda, mas agr eu preciso de uma coisa q ta me deixando louco...

Й o seguinte, eu tenho um sv RP, e eu tirei os nomes de cima da cabeзa dos players, mas agr eu tenho q resolver o problema de aparecer o nome de todo mundo nas mensagens, porйm, eu quero q qdo a pessoa se apresente pra outra, o nome apareзa...

Ficou meio confuso mas vou mostrar como й q eu imaginei fazer, mas q n deu mto certo...

Aqui й o comando de quando a pessoa se apresenta:

pawn Код:
if(!strcmp(cmd, "/apresentar-se", true))
    {
        if(gPlayerLogged[playerid])
        {
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GREEN, "[Info]{B4B5B7} USO: /apresentar-se [Id/Nome]");
                return 1;
            }
            new giveplayerid;
            giveplayerid = ReturnUser(tmp);
            new Id = PlayerInfo[playerid][pIdentification];
            for(new n=0; n<KnownSize; n++)
            {
                if(Known[giveplayerid][n] == 0)
                {
                    Slot[giveplayerid] = n;
                    break;
                }
                if(Known[giveplayerid[n] == Id)
                return SendClientMessage(playerid, COLOR_RED, "[Erro]{b4b5b7} Este jogador ja lhe conhece!");
            }
            Known[giveplayerid][Slot[giveplayerid]] = Id;
            format(string, 57, "Desconhecido Diz: Prazer, meu nome й %s.", gNome(playerid));
            SendClientMessage(giveplayerid, COLOR_WHITE, string);
            SendClientMessage(playerid, COLOR_GREEN, "[Info]{b4b5b7} Agora ele lhe conhece!");
        }
        return 1;
    }
Ou seja, quando o ID fixo da pessoa fica salvo no arquivo dos conhecidos do player, o nome do player tem que aparecer normal...

Aqui й uma stock que eu peguei com o Mittos:

pawn Код:
stock gNome(playerid)
{
    new strg[24];
    strmid(strg,pNome(playerid),0,strlen(pNome(playerid)),24);
    for(new i = 0; i < MAX_PLAYER_NAME; i++)
    {
        if (strg[i] == '_') strg[i] = ' ';
    }
    return strg;
}
Eu queria uma stock que quando fosse encontrado o nome de algum player, verificasse no Known[playerid][n] do player se o ID fixo do player esta lб, se estiver, retornar o gNome, se nгo estiver, retornar "Desconhecido".


Ficou meio confuso mas axo q da pra entender :/

Vlw...

Se quiser estrelinha pede...apesar de eu axar inutil isso...
Reply
#2

ta tenso, alguem ajuda ai *-*
Reply
#3

Tragico... ninguem me ajuda :/ vou chorar
Reply
#4

Nгo entendi sua dъvida Pharrel.
Reply
#5

Simples, quero uma stock que se ela encontrar o nome de alguem em uma string, ela cheque as variaveis Known[playerid][numero], se ela achar o ID fixo do player "Identification" ela retorna a string normal, com o nome do player, mas c nao achar retorne no lugar do nome do player a palavra "Desconhecido".

ou seja:

digamos q essa mensagem foi enviada:

Pharrel_Young Diz: Olб tudo bem como vai?

eu quero uma stock que retorne a string desse jeito:

Desconhecido Diz: Olб tudo bem como vai?

do jeito acima sу c o ID fixo do player n estiver na variavel Known[playerid][numero] do player q vai receber a mensagem, senao envia a mensagem com o nome normal do jeito q ta.

pawn Код:
if(Known[i][n] == PlayerInfo[playerid][pIdentification])
{
    return string;
}
else return string SУ QUE NO LUGAR DO NOME ESTEJA A PALAVRA "DESCONHECIDO";
tendeu? :/

eu sei como achar o nome...й sу por strfind, sei como comparar, sу n sei como substituir o nome pela palavra Desconhecido...
Reply
#6

Eu percebi, mas uma coisa, vocк jб testou isso com pelo menos 5 player?
Reply
#7

Eu nao consegui fazer... portanto n testei com ngm, n sei pegar coordenada de string nem substituir coordenadas por outras letras, por isso n consigo...

e n achei nada relacionado a isso no search tb...
Reply
#8

Eu duvido muito que isso funcione perfeitamente, pois, provavelmente irб criar bug, vamos supor assim.

Eu digito /conhecer [0], dai conheзo o cara 0, dai o cara sai do server, e vem outro cara com o id 0, e vc digita /conhecer [0], dai vai aparecer, vocк jб conhece este cara, viu? a unica forma й criar um comando dizendo seu nome sу, nada mais, porque se vocк vai usar com ids provavelmente vai bugar.
Reply
#9

putz... й ID fixo,
pawn Код:
new Id = PlayerInfo[playerid][pIdentification];
se fosse ID do jogo n й "provavel" q iria bugar, ia ser CERTEZA...
Reply
#10

pawn Код:
stock gNome(playerid, giveplayerid)
{
    new strg[24];
    strmid(strg,pNome(giveplayerid),0,strlen(pNome(giveplayerid)),24);
    for(new i = 0; i < MAX_PLAYER_NAME; i++)
    {
        if (strg[i] == '_') strg[i] = ' ';
    }
    new Id = PlayerInfo[playerid][pIdentification];
    for(new n=0; n<KnownSize; n++)
    {
        if(Known[giveplayerid][n] == 0)
        {
            Slot[giveplayerid] = n;
            break;
        }
        if(Known[giveplayerid[n] == Id) return strg;
        else return "Desconhecido";
    }
}
Й isso ?

gNome(playerid, playerid)
ou
gNome(playerid, giveplayerid)
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)