[SAMMELTHREAD] Kleine Scripting Fragen

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
  • Schönen Abend,
    Mein problem liegt beim Hashen von Passwörtern, hier mein Code.


    Hier wird das Passwort beim Registrieren gehasht:
    format(query, sizeof(query), "INSERT INTO accounts (Spielername, Passwort) VALUES ('%s', MD5('%s'))", name, pass);


    Hier wird das Passwort beim Login gehasht:
    if(!strcmp(MD5_Hash(inputtext), MySQL_Password(sName(playerid)), true))


    So wird es geprintet:
    printf("inputtext: %s", inputtext);
    printf("MD5_Hash: %s", MD5_Hash(inputtext));
    printf("MySQL_Password: %s", MySQL_Password(sName(playerid)));


    Das kommt dabei raus:
    [21:44:11] inputtext: 123456
    [21:44:11] MD5_Hash: E10ADC3949BA59ABBE56E057F20F883E
    [21:44:11] MySQL_Password: e10adc3949ba59ab


    Mit freundlichen Grüßen
    Grapefruit

  • Mal eine Frage und zwar, ist dies so richtig?
    SetTimerEx("MatsGangPoint",180000,0,"d",playerid);



    forward MatsGangPoint(playerid);
    public MatsGangPoint(playerid)
    {
    SendClientMessage(playerid,-1,"Fahre die Materialien nun zu deiner Base!");
    TogglePlayerControllable(playerid,1);
    return 1;
    }

  • Lass dir die Variable doch mal printen.
    @snake112:


    Habs schon hinbekommen aber habe noch einen Kleinen Fehler bei /spawn ich werde nicht respawnt aber ich bekomme die nachrichten
    [10:26:03] Du hast den Spieler [RGR]Snake erfolgreich gespawnt!
    [10:26:03] Du wurdest von [RGR]Snake gespawnt!


    ocmd:spawn(playerid,params[])
    {
    new pID;
    if(!isAdmin(playerid,1))return SendClientMessage(playerid,ROT,"Info: Du bist kein Admin!");
    if(!strlen(params))return SendClientMessage(playerid,ROT,"/spawn [ID]");
    new name[MAX_PLAYER_NAME],nametwo[MAX_PLAYER_NAME],string[144];
    GetPlayerName(pID,nametwo,sizeof nametwo);
    GetPlayerName(playerid,name,sizeof name);
    SendClientMessage(pID,GRÜN,string);
    format(string,144,"Du hast den Spieler %s erfolgreich gespawnt!",nametwo);
    SendClientMessage(playerid,GRÜN,string);
    format(string,144,"Du wurdest von %s gespawnt!",name);
    SendClientMessage(pID,GRÜN,string);
    return 1;
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Ich hab kleines folgendes Problem und zwar ... ich habe diese random Abfrage und der hat mir InGame "das es eine Minute dauert" ausgespuckt .. aber es kam erst nach 6Minuten ...



    ocmd:schrankknacken(playerid,params[])
    {
    new ra = random(5);
    if(PlayerInfo[playerid][pMember] == 20 || PlayerInfo[playerid][pLeader] == 20)
    {
    if(!IsPlayerInRangeOfPoint(playerid,3.0,257.8156,78.0410,1003.6406))return SendClientMessage(playerid,COLOR_GREEN,"Du bist nicht am 'Klau' - Punkt!");
    if(ra == 0)
    {
    SendClientMessage(playerid,COLOR_GREEN,"Du versuchst den Waffenschrank zu knacken (dauer ungefähr: drei Minuten)");
    knackentimer1[playerid] = SetTimerEx("FBIWKnacken",180000,0,"d",playerid);
    SendFamilyMessage(1,COLOR_BLUE,"HQ: Eine Unbekannte Person versucht den FBI - Waffenschrank zu knacken... Alle Einheiten sofort dort hin!");
    SendFamilyMessage(2,COLOR_BLUE,"HQ: Eine Unbekannte Person versucht den FBI - Waffenschrank zu knacken... Alle Einheiten sofort dort hin!");
    SendFamilyMessage(3,COLOR_BLUE,"HQ: Eine Unbekannte Person versucht den FBI - Waffenschrank zu knacken... Alle Einheiten sofort dort hin!");
    SendFamilyMessage(10,COLOR_BLUE,"HQ: Eine Unbekannte Person versucht den FBI - Waffenschrank zu knacken... Alle Einheiten sofort dort hin!");
    SendFamilyMessage(21,COLOR_BLUE,"HQ: Eine Unbekannte Person versucht den FBI - Waffenschrank zu knacken... Alle Einheiten sofort dort hin!");
    }
    else if(ra == 1)
    {
    SendClientMessage(playerid,COLOR_GREEN,"Du versuchst den Waffenschrank zu knacken (dauer ungefähr: eine Minuten)");
    knackentimer1[playerid] = SetTimerEx("FBIWKnacken",400000,0,"d",playerid);
    SendFamilyMessage(1,COLOR_BLUE,"HQ: Eine Unbekannte Person versucht den FBI - Waffenschrank zu knacken... Alle Einheiten sofort dort hin!");
    SendFamilyMessage(2,COLOR_BLUE,"HQ: Eine Unbekannte Person versucht den FBI - Waffenschrank zu knacken... Alle Einheiten sofort dort hin!");
    SendFamilyMessage(3,COLOR_BLUE,"HQ: Eine Unbekannte Person versucht den FBI - Waffenschrank zu knacken... Alle Einheiten sofort dort hin!");
    SendFamilyMessage(10,COLOR_BLUE,"HQ: Eine Unbekannte Person versucht den FBI - Waffenschrank zu knacken... Alle Einheiten sofort dort hin!");
    SendFamilyMessage(21,COLOR_BLUE,"HQ: Eine Unbekannte Person versucht den FBI - Waffenschrank zu knacken... Alle Einheiten sofort dort hin!");
    }
    else if(ra == 2)
    {
    SendClientMessage(playerid,COLOR_GREEN,"Du versuchst den Waffenschrank zu knacken (dauer ungefähr: vier Minuten)");
    knackentimer1[playerid] = SetTimerEx("FBIWKnacken",240000,0,"d",playerid);
    SendFamilyMessage(1,COLOR_BLUE,"HQ: Eine Unbekannte Person versucht den FBI - Waffenschrank zu knacken... Alle Einheiten sofort dort hin!");
    SendFamilyMessage(2,COLOR_BLUE,"HQ: Eine Unbekannte Person versucht den FBI - Waffenschrank zu knacken... Alle Einheiten sofort dort hin!");
    SendFamilyMessage(3,COLOR_BLUE,"HQ: Eine Unbekannte Person versucht den FBI - Waffenschrank zu knacken... Alle Einheiten sofort dort hin!");
    SendFamilyMessage(10,COLOR_BLUE,"HQ: Eine Unbekannte Person versucht den FBI - Waffenschrank zu knacken... Alle Einheiten sofort dort hin!");
    SendFamilyMessage(21,COLOR_BLUE,"HQ: Eine Unbekannte Person versucht den FBI - Waffenschrank zu knacken... Alle Einheiten sofort dort hin!");
    }
    else if(ra == 3)
    {
    SendClientMessage(playerid,COLOR_GREEN,"Du versuchst den Waffenschrank zu knacken (dauer ungefähr: zwei Minuten)");
    knackentimer1[playerid] = SetTimerEx("FBIWKnacken",120000,0,"d",playerid);
    SendFamilyMessage(1,COLOR_BLUE,"HQ: Eine Unbekannte Person versucht den FBI - Waffenschrank zu knacken... Alle Einheiten sofort dort hin!");
    SendFamilyMessage(2,COLOR_BLUE,"HQ: Eine Unbekannte Person versucht den FBI - Waffenschrank zu knacken... Alle Einheiten sofort dort hin!");
    SendFamilyMessage(3,COLOR_BLUE,"HQ: Eine Unbekannte Person versucht den FBI - Waffenschrank zu knacken... Alle Einheiten sofort dort hin!");
    SendFamilyMessage(10,COLOR_BLUE,"HQ: Eine Unbekannte Person versucht den FBI - Waffenschrank zu knacken... Alle Einheiten sofort dort hin!");
    SendFamilyMessage(21,COLOR_BLUE,"HQ: Eine Unbekannte Person versucht den FBI - Waffenschrank zu knacken... Alle Einheiten sofort dort hin!");
    }
    }
    return 1;
    }
    forward FBIWKnacken(playerid);
    public FBIWKnacken(playerid)
    {
    new ra = random(7);
    if(ra == 0)
    {
    SendClientMessage(playerid,COLOR_GRAD5,"Das knacken ist Fehlgeschlagen!");
    }
    else if(ra == 1)
    {
    GivePlayerWeapon(playerid, 36, 2); //RPG
    SendClientMessage(playerid,COLOR_GRAD5," Du hast den Waffenschrank geknackt!");
    SendClientMessage(playerid,COLOR_GRAD5," Beeile dich nun bevor die Cops kommen!");
    }
    else if(ra == 2)
    {
    SendClientMessage(playerid,COLOR_GRAD5,"Das knacken ist Fehlgeschlagen!");
    }
    else if(ra == 3)
    {
    SendClientMessage(playerid,COLOR_GRAD5,"Das knacken ist Fehlgeschlagen!");
    }
    else if(ra == 4)
    {
    GivePlayerWeapon(playerid, 36, 1); //RPG
    SendClientMessage(playerid,COLOR_GRAD5," Du hast das Waffenschrank geknackt!");
    SendClientMessage(playerid,COLOR_GRAD5," Beeile dich nun bevor die Cops kommen!");
    }
    else if(ra == 5)
    {
    GivePlayerWeapon(playerid, 36, 3); //RPG
    SendClientMessage(playerid,COLOR_GRAD5," Du hast das Waffenschrank geknackt!");
    SendClientMessage(playerid,COLOR_GRAD5," Beeile dich nun bevor die Cops kommen!");
    }
    else if(ra == 6)
    {
    GivePlayerWeapon(playerid, 36, 4); //RPG
    SendClientMessage(playerid,COLOR_GRAD5," Du hast das Waffenschrank geknackt!");
    SendClientMessage(playerid,COLOR_GRAD5," Beeile dich nun bevor die Cops kommen!");
    }
    return 1;
    }

  • Hey, ich würde gerne ID's vergleichen mit MYSQL und wenn der Eintrag nicht Existiert mit der ID soll der Benutzer gekickt werden.
    Sowei so gut, Code usw. gemacht nur hab ich irgendwo einen Fehler... Kenne mich mit SSCANF nicht besonders aus und ich glaube ich hab da ein Fehler beim Laden.
    Printen tut es mir nähmlich bei der ID vom Account der Geladen wird = 0, daweil sie 3 ist. Genauso auch in der MYSQL Log.
    Enum

    Spoiler anzeigen
    enum SpielerDaten
    {
    pId,
    pName[24],
    pPasswort[128],
    pLevel,
    pAdmin,
    Float:pX,
    pskin,
    pskinchange,
    pneu
    }
    new SInfo[MAX_PLAYERS][SpielerDaten];


    LoadStock SSCANF

    Spoiler anzeigen
    sscanf(str, "e<p<|>{i}is[24]s[128]iifiii>",SInfo[playerid]);

  • Hi!



    ich würde gerne wissen, wie man alle Befehle loggt, die man eingibt!


    Ich habe im moment das:



    public OnPlayerCommandText(playerid, cmdtext[])
    {
    return printf("Spieler %s [%d] => Command: %s", getName(playerid), playerid, cmdtext);
    }


    Doch in der Konsole steht nur etwas, wenn der Spieler einen Command eingibt, den es nicht gibt.


    ((Ich benutze OCMD))

  • @CrashGamesDE:
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    printf("Spieler %s [%d] => Command: %s", getName(playerid), playerid, cmdtext)
    return 0;
    }



    Inkompetent:
    Füge vor dem sscanf Folgendes ein, und poste dann was geprintet wird:
    printf("str = %s", str);


    Kannst auch gleich noch den mysql_debug bzw mysql_log einschalten, falls das Ergebnis bei dem print oben dir irgendwie sinnlos vorkommt (z.B. nichts hinter dem Ist-Gleich Zeichen steht.).


    Inkompetent: (Post unten): Gut, dass du es hinbekommen hast. Einen Debug-Log hab ich aber nicht gesehen. :thumbup:

    3HZXdYd.png

    2 Mal editiert, zuletzt von Jeffry ()

  • Beitrag von Apokrate ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Mal eine Frage und zwar ich möchte das wenn ich als Admin ein Radio "anmache" das dass alle in meiner Umgebung hören und das auch immer bei mir in der Range bleibt ^^


    der Befehl zurzeit:

    ocmd:radioon(playerid,params[])
    {
    new Float:Pos[3];
    for(new i; i < MAX_PLAYERS; i++)
    {
    GetPlayerPos(playerid, Pos[0],Pos[1],Pos[2]);
    PlayAudioStreamForPlayer(i, "http://www.iloveradio.de/listen3.m3u", Pos[0],Pos[1],Pos[2], 30.0, 1);

    }
    return 1;
    }

  • Kann ich die Natives die in der Samp include sind auch einfach aus dem Script aus "überschreiben" ?
    ohne das ich sie in der include ändern muss?


    Was meinst du mit überschreiben? Dass du anstatt SendClientMessage nur noch SCM schreiben musst?


    Wie kann ich, nachdem man eine Fraktion betreten hat, bestimmte Skins in der Skinauswahl anzeigen lassen, welche dann beim auswählen "angezogen" werden sollen?
    Habe das ganze momentan mit Dialogen. Wenn ich der Fraktion beitrete erscheint ein Dialog und ich kann durch dieses meinen Skin wählen.


    In die Standard-Skin-Auswahl von SA-MP kannst du den Spieler zwar setzen, aber soweit ich weiß, kannst du die Skins nicht dynamisch anzeigen, da müsstest du zum Beispiel so ein Textdraw machen: http://forum.sa-mp.com/showthread.php?t=407045
    Oder sowas: http://forum.sa-mp.com/showthread.php?t=452635


    Mal eine Frage und zwar ich möchte das wenn ich als Admin ein Radio "anmache" das dass alle in meiner Umgebung hören und das auch immer bei mir in der Range bleibt ^^


    Müsste man mit einem Timer machen, wenn du dich bewegst, aber dann würde der Stream immer wieder von vorne anfangen, da du es sofort wieder stoppen müsstest, wenn du dich bewegst und an der neuen Position starten müsstest.
    Du kannst es höchstens so machen, dass der Stream für einen Spieler gestartet wird, sobald dir der Spieler nahe ist, und du das Radio an hast, und gestoppt wird, sobald er dir nicht mehr nahe ist.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen