| AMIGA-RESISTANCE https://forum.amiga-resistance.info/ |
|
| Code Snippets https://forum.amiga-resistance.info/viewtopic.php?t=1665 |
Seite 2 von 3 |
| Autor: | Murmel [ 16 Sep 2009, 16:00 ] | |
| Betreff des Beitrags: | Re: Code Snippets | |
Es solte ab Hw2.0 laufen. Hast Du es mit Owb kopiert ? Das haut am Anfang lauter "Ä" rein :/ Diese löschen oder mit IBrowse kopieren damit gehts. "Aber mit IBrowse geht das posten hier im Forum nicht Oo" |
||
| Autor: | McFly [ 16 Sep 2009, 18:07 ] | |
| Betreff des Beitrags: | Re: Code Snippets | |
Namd, nöö, ich hab den Text mit IB kopiert, daher wundert mich das. Ich probiere das aber morgen nochmal, sitze gerade nicht am Amiga. Das posten mit IB geht, allerdings nur mit kleinen Tricks Entweder ohne Umlaute und ss statt ß, oder aber, die Lösung bevorzuge ich mit einem kleinen Tool von Onyxsoft UTF-8, das einfach vor IB anschmeissen, es wandelt automatisch alle Texeingaben zum posten hier, um. Kannste ja mal antesten wenn Du magst, hier der Link: http://www.onyxsoft.se/utf-8.html Ich gebe dann nochmal bescheid ob Dein Skript klappt. gruß |
||
| Autor: | HelmutH [ 16 Sep 2009, 18:49 ] |
| Betreff des Beitrags: | Re: Code Snippets |
Hi Murmel Hab dein Skript grad auch mal probiert, kommt der gleiche Fehler wie bei McFly. Wie merkwürdig ist das denn mit OWB, hab das auch damit kopiert, aber keine Ä's oder andere Zeichen mit drin gehabt |
|
| Autor: | Murmel [ 16 Sep 2009, 21:02 ] |
| Betreff des Beitrags: | Re: Code Snippets |
Also es ist kein Fehler im Script, zumindest kein offensichtlicher Könntet ihr mal schauen ob der Festplattenplatz stimmt ? Eingend sollte das doch in Hw4.0 wieder gehen ? |
|
| Autor: | Tipsi [ 16 Sep 2009, 22:29 ] |
| Betreff des Beitrags: | Re: Code Snippets |
Salli Murmel Also bei mir läuft das Script, welches ich aus dem Thread herauskopiert habe, grundsätzlich einwandfrei. Aber die Festplattengrösse, egal ob frei oder belegt ist falsch. Griessli Tipsi |
|
| Autor: | McFly [ 18 Sep 2009, 08:46 ] |
| Betreff des Beitrags: | Re: Code Snippets |
@Murmel danke für den Download, jetzt funzt das Script auch bei mir Also bei mir stimmen die angezeigten Werte der HD so ungefähr... Siehe Screenshot Systemwatch.jpg [ 26.71 KiB | 23863 mal betrachtet ] |
|
| Autor: | Murmel [ 18 Sep 2009, 18:12 ] |
| Betreff des Beitrags: | Re: Code Snippets |
@McFly Aha interessant. Hast Du eine 1 Terrabyte oder 1 GB Festplatte ? Wäre noch interessant zu wissen wies unter Aros und OS3 ausieht Unter MorphOS 2.3 scheints ein Bug zu sein, denn da stimmen die Werte nicht. PS: Cool hast Du viel Chipram xD |
|
| Autor: | McFly [ 18 Sep 2009, 18:22 ] |
| Betreff des Beitrags: | Re: Code Snippets |
Hi Murmel, ich habe ne 400Gig Platte verbaut und 512 MB Speicher im AOne. OS4 sagt mir, das wenn ich das System gestartet habe das ich ungefähr (muß überlegen, sitze gerade nicht am A1) etwas über 310 MB Speicher freihabe bzw. frei ist, laut OS-Menüleiste. Hoffe Du kannst mit den Angaben etwas anfangen. Die Platte hängt nicht am internen IDE sondern am SII-Controller, falls das wichtig ist. gruß McFly |
|
| Autor: | HelmutH [ 18 Sep 2009, 19:40 ] |
| Betreff des Beitrags: | Re: Code Snippets |
Abend Murmel Script läuft nu auch bei mir, anstatt Ää's waren bei mir Leerzeichen drin, die nicht da rein gehörten. Und so siehts bei mir aus: Systemwatch.jpg [ 23.59 KiB | 23837 mal betrachtet ] Speicher 512 MB OS4.1 1x 160GB Platte 1x 60Gb Platte |
|
| Autor: | Murmel [ 18 Sep 2009, 22:52 ] |
| Betreff des Beitrags: | Re: Code Snippets |
Tja danke euch für die Info. Also ist GetVolumeInfo(name$ ,#FREESPACE) #USEDSPACE immer noch fehlerhaft. |
|
| Autor: | gerograph [ 02 Nov 2009, 17:28 ] |
| Betreff des Beitrags: | Re: Code Snippets |
(Brush)/Layer von x nach y bewegen und dabei gleichzeitig verkleinern (über Designer Codefenster) PRINZIP: Layer/Objekt um x% verkleinern -> Layer/Objekt um x verschieben -> Layer/Objekt erneut um x% von der momentanen Größe verkleinern -> schieben -> usw ..... HINWEISE: 1. Das Objekt auf den sich der Code bezieht muß VOR ! dem Code stehen. D.h. der Code muß im Codefenster eines Objektes eingetippt werden, was nach dem "zu bewegendem Objekt/Brush" steht. => eigentlich logisch, weil ja eins nachm anderen abgearbeitet wird... Da ich im konkreten Falle mehrere Brushes/Layer bewegen wollte habe ich ein Objekt ganz unten eingefügt (unsichtb. Linie) welches für alle "Bewegungsobjekte" den Code hat. 2. ScaleLayer() war nen bisserl schwierig, da ich prozentual verkleinern wollte, ScaleLayer(2,50%,50%) geht leider nicht, da "%" als Operator in Hollywood geschützt ist, also muß ich mit Esc-Code+Asciizeichen arbeiten s.u. 3. Der Code ist sicherlich nen bisschen umständlich, und man könnte es mit einer schönen Funkton mit Variablen Übergabe besser regeln, aber es zeigt wo es lang geht: CODE: Code: Alles auswählen VerklFakt = 100 /* Var initialisieren */
/* --------- 1. Layer ------------- */
/* 1.Layer Position Startposition */
ax = 400
ay = 130
/* 1. Layer Endposition auf Startposition setzen */
bx = ax
by = ay
/* Layer auf 50 Proz verkleinern in zehner Schritten */
For VerklFakt = 100 to 50 Step -10
VerklFakt$ = ToString(i) /* Verkl. Prozentzahl in String wandeln */
a$ = AddStr(VerklFakt,"\037") /* 037 Ascii Code Prozentzeichen an String h?ngen*/
ScaleLayer(8,a$,a$) /* Layer verkleinern */
bx = bx - 66 /* nächste Position des verkleinerten Layers berechnen, abhängig von Pos. im vorangegangenen Schleifendurchlauf */
by = by + 21
MoveLayer(8, ax, ay, bx, by, {Speed = #FASTSPEED}) /* Layer entsprechend ein Stück bewegen */
ax = bx /* Startposition auf neue Endposition setzen für den nächsten Durchläufe... */
ay = by
Next
|
|
| Autor: | HelmutH [ 06 Dez 2010, 22:21 ] |
| Betreff des Beitrags: | Real 3D Engine von ArtBlink |
ArtBlink hat mir erlaubt hier seinen Quellcode von seiner Real 3D Engine reinzustellen, dies ist die erste Version. Code: Alles auswählen @SCREEN {Mode = "ask", Width = 640, Height = 400}
SetFormStyle(#ANTIALIAS) ; Antialiasing sur le cube
FC=200
CX=160
CY=100
CZ=200
Function Controle()
If IsKeyDown("Left")=True Then Gauche() ; Vers la gauche
If IsKeyDown("Right")=True Then Droite() ; Vers la droite
If IsKeyDown("Up")=True Then Haut() ; Vers le Haut
If IsKeyDown("Down")=True Then Bas() ; Vers le bas
If IsKeyDown("RSHIFT")=True Then Zoomin() ; Zoom in
If IsKeyDown("RCONTROL")=True Then Zoomout() ; Zoom Out
EndFunction
Function Gauche()
AY=AY+1
If AY>359 Then AY=0
EndFunction
Function Droite()
AY=AY-1
If AY<0 Then AY=359
EndFunction
Function Haut()
AX=AX+1
If AX>359 Then AX=0
EndFunction
Function Bas()
AX=AX-1
If AX<0 Then AX=359
EndFunction
Function Zoomin()
CZ=CZ+10
If CZ>500 Then CZ=500
EndFunction
Function Zoomout()
CZ=CZ-10
If CZ<80 Then CZ=80)
EndFunction
Function PRG()
Controle() ; Exécution de la fonction Controle
; Réservation mémoire et création des tableaux
Dim CO[360] ; 360 cases réservé car une rotation c'est 360° pour le Cosinus
Dim SI[360] ; 360 cases réservé car une rotation c'est 360° pour le Sinus
Dim X[8] ; Un cube, c'est 8 points en X
Dim Y[8] ; Un cube, c'est 8 points en Y
Dim Z[8] ; Un cube, c'est 8 points en Z
Dim XE[8] ; Point final du cube a dessiner en X
Dim YE[8] ; Point final du cube a dessiner en Y
Dim ZZ[8] ; Point final du cube a dessiner en Z
Dim P1[12] ; Un cube, c'est 12 lignes (point de départ de la ligne)
Dim P2[12] ; Un cube, c'est 12 lignes (point final de la ligne)
Flip ; Flip d'écran pour le double buffer
Cls ; Effacement de l'écran sinon on verrait des cube partout lol
For I=0 To 359
CO[I]=Cos(I*0.1)*256 ; Mise en mémoire de 360 calcule du Cosinus des angles sur 360°
SI[I]=Sin(I*0.1)*256 ; Mise en mémoire de 360 calcule du Sinus des angles sur 360°
Next
For I=0 To 7
X = {-50,50,50,-50,-50,50,50,-50} ; Coordonnées des points dans l'espace en X
Y = {-50,-50,50,50,-50,-50,50,50} ; Coordonnées des points dans l'espace en Y
Z = {-50,-50,-50,-50,50,50,50,50} ; Coordonnées des points dans l'espace en Z
P1 = {0,1,2,3,4,5,6,7,0,1,2,3} ; Point de départ pour tracer la ligne
P2 = {1,2,3,0,5,6,7,4,4,5,6,7} ; Point d'arrivée pour tracer la ligne
;Calcule 3D grâce au magazine Dream N°27 de Mars 1996
Y1=(Y[I]*CO[AX]+Z[I]*SI[AX])/256
Z1=(-Y[I]*SI[AX]+Z[I]*CO[AX])/256
X1=(X[I]*CO[AY]+Z1*SI[AY])/256
ZZ[I]=(-X[I]*SI[AY]+Z1*CO[AY])/256
X=(X1*CO[AZ]+Y1*SI[AZ])/256
Y=(-X1*SI[AZ]+Y1*CO[AZ])/256
D=FC/(Sqrt(X^2+Y^2+(CZ+ZZ[I])^2))
XE[I]=320+X*D
YE[I]=200+Y*D
Next
; Calcule final
For I=0 To 11
GP1=P1[I]
GP2=P2[I]
X=XE[GP1]
Y=YE[GP1]
X1=XE[GP2]
Y1=YE[GP2]
Line (X,Y,X1,Y1,#WHITE) ; Traçage des lignes
Next
EndFunction
BeginDoubleBuffer
SetInterval(1,PRG,1000/50)
Repeat
WaitEvent
ForeverDie zweite Version von seiner Real 3D Engine. Code: Alles auswählen @SCREEN {Mode = "ask", Width = 640, Height = 400}
FC=200
CZ=200
Function Controle()
If IsKeyDown("Left")=True Then Gauche() ; Vers la gauche
If IsKeyDown("Right")=True Then Droite() ; Vers la droite
If IsKeyDown("Up")=True Then Haut() ; Vers le Haut
If IsKeyDown("Down")=True Then Bas() ; Vers le bas
If IsKeyDown("a")=True Then Zoomin() ; Zoom in
If IsKeyDown("z")=True Then Zoomout() ; Zoom Out
If IsKeyDown("p")=True Then SetFillStyle(#FILLCOLOR) ; Zoom Out
If IsKeyDown("o")=True Then SetFillStyle(#FILLNONE)
If IsKeyDown("i")=True Then SetFillStyle(#FILLGRADIENT, #LINEAR, $888888, $FFFFFF)
If IsKeyDown("u")= True Then SetFormStyle(#ANTIALIAS)
If IsKeyDown("y")= True Then SetFormStyle(#NORMAL)
EndFunction
Function Gauche()
AY=AY+1
If AY>359 Then AY=0
EndFunction
Function Droite()
AY=AY-1
If AY<0 Then AY=359
EndFunction
Function Haut()
AX=AX+1
If AX>359 Then AX=0
EndFunction
Function Bas()
AX=AX-1
If AX<0 Then AX=359
EndFunction
Function Zoomin()
CZ=CZ+10
If CZ>600 Then CZ=600
EndFunction
Function Zoomout()
CZ=CZ-10
If CZ<150 Then CZ=150
EndFunction
Function PRG()
Controle() ; Exécution de la fonction Controle
; Réservation mémoire et création des tableaux
Dim CO[360] ; 360 cases réservé car une rotation c'est 360° pour le Cosinus
Dim SI[360] ; 360 cases réservé car une rotation c'est 360° pour le Sinus
Dim X[8] ; Un cube, c'est 8 points en X
Dim Y[8] ; Un cube, c'est 8 points en Y
Dim Z[8] ; Un cube, c'est 8 points en Z
Dim XE[8] ; Point final du cube a dessiner en X
Dim YE[8] ; Point final du cube a dessiner en Y
Dim ZZ[8] ; Point final du cube a dessiner en Z
Dim P1[10] ; Polygone 1
Dim P2[10] ; Polygone 2
Dim P3[10] ; Polygone 3
Dim P4[10] ; Polygone 4
Dim P5[10] ; Polygone 5
Dim P6[10] ; Polygone 6
Flip ; Flip d'écran pour le double buffer
Cls ; Effacement de l'écran sinon on verrait des cube partout lol
For I=0 To 359
CO[I]=Cos(I*0.1)*360 ; Mise en mémoire de 360 calcule du Cosinus des angles sur 360°
SI[I]=Sin(I*0.1)*360 ; Mise en mémoire de 360 calcule du Sinus des angles sur 360°
Next
For I=0 To 7
X = {-50,50,50,-50,-50,50,50,-50} ; Coordonnées des points dans l'espace en X
Y = {-50,-50,50,50,-50,-50,50,50} ; Coordonnées des points dans l'espace en Y
Z = {-50,-50,-50,-50,50,50,50,50} ; Coordonnées des points dans l'espace en Z
;P={0,1,2,3,1,5,6,2,4,5,1,0,4,5,6,7,4,0,3,7,3,2,6,7}
;Calcule 3D grâce au magazine Dream N°27 de Mars 1996
Y1=(Y[I]*CO[AX]+Z[I]*SI[AX])/360
Z1=(-Y[I]*SI[AX]+Z[I]*CO[AX])/360
X1=(X[I]*CO[AY]+Z1*SI[AY])/360
ZZ[I]=(-X[I]*SI[AY]+Z1*CO[AY])/360
X=(X1*CO[AZ]+Y1*SI[AZ])/360
Y=(-X1*SI[AZ]+Y1*CO[AZ])/360
D=FC/(Sqrt(X^2+Y^2+(CZ+ZZ[I])^2))
XE[I]=320+X*D
YE[I]=200+Y*D
Next
; Calcule final
P1 = {XE[0],YE[0],XE[1],YE[1],XE[2],YE[2],XE[3],YE[3],XE[0],YE[0]} ; Polygon 1
P2 = {XE[1],YE[1],XE[5],YE[5],XE[6],YE[6],XE[2],YE[2],XE[1],YE[1]} ; Polygon 2
P3 = {XE[4],YE[4],XE[5],YE[5],XE[1],YE[1],XE[0],YE[0],XE[4],YE[4]} ; Polygon 3
P4 = {XE[4],YE[4],XE[5],YE[5],XE[6],YE[6],XE[7],YE[7],XE[4],YE[4]} ; Polygon 4
P5 = {XE[4],YE[4],XE[0],YE[0],XE[3],YE[3],XE[7],YE[7],XE[4],YE[4]} ; Polygon 5
P6 = {XE[3],YE[3],XE[2],YE[2],XE[6],YE[6],XE[7],YE[7],XE[3],YE[3]} ; Polygon 6
Box (0,0,640,200,$3333EE)
Locate (0,0)
Print ("Flèche => Rotation cube")
Locate (0,12)
Print ("Touche a => Zoom OUT")
Locate (0,24)
Print ("Touche b => Zoom IN")
Locate (0,36)
Print ("Touche p => coloration de Garnier")
Locate (0,48)
Print ("Touche o => annuler la coloration")
Locate (0,60)
Print ("Touche i => Un monde d'acier ;-)")
Locate (0,72)
Print ("Touche u => Antialiasing")
Locate (0,84)
Print ("Touche y => enlever l'Antialiasing")
Locate (0,96)
Print ("Ctrl+c => Quitter")
; Traçage des polygones avec tests
; les tests se font sur la coordonnées en Z
; en gros si le polygone passe derrière les autres alors il s'affiche pas
; je crois que normalement sa fais gagner du temp CPU... Non?
If ZZ[1]+ZZ[5]+ZZ[6]+ZZ[2]<-40 Then Polygon (0,0,P2,5,#BLUE)
If ZZ[4]+ZZ[5]+ZZ[1]+ZZ[0]<-40 Then Polygon (0,0,P3,5,#RED)
If ZZ[0]+ZZ[1]+ZZ[2]+ZZ[3]>40 Then Polygon (0,0,P4,5,#YELLOW)
If ZZ[1]+ZZ[5]+ZZ[6]+ZZ[2]>40 Then Polygon (0,0,P5,5,#WHITE)
If ZZ[4]+ZZ[5]+ZZ[1]+ZZ[0]>40 Then Polygon (0,0,P6,5,#GREEN)
If ZZ[0]+ZZ[1]+ZZ[2]+ZZ[3]<-40 Then Polygon (0,0,P1,5,#PURPLE)
EndFunction
BeginDoubleBuffer
SetInterval(1,PRG,1000/50)
Repeat
WaitEvent
Forever |
|
| Autor: | Tipsi [ 07 Dez 2010, 20:46 ] | ||
| Betreff des Beitrags: | Re: Real 3D Engine von ArtBlink | ||
Beim Code müsst Ihr eine der beiden Zeilen ändern: Hier entweder ("z") in ("b") oder oder hier b in z ändern. Wenn ihr aber zu faul zum Ändern seid, drückt bei Zoom IN einfach die Taste z. ArtBlink benutzt eine englischsprachliche Tastatur, da ist natürlich a und z über- bzw. untereinander. Griessli Tipsi |
|||
| Autor: | HelmutH [ 08 Dez 2010, 12:22 ] |
| Betreff des Beitrags: | Re: Code Snippets |
Hi Tipsi Prima das du es auch probiert hast und mir da zuvor gekommen bist und das mit der vertauschten Tasten für die Zoom In hier noch nachgetragen hast. ArtBlink hat da noch mehr Codes im englische Forum drin, wo ich ihn noch nach fragen werde, ob wir die hier auch reinstellen dürfen. |
|
| Autor: | Tipsi [ 17 Dez 2012, 00:04 ] |
| Betreff des Beitrags: | Re: Code Snippets |
Format Tags Einige von uns benutzen ja die ScuiLib, um dem Programm GUI Elemente zu verpassen. Hier mal ein Beispiel: Die Wörter sind in jedem Knopf zentriert, so sieht es eigentlich nicht schlecht aus. Aber falls jemand nun Format Tags benutzen möchte, kann das schrecklich aussehen. Im nächsten Beispiel sind teilweise Buchstaben unterstrichen, damit der Benutzer weiss, welche Tastaturkürzel er benutzen könnte: Warum nun diese Verschiebung des Textes? Der ScuiLib werden nun mehr Zeichen übergeben, als nachher im Knopf sichtbar sind. Nehmen wir mal die Zeile Sprache. Sprache hat sieben Buchstaben. Die ScuiLib berechnet nun für sieben Buchstaben die Verschiebung aus, damit nachher Sprache zentriert im Knopf erscheint. Möchte man allerdings zwei Buchstaben unterstreichen, dann sieht das so aus: Code: Alles auswählen [u]S[/u]prach[u]e[/u] obwohl nachher nur sieben sichtbar sind. Das müssen wir ändern. Wir basteln uns eine p_NoFormatTags Funktion und fügen diese in die ScuiLib ein. Ich persönlich habe sie vor die Funktion helpers.GetBrushID() hineingesetzt. Nun suchen wir in der ScuiLib jede Stelle (ca. 15), welche den Hollywoodbefehl TextWidth() benutzt. Dann fügen wir eine Zeile vorher den Befehl p_NoFormatTags() ein und übernehmen die Variable, welche der Befehl TextWidth benutzt hat. Hier ein Beispiel aus der ScuiLib: Code: Alles auswählen CWidth = TextWidth(CChar) Code: Alles auswählen NeuerText = p_NoFormatTags(CChar) CWidth = TextWidth(NeuerText) Wir wollen in unserem Beispiel sämtliche Code: Alles auswählen [u][/u] Code: Alles auswählen Function p_NoFormatTags(Text) Text=ReplaceStr(Text,[u],"") Text=ReplaceStr(Text,[/u],"") Return(Text) EndFunction Super. Und wenn man Italic und Bold auch noch berücksichtigen möchte, dann sieht die Funktion nicht viel anderst aus: Code: Alles auswählen Function p_NoFormatTags(Text) Text=ReplaceStr(Text,[u],"") Text=ReplaceStr(Text,[/u],"") Text=ReplaceStr(Text,[i],"") Text=ReplaceStr(Text,[/i],"") Text=ReplaceStr(Text,[b],"") Text=ReplaceStr(Text,[/b],"") Return(Text) EndFunction haben wir bereits unsere Funktion gebastelt. Aber ich muss gestehen, dass ich Bold und Italic nie getestet habe. Gerüchten zufolge funktioniert das mit Bold nicht ganz zufriedenstellend. Wenn wir aber (und das wollen wir jetzt) noch andere Format Tags wie Code: Alles auswählen [color=<new color>], [/color] [shadow=<shadow color>,<shadow size>,<shadow direction>][/shadow] [edge=<edge color>,<edge size>] [/edge] Code: Alles auswählen Function p_NoFormatTags(Text)
Local TextArray=StrToArray(Text)
Local AnzahlArray=ListItems(TextArray)
Local NeuerText=""
Local On="ON"
Local Off="Off"
Local FormatTag=Off
Local KlammerAuf=Asc("[")
Local KlammerZu=Asc("]")
For ii=0 To AnzahlArray-1
If TextArray[ii]=KlammerAuf
FormatTag=On
EndIf
If FormatTag=Off
NeuerText=NeuerText..Chr(TextArray[ii])
EndIf
If TextArray[ii]=KlammerZu
FormatTag=Off
EndIf
Next
Return(NeuerText)
EndFunctionin der Variablen Text übergeben wurde. Dann wird in dieser Schleife jedes einzelne Zeichen überprüft, ob es eine öffnende eckige Klammer [ ist. Falls nicht, wird der Variable NeuerText dieses Zeichen angefügt. Falls es aber doch ein [ ist, wird das Anfügen übersprungen, bis eine schliessende eckige Klammer ] kommt. Ab da werden die Zeichen wieder in der Variablen NeuerText angefügt. Die beiden Variablen On und Off können auch etwas anderes beinhalten, wie z.B. 1 und 0, "Ja" und "Nein", "Franz" und "Sussi" oder was weiss ich. Auch ii als Zähler kann natürlich anderst heissen. Diese Funktion hat allerdings eine Schwäche. Falls im Text neben den Format Tags die beiden eckigen Klammern vorkommen, dann werden diese auch als Format Tags behandelt. Das geht allerdings schief. In diesem Fall hilft nur noch diese Funktion: Code: Alles auswählen Function p_NoFormatTags(Text)
Local TextArray=StrToArray(Text)
Local AnzahlArray=ListItems(TextArray)
Local NeuerText=""
Local On="ON"
Local Off="Off"
Local FormatTag=Off
Local KlammerAuf=Asc("[")
Local KlammerZu=Asc("]")
For ii=0 To AnzahlArray-1
If TextArray[ii]=KlammerAuf
If Chr(TextArray[ii])..Chr(TextArray[ii+1])..Chr(TextArray[ii+2])="[b]"
FormatTag=On
ElseIf Chr(TextArray[ii])..Chr(TextArray[ii+1])..Chr(TextArray[ii+2])="[i]"
FormatTag=On
ElseIf Chr(TextArray[ii])..Chr(TextArray[ii+1])..Chr(TextArray[ii+2])="[u]"
FormatTag=On
ElseIf Chr(TextArray[ii])..Chr(TextArray[ii+1])..Chr(TextArray[ii+2])..Chr(TextArray[ii+3])="[/b]"
FormatTag=On
ElseIf Chr(TextArray[ii])..Chr(TextArray[ii+1])..Chr(TextArray[ii+2])..Chr(TextArray[ii+3])="[/i]"
FormatTag=On
ElseIf Chr(TextArray[ii])..Chr(TextArray[ii+1])..Chr(TextArray[ii+2])..Chr(TextArray[ii+3])="[/u]"
FormatTag=On
ElseIf Chr(TextArray[ii])..Chr(TextArray[ii+1])..Chr(TextArray[ii+2])..Chr(TextArray[ii+3])..
Chr(TextArray[ii+4])..Chr(TextArray[ii+5])..Chr(TextArray[ii+6])..Chr(TextArray[ii+7])="[shadow="
FormatTag=On
ElseIf Chr(TextArray[ii])..Chr(TextArray[ii+1])..Chr(TextArray[ii+2])..Chr(TextArray[ii+3])..
Chr(TextArray[ii+4])..Chr(TextArray[ii+5])..Chr(TextArray[ii+6])..Chr(TextArray[ii+7])..
Chr(TextArray[ii+8])="[/shadow]"
FormatTag=On
ElseIf Chr(TextArray[ii])..Chr(TextArray[ii+1])..Chr(TextArray[ii+2])..Chr(TextArray[ii+3])..
Chr(TextArray[ii+4])..Chr(TextArray[ii+5])="[edge="
FormatTag=On
ElseIf Chr(TextArray[ii])..Chr(TextArray[ii+1])..Chr(TextArray[ii+2])..Chr(TextArray[ii+3])..
Chr(TextArray[ii+4])..Chr(TextArray[ii+5])..Chr(TextArray[ii+6])="[/edge]"
FormatTag=On
ElseIf Chr(TextArray[ii])..Chr(TextArray[ii+1])..Chr(TextArray[ii+2])..Chr(TextArray[ii+3])..
Chr(TextArray[ii+4])..Chr(TextArray[ii+5])..Chr(TextArray[ii+6])="[color="
FormatTag=On
ElseIf Chr(TextArray[ii])..Chr(TextArray[ii+1])..Chr(TextArray[ii+2])..Chr(TextArray[ii+3])..
Chr(TextArray[ii+4])..Chr(TextArray[ii+5])..Chr(TextArray[ii+6])..Chr(TextArray[ii+7])="[/color]"
FormatTag=On
EndIf
EndIf
If FormatTag=Off
NeuerText=NeuerText..Chr(TextArray[ii])
EndIf
If FormatTag=On
If TextArray[ii]=KlammerZu
FormatTag=Off
EndIf
EndIf
Next
Return(NeuerText)
EndFunctionob anschliessend ein Format Tag folgt. Falls ja werden alle Zeichen bis zur schliessenden eckigen Klammer ignoriert. Falls nein, dann wird diese Klammer in der Breitenberechnung berücksichtigt. Ich habe bei mir die letzte grosse Funktion eingepflanzt. Ich glaube, ob bei 12835 Codezeilen der ScuiLib noch ca. 60 mehr oder weniger dazukommen, spielt keine Rolle mehr. So, das wärs. Falls jemand die Funktionen genauer erklärt haben möchte, dann bitte melden. ---------------------------------------------------------- In der Zwischenzeit hat Allanon im englischen Hollywood-Forum eine andere Variante vorgestellt: https://forums.hollywood-mal.com/viewto ... 1505#p1505 Leider ohne Lösungsbeispiel, aber anscheinend gibt es eine weitere Möglichkeit, die Format Tags nicht zu berücksichtigen. https://forums.hollywood-mal.com/viewto ... Str#p17454 Aber das kann ich (vielleicht noch) nicht erklären. Griessli Tipsi Tante Edit am Freitag 26. Mai 2017: Bilder wieder hinzugefügt, ein paar Schreibfehler entfernt. Tante Edit2 am Mittwoch, 22. Sept. 2021: Nochmals die Bilder hinzugefügt. Tante Edit3 am Montag, 11. Okt. 2021: Am Schluss noch zwei Verweise auf das englische Forum eingefügt. |
|
| Seite 2 von 3 | Alle Zeiten sind UTC |
|
Powered by phpBB® Forum Software © phpBB Limited Deutsche Übersetzung durch phpBB.de |
|