Sistema de ligação - TheGuilherme020 -  12/08/2022
 
 
Oi, tudo bem? Bom eu estou com uma duvida em um sistema de ligacao que estou fazendo. 
Ja fiz a parte de gerar o numero do jogador e salvar no arquivo dele na pasta Contas. 
 
Só preciso de orientacao para conectar os jogadores que quiserem fazer ligação entrei si. 
tipo /ligar [Numero do Jogador] 
 
Alguem pode me dar uma base de como conecto os jogadores pelos numeros para poderem falar na ligacao?
 
 
 
RE: Sistema de ligação - MarcosBrazz -  12/08/2022
 
 
Aqui está uma pequena base... 
 
 
Código: new InCall[MAX_PLAYERS] = {INVALID_PLAYER_ID, ...}; 
 
CMD:ligar(playerid, params[]){ 
    extract params -> new numero; else return SendClientMessage(playerid, -1, "Use /ligar [numero]"); //é assim mesmo 
    for(new i; i < MAX_PLAYERS; i++){ 
        if(PlayerInfo[i][pNumero] == numero){ //variavel de numero dos jogadores 
            InCall[playerid] = i; 
            InCall[i] = playerid; 
            SendClientMessage(i, -1, "Alguem ligou para voce, fale no chat!"); 
            return 1; 
        } 
    } 
    /*com foreach 
        foreach(new i: Player){ 
            if(PlayerInfo[i][pNumero] == numero){ 
                InCall[playerid] = i; 
                InCall[i] = playerid; 
                SendClientMessage(i, -1, "Alguem ligou para voce, fale no chat!"); 
                return 1; 
            } 
        } 
    */ 
    SendClientMessage(playerid, -1, "Nenhum jogador com esse numero foi encontrado no servidor!"); 
    return 1; 
} 
CMD:desligar(playerid){ 
    if(InCall[playerid] != INVALID_PLAYER_ID){ 
        new str[128], 
        Nomep[24]; 
        GetPlayerName(playerid, Nomep, 24); 
        format(str, 128, "%s desligou a ligação!", Nomep); 
        SendClientMessage(InCall[playerid], -1, str); 
        SendClientMessage(playerid, -1, "Voce desligou!"); 
        InCall[InCall[playerid]] = INVALID_PLAYER_ID; 
        InCall[playerid] = INVALID_PLAYER_ID; 
    } 
    else { 
        SendClientMessage(playerid, -1, "Voce nao esta em uma ligação!"); 
    } 
    return 1; 
} 
public OnPlayerText(playerid, text[]){ 
    if(InCall[playerid] != INVALID_PLAYER_ID){ 
        new str[128], 
        Nomep[24]; 
        GetPlayerName(playerid, Nomep, 24); 
        format(str, 128, "%s (ligação): %s", Nomep, text); 
        SendClientMessage(InCall[playerid], 0xE4FF00FF, str); 
        SendClientMessage(playerid, -1, str); 
        return 0; 
    } 
    return 0; 
}
  
 
 
 
RE: Sistema de ligação - TheGuilherme020 -  12/08/2022
 
 
 (12/08/2022 19:30)MarcosBrazz Escreveu:  Aqui está uma pequena base... 
 
 
Código: new InCall[MAX_PLAYERS] = {INVALID_PLAYER_ID, ...}; 
 
