منتدي اكواد

منتدي اكواد (https://code.vpscairo.com/index.php)
-   تطوير سيرفرات كونكر (https://code.vpscairo.com/forumdisplay.php?f=11)
-   -   الدونشن بوقت :DonationTime (https://code.vpscairo.com/showthread.php?t=1380)

Commander 2019-08-05 06:08 PM

الدونشن بوقت :DonationTime
 
بسم الله الرحمن الرحيم
ده هيفيد الناس الي عايزه تعمل شحن في سيرفراتها كنج بوقت معين ومش عارفه
نخش في الاضافه علي طول والاضافه سهله جدا ومش طويله
اول حاجه هنعمل كلاس جديد
كود PHP:

using Extreme.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.Sockets;
using ResidentEvil.Game.ConquerStructures;
using ResidentEvil.Game.ConquerStructures.Society;
using ResidentEvil.Client;
using System.Drawing;
using ResidentEvil.Game.Events;
using ResidentEvil.Database;
using System.Data.SqlClient;
using System.Configuration;

namespace 
ResidentEvil
{
    public class 
NobilityTimer
    
{
        public 
DateTime StartOnEndOn;
        public 
ulong OldDonation;
        public 
byte Donation;
        public 
Time32 CheckStamp Time32.Now;
        public 
void Insert(DateTime _StartOnDateTime _EndOnbyte _Donationulong _OldDonationClient.GameState client)
        {
            
this.StartOn _StartOn;
            
this.EndOn _EndOn;
            
this.Donation _Donation;
            
this.OldDonation _OldDonation;
            
client.NobilityInformation.Donation this.OldDonation;
            
#region Insert
            
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("nobilitytimer").Where("UID"client.Entity.UID))
            
using (var reader = new MySqlReader(cmd))
            {
                if (!
reader.Read())
                    
using (var cmds = new MySqlCommand(MySqlCommandType.INSERT))
                        
cmds.Insert("nobilitytimer").Insert("UID"client.Entity.UID).Execute();
            }
            
#endregion
            
this.Save(client);
            
client.Send("Your Rank Will End In " this.EndOn "");
            
        }
        public 
void Load(Client.GameState c)
        {
            
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("nobilitytimer").Where("UID"c.Entity.UID))
            
using (var reader = new MySqlReader(cmd))
            {
                if (
reader.Read())
                {
                    
this.Donation reader.ReadByte("Number");
                    
this.OldDonation reader.ReadByte("OldDonation");
                    
this.StartOn Kernel.FromDateTimeInt(reader.ReadUInt64("StartOn"));
                    
this.EndOn Kernel.FromDateTimeInt(reader.ReadUInt64("EndOn"));
                }
            }
        }
        public 
void Save(Client.GameState client)
        {
            
Database.MySqlCommand cmd = new Database.MySqlCommand(Database.MySqlCommandType.UPDATE);
            
cmd.Update("nobilitytimer").Set("Number"this.Donation).Set("OldDonation"this.OldDonation).Set("StartOn"Kernel.ToDateTimeInt(this.StartOn)).Set("EndOn"Kernel.ToDateTimeInt(this.EndOn))
            .
Where("UID"client.Entity.UID).Execute();
        }
    }


بعد كدا هنروح علي كلاس
كود PHP:

 GameState or GameClient 

ونحط فيه ده
كود PHP:

 public NobilityTimer NobilityTimer = new NobilityTimer(); 

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

void ShutDown() 

وننزل لحد
كود PHP:

    Database.EntityTable.SaveEntity(thisconn); 

ونحط فوقيها ده
كود PHP:

  NobilityTimer.Save(this); 

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

EntityTable 

ونبحث عن
كود PHP:

 client.Entity.FullyLoaded true

ونحط تحتو ده
كود PHP:

   client.NobilityTimer.Load(client); 

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

Nobility
ندور علي
كود PHP:

 case NobilityInfo.Donate

وتحت القوس نحط
كود PHP:

  if (client.NobilityTimer.Donation == || client.NobilityTimer.Donation == || client.NobilityTimer.Donation == 3)
                        {
                            
client.MessageBox("Sorry U Can't Donate Now."nullnull60);
                            return;
                        } 

بعد كدا نروح لكلاس باكت هاندلر وندور علي
كود PHP:

 void DoLogin 

وتحت القوس نحط
كود PHP:

 client.NobilityTimer.Load(client); 

بعد كدا نروح كلاس ورلد وندور علي
كود PHP:

 void CharactersCallback 

ونحط فيه ده
كود PHP:

#region NobilityTimer Check
           
            
if (client.NobilityTimer.Donation && DateTime.Now >= client.NobilityTimer.EndOn)
            {
                
client.NobilityInformation.Donation client.NobilityTimer.OldDonation
                
Game.ConquerStructures.Nobility.Sort(client.Entity.UID);
                
Database.NobilityTable.UpdateNobilityInformation(client.NobilityInformation);
                
client.NobilityTimer.Save(client);
                
client.Send("Your Rank, Is Ended, Now Your Rank is Back.");
                
MySqlCommand cmd = new MySqlCommand(MySqlCommandType.DELETE);
                
cmd.Delete("nobilitytimer""UID"client.Entity.UID).Execute();
                
client.NobilityTimer.Donation 0;
            }
          
            
#endregion 

بعد كدا اخر حاجه في الاضافه في السي شارب وهيا الان بي سي
كود PHP:

#region DonationTime
                
case 38213:
                    {

                        switch (
npcRequest.OptionID)
                        {
                            case 
0:
                                {

                                    
dialog.Text("Hey there " client.Entity.Name ", I'm Here to Up Ur Rank 7 Days For Cps.");
                                    
dialog.Option("Up Me To King/Queen"1);
                                    
dialog.Option("Up Me To Prince/Princess."2);
                                    
dialog.Option("Up Me To Duke/Duchess."3);
                                    
dialog.Option("No Thanks."255);
                                    
dialog.Avatar(50);
                                    
dialog.Send();
                                    break;
                                }
                            case 
1:
                                {

                                    
dialog.Text("I'll Up U To King/Queen to 7 Days For 200.000 Cps.");
                                    
dialog.Option("Ok, Up Me."4);
                                    
dialog.Option("No Thanks."255);
                                    
dialog.Avatar(50);
                                    
dialog.Send();
                                    break;
                                }
                            case 
2:
                                {

                                    
dialog.Text("I'll Up U To Prince/Princess to 7 Days For 100.000 Cps.");
                                    
dialog.Option("Ok, Up Me."5);
                                    
dialog.Option("No Thanks."255);
                                    
dialog.Avatar(50);
                                    
dialog.Send();
                                    break;
                                }
                            case 
3:
                                {

                                    
dialog.Text("I'll Up U To Duke/Duchess to 7 to Days 50.000 Cps.");
                                    
dialog.Option("Ok, Up Me."6);
                                    
dialog.Option("No Thanks."255);
                                    
dialog.Avatar(50);
                                    
dialog.Send();
                                    break;
                                }
                            case 
4:
                                {
                                    if (
DateTime.Now >= client.NobilityTimer.EndOn)
                                    {
                                        if (
client.Entity.ConquerPoints >= 200000)
                                        {
                                            
client.Entity.ConquerPoints -= 200000;
                                            
client.NobilityTimer.Insert(DateTime.NowDateTime.Now.AddDays(7), 1client.NobilityInformation.Donationclient);
                                            
client.NobilityTimer.Save(client);
                                            
client.NobilityInformation.Donation 1;
                                            
Kernel.SendWorldMessage(new Message("Congratulation! " client.Entity.Name " Has been King/Queen For 7 Days. "Color.RedMessage.Center));
                                            
Game.ConquerStructures.Nobility.Sort(client.Entity.UID);
                                            
Database.NobilityTable.UpdateNobilityInformation(client.NobilityInformation);
                                        }
                                        else
                                        {
                                            
dialog.Text("Please come back to me with 200.000 Conquer Points.");
                                            
dialog.Option("Ahh sorry."255);
                                            
dialog.Avatar(50);
                                            
dialog.Send();
                                        }
                                    }
                                    else
                                    {
                                    
dialog.Text("U Already do it.");
                                    
dialog.Option("Ahh sorry."255);
                                    
dialog.Avatar(50);
                                    
dialog.Send();
                                    }
                                    break;
                                }
                            case 
5:
                                {
                                    if (
DateTime.Now >= client.NobilityTimer.EndOn)
                                    {
                                        if (
client.Entity.ConquerPoints >= 100000)
                                        {
                                            
client.Entity.ConquerPoints -= 100000;
                                            
client.NobilityTimer.Insert(DateTime.NowDateTime.Now.AddDays(7), 2client.NobilityInformation.Donationclient);
                                            
client.NobilityTimer.Save(client);
                                            
client.NobilityInformation.Donation 2;
                                            
Kernel.SendWorldMessage(new Message("Congratulation! " client.Entity.Name " Has been Prince/Princess For 7 Days. "Color.RedMessage.Center));
                                            
Game.ConquerStructures.Nobility.Sort(client.Entity.UID);
                                            
Database.NobilityTable.UpdateNobilityInformation(client.NobilityInformation);
                                        }
                                        else
                                        {
                                            
dialog.Text("Please come back to me with 100.000 Conquer Points.");
                                            
dialog.Option("Ahh sorry."255);
                                            
dialog.Avatar(50);
                                            
dialog.Send();
                                        }
                                    }
                                    else
                                    {
                                        
dialog.Text("U Already do it.");
                                        
dialog.Option("Ahh sorry."255);
                                        
dialog.Avatar(50);
                                        
dialog.Send();
                                    }
                                    break;
                                }
                            case 
6:
                                {
                                    if (
DateTime.Now >= client.NobilityTimer.EndOn)
                                    {
                                        if (
client.Entity.ConquerPoints >= 50000)
                                        {
                                            
client.Entity.ConquerPoints -= 50000;
                                            
client.NobilityTimer.Insert(DateTime.NowDateTime.Now.AddDays(7), 3client.NobilityInformation.Donationclient);
                                            
client.NobilityTimer.Save(client);
                                            
client.NobilityInformation.Donation 3;
                                            
Kernel.SendWorldMessage(new Message("Congratulation! " client.Entity.Name " Has been Duke/Duchess For 7 Days. "Color.RedMessage.Center));
                                            
Game.ConquerStructures.Nobility.Sort(client.Entity.UID);
                                            
Database.NobilityTable.UpdateNobilityInformation(client.NobilityInformation);
                                        }
                                        else
                                        {
                                            
dialog.Text("Please come back to me with 50.000 Conquer Points.");
                                            
dialog.Option("Ahh sorry."255);
                                            
dialog.Avatar(50);
                                            
dialog.Send();
                                        }
                                    }
                                    else
                                    {
                                        
dialog.Text("U Already do it.");
                                        
dialog.Option("Ahh sorry."255);
                                        
dialog.Avatar(50);
                                        
dialog.Send();
                                    }
                                    break;
                                }
                        }
                        break;
                    }
                
#endregion 

روح لكلاس
كود PHP:

nobility 

ابحث عن
كود PHP:

  if (Place >= 51

وضيف تحت القوس
كود PHP:

  if (entry.Donation == 1)
                        {
                            
Rank NobilityRank.King;
                        }
                        if (
entry.Donation == 2)
                        {
                            
Rank NobilityRank.Prince;
                        }
                        if (
entry.Donation == 3)
                        {
                            
Rank NobilityRank.Duke;
                        } 

والتحكم في الوقت من هنا
كود PHP:

DateTime.Now.AddDays(7), 

بعد كدا نرفع ده في القاعده
عفواً لايمكن عرض الروابط إلا بعد الرد على الموضوع

يا رب اكون عرفت اشرحلكم الاضافه كويس والسلام عليكم ورحمة الله وبركاته

محمد ياسر 2019-08-05 06:30 PM

رد: الدونشن بوقت :DonationTime
 
رايد منزل موضوع ده
بس هو لما يجي يشوفه هو هو ولا لا
وتسلم علي الموضوع

Hassan Emprator 2019-08-05 06:32 PM

رد: الدونشن بوقت :DonationTime
 
تسلم ايدك كنت محتاجو اوي ولله عااااش فشخ يقيم من 5 نجوووم

Commander 2019-08-05 06:36 PM

رد: الدونشن بوقت :DonationTime
 
اقتباس:

المشاركة الأصلية كتبت بواسطة hazem (المشاركة 9968)
رايد منزل موضوع ده
بس هو لما يجي يشوفه هو هو ولا لا
وتسلم علي الموضوع

انا لسا شايفو دلوقتي والله لما شوفت كلامك بس انا مش واخده منه خالص وممكن انزل تاريخ السيستم ده عاملو اكتر من سنه والفرق الي بين الاتنين الاتشك معمول بطريقه احسن عنندي مبيعملو كل ثانيتين و ان اللاعب مينفعش يتبرع وهو شاحن علشان هو كدا بيتبرع علي الفاضي

محمد ياسر 2019-08-05 06:38 PM

رد: الدونشن بوقت :DonationTime
 
اقتباس:

المشاركة الأصلية كتبت بواسطة hossameldein (المشاركة 9972)
انا لسا شايفو دلوقتي والله لما شوفت كلامك بس انا مش واخده منه خالص وممكن انزل تاريخ السيستم ده عاملو اكتر من سنه والفرق الي بين الاتنين الاتشك معمول بطريقه احسن عنندي مبيعملو كل ثانيتين و ان اللاعب مينفعش يتبرع وهو شاحن علشان هو كدا بيتبرع علي الفاضي

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

Commander 2019-08-05 06:50 PM

رد: الدونشن بوقت :DonationTime
 
اقتباس:

المشاركة الأصلية كتبت بواسطة Hassan Emprator (المشاركة 9970)
تسلم ايدك كنت محتاجو اوي ولله عااااش فشخ يقيم من 5 نجوووم

حبيبي

MohamedModyAdel 2019-08-05 08:41 PM

رد: الدونشن بوقت :DonationTime
 
تسلم كنت مستني موضوع دا من زمان

Matrix 2019-08-05 11:20 PM

رد: الدونشن بوقت :DonationTime
 
3aaaaaaash

Commander 2019-08-06 12:42 AM

رد: الدونشن بوقت :DonationTime
 
يا ريت اي حد من الاشراف يضيف ده في الموضوع علشان نسيتو
روح لكلاس
كود PHP:

nobility 

ابحث عن
كود PHP:

  if (Place >= 51

وضيف تحت القوس
كود PHP:

  if (entry.Donation == 1)
                        {
                            
Rank NobilityRank.King;
                        }
                        if (
entry.Donation == 2)
                        {
                            
Rank NobilityRank.Prince;
                        }
                        if (
entry.Donation == 3)
                        {
                            
Rank NobilityRank.Duke;
                        } 


Rider 2019-08-06 05:26 AM

رد: الدونشن بوقت :DonationTime
 
عاش احسنت <3


الساعة الآن 08:34 AM

مرحبا بكم في منتدي اكواد لتطوير الالعاب