[Ajuda] Radar
#1

Bom tou com uma dъvida aqui nesse FS de Radar , quero fazer com que quando o player leve a multa ele tem atй 1 min para digitar /pagarmulta , caso nгo pague em 1 min , pegue 1 Level de procura .


pawn Код:
#include <a_samp>
// SISTEMA FEITO POR: DESCONHECIDO
// SISTEMA DE EDITADO E TRADUZIDO POR Pedro_Felipe - Pedro_Tilambucu
//----------------------------------------
new UpdateSeconds = 2; // Nгo Mexer
new maxobject = 4;
//----------------------------------------

new Multas[MAX_PLAYERS];

public OnFilterScriptInit()
{
    print("\n----------------------------------");
    print("[FS] Radar Automatico Carregado");
    print("----------------------------------\n");
    SetTimer("UpdateSpeed", UpdateSeconds*1000, 1);
}

public OnFilterScriptExit()
{
    print("\n----------------------------------");
    print("[FS] Radar Automatico Desativado");
    print("----------------------------------\n");
}
forward UpdateSpeed(playerid);
enum SavePlayerPosEnum
{
    Float:LastX,
    Float:LastY,
    Float:LastZ
}
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_RED 0xFF0000FF
#define SLOTS 500

new objectcreated;
new SavePlayerPos[SLOTS][SavePlayerPosEnum];
new distance1[MAX_PLAYERS];


public UpdateSpeed(playerid)
{
    new Float:x,Float:y,Float:z;
    new Float:distance,value;
    for(new i=0; i<SLOTS; i++)
    {
        if(IsPlayerConnected(i))
        {
            GetPlayerPos(i, x, y, z);
            distance = floatsqroot(floatpower(floatabs(floatsub(x,SavePlayerPos[i][LastX])),2)+floatpower(floatabs(floatsub(y,SavePlayerPos[i][LastY])),2)+floatpower(floatabs(floatsub(z,SavePlayerPos[i][LastZ])),2));
            value = floatround(distance * 3600);
            if(UpdateSeconds > 1)
            {
                value = floatround(value / UpdateSeconds);
            }
            distance1[i] = floatround(value/1600);

            SavePlayerPos[i][LastX] = x;
            SavePlayerPos[i][LastY] = y;
            SavePlayerPos[i][LastZ] = z;
            /* Para colocar Coordenada no lugar que voce quer , basta colocar a Coordenada X,Y,Z no lugar dos 00000 ,
            o 40 й o raio que o radar pega, e o 50 , й a velocidade maxima*/

            AddFlitsPaal(i, 1250, 1476.2402,-1726.3396,13.5469, 40, 100); // Radar da DP PM
            AddFlitsPaal(i, 1250, 1517.2294,-1724.6890,13.5469, 40, 100); // Prefeitura
            AddFlitsPaal(i, 1250, 2048.7131,1353.5975,10.6719, 40, 100); // BANCO
            AddFlitsPaal(i, 1250, 1200.9847,-1337.9875,13.3984, 40, 100); // HOSPITAL
            AddFlitsPaal(i, 1250, 0000.0000,0000.0000,0000.0000, 50, 70); // VAGO
            AddFlitsPaal(i, 1250, 0000.0000,0000.0000,0000.0000, 20, 50); // VAGO
            AddFlitsPaal(i, 1250, 0000.0000,0000.0000,0000.0000, 20, 50); // VAGO
            AddFlitsPaal(i, 1250, 0000.0000,0000.0000,0000.0000, 20, 50); // VAGO
            AddFlitsPaal(i, 1250, 0000.0000,0000.0000,0000.0000, 20, 50); // VAGO
            AddFlitsPaal(i, 1250, 0000.0000,0000.0000,0000.0000, 20, 50); // VAGO
           
            Create3DTextLabel("RADAR\nVelocidade\nMaxima 100 KM/H",COLOR_YELLOW,1476.2402,-1726.3396,13.5469,100.0,0); //DP
            Create3DTextLabel("RADAR\nVelocidade\nMaxima 100 KM/H",COLOR_YELLOW,1517.2294,-1724.6890,13.5469,100.0,0); //PREF
        }
    }
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/radar", cmdtext, true, 10) == 0)
    {
        SendClientMessage(playerid,0xFF0000AA,"******* SISTEMA DE RADAR XVL ************");
        SendClientMessage(playerid,0x33CCFFAA,"Existem Radar na Prefeitura, No Hospital e no DP's de Los Santos e Banco");
        SendClientMessage(playerid,0x33CCFFAA,"O Limite de velocidade й entre 50 KM/H");
        SendClientMessage(playerid,0x33CCFFAA,"Se vocк exceder o Limite de velocidade Nesses Locais , Levara Multa de 2000 $ ");
        SendClientMessage(playerid,0xFF0000AA,"Atenciosamente , A administraзгo.");
        return 1;
    }
    if(!strcmp(cmdtext, "/pagarmulta", true))
    {
        if(Multas[playerid] == 0) return SendClientMessage(playerid, 0xFFFFFFAA, "Nгo hб multas a serem pagas !");
        new STR[50];
        format(STR, 50, "Total de Multas: %d. Valor a pagar: %d", Multas[playerid], (Multas[playerid] * 2000));
        SendClientMessage(playerid, 0xFFFF00AA, STR);
        SendClientMessage(playerid, 0xFFFFFFAA, "Vocк pagou suas multas !");
        GivePlayerMoney(playerid, -1 * (Multas[playerid] * 2000));
        Multas[playerid] = 0;
        return 1;
    }
    return 0;
}

IsPlayerInCircle(playerid,Float:x,Float:y,radius)
{
    if(GetPlayerDistanceToPoint(playerid,Float:x,Float:y) < radius)
    {
        return 1;
    }
    return 0;
}

GetPlayerDistanceToPoint(playerid,Float:x,Float:y)
{
    new Float:x1,Float:y1,Float:z1; GetPlayerPos(playerid,x1,y1,z1);
    new Float:tmpdis = floatsqroot(floatpower(floatabs(floatsub(x,x1)),2)+
    floatpower(floatabs(floatsub(y,y1)),2));
    return floatround(tmpdis);
}

stock AddFlitsPaal(playerid, modelid, Float:xx, Float:yy, Float:zz, radius, speed)
{
    new fine[MAX_PLAYERS];
    new str[256];

    if(objectcreated!=maxobject)
    {
        CreateObject(modelid, xx, yy, zz, 0.0, 0.0, 10);
        objectcreated++;
    }
    new Velocimetro = distance1[playerid] + 33;
    if((Velocimetro)>speed)
    {
        if(IsPlayerInCircle(playerid, xx, yy, radius)  && GetPlayerState(playerid)== PLAYER_STATE_DRIVER)
        {
            fine[playerid]=((distance1[playerid]*17/10)-speed);
            Multas[playerid] += 1;
            format(str,sizeof(str), "{FFFF00}[XVL-RADAR] {FF0000}O Limite de velocidade й {00FF00}%d KM/H {FF0000}Vocк Passou a {00FF00}%d KM/H {FF0000}e foi {FF0000}MULTADO !",speed, Velocimetro);
            SendClientMessage(playerid, COLOR_RED, str);
            SendClientMessage(playerid, 0x33CCFFAA, "Digite /pagarmulta para pagar suas multas !");
            PlayerPlaySound(playerid, 1132, 0.0, 0.0, 0.0);
        }
    }
}
Reply
#2

por ser um filterscript pode ser que nгo funcione, caso o seu gamemode possua uma variбvel prуpia para definir o nнvel de procura como "playerinfo[playerid][levelprocurado]", nгo tem como alterar pelo filterscript. A nгo ser que use CallRemoteFunction(ou Local, nгo me lembro agora)
Reply
#3

Quote:
Originally Posted by Falcon.
Посмотреть сообщение
por ser um filterscript pode ser que nгo funcione, caso o seu gamemode possua uma variбvel prуpia para definir o nнvel de procura como "playerinfo[playerid][levelprocurado]", nгo tem como alterar pelo filterscript. A nгo ser que use CallRemoteFunction(ou Local, nгo me lembro agora)
Eu vou implantar esse FS no GM , a variбvel й essa ?
pawn Код:
SetPlayerCriminal(playerid,255, "Vandalismo");
ou essa ?
pawn Код:
format(var, 32, "NivelProcurado=%d\n",WantedPoints[playerid]);fwrite(hFile, var);
Reply
#4

