Mach doch dazu lieber nen neuen Post auf ich helfe gerne
Beiträge von Joe Barbaro
-
-
-
[TUTORIAL] DER UMGANG MIT EXTDB3 & MYSQL
Das könnte dir vllt schon helfen.
Mit freundlichen Grüßen
Joe Barbaro
-
Ich glaube nicht das das hier ein Problem ist....
Wie oft hast du sie denn gespielt?
-
Moin,
darf man nicht mehr Fragen? Ausprobiert hab ich es längst und es klappt
Frage mich gerade immer noch, wo ich nach Code gefragt hab... Aber gut
War ja auch nicht böse gemeint
Wollte dich damit nicht angreifen.
Wollte nur lediglich einen kleinen Spaß erlauben.
Mit freundlichen Grüßen
Joe Barbaro
-
In dein Script was dafür zuständig sein soll
-
-
-
Moin NN,
ich habe die Tage in zusammenarbeit mit Kapsl mal ein kleines System entwickelt.
Auch ein kleines Danke an Henne der im Discord auf ein Problem beim Dialog geholfen hat.
Dieses Script führt der Spieler beim First Join und beim Profilwechsel aus und ist zum akzeptieren der Server Regeln.
Dieses System kann natürlich auf jedem Server eingesetzt werde. Es muss dafür ggf. umgeschrieben werden.
!!!ACHTUNG!!! DAS SYSTEM WURDE AUF KEINEM SERVER GETESTET! ES WURDE LEDIGLICH IM EDITOR ENTWICKELT UND GETESTET !!!ACHTUNG!!!
Scripts und Dialog dürfen frei verändert werden. Der Author Tag MUSS aber in jedem Fall stehen bleiben.
Fangen wir an
Schritt 1:
Wir legen den Dialog an. Hierfür erstellen wir im Ordner dialog eine Datei namens Rules.hpp mit folgendem Inhalt
Code: Rules.hpp
Alles anzeigen///////////////////////////////////////////////////////////////// ////This File was Edited by Joe Barbaro & Eli0w with GUI D3V //// ///////////////////////////////////////////////////////////////// class Rules { idd = 8000; name = "Rules"; movingenable = false; enablesimulation = true; class controlsBackground { }; class controls { class Rules_Background : Life_RscText { idc = 8001; x = 0.286979166666667 * safezoneW + safezoneX; y = 0.265322138126774 * safezoneH + safezoneY; h = 0.460316461684011 * safezoneH; w = 0.4 * safezoneW; colorbackground[] = {0,0,0,0.5}; }; class Rules_List_LanguageList : Life_RscListBox { idc = 8002; x = 0.286979166666667 * safezoneW + safezoneX; y = 0.265322138126774 * safezoneH + safezoneY; w = 0.113020833333333 * safezoneW; h = 0.460316461684011 * safezoneH; SizeEx = 0.05; style = 0; text = "Please select a language"; valign = "middle"; onLBSelChanged = "_this call life_fnc_RuleLanguageChange"; class Attributes { align = "center"; }; }; class Rules_Title : Life_RscStructuredText { idc = 8003; x = 0.405208333333333 * safezoneW + safezoneX; y = 0.274834437086093 * safezoneH + safezoneY; w = 0.269791666666667 * safezoneW; h = 0.022232734153264 * safezoneH; text = "Please select a language"; }; class Rules_Scroll : Life_RscControlsGroup { idc = -1; x = 0.405208333333333 * safezoneW + safezoneX; y = 0.315042573320719 * safezoneH + safezoneY; w = 0.269791666666667 * safezoneW; h = 0.3519394512772 * safezoneH; class Controls { class Rules_StructuredText: Life_RscStructuredText { idc = 8004; sizeEx = 0.020; text = "Please select a language"; x = 0; y = 0; w = 0.27; h = 5; }; }; }; class Rules_BTN_Accept : Life_RscButtonMenu { idc = 8005; x = 0.415747166666667 * safezoneW + safezoneX; y = 0.682378754966887 * safezoneH + safezoneY; w = 0.095589 * safezoneW; h = 0.0271765903500474 * safezoneH; onbuttonclick = "profilenamespace setVariable [""NNP"",true]; closeDialog 0"; text = "-"; style = 16; Size = 0.05; valign = "middle"; class Attributes { align = "center"; }; }; class Rules_BTN_Decline : Life_RscButtonMenu { idc = 8006; x = 0.568351333333333 * safezoneW + safezoneX; y = 0.682378754966887 * safezoneH + safezoneY; w = 0.095589 * safezoneW; h = 0.0271765903500474 * safezoneH; onbuttonclick = "endMission ""LOSER"""; text = "-"; style = 16; Size = 0.05; valign = "middle"; class Attributes { align = "center"; }; }; }; }; ///////////////////////////////////////////////////////////////// ////////////////////////// FILE END ///////////////////////////// /////////////////////////////////////////////////////////////////
Schritt 2:
Wir definieren den Dialog. Hierzu fügen wir in der dialog\MasterHandler.hpp folgendes hinzu:
Schritt 3:
Wir erstellen eine Funktion im Ordner core/functions mit dem Namen fn_Rules.sqf mit folgendem Inhalt:
Code: fn_Rules.sqf
Alles anzeigen/* Author: Joe Barbaro & Eli0w Description: Ruft den Dialog auf und füllt ihn mit ersten Werten */ if (profilenamespace getvariable "TEST") exitwith {}; createDialog "Rules"; private _display = findDisplay 8000; private _back = _display displayCtrl 8001; private _list = _display displayCtrl 8002; private _title = _display displayCtrl 8003; private _text = _display displayCtrl 8004; private _BTN1 = _display displayctrl 8005; private _BTN2 = _display displayctrl 8006; lbClear _list; _list lbadd "Deutsch"; _list lbSetData [(lbSize _list) - 1, "DE"]; _list lbadd "English"; _list lbSetData [(lbSize _list) - 1, "EN"]; _list lbadd "Espanol"; _list lbSetData [(lbSize _list) - 1, "ES"]; _BTN1 ctrlSetTextColor [1, 1, 1, 1]; _BTN1 ctrlSetBackgroundColor [0, 1, 0, 0.5]; _BTN2 ctrlSetTextColor [1, 1, 1, 1]; _BTN2 ctrlSetBackgroundColor [1, 0, 0, 0.5]; private _positionText = ctrlPosition _text; private _TextH = ctrlTextHeight _text; _text ctrlSetPosition [_positionText select 0, _positionText select 1, _positionText select 2, _TextH]; _text ctrlCommit 0; _BTN1 ctrlEnable false; _BTN2 ctrlEnable false; _text ctrlSetStructuredText parseText "<t size='1' color='#FFFFFF' valign = 'middle' align='center'><a color='#00DFFF'>•</a> Wähle eine Sprache aus<br/><br/> <a color='#00DFFF'>•</a> Please select a language<br/><br/> <a color='#00DFFF'>•</a> Por favor, seleccione un idioma </t><br/>"; private _positionText = ctrlPosition _text; private _TextH = ctrlTextHeight _text; _text ctrlSetPosition [_positionText select 0, _positionText select 1, _positionText select 2, _TextH]; _text ctrlCommit 0;
Schritt 3:
Wir erstellen eine Funktion im Ordner core/functions mit dem Namen fn_RuleLanguageChange.sqf mit folgendem Inhalt:
Code: fn_RuleLanguageChange.sqf
Alles anzeigen/* Author: Joe Barbaro & Eli0w Description: Passt je nach Sprachauswahl den Dialog an */ private _display = findDisplay 8000; private _back = _display displayCtrl 8001; private _list = _display displayCtrl 8002; private _title = _display displayCtrl 8003; private _text = _display displayCtrl 8004; private _BTN1 = _display displayctrl 8005; private _BTN2 = _display displayctrl 8006; private _loadoutText = lbData [8002,lbCurSel (8002)]; switch (_loadoutText) do { case "DE": { //title _title ctrlSetText "Deutsch"; //text _text ctrlSetStructuredText parseText "<t size='1' align='left'>§1 RDM ist verboten!</t> <br/>"; private _positionText = ctrlPosition _text; private _TextH = ctrlTextHeight _text; _text ctrlSetPosition [_positionText select 0, _positionText select 1, _positionText select 2, _TextH]; _text ctrlCommit 0; //Buttons _BTN1 ctrlEnable true; _BTN2 ctrlEnable true; _BTN1 ctrlSetText "Akzeptieren"; _BTN2 ctrlSetText "Ablehnen"; }; case "EN": { //title _title ctrlSetText "English"; //text _text ctrlSetStructuredText parseText "<t size='1' align='left'>§1 RDM is not allowed</t> <br/>"; private _positionText = ctrlPosition _text; private _TextH = ctrlTextHeight _text; _text ctrlSetPosition [_positionText select 0, _positionText select 1, _positionText select 2, _TextH]; _text ctrlCommit 0; //Buttons _BTN1 ctrlEnable true; _BTN2 ctrlEnable true; _BTN1 ctrlSetText "Accept"; _BTN2 ctrlSetText "Decline"; }; case "ES": { //title _title ctrlSetText "Espanol"; //text _text ctrlSetStructuredText parseText "<t size='1' align='left'>§1 RDM está prohibido</t> <br/>"; private _positionText = ctrlPosition _text; private _TextH = ctrlTextHeight _text; _text ctrlSetPosition [_positionText select 0, _positionText select 1, _positionText select 2, _TextH]; _text ctrlCommit 0; //Buttons _BTN1 ctrlEnable true; _BTN2 ctrlEnable true; _BTN1 ctrlSetText "Aceptar"; _BTN2 ctrlSetText "Disminución"; }; default { _title ctrlSetText "ERROR DEFAULT CASE"; _text ctrlSetText "ERROR DEFAULT CASE"; _BTN1 ctrlSetText "ERROR DEFAULT CASE"; _BTN2 ctrlSetText "ERROR DEFAULT CASE"; }; };
Schritt 4:
Wir definieren beide Funktionen in der Functions.hpp
Hierzu fügen wir in der Class Functions folgendes hinzu
Schritt 5:
Benennen und definieren der Profilenamespace Variabel
Damit nicht jeder Server der dieses Sytem nutzt die gleiche Variabel nimmt wird empfohlen beim Einbau dieses Scripts die Variabel umzubenennen.
!!!ACHTUNG!!! BEIM UMBENENNEN DER VARIABEL DARAUF ACHTEN DIES AUCH IN DER FN_RULES.SQF SOWIE IM DIALOG SELBER BEIM ACCEPT BUTTON NACHZUTRAGEN !!!ACHTUNG!!!
Hierzu gehen wir in die core/Init.sqf und fügen dort unter diag_log "::Life Client:: Initialization Variables" folgendes hinzu:
Codediag_log "::Life Client:: Initialization Variables"; [] call compile preprocessFileLineNumbers "core\configuration.sqf"; if (isnil {profileNamespace getVariable "TEST"}) then {profileNamespace setVariable ["TEST",false]};
Das wars auch schon.
Das Editieren der Textelemente erfolgt mit ParseText.
Solltet ihr Fehler finden oder Fragen zum System haben könnt ihr gerne unter dem Post fragen.
Hier noch 2 Bilder wie das ganze Ingame aussieht:
Mit freundlichen Grüßen
Joe Barbaro
-
-
ungern eröffne ich dieses Thema erneut, jedoch habe ich das gleiche Problem.
Dann mach doch lieber ein neues Thema auf.
Und immer an die Logs denken.
In diesem Sinne #closed
-
Teile ihn und die Lösung doch mit uns.
-
ich kann ja grob scripten bzw scripts einfügen
Dann nimm doch das was du brauchst aus den NN Tutorials.
Mit freundlichen Grüßen
Joe Barbaro
-
Hallo wie ihm Titel Suche ich ein Fertiges ServerPack was ihn Richtung RolePlay Nur mit Einer Militär Fraktion geht
Ich verstehe den Hintergrund.
Jedoch muss ich dir sagen, dass dir das nix bringen wird.
Das Basic AL Framework ist schon sehr simpel zu modifizieren, aber wenn du nicht scripten kannst hilft dir das auch nicht. Zurück zum Thema... Es gibt Seal Drop. Dieses Framework ist jedoch stark veraltet und daher nicht empfehlenswert.
Mit freundlichen Grüßen
Joe Barbaro
-
Hay ich wüste gerne wie man das script instaliert. ich habe es bei core/actions/fn_lockCellAction.sqf Reingetan
Guck dir mal die Grundlagen an.
Funktionen definieren, AddActions setzen, Get&SetVariable, if then else, while Schleifen, generelle Datentypen usw.
Aber prinzipiell steht oben alles beschrieben.
Funktion erstellen, definieren, AddAction setzen, Fertig.
Mit freundlichen Grüßen
Joe Barbaro
-
Worum gehts hier DayZ oder Arma?
-
Es war ein Fehler von mir aus, habe leider zu spät in die Start Datei geschaut, dort war extdb3 nicht richtig als Mod angegeben. Daher lief extdb3 logischer Weise gar nicht, ist nunmal kein Fehler, der durch Scripts o.ä. ausgelöst wird.
Gut wenn es klappt jedoch hätte es denke ich mal schon geholfen den leeren -mod Parameter rauszunehmen und lass LifeServer und extDB3 als Servermod stehen.
In diesem Sinne noch einen schönen Abend.
Mit freundlichen Grüßen
Joe Barbaro
-
Hey, ich habe folgenden Fehler, die Datenbank kann nicht geladen werden, da extdb3 scheinbar gar nicht funktioniert grad bei mir... Ich hab etwas rumprobiert vor einer Weile wegen eines anderen Problems bis dahin hab ich nichts mehr angefasst. extdb3 gibt keine Logs aus, RPT Logs im Anhang.
Da du den Titel in erledigt geändert hast, würden wir gerne noch die Lösung erfahren.
Mit freundlichen Grüßen
Joe Barbaro
-
-
Dann lad die Mod und schau welche Classnames er rauswirft