4.4r4 = 5.0 also ja und nein
[TUTORIAL][Altis Life 4.4r3] RyanTTs Dynamic Market System
-
- Altis Life
-
blackfisch -
27. Juli 2016 um 01:04
-
-
Hey,
Wie funktioniert das mit der configuration des Marktet also in der fn_config.sqf?
Was hat das mit den Item_Groups und den Items_ToTrack auf sich?
Und noch ne frage bzw vielleicht ein fehler.... Bei mir ändern sich die Preise nicht weiß nicht warum oder ich bin zu blöd.....?
Mike
-
Mal eine Frage zu den Items to Track. Nach Serverneustart sind die Preise wieder so wie in der Items to Track. Ich möchte aber das die Preise nach dem Serverneustart so bleiben wie davor. Fehler habe ich keine. Und es funktioniert auch soweit. In der Serveruptime hab ich auch die 6 Std. eingetragen. Jemand eine Idee. Vielen Dank.
-
Mal eine Frage zu den Items to Track. Nach Serverneustart sind die Preise wieder so wie in der Items to Track. Ich möchte aber das die Preise nach dem Serverneustart so bleiben wie davor. Fehler habe ich keine. Und es funktioniert auch soweit. In der Serveruptime hab ich auch die 6 Std. eingetragen. Jemand eine Idee. Vielen Dank.
Dazu müssten die aktuellen Preise Permanent in der Datenbank gespeichert werden dann würde das theortisch gehen.
-
Die Preise werden doch in der DB gespeichert. Auch wenn diese sich verändern, stehen diese in der DB. Das wird ja quasi nur überschrieben durch Items to Track beim Server neustart.
-
Oh.. mist total falsch. Der Server startet immer mit dem höchst Preis welcher in Item Groups angebenden ist. Löst ja das Problem trotzdem nicht.
-
Ist das MarketSystem noch bugy das man kostenlos einkaufen?
-
Ist das MarketSystem noch bugy das man kostenlos einkaufen?
Translation confirmed.
-
Ist das überhaupt vorgesehen, dass die Marktpreise Server neustart übergreifend gespeichert werden?
-
~ Preise werden in der Datenbank gespeichert
Ist das überhaupt vorgesehen, dass die Marktpreise Server neustart übergreifend gespeichert werden?
Naja, würden sie in der DB gespeichert wenn nicht? :p
-
Code
Alles anzeigen/* ##################### DYNAMIC MARKET SCRIPT ##################### ### AUTHOR: RYAN TT. ### ### STEAM: www.steamcommunity.com/id/ryanthett ### ### ### ### DISCLAIMER: THIS SCRIPT CAN BE USED ON EVERY SERVER ONLY ### ### WITH THIS HEADER / NOTIFICATION ### ################################################################# */ // ███████████████████████████████████████████████████████████████████████ // █████████████████ DYNAMIC MARKET BASIC CONFIGURATION ██████████████████ // ███████████████████████████████████████████████████████████████████████ DYNMARKET_Serveruptime = 06; // Serveruptime after restart in hours DYNMARKET_UseExternalDatabase = true; // Should the script use the External Database? DYNMARKET_PriceUpdateInterval = 03; // After how many minutes should the price be updated? DYNMARKET_CreateBackups = true; // Should the server save write the prices regulary into the Database? If false, it will save the prices before Server-restart? DYNMARKET_CreateBackupInterval = 05; // After how many updates (PriceUpdateIntervals) should the prices be saved into the Database? DYNMARKET_UserNotification = false; // Should the user be informed with a hint whenever the prices got updated? // █████████████████ USER NOTIFICATION TEXTS █████████████████ DYNMARKET_UserNotification_Text = [ "Your prices have been updated!", "The new prices are being calculated by the server..." ]; // █████████████████ ITEM GROUP CONFIGURATION █████████████████ DYNMARKET_Items_Groups = [ ["Legal", [ ["apple",-1,5,10], ["peach",-1,5,15], ["rabbit",-1,10,50], ["ornate_raw",-1,10,50], ["ornate",-1,10,50], ["mackerel_raw",-1,10,55], ["mackerel",-1,10,55], ["tuna_raw",-1,10,55], ["tuna",-1,10,55], ["mullet_raw",-1,10,55], ["mullet",-1,10,55], ["catshark_raw",-1,10,55], ["catshark",-1,10,55], ["turtle_soup",-1,10,55], ["hen_raw",-1,10,55], ["hen",-1,10,55], ["rooster_raw",-1,10,55], ["sheep_raw",-1,10,55], ["sheep",-1,10,55], ["goat_raw",-1,10,55], ["goat",-1,10,55], ["turtle_raw",-1,10,55], ["goldbar",-1,350,750], ["oil_processed",-1,75,180], ["copper_refined",-1,50,75], ["iron_refined",-1,50,100], ["salt_refined",-1,40,80], ["glass",-1,30,85], ["diamond_cut",-1,50,160], ["cement",-1,50,150], ["heroin_processed",-1,50,220], ["marijuana",-1,40,180], ["cocaine_processed",-1,40,200] ], 1.5 ], ["Illegal", [ /*["peach",-1,30,100]*/ ], 0.5 ] ]; // █████████████████ ALL SELLABLE ITEMS █████████████████ DYNMARKET_Items_ToTrack = [ ["apple",10], ["peach",10], ["rabbit_raw",10], ["rabbit",10], ["ornate_raw",10], ["ornate",10], ["mackerel_raw",10], ["mackerel",10], ["tuna_raw",10], ["tuna",10], ["mullet_raw",10], ["mullet",10], ["catshark_raw",10], ["catshark",10], ["turtle_soup",10], ["hen_raw",30], ["hen",10], ["rooster_raw",10], ["sheep_raw",10], ["sheep",10], ["goat_raw",10], ["goat",10], ["goldbar",935], ["oil_processed",90], ["copper_refined",65], ["iron_refined",65], ["salt_refined",65], ["glass",65], ["diamond_cut",75], ["cement",60], ["heroin_processed",70], ["marijuana",80], ["cocaine_processed",90], ["turtle_raw",80] ]; //███████████████████████████████████████████████████████████████████████ //██████████████████ DO NOT MODIFY THE FOLLOWING CODE! ██████████████████ //███████████████████████████████████████████████████████████████████████ DYNMARKET_Items_CurrentPriceArr = []; DYNMARKET_sellarraycopy = DYNMARKET_Items_ToTrack; DYNMARKET_Serveruptime = (DYNMARKET_Serveruptime * 3600) - 300; { _currentArray = _x; DYNMARKET_Items_CurrentPriceArr pushBack [_currentArray select 0,_currentArray select 1,0]; } forEach DYNMARKET_Items_ToTrack; publicVariable "DYNMARKET_UserNotification"; publicVariable "DYNMARKET_UserNotification_Text"; if (DYNMARKET_UseExternalDatabase) then {[1] call TON_fnc_HandleDB;}; DYNMARKET_UpdateCount = 0; if (DYNMARKET_UseExternalDatabase) then { [] spawn { sleep DYNMARKET_Serveruptime; diag_log "### DYNMARKET >> CURRENT PRICES ARE BEING WRITTEN TO THE DATABASE ###"; diag_log "### DYNMARKET >> AS PLANNED, AWAITING RESULT... ###"; [0] call TON_fnc_HandleDB; }; }; sleep 5; [] call TON_fnc_sleeper;
Meine fn_config.sqf
Gespeichert werden die Preise ja. Nur bei Server neustart sind diese wieder auf dem höchstpreis gesetzt. Error in den RPT´s habe ich keine dies bezüglich.
-
Habe das Problem, dass sich die Variabel "sell_array" wohl zu früh einstellt:
SPYGLASS-FLAG: *************** : VariableSetBeforeInitialized_sell_array
Sprich die Spyglass behakt sich mit dem Marktsystem ein wenig.
Gibt es eine Möglichkeit diesen "Bug" zu beheben ohne die Spyglass zu deaktivieren?
-
Guten Tag/Abend,
Bei mir gibt es das Problem das einfach keine Items angezeigt werden und dort in dauerschleife kommt "Calcul des prix en cours..."
leider ändert sich da nix kann mir da einer behilflich sein ? -
Bitte Beitrag eröffnen und den Leitfaden lesen! Logs anhängen!
-
Moin. Ich habe ein Problem mit dem Ganzen ich bekomme andauernd Fehler mit DB Einträgen usw. Ich verwende die Altis Life Version 5.0. Im Anhang habe ich mal meine Logs von Client, DB und Server Gepackt. Hoffe mir kann da wer aushelfen. Habe Das tut nun schon das 2 Mal neu gemacht aber es bleib immer der Gleiche Fehler.
Spoiler anzeigen
23:45:10 Error in expression <rray = _queryResult select 0;
if (count _pricearray < 1) then {
diag_log "######>
23:45:10 Error position: <_pricearray < 1) then {
diag_log "######>
23:45:10 Error Undefined variable in expression: _pricearray
23:45:10 File \life_server\Functions\DynMarket\fn_HandleDB.sqf [TON_fnc_HandleDB], line 33
23:55:15 Error in expression <[0],"life_fnc_update",true,false] spawn life_fnc_MP;
sleep 5;
[] spawn TON_fnc_c>
23:55:15 Error position: <life_fnc_MP;
sleep 5;
[] spawn TON_fnc_c>
23:55:15 Error Undefined variable in expression: life_fnc_mp
23:55:15 File \life_server\Functions\DynMarket\fn_sleeper.sqf [TON_fnc_sleeper], line 13
-
Code
[23:45:10:332611 +02:00] [Thread 2832] extDB3: SQL: Error MariaDBQueryException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DYNMARKET_Price_Get' at line 1
lol?
und da sind wohl paar Fehler drin, die ich auf die schnelle nicht identifizieren kann... schick mir per PN mal deine TS IP, ich werf mal nen Blick drauf
EDIT:
taker9999 verwendest du überhaupt meine Files? sämtliche life_fnc_MP habe ich entfernt, bei dir sind aber noch welche drin...
-
EDIT:
taker9999 verwendest du überhaupt meine Files? sämtliche life_fnc_MP habe ich entfernt, bei dir sind aber noch welche drin...
Am. Ja gut ne. evtl habe ich die ganze zeit den flachen Ordner genutzt. Hatte das von Github mir mal runter geladen. Mh doof Sory
-
Am. Ja gut ne. evtl habe ich die ganze zeit den flachen Ordner genutzt. Hatte das von Github mir mal runter geladen. Mh doof Sory
....na dann aber auch hier keine Hilfe erwarten
-
....na dann aber auch hier keine Hilfe erwarten
Ich habe halt dein Tutorial genommen um das zu installieren. Kein wunder das es nicht klappte. Jetzt habe ich deine Fils nun klappt alles.
-
Hallo,
Ich habe neuerdings einen Fehler in der fn_calculatePrices.sqf im life ordner:
Fehler im RPT:
Code
Alles anzeigen15:33:08 "########################## DYNAMIC MARKET ##########################" 15:33:08 "### >> SUCCESSFULLY LOADED PRICES FROM DATABASE! ###" 15:33:08 "####################################################################" 15:38:18 Error in expression <(_itemAmountSold*(_curItemOldPrice/2000)*_itemFactorOfGroup); if (_NEWPRICE<_cur> 15:38:18 Error position: <*_itemFactorOfGroup); if (_NEWPRICE<_cur> 15:38:18 Error *: Type Array, expected Number,Not a Number 15:38:18 File \life_server\Functions\DynMarket\fn_calculatePrices.sqf [TON_fnc_calculatePrices], line 74 15:43:24 Error in expression <(_itemAmountSold*(_curItemOldPrice/2000)*_itemFactorOfGroup); if (_NEWPRICE<_cur> 15:43:24 Error position: <*_itemFactorOfGroup); if (_NEWPRICE<_cur> 15:43:24 Error *: Type Array, expected Number,Not a Number 15:43:24 File \life_server\Functions\DynMarket\fn_calculatePrices.sqf [TON_fnc_calculatePrices], line 74
calculatePrices:
Code
Alles anzeigen/* ##################### DYNAMIC MARKET SCRIPT ##################### ### AUTHOR: RYAN TT. ### ### STEAM: www.steamcommunity.com/id/ryanthett ### ### ### ### DISCLAIMER: THIS SCRIPT CAN BE USED ON EVERY SERVER ONLY ### ### WITH THIS HEADER / NOTIFICATION ### ################################################################# */ _tempArrayHolder = DYNMARKET_Items_CurrentPriceArr; { _itemName = _x select 0; _itemLastPrice = _x select 1; _itemAmountSold = _x select 2; _itemPricePerUnit = 0; _itemPriceMin = 0; _itemPriceMax = 0; _itemGroupName = ""; _itemFactorOfGroup = 0; _exit = false; if (_itemAmountSold>0) then { { if (!_exit) then { _GROUParray = _x; _itemGroupName = _GROUParray select 0; _GROUPITEMSarray = _GROUParray select 1; _itemFactorOfGroup = _GROUParray select 2; { _ITEMSarray = _x; _curITEMname = _ITEMSarray select 0; _curITEMpriceperunit = _ITEMSarray select 1; _curITEMmin = _ITEMSarray select 2; _curITEMmax = _ITEMSarray select 3; if (_curITEMname==_itemName) then { _exit = true; _itemPricePerUnit = _curITEMpriceperunit; _itemPriceMin = _curITEMmin; _itemPriceMax = _curITEMmax; }; } forEach _GROUPITEMSarray; }; } forEach DYNMARKET_Items_Groups; //ADJUST THE PRICES { _GROUParray = _x; _GROUPNAME = _GROUParray select 0; _GROUPITEMSarray = _GROUParray select 1; if (_itemGroupName==_GROUPNAME) then { { _ITEMSarray = _x; _curITEMname = _ITEMSarray select 0; _curITEMpriceperunit = _ITEMSarray select 1; _curITEMmin = _ITEMSarray select 2; _curITEMmax = _ITEMSarray select 3; if (_curITEMname==_itemName) then { // Find old price _curItemOldPrice = 0; { _curItemName2 = _x select 0; _curItemPrice2 = _x select 1; _curItemAmountSold2 = _x select 2; if (_curItemName2==_curITEMname) then { _curItemOldPrice = _curItemPrice2; }; } forEach DYNMARKET_Items_CurrentPriceArr; // Calculate new own price _NEWPRICE = _curItemOldPrice-(_itemAmountSold*(_curItemOldPrice/2000)*_itemFactorOfGroup); if (_NEWPRICE<_curITEMmin) then {_NEWPRICE=_curITEMmin}; if (_NEWPRICE>_curITEMmax) then {_NEWPRICE=_curITEMmax}; _index = -1; { _index = _index + 1; _curItemName3 = _x select 0; _curItemPrice3 = _x select 1; _curItemAmountSold3 = _x select 2; if (_curItemName3==_curITEMname) then { DYNMARKET_Items_CurrentPriceArr set [_index,[_curITEMname,_NEWPRICE,0]]; }; } forEach DYNMARKET_Items_CurrentPriceArr; } else { // Calculate new price _index = -1; { _index = _index + 1; _curItemName3 = _x select 0; _curItemPrice3 = _x select 1; _curItemAmountSold3 = _x select 2; if (_curItemName3==_curITEMname) then { _NEWPRICE = _curItemPrice3+(_itemAmountSold*(_curItemPrice3/1000)*_itemFactorOfGroup); if (_NEWPRICE<_curITEMmin) then {_NEWPRICE=_curITEMmin}; if (_NEWPRICE>_curITEMmax) then {_NEWPRICE=_curITEMmax}; DYNMARKET_Items_CurrentPriceArr set [_index,[_curITEMname,_NEWPRICE,_curItemAmountSold3]]; }; } forEach DYNMARKET_Items_CurrentPriceArr; }; } forEach _GROUPITEMSarray; }; } forEach DYNMARKET_Items_Groups; }; } forEach DYNMARKET_Items_CurrentPriceArr; DYNMARKET_Items_CurrentPriceArr = _tempArrayHolder; //[1,DYNMARKET_Items_CurrentPriceArr] remoteExecCall ["life_fnc_update",-2]; // Translate to sell_array { _itemName = _x select 0; _itemNewPrice = _x select 1; _index = -1; { _index = _index + 1; _curItemName = _x select 0; if (_curItemName==_itemName) then { DYNMARKET_sellarraycopy set [_index,[_itemName,_itemNewPrice]]; }; } forEach DYNMARKET_sellarraycopy; } forEach DYNMARKET_Items_CurrentPriceArr; [1,DYNMARKET_sellarraycopy] remoteExecCall ["life_fnc_update",-2];
Weiß jemand wo da der Fehler liegt?
Danke im vorraus.
Mike
-