crear comando /tiempo
#1

pawn Код:
COMMAND:sancion(playerid,params[])
{
    if(GetPVarInt( playerid, "Level" ) > 0)
    {
        new pId, time;
        if(sscanf(params, "dds[128]", pId, time, params[3])) return SendClientMessage(playerid, 0xFF0000AA, "USO: /sancion [ID] [minutos] [razon]");
            else if(!IsPlayerConnected(pId)) return SendClientMessage(playerid, 0xFF0000AA, "Usuario no conectado");
                else
                {
                    new pname[MAX_PLAYER_NAME], jname[MAX_PLAYER_NAME], string1[250];
                    GetPlayerName(playerid, pname, sizeof(pname));
                    GetPlayerName(pId, jname, sizeof(jname));
                    SetPlayerInterior(pId, 3);
                    new rand = random(sizeof(JailCellSpawns));
                    SetPlayerVirtualWorld(pId,21);
                    SetPlayerPos(pId, JailCellSpawns[rand][0], JailCellSpawns[rand][1], JailCellSpawns[rand][2]);
                    SetTimerEx("UnJail",time*1000*60,0,"i",pId);
                    InJail[pId] = 1;
                    ResetPlayerWeapons(pId);
                    format(string1, sizeof(string1), "%s(%d) fue sancionado por un admin. Razon: %s", jname, pId, params[3]);
                    SendClientMessageToAll(COLOR_RED, string1);
                    //les saco el godmode
        SetPVarInt( pId, "God", 0);
        KillTimer( God[ pId ] );
        SetPlayerHealth( pId, 100.0 );
                    return 1;
                }
            }
            else
            {
                return 0;
            }
}

pawn Код:
public UnJail(pId)
{
SetPlayerVirtualWorld(pId,0);
    SpawnPlayer(pId);
    SendClientMessage(pId, 0xFF0000AA, "Tu sancion ha terminado!");
    InJail[pId] = 0;
    return 1;
}
como puedo hacer un comando "/tiempo" y que diga lo que falta para salir de la sancion?
Reply
#2

usa la funcion gettime(), en una variable llamala cuando lo envies a la carcel y de ahi ya puedes llamarla las veces que necesites, ejemplo:
pawn Код:
new tiempo[MAX_PLAYERS];

//en tu comando
tiempo[playerid] = gettime();

// en tu comando de tiempo

new str[128];
format(str,sizeof(str),"te faltan %d segundos para salir de la carcel",gettime()-tiempo[playerid]);
SendClientMessage(playerid,-1,str);
Reply
#3

Quote:
Originally Posted by xSDx
Посмотреть сообщение
usa la funcion gettime(), en una variable llamala cuando lo envies a la carcel y de ahi ya puedes llamarla las veces que necesites, ejemplo:
pawn Код:
new tiempo[MAX_PLAYERS];

//en tu comando
tiempo[playerid] = gettime();

// en tu comando de tiempo

new str[128];
format(str,sizeof(str),"te faltan %d segundos para salir de la carcel",gettime()-tiempo[playerid]);
SendClientMessage(playerid,-1,str);
no entendi, como seria lo de gettime?

pawn Код:
COMMAND:sancion(playerid,params[])
{
    if(GetPVarInt( playerid, "Level" ) > 0)
    {
        new pId, time;
        if(sscanf(params, "dds[128]", pId, time, params[3])) return SendClientMessage(playerid, 0xFF0000AA, "USO: /sancion [ID] [minutos] [razon]");
            else if(!IsPlayerConnected(pId)) return SendClientMessage(playerid, 0xFF0000AA, "Usuario no conectado");
                else
                {
                    new pname[MAX_PLAYER_NAME], jname[MAX_PLAYER_NAME], string1[250];
                    GetPlayerName(playerid, pname, sizeof(pname));
                    GetPlayerName(pId, jname, sizeof(jname));
                    SetPlayerInterior(pId, 3);
                    new rand = random(sizeof(JailCellSpawns));
                    SetPlayerVirtualWorld(pId,21);
                    SetPlayerPos(pId, JailCellSpawns[rand][0], JailCellSpawns[rand][1], JailCellSpawns[rand][2]);
                    SetTimerEx("UnJail",time*1000*60,0,"i",pId);
                    InJail[pId] = 1;
                    tiempo[playerid] = gettime();
                    ResetPlayerWeapons(pId);
                    format(string1, sizeof(string1), "%s(%d) fue sancionado por un admin. Razon: %s", jname, pId, params[3]);
                    SendClientMessageToAll(COLOR_RED, string1);
                    //les saco el godmode
        SetPVarInt( pId, "God", 0);
        KillTimer( God[ pId ] );
        SetPlayerHealth( pId, 100.0 );
                    return 1;
                }
            }
            else
            {
                return 0;
            }
}



