please i need help please. igot no idea

04/01/2012 15:15 marcbacor6666#1
need help.


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;
}
04/01/2012 15:50 Korvacs#2
Any chance of telling us what the problem is with the lines marked in red, or are we supposed to guess from the tens of thousands of possible errors being thrown?
04/01/2012 15:52 injection illusion logic#3
that's 5533 source as far as i figured out
what do u exactly need to do ?

edit :
anyway as far from what i got

uint id = itemdroplist[generateItemId];
if defining a new unsigned int called itemdroplist which get the items to be dropped from the database then it simple adjust it's + and it's quality by the levels


MonsterInfo.Drop(killer);
if there is killer and there is a monster it simply attach this item to this player so no one be able to pick it up till it's flag is updated after some seconds so others may pick it up ? which some servers made the flag to pick it up by others > the flag to disappear , so the item disappear before anyone loot it incase the killer didnt loot it


if (attacked.Hitpoints <= damage)
{
if (attacker.Owner.QualifierGroup != null)
attacker.Owner.QualifierGroup.UpdateDamage(attacke r.Owner, attacked.Hitpoints);
attacked.CauseOfDeathIsMagic = true;
attacked.Die(attacker);
}

if the hitpoints (health) < the dmg done on it and if the qualifiergroup(duno what it is there) isnt null then it update the dmg (show the hit) then it turn the bool of attacked.causedofdeathismagic to true which helps if u need to know if this monster is dead by a magic or physical hit which not included in many sources , i saw this in the public source of 5533 (as far as i remember)
the it attacked.die(attacker) means the attacked target (monster or player) send to die method who killed him so incase it's player it send packets of "u have been killed by someone"

umm well sorry my english is a shit , even if i understand it all at some point i cant explain it well but guess this was clear enough
P.S this all is predictions and not a certain information as u gives me a layer of a cake and asking me how the whole cake taste , anyone feel free to correct me if im wrong
goodluck
04/01/2012 16:11 marcbacor6666#4
thank you this may help
04/01/2012 16:20 Korvacs#5
Why dont you just tell us what the problem is x.x
04/01/2012 16:25 injection illusion logic#6
Quote:
Originally Posted by Korvacs View Post
Why dont you just tell us what the problem is x.x
exactly , if u told us what's the problem it will be pretty easier to help u to get it done
also if u just want to learn then ask for any random thing u want to learn as example how to let monsters drop only super items for a level 1 and the normal drop rate for all the other levels , an example will make it more clear

anyway goodluck
04/02/2012 00:21 marcbacor6666#7
iv fix this problem. but another 1 comes out . when i create a new character it automatically logins but freeze and there will be couple of errors in the console saying duplicate entry blah blah blah blah .

but when i exit the client using taskmanager after it was freeze and relogin the newly chreated account+charater will login without problem.

in old players post. someone from elitepvpers ask thesame question on how to fix it but the experts only answer by hints.

1 solution is to make the client dc after the character is created or to make the client "Character created. Use back button so you can login!";

now my problem is how to make it like that.?