PDA

View Full Version : prop_vehicle_driveable issue


rodrigo286
10-31-2014, 17:26
When I give spawn the car can only drive alone to force the player into the car.

And if trying to get out is not possible.

I can exit of car using some line of NataliaAF code, but the problem is if KILL or REMOVE car entity, server crash.

I found several people with the same problem, is there any way to fix this?

#include <sourcemod>
#include <sdktools>

#define EF_NODRAW 32
#define COLLISION_GROUP_PLAYER 5
#define HIDEHUD_WEAPONSELECTION 1
#define HIDEHUD_CROSSHAIR 256
#define HIDEHUD_INVEHICLE 1024

public OnPluginStart()
{
RegAdminCmd("sm_car", Command_CAR, ADMFLAG_ROOT);
RegAdminCmd("sm_car2", Command_CAR2, ADMFLAG_ROOT);
}

public OnMapStart()
{
PrecacheModel("models/buggy.mdl");
}

public Action:Command_CAR(client, args)
{
new String:name[255];
GetClientName(client, name, sizeof(name));

decl Ent;
Ent = CreateEntityByName("prop_vehicle_driveable");

DispatchKeyValue(Ent, "vehiclescript", "scripts/vehicles/ep1.txt");
DispatchKeyValue(Ent, "model", "models/buggy.mdl");

DispatchKeyValueFloat (Ent, "MaxPitch", 360.00);
DispatchKeyValueFloat (Ent, "MinPitch", -360.00);
DispatchKeyValueFloat (Ent, "MaxYaw", 90.00);
DispatchKeyValue(Ent, "solid","6");
DispatchKeyValue(Ent, "actionScale","1");
DispatchKeyValue(Ent, "EnableGun","0");
DispatchKeyValue(Ent, "ignorenormals","0");
DispatchKeyValue(Ent, "fadescale","1");
DispatchKeyValue(Ent, "fademindist","-1");
DispatchKeyValue(Ent, "VehicleLocked","0");
DispatchKeyValue(Ent, "screenspacefade","0");
DispatchKeyValue(Ent, "spawnflags", "256" );
DispatchKeyValue(Ent, "setbodygroup", "511" );
SetEntProp(Ent, Prop_Send, "m_nSolidType", 2);
DispatchSpawn(Ent);
ActivateEntity(Ent);

DispatchSpawn(Ent);

ActivateEntity(Ent);

decl Float:FurnitureOrigin[3];
decl Float:ClientOrigin[3];
decl Float:EyeAngles[3];
GetClientEyeAngles(client, EyeAngles);
GetClientAbsOrigin(client, ClientOrigin);

FurnitureOrigin[0] = (ClientOrigin[0] + (50 * Cosine(DegToRad(EyeAngles[1]))));
FurnitureOrigin[1] = (ClientOrigin[1] + (50 * Sine(DegToRad(EyeAngles[1]))));
FurnitureOrigin[2] = (ClientOrigin[2]);


TeleportEntity(Ent, FurnitureOrigin, NULL_VECTOR, NULL_VECTOR);

SetEntProp(Ent, Prop_Data, "m_nNextThinkTick", -1);

SetEntPropEnt(client, Prop_Send, "m_hObserverTarget", 0);
SetEntProp(client, Prop_Send, "m_iObserverMode", 1);

// force players in.
if (client != 0)
{
AcceptEntityInput(Ent, "use", client);
}
}

public Action:Command_CAR2(client, args)
{
LeaveVehicle(client);
}