COMMAND:tiempo(playerid,params[])
{
    if(InJail[playerid] == 1)
    {
new str[128];
format(str,sizeof(str),"te faltan %d segundos para salir de la carcel",gettime()-tiempo[playerid]);
SendClientMessage(playerid,-1,str);
    }else{
                return 0;
    }
    return 1;
}
Reply
#4

estoy ahora usando esto asi, pero muestra segundos quisiera ver minutos, y si tiene horas tambien.

pawn Код:
COMMAND:sancion(playerid,params[])
{
    if(GetPVarInt( playerid, "Level" ) > 0)
    {
        new pId, time;
        if(sscanf(params, "dds[128]", pId, time, params[3])) return SendClientMessage(playerid, 0xFF0000AA, "USO: /sancion [ID] [minutos] [razon]");
            else if(!IsPlayerConnected(pId)) return SendClientMessage(playerid, 0xFF0000AA, "Usuario no conectado");
                else
                {
                    new pname[MAX_PLAYER_NAME], jname[MAX_PLAYER_NAME], string1[250];
                    GetPlayerName(playerid, pname, sizeof(pname));
                    GetPlayerName(pId, jname, sizeof(jname));
                    SetPlayerInterior(pId, 3);
                    new rand = random(sizeof(JailCellSpawns));
                    SetPlayerVirtualWorld(pId,21);
                    SetPlayerPos(pId, JailCellSpawns[rand][0], JailCellSpawns[rand][1], JailCellSpawns[rand][2]);
                    SetTimerEx("UnJail",time*1000*60,0,"i",pId);
                    InJail[pId] = 1;
                    time = gettime();
                    ResetPlayerWeapons(pId);
                    format(string1, sizeof(string1), "%s(%d) fue sancionado por un admin. Razon: %s", jname, pId, params[3]);
                    SendClientMessageToAll(COLOR_RED, string1);
                    //les saco el godmode
        SetPVarInt( pId, "God", 0);
        KillTimer( God[ pId ] );
        SetPlayerHealth( pId, 100.0 );
                    return 1;
                }
            }
            else
            {
                return 0;
            }
}



COMMAND:tiempo(playerid,params[])
{
    if(InJail[playerid] == 1)
    {
new str[128];
//format(str,sizeof(str),"te faltan %d segundos para salir de la carcel",gettime()-tiempo[playerid]);
format(str,sizeof(str),"te faltan %d segundos para salir de la carcel",gettime());
SendClientMessage(playerid,-1,str);
    }else{
                return 0;
    }
    return 1;
}
Reply
#5

hace
[pawn]
new tiempo[MAX_PLAYERS];

//en tu comando
tiempo[playerid] = gettime()*60;

// en tu comando de tiempo

new str[128];
format(str,sizeof(str),"te faltan %d minutos para salir de la carcel",gettime()-tiempo[playerid]);
SendClientMessage(playerid,-1,str);
Reply
#6

Quote:
Originally Posted by JustBored
Посмотреть сообщение
hace
[pawn]
new tiempo[MAX_PLAYERS];

//en tu comando
tiempo[playerid] = gettime()*60;

// en tu comando de tiempo

