Todo-Argentum
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

[Aporte]Sistema de anti-pisada

2 participantes

Ir abajo

[Aporte]Sistema de anti-pisada Empty [Aporte]Sistema de anti-pisada

Mensaje por Shermie80 Jue Ago 22, 2013 8:41 pm

Código:
''TELEFRAG
    If MapData(UserList(UserIndex).Pos.Map, UserList(UserIndex).Pos.X, UserList(UserIndex).Pos.Y).UserIndex <> 0 Then
        ''si estaba en comercio seguro...
        If UserList(MapData(UserList(UserIndex).Pos.Map, UserList(UserIndex).Pos.X, UserList(UserIndex).Pos.Y).UserIndex).ComUsu.DestUsu > 0 Then
            If UserList(UserList(MapData(UserList(UserIndex).Pos.Map, UserList(UserIndex).Pos.X, UserList(UserIndex).Pos.Y).UserIndex).ComUsu.DestUsu).flags.UserLogged Then
                Call FinComerciarUsu(UserList(MapData(UserList(UserIndex).Pos.Map, UserList(UserIndex).Pos.X, UserList(UserIndex).Pos.Y).UserIndex).ComUsu.DestUsu)
                Call SendData(SendTarget.ToIndex, UserList(MapData(UserList(UserIndex).Pos.Map, UserList(UserIndex).Pos.X, UserList(UserIndex).Pos.Y).UserIndex).ComUsu.DestUsu, 0, "||{46}" & FONTTYPE_TALK)
            End If
            If UserList(MapData(UserList(UserIndex).Pos.Map, UserList(UserIndex).Pos.X, UserList(UserIndex).Pos.Y).UserIndex).flags.UserLogged Then
                Call FinComerciarUsu(MapData(UserList(UserIndex).Pos.Map, UserList(UserIndex).Pos.X, UserList(UserIndex).Pos.Y).UserIndex)
                Call SendData(SendTarget.ToIndex, MapData(UserList(UserIndex).Pos.Map, UserList(UserIndex).Pos.X, UserList(UserIndex).Pos.Y).UserIndex, 0, "ERRAlguien se ha conectado donde te encontrabas, por favor reconéctate...")
            End If
        End If
        Call CloseSocket(MapData(UserList(UserIndex).Pos.Map, UserList(UserIndex).Pos.X, UserList(UserIndex).Pos.Y).UserIndex)
    End If
Y lo Reemplazan por

Código:

    If MapData(UserList(UserIndex).Pos.Map, UserList(UserIndex).Pos.X, UserList(UserIndex).Pos.Y).UserIndex <> 0 Then
        UserList(UserIndex).Pos = DamePos(UserList(UserIndex).Pos)
    End If
Y en algun modulo ponen

Código:
Public Function DamePos(ByRef original_Pos As WorldPos) As WorldPos
 
'
' @ Devuelve un tile libre.
 
Dim iRange      As Long
Dim iX          As Long
Dim iY          As Long
Dim now_Index  As Integer
Dim no_User    As Boolean
Dim not_Pos    As WorldPos
 
not_Pos = original_Pos
DamePos.Map = original_Pos.Map
 
With original_Pos
    For iRange = 1 To 3
        For iX = (.X - iRange) To (.X + iRange)
            For iY = (.Y - iRange) To (.Y + iRange)
               
                now_Index = MapData(.Map, iX, iY).UserIndex
               
                'No hay n usuario
                If (now_Index = 0) Then
                    DamePos.X = iX
                    DamePos.Y = iY
                    no_User = True
                End If
               
                'No hay usuario, revisa npc
                If (no_User = True) Then
                    now_Index = MapData(.Map, iX, iY).NpcIndex
                 
                    'No hay un npc.
                    If (now_Index = 0) Then
                      DamePos.X = iX
                      DamePos.Y = iY
                      Exit Function
                    Else
                      no_User = False
                    End If
                End If
 
            Next iY
        Next iX
    Next iRange
End With
 
'Llega acá, devuelve la posición original.
DamePos = not_Pos
 
End Function
Fuente:
Shermie80
Shermie80

[Aporte]Sistema de anti-pisada ZdImiA6

CoverAOStaff
Aportes : 55
Mensajes : 139
Puntos : 822
Edad : 28

https://todo-argentum.foroargentina.net

Volver arriba Ir abajo

[Aporte]Sistema de anti-pisada Empty Re: [Aporte]Sistema de anti-pisada

Mensaje por Felipiño Jue Ago 29, 2013 10:18 pm

Muy bueno exelente este aporte ;D
Felipiño
Felipiño

[Aporte]Sistema de anti-pisada 5O26YPx

Mensajes : 25
Puntos : 27

Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.