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.

Erro de script? no VB?

5 participantes

Ir para baixo

Erro de script? no VB? Empty Erro de script? no VB?

Mensagem por dbzaero Dom 21 Nov 2010, 16:17

Pessoal, ocorreu um erro com o jogo ONLINE ( ja no ar ) , o que acham que poderia ser?
Isso foi no servidor. E o servidor caiu.



- Erro: Grid(OldMap).Loc(oldx, oldy).Blocked = False
Isso foi o que deu no DEBUG

- E esse outro não peguei código, mas lembro que tem algo haver com "GetPlayerName" ( sei que tem varias coisas ligadas a isso , mas vocês poderiam vêr, o que poderia derrubar o servidor que fosse relacionado a isso ? )
Não teve SS, portanto creio que só os mais experientes possam ajudar, pois não achei nada do tipo....

Preciso urgentemente, obrigado por estarem ajudando no meu servidor.
Agradeço à todos do MMORPGBR.
Se puderem ajudar por favor preciso saber!

Obrigado
dbzaero
dbzaero
Membro Junior
Membro Junior

Mensagens : 57

Ir para o topo Ir para baixo

Erro de script? no VB? Empty Re: Erro de script? no VB?

Mensagem por SkyZero Dom 21 Nov 2010, 16:28

Vou falar a mesma coisa que disse no outro tópic seu .

Sem fotos ou Alguma coisa que mostre ou indentifique o erro Não é possível saber o que está acontecendo , quando der o erro aperta a tecla do teclado Print Screen depois abra o paint ou qualquer editor de imagem de 1 Crtl + V salve o arquivo e poste em 1 site de fotos como o imagehack.us e poste a foto aqui quem sabe assim alguem pode te ajudar .
SkyZero
SkyZero
Membro Veterano
Membro Veterano

Mensagens : 890

Ir para o topo Ir para baixo

Erro de script? no VB? Empty Re: Erro de script? no VB?

Mensagem por dbzaero Dom 21 Nov 2010, 16:49

Certo... vou tentar pegar da próxima. Mas com isso realmente não da pra ver nada?

@fórum
Quando acontecer novamente eu posto a SS aqui e dou UP, pode ser?

Agradeço pela atenção.
Abraços
dbzaero
dbzaero
Membro Junior
Membro Junior

Mensagens : 57

Ir para o topo Ir para baixo

Erro de script? no VB? Empty Re: Erro de script? no VB?

Mensagem por SkyZero Dom 21 Nov 2010, 16:55

Com SS Ajuda muito , tire SS com o Erro e depois a linha que fica selecionada , faça isso no VB que a linha aparecerá .

@Fórum sim pode ser .
SkyZero
SkyZero
Membro Veterano
Membro Veterano

Mensagens : 890

Ir para o topo Ir para baixo

Erro de script? no VB? Empty Re: Erro de script? no VB?

Mensagem por dbzaero Dom 21 Nov 2010, 21:45

Respostas para as perguntas feitas pelo SkyZero ( obrigado pela atenção que está dando ) :


Quando da erro que linha fica selecionada ?


2 Screens Shots em 2 lugares .
http://www.dbzaero.com/screen1.gif
http://www.dbzaero.com/screen2.gif



O Erro ocorre quando você fais oque ?

O erro está sendo causado por algum player, intencionalmente. Esse player entrou no server, e sempre que ele entra ( sempre variando conta e ip ) . Acontece isso. O servidor cai, é algo causado pelo player externo.


O Erro aconteceu quantas vezes ?

Em média umas 3, 4 vezes. Foram as vezes que ele logava, sempre dizia algo, ou zuava e dava isso.


-------------------------------------------------------------

Quanto ao GETPLAYERNAME, pessoal, vocês que mechem com isso há tempo.
Será que não há nada relacionado ao nome, ou algo similar, que possa vir a da erro no servidor? Se tem, o que fazer para solucionar ?

Exemplo: Quando o player cria um nome com algum caracter que passa na hora, mas da erro no servidor.

Eu pensei comigo aqui, que talvez, isso pudesse ser solucionado se, na criação dos chars, fosse permitido todos os caracteres especiais. Será que tem relação com isso ?
Por favor, gostaria dessas informações, pois meu servidor está praticamente dependendo disso para ficar estável.
Já estou pagando Host... e isso está derrubando o server,ou seja... está sendo conflitante isso para os players. Vocês que são donos de projetos também, se coloquem em minha situação e tentem entender minha necessidade quanto ao caso.

Muito obrigado a todos do MMORPG, principalmente a quem me solucionar isso.

Abraços pessoal.
dbzaero
dbzaero
Membro Junior
Membro Junior

Mensagens : 57

Ir para o topo Ir para baixo

Erro de script? no VB? Empty Re: Erro de script? no VB?

Mensagem por SkyZero Dom 21 Nov 2010, 21:55

isso só acontece com 1 player especifico ?

Qual Versão da EEB você usa ? 2.6 ?

@Edit

Olhei aqui os códigos estão iguais só que aqui não da erro .
Provável que seja problema do player o ip dele algo sincera mente não sei

Lucas Lôpo teve o mesmo problema acho que ele pode Ajudar , eu sincera mente não sei que fazer
SkyZero
SkyZero
Membro Veterano
Membro Veterano

Mensagens : 890

Ir para o topo Ir para baixo

Erro de script? no VB? Empty Re: Erro de script? no VB?

Mensagem por Lucas Lôpo Seg 22 Nov 2010, 05:45

Tive esse problema a muito tempo atras , mas não resolvi "EUACHO"
mas esse problema é o seguinte no meu caso ele dava quando duas pessoas saiam do game ao mesmo tempo.
Lucas Lôpo
Lucas Lôpo
Membro Veterano
Membro Veterano

Mensagens : 833

Ir para o topo Ir para baixo

Erro de script? no VB? Empty Re: Erro de script? no VB?

Mensagem por dbzaero Seg 22 Nov 2010, 09:20


Skyzero: Muito obrigado pela disponibilidade de nos ajudar ! Agradeço sua atenção!... sempre que precisar estaremos dispostos a ajudar em algo!
______________________

Lucas Lopô: Obrigado tbm pela informação, mais realmente tu não sabe o que poderia fazer?

Olha, Pessoal, quanto ao problema do GetPlayerName, alguem tem idéia do que seja? será que tem relação com simbolos ou algo assim?


Agradeço a atenção e aguardo respostas! Obrigado!
dbzaero
dbzaero
Membro Junior
Membro Junior

Mensagens : 57

Ir para o topo Ir para baixo

Erro de script? no VB? Empty Re: Erro de script? no VB?

Mensagem por Lucas Roberto Seg 22 Nov 2010, 10:38

Oo

esse erro e bem simples voce fez o sistema de "Servidor Estavel" Erro ou esta imcompleto Oo
Lucas Roberto
Lucas Roberto
Membro Veterano
Membro Veterano

Mensagens : 1794

http://universogamesmmo.forumeiros.com/forum

Ir para o topo Ir para baixo

Erro de script? no VB? Empty Re: Erro de script? no VB?

Mensagem por dbzaero Seg 22 Nov 2010, 11:50

Como assim? poderia me explicar melhor? ...

Desde ja agradeço!

...
dbzaero
dbzaero
Membro Junior
Membro Junior

Mensagens : 57

Ir para o topo Ir para baixo

Erro de script? no VB? Empty Re: Erro de script? no VB?

Mensagem por SkyZero Seg 22 Nov 2010, 12:11

Vamos procure por Modtypes procure isso:

Código:
Function GetPlayerName(ByVal Index As Long) As String
de Um enter e Adicione isso:

Código:
On Error Resume Next
Procure isso no modGameLogic:
Código:
Case ITEM_TYPE_ARMOR

                    If InvNum = GetPlayerArmorSlot(Index) Then
                        Call SetPlayerArmorSlot(Index, 0)
                        Call SendWornEquipment(Index)
                    End If

                    MapItem(GetPlayerMap(Index), i).Dur = GetPlayerInvItemDur(Index, InvNum)

                Case ITEM_TYPE_WEAPON

                    If InvNum = GetPlayerWeaponSlot(Index) Then
                        Call SetPlayerWeaponSlot(Index, 0)
                        Call SendWornEquipment(Index)
                    End If

                    MapItem(GetPlayerMap(Index), i).Dur = GetPlayerInvItemDur(Index, InvNum)

                Case ITEM_TYPE_HELMET

                    If InvNum = GetPlayerHelmetSlot(Index) Then
                        Call SetPlayerHelmetSlot(Index, 0)
                        Call SendWornEquipment(Index)
                    End If

                    MapItem(GetPlayerMap(Index), i).Dur = GetPlayerInvItemDur(Index, InvNum)

                Case ITEM_TYPE_SHIELD

                    If InvNum = GetPlayerShieldSlot(Index) Then
                        Call SetPlayerShieldSlot(Index, 0)
                        Call SendWornEquipment(Index)
                    End If

                    MapItem(GetPlayerMap(Index), i).Dur = GetPlayerInvItemDur(Index, InvNum)
            End Select

            MapItem(GetPlayerMap(Index), i).num = GetPlayerInvItemNum(Index, InvNum)
            MapItem(GetPlayerMap(Index), i).x = GetPlayerX(Index)
            MapItem(GetPlayerMap(Index), i).y = GetPlayerY(Index)

            If Item(GetPlayerInvItemNum(Index, InvNum)).Type = ITEM_TYPE_CURRENCY Then

                ' Checar se há mais e então dropar
                If Amount >= GetPlayerInvItemValue(Index, InvNum) Then
                    MapItem(GetPlayerMap(Index), i).Value = GetPlayerInvItemValue(Index, InvNum)
                    Call MapMsg(GetPlayerMap(Index), GetPlayerName(Index) & " deixou " & GetPlayerInvItemValue(Index, InvNum) & " " & Trim$(Item(GetPlayerInvItemNum(Index, InvNum)).Name) & ".", Yellow)
                    Call SetPlayerInvItemNum(Index, InvNum, 0)
                    Call SetPlayerInvItemValue(Index, InvNum, 0)
                    Call SetPlayerInvItemDur(Index, InvNum, 0)
                Else
                    MapItem(GetPlayerMap(Index), i).Value = Amount
                    Call MapMsg(GetPlayerMap(Index), GetPlayerName(Index) & " deixou " & Amount & " " & Trim$(Item(GetPlayerInvItemNum(Index, InvNum)).Name) & ".", Yellow)
                    Call SetPlayerInvItemValue(Index, InvNum, GetPlayerInvItemValue(Index, InvNum) - Amount)
                End If

            Else

                ' Não é um objeto, então é fácil
                MapItem(GetPlayerMap(Index), i).Value = 0

                If Item(GetPlayerInvItemNum(Index, InvNum)).Type >= ITEM_TYPE_WEAPON And Item(GetPlayerInvItemNum(Index, InvNum)).Type <= ITEM_TYPE_SHIELD Then
                    If Item(GetPlayerInvItemNum(Index, InvNum)).Data1 <= -1 Then
                        Call MapMsg(GetPlayerMap(Index), GetPlayerName(Index) & " deixou um(a) " & Trim$(Item(GetPlayerInvItemNum(Index, InvNum)).Name) & " - Ind.", Yellow)
                    Else

                        If Item(GetPlayerInvItemNum(Index, InvNum)).Data1 > 0 Then
                            Call MapMsg(GetPlayerMap(Index), GetPlayerName(Index) & " deixou um(a) " & Trim$(Item(GetPlayerInvItemNum(Index, InvNum)).Name) & " - " & GetPlayerInvItemDur(Index, InvNum) & "/" & Item(GetPlayerInvItemNum(Index, InvNum)).Data1 & ".", Yellow)
                        Else
                            Call MapMsg(GetPlayerMap(Index), GetPlayerName(Index) & " deixou um(a) " & Trim$(Item(GetPlayerInvItemNum(Index, InvNum)).Name) & " - " & GetPlayerInvItemDur(Index, InvNum) & "/" & Item(GetPlayerInvItemNum(Index, InvNum)).Data1 * -1 & ".", Yellow)
                        End If
                    End If

                Else
                    Call MapMsg(GetPlayerMap(Index), GetPlayerName(Index) & " deixou um(a) " & Trim$(Item(GetPlayerInvItemNum(Index, InvNum)).Name) & ".", Yellow)
                End If

                Call SetPlayerInvItemNum(Index, InvNum, 0)
                Call SetPlayerInvItemValue(Index, InvNum, 0)
                Call SetPlayerInvItemDur(Index, InvNum, 0)
            End If
E Substituia toudo por isso:
Código:
Case ITEM_TYPE_WEAPON

                    If InvNum = GetPlayerWeaponSlot(Index) Then
                        Call SetPlayerWeaponSlot(Index, 0)
                        Call SendWornEquipment(Index)
                    End If
                    On Error Resume Next
                    MapItem(GetPlayerMap(Index), i).Dur = GetPlayerInvItemDur(Index, InvNum)

                Case ITEM_TYPE_HELMET

                    If InvNum = GetPlayerHelmetSlot(Index) Then
                        Call SetPlayerHelmetSlot(Index, 0)
                        Call SendWornEquipment(Index)
                    End If
                    On Error Resume Next
                    MapItem(GetPlayerMap(Index), i).Dur = GetPlayerInvItemDur(Index, InvNum)

                Case ITEM_TYPE_SHIELD

                    If InvNum = GetPlayerShieldSlot(Index) Then
                        Call SetPlayerShieldSlot(Index, 0)
                        Call SendWornEquipment(Index)
                    End If
                    On Error Resume Next
                    MapItem(GetPlayerMap(Index), i).Dur = GetPlayerInvItemDur(Index, InvNum)
            End Select
            MapItem(GetPlayerMap(Index), i).num = GetPlayerInvItemNum(Index, InvNum)
            MapItem(GetPlayerMap(Index), i).x = GetPlayerX(Index)
            MapItem(GetPlayerMap(Index), i).y = GetPlayerY(Index)

            If Item(GetPlayerInvItemNum(Index, InvNum)).Type = ITEM_TYPE_CURRENCY Then
On Error Resume Next
                ' Check if its more then they have and if so drop it all
                If Amount >= GetPlayerInvItemValue(Index, InvNum) Then
                    MapItem(GetPlayerMap(Index), i).Value = GetPlayerInvItemValue(Index, InvNum)
                    Call MapMsg(GetPlayerMap(Index), GetPlayerName(Index) & " drops " & GetPlayerInvItemValue(Index, InvNum) & " " & Trim$(Item(GetPlayerInvItemNum(Index, InvNum)).Name) & ".", Yellow)
                    Call SetPlayerInvItemNum(Index, InvNum, 0)
                    Call SetPlayerInvItemValue(Index, InvNum, 0)
                    Call SetPlayerInvItemDur(Index, InvNum, 0)
                Else
                On Error Resume Next
                    MapItem(GetPlayerMap(Index), i).Value = Amount
                    Call MapMsg(GetPlayerMap(Index), GetPlayerName(Index) & " drops " & Amount & " " & Trim$(Item(GetPlayerInvItemNum(Index, InvNum)).Name) & ".", Yellow)
                    Call SetPlayerInvItemValue(Index, InvNum, GetPlayerInvItemValue(Index, InvNum) - Amount)
                End If
            Else

                ' Its not a currency object so this is easy
                On Error Resume Next
                MapItem(GetPlayerMap(Index), i).Value = 0

                If Item(GetPlayerInvItemNum(Index, InvNum)).Type >= ITEM_TYPE_WEAPON And Item(GetPlayerInvItemNum(Index, InvNum)).Type <= ITEM_TYPE_SHIELD Then
                    If Item(GetPlayerInvItemNum(Index, InvNum)).Data1 <= -1 Then
                        Call MapMsg(GetPlayerMap(Index), GetPlayerName(Index) & " drops a " & Trim$(Item(GetPlayerInvItemNum(Index, InvNum)).Name) & " - Ind.", Yellow)
                    Else
On Error Resume Next
                        If Item(GetPlayerInvItemNum(Index, InvNum)).Data1 > 0 Then
                            Call MapMsg(GetPlayerMap(Index), GetPlayerName(Index) & " drops a " & Trim$(Item(GetPlayerInvItemNum(Index, InvNum)).Name) & " - " & GetPlayerInvItemDur(Index, InvNum) & "/" & Item(GetPlayerInvItemNum(Index, InvNum)).Data1 & ".", Yellow)
                        Else
                            Call MapMsg(GetPlayerMap(Index), GetPlayerName(Index) & " drops a " & Trim$(Item(GetPlayerInvItemNum(Index, InvNum)).Name) & " - " & GetPlayerInvItemDur(Index, InvNum) & "/" & Item(GetPlayerInvItemNum(Index, InvNum)).Data1 * -1 & ".", Yellow)
                        End If
                    End If
                Else
                On Error Resume Next
                    Call MapMsg(GetPlayerMap(Index), GetPlayerName(Index) & " drops a " & Trim$(Item(GetPlayerInvItemNum(Index, InvNum)).Name) & ".", Yellow)
                End If
                Call SetPlayerInvItemNum(Index, InvNum, 0)
                Call SetPlayerInvItemValue(Index, InvNum, 0)
                Call SetPlayerInvItemDur(Index, InvNum, 0)
            End If
Procure aghora por isso:
Código:
Sub PlayerMapGetItem(ByVal Index As Long)
    Dim i As Long
    Dim N As Long
    Dim MapNum As Long
    Dim Msg As String

    If IsPlaying(Index) = False Then
        Exit Sub
    End If
de um enter e Adicione isso:
Código:
On Error Resume Next

procure aghora por isso:
Código:
If Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Type = TILE_TYPE_KILL Then

Cima disso adicione:
Código:
On Error Resume Next
Procure por isso:
Código:
Sub IncomingData(ByVal Index As Long, ByVal DataLength As Long)
    Dim Buffer As String
    Dim Packet As String
    Dim top As String * 3
    Dim Start As Long

    If Index > 0 Then
        frmServer.Socket(Index).GetData Buffer, vbString, DataLength

        If Buffer = "top" Then
            top = STR(TotalOnlinePlayers)
            Call SendDataTo(Index, top)
            Call CloseSocket(Index)
        End If

        Player(Index).Buffer = Player(Index).Buffer & Buffer
        Start = InStr(Player(Index).Buffer, END_CHAR)

        Do While Start > 0
            Packet = Mid$(Player(Index).Buffer, 1, Start - 1)
            Player(Index).Buffer = Mid$(Player(Index).Buffer, Start + 1, Len(Player(Index).Buffer))
            Player(Index).DataPackets = Player(Index).DataPackets + 1
            Start = InStr(Player(Index).Buffer, END_CHAR)

            If Len(Packet) > 0 Then
e Abaixo adione:
Código:
On Error Resume Next


Procure isso:
Código:
Sub SendDataTo(ByVal Index As Long, ByVal Data As String)

    If IsConnected(Index) Then


de um enter e Adione isso:
Código:
On Error Resume Next
Procure isso:
Código:
Function GetPlayerNextLevel(ByVal Index As Long) As Long
    GetPlayerNextLevel = Experience(GetPlayerLevel(Index))
End Function

e Mude para asim:
Código:
Function GetPlayerNextLevel(ByVal Index As Long) As Long
On Error Resume Next
    GetPlayerNextLevel = Experience(GetPlayerLevel(Index))
End Function
procure isso:
Código:
Sub SetPlayerX(ByVal Index As Long, ByVal x As Long)
    Player(Index).Char(Player(Index).CharNum).x = x
End Sub

e mude para asim:
Código:
Sub SetPlayerX(ByVal Index As Long, ByVal x As Long)
On Error Resume Next
    Player(Index).Char(Player(Index).CharNum).x = x
End Sub

procure isso:
Código:
Sub SetPlayerY(ByVal Index As Long, ByVal y As Long)
    Player(Index).Char(Player(Index).CharNum).y = y
End Sub

e deixe Asim:
Código:
Sub SetPlayerY(ByVal Index As Long, ByVal y As Long)
On Error Resume Next
    Player(Index).Char(Player(Index).CharNum).y = y
End Sub

procure por isso no sub
Function GetPlayerNextLevel(ByVal Index As Long) As Long
GetPlayerNextLevel = Experience(GetPlayerLevel(Index))
End Function

e Substituia tudo por isso:
Código:
Function GetPlayerNextLevel(ByVal Index As Long) As Long
On Error GoTo Erro_no_level
    GetPlayerNextLevel = Experience(GetPlayerLevel(Index))
Erro_no_level:
    If Err.Number = 9 Then
    Resume Next
    End If
End Function

procure isso:
Código:
Sub AddToGrid(ByVal NewMap, _
  ByVal NewX, _
  ByVal NewY)
    Grid(NewMap).Loc(NewX, NewY).Blocked = True
End Sub

e Substituia por isso:
Código:
Sub AddToGrid(ByVal NewMap, _
  ByVal NewX, _
  ByVal NewY)
  On Error GoTo erro_no_grid
    Grid(NewMap).Loc(NewX, NewY).Blocked = True
erro_no_grid:
    If Err.Number = 9 Then
    Resume Next
    End If
End Sub


procure isso:
Código:
' Check if they have enough MP
    If GetPlayerMP(Index) < Spell(SpellNum).MPCost Then
        Call BattleMsg(Index, "Sem mana para usar a magia!", BrightRed, 0)
        Exit Sub
    End If
e Substiuia toudo por isso:

Código:
 ' Check if they have enough MP
    On Error GoTo Erro_no_mp
    If GetPlayerMP(Index) < Spell(SpellNum).MPCost Then
        Call BattleMsg(Index, "Not enough mana!", BrightRed, 0)
        Exit Sub
    End If
Erro_no_mp:
    If Err.Number = 9 Then
    Resume Next
    End If
Aghora procure:

Código:
Function GetSpellReqLevel(ByVal SpellNum As Long)
    GetSpellReqLevel = Spell(SpellNum).LevelReq ' - Int(GetClassMAGI(GetPlayerClass(index)) / 4)
End Function


E Subtituia toudo por isso:
Código:
Function GetSpellReqLevel(ByVal SpellNum As Long)
On Error GoTo erro_spell
    GetSpellReqLevel = Spell(SpellNum).LevelReq ' - Int(GetClassMAGI(GetPlayerClass(index)) / 4)
erro_spell:
    If Err.Number = 9 Then
    Resume Next
    End If
End Function



Aghora procure isso:

Código:
 ' Spawn the item before we set the num or we'll get a different free map item slot
            Call SpawnItemSlot(i, MapItem(GetPlayerMap(Index), i).num, Amount, MapItem(GetPlayerMap(Index), i).Dur, GetPlayerMap(Index), GetPlayerX(Index), GetPlayerY(Index))
        Else
            Call PlayerMsg(Index, "Já há muitos itens no chão.", BrightRed)
        End If
    End If

End Sub


e substiuia e deixe asim:

Código:
 ' Spawn the item before we set the num or we'll get a different free map item slot
          On Error GoTo erro_slot
            Call SpawnItemSlot(i, MapItem(GetPlayerMap(Index), i).num, Amount, MapItem(GetPlayerMap(Index), i).Dur, GetPlayerMap(Index), GetPlayerX(Index), GetPlayerY(Index))
        Else
            Call PlayerMsg(Index, "To many items already on the ground.", BrightRed)
        End If
    End If
erro_slot:
    If Err.Number = 9 Then
    Resume Next
    End If
End Sub

procure isso:

Código:
 ' Checar para ver se podemos move-la para outro mapa
        If Map(GetPlayerMap(Index)).Up > 0 And Dir = DIR_UP Then
            Call PlayerWarp(Index, Map(GetPlayerMap(Index)).Up, GetPlayerX(Index), MAX_MAPY)
            Moved = YES
        End If

        If Map(GetPlayerMap(Index)).Down > 0 And Dir = DIR_DOWN Then
            Call PlayerWarp(Index, Map(GetPlayerMap(Index)).Down, GetPlayerX(Index), 0)
            Moved = YES
        End If

        If Map(GetPlayerMap(Index)).Left > 0 And Dir = DIR_LEFT Then
            Call PlayerWarp(Index, Map(GetPlayerMap(Index)).Left, MAX_MAPX, GetPlayerY(Index))
            Moved = YES
        End If

        If Map(GetPlayerMap(Index)).Right > 0 And Dir = DIR_RIGHT Then
            Call PlayerWarp(Index, Map(GetPlayerMap(Index)).Right, 0, GetPlayerY(Index))
            Moved = YES
        End If
    End If


e Substituia toudo por isso:
Código:
 ' Check to see if we can move them to the another map
        On Error GoTo Erro_na_direcao
        If Map(GetPlayerMap(Index)).Up > 0 And Dir = DIR_UP Then
            Call PlayerWarp(Index, Map(GetPlayerMap(Index)).Up, GetPlayerX(Index), MAX_MAPY)
            Moved = YES
        End If
On Error GoTo Erro_na_direcao
        If Map(GetPlayerMap(Index)).Down > 0 And Dir = DIR_DOWN Then
            Call PlayerWarp(Index, Map(GetPlayerMap(Index)).Down, GetPlayerX(Index), 0)
            Moved = YES
        End If
        On Error GoTo Erro_na_direcao
        If Map(GetPlayerMap(Index)).Left > 0 And Dir = DIR_LEFT Then
            Call PlayerWarp(Index, Map(GetPlayerMap(Index)).Left, MAX_MAPX, GetPlayerY(Index))
            Moved = YES
        End If
Erro_na_direcao:
        If Err.Number = 9 Then
        Resume Next
        End If
       
On Error GoTo Erro_na_direcao
        If Map(GetPlayerMap(Index)).Right > 0 And Dir = DIR_RIGHT Then
            Call PlayerWarp(Index, Map(GetPlayerMap(Index)).Right, 0, GetPlayerY(Index))
            Moved = YES
        End If
    End If
procure isso:

Código:
 ' Checar se o jogador pisou nas tiles de mudança de sprite
    If Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Type = TILE_TYPE_SPRITE_CHANGE Then
        If GetPlayerSprite(Index) = Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data1 Then
            Call PlayerMsg(Index, "Você já usa essa sprite!", BrightRed)
            Exit Sub
        Else

            If Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data2 = 0 Then
                Call SendDataTo(Index, "spritechange" & SEP_CHAR & 0 & END_CHAR)
            Else

                If Item(Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data2).Type = ITEM_TYPE_CURRENCY Then
                    Call PlayerMsg(Index, "Essa sprite irá custar " & Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data3 & " " & Trim$(Item(Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data2).Name) & "!", Yellow)
                Else
                    Call PlayerMsg(Index, "Essa sprite irá custar um(a) " & Trim$(Item(Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data2).Name) & "!", Yellow)
                End If

                Call SendDataTo(Index, "spritechange" & SEP_CHAR & 1 & END_CHAR)
            End If
        End If
    End If
e deixe asim substituia tudo:

Código:
' Check if player stepped on sprite changing tile
    On Error GoTo Erro_no_sprite
    If Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Type = TILE_TYPE_SPRITE_CHANGE Then
        If GetPlayerSprite(Index) = Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data1 Then
            Call PlayerMsg(Index, "You already have this sprite!", BrightRed)
            Exit Sub
        Else
On Error GoTo Erro_no_sprite
            If Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data2 = 0 Then
                Call SendDataTo(Index, "spritechange" & SEP_CHAR & 0 & SEP_CHAR & END_CHAR)
            Else
On Error GoTo Erro_no_sprite
                If Item(Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data2).Type = ITEM_TYPE_CURRENCY Then
                    Call PlayerMsg(Index, "This sprite will cost you " & Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data3 & " " & Trim$(Item(Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data2).Name) & "!", Yellow)
                Else
                    Call PlayerMsg(Index, "This sprite will cost you a " & Trim$(Item(Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data2).Name) & "!", Yellow)
                End If
                Call SendDataTo(Index, "spritechange" & SEP_CHAR & 1 & SEP_CHAR & END_CHAR)
            End If
        End If
    End If
Erro_no_sprite:
    If Err.Number = 9 Then
    Resume Next
    End If


Procure isso:
Código:
Sub TakeFromGrid(ByVal OldMap, _
  ByVal oldx, _
  ByVal oldy)
    Grid(OldMap).Loc(oldx, oldy).Blocked = False

    If Map(OldMap).Tile(oldx, oldy).Type = TILE_TYPE_BLOCKED Then Grid(OldMap).Loc(oldx, oldy).Blocked = True
End Sub


Substituia toudo por isso:

Código:
Sub TakeFromGrid(ByVal OldMap, _
  ByVal oldx, _
  ByVal oldy)
  On Error GoTo erro_grid
    Grid(OldMap).Loc(oldx, oldy).Blocked = False

    If Map(OldMap).Tile(oldx, oldy).Type = TILE_TYPE_BLOCKED Then Grid(OldMap).Loc(oldx, oldy).Blocked = True
erro_grid:
If Err.Number = 9 Then
Resume Next
End If
End Sub

Procure isso:
Código:
Sub UpdateGrid(ByVal OldMap, _

e Substituia por isso:
Código:
Sub UpdateGrid(ByVal OldMap, _
  ByVal oldx, _
  ByVal oldy, _
  ByVal NewMap, _
  ByVal NewX, _
  ByVal NewY)
    Grid(OldMap).Loc(oldx, oldy).Blocked = False
    On Error GoTo erro_grid
    Grid(NewMap).Loc(NewX, NewY).Blocked = True

    If Map(OldMap).Tile(oldx, oldy).Type = TILE_TYPE_BLOCKED Then Grid(OldMap).Loc(oldx, oldy).Blocked = True
erro_grid:
If Err.Number = 9 Then
Resume Next
End If
End Sub

procure isso:
Código:
Case "swapitems"

e Substituia tudo por isso:

Código:
 Case "swapitems"
            N = Player(Index).TradePlayer

            If Player(Index).TradeOk = 0 Then
                Player(Index).TradeOk = 1
                Call SendDataTo(N, "trading" & SEP_CHAR & 1 & SEP_CHAR & END_CHAR)
            ElseIf Player(Index).TradeOk = 1 Then
                Player(Index).TradeOk = 0
                Call SendDataTo(N, "trading" & SEP_CHAR & 0 & SEP_CHAR & END_CHAR)
            End If
On Error GoTo errotrade
            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" & SEP_CHAR & END_CHAR)
                Call SendDataTo(N, "qtrade" & SEP_CHAR & END_CHAR)
            End If
errotrade:
            If Err.Number = 9 Then
            Resume Next
            End If
            Exit Sub

Procure isso:
Código:
Case "leaveparty"

e Substituia tudo por isso:
Código:
Case "leaveparty"

            If Player(Index).PartyID > 0 Then
                Call PlayerMsg(Index, "You have left the party.", 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) & " has left the party.", Pink)
                    End If
                Next

                If N < 2 Then
                    Call PlayerMsg(Party(Player(Index).PartyID).Member(1), "The party has disbanded.", Pink)
                    On Error GoTo erro_party
                    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
                Player(Index).InParty = NO
                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(Index, GetPlayerName(Index) & " has declined the invitation.", Pink)
                    Next
                    Player(Index).Invited = 0
                    Call PlayerMsg(Index, "You have declined the invitation.", Pink)
                Else
                    Call PlayerMsg(Index, "You have not been invited into a party!", Pink)
                End If
            End If
erro_party:
            If Err.Number = 9 Then
            Resume Next
            End If
            Exit Sub
procure isso:
Código:
Function GetBootMap(ByVal Index As Long) As Long
    GetBootMap = Map(GetPlayerMap(Index)).BootMap
End Function

e Substituia isso por:
Código:
Function GetBootMap(ByVal Index As Long) As Long
On Error GoTo Erro_no_mapa
    GetBootMap = Map(GetPlayerMap(Index)).BootMap
Erro_no_mapa:
    If Err.Number = 9 Then
    Resume Next
    End If
End Function

Isso Irá resolver todos seus problemas

~Créditos : SkyZero
~Autor : Batista
~Fonte : Prodev
SkyZero
SkyZero
Membro Veterano
Membro Veterano

Mensagens : 890

Ir para o topo Ir para baixo

Erro de script? no VB? Empty Re: Erro de script? no VB?

Mensagem por Lucas Roberto Seg 22 Nov 2010, 13:03

HSAUHSUA POIS UM SISTEMA AKI MAIS
E QUE NEM O GERAÇÃO POIS ACIMA FAIZ IGUAL O GERAÇÃO ESTA PEDINDO

VOU RESOLVER SEUS PROBLEMAS
Lucas Roberto
Lucas Roberto
Membro Veterano
Membro Veterano

Mensagens : 1794

http://universogamesmmo.forumeiros.com/forum

Ir para o topo Ir para baixo

Erro de script? no VB? Empty Re: Erro de script? no VB?

Mensagem por dbzaero Seg 22 Nov 2010, 15:08

Obrigado, valeu pela atenção Sky

Vou testar e dou algum parecer neste tópico para vocês!

Testando....

Obrigado!
dbzaero
dbzaero
Membro Junior
Membro Junior

Mensagens : 57

Ir para o topo Ir para baixo

Erro de script? no VB? Empty Re: Erro de script? no VB?

Mensagem por dbzaero Seg 22 Nov 2010, 21:56

@Sky

Olha, tipo fiz isso umas 3 vezes e ta dando a mesma coisa, fiz minuciosamente para não errar...

É o seguinte:

Coloquei tudo no lugar certinho, e quando logo no jogo... e quando ando com o personagem uma celula no jogo, ele abre um FORM com tal pergunta:

Você que comprar esse sprite?

Ai aparece duas opções para clicar Sim / não
qualquer uma das duas que clicar não acontece nada.
Gostaria de saber o que isso pode ser?
estranho...

Verifica se o Código está realmente certo, ou onda possa está o erro.
Se possível, testa ele.

@Style
Servidor Estável ? Que sistema é esse? Explica por favor ensinando como fazer?


Agradeço a atenção de todos!
Vlw

--

No final das contas o servidor ainda está com os 2 erros... Erro de script? no VB? 329928
dbzaero
dbzaero
Membro Junior
Membro Junior

Mensagens : 57

Ir para o topo Ir para baixo

Erro de script? no VB? Empty Re: Erro de script? no VB?

Mensagem por SkyZero Seg 22 Nov 2010, 23:31

@Style
Servidor Estável ? Que sistema é esse? Explica por favor ensinando como fazer?
é o códigos que pus agora a pouco no outro post .
É o seguinte:

Coloquei tudo no lugar certinho, e quando logo no jogo... e quando ando com o personagem uma celula no jogo, ele abre um FORM com tal pergunta:
Assim você pode não ter configurado quando clicar no botão , provavelmente isso é via VB de 2 cliques no botão se não tiver nada na sub do botão esse é o causado do erro .

O que você está tentando fazer é 1 sistema de loja Cash por exemplo ?
Se precisar de ajuda me mande seu msn que te ajudo , por que é facilmente de fazelo
SkyZero
SkyZero
Membro Veterano
Membro Veterano

Mensagens : 890

Ir para o topo Ir para baixo

Erro de script? no VB? Empty Re: Erro de script? no VB?

Mensagem por dbzaero Ter 23 Nov 2010, 09:32

Sky

Não é sistema de loja, nem nada.

Simplesmente, o server está caindo devido a esses erros, e no caso, a ajuda seria justamente para parar de cair.

E esse outro post que você falou, é o que?


Mandarei por pm o msn .
Obrigado por estar dando atenção ao caso.
dbzaero
dbzaero
Membro Junior
Membro Junior

Mensagens : 57

Ir para o topo Ir para baixo

Erro de script? no VB? Empty Re: Erro de script? no VB?

Mensagem por Lucas Roberto Ter 23 Nov 2010, 12:33

Antes de Tudo aconselho a fazer o Server estavel

Lucas Lopo> Nada aver que voce falow hsuahsauu
Oo

Bom estão vamos tira esse erro:

Procure por:

Código:
Sub UpdateGrid(ByVal OldMap, _

Mude para:

Código:
Sub UpdateGrid(ByVal OldMap, _
  ByVal oldx, _
  ByVal oldy, _
  ByVal NewMap, _
  ByVal NewX, _
  ByVal NewY)
    Grid(OldMap).Loc(oldx, oldy).Blocked = False
    On Error GoTo erro_grid
    Grid(NewMap).Loc(NewX, NewY).Blocked = True
 
    If Map(OldMap).Tile(oldx, oldy).Type = TILE_TYPE_BLOCKED Then Grid(OldMap).Loc(oldx, oldy).Blocked = True
erro_grid:
If Err.Number = 9 Then
Resume Next
End If
End Sub

Procure por:

Código:
Sub TakeFromGrid(ByVal OldMap, _

Mude para:

Código:
Sub TakeFromGrid(ByVal OldMap, _
  ByVal oldx, _
  ByVal oldy)
  On Error GoTo erro_grid
    Grid(OldMap).Loc(oldx, oldy).Blocked = False
 
    If Map(OldMap).Tile(oldx, oldy).Type = TILE_TYPE_BLOCKED Then Grid(OldMap).Loc(oldx, oldy).Blocked = True
erro_grid:
If Err.Number = 9 Then
Resume Next
End If
End Sub

Bem e achu que isso resolve seu Problema amigo!!!!

Procura por:
Lucas Roberto
Lucas Roberto
Membro Veterano
Membro Veterano

Mensagens : 1794

http://universogamesmmo.forumeiros.com/forum

Ir para o topo Ir para baixo

Erro de script? no VB? Empty Re: Erro de script? no VB?

Mensagem por Éden Rodrigues Ter 23 Nov 2010, 12:40

Ai Lordão, vlw man, vou testar : )'

+ 1 cred pra você e pros demais que estão participando neste tópico : )'

Depois posto o resultado
Éden Rodrigues
Éden Rodrigues
Novato
Novato

Mensagens : 20

http://www.dbzaero.com

Ir para o topo Ir para baixo

Erro de script? no VB? Empty Re: Erro de script? no VB?

Mensagem por Lucas Roberto Ter 23 Nov 2010, 13:01

Bls Vlw pelo Creditos

depois desse sistema voce faiz o do server estavel assim seu Projeto não cai tão facilmente
Lucas Roberto
Lucas Roberto
Membro Veterano
Membro Veterano

Mensagens : 1794

http://universogamesmmo.forumeiros.com/forum

Ir para o topo Ir para baixo

Erro de script? no VB? Empty Re: Erro de script? no VB?

Mensagem por dbzaero Ter 23 Nov 2010, 13:16

Ok... iremos testar tudo.

Obrigado a todos que estão ajudando.
E uma outra coisa...

Tem alguma forma de proteger o servidor de Ataques ?
Por exemplo, algum código que evite WPE, CHEAT ENGINE, ou que mais tiver.
Quero usar todas as formas existentes para evitar até onde der.

Usei tutorial sobre proteção de Cheat Engine, e tem players que estão conseguindo pegar ítens , etc. Ou seja, não sei se isso influencia, mas acho que o servidor está vulnerável ainda.
Digamos, vocês que têm mais experiência, que em algum momento lembra de um server que sofreu ataque, e fez xxxxxxxxx coisa pra resolver, etc.

Gostaria de saber todas as formas possíveis. Até mesmo as formas que não sejam envolvendo o VB, etc.

Por favor, precisamos muito disto também, pois estamos passando por momentos desconfortáveis devido à essa desproteção natural que já vem o Elysium.



Abraços pessoal,
Sou grato a todos que vêm procurando nos ajudar.
Obrigado.
dbzaero
dbzaero
Membro Junior
Membro Junior

Mensagens : 57

Ir para o topo Ir para baixo

Erro de script? no VB? Empty Re: Erro de script? no VB?

Mensagem por Lucas Roberto Ter 23 Nov 2010, 13:32

Tem sim agora esta tudo se encachando

o erro estava dando pois pessoal esta usando Cheat

Isso e bem simples de ser Resolvido

o Fusion feiz um Ant Racker que e o Melhor que vi

Testa ele
Lucas Roberto
Lucas Roberto
Membro Veterano
Membro Veterano

Mensagens : 1794

http://universogamesmmo.forumeiros.com/forum

Ir para o topo Ir para baixo

Erro de script? no VB? Empty Re: Erro de script? no VB?

Mensagem por dbzaero Ter 23 Nov 2010, 13:41

LosT - Style escreveu:Tem sim agora esta tudo se encachando

o erro estava dando pois pessoal esta usando Cheat

Isso e bem simples de ser Resolvido

o Fusion feiz um Ant Racker que e o Melhor que vi

Testa ele


Onde posso encontrar esse Ant Hacker?

Muito obrigado por entender nossas necessidades e está ajudando.
Obrigado novamente.
dbzaero
dbzaero
Membro Junior
Membro Junior

Mensagens : 57

Ir para o topo Ir para baixo

Erro de script? no VB? Empty Re: Erro de script? no VB?

Mensagem por Lucas Roberto Ter 23 Nov 2010, 13:46

Bls.. manow faço que posso para ajudar
alendo mais esse e um Forum de ajuda!!!

Bem vamos ao que intereça
voce em contra na area do Elysium Diamond

na ceção Utilitarios relacionados a Engines

Agora so Procurar

Não esqueça dos Creditos Pliss
Lucas Roberto
Lucas Roberto
Membro Veterano
Membro Veterano

Mensagens : 1794

http://universogamesmmo.forumeiros.com/forum

Ir para o topo Ir para baixo

Erro de script? no VB? Empty Re: Erro de script? no VB?

Mensagem por Lucas Roberto Ter 23 Nov 2010, 14:01

Dúvida/Pedido/Problema Resolvido com sucesso.
Se houver algo mais por favor pedimos que efetue a criação de um novo tópico na área de Suporte para resolução.
Topico Trancado e Movido
Atenciosamente Equipe MMORPGBR.
Lucas Roberto
Lucas Roberto
Membro Veterano
Membro Veterano

Mensagens : 1794

http://universogamesmmo.forumeiros.com/forum

Ir para o topo Ir para baixo

Erro de script? no VB? Empty Re: Erro de script? no VB?

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