Cota de Espinas (Reflect)

Ir abajo

Cota de Espinas (Reflect)

Mensaje por Toyz el 28/3/2016, 6:10 pm

Refleja el x % del daño físico infligido por el atacante.



Agregan estos subs en el Modulo SistemaCombate
Código:

''
' Reflect
Public Sub ReflectNpc(ByVal NPCAgressor As Integer, ByVal IDUserReflect As Integer, ByVal Daño As Integer)

'*************************************************************************
'Autor: G Toyz                                                           *
'Creado: 27/03/2016                                                      *
'Modificaciones: (0)                                                     *
'*************************************************************************

    'Vida que le restamos al npc
    Dim Reflec As Byte
    'Bucle de las mascotas
    Dim J      As Long
 
    With Npclist(NPCAgressor)
    
        If ObjData(REFLECT_OBJ).Reflect > REFLECT_MIN Then
            'Calculo para restar vida.
            Reflec = (Daño * ObjData(REFLECT_OBJ).Reflect) / 100
            'Si tiene la armadura equipada.
            If UserList(IDUserReflect).Invent.ArmourEqpObjIndex = REFLECT_OBJ Then
        
                .Stats.MinHp = .Stats.MinHp - Reflec
                
            End If
            
        End If
        
            'Esto es para matar al npc.
            If .Stats.MinHp <= 0 Then
                    
                For J = 1 To MAXMASCOTAS
            
                    If UserList(IDUserReflect).MascotasIndex(J) > 0 Then
                
                        If Npclist(UserList(IDUserReflect).MascotasIndex(J)).TargetNPC = NPCAgressor Then
                    
                            Npclist(UserList(IDUserReflect).MascotasIndex(J)).TargetNPC = 0
                            Npclist(UserList(IDUserReflect).MascotasIndex(J)).Movement = TipoAI.SigueAmo
                        
                        End If
                    
                    End If
                
                Next J
        
                Call MuereNpc(NPCAgressor, IDUserReflect)
            
            End If
 
    End With

End Sub
''
'Reflect
Public Sub ReflectUser(ByVal UserReflect As Integer, ByVal UserReceiveReflect As Integer, ByVal Daño As Integer)

'*************************************************************************
'Autor: G Toyz                                                           *
'Creado: 28/03/2016                                                      *
'Modificaciones: (0)                                                     *
'*************************************************************************

    'Vida que le restamos al npc
    Dim Reflec As Byte
    'Bucle para las mascotas
    Dim J      As Long
 
    If ObjData(REFLECT_OBJ).Reflect > REFLECT_MIN Then
    
        'Calculo para restar vida.
        Reflec = (Daño * ObjData(REFLECT_OBJ).Reflect) / 100
        
        'Si tiene la armadura equipada.
        If UserList(UserReflect).Invent.ArmourEqpObjIndex = REFLECT_OBJ Then

            UserList(UserReceiveReflect).Stats.MinHp = UserList(UserReceiveReflect).Stats.MinHp - Reflec

        End If

    End If
    
        If UserList(UserReceiveReflect).Stats.MinHp <= 0 Then
        
            If UserList(UserReceiveReflect).flags.AtacablePor <> UserReflect Then

                Call Statistics.StoreFrag(UserReflect, UserReceiveReflect)
                Call ContarMuerte(UserReceiveReflect, UserReflect)
            
            End If

            For J = 1 To MAXMASCOTAS
            
                If .MascotasIndex(J) > 0 Then
                
                    If Npclist(.MascotasIndex(J)).Target = UserReceiveReflect Then
                        Npclist(.MascotasIndex(J)).Target = 0
                        Call FollowAmo(.MascotasIndex(J))
                
                    End If
            
                End If
        
            Next J
        
            Call ActStats(UserReceiveReflec, AtacanteIndex)
            Call UserDie(UserReceiveReflec)
        
        Else
        
            Call WriteUpdateHP(UserReceiveReflec)
        
        End If
    
End Sub

en el Type ObjData
Código:
Reflect
Agregan acá:
Código:

Case eOBJType.otArmadura
                    .Real = val(Leer.GetValue("OBJ" & Object, "Real"))
                    .Caos = val(Leer.GetValue("OBJ" & Object, "Caos"))
                    .LingH = val(Leer.GetValue("OBJ" & Object, "LingH"))
                    .LingP = val(Leer.GetValue("OBJ" & Object, "LingP"))
                    .LingO = val(Leer.GetValue("OBJ" & Object, "LingO"))
                    .SkHerreria = val(Leer.GetValue("OBJ" & Object, "SkHerreria"))
Este:
Código:
                   .Reflect = val(Leer.GetValue("OBJ" & Object, "Reflect"))

En el modulo declaraciones:
Código:

Public Const REFLECT_OBJ AS INTEGER = 1053 'Item
Public Const REFLECT_MIN AS BYTE = 0

Van al Sub UserDañoUser

Y abajo de:

Código:
       UserList(VictimaIndex).Stats.MinHp = UserList(VictimaIndex).Stats.MinHp - Daño

Agregan:

Código:
Call ReflectUser(VictimaIndex, AtacanteIndex, Daño)

Buscan en el NpcDaño:
Código:

        If .flags.Privilegios And PlayerType.User Then _
        .Stats.MinHp = .Stats.MinHp - Daño

Abajo:

Código:
       Call ReflectNpc(NpcIndex, UserIndex, Daño)

Cuando van a datear, tienen que tener si o si en el objtype=3 (Armadura)

El % los castean así:

Reflect=30 'de 1 a 100, sería el %
avatar
Toyz
Administrador
Administrador

¿BANEADO? : No.
Premios :
[1er puesto] Usuario del año 2016
Cantidad de envíos : 5045
Edad : 17
Localización : Global.
Fecha de inscripción : 28/09/2014

Ver perfil de usuario

Volver arriba Ir abajo

Re: Cota de Espinas (Reflect)

Mensaje por BenjaXZ el 30/3/2016, 6:22 am

Sos un moderador y no dejas la fuente de donde sacas los códigos...
fuente: http://www.gs-zone.org/temas/cota-de-espinas-lol-style-reflect.95215/
avatar
BenjaXZ
Nivel 6
Nivel 6

¿BANEADO? : No.
Premios : Ninguno.
Cantidad de envíos : 439
Localización : Dolores
Fecha de inscripción : 29/05/2012

Ver perfil de usuario

Volver arriba Ir abajo

Re: Cota de Espinas (Reflect)

Mensaje por Toyz el 30/3/2016, 5:11 pm


Mi usuario en GS-Zone es: G Toyz.
avatar
Toyz
Administrador
Administrador

¿BANEADO? : No.
Premios :
[1er puesto] Usuario del año 2016
Cantidad de envíos : 5045
Edad : 17
Localización : Global.
Fecha de inscripción : 28/09/2014

Ver perfil de usuario

Volver arriba Ir abajo

Re: Cota de Espinas (Reflect)

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba


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