new str[128];
format(str,sizeof(str),"te faltan %d minutos para salir de la carcel",gettime()-tiempo[playerid]);
SendClientMessage(playerid,-1,str);
pawn Код:
COMMAND:sancion(playerid,params[])
{
    if(GetPVarInt( playerid, "Level" ) > 0)
    {
        new pId, time;
        if(sscanf(params, "dds[128]", pId, time, params[3])) return SendClientMessage(playerid, 0xFF0000AA, "USO: /sancion [ID] [minutos] [razon]");
            else if(!IsPlayerConnected(pId)) return SendClientMessage(playerid, 0xFF0000AA, "Usuario no conectado");
                else
                {
                    new pname[MAX_PLAYER_NAME], jname[MAX_PLAYER_NAME], string1[250];
                    GetPlayerName(playerid, pname, sizeof(pname));
                    GetPlayerName(pId, jname, sizeof(jname));
                    SetPlayerInterior(pId, 3);
                    new rand = random(sizeof(JailCellSpawns));
                    SetPlayerVirtualWorld(pId,21);
                    SetPlayerPos(pId, JailCellSpawns[rand][0], JailCellSpawns[rand][1], JailCellSpawns[rand][2]);
                    SetTimerEx("UnJail",time*1000*60,0,"i",pId);
                    InJail[pId] = 1;
                    tiempo[playerid] = gettime()*60;
                    ResetPlayerWeapons(pId);
                    format(string1, sizeof(string1), "%s(%d) fue sancionado por un admin. Razon: %s", jname, pId, params[3]);
                    SendClientMessageToAll(COLOR_RED, string1);
                    //les saco el godmode
        SetPVarInt( pId, "God", 0);
        KillTimer( God[ pId ] );
        SetPlayerHealth( pId, 100.0 );
                    return 1;
                }
            }
            else
            {
                return 0;
            }
}



COMMAND:tiempo(playerid,params[])
{
    if(InJail[playerid] == 1)
    {
/*new str[128];
//format(str,sizeof(str),"te faltan %d segundos para salir de la carcel",gettime()-tiempo[playerid]);
//format(str,sizeof(str),"te faltan %d segundos para salir de la carcel",gettime());
format(str,sizeof(str),"Te faltan %d minutos para salir de la sancion",gettime()-tiempo[playerid]);
SendClientMessage(playerid,-1,str);*/

new str[128];
format(str,sizeof(str),"te faltan %d minutos para salir de la carcel",gettime()-tiempo[playerid]);
SendClientMessage(playerid,-1,str);
    }else{
                return 0;
    }
    return 1;
}
Ese es el codigo que ahora estoy usando

Код:
[11:42:49] a(0) fue sancionado. Razon: 1

[11:42:55] te faltan 850171859 minutos para salir de la carcel

[11:43:02] te faltan 850171866 minutos para salir de la carcel

[11:43:03] te faltan 850171867 minutos para salir de la carcel

[11:43:06] te faltan 850171870 minutos para salir de la carcel
que esta mal? :l
Reply
#7

y asн?
pawn Код:
new tiempo[MAX_PLAYERS];

//en tu comando
tiempo[playerid] = gettime()+(time*1000*60);

// en tu comando de tiempo

new str[128];
format(str,sizeof(str),"te faltan %0.0f segundos para salir de la carcel",float:(tiempo[playerid]-gettime())/1000.00);
SendClientMessage(playerid,-1,str);
Reply
#8

Quote:
Originally Posted by JustBored
Посмотреть сообщение
hace
[pawn]
new tiempo[MAX_PLAYERS];

//en tu comando
tiempo[playerid] = gettime()*60;

// en tu comando de tiempo

new str[128];
format(str,sizeof(str),"te faltan %d minutos para salir de la carcel",gettime()-tiempo[playerid]);
SendClientMessage(playerid,-1,str);
Quote:
Originally Posted by Daniel-92
Посмотреть сообщение
y asн?
pawn Код:
new tiempo[MAX_PLAYERS];

//en tu comando
tiempo[playerid] = gettime()+(time*1000*60);

