[Ajuda] importante para quem tem servidor grande!
#1

Bom manolos, meu servidor tem uma grande quantidade de players/seguidores, e atualmente ando sofrendo atack em бrea movimentadas do servidor, com uma espйcie de CLEO4. Criaram um sistema que puxa todos os veнculos presente no servidor, inutilizados! sendo assim trazendo eles para um sу lugar dando um lag infernal!

Bom, jб tenho algumas ideias em mente para resolver isso, mais gostaria de saber se alguйm aqui do fуrum sabe alguma coisa jб existente contra isso!

Favor nгo postar besteira, й algo que pode ferrar qualquer servidor sem problemas, e tanto na versгo 0.3c como na versгo 0.3d.

Se alguйm poder ajuda, agradeзo!

Caso nгo existe algo, vou dar meus pulos !
Reply
#2

Eu tenho esse script '-'

Lembro que vi na area inglesa uma vez, uma base de um anti-cheater que combate isso, vou ver se acho aqui, se achar eu edito e posto (nao garanto que volto, pq minha internet hoje estб um **)
Reply
#3

Tenta usar essa include, deve ajudar
pawn Код:
#include <a_samp>

#define MAX_STREAM_VEHICLES 2000
#define VIEW_DISTANCE 500
#define MAX_COMPONENTS 12
#define INVALID_STREAM_ID -1
#define N_SIZE 10

#define IsPosInDistance(%0,%1,%2,%3,%4,%5,%6) \
        (((%0 - %3) * (%0 - %3)) + ((%1 - %4) * (%1 - %4)) + ((%2 - %5) * (%2 - %5)) <= %6 * %6)// BIG THX to Goldkiller

forward OnPlayerExitStreamVehicle(playerid,svehicleid);
forward OnPlayerEnterStreamVehicle(playerid,svehicleid,ispassenger);
forward OnStreamVehicleSpawn(svehicleid);
forward OnStreamVehicleDeath(svehicleid, killerid);
forward OnStreamVehiclePaintjob(playerid, svehicleid, paintjobid);
forward OnStreamVehicleRespray(playerid, svehicleid, color1, color2);
forward OnStreamVehicleMod(playerid, svehicleid, componentid);

enum VEHICLE_INFO
{
    CREATED,
    VEHICLE_ID,
    MODEL,
    Float:SPAWN_POS[4],
    Float:CURRENT_POS[4],
    INTERIOR,
    WORLD,
    SPAWN_COLORS[2],
    CURRENT_COLORS[2],
    PAINTJOB,
    COMPONENTS[MAX_COMPONENTS],
    Float:HEALTH,
    RESPAWN_DELAY,
    RESPAWNING,
    NUMBERPLATE[N_SIZE]
}

new VehicleInfo[MAX_STREAM_VEHICLES][VEHICLE_INFO];
new VehicleStreamID[MAX_VEHICLES];
new VehicleParams[MAX_STREAM_VEHICLES][2][MAX_PLAYERS];
new VehicleCount;

forward CreateStreamVehicle(vehicletype, Float:x, Float:y, Float:z, Float:rotation, color1, color2, respawn_delay);
public CreateStreamVehicle(vehicletype, Float:x, Float:y, Float:z, Float:rotation, color1, color2, respawn_delay)
{
    for(new i=0;i<MAX_STREAM_VEHICLES;i++)
    {
        if(!VehicleInfo[i][CREATED])
        {
            VehicleInfo[i][CREATED]=true;
            VehicleInfo[i][VEHICLE_ID]=0;
            VehicleInfo[i][MODEL]=vehicletype;
            VehicleInfo[i][SPAWN_POS][0]=x;
            VehicleInfo[i][SPAWN_POS][1]=y;
            VehicleInfo[i][SPAWN_POS][2]=z;
            VehicleInfo[i][SPAWN_POS][3]=rotation;
            VehicleInfo[i][SPAWN_COLORS][0]=color1;
            VehicleInfo[i][SPAWN_COLORS][1]=color2;
            VehicleInfo[i][INTERIOR]=0;
            VehicleInfo[i][WORLD]=0;
            VehicleInfo[i][RESPAWN_DELAY]=respawn_delay;//in seconds.
            VehicleInfo[i][RESPAWNING]=0;
            VehicleInfo[i][HEALTH]=1000;
            VehicleInfo[i][PAINTJOB]=0;
            VehicleInfo[i][NUMBERPLATE][0]='\0';

            for(new j=0;j<4;j++)
                VehicleInfo[i][CURRENT_POS][j]=VehicleInfo[i][SPAWN_POS][j];
            VehicleInfo[i][CURRENT_COLORS][0]=VehicleInfo[i][SPAWN_COLORS][0];
            VehicleInfo[i][CURRENT_COLORS][1]=VehicleInfo[i][SPAWN_COLORS][1];

            for(new j=0;j<MAX_COMPONENTS;j++)
                VehicleInfo[i][COMPONENTS][j]=0;

            for(new k=0;k<MAX_PLAYERS;k++)
                VehicleParams[i][0][k]=VehicleParams[i][1][k]=0;
            return i;
        }
    }
    return 0;
}

