Autohotkey Scripting Service

  • Biete

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

Rechtsverhältnisse kommen ausschließlich zwischen den Beteiligten zustande. Die Betreiber von breadfish.de sind weder Vertragspartner noch Vermittler dieser Rechtsverhältnisse.

  • Autohotkey Scripting Service

    Guten Tag, Liebe Mitfische!

    Na, auf der Suche nach einem Keybinder für deinen Server?
    Oder ein anderes Programm/Tool um dir die Arbeit mit Pawn etc. zu erleichtern?
    Dann bist du hier richtig! Melde dich bei mir und ich fertige deinen Wunsch an.
    Egal ob Admin/Support Binder, MYSQL Verwaltungs Tool oder eigener MediaPlayer, alles ist möglich!
    Ich besitze nun mehrere Jahre Coding Erfahrung im Bereich Autohotkey...
    Mein Codingstil ist sauber, geordnet, bei bedarf Kommentiert für Lernzwecke.
    Kundenkontakt ist das A&O, der ständige Kontakt ist ausschlaggebend für ein sauberes Ergebnis.
    Damit fahre ich die letzten Jahre ziemlich gut und werde es für zukünftige Projekte beibehalten.

    Ich schrieb schon diverse vollautomatische Keybinder für Server wie RGN*, LYD**, DSZ**, GCT*,Life of SA(?)*
    github.com/RenzOne/SAMP-Keybinder-Scripts <- RGN/GCT Sourcecodes
    Die Sourcecodes der anderen Server kann ich nicht veröffentlichen da ich die Rechte an den Codes mit verkaufe, somit besitze ich kein Recht diese zu Veröffentlichen!

    Autohotkey Referenzen


    Breadfish.de - Foren Ticker (COM|GDI+)

    Brainfuck-Quellcode

    1. if not A_IsAdmin
    2. {
    3. Run *RunAs "%A_ScriptFullPath%"
    4. ExitApp
    5. }
    6. if (a_iscompiled){
    7. if(!FileExist("Bread_Sound.mp3"))
    8. FileInstall,Bread_Sound.mp3,Bread_Sound.mp3,0
    9. }else{
    10. FileInstall,Bread_Sound.mp3,Bread_Sound.mp3,0
    11. }
    12. #Persistent
    13. #SingleInstance force
    14. #NoEnv
    15. #include gdip.ahk
    16. global pToken := Gdip_Startup()
    17. if(!pToken)
    18. exitapp
    19. global _Interval := 5*1000*60
    20. OnExit, Exit
    21. if(!FileExist("Log.ini"))
    22. {
    23. IniWrite,% "", Log.ini, Login-Daten, Username
    24. IniWrite,% "", Log.ini, Login-Daten, Passwort
    25. Run % "Log.ini"
    26. Msgbox % "Trage deine Benutzerdaten in die Log.ini (:D Sry Flachwitz...) ein.`nStarte anschliessend das Programm neu."
    27. Exitapp
    28. }else{
    29. IniRead, _USERNAME, Log.ini, Login-Daten, Username
    30. IniRead, _PASSWORT, Log.ini, Login-Daten, Passwort
    31. if(_USERNAME == "" || _PASSWORT == "")
    32. {
    33. Run % "Log.ini"
    34. Msgbox % "Trage deine Benutzerdaten in die Log.ini (:D Sry Flachwitz...) ein.`nStarte anschliessend das Programm neu."
    35. Exitapp
    36. }
    37. global _USERNAME := _USERNAME
    38. global _PASSWORT := _PASSWORT
    39. Gui, 1: -Caption +E0x80000 +LastFound +AlwaysOnTop +ToolWindow +OwnDialogs
    40. Gui, 1: Add, Text, w140 h20 y300,
    41. Gui, 1: Show, NA
    42. global hwnd1 := WinExist()
    43. Settimer, CheckNotification, %_Interval%
    44. }
    45. CheckNotification:
    46. Bread := GetBreadfishNotifications()
    47. If(Bread.Benachrichtigungen >= 1 || Bread.Konversationen >= 1){
    48. SoundPlay, Bread_Sound.mp3
    49. SetToolTipEx(hwnd1,10000,Bread.Konversationen,Bread.Benachrichtigungen)
    50. }
    51. return
    52. GetBreadfishNotifications()
    53. {
    54. IEX := ComObjCreate("InternetExplorer.Application")
    55. IEX.Visible := False
    56. IEX.Navigate("http://www.Breadfish.de")
    57. While(IEX.busy)
    58. sleep, 10
    59. IEX.document.getElementById("username").value := _USERNAME
    60. IEX.document.getElementById("password").value := _PASSWORT
    61. IEX.document.getElementById("loginSubmitButton").click()
    62. While(IEX.busy)
    63. sleep, 10
    64. RegExMatch(Trim(IEX.document.All.item["userNotifications"].innerText),"Benachrichtigungen ([0-9]+)",RegNot)
    65. RegExMatch(Trim(IEX.document.All.item["unreadConversations"].innerText),"Konversationen ([0-9]+)",RegKon)
    66. GBN_OBJECT := {Benachrichtigungen: strlen(RegNot1) >= 1 ? RegNot1 : 0
    67. , Konversationen: strlen(RegKon1) >= 1 ? RegKon1 : 0}
    68. IEX.quit
    69. IEX := ""
    70. return GBN_OBJECT
    71. }
    72. SetToolTipEx(STTE_HWND,STTE_TIME:=3000,STTE_MESCOUNT:=0,STTE_NOTCOUNT:=0)
    73. {
    74. if(STTE_MESCOUNT == 0 && STTE_NOTCOUNT == 0 || STTE_HWND == 0x0)
    75. return
    76. Gui, 1: -Caption +E0x80000 +LastFound +AlwaysOnTop +ToolWindow +OwnDialogs
    77. Gui, 1: Add, Text, w140 h20 y300,
    78. Gui, 1: Show, NA
    79. global hwnd1 := WinExist()
    80. if(STTE_TIME > 5000)
    81. STTE_TIME := 5000
    82. STTE_WEITE := 200
    83. STTE_HÖHE := 200
    84. STTE_FONT := "Verdana"
    85. STTE_COLOR := {BackMain: 0xFF554D67,BackSEC: 0xFF5B647A,BorderMAIN: 0xFF020007, BorderSEC: 0xFF424243,INT: FF0A256A, ALPHA: FF000000}
    86. hbm := CreateDIBSection(STTE_WEITE, STTE_HÖHE)
    87. hdc := CreateCompatibleDC()
    88. obm := SelectObject(hdc, hbm)
    89. _G := Gdip_GraphicsFromHDC(hdc)
    90. Gdip_SetCompositingMode(_G, 4)
    91. Gdip_FillEllipse(_G, pBrush:= Gdip_CreateLineBrush(0, 0, 50, 50, STTE_COLOR.BorderMAIN, STTE_COLOR.BorderSEC,1), 0, 0, STTE_WEITE,STTE_HÖHE)
    92. Gdip_FillEllipse(_G, pBrush2:= Gdip_CreateLineBrush(0, 0, 50, 50, STTE_COLOR.BackSEC, STTE_COLOR.BackMain,1), 5, 5, STTE_WEITE-10, STTE_HÖHE-10)
    93. If(!Gdip_FontFamilyCreate(STTE_FONT))
    94. Gdip_FontFamilyCreate("Arial")
    95. TEXTPOS := {Y:10,H:10}
    96. Gdip_TextToGraphics(_G, "Breadfish.de","y" TEXTPOS.Y "p h" TEXTPOS.H "p c" STTE_COLOR.ALPHA " s12 Centre Underline Italic Bold", STTE_FONT, STTE_WEITE, STTE_HÖHE)
    97. Gdip_TextToGraphics(_G, "","y" (TEXTPOS.Y:=(TEXTPOS.Y+TEXTPOS.H)) "p h" TEXTPOS.H "p", STTE_FONT, STTE_WEITE, STTE_HÖHE) ; Leere Zeile
    98. Gdip_TextToGraphics(_G, "Hey, " _USERNAME " du hast..." ,"y" (TEXTPOS.Y:=(TEXTPOS.Y+TEXTPOS.H)) "p h" TEXTPOS.H "p c" STTE_COLOR.ALPHA " s11 Centre Italic", STTE_FONT, STTE_WEITE, STTE_HÖHE)
    99. if(STTE_MESCOUNT){
    100. Gdip_TextToGraphics(_G, STTE_MESCOUNT,"x8p y" (NEXTY := TEXTPOS.Y:=(TEXTPOS.Y+TEXTPOS.H)) "p h" TEXTPOS.H "p w20p c" STTE_COLOR.INT " s12 Left Bold", STTE_FONT, STTE_WEITE, STTE_HÖHE)
    101. Gdip_TextToGraphics(_G, STTE_MESCOUNT == 1 ? " ungelesene Nachricht!" : " ungelesene Nachrichten!","x13p y" NEXTY "p h" TEXTPOS.H "p c" STTE_COLOR.ALPHA " s12 Left", STTE_FONT, STTE_WEITE, STTE_HÖHE)
    102. }
    103. if(STTE_NOTCOUNT){
    104. Gdip_TextToGraphics(_G, STTE_NOTCOUNT,"x8p y" (NEXTY := TEXTPOS.Y:=(TEXTPOS.Y+TEXTPOS.H)) "p h" TEXTPOS.H "p w20p c" STTE_COLOR.INT " s12 Left Bold", STTE_FONT, STTE_WEITE, STTE_HÖHE)
    105. Gdip_TextToGraphics(_G, STTE_NOTCOUNT == 1 ? " ungesehenes Thema!" : " ungesehene Themen!","x13p y" NEXTY "p h" TEXTPOS.H "p c" STTE_COLOR.ALPHA " s12 Left", STTE_FONT, STTE_WEITE, STTE_HÖHE)
    106. }
    107. Gdip_TextToGraphics(_G, "`nby Renz","x25p y" (TEXTPOS.Y:=(TEXTPOS.Y+TEXTPOS.H)) "p h" TEXTPOS.H "p Center c" STTE_COLOR.ALPHA , STTE_FONT, STTE_WEITE, STTE_HÖHE) ; Leere Zeile
    108. UpdateLayeredWindow(STTE_HWND, hdc, (A_ScreenWidth-STTE_WEITE)//2, (A_ScreenHeight-STTE_WEITE)//2, STTE_WEITE, STTE_HÖHE)
    109. OnMessage(0x201, "WM_LBUTTONDOWN")
    110. Gdip_DeleteBrush(pBrush)
    111. Gdip_DeleteBrush(pBrush2)
    112. SelectObject(hdc, obm)
    113. DeleteObject(hbm)
    114. DeleteDC(hdc)
    115. Gdip_DeleteGraphics(_G)
    116. sleep %STTE_TIME%
    117. gosub DelTip
    118. Return
    119. }
    120. DelTip:
    121. Try Gui, 1: Destroy
    122. return
    123. WM_LBUTTONDOWN()
    124. {
    125. PostMessage, 0xA1, 2
    126. }
    127. Exit:
    128. Gdip_Shutdown(pToken)
    129. ExitApp
    130. Return
    Alles anzeigen
    Desktop Ausgabe:

    Erfolgsystem Include| Kundenwusch | .txt basierend
    Da die Person ihren Teil des Vertrages nicht eingehalten hat (Es erfolgte keine Bezahlung) Release ich es mit als Teil der Referenzen.

    Brainfuck-Quellcode

    1. ;Quests Vars
    2. ;----------------
    3. global Q_Name = 1
    4. global Q_Info = 2
    5. global Q_Prog = 3
    6. global Q_Max = 4
    7. global Q_EXP = 5
    8. global Q_STATUS = 6
    9. global Q_TOTALEXP = 0
    10. ;----------------
    11. ;RegEX Formeln
    12. global RegExQuest := "i)([a-zA-Z\s\.]+)/([a-zA-Z0-9\s\.]+)/([0-9]+)/([0-9]+)/([0-9\.]+)/([0-1])"
    13. global RegExQuestSettings := "([0-9]+)/"
    14. global RegExTimeStamp := "U)^\[\d{2}:\d{2}:\d{2}\] "
    15. global RegExColor := "{\S{6}}"
    16. ;----------------
    17. Col := {Main: "FFFFFF",Sec: "3651A8"}
    18. ;Objekte
    19. global Quest := Object()
    20. BuildArray()
    21. {
    22. If(Quest.MAxIndex() > 0){
    23. While(Quest.MaxIndex())
    24. Quest.RemoveAt(Quest.MaxIndex())
    25. }
    26. FileRead, QuestFILECONTENT, Questlist.txt
    27. Loop, parse, QuestFILECONTENT, `n, `r
    28. {
    29. if(Found := RegExMatch(A_Loopfield, RegExQuest, REGEXARR))
    30. Quest.Push([ REGEXARR1 , REGEXARR2 , REGEXARR3 , REGEXARR4 , REGEXARR5 , REGEXARR6 ])
    31. if(Found := RegExMatch(A_Loopfield, RegExQuestSettings, REGEXARR))
    32. Q_TOTALEXP := REGEXARR1
    33. }
    34. QuestFILECONTENT := ""
    35. return
    36. }
    37. GetQuestName(GAN_ID)
    38. {
    39. return Quest[ GAN_ID , Q_Name ]
    40. }
    41. GetTotalEXP()
    42. {
    43. global
    44. return Q_TOTALEXP
    45. }
    46. SetTotalEXP(byInt)
    47. {
    48. If(IsInteger(byInt)){
    49. return Q_TOTALEXP := Q_TOTALEXP + byInt
    50. }else{
    51. return -1
    52. }
    53. }
    54. SetQuestValue(SAV_NameOrID,SAV_Value)
    55. {
    56. If(IsInteger(SAV_NameOrID))
    57. if(SAV_NameOrID >= Quest.MinIndex() && SAV_NameOrID <= Quest.MaxIndex())
    58. return Quest[ SAV_NameOrID , Q_Prog ] := SAV_Value
    59. else
    60. return -1
    61. else
    62. strlen(SAV_NameOrID) == 0 ? return -1 : return Quest[ GetQuestID(SAV_NameOrID) , Q_Prog ] := SAV_Value
    63. }
    64. IncreaseQuestValuebyStep(IAVBS_Name,IAVBS_Value)
    65. {
    66. IsInteger(IAVBS_Name) ? "" : IAVBS_Name := GetQuestID(IAVBS_Name)
    67. if(IAVBS_Value >= 2 || IAVBS_Value <= 0 || IAVBS_Name == "" || IAVBS_Name == -1)
    68. return -1
    69. Quest[ IAVBS_Name , Q_Prog ] += IAVBS_Value
    70. if(Quest[ IAVBS_Name , Q_Prog ] == Quest[ IAVBS_Name , Q_MAX ] && !Quest[ IAVBS_Name , Q_STATUS ])
    71. {
    72. _tmpxp := GetTotalEXP()
    73. AddChatMEssage("{FFFFFF}Herzlichen Glückwunsch! | Quest - {3651A8}" Quest[ IAVBS_Name , Q_NAME ] "{FFFFFF} abgeschlossen.")
    74. AddChatMEssage("{FFFFFF}Deine Gesammt EXP stiegen von {3651A8}" _tmpxp "EXP{FFFFFF} auf {3651A8}" _tmpxp+Quest[ IAVBS_Name , Q_EXP ] " EXP{FFFFFF} | + {3651A8}" Quest[ IAVBS_Name , Q_EXP ] "EXP")
    75. Quest[ IAVBS_Name , Q_STATUS ] := 1
    76. SetTotalEXP(Quest[ IAVBS_Name , Q_EXP ])
    77. RefreshQuestTXT()
    78. return 1
    79. }
    80. AddChatMEssage("{FFFFFF}Fortschritt der Quest - {3651A8}" Quest[ IAVBS_Name , Q_NAME ] "{FFFFFF} - Wert: {3651A8}" Quest[ IAVBS_Name , Q_PROG ] "{FFFFFF}/{3651A8}" Quest[ IAVBS_Name , Q_MAX ] )
    81. RefreshQuestTXT()
    82. return 1
    83. }
    84. GetQuestStatus(GQS_NameOrID)
    85. {
    86. If(IsInteger(GQS_NameOrID)){
    87. return Quest[ GAV_NameOrID , Q_STATUS ]
    88. }else{
    89. if(strlen(GQS_NameOrID) == 0)
    90. return -1
    91. return Quest[ GetQuestID(GQS_NameOrID) , Q_STATUS ]
    92. }
    93. }
    94. GetQuestValue(GAV_NameOrID)
    95. {
    96. If(IsInteger(GAV_NameOrID)){
    97. return Quest[ GAV_NameOrID , Q_Prog ]
    98. }else{
    99. if(strlen(GAV_NameOrID) == 0)
    100. return -1
    101. While(Quest.MaxIndex() != A_Index){
    102. if(Quest[ A_Index , Q_Name ] != GAV_NameOrID)
    103. Continue
    104. return Quest[ A_Index , Q_Prog ]
    105. }
    106. }
    107. return 0
    108. }
    109. RefreshQuestTXT()
    110. {
    111. FileDelete Questlist.txt
    112. While(A_Index <= Quest.MaxIndex())
    113. TxtContent .= Quest[ A_Index , Q_Name ] "/" Quest[ A_Index , Q_Info ] "/" Quest[ A_Index , Q_Prog ] "/" Quest[ A_Index , Q_Max ] "/" Quest[ A_Index , Q_EXP ] "/" Quest[ A_Index , Q_STATUS ] "`n"
    114. TxtContent .= GetTotalEXP() "/"
    115. Fileappend, %TxtContent% , Questlist.txt
    116. BuildArray()
    117. return
    118. }
    119. GetQuestID(GAI_Name)
    120. {
    121. if(strlen(GAI_Name) <= 1)
    122. return -1
    123. While(Quest.MaxIndex() >= A_Index)
    124. {
    125. if(Quest[ A_Index , Q_Name ] == GAI_Name)
    126. return A_Index
    127. }
    128. return 0
    129. }
    130. ClearVar(CV_Name)
    131. {
    132. return VarSetCapacity(CV_Name, 0)
    133. }
    134. CountRowsInFile(CRIF_FILENAME,FullRead:=False)
    135. {
    136. local CRIF_FILEPATH := CRIF_FILENAME
    137. local CRIF_FILEPATH .= instr(CRIF_FILENAME,".txt",0,1,1) ? "" : ".txt"
    138. FileRead, CRIF_FILESTRING , % CRIF_FILEPATH
    139. Loop, parse, CRIF_FILESTRING, `n, `r
    140. CRIF_COUNT++
    141. return FullRead ? CRIF_COUNT : CRIF_COUNT-1
    142. }
    143. Debugf(Varx,ResetCounter:=False) {
    144. static _stepcount
    145. _stepcount++
    146. Msgbox % "(" _stepcount ") Eingabe: " Varx
    147. if(ResetCounter == True)
    148. _stepcount := ""
    149. }
    150. IsInteger(p_StrToCheck) {
    151. if p_StrToCheck is integer
    152. return p_StrToCheck
    153. return 0
    154. }
    155. ReadSAMPLog(SearchFor,Params*)
    156. {
    157. local RSL_OBJECT := Object()
    158. RSL_LOGPATH := A_MyDocuments . "/GTA San Andreas User Files/SAMP/chatlog.txt"
    159. FileGetSize, RSL_NEWFILESIZE , % RSL_LOGPATH
    160. If(RSL_OLDFILESIZE < RSL_NEWFILESIZE)
    161. {
    162. RSL_SAMPLOG := FileOpen(RSL_LOGPATH,"r")
    163. Loop{
    164. RSL_ROW := RSL_SAMPLOG.ReadLine()
    165. RSL_ROW := RegExReplace(RSL_ROW, RegExTimeStamp)
    166. RSL_ROW := RegExReplace(RSL_ROW, RegExColor, "")
    167. RSL_ROW := StrReplace(RSL_ROW, "`r`n")
    168. RSL_ROW := StrReplace(RSL_ROW, "`r")
    169. if(RSL_ROW != "")
    170. RSL_OBJECT.Push(RSL_ROW)
    171. }Until RSL_SAMPLOG.AtEOF
    172. if(Params.MaxIndex() == 1 && Params[1] < 0){
    173. While(A_Index <= StrReplace(Params[1], "-")){
    174. if(FoundIT := RegExMatch("(.*) " RSL_OBJECT[ RSL_OBJECT.MaxIndex()-A_Index ] " (.*)", SearchFor)){
    175. FileGetSize, RSL_OLDFILESIZE , % RSL_LOGPATH
    176. RSL_SAMPLOG.Close()
    177. break
    178. }
    179. }
    180. }else{
    181. for _i,linenr in Params {
    182. if(FoundIT := RegExMatch("(.*) " RSL_OBJECT[RSL_OBJECT.MaxIndex()-linenr] " (.*)", SearchFor)){
    183. FileGetSize, RSL_OLDFILESIZE , % RSL_LOGPATH
    184. RSL_SAMPLOG.Close()
    185. break
    186. }
    187. }
    188. }
    189. return FoundIT ? True : False
    190. }
    191. }
    Alles anzeigen


    Bei Fragen zu evtl. Aufträgen schreib mir bitte eine PN oder Antwortet hier im Thread.
    Ich werde euch möglichst Zeitnah kontaktieren bzw. auf euren Post antworten.
    Die Bezahlung pro Auftrag ist unterschiedlich, da man nie abwiegen kann wieviel Zeit das Projekt in anspruch nimmt.
    Live-Coding ist genauso möglich damit der Kunde sich von der Arbeit überzeugen kann.

    Am liebsten sind mir Kunden die "Wissen was sie wollen!"
    Sollte kein Konzept vorhanden sein, Kein Problem!
    Ich helfe gerne und Arbeite mit dir das Konzept aus.

    Vorab! Bezahlungen über 20€ werden nur per Mittelsmann abgewickelt!

    MFG
    K-9 | Renz

    Legende:
    * = Eigenbedarf
    ** = Kundenwusch

    Ich teile mein wissen auch gerne, solltest du Probleme mit einem deiner Codes haben... Schreib mich an per PN!
    "Die Menschheit ist Tesla zu ewigem Dank verpflichtet.” - Arthur Compton

    Mein Autohotkey Scripting Service (Info Thread)

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