[Duda] sobre gettime
#1

Hola a todos mi duda es que estoy creando un comando /mute todo bien con el comando pero lo que yo quiero es poner cuando el admins x calle a un jugador y el jugador callado escriba le dija "Estas callado por 1 minuto" pero si el jugador escribe de nuevo le aparesca el mismo mensaje pero con mas tiempo "Estas callado por 2 minuto".

alguien sabe como hacerlo
pawn Код:
gettime()+60;
Reply
#2

pawn Код:
new muteado[MAX_PLAYERS];
new veces[MAX_PLAYERS] = 1;

public OnPlayerText(playerid, text[])
{
    if(muteado[playerid] != 0)
    {
        veces[playerid] += 1;
        SetTimerEx("JugadorMuteado", 60000*veces[playerid], 0, "i", playerid);
        new str[128];
        format(str, sizeof(str), "* Has hablado silenciado, el tiempo ahora es: %i minutos.", veces);
        SendClientMessage(playerid, -1, str);
        return 0;
    }
    return 1;
}

forward JugadorMuteado(playerid);
public JugadorMuteado(playerid)
{
    muteado[playerid] = 0;
    veces[playerid] = 1;
    return 1;
}
їAsн decнas?

Si querйs que sea con gettime, ponй como lo tenes hecho y te lo modifico.
Reply
#3

OK julian aqui esta me lo puedes poner con gettime por favor
PHP код:
if (strcmp(cmd"/callar"true) == 0)
    {
        if (
NivelAdmin[playerid] == || NivelAdmin[playerid] == || NivelAdmin[playerid] == 5)
        {
            new 
tmp1[256], tmp2[256], jugadoradminstring1[256], string2[256], string3[256], string4[256], string5[256], string6[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME];
            
tmp1 strtok(cmdtextidx);
            
tmp2 strtok(cmdtextidx);
            if (!
strlen(tmp1) || !strlen(tmp2)) return SendClientMessage(playerid0xFFFFFFFF"Usa: {00FF00}/callar [ID] [Razon]. Para que deje de estar callado, usa /callar [ID].");
            
jugador strval(tmp1);
            
admin playerid;
            if (
strval(tmp1) == admin) return SendClientMessage(playerid0xFFFFFFFF"No puedes callarte {FFFF00}a ti mismo.");
            
GetPlayerName(jugadornombrejugadorsizeof(nombrejugador));
            
GetPlayerName(adminnombreadminsizeof(nombreadmin));
            if (
IsPlayerConnected(jugador))
            {
                if (
Callado[jugador] == 0)
                {
                    
format(string4256"%s ha sido callado. (Razon: %s.)"nombrejugadorcmdtext[9+strlen(tmp1)]);
                    
format(string5256"Has sido callado por %s. (Razon: %s.)"nombreadmincmdtext[9+strlen(tmp1)]);
                    
format(string6256"%s ha sido callado por %s. (Razon: %s.)"nombrejugadornombreadmincmdtext[9+strlen(tmp1)]);
                    
SendClientMessage(adminCOLOR_AZULstring4);
                    
SendClientMessage(jugadorCOLOR_VERDE_CLAROstring5);
                    
SendClientMessageToAll(0xFFFFFFFFstring6);
                    
PlayerPlaySound(admin10570.00.00.0);
                    
PlayerPlaySound(jugador10570.00.00.0);
                    
Callado[jugador] = 1;
                    
MensajeAdmin(playerid"/callar");
                }
                else if (
Callado[jugador] == 1)
                {
                    
format(string1sizeof(string1), "%s ha dejado de ser callado."nombrejugadorcmdtext[9+strlen(tmp1)]);
                    
format(string2sizeof(string2), "Has dejado de estar callado por %s."nombreadmincmdtext[9+strlen(tmp1)]);
                    
format(string3sizeof(string3), "%s ha dejado de estar callado por %s."nombrejugadornombreadmincmdtext[9+strlen(tmp1)]);
                    
SendClientMessage(adminCOLOR_AZULstring1);
                    
SendClientMessage(jugadorCOLOR_VERDE_CLAROstring2);
                    
SendClientMessageToAll(0xFFFFFFFFstring3);
                    
PlayerPlaySound(admin10570.00.00.0);
                    
PlayerPlaySound(jugador10570.00.00.0);
                    
Callado[jugador] = 0;
                }
            }
            else return 
SendClientMessage(playerid0xFFFFFFFF"El jugador no se encuentra conectado.");
        }
        else return 
SendClientMessage(playerid0xFFFFFFFF"Necesitas ser administrador nivel 3 para usar este comando.");
        return 
1;
    } 
Reply
#4

fijate si te sirve asi, xq no se muy bien para que te queres complicar con gettime
pawn Код:
//DEBAJO DE LOS INCLUDES (O FUERA DE CUALQUIER FUNCION & CALLBACK)
#define TIME    180     //segundos que permanece callado inicialmente cualquier jugador
new Time[MAX_PLAYERS], Timer[MAX_PLAYERS];

