منتدي اكواد

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

محمد ياسر 2019-05-13 04:34 PM

ابجريت MailBox
 

صوره للبوكس

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

اتروح علي ملف MsgMailList
بدله كله بده
كود PHP:

using System;
using System.IO;
using System.Linq;
using System.Text;
using K7host.Game;
using K7host.Client;
using K7host.Network;
using K7host.Database;
using System.Collections.Generic;

namespace 
K7host.Network.GamePackets
{
    public class 
MsgMailList WriterInterfaces.IPacket
    
{
        
byte[] Packet;
        
ushort Offset 17;
        public 
MsgMailList()
        {
            
Packet = new byte[20];
            
Ushort((ushort)(Packet.Length 8), 0Packet);
            
Ushort((ushort)MsgTypes.MsgMailList2Packet);
        }
        public 
uint Count
        
{
            
get { return BitConverter.ReadUint(Packet5); }
            
set WriteUint(value5Packet); }
        }
        public 
uint Page
        
{
            
get { return BitConverter.ReadUint(Packet9); }
            
set WriteUint(value9Packet); }
        }
        public 
uint Unknown
        
{
            
get { return BitConverter.ReadUint(Packet13); }
            
set WriteUint(value13Packet); }
        }
        public class 
PrizeInfo
        
{
            public 
void WriteItem(BinaryWriter writer)
            {
                
writer.Write(ID);
                
writer.Write(Time);
                
writer.Write(Sender);
                
writer.Write(Subject);
                
writer.Write(Message);
                
writer.Write(goldprize);
                
writer.Write(cpsprize);
                
writer.Write(Attackment);
                if (
ItemPrize != null)
                    
writer.Write(ItemPrize.UID);
                else
                    
writer.Write(0);
            }
            public 
PrizeInfo ReadItem(BinaryReader reader)
            {
                
ID reader.ReadUInt32();//4
                
Time reader.ReadUInt32();//8
                
Sender reader.ReadString();//10
                
Subject reader.ReadString();//12
                
Message reader.ReadString();//14
                
goldprize reader.ReadUInt32();//18
                
cpsprize reader.ReadUInt32();//22  
                
Attackment reader.ReadUInt32();//22
                
ItemPrize ConquerItemTable.LoadItem(reader.ReadUInt32());
                
ItemPrize.Mode Enums.ItemMode.ItemInbox;
                
ItemAddingTable.GetAddingsForItem(ItemPrize);
                return 
this;
            }
            public 
ConquerItem ItemPrize;
            public 
string
            Subject
SenderMessage;
            public 
uint
            ID
Timecpsprize,
            
Attackmentgoldprize;
        }
        
Random R = new Random();
        List<
PrizeInfo> List = new List<PrizeInfo>();
        public 
void Check(GameClient clientuint page)
        {
            List<
PrizeInfoprizes client.Prizes.Values.ToList();
            List.
Clear();
            for (
int i = (int)pagepage 7i++)
            {
                if (
prizes.Count)
                {
                    List.
Add(prizes[i]);
                }
            }
            if (List.
Count 0)
            {
                
Packet = new byte[24 + (134 * List.Count)];
                
Ushort((ushort)(Packet.Length 8), 0Packet);
                
Ushort((ushort)MsgTypes.MsgMailList2Packet);
                
Count = (uint)List.Count;
                
Page page;
                
Unknown = (uint)prizes.Count;
                for (
int i 0< List.Counti++)
                    
Append(List[i], client);
            }
        }
        public 
void Append(PrizeInfo prizeGameClient C)
        {
            
Uint(prize.IDOffsetPacket);//uid
            
Offset += 4;
            
WriteString(prize.SenderOffsetPacket);//sender
            
Offset += 32;
            
WriteString(prize.SubjectOffsetPacket);//Subject
            
Offset += 64;
            
Uint(prize.goldprizeOffsetPacket);//attachment
            
Offset += 8;
            
Uint(prize.cpsprizeOffsetPacket);//attachment
            
Offset += 12;
            
Uint(prize.TimeOffsetPacket);//Time
            
Offset += 8;
            
Uint(prize.AttackmentOffsetPacket);
            
Offset += 4;

        }
        public static 
void SendMailbox(GameClient clientbool On)
        {
            
byte[] test = new byte[20];
            
WriteUshort((ushort)(test.Length 8), 0test);
            
WriteUshort((ushort)MsgTypes.MsgMailNotify2test);
            if (
On)
                
Byte(34test);
            else
                
Byte(24test);
            
client.Send(test);
        }
        public static 
void AddPrize(GameClient clientstring Sender "Nana"string Subject "Inbox Test"string Message "Message..."uint money 5000000uint cps 5000uint Time 600uint attachment 0ConquerItem item null)
        {
            
int id 0;
            do
            {
                
id Kernel.Random.Next();
            }
            while (
client.Prizes.ContainsKey((uint)id));
            
PrizeInfo prize = new PrizeInfo();
            
prize.ID = (uint)id;
            
prize.Sender Sender;
            
prize.Subject Subject;
            
prize.Message Message;
            
prize.goldprize money;
            
prize.cpsprize cps;
            
prize.Time Time;
            
prize.ItemPrize item;
            
prize.Attackment attachment;
            
client.Prizes.Add(prize.IDprize);
            if (
client.Prizes.Count 0)
                
SendMailbox(clienttrue);
        }
        public 
byte[] ToArray()
        {
            return 
Packet;
        }
        public 
void Send(GameClient client)
        {
            
client.Send(ToArray());
        }
        public 
void Deserialize(byte[] Data)
        {
            
Packet Data;
        }
        public static 
void Process(byte[] PacketGameClient client)
        {
            
uint Action BitConverter.ReadUint(Packet4);
            
uint ID BitConverter.ReadUint(Packet6);
            switch (
Packet[4])
            {
    
                case 
1://show
                    
{
                        
byte[] inbox = new byte[274];
                        
Ushort((ushort)(inbox.Length 8), 0inbox);
                        
Ushort((ushort)MsgTypes.MsgMailContent2inbox);
                        
Uint(ID4inbox);

 

                        if (
client.Prizes[ID] != null)
                        {
                            if (!
string.IsNullOrEmpty(client.Prizes[ID].Message))
                            {
                                
WriteString(client.Prizes[ID].Message8inbox);
                            }
                        }
                        
client.Send(inbox);
                        break;
                    }
                case 
2://delete
                    
{
                        if (
client.Prizes.ContainsKey(ID))
                            
client.Prizes.Remove(ID);
                        if (
client.Prizes.Count == 0)
                            
SendMailbox(clientfalse);
                        break;
                    }
                case 
3://Money
                    
{
                        if (
client.Prizes[ID].goldprize 0)
                        {
                            
client.Entity.Money += client.Prizes[ID].goldprize;
                            
client.Prizes[ID].goldprize 0;
                        }
                        if (
client.Prizes[ID].cpsprize 0)
                        {
                            
client.Entity.ConquerPoints += client.Prizes[ID].cpsprize;
                            
////client.Entity.ConquerPointsFake += client.Prizes[ID].cpsprize;
                            
client.Prizes[ID].cpsprize 0;
                        }
                        break;
                    }
                case 
4://ItemPrize
                    
{

                        
client.Prizes[ID].ItemPrize.UID ConquerItem.ItemUID.Next;
                        
client.Prizes[ID].ItemPrize.Mode Enums.ItemMode.Default;
                        
client.Inventory.Add(client.Prizes[ID].ItemPrizeEnums.ItemUse.CreateAndAdd);
                        if (
client.Prizes[ID].ItemPrize.Purification.PurificationItemID 0)
                        {
                            
client.Prizes[ID].ItemPrize.Purification.ItemUID client.Prizes[ID].ItemPrize.UID;
                            
ItemAddingTable.AddPurification(client.Prizes[ID].ItemPrize.Purification);
                        }
                        if (
client.Prizes[ID].ItemPrize.ExtraEffect.EffectID 0)
                        {
                            
client.Prizes[ID].ItemPrize.ExtraEffect.ItemUID client.Prizes[ID].ItemPrize.UID;
                            
ItemAddingTable.AddExtraEffect(client.Prizes[ID].ItemPrize.ExtraEffect);
                        }
                        
client.Prizes[ID].ItemPrize.SendExtras(client);
                        
client.Prizes[ID].ItemPrize null;
                        break;
                    }
                case 
5://Attackment
                    
{
                        if (
client.Prizes[ID].Attackment 0)
                        {
                            
client.Inventory.Add(client.Prizes[ID].Attackment01);
                            
client.Prizes[ID].Attackment 0;
                        }
                        break;
                    }
                default: 
Console.WriteLine("[Mailbox] Unknown Action:" Action); break;
            }
            if (
Action != 1)
                
MsgMailTable.Save(client);
            
client.Send(Packet);
        }
    }



انت عمري 2019-10-23 12:42 PM

رد: ابجريت MailBox
 
ارسل هدايا ازاى للاعبين كلهم
وارسل ازاى هدية للاعب معين
في
MsgMailList
سورس استريم

mega 2024-02-06 07:20 PM

رد: ابجريت MailBox
 
شش


الساعة الآن 02:10 AM

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