WantedPoints[playerid]
Reply
#5

Quote:
Originally Posted by Falcon.
Посмотреть сообщение
WantedPoints[playerid]
Hum... mas eu quero saber o que coloco nesse code , pra quando ele passar no radar e pegar a multa , o player tem 1 min para digitar /pagarmulta se passar 1 min e ele nгo pagar ele pega level de procura .
Reply
#6

Alguйm ajuda ae
Reply
#7

ja tentou

pawn Код:
#include <a_samp>
// SISTEMA FEITO POR: DESCONHECIDO
// SISTEMA DE EDITADO E TRADUZIDO POR Pedro_Felipe - Pedro_Tilambucu
//----------------------------------------
new UpdateSeconds = 2; // Nгo Mexer
new maxobject = 4;
//----------------------------------------

new Multas[MAX_PLAYERS];

public OnFilterScriptInit()
{
    print("\n----------------------------------");
    print("[FS] Radar Automatico Carregado");
    print("----------------------------------\n");
    SetTimer("UpdateSpeed", UpdateSeconds*1000, 1);
}

public OnFilterScriptExit()
{
    print("\n----------------------------------");
    print("[FS] Radar Automatico Desativado");
    print("----------------------------------\n");
}
forward UpdateSpeed(playerid);
enum SavePlayerPosEnum
{
    Float:LastX,
    Float:LastY,
    Float:LastZ
}
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_RED 0xFF0000FF
#define SLOTS 500

new objectcreated;
new SavePlayerPos[SLOTS][SavePlayerPosEnum];
new distance1[MAX_PLAYERS];


public UpdateSpeed(playerid)
{
    new Float:x,Float:y,Float:z;
    new Float:distance,value;
    for(new i=0; i<SLOTS; i++)
    {
        if(IsPlayerConnected(i))
        {
            GetPlayerPos(i, x, y, z);
            distance = floatsqroot(floatpower(floatabs(floatsub(x,SavePlayerPos[i][LastX])),2)+floatpower(floatabs(floatsub(y,SavePlayerPos[i][LastY])),2)+floatpower(floatabs(floatsub(z,SavePlayerPos[i][LastZ])),2));
            value = floatround(distance * 3600);
            if(UpdateSeconds > 1)
            {
                value = floatround(value / UpdateSeconds);
            }
            distance1[i] = floatround(value/1600);

            SavePlayerPos[i][LastX] = x;
            SavePlayerPos[i][LastY] = y;
            SavePlayerPos[i][LastZ] = z;
            /* Para colocar Coordenada no lugar que voce quer , basta colocar a Coordenada X,Y,Z no lugar dos 00000 ,
            o 40 й o raio que o radar pega, e o 50 , й a velocidade maxima*/

            AddFlitsPaal(i, 1250, 1476.2402,-1726.3396,13.5469, 40, 100); // Radar da DP PM
            AddFlitsPaal(i, 1250, 1517.2294,-1724.6890,13.5469, 40, 100); // Prefeitura
            AddFlitsPaal(i, 1250, 2048.7131,1353.5975,10.6719, 40, 100); // BANCO
            AddFlitsPaal(i, 1250, 1200.9847,-1337.9875,13.3984, 40, 100); // HOSPITAL
            AddFlitsPaal(i, 1250, 0000.0000,0000.0000,0000.0000, 50, 70); // VAGO
            AddFlitsPaal(i, 1250, 0000.0000,0000.0000,0000.0000, 20, 50); // VAGO
            AddFlitsPaal(i, 1250, 0000.0000,0000.0000,0000.0000, 20, 50); // VAGO
            AddFlitsPaal(i, 1250, 0000.0000,0000.0000,0000.0000, 20, 50); // VAGO
            AddFlitsPaal(i, 1250, 0000.0000,0000.0000,0000.0000, 20, 50); // VAGO
            AddFlitsPaal(i, 1250, 0000.0000,0000.0000,0000.0000, 20, 50); // VAGO

            Create3DTextLabel("RADAR\nVelocidade\nMaxima 100 KM/H",COLOR_YELLOW,1476.2402,-1726.3396,13.5469,100.0,0); //DP
            Create3DTextLabel("RADAR\nVelocidade\nMaxima 100 KM/H",COLOR_YELLOW,1517.2294,-1724.6890,13.5469,100.0,0); //PREF
        }
    }
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/radar", cmdtext, true, 10) == 0)
    {
        SendClientMessage(playerid,0xFF0000AA,"******* SISTEMA DE RADAR XVL ************");
        SendClientMessage(playerid,0x33CCFFAA,"Existem Radar na Prefeitura, No Hospital e no DP's de Los Santos e Banco");
        SendClientMessage(playerid,0x33CCFFAA,"O Limite de velocidade й entre 50 KM/H");
        SendClientMessage(playerid,0x33CCFFAA,"Se vocк exceder o Limite de velocidade Nesses Locais , Levara Multa de 2000 $ ");
        SendClientMessage(playerid,0xFF0000AA,"Atenciosamente , A administraзгo.");
        return 1;
    }
    if(!strcmp(cmdtext, "/pagarmulta", true))
    {
        if(Multas[playerid] == 0) return SendClientMessage(playerid, 0xFFFFFFAA, "Nгo hб multas a serem pagas !");
        new STR[50];
        format(STR, 50, "Total de Multas: %d. Valor a pagar: %d", Multas[playerid], (Multas[playerid] * 2000));
        SendClientMessage(playerid, 0xFFFF00AA, STR);
        SendClientMessage(playerid, 0xFFFFFFAA, "Vocк pagou suas multas !");
        GivePlayerMoney(playerid, -1 * (Multas[playerid] * 2000));
        Multas[playerid] = 0;
        return 1;
    }
    return 0;
}