// en tu comando de tiempo

new str[128];
format(str,sizeof(str),"te faltan %0.0f segundos para salir de la carcel",float:(tiempo[playerid]-gettime())/1000.00);
SendClientMessage(playerid,-1,str);
Код:
d:\Documents and Settings\Administrador\Mis documentos\Descargas\samp03x_svr_R1-2_win32\filterscripts\carspawnregister.pwn(954) : warning 219: local variable "pName" shadows a variable at a preceding level
d:\Documents and Settings\Administrador\Mis documentos\Descargas\samp03x_svr_R1-2_win32\filterscripts\carspawnregister.pwn(2062) : warning 213: tag mismatch
d:\Documents and Settings\Administrador\Mis documentos\Descargas\samp03x_svr_R1-2_win32\filterscripts\carspawnregister.pwn(2461) : warning 219: local variable "Name" shadows a variable at a preceding level
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


3 Warnings.
linea 2062
pawn Код:
format(str,sizeof(str),"te faltan %0.0f segundos para salir de la carcel",float:(tiempo[playerid]-gettime())/1000.00);
Reply
#9

pawn Код:
format(str,sizeof(str),"te faltan %d segundos para salir de la carcel",(tiempo[playerid]-gettime())/1000);
Reply
#10

pawn Код:
COMMAND:sancion(playerid,params[])
{
    if(GetPVarInt( playerid, "Level" ) > 0)
    {
        new pId, time;
        if(sscanf(params, "dds[128]", pId, time, params[3])) return SendClientMessage(playerid, 0xFF0000AA, "USO: /sancion [ID] [minutos] [razon]");
            else if(!IsPlayerConnected(pId)) return SendClientMessage(playerid, 0xFF0000AA, "Usuario no conectado");
                else
                {
                    new pname[MAX_PLAYER_NAME], jname[MAX_PLAYER_NAME], string1[250];
                    GetPlayerName(playerid, pname, sizeof(pname));
                    GetPlayerName(pId, jname, sizeof(jname));
                    SetPlayerInterior(pId, 3);
                    new rand = random(sizeof(JailCellSpawns));
                    SetPlayerVirtualWorld(pId,21);
                    SetPlayerPos(pId, JailCellSpawns[rand][0], JailCellSpawns[rand][1], JailCellSpawns[rand][2]);
                    SetTimerEx("UnJail",time*1000*60,0,"i",pId);
                    InJail[pId] = 1;
                    tiempo[playerid] = gettime()+(time*1000*60);
                    ResetPlayerWeapons(pId);
                    format(string1, sizeof(string1), "%s(%d) fue sancionado por un admin. Razon: %s", jname, pId, params[3]);
                    SendClientMessageToAll(COLOR_RED, string1);
                    //les saco el godmode
        SetPVarInt( pId, "God", 0);
        KillTimer( God[ pId ] );
        SetPlayerHealth( pId, 100.0 );
                    return 1;
                }
            }
            else
            {
                return 0;
            }
}



COMMAND:tiempo(playerid,params[])
{
    if(InJail[playerid] == 1)
    {
/*new str[128];
//format(str,sizeof(str),"te faltan %d segundos para salir de la carcel",gettime()-tiempo[playerid]);
//format(str,sizeof(str),"te faltan %d segundos para salir de la carcel",gettime());
format(str,sizeof(str),"Te faltan %d minutos para salir de la sancion",gettime()-tiempo[playerid]);
SendClientMessage(playerid,-1,str);*/

new str[128];
format(str,sizeof(str),"te faltan %d segundos para salir de la carcel",(tiempo[playerid]-gettime())/1000);
SendClientMessage(playerid,-1,str);
    }else{
                return 0;
    }
    return 1;
}
Код:
[13:27:30] a(0) fue sancionado. Razon: 9

[13:27:33] te faltan 539 segundos para salir de la carcel

[13:27:36] te faltan 539 segundos para salir de la carcel
Me encarcele 9minutos y dice eso
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)