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
|