IsPlayerInCircle(playerid,Float:x,Float:y,radius)
{
    if(GetPlayerDistanceToPoint(playerid,Float:x,Float:y) < radius)
    {
        return 1;
    }
    return 0;
}

GetPlayerDistanceToPoint(playerid,Float:x,Float:y)
{
    new Float:x1,Float:y1,Float:z1; GetPlayerPos(playerid,x1,y1,z1);
    new Float:tmpdis = floatsqroot(floatpower(floatabs(floatsub(x,x1)),2)+
    floatpower(floatabs(floatsub(y,y1)),2));
    return floatround(tmpdis);
}

stock AddFlitsPaal(playerid, modelid, Float:xx, Float:yy, Float:zz, radius, speed)
{
    new fine[MAX_PLAYERS];
    new str[256];

    if(objectcreated!=maxobject)
    {
        CreateObject(modelid, xx, yy, zz, 0.0, 0.0, 10);
        objectcreated++;
    }
    new Velocimetro = distance1[playerid] + 33;
    if((Velocimetro)>speed)
    {
        if(IsPlayerInCircle(playerid, xx, yy, radius)  && GetPlayerState(playerid)== PLAYER_STATE_DRIVER)
        {
            fine[playerid]=((distance1[playerid]*17/10)-speed);
            Multas[playerid] += 1;
            format(str,sizeof(str), "{FFFF00}[XVL-RADAR] {FF0000}O Limite de velocidade й {00FF00}%d KM/H {FF0000}Vocк Passou a {00FF00}%d KM/H {FF0000}e foi {FF0000}MULTADO !",speed, Velocimetro);
            SendClientMessage(playerid, COLOR_RED, str);
            SendClientMessage(playerid, 0x33CCFFAA, "Digite /pagarmulta para pagar suas multas !");
            PlayerPlaySound(playerid, 1132, 0.0, 0.0, 0.0);
            SetTimerEx("PagarMulta", 1000*1, false, "i", playerid); // acho que e 1 min
        }
    }
}
forward PagarMulta(playerid); public PagarMulta(playerid)
{
    if ( Multas[playerid] == 1 )
    {
        WantedPoints[playerid] +=1;
        SendClientMessage(playerid, -1 , "Vocк ganhou nivel de procura por nгo pagar a multa");
    }
    return 1;
}
Reply
#8

@Edit , Nгo funcionou ! e.e
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)