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.

Sistema de Gasto de Mana ao passar por Água

2 participantes

Ir para baixo

Sistema de Gasto de Mana ao passar por Água Empty Sistema de Gasto de Mana ao passar por Água

Mensagem por newbie123 Qui 27 Nov 2014, 14:44

Abra o Client.vbp, depois abra a frmEditor_Map, e dentro da fraAttribs adicione uma OptionButton com as seguintes propriedades:


Name = optAgua
Caption = Água


Agora somente na frmEditor_Map do lado da fraAttribs crie uma frame com as seguintes propriedades:


Name = fraAgua
Caption = Água
Visible = False


Dentro da fraAgua crie uma HScrollBar com as propriedades:


Name = scrlAgua


Acima da scrlAgua crie uma label com as propriedades:

Name = lblAgua
Caption = Gasto: 0

e ainda dentro da fraAgua adicione uma commandbutton com as propriedades:

Name = cmdAgua
Caption = Ok


Agora vamos iniciar os codigos, de 2 cliques na optAgua e adicione:

Código:
' If debug mode, handle error then exit out
    If Options.Debug = 1 Then On Error GoTo errorhandler
    
    ClearAttributeDialogue
    picAttributes.Visible = True
    fraAgua.Visible = True
    
    ' Error handler
    Exit Sub
errorhandler:
    HandleError "optAgua_Click", "frmEditor_Map", Err.Number, Err.Description, Err.Source, Err.HelpContext
    Err.Clear
    Exit Sub

De 2 cliques da scrlAgua e add:

Código:
' If debug mode, handle error then exit out
    If Options.Debug = 1 Then On Error GoTo errorhandler
    
    lblAgua.Caption = "Gasto: " & scrlAgua.Value
    
    ' Error handler
    Exit Sub
errorhandler:
    HandleError "scrlAgua_Change", "frmEditor_Map", Err.Number, Err.Description, Err.Source, Err.HelpContext
    Err.Clear
    Exit Sub

Procure por:
Código:
Case TILE_TYPE_SLIDE
                                DrawText TexthDC, tX, tY, "S", QBColor(BrightCyan)

Abaixo coloque:
Código:
Case TILE_TYPE_AGUA
                                DrawText TexthDC, tX, tY, "A", QBColor(BrightBlue)

Procure por:

Código:
Public Const TILE_TYPE_SLIDE As Byte = 14

Abaixo add:

Código:
Public Const TILE_TYPE_AGUA As Byte = 15

Procure por:

Código:
' slide
                If frmEditor_Map.optSlide.Value Then
                    .Type = TILE_TYPE_SLIDE
                    .Data1 = MapEditorSlideDir
                    .Data2 = 0
                    .Data3 = 0
                End If

Abaixo add:

Código:
                ' agua
                If frmEditor_Map.optAgua.Value Then
                    .Type = TILE_TYPE_AGUA
                    .Data1 = MapEditorHealAmount
                    .Data2 = 0
                    .Data3 = 0
                End If


Cliente Acabado, agora vamos para o Server.vbp

Procure por:

Código:
Public Const TILE_TYPE_SLIDE As Byte = 14

Abaixo add:

Código:
Public Const TILE_TYPE_AGUA As Byte = 15

Agora procure por:
Código:
' Slide
        If .Type = TILE_TYPE_SLIDE Then
            Select Case .Data1
                Case DIR_UP
                    If Map(GetPlayerMap(index)).Tile(GetPlayerX(index), GetPlayerY(index) - 1).Type = TILE_TYPE_RESOURCE Or Map(GetPlayerMap(index)).Tile(GetPlayerX(index), GetPlayerY(index) - 1).Type = TILE_TYPE_BLOCKED Then Exit Sub
                Case DIR_LEFT
                    If Map(GetPlayerMap(index)).Tile(GetPlayerX(index) - 1, GetPlayerY(index)).Type = TILE_TYPE_RESOURCE Or Map(GetPlayerMap(index)).Tile(GetPlayerX(index) - 1, GetPlayerY(index)).Type = TILE_TYPE_BLOCKED Then Exit Sub
                Case DIR_DOWN
                    If Map(GetPlayerMap(index)).Tile(GetPlayerX(index), GetPlayerY(index) + 1).Type = TILE_TYPE_RESOURCE Or Map(GetPlayerMap(index)).Tile(GetPlayerX(index), GetPlayerY(index) + 1).Type = TILE_TYPE_BLOCKED Then Exit Sub
                Case DIR_RIGHT
                    If Map(GetPlayerMap(index)).Tile(GetPlayerX(index) + 1, GetPlayerY(index)).Type = TILE_TYPE_RESOURCE Or Map(GetPlayerMap(index)).Tile(GetPlayerX(index) + 1, GetPlayerY(index)).Type = TILE_TYPE_BLOCKED Then Exit Sub
            End Select
            ForcePlayerMove index, MOVING_WALKING, .Data1
            Moved = YES
        End If

Abaixo add:
Código:
' O que acontece quando o player passar por cima ^^
        If .Type = TILE_TYPE_AGUA Then
            amount = .Data1
            SendActionMsg GetPlayerMap(index), "-" & amount, BrightRed, ACTIONMSG_SCROLL, GetPlayerX(index) * 32, GetPlayerY(index) * 32, 1
            If GetPlayerVital(index, MP) - amount <= 0 Then
                Moved = NO
                PlayerMsg index, "Você não tem mana suficiente para andar sobre a água", BrightRed
            Else
                SetPlayerVital index, MP, GetPlayerVital(index, MP) - amount
                Call SendVital(index, MP)
            End If
            Moved = YES
        End If

Não se esqueça de deixar o codigo acima do "END WITH"

Agora é so compilar e pronto, utiliza o sistema da mesma forma que é utilizado para bloquear partes do mapa, colocar traps, resources etc...


Creditos
Newbie123
newbie123
newbie123
Membro Vitalicio
Membro Vitalicio

Mensagens : 622

Ir para o topo Ir para baixo

Sistema de Gasto de Mana ao passar por Água Empty Re: Sistema de Gasto de Mana ao passar por Água

Mensagem por kriteus Qui 27 Nov 2014, 17:49

Otimo sistema, acho que deve ser muito bom para jogos de Naruto
+ 1crédito
kriteus
kriteus
Novato
Novato

Mensagens : 15

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