CMD:ligar(playerid, params[]){ 
    extract params -> new numero; else return SendClientMessage(playerid, -1, "Use /ligar [numero]"); //é assim mesmo 
    for(new i; i < MAX_PLAYERS; i++){ 
        if(PlayerInfo[i][pNumero] == numero){ //variavel de numero dos jogadores 
            InCall[playerid] = i; 
            InCall[i] = playerid; 
            SendClientMessage(i, -1, "Alguem ligou para voce, fale no chat!"); 
            return 1; 
        } 
    } 
    /*com foreach 
        foreach(new i: Player){ 
            if(PlayerInfo[i][pNumero] == numero){ 
                InCall[playerid] = i; 
                InCall[i] = playerid; 
                SendClientMessage(i, -1, "Alguem ligou para voce, fale no chat!"); 
                return 1; 
            } 
        } 
    */ 
    SendClientMessage(playerid, -1, "Nenhum jogador com esse numero foi encontrado no servidor!"); 
    return 1; 
} 
CMD:desligar(playerid){ 
    if(InCall[playerid] != INVALID_PLAYER_ID){ 
        new str[128], 
        Nomep[24]; 
        GetPlayerName(playerid, Nomep, 24); 
        format(str, 128, "%s desligou a ligação!", Nomep); 
        SendClientMessage(InCall[playerid], -1, str); 
        SendClientMessage(playerid, -1, "Voce desligou!"); 
        InCall[InCall[playerid]] = INVALID_PLAYER_ID; 
        InCall[playerid] = INVALID_PLAYER_ID; 
    } 
    else { 
        SendClientMessage(playerid, -1, "Voce nao esta em uma ligação!"); 
    } 
    return 1; 
} 
public OnPlayerText(playerid, text[]){ 
    if(InCall[playerid] != INVALID_PLAYER_ID){ 
        new str[128], 
        Nomep[24]; 
        GetPlayerName(playerid, Nomep, 24); 
        format(str, 128, "%s (ligação): %s", Nomep, text); 
        SendClientMessage(InCall[playerid], 0xE4FF00FF, str); 
        SendClientMessage(playerid, -1, str); 
        return 0; 
    } 
    return 0; 
}
  Eu agredeço muito mano, vou adaptar ela e dar uma implementada e volto pra mandar fotos de como ficouu, Valeu!
 
 
 
RE: Sistema de ligação - TheGuilherme020 -  12/08/2022
 
 
MarcosBrazzAqui está uma pequena base... 
 
 
Código: new InCall[MAX_PLAYERS] = {INVALID_PLAYER_ID, ...}; 
 
CMD:ligar(playerid, params[]){ 
    extract params -> new numero; else return SendClientMessage(playerid, -1, "Use /ligar [numero]"); //é assim mesmo 
    for(new i; i < MAX_PLAYERS; i++){ 
        if(PlayerInfo[i][pNumero] == numero){ //variavel de numero dos jogadores 
            InCall[playerid] = i; 
            InCall[i] = playerid; 
            SendClientMessage(i, -1, "Alguem ligou para voce, fale no chat!"); 
            return 1; 
        } 
    } 
    /*com foreach 
        foreach(new i: Player){ 
            if(PlayerInfo[i][pNumero] == numero){ 
                InCall[playerid] = i; 
                InCall[i] = playerid; 
                SendClientMessage(i, -1, "Alguem ligou para voce, fale no chat!"); 
                return 1; 
            } 
        } 
    */ 
    SendClientMessage(playerid, -1, "Nenhum jogador com esse numero foi encontrado no servidor!"); 
    return 1; 
} 
CMD:desligar(playerid){ 
    if(InCall[playerid] != INVALID_PLAYER_ID){ 
        new str[128], 
        Nomep[24]; 
        GetPlayerName(playerid, Nomep, 24); 
        format(str, 128, "%s desligou a ligação!", Nomep); 
        SendClientMessage(InCall[playerid], -1, str); 
        SendClientMessage(playerid, -1, "Voce desligou!"); 
        InCall[InCall[playerid]] = INVALID_PLAYER_ID; 
        InCall[playerid] = INVALID_PLAYER_ID; 
    } 
    else { 
        SendClientMessage(playerid, -1, "Voce nao esta em uma ligação!"); 
    } 
    return 1; 
} 
public OnPlayerText(playerid, text[]){ 
    if(InCall[playerid] != INVALID_PLAYER_ID){ 
        new str[128], 
        Nomep[24]; 
        GetPlayerName(playerid, Nomep, 24); 
        format(str, 128, "%s (ligação): %s", Nomep, text); 
        SendClientMessage(InCall[playerid], 0xE4FF00FF, str); 
        SendClientMessage(playerid, -1, str); 
        return 0; 
    } 
    return 0; 
}
  
Bom mano adaptei em meu gamemode e coloquei algumas funcoes no OnPlayerText, pra aparecer o numero e nao o name do jogador. Testet comigo mesmo mas ja coloquei as verificacoes necessarias pra nao dar pra ligar pra si mesmo kkkkk, Obrigado! 
 
https://imgur.com/a/ndWanoh
 
 
 
RE: Sistema de ligação - MarcosBrazz -  12/08/2022
 
 
Muito bom mano, qualquer problema só nos procurar
 
 
 
 |