Monstertable.cs 1650 red line is 1650
Quote:
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
Map.AddFloorItem(floorItem);
SendScreenSpawn(floorItem);
}
}
else if (ServerBase.Kernel.Rate(ServerBase.Constants.ItemD ropRate + morepercent))
{
int quality = 3;
for (int count = 0; count < 5; count++)
{
int rate = int.Parse(ServerBase.Constants.ItemDropQualityRate s[count]);
if (ServerBase.Kernel.Rate(rate, 1000))
{
quality = count + 5;
break;
}
}
int times = 50;
byte lvl = Owner.Level;
if (LabirinthDrop)
lvl = 20;
List<uint> itemdroplist = ItemDropCache[lvl];
if (Boss)
itemdroplist = SoulItemCache[lvl];
retry:
times--;
int generateItemId = ServerBase.Kernel.Random.Next(itemdroplist.Count);
uint id = itemdroplist[generateItemId];
if (!Boss)
{
if (Database.ConquerItemInformation.BaseInformations[id].Level > 121 && times > 0)
goto retry;
id = (id / 10) * 10 + (uint)quality;
}
if (!Database.ConquerItemInformation.BaseInformations .ContainsKey(id))
{
id = itemdroplist[generateItemId];
}
if (killer.VIPLevel > 4)
{
if (killer.Owner.Inventory.Count <= 39)
{
if (id % 10 > 7)
{
killer.Owner.Inventory.Add(id, 0, 1);
return;
}
}
}
var infos = Database.ConquerItemInformation.BaseInformations[id];
ushort X = Owner.X, Y = Owner.Y;
Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
if (Map.SelectCoordonates(ref X, ref Y))
{
Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
floorItem.Item = new Network.GamePackets.ConquerItem(true);
floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase .Kernel.Random.Next(4, 8);
floorItem.Item.ID = id;
floorItem.Item.MaximDurability = infos.Durability;
if (quality >= 6)
floorItem.Item.Durability = (ushort)(infos.Durability - ServerBase.Kernel.Random.Next(500));
else
floorItem.Item.Durability = (ushort)(ServerBase.Kernel.Random.Next(infos.Durab ility / 10));
if (!Network.PacketHandler.IsEquipment(id) && infos.ConquerPointsWorth == 0)
{
floorItem.Item.StackSize = 1;
floorItem.Item.MaxStackSize = infos.StackSize;
}
floorItem.Item.MobDropped = true;
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
floorItem.ItemID = id;
floorItem.MapID = Owner.MapID;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X;
floorItem.Y = Y;
floorItem.Type = Net
Entity.cs Line 2405 red font is 2405
Quote:
if (EntityFlag == EntityFlag.Player)
{
AddFlag(Network.GamePackets.Update.Flags.Dead);
AddFlag(Network.GamePackets.Update.Flags.Ghost);
RemoveFlag(Network.GamePackets.Update.Flags.Fly);
RemoveFlag(Network.GamePackets.Update.Flags.Ride);
RemoveFlag(Network.GamePackets.Update.Flags.Cyclon e);
RemoveFlag(Network.GamePackets.Update.Flags.Superm an);
RemoveFlag(Network.GamePackets.Update.Flags.FatalS trike);
RemoveFlag(Network.GamePackets.Update.Flags.Flashi ngName);
RemoveFlag(Network.GamePackets.Update.Flags.Shurik enVortex);
if (Body % 10 < 3)
TransformationID = 99;
else
TransformationID = 98;
Owner.Screen.SendScreen(attack, true);
Owner.Send(new MapStatus() { BaseID = Owner.Map.BaseID, ID = Owner.Map.ID, Status = Database.MapsTable.MapInformations[Owner.Map.ID].Status });
if (Owner.QualifierGroup != null)
{
Owner.QualifierGroup.End(Owner);
}
}
else
{
if (!Companion)
{
if (MonsterInfo != null)
if (killer != null)
MonsterInfo.Drop(killer);
}
ServerBase.Kernel.Maps[MapID].Floor[X, Y, MapObjType, this] = true;
if (killer.EntityFlag == EntityFlag.Player)
{
killer.Owner.IncreaseExperience(MaxHitpoints, true);
if (killer.Owner.Team != null)
{
foreach (Client.GameState teammate in killer.Owner.Team.Teammates)
{
if (ServerBase.Kernel.GetDistance(killer.X, killer.Y, teammate.Entity.X, teammate.Entity.Y) <= ServerBase.Constants.pScreenDistance)
{
if (killer.UID != teammate.Entity.UID)
{
uint extraExperience = MaxHitpoints / 2;
if (killer.Spouse == teammate.Entity.Name)
extraExperience = MaxHitpoints * 2;
byte TLevelN = teammate.Entity.Level;
if (killer.Owner.Team.CanGetNoobExperience(teammate))
{
if (teammate.Entity.Level < 137)
{
extraExperience *= 2;
teammate.IncreaseExperience(extraExperience, false);
teammate.Send(ServerBase.Constants.NoobTeamExperie nce(extraExperience));
}
}
else
{
if (teammate.Entity.Level < 137)
{
teammate.IncreaseExperience(extraExperience, false);
teammate.Send(ServerBase.Constants.TeamExperience( extraExperience));
}
}
byte TLevelNn = teammate.Entity.Level;
byte newLevel = (byte)(TLevelNn - TLevelN);
if (newLevel != 0)
{
if (TLevelN < 70)
{
for (int i = TLevelN; i < TLevelNn; i++)
{
teammate.Team.Teammates[0].VirtuePoints += (uint)(i * 3.83F);
teammate.Team.SendMessage(new Message("The leader, " + teammate.Team.Teammates[0].Entity.Name + ", has gained " + (uint)(i * 7.7F) + " virtue points for power leveling the rookies.", System.Drawing.Color.Red, Message.Team));
}
}
}
}
}
}
}
if (killer.Level < 137)
{
uint extraExp = MaxHitpoints;
extraExp *= ServerBase.Constants.ExtraExperienceRate;
extraExp += extraExp * killer.Gems[3] / 100;
extraExp += (uint)(extraExp * ((float)killer.BattlePower / 100));
if (killer.Double
Handle Line 4020 Red font
Quote:
if (attacker.EntityFlag == EntityFlag.Monster && attacked.EntityFlag == EntityFlag.Player)
{
if (attacked.Action == Enums.ConquerAction.Sit)
if (attacked.Stamina > 20)
attacked.Stamina -= 20;
else
attacked.Stamina = 0;
attacked.Action = Enums.ConquerAction.None;
}
if (attack.AttackType == Attack.Magic)
{
if (attacked.Hitpoints <= damage)
{
if (attacker.Owner.QualifierGroup != null)
attacker.Owner.QualifierGroup.UpdateDamage(attacke r.Owner, attacked.Hitpoints);
attacked.CauseOfDeathIsMagic = true;
attacked.Die(attacker);
}
else
{
if (attacker.Owner.QualifierGroup != null)
attacker.Owner.QualifierGroup.UpdateDamage(attacke r.Owner, damage);
attacked.Hitpoints -= damage;
}
}
else
{
if (attacked.Hitpoints <= damage)
{
if (attacked.EntityFlag == EntityFlag.Player)
{
if (attacker.Owner.QualifierGroup != null)
attacker.Owner.QualifierGroup.UpdateDamage(attacke r.Owner, attacked.Hitpoints);
attacked.Owner.Screen.SendScreen(attack, true);
attacker.AttackPacket = null;
}
else
{
attacked.MonsterInfo.SendScreen(attack);
}
attacked.Die(attacker);
}
else
{
attacked.Hitpoints -= damage;
if (attacked.EntityFlag == EntityFlag.Player)
{
if (attacker.Owner.QualifierGroup != null)
attacker.Owner.QualifierGroup.UpdateDamage(attacke r.Owner, damage);
attacked.Owner.Screen.SendScreen(attack, true);
}
else
attacked.MonsterInfo.SendScreen(attack);
attacker.AttackPacket = attack;
attacker.AttackStamp = DateTime.Now;
}






