Aqui, esse sistema serve pra você se transformar por comando. É a base de Sprite e Dbz só para amostra.
Dentro do script tem tudo explicado. Fiz como exemplo dois personagens e duas transformações (ssj e ssj2).
~ Client Side ~
Procure por:
CÓDIGO:
Logo abaixo adicione:
CÓDIGO:
CÓDIGO:
CÓDIGO:
Em baixo coloque:
CÓDIGO:
Parte Client Acabada.
~ Server Side ~
Procure por:
CÓDIGO:
CÓDIGO:
No final do modHandleData, adicione essas subs:
CÓDIGO:
CÓDIGO:
Abaixo adicione:
CÓDIGO:
Pronto, pra simplificar, eu coloquei as transformações dentro de uma só
sub, então, quando tu for adicionar mais transformações no client, é só
adicionar:
CÓDIGO:
Dentro do script tem tudo explicado. Fiz como exemplo dois personagens e duas transformações (ssj e ssj2).
~ Client Side ~
Procure por:
CÓDIGO:
- Código:
Select Case Command(0)
Logo abaixo adicione:
CÓDIGO:
- Código:
Case "/ssj"
Trans 1
Case "/ssj2"
Trans 2
Case "/normal"
Normal
CÓDIGO:
- Código:
Sub Trans(ByVal Trans As Byte)
Dim Buffer As clsBuffer
Set Buffer = New clsBuffer
Buffer.WriteLong CTrans
Buffer.WriteByte Trans
SendData Buffer.ToArray()
Set Buffer = Nothing
End Sub
Sub Normal()
Dim Buffer As clsBuffer
Set Buffer = New clsBuffer
Buffer.WriteLong CVoltarNormal
SendData Buffer.ToArray()
Set Buffer = Nothing
End Sub
CÓDIGO:
- Código:
cuntradeitem
Em baixo coloque:
CÓDIGO:
- Código:
CTrans
CVoltarNormal
Parte Client Acabada.
~ Server Side ~
Procure por:
CÓDIGO:
- Código:
HandleDataSub(CUntradeItem) = GetAddress(AddressOf HandleUntradeItem)
CÓDIGO:
- Código:
HandleDataSub(CTrans) = GetAddress(AddressOf HandleTransformação) HandleDataSub(CVoltarNormal) = GetAddress(AddressOf HandleVoltarNormal)
No final do modHandleData, adicione essas subs:
CÓDIGO:
- Código:
Sub HandleTransformação(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
' By MakersBrasil.forumeiros.com
Dim Buffer As clsBuffer
Dim trans As Byte
Set Buffer = New clsBuffer
Buffer.WriteBytes Data()
trans = Buffer.ReadByte
Set Buffer = Nothing
Select Case trans
Case 1 'SJJ
'===========
'Trans do Goku
'=============
If GetPlayerSprite(Index) = 1 Then 'sprite goku normal
If GetPlayerLevel(Index) >= 5 Then ' se tiver lvl 5
SetPlayerSprite Index, 2 'sprite do goku ssj
SetPlayerStat Index, Stats.strength, GetPlayerStat(Index, Stats.strength) + 30
SetPlayerStat Index, Stats.endurance, GetPlayerStat(Index, Stats.endurance) + 30
SetPlayerStat Index, Stats.intelligence, GetPlayerStat(Index, Stats.intelligence) + 30
SendPlayerData Index
SendStats Index
Else: PlayerMsg Index, "Não tem o level necessário", Red
End If
Exit Sub
End If
'=================
'Trans de Outro personagem;Vegita
'=================
If GetPlayerSprite(Index) = 3 Then ' sprite normal do vegita
If GetPlayerLevel(Index) >= 5 Then 'se for lvl 5 ou maior
SetPlayerSprite Index, 4 'sprite ssj do vegita
SetPlayerStat Index, Stats.strength, GetPlayerStat(Index, Stats.strength) + 30
SetPlayerStat Index, Stats.endurance, GetPlayerStat(Index, Stats.endurance) + 30
SetPlayerStat Index, Stats.intelligence, GetPlayerStat(Index, Stats.intelligence) + 30
SendPlayerData Index
SendStats Index
Else: PlayerMsg Index, "Não tem o level necessário", Red
End If
Exit Sub
End If
'----'
'Fim da Trans1 "ssj"
'--
Case 2 'SSJ2
'==========
'Trans SSJ2 do goku
'--------
If GetPlayerSprite(Index) = 1 Then ' se ele não tiver transformado
If GetPlayerLevel(Index) >= 10 Then ' se ele tiver lvl 10
SetPlayerSprite Index, 5 ' sprite ssj2 do goku
SetPlayerStat Index, Stats.strength, GetPlayerStat(Index, Stats.strength) + 60
SetPlayerStat Index, Stats.endurance, GetPlayerStat(Index, Stats.endurance) + 60
SetPlayerStat Index, Stats.intelligence, GetPlayerStat(Index, Stats.intelligence) + 60
SendPlayerData Index
SendStats Index
Else: PlayerMsg Index, "Não tem o level necessário", Red
End If
'Else: PlayerMsg Index, "Precisa voltar ao normal se quizer se transformar em outro nível", Red
Exit Sub
End If
If GetPlayerSprite(Index) = 3 Then ' se ele não tiver transformado
If GetPlayerLevel(Index) >= 10 Then ' se ele tiver lvl 10
SetPlayerSprite Index, 6 ' sprite ssj2 do vegita
SetPlayerStat Index, Stats.strength, GetPlayerStat(Index, Stats.strength) + 60
SetPlayerStat Index, Stats.endurance, GetPlayerStat(Index, Stats.endurance) + 60
SetPlayerStat Index, Stats.intelligence, GetPlayerStat(Index, Stats.intelligence) + 60
SendPlayerData Index
SendStats Index
Else: PlayerMsg Index, "Não tem o level necessário", Red
End If
'Else: PlayerMsg Index, "Precisa voltar ao normal se quizer se transformar em outro nível", Red
Exit Sub
End If
'==========
'Fim da trans SSJ2
'==========
Case 3 ' SSJ3
'agora,eh soh repetir pegando de exemplo os 2 casos acima
Case 4 'ssj4
Case 5 'ssj5..
'pode add qntas quizer mas tem q ser ANTES do end select
End Select
End Sub
Sub HandleVoltarNormal(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
Dim Buffer As clsBuffer
Set Buffer = New clsBuffer
Buffer.WriteBytes Data()
Set Buffer = Nothing
Select Case GetPlayerSprite(Index)
Case 2 'sprite goku ssj
SetPlayerSprite Index, 1 'sprite do goku normal
SetPlayerStat Index, Stats.strength, GetPlayerStat(Index, Stats.strength) - 30
SetPlayerStat Index, Stats.endurance, GetPlayerStat(Index, Stats.endurance) - 30
SetPlayerStat Index, Stats.intelligence, GetPlayerStat(Index, Stats.intelligence) - 30
SendPlayerData Index
SendStats Index
Exit Sub
Case 4 'sprite vegita ssj
SetPlayerSprite Index, 3 'sprite do vegita normal
SetPlayerStat Index, Stats.strength, GetPlayerStat(Index, Stats.strength) - 30
SetPlayerStat Index, Stats.endurance, GetPlayerStat(Index, Stats.endurance) - 30
SetPlayerStat Index, Stats.intelligence, GetPlayerStat(Index, Stats.intelligence) - 30
SendPlayerData Index
SendStats Index
Exit Sub
Case 5 'sprite goku ssj2
SetPlayerSprite Index, 1 'sprite do goku normal
SetPlayerStat Index, Stats.strength, GetPlayerStat(Index, Stats.strength) - 60
SetPlayerStat Index, Stats.endurance, GetPlayerStat(Index, Stats.endurance) - 60
SetPlayerStat Index, Stats.intelligence, GetPlayerStat(Index, Stats.intelligence) - 60
SendPlayerData Index
SendStats Index
Exit Sub
Case 6 'sprite vegita ssj2
SetPlayerSprite Index, 3 'sprite do vegita normal
SetPlayerStat Index, Stats.strength, GetPlayerStat(Index, Stats.strength) - 60
SetPlayerStat Index, Stats.endurance, GetPlayerStat(Index, Stats.endurance) - 60
SetPlayerStat Index, Stats.intelligence, GetPlayerStat(Index, Stats.intelligence) - 60
SendPlayerData Index
SendStats Index
Exit Sub
End Select
End Sub
CÓDIGO:
- Código:
CUntradeItem
Abaixo adicione:
CÓDIGO:
- Código:
CTrans
CVoltarNormal
Pronto, pra simplificar, eu coloquei as transformações dentro de uma só
sub, então, quando tu for adicionar mais transformações no client, é só
adicionar:
CÓDIGO:
- Código:
trans NumeroDaTransFormação