Jump to content
Gunter Severloh

Modded tanks smoke & burn when destroyed in sp but not mp

Recommended Posts

Hi guys

I have a rented server for arma3, with IFA3 on it, IFA3 for those of you who dont know is Iron front: Liberation 1944 in Arma3.

Situation is the tanks burn and smoke in sp but not on the server.

We have done some tests where we (my realism unit) destroyed modern arma3 tanks which do smoke and burn but with IFA3 the tanks will not, even tho the crew will bail,

and the tracks are destroyed and gone, the tanks themselves will not smoke or burn or just blow up, we are trying to sort out if its a server issue or with how arma3 works in relation to tanks from mods.

 

We also tried the same tests on a dedicated server that one of our guys ran and same issue.

 

All other vehicles we tested will burn and smoke in IFA3 just the tanks are effected, we are thinking it either might be some issue with mp or maybe the difficulty setting with a function on the server

we need to turn off or adjust that effects modded tanks only, we dont know, does anyone have any insight to what could possibly cause this issue?

Share this post


Link to post
Share on other sites

Most probably the IFA devs have unwittingly coded the damage effect on their tanks to be local, eg work only on the machine where the tank is local to

In SP all objects are local to the player

In MP, units and their vehicles which are not part of a group led by a player will be local to the server (Or headless client)

You need to submit a bug report to the IFA devs. The code will need editing

Share this post


Link to post
Share on other sites

I see thanks for the insight, I have contacted the IFA3 devs about it and it may or may not be possible for them to fix as they are not around to often anymore,

so I might take a look it the tanks myself to see whats there, any suggestions of what I might look for?

Share this post


Link to post
Share on other sites

Check for "class eventHandlers" in the config.

 

Post up in here what you find and we can have a look.

Share this post


Link to post
Share on other sites

IFA3 is a combination of mods:

 

@Lib_DLC_1 (USA DLC - adds the American faction to the game)

@IF (this is Iron Front Liberation 1944 game)

@IFA3

@IFA3m

@IFA3SA (all the files in here are from 2014)

 

I think i found the file but not 100% sure heres what i have this is from the file:

lib_core \eventhandlers

lib_core is found in @IF mod folder itself, when you unpbo it, and unrap the config .bin you get a lot of cfg's

call compile preprocessFileLineNumbers "LIB\LIB_tank_scripts\data\scripts\LIB_ADS_init.sqf";

if (isNil "RE") then {[] execVM "\ca\Modules\MP\data\scripts\MPframework.sqf"};

//inf
//_this exec "\lib_scripts_test\GLOBAL_INIT.sqs";
LIB_inf_init_EH = compile preprocessFileLineNumbers "LIB\LIB_misc_infantry\data\scripts\LIB_inf_init_EH.sqf";

LIB_initinf = compile preprocessFileLineNumbers "LIB\LIB_core\EventHandlers\initinf.sqf";

LIB_inf_fired_EH = compile preprocessFileLineNumbers "LIB\LIB_misc_infantry\data\scripts\LIB_inf_fired_EH.sqf";
LIB_remove_eqipments = compile preprocessFileLineNumbers "LIB\LIB_misc_infantry\data\scripts\LIB_remove_eqipments.sqf";
LIB_inf_handleDamage_EH = compile preprocessFileLineNumbers "LIB\LIB_misc_infantry\data\scripts\LIB_inf_handleDamage_EH.sqf";
LIB_grenade = compile preprocessFileLineNumbers "LIB\LIB_misc_infantry\data\scripts\LIB_grenade.sqf";
LIB_grenade_fragments = compile preprocessFileLineNumbers "LIB\LIB_misc_infantry\data\scripts\LIB_grenade_fragments.sqf";

call compile preprocessFileLineNumbers "\LIB\LIB_misc_infantry\data\scripts\PublicVariableEventHandlerSetup.sqf";

