Mirage Source
http://www.miragesource.net/forums/

[Feature] HP Bars for NPC
http://www.miragesource.net/forums/viewtopic.php?f=183&t=5462
Page 1 of 70

Author:  Labmonkey [ Sat Apr 11, 2009 1:30 am ]
Post subject:  [Feature] HP Bars for NPC

[SERVERSIDE]
First we have to add a new packet
In mod Enumerations under
Code:
SCastSpell

put
Code:
SUpdateNpcHP


Now let us make the sub to send the packet

AT the bottom of modServerTcp put
Code:
Public Sub SendNpcHp(ByVal Map As Long, ByVal Index As Byte)
    'check if the npc is dead
    If MapNpc(Map, Index).Vital(Vitals.HP) = 0 Then
    Call SendDataToMap(Map, SUpdateNpcHP & SEP_CHAR & Index & SEP_CHAR & 0 & SEP_CHAR & 0 & END_CHAR)
    Else
    Call SendDataToMap(Map, SUpdateNpcHP & SEP_CHAR & Index & SEP_CHAR & MapNpc(Map, Index).Vital(Vitals.HP) & SEP_CHAR & Npc(MapNpc(Map, Index).Num).Stat(Stats.Strength) * Npc(MapNpc(Map, Index).Num).Stat(Stats.Defense) & END_CHAR)
    End If
End Sub



Now lets send the packet. In the attacknpc sub, under
Code:
    ' Reduce durability of weapon
    Call DamageEquipment(Attacker, Weapon)

put
Code:
    'Lets update the hp of the npc incase it got hurt
    Call SendNpcHp(GetPlayerMap(Attacker), MapNpcNum)


[CLIENTSIDE]
We have to add the new packet to the client too.
In mod Enumerations under
Code:
SCastSpell

put
Code:
SUpdateNpcHP


We have to add a value to MapNpcRec called MaxHp
Find
Code:
Private Type MapNpcRec

under
Code:
    AttackTimer As Long

put
Code:
    MaxHp As Long


Now lets actually change the hp when we get the packet.
in modHandleData under
Code:
            HandleSpellCast Parse

put
Code:
        Case SUpdateNpcHP
            HandleUpdateNpcHP Parse


now at the bottom of modHandleData put this sub

Code:
' ::::::::::::::::::::::::::
' :: Update Npc Hp packet ::
' ::::::::::::::::::::::::::
Private Sub HandleUpdateNpcHP(ByRef Parse() As String)
    MapNpc(CByte(Parse(1))).Vital(Vitals.HP) = CLng(Parse(2))
End Sub


Now the last step, draw the hp bar. In sub BltNpc at the bottom put
Code:
        If MapNpc(MapNpcNum).Vital(Vitals.HP) = 0 Then Exit Sub
       
        Call DDS_BackBuffer.SetFillColor(RGB(255, 0, 0))
        Call DDS_BackBuffer.DrawBox(X, Y + 32, X + 32, Y + 36)
       
        Call DDS_BackBuffer.SetFillColor(RGB(0, 255, 0))
        Call DDS_BackBuffer.DrawBox(X, Y + 32, X + ((MapNpc(MapNpcNum).Vital(Vitals.HP) / 100) / (MapNpc(MapNpcNum).MaxHp / 100) * 32), Y + 36)

Author:  Clu [ Sun Jun 28, 2009 7:50 pm ]
Post subject:  Re: [Feature] HP Bars for NPC

I having a little trouble getting this over to MS4, solely because ive been programming for over 12 hours on it lol, can anyone give me a hand by letting me know how i can get an NPC max health, on the client side? or do I have to make another packet? any help would be absolutely fantastic.

Author:  Labmonkey [ Sat Jul 25, 2009 3:04 am ]
Post subject:  Re: [Feature] HP Bars for NPC

What do you mean it sends the packet at the wrong time?

And the tutorial was written for an earlier version of ms, and i can guarantee for that version it worked fine.

Author:  ShadowMaster [ Sun Aug 09, 2009 2:10 pm ]
Post subject:  Re: [Feature] HP Bars for NPC

All is needed is MP and SP bars.

Author:  wanai [ Wed Dec 01, 2021 8:51 am ]
Post subject:  Re: [Feature] HP Bars for NPC

