عرض مشاركة واحدة
قديم 2019-08-09, 03:37 PM
المشاركة 7
Adel Abd El Hay
.:: عضو نشيط ::.
  • غير متواجد
افتراضي رد: شرح تغير مكان التمثال لكويسته بطل السيرفر (Hero of Game)
السطر دا مش موجود عندي ف كلاس statue ولا ف السورس مع ان الحرب شغاله عادي ودا كل اللي موجود ف كلاس statue

كود:
using System;
using MoDY.Network.GamePackets;
using System.Collections.Concurrent;

namespace 
MoDY.Game
{
    public 
unsafe class Statue Network.Writer
    
{
        public static 
ConcurrentDictionary<uintStatueStatues = new ConcurrentDictionary<uintStatue>();
        public 
byte[] SpawnPacket null;
        public 
uint UID;
        public 
Statue(byte[] array)
        {
            
UID 105175;
            
SpawnPacket = new byte[array.Length];
            for (
ushort x 0< array.Lengthx++)
                
SpawnPacket[x] = array[x];
            
WriteByte(0MsgPlayer.FacingSpawnPacket);
            
WriteUInt32(0MsgPlayer.ActionSpawnPacket);
            
WriteUInt16(1000MsgPlayer.GuildRankSpawnPacket);
            
WriteUInt32(105175MsgPlayer.UIDSpawnPacket);
            
WriteUInt64(0MsgPlayer.StatusFlagSpawnPacket);
            
WriteUInt64(0MsgPlayer.StatusFlag2SpawnPacket);
            
WriteUInt64(0MsgPlayer.StatusFlag3SpawnPacket);
            
WriteUInt32(0MsgPlayer.HitpointsSpawnPacket);
            
WriteUInt32(0MsgPlayer.GuildIDSpawnPacket);
            
328;
            
304;
            if (array.
Length 200)
            {
                if (!
Statues.ContainsKey(105175))
                    
Statues.TryAdd(105175this);
                else
                {
                    
Statues[105175] = this;
                }
            }
            foreach (var 
client in Kernel.GamePool.Values)
            {
                if (
Kernel.GetDistance(XYclient.Player.Xclient.Player.Y) < 16 && client.Player.MapID == 1002)
                {
                    
client.Send(this.SpawnPacket);
                }
            }
        }
        
ushort _x_y;
        public 
ushort X
        
{
            
get { return _x; }
            
set
            
{
                
_x value;
                
WriteUInt16(valueMsgPlayer.XSpawnPacket);
            }
        }
        public 
ushort Y
        
{
            
get { return _y; }
            
set
            
{
                
_y value;
                
WriteUInt16(valueMsgPlayer.YSpawnPacket);
            }
        }
        public static 
bool operator >(Statue statueClient.GameState client)
        {
            if (!
client.Screen.Statue.ContainsKey(statue.UID))
            {
                if (
Kernel.GetDistance(statue.Xstatue.Yclient.Player.Xclient.Player.Y) < 16 && client.Player.MapID == 1002)
                {
                    if (
statue.SpawnPacket.Length 200)
                    {
                        
client.Send(statue.SpawnPacket);
                        return 
true;
                    }
                }
            }
            return 
false;
        }
        public static 
bool operator <(Statue statueClient.GameState client)
        {
            if (
Kernel.GetDistance(statue.Xstatue.Yclient.Player.Xclient.Player.Y) >= 16 && client.Player.MapID == 1002)
            {
                return 
true;
            }
            return 
false;
        }
    }