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.

[AJUDA] Procedure too large ( Processo muito grande )

5 participantes

Ir para baixo

[AJUDA] Procedure too large ( Processo muito grande ) Empty [AJUDA] Procedure too large ( Processo muito grande )

Mensagem por gtalux Sex 28 Jan 2011, 17:39

Alguém poe me juda eu tava fazendo minhas trans por foto e deu
esse erro muita coisa na sub e naum deu pra terminar minhas trans
de 15 classes só fiz 8.

Arrow Help !
gtalux
gtalux
Membro Junior
Membro Junior

Mensagens : 76

http://www.dbz-fusion.tk

Ir para o topo Ir para baixo

[AJUDA] Procedure too large ( Processo muito grande ) Empty Re: [AJUDA] Procedure too large ( Processo muito grande )

Mensagem por Vicardosof Sex 28 Jan 2011, 17:58

Qual sub?
Vicardosof
Vicardosof
Membro
Membro

Mensagens : 200

Ir para o topo Ir para baixo

[AJUDA] Procedure too large ( Processo muito grande ) Empty Re: [AJUDA] Procedure too large ( Processo muito grande )

Mensagem por gtalux Sex 28 Jan 2011, 18:07

Vou manda da trans que eu puis e encheu até a final da sub Neutral

Código:

                ElseIf GetPlayerClass(Index) = 8 Then
                If GetPlayerLevel(Index) >= 900 Then
                If GetPlayerAccess(Index) = 1 Then
                    If GetPlayerSprite(Index) = 21 Then
                        Call SetPlayerSprite(Index, 26)
                        On Error Resume Next
                        Call SetPlayerstr(Index, GetPlayerstr(Index) * 5)
                        Call SetPlayerDEF(Index, GetPlayerDEF(Index) * 5)
                        Call SetPlayerSPEED(Index, GetPlayerSPEED(Index) * 5)
                        Call SetPlayerMAGI(Index, GetPlayerMAGI(Index) * 5)
                        Call SetPlayerMP(Index, GetPlayerMP(Index) - 200)
                        Call PlayerMsg(Index, "Você se transformou!", BrightBlue)
                        Call BattleMsg(Index, "Trunks Adulto!", Yellow, 0)
                        Call SendPlayerData(Index)
                      Exit Sub
                      End If
                      End If
                    Else
                        Call PlayerMsg(Index, "Você não tem os requisitos para se transformar!", BrightBlue)
                    End If
                    End If
                    End If

        Case "updatetradeinv"
            N = Val(Parse(1))
            Player(Index).Trading(N).InvNum = Val(Parse(2))
            Player(Index).Trading(N).InvName = Trim$(Parse(3))

            If Player(Index).Trading(N).InvNum = 0 Then
                Player(Index).TradeItemMax = Player(Index).TradeItemMax - 1
                Player(Index).TradeOk = 0
                Player(N).TradeOk = 0
                Call SendDataTo(Index, "trading" & SEP_CHAR & 0 & END_CHAR)
                Call SendDataTo(N, "trading" & SEP_CHAR & 0 & END_CHAR)
            Else
                Player(Index).TradeItemMax = Player(Index).TradeItemMax + 1
            End If

            Call SendDataTo(Player(Index).TradePlayer, "updatetradeitem" & SEP_CHAR & N & SEP_CHAR & Player(Index).Trading(N).InvNum & SEP_CHAR & Player(Index).Trading(N).InvName & END_CHAR)
            Exit Sub

        Case "swapitems"
            N = Player(Index).TradePlayer

            If Player(Index).TradeOk = 0 Then
                Player(Index).TradeOk = 1
                Call SendDataTo(N, "trading" & SEP_CHAR & 1 & END_CHAR)
            ElseIf Player(Index).TradeOk = 1 Then
                Player(Index).TradeOk = 0
                Call SendDataTo(N, "trading" & SEP_CHAR & 0 & END_CHAR)
            End If

            If Player(Index).TradeOk = 1 And Player(N).TradeOk = 1 Then
                Player(Index).TradeItemMax2 = 0
                Player(N).TradeItemMax2 = 0

                For i = 1 To MAX_INV

                    If Player(Index).TradeItemMax = Player(Index).TradeItemMax2 Then
                        Exit For
                    End If

                    If GetPlayerInvItemNum(N, i) < 1 Then
                        Player(Index).TradeItemMax2 = Player(Index).TradeItemMax2 + 1
                    End If

                Next

                For i = 1 To MAX_INV

                    If Player(N).TradeItemMax = Player(N).TradeItemMax2 Then
                        Exit For
                    End If

                    If GetPlayerInvItemNum(Index, i) < 1 Then
                        Player(N).TradeItemMax2 = Player(N).TradeItemMax2 + 1
                    End If

                Next

                If Player(Index).TradeItemMax2 = Player(Index).TradeItemMax And Player(N).TradeItemMax2 = Player(N).TradeItemMax Then

                    For i = 1 To MAX_PLAYER_TRADES
                        For x = 1 To MAX_INV

                            If GetPlayerInvItemNum(N, x) < 1 Then
                                If Player(Index).Trading(i).InvNum > 0 Then
                                    Call GiveItem(N, GetPlayerInvItemNum(Index, Player(Index).Trading(i).InvNum), 1)
                                    Call TakeItem(Index, GetPlayerInvItemNum(Index, Player(Index).Trading(i).InvNum), 1)
                                    Exit For
                                End If
                            End If

                        Next
                    Next

                    For i = 1 To MAX_PLAYER_TRADES
                        For x = 1 To MAX_INV

                            If GetPlayerInvItemNum(Index, x) < 1 Then
                                If Player(N).Trading(i).InvNum > 0 Then
                                    Call GiveItem(Index, GetPlayerInvItemNum(N, Player(N).Trading(i).InvNum), 1)
                                    Call TakeItem(N, GetPlayerInvItemNum(N, Player(N).Trading(i).InvNum), 1)
                                    Exit For
                                End If
                            End If

                        Next
                    Next

                    Call PlayerMsg(N, "Trade Successfull!", BrightGreen)
                    Call PlayerMsg(Index, "Trade Successfull!", BrightGreen)
                    Call SendInventory(N)
                    Call SendInventory(Index)
                Else

                    If Player(Index).TradeItemMax2 < Player(Index).TradeItemMax Then
                        Call PlayerMsg(Index, "Your inventory is full!", BrightRed)
                        Call PlayerMsg(N, GetPlayerName(Index) & "'s inventory is full!", BrightRed)
                    End If

                    If Player(N).TradeItemMax2 < Player(N).TradeItemMax Then
                        Call PlayerMsg(N, "Your inventory is full!", BrightRed)
                        Call PlayerMsg(Index, GetPlayerName(N) & "'s inventory is full!", BrightRed)
                    End If
                End If

                Player(Index).TradePlayer = 0
                Player(Index).InTrade = 0
                Player(Index).TradeOk = 0
                Player(N).TradePlayer = 0
                Player(N).InTrade = 0
                Player(N).TradeOk = 0
                Call SendDataTo(Index, "qtrade" & END_CHAR)
                Call SendDataTo(N, "qtrade" & END_CHAR)
            End If

            Exit Sub

        Case "party"
            N = FindPlayer(Parse(1))

            If N = Index Then Exit Sub
            If N > 0 Then
                If GetPlayerAccess(Index) > ADMIN_DEVELOPER Then
                    Call PlayerMsg(Index, "Você não pode entrar em um grupo, você é um Admin!", BrightBlue)
                    Exit Sub
                End If

                If GetPlayerAccess(N) > ADMIN_DEVELOPER Then
                    Call PlayerMsg(Index, "Admins não podem entrar em grupos!", BrightBlue)
                    Exit Sub
                End If

                If Player(N).InParty = 0 Then
                    If Player(Index).PartyID > 0 Then
                        If Party(Player(Index).PartyID).Member(MAX_PARTY_MEMBERS) <> 0 Then
                            Call PlayerMsg(Index, GetPlayerName(N) & " foi convidado para o seu grupo.", Pink)
                            Call PlayerMsg(N, GetPlayerName(Index) & " convidou você para participar de seu grupo.", Pink)
                            Player(N).Invited = Player(Index).PartyID
               
                            Call PartyRequestWindow(N, Index)
                        Else
                            Call PlayerMsg(Index, "Seu grupo está cheio.", Pink)
                        End If

                    Else
                        o = 0
                        i = MAX_PARTIES

                        Do While i > 0

                            If Party(i).Member(1) = 0 Then o = i
                            i = i - 1
                        Loop

                        If o = 0 Then
                            Call PlayerMsg(Index, "Grupo sobrecarregado.", Pink)
                            Exit Sub
                        End If

                        Party(o).Member(1) = Index
                        Player(Index).InParty = YES
                        Player(Index).PartyID = o
                        Player(Index).Invited = 0
                        Call PlayerMsg(Index, "Grupo criado.", Pink)
                        Call PlayerMsg(Index, GetPlayerName(N) & " foi convidado para o seu grupo.", Pink)
                        Call PlayerMsg(N, GetPlayerName(Index) & " convidou você para entrar em seu grupo.", Pink)
                        Player(N).Invited = Player(Index).PartyID
                       
                            Call PartyRequestWindow(N, Index)
                        Call SendDataToMap(MapNum, Packet)
                    End If

                Else
                    Call PlayerMsg(Index, GetPlayerName(N) & " já está em um grupo.", Pink)
                End If

            Else
                Call PlayerMsg(Index, Parse(1) & " não está online.", White)
            End If

            Exit Sub

        Case "joinparty"

            If Player(Index).Invited > 0 Then
                o = 0

                For i = 1 To MAX_PARTY_MEMBERS

                    If Party(Player(Index).Invited).Member(i) = 0 Then
                        If o = 0 Then o = i
                    End If

                Next

                If o <> 0 Then
                    Player(Index).PartyID = Player(Index).Invited
                    Player(Index).InParty = YES
                    Player(Index).Invited = 0
                    Party(Player(Index).PartyID).Member(o) = Index

                    For i = 1 To MAX_PARTY_MEMBERS

                        If Party(Player(Index).PartyID).Member(i) <> 0 And Party(Player(Index).PartyID).Member(i) <> Index Then
                            Call PlayerMsg(Party(Player(Index).PartyID).Member(i), GetPlayerName(Index) & " entrou no seu grupo!", Pink)
                        End If

                    Next

                    Call PlayerMsg(Index, "Você entrou no grupo!", Pink)
                Else
                    Call PlayerMsg(Index, "O grupo está cheio!", Pink)
                End If

            Else
                Call PlayerMsg(Index, "Você não foi convidado para nenhum grupo!", Pink)
            End If

            Exit Sub

        Case "leaveparty"

            If Player(Index).PartyID > 0 Then
                Call PlayerMsg(Index, "Você saiu do grupo.", Pink)
                N = 0

                For i = 1 To MAX_PARTY_MEMBERS

                    If Party(Player(Index).PartyID).Member(i) = Index Then N = i
                Next

                For i = N To MAX_PARTY_MEMBERS - 1
                    Party(Player(Index).PartyID).Member(i) = Party(Player(Index).PartyID).Member(i + 1)
                Next

                Party(Player(Index).PartyID).Member(MAX_PARTY_MEMBERS) = 0
                N = 0

                For i = 1 To MAX_PARTY_MEMBERS

                    If Party(Player(Index).PartyID).Member(i) <> 0 And Party(Player(Index).PartyID).Member(i) <> Index Then
                        N = N + 1
                        Call PlayerMsg(Party(Player(Index).PartyID).Member(i), GetPlayerName(Index) & " saiu do grupo.", Pink)
                    End If

                Next

                If N < 2 Then
                If Party(Player(Index).PartyID).Member(1) <> 0 Then
                    Call PlayerMsg(Party(Player(Index).PartyID).Member(1), "O grupo debandou.", Pink)
                    Player(Party(Player(Index).PartyID).Member(1)).InParty = NO
                    Player(Party(Player(Index).PartyID).Member(1)).PartyID = 0
                    Party(Player(Index).PartyID).Member(1) = 0
                End If
                End If

                Player(Index).InParty = 0
                Player(Index).PartyID = 0
            Else

                If Player(Index).Invited <> 0 Then

                    For i = 1 To MAX_PARTY_MEMBERS

                        If Party(Player(Index).Invited).Member(i) <> 0 And Party(Player(Index).Invited).Member(i) <> Index Then Call PlayerMsg(Party(Player(Index).Invited).Member(i), GetPlayerName(Index) & " rejeitou o convite.", Pink)
                    Next

                    Player(Index).Invited = 0
                    Call PlayerMsg(Index, "Você rejeitou o convite.", Pink)
                Else
                    Call PlayerMsg(Index, "Você não foi convidado para nenhum grupo!", Pink)
                End If
            End If

            Exit Sub

        Case "partychat"

            If Player(Index).PartyID > 0 Then

                For i = 1 To MAX_PARTY_MEMBERS

                    If Party(Player(Index).PartyID).Member(i) <> 0 Then Call PlayerMsg(Party(Player(Index).PartyID).Member(i), GetPlayerName(Index) & ": " & Parse(1), PartyColor)
                Next

            Else
                Call PlayerMsg(Index, "Você não está em um grupo!", Pink)
            End If

            Exit Sub

        Case "guildchat"

            If GetPlayerGuild(Index) <> vbNullString Then

                For i = 1 To MAX_PLAYERS

                    If GetPlayerGuild(Index) = GetPlayerGuild(i) Then Call PlayerMsg(i, GetPlayerName(Index) & ": " & Parse(1), GuildColor)
                Next

            Else
                Call PlayerMsg(Index, "Você não está em uma guild!", Pink)
            End If

            Exit Sub

        Case "newmain"

            If GetPlayerAccess(Index) >= ADMIN_CREATOR Then
                Dim temp As String

                f = FreeFile
                Open App.Path & "\Scripts\Principal.txt" For Input As #f
                temp = Input$(LOF(f), f)
                Close #f
                f = FreeFile
                Open App.Path & "\Scripts\Backup.txt" For Output As #f
                Print #f, temp
                Close #f
                f = FreeFile
                Open App.Path & "\Scripts\Principal.txt" For Output As #f
                Print #f, Parse(1)
                Close #f

                If SCRIPTING = 1 Then
                    Set MyScript = Nothing
                    Set clsScriptCommands = Nothing
                    Set MyScript = New clsSadScript
                    Set clsScriptCommands = New clsCommands
                    MyScript.ReadInCode App.Path & "\Scripts\Principal.txt", "Scripts\Principal.txt", MyScript.SControl, False
                    MyScript.SControl.AddObject "ScriptHardCode", clsScriptCommands, True
                    Call TextAdd(frmServer.txtText(0), "Scripts atualizados.", True)
                    Call PlayerMsg(Index, "Scripts atualizados.", White)
                End If

                Call AddLog(GetPlayerName(Index) & " atualizou os scripts.", ADMIN_LOG)
            End If

            Exit Sub

        Case "requestbackupmain"

            If GetPlayerAccess(Index) >= ADMIN_CREATOR Then
                Dim nothertemp As String

                f = FreeFile
                Open App.Path & "\Scripts\Backup.txt" For Input As #f
                nothertemp = Input$(LOF(f), f)
                Close #f
                f = FreeFile
                Open App.Path & "\Scripts\Principal.txt" For Output As #f
                Print #f, nothertemp
                Close #f

                If SCRIPTING = 1 Then
                    Set MyScript = Nothing
                    Set clsScriptCommands = Nothing
                    Set MyScript = New clsSadScript
                    Set clsScriptCommands = New clsCommands
                    MyScript.ReadInCode App.Path & "\Scripts\Principal.txt", "Scripts\Principal.txt", MyScript.SControl, False
                    MyScript.SControl.AddObject "ScriptHardCode", clsScriptCommands, True
                    Call TextAdd(frmServer.txtText(0), "Scripts atualizados.", True)
                    Call PlayerMsg(Index, "Scripts atualizados.", White)
                End If

                Call AddLog(GetPlayerName(Index) & " usou o script de backup.", ADMIN_LOG)
            End If

            Exit Sub

        Case "spells"
            Call SendPlayerSpells(Index)
            Exit Sub

        Case "cast"
            N = Val(Parse(1))
            Call CastSpell(Index, N)
            Exit Sub

        Case "requestlocation"

            If GetPlayerAccess(Index) < ADMIN_MAPPER Then
                Call HackingAttempt(Index, "Admin Cloning")
                Exit Sub
            End If

            Call PlayerMsg(Index, "Mapa: " & GetPlayerMap(Index) & ", X: " & GetPlayerX(Index) & ", Y: " & GetPlayerY(Index), Pink)
            Exit Sub

        Case "refresh"
            Call PlayerWarp(Index, GetPlayerMap(Index), GetPlayerX(Index), GetPlayerY(Index), False)
            Call PlayerMsg(Index, "Mapa atualizado.", White)
            Exit Sub

        Case "killpet"
        If Player(Index).Pet.Alive = YES Then
            Player(Index).Pet.Alive = NO
            Player(Index).Pet.Sprite = 0
            Call TakeFromGrid(Player(Index).Pet.Map, Player(Index).Pet.x, Player(Index).Pet.y)
            Packet = "PETDATA" & SEP_CHAR
            Packet = Packet & Index & SEP_CHAR
            Packet = Packet & Player(Index).Pet.Alive & SEP_CHAR
            Packet = Packet & Player(Index).Pet.Map & SEP_CHAR
            Packet = Packet & Player(Index).Pet.x & SEP_CHAR
            Packet = Packet & Player(Index).Pet.y & SEP_CHAR
            Packet = Packet & Player(Index).Pet.Dir & SEP_CHAR
            Packet = Packet & Player(Index).Pet.Sprite & SEP_CHAR
            Packet = Packet & Player(Index).Pet.HP & SEP_CHAR
            Packet = Packet & Player(Index).Pet.Level * 5 & SEP_CHAR
            Packet = Packet & END_CHAR
            Call SendDataToMap(GetPlayerMap(Index), Packet)
        Else
            Call PlayerMsg(Index, "Você não tem um mascote vivo.", Red)
        End If
            Exit Sub

        Case "petmoveselect"
            x = Val(Parse(1))
            y = Val(Parse(2))
            Player(Index).Pet.MapToGo = GetPlayerMap(Index)
            Player(Index).Pet.Target = 0
            Player(Index).Pet.XToGo = x
            Player(Index).Pet.YToGo = y
            Player(Index).Pet.AttackTimer = GetTickCount

            For i = 1 To MAX_PLAYERS

                If IsPlaying(i) Then
                    If GetPlayerMap(i) = Player(Index).Pet.Map Then
                        If GetPlayerX(i) = x And GetPlayerY(i) = y Then
                            Player(Index).Pet.TargetType = TARGET_TYPE_PLAYER
                            Player(Index).Pet.Target = i
                            Call PlayerMsg(Index, "O alvo do seu mascote agora é " & Trim$(GetPlayerName(i)) & ".", Yellow)
                            Exit Sub
                        End If
                    End If
                End If

            Next

            For i = 1 To MAX_MAP_NPCS

                If MapNpc(Player(Index).Pet.Map, i).num > 0 Then
                    If MapNpc(Player(Index).Pet.Map, i).x = x And MapNpc(Player(Index).Pet.Map, i).y = y Then
                        Player(Index).Pet.TargetType = TARGET_TYPE_NPC
                        Player(Index).Pet.Target = i
                        Call PlayerMsg(Index, "O alvo do seu mascote agora é " & Trim$(Npc(MapNpc(Player(Index).Pet.Map, i).num).Name) & ".", Yellow)
                        Exit Sub
                    End If
                End If

            Next

            Exit Sub

        Case "buysprite"

            ' Check if player stepped on sprite changing tile
            If Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Type <> TILE_TYPE_SPRITE_CHANGE Then
                Call PlayerMsg(Index, "You need to be on a sprite tile to buy it!", BrightRed)
                Exit Sub
            End If

            If Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data2 = 0 Then
                Call SetPlayerSprite(Index, Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data1)
                Call SendDataToMap(GetPlayerMap(Index), "checksprite" & SEP_CHAR & Index & SEP_CHAR & GetPlayerSprite(Index) & END_CHAR)
                Exit Sub
            End If

            For i = 1 To MAX_INV

                If GetPlayerInvItemNum(Index, i) = Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data2 Then
                    If Item(GetPlayerInvItemNum(Index, i)).Type = ITEM_TYPE_CURRENCY Then
                        If GetPlayerInvItemValue(Index, i) >= Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data3 Then
                            Call SetPlayerInvItemValue(Index, i, GetPlayerInvItemValue(Index, i) - Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data3)

                            If GetPlayerInvItemValue(Index, i) <= 0 Then
                                Call SetPlayerInvItemNum(Index, i, 0)
                            End If

                            Call PlayerMsg(Index, "You have bought a new sprite!", BrightGreen)
                            Call SetPlayerSprite(Index, Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data1)
                            Call SendDataToMap(GetPlayerMap(Index), "checksprite" & SEP_CHAR & Index & SEP_CHAR & GetPlayerSprite(Index) & END_CHAR)
                            Call SendInventory(Index)
                        End If

                    Else

                        If GetPlayerWeaponSlot(Index) <> i And GetPlayerArmorSlot(Index) <> i And GetPlayerShieldSlot(Index) <> i And GetPlayerHelmetSlot(Index) <> i Then
                            Call SetPlayerInvItemNum(Index, i, 0)
                            Call PlayerMsg(Index, "You have bought a new sprite!", BrightGreen)
                            Call SetPlayerSprite(Index, Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data1)
                            Call SendDataToMap(GetPlayerMap(Index), "checksprite" & SEP_CHAR & Index & SEP_CHAR & GetPlayerSprite(Index) & END_CHAR)
                            Call SendInventory(Index)
                        End If
                    End If

                    If GetPlayerWeaponSlot(Index) <> i And GetPlayerArmorSlot(Index) <> i And GetPlayerShieldSlot(Index) <> i And GetPlayerHelmetSlot(Index) <> i Then
                        Exit Sub
                    End If
                End If

            Next

            Call PlayerMsg(Index, "You dont have enough to buy this sprite!", BrightRed)
            Exit Sub

        Case "checkcommands"
            s = Parse(1)

            If SCRIPTING = 1 Then
                PutVar App.Path & "\Scripts\Comandos.ini", "TEMP", "Text" & Index, Trim$(s)
                MyScript.ExecuteStatement "Scripts\Principal.txt", "Commands " & Index
            Else
                Call PlayerMsg(Index, "Thats not a valid command!", 12)
            End If

            Exit Sub

        Case "prompt"

            If SCRIPTING = 1 Then
                MyScript.ExecuteStatement "Scripts\Principal.txt", "PlayerPrompt " & Index & "," & Val(Parse(1)) & "," & Val(Parse(2))
            End If

            Exit Sub

        Case "requesteditarrow"

            If GetPlayerAccess(Index) < ADMIN_DEVELOPER Then
                Call HackingAttempt(Index, "Admin Cloning")
                Exit Sub
            End If

            Call SendDataTo(Index, "ARROWEDITOR" & END_CHAR)
            Exit Sub

        Case "editarrow"

            If GetPlayerAccess(Index) < ADMIN_DEVELOPER Then
                Call HackingAttempt(Index, "Admin Cloning")
                Exit Sub
            End If

            N = Val(Parse(1))

            If N < 0 Or N > MAX_ARROWS Then
                Call HackingAttempt(Index, "Índice de flecha inválido")
                Exit Sub
            End If

            Call AddLog(GetPlayerName(Index) & " editando flecha #" & N & ".", ADMIN_LOG)
            Call SendEditArrowTo(Index, N)
            Exit Sub

        Case "savearrow"

            If GetPlayerAccess(Index) < ADMIN_DEVELOPER Then
                Call HackingAttempt(Index, "Admin Cloning")
                Exit Sub
            End If

            N = Val(Parse(1))

            If N < 0 Or N > MAX_ITEMS Then
                Call HackingAttempt(Index, "Índice de flecha inválido")
                Exit Sub
            End If

            Arrows(N).Name = Parse(2)
            Arrows(N).Pic = Val(Parse(3))
            Arrows(N).Range = Val(Parse(4))
            Call SendUpdateArrowToAll(N)
            Call SaveArrow(N)
            Call AddLog(GetPlayerName(Index) & " salvou Flecha #" & N & ".", ADMIN_LOG)
            Exit Sub

        Case "checkarrows"
            N = Arrows(Val(Parse(1))).Pic
            Call SendDataToMap(GetPlayerMap(Index), "checkarrows" & SEP_CHAR & Index & SEP_CHAR & N & END_CHAR)
            Exit Sub

        Case "speechscript"

            If SCRIPTING = 1 Then
                MyScript.ExecuteStatement "Scripts\Principal.txt", "ScriptedTile " & Index & "," & Parse(1)
            End If

            Exit Sub

        Case "requesteditspeech"

            ' Prevent hacking
            If GetPlayerAccess(Index) < ADMIN_DEVELOPER Then
                Call HackingAttempt(Index, "Admin Cloning")
                Exit Sub
            End If

            Call SendDataTo(Index, "SPEECHEDITOR" & END_CHAR)
            Exit Sub

        Case "editspeech"

            If GetPlayerAccess(Index) < ADMIN_DEVELOPER Then
                Call HackingAttempt(Index, "Admin Cloning")
                Exit Sub
            End If

            N = Val(Parse(1))

            If N < 0 Or N > MAX_SPEECH Then
                Call HackingAttempt(Index, "Invalid Speech Index")
                Exit Sub
            End If

            Call AddLog(GetPlayerName(Index) & " editing speech #" & N & ".", ADMIN_LOG)
            Call SendEditSpeechTo(Index, N)
            Exit Sub

        Case "savespeech"

            If GetPlayerAccess(Index) < ADMIN_DEVELOPER Then
                Call HackingAttempt(Index, "Admin Cloning")
                Exit Sub
            End If

            N = Val(Parse(1))

            If N < 0 Or N > MAX_SPEECH Then
                Call HackingAttempt(Index, "Invalid Speech Index")
                Exit Sub
            End If

            Speech(N).Name = Parse(2)
            Dim p As Long

            p = 3

            For i = 0 To MAX_SPEECH_OPTIONS
                Speech(N).num(i).Exit = Val(Parse(p))
                Speech(N).num(i).text = Parse(p + 1)
                Speech(N).num(i).SaidBy = Val(Parse(p + 2))
                Speech(N).num(i).Respond = Val(Parse(p + 3))
                Speech(N).num(i).Script = Val(Parse(p + 4))
                p = p + 5

                For o = 1 To 3
                    Speech(N).num(i).Responces(o).Exit = Val(Parse(p))
                    Speech(N).num(i).Responces(o).GoTo = Val(Parse(p + 1))
                    Speech(N).num(i).Responces(o).text = Parse(p + 2)
                    p = p + 3
                Next
            Next

            Call SaveSpeech(N)
            Call SendSpeechToAll(N)
            Call AddLog(GetPlayerName(Index) & " salvou Fala #" & N & ".", ADMIN_LOG)
            Exit Sub

        Case "needspeech"
            Call SendSpeechTo(Index, Val(Parse(1)))
            Exit Sub

        Case "requesteditemoticon"

            ' Prevent hacking
            If GetPlayerAccess(Index) < ADMIN_DEVELOPER Then
                Call HackingAttempt(Index, "Admin Cloning")
                Exit Sub
            End If

            Call SendDataTo(Index, "EMOTICONEDITOR" & END_CHAR)
            Exit Sub

        Case "editemoticon"

            If GetPlayerAccess(Index) < ADMIN_DEVELOPER Then
                Call HackingAttempt(Index, "Admin Cloning")
                Exit Sub
            End If

            N = Val(Parse(1))

            If N < 0 Or N > MAX_EMOTICONS Then
                Call HackingAttempt(Index, "Invalid Emoticon Index")
                Exit Sub
            End If

            Call AddLog(GetPlayerName(Index) & " editing emoticon #" & N & ".", ADMIN_LOG)
            Call SendEditEmoticonTo(Index, N)
            Exit Sub

        Case "saveemoticon"

            If GetPlayerAccess(Index) < ADMIN_DEVELOPER Then
                Call HackingAttempt(Index, "Admin Cloning")
                Exit Sub
            End If

            N = Val(Parse(1))

            If N < 0 Or N > MAX_EMOTICONS Then
                Call HackingAttempt(Index, "Invalid Emoticon Index")
                Exit Sub
            End If

            Emoticons(N).Type = Val(Parse(2))
            Emoticons(N).Command = Parse(3)
            Emoticons(N).Pic = Val(Parse(4))
            Emoticons(N).sound = Parse(5)
            Call SendUpdateEmoticonToAll(N)
            Call SaveEmoticon(N)
            Call AddLog(GetPlayerName(Index) & " salvou Emoticon #" & N & ".", ADMIN_LOG)
            Exit Sub

        Case "checkemoticons"
            Call SendDataToMap(GetPlayerMap(Index), "checkemoticons" & SEP_CHAR & Index & SEP_CHAR & Emoticons(Val(Parse(1))).Type & SEP_CHAR & Emoticons(Val(Parse(1))).Pic & SEP_CHAR & Emoticons(Val(Parse(1))).sound & END_CHAR)
            Exit Sub

        Case "mapreport"
            Packs = "mapreport" & SEP_CHAR

            For i = 1 To MAX_MAPS
                Packs = Packs & Map(i).Name & SEP_CHAR
            Next

            Packs = Packs & END_CHAR
            Call SendDataTo(Index, Packs)
            Exit Sub

        Case "gmtime"
            GameTime = Val(Parse(1))
            Call SendTimeToAll
            Exit Sub

        Case "weather"
            GameWeather = Val(Parse(1))
            Call SendWeatherToAll
            Exit Sub

        Case "warpto"
            Call PlayerWarp(Index, Val(Parse(1)), GetPlayerX(Index), GetPlayerY(Index))
            Exit Sub

        Case "warptome"
            N = FindPlayer(Parse(1))

            If N > 0 Then
                Call PlayerWarp(N, GetPlayerMap(Index), GetPlayerX(Index), GetPlayerY(Index))
            Else
                Call PlayerMsg(Index, "Player not online!", BrightRed)
            End If

            Exit Sub

        Case "warpplayer"

            If Val(Parse(1)) > MAX_MAPS Or Val(Parse(1)) < 1 Then
                If FindPlayer(Trim$(Parse(1))) <> 0 Then
                    Call PlayerWarp(Index, GetPlayerMap(FindPlayer(Trim$(Parse(1)))), GetPlayerX(FindPlayer(Trim$(Parse(1)))), GetPlayerY(FindPlayer(Trim$(Parse(1)))))

                    If Player(Index).Pet.Alive = YES Then
                        Player(Index).Pet.Map = GetPlayerMap(Index)
                        Player(Index).Pet.x = GetPlayerX(Index)
                        Player(Index).Pet.y = GetPlayerY(Index)
                        Player(Index).Pet.MapToGo = -1
                        Player(Index).Pet.XToGo = -1
                        Player(Index).Pet.YToGo = -1
                    End If

                Else
                    Call PlayerMsg(Index, "'" & Parse(1) & "' não é um mapa ou um jogador online válido!", BrightRed)
                    Exit Sub
                End If

            Else
                Call PlayerWarp(Index, Val(Parse(1)), GetPlayerX(Index), GetPlayerY(Index))

                If Player(Index).Pet.Alive = YES Then
                    Player(Index).Pet.Map = GetPlayerMap(Index)
                    Player(Index).Pet.x = GetPlayerX(Index)
                    Player(Index).Pet.y = GetPlayerY(Index)
                    Player(Index).Pet.MapToGo = -1
                    Player(Index).Pet.XToGo = -1
                    Player(Index).Pet.YToGo = -1
                End If
            End If

            Exit Sub

        Case "arrowhit"
            N = Val(Parse(1))
            z = Val(Parse(2))
            x = Val(Parse(3))
            y = Val(Parse(4))

            If N = TARGET_TYPE_PLAYER Then

                ' Make sure we dont try to attack ourselves
                If z <> Index Then

                    ' Can we attack the player?
                    If CanAttackPlayerWithArrow(Index, z) Then
                        If Not CanPlayerBlockHit(z) Then

                            ' Get the damage we can do
                            If Not CanPlayerCriticalHit(Index) Then
                                Damage = GetPlayerDamage(Index) - GetPlayerProtection(z) + (Rnd * 5) - 2
                                Call SendDataToMap(GetPlayerMap(Index), "sound" & SEP_CHAR & "Ataque" & Int(Rnd * 2) + 1 & END_CHAR)
                            Else
                                N = GetPlayerDamage(Index)
                                Damage = N + Int(Rnd * Int(N / 2)) + 1 - GetPlayerProtection(z) + (Rnd * 5) - 2
                                Call BattleMsg(Index, "Você sente uma enorme quantidade de energia em seu arco!", BrightCyan, 0)
                                Call BattleMsg(z, GetPlayerName(Index) & " atira com incrível precisão!", BrightCyan, 1)

                                'Call PlayerMsg(index, "You feel a surge of energy upon shooting!", BrightCyan)
                                'Call PlayerMsg(z, GetPlayerName(index) & " shoots with amazing accuracy!", BrightCyan)
                                Call SendDataToMap(GetPlayerMap(Index), "sound" & SEP_CHAR & "Ataque3" & END_CHAR)
                            End If

                            If Damage > 0 Then
                                Call AttackPlayer(Index, z, Damage)
                            Else
                                Call BattleMsg(Index, "Sua ataque não fez nada.", BrightRed, 0)
                                Call BattleMsg(z, "Ataque de " & GetPlayerName(z) & " não fez nada.", BrightRed, 1)
                                Call SendDataToMap(GetPlayerMap(Index), "sound" & SEP_CHAR & "Errou" & END_CHAR)
                            End If

                        Else
                            Call BattleMsg(Index, GetPlayerName(z) & " blocked your hit!", BrightCyan, 0)
                            Call BattleMsg(z, "You blocked " & GetPlayerName(Index) & "'s hit!", BrightCyan, 1)

                            'Call PlayerMsg(index, GetPlayerName(z) & "'s " & Trim$(Item(GetPlayerInvItemNum(z, GetPlayerShieldSlot(z))).Name) & " has blocked your hit!", BrightCyan)
                            'Call PlayerMsg(z, "Your " & Trim$(Item(GetPlayerInvItemNum(z, GetPlayerShieldSlot(z))).Name) & " has blocked " & GetPlayerName(index) & "'s hit!", BrightCyan)
                            Call SendDataToMap(GetPlayerMap(Index), "sound" & SEP_CHAR & "Errou" & END_CHAR)
                        End If

                        Exit Sub
                    End If
                End If

            ElseIf N = TARGET_TYPE_NPC Then

                ' Can we attack the npc?
                If CanAttackNpcWithArrow(Index, z) Then

                    ' Get the damage we can do
                    If Not CanPlayerCriticalHit(Index) Then
                        Damage = GetPlayerDamage(Index) - Int(Npc(MapNpc(GetPlayerMap(Index), z).num).DEF / 2) + (Rnd * 5) - 2
                        Call SendDataToMap(GetPlayerMap(Index), "sound" & SEP_CHAR & "Ataque" & Int(Rnd * 2) + 1 & END_CHAR)
                    Else
                        N = GetPlayerDamage(Index)
                        Damage = N + Int(Rnd * Int(N / 2)) + 1 - Int(Npc(MapNpc(GetPlayerMap(Index), z).num).DEF / 2) + (Rnd * 5) - 2
                        Call BattleMsg(Index, "Você sente uma enorme quantidade de energia em seu corpo!", BrightCyan, 0)

                        'Call PlayerMsg(index, "You feel a surge of energy upon swinging!", BrightCyan)
                        Call SendDataToMap(GetPlayerMap(Index), "sound" & SEP_CHAR & "Ataque3" & END_CHAR)
                    End If

                    If Damage > 0 Then
                        Call AttackNpc(Index, z, Damage)
                        Call SendDataTo(Index, "BLITPLAYERDMG" & SEP_CHAR & Damage & SEP_CHAR & z & END_CHAR)
                    Else
                        Call BattleMsg(Index, "Seu ataque não fez nada.", BrightRed, 0)
                        Call SendDataToMap(GetPlayerMap(Index), "sound" & SEP_CHAR & "Errou" & END_CHAR)
                    End If

                    Exit Sub
                End If
            End If

            Exit Sub
    End Select

    Call HackingAttempt(Index, "Invalid packet. (" & Parse(0) & ")")
End Sub
gtalux
gtalux
Membro Junior
Membro Junior

Mensagens : 76

http://www.dbz-fusion.tk

Ir para o topo Ir para baixo

[AJUDA] Procedure too large ( Processo muito grande ) Empty Re: [AJUDA] Procedure too large ( Processo muito grande )

Mensagem por Vicardosof Sex 28 Jan 2011, 18:20

Em vez de processar o packet no handledata, manda para um outro sub.
Vicardosof
Vicardosof
Membro
Membro

Mensagens : 200

Ir para o topo Ir para baixo

[AJUDA] Procedure too large ( Processo muito grande ) Empty Re: [AJUDA] Procedure too large ( Processo muito grande )

Mensagem por gtalux Sex 28 Jan 2011, 18:21

Como assim, faz ai Very Happy
gtalux
gtalux
Membro Junior
Membro Junior

Mensagens : 76

http://www.dbz-fusion.tk

Ir para o topo Ir para baixo

[AJUDA] Procedure too large ( Processo muito grande ) Empty Re: [AJUDA] Procedure too large ( Processo muito grande )

Mensagem por Vicardosof Sex 28 Jan 2011, 18:39

Um exemplo:
Em vez de:
Código:
        Case "updatetradeinv"
            N = Val(Parse(1))
            Player(Index).Trading(N).InvNum = Val(Parse(2))
            Player(Index).Trading(N).InvName = Trim$(Parse(3))

            If Player(Index).Trading(N).InvNum = 0 Then
                Player(Index).TradeItemMax = Player(Index).TradeItemMax - 1
                Player(Index).TradeOk = 0
                Player(N).TradeOk = 0
                Call SendDataTo(Index, "trading" & SEP_CHAR & 0 & END_CHAR)
                Call SendDataTo(N, "trading" & SEP_CHAR & 0 & END_CHAR)
            Else
                Player(Index).TradeItemMax = Player(Index).TradeItemMax + 1
            End If

