Arena RPG Maker
Olá, visitante!
Seja bem-vindo ao fórum Arena RPG Maker, caso queira aprender sobre criação de jogos, está no fórum certo. Esperamos que possa aprender tanto quanto possa nos ensinar aqui.

Atenciosamente,
Equipe Arena RPG Maker.
Arena RPG Maker

Estamos de volta o/ ... Ou não.Eu amo a -Dark
Doações para o fórum abertas, clique aqui e saiba mais.
Últimos assuntos
» Pokémon Genesis Online! (PGO)
Qua 05 Jul 2017, 17:08 por Lexar

» Tileset Converter to MV
Sex 12 Maio 2017, 13:07 por Douggi

» [Dúvida] Como tirar a porcentagem de esquiva
Ter 09 Maio 2017, 22:15 por Neil Flame Runner

» Pack Resources, Sprites e etc
Qua 23 Dez 2015, 09:30 por raydengv

» Download RPG Maker 2003 + RTP em português
Ter 22 Dez 2015, 08:14 por ::KimMax::

» Fantasy Art Online
Dom 18 Out 2015, 16:42 por daviih123

» Você vai ter medo do Nerve gear?
Sab 25 Jul 2015, 16:02 por Kirito-kun

» O Barato é louco
Sab 27 Jun 2015, 15:26 por Halt

» Download RPG Maker 2000 + RTP em português
Qui 21 Maio 2015, 19:28 por Wismael

» Divulgando meu grupo e página do Facebook
Ter 19 Maio 2015, 13:06 por Halt


Você não está conectado. Conecte-se ou registre-se

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

Halt

avatar
Administrador
Administrador
jadieljr escreveu:Primeiramente crie uma PictureBox no frmMain chamada "PicSentar" e em seguida coloque o seguinte code:

Código:

Dim B As ClsBuffer

Set B = New ClsBuffer
B.WriteLong CSit
SendData B.ToArray()
Set B = Nothing

Procure por "' make sure they're not stunned" e emcima coloque o seguinte code:

Código:

If Player(MyIndex).Sit = 1 Then
  CanMove = False
  Exit Function
End If

Procurar por "Step As Byte" e embaixo adicionar:

Código:
Sit As Byte

Procurar por "Call SetPlayerPK(i, Buffer.ReadLong)" e embaixo adicionar:

Código:
Player(i).Sit = Buffer.ReadByte

Agora procure por "' Make sure CMSG_COUNT is below everything else" e em cima coloque:

Código:
CSit

Em seguida vá ao Server Side e repita o passo anterior

Agora procure por "HandleDataSub(CPartyLeave) = GetAddress(AddressOf HandlePartyLeave)" e embaixo coloque:


Código:
HandleDataSub(CSit) = GetAddress(AddressOf HandleSit)

E no final do modHandleData adicione a seguinte Sub:

Código:

Sub HandleSit(ByVal index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
    Dim i As Long
    With Player(index)
    If .Sit = 1 Then
    If .Sprite = S Then .Sprite = N 'S = Numero da Sprite a ficar sentado; N = Numero da Sprite a ficar normal
    End If
    If .Sit = 0 Then
    .Sit = 1
    If .Sprite = S Then .Sprite = N ' N = Numero da Sprite a ficar sentado; S = Numero da Sprite a ficar normal
    End If
    End With
   
    For i = 1 To Player_HighIndex
      SendPlayerData i
    Next
   
    SavePlayer index
End Sub

Código:
Agora na Sub PlayerData procure por "Buffer.WriteLong GetPlayerPK(index)" e embaixo coloque:

Agora na Sub PlayerData procure por "Buffer.WriteLong GetPlayerPK(index)" e embaixo coloque:

Código:
Buffer.WriteByte Player(index).Sit

No Type PlayerRec procurar por "Dir As Byte" e adicionar em baixo:

Código:
Sit As Byte

'Na Sub AddChar procurar por "Player(index).Class = ClassNum" e embaixo por:

Código:
Player(index).Sit = 0

Procurar a Sub "UpdatePlayerVitals" e troca-la inteira por essa:

Código:
Private Sub UpdatePlayerVitals()
Dim i As Long
    For i = 1 To Player_HighIndex
        If IsPlaying(i) Then
            If Not TempPlayer(i).stopRegen Then
                If GetPlayerVital(i, Vitals.HP) <> GetPlayerMaxVital(i, Vitals.HP) Then
                    Call SetPlayerVital(i, Vitals.HP, GetPlayerVital(i, Vitals.HP) + GetPlayerVitalRegen(i, Vitals.HP))
                    If Player(i).Sit = 1 Then Call SetPlayerVital(i, Vitals.HP, GetPlayerVital(i, Vitals.HP) + (GetPlayerVitalRegen(i, Vitals.HP) + (GetPlayerVitalRegen(i, Vitals.HP) * 0.4)))
                    Call SendVital(i, Vitals.HP)
                    ' send vitals to party if in one
                    If TempPlayer(i).inParty > 0 Then SendPartyVitals TempPlayer(i).inParty, i
                End If
   
                If GetPlayerVital(i, Vitals.MP) <> GetPlayerMaxVital(i, Vitals.MP) Then
                    Call SetPlayerVital(i, Vitals.MP, GetPlayerVital(i, Vitals.MP) + GetPlayerVitalRegen(i, Vitals.MP))
                    If Player(i).Sit = 1 Then Call SetPlayerVital(i, Vitals.MP, GetPlayerVital(i, Vitals.MP) + (GetPlayerVitalRegen(i, Vitals.MP) + (GetPlayerVitalRegen(i, Vitals.MP) * 0.4)))
                    Call SendVital(i, Vitals.MP)
                    ' send vitals to party if in one
                    If TempPlayer(i).inParty > 0 Then SendPartyVitals TempPlayer(i).inParty, i
                End If
            End If
        End If
    Next
End Sub

Créditos
Kintaro: por fazer o sistema e tutorial
Jadiel: apenas por postar aki.


__________________________________________

Ei Convidado, sim você mesmo! Ajude o fórum à crescer postando coisas úteis, dê sugestões para melhorar-mos e divulgue o fórum.

Step inside, see the devil in I.

Gifts-
Fantasy - Fantasy - Fantasy - ~Razor - Darkmel

Zerei a internet
Ver perfil do usuário http://arenarpgmaker.eclipserpg.com

Carlos

avatar
Administrador
Administrador
Esse sistema é bem legal, eu já vi de um Harry Potter que eu jogava que o Player ia até o salão comunal, deitava nas camas e recuperava o HP e o SP.

+1


__________________________________________





Ver perfil do usuário http://arenarpgmaker.eclipserpg.com

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum