@br1zey kann sein, aber um das geht es nicht mehr wirklich.
Pingu wollte einen Altis Life 4.4 Server aufsetzten und ust dabei nach der Anleitung von nox vorgegagen. Da darin aber durch die verschiedenen AL Versionen, etwas unverständlich erklärt, wird wie man extDB2 installiert. Wurde von Pingu angenommen auch bei der 4.4 den life_server, den nox verlinkt hat und eigentlich zur 4.0 gehört, zu ersetzen.
Nachdem wir darauf gekommen sind, stimmt nun nur noch etwas nicht mit dem Prefix der Datenbank in der extdb_conf.ini
Beiträge von B4v4r!4n_Str!k3r
-
-
Configuration
Hier ensteht meist der ein oder andere Flüchtigkeitsfehler, wenn es um die korrekte Einstellung der extdb-conf.ini, also der Configurationsdatei von [lexicon]extDB[/lexicon] geht. Meist werden fehlerhafte Benutzernamen, Passwörter, Datenbanknamen oder ein fehlerhafter Prefix für die Verbindung angegeben. Mit letzterem ist der in eckigen Klammern ([]) gehaltene Text über den Verbindungsinformationen gemeint. Hier ein kurzer Auszug aus der extdb-conf.ini:
[Database2] <--- PREFIX
;; Example of MySQL
;; AtlisLifeRPG uses Database2 by default
Type = MySQL
Name = DATENBANKNAME
Username = DATENBANKBENUTZER
Password = DATENBANKPASSWORT
IP = 127.0.0.1
Port = 3306Damals war Database2 immer der richtige Prefix, seit Altis Life 4.0 jedoch muss dieser auf [AltisLife] umgestellt werden um eine Fehlerfreie Verbindung zur Datenbank herstellen zu können. Achtet also darauf ob in euer Configurationsdatei der richtige Prefix angegeben ist.
Wie bereits oben erwähnt sollten auch Datenbankname sowie Datenbankbenutzer und das Datenbankpasswort korrekt sein da [lexicon]extDB[/lexicon] ansonsten ebenfalls nicht mit eurer Datenbank kommunizieren kann. Der Datenbankbenutzer ist im Normalfall "root", falls ihr diesen nicht während der Installation eures MySQL Servers geändert habt. Das Datenbankpasswort legt ihr ebenfalls während dieser Installation fest, die Datenbank selbst erstellt ihr im Anschluss über zum Beispiel Navicat oder HeidiSQL (Tools zur Datenbankverwaltung).
ließ dir einmal diesen Artikel durch bzw. den zitierten Absatz. Wenn das Problem danach immer noch vorliegt, kannst du dich ja nochmal melden
Edit: dein Prefix ist ArmaLife
-
Ich kann gerne den Log nochmal posten wenn er weiter hilft
ja bitte
-
okay, ich kann mich täuschen, aber diesesmal könnte der [lexicon]extDB[/lexicon] wirklich einen Fehler anzeigen
-
Okay jetzt kommebich schön langsam mit.
@nox hat das ganze in seinem Tutorial ein wenig blöd formuliert bzw. verlinkt.
Zitat von NoxKommen wir nun zur Konfiguration von extDB oder extDB2, je nach Altis Life Version.
Wenn ihr Altis Life 3.1.4.8 verwendet nutzt bitte "extDB", bei Versionen ab Altis Life 4.0 bitte "extDB2".
Hier findet ihr entsprechende Download:extDB für Altis Life 3.1.4.8: native-network.net/wsif/entry/1-extdb35-windows/
extDB2 für Altis Life 4.0 oder neuer: native-network.net/wsif/entry/…fe-server-altis-life-4-0/du brauchst für die 4.4 nur den @extDB2 Ordner und brauchst den life_server nicht austauschen. Versuche deinen Server einmal mit dem Standard life_server von Altis Life 4.4 zu benutzen
-
Okay ich habe deinen life_server mit dem der 4.0 verglichen und diese sind sich ganz ähnlich. Wenn man die 4.4 daneben legt, schaut dieser ganz anders aus.
Um nun deinen Fehler zu beheben, wäre immer noch ein [lexicon]extDB[/lexicon] Log sehr hilfreich
Edit: der Link zu deinem Download würde mich interessieren
-
Und du benutzt sicher die 4.4? Das ganze schaut für mich sehr stark nach der 4.0 aus.
-
ich klinke mich hier einmal ein. Ich bin mir noch nicht sicher, wo der Fehler liegt, aber im Log sind noch weitere Fehler zu finden: einerseits in der Stringtable, andererseits hast du deinen DynMarket noch nicht ganz implementiert.
Code: stringtable.xml
Alles anzeigen14:55:04 Item STR_Item_moebel listed twice 14:55:04 Item STR_License_ton listed twice 14:55:04 Item STR_License_brot listed twice 14:55:04 Unexpected stringtable format inside <Text ID="STR_ISTR_Blast_KeepOff"><Original> 14:55:04 Unexpected stringtable format inside <Text ID="STR_Gather_Heroin"><Original> 14:55:04 Unexpected stringtable format inside <Text ID="STR_Gather_Heroin"><Original> 14:55:04 Item STR_MAR_Shop_Market listed twice 14:55:04 Item STR_MAR_Shop_FishMarket listed twice 14:55:59 String STR_MAR_Station_Shop not found 14:55:59 String @STR_Shop_beackerei not found 14:56:00 String STR_MAR_Cop_Item_Shop not found
Code14:55:01 Warning Message: Script \life_server\Functions\DynMarket\fn_calculatePrices.sqf not found 14:55:01 Warning Message: Script \life_server\Functions\DynMarket\fn_config.sqf not found 14:55:01 Warning Message: Script \life_server\Functions\DynMarket\fn_getUpdate.sqf not found 14:55:01 Warning Message: Script \life_server\Functions\DynMarket\fn_HandleDB.sqf not found 14:55:01 Warning Message: Script \life_server\Functions\DynMarket\fn_playerLogged.sqf not found 14:55:01 Warning Message: Script \life_server\Functions\DynMarket\fn_sleeper.sqf not found
was aber noch interessanter wäre ein [lexicon]extDB[/lexicon] Log, aufgrund dieses Fehlers: -
Code: fn_virt_sell.sqf
Alles anzeigen#include <macro.h> /* File: fn_virt_sell.sqf Author: Bryan "Tonic" Boardwine Description: Sell a virtual item to the store / shop */ private["_type","_index","_price","_var","_amount","_name","_marketprice"]; if((lbCurSel 2402) == -1) exitWith {}; _mode = _this select 0; _type = lbData[2402,(lbCurSel 2402)]; _price = lbValue[2402,(lbCurSel 2402)]; _var = [_type,0] call life_fnc_varHandle; ////Marktsystem Anfang//// _marketprice = [_type] call life_fnc_marketGetSellPrice; if(_marketprice != -1) then { _price = _marketprice; }; ////Marktsystem Ende//// _amount = ctrlText 2405; if(_mode isEqualTo 1) then { _amount = (missionNameSpace getVariable _var); } else { if(!([_amount] call TON_fnc_isnumber)) exitWith {hintSilent localize "STR_Shop_Virt_NoNum";}; _amount = parseNumber (_amount); if(_amount > (missionNameSpace getVariable _var)) exitWith {hintSilent localize "STR_Shop_Virt_NotEnough"}; }; _price = (_price * _amount); _name = [_var] call life_fnc_vartostr; if(([false,_type,_amount] call life_fnc_handleInv)) then { hintSilent format[localize "STR_Shop_Virt_SellItem",_amount,_name,[_price] call life_fnc_numberText]; life_cash = life_cash + _price; if(_marketprice != -1) then { [_type, _amount] spawn { sleep 60; [_this select 0,_this select 1] call life_fnc_marketSell; [[_this select 0,_this select 1],"DB_fnc_marketInsertTimes",false,false] call life_fnc_MP; // Sends the shortname and amount of the sold item to the server }; [] call life_fnc_virt_update; }; }; [[0,player,life_shop_type,_amount,_price,_type],"TON_fnc_Ajustprices",false,false] spawn life_fnc_MP; if(life_shop_type == "heroin") then { private["_array","_ind","_val"]; _array = life_shop_npc getVariable["sellers",[]]; _ind = [getPlayerUID player,_array] call TON_fnc_index; if(_ind != -1) then { _val = (_array select _ind) select 2; _val = _val + _price; _array set[_ind,[getPlayerUID player,profileName,_val]]; life_shop_npc setVariable["sellers",_array,true]; } else { _array set[count _array,[getPlayerUID player,profileName,_price]]; life_shop_npc setVariable["sellers",_array,true]; }; }; [0] call SOCK_fnc_updatePartial;
ich habe dir deine Datei nochmals angepasst. Mehr kann ich im Urlaub nicht machen. Falls irgendetwas immer noch nicht funktionieren sollte, dann brauche ich deinen CLIENT-Log
-
hier ist der Commit aus ArmaLife's Github Repository, mit dem die Positionsspeicherung für Zivs eingeführt wurde. Vllt helfen dir Teile daraus.
-
- _return = _return + [
- ["rebel_hq","Rebellen HQ","\a3\ui_f\data\map\GroupIcons\badge_rotate_0_gs.paa"], <-- das Komma hat gefehlt
- ["rebel_outpost","Rebellen Außenposten","\a3\ui_f\data\map\GroupIcons\badge_rotate_0_gs.paa"]
- ];
-
Deine Variable für Donator heißt zwar in der Datenbank "donatorlvl", aber in der Mission "life_donator" also ersetzt du einfach "life_donatorlvl" mit "life_donator"!
Wer sich jetzt frägt, woher ich weiß wie seine Donatorvariable genau heißt: ich hatte @John_Parker schon einmal geholfen und deswegen noch seine Mission parat.
-
statt dem > isEqualTo verwenden und dannach das Level eintragen.
-
Ohne größere Änderungen wird das nicht so einfach gehen, denke ich.
Das geht meines Wissens nur, wie su oben schon erwähnt hast, mit zwei addActions und einem 2. Shop
-
doch, beim 2. lesen: ganz vorne fehlt this
-
ja also ganz versteh ich dich immer noch nicht
ich habe fast die gleiche Lösung wie du, nur dass in meinem Shop für Spender (also in einen 2. Shop wie du schon sagtest) auch noch genaue Spenderlevel abgefragt wird.
Bei dir wird in wird in der addAction nur abgefragt ob der jenige Spendenlevel 1 hat. Aber was ist mit 2,3,4,5 usw.? Bei deiner Lösung müsste man für jedes Level eine eigene Aktion dem NPC zuweisen.
Das habe ich versucht zu umgehen.
-
bestimmt aber das kannst du ja mal selber probieren, da mir dafür die Zeit fehlt.
-
@Ammorosh versuche einmal diese MasterHandler.hpp:
C: MasterHandler.hpp
Alles anzeigen/* Master UI Resource File */ #include "common.hpp" #include "smartphone.hpp" #include "shop_items.hpp" #include "player_inv.hpp" #include "gang.hpp" #include "key_chain.hpp" #include "impound.hpp" #include "bank.hpp" #include "veh_shop.hpp" #include "shops.hpp" #include "hud_stats.hpp" #include "admin_menu.hpp" #include "cell_phone.hpp" #include "wanted_list.hpp" #include "ticket.hpp" #include "clothing.hpp" #include "trunk.hpp" #include "spawnSelection.hpp" #include "chop_shop.hpp" #include "pInteraction.hpp" #include "deathScreen.hpp" #include "vehicleShop.hpp" #include "settings.hpp" #include "federalReserve.hpp" #include "compensate.hpp" #include "FuelStat.hpp" #include "newsStation.hpp"
um deinen Fehler zu vermeiden, muss man die common.hpp immer als erstes includen!
-
Ich habe die veraltete 4.4 Version
naja das Tutorial ist für die 4.0 und seitdem hat sich das eine oder andere im Housing dann doch geändert
-
wenn man das fahrzeug mit mehrere skins hat dann muss ich das trotzdem aufteilen,
weil sonst können der nicht donater das fahrzeug gar nicht kaufenda kann ich dir gerade nicht ganz folgen. Könntest du bitte nochmals in ganzen deutschen Sätzen schreiben.