coloca:

Código:
Case "updatetradeinv"
    Call Packet_UpdateInv(index, parse)
    exit sub

e adiciona esse sub

Código:
sub Packet_UpdateInv(byval Index as long, byref Parse() as string)
dim N as long
N = Val(Parse(1))
Player(Index).Trading(N).InvNum = Val(Parse(2))
Player(Index).Trading(N).InvName = Trim$(Parse(3))

If Player(Index).Trading(N).InvNum = 0 Then
    Player(Index).TradeItemMax = Player(Index).TradeItemMax - 1
    Player(Index).TradeOk = 0
    Player(N).TradeOk = 0
    Call SendDataTo(Index, "trading" & SEP_CHAR & 0 & END_CHAR)
    Call SendDataTo(N, "trading" & SEP_CHAR & 0 & END_CHAR)
Else
    Player(Index).TradeItemMax = Player(Index).TradeItemMax + 1
End If
End Sub

Entendeu?


Última edição por Vicardosof em Sáb 29 Jan 2011, 10:39, editado 2 vez(es)
Vicardosof
Vicardosof
Membro
Membro

Mensagens : 200

Ir para o topo Ir para baixo

[AJUDA] Procedure too large ( Processo muito grande ) Empty Re: [AJUDA] Procedure too large ( Processo muito grande )

