[jTool] Alle Befehle auslesen | j_cmdsAuslesen.vbs

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

    Es gibt Neuigkeiten! Ab sofort könnt ihr dem Donators Club auf Lebenszeit beitreten.
    Weitere Infos im Thema Donator's Club ab heute wieder verfügbar!

    • [jTool] Alle Befehle auslesen | j_cmdsAuslesen.vbs

      [jTool] Alle Befehle auslesen

      Hallo,

      ich veröffentliche hiermit ein kleines aber effizientes Tool, welches alle verwendbaren Befehle aus einem Filterscript bzw. einem Gamemode auslesen und ausgeben kann, das spart durchaus mehrere Stunden Sucharbeit im Code. Die Idee stammt aus diesem Thread: Frage zu OCMD


      Verzichtserklärung:
      Der Code wird veröffentlicht "wie er ist". Es wird dringendst empfohlen vor Benutzung ein Backup der Serverfiles zu machen. Für Schäden jeglicher Art übernehme ich keine Haftung, die Benutzung erfolgt auf eigene Verantwortung.
      Der Code darf jederzeit von jedem verändert werden, solange die Namensnennung nicht aus dem Code entfernt wird.
      Der Code darf nicht unter eigenem Name veröffentlicht werden, weder frei noch kommerziell.



      Vorführung

      Das Tool ist nicht mehr als eine kleine ausführbare Datei bzw. ein Visual Basic Code (.vbs) um es beim Namen zu nennen. Im richtigen Verzeichnis abgelegt und gestartet macht der Code in Sekundenschnelle die Arbeit für die man selbst mehrere Stunden bräuchte.



      Anleitung

      Die folgenden Schritte sollen zeigen wie der Code verwendet werden kann, um die Befehle aus der jeweiligen .pwn Datei auszulesen.
      Ich weise nochmals darauf hin, vor Benutzung ein Backup des Servers, bzw. der Dateien darin, anzulegen. Der Code wurde nach bestem Wissen und Gewissen getestet, dennoch können unvorhergesehene Ereignisse (z.B. Stromausfall) möglicherweise zu Fehlern führen. Ebenfalls weise ich nochmals darauf hin, dass die Benutzung auf eigene Gefahr geschieht.

      1. Code herunterladen
      Um den Code auf den Rechner zu bekommen gibt es zwei Möglichkeiten:

      • Die erste und einfachste Variante ist der direkte Download. Im Anhang befindet sich ein ZIP-Ordner der die ausführbare Datei enthält.
        1) ZIP Ordner auf den Windows-PC herunterladen
        2) Datei entpacken
      • Die zweite Variante ist die manuelle Erstellung der Datei:
        1) Kopiere folgenden Quellcode:

        C-Quellcode

        1. '-------------------------------------------------------------------------'
        2. ' '
        3. ' [jTool] - Alle Befehle auslesen '
        4. ' j_cmdsAusgeben.vbs '
        5. ' '
        6. ' Version 1.1 - 11.12.2014 '
        7. ' '
        8. ' © Jeffry '
        9. ' '
        10. '-------------------------------------------------------------------------'
        11. Set fs = CreateObject("Scripting.FileSystemObject")
        12. pfad = fs.GetParentFolderName(Wscript.ScriptFullName)
        13. If(fs.FileExists(pfad & "\AlleBefehle.txt")) Then
        14. Set wFile = fs.OpenTextFile(pfad & "\AlleBefehle.txt", 8)
        15. wFile.WriteLine ""
        16. wFile.WriteLine ""
        17. Else
        18. Set wFile = fs.CreateTextFile(pfad & "\AlleBefehle.txt", True)
        19. End If
        20. wFile.WriteLine "----" & CStr(Now) & "----"
        21. cmds = 0
        22. Set sDir = fs.getfolder(pfad)
        23. For Each file In sDir.Files
        24. If(LCase(Right(file.path, 4)) = ".pwn") Then
        25. Set rFile = fs.OpenTextFile(file.path, 1)
        26. blockcomment = false
        27. Do While rFile.AtEndOfStream <> true
        28. str = ""
        29. str = rFile.ReadLine
        30. If(InStr(str, "*/") And blockcomment = true) Then blockcomment = false
        31. If(blockcomment = false) Then
        32. comment = InStr(str, "//")
        33. bcomment = InStr(str, "/*")
        34. ccomment = InStr(str, "*/")
        35. If(bcomment <> 0 And ccomment = 0) Then comment = bcomment
        36. tmp = InStr(str, "dcmd_")
        37. If(tmp And (comment > tmp Or comment = 0) And (ccomment < tmp Or bcomment > tmp) And (bcomment > tmp Or bcomment = 0)) Then
        38. If(InStr(tmp, str, "),") = 0 And InStr(tmp, str, ");") = 0 And InStr(str, "#define") = 0) Then
        39. tmpstr = Mid(str, tmp+5, InStr(tmp, str, "(")-(tmp+5))
        40. wFile.WriteLine "/" & tmpstr
        41. cmds = cmds + 1
        42. End If
        43. End If
        44. tmp = InStr(str, "ocmd:")
        45. If(tmp And (comment > tmp Or comment = 0) And (ccomment < tmp Or bcomment > tmp) And (bcomment > tmp Or bcomment = 0)) Then
        46. tmpstr = Mid(str, tmp+5, InStr(tmp, str, "(")-(tmp+5))
        47. wFile.WriteLine "/" & tmpstr
        48. cmds = cmds + 1
        49. End If
        50. tmp = InStr(str, "ocmd@")
        51. If(tmp And InStr(tmp+1, str, ":") = (tmp+6)) Then
        52. again = true
        53. start = InStr(tmp+1, str, ":")
        54. Do While again <> false
        55. again = false
        56. If(tmp And (comment > tmp Or comment = 0) And (ccomment < tmp Or bcomment > tmp) And (bcomment > tmp Or bcomment = 0)) Then
        57. If(start And InStr(start+1, str, ",") < InStr(start+1, str, "(")) Then
        58. tmpstr = Mid(str, start+1, InStr(start+1, str, ",")-(start+1))
        59. wFile.WriteLine "/" & tmpstr
        60. cmds = cmds + 1
        61. again = true
        62. Else
        63. If(start) Then
        64. tmpstr = Mid(str, start+1, InStr(start+1, str, "(")-(start+1))
        65. wFile.WriteLine "/" & tmpstr
        66. cmds = cmds + 1
        67. End If
        68. End If
        69. End If
        70. start = InStr(start+1, str, ",")
        71. Loop
        72. End If
        73. tmp = InStr(str, "YCMD:")
        74. If(tmp And (comment > tmp Or comment = 0) And (ccomment < tmp Or bcomment > tmp) And (bcomment > tmp Or bcomment = 0)) Then
        75. tmpstr = Mid(str, tmp+5, InStr(tmp, str, "(")-(tmp+5))
        76. wFile.WriteLine "/" & tmpstr
        77. cmds = cmds + 1
        78. End If
        79. if(tmp = 0) Then
        80. tmp = InStr(str, "CMD:")
        81. Else
        82. tmp = 0
        83. End If
        84. If(tmp And (comment > tmp Or comment = 0) And (ccomment < tmp Or bcomment > tmp) And (bcomment > tmp Or bcomment = 0)) Then
        85. tmpstr = Mid(str, tmp+4, InStr(tmp, str, "(")-(tmp+4))
        86. wFile.WriteLine "/" & tmpstr
        87. cmds = cmds + 1
        88. End If
        89. tmp = 0
        90. again = true
        91. Do While again <> false
        92. tmp = InStr(tmp+1, str, "strcmp(cmd")
        93. If(tmp) Then start = InStr(tmp, str, """")
        94. again = false
        95. If(tmp And (comment > tmp Or comment = 0) And (ccomment < tmp Or bcomment > tmp) And (bcomment > tmp Or bcomment = 0)) Then
        96. If(InStr(tmp, str, "/") = (start+1)) Then
        97. tmpstr = Mid(str, start+2, InStr(start+1, str, """")-(start+2))
        98. wFile.WriteLine "/" & tmpstr
        99. cmds = cmds + 1
        100. again = true
        101. End If
        102. End If
        103. Loop
        104. tmp = 0
        105. again = true
        106. Do While again <> false
        107. tmp = InStr(tmp+1, str, "strcmp(""/")
        108. If(tmp And InStr(tmp+1, str, "cmd")) Then start = InStr(tmp, str, """")
        109. again = false
        110. If(tmp And (comment > tmp Or comment = 0) And (ccomment < tmp Or bcomment > tmp) And (bcomment > tmp Or bcomment = 0)) Then
        111. If(InStr(tmp, str, "/") = (start+1)) Then
        112. tmpstr = Mid(str, start+2, InStr(start+1, str, """")-(start+2))
        113. wFile.WriteLine "/" & tmpstr
        114. cmds = cmds + 1
        115. again = true
        116. End If
        117. End If
        118. Loop
        119. If(InStr(str, "/*") And InStr(str, "*/") = 0 And blockcomment = false) Then blockcomment = true
        120. End If
        121. Loop
        122. rFile.Close()
        123. End If
        124. Next
        125. wFile.close()
        126. If(cmds > 0) Then
        127. MsgBox "Es wurden " & cmds & " Befehle gefunden und gespeichert."
        128. Else
        129. MsgBox "Es wurden keine Befehle gefunden."
        130. End If
        Alles anzeigen
        2) Erstelle eine leere Textdatei (.txt) und öffne diese mit einem Editor.
        3) Füge den kopierten Code ein.
        4) Speichere die Datei mit "Speichern unter..." als "j_cmdsAuslesen.vbs"



      2. Code ausführen
      Der Code durchsucht das gesamte Verzeichnis (den gesamten Ordner) in dem die Datei liegt. Die "j_cmdsAuslesen.vbs" muss nun in das entsprechende Verzeichnis gelegt werden.
      1) Verschiebe die Datei in den "gamemodes" Ordner deines Servers wenn Du die Befehle aus Deinem Gamemode auslesen willst, in den "filterscripts" Ordner, wenn Du die Befehle aus allen Filterscripts auslesen willst.
      2) Klicke doppelt auf die Datei "j_cmdsAuslesen.vbs" und warte. Je nach Größe der pwn-Codes und Prozessorgeschwindigkeit kann der Vorgang einige Minuten dauern.
      3) Sobald der Prozess zu Ende ist, bekommst Du eine Ergebnismeldung.


      3. Ergebnis ansehen
      In dem Verzeichnis in welchem die "j_cmdsAuslesen.vbs" Datei liegt wurde eine Textdatei erstellt, die alle Befehle beinhaltet, die gefunden worden sind.
      1) Öffne die Textdatei mit einem Editor.
      2) Nun siehst Du alle Befehle, die gefunden worden sind.




      Kompatibilität

      In der aktuellen Version (v1.1) werden folgende Command-Prozessoren erkannt und ausgegeben:
      • strcmp [strcmp]
      • dcmd [dcmd_]
      • ocmd [ocmd:]
      • ycmd [YCMD:]
      • zcmd [CMD:]


      Sollten weitere Command-Prozessoren gewünscht sein, können diese mir gerne bekannt gegeben werden, diese können dann in einer neueren Veröffentlichung aufgenommen werden.


      Fragen/Probleme/Anregungen/Rückmeldungen

      Bei Fragen und Problemen jeglicher Art bitte ich um die Benutzung der "Antworten" Funktion. Sollte ich binnen 48 Stunden nicht geantwortet haben, kann mir gerne eine Private Nachricht (PN) geschickt werden.
      Für Anregungen betreffend Vorschlägen oder Verbesserungen bin ich jederzeit offen. Ich bitte darum, diese ebenfalls über die "Antworten" Funktion zu posten.

      Über Rückmeldungen würde ich mich freuen.


      Changelog

      • 11.09.2014: [v1.0] Erste Veröffentlichung
      • 14.09.2014: [v1.0.1] Bug behoben: Der define von dcmd wurde als Befehl erkannt.
      • 11.12.2014: [v1.1] ocmd wird nun auch mit mehreren Befehlen erkannt & strcmp wird nun auch in umgekehrter Reihenfolge erkannt.
      • 18.04.2015: [v1.1] Tippfehler im Thread behoben.
      • 22.06.2015: [v1.1] Download-Bilder repariert
      • 08.11.2015: [v1.1] Code-Formatierung an WBB4 angepasst



      Download






      Viel Spaß mit dem Tool, ich hoffe es erspart dem einen oder anderen etwas Zeit.

      Beste Grüße,
      Jeffry 8)
      Dateien
      • jTool.zip

        (1,2 kB, 105 mal heruntergeladen, zuletzt: )

      Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von Jeffry () aus folgendem Grund: 14.09.2014: Version 1.0.1 | 11.12.2014: Version 1.1 | 18.04.2015: Tippfehler | 22.06.2015: Download-Bilder repariert | 08.11.2015: Code-Formatierung an WBB4 angepasst

    • Hm vielleicht die möglichkeit einzelnde Dateien auszuwählen zum auslesen da manche mehrere .pwn dateien im gamemode / filterscript ordner haben und somit alle cmds auch die die es in dem eigentlichen gamemode / filterscript nicht gibt ausgegeben bekommen.
      soldiersofdemise.com Zombie Panic! Source Community mit versch. Upgrade System die das Hauptspiel ändern oder erweitern.
    • XeroX schrieb:

      Hm vielleicht die möglichkeit einzelnde Dateien auszuwählen zum auslesen da manche mehrere .pwn dateien im gamemode / filterscript ordner haben und somit alle cmds auch die die es in dem eigentlichen gamemode / filterscript nicht gibt ausgegeben bekommen.

      Wäre zwar eine nette Idee, aber das macht das Tool nur unnötig kompliziert, da die meisten sowieso die Befehle aus allen Codes auslesen wollen. Und wenn mal nicht, dann kann man sich die gewünschten Codes auch in einen Ordner kopieren und dort durchsuchen lassen. Das geht für die meisten aber schneller, wenn es keine Auswahl gibt.
      Ich werde mir die Idee trotzdem merken, falls mir mal langweilig sein sollte, kann ich mich ja mal dran setzen. :)
    • Geil, danke, hab bei meinem Selfmade Script den /help befehl noch nicht gemacht und das spart mir jetzt einige Arbeit
      10/10 Punkten

      [ FILTERSCRIPT ] Laptop/Webseiten System (In Game Webseiten) (Ich weiß der Hintergrund ist nicht schön...)
      [ FILTERSCRIPT ] U-Boot zum Fahren

      Du brauchst eine Funktion und würdest dafür sogar jemmand bezahlen? Dann schreib mich doch mal an! Genaueres:
      [ BIETE ] Script Service für wenig Geld - kleine und große Sachen [Auftäge gesucht]

      Beitrag von Kasakow ()

      Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
    • Schließe mich Toms Meinung an!
      Dies hat mir auch gerade ein bisschen Arbeit erspart!

      Aber mir fällt gerade auf dass er diese Sachen nicht mitzählt "ocmd@2:help,hilfe(playerid, params[]) "!
      Wäre gut, wenn du das ganze noch minimal überarbeiten würdest!

      //Edit
      Ich habe das mal selber hinzugefügt, stelle es hiermit zu Verfügung.

      file-upload.net/download-9585159/jt.vbs.html

      virustotal.com/de/file/b76a20a…838d/analysis/1411826697/

      Das ganze sieht dann halt so aus:

      Quellcode

      1. /3:tban,timeban,zeitban



      mfg :thumbup:
      Рыба лично :rolleyes:

    • Jeffry schrieb:

      Problem wurde behoben. Danke für die Meldung.

      PAWN-Quellcode

      1. if(strcmp("/onlinehelp", cmd, true) == 0)
      2. {
      3. SendClientMessage(playerid, COLOR_YELLOW, "____________________Online Hilfe System____________________");
      4. SendClientMessage(playerid, COLOR_GREEN, "/lehrer /oamt /admins /regierung /members /cops(nur für Cops)");
      5. SendClientMessage(playerid, COLOR_GREEN, "/taxis /busse /tuner /bauern /medics /detektive /mechaniker /newsreporter /trucker /anwaelte");
      6. SendClientMessage(playerid, COLOR_GREY, " ");
      7. return 1;
      8. }

      Wird zb nicht gefunden
    • [BE]axi92 schrieb:

      Will dich nicht drängen, nur wann denkst du kommst du dazu den fix einzubauen?
      Mich würde es mal brennend interessieren wie viel cmds wir wirklich haben^^

      Kein Problem. Mir sind einige wichtige Dinge dazwischen gekommen, ich werde schauen es bis Ende dieser Woche fertig zu machen.
      Habe es nicht vergessen. ;)

      EDIT: @[BE]axi92: Ich muss dich leider noch etwas vertrösten. Ich hoffe, dass es mir diese Woche reicht, habe zur Zeit sehr viel um die Ohren. Ist nicht vergessen, steht ganz oben in der To-Do-Liste. Tut mir Leid, dass es so lange dauert, ab nächstes Jahr bessert sich das wieder, falls es dann nochmals Änderungen bedarf.

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Jeffry ()

    • Ich kriege nur sowas:

      SQL-Abfrage

      1. ----19.11.2014 13:21:53----
      2. / Das System hat den Spieler %s
      3. / Das System hat den Spieler %s
      4. / Das System hat den Spieler %s
      5. / Das System hat den Spieler %s
      6. / Das System hat den Spieler %s
      7. / Der Admin %s
      8. / Der Admin %s
      9. / %s
      10. / %s
      11. / %s
      12. / Der Admin %s
      13. / Der Admin %s
      14. / Der Admin %s
      15. / Der Admin %s
      16. / Der Admin %s
      17. / Der Admin %s
      18. / Der Admin %s
      19. / Der Admin %s
      20. / Der Admin %s
      21. / Der Admin %s
      22. / Der Admin %s
      23. / Der Admin %s
      24. / Der Admin %s
      25. / Der Admin %s
      26. / Der Admin %s
      27. / Der Admin %s
      28. / Der Admin %s
      29. / Der Admin %s
      30. / Der Admin %s
      31. / Der Admin %s
      32. / Der Admin %s
      33. / Der Admin %s
      34. / Der Admin %s
      35. / Der Admin %s
      36. / Der Admin %s
      37. / Der Admin %s
      38. / Der Admin %s
      39. / Der Admin %s
      40. / Der Admin %s
      41. / Der Admin %s
      42. / Der Admin %s
      43. / Der Admin %s
      44. / Der Admin %s
      45. / Der Admin %s
      46. / Der Admin %s
      47. / Der Admin %s
      48. / Der Admin %s
      49. / Der Admin %s
      50. / Der Admin %s
      51. / Der Admin %s hat den Spieler %s zum Leader der Fraktion %s
      52. / Der Admin %s
      53. / Das System hat den Spieler %s
      54. / Das System hat den Spieler %s
      55. / Das System hat den Spieler %s
      56. / Das System hat den Spieler %s
      57. / Das System hat den Spieler %s
      58. / Das System hat den Spieler %s
      59. / %s
      60. / Du hast %s
      61. / Du wurdest von %s
      Alles anzeigen

      Verschenke SA-MP Server - MTA San Andreas Server - Minecraft Server
      Ich würde gern die Welt verändern, doch Gott gibt mir den Quellcode nicht.


      Another - Life
      Administrator 2012-2013

      Santos - Life
      Gründer & Inhaber
      ca. 2013-2015


    • [BE]axi92 schrieb:

      Gibt es schon neues oder kommt das erst nächstes Jahr wie du oben geschrieben hast?

      Ich habe es heute früh gemacht, ich muss es nur noch hochladen, das mache ich wenn ich zu Hause bin.

      Tut mir wirklich leid, dass es so lange gedauert hat, aber ich war die letzten zwei Wochen unerwartet weg und konnte leider gar nichts machen.



      EDIT:
      Version 1.1:

      • ocmd wird nun auch mit mehreren Befehlen erkannt
      • strcmp wird nun auch in umgekehrter Reihenfolge erkannt



      Download




      Viel Spaß damit! 8)

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