Jump to content
  • 0

Custom trader cities


BetterDeadThanZed

Question

This post started as a request for information on how add traders. The question was answered, so I thought I'd update my original post with instructions on how to do this:

 

It is easier to add traders if you don't want them to have their own inventory. This tutorial will start with explaining how to add traders and have them use the same database data/inventory as other traders.

 

Using the 3D editor, create a trader city. Place units at the locations where you want to have the traders standing. I am not going to explain how to use the 3D editor. You should already know how to do that.

Open server_traders.sqf for reference and keep it open.

Open mission.sqf and add an entry for your first new trader:

_unit_13001 = objNull;
if (true) then
{
  _this = createAgent ["GUE_Soldier_1", [2550.658, 8326.5928, 2.3534577], [], 0, "CAN_COLLIDE"];
  _unit_13001 = _this;
  _this setDir 114.59087;
  _this setVehicleInit "this allowDammage false; this disableAI 'FSM'; this disableAI 'MOVE'; this disableAI 'AUTOTARGET'; this disableAI 'TARGET'; this setBehaviour 'CARELESS'; this forceSpeed 0;  ";
  _this setUnitAbility 0.60000002;
_this allowDammage false; _this disableAI 'FSM'; _this disableAI 'MOVE'; _this disableAI 'AUTOTARGET'; _this disableAI 'TARGET'; _this setBehaviour 'CARELESS'; _this forceSpeed 0;_this enableSimulation false;};

_unit_#### can be a unique number not being used anywhere else in mission.sqf

 

"createAgent" should match one of the traders in the server_traders.sqf file. For example:

// Ammunition Neutral P
menu_BAF_Soldier_AMG_W = [
[["Assault Rifle Ammo",480],["Light Machine Gun Ammo",481],["Pistol Ammo",484],["Shotguns and Single-shot Ammo",573],["Sniper Rifle Ammo",482],["Submachine Gun Ammo",483]],
[],
"neutral"
];

This is a neutral ammunition trader. You can select "BAF_Soldier_AMG_W" and put it in the above mission.sqf file:

_this = createAgent ["BAF_Soldier_AMG_W", [2550.658, 8326.5928, 2.3534577], [], 0, "CAN_COLLIDE"];

Change the coordinates above with the coordinates from the new trader city you created. Also change these lines:

_unit_13001 = _this;
_this setDir 114.59087;

_unit matches the _unit number you chose above and setDir is in the mission file from the trader city you created.

 

What this does is spawns a trader with the classname "BAF_Soldier_AMG_W"", which the server recognizes is the neutral ammo trader as defined in the server_traders.sqf file. Please note that I pulled this from a Panthera server_traders.sqf so yours might be different.

 

After you've added all the traders this way, feel free to copy over the other items, such as tents, boxes, etc that you created in the mission you created in the 3D editor. Place all of this above the "processInitCommands;" commands at the bottom of the server's mission.sqf.

 

Creating traders with their own inventory

 

If you want to create unique traders that do not use the inventory of an existing trader, you need to do a little more.

 

After adding the tents, boxes, etc that make up your new trader city, and adding the traders as above, you perform the following steps.

 

In server_traders.sqf, you have to add the trader. It has to use a unique classname not being used by any other trader and it can not be used by any AI that you have on the server. If, for example, you use the same classname for this new trader as that of a bandit AI in your mission system, when you come across a dead bandit, you will get a trader prompt on your scroll menu!

 

For my example, I will use "Fiona". She is a trader I added to my Napf and Panthera servers that sells and buys rare food and drinks. This is what I added to server_traders.sqf:

// Rare Food and Drinks
menu_RU_Damsel5 = [
[["Rare Food/Drinks",700]],
[],
"neutral"
];

I used the model "RU_Damsel5". When you bring up the menu, it says "Rare Food/Drinks" and it uses trader ID 700. Whatever model you use, it needs to be added to the top of server_traders.sqf:

