احصائياتى

الردود
13

المشاهدات
2054
 
محمودمحمدسالم
.:: عضو خبير ::.

    غير متواجد

المشاركات
552

+التقييم
0.20

تاريخ التسجيل
Apr 2019

الاقامة

نظام التشغيل

رقم العضوية
63
2019-08-09, 07:02 PM
المشاركة 1
2019-08-09, 07:02 PM
المشاركة 1
افتراضي سستم الرونز سورس اليكس بورتو
صاحب الشغل عبدالرحمن

كود:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 
Project_Terror_v2.Game.MsgServer
{
    public 
unsafe struct MsgRuns
    
{
        public 
enum RuneType : byte
        
{
            
Equip = 57,
            
UnEquip = 58,
            
InventoryRune = 61,
            
UpgradeRune = 63
        
}
        static 
ushort[] YellowRunePoints = new ushort[10] { 1, 500, 1000, 3000, 8000, 15000, 20000, 25000, 32000, 0 };
        private static 
ushort[] BlueRunePoints = new ushort[26] { 1, 400, 800, 1200, 1800, 2700, 3700, 4500, 5300, 6000, 7500, 8300, 9000, 10500, 12000, 13500, 15000, 22500, 22500, 22500, 22500, 22500, 30000, 30000, 30000, 0, };
        public static 
bool IsRune(uint ID)
        {
            return 
ID >= 4010101 && ID <= 4031309 || ID >= 4010001 && ID <= 4010901;
        }
        public static 
bool IsRuneEssence(uint ID)
        {
            return (
ID == 4040001) || (ID == 4050001) || (ID == 4060001);
        }
        public static 
void Runs(Client.GameClient client, ServerSockets.Packet _stream)
        {
            var 
packet = new byte[_stream.Size];
            
System.Runtime.InteropServices.Marshal.Copy(new IntPtr(_stream.Memory), packet, 0, _stream.Size);
            switch ((
RuneType)packet[20])
            {
                case 
RuneType.UpgradeRune:
                    {
                        
MsgGameItem Item;
                        if (
client.Warehouse.TryGetItem((uint)Game.MsgNpc.NpcID.WHRune, (uint)BitConverter.ToUInt32(packet, 8), out Item) || client.Warehouse.TryGetItem((uint)Game.MsgNpc.NpcID.MainRune, (uint)BitConverter.ToUInt32(packet, 8), out Item))
                        {
                            if (
IsRune(Item.ITEM_ID))
                            {
                                
Queue<MsgGameItem> ItemsPlus = new Queue<MsgGameItem>();
                                for (
int i = 0; i < packet[26]; i++)
                                {
                                    var 
uid = BitConverter.ToUInt32(packet, 91 + 4 * i);
                                    
MsgGameItem itemuse;
                                    if (
client.Warehouse.TryGetItem((uint)Game.MsgNpc.NpcID.WHRune, uid, out itemuse))
                                        
ItemsPlus.Enqueue(itemuse);
                                    else if (
client.Inventory.TryGetItem(uid, out itemuse))
                                        
ItemsPlus.Enqueue(itemuse);
                                }
                                while (
ItemsPlus.Count > 0)
                                {
                                    var 
Stone = ItemsPlus.Dequeue();
                                    if (
IsRune(Stone.ITEM_ID))
                                    {
                                        
Item.PlusProgress += GetRuneComposePoints(Item.ITEM_ID, (byte)(Item.ITEM_ID % 100));
                                        
Item.PlusProgress += Stone.PlusProgress;

                                    }
                                    else if (!
IsRuneEssence(Stone.ITEM_ID))
                                    {
                                        
Item.PlusProgress += Database.ItemType.StonePlusPoints(Stone.Plus);
                                        
Item.PlusProgress += Stone.PlusProgress;
                                    }
                                    else
                                    {
                                        
Item.PlusProgress += (uint)Math.Max(1, (int)Stone.StackSize) * 10;
                                    }
                                    while (
Item.PlusProgress >= GetRuneComposePoints(Item.ITEM_ID, (byte)(Item.ITEM_ID % 100)) && IsRuneMax(Item.ITEM_ID, (byte)(Item.ITEM_ID % 100)))
                                    {
                                        
Item.PlusProgress -= GetRuneComposePoints(Item.ITEM_ID, (byte)(Item.ITEM_ID % 100));
                                        
Item.ITEM_ID++;
                                        if (!
IsRuneMax(Item.ITEM_ID, (byte)(Item.ITEM_ID % 100)))
                                            
Item.PlusProgress = 0;
                                    }
                                    if (
Stone.WH_ID != 0)
                                    {
                                        
client.Warehouse.DeleteItem((uint)Game.MsgNpc.NpcID.WHRune, Stone.UID);
                                        
client.Send(_stream.ItemUsageCreate(MsgItemUsuagePacket.ItemUsuageID.RemoveInventory, Stone.UID, 0, 0, 0, 0, 0));
                                    }
                                    else
                                        
client.Inventory.Update(Stone, Role.Instance.AddMode.REMOVE, _stream);

                                    
Item.Mode = Role.Flags.ItemMode.Update;
                                    
Item.Send(client, _stream);
                                }
                            }
                        }
                        break;
                    }
                case 
RuneType.InventoryRune:
                    {
                        switch (
packet[12])
                        {
                            case 
0:
                                {
                                    
MsgGameItem items;
                                    if (
client.Inventory.TryGetItem((uint)BitConverter.ToUInt32(packet, 8), out items))
                                    {

                                        if (
IsRune(items.ITEM_ID) == false)
                                            return;
                                        if (
client.Warehouse.AddItem(items, (uint)Game.MsgNpc.NpcID.WHRune))
                                        {
                                            if (
client.Inventory.ClientItems.TryRemove(items.UID, out items))
                                            {
                                                
items.Position = (byte)Role.Flags.ConquerItem.Rune;
                                                if (
Database.ItemType.IsRuneEssence(items.ITEM_ID))
                                                {
                                                    
client.Send(_stream.ItemUsageCreate(MsgItemUsuagePacket.ItemUsuageID.RemoveInventory, items.UID, 0, 0, 0, 0, 0));
                                                    if (
client.Warehouse.TryGetItem((uint)Game.MsgNpc.NpcID.WHRune, items.UID, out items))
                                                    {
                                                        
items.Mode = Role.Flags.ItemMode.AddItem;
                                                        
items.Send(client, _stream);
                                                    }
                                                }
                                                
client.Send(_stream.ItemUsageCreate((MsgItemUsuagePacket.ItemUsuageID)packet[20], BitConverter.ToUInt32(packet, 8), BitConverter.ToUInt32(packet, 12), BitConverter.ToUInt32(packet, 22), 0, 0, 0));
                                            }
                                        }
                                    }
                                    break;
                                }

                            case 
1:
                                {
                                    if (
client.Warehouse.RemoveItem(BitConverter.ToUInt32(packet, 8), (uint)Game.MsgNpc.NpcID.WHRune, null))
                                        
client.Send(_stream.ItemUsageCreate((MsgItemUsuagePacket.ItemUsuageID)packet[20], BitConverter.ToUInt32(packet, 8), BitConverter.ToUInt32(packet, 12), BitConverter.ToUInt32(packet, 22), 0, 0, 0));
                                    break;
                                }
                        }
                        break;
                    }
                case 
RuneType.Equip:
                    {
                        
MsgGameItem DataItem;
                        if (
client.Warehouse.TryGetItem((uint)Game.MsgNpc.NpcID.WHRune, (uint)BitConverter.ToUInt32(packet, 8), out DataItem))
                        {

                            if (
IsRune(DataItem.ITEM_ID) == false)
                                return;
                            var 
DBItem = Database.ItemType.GetItemRecord(DataItem.ITEM_ID);
                            if (
DBItem != null)
                            {
                                if (
client.Warehouse.CanEquipRune((ushort)packet[12]))
                                {
                                    if (
client.Warehouse.DeleteItem((uint)Game.MsgNpc.NpcID.WHRune, (uint)BitConverter.ToUInt32(packet, 8)))
                                    {
                                        
client.Warehouse.AddItem(DataItem, (uint)Game.MsgNpc.NpcID.MainRune);
                                        
DataItem.Mode = Role.Flags.ItemMode.Update;
                                        
DataItem.Position = (byte)packet[12];
                                        
DataItem.Send(client, _stream);
                                        
client.Equipment.QueryEquipment(client.Equipment.Alternante, false);
                                        
client.Send(_stream.ItemUsageCreate((MsgItemUsuagePacket.ItemUsuageID)packet[20], BitConverter.ToUInt32(packet, 8), BitConverter.ToUInt32(packet, 12), BitConverter.ToUInt32(packet, 22), 0, 0, 0));

                                        var 
spell = Database.MagicType.GetSpellRecord(DBItem.SpellID, DBItem.SpellLevel);

                                        if (
spell != null)
                                        {
                                            if (!
client.MySpells.ClientSpells.ContainsKey((ushort)spell.ID))
                                                
client.MySpells.Add(_stream, (ushort)spell.ID);
                                        }
                                    }
                                }
                            }
                        }
                        break;
                    }
                case 
RuneType.UnEquip:
                    {
                        
MsgGameItem DataItem;
                        if (
client.Warehouse.TryGetItem((uint)Game.MsgNpc.NpcID.MainRune, (uint)BitConverter.ToUInt32(packet, 8), out DataItem))
                        {

                            if (
IsRune(DataItem.ITEM_ID) == false)
                                return;

                            if (
client.Warehouse.AddItem(DataItem, (uint)Game.MsgNpc.NpcID.WHRune))
                            {
                                if (
client.Warehouse.DeleteItem((uint)Game.MsgNpc.NpcID.MainRune, (uint)BitConverter.ToUInt32(packet, 8)))
                                {
                                    
DataItem.Mode = Role.Flags.ItemMode.Update;
                                    
DataItem.Position = (byte)Role.Flags.ConquerItem.Rune;
                                    
DataItem.Send(client, _stream);

                                    
client.Equipment.QueryEquipment(client.Equipment.Alternante, false);
                                    
client.Send(_stream.ItemUsageCreate((MsgItemUsuagePacket.ItemUsuageID)packet[20], BitConverter.ToUInt32(packet, 8), BitConverter.ToUInt32(packet, 12), BitConverter.ToUInt32(packet, 22), 0, 0, 0));

                                    var 
DBItem = Database.ItemType.GetItemRecord(DataItem.ITEM_ID);
                                    if (
DBItem != null)
                                    {
                                        var 
spell = Database.MagicType.GetSpellRecord(DBItem.SpellID, DBItem.SpellLevel);

                                        if (
spell != null)
                                        {
                                            if (
client.MySpells.ClientSpells.ContainsKey((ushort)spell.ID))
                                                
client.MySpells.Remove((ushort)spell.ID, _stream);
                                        }
                                    }
                                }
                            }
                            else
                                
client.SendSysMesage("Sorry, your container is full.");
                        }
                        break;
                    }
            }
        }
        public static 
uint GetRuneComposePoints(uint ID, byte plus)
        {
            if ((
ID >= 4030101 && ID <= 4031309))
                return 
YellowRunePoints[Math.Min((int)plus, 9)];
            return 
BlueRunePoints[Math.Min((int)plus, 27)];
        }

        public static 
bool IsRuneMax(uint ID, byte plus)
        {
            if ((
ID >= 4030101 && ID <= 4031309))
            {
                if (
plus < 9)
                    return 
true;
            }
            else
                if (
plus < 27)
                    return 
true;
            return 
false;
        }
    }
} 

بتوفيق للجميع


قديم 2019-08-09, 07:04 PM
المشاركة 2
Hassan Emprator
.:: مشرف قسم المشاكل ::.
  • غير متواجد
افتراضي رد: سستم الرونز سورس اليكس بورتو
هههه مسطفي سمير الي ناشره

قديم 2019-08-09, 07:05 PM
المشاركة 3
محمودمحمدسالم
.:: عضو خبير ::.
  • غير متواجد
افتراضي رد: سستم الرونز سورس اليكس بورتو
عفواً لايمكن عرض الرابط إلا بعد الرد على الموضوع
هههه مسطفي سمير الي ناشره
صاحب الشغل عبدالرحمن
ميفرقش معايا مين الي ناشر طلما مش بتاعو انا بكتب صاحب الحاجه مش الي ناشر الموضوع

قديم 2019-08-09, 07:07 PM
المشاركة 4
محمودمحمدسالم
.:: عضو خبير ::.
  • غير متواجد
افتراضي رد: سستم الرونز سورس اليكس بورتو
عفواً لايمكن عرض الرابط إلا بعد الرد على الموضوع
هههه مسطفي سمير الي ناشره
الي ناشر ده زاي زايك المفرود يكتب مين صاحب الشغل ميخدش الشغل لي و الي تعب في ملهاش اي لزمه
عندك كلمه حلوة اكتبها معندكش مش لازم تعرفني مين الي ناشر الكلام ده لاني عارف وللهي

