Beiträge von SkeeZy

    Okay habe auch mal wieder ein Problem, dass sich nicht lösen lassen will.


    Ich habe einen Wartungsmodus, der über einen Dialog(ShowServerSettings) de-/aktiviert werden kann.
    Lustigerweise hat der Dialog sich auch immer richtig angepasst, wenn die Variable (auf 0-wartung aus oder 1wartung-an) gesetzt wurde.
    Seit ich jetzt jedoch eine Funktion eingebaut habe, die im Endeffekt nur 1-2 Funktionen mehr ausführt und trotzdem die Variable ändert, bleibt der Text beim deaktivieren einfach auf ("Wartungdsmodus aktiviert")


    Ich hab auch mal geschaut ob die Variable sonst noch irgendwo geändert wird, aber nein. Nur durch das changeWartung im OnDialogResponse.
    Allerdings hat ein Testcommand ergeben, dass die Variable direkt nach dem print in changeWartung nochmal irgendwo auf 1 gesetzt wird.


    Ich weiß ist n bissl viel Code für so eine Frage, ich sitze da heute nur schon den 2. Tag ohne Lösung vor.

    @iTsRooT werden bei der Load Funktion im Print auch alle Namen bei den Fraks richtig angezeigt ? (hier: der printf in Z. 30)
    Wie viele Fraks hast du aktuell insgesamt ?


    Und versuch mal bitte:


    C
    for(new i; i<rows; i++)
    
    
    // ZU 
    
    
    for(new i; i<=rows; i++)


    zu ändern. Weiß zwar nicht ob das hilft oder ob ich Schleife nicht verstehe denn ( i<rows ) dürfte ja die Bedingung zum ausführen des Codes in der Schleife sein.
    Daher würde die letzte row(Reihe) bei dir nicht mitgezählt werden und hat somit Ingame/im Array keine Werte als Fraktion gesetzt.


    //e: Die erste gefundene row ist glaubig immer 0, mein Fehler wenns falsch ist, dann wäre deine Schleife richtig

    Du könntest die Tuning Garagen natürlich auch einfach zumappen

    Grundsätzlich sind eigene Variablen natürlich am besten, da die nicht einfach "geändert" werden können. Die Frage ist was du meinst mit "drum arbeiten"

    Das erste will ich vermeiden, da ich die Tuning Garagen schon gerne mit ihrer standardmäßigen Funktion beibehalten würde.


    Mit drum rum arbeiten meine ich genau diese Funktionen die ich scripten muss, damit das Geld nicht an einigen Stellen geschenkt wird.


    Hab für die Tuning-Garagen mittlerweile eine Lösung.
    Ich prüfe ob das Geld nicht mit der Variable übereinstimmt. Dann prüfe ich die Differenz zwischen beiden Werten und ob dieser maximal dem teuersten Tuningteil entspricht. Danach setze ich die Variable auf den richtigen Wert. (natürlich nur wenn ein Spieler in der Tuninggarage ist und wirklich etwas getunt wurde)



    Ich danke euch allen für eure Hilfe.

    Für Vehicles gibt es [wiki]On VehicleRespray[/wiki] (PayNSpray)


    Für die Sprunkautomaten kannst du entweder den Animationsindex Abfragen oder halt sie entfernen.

    Und beim Tuning komm ich wohl nicht drum herum zu prüfen, welche componentid neu ist und dann den Preis abzuziehen oder ?
    Gibt es vielleicht auch noch eine andere Möglichkeit Moneyhacks zu vermeiden, als einfach das Geld über eine Variable zu setzen, ohne dass man dann für diese Funktionen extra noch so viel drum herum arbeiten muss?

    Wieso denn neue Enumeratoren.
    Klar kannst du verschiedene Tabellen nutzen, dennoch das gleiche Array, gebunden an den selben Enumerator.

    Ist eher so für mich, würde es so ein wenig übersichtlicher haben, da ich recht viele ähnlich benannte Variablen in den Arrays habe, diese schon mehrfach verwechselt habe, und das nach ihren Bereichen unterteilen möchte.
    Deshalb fragte ich ja, ob man dadurch performancetechnisch einen Unterschied merken würde.


    Wieder eine neue Frage:
    Ich habe 2 Funktionen, mit denen ich das Geld eines Spielers setzen / getten kann.


    beim setter wird sein Geld resettet(ResetPlayerMoney) und dann auf die variable(pInfo[playerid][pMoney]) += menge gesetzt.


    Allerdings habe ich ein Problem mit einigen Aktionen die standardmäßig Geld abziehen, z.B. bei
    Sprunk-Automatenm, Tuning in Werkstätten, Respray(PnS).


    Hierbei wird das Geld direkt vom "normalen" Geld abgezogen. Da meine Funktion das nicht sieht bzw. die Variable hierbei nicht angepasst wird, kann der Spieler diese Funktionen kostenlos nutzen, da beim nächsten GivePlayerMoneySave(meine Funktion) einfach das Geld resettet und nach pInfo[playerid][pMoney] neugesetzt werden würde.


    Ich hoffe man versteht was ich meine.


    Ich brauche einfach nur eine Lösung, die diese Kosten(Sprunk, Tuning, Respray und weitere) bei der Aktion auch von der Variable abziehen.

    Dafür benutzt du einfach sscanf.
    Statt d (für einen Integer) oder s (für einen String) verwende einfach u (für einen User)
    Das hat genau diese Funktion.

    Oh shit. Ich glaub das wurde mir sogar schon mal gesagt.


    Dankesehr ihr beiden.




    //e: FRAGE: Kann keine neue Antwort auf das Thema hier senden, von daher versuche ich mal so zu fragen:


    Macht es einen krassen Unterschied, wenn ich 3Enums(und damit auch 3 verschiedene MySQL-Tabellen) für folgendes mache:
    1. Spielerstatistik 2. Spielerinventar 3.Spielereinstellungen


    Würde das gerne für mich selbst so machen, damit ich zum einen nicht eine extrem volle "users" Tabelle habe und ich zum anderen im script leichter unter ähnlich benannten variablen unterscheiden kann.
    Wenn das ganze performancetechnisch recht gravierend wär, würde ich es sein lassen. Auch wenn ich sowieso mind. noch 10enums+tabellen für andere Systeme erstellen werde.


    Abgefragt werden die Tabellen sowieso nur, wenn etwa alle halbe stunde ein AutoSave ausgeführt wird und eben bei connect/disconnect eines Spielers.

    Hey,
    wie ist es möglich, bei allen Commands statt der ID auch einfach einen Teil des Namen anzugeben?


    Bsp.: Wenn wir einen Spieler Names Testaccount haben


    Statt /whisper [ID von Testaccount]
    /whisper [Testacc]


    habe diese Funktion auf anderen Servern gesehen und würde das ganze selbst auch gerne nutzen.


    Ist das ganze außerdem mit ocmd möglich ?

    tja passiert aber , am ende bei jeder zeile fehlte auch

    Danke trotzdem für deine Rückmeldung. Im Endeffekt mein Fehler, wenn ich den Edit direkt drunter schreibe. Es gibt immer einige die es nicht komplett durchlesen.
    Jedoch steht das Komma, welches du überall hinzugefügt hast schon in der query und zwar jedes mal hinter dem %s.


    Ich hätte einfach nur direkt ein fehlendes ,query hinter dem letzten format sehen müssen.



    Er hat doch bereits geschrieben, dass er den Fehler gefunden hat. :D
    Dein Code würde das Problem deswegen auch nicht lösen, weil du genauso vergessen hast den alten query String mitzuformatieren.

    Wohl wahr. Diese formats sind aber auch immer kacke unleserlich hehe.

    Huhu,
    nach langer Inaktivität melde ich mich hier auch mal wieder, da mir ein Fehler in einem neuen Script unterlaufen ist:



    Warum auch immer speichert die Funktion nicht nur den Spieler in der DB, sondern setzt seine Werte auch in jeden anderen Spieler ein.



    Screens von der Tabelle (Usernamen + verlüsselte Passwörter ausgeschnitten):
    https://imgur.com/a/MN4QnS0


    Ich danke euch wie immer im Voraus für eure Hilfe.


    //EDIT: Fehler lustigerweise beim Posten direkt gesehen. Habe beim letzten format nicht das ,query angehängt.

    Man hört iwie immer nur von diesem Projekt wenn Rpg schließt wenn Rpg öffnet wird das Projekt geschlossen.
    Komisch.
    Hoffentlich Random. :D

    Wird man doch früher oder später sehen.
    Ich denke mal noch eine Chance erhält selbst RPG nicht mehr. Diese Spielerbase hat schon zu oft eine erzwungene Pause vom Server gehabt und dort weiterhin zu spielen oder sogar den Server neuzustarten, würde zum selben Endergebnis führen.
    Mit RPG1.0 ist RPG zu Ende gegangen.
    Alleine schon die ganzen Verträge und Unstimmigkeiten innerhalb der Community machen einen weiteren Neutstart des Projekts schwer. Schade drum. Ich wäre froh, wenn es nicht an RPG liegt und dieses Projekt wie geplant in einigen Monaten fortgesetzt wird.
    Und der letzte Start von CL war meines Wissens nach schon während einer aktiven Phase von RPG geplant.
    Ich hoffe wirklich, dass der nächste Start anders und vielleicht auch erfolgreicher läuft, da ich JacLos jetzt schon sehr lange kenne und ich ihm mit dem Projekt nur das beste wünsche.

    Moin, Gibt es eine möglichkeit alle Sprunk Automaten zu entfernen ?
    Also auch dass man diese nichtmehr nutzen kann

    Moin.
    Hilft das hier vielleicht ?


    https://forum.sa-mp.com/showthread.php?t=470155



    Dann könntest du abfragen ob der AnimationIndex der vom Sprunk trinken ist ( 1660 ).



    Code
    if(GetPlayerAnimationIndex(PLAYER) == 1660) //1660 = Trinkanimation
    {
    //GELD FÜR SPRUNK ZURÜCK GEBEN ODER
    //ANIMATION CLEAREN
    }

    https://wiki.sa-mp.com/wiki/GetPlayerAnimationIndex
    https://wiki.sa-mp.com/wiki/ClearAnimations


    //EDIT: MEIN BROWSER IST DOCH BEHINDERT. da steht vor 17min und es ist schon knapp n tag her

    Bekomme folgenden Error:
    ---pwn(385) : error 052: multi-dimensional arrays must be fully initialized



    Soweit ich weiß darfst du bei dem 2. keinen define verwenden. Versuch mal mit der oben definierten Zahl selbst.


    Code
    new GangwarZones[50][gangwar_daten] // 50 durch deine Zahl (MAX_GWZONES) ersetzen


    Eine andere Lösung dafür ist mir jetzt nicht bewusst.

    Wenn ich jemanden ein Textdraw anzeige (Textdrawshow...) und der Spieler disconnected,
    wird für den nächsten Spieler mit der ID das Textdraw auch angezeigt oder ist es pflicht es beim disconnect wieder zu hiden?

    https://wiki.sa-mp.com/wiki/CreatePlayerTextDraw



    enthält:


    Zitat von Wiki

    Player-textdraws are automatically destroyed when a player disconnects.


    Zu normalen Textdraws gibt's im Wiki keine Angabe, außer einem Codebeispiel (https://wiki.sa-mp.com/wiki/TextDrawHideForPlayer), jedoch braucht man es wohl nicht zu hiden, kann es aber auch einfach machen. Wäre ja jetzt nicht so aufwändig/problematisch :D