forward DestroyStreamVehicle(svehicleid);
public DestroyStreamVehicle(svehicleid)
{
    if(svehicleid>=0 && svehicleid<MAX_STREAM_VEHICLES)
    {
        if(VehicleInfo[svehicleid][CREATED])
        {
            if(VehicleInfo[svehicleid][VEHICLE_ID])
            {
                DestroyVehicle(VehicleInfo[svehicleid][VEHICLE_ID]);
                VehicleCount--;
            }
            VehicleInfo[svehicleid][CREATED]=false;
            return 1;
        }
    }
    return 0;
}

stock IsAnyPlayerNearStreamVehicle(svehicleid,distance)
{
    new Float:x,Float:y,Float:z;
    for(new i=0;i<MAX_PLAYERS;i++)
        if(GetPlayerPos(i,x,y,z))
            if(IsPosInDistance(x,y,z,VehicleInfo[svehicleid][CURRENT_POS][0],VehicleInfo[svehicleid][CURRENT_POS][1],VehicleInfo[svehicleid][CURRENT_POS][2],distance))
                return true;
    return false;
}

stock IsAnyPlayerInVehicle(vehicleid)
{
    if(vehicleid)
        for(new i=0;i<MAX_PLAYERS;i++)
            if(GetPlayerVehicleID(i)==vehicleid)
                return true;
    return false;
}

forward LoadVehicle(svehicleid);
public LoadVehicle(svehicleid)
{
    if(svehicleid>=0 && svehicleid<MAX_STREAM_VEHICLES)
    {
        if(!VehicleInfo[svehicleid][VEHICLE_ID] && VehicleCount<MAX_VEHICLES)
        {
            VehicleCount++;
            VehicleInfo[svehicleid][VEHICLE_ID]=CreateVehicle(VehicleInfo[svehicleid][MODEL],
                VehicleInfo[svehicleid][CURRENT_POS][0],VehicleInfo[svehicleid][CURRENT_POS][1],VehicleInfo[svehicleid][CURRENT_POS][2],VehicleInfo[svehicleid][CURRENT_POS][3],
                VehicleInfo[svehicleid][CURRENT_COLORS][0],VehicleInfo[svehicleid][CURRENT_COLORS][1],-1);
            VehicleStreamID[VehicleInfo[svehicleid][VEHICLE_ID]]=svehicleid;
            SetVehicleHealth(VehicleInfo[svehicleid][VEHICLE_ID],VehicleInfo[svehicleid][HEALTH]);
            if(VehicleInfo[svehicleid][PAINTJOB])
                ChangeVehiclePaintjob(VehicleInfo[svehicleid][VEHICLE_ID],VehicleInfo[svehicleid][PAINTJOB]);

            for(new i=0;i<MAX_COMPONENTS;i++)
                if(VehicleInfo[svehicleid][COMPONENTS][i])
                    AddVehicleComponent(VehicleInfo[svehicleid][VEHICLE_ID],VehicleInfo[svehicleid][COMPONENTS][i]);

            SetVehicleVirtualWorld(VehicleInfo[svehicleid][VEHICLE_ID],VehicleInfo[svehicleid][WORLD]);
            LinkVehicleToInterior(VehicleInfo[svehicleid][VEHICLE_ID],VehicleInfo[svehicleid][INTERIOR]);

            if(strlen(VehicleInfo[svehicleid][NUMBERPLATE]))
                SetVehicleNumberPlate(VehicleInfo[svehicleid][VEHICLE_ID],VehicleInfo[svehicleid][NUMBERPLATE]);

            for(new i=0;i<MAX_PLAYERS;i++)
                if(IsPlayerConnected(i))
                    SetVehicleParamsForPlayer(VehicleInfo[svehicleid][VEHICLE_ID],i,
                        VehicleParams[svehicleid][0][i],VehicleParams[svehicleid][1][i]);
            return VehicleInfo[svehicleid][VEHICLE_ID];
        }
    }
    return 0;
}