with uiNamespace do
{
	LIB_Display_Interface = compile preprocessFileLineNumbers "\LIB\LIB_tank_UI\LIB_Display_Interface.sqf";
	LIB_Weapon_Resting = compile preprocessFileLineNumbers "\LIB\LIB_misc_infantry\data\scripts\LIB_Weapon_Resting.sqf";
	LIB_StuG_III_G_Init = compile preprocessFileLineNumbers "\LIB\LIB_StuG_III_G\data\scripts\init.sqf";
	LIB_ZIS3_Init = compile preprocessFileLineNumbers "\LIB\LIB_ZIS3\data\scripts\init.sqf";
	LIB_Pak40_Init = compile preprocessFileLineNumbers "\LIB\LIB_Pak40\data\scripts\init.sqf";
};

LIB_mines_init = compile preprocessFileLineNumbers "LIB\LIB_mines\scripts\spawn\LIB_mines_init.sqf";
LIB_mines_fired = compile preprocessFileLineNumbers "LIB\LIB_mines\scripts\spawn\LIB_fired.sqf";
LIB_hasLIB_W = compile preprocessFileLineNumbers "LIB\LIB_mines\scripts\spawn\LIB_hasLIB_W.sqf";

//tanks
EH_LIB_tank_init = compile preprocessFileLineNumbers "LIB\LIB_tank_scripts\data\scripts\EH_LIB_tank_init.sqf";

//arty
//EH_LIB_arty_handleDamage = compile preprocessFileLineNumbers "LIB\LIB_tank_scripts\data\scripts\EH_LIB_arty_handleDamage.sqf";
LIB_ZIS3_INIT = compile preprocessFileLineNumbers "LIB\LIB_ARTY_SCRIPTS\ZIS3\INIT.sqf";
LIB_ARTY_MOVING = compile preprocessFileLineNumbers "\LIB\LIB_ARTY_SCRIPTS\Towing\LIB_ARTY_MOVING.sqf";

//boats
if (isClass(configFile/"CfgPatches"/"LIB_LCVP")) then
{
	LIB_LCVP_Fast_Landing = compile preprocessFileLineNumbers "LIB\LIB_DLC_1\LIB_LCVP\data\scripts\LIB_LCVP_Fast_Landing.sqf";
	LIB_LCVP_Add_Backpack_Cargo = compile preprocessFileLineNumbers "LIB\LIB_DLC_1\LIB_LCVP\data\scripts\LIB_LCVP_Add_Backpack_Cargo.sqf";
};

//planes
LIB_Air_Multiguns = compile preprocessFileLineNumbers "LIB\LIB_air\data\scripts\lib_air_multiguns.sqf";

//mines
LIB_reaction_PP = compile preprocessFileLineNumbers "\LIB\LIB_mines\scripts\LIB_reaction_PP.sqf";
LIB_reaction_Rast = compile preprocessFileLineNumbers "\LIB\LIB_mines\scripts\LIB_reaction_Rast.sqf";
LIB_reaction_AT = compile preprocessFileLineNumbers "\LIB\LIB_mines\scripts\LIB_reaction_AT.sqf";
LIB_reaction_Mines = compile preprocessFileLineNumbers "\LIB\LIB_mines\scripts\LIB_reaction_Mines.sqf";
LIB_detonate = compile preprocessFileLineNumbers "\LIB\LIB_mines\scripts\LIB_detonate.sqf";
LIB_tracks = compile preprocessFileLineNumbers "\LIB\LIB_mines\scripts\LIB_tracks.sqf";
LIB_EH = compile preprocessFileLineNumbers "LIB\LIB_MINES\scripts\LIB_EH.sqf";

Share this post


Link to post
Share on other sites

In Arma 3's default tanks, they do the burning effects with a killedEH in the eventhandlers, like this one for "B_MBT_01_cannon_F":

class EventHandlers : DefaultEventhandlers {
    fired = "_this call (uinamespace getvariable 'BIS_fnc_effectFired');";
    init = "";
    killed = "_this call (uinamespace getvariable 'BIS_fnc_effectKilled');";
};

