Pessoal traduzi um tutorial la da touchofdeathforums e trouce para ca, é um simples tutorial de arena pvp igual das outras engines.
Vamos começar no Client Side:
No Frm_MapEditor adcione um button com name OptArena
Agora de dois clicks no button que voce criou e adcione esse codigo:
Depois na Sub MapEditorMouseDown, procure por:
Abaixo adcione:
Depois na Function BltMapAttributes procure por:
Adcione em Baixo:
Agora em modConstants procure por:
Adcione abaixo:
ACABAMOS A PARTE DO CLIENT SIDE
AGORA NO SERVER SIDE...
Procure em modConstants:
Abaixo adcione:
Agora em modCombat na Function CanPlayerAttackPlayer procure:
Adcione isso acima:
Agora na Sub PlayerAttackPlayer procure:
Mude para:
Na mesma Sub ainda procure por:
Mude para:
Pronto Agora voce pode ter uma arena pvp no seu jogo^^... Qualquer duvida so falar, e desculpe os erros de portugues...
Creditos:kibbelz
Vamos começar no Client Side:
No Frm_MapEditor adcione um button com name OptArena
Agora de dois clicks no button que voce criou e adcione esse codigo:
- Código:
ClearAttributeDialogue
picAttributes.Visible = True
fraMapWarp.Visible = True
scrlMapWarp.Max = MAX_MAPS
scrlMapWarp.Value = 1
scrlMapWarpX.Max = MAX_BYTE
scrlMapWarpY.Max = MAX_BYTE
scrlMapWarpX.Value = 0
scrlMapWarpY.Value = 0
Depois na Sub MapEditorMouseDown, procure por:
- Código:
' slide
If frmEditor_Map.optSlide.Value Then
.Type = TILE_TYPE_SLIDE
.Data1 = MapEditorSlideDir
.Data2 = 0
.Data3 = 0
End If
Abaixo adcione:
- Código:
' Arena
If frmEditor_Map.OptArena.Value Then
.Type = TILE_TYPE_ARENA
.Data1 = EditorWarpMap
.Data2 = EditorWarpX
.Data3 = EditorWarpY
End If
Depois na Function BltMapAttributes procure por:
- Código:
Case TILE_TYPE_SLIDE
DrawText TexthDC, tX, tY, "S", QBColor(BrightCyan)
Adcione em Baixo:
- Código:
Case TILE_TYPE_ARENA
DrawText TexthDC, tX, tY, "A", QBColor(Black)
Agora em modConstants procure por:
- Código:
Public Const TILE_TYPE_SLIDE As Byte = 14
Adcione abaixo:
- Código:
Public Const TILE_TYPE_ARENA As Byte = 15
ACABAMOS A PARTE DO CLIENT SIDE
AGORA NO SERVER SIDE...
Procure em modConstants:
- Código:
Public Const TILE_TYPE_SLIDE As Byte = 14
Abaixo adcione:
- Código:
Public Const TILE_TYPE_ARENA As Byte = 15
Agora em modCombat na Function CanPlayerAttackPlayer procure:
- Código:
' Check if map is attackable
If Not Map(GetPlayerMap(attacker)).Moral = MAP_MORAL_NONE Then
If GetPlayerPK(victim) = NO Then
Call PlayerMsg(attacker, "This is a safe zone!", BrightRed)
Exit Function
End If
End If
Adcione isso acima:
- Código:
'Checks if it is an Arena
If Map(GetPlayerMap(victim)).Tile(GetPlayerX(victim), GetPlayerY(victim)).Type = TILE_TYPE_ARENA Then
CanPlayerAttackPlayer = True
Exit Function
End If
Agora na Sub PlayerAttackPlayer procure:
- Código:
If GetPlayerPK(victim) = NO Then
If GetPlayerPK(attacker) = NO Then
Call SetPlayerPK(attacker, YES)
Call SendPlayerData(attacker)
Call GlobalMsg(GetPlayerName(attacker) & " has been deemed a Player Killer!!!", BrightRed)
End If
Else
Call GlobalMsg(GetPlayerName(victim) & " has paid the price for being a Player Killer!!!", BrightRed)
End If
Mude para:
- Código:
'Checks if it is an Arena
If Not Map(GetPlayerMap(victim)).Tile(GetPlayerX(victim), GetPlayerY(victim)).Type = TILE_TYPE_ARENA Then
If GetPlayerPK(victim) = NO Then
If GetPlayerPK(attacker) = NO Then
Call SetPlayerPK(attacker, YES)
Call SendPlayerData(attacker)
Call GlobalMsg(GetPlayerName(attacker) & " has been deemed a Player Killer!!!", BrightRed)
End If
Else
Call GlobalMsg(GetPlayerName(victim) & " has paid the price for being a Player Killer!!!", BrightRed)
End If
End If
Na mesma Sub ainda procure por:
- Código:
Call OnDeath(victim)
Mude para:
- Código:
'Checks if it is an Arena
If Map(GetPlayerMap(victim)).Tile(GetPlayerX(victim), GetPlayerY(victim)).Type = TILE_TYPE_ARENA Then
Call PlayerWarp(victim, Map(GetPlayerMap(victim)).Tile(GetPlayerX(victim), GetPlayerY(victim)).Data1, Map(GetPlayerMap(victim)).Tile(GetPlayerX(victim), GetPlayerY(victim)).Data2, Map(GetPlayerMap(victim)).Tile(GetPlayerX(victim), GetPlayerY(victim)).Data3)
Else
Call OnDeath(victim)
End If
Pronto Agora voce pode ter uma arena pvp no seu jogo^^... Qualquer duvida so falar, e desculpe os erros de portugues...
Creditos:kibbelz