Mensagem por gtalux Sex 28 Jan 2011, 18:52

Entendi mais deu erro ._. Arrow HELP
[AJUDA] Procedure too large ( Processo muito grande ) ERRO%20AFFF

http://files.sherov.webnode.com.br/200000028-10de811d86/ERRO%20AFFF.png


Última edição por gtalux em Sex 28 Jan 2011, 18:54, editado 1 vez(es)
gtalux
gtalux
Membro Junior
Membro Junior

Mensagens : 76

http://www.dbz-fusion.tk

Ir para o topo Ir para baixo

[AJUDA] Procedure too large ( Processo muito grande ) Empty Re: [AJUDA] Procedure too large ( Processo muito grande )

Mensagem por Vicardosof Sex 28 Jan 2011, 18:54

Tem milhões de erros aí! Não tem end select, end sub...
Vicardosof
Vicardosof
Membro
Membro

Mensagens : 200

Ir para o topo Ir para baixo

[AJUDA] Procedure too large ( Processo muito grande ) Empty Re: [AJUDA] Procedure too large ( Processo muito grande )

Mensagem por gtalux Sex 28 Jan 2011, 18:56

Po meu aqui é pra ajudar olha seus créditos pro meu
nèh quando terminar de me ajuda eu te dou Crédito
por cada Post '-'
gtalux
gtalux
Membro Junior
Membro Junior

Mensagens : 76

http://www.dbz-fusion.tk

Ir para o topo Ir para baixo

[AJUDA] Procedure too large ( Processo muito grande ) Empty Re: [AJUDA] Procedure too large ( Processo muito grande )

Mensagem por Vicardosof Sex 28 Jan 2011, 19:16

Assunto Resolvido
Vicardosof
Vicardosof
Membro
Membro

Mensagens : 200

Ir para o topo Ir para baixo

[AJUDA] Procedure too large ( Processo muito grande ) Empty Re: [AJUDA] Procedure too large ( Processo muito grande )

Mensagem por maykel Sex 28 Jan 2011, 21:14

tem que fazer as declarações nesta nova sub também!
pois ela usava as variaveis da handle data..
maykel
maykel
Membro
Membro

Mensagens : 133

Ir para o topo Ir para baixo

[AJUDA] Procedure too large ( Processo muito grande ) Empty Re: [AJUDA] Procedure too large ( Processo muito grande )

Mensagem por St4rk Sáb 29 Jan 2011, 08:24

Por que "Parse" ? não deveria ter o número da array do parse(1) ??

E se você que fazer um Troço grande, divida, casa packet para cada transformação...
St4rk
St4rk
Membro de Honra
Membro de Honra

Mensagens : 2251

http://mylittledev.wordpress.com

Ir para o topo Ir para baixo

[AJUDA] Procedure too large ( Processo muito grande ) Empty Re: [AJUDA] Procedure too large ( Processo muito grande )

Mensagem por Vicardosof Sáb 29 Jan 2011, 08:30

Não observaste direito.
No Sub eu declarei Byref Parse() as string
Isso significa que eu quero um array completo de variávels ali. Então no handledata posso colocar somente parse, que vai enviar tudo para o sub. E no sub posso colocar Parse(1). Isso é muito útil Smile
Vicardosof
Vicardosof
Membro
Membro

Mensagens : 200

Ir para o topo Ir para baixo

[AJUDA] Procedure too large ( Processo muito grande ) Empty Re: [AJUDA] Procedure too large ( Processo muito grande )

Mensagem por St4rk Sáb 29 Jan 2011, 09:10

LOL
St4rk
St4rk
Membro de Honra
Membro de Honra

Mensagens : 2251

http://mylittledev.wordpress.com

Ir para o topo Ir para baixo

[AJUDA] Procedure too large ( Processo muito grande ) Empty Re: [AJUDA] Procedure too large ( Processo muito grande )

Mensagem por maykel Sáb 29 Jan 2011, 09:38

Realmente, é muito util, não sabia disto!
+ 1
maykel
maykel
Membro
Membro

