FunScriptLoader

Die Syntax zum aufrufen ist /funscript NICK. Außerdem legt es einen Eintrag im User-Kontextmenü an. Die Datei fun.txt muss im Nettalkordner liegen oder es muss der entsprechende absolute Pfad angegeben werden. Der Aufbau kann dieser Beispieldatei entnommen werden: .../fun.txt (Bitte speichern wenn der Browser sie nicht richtig anzeigt).

Zu beachten ist noch das die Textdatei nicht größer als 29 KB sein darf, außerdem sollten aus Performancegründen alle Zeilen die mit nur einem Punkt beginnen mit einem \ zwischen Punkt und Text ergänzt werden. Möcht man das nicht muss im Script die Zeile 22 entfernt, und bei der Zeile 21 das ' entfernt werden.

#NewScriptBegin FunScriptLoader
 
Dim UNick
Dim CurFFrame
Dim FunTxt
 
Sub Load()
  MakeShortcut "Funscript", "funscript", "/call FunScriptLoader.ShowList $1", 0
  FunTxt = ReadFile("fun.txt")
End Sub
 
Sub ShowList(UserNick)
  UNick = UserNick
  CurFFrame = FrontFrameID
  CallList 0
End Sub
 
Sub CallList(FilePos)
  i=0
  i2=0
  if FilePos=0 Then
    Do
 
      'Die Variante mit "  .\" ist wesentlich schneller als mit "  .",
      'die Textdatei muss aber auch entsprechend angepasst werden.
      'i=instr(i+1, FunTxt, "  .")
      i=instr(i+1, FunTxt, "  .\")
 
      if Mid(FunTxt, i+3, 1) <> "." Then
        if i > 0 Then
          if i2 = 0 Then
            Print "Auswahl: ", CurFFrame, 0
          else
            Print ", ", CurFFrame, valcText, 1
          end if
          i2=instr(i, FunTxt, Chr(13))
          i3=instr(i, FunTxt, ":")
          if i3 > 0 and i3 < i2 Then i2=i3
          If Mid(FunTxt, i+3, 1)="\" Then
            Print Mid(FunTxt, i+4, i2-i-4), CurFFrame, valcWhisperMsg, 1, "FunTrig" & i
          else
            Print Mid(FunTxt, i+3, i2-i-3), CurFFrame, valcWhisperMsg, 1, "FunTrig" & i
          End if
        End if
      End if
    Loop until i = 0
  else
    i=FilePos
    j=1
    floop=0
    Do
      Lastj=j
      j=0
      do until mid(FunTxt, j+i+2, 1) <> "."
        j=j+1
      loop
      if i=FilePos Then fj=j
      i2=instr(i, FunTxt, Chr(13))
      i3=instr(i, FunTxt, ":")
      if i3 > 0 and i3 < i2 and i=FilePos Then
        SendExpr Mid(FunTxt, i3+1, i2-i3-1)
        Lastj=100
      End if
      If j=fj+1 Then
        if floop=0 Then
          floop=1
          Print "Unterauswahl: ", CurFFrame, valcText
        else
          Print ", ", CurFFrame, valcText, 1
        end if
        if i3 > 0 and i3 < i2 Then
          Print Mid(FunTxt, i+j+2, i3-i-j-2), CurFFrame, valcServerMsg, 1, "FunTrig" & i
        else
          Print Mid(FunTxt, i+j+2, i2-i-j-2), CurFFrame, valcWhisperMsg, 1, "FunTrig" & i
        End if
      End if
      i=instr(i+1, FunTxt, "  .")
    loop until (j < fj+1 and j < Lastj) or i=0
  end if
End Sub
 
Sub ScriptLinkClicked(Text, Trigger, Button)
  if left(Trigger, 7)="FunTrig" Then
    CallList Val(Mid(Trigger, 8))
  End if
End Sub
 
Sub SendExpr(Text)
  i=0
  Dat=Replace(Text, "$$1", UNick)
  Dat=Replace(Dat, "$1", UNick)
  Dat=Replace(Dat, "/say ", "")
  if left(Dat,1)="{" Then Dat=Mid(Dat, 2, len(Dat)-2)
  Do
    i2=i
    i=instr(i+1, Dat, "|")
    if i=0 Then i=Len(Dat)+1
    Send Trim(Mid(Dat, i2+1, i-i2-1)),CurFFrame
  Loop until i=Len(Dat)+1
End Sub

Eigene Werkzeuge