[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Funktioniert leider immer noch nicht, ich kann mich jetzt zwar mit dem
richtigen Passwort Einloggen, aber die Fehlversuche klappen nicht. Er
zeigt mir nach dem Versuch 2/3 den richtigen Login ohne Fehlversuche an, halt das es alles von vorne beginnt.Das habe ich bis jetzt: http://pastebin.com/9J1A57Cf
-
-
Eddy:
Das ganze macht irgendwie keinen Sinn, da die Abfrage immer kommen würde, so wie es da ist.Mach es so:
Spoiler anzeigen public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case Dialog_Register:
{
if(!response)
{
SendClientMessage(playerid,0xFF0000FF,"Dieser Vorgang wurde Ab.-oder Unterbrochen\nBitte beenden Sie das Spiel, indem Sie /q als Textnachricht in den Chat eingeben.");
SetTimerEx("KickPlayer",250,0,"i",playerid);
return 1;
}
if(!inputtext[0] || !(3 <= strlen(inputtext) <= 10))
{
ShowPlayerDialog(playerid,Dialog_Register,DIALOG_STYLE_PASSWORD,"SmR: {0x3252BEFF}Registrierung","{FFFFFF}Herzlich Willkommen auf San Miami Roleplay\n\nUnser System hat Ihre Spielerinformationen\nnicht in unserer Datenbank gefunden. Um einen Charakter auf unserem Server zu Erstellen\nbenoetigen wir einige Informationen. Als erstes tragen Sie Bitte ein Sicheres Passwort in das untere Feld ein.\nMerken Sie sich Ihr Passwort Gut.\n\nKlicken Sie anschließend auf Annehmen.","Annehmen","Abbrechen");
return 1;
}
new query[950 + MAX_PLAYER_NAME],Tag,Monat,Jahr,Stunde,Minute,Sekunde;
getdate(Tag,Monat,Jahr);
gettime(Stunde,Minute,Sekunde);
format(query,sizeof(query),"%02d.%02d.%d - %02d:%02d:%d",Tag,Monat,Jahr,Stunde,Minute,Sekunde);
mysql_format(DBHandle, query, sizeof(query),"INSERT INTO `Accounts` (`pName`, `pPasswort`, `pAlter`, `pAdminlevel`, `pBanned`, `pBargeld`, `pKontoguthaben`, `pLastLogin`, `pRegDatum`, `pVersuche`, `pLeben`) VALUES ('%e','%e','%d','%d','%d','0','0','%s','%s','%d','100.0')",Spieler[playerid][pName],inputtext,Spieler[playerid][pAlter],Spieler[playerid][pAdminlevel],Spieler[playerid][pBanned],query,query,Spieler[playerid][pWrongPass],Spieler[playerid][pLeben]);
mysql_tquery(DBHandle, query, "", "");
Spieler[playerid][pLogged] = true;
SpawnPlayer(playerid);
return 1;
}
case Dialog_Login:
{
if(!response)
{
SendClientMessage(playerid,0xFF0000FF,"Dieser Vorgang wurde Ab.-oder Unterbrochen\nBitte beenden Sie das Spiel, indem Sie /q als Textnachricht in den Chat eingeben.");
SetTimerEx("KickPlayer",250,0,"i",playerid);
return 1;
}
if(!inputtext[0] || !(3 <= strlen(inputtext) <= 25))
{
ShowPlayerDialog(playerid,Dialog_Login,DIALOG_STYLE_INPUT,"SmR: {0x3252BEFF}Einloggen","{FFFFFF}Sie müssen von unserem System Identifiziert werden.\nGeben Sie dafür Ihr Passwort unten in das Feld ein.\n\n Klicken Sie anschließend auf Einloggen, damit Ihre Daten kontrolliert werden können.","Einloggen","Abbrechen");
return 1;
}
new query[180 + MAX_PLAYER_NAME];
mysql_format(DBHandle, query,sizeof(query),"SELECT COUNT(*) AS `count` FROM `Accounts` WHERE `pName` ='%e' AND `pPasswort` ='%e'",Spieler[playerid][pName],inputtext);
mysql_function_query(DBHandle, query, true,"LoadPlayerDataSequence","dd",playerid,2);
return 1;
}
}
return 1;
}Spoiler anzeigen public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}Spoiler anzeigen public LoadPlayerDataSequence(playerid, l_step)
{
switch(l_step)
{
case 1:
{
new count = cache_get_field_content_int(0,"count");
if(count)
{
ShowPlayerDialog(playerid,Dialog_Login,DIALOG_STYLE_INPUT,"SmR: {0x3252BEFF}Einloggen","{FFFFFF}Sie m?ssen von unserem System Identifiziert werden.\nGeben Sie daf?r Ihr Passwort unten in das Feld ein.\n\n Klicken Sie anschlie?end auf Einloggen, damit Ihre Daten kontrolliert werden k?nnen.\n\nSie haben noch 3/3 versuche!","Einloggen","Abbrechen");
return 1;
}
else
{
ShowPlayerDialog(playerid,Dialog_Register,DIALOG_STYLE_PASSWORD,"SmR: {0x3252BEFF}Registrierung","{FFFFFF}Herzlich Willkommen auf San Miami Roleplay\n\nUnser System hat Ihre Spielerinformationen\nnicht in unserer Datenbank gefunden. Um einen Charakter auf unserem Server zu Erstellen\nben?tigen wir einige Informationen. Als erstes tragen Sie Bitte ein Sicheres Passwort in das untere Feld ein.\n\nMerken Sie sich Ihr Passwort Gut.\n\nKlicken Sie anschlie?end auf Annehmen.","Annehmen","Abbrechen");
return 1;
}
}
case 2:
{
new count = cache_get_field_content_int(0,"count");
if(count)
{
new query[160 + MAX_PLAYER_NAME];
mysql_format(DBHandle, query ,sizeof(query),"SELECT * FROM `Accounts` WHERE `pName` = '%e'",Spieler[playerid][pName]);
mysql_function_query(DBHandle, query, true,"LoadPlayerDataSequence","dd",playerid,3);
return 1;
}
else
{
Login_Status[playerid]++;
switch(Login_Status[playerid])
{
case 0:
{
ShowPlayerDialog(playerid,Dialog_Login,DIALOG_STYLE_INPUT,"{0x3252BEFF}Falsches Passwort","{FFFFFF}Das von Ihnen angegebene Passwort wurde abgelehnt,\ngeben Sie Bitte Ihr richtiges Passwort unten in das Feld ein.\nDrücken Sie danach auf Einloggen, damit Ihre Daten kontrolliert werden können.\n\nDenken Sie auch an die Groß-,Kleinschreibung\n\nSie haben 3/3 versuche!","Einloggen","Abbrechen");
return 1;
}
case 1:
{
Login_Status[playerid]++;
ShowPlayerDialog(playerid,Dialog_Login,DIALOG_STYLE_INPUT,"{0x3252BEFF}Falsches Passwort","{FFFFFF}Das von Ihnen angegebene Passwort wurde abgelehnt,\ngeben Sie Bitte Ihr richtiges Passwort unten in das Feld ein.\nDrücken Sie danach auf Einloggen, damit Ihre Daten kontrolliert werden können.\n\nDenken Sie auch an die Groß-,Kleinschreibung\n\nSie haben noch 2/3 versuche!","Einloggen","Abbrechen");
return 1;
}
case 2:
{
Login_Status[playerid]++;
ShowPlayerDialog(playerid,Dialog_Login,DIALOG_STYLE_INPUT,"{0x3252BEFF}Falsches Passwort","{FFFFFF}Das von Ihnen angegebene Passwort wurde abgelehnt,\ngeben Sie Bitte Ihr richtiges Passwort unten in das Feld ein.\nDrücken Sie danach auf Einloggen, damit Ihre Daten kontrolliert werden können.\n\nDenken Sie auch an die Groß-,Kleinschreibung\n\nSie haben nurnoch 1/3 versuche!","Einloggen","Abbrechen");
return 1;
}
case 3:
{
SendClientMessage(playerid,0x3252BEFF,"Sie haben zu oft Ihr Passwort falsch eingegeben, aus Sicherheitsgründen wurden Sie vom System gesperrt.");
SendClientMessage(playerid,0x3252BEFF,"Versuchen Sie es in einer Stunde nochmal, oder Melden Sie sich bei einem Administrator.");
SetTimerEx("KickPlayer",250,0,"i",playerid);
return 1;
}
}
}
}
case 3:
{
Spieler[playerid][pAlter] = cache_get_field_content_int(0,"pAlter");
Spieler[playerid][pAdminlevel] = cache_get_field_content_int(0,"pAdminlevel");
Spieler[playerid][pBanned] = cache_get_field_content_int(0,"pBanned");
Spieler[playerid][pBargeld] = cache_get_field_content_int(0,"pBargeld");
Spieler[playerid][pKontoguthaben] = cache_get_field_content_int(0,"pKontoguthaben");
cache_get_field_content(0,"pLastLogin",Spieler[playerid][pLastLogin],DBHandle,30);
cache_get_field_content(0,"pRegDatum",Spieler[playerid][pRegDatum],DBHandle,30);
Spieler[playerid][pWrongPass] = cache_get_field_content_int(0,"pVersuche");
Spieler[playerid][pLeben] = cache_get_field_content_float(0,"pLeben");
Spieler[playerid][pLogged] = true;
SpawnPlayer(playerid);
return 1;
}
default:
{
SendClientMessage(playerid,0x7D0000FF,"Es ist ein Fehler aufgetreten, Bitte starten Sie Ihren Clienten neu, und versuchen Sie es erneut,\nSollten weiterhin Fehler auftreten, so Melde Sie sich umgehend Bitte bei einem Teammitglied.");
return 1;
}
}
return 1;
}
-
Hallo breadfish,
Ich hab ein kleines Problem mit dem Hashen von Passwörtern. Beim Registrieren wird das Passwort normal gehasht, dass klappt auch wunderbar bloß beim Login, sagt er mir immer das, dass Passwort falsch ist.Hier wird das beim Login gehasht
if(!strcmp(MD5_Hash(inputtext), MySQL_Password(sName(playerid)), true))Mit freundlichen Grüßen
Grapefruit -
Hier wird das beim Login gehasht
Mach doch einfach n print-Debug und prüf..wo die Unterschiede sind und wieso das so ist...^^mfg.
-
Und wie mach ich ein print debug? Meinst du einfach printen?
-
Und wie mach ich ein print debug? Meinst du einfach printen?
Ja.... -
Kommt nichts an, aber wenn ich md5 ganz rausnehme funktioniert alles.
-
Was heiß es kommt nichts an?
Setze vor:
if(!strcmp(MD5_Hash(inputtext), MySQL_Password(sName(playerid)), true))printf("inputtext: %s", inputtext);
printf("MD5_Hash: %s", MD5_Hash(inputtext));
printf("MySQL_Password: %s", MySQL_Password(sName(playerid)));Was wird geprintet?
-
-
Abend,
und zwar habe ich ein Problem mit TextDrawSetPreviewModel.
Ich habe ein Tacho, dort wird alles angezeigt, bis auf das TextDrawSetPreviewModel.Code:
Tacho7[playerid] = TextDrawCreate(622.625000, 411.000000, "usebox");
TextDrawFont(Tacho7[playerid], TEXT_DRAW_FONT_MODEL_PREVIEW);
TextDrawUseBox(Tacho7[playerid], 1);
TextDrawBoxColor(Tacho7[playerid], 0x000000FF);
TextDrawTextSize(Tacho7[playerid], 576.125000, 0.000000);
TextDrawLetterSize(Tacho7[playerid], 0.000000, 3.053701);
TextDrawSetPreviewModel(Tacho7[playerid], 411); -
Fernando.:
Tacho7[playerid] = TextDrawCreate(576.625000, 411.0, "usebox");
TextDrawFont(Tacho7[playerid], TEXT_DRAW_FONT_MODEL_PREVIEW);
TextDrawUseBox(Tacho7[playerid], 1);
TextDrawBoxColor(Tacho7[playerid], 0x000000FF);
TextDrawTextSize(Tacho7[playerid], 40.0, 40.0);
TextDrawLetterSize(Tacho7[playerid], 10.0, 3.0);
TextDrawSetPreviewModel(Tacho7[playerid], 411);Alternativ kannst du nächstes mal das hier verwenden:
http://forum.sa-mp.com/showthread.php?t=406833 -
-
@Voxa:
mysql_log(LOG_ALL); -
@Jeffy:
Danke erstmal.
Also, wenn ich in ein Fahrzeug einsteige, kommt am Anfang eine lange schwarze Box, die verschwindet, nachdem ich im Fahrzeug bin.
Bei mir sieht das momentan so aus:
http://www.pic-upload.de/view-24230215/sa-mp-017.png.htmlIch würde das gerne so haben:
http://www.pic-upload.de/view-24230222/sa-mp-016.png.htmlUnd ein wenig größer und ohne der schwarzen Box im Hintergrund..
Ich habe es natürlich selbst versucht, doch ich komme damit gar nicht klar.
Könntest du mir auch sagen, mit welcher Funktion man die Farbe des Modells anpassen kann, wie die des Spieler Fahrzeuges? -
Zum Anpassen des TextDraws würde ich dir raten es mal damit zu versuchen:
http://forum.sa-mp.com/showthread.php?t=406833
Auswendig weiß ich die Maße auch nicht. Versuch das mit dem Editor, das sollte klappen.Farbe des Models:
http://wiki.sa-mp.com/wiki/TextDrawSetPreviewVehCol -
Hey ich hab erstmal ein paar fragen.
Frage Nummer eins. (PN/SMS system):
Ich bekomme einen Argument missmatch. Hab die zeile für euch mit "//" ausgeklammert.Code
Alles anzeigenCMD:pn(playerid, params[]) { new id, string[128], string2[128], sender[MAX_PLAYER_NAME], reciever[MAX_PLAYER_NAME]; GetPlayerName(playerid, sender, sizeof(sender)); GetPlayerName(id, reciever, sizeof(reciever)); format(string, sizeof(string), "[HANDY]: %s hat dir eine Nachricht geschickt: %s", sender, params[2]); format(string2, sizeof(string2), "[HANDY]: Nachricht an %s gesendet: %s", reciever, params[2]); if(sscanf(params, "us[75]", id, params[2])) return SendClientMessage(playerid, 0xFFFFFFFF, "[INFO]: /pm <id> <nachricht>"); //if(!IsPlayerConnected(reciever)) return SCM(playerid, 0xFFFFFFFF, "[INFO]: Der Spieler ist nicht online."); SendClientMessage(id, GELB, string); SendClientMessage(playerid, GELB, string2); SendClientMessage(playerid, GELB, "[INFO]: Die Nachricht hat 3$ gekostet."); GivePlayerMoney(playerid,-3); return 1; }
Dann hab ich noch eine Frage und zwar wie kann ich überprüfen ob er sich selber eine Nachricht schickt. Denn das möchte man natürlich nichtFrage Nummer 2: (Paybefehl)
Wie kann ich abfragen ob er in der nähe des spielers ist? (Sagen wir mal Radius 3meter)
Dann wie ich abfragen kann, dass er dem Spieler nicht Geld abzieht also (/pay playerid -44)
Und wie ich Abfragen kann, dass er sich nicht selber Geld geben kann.
Code:
CMD:pay(playerid, params[])
{
new string[128], string2[128], pID, gID, player;
if(sscanf(params,"ud",pID,gID))return SCM(playerid, GRAU, "{CACA00}[INFO]{FFFFFF} /pay [Name] [Geldbetrag]");
if(!IsPlayerConnected(pID)) return SCM(playerid, ROT, "Der Spieler ist nicht online.");
format(string, sizeof(string), "{CACA00}[INFO]{FFFFFF}%s hat dir %d$ gegeben.",PlayerName(player),gID);
format(string2, sizeof(string2), "{CACA00}[INFO]{FFFFFF}Du hast %s %d$ gegeben.",PlayerName(player), gID);
SendClientMessage(pID,GRAU,string);
SendClientMessage(playerid,GRAU,string2);
GivePlayerMoney(pID,gID);
GivePlayerMoney(playerid, -gID);
return 1;}
Danke ihr -
1.)
if(!IsPlayerConnected(id)) return SCM(playerid, 0xFFFFFFFF, "[INFO]: Der Spieler ist nicht online.");
if(id == playerid) return SCM(playerid, ROT, "Du kannst dir keine Nachricht selbst schicken.");2.)
if(pID == playerid) return SCM(playerid, ROT, "Du kannst dir kein Geld selbst geben.");
Abfrage 3 Meter: http://wiki.sa-mp.com/wiki/IsPlayerInRangeOfPoint
Negativ:
if(gID < 1) return SCM(playerid, ROT, "Ungültiger Betrag."); -
-