الموقع العربي الاول للعبة Silkroad Online

الموقع العربي الاول للعبة Silkroad Online (https://silkroad4arab.com/vb/index.php)
-   قـسـم الـبـرامـج الـمـسـاعـدة (https://silkroad4arab.com/vb/forumdisplay.php?f=15)
-   -   دورة شرح طريقة عمل البوت داخل الجيم وتكوين الباكتس (https://silkroad4arab.com/vb/showthread.php?t=439244)

tarek1500 06-10-2012 12:02 PM

اقتباس:

المشاركة الأصلية كتبت بواسطة osama mansour (المشاركة 4366326)
يا tarek1500 انت مردتش على سؤالى انت عامل برنامج يتصل باللعبة ويرسل الاوامر ولو امر واحد ولا لسة بتجرب ؟
طييب لو عاامل برناامج انا قولتلك فى الرد اللى فات يارييت تقوولى على اكواد الاتصاال والارسال باللعبة كاااملة مش كتاابة الامر بس يعنى برمجة الجزء دة بالكاامل لو انت عملتة
انا فعلا مخدتش دورة برمجة بس انا صممت برنامج كامل قبل كدة وكنت هرفعوا على النت وهبيعوا بس محبتش العملية دى واقدر اصمم اى برنامج بسهوولة الحمد لله ماعدا البرامج التقييلة اوى اللى محتاجة ناس متخصصة بس مشكلتى دلوقتى فى جزء ربط البوت باللعبة وارسال الاوامر ياارييت لو برمجت الجزء دة متبخلش علينا بالبرمجة

استاذ acer كان كاتب كود ازاي تبعت رسالة زي بتاعة ال GM ل الكلينت ممكن تجرب عليها

اقتباس:

المشاركة الأصلية كتبت بواسطة acer20006 (المشاركة 4330111)
كود بلغة HTML:

الهدف _ ارسال رسالة على صورة رسالة ال GM _
ZeraPain_المولف_
_ملحوظة_الاوبى كود محتاج تجديد

ودة السورس . ممكن تتعلم منة فكرة الاتصال ازاى بتم

كود:

using System;
using System.Collections;
using System.Text;
using System.Net;
using System.Net.Sockets;

namespace SendNotice
{
    class Program
    {
        class ConnectedSocket
        {
            private Socket winSock;

            public void Connect(string IP, int Port)
            {
                winSock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                IPAddress IPA = IPAddress.Parse(IP);
                IPEndPoint IPEP = new IPEndPoint(IPA, Port);
                try
                {
                    winSock.Connect(IPEP);
                }
                catch (SocketException se)
                {
                    Console.WriteLine(se.Message);
                }
            }

            public void Send(byte[] data)
            {
                if (winSock.Connected)
                    winSock.Send(data);
            }
        } 

        private static ConnectedSocket Socket = new ConnectedSocket();

        static void Main(string[] args)
        {
            Socket.Connect("127.0.0.1", 9000);

            while (true)
            {
                Console.Write("Notice: ");
                string message = Console.ReadLine();
                Console.WriteLine("");
                SendNotice(message);
            }
        }

        private static void SendNotice(string notice)
        {
            PacketWriter writer = new PacketWriter(0x3026, 1); // OpCode 0x3026, Security (2 -> to server, 1 -> to client) for SrProxy
            writer.AppendByte(7); //Chat type
            writer.AppendUnicodeString(notice); //Message
            Socket.Send(writer.GetPacket());
        }
    }

    class PacketWriter
    {
        private ArrayList Data;
        private ArrayList Packet;
        private int Size;

        public PacketWriter(ushort opcode, byte security)
        {
            Size = 0;
            Data = new ArrayList();
            Packet = new ArrayList();

            Data.AddRange(BitConverter.GetBytes(opcode));
            Data.Add((byte)security);
            Data.Add((byte)0);
        }

        public byte[] GetPacket()
        {
            Packet.AddRange(BitConverter.GetBytes((ushort)Size));
            Packet.AddRange(Data);
            return (byte[])Packet.ToArray(typeof(byte));
        }

        public void AppendByte(byte value)
        {
            Data.Add((byte)value);
            Size += 1;
        }

        public void AppendUnicodeString(string message)
        {
            AppendWord((ushort)message.Length);
            Data.AddRange(Encoding.Unicode.GetBytes(message));
            Size += message.Length * 2;
        }

        public void AppendWord(ushort value)
        {
            Data.AddRange(BitConverter.GetBytes(value));
            Size += 2;
        }
    }
}



tarek1500 07-10-2012 06:13 PM

دلوقتي لما اجي احلل Packet 3013 بتاعت ال Char Info & Skills & Inv لما اجي اوصل لي ال Items و ال Set اللي في ال Inv بيواجهني مشكلة اني مش عارف افرق بين ال Items اللي بتتلبس و ال Stones وال Items الاخري علشان كل حاجة ليها Data مختلفة في ال Packet ، هل استخدم شرط انو يبص في ال Text بتاع ال Items و لو لقي Items بيبتدي ب ITEM_CH او ITEM_EU يبقي ده بيتلبس مثلا ولا فيه طريقة احسن؟

osama mansour 08-10-2012 07:28 AM

اقتباس:

المشاركة الأصلية كتبت بواسطة tarek1500 (المشاركة 4366516)
استاذ acer كان كاتب كود ازاي تبعت رسالة زي بتاعة ال GM ل الكلينت ممكن تجرب عليها

البرمجة اشتغلت بنجاح الله يجازيك خير يا tarek1500 على المجهود الرائع دة

tarek1500 08-10-2012 06:11 PM

اقتباس:

المشاركة الأصلية كتبت بواسطة osama mansour (المشاركة 4369065)
البرمجة اشتغلت بنجاح الله يجازيك خير يا tarek1500 على المجهود الرائع دة

شكرا بس المجهود ده مش ليا ده ل استاذ acer ليه كل الشكر الحقيقة

او بي كود الشات 7025 بس خلي بالك ان لما تستخدم شات الخاص بتختار الراجل اللي بتكلمو كمان ف مش هعرف افيدك في شات الخاص دلوقتي علشان لسه متعمقتش فيه ممكن تستخدمو في شات العام ، و تعامل انت :D

osama mansour 08-10-2012 06:49 PM

اقتباس:

المشاركة الأصلية كتبت بواسطة tarek1500 (المشاركة 4369508)
شكرا بس المجهود ده مش ليا ده ل استاذ acer ليه كل الشكر الحقيقة

او بي كود الشات 7025 بس خلي بالك ان لما تستخدم شات الخاص بتختار الراجل اللي بتكلمو كمان ف مش هعرف افيدك في شات الخاص دلوقتي علشان لسه متعمقتش فيه ممكن تستخدمو في شات العام ، و تعامل انت :d

ياريت تكتبلى اميلك الياهو هنا او تبعتهولى على الخاص علشان نساعد بعض

tarek1500 08-10-2012 07:38 PM

اقتباس:

المشاركة الأصلية كتبت بواسطة osama mansour (المشاركة 4369561)
ياريت تكتبلى اميلك الياهو هنا او تبعتهولى على الخاص علشان نساعد بعض

احسن نكتب في الموضوع علشان اي حد جديد يقرأ و يفهم و يشوف كل حاجة :)

elmohtaref_77 09-10-2012 09:51 PM

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

acer20006 11-10-2012 08:08 PM

اقتباس:

المشاركة الأصلية كتبت بواسطة tarek1500 (المشاركة 4368234)
دلوقتي لما اجي احلل packet 3013 بتاعت ال char info & skills & inv لما اجي اوصل لي ال items و ال set اللي في ال inv بيواجهني مشكلة اني مش عارف افرق بين ال items اللي بتتلبس و ال stones وال items الاخري علشان كل حاجة ليها data مختلفة في ال packet ، هل استخدم شرط انو يبص في ال text بتاع ال items و لو لقي items بيبتدي ب item_ch او item_eu يبقي ده بيتلبس مثلا ولا فيه طريقة احسن؟



اسف للتاخير بس بسبب الشغل و تجهز ورق الجيش مكنتش بفتح
بالنسبة ل 3013 فعلا هو خاص بنوع الشخصية واللفل والنقط الميردر والاكويستات والاسكلان وهاكذا وبالنسبة للايتم اللى هو سوالك ... فعلا انت لازم تستخدم التكتس اللى فى الميديا علشان تفرق بين الايتم وبيكون دة عن طريق الاى بى وبعد كدة بتتقارن باسم الايتم الاساسى item_ch او item_eu ( يعنى كلامك 100% صح )
فى طبعا طرق تانية بس هتلاقيها عقيمة . زى اهمال نوع الايتم والتعامل معاهم كلهم بشكل واحد بس هتلاقى ان دة هيتعبك بعد كدة فى استخدام الايتم فى الشنطة او ساعة البيع والشراء
بدون مقاطعة هشرح الجزئية دية بتفصيل يوم الحد اللى جى

tarek1500 11-10-2012 10:22 PM

اقتباس:

المشاركة الأصلية كتبت بواسطة acer20006 (المشاركة 4373007)
اسف للتاخير بس بسبب الشغل و تجهز ورق الجيش مكنتش بفتح
بالنسبة ل 3013 فعلا هو خاص بنوع الشخصية واللفل والنقط الميردر والاكويستات والاسكلان وهاكذا وبالنسبة للايتم اللى هو سوالك ... فعلا انت لازم تستخدم التكتس اللى فى الميديا علشان تفرق بين الايتم وبيكون دة عن طريق الاى بى وبعد كدة بتتقارن باسم الايتم الاساسى item_ch او item_eu ( يعنى كلامك 100% صح )
فى طبعا طرق تانية بس هتلاقيها عقيمة . زى اهمال نوع الايتم والتعامل معاهم كلهم بشكل واحد بس هتلاقى ان دة هيتعبك بعد كدة فى استخدام الايتم فى الشنطة او ساعة البيع والشراء
بدون مقاطعة هشرح الجزئية دية بتفصيل يوم الحد اللى جى

شكرا انا لقيت طريقة احسن بال TypeID ، بس عاوز Packet ال ID و ال PW و ال Server
و عاوز طريقة حساب ال X و ال Y في ال Tomp و اي Dungeon
و عندي مشكلة لما بكتب Socket.Recieve في Loop البوت بيعلق لحد لما يستقبل اي بيانات او لحد لما ال RunTimeOut يخلص ، ازاي اخليه يشتغل عادي بمعني لو فيه بيانات يستقبلها يستقبل و لو مفيش ميعملش حاجة من غير ما يعلق؟؟ بس ب C# من فضلك
و عاوز طريقة حساب ال X-Y في Packet 3013 هي بتكون علي الصورة ديه
6C6A 00005041 00003443 0040B844

MohandMomo 12-10-2012 12:08 AM

ty

hamada hany 14-10-2012 06:29 AM

طيب هو لو عايز أعمل auto alchemy عشان تساعدني في ++ هل هعمل كل الخطوات للبوت زي ارسال واستقبال البيانات وكده؟!!
كمان رجاءا ياريت تخلي الجزء ده ضمن العملي وشكرا ليك ع المجهود الرائع

acer20006 15-10-2012 06:29 AM

اقتباس:

المشاركة الأصلية كتبت بواسطة hamada hany (المشاركة 4376485)
طيب هو لو عايز أعمل auto alchemy عشان تساعدني في ++ هل هعمل كل الخطوات للبوت زي ارسال واستقبال البيانات وكده؟!!
كمان رجاءا ياريت تخلي الجزء ده ضمن العملي وشكرا ليك ع المجهود الرائع

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

acer20006 15-10-2012 07:46 AM

اقتباس:

المشاركة الأصلية كتبت بواسطة tarek1500 (المشاركة 4373108)
شكرا انا لقيت طريقة احسن بال TypeID ، بس عاوز Packet ال ID و ال PW و ال Server
و عاوز طريقة حساب ال X و ال Y في ال Tomp و اي Dungeon
و عندي مشكلة لما بكتب Socket.Recieve في Loop البوت بيعلق لحد لما يستقبل اي بيانات او لحد لما ال RunTimeOut يخلص ، ازاي اخليه يشتغل عادي بمعني لو فيه بيانات يستقبلها يستقبل و لو مفيش ميعملش حاجة من غير ما يعلق؟؟ بس ب C# من فضلك
و عاوز طريقة حساب ال X-Y في Packet 3013 هي بتكون علي الصورة ديه
6C6A 00005041 00003443 0040B844

بالنسبة للباكتس بتاعت اليوزر والباس اعمل بحث عن autoit clientless هتلاقى فى الموضوع دة الباكتس اللى انت عايزها
بالنسة للطريقة الجديدة بتاعتك انا معرفش قصدك اية بس مادام شغالة يبقى تمام.
بالنسبة لل اكس والولى نفس القانون برغم من اهم مش بيظهرو فى الكهف
بالنسبة لل RunTimeOut راجع msdn وهتلاقى حل ليها
بالنسبة لل
6C6A 00005041 00003443 0040B844 انا وضحت تقسيمتها فى الموضوع

Cave

acer20006 15-10-2012 05:21 PM

تم اضافة جزء جديد

tarek1500 15-10-2012 05:59 PM

اقتباس:

المشاركة الأصلية كتبت بواسطة acer20006 (المشاركة 4377839)
ببالنسبة لل [/SIZE]6C6A 00005041 00003443 0040B844 انا وضحت تقسيمتها فى الموضوع

Cave

انا عاوز قانون يحسبها علشان ديه مكونه من 4 bit مش 2 زي القانون اللي في الاول "0040B844"
و عندي مشكلة مش عارف حلها و بحثت عليها و مش عارف برضو
00020000000100000000000000FF0000000200000000000000 FF00000006E87B00
الكود ده موجود بعد جزء ال Quests علي طول و فيه ال ID في الاخر بس الجزء اللي قبليه مش عارف ده ايه عاوز اعرف ، علشان الجزء ده بيختلف عدد الارقام فيه من Account لاخر
و شكرا علي المجهود العالي :D


الساعة الآن 01:45 AM.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2024, vBulletin Solutions, Inc.