MMORPG Brasil
Ola, visitante! Agradecemos sua visita, para ter acesso a todo nosso conteúdo recomendamos que faça um cadastro no fórum, com ele você pode participar de tópicos e ter acesso a todas áreas da comunidade!

Participe do fórum, é rápido e fácil

MMORPG Brasil
Ola, visitante! Agradecemos sua visita, para ter acesso a todo nosso conteúdo recomendamos que faça um cadastro no fórum, com ele você pode participar de tópicos e ter acesso a todas áreas da comunidade!
MMORPG Brasil
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Selecionando uma cor para o nome do Npc!

3 participantes

Ir para baixo

Selecionando uma cor para o nome do Npc! Empty Selecionando uma cor para o nome do Npc!

Mensagem por Hitsugaya Kuchiki Ter 28 maio 2013, 13:22

A pedido do Monkey D.Dragon, estou trazendo para vocês o sistema de selecionar uma cor para o nome do npc pelo próprio editor.

Como Funciona?

É simples, selecione no editor de npcs a cor desejada e o nome do npc terá essa cor no mapa.

Começando

Client~side

Vá na frmnpceditor e crie um scroll e uma label e nas propriedades coloquem da seguinte forma:

Scroll -
Name = Scrlcolor
Value = 6

Label -
Name = lblcolor
Caption = Cor: Azul

Agora dê 2 clicks na scroll e adicione:

Código:
With scrlcolor
        Select Case .Value
            Case 0
                lblcolor.Caption = "Cor: Azul"
            Case 1
                lblcolor.Caption = "Cor: Vermelho"
            Case 2
                lblcolor.Caption = "Cor: Verde"
            Case 3
                lblcolor.Caption = "Cor: Amarelo"
            Case 4
                lblcolor.Caption = "Cor: Roxo"
            Case 5
                lblcolor.Caption = "Cor: Branco"
            Case 6
                lblcolor.Caption = "Cor: Marrom"
            End Select
    End With

Agora dê um control + f e procure por:

Código:
frmNpcEditor.BigNpc.Value = Npc(EditorIndex).Big

e abaixo adicione:

Código:
frmNpcEditor.scrlcolor.Value = Npc(EditorIndex).Color

Procure por:

Código:
Npc(EditorIndex).Speech = frmNpcEditor.scrlSpeech.Value

e abaixo adicione:

Código:
Npc(EditorIndex).Color = frmNpcEditor.scrlcolor.Value

Agora procure por:

Código:
Type NpcRec

e acima do end type adicione:

Código:
Color as byte

Procure por:

Código:
Npc(n).Speech = Val(Parse(6))

Abaixo adicione:

Código:
Npc(n).Color = Val(Parse(7))

Procure por:

Código:
Npc(n).Speech = Val(Parse(16))

Abaixo adicione:

Código:
Npc(n).Color = Val(Parse(17))

Agora abaixo disso você verá:

Código:
z = 17

Mude para:

Código:
z = 18

Procure por:

Código:
Sub SendSaveNpc(ByVal NpcNum As Long)

e mude a sub inteira para:

Código:
Sub SendSaveNpc(ByVal NpcNum As Long)
Dim Packet As String
Dim I As Long
   
    Packet = "SAVENPC" & SEP_CHAR & NpcNum & SEP_CHAR & Trim(Npc(NpcNum).name) & SEP_CHAR & Trim(Npc(NpcNum).AttackSay) & SEP_CHAR & Npc(NpcNum).Sprite & SEP_CHAR & Npc(NpcNum).SpawnSecs & SEP_CHAR & Npc(NpcNum).Behavior & SEP_CHAR & Npc(NpcNum).Range & SEP_CHAR & Npc(NpcNum).STR & SEP_CHAR & Npc(NpcNum).DEF & SEP_CHAR & Npc(NpcNum).Speed & SEP_CHAR & Npc(NpcNum).MAGI & SEP_CHAR & Npc(NpcNum).Big & SEP_CHAR & Npc(NpcNum).MaxHP & SEP_CHAR & Npc(NpcNum).EXP & SEP_CHAR & Npc(NpcNum).SpawnTime & SEP_CHAR & Npc(NpcNum).Speech & SEP_CHAR & Npc(NpcNum).Color & SEP_CHAR
    For I = 1 To MAX_NPC_DROPS
        Packet = Packet & Npc(NpcNum).ItemNPC(I).Chance
        Packet = Packet & SEP_CHAR & Npc(NpcNum).ItemNPC(I).ItemNum
        Packet = Packet & SEP_CHAR & Npc(NpcNum).ItemNPC(I).ItemValue & SEP_CHAR
    Next I
    Packet = Packet & END_CHAR
    Call SendData(Packet)
End Sub

Agora para finalizar o client~side procure por:

Código:
Sub BltMapNPCName(ByVal Index As Long)

e mude a sub inteira para:

Código:
Sub BltMapNPCName(ByVal Index As Long)
Dim TextX As Long
Dim TextY As Long
Dim Color As Long

Select Case Npc(MapNpc(Index).Num).Color
            Case 0
                Color = QBColor(BrightBlue)
            Case 1
                Color = QBColor(BrightRed)
            Case 2
                Color = QBColor(BrightGreen)
            Case 3
                Color = QBColor(Yellow)
            Case 4
                Color = QBColor(Magenta)
            Case 5
                Color = QBColor(White)
            Case 6
                Color = QBColor(Brown)
        End Select

If Npc(MapNpc(Index).Num).Big = 0 Then
    With Npc(MapNpc(Index).Num)
    'Draw name
        TextX = MapNpc(Index).x * PIC_X + sx + MapNpc(Index).XOffset + CLng(PIC_X / 2) - ((Len(Trim$(.name)) / 2) * 8)
        TextY = MapNpc(Index).y * PIC_Y + sx + MapNpc(Index).YOffset - CLng(PIC_Y / 2) - 4 - (SIZE_Y - PIC_Y)
        DrawPlayerNameText TexthDC, TextX - (NewPlayerX * PIC_X) - NewXOffset, TextY - (NewPlayerY * PIC_Y) - NewYOffset, Trim$(.name), Color
    End With
Else
    With Npc(MapNpc(Index).Num)
    'Draw name
        TextX = MapNpc(Index).x * PIC_X + sx + MapNpc(Index).XOffset + CLng(PIC_X / 2) - ((Len(Trim$(.name)) / 2) * 8)
        TextY = MapNpc(Index).y * PIC_Y + sx + MapNpc(Index).YOffset - CLng(PIC_Y / 2) - 32
        DrawPlayerNameText TexthDC, TextX - (NewPlayerX * PIC_X) - NewXOffset, TextY - (NewPlayerY * PIC_Y) - NewYOffset, Trim$(.name), Color
    End With
End If
End Sub

Client Completo.

Server~side

Procure por:

Código:
Sub SendUpdateNpcTo(ByVal Index As Long, ByVal NpcNum As Long)

Mude a sub inteira para:

Código:
Sub SendUpdateNpcTo(ByVal Index As Long, ByVal NpcNum As Long)
    Dim Packet As String

    Packet = "UPDATENPC" & SEP_CHAR & NpcNum & SEP_CHAR & Trim$(Npc(NpcNum).Name) & SEP_CHAR & Npc(NpcNum).Sprite & SEP_CHAR & Npc(NpcNum).Big & SEP_CHAR & Npc(NpcNum).MaxHp & SEP_CHAR & Npc(NpcNum).Speech & SEP_CHAR & Npc(NpcNum).Color & END_CHAR
    Call SendDataTo(Index, Packet)
End Sub

Procure por:

Código:
Sub SendUpdateNpcToAll(ByVal NpcNum As Long)

mude a sub inteira para:

Código:
Sub SendUpdateNpcToAll(ByVal NpcNum As Long)
    Dim Packet As String

    Packet = "UPDATENPC" & SEP_CHAR & NpcNum & SEP_CHAR & Trim$(Npc(NpcNum).Name) & SEP_CHAR & Npc(NpcNum).Sprite & SEP_CHAR & Npc(NpcNum).Big & SEP_CHAR & Npc(NpcNum).MaxHp & SEP_CHAR & Npc(NpcNum).Speech & SEP_CHAR & Npc(NpcNum).Color & END_CHAR
    Call SendDataToAll(Packet)
End Sub

Procure por:

Código:
Sub SendEditNpcTo(ByVal Index As Long, ByVal NpcNum As Long)

Mude a sub inteira para:

