vehicles in water
#1

well players in my server pushes vehicles into the water and then they won't respawn..
So my question, how can I fix this?
Reply
#2

With GetVehiclePos, if Z is equal or less than 0, you set it to respawn. Obviusly you will have to check for certain areas, like for example the quarry, that is very deep and Z goes to -45 aprox, so make an exeption to that area.
Reply
#3

hmm, isn't there a more uncomplicated way? :S
Reply
#4

pawn Код:
AddStaticVehicleEx(vehicleid,......,RESPAWNTIME);
https://sampwiki.blast.hk/wiki/AddStaticVehicleEx
Reply
#5

Well, if you think that is too complicated, then! your going to have to deal with it.
Reply
#6

already tried, still the same -> no respawning when pushing into the water.
Reply
#7

If you say so,

under OnVehicleDeath(vehicleid)
{

pawn Код:
SetVehicleToRespawn(vehicleid);
}
Reply
#8

Quote:
Originally Posted by [L3th4l]
Посмотреть сообщение
If you say so,

under OnVehicleDeath(vehicleid)
{

pawn Код:
SetVehicleToRespawn(vehicleid);
}
It's not called OnVehicleDeath, it's only called if the vehicle is occupied.

Quote:
Originally Posted by Ribber
Посмотреть сообщение
hmm, isn't there a more uncomplicated way? :S
There isn't.
Reply
#9

try SA-MP CreateVehicle https://sampwiki.blast.hk/wiki/CreateVehicle
it works for me great... and it respawns after some time
Reply
#10

just respawn all the unoccupied cars every 30mins or so
Reply
#11

what about for RP servers?
Reply
#12

there must be an easier solution...
Isn't it possible that a timer checks for the stand-position for all vehicles every 10 seconds, and the radius is 10 or so, and if this vehicle is without a driver and the radius is more than 10 it will be respawned..

or a respawn command for the closest vehicles would be also good (that admins can respawn them)..
Reply
#13

pawn Код:
/*    ================================
      ====[FS] And Stocks Made By:====
      =========== Th3Angel ===========
      ================================
      -----Don't remove credits.------
*/

#include <a_samp>

#define CHECK_TIME_SECS 30 //uncomment if you want to use and comment CHECK_TIME_MINS
//#define CHECK_TIME_MINS 1 //uncomment if you want to use and comment CHECK_TIME_SECS

#if defined CHECK_TIME_SECS

public OnFilterScriptInit()
{
    print("\n--------------------------------------");
    print(" Blank Filterscript by your name here");
    print("--------------------------------------\n");
    SetTimer("VehicleInWater", CHECK_TIME_SECS*1000, true);
    return 1;
}

#else

public OnFilterScriptInit()
{
    print("\n--------------------------------------");
    print(" Blank Filterscript by your name here");
    print("--------------------------------------\n");
    SetTimer("VehicleInWater", CHECK_TIME_MINS*60000, true);
    return 1;
}

#endif

public OnFilterScriptExit()
{
    return 1;
}

forward VehicleInWater();
public VehicleInWater()
{
    for(new v = 0; v < MAX_VEHICLES; v++)
    {
        if(IsVehicleInWater(v))
        {
            if(!IsBoat(v))
            {
                SetVehicleToRespawn(v);
            }
        }
    }
}

stock IsVehicleInWater(vehicleid)
{
    new Float:x,Float:y,Float:pz;
    GetVehiclePos(vehicleid, x, y, pz);
    if(IsVehicleInArea(vehicleid, 381.7009, 782.9656, 710.9611, 965.2859)) return 0;
    if(
    (IsVehicleInArea(vehicleid, 2032.1371, 1841.2656, 1703.1653, 1467.1099) && pz <= 9.0484)
    || (IsVehicleInArea(vehicleid, 2109.0725, 2065.8232, 1962.5355, 10.8547) && pz <= 10.0792)
    || (IsVehicleInArea(vehicleid, -492.5810, -1424.7122, 2836.8284, 2001.8235) && pz <= 41.06)
    || (IsVehicleInArea(vehicleid, -2675.1492, -2762.1792, -413.3973, -514.3894) && pz <= 4.24)
    || (IsVehicleInArea(vehicleid, -453.9256, -825.7167, -1869.9600, -2072.8215) && pz <= 5.72)
    || (IsVehicleInArea(vehicleid, 1281.0251, 1202.2368, -2346.7451, -2414.4492) && pz <= 9.3145)
    || (IsVehicleInArea(vehicleid, 2012.6154, 1928.9028, -1178.6207, -1221.4043) && pz <= 18.45)
    || (IsVehicleInArea(vehicleid, 2326.4858, 2295.7471, -1400.2797, -1431.1266) && pz <= 22.615)
    || (IsVehicleInArea(vehicleid, 2550.0454, 2513.7588, 1583.3751, 1553.0753) && pz <= 9.4171)
    || (IsVehicleInArea(vehicleid, 1102.3634, 1087.3705, -663.1653, -682.5446) && pz <= 112.45)
    || (IsVehicleInArea(vehicleid, 1287.7906, 1270.4369, -801.3882, -810.0527) && pz <= 87.123)
    || (pz < 1.5)
    )
    {
        return 1;
    }
    return 0;
}

stock IsVehicleInArea(vehicleid, Float:minx, Float:maxx, Float:miny, Float:maxy)
{
    new Float:x, Float:y, Float:z;
    GetVehiclePos(vehicleid, x, y, z);
    if(x > minx && x < maxx && y > miny && y < maxy) return 1;
    return 0;
}

stock IsBoat(vehicleid)
{
    switch(GetVehicleModel(vehicleid))
    {
        case 472,473,493,595,484,430,453,452,446,454,539:
        return 1;
    }
    return 0;
}
This will respawn all vehicles except for boats and vortex if they are in water.
Vehicles in the Quarry won't respawn.
Please credit me if you use this FS or the stocks.
Reply
#14

Nope thats not the problem, if vehicle have not been used for a while and its pushed in water then it will not respawn automaticly, only manually with command or smth. Probably sa-mp bug or maybe it is made with reason of something.
Reply
#15

How do you use a vehicle in water? :/
That FS does just exactly that...
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)