forward StreamVehicles();
public StreamVehicles()
{
    new vehicleused;
    for(new i=0;i<MAX_STREAM_VEHICLES;i++)
    {
        if(VehicleInfo[i][CREATED])
        {
            vehicleused=IsAnyPlayerInVehicle(VehicleInfo[i][VEHICLE_ID]);
            if(vehicleused || IsAnyPlayerNearStreamVehicle(i,VIEW_DISTANCE))
            {
                LoadVehicle(i);
                if(VehicleInfo[i][VEHICLE_ID])
                {
                    GetVehiclePos(VehicleInfo[i][VEHICLE_ID],VehicleInfo[i][CURRENT_POS][0],VehicleInfo[i][CURRENT_POS][1],VehicleInfo[i][CURRENT_POS][2]);
                    if(vehicleused)
                        GetVehicleZAngle(VehicleInfo[i][VEHICLE_ID],VehicleInfo[i][CURRENT_POS][3]);
                }
            }
            else
            {
                if(VehicleInfo[i][VEHICLE_ID])
                {
                    GetVehiclePos(VehicleInfo[i][VEHICLE_ID],VehicleInfo[i][CURRENT_POS][0],VehicleInfo[i][CURRENT_POS][1],VehicleInfo[i][CURRENT_POS][2]);
                    GetVehicleHealth(VehicleInfo[i][VEHICLE_ID],VehicleInfo[i][HEALTH]);
                    DestroyVehicle(VehicleInfo[i][VEHICLE_ID]);
                    VehicleStreamID[VehicleInfo[i][VEHICLE_ID]]=INVALID_STREAM_ID;
                    VehicleInfo[i][VEHICLE_ID]=0;
                    VehicleCount--;
                }
            }
           
            if(VehicleInfo[i][RESPAWNING] && !vehicleused)
            {
                VehicleInfo[i][RESPAWNING]--;
                if(!VehicleInfo[i][RESPAWNING])
                    SetStreamVehicleToRespawn(i);
            }
        }
    }
    return 1;
}

public OnPlayerEnterVehicle(playerid,vehicleid,ispassenger)
{
    new svehicleid=GetVehicleStreamID(vehicleid);
    VehicleInfo[svehicleid][RESPAWNING]=VehicleInfo[svehicleid][RESPAWN_DELAY];
    return CallLocalFunction("OnPlayerEnterStreamVehicle","iii",playerid,svehicleid,ispassenger);
}

public OnPlayerExitVehicle(playerid,vehicleid)
{
    new svehicleid=GetVehicleStreamID(vehicleid);
    VehicleInfo[svehicleid][RESPAWNING]=VehicleInfo[svehicleid][RESPAWN_DELAY];
    GetPlayerPos(playerid,VehicleInfo[svehicleid][CURRENT_POS][0],VehicleInfo[svehicleid][CURRENT_POS][1],VehicleInfo[svehicleid][CURRENT_POS][2]);
    return CallLocalFunction("OnPlayerExitStreamVehicle","ii",playerid,svehicleid);
}

public OnVehicleSpawn(vehicleid)
{
    return SetStreamVehicleToRespawn(GetVehicleStreamID(vehicleid));
}

public OnVehicleDeath(vehicleid, killerid)
{
    SetTimerEx("SetStreamVehicleToRespawn",3000,0,"i",GetVehicleStreamID(vehicleid));
    return CallLocalFunction("OnStreamVehicleDeath","ii",GetVehicleStreamID(vehicleid),killerid);
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
    for(new i=0;i<MAX_COMPONENTS;i++)
    {
        if(!VehicleInfo[GetVehicleStreamID(vehicleid)][COMPONENTS][i])
        {
            VehicleInfo[GetVehicleStreamID(vehicleid)][COMPONENTS][i]=componentid;
            break;
        }
    }

    return CallLocalFunction("OnStreamVehicleMod","iii",playerid,GetVehicleStreamID(vehicleid),componentid);
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
    VehicleInfo[GetVehicleStreamID(vehicleid)][PAINTJOB]=paintjobid;
    return CallLocalFunction("OnStreamVehiclePaintjob","iii",playerid,GetVehicleStreamID(vehicleid),paintjobid);
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
    VehicleInfo[GetVehicleStreamID(vehicleid)][CURRENT_COLORS][0]=color1;
    VehicleInfo[GetVehicleStreamID(vehicleid)][CURRENT_COLORS][1]=color2;
    return CallLocalFunction("OnStreamVehicleRespray","iiii",playerid,GetVehicleStreamID(vehicleid),color1,color2);
}

