Hallo zusammen,
kurze Frage:
Was ist notwendig, um in in der Missionfile (.Altis) Funktionen im Life-Server (z.B. DB_fnc_asyncCall) zu callen?
Beispiel: Einen Namen von einem Offline-Spieler abfragen anhand der Player ID
MfG
Nico
Hallo zusammen,
kurze Frage:
Was ist notwendig, um in in der Missionfile (.Altis) Funktionen im Life-Server (z.B. DB_fnc_asyncCall) zu callen?
Beispiel: Einen Namen von einem Offline-Spieler abfragen anhand der Player ID
MfG
Nico
gar nicht und wäre auch ne ziemlich dumme Idee -> SQL Injections incoming.
Schreib ne serverseitige Funktion die das handled, der du eine UID übergibst als Parameter...
Alles klar vielen Dank!
Andere Frage
Ich habe folgendes getan: In meiner Mission-File-Function greife ich nun mit einen remoteExec-Befehl auf meine TON-Fnc im life_server zu: [_x,player] remoteExec ["TON_fnc_getName",RSERV]; _name = player getVariable ["tempname","<Fehler>"]; (Es befindet sich in einer forEach Schleife, da ich mehrere Abfragen möchte und jeweils die Namen bekommen möchte, _x ist die PlayerID (forEach (PID-Array))
Meine getName-Fnc sieht wie folgt aus:
params [
["_uid",0,[0]],
["_unit", objNull, [objNull]]
];
private ["_query","_queryResult"];
if (isNull _uid) exitWith {};
if (isNull _unit) exitWith {};
//_uid = [_uid] call DB_fnc_mresString;
_query = format ["SELECT name FROM players WHERE pid='%1'",_uid];
_queryResult = [_query,2] call DB_fnc_asyncCall;
_queryResult = _queryResult select 0;
_unit setVariable ["tempname",_queryResult,true];
Alles anzeigen
(Ich bin mir nicht sicher, ob call mresString von Nöten ist)
Mein Problem nun ist, dass die Variable nicht gesetzt wird und die Ausgabe jedes Mal bei jeder PID <Fehler> ausgibt. config.cpp, Functions.hpp und auch CfgRemoteExec sind logischerweise eingetragen.
Hast du eine Idee, warum er die Variable nicht setzt und ich damit nicht arbeiten kann?
Und könnte ich evtl auch RemoteExecCall verwenden?
MfG
Nico
also nur so ein paar ideen:
erstmal was allgemeines: Zeile 8 und 9 sind unnötig, da die Dinger nicht null sein werden, weil du ja oben in dem params aufruf standard werte vergibst die gesetzt werden falls nichts übergeben
ansonsten wäre meine erste idee nen timing problem: du fragst _name sofort ab nachdem der remoteExec call kommt, das heißt das der vermutlich noch nicht durch ist.
ansonsten ist es vermutlich auch ne schlechte idee für jede PID nen remoteExec zu machen anstatt das array an den server zu geben und das dort entweder mit nem effizienten query oder einer schleife dort zu lösen.
und zu guter letzt ist das ganze nicht so mega sinnvoll weil 1. wird der name glaube ich sowieso schon irgendwo gesetzt und 2. wenn nciht dann setze das bei jedem spieler doch einfach beim joinen