MMORPG Brasil
Ola, visitante! Agradecemos sua visita, para ter acesso a todo nosso conteúdo recomendamos que faça um cadastro no fórum, com ele você pode participar de tópicos e ter acesso a todas áreas da comunidade!

Participe do fórum, é rápido e fácil

MMORPG Brasil
Ola, visitante! Agradecemos sua visita, para ter acesso a todo nosso conteúdo recomendamos que faça um cadastro no fórum, com ele você pode participar de tópicos e ter acesso a todas áreas da comunidade!
MMORPG Brasil
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Distribuindo pontos automaticamente

2 participantes

Ir para baixo

Distribuindo pontos automaticamente Empty Distribuindo pontos automaticamente

Mensagem por ivanzinho10crb Qua 11 Jul 2012, 01:24

procurei aqui e não achei!! No tutorial em "Lista de tutoriais" o link não está funcionando!
ivanzinho10crb
ivanzinho10crb
Novato
Novato

Mensagens : 12

Ir para o topo Ir para baixo

Distribuindo pontos automaticamente Empty Re: Distribuindo pontos automaticamente

Mensagem por RenanR Qui 09 Ago 2012, 19:44

Faça o seguinte:
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 Desconhecidos.
RenanR
RenanR
Membro Veterano
Membro Veterano

Mensagens : 1048

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos