بسم الله الرحمن الرحيم
لما لقيت فكرة الدونشن بوقت عجبتكو قولت انزلكو فكرة تانيه كنت عاملها مش خساره فيكو
ركز بقي علشان تعرف الفكرة عباره عن ايه
الفكرة هي ان الدونشن يكون معتمد علي الناس الي فاتحه بس بمعني ان لو انت سيرفرك مثلا 5 كنجات والكنج الاول قفل هيتشال من الرانك و الكنج التاني هيبقي الاول وكذلك كل واحد في الرانك هيرفع رتبه يعني كدا اول برنس هيبقي اخر كنج مش معني كدا ان الكنج الي قفل ده السي بي اس الي دفعه راح لا لما يفتح تاني هيرجع الرانك بنفس الرقم الي كان دافعه وبكدا انت مخلتش حد يخسر حاجه وخليت برده الناس الي فاتحه في اللعبه تستمتع علشان لو في مره مثللا الوار اشتغل و ال 5 كنجات قافلين يبقي اول 5 برنسات هما الي هيبقي كنجات و يبقي في متعه
الاضافه سهله وبسيطه
نبتدي الاضافة
اول حاجه هنعمل كلاس جديد في Network بالشكل ده و نسميه NobilityOff
ونحط فيه ده
كود:
using ResidentEvil.Game;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ResidentEvil.Network.GamePackets;
using System.Threading;
using System.Threading.Generic;
using ResidentEvil.Network;
using ResidentEvil.Game.ConquerStructures;
using ResidentEvil.Game.ConquerStructures.Society;
using ResidentEvil.Client;
using System.Drawing;
using ResidentEvil.Database;
namespace ResidentEvil
{
public class NobilityOff
{
public void Load(Client.GameState c)
{
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("nobilityoff").Where("UID", c.Entity.UID))
using (var reader = new MySqlReader(cmd))
{
if (reader.Read())
{
c.NobilityInformation.Donation = reader.ReadUInt64("OldDonation");
}
MySqlCommand hossam = new MySqlCommand(MySqlCommandType.DELETE);
hossam.Delete("nobilityoff", "UID", c.Entity.UID).Execute();
}
Database.NobilityTable.UpdateNobilityInformation(c.NobilityInformation);
Game.ConquerStructures.Nobility.Sort(c.Entity.UID);
}
public static void Save(Client.GameState client, MySql.Data.MySqlClient.MySqlConnection conn)
{
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("nobilityoff").Where("UID", client.Entity.UID))
using (var reader = new MySqlReader(cmd))
{
if (!reader.Read())
using (var cmds = new MySqlCommand(MySqlCommandType.INSERT))
cmds.Insert("nobilityoff").Insert("UID", client.Entity.UID).Insert("OldDonation", client.NobilityInformation.Donation).Execute();
}
client.NobilityInformation.Donation = 0;
Database.NobilityTable.UpdateNobilityInformation(client.NobilityInformation);
Game.ConquerStructures.Nobility.Sort(client.Entity.UID);
}
}
}
بعد كدا نروح كلاس
كود:
GameState Or GameClient
و تحت فتحة القوس
كود:
public class GameState
{
نحط ده
كود:
public NobilityOff NobilityOff = new NobilityOff();
بعد كدا ندور في نفس الكلاس عن
وننزل عند اكواد السيف نحط ده
كود:
NobilityOff.Save(this, conn);
طب افرض جابلك ايرور في السطر الي انته لسه ضايفه ده امسحه و حط ده مكانه
كود:
using (var conn = Database.DataHolder.MySqlConnection)
{
conn.Open();
NobilityOff.Save(this, conn);
}
بعد كدا نروح كلاس
وندور علي
كود:
client.Entity.FullyLoaded = true;
ونحط تحتيه
كود:
client.NobilityOff.Load(client);
بعد كدا نروح كلاس
وندور علي
كود:
public static bool Save()
وننزل ونحط فيه ده
كود:
NobilityOff.Save(client, conn);
طب افرض جابلك ايرور في السطر الي انته لسه ضايفه ده امسحه و حط ده مكانه
كود:
using (var conn = Database.DataHolder.MySqlConnection)
{
conn.Open();
NobilityOff.Save(this, conn);
}
بعد كدا نروح علي القاعده نرفع ده
عفواً لايمكن عرض الرابط إلا بعد الرد على الموضوع
كدا الاضافة خلصت
يا رب يكون الموضوع عجبكم
بالتوفيق