comprobar el nъmero de un jugador
#1

Hola me cree el sistema de celular, pero tengo una duda:

їcomo compruebo el numero del jugador sin utilizar su id?

Код:
CMD:sms(playerid, params[])
{
new numero, mensaje[144];
if(sscanf(params, "ds", giveplayerid, numero, mensaje)) return SendClientMessage(playerid, -1, "Utiliza: /sms nъmero mensaje");
//que mбs puedohacer que debo hacer?
return 1;
}
tenia uno pero no me gustaba porque tenia que usar: /sms id nъmero mensaje y solo quiero ser directo /sms nъmero mensaje

їalguien me explica?

busque en algunos gm este comando y veнa que usaban foreach pero la verdad no tengo idea de como funciona si eso es lo que necesito pues me explican porfavor
Reply
#2

Tienes algo para comprobar el nъmero del jugador?. Si es asн, pasa el cуdigo.
Reply
#3

se me olvido dejar eso xd si te refieres a donde guarda su nъmero es esta variable:
Informacion[playerid][Telefono]
Reply
#4

aca acabo de hacer un mini sistema de telefono movil para ke te bases,, te puede ayudar .
saludos.

pawn Код:
// MINI SISTEMA DE TELEFONO MOVIL (BASE) by OTACON  
#include <a_samp>
#include <zcmd>
#include <sscanf2>

//variables generales
new bool:NumeroOcupado[MAX_PLAYERS],
NumeroTelefono[MAX_PLAYERS],
bool:TelefonoComprado[MAX_PLAYERS],
NumeroTelefonoEntrante[MAX_PLAYERS];

//hablar por el movil
CMD:habrar(playerid, params[]) {
    new dataphone[100];
    if(NumeroOcupado[playerid] == false) return SendClientMessage(playerid,-1,"no estas en una llamada");
    if(sscanf(params, "s[100]", params[0])) return SendClientMessage(playerid, -1, "Utiliza: /habrar [texto]");
    for(new player, user = GetMaxPlayers(); player != user; player++) {
        if(!IsPlayerConnected(player)) continue;
        if(NumeroTelefono[player] == NumeroTelefonoEntrante[playerid] && NumeroTelefono[player] != NumeroTelefono[playerid]) {
            format(dataphone,sizeof(dataphone),"mensaje enviado %s, numero: %d", params[0], NumeroTelefonoEntrante[playerid]);
            SendClientMessage(player,-1,dataphone);
            format(dataphone,sizeof(dataphone),"mensaje enviado %s, numero: %d", params[0], NumeroTelefonoEntrante[playerid]);
            SendClientMessage(playerid,-1,dataphone);
        }
    }
    return true;
}
//para cortar la llamada
CMD:colgar(playerid, params[]) {
    if(NumeroOcupado[playerid] == false) return SendClientMessage(playerid,-1,"no estas en una llamada");
    NumeroOcupado[playerid] = false;
    NumeroTelefonoEntrante[playerid] = -1;
    SendClientMessage(playerid,-1,"colgaste la llamada!.");
    return true;
}
//para iniciar la llamada
CMD:llamar(playerid, params[]) {
    new dataphone[100];
    if(TelefonoComprado[playerid] == false) return SendClientMessage(playerid,-1,"no tienes un movil");
    if(NumeroOcupado[playerid] == true) return SendClientMessage(playerid,-1,"ya estas en una llamada");
    if(sscanf(params, "ds[100]", params[0], params[1])) return SendClientMessage(playerid, -1, "Utiliza: /llamar [numero] [texto]");
    for(new player, user = GetMaxPlayers(); player != user; player++) {
        if(!IsPlayerConnected(player)) continue;
        if(NumeroTelefono[player] != params[0] && NumeroOcupado[player] == true && (NumeroTelefono[playerid] == params[0])) {
            SendClientMessage(playerid,-1,"numero no localizado o ocupado!.");
        } else {
            SendClientMessage(playerid,-1,"numero si localizado!.");
            SendClientMessage(playerid,-1,"mensaje enviado!.");
            format(dataphone,sizeof(dataphone),"haz llamado al numero: %d., mensaje enviado: %s", NumeroTelefono[player], params[1]);
            SendClientMessage(playerid,-1,dataphone);
            format(dataphone,sizeof(dataphone),"el numero: %d te ha lladado, mensaje enviado: %s", NumeroTelefono[playerid], params[1]);
            SendClientMessage(player,-1,dataphone);
            NumeroOcupado[playerid] = true;
            NumeroOcupado[player] = true;
            NumeroTelefonoEntrante[player] = NumeroTelefono[playerid];
            SendClientMessage(player,-1,"usa  el ocmando /hablar para responder!.");
        }
    }
    return true;
}
//para comprar el movil
CMD:telefono(playerid, params[]) {
    new dataphone[100];
    if(TelefonoComprado[playerid] == true) return SendClientMessage(playerid,-1,"ya tienes un movil");
    new telefonocomprado = random(999999999);
    for(new player, user = GetMaxPlayers(); player != user; player++) {
        if(!IsPlayerConnected(player)) continue;
        if(NumeroTelefono[player] == telefonocomprado && (player == playerid)) continue;
        NumeroTelefono[playerid] = telefonocomprado;
        TelefonoComprado[playerid] = true; break;
    }
    format(dataphone,sizeof(dataphone),"haz comprado un telefono movil con el numero: %d",NumeroTelefono[playerid]);
    SendClientMessage(playerid,-1,dataphone);
    return true;
}
// MINI SISTEMA DE TELEFONO MOVIL (BASE) by OTACON
Reply
#5

Esto es lo ъnico que se me ocurre:


pawn Код:
CMD:llamar(playerid, params[])
{
    new ID, Mensaje[144];
    if(sscanf(params, "ds[144]", ID, Numero, Mensaje)) return SendClientMessage(playerid, -1, "*** /Llamar [ID] [Mensaje].");
    if(!IsPlayerConnected(ID)) return 0; // Tu funciуn aquн si 'ID' no estб conectado.
    if(ID == playerid) return 0; // Tu funciуn aquн si la ID puesta es la misma que la del player.
    if(Informacion[playerid][Telefono] == 0) return 0; // Tu funciуn aquн.
    if(Informacion[ID][Telefono] == 0) return 0; // Tu funciуn aquн. Creo que detecta si el ID tiene telйfono.
    else {
        new string[144];
        new string2[144];
        format(string, sizeof(string), "*** Llamaste a %s[%d] diciйndole: %s", GetName(ID), ID, Mensaje);
        format(string2, sizeof(string2), "*** %s[%d] te llamу diciйndote: %s", GetName(playerid), playerid, Mensaje);
        SendClientMessage(playerid, -1, string);
        SendClientMessage(ID, -1, string);
        //Credito[playerid] --; // Por si quieres ponerle tarjetas de crйditos a los telйfonos xD.
    }
    return 1;
}


stock GetName(playerid)
{
    new Nick[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Nick, sizeof(Nick));
    return Nick;
}

Saludos.
Reply
#6

pawn Код:
// MINI SISTEMA DE TELEFONO MOVIL (BASE) by OTACON  
#include <a_samp>
#include <zcmd>
#include <sscanf2>

//variables generales
new bool:NumeroOcupado[MAX_PLAYERS],
NumeroTelefono[MAX_PLAYERS],
bool:TelefonoComprado[MAX_PLAYERS],
NumeroTelefonoEntrante[MAX_PLAYERS];

