Dein user "samp" wird nicht die richtigen Berechtigungen haben, dass ist auf localhost (dein Rechner) so eingestellt, standardmäßig zumindest.
Deshalb benutze, wie ich oben geschrieben habe, den root - User ohne Passwort, der hat ALLE Berechtigungen. Dem kannst du später auch, je nach client, ein Passwort geben.
Beiträge von Jeffry
-
-
Nimm den "root" Benutzer ohne Passwort:
#define MYSQL_HOST "127.0.0.1"
#define MYSQL_USER "root"
#define MYSQL_PASS ""
#define MYSQL_DATA "DATENBANKNAME"Das ist in 99% aller Fälle standardmäßig so eingestellt.
-
Das ist so nicht ganz korrekt. Es können lediglich 128 Zeichen ausgegeben werden, es werden jedoch nur 128 Zeichen von Nachrichten bis zu einer Länge von 144 ausgegeben. Von Strings länger als 144 Zeichen wird garnichts ausgegeben.
Du darfst gerne nachzählen. 144 Zeichen bei SendClientMessage. Ich würde es nicht sagen, wenn ich es nicht ausprobiert hätte.
Überprüfe, ob der Spieler in der Schleife überhaupt verbunden ist oder besser: Verwende foreach!
Ist nicht nötig, wenn er seinen Code gescheit gemacht hat. Verlässt ein Spieler den Server, so kann er auch nicht mehr in der BlackList sein, daher ist eine Überprüfung nicht von Nöten.
foreach ist hier absolut unangebracht, ich mülle einen "Anfänger" nicht mit zig Plugins zu, da lernt er nichts und es macht die Sache nur unnötig kompliziert.
Verwende strcat(), wenn immer möglich. Ist um einiges performanter als format und zum Beispiel für das Komma vor der Ausgabe besser geeignet.
Auch hier ist format die wesentlich einfachere und übersichtlichere Methode, besonders für Leute die noch relativ frisch im Bereich Scripting sind. Außerdem sprechen wir hier von Mikrosekunden bei heutigen Prozessoren, das macht hier einen irrelevanten Unterschied. Hier geht es eher darum, dass er den Code versteht, nicht, dass er 100% optimiert ist und er ihn dann nicht mehr versteht.
Überprüfe am Ende, ob überhaupt ein Spieler im String steht - ansonsten gebe auch nichts aus oder eine Fehlermeldung.
Danke.Pr0x:
Tut mir Leid, hatte falschherum gedacht. Das Komma kommt natürlich danach, der string ist ja Anfangs leer.
if(PlayerInfo[playerid][pLeader] == 5 || PlayerInfo[playerid][pMember] == 5)
{
SendClientMessage(playerid,COLOR_LIGHTBLUE,"Blacklist Spieler Online:"); //Ausgabe der Überschrift
for(new i=0; i<MAX_PLAYERS; i++)
{
if(PlayerInfo[i][pLaCosaNostraBL] == 1)
{
if(4 + strlen(string) + strlen(SpielerName(i)) < sizeof(string)) format(string,sizeof(string),"%s%s, ",string, SpielerName(i)); //Wenn der Name ''noch in den string passt'', füge ihn ein.
else
{
SendClientMessage(playerid,COLOR_YELLOW,string); //Wenn nicht, gebe alles bisherige aus
format(string,sizeof(string),"%s, ",SpielerName(i)); //Und starte eine neue Zeile
}
}
}
if(!strlen(string)) SendClientMessage(playerid,COLOR_YELLOW,"Keiner Online");
else
{
strdel(string, strlen(string)-2, strlen(string)); //Macht das letzte Komma weg.
format(string,sizeof(string),"%s.",string); //Sind alle Spieler durch, kommt ans Ende ein Punkt.
SendClientMessage(playerid,COLOR_YELLOW,string);
}
} -
(Beachte maximale Länge von 128!)
Falsch. Maximal können 144 Zeichen ausgegeben werden.--------------------------
Pr0x:
Da du mich in einer PN so nett um Hilfe gebeten hast:
if(PlayerInfo[playerid][pLeader] == 5 || PlayerInfo[playerid][pMember] == 5)
{
SendClientMessage(playerid,COLOR_LIGHTBLUE,"Blacklist Spieler Online:"); //Ausgabe der Überschrift
for(new i=0; i<MAX_PLAYERS; i++)
{
if(PlayerInfo[i][pLaCosaNostraBL] == 1)
{
if(4 + strlen(string) + strlen(SpielerName(i)) < sizeof(string)) format(string,sizeof(string),"%s, %s",string, SpielerName(i)); //Wenn der Name ''noch in den string passt'', füge ihn ein.
else
{
format(string,sizeof(string),"%s,",string);
SendClientMessage(playerid,COLOR_YELLOW,string); //Wenn nicht, gebe alles bisherige aus (mit einem Komma am Ende)
format(string,sizeof(string),"%s",SpielerName(i)); //Und starte eine neue Zeile
}
}
}
format(string,sizeof(string),"%s.",string); //Sind alle Spieler durch, kommt ans Ende ein Punkt.
SendClientMessage(playerid,COLOR_YELLOW,string);
}Ich habe es nicht getestet. Falls es nicht tut, gib mir bitte Bescheid und erkläre, was nicht funktioniert. Es sollte aber funktionieren.
-
-
^ Post oben: Das macht immer noch keinen Sinn. 4 Platzhalter und dazu nur 2 Variablen.
Ist bereits behoben. Thread kann geschlossen werden.
Weiteres Problem mit meinen Reportsystem -
Pr0x:
new tmp;
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(GetPVarInt(i,"ReportTyp")>0)
{
if(tmp == listitem)
{
new spname[MAX_PLAYER_NAME];
GetPlayerName(i, spname, sizeof(spname));
format(string,sizeof(string),"Ich habe %s (ID: %d) angeklickt.",spname,i);
SendClientMessage(playerid, -1, string);
return 1;
}
tmp++;
}
}In der Art, wenn dein Report-System so funktioniert wie ich das aus den paar Zeilen erahnen konnte.
-
format(string,sizeof(string),"\n%s (ID:%i)",spname,i);
zu:
format(string,sizeof(string),"%s\n%s (ID:%i)",string,spname,i);Du musst den "string" mitnehmen.
-
-
Sicher, dass die Sache auch aufgerufen wird?
Wird die Nachricht angezeigt?Was genau "tut nicht"?
-
Racemode = 0;
Racelaps = 1;
fback=LoadRace("Rennen001"); //Fehlte
SendClientMessageToAll(0xFF8C00FF,"\'Rennen001\' wurde erfolgreich Geladen!");
startrace();
Racemode = 0; -
Da kannst du nur eins machen: Pixel zählen. Lass dir alle Buchstaben und Zahlen in einem Dialog ausgeben, nimm ein Bildverarbeitungstool wie gimp und zähle dann durch größten Zoom die Pixel.
Ein Tabulator hat 40 Pixel, für jede 40 Pixel also ein Tabulator weniger.
Und noch was: Bei Full HD Auflösung sind die Pixelbreiten anders als bei den anderen.
Anschließend gehst du Buchstabe für Buchstabe deine textzeile durch (Script: schleife) und lässt dir die Anzahl der Pixel bis zu dem Punkt ausgeben an dem du den Tabulator brauchst.
-
(StripNL = Strippende Niederländer oder was?! 8|)
StripNL(str[]) /* Credits to Y_Less */
{
new l=strlen(str);
while(l--&&str[l]<=' ')str[l]='\0';
}Ganz unten im Code einfügen, fertig.
Ist bei der Include dabei.
-
hat jemand von euch ein gutes " SetPlayerAttachedObject " Filterscript.. wo man ingame eben die objecte anpassen kann..
was auch funktioniert auf der neusten Version ?
http://forum.sa-mp.com/showthread.php?t=416138
Bestes meiner Meinung nach. -
Hast du schon versucht es neu runterzuladen/installieren?
Wenn das nicht klappt, versuch es mal indem du die Pfade (Installation und/oder Server Ordner) änderst.
Wenn das auch nicht klappt wäre es wohl am besten du wendest dich an Trooper direkt, aber vielleicht ist es mit einer Neuinstallation getan.Mehr kann ich dir leider nicht sagen, in der Art ist mir das auch neu. Wenn du es behoben bekommst, kannst wenn du willst mir mitteilen wie du es behoben hast.
-
Wie sieht denn dein Code bei den #include's aus?
Welche include's hast du im /pawno/includes Ordner? -
Mach mal:
savecar(playerid, vehID)
{
new Autodatei[64];
new name[MAX_PLAYER_NAME];
new Float:X, Float:Y, Float:Z,Float:R;
GetVehiclePos(vehID, X, Y, Z);
GetVehicleZAngle(vehID,R);
GetPlayerName(playerid,name,sizeof(name));
format(Autodatei,sizeof(Autodatei),"/Autos/%s.txt",name);
dini_FloatSet(Autodatei, "X", X);
dini_FloatSet(Autodatei, "Y", Y);
dini_FloatSet(Autodatei, "Z", Z);
return 1;
}Und bei OnVehicleExit:
savecar(playerid, vehicleid); -
Das Ausrufezeichen vor einer Abfrage steht für ==0
Hast du ein Ausrufezeichen und ein ==irgendwas dann hast du eine doppelte Abfrage und der Compiler weiß nicht was er machen soll.Nicht 0
variable!=00
variable==0
!variable1
variable==1Nicht 1
variable!=1
!(variable==1)(letztes Beispiel: Wenn eine positive Abfrage negiert wird, dann mit klammern.)
Das letzte Beispiel trifft auf dich zu. -
Entweder
if(frakint[playerid] == 0)return SendClientMessage(playerid,FEHLER,"Sie sind in keiner Fraktion.");Oder
if(!frakint[playerid])return SendClientMessage(playerid,FEHLER,"Sie sind in keiner Fraktion.");Beide sind semantisch identisch. Welches du benutzt bleibt dir überlassen, beides das selbe.
-
new Text3D:fahrzeug3D[10],noobroller[15];
noobroller[0] = AddStaticVehicle(462,-1987.3813,148.4811,27.1059,179.7594,13,13); // roller 1
noobroller[1] = AddStaticVehicle(462,-1987.3904,145.3675,27.1072,179.1660,13,13); // roller2
noobroller[2] = AddStaticVehicle(462,-1987.3308,142.0002,27.0940,178.8945,13,13); // roller3
noobroller[3] = AddStaticVehicle(462,-1987.4456,133.3422,27.1088,178.5343,13,13); // roller4
noobroller[4] = AddStaticVehicle(462,-1987.3724,130.1059,27.1052,183.0501,13,13); // roller5
noobroller[5] = AddStaticVehicle(462,-1987.2444,127.0686,27.1079,181.5083,13,13); // roller6
fahrzeug3D[0] = Create3DTextLabel("Neulingsfahrzeug",CGRUEN,0.0,0.0,0.0,50.0,0,1);
Attach3DTextLabelToVehicle(fahrzeug3D[0],noobroller[0], 0.0,0.0,2.0);
fahrzeug3D[1] = Create3DTextLabel("Neulingsfahrzeug",CGRUEN,0.0,0.0,0.0,50.0,0,1);
Attach3DTextLabelToVehicle(fahrzeug3D[1],noobroller[1], 0.0,0.0,2.0);
fahrzeug3D[2] = Create3DTextLabel("Neulingsfahrzeug",CGRUEN,0.0,0.0,0.0,50.0,0,1);
Attach3DTextLabelToVehicle(fahrzeug3D[2],noobroller[2], 0.0,0.0,2.0);
fahrzeug3D[3] = Create3DTextLabel("Neulingsfahrzeug",CGRUEN,0.0,0.0,0.0,50.0,0,1);
Attach3DTextLabelToVehicle(fahrzeug3D[3],noobroller[3], 0.0,0.0,2.0);
fahrzeug3D[4] = Create3DTextLabel("Neulingsfahrzeug",CGRUEN,0.0,0.0,0.0,50.0,0,1);
Attach3DTextLabelToVehicle(fahrzeug3D[4],noobroller[4], 0.0,0.0,2.0);
fahrzeug3D[5] = Create3DTextLabel("Neulingsfahrzeug",CGRUEN,0.0,0.0,0.0,50.0,0,1);
Attach3DTextLabelToVehicle(fahrzeug3D[5],noobroller[5], 0.0,0.0,2.0);Erst die Definition dann die Autos erstellen.