Nein, die Tabelle musst Du schon von Hand in der DB anlegen
Beiträge von moeck
-
-
Hast Du auch die Tabelle in der DB angelegt? Dein Log sagt nämlich NEIN
Code
Alles anzeigenCREATE TABLE IF NOT EXISTS `perso` ( `id` int(12) NOT NULL AUTO_INCREMENT, `pid` varchar(50) NOT NULL DEFAULT '', `persoCop` text NOT NULL, `persoMed` text NOT NULL, `persoCiv` text NOT NULL, `persoEast` text NOT NULL, `Erstellungsdatum` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `Aenderungsdatum` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`,`pid`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Öffne mal deine DB und gehe mal auf deine Altislife DB anschliessend führst Du den Code von oben einfach mal aus. Und dann versuchst es nochmal
-
AmaZiinG kannste bitte Punkt 4 mal etwas genauer ausführen?
Peter Vogel : wenn alle anderen Buttons unter Controls stehen wird wohl auch der 9. Button dahin gehören
-
Kann es sein, dass hier versucht wurde das Tutorial von Julian mit einzubauen Angezeigte ClanTags für Cop/Medic/Civ ?
-
Gut dann bitte mal die aktuellen Logs hochladen
-
nicht mal sortiert der Kram
, kein wunder dass ich das überlesen habe. Der Button gehört aber zu den Controls und vielleicht sollte man den dann auch darein packen
.
So ich habe Dir das jetzt mal umgebaut und vielleicht sollte man den Anweisungen aus dem TUT folgen, das hat schon seinen Grund warum das genau da eingefügt werden soll. Lösche einfach das txt am Dateinamen und überschreibe deine
-
ich glaube du hast da was vergessen aus dem Tutorial
4. Sucht die pInteraction.hpp und fügt unter class pInteraction_Menu folgendes hinzu:
schau dir mal den Punkt nochmal an
-
mache eine .txt daraus
-
Probiere es aus, falls es nicht geht müssen wir weitersuchen. Programmieren ist keine exakte Wissenschaft sondern eher "try and error". Also zu mindestens kenne ich keinen Entwickler der wirklich beim ersten mal alles zu 100% hinbekommt. Es geht immer darum, dass man was macht und das anschliessend testet. Danach schaut man sich das Ergebnis an und sucht gegebenen falls nach den Fehlern
-
Na der arma3 User benötigt in der DB die Brechtigung für "DELETE". So die Copinteraction sieht ok aus, dann mal bitte noch die pInteraction.hpp anhängen. ach und mache bitte mal einen Screenshot vom CopInteractionMenu
-
so dein DB User hat keine Berechtigungen zum löschen
Code[10:16:48:103923 +01:00] [Thread 3964] extDB3: SQL: Initialized: Add Quotes around TEXT Datatypes mode: 2 [10:16:48:104052 +01:00] [Thread 3964] extDB3: SQL: Initialized: NULL = "" [10:16:48:104089 +01:00] [Thread 3964] extDB3: Locked [10:16:48:111589 +01:00] [Thread 3648] extDB3: SQL: Error MariaDBQueryException: DELETE command denied to user 'arma3'@'localhost' for table 'vehicles' [10:16:48:111603 +01:00] [Thread 1860] extDB3: SQL: Error MariaDBQueryException: DELETE command denied to user 'arma3'@'localhost' for table 'houses' [10:16:48:111619 +01:00] [Thread 3648] extDB3: SQL: Error MariaDBQueryException: Input: CALL deleteDeadVehicles [10:16:48:111645 +01:00] [Thread 1860] extDB3: SQL: Error MariaDBQueryException: Input: CALL deleteOldHouses [10:16:48:111779 +01:00] [Thread 2848] extDB3: SQL: Error MariaDBQueryException: DELETE command denied to user 'arma3'@'localhost' for table 'gangs' [10:16:48:111799 +01:00] [Thread 2848] extDB3: SQL: Error MariaDBQueryException: Input: CALL deleteOldGangs
eventuell kann Rom hier weiterhelfen. Übrigens fehlen noch die Clientlogs die sind unter %localappdata%\Arma 3\ zu finden auf deinem Rechner. Den anderen Fehler von gestern habe ich jetzt nicht mehr gesehen.
-
Moin,
das hat etwas mit dem Enviroment zutun in dem Du das ausführst
. An dieser Stelle darf man einfach ein sleep oder uiSleep benutzen sondern muss das ganze Kapseln. Das könnte dann so aussehen.
C
Alles anzeigencase (_item == "uwsl"): { _OBJ = nearestObject [player, "Land_Wreck_Traw_F"]; if (_OBJ==objNull) then { _OBJ = nearestObject [player, "Land_Wreck_Traw2_F"]; }; if (("Land_Wreck_Traw_F" == typeOf _OBJ) OR ("Land_Wreck_Traw2_F" == typeOf _OBJ)&&(player distance _OBJ < 50)) then { if (!([false,_item,1] call life_fnc_handleInv)) exitWith { hint "Error: Object not found"; }; _ship = _OBJ getVariable "opened"; _ship_obj = _OBJ; if (_ship) then{ hint "Das Schiff wurde bereits geoeffnet!" }; if (!_ship) then { hint "The charge has been planted! Get away from the shipwreck!"; playSound3D ["A3\Sounds_F\sfx\alarm_independent.wss", _ship_obj]; _handle = [] spawn { sleep 10; }; waitUntil {scriptDone _handle}; //sleep 10; //uiSleep 10; "M_NLAW_AT_F" createVehicle [getPos _ship_obj select 0, getPos _ship_obj select 1, 0]; schiffwoffen = true; publicVariableServer "schiffwoffen"; }; }; };
Gruß,
moeck
-
Moin moin,
ich habe mir das mal angeschaut. Dass die Sachen angezeigt werden ist relativ einfach zulösen. Man muss nur 2 Sachen in die fn_clothingFilter.sqfeintragen und schon sollte man darauf zugreifen können
Codeprivate _visible = M_CONFIG(getNumber,"Clothing",life_clothing_store,"allvisible"); if (([_x] call life_fnc_levelCheck) || _visible isEqualTo 1) then {
so damit würde die Datei dann folgendermassen aussehen.
C: fn_clothingFilter.sqf
Alles anzeigen#include "..\..\script_macros.hpp" /* File: fn_clothingFilter.sqf Author: Bryan "Tonic" Boardwine Description: Functionality for filtering clothing types in the menu. */ disableSerialization; params [ "", //Control ["_selection", 0, [0]] ]; life_clothing_filter = _selection; switch (_selection) do { case 4: { life_shop_cam camSetTarget (player modelToWorld [0,-.15,1.3]); life_shop_cam camSetPos (player modelToWorld [1,-4,2]); life_shop_cam camCommit 1; }; case 0: { life_shop_cam camSetTarget (player modelToWorld [0,0,1]); life_shop_cam camSetPos (player modelToWorld [1,4,2]); life_shop_cam camCommit 1; }; case 3: { life_shop_cam camSetTarget (player modelToWorld [0,0,1.4]); life_shop_cam camSetPos (player modelToWorld [-.1,2,1.4]); life_shop_cam camCommit 1; }; default { life_shop_cam camSetTarget (player modelToWorld [0,0,1.6]); life_shop_cam camSetPos (player modelToWorld [-.5,1,1.6]); life_shop_cam camCommit 1; }; }; if (isNull (findDisplay 3100)) exitWith {}; private _list = CONTROL(3100,3101); lbClear _list; private _configArray = switch (_selection) do { case 0: {M_CONFIG(getArray,"Clothing",life_clothing_store,"uniforms");}; case 1: {M_CONFIG(getArray,"Clothing",life_clothing_store,"headgear");}; case 2: {M_CONFIG(getArray,"Clothing",life_clothing_store,"goggles");}; case 3: {M_CONFIG(getArray,"Clothing",life_clothing_store,"vests");}; case 4: {M_CONFIG(getArray,"Clothing",life_clothing_store,"backpacks");}; }; private _visible = M_CONFIG(getNumber,"Clothing",life_clothing_store,"allvisible"); private "_pic"; private "_details"; { _x params [ ["_className", "NONE", [""]], ["_displayName", "", [""]], ["_price", 1000, [0]] ]; if !(_className isEqualTo "NONE") then { _details = [_className] call life_fnc_fetchCfgDetails; _pic = (_details select 2); }; if (([_x] call life_fnc_levelCheck) || _visible isEqualTo 1) then { if (isNil "_details") then { _list lbAdd _displayName; _list lbSetData [(lbSize _list)-1,_className]; } else { if (_displayName isEqualTo "") then { _list lbAdd (_details select 1); } else { _list lbAdd _displayName; }; _list lbSetData [(lbSize _list)-1,_className]; _list lbSetValue [(lbSize _list)-1,_price]; _list lbSetPicture [(lbSize _list)-1,_pic]; }; }; true } count _configArray;
zusätzlich muss man natürlich die Config_Clothing.hpp auch anpassen. Ich habe einfach mal einen sehr einfachen Shop zur Demo erstellt.
Code
Alles anzeigenclass example_clothing { title = "Beispielshop"; conditions = ""; side = "civ"; allvisible = true; uniforms[] = { { "NONE", $STR_C_Remove_uniforms, 0, "" } ,{ "U_C_WorkerCoveralls", "", 2500, "" } }; headgear[] = { { "NONE", $STR_C_Remove_headgear, 0, "" } ,{ "H_Bandanna_camo", "", 120, "" } ,{ "H_Booniehat_tan", "", 425, "call life_donorlevel > 0" } }; goggles[] = { { "NONE", $STR_C_Remove_goggles, 0, "" } ,{ "G_Shades_Black", "", 20, "" } ,{ "G_Shades_Blue", "", 20, "" } ,{ "G_Shades_Green", "", 20, "call life_donorlevel > 0" } ,{ "G_Shades_Red", "", 20, "call life_donorlevel > 0" } ,{ "G_Sport_Blackred", "", 25, "" } }; vests[] = { { "NONE", $STR_C_Remove_vests, 0, "" }, { "V_Rangemaster_belt", "", 1900, "" } }; backpacks[] = { { "NONE", $STR_C_Remove_backpacks, 0, "" } ,{ "B_Carryall_mcamo", "", 7500, "" } ,{ "B_Carryall_oli", "", 7500, "" } ,{ "B_Carryall_khk", "", 7500, "call life_donorlevel > 0" } ,{ "B_Carryall_cbr", "", 7500, "call life_donorlevel > 0" } ,{ "B_Carryall_ghex_f", "", 7500, "call life_donorlevel > 0" } //Apex DLC ,{ "B_Bergen_dgtl_f", "", 9500, "" } //Apex DLC ,{ "B_Bergen_tna_f", "", 9500, "call life_donorlevel > 0" } //Apex DLC }; };
oben in der Shopdefinition gibt es jetzt ein zusätzliches Attribut allvisible , damit steuert man die Sichtbarkeit. Ich habe auch einfach mal das Donatorlevel als Einschränkung genommen, da mir nix besseres im Standrad eingefallen ist.
Das Ganze habe ich natürlich noch nicht getestet, aber sehr wahrscheinlich kann man dann alles Kaufen, da man ja den Levelcheck damit aushebelt. Ich werde mal weiterschauen ob man das entsprechend unterbinden kann. Oder jemand anderes schaut sich das an
Gruß,
moeck
-
hier wäre der Client und extDB log wichtig
Es gibt da nämlich einen Fehler
Code
Alles anzeigen22:53:44 "extDB3: Protocol Error: [0,""Error MariaDBQueryException Exception""]" 22:54:40 "extDB3: Protocol Error: [0,""Error MariaDBQueryException Exception""]" 22:54:49 "extDB3: Protocol Error: [0,""Error MariaDBQueryException Exception""]" 22:54:51 Client: Remote object 3:0 not found 22:54:53 Warning: Cleanup player - person 2:1372 not found 22:54:58 Unaccessible 22:54:59 "extDB3: Protocol Error: [0,""Error MariaDBQueryException Exception""]" 22:55:38 "extDB3: Protocol Error: [0,""Error MariaDBQueryException Exception""]" 22:55:43 "extDB3: Protocol Error: [0,""Error MariaDBQueryException Exception""]" 22:55:48 "extDB3: Protocol Error: [0,""Error MariaDBQueryException Exception""]" 22:55:53 "extDB3: Protocol Error: [0,""Error MariaDBQueryException Exception""]"
-
Also ein Scriptfehler bezüglich Gang finde ich erstmal nicht allerdings hast du da irgendein anderes Problem mit irgendwelchen Farben. Des Weiteren scheint deine Statusbar auch nicht so richtig zu funktionieren und
Code21:49:56 Error in expression <SetStructuredText parseText format["%1",_desctext]; _textbox ctrlSetPosition [0,> 21:49:56 Error position: <_desctext]; _textbox ctrlSetPosition [0,> 21:49:56 Error Nicht definierte Variable in Ausdruck: _desctext 21:49:56 File core\holy_help\fn_holy_help.sqf [life_fnc_holy_help], line 40
hier ist auch noch ein fehler drin. Versuche mal diese Fehler zu beseitigen dann können wir uns um das Gangthema kümmern.
-
so du musst in den Prozeduren noch den User ändern
Code[22:22:54:506192 +01:00] [Thread 3344] extDB3: SQL: Error MariaDBQueryException: DELETE command denied to user 'arma3'@'localhost' for table 'vehicles' [22:22:54:506199 +01:00] [Thread 2132] extDB3: SQL: Error MariaDBQueryException: DELETE command denied to user 'arma3'@'localhost' for table 'houses' [22:22:54:506213 +01:00] [Thread 3344] extDB3: SQL: Error MariaDBQueryException: Input: CALL deleteDeadVehicles [22:22:54:506225 +01:00] [Thread 2132] extDB3: SQL: Error MariaDBQueryException: Input: CALL deleteOldHouses [22:22:54:506387 +01:00] [Thread 1820] extDB3: SQL: Error MariaDBQueryException: DELETE command denied to user 'arma3'@'localhost' for table 'gangs' [22:22:54:506403 +01:00] [Thread 1820] extDB3: SQL: Error MariaDBQueryException: Input: CALL deleteOldGangs
-
Es kommt kein Fehler oder so aber es wird Im Interaktionsmenü bei denn Cops nicht angezeigt
Ok habe mich vertan, ich meinte das copinteractionmenu
-
Peter Vogel so bitte mal die Client und Serverlogs sowie die fn_actionKeyhandler.sqf gegebenen falls hängst du auch mal einen Screenshot mit an.
-
warum willst Du das machen, wenn dann erweitert man einfach die einzelnen Shops um einen Configeintrag z.B. allvisible=true und anschliessend prüft man das einfach in der ShopMenü mit ab. Man muss halt nur die Shops trennen, allerdings innerhalb der Config. Dafür muss man nicht verschiedene Configs anlegen
-
man könnte ja auch den Button deaktivieren, aber wie gesagt dazu muss klar sein wie er es haben möchte. Andernfalls kann es nur falsch sein bzw. fehlt was
. Vom Aufwand her dürfte das nicht so wild sein. Kommt auch immer darauf an wieviel shops man konfiguriert. Wir haben nämlich nur einen für die Zivs und per Lizenzen dann die Einschränkungen vorgenommen. Da wäre es natürlich blöd, wenn man auch sachen sieht auf die man keinen Zugriff hat.