شرح النظام هو ان اللعبه تغلق 15 دقيقه اثناء مواقيت الصلاه وبعد انتهاء الـ 15 دقيقه اللعبه تشتغل لوحدها أؤتومتيك
ملحوظه فى صلاة الجمعه اللعبه بتقفل 30 دقيقه وبرضو بعد انتهاء الـ 30 دقيقه اللعبه تشتغل لوحدها أؤتومتيك
وعلشان مواقيت الصلاه مش ثابته لانها بتتغير مع الايام فعملت قاعده بيانات تحتوى على مواقيت الصلاه لسنه 2016 كامله
بتوقيت مصر لمدينة القاهره لان عاصمة مصر القاهره وعلى فكره النظام ده انا مطبقه فى سيرفراتى بقالى فتره والحمد لله شغال تمام
وأرجو عدم تغير حقوق الموضوع والله سبحانه وتعالى مطلع على كل شىء
نخش بقا على شرح الاضافة
هتخش فى Game وهتضيف فيه كلاس باسم
وهتمسح كل الاكواد اللى جواه وهتضيف الاكواد دي
كود:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ElbooshyProject.Client;
using ElbooshyProject.Database;
namespace ElbooshyProject.Game
{
class Mwa8ytAlslah
{
public static uint SlaatAlfgrHour = 0;
public static uint SlaatAlfgrMinute = 0;
public static uint SlaatAlzhrHour = 0;
public static uint SlaatAlzhrMinute = 0;
public static uint SlaatAl3srHour = 0;
public static uint SlaatAl3srMinute = 0;
public static uint SlaatAlmghrbHour = 0;
public static uint SlaatAlmghrbMinute = 0;
public static uint SlaatAl3shaHour = 0;
public static uint SlaatAl3shaMinute = 0;
public static DateTime LastSlah;
public static uint WaitingSlah;
public static bool SlahNow = false;
public static uint TimeHour(byte Hour)
{
byte hour = 0;
if (Hour == 1) hour = 13;
else if (Hour == 2) hour = 14;
else if (Hour == 3) hour = 15;
else if (Hour == 4) hour = 16;
else if (Hour == 5) hour = 17;
else if (Hour == 6) hour = 18;
else if (Hour == 7) hour = 19;
else if (Hour == 8) hour = 20;
else if (Hour == 9) hour = 21;
else if (Hour == 10) hour = 22;
else hour = Hour;
return hour;
}
public static void LoadMwa8ytAlslah()
{
DateTime Date = DateTime.Now;
MySqlCommand cmd = new MySqlCommand(MySqlCommandType.SELECT);
cmd.Select("Mwa8ytAlslah").Where("Month", Date.Month);
MySqlReader r = new MySqlReader(cmd);
while (r.Read())
{
if (r.ReadString("Day") == Date.Day.ToString())
{
#region Alfgr
{
string Alfgr = "";
Alfgr = r.ReadString("Alfgr");
string[] Alfgrs = Alfgr.Split(':');
SlaatAlfgrHour = Convert.ToByte(Alfgrs[0]);
SlaatAlfgrMinute = Convert.ToByte(Alfgrs[1]);
}
#endregion
#region Alzhr
{
string Alzhr = "";
Alzhr = r.ReadString("Alzhr");
string[] Alzhrs = Alzhr.Split(':');
SlaatAlzhrHour = TimeHour(Convert.ToByte(Alzhrs[0]));
SlaatAlzhrMinute = Convert.ToByte(Alzhrs[1]);
}
#endregion
#region Al3sr
{
string Al3sr = "";
Al3sr = r.ReadString("Al3sr");
string[] Al3srs = Al3sr.Split(':');
SlaatAl3srHour = TimeHour(Convert.ToByte(Al3srs[0]));
SlaatAl3srMinute = Convert.ToByte(Al3srs[1]);
}
#endregion
#region Almghrb
{
string Almghrb = "";
Almghrb = r.ReadString("Almghrb");
string[] Almghrbs = Almghrb.Split(':');
SlaatAlmghrbHour = TimeHour(Convert.ToByte(Almghrbs[0]));
SlaatAlmghrbMinute = Convert.ToByte(Almghrbs[1]);
}
#endregion
#region Al3sha
{
string Al3sha = "";
Al3sha = r.ReadString("Al3sha");
string[] Al3shas = Al3sha.Split(':');
SlaatAl3shaHour = TimeHour(Convert.ToByte(Al3shas[0]));
SlaatAl3shaMinute = Convert.ToByte(Al3shas[1]);
}
#endregion
}
r.Close();
r.Dispose();
}
Console.WriteLine("Mwa8ytAlslah Loaded.");
}
public static void Mwa8ytAlslahh(GameState client)
{
if (SlahNow)
{
client.Disconnect();
}
}
public static void ShutDownLSlah()
{
#region Mwa8ytAlslah
if (DateTime.Now.Hour == Mwa8ytAlslah.SlaatAlfgrHour && DateTime.Now.Minute == Mwa8ytAlslah.SlaatAlfgrMinute ||
DateTime.Now.Hour == Mwa8ytAlslah.SlaatAlzhrHour && DateTime.Now.Minute == Mwa8ytAlslah.SlaatAlzhrMinute ||
DateTime.Now.Hour == Mwa8ytAlslah.SlaatAl3srHour && DateTime.Now.Minute == Mwa8ytAlslah.SlaatAl3srMinute ||
DateTime.Now.Hour == Mwa8ytAlslah.SlaatAlmghrbHour && DateTime.Now.Minute == Mwa8ytAlslah.SlaatAlmghrbMinute ||
DateTime.Now.Hour == Mwa8ytAlslah.SlaatAl3shaHour && DateTime.Now.Minute == Mwa8ytAlslah.SlaatAl3shaMinute)
{
if (!SlahNow)
{
if (DateTime.Now.DayOfWeek == DayOfWeek.Friday && DateTime.Now.Hour == Mwa8ytAlslah.SlaatAlzhrHour && DateTime.Now.Minute == Mwa8ytAlslah.SlaatAlzhrMinute)
WaitingSlah = 30;
else
WaitingSlah = 15;
LastSlah = DateTime.Now;
SlahNow = true;
}
}
if (DateTime.Now > LastSlah.AddMinutes(WaitingSlah))
{
if (SlahNow) SlahNow = false;
}
if (DateTime.Now.Hour == 01 && DateTime.Now.Minute == 00 && DateTime.Now.Second == 00)
LoadMwa8ytAlslah();
#endregion
}
}
}
وهتبحث فى ملف Program.cs أو فى ملف Server.cs على حسب سورسك على
كود:
Database.ArenaTable.Load();
هتضيف فوقيها على طول
كود:
Game.Mwa8ytAlslah.LoadMwa8ytAlslah();
وهتبحث فى ملف GeneralData.cs أو فى ملف PacketHandler.cs على حسب سورسك على
هتضيف فوقيها على طول
كود:
if (Game.Mwa8ytAlslah.SlahNow)//Mwa8ytAlslah
{
client.Send(new Message("all3bh m'3l8h lada2 alslah 7awol ald5wol fyw8t la78", "ALLUSERS", System.Drawing.Color.Orange, GamePackets.Message.Dialog));
return;
}
ملحوظه الكود ده موجود فيه الرساله اللى هتظهر للاعب تعرفه ان اللعبه مغلقه للصلاه علشان لو حبيتو تغيروها بالعربى للناس اللى سيرفراتها عربى هى حاليا فرانكو
وهتبحث فى ملف Thread.cs أو فى ملف World.cs.cs على حسب سورسك على
كود:
Game.Qualifier.Reset();
وهتضيف تحتو على طول
كود:
Game.Mwa8ytAlslah.ShutDownLSlah();
وهتبحث برضو فى نفس الملف على
كود:
if (client.Entity.HandleTiming)
وهتضيف تحت اول } يقابلك
كود:
#region Mwa8ytAlslah
Game.Mwa8ytAlslah.Mwa8ytAlslahh(client);
#endregion
وأخيراً هتحمل الملف ده وهتفك ضغطه هيطلعلك ملف بصيغة sql هترفعو على قاعدة البيانات
عفواً لايمكن عرض الرابط إلا بعد الرد على الموضوع
ملحوظه اسم البروجيكت ElbooshyProject هتغيروه الى اسم البروجيكت بتاع السورس اللى هتضيفو فيه السيستم
وبكده الحمد لله اتنهت الاضافه
لا اريد منكم شكر ولا تقيم ولاكن اريد دعوه خالصه من قلبكم
وأريد من الله عز وجل ان يجعله فى ميزان حسناتى وفى ميزان حسنات كل من طبق هذا النظام فى سيرفره
في أمان الله وفي حفظ الرحمن
والسلام عليكم ورحمة الله وبركاته