serverTraders = ["Tanny_PMC","BAF_Soldier_AMG_W","BAF_Soldier_AAA_DDPM","CZ_Special_Forces_MG_DES_EP1","Damsel5","GUE_Commander","GUE_Woodlander1","GUE_Woodlander3","GUE_Soldier_Sab","GUE_Soldier_Pilot","GUE_Soldier_2","Soldier_PMC","Citizen2_EP1","Rita_Ensler_EP1","RU_Farmwife1","US_Soldier_Medic_EP1","USMC_Soldier_TL","USMC_SoldierS_Engineer","UN_CDF_Soldier_AAT_EP1","ValentinaVictim","UN_CDF_Soldier_MG_EP1","GUE_Soldier_1","FR_Corpsman","GUE_Soldier_AR","Dr_Hladik_EP1","RU_Villager1","Reynolds_PMC","RU_Damsel5"];

In your database, you have to add the trader:

REPLACE INTO `server_traders` (`id`, `classname`, `instance`, `status`, `static`, `desc`) VALUES (700, 'RU_Damsel5', 24, 'friendly', NULL, 'Fionas Pub');

Then you have add the items the new trader will stock:

REPLACE INTO `traders_data` (`id`, `item`, `qty`, `buy`, `sell`, `order`, `tid`, `afile`) VALUES (7589, '["ItemSodaRabbit",1]', 1000, '[6,"ItemGoldBar",1]', '[3,"ItemGoldBar",1]', 0, 700, 'trade_items');

This adds the item "ItemSodaRabbit" with a quantity of 1000, selling for 6oz gold, buying for 3oz gold, to trader ID #700.

 

I hope that helps everyone! Let me know if you have questions. Thank you for everyone that answered the original post I made which led me to making this new post!

Link to comment
Share on other sites

Recommended Posts

  • 0

Don't Quote me 100% or even 10% But...

I too have been looking into this my self.
I have no idea about dayz Coding and what exactly it all means, but I have figured out the traders them selves are in the Mission.SQF file as the following code:
only 1 Example of a random trader:

_unit_8 = objNull;
if (true) then
{
  _this = _group_1 createUnit ["GUE_Soldier_Pilot", [10158.589, 18714.078, 9.1158972], [], 0, "CAN_COLLIDE"];
  _unit_8 = _this;
  _this setDir 113.89225;
  _this setVehicleInit "this allowDammage false; this disableAI 'FSM'; this disableAI 'MOVE'; this disableAI 'AUTOTARGET'; this disableAI 'TARGET'; this setBehaviour 'CARELESS'; this forceSpeed 0;";
  _this setUnitAbility 0.60000002;
  _this allowDammage false; _this disableAI 'FSM'; _this disableAI 'MOVE'; _this disableAI 'AUTOTARGET'; _this disableAI 'TARGET'; _this setBehaviour 'CARELESS'; _this forceSpeed 0;_this enableSimulation false;
};

I then believe in another file this trader is then "Called Apon" and asigned as Example "weapons dealer" which is then pointed to another file ect.

 

The code below is from the server_traders.sqf file.

// Jacks Weapons
menu_Soldier_Sniper_KSVK_PMC = [
[["Assault Rifle",485],["Light Machine Gun",486],["Pistols",489],["Shotguns and Single-shot",574],["Sniper Rifle",487],["Submachine Guns",488]],
[],
"friendly"
];

The code above simply tells the game the skin used "Soldier_Sniper_KSVK_PMC" & the name shown for menus & ID for the Menu's ["Assault Rifle",485]. 485 is the ID for the Assault rile menu and 485 is used in the SQL to assign items to that menu option. (AGAIN, I am not 100% sure but this is what i have assumed from looking into this my self.)

 

This is all i understand, If someone could Confirm I am on the right track and advise us of the last few steps this would be great.

maybe you guys can work with what i have provided and solve the rest of the puzzle?

Regards,
Ginger

