Schaue dir dazu dieses Tutorial an:
http://forum.sa-mp.com/showthread.php?t=162488
Beiträge von Jeffry
-
-
new count;
if(strlen(msg1) > 0) count++;
if(strlen(msg2) > 0) count++;
if(strlen(msg3) > 0) count++;
if(strlen(msg4) > 0) count++;
if(strlen(msg5) > 0) count++;
printf("Du hast %d Nachrichten.", count);Alternativ mit einer Schleife und einem Array:
new count;
for(new i = 0; i < 5; i++) if(strlen(msg[i]) > 0) count++;
printf("Du hast %d Nachrichten.", count);Zu deinem Edit:
Das kannst du mit einem MySQL Query machen.
SELECT * FROM user WHERE nachricht1 = ''; -
Da ich leider keine Website zum hochladen habe um es in denn Script einzufügen wollte ich fragen wie das geht.
Du kannst die Dateien auch z.B. bei Dropbox hochladen und über den direkten Link abspielen (vorher freigeben).
http://www.heise.de/ct/hotline…ropbox-Datei-2065203.html -
In dem einen mysql_format hat der Spoiler in den Parametern gefehlt.
Versuche es so:
mysql_format(MySqlConnection,query,sizeof(query),"AbgeschlepptPreis='%d',AbgeschlepptGrund='%s',Nummernschild='%s',Neon='%d',Spoiler='%d',Hood='%d',Roof='%d',Sideskirt='%d',Lamps='%d',Nitro='%d',Exhaust='%d',Wheels='%d',Stereo='%d',Hydraulics='%d',FrontBumper='%d',RearBumper='%d',VentRight='%d',VentLeft='%d',",
vFahrzeug[Fahrzeug[fv][Vehicle]][AbgeschlepptPreis],vFahrzeug[Fahrzeug[fv][Vehicle]][AbgeschlepptGrund],Fahrzeug[fv][Nummernschild],vFahrzeug[Fahrzeug[fv][Vehicle]][Neon],vFahrzeug[Fahrzeug[fv][Vehicle]][Spoiler],Fahrzeug[fv][Hood],Fahrzeug[fv][Roof],Fahrzeug[fv][Sideskirt],Fahrzeug[fv][Lamps],Fahrzeug[fv][Nitro],Fahrzeug[fv][Exhaust],Fahrzeug[fv][Wheels],Fahrzeug[fv][Stereo],Fahrzeug[fv][Hydraulics],
Fahrzeug[fv][FrontBumper],Fahrzeug[fv][RearBumper],Fahrzeug[fv][VentRight],Fahrzeug[fv][VentLeft]);
strcat(mainquery,query); -
Das ist die Speicherung.
Werden deine Fahrzeuge doppelt in die Datenbank eingetragen, oder wie darf ich das verstehen? -
Bei allen GangZoneCreate, ja.
-
Naja, es gibt ja in der Pawn.exe IDE auch die Option "Compile/Run".
Bis auf dass dieser Button die amx Datei direkt auf C:\ ablegt ist mir davon keine besondere Funktion bekannt.
Ein direktes Ausführen geht mit pawno nicht. pawno ist vom Können her nicht vergleichbar mit anderen IDEs wie Visual Studio, Eclipse, NetBeans, ... .DIe main() Funktion wird durch den Gamemode beim Start des samp-server.exe's aufgerufen, vor OnGameModeInit.
-
Ich verstehe nicht ganz worauf du hinaus willst.
Willst du einen Code testen, ohne den Server zu starten? Das dürfte nicht ohne weiteres möglich sein, da die amx Dateien vom samp-server "abgespielt" werden.Aber du kannst dir einen zweiten Server-Ordner anlegen, in dem du einen Test-Gamemode hast, den du dann zum Ausprobieren von solchen Funktionen nutzen kannst.
-
Du überschreibst das Passwort bei deiner Speicherfunktion des Spielers mit dem ungehashten Passwort.
Füge dort auch noch das MD5 ein, oder poste die Funktion. -
SendClientMessage(playerid,Gelb,"Du hast die Fraktion %s erstellt und der Datenbank hinzugefügt.");
zu:
new str[145];
format(str, sizeof(str), "Du hast die Fraktion %s erstellt und der Datenbank hinzugefügt.", fraktion);
SendClientMessage(playerid,Gelb,str); -
Versuche es mit dieser All In One Package:
http://www.chip.de/downloads/A…ne-Runtimes_37449838.htmlWenn das nicht hilft, dann lade dir die R39-2 Version herunter und versuche es mit dieser, die ist für den alltäglichen Gebrauch gleich wie die R39-4.
https://github.com/pBlueG/SA-MP-MySQL/releases/tag/R39-2 -
Nutze anstatt einem Player3DTextLabel ein normales 3DTextLabel. Sonst sieht es ja nur der Spieler für den es erstellt wurde, und da es an diesen attached wird, sieht es niemand mehr.
pInfos[id] = CreatePlayer3DTextLabel(id, "", -1, pX, pY, pZ-7, 15.0, id, INVALID_VEHICLE_ID, 0);
zu:
pInfos[id] = Create3DTextLabel("", 0xFFFFFFFF, 0.0, 0.0, 0.0, 15.0, 0, 0);
Attach3DTextLabelToPlayer(pInfos[id], id, 0.0, 0.0, 0.7);Und
UpdatePlayer3DTextLabelText(playerid, pInfos[playerid], 0xFFFFFFFF, pInfosStr);
zu:
Update3DTextLabelText(pInfos[playerid], 0xFFFFFFFF, pInfosStr);Gegebenenfalls musst du es bei OnPlayerSpawn nochmals attachen.
Attach3DTextLabelToPlayer(pInfos[playerid], playerid, 0.0, 0.0, 0.7);Je nach dem musst du dann noch den Offset bei Attach3DTextLabelToPlayer anpassen, falls das nicht passt.
-
Beim Speichern:
FCInfo[autoid][carvehid]
zu:
Frakcar[autoid] -
Versuche es so:
else if(dialogid == Register)
{
if(response == 0)
{
SendClientMessage(playerid, COLOR_ERRORTEXT, " Du hast den Vorgang abgebrochen und wurdest automatisch gekickt.");
TogglePlayerControllable(playerid, 0);
Kick(playerid);
}
if(response == 1)
{
if(!strlen(inputtext) || strlen(inputtext) < -1 || strlen(inputtext) > 15 || strlen(inputtext) < 6)
{
ShowPlayerDialog(playerid, Register, DIALOG_STYLE_PASSWORD, "Los Santos Roleplay Community: Registrieren", "Bitte gib ein Passwort für deinen Account ein ({FF1E00}mind. 6 Zeichen{A9C4D4}):", "Registrieren", "Abbruch");
return 1;
}
new ForbiddenCharactersExist = 0;
for(new ac = 0; ac < sizeof(ForbiddenCharacters); ac++)
{
if(strfind(inputtext, ForbiddenCharacters[ac], true) != -1)
{
ForbiddenCharactersExist = 1;
break;
}
}
if(strlen(inputtext) > 15 || ForbiddenCharactersExist == 1)
{
ShowPlayerDialog(playerid, Register, DIALOG_STYLE_PASSWORD, "Los Santos Roleplay Community: Registrierung", "Dein Passwort muss mindestens 6 und maximal 15 Bustaben haben\nUnd darf nur auch Bustaben von A-Z und Zahlen von 0-9 Bestehen.", "Registrieren", "Verlassen");
return SendClientMessage(playerid, COLOR_ERRORTEXT, " Dein Passwort darf maximal 10 Zeichen haben und darf nur aus A-Z bzw. a-z und 1-9 inkl. 0 bestehen !");
}
OnPlayerRegister(playerid, inputtext);
ShowPlayerDialog(playerid, Sicherheitscode, DIALOG_STYLE_MSGBOX, "Los Santos Roleplay Community: Login", "Herzlich Willkommen in unserer Community.Du hast dich erfolgreich registriert.\n\nMit einem Klick auf Login kannst du dich einloggen.", "Login", "Verlassen");
}
return 1;
}public OnPlayerRegister(playerid, password[])
{
StuffInfo[sNeuUser] += 1;
if(IsPlayerConnected(playerid))
{
new string[256],playername[MAX_PLAYER_NAME],passwort[64];
GetPlayerName(playerid, playername, sizeof(playername));
mysql_real_escape_string(password, passwort);
format(string, sizeof(string), "%s", password);
strmid(PlayerInfo[playerid][pKey], string, 0, strlen(string), 255);
format(string, sizeof(string), "INSERT INTO `users` (`Name`, `Password`) VALUES ('%s', MD5('%s'))", playername, passwort);
self_mysql_queryEx(string);
format(string, sizeof(string), "UPDATE `users` SET `RegisterDatum`='%d' WHERE `Name`='%s'", gettime(), playername);
self_mysql_queryEx(string);
//...if(CheckPasswort(playerid, inputtext) == 1) // Wir holen uns das Passwort aus der MySQL Datenbank und überprüfen es mit dem angegebenen passwort.
{
if(NotJoin == 1)
{
format(string, sizeof(string), "Du kannst dich erst nach %d Sekunden wieder einloggen.\n\nBitte warte eine Weile und gibt dann dein Accountpasswort ein.",OffPickup[StepID][OffZeit]);
ShowPlayerDialog(playerid, Login, DIALOG_STYLE_PASSWORD, "Login", string,"Login","Abbruch");
return 1;
}
strmid(PlayerInfo[playerid][pKey], inputtext, 0, strlen(inputtext), 255);
OnPlayerLogin(playerid); //Der Spieler wird "geladen", speich es werden seine Daten aus der Datenbank geholt und in variablen gespeichert um diese im Skript zu verwenden.
return 1;
}
else
{
ShowPlayerDialog(playerid, Login, DIALOG_STYLE_PASSWORD, "Los Santos Roleplay Community: Passwort Falsch", "Das eingegebene Passwort ist Falsch, bitte versuche es erneut.","Login","Verlassen");
return 1;
}stock CheckPasswort(playerid,password[])
{
new query[256],sendername[MAX_PLAYER_NAME],passwort[64];
GetPlayerName(playerid,sendername,sizeof(sendername));
mysql_real_escape_string(password, passwort);
mysql_real_escape_string(sendername, sendername);
format(query,sizeof(query),"SELECT `Password` FROM `users` WHERE `Name` = '%s' AND `Password` = MD5('%s')",sendername,passwort);
self_mysql_queryEx(query);
mysql_store_result();
if(mysql_num_rows())
{
mysql_free_result();
return true;
}
else
{
mysql_free_result();
return false;
}
}Beachte, dass du das "Password" Feld in der Tabelle "users" als VARCHAR Feld anlegen musst, mit 33 Zeichen (sicherheitshalber eins mehr, da EOS).
Sollte es weiterhin nicht gehen, poste bitte was im MySQL Log steht, und einen Screenshot der Daten in der Datenbank, nachdem du dich registriert hast.
-
Bei den Spaltennamen ' statt `
Nein, das wäre genau falsch herum.
-
wo macht man es mit erledigt?
Ganz oben im Thread, auf dem Button "Thema bearbeiten".
-
Es sind zu viele Zeichen. Es gehen maximal 144 sichtbare Zeichen in SendClientMessage.
-
printf("- Fraktionsfahrzeuge geladen %i/%i -",rows,MAX_FVEHS);
Kommt dieser print, wenn die Fahrzeuge doppelt geladen werden, auch doppelt?
-
hast du das Programm noch?
Ja, aber wie ich sehe funktioniert der Download noch, nur die Bilder die ich als Buttons hinterlegt hatte sind weg. Ich werde das heute Abend prüfen, warum die weg sind, denn die Bilder sind eigentlich online, die liegen auf meinem Webhost.
Der Download im Anhang sollte funktionieren, alternativ kannst du auch direkt den Quellcode aus der Anleitung nutzen.
-
An dem Code scheint das nicht zu liegen, das sieht mir nach Cache-Funktionen aus.