Beiträge von Jeffry

    Das zieht 400 von der mID ab, da diese ja erst ab 400 anfangen, die Indizes von VehicleNames (Array mit den Fahrzeugnamen) aber ab 0 beginnen.
    Sonst wird das Array gesprengt.

    Schreibe den Code zu OnPlayerStateChange, da bei OnPlayerEnterVehicle der GetPlayerState noch außerhalb des Fahrzeugs ist.
    OnPlayerEnterVehicle wird genau dann aufgerufen, wenn du die Taste zum Einsteigen drückst, da bist du ja noch nicht im Fahrzeug.

    forward UpdateUhrzeit();
    public UpdateUhrzeit()
    {
    new hour,minute,sec,string[16];
    gettime(hour,minute,sec);
    format(string,sizeof(string),"%02d:%02d:%02d",hour,minute,sec);
    for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && !IsPlayerNPC(i)) PlayerTextDrawSetString(i, TimeDraw[i], string);
    SetWorldTime(hour);
    return 1;
    }


    Timer bei OnGameModeInit so starten:
    SetTimer("UpdateUhrzeit", 333, true);
    333 entspricht einer drittel Sekunde, so läuft der Sekundenzähler recht flüssig und überspringt keine Zahl.

    Das wäre ohne Include - Änderung nicht möglich seitens ocmd

    Nein?


    ocmd@4:help,hilfe,needhelp,sup(playerid, params[])
    {
    //CODE
    }
    ocmd@2:cmds,commands(playerid, params[]) return ocmd_help(playerid, params);


    :klugs:

    Oder man benutzt einfach die durch die Include (zcmd) bereitgestellten Callbacks OnPlayerCommandReceived() und OnPlayerCommandPerformed() , die den gleichen Funktionsumfang wie OnPlayerCommandText haben

    Das geht ebenfalls.


    Ich würde dennoch ocmd empfehlen, da es flexibler einsetzbar ist (z.B. mehrere Befehle mit gleicher Funktion [z.B. /hilfe, /help] in einen Befehl packen).

    Es klappt so wen ich jetzt ein acc anlege wird in der db nichts angezeigt bei newpasswort das was ich vorhin drinn hatte war in der datenbank das passwort drinne? (gehascht)

    1. Nutze bitte Punkte zwischen deinen Sätzen, das versteht man sonst erst nach drei mal lesen!


    2.
    Lass dir das Query bitte mal per print ausgeben, was da drin steht:
    printf("query = %s", query);"
    Was steht so im Server Log?

    Hey ich wollte gerade mein Script auf mein Server laden aber iwie funktioniert es doch nicht

    Versuche es so:
    #define MYSQL_HOST "127.0.0.1"
    #define MYSQL_USER "root"
    #define MYSQL_PASS ""
    #define MYSQL_DBSE "testdb"


    PS: Fragen zum aktuellen MySQL Plugin, bzw. dem Code aus meinem Tutorial am besten direkt im Tutorial stellen, dann geht es nicht unter.
    [jTuT] MySQL R41 (Installation, XAMPP, Verwendung, Bedienung & Registrations-System)

    Das stimmt nicht.

    Doch, da zcmd sich per Hook vor die strcmp Befehle schält, aber OnPlayerCommandText nach seinem Coding nicht mehr aufruft.
    Somit werden die strcmp Befehle nicht ausgeführt.



    Nutze besser ocmd, wie XeroX schon sagte - das führt auch die strcmp Befehle weiterhin problemlos aus.
    ocmd 2.1.1 [ Update 3.11.2013 ]



    Alternativ könnte man zcmd dazu bringen, OnPlayerCommandText danach wieder aufzurufen, das würde ich aber nicht machen, und empfehle ich auch nicht.
    Empfehlung ist ocmd zu nutzen.

    Ah okay, ich verstehe... Aber wenn man richtige Abfragen bei den Automaten & den Pay n Sprays hinzufügt, dann ist das normale Geldsystem doch theoretisch sicher oder?

    Wenn du alles korrekt abfragst, und jeweils die Geld-Änderungen beachtest, theoretisch ja. Nur ist das eben ein ziemlicher Aufwand, alles zu 100% zu erkennen.
    Praktisch kann es immer noch sein, dass die Synchronisation zwischen Spieler und Server nicht richtig funktioniert und das Geld sich nicht ändert, ohne dass der Spieler einen Cheat nutzt.
    Dies gilt es auch zu beachten.


    Wie könnte man es anstellen? Kannst du mir eventuell ein Ansatz geben?

    Einen Ansatz gibt es nicht wirklich dazu. Es muss einfach jede einzelne Möglichkeit, die Geld gibt und abzieht - am Coding vorbei - abgefragt werden. Hierzu gibt es in manchen Fällen bereits Releases, in manchen aber auch nicht.
    Beispiel: http://forum.sa-mp.com/showthread.php?t=367838
    Wobei es noch sicherer wäre, die Position zusätzlich zu prüfen.


    Da gibt es viele..hier ein Beispiel: forum.sa-mp.com/showthread.php?t=71136

    Sorry, aber das ist totaler Schrott und hat nicht im Entferntesten was mit einem seriösen Anti-Money-Hack zu tun.

    Gibt es da eine simple Lösung?

    Nein, außer du blockierst alles, was dir vom Spiel her Geld gibt bzw. Geld abzieht (Ammu-Nation, Casino, Stunt Bonus, Restaurants, Pay'N'Spray, ...).
    Andernfalls ist es ziemlich aufwändig, alle Eventualitäten abzufangen.


    Ich habe auf meinem Server die Anti-Money-Hack Funktion über Jahre immer wieder verbessert und erweitert, eine 100%'ige Sicherheit kann aber nicht gewährleistet werden, vor allem wenn man sein Geld einfriert und Geld an Stationen ausgibt, die nicht Code-Seitig (oben genannte) das Geld abziehen.

    Nope, keinerlei Änderung, auch wenn ich es als

    Nutze "inputtext":
    case DIALOG_TAFELEINSTEXT:
    {
    if(response)
    {
    if(strlen(inputtext) && strlen(inputtext) > 60)
    {
    new string[128];
    new wtafel = TafelID[playerid];
    if(!IsPlayerInRangeOfPoint(playerid,50.0,Werbetafeln[wtafel][wtafelx],Werbetafeln[wtafel][wtafely],Werbetafeln[wtafel][wtafelz]))return SendClientMessage(playerid,COLOR_GREY,"Du bist nicht an der angegebenen Werbetafel!");
    format(string,sizeof(string),"Du hast den Text der Werbetafel %i auf '%s' umgeändert.",wtafel,inputtext);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
    format(Werbetafeln[wtafel][wtafeltext],60,inputtext);
    DestroyDynamicObject(Werbetafelobject[wtafel]);
    Werbetafelobject[wtafel] = CreateDynamicObject(Werbetafeln[wtafel][wtafelobjectid],Werbetafeln[wtafel][wtafelx],Werbetafeln[wtafel][wtafely],Werbetafeln[wtafel][wtafelz],Werbetafeln[wtafel][wtafelxrot],Werbetafeln[wtafel][wtafelyrot],Werbetafeln[wtafel][wtafelzrot]);
    SetDynamicObjectMaterialText(Werbetafelobject[wtafel],Werbetafeln[wtafel][wtafeltmindex],Werbetafeln[wtafel][wtafeltext],Werbetafeln[wtafel][wtafeltmsize],Werbetafeln[wtafel][wtafeltfonts],Werbetafeln[wtafel][wtafeltfontsize],Werbetafeln[wtafel][wtafeltbold],Werbetafeln[wtafel][wtafeltfontcolor],Werbetafeln[wtafel][wtafeltbackcolor],Werbetafeln[wtafel][wtafeltaligment]);
    }
    }
    }