Mensagens : 133

Ir para o topo Ir para baixo

[AJUDA] Procedure too large ( Processo muito grande ) Empty Re: [AJUDA] Procedure too large ( Processo muito grande )

Mensagem por SkyZero Sáb 29 Jan 2011, 11:15

Simples é porque a handledata fica no servidor " eu acho não me lembro " Servidor é myindex , não ? acho que é isso .
SkyZero
SkyZero
Membro Veterano
Membro Veterano

Mensagens : 890

Ir para o topo Ir para baixo

[AJUDA] Procedure too large ( Processo muito grande ) Empty Re: [AJUDA] Procedure too large ( Processo muito grande )

Mensagem por Vicardosof Sáb 29 Jan 2011, 11:22

Cliente é myindex. Servidor é index.
Vicardosof
Vicardosof
Membro
Membro

Mensagens : 200

Ir para o topo Ir para baixo

[AJUDA] Procedure too large ( Processo muito grande ) Empty Re: [AJUDA] Procedure too large ( Processo muito grande )

Mensagem por gtalux Sáb 29 Jan 2011, 18:10

Ei manows da paket agora quando eu aperto na minha trans ssj4 '-' . invalid Paket (TSSJ4)), ajudem ai ._______.
gtalux
gtalux
Membro Junior
Membro Junior

Mensagens : 76

http://www.dbz-fusion.tk

Ir para o topo Ir para baixo

[AJUDA] Procedure too large ( Processo muito grande ) Empty Re: [AJUDA] Procedure too large ( Processo muito grande )

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


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