[Aportes indexados] Ver vida de los usuarios al clickearlos

Estado
Cerrado para nuevas respuestas.

Amraphen

Aprendiz Lvl 6
CÓDIGO PARA EL SERVIDOR 0.11.5

Bien, como lo estan pidiendo por el foro, acá lo dejo, con dos formas, como el de los NPCs:

  1. Se ve la VidaActual/VidaTotal.
  2. Se ve el estado del usuario (herido, malherido, etc...)

Buscamos en el modulo Extra (GameLogic.bas), dentro del Sub LookAtTile, lo siguiente:

Código:
If FoundChar = 1 Then '  ¿Encontro un Usuario?
           
       If UserList(TempCharIndex).flags.AdminInvisible = 0 Or UserList(UserIndex).flags.Privilegios = PlayerType.Dios Then
           
            If UserList(TempCharIndex).DescRM = "" Then
                If EsNewbie(TempCharIndex) Then
                    Stat = " <NEWBIE>"
                End If
               
                If UserList(TempCharIndex).Faccion.ArmadaReal = 1 Then
                    Stat = Stat & " <Ejercito real> " & "<" & TituloReal(TempCharIndex) & ">"
                ElseIf UserList(TempCharIndex).Faccion.FuerzasCaos = 1 Then
                    Stat = Stat & " <Legión oscura> " & "<" & TituloCaos(TempCharIndex) & ">"
                End If
               
                If UserList(TempCharIndex).GuildIndex > 0 Then
                    Stat = Stat & " <" & Guilds(UserList(TempCharIndex).GuildIndex).GuildName & ">"
                End If
               
                If Len(UserList(TempCharIndex).Desc) > 1 Then
                    Stat = "Ves a " & UserList(TempCharIndex).name & Stat & " - " & UserList(TempCharIndex).Desc
                Else
                    Stat = "Ves a " & UserList(TempCharIndex).name & Stat
                End If
               
                If UserList(TempCharIndex).flags.PertAlCons > 0 Then
                    Stat = Stat & " [CONSEJO DE BANDERBILL]" & FONTTYPE_CONSEJOVesA
                ElseIf UserList(TempCharIndex).flags.PertAlConsCaos > 0 Then
                    Stat = Stat & " [CONSEJO DE LAS SOMBRAS]" & FONTTYPE_CONSEJOCAOSVesA
                Else
                    If UserList(TempCharIndex).flags.Privilegios > 0 Then
                        Stat = Stat & " <GAME MASTER> ~0~185~0~1~0"
                    ElseIf Criminal(TempCharIndex) Then
                        Stat = Stat & " <CRIMINAL> ~255~0~0~1~0"
                    Else
                        Stat = Stat & " <CIUDADANO> ~0~0~200~1~0"
                    End If
                End If
            Else
                Stat = UserList(TempCharIndex).DescRM & " " & FONTTYPE_INFOBOLD
            End If
           
            If Len(Stat) > 0 Then _
                Call SendData(SendTarget.ToIndex, UserIndex, 0, "||" & Stat)

            FoundSomething = 1
            UserList(UserIndex).flags.TargetUser = TempCharIndex
            UserList(UserIndex).flags.TargetNPC = 0
            UserList(UserIndex).flags.TargetNpcTipo = eNPCType.Comun
       End If

    End If

Ahora debemos elegir de que forma deseamos visualisar. Para la primer forma, reemplazamos todo eso por lo siguiente:

Código:
If FoundChar = 1 Then '  ¿Encontro un Usuario?
           
       If UserList(TempCharIndex).flags.AdminInvisible = 0 Or UserList(UserIndex).flags.Privilegios = PlayerType.Dios Then
           
            If UserList(TempCharIndex).DescRM = "" Then
                If EsNewbie(TempCharIndex) Then
                    Stat = " <NEWBIE>"
                End If
               
                If UserList(TempCharIndex).Faccion.ArmadaReal = 1 Then
                    Stat = Stat & " <Ejercito real> " & "<" & TituloReal(TempCharIndex) & ">"
                ElseIf UserList(TempCharIndex).Faccion.FuerzasCaos = 1 Then
                    Stat = Stat & " <Legión oscura> " & "<" & TituloCaos(TempCharIndex) & ">"
                End If
               
                If UserList(TempCharIndex).GuildIndex > 0 Then
                    Stat = Stat & " <" & Guilds(UserList(TempCharIndex).GuildIndex).GuildName & ">"
                End If
               
                If Len(UserList(TempCharIndex).Desc) > 1 Then
                    Stat = "Ves a " & UserList(TempCharIndex).name & Stat & " - " & UserList(TempCharIndex).Desc
                Else
                    Stat = "Ves a " & UserList(TempCharIndex).name & Stat
                End If
               
                Stat = Stat & " [" & UserList(TempCharIndex).Stats.MinHP & "/" & UserList(TempCharIndex).Stats.MaxHP & "]"
               
                If UserList(TempCharIndex).flags.PertAlCons > 0 Then
                    Stat = Stat & " [CONSEJO DE BANDERBILL]" & FONTTYPE_CONSEJOVesA
                ElseIf UserList(TempCharIndex).flags.PertAlConsCaos > 0 Then
                    Stat = Stat & " [CONSEJO DE LAS SOMBRAS]" & FONTTYPE_CONSEJOCAOSVesA
                Else
                    If UserList(TempCharIndex).flags.Privilegios > 0 Then
                        Stat = Stat & " <GAME MASTER> ~0~185~0~1~0"
                    ElseIf Criminal(TempCharIndex) Then
                        Stat = Stat & " <CRIMINAL> ~255~0~0~1~0"
                    Else
                        Stat = Stat & " <CIUDADANO> ~0~0~200~1~0"
                    End If
                End If
            Else
                Stat = UserList(TempCharIndex).DescRM & " " & FONTTYPE_INFOBOLD
            End If
           
            If Len(Stat) > 0 Then _
                Call SendData(SendTarget.ToIndex, UserIndex, 0, "||" & Stat)

            FoundSomething = 1
            UserList(UserIndex).flags.TargetUser = TempCharIndex
            UserList(UserIndex).flags.TargetNPC = 0
            UserList(UserIndex).flags.TargetNpcTipo = eNPCType.Comun
       End If

    End If

