Wie erstelle ich meinen eigenen Epoch Trader?

Aus Nitradopedia
Wechseln zu: Navigation, Suche
Arma3Epoch header.png

Miete dir jetzt deinen eigenen prepaid ArmA 3 Epoch Server auf nitrado.net


Schritt 1

Lade dir die Datei "Server_TRADERS.sql" aus dem Webinterface unter dem Menüpunkt MySQL herunter (Exportieren).

Anschließen machst du folgendes:

  • Als Beispiel nehmen wir einen Beamten. Diesen Trader gibt es normalerweise nicht. Also erstelle in der "Traders_DATA.sql" einen neuen Eintrag mit der neuen ID. In diesem Falle ist das die "181".

Darauf folgend sehen wir den Skin, den der Trader später InGame tragen wird.

Das danach ist die Map IP. Die "11" steht für Chernarus.

Das nächste ist die Haltung gegenüber Banditen oder Heroes. Neutral heißt jeder kann Handeln, Friendly kann einen Bandit ansprechen, Hostile mag keine Heroes.

Das "Beamter" hat keinerlei Bedeutung. Eigentlich nur, damit man weiß wofür der Trader da ist.

(178, 'Pierce', 11, 'neutral', '', 'Black Market Vendor'),
(179, 'CIV_Contractor2_BAF', 11, 'neutral', '', 'Petes Car Store'),
(180, 'US_Pilot_Light_EP1', 11, 'friendly', '', 'Airplane Dealer'),
(181, 'GER_Soldier_TL_EP1', 11, 'neutral', '', 'Beamter');

Schritt 2

Jetzt mache den Trader auf der Map sichtbar. Dies kannst du über den Editor machen.

Erstelle eine Unit (Center -> Group -> Unit)

Bei Center und Group musst du nichts einstellen einfach nur beides mit "Ok" bestätigen. Die Unit braucht der 3D Editor dann auch um zu speichern.

Hast du einmal eine Unit zum speichern erstellt, brauchst du nicht noch einmal ein Center oder eine Group erstellen, alle nachfolgende Units werden in diese beiden Parameter eingefügt. Gehören also Automatisch zu der Gruppe.

Nun erstellst du deinen Trader, der wird im Editor einfach dahin gesetzt wo du ihn gerne haben möchtest richtest ihn mit Shift und Maus in die richtige Blickrichtung aus und mit Alt und Maus kannst du ihn in der Höhe verstellen.

Wenn du das gemacht hast speicherst du das ganze ab. Nun gehst du in den Ordner wo das alles gespeichert wird und öffnest du die Datei mit dem Notepad++.

Suche nach Unit und du findest die ganzen Einheiten sehr schnell.

Nun kopierst du dir deinen Trader und fügst ihn in deine Mission.sqf ein. Die Zeilen sollten wie folgt aussehen:

_unit_2 = objNull;
if (true) then
{
_this = _group_0 createUnit ["USMC_SoldierM_Marksman", [23959.441, 3177.1851], [], 0, "CAN_COLLIDE"];
_unit_2 = _this;
_this setDir -151.13742;
_this setUnitAbility 0.60000002;
if (false) then {_group_0 selectLeader _this;};
};

In der Mission.sqf hast du bereits Trader, hier musst du nun darauf achten, dass deine Unit nicht mit einer anderen ID kollidiert, soll heißen du musst zwangsläufig dies hier: "_unit_2" :abändern. Mache am Besten "_unit_1000" daraus.

Ganz wichtig ist dann das du noch folgendes abänderst, allerdings nur wenn du ab der Version 1.0.3 spielst.

Falsch: _group_0 createUnit

Richtig: createAgent

Damit sich der Trader später nicht vom Fleck bewegt und auch keinen Schaden erleidet, kannst du folgendes von den anderen Tradern aus der "Mission.sqf" kopieren:

_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;};

Das ganze sieht fertig so aus:

_unit_1000 = objNull;
if (true) then
{
_this = createAgent ["FR_Sapper", [23931.32, 3165.0332, 0], [], 0, "CAN_COLLIDE"];
_unit_1000 = _this;
_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;};
Was du hier allerdings beachten musst ist, dass du bei den Skins keinen auswählen solltest, den andere Spieler anziehen können, denn dann kann man bei ihnen etwas kaufen.










Damit dieser Skin nun mit deiner Mission geladen wird, musst du sie nachfolgend in die Mission.sqf von deinem Server einfügen, seit Epoch 1.0.3 befindet sich die mission.sqf in der dayz_server.pbo (folgenden Dateipfad nutzen:

So muss das ganze dann in deiner Mission.sqf ausshen. Die Einträge unter: "_this setVehicleInit" und "_this allowDammage", kannst du dir von den anderen Epoch Tradern kopieren.

Wichtig ist, dass die _unit49, wie im Beispiel hier, nicht schon an eine andere Einheit vergeben ist. Falls doch einfach eine andere Zahl dahin schreiben. Merke dir aber, dass die Zahl der "_unit" ZWEIMAL angegeben wird. Wenn du im 3D Editor eine Einheite erstellt hast, steht dort folgendes: "_group_0 createUnit, ab Epoch 1.0.3 musst du das wie folgt abändern: createAgent!

missions/DayZ_Epoch_1.eureMap.)

_unit_49 = objNull;
if (true) then
{
  _this =  createAgent ["GER_Soldier_TL_EP1", [9361.7588, 11307.571, 0.22695613], [], 0, "CAN_COLLIDE"];
  _unit_49 = _this;
  _this setDir 46.54995;
  _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;
};

Schritt 3

Hier erstellst du zu dem Skin ein Menü und weist es dem Skin zu.

In dieser Zeile, es ist die zweite von oben aus dieser Datei, weisen wir dem Skin zu, dass man an ihm Handeln kann. Dazu schreibst du einfach den Classname hinten dran. Wie in diesem Falle der: "GER_Soldier_TL_EP1"

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","GUE_Commander_DZ",
"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","CIV_Contractor2_BAF","US_Pilot_Light_EP1","GER_Soldier_TL_EP1"];

Nachdem du das erledigt hast, gibst du dem Trader noch ein Menü, damit er auch die Sachen auflisten kann.

Hier siehst du auskommentiert, welcher Trader das sein soll: Beamter

Direkt darunter eröffnest du quasi das Menü dieses Traders.

Dann gibst du dem Menüpunkt einen Namen, und die Zahl dahinter ist die ITEM ID, die brauchst du später für die "Traders_DATA.sql".

Das Feld darunter brauchst du, wenn der Trader auch Whiskey Flaschen eintauschen kann. Dann schreibst du da folgendes hinein: ["ItemCopperBar","TrashJackDaniels",1,1,"buy","Empty Wiskey Bottle","Copper Bar",101]

Als nächstes kommt dann der Punkt, ob der Trader: neutral, hostile, oder friendly ist.

Darunter schließt du das Menü ab.

// Beamter
menu_GER_Soldier_TL_EP1 = [
	[["Civil Service",55]],
	[],
	"neutral"
];

Schritt 4

"Traders_DATA.sql" Hier gibst du dem Trader, was er später verkaufen soll.

Da das im Beispiel nur Autos sind, die Öffentlcihendiensten zugeschrieben werden, sind es eben nur Autos.

(1869, '["VIL_ducato_amb",2]', 10, '[4,"ItemGoldBar10oz",1]', '[2,"ItemSilverBar10oz",1]', 0, 55, 'trade_any_vehicle'),
(1870, '["VIL_lublin_AMBU",2]', 10, '[4,"ItemGoldBar10oz",1]', '[2,"ItemSilverBar10oz",1]', 0, 55, 'trade_any_vehicle'),
(1871, '["VIL_sprinter_amb",2]', 10, '[4,"ItemGoldBar10oz",1]', '[2,"ItemSilverBar10oz",1]', 0, 55, 'trade_any_vehicle'),
(1872, '["VIL_transit_amb",2]', 10, '[4,"ItemGoldBar10oz",1]', '[2,"ItemSilverBar10oz",1]', 0, 55, 'trade_any_vehicle'),
(1873, '["VIL_kia_sg",2]', 10, '[2,"ItemGoldBar10oz",1]', '[1,"ItemSilverBar10oz",1]', 0, 55, 'trade_any_vehicle'),
(1874, '["VIL_Midlum",2]', 10, '[4,"ItemGoldBar10oz",1]', '[2,"ItemSilverBar10oz",1]', 0, 55, 'trade_any_vehicle'),
(1875, '["VIL_Star_944_SP1",2]', 10, '[6,"ItemGoldBar10oz",1]', '[3,"ItemSilverBar10oz",1]', 0, 55, 'trade_any_vehicle'),
(1876, '["VIL_Star_944_SP2",2]', 10, '[6,"ItemGoldBar10oz",1]', '[3,"ItemSilverBar10oz",1]', 0, 55, 'trade_any_vehicle'),
(1877, '["VIL_vl290psp",2]', 10, '[3,"ItemGoldBar10oz",1]', '[1,"ItemSilverBar10oz",1]', 0, 55, 'trade_any_vehicle'),
(1878, '["VIL_transit_osp",2]', 10, '[3,"ItemGoldBar10oz",1]', '[3,"ItemSilverBar10oz",1]', 0, 55, 'trade_any_vehicle')