I couldn't see a function defined in that list for killed tanks so I would assume the effects are done some other way,

 

You could probably mod in a killed EH and test it (not sure if it would work properly though but it's worth a try).

 

As a quick test, put one of the tanks down in the editor and put this in it's init line, then test the mission in MP and see if it burns when you blow it up:

this addEventHandler ["killed", {_this call (uinamespace getvariable "BIS_fnc_effectKilled")}];

Share this post


Link to post
Share on other sites

Where is that found for the B_MBT_01_cannon_F as maybe i can compare notes in terms of directory.

Share this post


Link to post
Share on other sites

we tested out the init line and didnt do anything.. the thing is that on the server the halftrack and truck will be on fire and smoking when destroyed but the tanks wont and this is the t-34/76 config.cpp file 

 

// config.bin - 20:06:53 02/20/16, generated in 0.11 seconds
// Generated by unRap v1.06 by Kegetys
// Separate rootclasses: Enabled, Automatic comments: Enabled
 
#define private 0
#define protected 1
#define public 2
 
#define true 1
#define false 0
 
#define TEast 0
#define TWest 1
#define TGuerrila 2
#define TCivilian 3
#define TSideUnknown 4
#define TEnemy 5
#define TFriendly 6
#define TLogic 7
 
#define VSoft 0
#define VArmor 1
#define VAir 2
 
#include "CfgPatches.hpp"
#include "CfgMagazines.hpp"
#include "cfgWeapons.hpp"
#include "CfgAmmo.hpp"
#include "CfgMovesBasic.hpp"
#include "CfgMovesMaleSdr.hpp"
#include "LIB_WeaponParameters.hpp"
#include "LIB_MagazineParameters.hpp"
#include "LIB_ShellParameters.hpp"
#include "LIB_TurretsConfig.hpp"
#include "LIB_ModelConfig.hpp"
#include "cfgExtended_HUD.hpp"<---?
class WeaponFireGun; // External class reference
class WeaponCloudsGun; // External class reference
class WeaponFireMGun; // External class reference
class WeaponCloudsMGun; // External class reference
#include "CfgVehicles.hpp"
#include "CfgGroups.hpp"
 
i marked in red dont know what it does or is

Share this post


Link to post
Share on other sites

lib_core\eventhandlers\config.cpp

	class LIB_tank_base: Tank
	{
		class EventHandlers
		{
			init = "if(isNil'SLX_XEH_MACHINE')then{call compile preProcessFileLineNumbers '\x\cba\addons\xeh\init_pre.sqf'};_this call SLX_XEH_EH_Init";
			fired = "_this call SLX_XEH_EH_Fired";
			animChanged = "_this call SLX_XEH_EH_AnimChanged";
			animStateChanged = "_this call SLX_XEH_EH_AnimStateChanged";
			animDone = "_this call SLX_XEH_EH_AnimDone";
			dammaged = "_this call SLX_XEH_EH_Dammaged";
			engine = "_this call SLX_XEH_EH_Engine";
			firedNear = "_this call SLX_XEH_EH_FiredNear";
			fuel = "_this call SLX_XEH_EH_Fuel";
			gear = "_this call SLX_XEH_EH_Gear";
			getIn = "_this call SLX_XEH_EH_GetIn";
			getOut = "_this call SLX_XEH_EH_GetOut";
			hit = "_this call SLX_XEH_EH_Hit";
			incomingMissile = "_this call SLX_XEH_EH_IncomingMissile";
			killed = "_this call SLX_XEH_EH_Killed";
			landedTouchDown = "_this call SLX_XEH_EH_LandedTouchDown";
			landedStopped = "_this call SLX_XEH_EH_LandedStopped";
			respawn = "_this call SLX_XEH_EH_Respawn";
		};
	};

CBA? 

 

 

Also from the post above

if (isNil "RE") then {[] execVM "\ca\Modules\MP\data\scripts\MPframework.sqf"};

Are you sure this is from A3 mod?

 

https://community.bistudio.com/wiki/remoteExec

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×