//CALLBACK OnPlayerText
public OnPlayerText(playerid, text[]){
    if(Callado[playerid]){
        SendClientMessage(playerid, 0xFF0000FF, "No puedes hablar, ahora como castigo estaras callado 1 minuto mas");
        Time+=60;
        return 0;
    }return 1;
}

//Comando
if(!strcmp(cmd, "/callar", true)){
    NivelAdmin[playerid] = 321;
    if(NivelAdmin[playerid] >= 3){
        new tmp[2][256];
        tmp[0] = strtok(cmdtext, idx);
        tmp[1] = strtok(cmdtext, idx);
        if(!strlen(tmp[0]) || !strlen(tmp[1]) || !IsNumeric(tmp[0]))return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: {00FF00}/callar [ID] [Razon]. Para que deje de estar callado, usa /callar [ID].");
        new id = strval(tmp[0]);
        if(id==playerid)return SendClientMessage(playerid, 0xFFFFFFFF, "No puedes callarte {FFFF00}a ti mismo.");
        new name[2][MAX_PLAYER_NAME];
        GetPlayerName(playerid, name[0], MAX_PLAYER_NAME);
        GetPlayerName(id, name[1], MAX_PLAYER_NAME);
        if(IsPlayerConnected(id)){
            new str[128];
            if(!Callado[id]){
                format(str, 128, "%s ha sido callado. (Razon: %s.)", name[1], cmdtext[9+strlen(tmp[0])]);
                SendClientMessage(playerid, COLOR_AZUL, str);
                format(str, 256, "Has sido callado por %s. (Razon: %s.)", name[0], cmdtext[9+strlen(tmp[0])]);
                SendClientMessage(id, COLOR_VERDE_CLARO, str);
                format(str, 256, "%s ha sido callado por %s. (Razon: %s.)", name[1], name[0], cmdtext[9+strlen(tmp[0])]);
                SendClientMessageToAll(0xFFFFFFFF, str);
                Timer[playerid] = SetTimerEx("Callar", 1000, true, "i", id);
                Callado[id] = 1;
                Time[id] = TIME;
                MensajeAdmin(playerid, "/callar");
                PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
                return PlayerPlaySound(id, 1057, 0.0, 0.0, 0.0);
            }
            else{
                format(str, 128, "%s ha dejado de ser callado.", name[1], cmdtext[9+strlen(tmp[0])]);
                SendClientMessage(playerid, COLOR_AZUL, str);
                format(str, 128, "Has dejado de estar callado por %s.", name[0], cmdtext[9+strlen(tmp[0])]);
                SendClientMessage(id, COLOR_VERDE_CLARO, str);
                format(str, 128, "%s ha dejado de estar callado por %s.", name[1], name[0], cmdtext[9+strlen(tmp[0])]);
                SendClientMessageToAll(0xFFFFFFFF, str);
                Callado[id] = 0;
                Time[id] = 0;
                PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
                return PlayerPlaySound(id, 1057, 0.0, 0.0, 0.0);
            }
        }return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
    }return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 3 para usar este comando.");
}

//Timer
forward Callar(playerid);
public Callar(playerid)
{
    Time[playerid]--;
    if(!Time[playerid]){
        Callado[playerid] = 0;
        SendClientMessage(playerid, 0x00FF00FF, "Ahora puedes hablar");
        KillTimer(Timer[playerid]);
    }
}
PD: Usa [pawn] para los codigos pawn en vez de [php] o [code]
Reply
#5

Gracias eso era lo que necesitaba, pero como puedo ponerle mas ejemplo estoy en silencio y ablo en el chat y me aparece el mensaje y despues ablo nuevamente y el mensaje con 1 minuto mas y ablo otra vez y me aparece el mensaje con 3 minutos mas.
Reply
#6

vamos che no es tan complicado...
pawn Код:
//DEBAJO DE LOS INCLUDES (O FUERA DE CUALQUIER FUNCION & CALLBACK)
#define TIME    180     //segundos que permanece callado inicialmente cualquier jugador
new Time[MAX_PLAYERS], Timer[MAX_PLAYERS], Veces[MAX_PLAYERS];

//CALLBACK OnPlayerText
public OnPlayerText(playerid, text[]){
    if(Callado[playerid]){
        Veces[playerid]++;
        SendClientMessage(playerid, 0xFF0000FF, "No puedes hablar, ahora como castigo estaras callado 1 minuto mas");
        Time+=60*Veces[playerid];
        return 0;
    }return 1;
}

//Comando
if(!strcmp(cmd, "/callar", true)){
    NivelAdmin[playerid] = 321;
    if(NivelAdmin[playerid] >= 3){
        new tmp[2][256];
        tmp[0] = strtok(cmdtext, idx);
        tmp[1] = strtok(cmdtext, idx);
        if(!strlen(tmp[0]) || !strlen(tmp[1]) || !IsNumeric(tmp[0]))return SendClientMessage(playerid, 0xFFFFFFFF, "Usa: {00FF00}/callar [ID] [Razon]. Para que deje de estar callado, usa /callar [ID].");
        new id = strval(tmp[0]);
        if(id==playerid)return SendClientMessage(playerid, 0xFFFFFFFF, "No puedes callarte {FFFF00}a ti mismo.");
        new name[2][MAX_PLAYER_NAME];
        GetPlayerName(playerid, name[0], MAX_PLAYER_NAME);
        GetPlayerName(id, name[1], MAX_PLAYER_NAME);
        if(IsPlayerConnected(id)){
            new str[128];
            if(!Callado[id]){
                format(str, 128, "%s ha sido callado. (Razon: %s.)", name[1], cmdtext[9+strlen(tmp[0])]);
                SendClientMessage(playerid, COLOR_AZUL, str);
                format(str, 256, "Has sido callado por %s. (Razon: %s.)", name[0], cmdtext[9+strlen(tmp[0])]);
                SendClientMessage(id, COLOR_VERDE_CLARO, str);
                format(str, 256, "%s ha sido callado por %s. (Razon: %s.)", name[1], name[0], cmdtext[9+strlen(tmp[0])]);
                SendClientMessageToAll(0xFFFFFFFF, str);
                Timer[playerid] = SetTimerEx("Callar", 1000, true, "i", id);
                Callado[id] = 1;
                Veces[id] = 0;
                Time[id] = TIME;
                MensajeAdmin(playerid, "/callar");
                PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
                return PlayerPlaySound(id, 1057, 0.0, 0.0, 0.0);
            }
            else{
                format(str, 128, "%s ha dejado de ser callado.", name[1], cmdtext[9+strlen(tmp[0])]);
                SendClientMessage(playerid, COLOR_AZUL, str);
                format(str, 128, "Has dejado de estar callado por %s.", name[0], cmdtext[9+strlen(tmp[0])]);
                SendClientMessage(id, COLOR_VERDE_CLARO, str);
                format(str, 128, "%s ha dejado de estar callado por %s.", name[1], name[0], cmdtext[9+strlen(tmp[0])]);
                SendClientMessageToAll(0xFFFFFFFF, str);
                Callado[id] = 0;
                Veces[id] = 0;
                Time[id] = 0;
                PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
                return PlayerPlaySound(id, 1057, 0.0, 0.0, 0.0);
            }
        }return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");
    }return SendClientMessage(playerid, 0xFFFFFFFF, "Necesitas ser administrador nivel 3 para usar este comando.");
}

//Timer
forward Callar(playerid);
public Callar(playerid)
{
    Time[playerid]--;
    if(!Time[playerid]){
        Callado[playerid] = 0;
        SendClientMessage(playerid, 0x00FF00FF, "Ahora puedes hablar");
        KillTimer(Timer[playerid]);
    }
}
Reply
#7

Quote:
Originally Posted by the_chaoz
Посмотреть сообщение
PD: Usa [pawn] para los codigos pawn en vez de [php] o [code]
Saliendo me del tema, por que no se puede usar codigo [php] o [code] segun tu chaoz?

el codigo [pawn] no le gusta a la mayoria de la gente e incluyendome por que cuando uno tiene un codigo ejemplo.
pawn Код:
public OnPlayerRequestClass(playerid, classid)
{
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    return 1;
}
y la persona que necesita el codigo lo copia le saldria asi, y te imaginas un codigo mбs grande.
pawn Код:
public OnPlayerRequestClass(playerid, classid){    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);    return 1;}
pero si usas el codigo [code] o [php].
PHP код:
public OnPlayerRequestClass(playeridclassid)
{
    
SetPlayerPos(playerid1958.37831343.157215.3746);
    
SetPlayerCameraPos(playerid1958.37831343.157215.3746);
    
SetPlayerCameraLookAt(playerid1958.37831343.157215.3746);
    return 
1;

te saldria normal,es solo mi humilde opiniуn.

PD:todos puede usar el codigo que quieran.
Reply
#8

1є xq es mucho mas facil leer las cosas si bien php es similar en algunos aspectos no es lo mismo
2є el codigo lo copia & pega perfecto, no se xq a vos no te funciona. (si los espacios colocados estan bien, te lo deberia pegar bien)
esas son las razones x las q digo que utilizen [pawn], si no lo quieren hacer, no lo hagan, no es obligacion ni nada es comodidad de lectura principalmente.
Reply
#9

Mmm... que raro ami los codigos pawn me aparecen juntos,no soy el unico por que he visto comentarios sobre estу.
Reply
#10

ami tambien me pasa eso que dices d3imon xd, al tema si entiendo the_chaoz a lo que me refiero es que cuando ya le aparecio el primer mensaje y sigue con escribir le aparece mas tiempo pero no el mismo tiempo un ejemplo para que me entiendas.

escribo: "Estas callado por 1 minuto" aqui esta bien como lo pusieron
escribo: "Estas callado por 3 minuto" 3 minutos
escribo: "Estas callado por 10 minuto" ahora son 10 minutos me entiendes es sumarle cada vez mas no 1 minuto siempre.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)