Link to comment
Share on other sites

  • 0

I'm by no means a coder myself, but took what you'd suggested (thanks by the way!) and added to it with the following:
 

Added a new vendor at the top of Misty Peak. This is to be a new 'Sin City' type area on the server.

 

At the end of the mission.sqf file added:

_unit_666 = objNull;  //needed to be unique number I guess so used 666
if (true) then
{
  _this = _group_1 createUnit ["Hooker4", [3722.84,14487.8,0.001], [], 0, "CAN_COLLIDE"];
  _unit_666 = _this;
  _this setDir 248;
  _this setVehicleInit "this allowDammage false; this disableAI 'FSM'; this disableAI 'MOVE'; this disableAI 'AUTOTARGET'; this disableAI 'TARGET'; this setBehaviour 'CARELESS'; this forceSpeed 0;";
  _this setUnitAbility 0.60000002;
  _this allowDammage false; _this disableAI 'FSM'; _this disableAI 'MOVE'; _this disableAI 'AUTOTARGET'; _this disableAI 'TARGET'; _this setBehaviour 'CARELESS'; _this forceSpeed 0;_this enableSimulation false;
};

So, this places her nicely facing out over the valley below. Then I added this to the bottom of the server_traders file:

// hooker
menu_Hooker4 = [
    [["Hooker gunz",700],["Hooker Other Stuffs",701]],
    "friendly"
];

This gives her some menus to put items into in traders_data to sell. Then added her to the top line of the server_traders.sqf file like so:

// DayZ Epoch TRADERS for 11
serverTraders = ["RU_Functionary1","RU_Citizen3","Rocker4","Profiteer4","Rita_Ensler_EP1","CIV_EuroMan01_EP1","CIV_EuroMan02_EP1","TK_GUE_Soldier_5_EP1","GUE_Soldier_MG",
"Worker2","Worker3","Soldier_GL_M16A2_PMC","Woodlander1","UN_CDF_Soldier_Pilot_EP1","RU_WorkWoman1","Dr_Annie_Baker_EP1","RU_Citizen4","RU_WorkWoman5","RU_Citizen1",
"RU_Villager3","TK_CIV_Takistani04_EP1","Pilot_EP1","RU_Profiteer4","Woodlander3","Dr_Hladik_EP1","Doctor","HouseWife1","GUE_Woodlander2","Hooker4"];

(I broke this line up so it displays better, it's usually just one line)

 

Then I inserted a few new entries in the db:

INSERT INTO `yourepochserver`.`server_traders` (`id`, `classname`, `instance`, `status`, `static`, `desc`) VALUES ('666', 'Hooker4', '11', 'friendly', NULL, 'New hooker vendor');
INSERT INTO `yourepochserver`.`trader_tids` (`id`, `name`, `trader`) VALUES ('700', 'Hooker Gunz', '666'), ('701', 'Hooker Other Stuffs', '666'));