forward SetStreamVehicleToRespawn(svehicleid);
public SetStreamVehicleToRespawn(svehicleid)
{
    if(svehicleid>=0 && svehicleid<MAX_STREAM_VEHICLES)
    {
        if(VehicleInfo[svehicleid][CREATED])
        {
            if(VehicleInfo[svehicleid][VEHICLE_ID])
            {
                DestroyVehicle(VehicleInfo[svehicleid][VEHICLE_ID]);
                VehicleInfo[svehicleid][VEHICLE_ID]=0;
                VehicleCount--;
            }
           
            VehicleInfo[svehicleid][HEALTH]=1000;
            VehicleInfo[svehicleid][PAINTJOB]=0;
            VehicleInfo[svehicleid][RESPAWNING]=0;

            for(new i=0;i<MAX_COMPONENTS;i++)
                VehicleInfo[svehicleid][COMPONENTS][i]=0;

            for(new i=0;i<4;i++)
                VehicleInfo[svehicleid][CURRENT_POS][i]=VehicleInfo[svehicleid][SPAWN_POS][i];
            VehicleInfo[svehicleid][CURRENT_COLORS][0]=VehicleInfo[svehicleid][SPAWN_COLORS][0];
            VehicleInfo[svehicleid][CURRENT_COLORS][1]=VehicleInfo[svehicleid][SPAWN_COLORS][1];
            return CallLocalFunction("OnStreamVehicleSpawn","i",svehicleid);
        }
    }
    return 0;
}

forward LinkStreamVehicleToInterior(svehicleid,interiorid);
public LinkStreamVehicleToInterior(svehicleid,interiorid)
{
    if(svehicleid>=0 && svehicleid<MAX_STREAM_VEHICLES)
    {
        if(VehicleInfo[svehicleid][CREATED])
        {
            if(VehicleInfo[svehicleid][VEHICLE_ID])
                LinkVehicleToInterior(VehicleInfo[svehicleid][VEHICLE_ID],interiorid);
            VehicleInfo[svehicleid][INTERIOR]=interiorid;
            return 1;
        }
    }
    return 0;
}

forward SetStreamVehicleVirtualWorld(svehicleid,worldid);
public SetStreamVehicleVirtualWorld(svehicleid,worldid)
{
    if(svehicleid>=0 && svehicleid<MAX_STREAM_VEHICLES)
    {
        if(VehicleInfo[svehicleid][CREATED])
        {
            if(VehicleInfo[svehicleid][VEHICLE_ID])
                SetVehicleVirtualWorld(VehicleInfo[svehicleid][VEHICLE_ID],worldid);
            VehicleInfo[svehicleid][WORLD]=worldid;
            return 1;
        }
    }
    return 0;
}

forward GetStreamVehicleVirtualWorld(svehicleid);
public GetStreamVehicleVirtualWorld(svehicleid)
{
    if(svehicleid>=0 && svehicleid<MAX_STREAM_VEHICLES)
        if(VehicleInfo[svehicleid][CREATED])
            return VehicleInfo[svehicleid][WORLD];
    return 0;
}

forward GetStreamVehicleHealth(svehicleid, &Float:health);
public GetStreamVehicleHealth(svehicleid, &Float:health)
{
    if(svehicleid>=0 && svehicleid<MAX_STREAM_VEHICLES)
    {
        if(VehicleInfo[svehicleid][CREATED])
        {
            if(VehicleInfo[svehicleid][VEHICLE_ID])
                GetVehicleHealth(VehicleInfo[svehicleid][VEHICLE_ID],health);
            else
                health=VehicleInfo[svehicleid][HEALTH];
            return 1;
        }
    }
    return 0;
}

forward SetStreamVehicleHealth(svehicleid,Float:health);
public SetStreamVehicleHealth(svehicleid,Float:health)
{
    if(svehicleid>=0 && svehicleid<MAX_STREAM_VEHICLES)
    {
        if(VehicleInfo[svehicleid][CREATED])
        {
            if(VehicleInfo[svehicleid][VEHICLE_ID])
                SetVehicleHealth(VehicleInfo[svehicleid][VEHICLE_ID],health);
            VehicleInfo[svehicleid][HEALTH]=health;
            return 1;
        }
    }
    return 0;
}

forward AddStreamVehicleComponent(svehicleid,componentid);
public AddStreamVehicleComponent(svehicleid,componentid)
{
    if(svehicleid>=0 && svehicleid<MAX_STREAM_VEHICLES)
    {
        if(VehicleInfo[svehicleid][CREATED])
        {
            for(new i=0;i<MAX_COMPONENTS;i++)
            {
                if(!VehicleInfo[svehicleid][COMPONENTS][i])
                {
                    if(VehicleInfo[svehicleid][VEHICLE_ID])
                        AddVehicleComponent(VehicleInfo[svehicleid][VEHICLE_ID],componentid);
                    VehicleInfo[svehicleid][COMPONENTS][i]=componentid;
                    return 1;
                }
            }
        }
    }
    return 0;
}

forward RemoveStreamVehicleComponent(svehicleid,componentid);
public RemoveStreamVehicleComponent(svehicleid,componentid)
{
    if(svehicleid>=0 && svehicleid<MAX_STREAM_VEHICLES)
    {
        if(VehicleInfo[svehicleid][CREATED])
        {
            for(new i=0;i<MAX_COMPONENTS;i++)
            {
                if(VehicleInfo[svehicleid][COMPONENTS][i]==componentid)
                {
                    if(VehicleInfo[svehicleid][VEHICLE_ID])
                        RemoveVehicleComponent(VehicleInfo[svehicleid][VEHICLE_ID],componentid);
                    VehicleInfo[svehicleid][COMPONENTS][i]=0;
                    return 1;
                }
            }
        }
    }
    return 0;
}

forward GetStreamVehicleModel(svehicleid);
public GetStreamVehicleModel(svehicleid)
{
    if(svehicleid>=0 && svehicleid<MAX_STREAM_VEHICLES)
        if(VehicleInfo[svehicleid][CREATED])
            return VehicleInfo[svehicleid][MODEL];
    return 0;
}

forward GetVehicleStreamID(vehicleid);
public GetVehicleStreamID(vehicleid)
{
    return VehicleStreamID[vehicleid];
}

forward GetStreamVehicleVehicleID(svehicleid);
public GetStreamVehicleVehicleID(svehicleid)
{
    if(svehicleid>=0 && svehicleid<MAX_STREAM_VEHICLES)
        if(VehicleInfo[svehicleid][CREATED])
            return VehicleInfo[svehicleid][VEHICLE_ID];
    return 0;
}

forward GetPlayerStreamVehicleID(playerid);
public GetPlayerStreamVehicleID(playerid)
{
    if(IsPlayerInAnyVehicle(playerid))
        return VehicleStreamID[GetPlayerVehicleID(playerid)];
    return INVALID_STREAM_ID;
}

forward ChangeStreamVehicleColor(svehicleid,color1,color2);
public ChangeStreamVehicleColor(svehicleid,color1,color2)
{
    if(svehicleid>=0 && svehicleid<MAX_STREAM_VEHICLES)
    {
        if(VehicleInfo[svehicleid][CREATED])
        {
            if(VehicleInfo[svehicleid][VEHICLE_ID])
                ChangeVehicleColor(VehicleInfo[svehicleid][VEHICLE_ID],color1,color2);
            VehicleInfo[svehicleid][CURRENT_COLORS][0]=color1;
            VehicleInfo[svehicleid][CURRENT_COLORS][1]=color2;
            return 1;
        }
    }
    return 0;
}

forward ChangeStreamVehiclePaintjob(svehicleid,paintjobid);
public ChangeStreamVehiclePaintjob(svehicleid,paintjobid)
{
    if(svehicleid>=0 && svehicleid<MAX_STREAM_VEHICLES)
    {
        if(VehicleInfo[svehicleid][CREATED])
        {
            if(VehicleInfo[svehicleid][VEHICLE_ID])
                ChangeVehiclePaintjob(VehicleInfo[svehicleid][VEHICLE_ID],paintjobid);
            VehicleInfo[svehicleid][PAINTJOB]=paintjobid;
            return 1;
        }
    }
    return 0;
}

forward GetStreamVehiclePos(svehicleid, &Float:x, &Float:y, &Float:z);
public GetStreamVehiclePos(svehicleid, &Float:x, &Float:y, &Float:z)
{
    if(svehicleid>=0 && svehicleid<MAX_STREAM_VEHICLES)
    {
        if(VehicleInfo[svehicleid][CREATED])
        {
            if(VehicleInfo[svehicleid][VEHICLE_ID])
                GetVehiclePos(VehicleInfo[svehicleid][VEHICLE_ID],x,y,z);
            else
            {
                x=VehicleInfo[svehicleid][CURRENT_POS][0];
                y=VehicleInfo[svehicleid][CURRENT_POS][1];
                z=VehicleInfo[svehicleid][CURRENT_POS][2];
            }
            return 1;
        }
    }
    return 0;
}

forward GetStreamVehicleZAngle(svehicleid, &Float:z_angle);
public GetStreamVehicleZAngle(svehicleid, &Float:z_angle)
{
    if(svehicleid>=0 && svehicleid<MAX_STREAM_VEHICLES)
    {
        if(VehicleInfo[svehicleid][CREATED])
        {
            z_angle=VehicleInfo[svehicleid][CURRENT_POS][3];
            return 1;
        }
    }
    return 0;
}

forward SetStreamVehiclePos(svehicleid, Float:x, Float:y, Float:z);
public SetStreamVehiclePos(svehicleid, Float:x, Float:y, Float:z)
{
    if(svehicleid>=0 && svehicleid<MAX_STREAM_VEHICLES)
    {
        if(VehicleInfo[svehicleid][CREATED])
        {
            if(VehicleInfo[svehicleid][VEHICLE_ID])
            {
                if(IsAnyPlayerInVehicle(VehicleInfo[svehicleid][VEHICLE_ID]))
                    SetVehiclePos(VehicleInfo[svehicleid][VEHICLE_ID],x,y,z);
                else
                {
                    GetVehicleHealth(VehicleInfo[svehicleid][VEHICLE_ID],VehicleInfo[svehicleid][HEALTH]);
                    DestroyVehicle(VehicleInfo[svehicleid][VEHICLE_ID]);
                    VehicleStreamID[VehicleInfo[svehicleid][VEHICLE_ID]]=INVALID_STREAM_ID;
                    VehicleInfo[svehicleid][VEHICLE_ID]=0;
                    VehicleCount--;
                }
            }
            VehicleInfo[svehicleid][CURRENT_POS][0]=x;
            VehicleInfo[svehicleid][CURRENT_POS][1]=y;
            VehicleInfo[svehicleid][CURRENT_POS][2]=z;
            return 1;
        }
    }
    return 0;
}

forward SetStreamVehicleZAngle(svehicleid, Float:z_angle);
public SetStreamVehicleZAngle(svehicleid, Float:z_angle)
{
    if(svehicleid>=0 && svehicleid<MAX_STREAM_VEHICLES)
    {
        if(VehicleInfo[svehicleid][CREATED])
        {
            if(VehicleInfo[svehicleid][VEHICLE_ID])
                SetVehicleZAngle(VehicleInfo[svehicleid][VEHICLE_ID],z_angle);
            VehicleInfo[svehicleid][CURRENT_POS][3]=z_angle;
            return 1;
        }
    }
    return 0;
}

forward PutPlayerInStreamVehicle(playerid, svehicleid, seatid);
public PutPlayerInStreamVehicle(playerid, svehicleid, seatid)
{
    if(svehicleid>=0 && svehicleid<MAX_STREAM_VEHICLES)
    {
        if(VehicleInfo[svehicleid][CREATED])
        {
            if(VehicleInfo[svehicleid][VEHICLE_ID])
                PutPlayerInVehicle(playerid,VehicleInfo[svehicleid][VEHICLE_ID],seatid);
            else
            {
                new vehicleid=LoadVehicle(svehicleid);
                if(vehicleid)
                {
                    PutPlayerInVehicle(playerid,vehicleid,seatid);
                    return 1;
                }
            }
        }
    }
    return 0;
}