قديم 2019-08-11, 11:39 AM
المشاركة 5
AhmedGoda
.:: عضو جديد ::.
  • غير متواجد
افتراضي رد: سستم الرونز سورس اليكس بورتو
اضيف فين الحجات دي

قديم 2019-08-12, 08:41 AM
المشاركة 6
مصطفي عدلي
.:: عضو نشيط ::.
  • غير متواجد
افتراضي رد: سستم الرونز سورس اليكس بورتو
يا حبيبي ما هو الشغل وصل لمصطفى سمير انت اخذته ونزلته يبقى اقرا الكلام اللي هم في قلب البوست صح وانت هتفهم بشده اخذ كوبي وبست وتنزل وخلاص

افهم الحوار على ايه احسن ما انت ما انتاش فاهم حاجه و بتنزل وخلاص كده

قديم 2019-08-12, 08:43 AM
المشاركة 7
مصطفي عدلي
.:: عضو نشيط ::.
  • غير متواجد
افتراضي رد: سستم الرونز سورس اليكس بورتو
وكمان وانت بتفهم صح اللي نازل ده ما هوش كامل

قديم 2019-08-12, 10:22 AM
المشاركة 8
Mr~Rayzo
::. المدير العام ::.
  • غير متواجد
افتراضي رد: سستم الرونز سورس اليكس بورتو
يعنى عاوز تقولى ان ده سيستم الرونز كامل