LeaveVehicle(client)
{
new vehicle = GetEntPropEnt(client, Prop_Send, "m_hVehicle");
if (IsValidEntity(vehicle))
{
AcceptEntityInput(client, "SetParent");
SetVariantString("vehicle_driver_exit");
AcceptEntityInput(client, "SetParentAttachment");

new Float:ExitAng[3];
GetEntPropVector(vehicle, Prop_Data, "m_angRotation", ExitAng);
ExitAng[0] = 0.0;
ExitAng[1] += 90.0;
ExitAng[2] = 0.0;


AcceptEntityInput(client, "ClearParent");

SetEntPropEnt(client, Prop_Send, "m_hVehicle", -1);

SetEntPropEnt(vehicle, Prop_Send, "m_hPlayer", -1);

SetEntityMoveType(client, MOVETYPE_WALK);

SetEntProp(client, Prop_Send, "m_CollisionGroup", COLLISION_GROUP_PLAYER);

new hud = GetEntProp(client, Prop_Send, "m_iHideHUD");
hud &= ~HIDEHUD_WEAPONSELECTION;
hud &= ~HIDEHUD_CROSSHAIR;
hud &= ~HIDEHUD_INVEHICLE;
SetEntProp(client, Prop_Send, "m_iHideHUD", hud);

new EntEffects = GetEntProp(client, Prop_Send, "m_fEffects");
EntEffects &= ~EF_NODRAW;
SetEntProp(client, Prop_Send, "m_fEffects", EntEffects);

SetEntProp(vehicle, Prop_Send, "m_nSpeed", 0);
SetEntPropFloat(vehicle, Prop_Send, "m_flThrottle", 0.0);
AcceptEntityInput(vehicle, "TurnOff");

SetEntPropFloat(vehicle, Prop_Data, "m_flTurnOffKeepUpright", 0.0);

SetEntProp(vehicle, Prop_Send, "m_iTeamNum", 0);

TeleportEntity(client, NULL_VECTOR, ExitAng, NULL_VECTOR);
SetClientViewEntity(client, client);
}

new index = -1;
while ((index = FindEntityByClassname(index, "prop_vehicle_driveable")) != -1)
RemoveEdict(index);

new plyr_gun2 = GetPlayerWeaponSlot(client, 2);
if (IsValidEntity(plyr_gun2))
{
RemovePlayerItem(client, plyr_gun2);
RemoveEdict(plyr_gun2);
GivePlayerItem(client, "weapon_knife", 0);
}
SetClientViewEntity(client, client);
}

Regards.

rodrigo286
11-07-2014, 09:25
Anyone have a solution?

I searched several places and nothing works.

Please does anyone know how you can resolve?

I tried to contact a server that has this kind of plugin without success.

Thanks.

blodia
11-07-2014, 16:14
natalias code was just copied from an earlier version of my vehiclemod (https://forums.alliedmods.net/showthread.php?t=135027). if you remove a vehicle entity while a players is inside it will crash the server as players are parented to the vehicle and become a part of its hierarchy, so when you remove the vehicle entity you're removing the client entity which is a big no.

rodrigo286
11-07-2014, 17:12
I using the same code of the player leave the car that created the Natalia.

The server crash when deleting the car has something else to do?

Thanks.

friagram
11-08-2014, 06:33
Onentitydestroyed clearparent

rodrigo286
11-08-2014, 08:01
Now my problem is other, the car dont work anymore, i'm using same code if i posted and ep1.txt script.

Thanks.

blodia
11-10-2014, 08:36
maybe it wasn't clear but i posted a link to my plugin so you could try using code from that instead or just use to whole plugin assuming it still works

rodrigo286
11-11-2014, 05:52
I'm use you plugin code, works but now, dont work anymore, Natalia's code also and other code if i found on forum threads.

I dont know, sourcemod update make this?

Thanks.

rodrigo286
11-14-2014, 08:03
Any have a idea how this dont work anymore?

Thanks.

blodia
11-17-2014, 13:06
i gave up on the plugin as game updates kept breaking it and i couldn't get it working on my own pc even though others could, did it stop working after a game update or sourcemod update? what exactly is broken? just getting out of vehicles?

rodrigo286
11-23-2014, 17:38
Until recently was broken at the exit of the vehicle, but it was possible to fix this, and now you can not get in the vehicle.

Thanks.