//hablar por el movil
CMD:habrar(playerid, params[]) {
    new dataphone[100];
    if(NumeroOcupado[playerid] == false) return SendClientMessage(playerid,-1,"no estas en una llamada");
    if(sscanf(params, "s[100]", params[0])) return SendClientMessage(playerid, -1, "Utiliza: /habrar [texto]");
    for(new player, user = GetMaxPlayers(); player != user; player++) {
        if(!IsPlayerConnected(player)) continue;
        if(NumeroTelefono[player] == NumeroTelefonoEntrante[playerid] && NumeroTelefono[player] != NumeroTelefono[playerid]) {
            format(dataphone,sizeof(dataphone),"mensaje enviado %s, numero: %d", params[0], NumeroTelefonoEntrante[playerid]);
            SendClientMessage(player,-1,dataphone);
            format(dataphone,sizeof(dataphone),"mensaje enviado %s, numero: %d", params[0], NumeroTelefonoEntrante[playerid]);
            SendClientMessage(playerid,-1,dataphone);
        }
    }
    return true;
}
//para cortar la llamada
CMD:colgar(playerid, params[]) {
    if(NumeroOcupado[playerid] == false) return SendClientMessage(playerid,-1,"no estas en una llamada");
    NumeroOcupado[playerid] = false;
    NumeroTelefonoEntrante[playerid] = -1;
    SendClientMessage(playerid,-1,"colgaste la llamada!.");
    return true;
}
//para iniciar la llamada
CMD:llamar(playerid, params[]) {
    new dataphone[100];
    if(TelefonoComprado[playerid] == false) return SendClientMessage(playerid,-1,"no tienes un movil");
    if(NumeroOcupado[playerid] == true) return SendClientMessage(playerid,-1,"ya estas en una llamada");
    if(sscanf(params, "ds[100]", params[0], params[1])) return SendClientMessage(playerid, -1, "Utiliza: /llamar [numero] [texto]");
    for(new player, user = GetMaxPlayers(); player != user; player++) {
        if(!IsPlayerConnected(player)) continue;
        if(NumeroTelefono[player] != params[0] && NumeroOcupado[player] == true && (NumeroTelefono[playerid] == params[0])) {
            SendClientMessage(playerid,-1,"numero no localizado o ocupado!.");
        } else {
            SendClientMessage(playerid,-1,"numero si localizado!.");
            SendClientMessage(playerid,-1,"mensaje enviado!.");
            format(dataphone,sizeof(dataphone),"haz llamado al numero: %d., mensaje enviado: %s", NumeroTelefono[player], params[1]);
            SendClientMessage(playerid,-1,dataphone);
            format(dataphone,sizeof(dataphone),"el numero: %d te ha lladado, mensaje enviado: %s", NumeroTelefono[playerid], params[1]);
            SendClientMessage(player,-1,dataphone);
            NumeroOcupado[playerid] = true;
            NumeroOcupado[player] = true;
            NumeroTelefonoEntrante[player] = NumeroTelefono[playerid];
            SendClientMessage(player,-1,"usa  el ocmando /hablar para responder!.");
        }
    }
    return true;
}
//para comprar el movil
CMD:telefono(playerid, params[]) {
    new dataphone[100];
    if(TelefonoComprado[playerid] == true) return SendClientMessage(playerid,-1,"ya tienes un movil");
    new telefonocomprado = random(999999999);
    for(new player, user = GetMaxPlayers(); player != user; player++) {
        if(!IsPlayerConnected(player)) continue;
        if(NumeroTelefono[player] == telefonocomprado && (player == playerid)) continue;
        NumeroTelefono[playerid] = telefonocomprado;
        TelefonoComprado[playerid] = true; break;
    }
    format(dataphone,sizeof(dataphone),"haz comprado un telefono movil con el numero: %d",NumeroTelefono[playerid]);
    SendClientMessage(playerid,-1,dataphone);
    return true;
}
// MINI SISTEMA DE TELEFONO MOVIL (BASE) by OTACON
Reply
#7

Tienes que hacer un loop para chequear en todos los players conectados si alguno posee el numero que el jugador ha marcado.
Reply
#8

Muchas gracias, ya supe como hacerlo
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)