mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-04-21 04:07:48 +00:00
Fixed appearance bugs. Fixed a lua arg bug.
-Due to using ordinals instead of keys, the NPC voices were set wrong. This is fixed now, as all appearance loading from the DB uses keys now. -Fixed hairVariation not loading for lobby/map server. -Fixed a lua arg bug.
This commit is contained in:
parent
99c8aff702
commit
eecb5ac8a1
7 changed files with 93 additions and 58 deletions
|
@ -55,8 +55,11 @@ namespace Meteor.Lobby.DataObjects
|
||||||
public uint hands = 0;
|
public uint hands = 0;
|
||||||
public uint feet = 0;
|
public uint feet = 0;
|
||||||
public uint waist = 0;
|
public uint waist = 0;
|
||||||
|
public uint neck = 0;
|
||||||
public uint rightEar = 0;
|
public uint rightEar = 0;
|
||||||
public uint leftEar = 0;
|
public uint leftEar = 0;
|
||||||
|
public uint rightIndex = 0;
|
||||||
|
public uint leftIndex = 0;
|
||||||
public uint rightFinger = 0;
|
public uint rightFinger = 0;
|
||||||
public uint leftFinger = 0;
|
public uint leftFinger = 0;
|
||||||
//Chara Info
|
//Chara Info
|
||||||
|
|
|
@ -175,7 +175,7 @@ namespace Meteor.Lobby.DataObjects
|
||||||
var bitfield = PrimitiveConversion.ToUInt32(faceInfo);
|
var bitfield = PrimitiveConversion.ToUInt32(faceInfo);
|
||||||
|
|
||||||
writer.Write((UInt32)bitfield); //FACE, Figure this out!
|
writer.Write((UInt32)bitfield); //FACE, Figure this out!
|
||||||
uint hairVal = appearance.hairHighlightColor | (uint)(appearance.hairStyle << 10) | (uint)(appearance.characteristicsColor << 20);
|
uint hairVal = appearance.hairHighlightColor | (uint)(appearance.hairVariation << 5) | (uint)(appearance.hairStyle << 10);
|
||||||
writer.Write((UInt32)hairVal);
|
writer.Write((UInt32)hairVal);
|
||||||
writer.Write((UInt32)appearance.voice);
|
writer.Write((UInt32)appearance.voice);
|
||||||
writer.Write((UInt32)appearance.mainHand);
|
writer.Write((UInt32)appearance.mainHand);
|
||||||
|
@ -194,14 +194,11 @@ namespace Meteor.Lobby.DataObjects
|
||||||
writer.Write((UInt32)appearance.feet);
|
writer.Write((UInt32)appearance.feet);
|
||||||
writer.Write((UInt32)appearance.waist);
|
writer.Write((UInt32)appearance.waist);
|
||||||
|
|
||||||
writer.Write((UInt32)0);
|
writer.Write((UInt32)appearance.neck);
|
||||||
|
|
||||||
writer.Write((UInt32)appearance.rightEar);
|
writer.Write((UInt32)appearance.rightEar);
|
||||||
writer.Write((UInt32)appearance.leftEar);
|
writer.Write((UInt32)appearance.leftEar);
|
||||||
|
writer.Write((UInt32)appearance.rightIndex);
|
||||||
writer.Write((UInt32)0);
|
writer.Write((UInt32)appearance.leftIndex);
|
||||||
writer.Write((UInt32)0);
|
|
||||||
|
|
||||||
writer.Write((UInt32)appearance.rightFinger);
|
writer.Write((UInt32)appearance.rightFinger);
|
||||||
writer.Write((UInt32)appearance.leftFinger);
|
writer.Write((UInt32)appearance.leftFinger);
|
||||||
|
|
||||||
|
|
|
@ -623,6 +623,7 @@ namespace Meteor.Lobby
|
||||||
hairStyle,
|
hairStyle,
|
||||||
hairColor,
|
hairColor,
|
||||||
hairHighlightColor,
|
hairHighlightColor,
|
||||||
|
hairVariation,
|
||||||
eyeColor,
|
eyeColor,
|
||||||
characteristics,
|
characteristics,
|
||||||
characteristicsColor,
|
characteristicsColor,
|
||||||
|
@ -642,6 +643,9 @@ namespace Meteor.Lobby
|
||||||
hands,
|
hands,
|
||||||
feet,
|
feet,
|
||||||
waist,
|
waist,
|
||||||
|
neck,
|
||||||
|
leftIndex,
|
||||||
|
rightIndex,
|
||||||
leftFinger,
|
leftFinger,
|
||||||
rightFinger,
|
rightFinger,
|
||||||
leftEar,
|
leftEar,
|
||||||
|
@ -660,6 +664,7 @@ namespace Meteor.Lobby
|
||||||
appearance.hairStyle = reader.GetUInt16("hairStyle");
|
appearance.hairStyle = reader.GetUInt16("hairStyle");
|
||||||
appearance.hairColor = reader.GetUInt16("hairColor");
|
appearance.hairColor = reader.GetUInt16("hairColor");
|
||||||
appearance.hairHighlightColor = reader.GetUInt16("hairHighlightColor");
|
appearance.hairHighlightColor = reader.GetUInt16("hairHighlightColor");
|
||||||
|
appearance.hairVariation = reader.GetUInt16("hairVariation");
|
||||||
appearance.eyeColor = reader.GetUInt16("eyeColor");
|
appearance.eyeColor = reader.GetUInt16("eyeColor");
|
||||||
appearance.characteristics = reader.GetByte("characteristics");
|
appearance.characteristics = reader.GetByte("characteristics");
|
||||||
appearance.characteristicsColor = reader.GetByte("characteristicsColor");
|
appearance.characteristicsColor = reader.GetByte("characteristicsColor");
|
||||||
|
@ -681,8 +686,11 @@ namespace Meteor.Lobby
|
||||||
appearance.hands = reader.GetUInt32("hands");
|
appearance.hands = reader.GetUInt32("hands");
|
||||||
appearance.feet = reader.GetUInt32("feet");
|
appearance.feet = reader.GetUInt32("feet");
|
||||||
appearance.waist = reader.GetUInt32("waist");
|
appearance.waist = reader.GetUInt32("waist");
|
||||||
|
appearance.neck = reader.GetUInt32("neck");
|
||||||
appearance.leftFinger = reader.GetUInt32("leftFinger");
|
appearance.leftFinger = reader.GetUInt32("leftFinger");
|
||||||
appearance.rightFinger = reader.GetUInt32("rightFinger");
|
appearance.rightFinger = reader.GetUInt32("rightFinger");
|
||||||
|
appearance.leftIndex = reader.GetUInt32("leftIndex");
|
||||||
|
appearance.rightIndex = reader.GetUInt32("rightIndex");
|
||||||
appearance.leftEar = reader.GetUInt32("leftEar");
|
appearance.leftEar = reader.GetUInt32("leftEar");
|
||||||
appearance.rightEar = reader.GetUInt32("rightEar");
|
appearance.rightEar = reader.GetUInt32("rightEar");
|
||||||
}
|
}
|
||||||
|
|
|
@ -360,35 +360,45 @@ namespace Meteor.Map.Actors
|
||||||
{
|
{
|
||||||
while (reader.Read())
|
while (reader.Read())
|
||||||
{
|
{
|
||||||
|
|
||||||
//Handle Appearance
|
//Handle Appearance
|
||||||
modelId = reader.GetUInt32(0);
|
modelId = reader.GetUInt32("base");
|
||||||
appearanceIds[Character.SIZE] = reader.GetUInt32(1);
|
appearanceIds[SIZE] = reader.GetUInt32("size");
|
||||||
appearanceIds[Character.COLORINFO] = (uint)(reader.GetUInt32(16) | (reader.GetUInt32(15) << 10) | (reader.GetUInt32(17) << 20)); //17 - Skin Color, 16 - Hair Color, 18 - Eye Color
|
appearanceIds[COLORINFO] = (uint)(reader.GetUInt32("skinColor") | (reader.GetUInt32("hairColor") << 10) | (reader.GetUInt32("eyeColor") << 20));
|
||||||
appearanceIds[Character.FACEINFO] = PrimitiveConversion.ToUInt32(CharacterUtils.GetFaceInfo(reader.GetByte(6), reader.GetByte(7), reader.GetByte(5), reader.GetByte(14), reader.GetByte(13), reader.GetByte(12), reader.GetByte(11), reader.GetByte(10), reader.GetByte(9), reader.GetByte(8)));
|
appearanceIds[FACEINFO] = PrimitiveConversion.ToUInt32(CharacterUtils.GetFaceInfo(
|
||||||
appearanceIds[Character.HIGHLIGHT_HAIR] = (uint)(reader.GetUInt32(3) | reader.GetUInt32(2) << 10); //5- Hair Highlight, 4 - Hair Style
|
reader.GetByte("characteristics"),
|
||||||
appearanceIds[Character.VOICE] = reader.GetUInt32(17);
|
reader.GetByte("characteristicsColor"),
|
||||||
appearanceIds[Character.MAINHAND] = reader.GetUInt32(19);
|
reader.GetByte("faceType"),
|
||||||
appearanceIds[Character.OFFHAND] = reader.GetUInt32(20);
|
reader.GetByte("ears"),
|
||||||
appearanceIds[Character.SPMAINHAND] = reader.GetUInt32(21);
|
reader.GetByte("faceMouth"),
|
||||||
appearanceIds[Character.SPOFFHAND] = reader.GetUInt32(22);
|
reader.GetByte("faceFeatures"),
|
||||||
appearanceIds[Character.THROWING] = reader.GetUInt32(23);
|
reader.GetByte("faceNose"),
|
||||||
appearanceIds[Character.PACK] = reader.GetUInt32(24);
|
reader.GetByte("faceEyeShape"),
|
||||||
appearanceIds[Character.POUCH] = reader.GetUInt32(25);
|
reader.GetByte("faceIrisSize"),
|
||||||
appearanceIds[Character.HEADGEAR] = reader.GetUInt32(26);
|
reader.GetByte("faceEyebrows")));
|
||||||
appearanceIds[Character.BODYGEAR] = reader.GetUInt32(27);
|
appearanceIds[HIGHLIGHT_HAIR] = (uint)(reader.GetUInt32("hairHighlightColor") | reader.GetUInt32("hairVariation") << 5 | reader.GetUInt32("hairStyle") << 10);
|
||||||
appearanceIds[Character.LEGSGEAR] = reader.GetUInt32(28);
|
appearanceIds[VOICE] = reader.GetUInt32("voice");
|
||||||
appearanceIds[Character.HANDSGEAR] = reader.GetUInt32(29);
|
appearanceIds[MAINHAND] = reader.GetUInt32("mainHand");
|
||||||
appearanceIds[Character.FEETGEAR] = reader.GetUInt32(30);
|
appearanceIds[OFFHAND] = reader.GetUInt32("offHand");
|
||||||
appearanceIds[Character.WAISTGEAR] = reader.GetUInt32(31);
|
appearanceIds[SPMAINHAND] = reader.GetUInt32("spMainHand");
|
||||||
appearanceIds[Character.NECKGEAR] = reader.GetUInt32(32);
|
appearanceIds[SPOFFHAND] = reader.GetUInt32("spOffHand");
|
||||||
appearanceIds[Character.R_EAR] = reader.GetUInt32(33);
|
appearanceIds[THROWING] = reader.GetUInt32("throwing");
|
||||||
appearanceIds[Character.L_EAR] = reader.GetUInt32(34);
|
appearanceIds[PACK] = reader.GetUInt32("pack");
|
||||||
appearanceIds[Character.R_INDEXFINGER] = reader.GetUInt32(35);
|
appearanceIds[POUCH] = reader.GetUInt32("pouch");
|
||||||
appearanceIds[Character.L_INDEXFINGER] = reader.GetUInt32(36);
|
appearanceIds[MAINHAND] = reader.GetUInt32("mainHand");
|
||||||
appearanceIds[Character.R_RINGFINGER] = reader.GetUInt32(37);
|
appearanceIds[OFFHAND] = reader.GetUInt32("offHand");
|
||||||
appearanceIds[Character.L_RINGFINGER] = reader.GetUInt32(38);
|
appearanceIds[HEADGEAR] = reader.GetUInt32("head");
|
||||||
|
appearanceIds[BODYGEAR] = reader.GetUInt32("body");
|
||||||
|
appearanceIds[LEGSGEAR] = reader.GetUInt32("legs");
|
||||||
|
appearanceIds[HANDSGEAR] = reader.GetUInt32("hands");
|
||||||
|
appearanceIds[FEETGEAR] = reader.GetUInt32("feet");
|
||||||
|
appearanceIds[WAISTGEAR] = reader.GetUInt32("waist");
|
||||||
|
appearanceIds[NECKGEAR] = reader.GetUInt32("neck");
|
||||||
|
appearanceIds[R_EAR] = reader.GetUInt32("rightEar");
|
||||||
|
appearanceIds[L_EAR] = reader.GetUInt32("leftEar");
|
||||||
|
appearanceIds[R_INDEXFINGER] = reader.GetUInt32("leftIndex");
|
||||||
|
appearanceIds[L_INDEXFINGER] = reader.GetUInt32("rightIndex");
|
||||||
|
appearanceIds[R_RINGFINGER] = reader.GetUInt32("rightFinger");
|
||||||
|
appearanceIds[L_RINGFINGER] = reader.GetUInt32("leftFinger");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -189,6 +189,7 @@ namespace Meteor.Map
|
||||||
hands = @hands,
|
hands = @hands,
|
||||||
feet = @feet,
|
feet = @feet,
|
||||||
waist = @waist,
|
waist = @waist,
|
||||||
|
neck = @neck,
|
||||||
leftFinger = @leftFinger,
|
leftFinger = @leftFinger,
|
||||||
rightFinger = @rightFinger,
|
rightFinger = @rightFinger,
|
||||||
leftEar = @leftEar,
|
leftEar = @leftEar,
|
||||||
|
@ -206,6 +207,7 @@ namespace Meteor.Map
|
||||||
cmd.Parameters.AddWithValue("@hands", player.appearanceIds[Character.HANDSGEAR]);
|
cmd.Parameters.AddWithValue("@hands", player.appearanceIds[Character.HANDSGEAR]);
|
||||||
cmd.Parameters.AddWithValue("@feet", player.appearanceIds[Character.FEETGEAR]);
|
cmd.Parameters.AddWithValue("@feet", player.appearanceIds[Character.FEETGEAR]);
|
||||||
cmd.Parameters.AddWithValue("@waist", player.appearanceIds[Character.WAISTGEAR]);
|
cmd.Parameters.AddWithValue("@waist", player.appearanceIds[Character.WAISTGEAR]);
|
||||||
|
cmd.Parameters.AddWithValue("@neck", player.appearanceIds[Character.NECKGEAR]);
|
||||||
cmd.Parameters.AddWithValue("@leftFinger", player.appearanceIds[Character.L_RINGFINGER]);
|
cmd.Parameters.AddWithValue("@leftFinger", player.appearanceIds[Character.L_RINGFINGER]);
|
||||||
cmd.Parameters.AddWithValue("@rightFinger", player.appearanceIds[Character.R_RINGFINGER]);
|
cmd.Parameters.AddWithValue("@rightFinger", player.appearanceIds[Character.R_RINGFINGER]);
|
||||||
cmd.Parameters.AddWithValue("@leftEar", player.appearanceIds[Character.L_EAR]);
|
cmd.Parameters.AddWithValue("@leftEar", player.appearanceIds[Character.L_EAR]);
|
||||||
|
@ -873,6 +875,7 @@ namespace Meteor.Map
|
||||||
hairStyle,
|
hairStyle,
|
||||||
hairColor,
|
hairColor,
|
||||||
hairHighlightColor,
|
hairHighlightColor,
|
||||||
|
hairVariation,
|
||||||
eyeColor,
|
eyeColor,
|
||||||
characteristics,
|
characteristics,
|
||||||
characteristicsColor,
|
characteristicsColor,
|
||||||
|
@ -892,6 +895,7 @@ namespace Meteor.Map
|
||||||
hands,
|
hands,
|
||||||
feet,
|
feet,
|
||||||
waist,
|
waist,
|
||||||
|
neck,
|
||||||
leftFinger,
|
leftFinger,
|
||||||
rightFinger,
|
rightFinger,
|
||||||
leftEar,
|
leftEar,
|
||||||
|
@ -904,27 +908,39 @@ namespace Meteor.Map
|
||||||
{
|
{
|
||||||
if (reader.Read())
|
if (reader.Read())
|
||||||
{
|
{
|
||||||
if (reader.GetUInt32(0) == 0xFFFFFFFF)
|
if (reader.GetUInt32("baseId") == 0xFFFFFFFF)
|
||||||
player.modelId = CharacterUtils.GetTribeModel(player.playerWork.tribe);
|
player.modelId = CharacterUtils.GetTribeModel(player.playerWork.tribe);
|
||||||
else
|
else
|
||||||
player.modelId = reader.GetUInt32(0);
|
player.modelId = reader.GetUInt32("baseId");
|
||||||
player.appearanceIds[Character.SIZE] = reader.GetByte(1);
|
player.appearanceIds[Character.SIZE] = reader.GetByte("size");
|
||||||
player.appearanceIds[Character.COLORINFO] = (uint)(reader.GetUInt16(3) | (reader.GetUInt16(5) << 10) | (reader.GetUInt16(7) << 20));
|
player.appearanceIds[Character.COLORINFO] = (uint)(reader.GetUInt16("skinColor") | (reader.GetUInt16("hairColor") << 10) | (reader.GetUInt16("eyeColor") << 20));
|
||||||
player.appearanceIds[Character.FACEINFO] = PrimitiveConversion.ToUInt32(CharacterUtils.GetFaceInfo(reader.GetByte(8), reader.GetByte(9), reader.GetByte(10), reader.GetByte(11), reader.GetByte(12), reader.GetByte(13), reader.GetByte(14), reader.GetByte(15), reader.GetByte(16), reader.GetByte(17)));
|
player.appearanceIds[Character.FACEINFO] = PrimitiveConversion.ToUInt32(CharacterUtils.GetFaceInfo(
|
||||||
player.appearanceIds[Character.HIGHLIGHT_HAIR] = (uint)(reader.GetUInt16(6) | reader.GetUInt16(4) << 10);
|
reader.GetByte("characteristics"),
|
||||||
player.appearanceIds[Character.VOICE] = reader.GetByte(2);
|
reader.GetByte("characteristicsColor"),
|
||||||
player.appearanceIds[Character.MAINHAND] = reader.GetUInt32(18);
|
reader.GetByte("faceType"),
|
||||||
player.appearanceIds[Character.OFFHAND] = reader.GetUInt32(19);
|
reader.GetByte("ears"),
|
||||||
player.appearanceIds[Character.HEADGEAR] = reader.GetUInt32(20);
|
reader.GetByte("faceMouth"),
|
||||||
player.appearanceIds[Character.BODYGEAR] = reader.GetUInt32(21);
|
reader.GetByte("faceFeatures"),
|
||||||
player.appearanceIds[Character.LEGSGEAR] = reader.GetUInt32(22);
|
reader.GetByte("faceNose"),
|
||||||
player.appearanceIds[Character.HANDSGEAR] = reader.GetUInt32(23);
|
reader.GetByte("faceEyeShape"),
|
||||||
player.appearanceIds[Character.FEETGEAR] = reader.GetUInt32(24);
|
reader.GetByte("faceIrisSize"),
|
||||||
player.appearanceIds[Character.WAISTGEAR] = reader.GetUInt32(25);
|
reader.GetByte("faceEyebrows")));
|
||||||
player.appearanceIds[Character.R_EAR] = reader.GetUInt32(26);
|
player.appearanceIds[Character.HIGHLIGHT_HAIR] = (uint)(reader.GetUInt16("hairHighlightColor") | reader.GetUInt32("hairVariation") << 5 | reader.GetUInt32("hairStyle") << 10);
|
||||||
player.appearanceIds[Character.L_EAR] = reader.GetUInt32(27);
|
player.appearanceIds[Character.VOICE] = reader.GetByte("voice");
|
||||||
player.appearanceIds[Character.R_RINGFINGER] = reader.GetUInt32(28);
|
player.appearanceIds[Character.MAINHAND] = reader.GetUInt32("mainHand");
|
||||||
player.appearanceIds[Character.L_RINGFINGER] = reader.GetUInt32(29);
|
player.appearanceIds[Character.OFFHAND] = reader.GetUInt32("offHand");
|
||||||
|
player.appearanceIds[Character.HEADGEAR] = reader.GetUInt32("head");
|
||||||
|
player.appearanceIds[Character.BODYGEAR] = reader.GetUInt32("body");
|
||||||
|
player.appearanceIds[Character.LEGSGEAR] = reader.GetUInt32("legs");
|
||||||
|
player.appearanceIds[Character.HANDSGEAR] = reader.GetUInt32("hands");
|
||||||
|
player.appearanceIds[Character.FEETGEAR] = reader.GetUInt32("feet");
|
||||||
|
player.appearanceIds[Character.WAISTGEAR] = reader.GetUInt32("waist");
|
||||||
|
player.appearanceIds[Character.HEADGEAR] = reader.GetUInt32("head");
|
||||||
|
player.appearanceIds[Character.NECKGEAR] = reader.GetUInt32("neck");
|
||||||
|
player.appearanceIds[Character.R_EAR] = reader.GetUInt32("rightEar");
|
||||||
|
player.appearanceIds[Character.L_EAR] = reader.GetUInt32("leftEar");
|
||||||
|
player.appearanceIds[Character.R_RINGFINGER] = reader.GetUInt32("rightFinger");
|
||||||
|
player.appearanceIds[Character.L_RINGFINGER] = reader.GetUInt32("leftFinger");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -600,7 +600,8 @@ namespace Meteor.Map.lua
|
||||||
|
|
||||||
public void EventStarted(Player player, Actor target, EventStartPacket eventStart)
|
public void EventStarted(Player player, Actor target, EventStartPacket eventStart)
|
||||||
{
|
{
|
||||||
List<LuaParam> lparams = eventStart.luaParams;
|
List<LuaParam> lparams = new List<LuaParam>();
|
||||||
|
lparams.AddRange(eventStart.luaParams);
|
||||||
lparams.Insert(0, new LuaParam(2, eventStart.eventName));
|
lparams.Insert(0, new LuaParam(2, eventStart.eventName));
|
||||||
if (mSleepingOnPlayerEvent.ContainsKey(player.actorId))
|
if (mSleepingOnPlayerEvent.ContainsKey(player.actorId))
|
||||||
{
|
{
|
||||||
|
|
|
@ -229,7 +229,7 @@
|
||||||
<Compile Include="Packets\Send\Actor\Battle\CommandResultX18Packet.cs" />
|
<Compile Include="Packets\Send\Actor\Battle\CommandResultX18Packet.cs" />
|
||||||
<Compile Include="Packets\Send\Actor\Battle\CommandResultX10Packet.cs" />
|
<Compile Include="Packets\Send\Actor\Battle\CommandResultX10Packet.cs" />
|
||||||
<Compile Include="Packets\Send\Actor\DeleteAllActorsPacket.cs" />
|
<Compile Include="Packets\Send\Actor\DeleteAllActorsPacket.cs" />
|
||||||
<Compile Include="Packets\Send\Actor\Events\SetEventStatus.cs" />
|
<Compile Include="Packets\Send\Actor\Events\SetEventStatusPacket.cs" />
|
||||||
<Compile Include="Packets\Send\Actor\Events\SetNoticeEventCondition.cs" />
|
<Compile Include="Packets\Send\Actor\Events\SetNoticeEventCondition.cs" />
|
||||||
<Compile Include="Packets\Send\Actor\Events\SetPushEventConditionWithTriggerBox.cs" />
|
<Compile Include="Packets\Send\Actor\Events\SetPushEventConditionWithTriggerBox.cs" />
|
||||||
<Compile Include="Packets\Send\Actor\Events\SetPushEventConditionWithFan.cs" />
|
<Compile Include="Packets\Send\Actor\Events\SetPushEventConditionWithFan.cs" />
|
||||||
|
|
Loading…
Add table
Reference in a new issue