بسم الله و الصلاة و السلام علي رسول الله
اول حاجه لما لاعب زيه يموته
هتفتح كلاس Entity.cs
هتبحث بعد كده عن public void Die(Entity killer)
تحت اول قوس حط الكود ده
Network.GamePackets.Attack animationdie = new Attack(true);
animationdie.Attacker = killer.UID;
animationdie.Attacked = this.UID;
animationdie.AttackType = Network.GamePackets.Attack.Kill;
animationdie.X = this.X;
animationdie.Y = this.Y;
this.SendScreen(animationdie);
بس كده و اعمل بيلد و عيش
ده بالنسبه للاشخاص ندخل بقا للوحوش و الجردات
ادخل علي handle.cs
ابحث عن else if (attacker.MonsterInfo.SpellID == 0)
انزل تحت لحد
if (attacked.Hitpoints <= damage)
{
هتلاقي // attacked.Die(attacker.UID);
امسحها و حط ده مكنها
foreach (var client in Program.Values)
attacked.Die(attacker);
و الله الموفق و المستعان
uncelsam
2019-07-14, 03:40 AM
اقسم بالله ما في منك اتنين بجد عاااش فشخ
في طلب تاني معلش من ضمن المساعده انا عاوز اضيفك فيس او واتس واحنا مع بعض هنا بردو ممكن يرجوله ؟
اقسم بالله ما في منك اتنين بجد عاااش فشخ
في طلب تاني معلش من ضمن المساعده انا عاوز اضيفك فيس او واتس واحنا مع بعض هنا بردو ممكن يرجوله ؟
حبيبي <3 اكيد يا غالي بعتلك الفيس في رساله علي الخاص
عاش
حبيبي :emoji21:
فنان
حبيبي <3
Hassan Emprator
2019-07-21, 05:08 PM
حبيبي :emoji21:
حبيبي <3
طيب لو عايز العكس انا عايز الغي الموضوع دا لانه عندي في الجردات وكلو بيموت لازما يقع
طيب لو عايز العكس انا عايز الغي الموضوع دا لانه عندي في الجردات وكلو بيموت لازما يقع
بدل ده public void Die(Entity killer)
ب ده
public void Die(Entity killer)
{
try
{
#region Unique Killer
if (EntityFlag == EntityFlag.Entity && killer.EntityFlag == EntityFlag.Entity)
{
if (killer.MapID == 2014)
{
if (killer.MapID == 2014)
{
killer.Owner.uniquepoints += 1;
if (killer.Owner.uniquepoints >= 20)
{
Network.GamePackets.NpcReply npc = new Network.GamePackets.NpcReply(6, "Congratulations, You Have Now " + killer.Owner.uniquepoints + " Points you can claim your prize now!");
npc.OptionID = 255;
killer.Owner.Send(npc.ToArray());
}
else
{
Network.GamePackets.NpcReply npc = new Network.GamePackets.NpcReply(6, "You Have Now " + killer.Owner.uniquepoints + " Points Congratz you still need " + (20 - killer.Owner.uniquepoints) + " more!");
npc.OptionID = 255;
killer.Owner.Send(npc.ToArray());
}
}
}
#endregion
#region CpsDraobMAP
if (killer.MapID == 1234)
{
if (ConquerPoints >= 1200)
{
ConquerPoints -= 1200;
killer.ConquerPoints += 1200;
}
}
if (killer.MapID == 1235)
{
if (ConquerPoints >= 800)
{
ConquerPoints -= 800;
killer.ConquerPoints += 800;
}
}
if (killer.MapID == 1236)
{
if (ConquerPoints >= 600)
{
ConquerPoints -= 600;
killer.ConquerPoints += 600;
}
}
if (killer.MapID == 1237)
{
if (ConquerPoints >= 400)
{
ConquerPoints -= 400;
killer.ConquerPoints += 400;
}
}
if (killer.MapID == 1238)
{
if (ConquerPoints >= 500)
{
ConquerPoints -= 500;
killer.ConquerPoints += 500;
}
}
#endregion
#region Xocount and countkilling
if (Owner.Spells.ContainsKey(12660) && Owner.Player.EpicWarrior())
{
XPCountTwist = Owner.XPCount;
}
if (killer.CountKilling >= 100 && killer.HeavenBlessing > 0 && killer.BlessedHunting < 4578)
{
killer.CountKilling = 0;
killer.BlessedHunting += 1;
}
#endregion
#region Flag
if (ContainsFlag3((ulong)1UL << 53))
RemoveFlag3((ulong)1UL << 53);
if (Owner.Spells.ContainsKey(12660))
{
XPCountTwist = Owner.XPCount;
}
#endregion
#region Experince
if (!Constants.PKFreeMaps.Contains(MapID))
{
if (Level < 140 && Experience != 0)
{
ulong amount = 0;
if (VIPLevel < 4)
{
Experience -= Math.Min(Hitpoints * MaxHitpoints * Level, Experience);
amount = Math.Min(Hitpoints * MaxHitpoints * Level, Experience);
killer.Owner.IncreaseExperience(amount, false);
}
else
{
Experience -= Math.Min(Hitpoints * MaxHitpoints * Level, Experience) / 2;
amount = Math.Min(Hitpoints * MaxHitpoints * Level, Experience) / 2;
killer.Owner.IncreaseExperience(amount, false);
}
Owner.Send(new Message("You lost " + amount + " EXP!", System.Drawing.Color.Red, Message.System));
}
}
#endregion
if (killer.MapID == 3979)
{
killer.MessiPoints += 25;
}
Owner.Send(new Message("You are dead.", System.Drawing.Color.Red, Message.System));
}
#region MyClones
if (MyClones.Count > 0)
{
foreach (var item in MyClones.Values)
{
Data data = new Data(true);
data.UID = item.UID;
data.ID = Network.GamePackets.Data.RemoveEntity;
item.MonsterInfo.SendScreen(data);
}
MyClones.Clear();
}
#endregion
#region Perfection
if (EntityFlag == EntityFlag.Entity && Perfection != null)
{
Game.Enums.PerfectionEffect effect = Enums.PerfectionEffect.StraightLife;
byte chance = 0;
new MsgRefineEffect().HandleStraightLife(this, ref chance);
killer.StraightLife = 0;//true
if (Kernel.Rate(chance))
{
new MsgRefineEffect().SendEffect(this, killer, effect);
}
}
#endregion
#region CaptureTheFlag
if (killer.GuildID != 0 && killer.MapID == CaptureTheFlag.MapID && CaptureTheFlag.IsWar)
{
if (GuildID != 0)
{
if (killer.Owner.Guild.Enemy.ContainsKey(GuildID))
killer.Owner.Guild.CTFPoints += 1;
else if (killer.Owner.Guild.Ally.ContainsKey(GuildID))
killer.Owner.Guild.CTFPoints += 1;
}
if (ContainsFlag2(Network.GamePackets.Update.Flags2.C arryingFlag))
{
StaticEntity entity = new StaticEntity((uint)(X * 1000 + Y), X, Y, MapID);
entity.DoFlag();
Owner.Map.AddStaticEntity(entity);
RemoveFlag2(Network.GamePackets.Update.Flags2.Carr yingFlag);
Owner.Send(Program.World.CTF.generateTimer(0));
Owner.Send(Program.World.CTF.generateEffect(Owner) );
if (killer.GuildID != GuildID)
{
Killer.AddFlag2(Network.GamePackets.Update.Flags2. CarryingFlag);
Time32 end = FlagStamp.AddSeconds(60) - Time32.Now;
killer.FlagStamp = end;
killer.Owner.Send(Program.World.CTF.generateTimer( (uint)end.Value));
killer.Owner.Send(Program.World.CTF.generateEffect (killer.Owner));
killer.Owner.Guild.CTFPoints += 3;
}
}
}
#endregion
#region Die Guild System
if (killer.EntityFlag == EntityFlag.Entity && EntityFlag == EntityFlag.Entity)
{
if (Owner.Guild != null && killer.Owner.Guild != null && Owner.Map.ID == 1015)
{
Owner.Guild.pkp_donation += 2;
Owner.Guild.pkp_donation -= 2;
foreach (var client in Kernel.GamePool.Values)
{
client.Send(new Message("The " + killer.Owner.AsMember.Rank + " " + killer.Name + " of the Guild " + killer.Owner.Guild.Name + " has killed the " + killer.Owner.AsMember.Rank + " " + Name + " of the Guild " + Owner.Guild.Name + " at BirdIsland!", System.Drawing.Color.Yellow, Network.GamePackets.Message.Guild));
}
}
if (Owner.Guild != null && killer.Owner.Guild != null && Owner.Map.ID == 1020)
{
Owner.Guild.pkp_donation += 2;
Owner.Guild.pkp_donation -= 2;
foreach (var client in Kernel.GamePool.Values)
client.Send(new Message("The " + killer.Owner.AsMember.Rank + " " + killer.Name + " of the Guild " + killer.Owner.Guild.Name + " has killed the " + killer.Owner.AsMember.Rank + " " + Name + " of the Guild " + Owner.Guild.Name + " at ApeCity!", System.Drawing.Color.Yellow, Network.GamePackets.Message.Guild));
}
if (Owner.Guild != null && killer.Owner.Guild != null && Owner.Map.ID == 1011)
{
Owner.Guild.pkp_donation += 2;
Owner.Guild.pkp_donation -= 2;
foreach (var client in Kernel.GamePool.Values)
client.Send(new Message("The " + killer.Owner.AsMember.Rank + " " + killer.Name + " of the Guild " + killer.Owner.Guild.Name + " has killed the " + killer.Owner.AsMember.Rank + " " + Name + " of the Guild " + Owner.Guild.Name + " at PhoenixCastle!", System.Drawing.Color.Yellow, Network.GamePackets.Message.Guild));
}
if (Owner.Guild != null && killer.Owner.Guild != null && Owner.Map.ID == 1000)
{
Owner.Guild.pkp_donation += 2;
Owner.Guild.pkp_donation -= 2;
foreach (var client in Kernel.GamePool.Values)
client.Send(new Message("The " + killer.Owner.AsMember.Rank + " " + killer.Name + " of the Guild " + killer.Owner.Guild.Name + " has killed the " + killer.Owner.AsMember.Rank + " " + Name + " of the Guild " + Owner.Guild.Name + " at DesertCity!", System.Drawing.Color.Yellow, Network.GamePackets.Message.Guild));
}
}
#endregion
#region Booth
if (EntityFlag == EntityFlag.Entity)
{
Owner.XPCount = 0;
if (OnDeath != null) OnDeath(this);
if (Owner.Booth != null)
{
Owner.Booth.Remove();
Owner.Booth = null;
}
}
#endregion
#region killerCountM
killer.CountKilling++;
killer.KillCount++;
killer.KillCount2++;
Killer = killer;
Hitpoints = 0;
DeathStamp = Time32.Now;
ToxicFogLeft = 0;
#endregion
#region Companion
if (Companion)
{
if (Hitpoints < 1)
{
Hitpoints = 0;
AddFlag((ulong)Network.GamePackets.Update.Flags.Gh ost | (ulong)Network.GamePackets.Update.Flags.Dead | (ulong)Network.GamePackets.Update.Flags.FadeAway);
Attack attackx = new Attack(true);
attackx.Attacked = UID;
attackx.AttackType = Network.GamePackets.Attack.Kill;
attackx.X = X;
attackx.Y = Y;
MonsterInfo.SendScreen(attackx);
Owner.Map.RemoveEntity(this);
Owner.Pet.RemovePet(pettype);
}
}
#endregion
if (EntityFlag == EntityFlag.Entity)
{
if (killer.EntityFlag == EntityFlag.Entity)
{
if (Constants.PKFreeMaps.Contains(killer.MapID))
goto Over;
if (killer.Owner.Map.BaseID == 700)
goto Over;
if (((killer.PKMode != Mr_Panda.Game.Enums.PKMode.Jiang) && (killer.PKMode != Mr_Panda.Game.Enums.PKMode.Guild) && (killer.PKMode != Mr_Panda.Game.Enums.PKMode.Revenge) && (!ContainsFlag(Network.GamePackets.Update.Flags.Fl ashingName) && !ContainsFlag(Network.GamePackets.Update.Flags.Bla ckName)) && !this.ContainsFlag(1L)) && !this.ContainsFlag(0x8000L))
{
killer.AddFlag(Network.GamePackets.Update.Flags.Fl ashingName);
killer.FlashingNameStamp = Time32.Now;
killer.FlashingNameTime = 60;
if (killer.GuildID != 0)
{
if (killer.Owner.Guild.Enemy.ContainsKey(GuildID))
{
killer.PKPoints += 3;
killer.Cursed = Time32.Now;
Update update = new Update(true) { UID = killer.UID };
update.Append(Network.GamePackets.Update.CursedTim er, UID);
killer.AddFlag(Network.GamePackets.Update.Flags.Cu rsed);
killer.Owner.Send(update.ToArray());
}
else
{
if (!killer.Owner.Enemy.ContainsKey(UID))
killer.PKPoints += 10;
else
killer.PKPoints += 5;
killer.PKPoints += 3;
killer.Cursed = Time32.Now;
Update update = new Update(true) { UID = killer.UID };
update.Append(Network.GamePackets.Update.CursedTim er, UID);
killer.AddFlag(Network.GamePackets.Update.Flags.Cu rsed);
killer.Owner.Send(update.ToArray());
}
}
else
{
if (!killer.Owner.Enemy.ContainsKey(UID))
{
killer.PKPoints += 10;
}
else
{
killer.PKPoints += 5;
}
killer.Cursed = Time32.Now;
Update update = new Update(true) { UID = killer.UID };
update.Append(Network.GamePackets.Update.CursedTim er, UID);
killer.AddFlag(Network.GamePackets.Update.Flags.Cu rsed);
killer.Owner.Send(update.ToArray());
}
if (killer.EntityFlag == Game.EntityFlag.Entity)
{
if (EntityFlag == Game.EntityFlag.Entity)
{
Game.PkExpeliate pk = new Game.PkExpeliate();
if (!killer.PkExplorerValues.ContainsKey(UID))
{
pk.UID = killer.UID;
pk.killedUID = UID;
pk.Name = Name;
pk.KilledAt = GetMapName(MapID);
pk.LostExp = 0;
pk.Times = 1;
pk.Potency = (uint)BattlePower;
pk.Level = Level;
PkExpelTable.PkExploitAdd(killer.Owner, pk);
}
else
{
pk.UID = killer.UID;
pk.killedUID = UID;
pk.Name = Name;
pk.KilledAt = GetMapName(MapID);
pk.LostExp = 0;
killer.PkExplorerValues[UID].Times += 1;
pk.Times = killer.PkExplorerValues[UID].Times;
pk.Potency = (uint)BattlePower;
pk.Level = Level;
PkExpelTable.Update(killer.Owner, pk);
}
}
}
Network.PacketHandler.AddEnemy(this.Owner, killer.Owner);
}
if (killer.PKMode != Mr_Panda.Game.Enums.PKMode.Jiang)
{
if (killer.EntityFlag == Mr_Panda.Game.EntityFlag.Entity)
{
if (Kernel.Rate(50))
{
DropRandomStuff(Killer);
}
}
}
}
}
Over:
Network.GamePackets.Attack attack = new Attack(true);
attack.Attacker = killer.UID;
attack.Attacked = UID;
attack.AttackType = Network.GamePackets.Attack.Kill;
attack.X = X;
attack.Y = Y;
if (EntityFlag == EntityFlag.Entity)
{
AddFlag(Network.GamePackets.Update.Flags.Ghost);
AddFlag(Network.GamePackets.Update.Flags.Dead);
RemoveFlags();
SpiritFocus = false;
#region Aura
if (Aura_isActive)
{
RemoveFlag2(Aura_actType);
Owner.removeAuraBonuses(Aura_actType, Aura_actPower, 1);
Aura_isActive = false;
AuraTime = 0;
Aura_actType = 0;
Aura_actPower = 0;
}
#endregion
if (Body % 10 < 3)
TransformationID = 99;
else
TransformationID = 98;
Owner.SendScreen(attack, true);
Owner.Send(new MapStatus() { BaseID = Owner.Map.BaseID, ID = Owner.Map.ID, Status = Database.MapsTable.MapInformations[Owner.Map.ID].Status, Weather = Database.MapsTable.MapInformations[Owner.Map.ID].Weather });
Owner.EndQualifier();
}
else
{
if (!Companion && !IsDropped)
MonsterInfo.Drop(killer);
Kernel.Maps[MapID].Floor[X, Y, MapObjType, this] = true;
if (killer.EntityFlag == EntityFlag.Entity)
{
#region Team
if (killer.Owner.Team != null)
{
killer.Owner.IncreaseExperience(MaxHitpoints, true);
foreach (Client.GameState teammate in killer.Owner.Team.Teammates)
{
if (Kernel.GetDistance(killer.X, killer.Y, teammate.Player.X, teammate.Player.Y) <= Constants.pScreenDistance)
{
if (killer.UID != teammate.Player.UID)
{
uint extraExperience = MaxHitpoints / 2;
if (killer.Spouse == teammate.Player.Name)
extraExperience = MaxHitpoints * 2;
byte TLevelN = teammate.Player.Level;
if (killer.Owner.Team.CanGetNoobExperience(teammate))
{
if (teammate.Player.Level < 137)
{
extraExperience *= 2;
teammate.IncreaseExperience(extraExperience, false);
teammate.Send(Constants.NoobTeamExperience(extraEx perience));
}
}
else
{
if (teammate.Player.Level < 137)
{
teammate.IncreaseExperience(extraExperience, false);
teammate.Send(Constants.TeamExperience(extraExperi ence));
}
}
byte TLevelNn = teammate.Player.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].Player.Name + ", has gained " + (uint)(i * 7.7F) + " virtue points for power leveling the rookies.", System.Drawing.Color.Red, Message.Team));
}
}
}
}
}
}
}
#endregion
if (killer.OnKOSpell())
killer.KOSpellTime++;
else killer.Owner.XPCount++;
}
}
if (EntityFlag == EntityFlag.Entity)
if (OnDeath != null) OnDeath(this);
}
catch (Exception e)
{
Console.WriteLine(e);
}
}