gargoyle race/body impl from servuo with some modification
This commit is contained in:
parent
1d285f79fa
commit
f566daea30
6 changed files with 369 additions and 33 deletions
|
|
@ -421,8 +421,6 @@
|
|||
663 Equipment
|
||||
664 Equipment
|
||||
665 Equipment
|
||||
666 Equipment
|
||||
667 Equipment
|
||||
668 Equipment
|
||||
669 Equipment
|
||||
670 Equipment
|
||||
|
|
@ -442,10 +440,9 @@
|
|||
688 Equipment
|
||||
690 Equipment
|
||||
691 Equipment
|
||||
692 Equipment
|
||||
693 Equipment
|
||||
694 Equipment
|
||||
695 Equipment
|
||||
694 Human
|
||||
695 Human
|
||||
696 Equipment
|
||||
697 Equipment
|
||||
698 Equipment
|
||||
|
|
@ -456,29 +453,7 @@
|
|||
703 Equipment
|
||||
710 Equipment
|
||||
712 Equipment
|
||||
713 Equipment
|
||||
715 Equipment
|
||||
716 Equipment
|
||||
720 Equipment
|
||||
721 Equipment
|
||||
722 Equipment
|
||||
723 Equipment
|
||||
724 Equipment
|
||||
725 Equipment
|
||||
726 Equipment
|
||||
727 Equipment
|
||||
728 Equipment
|
||||
729 Equipment
|
||||
730 Equipment
|
||||
731 Equipment
|
||||
732 Equipment
|
||||
733 Equipment
|
||||
734 Equipment
|
||||
735 Equipment
|
||||
736 Equipment
|
||||
740 Equipment
|
||||
742 Equipment
|
||||
743 Equipment
|
||||
744 Human
|
||||
745 Human
|
||||
746 Monster
|
||||
|
|
@ -547,7 +522,6 @@
|
|||
820 Equipment
|
||||
824 Equipment
|
||||
825 Equipment
|
||||
826 Equipment
|
||||
827 Equipment
|
||||
828 Equipment
|
||||
846 Equipment
|
||||
|
|
@ -964,3 +938,170 @@
|
|||
283 Animal # Crow
|
||||
284 Animal # Mondains Steed
|
||||
285 Monster # Reaper Form
|
||||
|
||||
|
||||
|
||||
# Pub 39 Fixes
|
||||
689 Monster # Time Lord
|
||||
704 Monster # Shadow Lord
|
||||
|
||||
# Pub 52
|
||||
197 Monster # Order Variant
|
||||
198 Monster # Chaos Variant
|
||||
|
||||
# UOSA Creatures
|
||||
666 Human # Gargoyle Male
|
||||
667 Human # Gargoyle Female
|
||||
713 Monster # Abyssal Infernal
|
||||
714 Monster # Iron Beetle
|
||||
715 Monster # Boura
|
||||
716 Monster # ChickenLizard
|
||||
717 Monster # Clockwork Scorpion
|
||||
718 Monster # Faerie Dragon
|
||||
719 Monster # Wolf Dragon
|
||||
720 Monster # Lava Elemental
|
||||
721 Monster # Flayer
|
||||
722 Monster # Undead Gargoyle
|
||||
723 Monster # Green Goblin
|
||||
724 Monster # Gremlin
|
||||
725 Monster # Humunculous
|
||||
726 Monster # Kepetch
|
||||
727 Monster # Shorn Kepetch
|
||||
728 Monster # Medusa
|
||||
729 Monster # Mimic
|
||||
730 Monster # Raptor
|
||||
732 Monster # RotWorm
|
||||
733 Monster # Skree
|
||||
734 Monster # Slith
|
||||
735 Monster # Female Spider
|
||||
736 Monster # Male Spider
|
||||
737 Monster # Trapdoor Spider
|
||||
738 Monster # Trapdoor Creature
|
||||
739 Monster # Leather Wolf
|
||||
293 Monster # Gargoyle Pet
|
||||
286 Monster # RotWorm Juvenile
|
||||
287 Monster # BloodWorm
|
||||
692 Monster # AnimatedWeapon
|
||||
830 Monster # Primevil Lich
|
||||
829 Monster # Rising Colosus
|
||||
741 Monster # Slasher of Veils
|
||||
826 Monster # Stygian Dragon
|
||||
740 Monster # Shadow Dweller
|
||||
742 Monster # Tunnel Spirit Body
|
||||
743 Monster # Tunnel Spirit Tentacle
|
||||
334 Monster # Grey Goblin
|
||||
832 Monster # Phoenix Bird
|
||||
831 Monster # Parrot Bird
|
||||
|
||||
# UOSA Wearables
|
||||
585 Equipment # Leather_Arms_Female
|
||||
586 Equipment # Leather_Arms_Male
|
||||
587 Equipment # Leather_Chest_Female
|
||||
588 Equipment # Leather_Chest_Male
|
||||
589 Equipment # Leather_Legs_Female
|
||||
590 Equipment # Leather_Legs_Male
|
||||
591 Equipment # Plate_Arms_Female
|
||||
592 Equipment # Plate_Arms_Male
|
||||
593 Equipment # Plate_Chest_Female
|
||||
594 Equipment # Plate_Chest_Male
|
||||
595 Equipment # Plate_Kilt_Female
|
||||
596 Equipment # Plate_Kilt_Male
|
||||
597 Equipment # Plate_Legs_Female
|
||||
598 Equipment # Plate_Legs_Male
|
||||
599 Equipment # Stone_Arms_Female
|
||||
600 Equipment # Armor_Stone_Arms_Male
|
||||
601 Equipment # Armor_Stone_Chest_Female
|
||||
602 Equipment # Armor_Stone_Chest_Male
|
||||
603 Equipment # Armor_Stone_Kilt_Female
|
||||
604 Equipment # Armor_Stone_Kilt_Male
|
||||
609 Equipment # Armor_Stone_Legs_Female
|
||||
610 Equipment # Armor_Stone_Legs_Male
|
||||
654 Equipment # Clothing_Arms_Female
|
||||
655 Equipment # Clothing_Arms_Male
|
||||
656 Equipment # Clothing_Chest_Female
|
||||
657 Equipment # Clothing_Chest_Male
|
||||
658 Equipment # Clothing_Kilt_Female
|
||||
659 Equipment # Clothing_Kilt_Male
|
||||
660 Equipment # Clothing_Legs_Female
|
||||
661 Equipment # Clothing_Legs_Male
|
||||
663 Equipment # Leather_Kilt_Female
|
||||
664 Equipment # Leather_Kilt_Male
|
||||
662 Equipment # Axe_Dual_Short
|
||||
668 Equipment # Sword_Bloodblade
|
||||
669 Equipment # Boomerang
|
||||
670 Equipment # Sword_Broadsword
|
||||
672 Equipment # Glave_Cyclone
|
||||
673 Equipment # Dagger
|
||||
674 Equipment # Mace_Disk
|
||||
675 Equipment # Spear_Dual_Pointed
|
||||
676 Equipment # Staff_Glass
|
||||
677 Equipment # Staff_Serpentstone
|
||||
678 Equipment # Sword_Shortblade
|
||||
690 Equipment # Sword_Talwar
|
||||
693 Equipment # Glave_Soul
|
||||
671 Equipment # Sword_Dread
|
||||
691 Equipment # Sword_Glass
|
||||
320 Equipment # FishingPole_Gargoyle
|
||||
321 Equipment # Lantern_Off_Gargoyle
|
||||
322 Equipment # Lantern_On_Gargoyle
|
||||
323 Equipment # Pickaxe_Gargoyle
|
||||
324 Equipment # Shepards_Crook_Gargoyle
|
||||
325 Equipment # Smithyhammer_Gargoyle
|
||||
326 Equipment # Spellbook_BookOfArms_Gargoyle
|
||||
327 Equipment # Spellbook_Bushido_Gargoyle
|
||||
328 Equipment # Spellbook_Chivalry_Gargoyle
|
||||
329 Equipment # Spellbook_Gargoyle
|
||||
330 Equipment # Spellbook_Necromancy_Gargoyle
|
||||
331 Equipment # Spellbook_Ninjutsu_Gargoyle
|
||||
332 Equipment # Spellbook_SpellWeaving_Gargoyle
|
||||
333 Equipment # Weapon_Wand_Gargoyle_Legacy
|
||||
335 Equipment # Weapon_Shield_Leather_Medium_Gargoyle_Legacy
|
||||
336 Equipment # Weapon_Shield_Leather_Small_Gargoyle_Legacy
|
||||
337 Equipment # Weapon_Shield_Plate_Large_Gargoyle_Legacy
|
||||
338 Equipment # Weapon_Shield_Plate_Medium_Gargoyle_Legacy
|
||||
339 Equipment # Weapon_Shield_Plate_Small_Gargoyle_Legacy
|
||||
340 Equipment # Weapon_Shield_Scale_Large_Gargoyle_Legacy
|
||||
341 Equipment # Gargoyle Robe_Fancy
|
||||
342 Equipment # Gargoyle Robe_Regular
|
||||
343 Equipment # Weapon_Shield_Scale_Chaos_Gargoyle
|
||||
344 Equipment # Weapon_Shield_Scale_Order_Gargoyle
|
||||
|
||||
483 Equipment # Horns_Gargoyle_Male_Legacy
|
||||
485 Equipment # Horns_Gargoyle_Male_Legacy
|
||||
843 Equipment # Horns_Gargoyle_Male_Legacy
|
||||
499 Equipment # Horns_Gargoyle_Male_Legacy
|
||||
696 Equipment # Horns_Gargoyle_Male_Legacy
|
||||
697 Equipment # Horns_Gargoyle_Male_Legacy
|
||||
698 Equipment # Horns_Gargoyle_Male_Legacy
|
||||
699 Equipment # Horns_Gargoyle_Male_Legacy
|
||||
769 Equipment # Horns_Gargoyle_Female_Legacy
|
||||
541 Equipment # Horns_Gargoyle_Female_Legacy
|
||||
795 Equipment # Horns_Gargoyle_Female_Legacy
|
||||
632 Equipment # Female gargoyle horns
|
||||
707 Equipment # Female gargoyle horns
|
||||
475 Equipment # Female gargoyle horns
|
||||
647 Equipment # Horns_Facial_Male
|
||||
650 Equipment # Horns_Facial_Male
|
||||
652 Equipment # Horns_Facial_Male
|
||||
665 Equipment # Horns_Facial_Male
|
||||
547 Equipment # Clothing_Robe_Deathshroud_Gargoyle_Legacy
|
||||
809 Equipment # Ninja jacket Cloth Female
|
||||
810 Equipment # Ninja Jacket Leather Feamale
|
||||
811 Equipment # Shirt Doublet Female
|
||||
407 Equipment # Tall Straw Hat
|
||||
708 Equipment # Horns_Gargoyle_Female_Legacy
|
||||
534 Equipment # Horns_Gargoyle_Female_Legacy
|
||||
427 Equipment # Human Mysticism Spellbook
|
||||
428 Equipment # Gargoyle Mysticism Spellbook
|
||||
705 Equipment # Stone Form
|
||||
509 Equipment # Horns_Gargoyle_Male
|
||||
885 Equipment # Gargoyle Ankh Asset - NO ANIMATION - PLACEHOLDER FOR PAPERDOLL
|
||||
865 Equipment # HUMAN Ankh Asset - NO ANIMATION - PLACEHOLDER FOR PAPERDOLL
|
||||
510 Equipment # Generic necklace both HUamns and Gargs - NO ANIMATION - PLACEHOLDER FOR PAPERDOLL
|
||||
436 Equipment # Gargoyle Bracelet - NO ANIMATION - PLACEHOLDER FOR PAPERDOLL
|
||||
437 Equipment # Gargoyle Earrings - NO ANIMATION - PLACEHOLDER FOR PAPERDOLL
|
||||
438 Equipment # Gargoyle Ring - NO ANIMATION - PLACEHOLDER FOR PAPERDOLL
|
||||
439 Equipment # Gargoyle Necklace - NO ANIMATION - PLACEHOLDER FOR PAPERDOLL
|
||||
432 Equipment # Ethereal Boura Vet Reward
|
||||
1026 Equipment # Uber Turkey
|
||||
433 Equipment # Halloween Mask (Paperdoll Only)
|
||||
|
|
|
|||
|
|
@ -15,8 +15,9 @@ namespace Server.Misc
|
|||
* 4) Changing or removing any predefined races may cause server instability.
|
||||
*/
|
||||
|
||||
RegisterRace( new Human ( 0, 0 ) );
|
||||
RegisterRace( new Elf ( 1, 1 ) );
|
||||
RegisterRace( new Human( 0, 0 ) );
|
||||
RegisterRace( new Elf( 1, 1 ) );
|
||||
RegisterRace( new Gargoyle( 2, 2 ) );
|
||||
}
|
||||
|
||||
public static void RegisterRace( Race race )
|
||||
|
|
@ -219,5 +220,118 @@ namespace Server.Misc
|
|||
return m_HairHues[Utility.Random( m_HairHues.Length )];
|
||||
}
|
||||
}
|
||||
|
||||
#region SA
|
||||
private class Gargoyle : Race
|
||||
{
|
||||
public Gargoyle(int raceID, int raceIndex)
|
||||
: base(raceID, raceIndex, "Gargoyle", "Gargoyles", 666, 667, 402, 403, Expansion.SA)
|
||||
{
|
||||
}
|
||||
|
||||
public override bool ValidateHair(bool female, int itemID)
|
||||
{
|
||||
if (female == false)
|
||||
{
|
||||
return itemID >= 0x4258 && itemID <= 0x425F;
|
||||
}
|
||||
else
|
||||
{
|
||||
return ((itemID == 0x4261 || itemID == 0x4262) || (itemID >= 0x4273 && itemID <= 0x4275) || (itemID == 0x42B0 || itemID == 0x42B1) || (itemID == 0x42AA || itemID == 0x42AB));
|
||||
}
|
||||
}
|
||||
|
||||
public override int RandomHair(bool female)
|
||||
{
|
||||
if (Utility.Random(9) == 0)
|
||||
return 0;
|
||||
else if (!female)
|
||||
return 0x4258 + Utility.Random(8);
|
||||
else
|
||||
{
|
||||
switch (Utility.Random(9))
|
||||
{
|
||||
case 0:
|
||||
return 0x4261;
|
||||
case 1:
|
||||
return 0x4262;
|
||||
case 2:
|
||||
return 0x4273;
|
||||
case 3:
|
||||
return 0x4274;
|
||||
case 4:
|
||||
return 0x4275;
|
||||
case 5:
|
||||
return 0x42B0;
|
||||
case 6:
|
||||
return 0x42B1;
|
||||
case 7:
|
||||
return 0x42AA;
|
||||
case 8:
|
||||
return 0x42AB;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
public override bool ValidateFacialHair(bool female, int itemID)
|
||||
{
|
||||
if (female)
|
||||
return false;
|
||||
else
|
||||
return itemID >= 0x42AD && itemID <= 0x42B0;
|
||||
}
|
||||
|
||||
public override int RandomFacialHair(bool female)
|
||||
{
|
||||
if (female)
|
||||
return 0;
|
||||
else
|
||||
return Utility.RandomList(0, 0x42AD, 0x42AE, 0x42AF, 0x42B0);
|
||||
}
|
||||
|
||||
// Todo Finish body hues
|
||||
private static readonly int[] m_BodyHues = new int[]
|
||||
{
|
||||
0x86DB, 0x86DC, 0x86DD, 0x86DE,
|
||||
0x86DF, 0x86E0, 0x86E1, 0x86E2,
|
||||
0x86E3, 0x86E4, 0x86E5, 0x86E6
|
||||
// 0x, 0x, 0x, 0x, // 86E7/86E8/86E9/86EA?
|
||||
// 0x, 0x, 0x, 0x, // 86EB/86EC/86ED/86EE?
|
||||
// 0x86F3, 0x86DB, 0x86DC, 0x86DD
|
||||
};
|
||||
|
||||
public override int ClipSkinHue(int hue)
|
||||
{
|
||||
return hue; // for hue infomation gathering
|
||||
}
|
||||
|
||||
public override int RandomSkinHue()
|
||||
{
|
||||
return m_BodyHues[Utility.Random(m_BodyHues.Length)] | 0x8000;
|
||||
}
|
||||
|
||||
private static readonly int[] m_HornHues = new int[]
|
||||
{
|
||||
0x709, 0x70B, 0x70D, 0x70F, 0x711, 0x763,
|
||||
0x765, 0x768, 0x76B, 0x6F3, 0x6F1, 0x6EF,
|
||||
0x6E4, 0x6E2, 0x6E0, 0x709, 0x70B, 0x70D
|
||||
};
|
||||
|
||||
public override int ClipHairHue(int hue)
|
||||
{
|
||||
for (int i = 0; i < m_HornHues.Length; i++)
|
||||
if (m_HornHues[i] == hue)
|
||||
return hue;
|
||||
|
||||
return m_HornHues[0];
|
||||
}
|
||||
|
||||
public override int RandomHairHue()
|
||||
{
|
||||
return m_HornHues[Utility.Random(m_HornHues.Length)];
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
@ -106,10 +106,23 @@ namespace Server
|
|||
&& m_BodyID != 403
|
||||
&& m_BodyID != 607
|
||||
&& m_BodyID != 608
|
||||
&& m_BodyID != 694
|
||||
&& m_BodyID != 695
|
||||
&& m_BodyID != 970;
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsGargoyle
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_BodyID == 666
|
||||
|| m_BodyID == 667
|
||||
|| m_BodyID == 694
|
||||
|| m_BodyID == 695;
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsMale
|
||||
{
|
||||
get
|
||||
|
|
@ -120,6 +133,8 @@ namespace Server
|
|||
|| m_BodyID == 402
|
||||
|| m_BodyID == 605
|
||||
|| m_BodyID == 607
|
||||
|| m_BodyID == 666
|
||||
|| m_BodyID == 694
|
||||
|| m_BodyID == 750;
|
||||
}
|
||||
}
|
||||
|
|
@ -134,6 +149,8 @@ namespace Server
|
|||
|| m_BodyID == 403
|
||||
|| m_BodyID == 606
|
||||
|| m_BodyID == 608
|
||||
|| m_BodyID == 667
|
||||
|| m_BodyID == 695
|
||||
|| m_BodyID == 751;
|
||||
}
|
||||
}
|
||||
|
|
@ -146,6 +163,8 @@ namespace Server
|
|||
|| m_BodyID == 403
|
||||
|| m_BodyID == 607
|
||||
|| m_BodyID == 608
|
||||
|| m_BodyID == 694
|
||||
|| m_BodyID == 695
|
||||
|| m_BodyID == 970;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6231,10 +6231,62 @@ namespace Server
|
|||
|
||||
//state.Send( pNew );
|
||||
//} else {
|
||||
if( p == null )
|
||||
p = Packet.Acquire( new MobileAnimation( this, action, frameCount, repeatCount, forward, repeat, delay ) );
|
||||
if (p == null)
|
||||
{
|
||||
#region SA
|
||||
if (Body.IsGargoyle)
|
||||
{
|
||||
frameCount = 10;
|
||||
|
||||
state.Send( p );
|
||||
if (Flying)
|
||||
{
|
||||
if (action >= 9 && action <= 11)
|
||||
{
|
||||
action = 71;
|
||||
}
|
||||
else if (action >= 12 && action <= 14)
|
||||
{
|
||||
action = 72;
|
||||
}
|
||||
else if (action == 20)
|
||||
{
|
||||
action = 77;
|
||||
}
|
||||
else if (action == 31)
|
||||
{
|
||||
action = 71;
|
||||
}
|
||||
else if (action == 34)
|
||||
{
|
||||
action = 78;
|
||||
}
|
||||
else if (action >= 200 && action <= 259)
|
||||
{
|
||||
action = 75;
|
||||
}
|
||||
else if (action >= 260 && action <= 270)
|
||||
{
|
||||
action = 75;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (action >= 200 && action <= 259)
|
||||
{
|
||||
action = 17;
|
||||
}
|
||||
else if (action >= 260 && action <= 270)
|
||||
{
|
||||
action = 16;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
p = Packet.Acquire(new MobileAnimation(this, action, frameCount, repeatCount, forward, repeat, delay));
|
||||
}
|
||||
|
||||
state.Send( p );
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
|
@ -7848,6 +7900,10 @@ namespace Server
|
|||
}
|
||||
}
|
||||
|
||||
public virtual void ToggleFlying()
|
||||
{
|
||||
}
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public bool Warmode
|
||||
{
|
||||
|
|
|
|||
|
|
@ -170,6 +170,7 @@ namespace Server.Network
|
|||
RegisterExtended( 0x1C, true, new OnPacketReceive( CastSpell ) );
|
||||
RegisterExtended( 0x24, false, new OnPacketReceive( UnhandledBF ) );
|
||||
RegisterExtended( 0x2C, true, new OnPacketReceive( BandageTarget ) );
|
||||
RegisterExtended( 0x32, true, new OnPacketReceive( ToggleFlying ) );
|
||||
|
||||
RegisterEncoded( 0x19, true, new OnEncodedPacketReceive( SetAbility ) );
|
||||
RegisterEncoded( 0x28, true, new OnEncodedPacketReceive( GuildGumpRequest ) );
|
||||
|
|
@ -1650,6 +1651,10 @@ namespace Server.Network
|
|||
}
|
||||
}
|
||||
|
||||
public static void ToggleFlying(NetState state, PacketReader pvSrc)
|
||||
{
|
||||
state.Mobile.ToggleFlying();
|
||||
}
|
||||
public static void BatchQueryProperties( NetState state, PacketReader pvSrc )
|
||||
{
|
||||
if ( !ObjectPropertyList.Enabled )
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ namespace Server
|
|||
|
||||
public static Race Human { get { return m_Races[0]; } }
|
||||
public static Race Elf { get { return m_Races[1]; } }
|
||||
public static Race Gargoyle { get { return m_Races[2]; } }
|
||||
|
||||
private static List<Race> m_AllRaces = new List<Race>();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue