Moin Leute,
ich würde gerne bei einem befehl abfragen oder spieler name der gleiche wie in einem define ist um dann wenn der name gleich ist einen Adminrang zu setzen,
ich stehe irgendwie ein bisschen auf dem Schlauch.
Danke
Moin Leute,
ich würde gerne bei einem befehl abfragen oder spieler name der gleiche wie in einem define ist um dann wenn der name gleich ist einen Adminrang zu setzen,
ich stehe irgendwie ein bisschen auf dem Schlauch.
Danke
Das liegt daran, dass du einen Wert nicht angibst (in dem Fall den skin), der in der MySQL-Tabelle keinen Ausfallwert hat, wenn du nichts angibst. Daher wäre es sinnvoller einen default-Wert zu setzen oder den skin per Query mitzusetzen.
Der Fehler ist eigentlich selbsterklärend. Dir fehlt halt ein Standardwert
Ja verstehen tu ich das allerdings als ich ihn auf meinem localhost hatte gabs auch nie probleme als keine Default werte gesetzt habe warum jetzt wo ich ihn bei Nitrado aufgespielt habe ?
Ja moin also mein script lädt und funktioniert auch alledings sobald ich mein passwort bei der regestration eintrage und absende passiert nichts mehr hier meine fehlercodes aus der Mysql Log
[19:44:35] [ERROR] CMySQLQuery::Execute[OnPlayerRegister(i)] - (error #1364) Field 'skin' doesn't have a default value
[19:49:20] [ERROR] CMySQLQuery::Execute[OnPlayerRegister(i)] - (error #1364) Field 'skin' doesn't have a default value
[20:02:18] [ERROR] CMySQLQuery::Execute[OnPlayerRegister(i)] - (error #1364) Field 'skin' doesn't have a default value
Moin leute wie kann ich jemanden einen zufälligen skin geben aus vorbestimmten SkinID's??
Gracias im vorwege
Moin,
wenn du einen Fehler in einer Query hast, sollte sich im Normalfall eine extra Datei erstellen (mysql_log o.Ä.) dort siehst du immer direkt den Fehler.
In deinem Fall ist nun ein Fehler in deiner Update-Anfrage passiert. Vor dem WHERE darf kein , mehr kommen, dies also einfach entfernen.
Für die Zukunft kann ich dir auch immer Validatoren empfehlen. Beispielweise diesen hier: https://www.eversql.com/sql-syntax-check-validator/
Ich danke dir das war ![]()
hab den wald vor lauter bäumen nicht gesehen
Moin also meine speicherung der letzten Koordinaten funktioniert nicht ganz wie es soll also er scheint die FLoats zu speichern so wie es mir Print ausgibt er lädt die Koordinaten auch richtig beim einloggen hatte sie in der datenbank manuell mal geändert nur die werte werden beim speichen nicht gespeichert in der Datenbank.
Wo liegt mein fehler?
Vielen Dank im vorraus ![]()
savePlayer(playerid)
{
//SPEICHERN skin level money
if(sInfo[playerid][eingeloggt] == 0) return 1;
new query[256], Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
format(query,sizeof(query),"UPDATE user SET level='%i', money='%i', skin='%i', lastposx='%f', lastposy='%f', lastposz='%f', WHERE id='%i'",sInfo[playerid][level],GetPlayerMoney(playerid),GetPlayerSkin(playerid),x,y,z,sInfo[playerid][id]);
mysql_function_query(dbhandle,query,false,"","");
print(query);
return 1;
}
loadPlayer(playerid)
{
if(sInfo[playerid][eingeloggt] == 0) return 1;
sInfo[playerid][level] = cache_get_field_content_int(0,"level",dbhandle);
sInfo[playerid][skin] = cache_get_field_content_int(0,"skin",dbhandle);
sInfo[playerid][id] = cache_get_field_content_int(0,"id",dbhandle);
sInfo[playerid][lastpos_x] = cache_get_field_content_float(0,"lastposx",dbhandle);
sInfo[playerid][lastpos_y] = cache_get_field_content_float(0,"lastposy",dbhandle);
sInfo[playerid][lastpos_z] = cache_get_field_content_float(0,"lastposz",dbhandle);
SetPlayerMoney(playerid,cache_get_field_content_int(0,"money",dbhandle));
SetPlayerScore(playerid,sInfo[playerid][level]);
SetSpawnInfo(playerid,0,sInfo[playerid][skin],sInfo[playerid][lastpos_x],sInfo[playerid][lastpos_y],sInfo[playerid][lastpos_z],90.0,0,0,0,0,0,0);
SpawnPlayer(playerid);
return 1;
}
Alles anzeigen
ne funktioniert auch nicht
Hey leute ich habe ein kleines Problem undzwar kann ich als LSPD frakid 2 auf die Waffenkammer zugreifen aber als FBI kann ich nicht auf sie zugreifen dann bekomme ich die Meldung du befindest dich an keiner Waffenkammer
ocmd:waffenkammer(playerid,params[])
{
for(new i=0;i<sizeof(wInfo);i++)
{
if(!IsPlayerInRangeOfPoint(playerid,5,wInfo[i][I_X],wInfo[i][I_Y],wInfo[i][I_Z])) return SendClientMessage(playerid,INFO,"Du bist an keiner Waffenkammer!");
{
if(GetPVarInt(playerid,"Fraktion") == wInfo[i][W_F])
{
switch (GetPVarInt(playerid,"Fraktion"))
{
case 2: ShowPlayerDialog(playerid,20, DIALOG_STYLE_LIST, "{FF8080}WAFFENKAMMER-LSPD","Desert Eagle\nSchrotflinte\nMP5\nM4\nSchlagstock\nWeste\nFunkgerät","Wählen", "");
case 3: ShowPlayerDialog(playerid,21, DIALOG_STYLE_LIST, "{FF8080}WAFFENKAMMER-FBI","Desert Eagle\nM4\nMP5\nSniper\nWeste\nStarke Weste\nFunk","Wählen", "");
}
return 1;
}
else SendClientMessage(playerid,INFO,"Du kannst dieses Waffenkammer nicht benutzen!");
}
}
return 1;
}
enum WAFFENKAMMER{
Name[64],
model,
Float:I_X,
Float:I_Y,
Float:I_Z,
W_F
}
new wInfo[][WAFFENKAMMER] = {
{"Waffenkammer LSPD\n{FF807F}'/waffenkammer'",2061,1563.7622,-1694.1790,16.2705,2},
{"Waffenkammer FBI\n{FF807F}'/waffenkammer'",2061,1865.3834,-1774.6030,-9.1702,3}
};
Ich habe herausgefunden das es damit zusammenhängt das der wenn ein Spieler crasht das er die ID nicht mehr auswählbar ist wenn jemand auf die gecrashte id connectet
Das benutze ich schon
Also es wird mir die Playerid 65535 Ausgegeben nach einem reconnect
aber behebt das das problem mit der Playerid?
es ist bei allen befehlen wo ich eine Playerid angeben muss ich frage die Playerids mit sscanf2 ab und dann mit u
Das ist jetzt mal ein beispiel befehl
ocmd:wa(playerid,params[])
{
new Grund[28],Anzahl,pID;
new string[128],count_string[28];
new NAME[MAX_PLAYER_NAME];
if(sscanf(params,"uis",pID,Anzahl,Grund)) return SendClientMessage(playerid,INFO,"Benutze: /wa [{FFFFFF}Playerid {008080}| {FFFFFF}Namen{008080}] [{FFFFFF}Anzahl{008080}] [{FFFFFF}Grund{008080}]");
{
if(GetPVarInt(playerid,"Fraktion") == 2 || GetPVarInt(playerid,"Fraktion") == 3)
{
if(IsPlayerConnected(pID))
{
new NAMEBAN = GetPlayerName(playerid,NAME,24);
format(string,sizeof(string),"Du hast von{FFFFFF}%s {008080}%d Wanteds bekommen Grund: {FFFFFF}%s{FFFFFF}!",NAMEBAN,Anzahl,Grund);
SendClientMessage(pID,INFO,string);
new NAMEBANVON = GetPlayerName(playerid,NAME,24);
format(string,sizeof(string),"Du hast {FFFFFF}%s {008080}%d Wanteds gegebent Grund: {FFFFFF}%s{008080}!",NAMEBANVON,Anzahl,Grund);
SendClientMessage(playerid,INFO,string);
PlayerTextDrawShow(pID,WACOUNT);
SetPVarInt(pID,"WANTED",GetPVarInt(pID,"WANTED")+Anzahl);
format(count_string,sizeof(count_string),"Wanted %d",GetPVarInt(pID,"WANTED"));
PlayerTextDrawSetString(pID,WACOUNT, count_string);
if(GetPVarInt(pID,"Wanted") <= 0)
{
PlayerTextDrawHide(pID,WACOUNT);
SetPVarInt(pID,"WANTED",0);
}
return 1;
}
else SendClientMessage(playerid,INFO,"Diser Spieler ist nicht Online!");
}
else SendClientMessage(playerid,INFO,"Du bist kein Mitglied einer Staatsfraktion");
}
return 1;
}
Das ist mein Spawn
public OnPlayerSpawn(playerid)
{
PlayerTextDrawDestroy(playerid,BALKEN1);
PlayerTextDrawDestroy(playerid,BALKEN2);
PlayerTextDrawDestroy(playerid,LOSSANTOS);
PlayerTextDrawDestroy(playerid,REALLIFE);
StopAudioStreamForPlayer(playerid);
SetPlayerSkin(playerid,GetPVarInt(playerid,"Skin"));
if(GetPVarInt(playerid,"TOT") > 0)
{
SetPlayerPos(playerid,1550.9017,-1827.8055,-24.3494);
TogglePlayerControllable(playerid,false);
SetPlayerCameraPos(playerid,1458.9214,-1710.5381,82.5252);
SetPlayerCameraLookAt(playerid,1498.7738,-1812.9108,67.5367);
PlayerTextDrawShow(playerid,KHCOUNT);
}
else if(GetPVarInt(playerid,"KNAST") > 0)
{
SetPlayerPos(playerid,1563.2574,-1660.4712,11.6375);
PlayerTextDrawShow(playerid,KHCOUNT);
}
else
switch(GetPVarInt(playerid,"Fraktion"))
{
case 0: {SetPlayerPos(playerid,NOOBSPAWN); SetPlayerVirtualWorld(playerid,NOOBWORLD); SetPlayerInterior(playerid,NOOBINT);SetPlayerColor(playerid,0xFFFFFFFF);}
case 1: {SetPlayerPos(playerid,SANISPAWN); SetPlayerVirtualWorld(playerid,SANIWORLD); SetPlayerInterior(playerid,SANIINT);SetPlayerColor(playerid,0xFF0000FF);}
case 2: {SetPlayerPos(playerid,LSPDSPAWN); SetPlayerVirtualWorld(playerid,LSPDWORLD); SetPlayerInterior(playerid,LSPDINT);SetPlayerColor(playerid,0x009DFFFF);}
case 3: {SetPlayerPos(playerid,FBISPAWN); SetPlayerVirtualWorld(playerid,FBIWORLD); SetPlayerInterior(playerid,FBIINT);SetPlayerColor(playerid,0x0000FFFF);}
}
if(GetPVarInt(playerid,"WANTED") > 0)
{
new count_string[28];
format(count_string,sizeof(count_string),"Wanted %d",GetPVarInt(playerid,"WANTED"));
PlayerTextDrawSetString(playerid,WACOUNT, count_string);
PlayerTextDrawShow(playerid,WACOUNT);
}
if(GetPVarInt(playerid,"Ban") >= 1 )
{
SendClientMessage(playerid,INFO,"Dein Account ist Gebannt");
Kick(playerid);
return 1;
}
return 1;
}
Und Das mein SpawnInfo
SetSpawnInfo(playerid,-1,GetPVarInt(playerid,"Skin"),x,y,z,0,0,0,0,0,0,0);
Ich frage ab ob er online ist über diese abfrage nicht über eine Variable
if(IsPlayerConnected(pID))
Hey leute ich habe das problem das wenn ein spieler sich eine ID z.b. 1 erneut einloggt wird mir dieser wenn mann die ID eingibt nicht mehr als Online erkannt woran könnte es liegen ?
Kann gelcosed werden
Wenn ich es mt ! schreibe gibt er mir alles aus jedoch auch direkt wenn ich keine id bzw Grund eingebe
Ja immer mit ID
Dankeschön das hat geholfen aber noch eine Frage wieso führt er das nicht aus er gibt mir immer wieder die Info aus wie der befehl richtig geschrieben werden soll
ocmd:ban(playerid,params[])
{
if(GetPVarInt(playerid,"Admin") >=1)
{
new Grund,pID;
if(sscanf(params,"us",pID,Grund))
{
SendClientMessage(playerid,INFO,"1");
new string[128];
new NAME[MAX_PLAYER_NAME];
format(string,sizeof(string),"Du wurdest von %s gebannt Grund: %s!",GetPlayerName(playerid,NAME,sizeof(NAME)),Grund);
SendClientMessage(pID,INFO,string);
format(string,sizeof(string),"Du hast %s gebannt Grund: %s!",GetPlayerName(pID,NAME,sizeof(NAME)),Grund);
SendClientMessage(playerid,INFO,string);
return 1;
}
else
SendClientMessage(playerid,INFO,"2");
SendClientMessage(playerid,INFO,"Benutze: /ban [Playerid | Namen] [Grund]"); <-- Den hier
}
else
SendClientMessage(playerid,INFO,"3");
SendClientMessage(playerid,INFO,"Du bist kein Admin");
return 1;
}