المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : KingsWar By Mr.khled


SourceDanger
2020-02-19, 01:43 PM
مبدائيا نصلي على حضرت النبي

انا كنت قايل اني هنزل المسابقه هنا وانا لم بقول بعمل علطول

الحمد الله انا مش بى ابص لى اي شئ حتها لو كبير لانو بختصار الدنيا فنيه

يالا نبداء موضعنا بقا على بركه الله

اول حاجه شرح المسابقه علشان الى معندهوش فكره عنها

5iOnwaCVCI8


جميل جدا نخش بقا على التركيب

دة شرح التركيب كامل !! يالا علشان خاطر محدش يتعب نفسو فى حاجه انا عملتلكو ولله شرح جميل قوي مده 17 دقيقه بس هتستفيدو منو قوي

5Ypv-XiXyp8


اول شئ نصلي على حضرت النبي

اول شئ هنعمل كلاس جديد باسم

KingsWar.cs


using Conquer_Online_Server.Network.GamePackets;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Conquer_Online_Server.Events
{
public class KingsWar
{
public static System.DateTime StartTime;
public static Time32 ScoreSendStamp;
public static int StartHour = 18, StartMinute = 00, EndMinute = 30;
public static bool IsWar = false;
public static bool FirstRound = false;
public static bool Claim
{
get { return Program.Vars["KingsWarClaim"]; }
set { Program.Vars["KingsWarClaim"] = value; }
}
public static uint KeeperID
{
get { return Program.Vars["KingsWarID"]; }
set { Program.Vars["KingsWarID"] = value; }
}
public static SobNpcSpawn Pole;
public static Client.GameState PoleKeeper, CurrentTop;
private static bool changed = false;
private static string[] scoreMessages;
public static SafeDictionary<uint, Client.GameState> Scores = new SafeDictionary<uint, Client.GameState>();
public static void Initiate()
{
var Map = Kernel.Maps[1500];
Pole = (SobNpcSpawn)Map.Npcs[1500];
}
public static void Start()
{
StartTime = System.DateTime.Now;
Scores = new SafeDictionary<uint, Client.GameState>(100);
Pole.Hitpoints = Pole.MaxHitpoints;
Kernel.SendWorldMessage(new Message("KingsWar war has began!", System.Drawing.Color.Red, Message.Center), Program.Values);
FirstRound = true;
foreach (var Client in Kernel.GamePool.Values)
{
Client.KingsWarScore = 0;
}
Claim = false;
IsWar = true;
foreach (var client in Program.Values)
client.MessageBox("KingsWar has started. JOIN NOW ?",
(p) => { p.Player.Teleport(1002, 301, 160); }, null, 60);
}
public static void End()
{
if (PoleKeeper != null)
{
Kernel.SendWorldMessage(new Message(PoleKeeper.Player.Name + " has won KingsWar!---KingsWar has ended! Go clime Your Prize", System.Drawing.Color.White, Message.Center), Program.Values);
}
else
{
Kernel.SendWorldMessage(new Message("KingsWar has ended and there was no winner!", System.Drawing.Color.Red, Message.Center), Program.Values);
}
IsWar = false;
Claim = true;
}
public static void Reset()
{
Scores = new SafeDictionary<uint, Client.GameState>(100);
Pole.MaxHitpoints = Pole.MaxHitpoints;
Pole.Hitpoints = Pole.MaxHitpoints;
foreach (var Client in Kernel.GamePool.Values)
{
Client.KingsWarScore = 0;
}
IsWar = true;
}
public static void FinishRound()
{
FirstRound = false;
SortScores(out PoleKeeper);
if (PoleKeeper != null)
{
KeeperID = PoleKeeper.Player.UID;
Kernel.SendWorldMessage(new Message(PoleKeeper.Player.Name + ", has won this KingWar Round!", System.Drawing.Color.Red, Message.Center), Program.Values);
Pole.Name = PoleKeeper.Player.Name;
}
Pole.MaxHitpoints = Pole.MaxHitpoints;
Pole.Hitpoints = Pole.MaxHitpoints;
Kernel.SendWorldMessage(Pole, Program.Values, (ushort)1500);
Reset();
}
public static void AddScore(uint addScore, Client.GameState client)
{
if (client != null)
{
client.KingsWarScore += addScore;
changed = true;
if (!Scores.ContainsKey(client.Player.UID))
Scores.Add(client.Player.UID, client);
if ((int)Pole.Hitpoints <= 0)
{
FinishRound();
return;
}
}
}
public static void SendScores()
{
if (scoreMessages == null)
scoreMessages = new string[0];
if (Scores.Count == 0) return;
if (changed)
SortScores(out CurrentTop);
for (int c = 0; c < scoreMessages.Length; c++)
{
Message msg = new Message(scoreMessages[c], System.Drawing.Color.Red, c == 0 ? Message.FirstRightCorner : Message.ContinueRightCorner);
Kernel.SendWorldMessage(msg, Program.Values, (ushort)1500);
}
}
private static void SortScores(out Client.GameState winner)
{
winner = null;
List<string> ret = new List<string>();

int Place = 0;
foreach (var client in Scores.Values.OrderByDescending((p) => p.KingsWarScore))
{
if (Place == 0)
winner = client;
string str = "No " + (Place + 1).ToString() + ": " + client.Player.Name + "(" + client.KingsWarScore + ")";
ret.Add(str);
Place++;
if (Place == 4)
break;
}

changed = false;
scoreMessages = ret.ToArray();
}
}
}


