Sistema de Sentar e Recuperar HP e SP em Dobro!

    Compartilhe
    avatar
    Thales12
    Administrador
    Administrador

    Mensagens : 140
    Level : 8
    Data de inscrição : 01/11/2011
    Idade : 23
    Localização : Rio de Janeiro

    default Sistema de Sentar e Recuperar HP e SP em Dobro!

    Mensagem por Thales12 em Seg Fev 13, 2012 1:05 am

    Client~Side

    [b]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

    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:

    V-Force - Por fazer o sistema.
    Neon - Por Postar. ;D

      Data/hora atual: Seg Dez 17, 2018 8:13 am