Jump to content
Narines

Add ATMs in traders (Altis)

Recommended Posts

Hi,

 

This script is extremely simple.

 

1 - In '@epochhive/addons' add the following pbo (traderATMs.pbo) :

 

https://dl.dropboxusercontent.com/u/63143678/epoch_scripts/traderATMs.pbo

 

2 - In your 'MPMissions' folder, unpack 'epoch.Altis.pbo'

 

3 - In your unpacked 'epoch.Altis' folder, open init.sqf and add the following at the very top :

if (isServer) then {
    execVM "\q\addons\traderATMs\init.sqf";
};

Note : if there is no init.sqf in the root of your unpacked 'epoch.Altis' folder, just create one.

 

4 - Repack 'epoch.Altis' into 'epoch.Altis.pbo'

 

That's it !

 

**EDIT** Optimized following Kroenen's suggestions

Share this post


Link to post
Share on other sites

Epoch server settings would be changed every patch, so not the best place for these changes.

 

Surely an even better place for it would be creating an atms.sqf inside a custom pbo in @Epochhive\addons\ - I run all my map edits from there, and it seems to work quite well :)

 

Like so;

private ["_objs"];
_objs = [
	["Land_Atm_01_F", [13326.2,14498.5,0],248,[0,0,1],true],
	["Land_Atm_01_F", [6199.3,16847.2,0],56,[0,0,1],true],
	["Land_Atm_01_F", [18468.7,14268.9,0],86,[0,0,1],true]
];
 
{
	private ["_obj"];
	_obj = createVehicle [_x select 0, [0,0,0], [], 0, "CAN_COLLIDE"];
	if (_x select 4) then {
		_obj setDir (_x select 2);
		_obj setPos (_x select 1);
	} else {
		_obj setPosATL (_x select 1);
		_obj setVectorDirAndUp (_x select 3);
	};
} foreach _objs;

Share this post


Link to post
Share on other sites

Surely an even better place for it would be creating an atms.sqf inside a custom pbo in @Epochhive\addons\ - I run all my map edits from there, and it seems to work quite well :)

 

It would be a better place since it wouldn't add to the mission file size.

Thx for the suggestion, I am just starting with arma 3 scripting.

 

**EDIT - I applied your suggestions and changed the installation instructions in initial post. Thanks**

Share this post


Link to post
Share on other sites

BE filter scripts? as my players are getting kicked off

 

If it kicks you players, it is because you didnt call the sqf inside the "if(isServer)then{}" condition.

 

Make sure you put the exact code below on the first line of your init.sqf 

 

 **NOTE - I changed the installation method so make sure you are using the new method or the following code won't work. Check initial post for installation instructions.**

if (isServer) then {

    execVM "\q\addons\traderATMs\init.sqf";

};

Share this post


Link to post
Share on other sites

you can do same in client side.

Make file atm.sqf and add

private ["_objs"];
_objs = [
	["Land_Atm_02_F",[1111111.1,2222222.1,3333333.1],4444444.1,[[-0.998458,0.0555049,0],[0,0,1]],false]
//                1111111-X cords 222422-Y cords 333333-Z cords  4444444-direction
];

{
	private ["_obj"];
	_obj = createVehicle [_x select 0, [0,0,0], [], 0, "CAN_COLLIDE"];
	if (_x select 4) then {
		_obj setDir (_x select 2);
		_obj setPos (_x select 1);
	} else {
		_obj setPosATL (_x select 1);
		_obj setVectorDirAndUp (_x select 3);
	};
} foreach _objs;

run it from init.sqf 

 

[] execVM "atm.sqf";

Share this post


Link to post
Share on other sites

Nice it is working. But after putting the code it in the init.sqf inside my missionPBO folder my custom mapmarker will not work anymore.

I start them by using null =[] execVm "SR.sqf"; in the same init.sqf.

Any ideas why this happening to me? Removing the code from you will turn everything back and it is working fine again.

 

greetz

lahlor

Share this post


Link to post
Share on other sites

Nice it is working. But after putting the code it in the init.sqf inside my missionPBO folder my custom mapmarker will not work anymore.

