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