Kayıt
16 Ekim 2008
Mesajlar
1
Beğeniler
0
Vb6da Bot Yazmasın ki ,Vb6dan anlayan bunu bilir Botu Yazsan Bile Oyun Kabul etmez En İyisi AutoIt'le Yaz ama OdaGörsel Bi Program değil Kodlarla Yazıon . En İyisi Vb6 AutoIt Script Kullanmak AutoIt'ın Kodlarını Vb6'da Kullana Bilrisin yaz Google Vb6'da AutoIt Kullanımı Diye Çıkar.
 
Kayıt
24 Ağustos 2008
Mesajlar
11
Beğeniler
0
Arkadasım Bot Yazmak Kolay Değil Bende Bu Konu Ustunde Ugrasıyorum Yazınıda Görunce Bir Bakayım Dedim Ama Acemi Biri Hemen Yapamaz Onu Ben Bu Konu Ustunde Asagı yukarı 1 senedir araştırma yapıyorum ve elimde bayagı veri var bunları birleştirerek kendin bir bot yazabilirsin ben sana kucuk bir orenek vereyim
Programlarda OpCode Denilen Bir Sistemler Clien => Server Veya Server => Clien Arasında Veri Alışverisi olur Sen Burda O verileri ele gecirip geri sen yolluyorssun
Bunlar Zszc Nın OpCodeleri
Kod:
Char Update Opcode
-----
3013
-----
Walk Opcode
-----
7021
-----
Target Opcode
-----
7045
-----
Normal Attack Opcode
-----
7074
-----
Being Attacked Opcode
-----
3057
-----
Mob Spawn Opcode
-----
3013
-----
Mob Died Opcode
-----
30BF
-----
chat opcode
-----
3026
-----
Gold Update
-----
304E
-----
HP/MP Update
-----
3057
-----
Storage Info opcode
-----
B046
-----
char Info Opcode
-----
303D
-----
Object Action
-----
B070
-----
Group Spawn Opcode
-----
30D0
-----
Talk to Storage Opcode
-----
7045 (3F010000)
-----
Open Storage Opcode
-----
7046 (3F01000004000000)
Kücük Bir C# Örnegi Daha Bendede Üzerinde Ugrasıyorum :D

Normal Atak
(7074)01010101[sMonsterID]

Skill Atak
(7074)0104[SkillID]0101[sMonsterID]

Buff/Imbue
(7074)0104[SkillID]00

Pick
(7074)01020101[ItemID]

Bunları Yapıp Şifreleyip Servera Yolluyorsun Ve Hallloluyor
bu şifreleme önce StringToByteArray sonrada StringToHex Yapman lazım Birtane Kücük Bi Örnek Daha Vereyim Mesela Sroda Notice Gecebilirsin

Program.cs
Kod:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        private static bool exit = false;
        private static ConnectedSocket Socket = new ConnectedSocket();

        static void Main(string[] args)
        {
            Socket.Connect("127.0.0.1", 9000);
            Console.WriteLine("Connection established!");

            while (exit == false)
                ConsoleRead(Console.ReadLine());
        }

        private static void ConsoleRead(string msg)
        {
            string cmd = msg.Substring(0, 1);
            switch (cmd)
            {
                case "~":
                    SendNotice(msg.Substring(1));
                    break;
            }
        }

        private static void SendNotice(string notice)
        {
            byte[] msg = Functions.StringToByteArray(Functions.StringToHex(notice));

            PacketWriter writer = new PacketWriter();
            writer.AppendOpCode(0x3026);
            writer.AppendSecurity(1);
            writer.AppendByte(7);
            writer.AppendWord((ushort)notice.Length);
            writer.AppendByteArray(msg);
            Socket.Send(writer.GetPacket());
        }
    }
}
ConnectedSocket.cs
Kod:
using System;
using System.Net;
using System.Net.Sockets;

namespace ConsoleApplication1
{
    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);
            }
        }
    }       
}
Functions.cs
Kod:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Functions
    {
        public static byte[] StringToByteArray(string hex)
        {
            int NumberChars = hex.Length;
            byte[] bytes = new byte[NumberChars / 2];
            for (int i = 0; i < NumberChars; i += 2)
                bytes[i / 2] = Convert.ToByte(hex.Substring(i, 2), 16);
            return bytes;
        }

        public static string StringToHex(string Hexstring)
        {
            string ausgabe = string.Empty;
            StringBuilder SB = new StringBuilder();
            for (int i = 0; i < Hexstring.Length; i++)
                SB.Append(Convert.ToInt32(Hexstring[i]).ToString("x") + "");
            return SB.ToString();
        }
		
		private byte[] StringToByte(string Komut)
        {
            System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
            return encoding.GetBytes(Komut);
        }

        private String ByteToString(byte[] Veri)
        {
            System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
            return enc.GetString(Veri);
        }
    }
}
PacketWriter.cs
Kod:
/*    <Silkroad Notice Tool written in C#.Net>
    Copyright (C) <2010>  <[email protected]>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

using System;
using System.Collections;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class PacketWriter
    {
        private ArrayList Data = new ArrayList();
        private ArrayList Packet = new ArrayList();
        private int Size = 0;

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

        public void AppendOpCode(ushort value)
        {
            Data.AddRange(BitConverter.GetBytes(value));
        }

        public void AppendSecurity(byte value)
        {
            Data.Add((byte)value);
            Data.Add((byte)0);
        }

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

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

        public void AppendByteArray(byte[] value)
        {
            Data.AddRange(value);
            Size += value.Length;
        }

    }
}

Artık Benden Bukadar Arkadasım Bilgiler İnsallah İşine Yaramıstır :)
 
Kayıt
15 Temmuz 2009
Mesajlar
9.024
Beğeniler
254
Takımı
Galatasaray
hk1406 demiş ki:
Vb6da Bot Yazmasın ki ,Vb6dan anlayan bunu bilir Botu Yazsan Bile Oyun Kabul etmez En İyisi AutoIt'le Yaz ama OdaGörsel Bi Program değil Kodlarla Yazıon . En İyisi Vb6 AutoIt Script Kullanmak AutoIt'ın Kodlarını Vb6'da Kullana Bilrisin yaz Google Vb6'da AutoIt Kullanımı Diye Çıkar.
Autoitle bot yazılır da vb ile bot yazılmaz mı :D
Autoit ile yaptığın botla dalga geçerler yahu :D
 
Kayıt
4 Eylül 2013
Mesajlar
1
Beğeniler
0
millete yanlış bilgi vermeyin arkadaşım pont deil pointer(işaretçi) denir ona verinin bellekteki adresini saklar vb veya c# ile yapamamanın sebebide sana izin vermemesidir misal 10 elemanlık bir dizi tanımlayıp 11 inci elemana erişmeye çalışırsan program hata verir ama bunu C veya C++ ile yaparsan böyle bir hata almazsın(eğer bellek sınırları dışına çıkmadıysan tabi) vb ve C# ın bu managed code dene özelliğinin avantajıda vardır dezavantajıda.avantajı şudur programda atıyorum x diye bi değişken kullandın 1 defaya mahsus sonrada bütün program boyunca boş boş durucakmı bu x tabiki hayır C# bunu takip edecek ve kullanılmıyosa bellekten silecek,bu en basit örnek
 
Kayıt
5 Kasım 2007
Mesajlar
4.672
Beğeniler
612
Şehir
Ders Başı !!!
Bu mesaj coldblood123 rumuzlu uyeden alinti yapildi
coldblood123 demiş ki:
millete yanlış bilgi vermeyin arkadaşım pont deil pointer(işaretçi) denir ona verinin bellekteki adresini saklar vb veya c# ile yapamamanın sebebide sana izin vermemesidir misal 10 elemanlık bir dizi tanımlayıp 11 inci elemana erişmeye çalışırsan program hata verir ama bunu C veya C++ ile yaparsan böyle bir hata almazsın(eğer bellek sınırları dışına çıkmadıysan tabi) vb ve C# ın bu managed code dene özelliğinin avantajıda vardır dezavantajıda.avantajı şudur programda atıyorum x diye bi değişken kullandın 1 defaya mahsus sonrada bütün program boyunca boş boş durucakmı bu x tabiki hayır C# bunu takip edecek ve kullanılmıyosa bellekten silecek,bu en basit örnek
Harikasın bro da konuyu açan adam öldü
 
Kayıt
12 Kasım 2007
Mesajlar
141
Beğeniler
0
Son durum nedir benimde bu konu üzerinde merakım araştırmalarım oluyor konuyu acan arkadaş 2010 da açmış 4 sene geçmiş üzerinden gelişmeleri merak ediyorum doğrusu
 
Kayıt
16 Nisan 2007
Mesajlar
4.158
Beğeniler
11
Şehir
Yeşilpınar
Server
Efes
Takımı
Fenerbahce
Umarım süper birşey ortaya koyarsın kolay gelsin dostum herkesi an be an bilgilendirirsen seviniriz
 
Kayıt
15 Temmuz 2009
Mesajlar
9.024
Beğeniler
254
Takımı
Galatasaray
Bu mesaj Nina Ricci rumuzlu uyeden alinti yapildi
Nina Ricci demiş ki:
visual basic ile imkansız olmayan hiçbir şey yoktur 1 tane özellik dışında.bot yazmak için pointler kullanılır.her mob isminin levelinin , npc isminin point'i vardır.bu point anca autoit ile gerçekleştirilir vb ile yapman imkansız.skilleri okutamazsın , hp-mp çağıramazsın.ha kodları yazarsın adresleride uygun hale getirirsin mantıken doğru olur fakat oyuna bunu kabul ettiremezsin işte burada point denilen bir özellik araya giriyor.oda sadece autoit'te mevcut ^^
@Nina Ricci naptın aga sen :D
 
Kayıt
19 Ekim 2009
Mesajlar
10.451
Beğeniler
97
Takımı
Galatasaray
Bu mesaj sarkolata rumuzlu uyeden alinti yapildi
sarkolata demiş ki:
Bu mesaj Nina Ricci rumuzlu uyeden alinti yapildi
Nina Ricci demiş ki:
visual basic ile imkansız olmayan hiçbir şey yoktur 1 tane özellik dışında.bot yazmak için pointler kullanılır.her mob isminin levelinin , npc isminin point'i vardır.bu point anca autoit ile gerçekleştirilir vb ile yapman imkansız.skilleri okutamazsın , hp-mp çağıramazsın.ha kodları yazarsın adresleride uygun hale getirirsin mantıken doğru olur fakat oyuna bunu kabul ettiremezsin işte burada point denilen bir özellik araya giriyor.oda sadece autoit'te mevcut ^^
@Nina Ricci naptın aga sen :D
Seneye baksana sen makara:
 
Kayıt
6 Şubat 2007
Mesajlar
335.490
Beğeniler
1.635
Şehir
Taksim/IST.
Server
Flora
Takımı
Galatasaray
Bu mesaj Nina Ricci rumuzlu uyeden alinti yapildi
Nina Ricci demiş ki:
Bu mesaj sarkolata rumuzlu uyeden alinti yapildi
sarkolata demiş ki:
Bu mesaj Nina Ricci rumuzlu uyeden alinti yapildi
Nina Ricci demiş ki:
visual basic ile imkansız olmayan hiçbir şey yoktur 1 tane özellik dışında.bot yazmak için pointler kullanılır.her mob isminin levelinin , npc isminin point'i vardır.bu point anca autoit ile gerçekleştirilir vb ile yapman imkansız.skilleri okutamazsın , hp-mp çağıramazsın.ha kodları yazarsın adresleride uygun hale getirirsin mantıken doğru olur fakat oyuna bunu kabul ettiremezsin işte burada point denilen bir özellik araya giriyor.oda sadece autoit'te mevcut ^^
@Nina Ricci naptın aga sen :D
Seneye baksana sen makara:
Eski mesajlarını okuyup utanmak makara:
 
Kayıt
1 Haziran 2008
Mesajlar
152
Beğeniler
3
ARKADAŞLAR BENDE OTO EXCHANGE KABUL ETMESİNİ VE KARŞI TARAFTAN BELİRTİLEN MİKTAR KADAR PARA ALMASINI VE VERİLMEZSE O KİŞİYİ 5 DK İÇİNDE PARTYDEN ATMASINI İSTİYORUM AYRICA BELİRTİLEN MKTARIN KATLARI VERİLDİĞİNDE DE TAXİ SÜRESİNİ UZATMASINI İSTİYORUM SADECE BÖYLE BİR PROĞRAM YAPMAK İSTİYORUM BANA NASIL OYUN İLE BAĞLANTI KURABİLİRİM ONU AÇIKLAYABİLECEK ARKADAŞ VARMI ACABAA...?
 
Kayıt
12 Temmuz 2014
Mesajlar
1
Beğeniler
0
Merhaba arkadaslar.Visual Basic diliyle bir Bot yazmak istiyorum.Daha once knight online icin Koxp yazıyordum.Kısaca VB bilgim Orta Derecede.

Eğer bot yapımını bilen arkadaslar varsa yardımcı olursa cok sevınırım

teşşekürler.
konu hort
yaptığım şeyin yanlış olduğunu biliyorum ancak şöyle birşey belirtmek istiyorum
arkadaşın bu konuyu başlatmasından bu yana 12 yıl geçti ve o geçen 12 yıl içerisinde bir türk evladı da bot yapıp piyasaya süremedi
silkroad oyun botu sektörünü arkadaşın bu konuyu yazmasından bir yıl sonra PhBot isimli bir bot piyasaya çıktı ve şuanda o botun geldiği
nokta yani silkroadın 2006 da çıkmasından bir yıl sonra piyasaya çıkan SBot isimli botun önüne geçti piyasayı domine eden bir bot oldu
şuanda ortalama phbotun kullanıcı sayısı geçenlerde hesaplamıştım işsizlikten ortalama tahminimce 30000 ila 40000 kişi arasında ve 8 haftalığını 8 dolara satıyor aylık 240.000$ tekabül eden bir karı olduğunu belirtmek istedim yani demem o ki 12 yıl önce böyle boş işlerle uğraşma diyen kişileri dinlemeseydin gerçekten uğraşıp bir arkadaşın dediği gibi türkbot adında bir bot kodlayıp piyasaya sürseydin şuanda belki çok farklı yerlerde olabilirdin teşekkürler.
 
Kayıt
14 Şubat 2008
Mesajlar
11
Beğeniler
2
konu hort
yaptığım şeyin yanlış olduğunu biliyorum ancak şöyle birşey belirtmek istiyorum
arkadaşın bu konuyu başlatmasından bu yana 12 yıl geçti ve o geçen 12 yıl içerisinde bir türk evladı da bot yapıp piyasaya süremedi
silkroad oyun botu sektörünü arkadaşın bu konuyu yazmasından bir yıl sonra PhBot isimli bir bot piyasaya çıktı ve şuanda o botun geldiği
nokta yani silkroadın 2006 da çıkmasından bir yıl sonra piyasaya çıkan SBot isimli botun önüne geçti piyasayı domine eden bir bot oldu
şuanda ortalama phbotun kullanıcı sayısı geçenlerde hesaplamıştım işsizlikten ortalama tahminimce 30000 ila 40000 kişi arasında ve 8 haftalığını 8 dolara satıyor aylık 240.000$ tekabül eden bir karı olduğunu belirtmek istedim yani demem o ki 12 yıl önce böyle boş işlerle uğraşma diyen kişileri dinlemeseydin gerçekten uğraşıp bir arkadaşın dediği gibi türkbot adında bir bot kodlayıp piyasaya sürseydin şuanda belki çok farklı yerlerde olabilirdin teşekkürler.
Türk botuna burada ulaşabilirsin hocam

GitHub - SDClowen/RSBot: A Silkroad Online Open Source Bot

Onun dışında phbot gibi bir bot varken ölmüş bir oyun için o kadar emek harcayıp bot yazmak ne kadar gerekli bilmiyorum. Haftalık 1$ çok çok ucuz bir fiyat zaten. Botu 300 saatte yazdığını düşünelim (phBot seviyesine gelmez bile bu sürede). Bir yazılımcının en en en az saatlik ücreti 10$ (Rahat 20$ eder ama minimal hesaplayalım). Botun maliyeti 3000$ ediyor. Her yıla 50 hafta dersek, bu fiyata 60 yıllık phbot üyeliği alabiliyorsun. Tek yapılma sebebi hobi olarak olabilir onun dışında uğraşmaya değeceğini düşünmüyorum.

Bir diğer konu bot yazmak öyle 1-2 yazılım öğrenip yapılabilecek bir şey değil. İleri seviye yazılım ve bilgisayar mühendisliği bilgisi gerekiyor. Yani sadece yazılım öğrenerek olacak bir şey değil. C#, VB, Python ile yalandan bir şeyler yazarsın ama C++ ile yazılmış bir performans yakalamak zor. C++ ile de hatasız çalışan bir bot yazmak güven özveri ve tecrübe ister :)
 
Yukarı Alt