I start them by using null =[] execVm "SR.sqf"; in the same init.sqf.

Any ideas why this happening to me? Removing the code from you will turn everything back and it is working fine again.

 

greetz

lahlor

 

Woah. Guess I was more tired than I thought when I posted this last night.

 

I forgot a ';' at the end of 'if(isServer)then{};'.

 

The code you should put at the top of your init.sqf is the following :

if (isServer) then {

    execVM "\q\addons\traderATMs\init.sqf";

};

Will update the info in my previous posts. Real sorry for that. 

Share this post


Link to post
Share on other sites

Hi I wonder if some one can help me im trying to add this to my server but im getting kicked by BattEye

 

10:36:59 BattlEye Server: Script Log: #0 JamieKG (***********************) - #21 "e 1 "mpmissions\__CUR_MP.Altis\init.sqf"
10:36:59   if (isServer) then {
10:36:59   execVM "\q\addons\traderATMs\init.sqf";
10:36:59   };
10:36:59   
10:36:59   #line 1 "mpmissions\__"
10:36:59 Player JamieKG kicked off by BattlEye: Script Restriction #21
10:36:59 Player JamieKG disconnected.

here is a my init.sqf

if (isServer) then {
    execVM "\q\addons\traderATMs\init.sqf";
};

#include "A3EAI_Client\A3EAI_initclient.sqf";
the other addons I have are
 
 
and
 
 
 
Thanks in advance for any help received
 
JamieKG 
 
 
 
Edit Just to add ive tried just this mod and only your code in init.sqf and I still receive a kick

Share this post


Link to post
Share on other sites

Would !execVM "\q\addons\traderATMs\init.sqf";   be what I enter in the Scripts file?

 

Still new at this and at times I cant even get stuff to work on my server with it all spelled out for me, but I am trying to figure this all out.

 

Also does \q  point to the mission pbo by default? Or could this be a server specific variable I need to change?

Share this post


Link to post
Share on other sites

!="Land_Atm_01_F" on line 1 in createvehicle.txt,

 

In your init.sqf

 

if (isServer) then {
    execVM "\q\addons\traderATMs\init.sqf";
};

 

 

