[Zurückgezogen] Support System

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [Zurückgezogen] Support System

      Support System Beta Release 1.0

      Ich Release heute mein eigenes Support-System. Es ist sehr einfach zu Hand haben und man kann eigentlich nix falsch machen.

      Funktionen:
      [Blockierte Grafik: http://scriptsbytheone.bplaced.net/sup2.PNG]

      Gui:
      Spoiler anzeigen

      [Blockierte Grafik: http://scriptsbytheone.bplaced.net/sup.PNG]

      Und ja ich bin nicht der beste was Desgine betrifft :D ^^


      Wie im Titel steht ist es noch in der Beta. Es werden diese Woche noch ein parr Updates folgen :)

      Hast du Update Ideen oder hast Bugs gefunden?

      - Poste es hier im Therad
      - Schreib mir im cChat
      - Mach es selber ^^

      Bugs:
      Noch keine gefunden.

      Download (Script zurückgezogen)

      Corbert schrieb:

      Kannst dich jetzt hinter deiner Mauer aus passiv aggressiven Klassikern wie "mimimi" oder "typisch Com" natürlich wie der Boss fühlen, weil du es jetzt allen mal so richtig gegeben hast

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von The0ne ()

    • Der Code ist wirklich etwas schlimm :/

      Was mir alles aufgefallen ist:

      1. Du benutzt "onClientResourceStart" mit root zusammen. Das bedeutet, dass der ganze Code in Zeilen 5 bis 11 bei jedem Ressourcen-Start ausgeführt wird, egal welche Ressource (z.B. bei Admin-Start wird der Code ausgeführt).Daher nutze da lieber resourceRoot, damit es nur bei DIESER Ressource passiert.


      2. Wieso auch immer, sendest du per triggerServerEvent den Spieler.

      LUA-Quellcode

      1. local player = getLocalPlayer() -- der Schritt ist recht unnötig
      2. triggerServerEvent("checkrights", localPlayer, player) -- hier sendest du localPlayer als Argument (player = localPlayer)


      Das ist nicht nur unnötig (+ verschwendet Bandweite), sondern ist auch anfällig für Event-Faking.
      Nutze daher hier keine Argumente und serverseitig dann client (client ist der Client, der den triggerServerEvent ausgeführt hat).

      3. Du sendest serverseitig das Event "haverights" an alle Spieler (Zeile 7), was recht unnötig ist. Sende es nur an client.

      4. Die Einrückungen im Code sind schrecklich, ich verliere sofort den Überblick.

      5. Die GUIs werden von Anfang an für alle Spieler erstellt und im Hintergrund gelassen - auch wenn man sie nie verwendet.
      Wieso erstellst du die GUIs nicht einfach dann, wenn der Spieler das Fenster öffnen will?

      6. Im Hintergrund werden die Spieler dauerhaft in die Liste hinzugefügt oder aus der Liste entfernt, wenn sie Online kommen oder Offline gehen.
      Wieso tust du das nicht einfach 1x alles, wenn man das Fenster öffnet?

      7. Nahezu alle Variablen sind global - versuch sie auf local zu setzen.
      Du nutzt sie nirgends anders.

      8. clientseitig in den Zeilen 173 und 181 wird die Variable columsn verwendet - sie existiert aber gar nicht?!

      9. Es wird immer zwischen Englisch und Deutsch gewechselt - du solltest da lieber nur eine Sprache nutzen (Englisch ist empfehlenswert)

      10. Du benutzt oft is ... end is ... end is ... end, obwohl du diese viel besser mit is ... elseif ... elseif ... end machen könntest.
      Das sorgt für minimal bessere Performance, aber für viel bessere Übersicht, da man direkt weiß "wenn das eine auftritt, kann das andere nicht auftreten".
      Außerdem können da oft Fehler auftreten, du hast da auch einen Fehler gemacht.

      11. Das ganze Support-Fenster kann nur jemand berechtigtes benutzen - aber es wird trotzdem für alle erstellt und die Spieler werden im Hintergrund bei allen in die Liste eingefügt.

      12. Man sollte das Fenster auch wieder mit "O" schließen können - nutze guiSetInputMode, um beim Schreiben keine Probleme zu bekommen.

      13. Du brauchst besseren Schutz gegen Event-Faking.
      Z.B. könnte man durch das Faken von "submitwarn" jeden beliebigen Spieler auf dem Server bannen.
      Du kannst was dagegen tun, indem du z.B. serverseitig noch abfragst, ob der client überhaupt befugt dazu ist.
      Vertraue nie dem client, frag serverseitig immer nochmal ab.

      14. Ich bin mir zu 100% sicher, dass ich dir das schon vorher mal gesagt hatte - du hattest vorher mal sowas releast (oder es war wer anderes und du hast nur das Script genommen).
      Guck dir diese Zeilen mal an:

      LUA-Quellcode

      1. if getAccountData(acc, "sup.warns") == "3" then
      2. setAccountData(acc, "sup.warns", false)
      3. banPlayer ( dasZielElement,false, false, true, "Warnung", tostring(theReason), 14400 )
      4. end
      5. if getAccountData(acc, "sup.warns") == "0" then
      6. setAccountData(acc, "sup.warns", "1")
      7. outputChatBox("[WARN]: Du hast nun 1 Warn.", dasZielElement, 255, 0, 0, false)
      8. else
      9. if getAccountData(acc, "sup.warns") == "1" then
      10. setAccountData(acc, "sup.warns", "2")
      11. outputChatBox("[WARN]: Du hast zurzeit 2 Warns.", dasZielElement, 255, 0, 0, false)
      12. outputChatBox("[WARN]: Beim nächsten vergehen wirst du gebannt!", dasZielElement, 255, 0, 0, false)
      13. end
      14. if getAccountData(acc, "sup.warns") == "2" then
      15. setAccountData(acc, "sup.warns", "3")
      16. end
      17. end
      Alles anzeigen
      Ich habe es zur besseren Übersichtlichkeit etwas gekürzt und mit Einrückungen versehen.
      Weißt du, was hier passiert?

      1. Warn -> Du hast nun 1 Warn
      2. Warn -> Du hast zurzeit 2 Warns. -> 3. Warn
      4. Warn -> Man wird gebannt

      Das meinte ich im 10. Punkt, du gibst dem Spieler hier nach dem 1. Warn sofort 2 Warns (setzt es auf 3).
      Wenn du da einen Output reingetan hättest mit "Du hast zurzeit 3 Warns", hättest du es vllt. selber bemerkt.


      15. Die Warns werden erst auf 0 gesetzt, wenn man sich einloggt.
      Was ist, wenn man sich nie einloggt? Dann klappt es nicht, man kann dem Spieler nie Warns geben.

      16.

      LUA-Quellcode

      1. if getAccountData(acc, "sup.warns") == "3" then
      2. outputChatBox("[WARN]: Du hast zurzeit 2 Warns", source, 255, 0, 0, false)
      3. end
      Man sieht, dass du vom Fehler in Punkt 14 Bescheid weißt, aber statt den Fehler zu suchen, hast du dich lieber für eine "hässliche" Methode entschieden.
      Eine Art "hauptsache es klappt", was ein riesen Fehler von Anfängern ist. Irgendwann hast du so massig "unsichtbare" Bugs reingetan, die du später nicht mehr so einfach fixen werden kannst.
    • [TDS]Bonus schrieb:

      4. Die Einrückungen im Code sind schrecklich, ich verliere sofort den Überblick.
      Es ist ein altes Script von mir kein aktuelles.

      [TDS]Bonus schrieb:

      5. Die GUIs werden von Anfang an für alle Spieler erstellt und im Hintergrund gelassen - auch wenn man sie nie verwendet.
      Ich habe die Erfahrung gemacht das wenn man alles gleich lädt das es noch so 1 Sekunde standtbild ist.

      [TDS]Bonus schrieb:

      Es wird immer zwischen Englisch und Deutsch gewechselt
      Wüsste nicht wo :D

      [TDS]Bonus schrieb:

      1. Warn -> Du hast nun 1 Warn
      2. Warn -> Du hast zurzeit 2 Warns. -> 3. Warn
      Nein. Das hatten wir schonmal, ich werde beim 3.Warn gebannt. Ich teste doch meine funktionen ^^

      [TDS]Bonus schrieb:

      Man sieht, dass du vom Fehler in Punkt 14 Bescheid weißt, aber statt den Fehler zu suchen, hast du dich lieber für eine "hässliche" Methode entschieden.
      Eine Art "hauptsache es klappt", was ein riesen Fehler von Anfängern ist.
      Deswegen ist es ja noch eine Beta. Es werden noch viele Updates folgen, was einrücken betrifft, ich bin gerade auch dabei alles ein wenig 'sichererer' und verständlicher zumachen.

      [TDS]Bonus schrieb:

      oder es war wer anderes und du hast nur das Script genommen
      Das ist von meinem Warnscript

      Corbert schrieb:

      Kannst dich jetzt hinter deiner Mauer aus passiv aggressiven Klassikern wie "mimimi" oder "typisch Com" natürlich wie der Boss fühlen, weil du es jetzt allen mal so richtig gegeben hast
    • 1. Auf wenn es ein altes Script ist, du hast es released.

      2. Besser als wenn man sie dauerhaft im Hintergrund hat.

      3. Ich zähle dir einige Variablen auf:
      checkplayers, checksys, spielerliste, submitbtn, warnungch, supch, newsch, showall, hideall, allow, show, warnung, nachricht, message.
      Fällt dir da wirklich nichts auf?

      4. Habs auch gerade gesehen - und da hatte ich dir auch viel geschrieben, wobei du das meiste wohl ignoriert hast.

      5. Dann teste ordentlich. Du kriegst beim 2. Warn direkt den 3. Warn, das hatte ich dir da auch geschrieben.
      Lass dir z.B. nach jedem Warn die Warn-Anzahl des Spielers schicken, dann wirste es wohl bemerken.
      "Falls der Spieler einen Warn hat, gib ihm den 2. Warn.
      Falls der Spieler DANACH 2 Warns hat, gib ihm den 3. Warn."
      Ein "andernfalls/elseif" hätte hier den Fehler verhindert.


      6. Dann solltest du die "Beta" erst starten, wenn du das Script so weit hast.
    • [TDS]Bonus schrieb:

      2. Besser als wenn man sie dauerhaft im Hintergrund hat.
      Geschmackssache ^^

      [TDS]Bonus schrieb:

      Fällt dir da wirklich nichts ein?
      Achso, dachte für Informationen (outputChatBox)

      [TDS]Bonus schrieb:

      Du kriegst beim 2. Warn direkt den 3. Warn, das hatte ich dir da auch geschrieben.
      Lass dir z.B. nach jedem Warn die Warn-Anzahl des Spielers schicken, dann wirste es wohl bemerken.
      hm, werde gegen Abend mal ein Update raushauen.

      Corbert schrieb:

      Kannst dich jetzt hinter deiner Mauer aus passiv aggressiven Klassikern wie "mimimi" oder "typisch Com" natürlich wie der Boss fühlen, weil du es jetzt allen mal so richtig gegeben hast
    • 1. Setzt dir keine Festen Termine, keiner wartet hier sehnsüchtig auf das Update.
      2. Gibt Bonus doch mal n Like, nichts freut ihn mehr^^