Universo Games
Ola , Convidado



Você ainda não e cadastrado então cadastre-se e veja todas as atualizações no mundo rpg!!!
Universo Games

Suporte e Desenvolvimento só no Universo Games

Ola Convidado, Seja Bem vindo a equipe lhe deseja boa sorte no seu projeto!

Você não está conectado. Conecte-se ou registre-se

[EO] Colocando barra de HP nos NPC

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

1Tutorial [EO] Colocando barra de HP nos NPC em Sab 11 Dez 2010, 17:50

Luucas Robeerto


Fundador
Fundador
~Descrição~
•Como o titulo ja diz, o sistema serve para ficar visivel a barrinha de HP dos "monstros".

~Tutorial~

1) Abra o Server.vbp, que se localiza na pasta Server.

2) Procure no modPlayer:
Código:
Sub AttackNpc

3) Nessa sub, procure por:
Código:
' NPC not dead, just do the damage
MapNpc(MapNum).Npc(MapNpcNum).Vital(Vitals.HP) = MapNpc(MapNum).Npc(MapNpcNum).Vital(Vitals.HP) - Damage

' Check for a weapon and say damage
SendActionMsg MapNum, "-" & Damage, BrightRed, 1, (MapNpc(MapNum).Npc(MapNpcNum).x * 32), (MapNpc(MapNum).Npc(MapNpcNum).y * 32)
SendBlood GetPlayerMap(Attacker), MapNpc(MapNum).Npc(MapNpcNum).x, MapNpc(MapNum).Npc(MapNpcNum).y

4) Logo abaixo coloque:
Código:
SendMapNpcVitals GetPlayerMap(Attacker), MapNpcNum

Parte do Server acabada!

5) Agora abra o Client.vbp, que se localiza na pasta Client.

6) No modDirectDraw7, procure por:
Código:
Public Sub Render_Graphics

7) Nessa sub, procure por:
Código:
' Npcs
For I = 1 To MAX_MAP_NPCS
If MapNpc(I).Y = Y Then
Call BltNpc(I)
End If
Next

[Você precisa estar registrado e conectado para ver esta imagem.] Substitua por:
Código:
' Npcs
For I = 1 To MAX_MAP_NPCS
' Draw out npc hp bars
Call BltNpcHP(I)
If MapNpc(I).Y = Y Then
Call BltNpc(I)
End If
Next

9) No mesmo mod, procure por:
Código:
Public Sub BltNpc

10) Abaixo do código coloque:
Código:
Public Sub BltNpcHP(ByVal Index As Long)
Dim X As Long, Y As Long, Sprite As Long, NpcNum As Long

NpcNum = MapNpc(Index).Num

If NpcNum = 0 Then
Exit Sub
End If

' Don't display the HP if the npc is at max hp
If MapNpc(Index).Vital(Vitals.HP) = Npc(NpcNum).HP Then
Exit Sub
End If

' Only display HP for npcs that we can attack
If Npc(NpcNum).Behaviour <> NPC_BEHAVIOUR_ATTACKONSIGHT And Npc(NpcNum).Behaviour <> NPC_BEHAVIOUR_ATTACKWHENATTACKED Then
Exit Sub
End If

Sprite = Npc(NpcNum).Sprite

' Calculate the X coordinate to place the name
X = MapNpc(Index).X * PIC_X + MapNpc(Index).XOffset

If Sprite < 1 Or Sprite > NumCharacters Then
Y = MapNpc(Index).Y * PIC_Y + MapNpc(Index).YOffset - 22
Else
Y = MapNpc(Index).Y * PIC_Y + MapNpc(Index).YOffset - (DDSD_Character(Sprite).lHeight) + 81
End If

' Draw the outside box
Call DDS_BackBuffer.SetFillColor(RGB(0, 0, 0))
Call DDS_BackBuffer.DrawBox(ConvertMapX(X), ConvertMapY(Y), ConvertMapX(X + 32), ConvertMapY(Y + 4))

' Draw the HP
Call DDS_BackBuffer.SetFillColor(RGB(0, 255, 0))
Call DDS_BackBuffer.DrawBox(ConvertMapX(X), ConvertMapY(Y), ConvertMapX(X + Int(((MapNpc(Index).Vital(Vitals.HP) / 32) / (Npc(NpcNum).HP / 32)) * 32)), ConvertMapY(Y + 4))
End Sub

Tutorial acabado.

Retirado de: Aldeia RPG


_______________________________________________________________________________________________________

[Você precisa estar registrado e conectado para ver esta imagem.]
Spoiler:
[Você precisa estar registrado e conectado para ver esta imagem.]
[Você precisa estar registrado e conectado para ver esta imagem.]
[Você precisa estar registrado e conectado para ver esta imagem.]

[Você precisa estar registrado e conectado para ver esta imagem.]
[Você precisa estar registrado e conectado para ver esta imagem.]
http://universogamesmmo.forumeiros.com

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum