Universo Games
Ola , Convidado



Você ainda não e cadastrado então cadastre-se e veja todas as atualizações no mundo rpg!!!

Adicionando pontos automaticamente ao passar de level

Ir em baixo

Tutorial Adicionando pontos automaticamente ao passar de level

Mensagem por RicardoxD em Sab 25 Jun 2011, 10:51

Client~Side

Vá na frmMirage, picStat, deixa invisível a lblPoints e as labels que contém o sinal de +.

Agora, procure por:

Código:
        ' xxx Distribuição de Pontos por Comando xxx

E apague todo o código até:

Código:
        ' xxx Fim da Distribuição de Pontos por Comando xxx


Server~Side

Mude a sub toda do Private Sub Command34_Click() por:

Código:
Private Sub Command34_Click()
Dim Index As Long
Dim i As Long

    Call GlobalMsg("O servidor deu um level grátis para todos!", BrightGreen)
    For Index = 1 To MAX_PLAYERS

        If IsPlaying(Index) = True Then
            If GetPlayerLevel(Index) >= MAX_LEVEL Then
                Call SetPlayerExp(Index, Experience(MAX_LEVEL))
                Call SendStats(Index)
            Else
                Call SetPlayerLevel(Index, GetPlayerLevel(Index) + 1)
                i = Int(GetPlayerSPEED(Index) / 10)

                If i < 1 Then i = 1
                If i > 3 Then i = 3
                'Call SetPlayerPOINTS(Index, GetPlayerPOINTS(Index) + i)
                    If GetPlayerLevel(Index) <= 20 Then
                        Call SetPlayerstr(Index, GetPlayerstr(Index) + 2)
                        Call SetPlayerDEF(Index, GetPlayerDEF(Index) + 2)
                        Call SetPlayerSPEED(Index, GetPlayerSPEED(Index) + 1)
                        Call SetPlayerMAGI(Index, GetPlayerMAGI(Index) + 1)
                    ElseIf GetPlayerLevel(Index) > 20 And GetPlayerLevel(Index) <= 60 Then
                        Call SetPlayerstr(Index, GetPlayerstr(Index) + 5)
                        Call SetPlayerDEF(Index, GetPlayerDEF(Index) + 5)
                        Call SetPlayerSPEED(Index, GetPlayerSPEED(Index) + 2)
                        Call SetPlayerMAGI(Index, GetPlayerMAGI(Index) + 2)
                    ElseIf GetPlayerLevel(Index) > 60 And GetPlayerLevel(Index) <= 100 Then
                        Call SetPlayerstr(Index, GetPlayerstr(Index) + 10)
                        Call SetPlayerDEF(Index, GetPlayerDEF(Index) + 10)
                        Call SetPlayerSPEED(Index, GetPlayerSPEED(Index) + 6)
                        Call SetPlayerMAGI(Index, GetPlayerMAGI(Index) + 6)
                    End If
                   
                Call BattleMsg(Index, "Seus pontos foram adicionados automaticamente.", 9, 0)

                If GetPlayerLevel(Index) >= MAX_LEVEL Then
                    Call SetPlayerExp(Index, Experience(MAX_LEVEL))
                    Call SendStats(Index)
                End If
                Call SendStats(Index)
            End If
        End If
    Next
End Sub

Depois mude a sub toda de Sub CheckPlayerLevelUp(ByVal Index As Long) por:

