Meinst du das hier?
http://www.cls-design.com/foru…?page=DatabaseItem&id=127
Beiträge von T4125Gamer
-
-
Du überprüfst im Dialog, also im Public OnDialogResponse, einfach ob der eingegebene Text (inputtext) das Wort ist was du haben willst.
Dazu kannst du strcmp nutzen.if(!strcmp(inputtext,"WORT",false))
{
SendClientMessage(playerid,-1,"Richtiges Passwort");
}
else SendClientMessage(playerid,-1,"Falsches Passwort"); -
-
Tion hat dazu mal ein Tutorial verfasst.
[How To] UCP auf Ini-Basis -
@Pascal1998:
Das "u" ist an dieser stelle nicht richtig. i oder d musst du da nehmen. -
Du könntest "Allround Sponsoring" verwenden.
-
Dafür gibt es hier ja ein paar Spezialisten.
Frag einfach hier nach: http://forum.sa-mp.de/gta-frem…eser-pc-gut-pc-gesucht-84 -
http://www.mediamarkt.de/mcs/p…353,462729.html?langId=-3
http://www.saturn.de/mcs/produ…352,241166.html?langId=-3Oder hier noch, da kannst du den Laptop noch Konfigurieren.
http://www.one.de/shop/mini-al…-notebooks-c-213_216.html -
Da ich gerade nicht so richtig weis habe ich nun Nitrado angerufen und Gefragt,
#
Eine Account Prüfung ist jetzt eingeleitet!Es gibt die Funktion Element untersuchen
Zitat von lukas1177Das ist Fake Guthaben Zu 100 %
Wenn ihr mal eine Seite zurück blättern würdet, würdet ihr sehen das ich das Guthaben bestätigt habe. Das Guthaben ist vorhanden. Das ist kein Fake. Ich habe die Seite neu geladen und ebenfalls neu aufrufen lassen.
Das Geld ist vorhanden. Und jetzt hört endlich auf hier einen auf ober Maker zu machen und ewig zu schreiben "öhhh Fake, MELDEN!!!". Lest euch gefälligst alles komplett durch bevor ihr so eine schieße schreibt. -
Ich war grad via TV drinnen.
Das Guthaben ist definitiv vorhanden. -
So kann das auch nicht gehen.
Mach die Spielerspeichern Funktion so:stock Spielerspeichern(playerid)
{
format(player, sizeof(player), "/Player/%s.ini",name[playerid]);
dini_IntSet(player, "Money",GetPlayerMoney[playerid]);
dini_IntSet(player,"Kills",GetPlayerScore[playerid]);
return 1;
} -
Zeig mal wie du das mit dem Score gemacht hast.
-
Ja, liegt an deiner Register Funktion. Du hast das:
format(player, sizeof(player), "Player/%.ini",name(playerid));
Richtig muss es aber so sein:
format(player, sizeof(player), "Player/s%.ini",name(playerid));
Du hast das "s" vergessen. So weiß der Server dann nicht wie die Datei heißt und gibt ihr einen zufälligen Namen. -
1. Wird denn die Datei angelegt?
2. Zeig mal was du bei OnPlayerConnect hast -
Ja, indem du bei jedem Kill den Score +1 machst.
Dann änderst du das noch hier:
dini_IntSet(DateiPfad,"Kills",GetPlayerScore(playerid));
Zum setzten dann halt so:
SetPlayerScore(playerid,dini_Int(DateiPfad,"Kills"); -
1. warning 202: number of arguments does not match definition
Du hast folgendes:
ShowPlayerDialog(playerid, REGISTER,DIALOG_STYLE_INPUT,"Guten Tag %s,\nwie es aussieht, bist du neu hier. Bitte gebe ein Passwort ein!\n Aber vegesse es nicht und gebe es niemanden weiter!","Registrieren","Abbrechen");
1. Fehlt da die Dialog Überschrift. Warum erklärt sich indem du diese Seite hier anschaust. http://wiki.sa-mp.com/wiki/ShowPlayerDialog
2. Willst du dort %s anwenden, also das der Spielername angezeigt wird. So geht das nicht, da man in einem Dialog das nicht einfach so anzeigen lassen kann.
Wie du dennoch den Spielernamen da rein bekommst zeig ich dir.
Zuerst legen wir einen neuen String an mit dessen Hilfe wir den Namen in den Dialog reinbekommen.
new dialogstring[LÄNGE]; //Bei Länge einfach die ungefähre Zeichenanzahl.
Danach formatieren wir den String.
format(dialogstring,sizeof(dialogstring),"%s");
Jetzt müssen wir noch den Spielernamen irgendwie in das %s bzw. das %s zum Spielernamen machen. Das machen wir indem wir mit GetPlayerName den Namen herausfinden. Dazu ergänzen wir jetzt folgendes:
new dialogstring[LÄNGE],sName[MAX_PLAYER_NAME]; //Bei Länge einfach die ungefähre Zeichenanzahl.
Dann können wir nämlich mit GetPlayerName den Namen herausfinden.
GetPlayerName(playerid,sName,sizeof(sName));
Nun können wir "sName" dazu benutzen, den Spielernamen auf das %s zu legen. Dazu machen wir jetzt folgendes.
format(dialogstring,sizeof(dialogstring),"%s",sName);
Wenn wir uns jetzt "dialogstring" ausgeben lassen würden, dann würde der Name erscheinen. Machen wir das doch gleich in dem Dialog, doch bevor wir das machen passe ich das an deinen Dialog an.
format(dialogstring,sizeof(dialogstring),"Guten Tag %s,\nwie es aussieht, bist du neu hier. Bitte gebe ein Passwort ein!\n Aber vegesse es nicht und gebe es niemanden weiter!",sName);
ShowPlayerDialog(playerid, REGISTER,DIALOG_STYLE_INPUT,"Register",dialogstring,"Registrieren","Abbrechen");2. error 029: invalid expression, assumed zero
Das kommt da du REGISTER statt Register genommen hast. Dein Dialog heißt REGISTER, doch die Funktion zum Registrieren heißt Register. Das heißt dann dass du
REGISTER(playerid, MD5_Hash(inputtext));
zu
Register(playerid, MD5_Hash(inputtext));
machen musst.3. error 010: invalid function or declaration
Also eine Abfrage gehört keinesfalls einfach so ins Script rein. Da hast du das wohl falsch gesetzt. Mache das hier:
if(dini_Exists(player))
{
ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Login","Hi%s!\nDein Account wurde gefunden. Bitte logge dich mit\nmit deinem Passwort ein!","Login","Abbrechen");
}
else
{
ShowPlayerDialog(playerid, REGISTER,DIALOG_STYLE_INPUT,"Registration","Guten Tag %s,\nwie es aussieht, bist du neu hier. Bitte gebe ein Passwort ein!\n Aber vegesse es nicht und gebe es niemanden weiter!","Registrieren","Abbrechen");
}
In den Public OnPlayerConnect.4. error 017: undefined symbol "Spierdatei"
Das kann so auch nicht gehen da du "player" statt Spielerdatei verwendet hast. Ändere also diese Zeile:
if(strcmp(key,dini_Get(Spierdatei,"Key"),false))
in
if(strcmp(key,dini_Get(player,"Key"),false))5. warning 217: loose indentation und warning 219: local variable "name" shadows a variable at a preceding level
Das "loose indenation" kommt daher dass die Zeilen nicht richtig eingerückt wurden. Entweder rückst du diese richtig ein oder du benutzt
#pragma tabsize 0
Kommen wir dann zum Schluss noch zu dem anderen Warning. Dieser sagt dir nur das der Name "name" schon verwendet wird. Ändere ihn also in irgendwas anderes um. -
Mir gefällt das jetzt richtig gut.
10/10
Es gibt momentan nichts was ich daran aussetzen würde. -
Hier mal ein Tutorial.
[ SCRIPTING ] Login & Register [DINI] -
Geld und Skin kannst du so speichern.
dini_IntSet(DateiPfad,"Skin",GetPlayerSkin(playerid));
dini_IntSet(DateiPfad,"Geld",GetPlayerMoney(playerid));Bei den Kills musst du die Kills auf eine Variable legen. Wenn du ein enum für die Spielerinfos hast dann mach es so bei OnPlayerDeath.
public OnPlayerDeath(playerid, killerid, reason)
{
VariableFürInfo[killerid][Kills] ++;
return 1;
}
Dann kannst du nämlich dort wo du es speichern lässt das so machen :dini_IntSet(DateiPfad,"Kills",VariableFürInfo[playerid][Kills]);
Wenn du kein enum hast machst du es so:
Global eine Varibale erstellen.
new PlayerKills[MAX_PLAYERS];Und dann bei OnPlayerDeath:
public OnPlayerDeath(playerid, killerid, reason)
{
PlayerKills[killerid]++;
return 1;
}Beim Speichern machst du das dann so:
dini_IntSet(DateiPfad,"Kills",PlayerKills[playerid]);
-
Mit was speicherst du? Dini, MySQL ?