Guten Morgen NG Community
Wie versprochen hier das Tutorial.
Getestet wurde das bisher nur auf der 3.1.4.8. Wenn es bei jemmandem auch bei der 3.1.4.6 geht, einfach bescheid geben damit ich der Titel anpassen kann.
Fangen wir mal an:
1. Öffnet eure functions.h und fügt unter class Dialog_Controls folgendes ein:
class Market
{
file = "core\market";
class openMarketView;
class refreshMarketView;
class marketShortView;
class marketBuy;
class marketSell;
class marketGetBuyPrice;
class marketGetSellPrice;
class marketconfiguration;
class marketReset;
class marketChange;
class marketGetRow;
class marketGetPriceRow;
class marketSetPriceRow;
};
Alles anzeigen
Nun sucht ihr die class Functions (Nicht da, wo Spyglass ist) und fügt folgendes hinzu:
2. Öffnet eure dialog\MasterHandler.h und fügt folgendes hinzu:
3. Öffnet eure core\shops\fn_virt_sell.sqf und fügt folgende sachen ein.
Unter private:
müsste dann so aussehen:
Jetzt sucht ihr nach _var = [_type,0] call life_fnc_varHandle; und fügt folgendes darunter ein:
////Marktsystem Anfang////
_marketprice = [_type] call life_fnc_marketGetSellPrice;
if(_marketprice != -1) then
{
_price = _marketprice;
};
////Marktsystem Ende////
Noch etwas weiter unten sucht ihr jetzt nach life_cash = life_cash + _price; und fügt dies direkt darunter ein:
////Marktsystem Anfang////
if(_marketprice != -1) then
{
[_type, _amount] spawn
{
sleep 120;
[_this select 0,_this select 1] call life_fnc_marketSell;
};
////Marktsystem Ende////
Das ganze schaut so aus:
////Marktsystem Anfang////
if(_marketprice != -1) then
{
[_type, _amount] spawn
{
sleep 120;
[_this select 0,_this select 1] call life_fnc_marketSell;
};
////Marktsystem Ende////
};
[] call life_fnc_virt_update;
};
Alles anzeigen
4. Öffnet eure core\shops\fn_virt_update.sqf und fügt folgende sachen hinzu:
Unter private:
Das ganze müsste dann so aussehen:
Weiter unten sucht ihr nach _price = (__GETC__(buy_array) select _index) select 1; und fügt dies direkt darunter ein:
////Marktsystem Anfang////
_marketprice = [_x] call life_fnc_marketGetBuyPrice;
if(_marketprice != -1) then
{
_price = _marketprice;
};
////Marktsystem Ende////
Und nun ganz am schluß folgendes einfügen:
5. Öffnet eure core\shops\fn_virt_buy.sqf und fügt folgende sachen hinzu:
Unter private:
Das ganze müsste dann so aussehen:
Etwas weiter unten sucht ihr nach _amount = ctrlText 2404; und fügt folgendes darunter:
////Marktsystem Anfang////
_marketprice = [_type] call life_fnc_marketGetBuyPrice;
if(_marketprice != -1) then
{
_price = _marketprice;
};
////Marktsystem Ende////
Noch etwas weiter unten sucht ihr nun nach __SUB__(life_cash,(_price * _amount)); (Es gibt davon 2 Einträge. Bitte den unteren nehmen) und fügt folgendes ein:
if(_marketprice != -1) then
{
//##94
[_type, _amount] spawn
{
sleep 120;
[_this select 0,_this select 1] call life_fnc_marketBuy;
};
};
Hier passieren die meisten fehlern. Bitte achtet beim letzten abschnitt auf die klammern. Hier mal wie es aussehen sollte.
Spoiler anzeigen
if(_marketprice != -1) then
{
//##94
[_type, _amount] spawn
{
sleep 120;
[_this select 0,_this select 1] call life_fnc_marketBuy;
};
};
};
[] call life_fnc_virt_update;
};
6. Öffnet eure dialog\player_inv.hpp und sucht nach class ButtonSyncData : life_RscButtonMenu { fügt nun nach der }; folgendes hinzu:
class ButtonMarket : Life_RscButtonMenu {
idc = -1;
text = "Markt";
onButtonClick = "[] spawn life_fnc_openMarketView;";
//x = 0.26 + (6.25 / 19.8) + (1 / 250 / (safezoneW / safezoneH));
x = 0.26 + (6.25 / 19.8) + (1 / 250 / (safezoneW / safezoneH));
y = 0.805;
w = (6.25 / 40);
h = (1 / 25);
};
7. Öffnet eure init.sqf in eurem root und sucht nach [] execVM "KRON_Strings.sqf"; und fügt folgendes darunter ein:
if(isDedicated && isNil("life_market_prices")) then
{
[] call life_fnc_marketconfiguration;
diag_log "Market prices generated!";
"life_market_prices" addPublicVariableEventHandler
{
diag_log format["Market prices updated! %1", _this select 1];
};
//Start server fsm
[] execFSM "core\fsm\server.fsm";
diag_log "Server FSM executed";
};
Alles anzeigen
8. Dateien im Anhang herunterladen, und in den angegebenen Ordner kopieren.
Das war es!
Sollte Battleye probleme machen, öffnet eure script.txt und fügt folgendes bei Zeile 2 ein:
Sollte was nicht funktionieren, so meldet euch einfach.
Hoffe konnte euch mit diesem Tutorial helfen, das Marktsystem auf der 3.1.4.8 zum laufen zu bekommen.
//Edit
Wer probleme hat, das sich im Markt die Items verdoppeln lassen befolgt bitte folgendes.
Öffnet eure dialog\player_inv.hpp und sucht nach
ändert ihr um in
Öffnet eure core\market\fn_openMarketView.sqf und sucht nach
ändert ihr um in
Und schon ist das problem behoben.
MfG
Noldy