q will point to the server pbo's

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By Brian Soanes
      To unlock vehicles left in your traders over a server restart, open your epoch_server.pbo

      In epoch_server\compile\epoch_vehicle\EPOCH_load_vehicles.sqf
      Find
      if (_allowDamage) then { Just above that, add this
      A3E_SafeZonePosArray = [ [[18451.9,14278.1,0]], //Altis East trader [[13333.5,14494.3,0]], //Altis Central trader [[6192.46,16834,0]] //Altis West trader ]; { if (_vehicle distance (_x select 0) < 200) then { _vehicle lock false; diag_log format["Vehicle %1 left in trader unlocked @ %2", _class, mapGridPosition _vehicle]; }; } forEach A3E_SafeZonePosArray; Pack pbo and you're good to go
    • By tyrant50187
      Im looking for the ability to add Script allowing Eyescan (retina scan) For Safe's and lockboxes, ether or, its something i havent found any script for but have found mentions and seen, any suggestions, links, or scripts are welcome, please Let me know!
    • By Bloodthirsty
      Hey I just need some files for this server, any and all you guys can come up with and think it deserve post that shit in chat rn. I want to see some crazy ideas and additions if you got em :) Lets see what you guys can come up with

    • By randall421
      The loot spawning on my server will respawn or cycle right infrnt of you if you move more than 5m away or if someone else near you moves 5ft away. I check player_spawncheck.sqf and it looks fine. 
      player_spawncheck.sqf 
      //player_spawncheck.sqf private ["_isWreck","_maxControlledZombies","_looted","_zombied","_doNothing","_spawnZedRadius","_serverTime","_age","_nearbyBuildings","_position","_speed","_radius","_maxlocalspawned","_maxWeaponHolders","_currentWeaponHolders","_maxtoCreate","_inVehicle","_isAir","_isLand","_isSea","_Controlledzeddivided","_totalcrew","_nearby","_type","_config","_canSpawn","_dis","_checkLoot","_islocal","_bPos","_zombiesNum"]; _age = -1; //_nearbyBuildings = []; _position = [player] call fnc_getPos; _speed = speed (vehicle player); _radius = 200; //150*0.707; Pointless Processing (106.5) _spawnZedRadius = 20; /* //Tick Time PVDZ_getTickTime = player; publicVariableServer "PVDZ_getTickTime"; */ //Total Counts _maxlocalspawned = round(dayz_spawnZombies); _maxControlledZombies = round(dayz_maxLocalZombies); _maxWeaponHolders = round(dayz_maxMaxWeaponHolders); _currentWeaponHolders = round(dayz_currentWeaponHolders); //Limits (Land,Sea,Air) _inVehicle = (vehicle player != player); /* _isAir = vehicle player iskindof "Air"; _isLand = vehicle player iskindof "Land"; _isSea = vehicle player iskindof "Sea"; if (_isLand) then { } else { }; if (_isAir) then { } else { }; if (_isSea) then { } else { }; */ _doNothing = false; if (_inVehicle) then { _Controlledzeddivided = 0; //exit if too fast if (_speed > 25) exitwith {_doNothing = true;}; //Crew can spawn zeds. _totalcrew = count (crew (vehicle player)); if (_totalcrew > 1) then { _Controlledzeddivided = 2; //Dont allow driver to spawn if we have other crew members. if (player == driver (vehicle player)) exitwith {_doNothing = true;}; } else { _Controlledzeddivided = 4; }; if (_Controlledzeddivided > 0) then { _maxControlledZombies = round(_maxControlledZombies / _Controlledzeddivided); r_player_divideinvehicle = _Controlledzeddivided; }; }; if (_doNothing) exitwith {}; /*if ("ItemMap_Debug" in items player) then { deleteMarkerLocal "MaxZeds"; deleteMarkerLocal "Counter"; deleteMarkerLocal "Loot30"; deleteMarkerLocal "Loot120"; deleteMarkerLocal "Agro80"; _markerstr = createMarkerLocal ["MaxZeds", _position]; _markerstr setMarkerColorLocal "ColorYellow"; _markerstr setMarkerShapeLocal "ELLIPSE"; _markerstr setMarkerBrushLocal "Border"; _markerstr setMarkerSizeLocal [_radius, _radius]; _markerstr1 = createMarkerLocal ["Counter", _position]; _markerstr1 setMarkerColorLocal "ColorRed"; _markerstr1 setMarkerShapeLocal "ELLIPSE"; _markerstr1 setMarkerBrushLocal "Border"; _markerstr1 setMarkerSizeLocal [_radius+100, _radius+100]; _markerstr2 = createMarkerLocal ["Agro80", _position]; _markerstr2 setMarkerColorLocal "ColorRed"; _markerstr2 setMarkerShapeLocal "ELLIPSE"; _markerstr2 setMarkerBrushLocal "Border"; _markerstr2 setMarkerSizeLocal [80, 80]; _markerstr2 = createMarkerLocal ["Loot30", _position]; _markerstr2 setMarkerColorLocal "ColorRed"; _markerstr2 setMarkerShapeLocal "ELLIPSE"; _markerstr2 setMarkerBrushLocal "Border"; _markerstr2 setMarkerSizeLocal [30, 30]; _markerstr3 = createMarkerLocal ["Loot120", _position]; _markerstr3 setMarkerColorLocal "ColorBlue"; _markerstr3 setMarkerShapeLocal "ELLIPSE"; _markerstr3 setMarkerBrushLocal "Border"; _markerstr3 setMarkerSizeLocal [120, 120]; diag_log ("LocalZombies: " +str(dayz_spawnZombies) + "/" +str(dayz_maxLocalZombies)); //Logging diag_log (format["%1 Local.Agents: %2/%3, NearBy.Agents: %8/%9, Global.Agents: %6/%7, W.holders: %10/%11, (radius:%4m %5fps).","SpawnCheck", _maxlocalspawned, _maxControlledZombies, _radius, round diag_fpsmin,dayz_currentGlobalZombies, dayz_maxGlobalZeds, dayz_CurrentNearByZombies, dayz_maxNearByZombies, _currentWeaponHolders,_maxWeaponHolders]); };*/ // nearObjects is faster than nearestObjects when sorting by distance isn't needed // "Building" includes House and all of its child classes (Crashsite, IC_Fireplace1, IC_Tent, etc.) _nearby = _position nearObjects ["Building",_radius]; _maxlocalspawned = _maxlocalspawned max floor(_maxControlledZombies*.8); if (_maxlocalspawned > 0) then { _spawnZedRadius = _spawnZedRadius * 3; }; //Spawn Zeds & loot in buildings { _type = typeOf _x; _config = missionConfigFile >> "CfgLoot" >> "Buildings" >> _type; _canSpawn = isClass (_config); if (_canSpawn) then { _dis = _x distance player; _checkLoot = (count (getArray (_config >> "lootPos"))) > 0; _islocal = _x getVariable ["", false]; // object created locally via TownGenerator. //Make sure wrecks always spawn Zeds _isWreck = _x isKindOf "CrashSite"; //Loot if (getNumber(_config >> "lootChance") > 0) then { if (_currentWeaponHolders < _maxWeaponHolders) then { //Basic loot check if ((_dis < 125) and (_dis > 30) and !_inVehicle and _checkLoot) then { _serverTime = serverTime; _looted = (_x getVariable ["looted",_serverTime]); _age = _serverTime - _looted; //Building refresh rate if (_age == 0 or (_age > getNumber(_config >> "lootRefreshTimer"))) then { _x setVariable ["looted",_serverTime,!_islocal]; _x call building_spawnLoot; if (!(_x in dayz_buildingBubbleMonitor)) then { dayz_buildingBubbleMonitor set [count dayz_buildingBubbleMonitor, _x]; }; //diag_log [ diag_tickTime, "new loot at",_x,"age:", _age, "serverTime:", _serverTime]; }/* else { diag_log [ diag_tickTime, "won't spawn loot at",_x,"age:", _age, "serverTime:", _serverTime]; }*/; }; }; }; //Zeds if (getNumber(_config >> "zombieChance") > 0) then { if (_dis > _spawnZedRadius) then { _serverTime = serverTime; _zombied = (_x getVariable ["zombieSpawn",_serverTime]); _age = _serverTime - _zombied; if ((_age == 0) or (_age > 300)) then { if (!_isWreck) then { if ((dayz_spawnZombies < _maxControlledZombies) and (dayz_CurrentNearByZombies < dayz_maxNearByZombies) and (dayz_currentGlobalZombies < dayz_maxGlobalZeds)) then { _bPos = getPosATL _x; _zombiesNum = count (_bPos nearEntities ["zZombie_Base",(((sizeOf _type) * 2) + 10)]); if (_zombiesNum == 0) then { _x setVariable ["zombieSpawn",_serverTime,!_islocal]; if (!(_x in dayz_buildingBubbleMonitor)) then { //add active zed to var dayz_buildingBubbleMonitor set [count dayz_buildingBubbleMonitor, _x]; }; //start spawn [_x] call building_spawnZombies; }; //diag_log (format["%1 building. %2", __FILE__, _x]); }; } else { _bPos = getPosATL _x; _zombiesNum = count (_bPos nearEntities ["zZombie_Base",(((sizeOf _type) * 2) + 30)]); //Should be a wreck if (_zombiesNum == 0) then { [_x,_isWreck] call building_spawnZombies; }; }; }; }; }; }; } forEach _nearby; At first I thought it was a respawn timer issue or something like that but if you don't move the loot will stay, you have to back away from it or someone else has to get within range and its not like you have to run away for this to happen, you can just back up a few steps and watch the loot change right infront of you. I have been playing around with it just trying to see if i can figure it out but if anyone knows what i should do or can at least point me in the right direction it would be a huge help.
       
      Thanks
    • By calinova22
      I was wondering if it is possible to make it so that a players humanity would not change for a certain amount of time? I have a PVP arena with a teleport in and I was wanting to make it so people could TP in and fight without worrying about gaining or losing humanity.
  • Advertisement
  • Supporters
  • Discord

×
×
  • Create New...