Código:
Sub CheckPlayerLevelUp(ByVal Index As Long)
    Dim i As Long
    Dim d As Long
    Dim C As Long

    C = 0

    If GetPlayerExp(Index) >= GetPlayerNextLevel(Index) Then
        If GetPlayerLevel(Index) < MAX_LEVEL Then
            If SCRIPTING = 1 Then
                MyScript.ExecuteStatement "Scripts\Principal.txt", "PlayerLevelUp " & Index
            Else

                Do Until GetPlayerExp(Index) < GetPlayerNextLevel(Index)
                    DoEvents

                    If GetPlayerLevel(Index) < MAX_LEVEL Then
                        If GetPlayerExp(Index) >= GetPlayerNextLevel(Index) Then
                            d = GetPlayerExp(Index) - GetPlayerNextLevel(Index)
                            Call SetPlayerLevel(Index, GetPlayerLevel(Index) + 1)
                            i = Int(GetPlayerSPEED(Index) / 10)

                            If i < 1 Then i = 1
                            If i > 3 Then i = 3
                            Call SendDataTo(Index, "sound" & SEP_CHAR & "LevelUp" & END_CHAR)
                            'Call SetPlayerPOINTS(Index, GetPlayerPOINTS(Index) + i)
                                If GetPlayerLevel(Index) <= 20 Then
                                    Call SetPlayerstr(Index, GetPlayerstr(Index) + 2)
                                    Call SetPlayerDEF(Index, GetPlayerDEF(Index) + 2)
                                    Call SetPlayerSPEED(Index, GetPlayerSPEED(Index) + 1)
                                    Call SetPlayerMAGI(Index, GetPlayerMAGI(Index) + 1)
                                ElseIf GetPlayerLevel(Index) > 20 And GetPlayerLevel(Index) <= 60 Then
                                    Call SetPlayerstr(Index, GetPlayerstr(Index) + 5)
                                    Call SetPlayerDEF(Index, GetPlayerDEF(Index) + 5)
                                    Call SetPlayerSPEED(Index, GetPlayerSPEED(Index) + 2)
                                    Call SetPlayerMAGI(Index, GetPlayerMAGI(Index) + 2)
                                ElseIf GetPlayerLevel(Index) > 60 And GetPlayerLevel(Index) <= 100 Then
                                    Call SetPlayerstr(Index, GetPlayerstr(Index) + 10)
                                    Call SetPlayerDEF(Index, GetPlayerDEF(Index) + 10)
                                    Call SetPlayerSPEED(Index, GetPlayerSPEED(Index) + 6)
                                    Call SetPlayerMAGI(Index, GetPlayerMAGI(Index) + 6)
                                End If
                            Call SetPlayerExp(Index, d)
                            C = C + 1
                        Else
                            Exit Do
                        End If
                    End If

                Loop

                If C > 1 Then
                    Call GlobalMsg(GetPlayerName(Index) & " ganhou " & C & " níveis!", 6)
                Else
                    Call GlobalMsg(GetPlayerName(Index) & " ganhou um nível!", 6)
                End If

                'Call BattleMsg(Index, "Você possui " & GetPlayerPOINTS(Index) & " pontos.", 9, 0)
                Call BattleMsg(Index, "Seus pontos foram adicionados automaticamente.", 9, 0)
            End If

            Call SendDataToMap(GetPlayerMap(Index), "levelup" & SEP_CHAR & Index & END_CHAR)
        End If

        If GetPlayerLevel(Index) = MAX_LEVEL Then
            Call SetPlayerExp(Index, Experience(MAX_LEVEL))
        End If
    End If

    Call SendHP(Index)
    Call SendMP(Index)
    Call SendSP(Index)
    Call SendStats(Index)
End Sub

E agora, vá no Principal.txt e procure pela Sub PlayerLevelUp(index). Mude ela toda por:

Código:
Sub PlayerLevelUp(index)
Dim I   
Dim D
Dim C
   
    C = 0
    Do While GetPlayerExp(index) => GetPlayerNextLevel(index)   
        D = GetPlayerExp(index) - GetPlayerNextLevel(index)
        Call SetPlayerLevel(index, GetPlayerLevel(index) + 1)
        I = Int(GetPlayerSPEED(index) / 10)
        If I < 1 Then I = 1
        If I > 3 Then I = 3
           
        'Call SetPlayerPOINTS(index, GetPlayerPOINTS(index) + I)
            If GetPlayerLevel(Index) <= 20 Then
                Call SetPlayerstr(Index, GetPlayerstr(Index) + 2)
                Call SetPlayerDEF(Index, GetPlayerDEF(Index) + 2)
                Call SetPlayerSPEED(Index, GetPlayerSPEED(Index) + 1)
                Call SetPlayerMAGI(Index, GetPlayerMAGI(Index) + 1)
            ElseIf GetPlayerLevel(Index) > 20 And GetPlayerLevel(Index) <= 60 Then
                Call SetPlayerstr(Index, GetPlayerstr(Index) + 5)
                Call SetPlayerDEF(Index, GetPlayerDEF(Index) + 5)
                Call SetPlayerSPEED(Index, GetPlayerSPEED(Index) + 2)
                Call SetPlayerMAGI(Index, GetPlayerMAGI(Index) + 2)
            ElseIf GetPlayerLevel(Index) > 60 And GetPlayerLevel(Index) <= 100 Then
                Call SetPlayerstr(Index, GetPlayerstr(Index) + 10)
                Call SetPlayerDEF(Index, GetPlayerDEF(Index) + 10)
                Call SetPlayerSPEED(Index, GetPlayerSPEED(Index) + 6)
                Call SetPlayerMAGI(Index, GetPlayerMAGI(Index) + 6)
            End If
        Call SetPlayerExp(index, D)     
        C = C + 1
    Loop
    If C > 1 Then
        'Call GlobalMsg(GetPlayerName(index) & " ganhou " & C & " níveis!", 6)
    Else
        'Call GlobalMsg(GetPlayerName(index) & " ganhou um nível!", 6)     
    End If   

    'Call BattleMsg(index, "Você tem " & GetPlayerPOINTS(index) & " pontos para gastar.", 9, 0)
    Call BattleMsg(Index, "Seus pontos foram adicionados automaticamente.", 9, 0) 
End Sub

Creditos:
Autor desconhecido
Prodev
A mim por postar
avatar
RicardoxD

Mensagens : 89

Voltar ao Topo Ir em baixo

Tutorial Re: Adicionando pontos automaticamente ao passar de level

Mensagem por NuKeNiN em Dom 03 Jul 2011, 21:24

n da pra fazer um botao que ativa e desativa essa função?
avatar
NuKeNiN

Mensagens : 67

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

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