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

مشاهدة النسخة كاملة : Vip لفتره محدده


محمد ياسر
2019-04-21, 04:39 PM
السلام عليكم ورحمة الله وبركاته
طريقة عمل VIP علشان تديه لي لاعب ولفتره محدده اسبوع شهر يومين يوم براحت
يلا نبداء
افتح فلدر Game واعمل فيه كلاس باسم
VIPDays.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using T3Alo.Database;

namespace T3Alo.Game
{
public class VIPDays
{
/*
* All Rights Reserved © Mahmoud Mohammed
*/
public DateTime VIPStartON, VIPEndAt;
public byte VIPLevelDays, OldVIPLevel;
public int VIPLogMessage;

public VIPDays()
{
foreach (Client.GameState client in Program.GamePool)
{
this.VIPLevelDays = 0;
this.OldVIPLevel = client.Entity.VIPLevel;
}
}
public static void READ(Client.GameState client)
{
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("vipdays").Where("UID", client.Entity.UID))
using (var reader = new MySqlReader(cmd))
{
if (reader.Read())
{
client.VIPDays.VIPLevelDays = reader.ReadByte("VIPLevelDays");
client.VIPDays.OldVIPLevel = reader.ReadByte("OldVIPLevel");
client.VIPDays.VIPStartON = DateTime.FromBinary(reader.ReadInt64("VIPStartON"));
client.VIPDays.VIPEndAt = DateTime.FromBinary(reader.ReadInt64("VIPEndAt"));
}
else
{
using (var cmds = new MySqlCommand(MySqlCommandType.INSERT))
cmds.Insert("vipdays").Insert("Name", client.Entity.Name).Insert("UID", client.Entity.UID).Execute();
}
}
}
public static void SAVE(Client.GameState client)
{
xConquer.Database.MySqlCommand cmd = new xConquer.Database.MySqlCommand(xConquer.Database.M ySqlCommandType.UPDATE);
cmd.Update("vipdays")
.Set("VIPLevelDays", client.VIPDays.VIPLevelDays)
.Set("OldVIPLevel", client.VIPDays.OldVIPLevel)
.Set("VIPStartON", client.VIPDays.VIPStartON)
.Set("VIPEndAt", client.VIPDays.VIPEndAt);
cmd.Where("UID", client.Entity.UID);
cmd.Execute();
}

}
}

وتخش علي GameState او GameClient وتحط الكود دا
public Game.VIPDays VIPDays = new Game.VIPDays();

وتخش علي World او Thread على حسب سورسك


هتبحث عن
CharactersCallback


وتحط الكود ده
#region VIPDays Check
/*
* All Rights Reserved © Mahmoud Mohammed
*/
if (client.VIPDays.VIPLevelDays > 0 && DateTime.Now >= client.VIPDays.VIPEndAt)
{
client.Entity.VIPLevel = client.VIPDays.OldVIPLevel;
client.VIPDays.VIPLevelDays = 0;
client.VIPDays.VIPStartON = Convert.ToDateTime(0);
client.VIPDays.VIPEndAt = Convert.ToDateTime(0);
VIPDays.SAVE(client);
client.Send("Your VIP is end, Try to get other item and unlock it.");
}
#endregion

وتخش علي PacketHandler وتبحث علي
تحت الكود ده
Npcs dialog = new Npcs(client);

هتضيف دول
#region VIIPDays.
/*
* All Rights Reserved © T3Alo
*/
if (client.ActiveNpc == 3004121)
{
if (client.Inventory.Contains(client.ActiveNpc, 1))
{
if (req.OptionID == 1)
{
if (client.Entity.VIPLevel > 3)
{
dialog.Text("You are VIPLevel " + client.Entity.VIPLevel + ", So you can't unlock this item.");
dialog.Option("Ohh, Sorry.", 255);
dialog.Send();
}
else
{
if (client.Entity.VIPLevel < 4)
{
dialog.Text("Are you sure you want to unlock this item.");
dialog.Option("Yes I'm sure.", 2);
dialog.Send();
}
}
}
if (req.OptionID == 2)
{
if (client.Entity.VIPLevel < 4)
{
client.VIPDays.OldVIPLevel = client.Entity.VIPLevel;//هنا بيحفظ الفي اي بي القديم بتاعك علشان بعد الاسبوع يرجعهولك تاني
client.VIPDays.VIPLevelDays = 4;//هنا بيديلك الفي اي بي الي موجود في الشنه والي انت هتتحدو
client.VIPDays.VIPStartON = DateTime.Now;//هنا بيسجل بدايه الاسبوع بتاعك من وقت فتح الشنطه
client.VIPDays.VIPEndAt = DateTime.Now.AddDays(7);//هنا بيحدد الوقت الي هيخلص فيه الفي اي بي ويرجعلك الفي اي بي القديم
client.Entity.VIPLevel = client.VIPDays.VIPLevelDays;//هنا بيديلك الفي اي بي
client.Inventory.Remove(client.ActiveNpc, 1);
client.Send("Congratulations " + client.Entity.Name + ", You have got VIPLevel " + client.VIPDays.VIPLevelDays + " to " + client.VIPDays.VIPEndAt + ".");
VIPDays.SAVE(client);
}
}
}
}
#endregion

فى فويد
tatic void UseItem

حط دول تحت اى شنطه
#region VIP7Days
case 3004121:
{
Npcs dialog = new Npcs(client);
dialog.Text("Hello " + client.Entity.Name + ", There is VIPLevel 4 For 7 Days. If you want to get it just confirm.");
dialog.Option("Confirm.", 1);
dialog.Option("Cancel.", 255);
dialog.Avatar(318);
dialog.Send();
client.ActiveNpc = item.ID;
break;
}
#endregion

في EntityTable في الاخر خالص تحت الكود دا
client.Entity.FullyLoaded = true;

تضيف ده
Game.VIPDays.READ(client);

في GameState او GameClient

هتبحث عن
rivate void ShutDown()

تحط الكود ده
Kernel.GamePool.Remove(Entity.UID);

ضيف
VIPDays.SAVE(this);

القاعده في المرفقات ارفعه للقاعده

Hassan Emprator
2019-04-22, 12:25 AM
عاش جدا بس اي الي نرفعه في القاعده انا اسف جدا لو انا بضغط عليك يا استاذ محمد

محمد ياسر
2019-04-22, 08:25 AM
قاعده البيانات الي في المرفقات

salahsayed
2019-04-22, 10:25 AM
شكراااااا بس انا عايز اعرف ازاي اخله ياخد Vip لمدة ساعات مش ايام

salahsayed
2019-04-22, 10:27 AM
شكرااااا

يريت لو تنزل موضوع ازاي تدي اللاعب كاس لمدة معينة

mohamed wahdan1
2019-05-22, 03:17 AM
شكراااااااااااا

osamamand
2019-06-11, 07:41 PM
شكرا جدا على النظام

MohamedModyAdel
2019-06-11, 07:46 PM
هيطلعلك ارور الي انا منزله سليم وجربوه

faresali2
2019-06-20, 11:53 PM
شكرا جارى التركيب

osama
2019-07-06, 02:55 PM
tahnks

Tefa
2019-07-06, 05:08 PM
عاش

anwer1
2019-07-06, 07:10 PM
وياريت لو تنزل ان بى سى الغات العربى والانجليزى وان بى سى الوان السيرفر

محمد ياسر
2019-07-06, 07:21 PM
وياريت لو تنزل ان بى سى الغات العربى والانجليزى وان بى سى الوان السيرفر

موجودين في مواضيع ليهم

anwer1
2019-07-07, 08:10 AM
فين طيب يا حازم ممكن تجبلى كواضعهم

anwer1
2019-07-07, 08:10 AM
تجبلى المواضيع بتعاتهم

uncelsam
2019-10-24, 10:00 AM
حاجه جامده فشخولا :d

Omar Mohamed100
2019-10-30, 03:58 AM
ظهرلي ايرور في كلاس World.cs
الايرور في الكلمة دي client
سورس ماسج ياريت الحل

Omar Mohamed100
2019-10-30, 04:00 AM
هيطلعلك ارور الي انا منزله سليم وجربوه

فين الانت منزله ؟
انا عايز لسورس ماسج

marcbacor
2019-11-06, 09:59 PM
thanks

Mohamed007
2019-11-10, 12:32 AM
3a4

Omar
2019-11-11, 10:28 PM
good

MomenSaed
2019-11-19, 01:47 PM
تجربة

elkapoo2020
2020-03-17, 11:49 PM
thxxxxxxxxx

Tarek Roshdi
2020-03-24, 05:44 PM
شكرا

محمودمحمدسالم
2020-04-05, 02:30 PM
عاش

mhfkr
2020-04-23, 08:50 AM
تسلمممممممممم

salah8
2021-07-30, 05:30 PM
بلسيلبيس

mohammedshafik
2021-08-01, 11:07 AM
thanks

mohamed2010
2022-01-20, 01:19 PM
شكرا

فتحى الشاهد
2022-04-08, 06:34 PM
شكرا ليك

samy8529
2023-04-25, 02:21 PM
عااااااااش

vvbb50009
2023-09-23, 03:55 PM
123

yousef here
2024-04-17, 08:50 PM
عاش