Para la segunda forma, reemplazamos todo eso por lo siguiente:

Código:
If FoundChar = 1 Then '  ¿Encontro un Usuario?
           
       If UserList(TempCharIndex).flags.AdminInvisible = 0 Or UserList(UserIndex).flags.Privilegios = PlayerType.Dios Then
           
            If UserList(TempCharIndex).DescRM = "" Then
                If EsNewbie(TempCharIndex) Then
                    Stat = " <NEWBIE>"
                End If
               
                If UserList(TempCharIndex).Faccion.ArmadaReal = 1 Then
                    Stat = Stat & " <Ejercito real> " & "<" & TituloReal(TempCharIndex) & ">"
                ElseIf UserList(TempCharIndex).Faccion.FuerzasCaos = 1 Then
                    Stat = Stat & " <Legión oscura> " & "<" & TituloCaos(TempCharIndex) & ">"
                End If
               
                If UserList(TempCharIndex).GuildIndex > 0 Then
                    Stat = Stat & " <" & Guilds(UserList(TempCharIndex).GuildIndex).GuildName & ">"
                End If
               
                If Len(UserList(TempCharIndex).Desc) > 1 Then
                    Stat = "Ves a " & UserList(TempCharIndex).name & Stat & " - " & UserList(TempCharIndex).Desc
                Else
                    Stat = "Ves a " & UserList(TempCharIndex).name & Stat
                End If
               
                If UserList(TempCharIndex).Stats.MinHP < (UserList(TempCharIndex).Stats.MaxHP * 0.05) Then
                    Stat = Stat & " [Agonizando]"
                ElseIf UserList(TempCharIndex).Stats.MinHP < (UserList(TempCharIndex).Stats.MaxHP * 0.1) Then
                    Stat = Stat & " [Casi muerto]"
                ElseIf UserList(TempCharIndex).Stats.MinHP < (UserList(TempCharIndex).Stats.MaxHP * 0.25) Then
                    Stat = Stat & " [Muy Malherido]"
                ElseIf UserList(TempCharIndex).Stats.MinHP < (UserList(TempCharIndex).Stats.MaxHP * 0.5) Then
                    Stat = Stat & " [Herido]"
                ElseIf UserList(TempCharIndex).Stats.MinHP < (UserList(TempCharIndex).Stats.MaxHP * 0.75) Then
                    Stat = Stat & " [Levemente herido]"
                ElseIf UserList(TempCharIndex).Stats.MinHP < (UserList(TempCharIndex).Stats.MaxHP) Then
                    Stat = Stat & " [Sano]"
                Else
                    Stat = Stat & " [Intacto]"
                End If

                If UserList(TempCharIndex).flags.PertAlCons > 0 Then
                    Stat = Stat & " [CONSEJO DE BANDERBILL]" & FONTTYPE_CONSEJOVesA
                ElseIf UserList(TempCharIndex).flags.PertAlConsCaos > 0 Then
                    Stat = Stat & " [CONSEJO DE LAS SOMBRAS]" & FONTTYPE_CONSEJOCAOSVesA
                Else
                    If UserList(TempCharIndex).flags.Privilegios > 0 Then
                        Stat = Stat & " <GAME MASTER> ~0~185~0~1~0"
                    ElseIf Criminal(TempCharIndex) Then
                        Stat = Stat & " <CRIMINAL> ~255~0~0~1~0"
                    Else
                        Stat = Stat & " <CIUDADANO> ~0~0~200~1~0"
                    End If
                End If
            Else
                Stat = UserList(TempCharIndex).DescRM & " " & FONTTYPE_INFOBOLD
            End If
           
            If Len(Stat) > 0 Then _
                Call SendData(SendTarget.ToIndex, UserIndex, 0, "||" & Stat)

            FoundSomething = 1
            UserList(UserIndex).flags.TargetUser = TempCharIndex
            UserList(UserIndex).flags.TargetNPC = 0
            UserList(UserIndex).flags.TargetNpcTipo = eNPCType.Comun
       End If

    End If

Y así debería funcionar. Espero que les sirva!
 
Última edición por un moderador:

Amraphen

Aprendiz Lvl 6
elukhan dijo:
Esto no funciona en la 0.11.2. Tiene cosas que no corresponden, ej: SendTarget o eNPCType.Comun.

Buen punto elukhan, me olvidé de indicar que solo funciona para la v0.11.5. Para la 0.11.2 tendran que eliminar algunas palabras como las que dijo elukhan.
 

Amraphen

Aprendiz Lvl 6
Sisisi, ya entendí :p. DarkThom usa la 0.11.2 pero solamente copypasteo la parte que está modificada, cosa que tendría que haber hecho para la "portación" de versiónes. Pero igual yo soy fiel a la 0.11.5 ^^ =P

Muchas gracias gente!
 
Estado
Cerrado para nuevas respuestas.
Arriba