Ach alles klar, das SQL PW wurde geändert.. Kann das geclosed werden..
Beiträge von Dr_Perl
-
-
Alles korrrekt.. Habe zum testen gerade 127.0.0.1 reingeschrieben.. Das checkt er auch und sagt Can't connect to MySQL server on '127.0.0.1' (10061).
Habe dann wieder mysql.gameserver.gamed.de eingetragen und er kommt wieder auf 89.163.192.50, ich werd verrückt..
-
Hallo Community,
bin gerade dabei einen Altis Life Server aufzusetzen.
Normalerweise klappt das mittlerweile ohne Probleme.
Problem:
In der extdb3-conf.ini steht bei Hostname:
[altislife]
IP = mysql.gameserver.gamed.de
usw...
Ging bisher immer.
Beim einloggen dann eine Fehlermeldung..
Ich schau im Extdb3-Log und da steht: "Access denied for user '*******'@'89.163.192.50' (using password: YES)"
Alles klar, ich dachte er hat den Hostname nich korrekt aufgelöst. Hinter mysql.gameserver.gamed.de steht eine ganz andere IP. Dann hab ich die korrekte IP benutzt also:
[altislife]
IP = 46.20.34.173
usw...
Wieder das selbe im Log: "Access denied for user '*******'@'89.163.192.50' (using password: YES)"
Wo hat er denn die 89.163.192.50 her??
Damit soll er ja garnich verbinden...
Steht auch so garnicht in der Config..
Hab schon die letzten 3 Versionen durchgetestet..
Hab ich irgendwas übersehen?
-
Okay, danke erstmal für die Mühe!
Was ich einfach nicht verstehe:
if (isStarted) exitWith {hint "Dat Teil läuft schon"};
Wo wird denn isStarted vorher gesetzt?? In der init? Also dann
publicVariable "isStarted";
rein?Warum sleepUI und nicht sleep?
Und wie sieht das mit der Parameterübergabe aus?
Ich rufe die Funktion in einem OnClick event eines Buttons auf.. (onButtonClick = "[] call life_fnc_ZoneStart;";) Wie übergebe ich da Parameter?
Puh ich find das echt mega kompliziert gemacht.....
Edit:
Okay, war natürlich doch garnich so kompliziert..
Hatte es jetzt hinbekommen... Und in der init
"ZoneIsStarted = false;
publicVariable "ZoneIsStarted";"
reingeschrieben.. Jetzt hab ich das auch erst richtig kapiert mit der public Variable.
Dankeeeee!!!
kann geclosed werden
-
Kannst du mir da ein Beispiel geben wie ich die Variable richtig deklariere, setze und auslese?
Mich verunsichert die Wiki seite, weil einmal nur ein Parameter angeben wird und das andere mal gleich 3 und nirgens steht warum genau das so ist.. Stehe da echt auf dem Schlauch..
-
Code
Alles anzeigen#include "..\..\script_macros.hpp" //Hier soll abgefragt werden ob "IstGestartet" auf true steht.. Wenn ja, dann beenden.. _ctrl = CONTROL(2001,99003); _item = switch (_ctrl lbText (lbCurSel _ctrl)) do { case "Zone 1": { [] spawn { "zone_1" setMarkerSize [400, 400]; [[0,1],"STR_ZONE_START",true,[1]] remoteExecCall ["life_fnc_broadcast",RCLIENT]; sleep 170; [[0,1],"STR_ZONE_SHRINKALERT",true,[1]] remoteExecCall ["life_fnc_broadcast",RCLIENT]; sleep 10; "zone_1" setMarkerSize [300, 300]; [[0,1],"STR_ZONE_SHRINKED",true,[1]] remoteExecCall ["life_fnc_broadcast",RCLIENT]; sleep 170; [[0,1],"STR_ZONE_SHRINKALERT",true,[1]] remoteExecCall ["life_fnc_broadcast",RCLIENT]; sleep 10; "zone_1" setMarkerSize [200, 200]; [[0,1],"STR_ZONE_SHRINKED",true,[1]] remoteExecCall ["life_fnc_broadcast",RCLIENT]; sleep 170; [[0,1],"STR_ZONE_SHRINKALERT",true,[1]] remoteExecCall ["life_fnc_broadcast",RCLIENT]; sleep 10; "zone_1" setMarkerSize [100, 100]; [[0,1],"STR_ZONE_SHRINKED",true,[1]] remoteExecCall ["life_fnc_broadcast",RCLIENT]; sleep 170; [[0,1],"STR_ZONE_SHRINKALERT",true,[1]] remoteExecCall ["life_fnc_broadcast",RCLIENT]; sleep 10; "zone_1" setMarkerSize [50, 50]; [[0,1],"STR_ZONE_END",true,[1]] remoteExecCall ["life_fnc_broadcast",RCLIENT]; //Hier "IstGestartet" wieder auf negativ setzen.. }; }; default {systemChat "Event Noch nicht verfügbar!";}; }; closeDialog 0;
Wichtig ist, dass das für alle spieler gilt.. Weil jeder den Befehl ausführen darf..
-
Hallo,
ich habe ein Script, in dem mehrere Sleep Funktionen drin sind, da bestimmte sachen nur alle 3 Minuten geschehen sollen..
Logischerweise werden die Befehle "übereinandergestalpelt" wenn man das Script mehrfach ausführt..
Es soll also gecheckt werden, ob das Script läuft.. Wenn es läuft darf es nicht nochmal ausgeführt werden und wenn nicht, dann darf es ausgeführt werden..
Also dachte ich mir ok, es soll eine boolean Variable geben, die negativ ist wenn sie noch nicht gesetzt wurde..
Aus der Bohemia Wiki hatte ich dann das hier gefunden:
Codeprivate _var = missionNamespace getVariable "varName"; if (isNil "_var") then { missionNamespace setVariable ["varName", 123]; _var = 123; };
_var sollte ja dann "123" behinhalten.. (nur zum testen erstmal den zahlenwert genommen)
Wenn ich unter den Code "systemChat _var;" schreibe, um mir den Wert anzuzeigen, spuckt er leider nichts aus..
Im richtigen Script dann natürlich mit einer boolean Variable. ("IstGestartet")
Am Anfang des Hauptscripts soll die Variable auf TRUE gesetzt werden.
Am Ende des Hauptscripts sollte dann die Variable wieder auf FALSE gesetzt werden, damit es wieder von Vorne losgehen kann..
Irgendwie steige ich da nich so durch..
Muss ich denn die "IstGestartet"-Variable schon in der Init vom server definieren?
LG Dr_Perl
-
Mein Hoster hat gerade geantwortet (gamed de) und eine Möglichkeit ist im Moment den Signaturcheck rauszunehmen..
-
Habe ich mir schon gedacht.. Ich habe kein infistar und ja auch das selbe Problem..
Und lad mal den Log als Dateianhang hoch bitte..
-
Habe dazu eben gerade ein Beitrag erstellt -> Kann seit dem Update nicht mehr joinen (BEServer::finishDestroyPlayer)
-
-
Oh hm, ja okay, wunderbar!
Wieder was gelernt.. Super, ich weiß bescheid! Vielen Dank!
-
Jo mir lbText klappt es. Danke!
Aber warum hat es nicht mit lbData geklappt? Habe ich das nicht auch festgelegt beim füllen der Listbox? (_kglist lbSetData [_index,"_index"];)?? Ahh ich habe hier "_index" in Häckchen gesetzt. Daran lag es wohl oder habe ich das falsch verstanden? Ich dachte man kann einmal den Text setzen, der angezeigt wird und dann einmal den "unsichbaren" der mit lbData abgefragt werden kann..
-
Hallo Dr_Perl,
erstmal wäre es schön, wenn du uns deinen RPT Log zeigen würdest, sowie das Skript, welches die Listbox befüllt bzw den dazugehörigen Dialog.
Dann könnten wir dir besser helfen
Trotzdem fallen mir direkt zwei Sachen auf.
- Beim systemchat im Case 1 fehlt ein Semikolon
- Um ein Makro, in deinem Fall "CONTROL_DATA", benutzen zu können, musst du die script_macros.hpp einbinden
Mit freundlichen Grüßen
Basti | John Collins
In Log steht nichts diesbezüglich..
#include "..\..\script_macros.hpp" hatte ich vergessen mitzukopieren.. Also war die ganze Zeit auch mit drin.
Das ist der jetzige Code zum befüllen:
Code_index = _kglist lbAdd "Item 1"; _kglist lbSetData [_index,_index]; _index = _kglist lbAdd "Item 2"; _kglist lbSetData [_index,"_index"];
Und hier der Code der jetztige vom Button ausgelöst wird (hab was Neues ausgetestet, leider ohne erfolg)..
Code#include "..\..\script_macros.hpp" // get items _ctrl = CONTROL(2001,99001); _item = switch (_ctrl lbData (lbCurSel _ctrl)) do { case "Item 1": {systemChat "1";}; case "Item 2": {systemChat "2";}; default {systemChat "-";}; };
Edit: Nope.. geht immer noch nicht.. aber er geht in die default Situation.. Muss also am Auslesen des Eintrags liegen..
-
Hallo,
hier das Problem:
Es gibt eine Listbox die befüllt ist und einen Button. Wenn der Button gedrückt wird, soll, je nach dem welches item selektiert wurde, eine andere Aktion ausgeführt werden..
Das befüllen der Liste war kein Problem und die funktion wird beim Drücken auch "abgefeuert"..
Also bis dahin läuft alles.
Hier der code zur der "kgport.sqf".. (die Listbox hat auch die ID 99001) (Hatte das einfach übernommen aus der UseItem.sqf und abgeändert...)
(kgport ist auch in der Funktions.hpp drin..)Code
Alles anzeigenprivate "_item"; disableSerialization; if ((lbCurSel 99001) isEqualTo -1) exitWith {hint "Du hast kein Event ausgewählt!";}; _item = CONTROL_DATA(99001); switch (true) do { case (_item isEqualTo "Test1"): { systemChat "** KG PORT **" closeDialog 0; }; default { hint "Dieses Event ist noch in Arbeit."; }; };
Das Item "Test1" ist auch in der Liste drin..
Ich versteh einfach nicht warum nichts passiert.. Nichtmal in die default Situation geht er rein.. Als würde er die Control nicht erkennen..
Kann mir jemand helfen?
-
Dr_Perl nimmst du das script von mit, da kannst du die höhe beliebig einstellen. Wenn du die höhe nicht einstellen musst, setzt du sie 0 und bei den anderen auf die entsprechende höhe. Heißt z.B. marker "kg_ge_3" muss um 2,5 Meter erhöht werden, dann schreibst du in das Array ["kg_ge_3",2.5]
Code
Alles anzeigenprivate _spawnposarray = [ ["kg_ge_1",0], //Marker, Höhe ["kg_ge_2",10], ["kg_ge_3",2.5] ... ]; private _spawnpos = selectRandom _spawnposarray; private _pos = getMarkerPos (_spawnpos select 0); if !((_spawnpos select 1) isEqualTo 0) then { _pos set [2,(_spawnpos select 1)]}; player setpos _pos; //teleport player
Zum ermitteln einfach ein schild nehmen an der gewünschten stelle positionieren und dann in den eigenschaften den wert für Z im Script eintragen, fertig
Ja super, so ist es natürlich perfekt! Vielen Dank!
Hab schon gedacht ich müsste das irgendwie per Switch-Case machen und dann für jeden marker die Höhe im Befehl selbst ändern.. Aber ja, so ist es top.. (hatte ich oben garnich gesehen
)
Kann dann geclosed werden..
-
-
-
Hallo..
Ich würde gerne per Script den Spieler an einen zufällig ausgewählten marker auf der map porten lassen..Bisher funktioniert das auch gut, außer das die Marker in Gebäuden nicht ganz laufen..
Man spawned dann immer UNTER dem Gebäude.
Bisher sieht das script so aus:
Code
Alles anzeigenprivate ["_spawnposarray","_spawnpos","_pos"]; _spawnposarray = [ "kg_ge_1", "kg_ge_2", "kg_ge_3", "kg_ge_4", "kg_ge_5", "kg_ge_6", "kg_ge_7", "kg_ge_8", "kg_ge_9", "kg_ge_10" ]; //array with three marker names _spawnpos = selectRandom _spawnposarray; //select a random spawnposition player setpos _pos; //teleport player
Habe schon gegoogled und noch was ausgetestet:
player setPos [ _pos player select 0, _pos player select 1, 1];
Ich dachte damit spawned man 1m über dem Boden aber irgendwie hab ich das wohl falsch verstanden, weil dann nämlich garnichts passiert..
Bräuchte da nochmal Hilfe..
-
Ohne deine Ansätze wird es schwer, dir den richtigen Weg zu zeigen.
Wenn du den Code aus der admin_menu.sqf nur 1zu1 kopiert hast, wird das nicht funktionieren.
Folgende Codezeilen aus der adminmenu.sqf sind dafür notwendig und nur diese sollten in die updateMenu.sqf übernommen werden:
Code_list = CONTROL(2900,2902); //Erste Zahl ist die Dialog IDC, zweite Zahl ist die IDC des Controlls, in diesem Fall der Listbox -> Anpassen auf deinen DIALOG lbClear _list; //Clear die Liste //Füllt die Liste { _side = switch (side _x) do {case west: {"Cop"}; case civilian: {"Civ"}; case independent: {"Medic"}; default {"Unknown"};}; _list lbAdd format ["%1 - %2", _x getVariable ["realname",name _x],_side]; _list lbSetdata [(lbSize _list)-1,str(_x)]; } forEach playableUnits;
Hallo, danke! Es lag an der IDC..
Kann geclosed werden.