Tópico Original
http://www.touchofdeathforums.com/smf/index.php/topic,75564.0.html
Ryoku Hasu: Incomoda-me que o texto desenhado na tela se apaga com bastante facilidade, quando o texto é muito longo e maior que a tela. então eu me sentei aqui por seis horas para conseguir finalizar. E desde que eu estou postando isso, eu acho que eu tenho que trabalhar.
Eu o editei para fazer a quebra de texto, em vez de caracteres embrulho! Woot!
Isso exibe oito mensagens, NÃO 8 linhas.
'Corrigido por Rob Janes (não inteiramente certo porque lol)
** Para alterar o comprimento da quebra automática de texto, altere todos os "60" no código abaixo
Lado do cliente
em modText
Enconte "Public Sub DrawChat()" e substitua por
Créditos:
Ryoku Hasu (Por criar o tutorial original no TouchofDeath)
Valentine (Por traduzir, simplificar a explicação e postar aqui na Aldeia RPG)
http://www.touchofdeathforums.com/smf/index.php/topic,75564.0.html
Ryoku Hasu: Incomoda-me que o texto desenhado na tela se apaga com bastante facilidade, quando o texto é muito longo e maior que a tela. então eu me sentei aqui por seis horas para conseguir finalizar. E desde que eu estou postando isso, eu acho que eu tenho que trabalhar.
Eu o editei para fazer a quebra de texto, em vez de caracteres embrulho! Woot!
Isso exibe oito mensagens, NÃO 8 linhas.
'Corrigido por Rob Janes (não inteiramente certo porque lol)
** Para alterar o comprimento da quebra automática de texto, altere todos os "60" no código abaixo
Lado do cliente
em modText
Enconte "Public Sub DrawChat()" e substitua por
- Código:
'Evilbunnie's DrawnChat system, Word wrapping by RyokuPublic , lammer by Rob Janes
Sub DrawChat()
Dim i As Integer
Dim x As Integer
Dim y As Integer
Dim wrap As Integer
Dim text As String
Dim SubString As String
Dim ChatArray() as String
x = 0
For i = 1 To 8
text = Chat(i).text
y = 1
ChatArray = Split(text," ")
Do While Len(text) > 60
If y = 1 Then
wrap = Len(text) Mod 60
Else
wrap = 60
End If
'Our Array has more than 1 Word!
If UBound(ChatArray) > 0 Then
Do Until Asc(Mid$(text, Len(text) - wrap, 1)) = 32 'break line on spaces only.
wrap = wrap + 1
Loop
'Our Array only has 1 Word!
ElseIf UBound(ChatArray) <= 0 Then
Exit Do
wrap = 1
End If
SubString = Right$(text, wrap)
Call DrawText(TexthDC, Camera.Left + 10, (Camera.Bottom - 20) - ((i + x) * 20), SubString, Chat(i).Colour)
text = Left$(text, Len(text) - wrap)
x = x + 1
y = y + 1
Loop
Call DrawText(TexthDC, Camera.Left + 10, (Camera.Bottom - 20) - ((i + x) * 20), text, Chat(i).Colour)
Next I
End Sub
Créditos:
Ryoku Hasu (Por criar o tutorial original no TouchofDeath)
Valentine (Por traduzir, simplificar a explicação e postar aqui na Aldeia RPG)