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