Hallo liebe NN-Community,
bitte entschuldigt meine vielen Thread's in letzter Zeit! Bin mal wie gut mit Fehlern unterwegs.. -.-
Denn ich habe ein Problem mit einem Ausweis Script. Das permanente Ausweis Script von Schnuffi. Ich habe es damals schon einmal auf meinem Server (3.1.4.8) gehabt & es hat auch gefunzt.
Nur jetzt auf der 5.0 und der extDB3 funzt es zwar auch nur leider muss man immer den Server restarten wenn sich ein neuer User einloggt und den Ausweis erstellen möchte.
Fehlermeldung lautet: "Aufgabe: Personalausweis anlegen."
Ich habe wirklich keinen Plan was ich machen soll. Ich bin seit knappen 26std wach und gefühlte 19 davon habe ich an diesem Mist verbracht. Ich habe jetzt schon alle Kommentare unter dem Thread des Erstellers gelesen und alle
Tipps/Verbesserungen/usw.. ausprobiert. Auch die "life_server" Dateien für 4.5 und niedriger habe ich, wie in den Kommentaren zu lesen ist, ausprobiert und nichts hat bisher gefunzt. Ich bitte jetzt aufrichtig um eure Hilfe da ich mich noch nicht so gut mit SQL und sowas auskenne und auch nicht mehr lange damit aushalte.
Es wäre wirklich nett wenn mir einer helfen könnte!
Sorry wegen Rechtschreibfehlern aber ich bin gerade für nix mehr zu gebrauchen
Vielen Dank schonmal im voraus und sorry für den Langen Text!^^
RPT-Log angehangen!
fn_insertRequest.sqf:
Spoiler anzeigen
#include "\life_server\script_macros.hpp"
/*
File: fn_insertRequest.sqf
Author: Bryan "Tonic" Boardwine
Description:
Adds a player to the database upon first joining of the server.
Recieves information from core\sesison\fn_insertPlayerInfo.sqf
*/
private ["_queryResult","_query","_alias"];
params [
"_uid",
"_name",
["_money",-1,[0]],
["_bank",-1,[0]],
["_returnToSender",objNull,[objNull]]
];
//Error checks
if ((_uid isEqualTo "") (_name isEqualTo "")) exitWith {systemChat "Bad UID or name";}; //Let the client be 'lost' in 'transaction'
if (isNull _returnToSender) exitWith {systemChat "ReturnToSender is Null!";}; //No one to send this to!
_query = format ["SELECT pid, name FROM players WHERE pid='%1'",_uid];
_tickTime = diag_tickTime;
_queryResult = [_query,2] call DB_fnc_asyncCall;
if (EXTDB_SETTING(getNumber,"DebugMode") isEqualTo 1) then {
diag_log "------------- Insert Query Request -------------";
diag_log format ["QUERY: %1",_query];
diag_log format ["Time to complete: %1 (in seconds)",(diag_tickTime - _tickTime)];
diag_log format ["Result: %1",_queryResult];
diag_log "------------------------------------------------";
};
//Double check to make sure the client isn't in the database...
if (_queryResult isEqualType "") exitWith {[] remoteExecCall ["SOCK_fnc_dataQuery",(owner _returnToSender)];}; //There was an entry!
if !(count _queryResult isEqualTo 0) exitWith {[] remoteExecCall ["SOCK_fnc_dataQuery",(owner _returnToSender)];};
//Clense and prepare some information.
_name = [_name] call DB_fnc_mresString; //Clense the name of bad chars.
_alias = [[_name]] call DB_fnc_mresArray;
_money = [_money] call DB_fnc_numberSafe;
_bank = [_bank] call DB_fnc_numberSafe;
//Prepare the query statement..
_query = format ["INSERT INTO players (pid, name, cash, bankacc, aliases, cop_licenses, med_licenses, civ_licenses, civ_gear, cop_gear, med_gear) VALUES('%1', '%2', '%3', '%4', '%5','""[]""','""[]""','""[]""','""[]""','""[]""','""[]""')",
_uid,
_name,
_money,
_bank,
_alias
];
[_query,1] call DB_fnc_asyncCall;
[] remoteExecCall ["SOCK_fnc_dataQuery",(owner _returnToSender)];
_query_2 = format["INSERT INTO perso(pid, persoCop, persoMed, persoCiv, persoEast) VALUES ('%1','""[]""','""[]""','""[]""','""[]""')",_uid];
waitUntil {!DB_Async_Active};
[_query_2,1] call DB_fnc_asyncCall;
fn_persoInsert.sqf:
Spoiler anzeigen
/*
Autor: Felix von Studsinske
Dateiname: fn_persoInsert.sqf
Beschreibung:
Fügt die Personalausweisdaten in die DB ein und gibt dem Spieler eine Rückmeldung.
Nutzungsbedindungen, siehe "License-FvS.txt"
*/
params [
["_insert",[],[[]]],
["_uid","",[""]],
["_side",sideUnknown,[sideUnknown]],
["_player",objNull,[objNull]]
];
if(isNull _player) exitWith {}; // Spieler gibts nicht
_insert = [_insert] call DB_fnc_mresArray;
_query = switch(_side) do
{
case west:
{
format["UPDATE perso SET persoCop='%1' WHERE pid='%2'",_insert, _uid];
};
case independent:
{
format["UPDATE perso SET persoMed='%1' WHERE pid='%2'",_insert, _uid];
};
case civilian:
{
format["UPDATE perso SET persoCiv='%1' WHERE pid='%2'",_insert, _uid];
};
case east:
{
format["UPDATE perso SET persoeast='%1' WHERE pid='%2'",_insert, _uid];
};
};
[_query,1] call DB_fnc_asyncCall;
[] remoteExecCall ["fvs_fnc_perso_laden",(owner _player)];
fn_persoRequest.sqf:
Spoiler anzeigen
/*
Autor: Felix von Studsinske
Dateiname: fn_persoRequest.sqf
Beschreibung:
Sucht in der DB nach Einträgen für den Personalausweis je nach Fraktion.
Nutzungsbedindungen, siehe "License-FvS.txt"
*/
params [
["_uid","",[""]],
["_side",sideUnknown,[sideUnknown]],
["_player",objNull,[objNull]]
];
if(isNull _player) exitWith {}; // Gibt's nicht
_query = switch(_side) do
{
case west:
{
format["SELECT persoCop FROM perso WHERE pid='%1'",_uid];
};
case independent:
{
format["SELECT persoMed FROM perso WHERE pid='%1'",_uid];
};
case civilian:
{
format["SELECT persoCiv FROM perso WHERE pid='%1'",_uid];
};
case east:
{
format["SELECT persoEast FROM perso WHERE pid='%1'",_uid];
};
};
_queryResult = [_query,2] call DB_fnc_asyncCall;
_ergebnis = [_queryResult select 0] call DB_fnc_mresToArray;
// Existiert ein EIntrag oder nicht
if(count _queryResult == 0) exitWith {
_query_2 = format["INSERT INTO perso(pid, persoCop, persoMed, persoCiv, persoEast) VALUES ('%1','""[]""','""[]""','""[]""','""[]""')",_uid];
[_query_2,_player] spawn {
[_this select 0,1] call DB_fnc_asyncCall;
[] remoteExecCall ["fvs_fnc_persoNeu",(owner (_this select 1))];
};
};
[_ergebnis] remoteExecCall ["fvs_fnc_persoErgebnis",(owner _player)];
& die fn_persoUpdate.sqf:
Spoiler anzeigen
/*
Autor: Felix von Studsinske
Dateiname: fn_persoUpdate.sqf
Beschreibung:
Aktualisiert die Personalausweisdaten in der DB.
Nutzungsbedindungen, siehe "License-FvS.txt"
*/
params [
["_insert",[],[[]]],
["_uid","",[""]],
["_side",sideUnknown,[sideUnknown]],
["_player",objNull,[objNull]]
];
if(isNull _player) exitWith {}; // Spieler gibts nicht
_insert = [_insert] call DB_fnc_mresArray;
_query = switch(_side) do
{
case west:
{
format["UPDATE perso SET persoCop='%1' WHERE pid='%2'",_insert, _uid];
};
case independent:
{
format["UPDATE perso SET persoMed='%1' WHERE pid='%2'",_insert, _uid];
};
case civilian:
{
format["UPDATE perso SET persoCiv='%1' WHERE pid='%2'",_insert, _uid];
};
case east:
{
format["UPDATE perso SET persoeast='%1' WHERE pid='%2'",_insert, _uid];
};
};
[_query,1] call DB_fnc_asyncCall;
Nochmal zur Übersicht: Ich nutze die Tanoa Life 5.0 Version + extDB3. Kein infiSTAR aber Battleye.
Hoffe das mir jemand helfen kann!
Falls nötig, bin ich auch auf dem NN-Ts zu finden.
Danke nochmal im voraus!
MfG
Ced