Beiträge von Jeffry

    Der Code ist ja fast schon so legendär wie die Include um einen Dialog erneut anzuzeigen :D
    Der Spoiler hätte andersrum gehört, ein solcher Code kann wohl kaum eine ernsthafte Empfehlung für jemanden sein.


    ------


    An sich reicht es, wenn man nur abfragt, ob der Kontostand unter dem jeweiligen Wert liegt, mehr braucht es nicht:



    Es ist aber unbedingt zu bedenken, dass SA-MP ein 32-bit System ist, sprich bei ~2,1 Milliarden ist Schluss (2^32-1).
    @ÉSMaticx du solltest dir daher vielleicht überlegen, ob du nicht mit einer oder zwei Nullen weniger in deinem Code arbeitest, sprich anstatt 100000 eben nur 1000, etc. Sonst kann es sein, dass schnell jemand dieses Limit überschreitet. Wenn das passiert, dann hat der Spieler einen negativen Kontostand.

    Du musst die Größe das anklickbaren Bereiches mit TextDrawTextSize anpassen. https://wiki.sa-mp.com/wiki/TextDrawTextSize Der X Wert ist die Position PLUS die Größe des nach rechts anklickbaren Bereiches. Der Y Wert ist die geschätzte Höhe.


    Angenommen du erstellst dein Textdraw bei X = 120 und Y = 90. Dann machst du den Text "Hallo Welt" da rein. Sagen wir, der Text ist so groß, dass er in etwa über ein Zehntel deines Bildschirmes geht (musst du abschätzen, oder mit einem Lineal abmessen), dann heißt das 640 durch 10, das wäre 64. Somit ist TextDrawTextSize-X = 120 + 64 = 184.
    Nun misst, bzw. schätzt, du die Höhe des Textdraws, sagen wir mal du bekommst den Text in etwa 20 mal untereinander hin, bis dein Bildschirm von oben nach unten voll damit wäre. Heißt also: 480 durch 20, das gibt 24. Somit wäre TextDrawTextSize-Y = 24.

    Das Schlagen geht zum Teil auf Maps die außerhalb der eigentlichen Map sind auch nicht, stimmt. Da kann man leider nichts machen, außer man prüft die Animationen und Positionen der Spieler bei OnPlayerUpdate ab, aber ob das wirklich klappt (Lag etc) wage ich zu bezweifeln.

    Dann liegt der Fehler wahrscheinlich woanders im Code.
    Du kannst das herausfinden, indem du ein Callback nach dem anderen ausklammerst (Kommentare /* */), so lange, bis der Compiler nicht mehr abstürzt.
    So kannst du dich dann an die Zeile hinarbeiten (auch wieder mit ausklammern, innerhalb des Callbacks), bis du die entsprechende Zeile gefunden hast, die das verursacht. Das ist zumindest der Weg, mit dem ich an solche Probleme ran gehe.

    Einen offiziellen gibt es zumindest nicht nicht, da:

    Zitat

    SA-MP uses a modified version of Pawn 3.2.3664 [1] with Windows-only executables,and the developers said that they lost the source code for it which means it can'tbe ported to other platforms (e.g. Linux) and newly discovered bugs can't be fixed.

    https://github.com/Zeex/pawn

    Dann versuche es bitte erneut mit mehreren, und poste dann was im Log steht, wenn du es so schreibst: