Ich hab seit dem Orange DLC das Problem dass weder in den Server noch in den Client Logs aufgeführt wird warum jemand gekickt wird...
Hat zufällig jemand ähnliche Erfahrungen gemacht oder vielleicht sogar eine Lösung?
Ich hab seit dem Orange DLC das Problem dass weder in den Server noch in den Client Logs aufgeführt wird warum jemand gekickt wird...
Hat zufällig jemand ähnliche Erfahrungen gemacht oder vielleicht sogar eine Lösung?
Okay so viel zum Thema die Position ist es nicht... Ich idiot hab 102923 statt 10292 als Y koordinate verwendet...
Hallo ihr lieben,
Da sich unser Server dazu entschlossen hat die Spyglass als anti-cheat zu benutzen, habe ich mich mal ein wenig in die Benutzung dieser eingearbeitet.
Prinzipiell funktioniert die Spyglass so, dass erstmal alles verboten wird und man alles was erlaubt sein soll whitelisten muss.
Da sämtliche "Hilfen" zu Problemen mit der Spyglass mit "Lösch sie doch" beantwortet werden hier ein kleines Tutorial.
Zunächst ist die Identifkation des Problems welches den Spyglass Fehler, dass jeder gekickt wird, verursacht zu bestimmen.
Dazu sollte man wissen wo man sowohl die Clientseitigen RPT-Logs, sowie die Serverseitigen RPT-Logs finden kann.
Clientseitig: \Users\XXXXXXXXX\AppData\Local\Arma 3
Da in den Serverseitigen RPT-Logs nur nicht-definierte ARMA Variablen angezeigt werden, was nur bei einem neuen DLC passieren kann, bietet es sich an mit den Clientseitigen anzufangen.
Erfahrungstechnisch sind die Fehler eher am Ende des Logs also: Von unten nach oben arbeiten oder per Strg + F nach Spyglass suchen (Ich übernehme keine Garantie dass bei allen Spyglass-Flag dabeisteht!)
Folgende Fehler können in den Clientseitigen Logs aufgeführt werden:
Nicht definierte Variablen eines Skripts
"Variable: reb_1_4 is not allowed TYPE: OBJECT NS: MN"
hierbei ist reb_1_4 der Name der Variable und "OBJECT" der Typ
Zur Behebung sucht man nun in der \config\Config_Spyglass.hpp:
allowedVariables[] = {...};
und fügt
{"reb_1_4", "OBJECT"}
hinzu.
Bsp.:
allowedVariables[] = { { "reb_1_4", "OBJECT" }, { "ggs_shop", "OBJECT" },{ "reb_helicopter_1", "OBJECT" }};
Alles anzeigen
Natürlich sind nicht alle Variablen Objects so kann es genauso auch STRING, DISPLAY, SCALAR und BOOL geben. Einfach den Typ dementsprechend ändern
Das zweite Problem auf das man im Clientseitigen Log stoßen kann ist, dass eine Function nicht definiert ist.
Diese wird genauso wie die Variablen ausgegeben und ist immer vom Typ CODE:
"Variable: life_fnc_warnvehicle is not allowed TYPE: CODE NS: MN"
Behoben wird diese in der:
LIFE_Functions[] = {};
Es muss (aus welchen Gründen auch immer) die Function und die Function_meta aufgenommen werden.
Daher bietet es sich an diese aus Gründen der Übersichtlichkeit lieber in die LIFE_Functions auf zu nehmen:
Also:
LIFE_Functions[] = {"life_fnc_warnvehicle","life_fnc_warnvehicle_meta"};
Diese sind aufzunehmen, wenn nicht eine Variable in einer Datei, sondern eine ganze Datei gewhitelistet werden muss.
Das letzte "normale" Problem auf das man stoßen kann wird NICHT in den Client Logs sondern in den Server Logs aufgenommen.
Dieses tritt nur auf wenn ein Arma Update neue Elemente in das Spiel einbringt (Bsp.: DLC).
Im Server Log ist dann folgendes zu finden:
Diesen Fehler zu beheben ist etwas schwieriger, vorallem wenn einem ein DLC fehlt (Ist bei mir jedoch nur bei APEX zum Problem geworden, bei Jets gab es keine Probleme)
Zunächst muss man in den Editor (nicht über Hosten da kriegt man nicht immer die Konsole auf).
Dort öffnet man die Debugkonsole (bei mir auf "^") und gibt dort folgenden Befehl ein:
_cfgPatches = []; _binConfigPatches = configFile >> "CfgPatches"; for "_i" from 0 to count (_binConfigPatches)-1 do { _patchEntry = _binConfigPatches select _i; if (isClass _patchEntry) then { _cfgPatches set [count _cfgPatches,(configName _patchEntry)]; }; }; copyToClipboard str(_cfgPatches);
Je nach PC kann das Bild kurz einfrieren.
Ihr habt nun sämtliche Elemente von ARMA in euer Clipboard kopiert.
Nun geht ihr in die \SpyGlass\fn_initSpy.sqf und sucht:
Dort dürfte bereits eine Menge drinne stehen diese überschreibt ihr nun per "Strg + V" (ansonsten könnte es durch doppelte Variablen probleme geben.
Ich würde euch gerne zeigen wie es Stand 03.09.2017 aussieht, jedoch scheinen die Variablen 20.000 Zeichen zu überschreiten.
Weitere Probleme hatte ich mit der Spyglass noch nicht, solltet ihr jedoch weitere haben könnt ihr mir gerne eure Fehler mit Logs schicken und ich schaue mal drüber.
Liebe Grüße
Atilla
Ich hab das genauso in der 5.0 gemacht, jedoch bleibt mein Gebäude nach Serverrestart offen.
private _vaultHouse = [[["Altis", "Land_Offices_01_V1_F"], ["Tanoa", "Land_Medevac_house_V1_F"]]] call TON_fnc_terrainSort;
private _altisArray = [7932,102923,3.35];
private _tanoaArray = [11074.2,11501.5,0.00137329];
private _pos = [[["Altis", _altisArray], ["Tanoa", _tanoaArray]]] call TON_fnc_terrainSort;
_dome = nearestObject [_pos,"Land_ConcreteWall_01_I_gate_F"];
_rsb = nearestObject [_pos,_vaultHouse];
for "_i" from 1 to 3 do {_dome setVariable [format ["bis_disabled_Door_%1",_i],1,true]; _dome animateSource [format ["Door_%1_source", _i], 0];};
_dome setVariable ["locked",true,true];
_rsb setVariable ["locked",true,true];
_rsb setVariable ["bis_disabled_Door_1",1,true];
_dome allowDamage false;
_rsb allowDamage false;
Alles anzeigen
so sieht meine init.sqf aus
Die Namen sind definitiv richtig und bei den Koords funktioniert weder das Format so (X,Y,Z) noch das merkwürdige Format das man in der mission.sqf finden kann (X,Z,Y)
class Item3557
{
dataType="Object";
class PositionInfo
{
position[]={7932.8701,9.4687567,10292.963};
angles[]={0,5.5506644,0};
};
side="Empty";
flags=1;
class Attributes
{
};
id=7686;
type="Land_Offices_01_V1_F";
atlOffset=3.3538089;
};
Alles anzeigen
kann mir jemand sagen wo da mein Fehler liegt?
Vielen Dank schonmal im Vorraus
Edit: Ich hab nun auch einmal es mit dem Befehl: hint format["%1",getpos player] versucht, welcher mir (ungefähr) den in meiner Init eingetragenen Wert liefert. Also scheint es schonmal nicht die Position zu sein. In Server und Clientseitigen Logs auch keine Fehler. Wäre es möglich, dass hier:
for "_i" from 1 to 3 do {_dome setVariable [format ["bis_disabled_Door_%1",_i],1,true]; _dome animateSource [format ["Door_%1_source", _i], 0];};
_dome setVariable ["locked",true,true];
_rsb setVariable ["locked",true,true];
_rsb setVariable ["bis_disabled_Door_1",1,true];
etwas verändert werden muss? Vielleicht andere Türen definieren?
Ich hätte zwei Probleme:
Nr 1.: Das Ändern der Preise via Admin Konsole scheint nicht zu funktionieren...
Nach Eintragen der vItem Bezeichnung und Setzung eines Preises bekomme ich zwar die Meldung die Preise sind angepasst worden,
allerdings ist dem nicht so. Sowohl in der Datenbank, als auch der Börsenanzeige zeigt es immernoch den alten Preis an. Auch beim Verkaufen wird der alte Preis verwendet. In den RPT-Logs, sowohl Clientseitig, als auch Serverseitig sind keinerlei Fehler zu finden.
Nr 2.: Gab es nichtmal eine Anzeige, wenn man beim entsprechenden Händler stand, wie denn der derzeitige Preis ist?
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?