الخميس، 28 أبريل 2016

أكمل المقال
النافي كات 
افتح النافي كات ودوس F6
وارمي دول ف القونصول

SET FOREIGN_KEY_CHECKS=0
-- ---------------------------- 
-- 
Table structure for activeness -- ---------------------------- CREATE TABLE `activeness` ( 
  `
UIDbigint(18NOT NULL default '0'
  `
ClaimedGift1bigint(18unsigned NOT NULL default '0'
  `
ClaimedGift2bigint(18unsigned NOT NULL default '0'
  `
ClaimedGift3bigint(18unsigned NOT NULL default '0'
  `
ChiStudybigint(18unsigned NOT NULL default '0'
  `
JiangStudybigint(18unsigned NOT NULL default '0'
  
PRIMARY KEY  (`UID`) 
ENGINE=MyISAM DEFAULT CHARSET=utf8;  

البروجكت بقى
كلاس جديد باسم Activeness.cs

using System

namespace 
CaptainJoe.Network.GamePackets 
    public 
unsafe class Activeness WriterInterfaces.IPacket 
    

        
byte[] Buffer
        public 
enum Types byte 
        

            
NumberOfTasks 14
            
LoginTask 25
            
VIPTask 26
            
HoursTask 27
            
LotteryTask 28
            
DailyQuestTask 29
            
FlowerTask 30
            
QualiferTask 31
            
ChampionPTask 32
            
HorseRacingTask 33
            
TIBTask 34
            
Enlightenment 35
            
TeamQualiferTask 36
            
ChiTask 37
            
JiangTask 38
        } 
        public 
Activeness(Client.GameClient client,bool Ok true
        { 
if (
Ok

            
Buffer = new byte[90 8]; 
            
Buffer[0] = 90;//Length 
            
WriteUInt16(28202Buffer); 
            
Buffer[4] = 3;//Type(Unknown) 
            
Buffer[5] = (byte)Types.NumberOfTasks;//NumberOfTasks 
            
Buffer[6] = (byte)Types.LoginTask;//MayBe Show LoginToTheGameTask 
            
Buffer[12] = (byte)Types.VIPTask;//MayBe Show VipActivenessTask 
            
Buffer[18] = (byte)Types.HoursTask;//MayBe Show HowManyHoursOnline 
            
Buffer[24] = (byte)Types.LotteryTask;//Show Lottery task 
            
Buffer[30] = (byte)Types.DailyQuestTask;//Show DailyQuest Task 
            
Buffer[36] = (byte)Types.FlowerTask;//Show Flower/Gift Task 
            
if (client.Entity.Level >= 40
            { 
                
Buffer[42] = (byte)Types.QualiferTask;//Show Qualifer Task 
                
Buffer[48] = (byte)Types.ChampionPTask;//Show ChampionPoints Task 
                
Buffer[72] = (byte)Types.TeamQualiferTask;//TeamQualifer 
            

            
Buffer[54] = (byte)Types.HorseRacingTask;//Show HorseRacing 
            
Buffer[60] = (byte)Types.TIBTask;//TreasureInTheBlue 
            
if (client.Entity.Level >= 90
            { 
                
Buffer[66] = (byte)Types.Enlightenment;//Enlightenment  
            

            if (
client.Entity.Reborn >= && client.Entity.Level >= 110
            { 
                
Buffer[78] = (byte)Types.ChiTask;//ChiTask Show 
            

            if (
client.Entity.MyJiang != null
            { 
                
Buffer[84] = (byte)Types.JiangTask;//Show Jiang Task 
            


        } 
public static 
void Login(Client.GameClient client
        { 
            
Activeness AN = new Activeness(client); 
            
AN.CompleteLoginTask 1
            
AN.LoginTimes 1
            if (
client.Entity.VIPLevel 0
            { 
                
AN.CompleteVIPActiveness 1
                
AN.VIPActivenessTimes 1
            } 
            else 
            { 
                
AN.CompleteVIPActiveness 0
                
AN.VIPActivenessTimes 0
            } 
            
AN.CompleteHalfAnHourOnline 0
            
AN.HalfAnHourOnlineTimes 0
            
AN.HalfHourTask Time32.Now
            if (
client.LotteryEntries >= 10
            { 
                
AN.CompleteLottery 1
                
AN.LotteryTimes 10
            } 
            else 
            { 
                
AN.CompleteLottery 0
                
AN.LotteryTimes client.LotteryEntries
            } 
            
AN.CompleteDailyQuest 0
            
AN.DailyQuestTimes 0
            if (
client.Entity.MyFlowers.aFlower >= 1
            { 
                
AN.CompleteFlowerAndGift 0
                
AN.FlowerAndGiftTime 0
            } 
            else 
            { 
                
AN.CompleteFlowerAndGift 1
                
AN.FlowerAndGiftTime 1
            } 
            if (
client.ArenaStatistic != null && client.ArenaStatistic.TodayBattles >= 5
            { 
                
AN.CompleteQualifer 1
                
AN.QualiferTimes 5
            } 
            else 
            { 
                
AN.CompleteQualifer 0
                
AN.QualiferTimes = (byte)client.ArenaStatistic.TodayBattles
            } 
            
AN.ChiStudyTimes Math.Min((byte)client.Entity.ChiStudyTimes, (byte)12); 
            
AN.JiangStudyTimes Math.Min((byte)client.Entity.JiangStudyTimes, (byte)12); 
            if (
AN.ChiStudyTimes >= 12
            { 
                
AN.CompleteChiStudy 1
            } 
            if (
AN.ChiStudyTimes >= 12
            { 
                
AN.CompleteJiangStudy 1
            } 
            if (
client.CP != null && client.TodayChampionPoints >= 1
            { 
                
AN.CompleteChampionPoints 1
                
AN.ChampionPointsTimes 1
            } 
            else 
            { 
                
AN.CompleteChampionPoints 0
                
AN.ChampionPointsTimes 0
            } 
            
AN.HorseRacingComplete 0
            
AN.HorseRacingTimes 0
            
AN.CompleteTIB 0
            
AN.TIBTimes 0
            if (
client.Entity.EnlightenPoints != 0
            { 
                
AN.EnlightenmentTimes = (byte)client.Entity.EnlightenPoints
                if (
AN.EnlightenmentTimes >= 3
                    
AN.CompleteEnlightenment 1
            } 
            if (
client.TeamArenaStatistic != null && client.TeamArenaStatistic.TodayBattles >= 2
            { 
                
AN.CompleteTeamQualifer 1
                
AN.TeamQualiferTimes 2
            } 
            else 
            { 
                
AN.CompleteTeamQualifer 0
                
AN.TeamQualiferTimes = (byte)client.TeamArenaStatistic.TodayBattles
            } 
            
AN.Send(client); 
            
ActivenessPoints AP = new ActivenessPoints(); 
            
AP.Points AP.GetActivenessPoints(AN.ToArray()); 
            
client.ActivenessPoints AP.GetActivenessPoints(AN.ToArray()); 
            
AP.Send(client); 
            if (
client.Entity.ClaimedActivenessGift1 == 1
            { 
                
ClaimActivenessGift CAG = new ClaimActivenessGift(); 
                
CAG.Type 1
                
client.Send(CAG.ToArray()); 
            } 
            if (
client.Entity.ClaimedActivenessGift2 == 1
            { 
                
ClaimActivenessGift CAG = new ClaimActivenessGift(); 
                
CAG.Type 2
                
client.Send(CAG.ToArray()); 
            } 
            if (
client.Entity.ClaimedActivenessGift3 == 1
            { 
                
ClaimActivenessGift CAG = new ClaimActivenessGift(); 
                
CAG.Type 3
                
client.Send(CAG.ToArray()); 
            } 
        } 
         public 
byte CompleteLoginTask 
         

             
get { return Buffer[10]; } 
             
set Buffer[10] = value; } 
         } 
         public 
byte LoginTimes 
         

             
get { return Buffer[11]; } 
             
set Buffer[11] = value; } 
         } 
         public 
byte CompleteVIPActiveness  
         

             
get { return Buffer[16]; } 
             
set Buffer[16] = value; } 
         } 
         public 
byte VIPActivenessTimes  
         

             
get { return Buffer[17]; } 
             
set Buffer[17] = value; } 
         } 
         public 
byte CompleteHalfAnHourOnline  
         

             
get { return Buffer[22]; } 
             
set Buffer[22] = value; } 
         } 
         public 
Time32 HalfHourTask
         public 
byte HalfAnHourOnlineTimes  
         

             
get { return Buffer[23]; } 
             
set Buffer[23] = value; } 
         } 
         public 
byte CompleteLottery  
         

             
get { return Buffer[28]; } 
             
set Buffer[28] = value; } 
         } 
         public 
byte LotteryTimes  
         

             
get { return Buffer[29]; } 
             
set Buffer[29] = value; } 
         } 
         public 
byte CompleteDailyQuest  
         

             
get { return Buffer[34]; } 
             
set Buffer[34] = value; } 
         } 
         public 
byte DailyQuestTimes  
         

             
get { return Buffer[35]; } 
             
set Buffer[35] = value; } 
         } 
         public 
byte CompleteFlowerAndGift  
         

             
get { return Buffer[40]; } 
             
set Buffer[40] = value; } 
         } 
         public 
byte FlowerAndGiftTime  
         

             
get { return Buffer[41]; } 
             
set Buffer[41] = value; } 
         } 
         public 
byte CompleteQualifer  
         

             
get { return Buffer[46]; } 
             
set Buffer[46] = value; } 
         } 
         public 
byte QualiferTimes  
         

             
get { return Buffer[47]; } 
             
set Buffer[47] = value; } 
         } 
         public 
byte CompleteChampionPoints  
         

             
get { return Buffer[52]; } 
             
set Buffer[52] = value; } 
         } 
         public 
byte ChampionPointsTimes  
         

             
get { return Buffer[53]; } 
             
set Buffer[53] = value; } 
         } 
         public 
byte HorseRacingComplete  
         

             
get { return Buffer[58]; } 
             
set Buffer[58] = value; } 
         } 
         public 
byte HorseRacingTimes  
         

             
get { return Buffer[59]; } 
             
set Buffer[59] = value; } 
         } 
         public 
byte CompleteTIB  
         

             
get { return Buffer[64]; } 
             
set Buffer[64] = value; } 
         } 
         public 
byte TIBTimes  
         

             
get { return Buffer[65]; } 
             
set Buffer[65] = value; } 
         } 
         public 
byte CompleteEnlightenment  
         

             
get { return Buffer[70]; } 
             
set Buffer[70] = value; } 
         } 
         public 
byte EnlightenmentTimes  
         

             
get { return Buffer[71]; } 
             
set Buffer[71] = value; } 
         } 
         public 
byte CompleteTeamQualifer  
         

             
get { return Buffer[76]; } 
             
set Buffer[76] = value; } 
         } 
         public 
byte TeamQualiferTimes  
         

             
get { return Buffer[77]; } 
             
set Buffer[77] = value; } 
         } 
         public 
byte CompleteChiStudy  
         

             
get { return Buffer[82]; } 
             
set Buffer[82] = value; } 
         } 
         public 
byte ChiStudyTimes  
        

            
get { return Buffer[83]; } 
            
set Buffer[83] = value; } 
        } 
         public 
byte CompleteJiangStudy  
        

            
get { return Buffer[88]; } 
            
set Buffer[88] = value; } 
        } 
         public 
byte JiangStudyTimes  
        

            
get { return Buffer[89]; } 
            
set Buffer[89] = value; } 
        } 
        public 
void Deserialize(byte[] buffer
        { 
            
Buffer buffer
        } 
        public 
byte[] ToArray() 
        { 
            return 
Buffer
        } 
        public 
void Send(Client.GameClient client
        { 
            if (
Buffer != null
                
client.Send(Buffer); 
        } 
    } 
    public class 
ClaimActivenessGift WriterInterfaces.IPacket 
    

        
byte[] Buffer

        public 
ClaimActivenessGift() 
        { 
            
Buffer = new byte[30 8]; 
            
Buffer[0] = 30;//Length 
            
WriteUInt16(28222Buffer); 
        } 
        public 
byte Type//1 To Complete 
        

            
get { return Buffer[4]; } 
            
set Buffer[4] = value; } 
        } 
        public 
void Deserialize(byte[] buffer
        { 
            
Buffer buffer
        } 
        public 
byte[] ToArray() 
        { 
            return 
Buffer
        } 
        public 
void Send(Client.GameClient client
        { 
            if (
Buffer != null
                
client.Send(Buffer); 
        } 
    } 
    public class 
ActivenessPoints WriterInterfaces.IPacket 
    

        
byte[] Buffer

        public 
ActivenessPoints() 
        { 
            
Buffer = new byte[30 8]; 
            
Buffer[0] = 30
            
WriteUInt16(28232Buffer); 
            
Buffer[4] = 1
            
Buffer[5] = 2
            
Buffer[9] = 1
        } 
        public 
ushort GetActivenessPoints(byte[] buffer
        { 
            
ushort points ushort.MinValue
            if (
buffer != null
            { 
                
points += (ushort)(BitConverter.ToUInt16(buffer11) * 5); 
                
points += (ushort)(BitConverter.ToUInt16(buffer17) * 5); 
                
points += (ushort)(BitConverter.ToUInt16(buffer23) * 5); 
                
points += (ushort)(BitConverter.ToUInt16(buffer29) * 5); 
                
points += (ushort)(BitConverter.ToUInt16(buffer35) * 5); 
                
points += (ushort)(BitConverter.ToUInt16(buffer41) * 5); 
                
points += (ushort)(BitConverter.ToUInt16(buffer47) * 5); 
                
points += (ushort)(BitConverter.ToUInt16(buffer53) * 10); 
                
points += (ushort)(BitConverter.ToUInt16(buffer59) * 10); 
                
points += (ushort)(BitConverter.ToUInt16(buffer65) * 10); 
                
points += (ushort)(BitConverter.ToUInt16(buffer71) * 5); 
                
points += (ushort)(BitConverter.ToUInt16(buffer77) * 10); 
                
points += (ushort)(BitConverter.ToUInt16(buffer83) * 5); 
                
points += (ushort)(BitConverter.ToUInt16(buffer89) * 5); 
                return (
ushort)(points 6400); 
            } 
            return 
0
        } 
        public 
ushort Points 
        

            
get { return BitConverter.ToUInt16(Buffer13); } 
            
set WriteUInt16(value13Buffer); } 
        } 
        public 
void Deserialize(byte[] buffer
        { 
            
Buffer buffer
        } 
        public 
byte[] ToArray() 
        { 
            return 
Buffer
        } 
        public 
void Send(Client.GameClient client
        { 
            if (
Buffer != null
                
client.Send(Buffer); 
        } 
    } 
}  

كلاس Update.cs
فوق اي فويد

        public static void UpdateActivenessTask(Client.GameClient clientbyte Taskbyte value
        { 
            
byte[] Buffer = new byte[12 8]; 
            
Writer.WriteByte(120Buffer); 
            
Writer.WriteUInt16(28202Buffer);//Length 
            
Writer.WriteByte(34Buffer);//Unknown 
            
Writer.WriteByte(15Buffer);//AmountTasksWillUpdate 
            
Writer.WriteByte(Task6Buffer);//type 
            
Writer.WriteByte(010Buffer);//Completed 
            
Writer.WriteByte(value11Buffer);//value 
            
client.Send(Buffer); 
        }  

كلاس جديدة تاني باسم ActivenessTable.cs

using Systemusing CaptainJoe.Client

namespace 
CaptainJoe.Database 
    public 
unsafe class ActivenessTable 
    

        public static 
void Load(GameClient client
        { 
            
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("Activeness").Where("UID"client.Entity.UID)) 
            
using (var reader = new MySqlReader(cmd)) 
            { 
                while (
reader.Read()) 
                { 
                    
client.Entity.ClaimedActivenessGift1 reader.ReadByte("ClaimedGift1"); 
                    
client.Entity.ClaimedActivenessGift2 reader.ReadByte("ClaimedGift2"); 
                    
client.Entity.ClaimedActivenessGift3 reader.ReadByte("ClaimedGift3"); 
                    
client.Entity.ChiStudyTimes reader.ReadByte("ChiStudy"); 
                    
client.Entity.JiangStudyTimes reader.ReadByte("JiangStudy"); 
                    return; 
                } 
                
ActivenessTable.Insert(client); 
            } 
        } 
        public static 
void Save(GameClient client
        { 
            if (
client.Entity == null) return; 
            
using (var cmd = new MySqlCommand(MySqlCommandType.UPDATE).Update("Activeness")) 
                
cmd.Set("ClaimedGift1"client.Entity.ClaimedActivenessGift1
                    .
Set("ClaimedGift2"client.Entity.ClaimedActivenessGift2
                    .
Set("ClaimedGift3"client.Entity.ClaimedActivenessGift3
                    .
Set("JiangStudy"client.Entity.JiangStudyTimes
                    .
Set("ChiStudy"client.Entity.ChiStudyTimes
                    .
Where("UID"client.Entity.UID
                    .
Execute(); 
        } 
        public static 
void Reset(GameClient client
        { 
            if (
client.Entity == null) return; 
            
using (var cmd = new MySqlCommand(MySqlCommandType.UPDATE).Update("Activeness")) 
                
cmd.Set("ClaimedGift1"0
                    .
Set("ClaimedGift2"0
                    .
Set("ClaimedGift3"0
                    .
Set("ChiStudy"0
                    .
Set("JiangStudy"0
                   .
Where("UID"client.Entity.UID
                   .
Execute(); 
        } 
        private static 
void Insert(GameClient client
        { 
            if (!
ActivenessTable.Exists(client.Entity.UID)) 
            { 
                
using (var cmd = new MySqlCommand(MySqlCommandType.INSERT).Insert("Activeness")) 
                    
cmd.Insert("UID"client.Entity.UID).Execute(); 
            } 
        } 
        private static 
bool Exists(uint UID
        { 
            
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("Activeness").Where("UID"UID)) 
            
using (var reader = new MySqlReader(cmd)) 
            { 
                while (
reader.Read()) 
                { 
                    
reader.Close(); 
                    
reader.Dispose(); 
                    return 
true
                } 
                return 
false
            } 
        } 
    } 
}  

كلاس GameClient.cs
في اي حته

public ushort ActivenessPoints 
        

            
get 
            

                return 
ActivenessPoint.Points
            } 
            
set 
            

                
ActivenessPoint.Points 
                    
value
            } 
        } 
        public 
ActivenessPoints ActivenessPoint
        public 
Activeness Activenes;  

في نفس الكلاس دور على فويد اسمه ReadyToPlay()
في اي حته

ActivenessPoint = new ActivenessPoints(); 
                
Activenes = new Activeness(this);  

في نفس الكلاس فويد اسمه Shutdown
تحت دة

Database.EntityTable.SaveEntity(thisconn);  

هتضيف دة

Database.ActivenessTable.Save(this);  

في كلاس EntityTable.cs
ابحث عن 

if (DateTime.Now.DayOfYear != client.LastResetTime.DayOfYear)  

تحت القوص حط

Database.ActivenessTable.Reset(client);  

في نفس الكلاس برضو
ابحث عن 

client.Entity.FullyLoaded true;  

فوقيه حط دة

Database.ActivenessTable.Load(client);  

في كلاس Entity.cs
في اي حته
ضيف

        public uint ChiStudyTimes 0

        public 
byte ClaimedActivenessGift1 0
        public 
byte ClaimedActivenessGift20
        public 
byte ClaimedActivenessGift3 0
        public 
uint JiangStudyTimes 0;  

كلاس PacketHandler.cs 
ابحث عن فويد LoginMessage
اخره حط دة

#region Activeness Activeness.Login(client); 
            
#endregion  

في نفس الكلاس ابحث عن 

#region Item/Ping  

فوقيه حط دة

#region ActivenessClaimGift 
                
case 2822
                    { 
                        
ClaimActivenessGift CA = new ClaimActivenessGift(); 
                        
CA.Deserialize(packet); 
                        switch (
CA.Type
                        { 
                            case 
1
                                { 
                                    if (
client.Entity.ClaimedActivenessGift1 == 1
                                        return; 

                                    
//client.Inventory.Add................... 
                                    
break; 
                                } 
                            case 
2
                                { 
                                    if (
client.Entity.ClaimedActivenessGift2 == 1
                                        return; 

                                    
//client.Inventory.Add................... 
                                    
break; 
                                } 
                            case 
3
                                { 
                                    if (
client.Entity.ClaimedActivenessGift3 == 1
                                        return; 

                                    
//client.Inventory.Add................... 
                                    
break; 
                                } 
                        } 
                        if (
CA.Type == 1
                            
client.Entity.ClaimedActivenessGift1 1
                        if (
CA.Type == 2
                            
client.Entity.ClaimedActivenessGift2 1
                        if (
CA.Type == 3
                            
client.Entity.ClaimedActivenessGift3 1
                        
CA.Send(client); 
                        break; 
                    } 
                
#endregion  

في كلاس World.cs
في فويد CharactersCallBack

#region Activeness 
            
if (client.Activenes != null
            { 
                if (
Time32.Now >= client.Activenes.HalfHourTask.AddMinutes(30)) 
                { 
                    
client.Activenes.HalfHourTask Time32.Now
                    
client.Activenes.HalfAnHourOnlineTimes++; 
                    if (
client.Activenes.HalfAnHourOnlineTimes 5
                        
client.Activenes.HalfAnHourOnlineTimes 5
                    if (
client.Activenes.HalfAnHourOnlineTimes == 5
                        
client.Activenes.CompleteHalfAnHourOnline 1
                    
client.Send(client.Activenes); 
                } 
            } 
            
#endregion  

شوية صور :-


بس كدا سلام 


إقرأ أيضاً

ليست هناك تعليقات:

إرسال تعليق