Sol.LrMartyn
17.02.2015, 20:22
Hallo zusammen,
ich arbeite momentan an einer Mission in welcher die Personen, die verbinden, überprüft werden sollen. Gibt es die Person schon in der DB (die auf dem Server liegt) (Windows) dann soll ein Fahrzeug gespawnt werden (dient nur zur erfolgsmeldung). Gibt es die Person nicht, dann soll die Person mit Name und UID eingetragen werden.
Das hier (http://hx3.de/editing-scripting-167/script-nur-server-bzw-client-ausfuehren-19285/) hatte ich mir durchgelesen, aber irgendwie scheint das nicht ganz zu funktionieren, was ich fabriziert habe. Ohne das isServer bei beiden Scripts funktioniert das im Editor mit lokaler Mysql-DB wunderbar.
//init.sqf
database = compileFinal "'NAME'";
[player] execVM "scripts\mysql\connect.sqf";
//scripts\mysql\connect.sqf
if (!isServer){
_player = _this select 0;
_playeruid = getPlayerUID player;
_myProfileName = profileName;
[[[_player, _playeruid, _myProfileName],"scripts\server\mysql\connect.sqf"],"BIS_fnc_execVM",false,true] call BIS_fnc_MP;
};
//scripts\server\mysql\connect.sqf
if (isServer){
_player = _this select 0;
_playeruid = _this select 1;
_myProfileName = _this select 2;
_veh = "C_SUV_01_F" createVehicle position _player;
_database = call database;
_query = format ["SELECT name FROM `players` WHERE name = '%1'", _myProfileName];
_return = nil;
while {isNil("_return")} do {
_return = "Arma2Net.Unmanaged" callExtension format ["Arma2NETMySQLCommandAsync ['%1', '%2']", _database, _query];
if (_return == "") then {
_return = nil;
};
sleep 0.5;
};
if (_return == '[[]]') then {
_query = format ["INSERT INTO `players` (name, playeruid) VALUES ('%1', '%2')", _myProfileName, _playeruid];
_return = nil;
while {isNil("_return")} do {
_return = "Arma2Net.Unmanaged" callExtension format ["Arma2NETMySQLCommandAsync ['%1', '%2']", _database, _query];
if (_return == "") then {
_return = nil;
};
sleep 0.5;
};
} else {
_veh = "C_SUV_01_F" createVehicle position _player;
};
};
Danke und Grüße
ich arbeite momentan an einer Mission in welcher die Personen, die verbinden, überprüft werden sollen. Gibt es die Person schon in der DB (die auf dem Server liegt) (Windows) dann soll ein Fahrzeug gespawnt werden (dient nur zur erfolgsmeldung). Gibt es die Person nicht, dann soll die Person mit Name und UID eingetragen werden.
Das hier (http://hx3.de/editing-scripting-167/script-nur-server-bzw-client-ausfuehren-19285/) hatte ich mir durchgelesen, aber irgendwie scheint das nicht ganz zu funktionieren, was ich fabriziert habe. Ohne das isServer bei beiden Scripts funktioniert das im Editor mit lokaler Mysql-DB wunderbar.
//init.sqf
database = compileFinal "'NAME'";
[player] execVM "scripts\mysql\connect.sqf";
//scripts\mysql\connect.sqf
if (!isServer){
_player = _this select 0;
_playeruid = getPlayerUID player;
_myProfileName = profileName;
[[[_player, _playeruid, _myProfileName],"scripts\server\mysql\connect.sqf"],"BIS_fnc_execVM",false,true] call BIS_fnc_MP;
};
//scripts\server\mysql\connect.sqf
if (isServer){
_player = _this select 0;
_playeruid = _this select 1;
_myProfileName = _this select 2;
_veh = "C_SUV_01_F" createVehicle position _player;
_database = call database;
_query = format ["SELECT name FROM `players` WHERE name = '%1'", _myProfileName];
_return = nil;
while {isNil("_return")} do {
_return = "Arma2Net.Unmanaged" callExtension format ["Arma2NETMySQLCommandAsync ['%1', '%2']", _database, _query];
if (_return == "") then {
_return = nil;
};
sleep 0.5;
};
if (_return == '[[]]') then {
_query = format ["INSERT INTO `players` (name, playeruid) VALUES ('%1', '%2')", _myProfileName, _playeruid];
_return = nil;
while {isNil("_return")} do {
_return = "Arma2Net.Unmanaged" callExtension format ["Arma2NETMySQLCommandAsync ['%1', '%2']", _database, _query];
if (_return == "") then {
_return = nil;
};
sleep 0.5;
};
} else {
_veh = "C_SUV_01_F" createVehicle position _player;
};
};
Danke und Grüße