forward SetStreamVehicleParamsForPlayer(svehicleid,playerid,objective,doorslocked);
public SetStreamVehicleParamsForPlayer(svehicleid,playerid,objective,doorslocked)
{
    if(svehicleid>=0 && svehicleid<MAX_STREAM_VEHICLES)
    {
        if(VehicleInfo[svehicleid][CREATED])
        {
            VehicleParams[svehicleid][0][playerid]=objective;
            VehicleParams[svehicleid][1][playerid]=doorslocked;
            if(VehicleInfo[svehicleid][VEHICLE_ID])
                SetVehicleParamsForPlayer(VehicleInfo[svehicleid][VEHICLE_ID],playerid,objective,doorslocked);
            return 1;
        }
    }
    return 0;
}

forward SetStreamVehicleNumberPlate(svehicleid, numberplate[]);
public SetStreamVehicleNumberPlate(svehicleid, numberplate[])
{
    if(svehicleid>=0 && svehicleid<MAX_STREAM_VEHICLES)
    {
        if(VehicleInfo[svehicleid][CREATED])
        {
            format(VehicleInfo[svehicleid][NUMBERPLATE],N_SIZE,numberplate);
            if(VehicleInfo[svehicleid][VEHICLE_ID] && strlen(numberplate))
                SetVehicleNumberPlate(VehicleInfo[svehicleid][VEHICLE_ID],VehicleInfo[svehicleid][NUMBERPLATE]);
            return 1;
        }
    }
    return 0;
}

forward GetStreamVehicleColors(svehicleid,&color1,&color2);
public GetStreamVehicleColors(svehicleid,&color1,&color2)
{
    if(svehicleid>=0 && svehicleid<MAX_STREAM_VEHICLES)
    {
        if(VehicleInfo[svehicleid][CREATED])
        {
            color1=VehicleInfo[svehicleid][CURRENT_COLORS][0];
            color2=VehicleInfo[svehicleid][CURRENT_COLORS][1];
            return 1;
        }
    }
    return 0;
}

forward GetStreamVehiclePaintjob(svehicleid);
public GetStreamVehiclePaintjob(svehicleid)
{
    if(svehicleid>=0 && svehicleid<MAX_STREAM_VEHICLES)
        if(VehicleInfo[svehicleid][CREATED])
            return VehicleInfo[svehicleid][PAINTJOB];
    return 0;
}

DOV_OnGameModeInit()
{
    for(new i=0;i<700;i++)
        VehicleStreamID[i]=INVALID_STREAM_ID;
    SetTimer("StreamVehicles",1000,true);
}

#undef IsPosInDistance
Reply
#4

Utilize um streamer de Veiculos,
assim comparando os veiculos as posiзхes de cada veнculo.

acho que a sa-mp deveria ter uma funзгo assim:
pawn Код:
AllowCleoInSever(false);  //  Nгo Permitiria a entrada de players com mod cleo.
Seria uma boa opзгo.
Reply
#5

Nenhuma das dicas funcionou, + alguйm sabe alguma coisa a respeito disso ?
Reply
#6

Nгo sei bem se й isto que vocк quer mas toma ai

http://forum.sa-mp.com/showthread.ph...hlight=JernejL
Reply
#7

Eu jб vi um script desses pelo Leong. Vou dar um search e eu dou um heads up aqui se eu achar.
Reply
#8

Achei =)
http://forum.sa-mp.com/showthread.ph...light=cleo+mod
Reply
#9

pawn Код:
dcmd_rprox(playerid, params[])
    {
    #pragma unused params
    if(Player[playerid][pAdmin] < 2)
        return SendClientMessage(playerid, COLOR_RED, "[Erro] Vocк nгo tem permissгo para usar este comando!");
            for(new i; i != MAX_VEHICLES; i++)
            {
                if(CheckPlayerDistanceToVehicle(30.0, playerid, i))
                {
                SetVehicleToRespawn(i);
                }
            }
        format(thestring, sizeof(thestring), "[Administrador] Os Veiculos das proximidades de %s foram resetados", Player[playerid][pName]);
        ABroadCast(COLOR_NOTICIA, thestring, 1);
        return 1;
    }
Reply
#10

Quote:
Originally Posted by Stewie`
Посмотреть сообщение
era esse mesmo codigo que eu estava procurando '-'
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)