-->

إشترك في النشرة البريدية

إغلاق القائمة
جميع الحقوق محفوظة لـ الاختراع سمارت © 2019

تم تجديد الموقع وسنقوم بالعمل عليه مره اخري


حل مشكلة السوكت والدامج Forging soultion and socket


    السلام عليكم ورحمة الله وبركاته




    اليوم انهارده حل مشكلة السوكت والدامج 

    الحل مناسب لسورس عبدو ماتركس

    الحل سوف يكون في باكت 1009

    case 40:
    {
    uint ItemAdd = BitConverter.ToUInt32(packet, 8);
    ConquerItem item_new = null;
    if (client.Inventory.TryGetItem(ItemAdd, out item_new))
    {
    var itemtype = item_new.GetItemType();
    if (itemtype == ConquerItem.ItemTypes.GemID)
    return;
    ushort pos = ItemPosition(item_new.ID);
    if (pos == ConquerItem.Bottle || pos == ConquerItem.Fan || pos == ConquerItem.Garment || pos == ConquerItem.LeftWeaponAccessory || pos == ConquerItem.RightWeaponAccessory || pos == ConquerItem.Steed || pos == ConquerItem.SteedArmor || pos == ConquerItem.SteedCrop || pos == ConquerItem.Tower || pos == ConquerItem.Wings)
    {
    client.Send(new Message("Sorry can't bless this item !", System.Drawing.Color.Red, Message.Talk));
    return;
    }
    if (item_new.Bless >= 7)
    return;
    Queue<uint> amount = new Queue<uint>(packet[24]);
    for (ushort i = 91; i < 91 + 4 * usage.dwExtraInfo; i += 4)
    {
    uint uid = BitConverter.ToUInt32(packet, i);
    if (client.Inventory.ContainsUID(uid))
    amount.Enqueue(uid);
    else
    return;
    }
    byte oldbless = item_new.Bless;
    if (item_new.Bless == 0 && amount.Count == 5)
    item_new.Bless = 1;
    else if (item_new.Bless == 1 && amount.Count == 1)
    item_new.Bless = 3;
    else if (item_new.Bless == 3 && amount.Count == 3)
    item_new.Bless = 5;
    else if (item_new.Bless == 5 && amount.Count == 5)
    item_new.Bless = 7;
    if (oldbless == item_new.Bless)
    return;
    while (amount.Count != 0)
    client.Inventory.Remove(amount.Dequeue(), Conquer_Online_Server.Game.Enums.ItemUse.Remove, true);
    item_new.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Update;
    item_new.Send(client);
    usage.dwParam = 1;
    Database.ConquerItemTable.UpdateBless(item_new);
    }
    client.Send(packet);
    break;
    }


    وده التعديل الاخير

    public uint[] Batch
    {
    get
    {
    uint[] items = new uint[dwExtraInfo];
    for (int i = 0; i < dwExtraInfo; i++)
    {
    items[i] = BitConverter.ToUInt32(Buffer, 91 + 4 * i);
    }
    return items;
    }
    set
    {
    if (value != null)
    {
    dwExtraInfo = (uint)value.Length;
    for (int i = 0; i < dwExtraInfo; i++)
    {
    WriteUInt32(value[i], 91 + 4 * i, Buffer);
    }
    }
    }
    }


    1. منقول من المايسترو

      ردحذف
      الردود
      1. انا مش قولت ان الحل بتاعي
        ولكن شوف في المواضيع عدد التعليقات الي الناس فيها محتاجة الحل ده
        فحبته ليهم من السورس الي انا شغال عليه والي في الاساس محلول فيه معظم المشاكل

        حذف
    2. يا ريت لو تقدر توصلنا نعمل ايه بالظبط ونحط الكود فين عشان انا هى دى المشكلة الوحيدة قدامى الى مقبلانى يا ريت توضح اكتر

      ردحذف
      الردود
      1. اوضح اكتر ازاي
        الشرح واضح انا مديك الاكواد الي انت بتعدلها والسورس هيبقي تمام
        ولو مش هتعرف تضبطه يبقي خد السورس ده كامل
        http://www.smarty-inv.com/2015/11/source-v3-conquer-full-wings-6135.html

        حذف
    3. فى مليف دى صح
      PacketHandler.cs

      ردحذف
      الردود
      1. نصيحة لما مش تلاقي الكاتب كاتب فين بالضبط
        انت ممكن بسهولة تاخد جملة او كود وتبحث عنه في البروجكت
        ابحث عن
        if (pos == ConquerItem.Bottle || pos == ConquerItem.Fan ||
        هتلاقي الكود ده في case 40

        وصلت يا استاذ محمود ولا لأ

        حذف