Código:
Sub SendEditNpcTo(ByVal Index As Long, ByVal NpcNum As Long)
    Dim Packet As String
    Dim i As Long

    'Packet = "EDITNPC" & SEP_CHAR & NpcNum & SEP_CHAR & Trim$(Npc(NpcNum).Name) & SEP_CHAR & Trim$(Npc(NpcNum).AttackSay) & SEP_CHAR & Npc(NpcNum).Sprite & SEP_CHAR & Npc(NpcNum).SpawnSecs & SEP_CHAR & Npc(NpcNum).Behavior & SEP_CHAR & Npc(NpcNum).Range & SEP_CHAR
    'Packet = Packet & Npc(NpcNum).DropChance & SEP_CHAR & Npc(NpcNum).DropItem & SEP_CHAR & Npc(NpcNum).DropItemValue & SEP_CHAR & Npc(NpcNum).str & SEP_CHAR & Npc(NpcNum).DEF & SEP_CHAR & Npc(NpcNum).SPEED & SEP_CHAR & Npc(NpcNum).MAGI & SEP_CHAR & Npc(NpcNum).Big & SEP_CHAR & Npc(NpcNum).MaxHp & SEP_CHAR & Npc(NpcNum).Exp & END_CHAR
    Packet = "EDITNPC" & SEP_CHAR & NpcNum & SEP_CHAR & Trim$(Npc(NpcNum).Name) & SEP_CHAR & Trim$(Npc(NpcNum).AttackSay) & SEP_CHAR & Npc(NpcNum).Sprite & SEP_CHAR & Npc(NpcNum).SpawnSecs & SEP_CHAR & Npc(NpcNum).Behavior & SEP_CHAR & Npc(NpcNum).Range & SEP_CHAR & Npc(NpcNum).STR & SEP_CHAR & Npc(NpcNum).DEF & SEP_CHAR & Npc(NpcNum).Speed & SEP_CHAR & Npc(NpcNum).Magi & SEP_CHAR & Npc(NpcNum).Big & SEP_CHAR & Npc(NpcNum).MaxHp & SEP_CHAR & Npc(NpcNum).Exp & SEP_CHAR & Npc(NpcNum).SpawnTime & SEP_CHAR & Npc(NpcNum).Speech & SEP_CHAR & Npc(NpcNum).Color & SEP_CHAR

    For i = 1 To MAX_NPC_DROPS
        Packet = Packet & Npc(NpcNum).ItemNPC(i).Chance
        Packet = Packet & SEP_CHAR & Npc(NpcNum).ItemNPC(i).ItemNum
        Packet = Packet & SEP_CHAR & Npc(NpcNum).ItemNPC(i).ItemValue & SEP_CHAR
    Next

    Packet = Packet & END_CHAR
    Call SendDataTo(Index, Packet)
End Sub

Procure por:

Código:
Type NpcRec

e acima do end type adicione:

Código:
Color As Byte

Agora procure por:

Código:
Npc(N).Speech = Val(Parse(16))

e abaixo adicione:

Código:
Npc(N).Color = Val(Parse(17))

Abaixo desse código você vera:

Código:
z = 17

Mude para:

Código:
z = 18

Sistema Concluído!

~Créditos~
Americano
Hitsugaya Kuchiki
Hitsugaya Kuchiki
Membro
Membro

Mensagens : 153

Ir para o topo Ir para baixo

Selecionando uma cor para o nome do Npc! Empty Re: Selecionando uma cor para o nome do Npc!

Mensagem por Monkey D.Dragon Ter 28 maio 2013, 14:46

Brigado Americaaaaaaaaaaaaa
Monkey D.Dragon
Monkey D.Dragon
Membro
Membro

Mensagens : 148

Ir para o topo Ir para baixo

Selecionando uma cor para o nome do Npc! Empty Re: Selecionando uma cor para o nome do Npc!

Mensagem por GoldSlash Ter 28 maio 2013, 19:00

Gostei cara, ficou bem legal. Eu achava q ja era padrão isso.

Mas aí , pq tu botou creditos americano e n c.america?KK
Americano é pra ser tu né? xD

Seus códigos estão bons, maneiro.
GoldSlash
GoldSlash
Membro Sênior
Membro Sênior

Mensagens : 383

Ir para o topo Ir para baixo

Selecionando uma cor para o nome do Npc! Empty Re: Selecionando uma cor para o nome do Npc!

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos