Das heißt, dass du Spieler schon einmal definiert hast. Entweder du machst das 'new Spieler...' einfach weg, oder benennst es um, zu xSpieler (oder was auch immer).
Wenn du es nicht verstehst, code von 61500 - 61550 zeigen.
Beiträge von Jeffry
-
-
new aktion[WASHIERSTEHT];
WASHIERSTEHT zu 256 ändern. -
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/s1")) PlayerPlaySound(playerid, 43000, 0.0, 0.0, 0.0);
if(!strcmp(cmdtext, "/s2")) PlayerPlaySound(playerid, 21000, 0.0, 0.0, 0.0);
if(!strcmp(cmdtext, "/s3")) PlayerPlaySound(playerid, 21001, 0.0, 0.0, 0.0);
if(!strcmp(cmdtext, "/s4")) PlayerPlaySound(playerid, 16001, 0.0, 0.0, 0.0);
if(!strcmp(cmdtext, "/s5")) PlayerPlaySound(playerid, 16003, 0.0, 0.0, 0.0);
return 1;
}Funktionieren alle.
Beweis:
Externer Inhalt www.youtube.comInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt. -
Das kommt doch in den Befehl rein oder
Genau. -
Also bei mir haben alle getan, sonst hätte ich sie dir ja nicht sagen können.
Hast du das Spiel heruntergeladen, und/oder ohne Audiofiles installiert? -
new Float:vhealth, string[64];
GetVehicleHealth(vehicleid, vhealth);
format(string, sizeof(string), "Health: %d%%", floatround(vhealth/10.0));
TextDrawSetString... -
Ja, ich habe 3 Autos kann ich das irgendwie alles auf 1machen das ich den Code nur einmal schreiben muss?
Wenn Ja, nein das funktioniert nicht.
Doch. Am Beispiel meines vorherigen Codes:new Fahrschulauto[3];
Fahrschulauto[0] = CreateVehicle...
Fahrschulauto[1] = CreateVehicle...
Fahrschulauto[2] = CreateVehicle...for(new i=0; i<sizeof(Fahrschulauto); i++)
{
if(GetPlayerVehicleID(playerid) == Fahrschulauto[i])
{
//Fahrschule startet.
//...
return 1;
}
}
return SendClientMessage(playerid, ROT, "ERROR: Du musst im Fahrschulauto sein."); -
Das ist doch irgend wie falsch oder nicht ?
Nein, das definiert eben 1 Auto. Daran ist nichts falsch.In deinem Code fehtl aber mindestens eine Schleife die diese Array durchläuft.
-
WBB_BanUser(SpielerName(id), gMessage);
Unter der Vorraussetzung, dass der Ingame Name der gleiche ist, als der auf dem Forum. Auf alle Fälle ist der erste Parameter ein string, und kein Integer. -
warum das "%s" in dem 2. String?
Das hat schon seine Richtigkeit mit dem %s, weil dort das obige querystring eingesetzt wird. Ich habe strcat entfernt, und es so gemacht.
Das was du gepostet hast, wird unter Garantie nicht funktionieren.EDIT:
Das Problem wurde behoben. Der Fehler war, dass SpielerInfo[playerid][pName] nie gesetzt wurde, also NULL war.Dieser code ist zudem der richtige, wie schon zuvor gesagt:
new querystring[1024];
format(querystring,1024,"UPDATE accounts SET Level = '%d', Geld = '%d', Kills = '%d', Tode = '%d', Fraktion = '%d', Adminlevel = '%d', Mute = '%d', Baned = '%d',",SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pGeld],SpielerInfo[playerid][pKills],SpielerInfo[playerid][pTode],SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pAdminlevel],SpielerInfo[playerid][pMute],SpielerInfo[playerid][pBaned]);
format(querystring, 1024,"%s Fraktionsleader = '%d', Rang = '%d', Job = '%d', Skin = '%d', Warns = '%d' WHERE Name = '%s'",querystring, SpielerInfo[playerid][pFraktionsleader],SpielerInfo[playerid][pRang],SpielerInfo[playerid][pJob],SpielerInfo[playerid][pSkin],SpielerInfo[playerid][pWarns],SpielerInfo[playerid][pName]);
mysql_query(querystring); -
Oben im code:
new Fahrschulauto;OnGameModeInit:
Fahrschulauto = CreateVehicle...Beim command:
if(GetPlayerVehicleID(playerid) == Fahrschulauto)
{
//Fahrschule startet.
}
else SendClientMessage(playerid, ROT, "ERROR: Du musst im Fahrschulauto sein."); -
SAB0h: Ich glaube er weiß nicht was du mit ''variable'' meinst.
if(!strcmp(SpielerName(playerid), "Fritz"))
{
//Fritz öffnet das Tor...
}Und das true kannst du weglassen, sonst könnte ja auch FritZ und fRITZ, etc... das tor öffnen.
-
stock IstPasswort(string[])
{
new buch, zahl;
for(new i=0; i<strlen(string); i++)
{
if(string[i] >= '0' && string[i] <= '9') zahl = 1;
if((string[i] >= 'a' && string[i] <= 'z') || (string[i] >= 'A' && string[i] <= 'Z')) buch = 1;
}
if(zahl == 1 && buch == 1) return true;
else return false:
}Das würde das tun was du willst, abfragen ob mindestens 1 Zahl und mindestens 1 Buchstabe vorhanden ist.
-
Einmal das probieren:
new querystring[1024];
format(querystring,1024,"UPDATE accounts SET Level = '%d', Geld = '%d', Kills = '%d', Tode = '%d', Fraktion = '%d', Adminlevel = '%d', Mute = '%d', Baned = '%d',",SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pGeld],SpielerInfo[playerid][pKills],SpielerInfo[playerid][pTode],SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pAdminlevel],SpielerInfo[playerid][pMute],SpielerInfo[playerid][pBaned]);
format(querystring, 1024,"%s Fraktionsleader = '%d', Rang = '%d', Job = '%d', Skin = '%d', Warns = '%d' WHERE Name = '%s'",querystring, SpielerInfo[playerid][pFraktionsleader],SpielerInfo[playerid][pRang],SpielerInfo[playerid][pJob],SpielerInfo[playerid][pSkin],SpielerInfo[playerid][pWarns],SpielerInfo[playerid][pName]);
mysql_query(querystring);Und einmal das: (wobei wenn das tut, versteh ich die Welt nicht mehr)
new querystring[1024];
format(querystring,1024,"UPDATE `accounts` SET `Level` = '%d', `Geld` = '%d', `Kills` = '%d', `Tode` = '%d', `Fraktion` = '%d', `Adminlevel` = '%d', `Mute` = '%d', `Baned` = '%d',",SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pGeld],SpielerInfo[playerid][pKills],SpielerInfo[playerid][pTode],SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pAdminlevel],SpielerInfo[playerid][pMute],SpielerInfo[playerid][pBaned]);
format(querystring, 1024,"%s `Fraktionsleader` = '%d', `Rang` = '%d', `Job` = '%d', `Skin` = '%d', `Warns` = '%d' WHERE `Name` = '%s'",querystring, SpielerInfo[playerid][pFraktionsleader],SpielerInfo[playerid][pRang],SpielerInfo[playerid][pJob],SpielerInfo[playerid][pSkin],SpielerInfo[playerid][pWarns],SpielerInfo[playerid][pName]);
mysql_query(querystring);Nacht.
Wenn es bis morgen mittag keine Lösung gibt, schau ich es mir mit TeamViewer mal an. Ich mach das ungern, aber das will ich jetzt doch gelöst haben. -
Dann bin ich raus. Du kannst höchstens die `` hinzufügen, vielleicht sind die bei deinem Plugin/DB doch relevant, wobei die chancen ziemlich klein sind, dass das so ist.
Ich hab aber noch einen Fehler beim Laden entdeckt:
format(str,300,"SELECT Level, Geld, Kills, Tode, Fraktion, Adminlevel, Mute, Baned, Fraktionsleader, Rang, Job, Warns Skin FROM accounts WHERE Name = '%s'", SpielerInfo[playerid][pName]);
Zwischen Warns und Skin fehlt ein Komma.format(str,300,"SELECT Level, Geld, Kills, Tode, Fraktion, Adminlevel, Mute, Baned, Fraktionsleader, Rang, Job, Warns, Skin FROM accounts WHERE Name = '%s'", SpielerInfo[playerid][pName]);
-
Nein, du hast ja noch eine Zweite Reihe, und setzt auch noch Dinge ein.
Setz die beiden strings doch mal auf 512 und 256, Zunno hat damit absolut Recht.new querystring[512],str[256];
format(querystring,512,"UPDATE accounts SET Level = '%d', Geld = '%d', Kills = '%d', Tode = '%d', Fraktion = '%d', Adminlevel = '%d', Mute = '%d', Baned = '%d',",SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pGeld],SpielerInfo[playerid][pKills],SpielerInfo[playerid][pTode],SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pAdminlevel],SpielerInfo[playerid][pMute],SpielerInfo[playerid][pBaned],SpielerInfo[playerid][pName]);
format(str,256," Fraktionsleader = '%d', Rang = '%d', Job = '%d', Skin = '%d', Warns = '%d' WHERE Name = '%s'",SpielerInfo[playerid][pFraktionsleader],SpielerInfo[playerid][pRang],SpielerInfo[playerid][pJob],SpielerInfo[playerid][pSkin],SpielerInfo[playerid][pWarns],SpielerInfo[playerid][pName]);
strcat(querystring,str);
mysql_query(querystring);Edit:
Noch einen Tip dazu:
Wenn du mit strings jeder Art arbeitest und irgendwas nicht tut: print(string);
Das hilft SEHR oft weiter. -
Tut mir leid, war mein Fehler im ersten Post. Nimm den Code aus meinem ersten Post, hab ihn geändert.
EDIT:
Also das da
format(querystring,256,"UPDATE accounts SET Level = '%d', Geld = '%d', Kills = '%d', Tode = '%d', Fraktion = '%d', Adminlevel = '%d', Mute = '%d', Baned = '%d',",SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pGeld],SpielerInfo[playerid][pKills],SpielerInfo[playerid][pTode],SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pAdminlevel],SpielerInfo[playerid][pMute],SpielerInfo[playerid][pBaned],SpielerInfo[playerid][pName]);
format(str,128," Fraktionsleader = '%d', Rang = '%d', Job = '%d', Skin = '%d', Warns = '%d' WHERE Name = '%s'",SpielerInfo[playerid][pFraktionsleader],SpielerInfo[playerid][pRang],SpielerInfo[playerid][pJob],SpielerInfo[playerid][pSkin],SpielerInfo[playerid][pWarns],SpielerInfo[playerid][pName]); -
Wie schon gesagt, die ` ` sind nicht relevant. Da hatte ich vor paar Tagen erst Tests ausgeführt, die das bestätigt haben.
Schlicht und einfach ist hinten im ersten Teil des queries ein ' zu viel.
-
Erste Zeile im query ganz hinten. Da ist ein ' zu viel.
-
Ist nicht relevant.
format(querystring,256,"UPDATE accounts SET Level = '%d', Geld = '%d', Kills = '%d', Tode = '%d', Fraktion = '%d', Adminlevel = '%d', Mute = '%d', Baned = '%d',",SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pGeld],SpielerInfo[playerid][pKills],SpielerInfo[playerid][pTode],SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pAdminlevel],SpielerInfo[playerid][pMute],SpielerInfo[playerid][pBaned],SpielerInfo[playerid][pName]);
format(str,128," Fraktionsleader = '%d', Rang = '%d', Job = '%d', Skin = '%d', Warns = '%d' WHERE Name = '%s'",SpielerInfo[playerid][pFraktionsleader],SpielerInfo[playerid][pRang],SpielerInfo[playerid][pJob],SpielerInfo[playerid][pSkin],SpielerInfo[playerid][pWarns],SpielerInfo[playerid][pName]);In der ersten query Zeile hättest du auch ein WHERE, das musste weg.