Beim DIALOG_REGISTER, nur dort, nirgends anders (1 mal!):
format(query,sizeof(query),"INSERT INTO user (username, passwort, level) VALUES ('%s', MD5('%s'), '1')",name,passwort);
zu:
format(query,sizeof(query),"INSERT INTO user (username, passwort, level) VALUES ('%s', '%s', '1')",name,passwort);
Beiträge von Jeffry
-
-
Warum ersetzt du beim Login das SELECT jedes mal mit einem INSERT? Das macht doch keinen Sinn.
Nur beim LOGIN:
format(query,sizeof(query),"INSERT INTO user (username, passwort, level) VALUES ('%s', '%s', '1')",name,passwort);
zu:
format(query,sizeof(query),"SELECT * FROM user WHERE username='%s' AND passwort='%s'",name,passwort); -
Nein.
Nur das
MD5('%s')
zu:
'%s'Nichts sonst.
MD5( und ) entfernen, mehr nicht.
-
Jeweils das
MD5('%s')
zu
'%s'Auch beim Login.
-
Entferne jeweils die Zahl (2 und 45) nach "modelid" in den Parametern.
-
-
Das Streamer Plugin ist auf jeden Fall der beste Streamer.
-
ShowPlayerDialog(playerid, D_AdminCmds, DIALOG_STYLE_MSGBOX, "Admin Commands", "", "Close", "");
Zu
ShowPlayerDialog(playerid, D_AdminCmds, DIALOG_STYLE_MSGBOX, "Admin Commands", string, "Close", ""); -
Nur um es mal zu testen, entferne mal beim Registrieren und beim Login (also überall, wichtig!) das MD5, lass als das Passwort mal als Klartext speichern.
Klappt es dann mit dem Einloggen? -
Nach dem Prinzip:
new string[256];
if(SpielerInfo[playerid][Level] >= 1)
{
format(string, sizeof(string), "%s/help, /info\n", string);
}
if(SpielerInfo[playerid][Level] >= 2)
{
format(string, sizeof(string), "%s/jail, /kick\n", string);
}
if(SpielerInfo[playerid][Level] >= 3)
{
format(string, sizeof(string), "%s/ban, /banall\n", string);
} -
Oh ich dachte das war erledigt, weil du es nicht mehr erwähnt hast.
Wenn du dich registriert hast, was steht dann als Passwort in der Datenbank? Kannst du davon mal einen Screenshot machen?
-
Dafür musst du format nutzen.
format(SpielerInfo[playerid][pRangName], 25, mysql_GetString("accounts", "RangName", "Name", SpielerName(playerid))); -
Nein, das ist ja der Sinn des Hooks, dass er GivePlayerMoney nutzen kann bzw. muss.
-
Setze die Deklaration und das enum von sInfo auch in die Include, ganz oben hin.
-
Kopiere eine vorhandene Include, benenne sie so wie sie heißen soll und füge deinen gewünschten Code dort ein.
Dann schreibe sie wie die anderen Includes oben in den Code. -
Die hooks müssen ganz oben im Code stehen, vor der ersten Nutzung von GivePlayerMoney und GetPlayerMoney. Sonst geht es nicht.
Daher bietet es sich an, sie in eine Include zu schreiben, da die ja meistens ganz oben stehen. -
Du musst die Datei freigeben/teilen/... wie auch immer es bei Dropbox heißt.
Jetze steht in der Datenbank 4999 und es wird auch 4999 geprintet habe aber ingame nichts
Füge in der my_GivePlayerMoney Funktion noch
GivePlayerMoney(playerid, money);
ein, damit du das Geld bekommst. -
Wenn du auch GetPlayerMoney dafür nutzen willst, dann musst du das auch hooken:
stock my_GetPlayerMoney(playerid)
{
if(playerid < 0 || playerid >= sizeof(sInfo)) return 0;
return sInfo[playerid][Money];
}
#if defined _ALS_GetPlayerMoney
#undef GetPlayerMoney
#else
#define _ALS_GetPlayerMoney
#endif
#define GetPlayerMoney my_GetPlayerMoney -
Ist deine Version effektiver?
Deine Version fragt nur die Distanz zum Spieler selbst ab, die ist immer 0, daher wird es nie gehen.
Nutze die Funktion, die ich dir gegeben habe. -
und wie spiel ich es dann ab?
also bei DropboxÜber den direkten Link:
http://www.heise.de/ct/hotline…ropbox-Datei-2065203.html