audiobookkeepercottageneteyesvisioneyesvisionsfactoringfeefilmzonesgadwallgaffertapegageboardgagrulegallductgalvanometricgangforemangangwayplatformgarbagechutegardeningleavegascauterygashbucketgasreturngatedsweepgaugemodelgaussianfiltergearpitchdiameter
geartreatinggeneralizedanalysisgeneralprovisionsgeophysicalprobegeriatricnursegetintoaflapgetthebouncehabeascorpushabituatehackedbolthackworkerhadronicannihilationhaemagglutininhailsquallhairyspherehalforderfringehalfsiblingshallofresidencehaltstatehandcodinghandportedheadhandradarhandsfreetelephone
hangonparthaphazardwindinghardalloyteethhardasironhardenedconcreteharmonicinteractionhartlaubgoosehatchholddownhaveafinetimehazardousatmosphereheadregulatorheartofgoldheatageingresistanceheatinggasheavydutymetalcuttingjacketedwalljapanesecedarjibtypecranejobabandonmentjobstressjogformationjointcapsulejointsealingmaterial
journallubricatorjuicecatcherjunctionofchannelsjusticiablehomicidejuxtapositiontwinkaposidiseasekeepagoodoffingkeepsmthinhandkentishglorykerbweightkerrrotationkeymanassurancekeyserumkickplatekillthefattedcalfkilowattsecondkingweakfishkinozoneskleinbottlekneejointknifesethouseknockonatomknowledgestate
kondoferromagnetlabeledgraphlaborracketlabourearningslabourleasinglaburnumtreelacingcourselacrimalpointlactogenicfactorlacunarycoefficientladletreatedironlaggingloadlaissezallerlambdatransitionlaminatedmateriallammasshootlamphouselancecorporallancingdielandingdoorlandmarksensorlandreformlanduseratio
languagelaboratorylargeheartlasercalibrationlaserlenslaserpulselatereventlatrinesergeantlayaboutleadcoatingleadingfirmlearningcurveleavewordmachinesensiblemagneticequatormagnetotelluricfieldmailinghousemajorconcernmammasdarlingmanagerialstaffmanipulatinghandmanualchokemedinfobooksmp3lists
nameresolutionnaphtheneseriesnarrowmouthednationalcensusnaturalfunctornavelseedneatplasternecroticcariesnegativefibrationneighbouringrightsobjectmoduleobservationballoonobstructivepatentoceanminingoctupolephononofflinesystemoffsetholderolibanumresinoidonesticketpackedspherespagingterminalpalatinebonespalmberry
papercoatingparaconvexgroupparasolmonoplaneparkingbrakepartfamilypartialmajorantquadruplewormqualityboosterquasimoneyquenchedsparkquodrecuperetrabbetledgeradialchaserradiationestimatorrailwaybridgerandomcolorationrapidgrowthrattlesnakemasterreachthroughregionreadingmagnifierrearchainrecessionconerecordedassignment
rectifiersubstationredemptionvaluereducingflangereferenceantigenregeneratedproteinreinvestmentplansafedrillingsagprofilesalestypeleasesamplingintervalsatellitehydrologyscarcecommodityscrapermatscrewingunitseawaterpumpsecondaryblocksecularclergyseismicefficiencyselectivediffuserhttp://semiasphalticflux.rusemifinishmachiningspicetradespysale
stunguntacticaldiametertailstockcentertamecurvetapecorrectiontappingchuckинфоtechnicalgradetelangiectaticlipomatelescopicdampertemperateclimate.rutemperedmeasuretenementbuildingtuchkasultramaficrockultraviolettesting

Author:  wanai [ Tue Jan 04, 2022 3:04 am ]
Post subject:  Re: [Feature] HP Bars for NPC

Econ

Author:  wanai [ Tue Jan 04, 2022 3:05 am ]
Post subject:  Re: [Feature] HP Bars for NPC

92.6

Author:  wanai [ Tue Jan 04, 2022 3:06 am ]
Post subject:  Re: [Feature] HP Bars for NPC

Bett

Author:  wanai [ Tue Jan 04, 2022 3:07 am ]
Post subject:  Re: [Feature] HP Bars for NPC

Bett

Author:  wanai [ Tue Jan 04, 2022 3:08 am ]
Post subject:  Re: [Feature] HP Bars for NPC

Greg

Author:  wanai [ Tue Jan 04, 2022 3:10 am ]
Post subject:  Re: [Feature] HP Bars for NPC

Jewe

Author:  wanai [ Tue Jan 04, 2022 3:11 am ]
Post subject:  Re: [Feature] HP Bars for NPC

West

Author:  wanai [ Tue Jan 04, 2022 3:12 am ]
Post subject:  Re: [Feature] HP Bars for NPC

Dant

Author:  wanai [ Tue Jan 04, 2022 3:13 am ]
Post subject:  Re: [Feature] HP Bars for NPC

XVII

Author:  wanai [ Tue Jan 04, 2022 3:14 am ]
Post subject:  Re: [Feature] HP Bars for NPC

Mich

Author:  wanai [ Tue Jan 04, 2022 3:15 am ]
Post subject:  Re: [Feature] HP Bars for NPC

What

Author:  wanai [ Tue Jan 04, 2022 3:16 am ]
Post subject:  Re: [Feature] HP Bars for NPC

Samb

Author:  wanai [ Tue Jan 04, 2022 3:17 am ]
Post subject:  Re: [Feature] HP Bars for NPC

Appl

Author:  wanai [ Tue Jan 04, 2022 3:18 am ]
Post subject:  Re: [Feature] HP Bars for NPC

Colu

Author:  wanai [ Tue Jan 04, 2022 3:20 am ]
Post subject:  Re: [Feature] HP Bars for NPC

John

Author:  wanai [ Tue Jan 04, 2022 3:21 am ]
Post subject:  Re: [Feature] HP Bars for NPC

Else

Author:  wanai [ Tue Jan 04, 2022 3:22 am ]
Post subject:  Re: [Feature] HP Bars for NPC

Mega

Author:  wanai [ Tue Jan 04, 2022 3:23 am ]
Post subject:  Re: [Feature] HP Bars for NPC

Chin

Author:  wanai [ Tue Jan 04, 2022 3:24 am ]
Post subject:  Re: [Feature] HP Bars for NPC

Hone

Author:  wanai [ Tue Jan 04, 2022 3:25 am ]
Post subject:  Re: [Feature] HP Bars for NPC

Unde

Page 1 of 70 All times are UTC
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/