Conexão Maker

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

    Quebra de texto do Chat desenhado na tela

    Thales12
    Thales12
    Administrador
    Administrador


    Mensagens : 140
    Level : 8
    Data de inscrição : 01/11/2011
    Idade : 29
    Localização : Rio de Janeiro

    Quebra de texto do Chat desenhado na tela Empty Quebra de texto do Chat desenhado na tela

    Mensagem por Thales12 Dom Fev 12, 2012 11:35 pm

    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)
    Quebra de texto do Chat desenhado na tela Cc4e58aa40168f0c1b02df07057deaa0

    ** 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 , fixed 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)
    Marlos Gama (Por traduzir, simplificar a explicação e postar aqui)

      Data/hora atual: Sex Abr 26, 2024 12:24 pm