ونضيفو بالشكل دة

بعد كدا

هتغير طبعا اسم البروجكت شوف مثلان انت عندك اسمو اي وهتضيفو زي عندي

Conquer_Online_Server

هتخليه اسم البروجكت بتاعك

جميل جدا بعد كدا هنخش على Handle

هنبحث عن
public static void ReceiveAttack(Game.Entity attacker, SobNpcSpawn

هتنزل تحت شوية

وهتضيف الكود دة

#region KingsWar
if (Events.KingsWar.IsWar)
{
if (attacker.MapID == 1500)
{
if (attacked.UID == 1500)
{
if (Events.KingsWar.PoleKeeper != null)
{
if (Events.KingsWar.PoleKeeper.Player.UID == attacker.UID)
{
return;
}
}
if (attacked.Hitpoints <= damage)
{
attacked.Hitpoints = 0;
}
Events.KingsWar.AddScore(damage, attacker.Owner);
}
}
}
#endregion


بعد كدا هنضيف الاني بى سى دة


#region InNpc
case 15000:
{
switch (npcRequest.OptionID)
{
case 0:
{
dialog.Text("Kings war starts at xx:20. Inside your nobility rank will be promoted to be king and all the players will be equivalent. You'll have the chace of beating up your rivals.");
dialog.Option("Lemme in.", 1);
if (Events.KingsWar.KeeperID != 0)
{
if (Events.KingsWar.KeeperID == client.Player.UID)
{
dialog.Option("Lemme claim.", 2);
}
}
dialog.Option("Later.", 255);
dialog.Send();
break;
}
case 1:
{
if (Events.KingsWar.IsWar)
{
client.Player.Teleport(1500, 141, 134);
}
else
{
dialog.Text("The War hasn't started yet it starts at (00:20)");
dialog.Send();
}
break;
}
case 2:
{
if (Events.KingsWar.Claim == true)
{
Events.KingsWar.Claim = false;
client.Player.ConquerPoints += 5000000;
client.Player.Money += 5000000;
uint random = (ushort)Conquer_Online_Server.Kernel.Random.Next(1 , 300);
client.ChampionPoints += random;
//client.Inventory.Add(723720, 0, 1);
client.Player.AddTopStatus((ulong)Conquer_Online_S erver.Network.GamePackets.Update.Flags3.jaspr, 3, DateTime.Now.AddHours(1));
Kernel.SendWorldMessage(new Message(client.Player.Name + " has won [" + random + "]Champion points . From KingsWar ! and Got 5m [Cps-Gold]", System.Drawing.Color.White, Message.Center), Program.Values);
//client.Inventory.Add(3009003, 0, 1);
//client.Inventory.Add(3009003, 0, 1);
//client.Inventory.Add(3009003, 0, 1);
}
else
{
dialog.Text("You already claimed your prize");
dialog.Send();
}
break;
}
}
break;
}
#endregion

بعد كدا هنخش على

World.cs

وهنبحث عن


private void BuffersCallback(GameState client, int time)



هننزل تحت شوية لحد الكود دة كدا

بعد كدا هنضيف الكود دة


#region KingsWar
if (client.Player.MapID == 1500)
{
if (client.Player.NobilityRank != NobilityRank.King)
{
client.TempNobilityInformation = new NobilityInformation();
client.TempNobilityInformation.Rank = client.NobilityInformation.Rank;
client.NobilityInformation.Rank = NobilityRank.King;
NobilityInfo update = new NobilityInfo(true);
update.Type = NobilityInfo.Icon;
update.dwParam = client.Player.UID;
update.UpdateString(client.NobilityInformation);
client.SendScreen(update, true);
client.Player.NobilityRank = client.NobilityInformation.Rank;
}
}
else
{
if (client.TempNobilityInformation != null)
{
client.NobilityInformation.Rank = client.TempNobilityInformation.Rank;
NobilityInfo update = new NobilityInfo(true);
update.Type = NobilityInfo.Icon;
update.dwParam = client.Player.UID;
update.UpdateString(client.NobilityInformation);
client.SendScreen(update, true);
client.Player.NobilityRank = client.NobilityInformation.Rank;
client.TempNobilityInformation = null;
}
}
if (client.Player.MapID == 1500)
{
if (Events.KingsWar.IsWar == false)
{
client.Player.Teleport(1002, 299, 285);
}
}
#endregion

بعد كدا هننزل على
private void WorldTournaments(int time)

ونضيف الرساله علشان لم يشتغل التوب


#region KingsWar[xx:20 - xx:40]

if (Events.KingsWar.IsWar)
{
if (Time32.Now > Events.KingsWar.ScoreSendStamp.AddSeconds(57))
{
Events.KingsWar.ScoreSendStamp = Time32.Now;
Events.KingsWar.SendScores();
}
}
if (Now64.Minute == 25 && !Events.KingsWar.IsWar)
{
Events.KingsWar.Start();
}
if (Events.KingsWar.IsWar)
{
if (Now64.Minute == 40 && Events.KingsWar.IsWar)
Events.KingsWar.End();
}

#endregion


في Program

هتبحث عن


if (DMaps.LoadMap(1038))
هتضيف تحت
Game.Guildwar

الكود دة

if (DMaps.LoadMap(1500))
Events.KingsWar.Initiate();


بس بكدا نكون انتيها وطبعا علشان مننسيش هنضيف الاني بى سي فى نافي كات


هنفتح Npcs ونضيف بقا الكود

طبعا هنا بيقولك علشان اسم البروجكيت !!

طبعا دة كود توب ملهوش لازمه

فا احنا هنقفل عليه

برضو دة هنشيلو ملهوش لازمه

تمم قوي

بعد كدا هنخش على GameState.cs

او ممكن تكون عندك فى سورسك GameClient.cs
المهمه بعد كدا هننزل تحت خلص

public uint KingsWarScore;
public Game.ConquerStructures.NobilityInformation TempNobilityInformation;


هنضيفو تحت اي كود هنا !!

كدا تمم بعد كدا بقا

هنحل الايرورات التافه دي !!

طبعا لو ما اتحلتش حتها بعد الحل دة

بختصار هنعمل كدا _^_

بس كدا !!

يعني انت هتضيف اسم البروجكت بتعاك بس مش كدا :*

كدا تم الانتهاء من الاضافه

دة كود الفلوس

اول حاجه نحط ايدي

وبعد كدا الاسم

التب 2

طبعا ناس هتسائل ليه ال تب 2 علشان خاطر دة Npc لو مثلان

شوب هيبقا بدل 2 1

وكدا يعني ^_^

زي Shoping Mail كدا

اللوك فيس اي لوك يعجبك

مش كميه

هنا هنضيف في التون ستي

بعد كدا الارقام فى التون

انا هحط مثلان

كدا كدا دة تجربه !! يعني

نجرب كدا بقا !!

طبعا لو حصل ايرور زي دة انا بعتذر فيه شئ نسيت اضيفو فى القاعده

هنخش على SobNpcs

وهنضيف الايدي بتاع البوله

1500 بعد كدا اسم البوله KingsWar بعد كدا التب 10

10

وبعد كدا Look face 1137

بعد كدا ايدي المابه

84

99

5000000



دة هلس العمود

نجرب بقا نفتح تاني ^ كدا

جميل جدا

نفتح بقا العبه

ونشوف كدا !!

اسف فى التطويل

بس دة شرح مفصل

ما علينا بعد كدا هنفتح التوب بتعنا :*

طبعا كنت هنسها حاجه مهمه اقولكم عليه

لم تنزلو الاني بى سى فى التون طبعا انتو عايزنا الرساله توصلكو فى وش الراجل

هنروح على الكود دة

هنعدل هنا هنكتب الارقام الى هي زي كدا

نجرب كدا بقا

هنفتح التوب من جديد علشان نشوف كدا !!



زي ما انتو شايفين كدا

اه جبنا فى وش الراجل

نخش بقا التوب

طبعا انا مش كنج فا من الطبيعي اني مش هعرف اضرب العمود ^_^

مش قصه يعني

قصدي انا اكونتي نوب

هلبس اسطفه

طبعا زي ما انتو شايفين كدا المهمه شغاله هنقفل التوب علشنا نشوف الجايزه بتعتنا

طبعا زي ما قولت فوق لو عايز تزبط السباس هتعدلو من ConquerPoints

بس كدا

واسف لو اطلت فى الشرح بس دة هيفيدكو كثير قوي

ونسيت انوها على شئ لو حصل وجبلك مشكله فى كلمه .Player.

هتخليه .Entity.

بس كدا على حساب يعني السورس بتعاك علشان محدش يجي يقولي انا مقولتهلوش حاجه

:* يالا اشوف وشكو بخير فى شروحات تانيه وسلام عليكم ورحمه الله وبركاته

كان معاكو خالد محمد


ودة التكسيت الى فيه اضافه التوب

عفواً لايمكن عرض الروابط في الإرشيف

مش طلب غير انو كل الناس تفيد غيرها يعني استفيد وفيد غيرك وخير الناس انفعهم للناس متبصوش لى العاب ولا سورسات كلوها ريح وشكرا :emoji21:

محمد ياسر
2020-02-19, 01:54 PM
عاش ياخالد بالتوفيق ياغالي

SourceDanger
2020-02-19, 01:57 PM
عاش ياخالد بالتوفيق ياغالي

حبيبى هاردتي يا حازم اصلى انا قولتلهم وانا بازن الله قريبا هنزل شئ يفيد الجميع

uncelsam
2020-02-19, 02:10 PM
عاااااش يخلود يعسليه

محمد ياسر
2020-02-19, 02:37 PM
حبيبى هاردتي يا حازم اصلى انا قولتلهم وانا بازن الله قريبا هنزل شئ يفيد الجميع

انا اول واحد مستني حجاتك الجميله

Hassan Emprator
2020-02-19, 02:39 PM
عاش يبو الخلاليد كنت هنزلها النهرضه ولله بس انت سبقتني عاش بق

محمد ياسر
2020-02-19, 02:52 PM
حلو ياخالد لوحة تحكم الانبي سي الي بتضيف الانبي سي من غير ماترستل السيرفير بصراحه اتمني لو كنت نزلته

midoazoz
2020-02-19, 03:33 PM
عااااش حلوه اعملها لاليكس ههههههههههههههه
عاش يا بطل

SourceDanger
2020-02-19, 03:56 PM
حلو ياخالد لوحة تحكم الانبي سي الي بتضيف الانبي سي من غير ماترستل السيرفير بصراحه اتمني لو كنت نزلته

انت تائمر امر يا حازم بس كدا ولله يجدع لضفهلك علشان عيونك وعيون المنتدي :*

محمد ياسر
2020-02-19, 04:17 PM
انت تائمر امر يا حازم بس كدا ولله يجدع لضفهلك علشان عيونك وعيون المنتدي :*

حبيبي والله ياخالد

ElSaher
2020-02-19, 06:29 PM
ياريت حد يجيبلي الاضافت لسورس مسج

وا يجيبلي اضافت حرب الكهربة لسورس مسج

MRonlineGvrix
2020-02-20, 03:12 AM
الله ينور يرياسا

AdhamMohamed
2020-02-26, 05:13 PM
شكرا بجد لاكن انا عاوز اعملها زاي الي موجوده في الفديو يعني اي دي المابه بيتاعت البولاه والشغل دا

blackconquer222
2021-08-09, 05:06 PM
عاش

yousef here
2024-08-27, 11:42 PM
ععع