• 0
Sign in to follow this  
Powerstriker46

Ai deals no Damage VS Player Vehicles

Question

Hi,

I hope someone has an Idea what can be the reason for this problem.

Problem description:

If you purchase a Vehicle on the Trader and you try to make mission with it an one AI hit's you with an RPG  your Vehicle will explode. (Depends on the vehicle for exampe you buy a Strider or hunter...) If you drive over an AI will the tires  be damaged and you have to repair your vehicle.

BUT

If you wait 1 Restart with your vehicle, the Vehicle will get something like an god mode VS AI. I drove with an f.e. marrid into a ZCP with 100 bots all shoting there rockets but nothing happens with the vehicle. But if you drive on a Wall your front tires are destroyed xD.

Same problems with DMS and Vemf missions. No AI can deal any damage. So the players can simple drive over all AI's or drive into mission and clear them easy because the AT mines dosent have any effects, too. An this fucks me off... And I have no idea what are the problem can be.

BUT if you take a rocket launcher and shot on your vehicle it will explode without problems (testet with RPG-42 Alamut on marrid) (Vehicle was empty)

but this

Quote

 No AI can deal any damage.

 

is not 100%  true it feels like that the vehicle armor get 100x of the normal value. So the ai needs 50-60 to get the marrid down (or more). I try the "explode" button of infistar at one test player wich was in his marrid. After the explode the vehicle has 69% healh an the player was still alive. Only the tires of the Vehicle was destroyed.

If i doing the same with an fresh purchased Vehicle, the Vehicle will explode instant if I using explode from infistar. I must say thats really insane and makes not sense.

 

Server Mods/ Scripts

So I dont think that the reason for this are mods like CBA or CUP wich I'm using.

But futher i use the BloodLust mod wich affects the AI and some eventhandlers, and I use a script/overwrite that give vehicles God mode after restart until a player is unlocking them (so that no one can random destroy other player vehicles because he is retarded)

therefor I'm using

_vehicleObject allowDamage true;  and _vehicleObject allowDamage false;

see below

Spoiler

/**
 * ExileServer_object_vehicle_database_load
 *
 * Exile Mod
 * www.exilemod.com
 * © 2015 Exile Mod Team
 *
 * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. 
 * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
 */
 
private["_vehicleID", "_data", "_position", "_vectorDirection", "_vectorUp", "_pinCode", "_texture", "_vehicleObject", "_lock", "_unlockInSafeZonesAfterRestart", "_isLocked", "_hitpoints", "_cargoContainers"];
_vehicleID = _this;
_data = format ["loadVehicle:%1", _vehicleID] call ExileServer_system_database_query_selectSingle;
_position = [_data select 8, _data select 9, _data select 10];
_vectorDirection = [_data select 11, _data select 12, _data select 13];
_vectorUp = [_data select 14, _data select 15, _data select 16];
_pinCode = _data select 20;
_texture = _data select 21;
try 
{
	if !((vectorMagnitude _vectorUp) isEqualTo 1) then 
	{
		throw true;
	};
	if ((_vectorUp select 0) > 0.95) then 
	{
		throw true;
	};
	if ((_vectorUp select 1) > 0.95) then 
	{
		throw true;
	};
	if ((_vectorUp select 2) isEqualTo 0) then 
	{
		throw true;
	};
}
catch
{
	_vectorUp = [0, 0, 1];
};
_vehicleObject = [(_data select 1), _position, [_vectorDirection, _vectorUp], true,_pinCode] call ExileServer_object_vehicle_createPersistentVehicle;
_vehicleObject setVariable ["ExileDatabaseID", _vehicleID];
_vehicleObject setVariable ["ExileOwnerUID", (_data select 3)];
_vehicleObject setVariable ["ExileMoney", (_data select 23), true];
_lock = (_data select 4);
_unlockInSafeZonesAfterRestart = (getNumber (configFile >> "CfgSettings" >> "VehicleSpawn" >> "unlockInSafeZonesAfterRestart")) isEqualTo 1;
_isLocked = (_lock isEqualTo -1);
if (_isLocked) then 
{
	if (_unlockInSafeZonesAfterRestart) then 
	{
		if (_position call ExileClient_util_world_isInTraderZone) then 
		{
			_isLocked = false;
		};
	};
};
if (_isLocked) then
{
	_vehicleObject setVariable ["ExileIsLocked", -1];
	_vehicleObject lock 2;
	_vehicleObject enableRopeAttach false;
	// R3F tow/lift fix for locked vehicles
	// Start
	_vehicleObject setVariable ["R3F_LOG_disabled", true, true];
	// End
	_vehicleObject allowDamage false;   		// added :) 
/*
// Vehicle Protection System
	// Start Vehicle Invincible in Authorized Terrority After Restart
	_vehicleOwner = _vehicleObject getVariable "ExileOwnerUID";   //get vehicle owner ID
	_vehicleInTerritory = _position call ExileClient_util_world_getTerritoryAtPosition;  //check if the vehicle is in a territory
	if !(isNull _vehicleInTerritory) then   //if some territory ID is returned
	{
		if ((_vehicleOwner) in (_vehicleInTerritory getVariable ["ExileTerritoryBuildRights", []])) then  //check if the vehicle owner has build rights
		{
			_vehicleObject allowDamage false;  //vehicle owner has build rights, vehicle is invinicible
		};
	};
	// End Vehicle Invincible in Authorized Terrority After Restart
}*/
	
}	
else
{
	_vehicleObject setVariable ["ExileIsLocked", 0];
	_vehicleObject lock 0;
	_vehicleObject enableRopeAttach true;
	_vehicleObject allowDamage true;   		// added :)
// R3F tow/lift fix for locked vehicles
	// Start
	_vehicleObject setVariable ["R3F_LOG_disabled", false, true];
	// End
};
_vehicleObject setFuel (_data select 5);
_vehicleObject setDamage (_data select 6);
_hitpoints = _data select 7;
if ((typeName _hitpoints) isEqualTo "ARRAY") then 
{
	{
		_vehicleObject setHitPointDamage [_x select 0, _x select 1];
	}
	forEach _hitpoints;
};
[_vehicleObject, (_data select 17)] call ExileServer_util_fill_fillItems;
[_vehicleObject, (_data select 18)] call ExileServer_util_fill_fillMagazines;
[_vehicleObject, (_data select 19)] call ExileServer_util_fill_fillWeapons;
_cargoContainers = format ["loadVehicleContainer:%1", _vehicleID] call ExileServer_system_database_query_selectSingle;
if ((typeName _cargoContainers) isEqualTo "ARRAY") then 
{
	if !(_cargoContainers isEqualTo []) then
	{
		[_vehicleObject, (_cargoContainers select 0)] call ExileServer_util_fill_fillContainers;
	};
};
if !(_texture isEqualTo "") then
{
	{
		_vehicleObject setObjectTextureGlobal [_forEachIndex, _texture select _forEachIndex];
	}
	forEach _texture;
};
_vehicleObject enableSimulationGlobal false;
if (getNumber(missionConfigFile >> "CfgSimulation" >> "enableDynamicSimulation") isEqualTo 1) then 
{
	_vehicleObject enableDynamicSimulation true;
}
else
{
	_vehicleObject call ExileServer_system_simulationMonitor_addVehicle;
};
if (_vehicleObject call ExileClient_util_world_isInTraderZone) then 
{
	_vehicleObject allowDamage false;
};
_vehicleObject

 

 

Share this post


Link to post
Share on other sites

0 answers to this question

There have been no answers to this question yet

Advertisement

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.