عرض مشاركة واحدة
قديم 2019-08-22, 06:13 PM
المشاركة 45
Circle
.:: عضو نشيط ::.
  • غير متواجد
افتراضي رد: فكرة جديده للدونشن خش وشوف : NobilityOff
عفواً لايمكن عرض الرابط إلا بعد الرد على الموضوع
بسم الله الرحمن الرحيم
لما لقيت فكرة الدونشن بوقت عجبتكو قولت انزلكو فكرة تانيه كنت عاملها مش خساره فيكو
ركز بقي علشان تعرف الفكرة عباره عن ايه
الفكرة هي ان الدونشن يكون معتمد علي الناس الي فاتحه بس بمعني ان لو انت سيرفرك مثلا 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 clientMySql.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(); 

بعد كدا ندور في نفس الكلاس عن

كود:
void ShutDown() 

وننزل عند اكواد السيف نحط ده

كود:
  NobilityOff.Save(thisconn); 

طب افرض جابلك ايرور في السطر الي انته لسه ضايفه ده امسحه و حط ده مكانه

كود:
 using (var conn Database.DataHolder.MySqlConnection
                        { 
                            
conn.Open(); 
                            
NobilityOff.Save(thisconn); 
                        } 

بعد كدا نروح كلاس

كود:
EntityTable 

وندور علي

كود:
client.Entity.FullyLoaded true

ونحط تحتيه

كود:
     client.NobilityOff.Load(client); 

بعد كدا نروح كلاس

كود:
program 

وندور علي

كود:
 public static bool Save() 

وننزل ونحط فيه ده

كود:
 NobilityOff.Save(clientconn); 

طب افرض جابلك ايرور في السطر الي انته لسه ضايفه ده امسحه و حط ده مكانه

كود:
 using (var conn Database.DataHolder.MySqlConnection
                        { 
                            
conn.Open(); 
                            
NobilityOff.Save(thisconn); 
                        } 

بعد كدا نروح علي القاعده نرفع ده
عفواً لايمكن عرض الرابط إلا بعد الرد على الموضوع
كدا الاضافة خلصت
يا رب يكون الموضوع عجبكم
بالتوفيق
عندى ايرور ف الكود ده

كود:
Game.ConquerStructures.Nobility.Sort(c.Entity.UID); 

فى الكلمة دى

كود:
Sort