Abra o Client.vbp, depois abra a frmEditor_Map, e dentro da fraAttribs adicione uma OptionButton com as seguintes propriedades:
Agora somente na frmEditor_Map do lado da fraAttribs crie uma frame com as seguintes propriedades:
Dentro da fraAgua crie uma HScrollBar com as propriedades:
Acima da scrlAgua crie uma label com as propriedades:
e ainda dentro da fraAgua adicione uma commandbutton com as propriedades:
Agora vamos iniciar os codigos, de 2 cliques na optAgua e adicione:
De 2 cliques da scrlAgua e add:
Procure por:
Abaixo coloque:
Procure por:
Abaixo add:
Procure por:
Abaixo add:
Cliente Acabado, agora vamos para o Server.vbp
Procure por:
Abaixo add:
Agora procure por:
Abaixo add:
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...
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...
CreditosNewbie123