قديم 2019-08-12, 06:07 PM
المشاركة 9
محمودمحمدسالم
.:: عضو خبير ::.
  • غير متواجد
افتراضي رد: سستم الرونز سورس اليكس بورتو
عفواً لايمكن عرض الرابط إلا بعد الرد على الموضوع
يعنى عاوز تقولى ان ده سيستم الرونز كامل
انتا شايفني كاتب ان ده السستم كامل ؟

قديم 2019-08-12, 06:09 PM
المشاركة 10
محمودمحمدسالم
.:: عضو خبير ::.
  • غير متواجد
افتراضي رد: سستم الرونز سورس اليكس بورتو
عفواً لايمكن عرض الرابط إلا بعد الرد على الموضوع
يا حبيبي ما هو الشغل وصل لمصطفى سمير انت اخذته ونزلته يبقى اقرا الكلام اللي هم في قلب البوست صح وانت هتفهم بشده اخذ كوبي وبست وتنزل وخلاص

افهم الحوار على ايه احسن ما انت ما انتاش فاهم حاجه و بتنزل وخلاص كده
خليك في حالك ونبي و ملكش في عندك كلمه حلوة اكتبها معندكش يبقا متكلمش اصلا

و لو انتا مصطفي احب اقولك يعني اي الشغل وصل لي مصطفي و بتاع الشغل طلما مش بتاعك يبقا خلاص برا عنك


العلامات المرجعية



الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 

الانتقال السريع

المواضيع المتشابهه للموضوع: سستم الرونز سورس اليكس بورتو
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
سورس بورتو كامل بي شخصية الجديده بعد التعديل شخصية ثور + باتش[نسخة ماتريكس] Mr.X سورسات كونكر 68 2021-09-20 01:10 AM
يلا صفحه لسورس اليكس انا معدلها عشان تتظبط مع اليكس midoazoz صفحات التسجيل كونكر اونلاين 96 2021-09-19 02:21 PM
سورس اليكس بي البروتو :] الابيك و الرونز و كل حاجه محمودمحمدسالم سورسات كونكر 227 2021-07-10 03:21 PM
بخصوص قيم الرونز فى سورس ماتركس رفيق القلم مشكلات السيرفيرات كونكر الشخصيه 9 2019-12-25 06:49 AM
سورس اليكس Hazem مشكلات السيرفيرات كونكر الشخصيه 6 2019-08-02 04:31 PM


الساعة الآن 05:18 PM