Du musst das "oder" mit einem "und" ersetzen. Also
zu
Heißt: Wenn der Spieler NICHT legit Admin ist UND gleichzeitig NICHT als RCON Admin angemeldet ist, dann soll der Befehl NICHT ausgeführt werden
Du musst das "oder" mit einem "und" ersetzen. Also
zu
Heißt: Wenn der Spieler NICHT legit Admin ist UND gleichzeitig NICHT als RCON Admin angemeldet ist, dann soll der Befehl NICHT ausgeführt werden
Du musst das "oder" mit einem "und" ersetzen. Also
zu
Heißt: Wenn der Spieler NICHT legit Admin ist UND gleichzeitig NICHT als RCON Admin angemeldet ist, dann soll der Befehl NICHT ausgeführt werden
&& = und
| | = oder
In diesem Fall war
schon richtig.
Ansonsten wird halt abgefragt, ob Spieler LegitAdmin und RconAdmin ist.
Also:
Schönen guten Morgen,
vllt. liegt es an der Uhrzeit aber ich habe aktuell das Problem das er in der Datenbank immer nur einen Eintrag anlegt und keine weiteren.
Ich kann so jetzt keinen Fehler auf die schnelle finden.
format(query, sizeof(query), "INSERT INTO `"tabelle_charakter"` (`Vorname`, `Nachname`, `GB_D`, `GB_M`, `GB_J`, `Skin`, `Bargeld`, `AccountID`) VALUES ('%s','%s','%d','%d','%d','%d','%0.2f','%d')",Vorname,Nachname,Tag,Monat,Jahr,NeulingSkin,NeulingBargeld,Account[playerid][a_id]);
mysql_query(MySQL,query);
Wenn ich den Eintrag lösche wird problemlos ein neuer Eintrag angelegt.
Aber er legt irgendwie nie mehr als einen Eintrag an.
Guten morgen
Hat er das schon immer femacht oder erst seit kurzem ?
Das ist eine gute Frage, ich habe das bisher noch nicht getestet gehabt.
Aber bei dem Account ist es der selbe Fall.
Er legt immer nur einen Eintrag an.
Die Verbindung zu der Datenbank besteht und von der Struktur müsste es ja auch stimmen oben.
ok
Kannst du nach dem du ein Account Angelegt hast noch ein Charakter anlegen? Oder geht davon auch immer nur eins.
Sieht so aus als hast du vergessen, die Spalte ID auf AUTO_INCREMENT (A_I) zu setzen.
Wie setzt ich am besten, nachdem die MySQL funktion das car gespawnt hab, eine Variable mit der gespawnten Vehicle ID?
Wäre nämlich gut wenn das [î] im Vehicle[î][fData] nach dem Spawn zum Vehicle[vehicleId][fData] wird
CodeAlles anzeigenstock LoadVehs() { new rows,fields; new Cache:Vehs = mysql_query(handle, "SELECT * FROM `fahrzeuge`",true); cache_get_data(rows,fields); for(new i=0;i<rows;i++) { Vehicle[i][VID] = cache_get_field_content_int(i, "id"); Vehicle[i][fModel] = cache_get_field_content_int(i, "modelid"); Vehicle[i][fSposX] = cache_get_field_content_float(i, "sPos-X"); Vehicle[i][fSposY] = cache_get_field_content_float(i, "sPos-Y"); Vehicle[i][fSposZ] = cache_get_field_content_float(i, "sPos-Z"); Vehicle[i][fSposO] = cache_get_field_content_float(i, "sPos-O"); Vehicle[i][fColor1] = cache_get_field_content_int(i, "color_1"); Vehicle[i][fColor2] = cache_get_field_content_int(i, "color_2"); Vehicle[i][fFrak] = cache_get_field_content_int(i, "fraktion_id"); Vehicle[i][fSirene] = cache_get_field_content_int(i, "sirene"); Vehicle[i][fFuel] = cache_get_field_content_int(i, "tank"); cache_get_field_content(i,"besitzer", Vehicle[i][fOwner],handle,32); cache_get_field_content(i,"lastdriver", Vehicle[i][fLastDriver],handle,32); cache_get_field_content(i,"2besitzer", Vehicle[i][fSecond_Owner],handle,32); cache_get_field_content(i,"plate", Vehicle[i][fPlate],handle,32); SetVehicleParamsEx(i, false, false, false, false, false, false, false); new cCarID = CreateVehicle(Vehicle[i][fModel],Vehicle[i][fSposX],Vehicle[i][fSposY],Vehicle[i][fSposZ],Vehicle[i][fSposO],Vehicle[i][fColor1],Vehicle[i][fColor2], CAR_RESPAWN_TIME,Vehicle[i][fSirene]); new numberplate[256]; format(numberplate, sizeof (numberplate), "%s %d", Vehicle[i][fPlate], Vehicle[i][VID]); SetVehicleNumberPlate(cCarID, numberplate); if (Vehicle[i][fFrak] == 3) { if (Vehicle[i][fModel] == 560) { SireneSAMD[i] = CreateObject(19419, 0.00, 0.20, 0.85, 0.00, 0.00, 0.00, 50.0); AttachObjectToVehicle(SireneSAMD[i], cCarID, 0.00, 0.00, 0.81, 0, 0, 0); } } } cache_delete(Vehs); print("Vehicles Spawned"); return 1; }
mal n kleiner push ![]()
Sieht so aus als hast du vergessen, die Spalte ID auf AUTO_INCREMENT (A_I) zu setzen.
Danke, genau das war der Fall.
Jetzt geht beides einwandfrei.
@fishy Du kannst in deinem Enum einfach einen neuen Eintrag machen der z.B. s_id für serverid heißt und verknüpfst diese dann einfach mit CreateVehicle.
enum playercarInfo {
s_id,
// usw...
}
// Bei dir dann z.B.:
Vehicle[i][s_id] = CreateVehicle(...); // So ist dann jedes Auto mit der s_id verknüpft.
Mir gings eher darum, dass ich jetzt das [î] ersetze, sodass ich nicht immer eine Schleife mit einer SQL Abfrage machen muss da ich das nicht ganz verstehe
Wieso sagt er mir immer, dass ich keine Befugnisse habe, trotz ich den Schlüssel ganz klar auf einen der pHaus Slots habe. pHaus wurde mit pHaus[3] erstellt.
command(garage, playerid, params[])
{
new Float:x, Float:y, Float:z, string[128], mainstring[2000];
GetPlayerPos(playerid, x, y, z);
for(new i=0;i<MAX_HAUS;i++){
if(HausInfo[i][h_erstellt] == 1){
printf("%d", i);
if(IsPlayerInRangeOfPoint(playerid, 5.0, HausInfo[i][g_x], HausInfo[i][g_y], HausInfo[i][g_z])){
for(new ii=0;ii<3;ii++){
if(Spieler[playerid][pHaus][ii] == i){
if(IsPlayerInAnyVehicle(playerid)){
ShowPlayerDialog(playerid, DIALOG_GARAGE, DIALOG_STYLE_LIST, "Test", "Fahrzeug reinstellen","Weiter","Abbruch");
}
else{
for(new g=0;g<3;g++){
if(HausInfo[i][g_slot][ii] == 0 && HausInfo[i][g_fahrzeug][ii] == 0){
format(string, sizeof(string), "Frei\n");
strcat(mainstring, string);
}
else if(HausInfo[i][g_slot][ii] != 0 && HausInfo[i][g_fahrzeug][ii] != 0){
format(string, sizeof(string), "%d - %s\n", HausInfo[i][g_fahrzeug][ii], VehicleNames[GetVehicleModel(HausInfo[i][g_fahrzeug][ii]) - 400]);
strcat(mainstring, string);
}
}
ShowPlayerDialog(playerid, DIALOG_GARAGE_RAUS, DIALOG_STYLE_LIST, "Test", string, "Rausholen", "Abbruch");
}
}
}
return SendClientMessage(playerid, -1, ""#SERVERF" Du hast keine Befugniss für diese Garage!");
}
}
}
return 1;
}
Hi, wieso erhalte ich 2 Warnings?
CMD:sloc(playerid,params[])
{
new Float:pos1, Float:pos2, Float:pos3, int;
if(sscanf(params,"fffd",floatstr(params),pos1,pos2,pos3,int))
return SendClientMessage(playerid,-1,"Use: /sloc x y z interiorid");
if(IsPlayerInAnyVehicle(playerid))
{
SetVehiclePos(GetPlayerVehicleID(playerid),floatstr(params),pos1,pos2, pos3); //warning hier
LinkVehicleToInterior(GetPlayerVehicleID(playerid),int);
}
else
{
SetPlayerPos(playerid,floatstr(params),pos1,pos2,pos3); //Warning hier
SetPlayerInterior(playerid,int);
}
return 1;
}
warning 202: number of arguments does not match definition
Entferne alle 3 Vorkommen von floatstr(params) in dem Befehl, die sind alle nicht korrekt.
Hi, wieso erhalte ich 2 Warnings?
CMD:sloc(playerid,params[]) { new Float:pos1, Float:pos2, Float:pos3, int; if(sscanf(params,"fffd",floatstr(params),pos1,pos2,pos3,int)) return SendClientMessage(playerid,-1,"Use: /sloc x y z interiorid"); if(IsPlayerInAnyVehicle(playerid)) { SetVehiclePos(GetPlayerVehicleID(playerid),floatstr(params),pos1,pos2, pos3); //warning hier LinkVehicleToInterior(GetPlayerVehicleID(playerid),int); } else { SetPlayerPos(playerid,floatstr(params),pos1,pos2,pos3); //Warning hier SetPlayerInterior(playerid,int); } return 1;}
warning 202: number of arguments does not match definition
Das bedeutet das du zuviele/zuwenige argumente gesetzt hast
<p>
</p>
Wieso sagt er mir immer, dass ich keine Befugnisse habe, trotz ich den Schlüssel ganz klar auf einen der pHaus Slots habe. pHaus wurde mit pHaus[3] erstellt.
command(garage, playerid, params[]){ new Float:x, Float:y, Float:z, string[128], mainstring[2000]; GetPlayerPos(playerid, x, y, z); for(new i=0;i<MAX_HAUS;i++){ if(HausInfo[i][h_erstellt] == 1){ printf("%d", i); if(IsPlayerInRangeOfPoint(playerid, 5.0, HausInfo[i][g_x], HausInfo[i][g_y], HausInfo[i][g_z])){ for(new ii=0;ii<3;ii++){ if(Spieler[playerid][pHaus][ii] == i){ if(IsPlayerInAnyVehicle(playerid)){ ShowPlayerDialog(playerid, DIALOG_GARAGE, DIALOG_STYLE_LIST, "Test", "Fahrzeug reinstellen","Weiter","Abbruch"); } else{ for(new g=0;g<3;g++){ if(HausInfo[i][g_slot][ii] == 0 && HausInfo[i][g_fahrzeug][ii] == 0){ format(string, sizeof(string), "Frei\n"); strcat(mainstring, string); } else if(HausInfo[i][g_slot][ii] != 0 && HausInfo[i][g_fahrzeug][ii] != 0){ format(string, sizeof(string), "%d - %s\n", HausInfo[i][g_fahrzeug][ii], VehicleNames[GetVehicleModel(HausInfo[i][g_fahrzeug][ii]) - 400]); strcat(mainstring, string); } } ShowPlayerDialog(playerid, DIALOG_GARAGE_RAUS, DIALOG_STYLE_LIST, "Test", string, "Rausholen", "Abbruch"); } } } return SendClientMessage(playerid, -1, ""#SERVERF" Du hast keine Befugniss für diese Garage!"); } } } return 1;}
@Der Lümmel:
Lass dir einfach mal pHaus[i] und i printen
@[LnD]JustMe.77 Was soll denn floatstr(params) bewirken ?
CMD:sloc(playerid,params[])
{
new Float:pos1, Float:pos2, Float:pos3, int;
if(sscanf(params,"fffd",pos1,pos2,pos3,int)) return SendClientMessage(playerid,-1,"Use: /sloc x y z interiorid");
if(IsPlayerInAnyVehicle(playerid)) {
SetVehiclePos(GetPlayerVehicleID(playerid),pos1,pos2, pos3);
LinkVehicleToInterior(GetPlayerVehicleID(playerid),int);
} else {
SetPlayerPos(playerid,pos1,pos2,pos3);
SetPlayerInterior(playerid,int);
}
return 1;
}
Alles anzeigen