|
أفضل جواب - كتبه Hassan Emprator |
واساسا كدا كدا اكوادو نفس اكواد السورس الي علي في بي اس كايرو يعني لو انتا حملتو وصلحت الاسكلة ممكن تبعتلي الاكواد في رد في الموضوع وانا هضفها عندي وخلاص
اوك تمام ابدا واحده واحده ولو جالك ايرورو قولي
اول حاجه هتروح Handel.cs وتبحث عن كود:
هنبدله بي دا كود:
هيجللك ايرور في AddClone هتفتح كلاس Entity هضيف دا في اي مكان تحت اي فويد كود:
طيب دلوتقي هيجليلي ايررور ان في ايرورو هيجلي دلوقتي في كلمه اسمها Already لو لاقيت الكود دا معناه ان الكود دا متكرر الي متكرر روح امسحه وسيب الي انا ضايفهولك تمام ؟ هتبحث عن الكود دا كود:
هتلاقيه في دا كود:
بدله بي دا كود:
وهتلا وهتلاقي دا برضو فيه برضو كود:
بدله بي دا كود بلغة HTML:
#region My Pet & Clones
if (Owner.Entity.MyClones.Count > 0)
{
foreach (var clone in Owner.Entity.MyClones.Values)
{
if (clone == null) continue;
if (Kernel.GetDistance(clone.X, clone.Y, Owner.Entity.X, Owner.Entity.Y) <= 18 && !Contains(clone.UID))
{
if (!clone.Dead)
clone.SendSpawn(Owner);
}
}
}
if (Owner.Pet.Pets.Count > 0)
{
foreach (var pet in Owner.Pet.Pets.Values)
{
if (pet == null) continue;
if (pet.Entity == null) continue;
if (Kernel.GetDistance(pet.Entity.X, pet.Entity.Y, Owner.Entity.X, Owner.Entity.Y) <= 18/* && !Contains(pet.Entity.UID)*/)
{
if (!pet.Entity.Dead)
Owner.Send(pet.Entity.SpawnPacket);
// pet.Entity.SendSpawn(Owner, false);
}
}
}
#endregion
كود:
بعدين هتبحث عن الكود دا كود:
تضيف دا تحته كود:
بعديت تبحث عن كود:
هتبدله بي دا كود:
بعدين هتبحث عن الكود دا كود:
هتلاقي فيه داد كود:
بدله بي دا كود:
بعيدن هتبحث عن الكود دا كود:
هتلاقي فيه دا كود:
بدله بي دا كود:
بعدين هتبحث عن الكود دا كود:
هتلاقي فيه دا كود:
امثحه بعيدن هتضور عا الكود دا كود:
هتلاقيه في دا كود:
بدله بي دا كود:
بعدين هيجلك ايررو في الاخر شكله كدا كود:
اعمله // بس كدا تم حلها ولو لسا في مشاكل كلمني |
#region Clone Attack
case 2812:
{
var attackd = BitConverter.ReadUint(packet, 4);
var clonecount = packet[8];
for (int i = 0; i < clonecount; i++)
{
var attackr = BitConverter.ReadUint(packet, 9 + (i * 4));
if (client.Entity.MyClones.Count < clonecount)
return;
var attack = client.Entity.AttackPacket;
if (attack == null)
attack = new GamePackets.Attack(true);
attack.Attacker = attackr;
attack.Attacked = attackd;
if (client.Entity.MyClones.Count == 0)
return;
if (attackd == client.Entity.UID || client.Entity.MyClones.ContainsKey(attackd))
return;
MrHassan.Database.SpellInformation MySpell = null;
try
{
MySpell = Database.SpellTable.GetSpell(client.Spells[12090].ID, client.Spells[12090].Level);
}
catch { MySpell = Database.SpellTable.GetSpell(12090, 4); }
Entity Clone = null;
if (client.Entity.MyClones.TryGetValue(attackr, out Clone))
{
Entity attacked = null;
SobNpcSpawn attackedsob = null;
if (client.Screen.TryGetValue(attackd, out attacked))
{
uint damage = 0;
var spell = Database.SpellTable.GetSpell(attack.MagicType, (byte)attack.MagicLevel);
if (spell == null)
spell = Database.SpellTable.GetSpell(12080, 0);
if (attack.AttackType == GamePackets.Attack.Melee)
{
if (Game.Attacking.Handle.CanAttack(client.Entity, attacked, spell, true))
{
damage = Game.Attacking.Calculate.Melee(client.Entity, attacked, spell, ref attack);
double power = (0.5);
damage = (uint)((double)damage * power / 8);
Game.Attacking.Handle.ReceiveAttack(Clone, attacked, attack, ref damage, spell);
attack.Damage = damage;
client.SendScreen(attack);
}
}
else
{
if (Game.Attacking.Handle.CanAttack(client.Entity, attacked, spell, false))
{
damage = Game.Attacking.Calculate.Magic(client.Entity, attacked, spell, ref attack);
double power = (0.5);
damage = (uint)((double)damage * power / 8);
Game.Attacking.Handle.ReceiveAttack(Clone, attacked, attack, ref damage, spell);
attack.Damage = damage;
client.SendScreen(attack);
}
}
SpellUse suse = new SpellUse(true);
suse.Attacker = Clone.UID;
suse.SpellID = spell.ID;
suse.SpellLevel = spell.Level;
suse.X = attacked.X;
suse.Y = attacked.Y;
suse.Effect1 = attack.Effect1;
suse.AddTarget(attacked, damage, attack);
client.SendScreen(suse, true);
if (client.Account.State == MrHassan.Database.AccountTable.AccountState.ProjectManager)
client.Send(new Message("Clone Attack With Skill: " + spell.Name, System.Drawing.Color.CadetBlue, Message.Talk));
}
else if (client.Screen.TryGetSob(attackd, out attackedsob))
{
uint damage = 0;
var spell = Database.SpellTable.GetSpell(attack.MagicType, (byte)attack.MagicLevel);
if (spell == null)
spell = Database.SpellTable.GetSpell(12080, 0);
if (attack.AttackType == GamePackets.Attack.Melee)
{
if (Game.Attacking.Handle.CanAttack(client.Entity, attackedsob, null))
{
damage = Game.Attacking.Calculate.Melee(client.Entity, attackedsob, ref attack);
double power = ((MySpell.Power / 100.0) / 100.0);
damage = (uint)((double)damage * power);
Game.Attacking.Handle.ReceiveAttack(Clone, attackedsob, attack, damage, null);
attack.Damage = damage;
client.SendScreen(attack);
}
}
else
{
if (Game.Attacking.Handle.CanAttack(client.Entity, attackedsob, spell))
{
damage = Game.Attacking.Calculate.Magic(client.Entity, attackedsob, spell, ref attack);
double power = ((MySpell.Power / 100.0) / 100.0);
damage = (uint)((double)damage * power);
Game.Attacking.Handle.ReceiveAttack(Clone, attackedsob, attack, damage, spell);
attack.Damage = damage;
client.SendScreen(attack);
}
}
SpellUse suse = new SpellUse(true);
suse.Attacker = Clone.UID;
suse.SpellID = spell.ID;
suse.SpellLevel = spell.Level;
suse.X = attackedsob.X;
suse.Y = attackedsob.Y;
suse.Effect1 = attack.Effect1;
suse.AddTarget(attackedsob, damage, attack);
client.SendScreen(suse, true);
if (client.Account.State == MrHassan.Database.AccountTable.AccountState.ProjectManager)
client.Send(new Message("Clone Attack With Skill: " + spell.Name, System.Drawing.Color.CadetBlue, Message.Talk));
}
}
}
break;
}
#endregion
case 12090:
#region ShadowClone
case 12090:
{
attacker.AttackPacket = null;
if (attacker.MyClones.Count > 0)
{
var clones = attacker.MyClones.Values.ToArray();
for (int i = 0; i < clones.Length; i++)
{
var item = clones[i];
if (item == null)
continue;
Data data = new Data(true);
data.UID = item.UID;
data.ID = Network.GamePackets.Data.RemoveEntity;
attacker.Owner.SendScreen(data);
attacker.MyClones[item.UID] = null;
}
attacker.MyClones.Clear();
}
else
{
if (CanUseSpell(spell, attacker.Owner))
{
PrepareSpell(spell, attacker.Owner);
SpellUse spellUse = new SpellUse(true);
spellUse.Attacker = attacker.UID;
spellUse.SpellID = spell.ID;
spellUse.SpellLevel = spell.Level;
spellUse.X = X;
spellUse.Y = Y;
attacker.AddClone(3);
if (spell.Level >= 4)
attacker.AddClone(10003);
foreach (var item in attacker.MyClones.Values)
spellUse.AddTarget(item, 0, attack);
attacker.Owner.SendScreen(spellUse, true);
}
}
break;
}
#endregion
public void AddClone(ushort cloneid)
public void AddClone(ushort cloneid)
{
#region SpawnPacket(10014)
var Entity = new Entity(EntityFlag.Entity, true);
Entity.MonsterInfo = new MonsterInformation();
MonsterInformation.MonsterInformations.TryGetValue(9003, out Entity.MonsterInfo);
Entity.Owner = Owner;
Entity.MonsterInfo.Owner = Entity;
Entity.IsClone = true;
Entity._Name = "ShadowClone";
Entity.clan = Name;
Entity.SpawnPacket = new byte[8 + _Names + _Name.Length + 36];
Array.Copy(SpawnPacket, Entity.SpawnPacket, Entity.SpawnPacket.Length);
WriteStringList(new List<string>() { "ShadowClone", "", "", Name, "" }, _Names, Entity.SpawnPacket);
Entity.Mesh = Mesh;
Entity.Hitpoints = 1;
Entity.UID = Owner.Map.CloneCounter.Next;
Entity.GuildID = Entity.GuildRank = Entity.Action = 0;
Entity.CountryID = Enums.CountryID.Default;
Entity.StatusFlag = Entity.StatusFlag2 = Entity.StatusFlag3 = Entity.StatusFlag4 = 0;
Writer.Write((uint)0, Game.ConquerStructures.Equipment.Steed, Entity.SpawnPacket);
Writer.Write((uint)0, Game.ConquerStructures.Equipment.SteedPlus, Entity.SpawnPacket);
Writer.Write((uint)0, Game.ConquerStructures.Equipment.SteedColor, Entity.SpawnPacket);
Writer.Write((uint)0, Game.ConquerStructures.Equipment.MountArmor, Entity.SpawnPacket);
Writer.Write((uint)0, Game.ConquerStructures.Equipment.Wing, Entity.SpawnPacket);
Writer.Write((uint)0, Game.ConquerStructures.Equipment.WingPlus, Entity.SpawnPacket);
Entity.FlowerRank = 0;
Entity.NobilityRank = ConquerStructures.NobilityRank.Serf;
Entity.Class = Entity.FirstRebornClass = Entity.SecondRebornClass = Entity.JiangTalent = Entity.SubClassesActive = Entity.Reborn = Entity.Level = Entity.ServerID = 0;
Writer.Write((byte)2, 271, Entity.SpawnPacket);
Writer.Write(cloneid, 272, Entity.SpawnPacket);
Entity.OwnerUID = UID;
Entity.JiangActive = false;
Writer.Write((uint)0, 178, Entity.SpawnPacket);
Writer.Write((uint)0, 182, Entity.SpawnPacket);
Writer.Write((uint)0, 186, Entity.SpawnPacket);
Writer.Write((uint)0, _UnionExploits, Entity.SpawnPacket);
Writer.Write((uint)0, _UnionID, Entity.SpawnPacket);
Writer.Write((uint)0, _UnionRank, Entity.SpawnPacket);
Writer.Write((uint)0, _UnionType, Entity.SpawnPacket);
Writer.Write((uint)0, _MyTitle, Entity.SpawnPacket);
Writer.Write((uint)0, _MyTitleScore, Entity.SpawnPacket);
Writer.Write((uint)0, _MyWing, Entity.SpawnPacket);
Entity.MinAttack = MinAttack;
Entity.MaxAttack = Entity.MagicAttack = Math.Max(MinAttack, MaxAttack);
Entity.Appearance = Appearance;
Entity.MapID = Owner.Map.ID;
Entity.SendUpdates = true;
#endregion SpawnPacket(10014)
#region Pet(2035)
MsgPetInfo pet = new MsgPetInfo();
pet.UID = Entity.UID;
pet.PetID = cloneid;
pet.PetType = 2;
pet.Mesh = Mesh;
pet.AttackRange = (byte)AttackRange;
pet.X = X;
pet.Y = Y;
pet.Name = "ShadowClone";
Owner.Send(pet);
#endregion Pet(2035)
MyClones.Add(Entity.UID, Entity);
Owner.SendScreen(Entity.SpawnPacket, true);
Owner.SendScreenSpawn(Entity, true);
#region Data(10010)
Data data = new Data(true);
data.UID = Entity.UID;
data.Facing = Entity.Facing;
data.ID = Data.AddEntity;
data.wParam1 = Entity.X;
data.wParam2 = Entity.Y;
Owner.Send(data);
#endregion Data(10010)
}
#region clone attack
case 2812:
{
var attackd = bitconverter.readuint(packet, 4);
var clonecount = packet[8];
for (int i = 0; i < clonecount; i++)
{
var attackr = bitconverter.readuint(packet, 9 + (i * 4));
if (client.entity.myclones.count < clonecount)
return;
var attack = client.entity.attackpacket;
if (attack == null)
attack = new gamepackets.attack(true);
attack.attacker = attackr;
attack.attacked = attackd;
if (client.entity.myclones.count == 0)
return;
if (attackd == client.entity.uid || client.entity.myclones.containskey(attackd))
return;
mrhassan.database.spellinformation myspell = null;
try
{
myspell = database.spelltable.getspell(client.spells[12090].id, client.spells[12090].level);
}
catch { myspell = database.spelltable.getspell(12090, 4); }
entity clone = null;
if (client.entity.myclones.trygetvalue(attackr, out clone))
{
entity attacked = null;
sobnpcspawn attackedsob = null;
if (client.screen.trygetvalue(attackd, out attacked))
{
uint damage = 0;
var spell = database.spelltable.getspell(attack.magictype, (byte)attack.magiclevel);
if (spell == null)
spell = database.spelltable.getspell(12080, 0);
if (attack.attacktype == gamepackets.attack.melee)
{
if (game.attacking.handle.canattack(client.entity, attacked, spell, true))
{
damage = game.attacking.calculate.melee(client.entity, attacked, spell, ref attack);
double power = (0.5);
damage = (uint)((double)damage * power / 8);
game.attacking.handle.receiveattack(clone, attacked, attack, ref damage, spell);
attack.damage = damage;
client.sendscreen(attack);
}
}
else
{
if (game.attacking.handle.canattack(client.entity, attacked, spell, false))
{
damage = game.attacking.calculate.magic(client.entity, attacked, spell, ref attack);
double power = (0.5);
damage = (uint)((double)damage * power / 8);
game.attacking.handle.receiveattack(clone, attacked, attack, ref damage, spell);
attack.damage = damage;
client.sendscreen(attack);
}
}
spelluse suse = new spelluse(true);
suse.attacker = clone.uid;
suse.spellid = spell.id;
suse.spelllevel = spell.level;
suse.x = attacked.x;
suse.y = attacked.y;
suse.effect1 = attack.effect1;
suse.addtarget(attacked, damage, attack);
client.sendscreen(suse, true);
if (client.account.state == mrhassan.database.accounttable.accountstate.projectmanager)
client.send(new message("clone attack with skill: " + spell.name, system.drawing.color.cadetblue, message.talk));
}
else if (client.screen.trygetsob(attackd, out attackedsob))
{
uint damage = 0;
var spell = database.spelltable.getspell(attack.magictype, (byte)attack.magiclevel);
if (spell == null)
spell = database.spelltable.getspell(12080, 0);
if (attack.attacktype == gamepackets.attack.melee)
{
if (game.attacking.handle.canattack(client.entity, attackedsob, null))
{
damage = game.attacking.calculate.melee(client.entity, attackedsob, ref attack);
double power = ((myspell.power / 100.0) / 100.0);
damage = (uint)((double)damage * power);
game.attacking.handle.receiveattack(clone, attackedsob, attack, damage, null);
attack.damage = damage;
client.sendscreen(attack);
}
}
else
{
if (game.attacking.handle.canattack(client.entity, attackedsob, spell))
{
damage = game.attacking.calculate.magic(client.entity, attackedsob, spell, ref attack);
double power = ((myspell.power / 100.0) / 100.0);
damage = (uint)((double)damage * power);
game.attacking.handle.receiveattack(clone, attackedsob, attack, damage, spell);
attack.damage = damage;
client.sendscreen(attack);
}
}
spelluse suse = new spelluse(true);
suse.attacker = clone.uid;
suse.spellid = spell.id;
suse.spelllevel = spell.level;
suse.x = attackedsob.x;
suse.y = attackedsob.y;
suse.effect1 = attack.effect1;
suse.addtarget(attackedsob, damage, attack);
client.sendscreen(suse, true);
if (client.account.state == mrhassan.database.accounttable.accountstate.projectmanager)
client.send(new message("clone attack with skill: " + spell.name, system.drawing.color.cadetblue, message.talk));
}
}
}
break;
}
#endregion
case 12090:
#region shadowclone
case 12090:
{
attacker.attackpacket = null;
if (attacker.myclones.count > 0)
{
var clones = attacker.myclones.values.toarray();
for (int i = 0; i < clones.length; i++)
{
var item = clones[i];
if (item == null)
continue;
data data = new data(true);
data.uid = item.uid;
data.id = network.gamepackets.data.removeentity;
attacker.owner.sendscreen(data);
attacker.myclones[item.uid] = null;
}
attacker.myclones.clear();
}
else
{
if (canusespell(spell, attacker.owner))
{
preparespell(spell, attacker.owner);
spelluse spelluse = new spelluse(true);
spelluse.attacker = attacker.uid;
spelluse.spellid = spell.id;
spelluse.spelllevel = spell.level;
spelluse.x = x;
spelluse.y = y;
attacker.addclone(3);
if (spell.level >= 4)
attacker.addclone(10003);
foreach (var item in attacker.myclones.values)
spelluse.addtarget(item, 0, attack);
attacker.owner.sendscreen(spelluse, true);
}
}
break;
}
#endregion
public void addclone(ushort cloneid)
public void addclone(ushort cloneid)
{
#region spawnpacket(10014)
var entity = new entity(entityflag.entity, true);
entity.monsterinfo = new monsterinformation();
monsterinformation.monsterinformations.trygetvalue(9003, out entity.monsterinfo);
entity.owner = owner;
entity.monsterinfo.owner = entity;
entity.isclone = true;
entity._name = "shadowclone";
entity.clan = name;
entity.spawnpacket = new byte[8 + _names + _name.length + 36];
array.copy(spawnpacket, entity.spawnpacket, entity.spawnpacket.length);
writestringlist(new list<string>() { "shadowclone", "", "", name, "" }, _names, entity.spawnpacket);
entity.mesh = mesh;
entity.hitpoints = 1;
entity.uid = owner.map.clonecounter.next;
entity.guildid = entity.guildrank = entity.action = 0;
entity.countryid = enums.countryid.default;
entity.statusflag = entity.statusflag2 = entity.statusflag3 = entity.statusflag4 = 0;
writer.write((uint)0, game.conquerstructures.equipment.steed, entity.spawnpacket);
writer.write((uint)0, game.conquerstructures.equipment.steedplus, entity.spawnpacket);
writer.write((uint)0, game.conquerstructures.equipment.steedcolor, entity.spawnpacket);
writer.write((uint)0, game.conquerstructures.equipment.mountarmor, entity.spawnpacket);
writer.write((uint)0, game.conquerstructures.equipment.wing, entity.spawnpacket);
writer.write((uint)0, game.conquerstructures.equipment.wingplus, entity.spawnpacket);
entity.flowerrank = 0;
entity.nobilityrank = conquerstructures.nobilityrank.serf;
entity.class = entity.firstrebornclass = entity.secondrebornclass = entity.jiangtalent = entity.subclassesactive = entity.reborn = entity.level = entity.serverid = 0;
writer.write((byte)2, 271, entity.spawnpacket);
writer.write(cloneid, 272, entity.spawnpacket);
entity.owneruid = uid;
entity.jiangactive = false;
writer.write((uint)0, 178, entity.spawnpacket);
writer.write((uint)0, 182, entity.spawnpacket);
writer.write((uint)0, 186, entity.spawnpacket);
writer.write((uint)0, _unionexploits, entity.spawnpacket);
writer.write((uint)0, _unionid, entity.spawnpacket);
writer.write((uint)0, _unionrank, entity.spawnpacket);
writer.write((uint)0, _uniontype, entity.spawnpacket);
writer.write((uint)0, _mytitle, entity.spawnpacket);
writer.write((uint)0, _mytitlescore, entity.spawnpacket);
writer.write((uint)0, _mywing, entity.spawnpacket);
entity.minattack = minattack;
entity.maxattack = entity.magicattack = math.max(minattack, maxattack);
entity.appearance = appearance;
entity.mapid = owner.map.id;
entity.sendupdates = true;
#endregion spawnpacket(10014)
#region pet(2035)
msgpetinfo pet = new msgpetinfo();
pet.uid = entity.uid;
pet.petid = cloneid;
pet.pettype = 2;
pet.mesh = mesh;
pet.attackrange = (byte)attackrange;
pet.x = x;
pet.y = y;
pet.name = "shadowclone";
owner.send(pet);
#endregion pet(2035)
myclones.add(entity.uid, entity);
owner.sendscreen(entity.spawnpacket, true);
owner.sendscreenspawn(entity, true);
#region data(10010)
data data = new data(true);
data.uid = entity.uid;
data.facing = entity.facing;
data.id = data.addentity;
data.wparam1 = entity.x;
data.wparam2 = entity.y;
owner.send(data);
#endregion data(10010)
}
public void addclone(ushort cloneid)
{
#region spawnpacket(10014)
var entity = new entity(entityflag.entity, true);
entity.monsterinfo = new monsterinformation();
monsterinformation.monsterinformations.trygetvalue(9003, out entity.monsterinfo);
entity.owner = owner;
entity.monsterinfo.owner = entity;
entity.isclone = true;
entity._name = "shadowclone";
entity.clan = name;
entity.spawnpacket = new byte[8 + _names + _name.length + 36];
array.copy(spawnpacket, entity.spawnpacket, entity.spawnpacket.length);
writestringlist(new list<string>() { "shadowclone", "", "", name, "" }, _names, entity.spawnpacket);
entity.mesh = mesh;
entity.hitpoints = 1;
entity.uid = owner.map.clonecounter.next;
entity.guildid = entity.guildrank = entity.action = 0;
entity.countryid = enums.countryid.default;
entity.statusflag = entity.statusflag2 = entity.statusflag3 = entity.statusflag4 = 0;
writer.write((uint)0, game.conquerstructures.equipment.steed, entity.spawnpacket);
writer.write((uint)0, game.conquerstructures.equipment.steedplus, entity.spawnpacket);
writer.write((uint)0, game.conquerstructures.equipment.steedcolor, entity.spawnpacket);
writer.write((uint)0, game.conquerstructures.equipment.mountarmor, entity.spawnpacket);
writer.write((uint)0, game.conquerstructures.equipment.wing, entity.spawnpacket);
writer.write((uint)0, game.conquerstructures.equipment.wingplus, entity.spawnpacket);
entity.flowerrank = 0;
entity.nobilityrank = conquerstructures.nobilityrank.serf;
entity.class = entity.firstrebornclass = entity.secondrebornclass = entity.jiangtalent = entity.subclassesactive = entity.reborn = entity.level = entity.serverid = 0;
writer.write((byte)2, 271, entity.spawnpacket);
writer.write(cloneid, 272, entity.spawnpacket);
entity.owneruid = uid;
entity.jiangactive = false;
writer.write((uint)0, 178, entity.spawnpacket);
writer.write((uint)0, 182, entity.spawnpacket);
writer.write((uint)0, 186, entity.spawnpacket);
writer.write((uint)0, _unionexploits, entity.spawnpacket);
writer.write((uint)0, _unionid, entity.spawnpacket);
writer.write((uint)0, _unionrank, entity.spawnpacket);
writer.write((uint)0, _uniontype, entity.spawnpacket);
writer.write((uint)0, _mytitle, entity.spawnpacket);
writer.write((uint)0, _mytitlescore, entity.spawnpacket);
writer.write((uint)0, _mywing, entity.spawnpacket);
entity.minattack = minattack;
entity.maxattack = entity.magicattack = math.max(minattack, maxattack);
entity.appearance = appearance;
entity.mapid = owner.map.id;
entity.sendupdates = true;
#endregion spawnpacket(10014)
#region pet(2035)
msgpetinfo pet = new msgpetinfo();
pet.uid = entity.uid;
pet.petid = cloneid;
pet.pettype = 2;
pet.mesh = mesh;
pet.attackrange = (byte)attackrange;
pet.x = x;
pet.y = y;
pet.name = "shadowclone";
owner.send(pet);
#endregion pet(2035)
myclones.add(entity.uid, entity);
owner.sendscreen(entity.spawnpacket, true);
owner.sendscreenspawn(entity, true);
#region data(10010)
data data = new data(true);
data.uid = entity.uid;
data.facing = entity.facing;
data.id = data.addentity;
data.wparam1 = entity.x;
data.wparam2 = entity.y;
owner.send(data);
#endregion data(10010)
}
public void AddClone(ushort cloneid)
public SafeDictionary<uint, Entity> MyClones = new SafeDictionary<uint, Entity>();
public bool IsClone = false;
public void AddClone(ushort cloneid)
{
#region SpawnPacket(10014)
var Entity = new Entity(EntityFlag.Entity, true);
Entity.MonsterInfo = new MonsterInformation();
MonsterInformation.MonsterInformations.TryGetValue(9003, out Entity.MonsterInfo);
Entity.Owner = Owner;
Entity.MonsterInfo.Owner = Entity;
Entity.IsClone = true;
Entity._Name = "ShadowClone";
Entity.clan = Name;
Entity.SpawnPacket = new byte[8 + _Names + _Name.Length + 36];
Array.Copy(SpawnPacket, Entity.SpawnPacket, Entity.SpawnPacket.Length);
WriteStringList(new List<string>() { "ShadowClone", "", "", Name, "" }, _Names, Entity.SpawnPacket);
Entity.Mesh = Mesh;
Entity.Hitpoints = 1;
Entity.UID = Owner.Map.CloneCounter.Next;
Entity.GuildID = Entity.GuildRank = Entity.Action = 0;
Entity.CountryID = Enums.CountryID.Default;
Entity.StatusFlag = Entity.StatusFlag2 = Entity.StatusFlag3 = Entity.StatusFlag4 = 0;
Writer.Write((uint)0, Game.ConquerStructures.Equipment.Steed, Entity.SpawnPacket);
Writer.Write((uint)0, Game.ConquerStructures.Equipment.SteedPlus, Entity.SpawnPacket);
Writer.Write((uint)0, Game.ConquerStructures.Equipment.SteedColor, Entity.SpawnPacket);
Writer.Write((uint)0, Game.ConquerStructures.Equipment.MountArmor, Entity.SpawnPacket);
Writer.Write((uint)0, Game.ConquerStructures.Equipment.Wing, Entity.SpawnPacket);
Writer.Write((uint)0, Game.ConquerStructures.Equipment.WingPlus, Entity.SpawnPacket);
Entity.FlowerRank = 0;
Entity.NobilityRank = ConquerStructures.NobilityRank.Serf;
Entity.Class = Entity.FirstRebornClass = Entity.SecondRebornClass = Entity.JiangTalent = Entity.SubClassesActive = Entity.Reborn = Entity.Level = Entity.ServerID = 0;
Writer.Write((byte)2, 271, Entity.SpawnPacket);
Writer.Write(cloneid, 272, Entity.SpawnPacket);
Entity.OwnerUID = UID;
Entity.JiangActive = false;
Writer.Write((uint)0, 178, Entity.SpawnPacket);
Writer.Write((uint)0, 182, Entity.SpawnPacket);
Writer.Write((uint)0, 186, Entity.SpawnPacket);
Writer.Write((uint)0, _UnionExploits, Entity.SpawnPacket);
Writer.Write((uint)0, _UnionID, Entity.SpawnPacket);
Writer.Write((uint)0, _UnionRank, Entity.SpawnPacket);
Writer.Write((uint)0, _UnionType, Entity.SpawnPacket);
Writer.Write((uint)0, _MyTitle, Entity.SpawnPacket);
Writer.Write((uint)0, _MyTitleScore, Entity.SpawnPacket);
Writer.Write((uint)0, _MyWing, Entity.SpawnPacket);
Entity.MinAttack = MinAttack;
Entity.MaxAttack = Entity.MagicAttack = Math.Max(MinAttack, MaxAttack);
Entity.Appearance = Appearance;
Entity.MapID = Owner.Map.ID;
Entity.SendUpdates = true;
#endregion SpawnPacket(10014)
#region Pet(2035)
MsgPetInfo pet = new MsgPetInfo();
pet.UID = Entity.UID;
pet.PetID = cloneid;
pet.PetType = 2;
pet.Mesh = Mesh;
pet.AttackRange = (byte)AttackRange;
pet.X = X;
pet.Y = Y;
pet.Name = "ShadowClone";
Owner.Send(pet);
#endregion Pet(2035)
MyClones.Add(Entity.UID, Entity);
Owner.SendScreen(Entity.SpawnPacket, true);
Owner.SendScreenSpawn(Entity, true);
#region Data(10010)
Data data = new Data(true);
data.UID = Entity.UID;
data.Facing = Entity.Facing;
data.ID = Data.AddEntity;
data.wParam1 = Entity.X;
data.wParam2 = Entity.Y;
Owner.Send(data);
#endregion Data(10010)
الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1) | |
أدوات الموضوع | |
|
الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
مشكلة بخصوص اسكل ShadowClone | OmarMimi5095 | مشكلات السيرفيرات كونكر الشخصيه | 1 | 2021-08-05 04:23 AM |
بخصوص اسكلة ThunedCloud | Mostafa Shalby | مشكلات السيرفيرات كونكر الشخصيه | 13 | 2019-10-29 06:45 PM |
حل مشكله اسكلة ShadowClone | Tefa | تطوير سيرفرات كونكر | 2 | 2019-10-24 02:55 PM |
مشكله بخصوص ShadowClone | uncelsam | مشكلات السيرفيرات كونكر الشخصيه | 2 | 2019-10-23 08:06 PM |
مشكلة فى اسكلة ShadowClone | osama | مشكلات السيرفيرات كونكر الشخصيه | 2 | 2019-08-05 09:10 AM |