This gave her the Vendor ID of 666, and that vendor then shows trader menus 700, and 701 when accessed. So, so far she has all the variables, but one (I'm guessing?) that's needed to bring up the trader menu in selfactions.sqf:

   // All Traders
    if (_isMan <- yep (s)he is... and !_isPZombie <- not a player zombie and _traderType (??? where is this defined???) in serverTraders <- pretty sure yep, shes defined as "Hooker4" right at the end then {
        
        if (s_player_parts_crtl < 0) then { // basically this just continues bringing up the menu as far as I can tell.

            // get humanity
            _humanity = player getVariable ["humanity",0];
            _traderMenu = call compile format["menu_%1;",_traderType]; <-- I'm guessing this is what creates the menu to look for e.g. menu_Hooker4 in the server_traders.sqf

            // diag_log ("TRADER = " + str(_traderMenu));

etc etc.

 

Pretty sure I just need to define her _traderType somewhere, and that would get it going? She's in game, just can't access any trader menus from her. The only other reference I can find to _traderType is right at the top line of the selfactions.sqf:

 


private ["_temp_keys","_magazinesPlayer","_isPZombie","_vehicle","_inVehicle","_hasFuelE","_hasRawMeat","_hasKnife","_hasToolbox","_onLadder","_nearLight","_canPickLight","_canDo",
"_text","_isHarvested","_isVehicle","_isVehicletype","_isMan","_traderType","_ownerID","_isAnimal","_isDog","_isZombie","_isDestructable","_isTent","_isFuel","_isAlive","_canmove","_Unlock",
"_lock","_buy","_dogHandle","_lieDown","_warn","_hastinitem","_allowedDistance","_menu","_menu1","_humanity_logic","_low_high","_cancel","_metals_trader","_traderMenu","_isWreck",
"_isRemovable","_isDisallowRepair","_rawmeat","_humanity","_speed","_dog","_hasbottleitem","_isAir","_isShip","_playersNear","_findNearestGens","_findNearestGen","_IsNearRunningGen"
,"_cursorTarget","_isnewstorage","_itemsPlayer","_ownerKeyId","_typeOfCursorTarget","_hasKey","_oldOwner","_combi","_key_colors","_player_deleteBuild"];

I don't know what 'private' at the beggining is for though.

Link to comment
Share on other sites

  • 0

You need to load the Epoch mission file I don't have a link for it but I heard it was on the dev github. 

 

Trader information is stored in multiple places so you will need to make sure you edit everything correctly or your server will not be happy. 

 

To start with take a look at the mission.sqf, in here the game spawns in the actual physical bodies of the traders and the cities. Emptying the objects from this file will clean out the trader camps (city is a little optimistic for some market stands and a tent). 

 

Using Navicat (easier) or the phpmyadmin page you will then have to edit the database tables.

 

These include:

  1. traders_data - Stores trade information including whose menu the item belongs to (tid)
  2. server_traders -Stores trader ID, classname, instance number, status and basic trade option (sell empty whisky bottle)
  3. trader_tids - I am not sure about this one, see below

In addition to the above you will also have to edit the server_traders.sqf file. This holds all the data regarding the item category data, menus etc. If changing anything it is very important to make all the trader skin class names match up. 

 

With regards to trader_tids, I've not touched this file and have added new menus, items and codes. I'm not sure what it does at all perhaps someone knows?

 

I also haven't yet worked out how to add in a vehicle spawning location. But for weapon vendors etc it should be straight forward to add them in, just pick a location, pick a class name, copy and paste the code on the current mission.sqf and dump him on the map. Then tie in all the db and files to that guy. 

Link to comment
Share on other sites

  • 0

Nice man, thanks, basically that's confirmed everything that I've done above. Are you able to trade with your vendor and things like that? Is it a completely custom one, or just a vendor that's already in game, repurposed? I'm trying to create a completely custom vendor basically in secret, to give the guys a surprise one day after we add the Sigma Cars Pack from City Life. Do you know about the _traderType in selfactions.sqf, and how that's defined? I'm assuming, that it's simply referring to the object you're pointing to?

 

I'm at work at the moment and can't test this theory - but at the moment, she has no inventory because I haven't added anything to her tables. It should still bring up a menu though at least, right? I will try adding something for her to sell tonight and update this thread :)

 

I think that the vehicle spawn points could possibly be defined in mission.sqm or mission.sqf. Be interesting to get a guide on exactly how to set those up too - I know how to set the marker object type things (similar placing the trader, I'm assuming, or a Sarge AI spawn point), just not how that vendor spawns vehicles at that spawn point.

Link to comment
Share on other sites

  • 0

I got the Epoch mission file from the github and loaded it into the 3D editor, but the trader cities look different from the ones on my server. For example, my Stary Sobor doesn't have a wall along the side with the traders and Klen doesn't look like a little mini-castle. I'm starting to think more and more that maybe my host has some old files mixed in with 1.0.1.5 (They haven't updated to 1.0.2 yet), even though they only started hosting with 1.0.1.5.

Link to comment
Share on other sites

  • 0

I just had a thought - is there somewhere which determines the amount of vendor classnames to check for in the serverTraders variable that's set at the top of server_traders.sqf?

 

e.g. 'serverTraders = 20' and I need to change that to say 21 to get it to recognise the new entry? Might try changing my vendor to be the first in the list just to see if that works or not. At work though at the moment so will need to check this when I get home later tonight.

Link to comment
Share on other sites

  • 0

Well that didn't work, only remembered to get around to trying it today. Moved my vendor name to the front of the serverTraders entries but she's still not being recognised as a trader when I mouse over her. Something to do with the model then, maybe? (Hooker4) Anyone else created custom traders that could shed some light? I'm not meaning just moving current traders around, I'm meaning creating brand new traders, as well as having your normal ones there.

Link to comment
Share on other sites

  • 0

As far as i can tell the traders are not spawned in the mission file, but somewhere else?

They are: in the mission.sqf.

_unit_3 = objNull;
if (true) then
{
  _this = _group_1 createUnit ["GUE_Worker2", [11889.521, 21029.662, -0.00011348724], [], 0, "CAN_COLLIDE"];
  _unit_3 = _this;
  _this setDir -145.22078;
  _this setVehicleInit "this allowDammage false; this disableAI 'FSM'; this disableAI 'MOVE'; this disableAI 'AUTOTARGET'; this disableAI 'TARGET'; this setBehaviour 'CARELESS'; this forceSpeed 0;";
  _this setUnitAbility 0.60000002;
  _this allowDammage false; _this disableAI 'FSM'; _this disableAI 'MOVE'; _this disableAI 'AUTOTARGET'; _this disableAI 'TARGET'; _this setBehaviour 'CARELESS'; _this forceSpeed 0;_this enableSimulation false;
};

This is the Hero Chopper trader on Taviana:

// Pete's Armed Choppers
menu_GUE_Worker2 = [
	[["Helicopter Armed",493]],
	[],
	"hero"
];

The server_traders.sqf defines units of certain types as traders. Any unit of that type will have the trade options defined in the server_traders.sqf, no matter how they're spawned in. I found this out when I configured Sarge AI to use certain skins. I killed a bandit that used the same skin as one of the wholesale traders and got the trade menu option from his corpse.

 

I made a Black Market trader on Taviana. Here's what I did:

-added the unit (CIV_Contractor2_BAF) via the 3D editor

-made another entry in the mission.sqf similar to the first one I posted above, but replaced the classname and coordinates with that of the unit I placed

_unit_196 = objNull;
if (true) then
{
  _this = _group_1 createUnit ["CIV_Contractor2_BAF", [6053.7734, 1405.5178, 0.011851873], [], 0, "CAN_COLLIDE"];
  _unit_196 = _this;
  _this setDir 169.93163;
  _this setVehicleInit "this allowDammage false; this disableAI 'FSM'; this disableAI 'MOVE'; this disableAI 'AUTOTARGET'; this disableAI 'TARGET'; this setBehaviour 'CARELESS'; this forceSpeed 0;";
  _this setUnitAbility 0.60000002;
  _this allowDammage false; _this disableAI 'FSM'; _this disableAI 'MOVE'; _this disableAI 'AUTOTARGET'; _this disableAI 'TARGET'; _this setBehaviour 'CARELESS'; _this forceSpeed 0;_this enableSimulation false;
};

-added an entry into the server_traders.sqf for my custom trader with unique trader IDs

//Black Market
menu_CIV_Contractor2_BAF = [
	[["Black Market Weapons",695],["Black Market Ammo",696],["Explosives",697]],
	[],
	"neutral"
];

-added items to him via the database the same way I would with any trader

Link to comment
Share on other sites

  • 0

Awesome, I will try simply using another model and see if that works. I didn't place mine with the editor, but I don't think that'd matter, would it?

 

Apart from that though I've done everything exactly as you've described - I'm guessing it's just the hooker4 model, they can't carry guns or anything like that so might be handled a bit differently than the ones that can hold guns... shrug?

Link to comment
Share on other sites

  • 0

Awesome, I will try simply using another model and see if that works. I didn't place mine with the editor, but I don't think that'd matter, would it?

 

Apart from that though I've done everything exactly as you've described - I'm guessing it's just the hooker4 model, they can't carry guns or anything like that so might be handled a bit differently than the ones that can hold guns... shrug?

Looking at the code you posted from the server_traders.sqf, I may have found the problem.

// hooker
menu_Hooker4 = [
    [["Hooker gunz",700],["Hooker Other Stuffs",701]],

    "friendly"
];

Line 4 should have "[],". This appears to define extra trade options, such as trading junk to general traders or zombie parts to doctors. For most the brackets will be blank. However, I believe it has to be there.

Link to comment
Share on other sites

  • 0

K so annoyingly enough, it was just the Hooker4 model that was stopping everything after I added in those closed brackets. Thanks for pointing that out MrTesla! All I ended up doing was basically changing all references of the hooker4 model to some random skin that wasn't being used like MVD_Soldier_AT. Strange how the hooker4 model can't be used though. But they have like 4 inventory slots and can't carry guns, maybe that's why?

 

Also, this vendor is armed. Not really a biggy though.

Link to comment
Share on other sites

  • 0

I came back to say I got it figured out as well. I add buildings for the trader as well. This also makes it easier to get coords for your traders.

 

ADVANCED EDITING: If you don't already have some understanding of editing mission files you may want to look into that in better detail before attempting this method.

 

I load beta game with epoch and map mods (like tavi) and hit CTRL+E to get into editor.

Add in my "vehicles" buildings, add center, and group, and add unit playable survivor.

After test (preview) I move the survivor to where I want the trader and save and name mission. (Named mine "Roxy" for the chop shop)

I copy the coords and direction from the bottom of the mission.sqf you created.

Documents\ArmA 2 Other Profiles\PROFILENAME\missions

 
  _this = _group_0 createUnit ["BanditW2_DZ", [7455.0229, 4689.1846, 3.4332275e-005], [], 0, "CAN_COLLIDE"];
 
  _this setDir 91.705002;
 
Add these to your custom trader in epoch's mission.sqf at the bottom.
Change the survior skin to the skin of your trader.
And change to _unit_ number to one number up from last used.
 
_unit_1086 = objNull;
if (true) then
{
  _this = _group_2 createUnit ["RU_Hooker4", [7455.0229, 4689.1846, 3.4332275e-005], [], 0, "CAN_COLLIDE"];
  _unit_193 = _this;
  _this setDir 91.705002;
  _this setVehicleInit "this allowDammage false; this disableAI 'FSM'; this disableAI 'MOVE'; this disableAI 'AUTOTARGET'; this disableAI 'TARGET'; this setBehaviour 'CARELESS'; this forceSpeed 0;";
  _this setUnitAbility 0.60000002;
  _this allowDammage false; _this disableAI 'FSM'; _this disableAI 'MOVE'; _this disableAI 'AUTOTARGET'; _this disableAI 'TARGET'; _this setBehaviour 'CARELESS'; _this forceSpeed 0;_this enableSimulation false;
};
 
Now add your trader skin to the top of the server_traders.sqf no trailing commas. I'd avoid using playable skins. I would bet this would create some crazy issues lol
 
serverTraders = ["GUE_Worker2","Soldier_Sniper_KSVK_PMC","Soldier_GL_PMC","GUE_Soldier_Pilot","GUE_Woodlander3","Worker4","Reynolds_PMC","Soldier_Sniper_PMC","GUE_Soldier_3","RU_Doctor","Doctor","UN_CDF_Soldier_Pilot_EP1","RU_Worker4","RU_Woodlander4","Citizen3","RU_Damsel5","Dr_Hladik_EP1","GUE_Commander","GUE_Soldier_CO","Profiteer2_EP1","RU_Farmwife5","GUE_Woodlander1","RU_Worker1","GUE_Soldier_2","RU_Hooker4"];
 
At the bottom add in your trader and items available. Example Roxy's Chop Shop. A bandit vehicle shop with a bit of guns and ammo. 
 
// Roxy's Chop Shop
menu_RU_Hooker4 = [
[["Assault Rifle Ammo",480],["Assault Rifle",485],["Bikes and ATV",587],["Buses and Vans",588],["Cargo Trucks",586],["Compact Cars",560],["Economy Cars",523],["Fuel Trucks",589],["Luxury Cars",521],["Microcars",522],["Military Unarmed",598],["Trucks",590],["Used Cars",520],["Utility Vehicles",591],["Military Armed",562],["Trucks Armed",479]],
[],
"hostile"
]; 
 
Now go back to the mission.sqf you created in the editor and use a convertor tool to convert to 2d.
Copy this 2d folder to your Custom MPMission folder in documents. Documents\ArmA 2 Other Profiles\PROFILENAME\MPMissions
 
Make a folder here and name it for your map. Like TAVI.tavi. 
Add epoch's mission.sqm to this folder and mission.biedi from github.
 
Go back to arma to and got to Mulitplayer, click NEW. Select Host LAN and OK.
Select your Map and Mission <<New - Editor>> and click Play.
Load in your stock map from above (TAVI for this example) then click merge and select your custom 2d (Roxy for example)
Save the file (TAVI).
Now all your new trader buildings are added to your mission.sqm.
Just copy Documents\ArmA 2 Other Profiles\PROFILENAME\MPMissions\MAPNAME\mission.sqm
and overwrite your Arma 2 Operation Arrowhead\MPMissions\DayZ_Epoch MAP\mission.sqm
 
EDIT:
Almost forgot map marker.
Go into your newly created mission.sqm and look for "class Markers"
At the top of class markers add one to
items=31;
So it would be 
items=32;

 

Scroll you the end of the markers

class Item30
{
position[]={10220.17,76.156166,18653.834};
name="RepairShop";
text="Scott's Repair Shop";
type="mil_dot";
colorName="ColorGreen";
};
 
Now add in your trader's marker. Get the coords from earlier.
First number is your East/West or first number in coords 7455.0229.
Middle number is elevation which means nothing in a map marker so I set to 0.
Third is your North/South or your second number in coords 4689.1846.
 
class Item31
{
position[]={7455.0229,0,4689.1846};
name="RepairShop";
text="Roxy's Chop Shop";
type="mil_dot";
colorName="ColorRed";
};
 
Save and you are now complete. One trader map marker, with trader, and custom surrounding objects.
Link to comment
Share on other sites

  • 0
Now add in your trader's marker. Get the coords from earlier.
First number is your East/West or first number in coords 7455.0229.
Middle number is elevation which means nothing in a map marker so I set to 0.
Third is your North/South or your second number in coords 4689.1846.

This is the part that confused me yesterday when adding traders to Celle. Normally coordinates go x (east/west),y (north/south),z (up/down). For some reason here it's x,z,y. So my markers wound up on the bottom of the map.

Link to comment
Share on other sites

  • 0

Invisible helipads (HeliHEmpty) are used to mark where purchased vehicles will spawn. It'll check for the nearest one to spawn the vehicle.

 

That's it? So basically just create a new map marker which uses the HeliHEmpty marker and it'll just do the rest itself? I'm assuming that's what the trade_any_vehicle thing does. Awesome. lol that's WAY easier than I was expecting! I will try that next time I get a chance, which will be this Tuesday. Thanks man!

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
  • Advertisement
×
×
  • Create New...