IMPORTANT!
• You must have plugins for this to work. Read Bot Installation Guide (lowest part)
Macro for MASTER
• Go to control folder - macros.txt and paste this
#######################################
########FIND SLAVE#####################
#######################################
#slave is lost
automacro findSlave {
pm /x (.*) (.*) (.*)/
call {
$slavemap = $.lastMatch1
$slavemapx = $.lastMatch2
$slavemapy = $.lastMatch3
$mymap = $.map
if ($slavemap == $mymap) goto findslave
do pm "$.lastpm" x $.map $.pos
stop
:findslave
do pm "$.lastpm" x $.map $.pos
do move $slavemap $slavemapx $slavemapy
}
}
#when slave is found
automacro clear {
pm /clear/
call {
do eval AI::clear("move", "route");
}
}
Macro for Slave
• Go to control folder - macros.txt and paste this
################################
######FIND MASTER###############
################################
#find master
automacro findMaster {
timeout 3
console /^I lost my master/
call {
$master = @config (followTarget)
do pm "$master" x $.map $.pos
}
}
automacro findMaster2 {
timeout 3
console /^Calculating route to find master/
call {
$master = @config (followTarget)
do pm "$master" x $.map $.pos
}
}
#goto master
automacro gotoMaster {
pm /x (.*) (.*) (.*)/
call {
$pm = $.lastpm
if ($pm != $master) stop
do move $.lastMatch1 $.lastMatch2 $.lastMatch3
}
}
#when master is found
automacro foundMaster {
console /^Found my master!/
call {
do pm "$master" clear
}
}
Also adjust your MASTER/SLAVE's route_step
For Master: make it route_step 8
For Slave: make it route_step 18
HAPPY LEVELING!!
Disclaimer:
I do not own or Im not the one who made this macro, I just made it plain and simple for the newbies to understand it easily. Thank you!
Wednesday, June 20, 2012
Wednesday, May 16, 2012
Custom Map
FLD Creation Guide
How to extract custom maps and create FLD file
(note: short version)
1. Extract the map (gat and rsw)
2. Copy both to OpenKore\fields\tools
3. Download Perl or Strawberry Perl
4. Execute script: gat_to_fld.pl
5. Copy created .fld data to OpenKore\fields
You can either execute the script by using:
a perl interpreter of choice
the perl interpreter kore uses: start.exe
cd to kore's root folder
run the following command:
C:\Openkore-SVN>start.exe ! .\fields\tools\gat_to_fld.pl
Note: in this example the root folder was: C:\Openkore-SVN, yours can be different depending on where you have installed kore.
You Need Perl
How to extract custom maps and create FLD file
(note: short version)
1. Extract the map (gat and rsw)
2. Copy both to OpenKore\fields\tools
3. Download Perl or Strawberry Perl
4. Execute script: gat_to_fld.pl
5. Copy created .fld data to OpenKore\fields
You can either execute the script by using:
a perl interpreter of choice
the perl interpreter kore uses: start.exe
cd to kore's root folder
run the following command:
C:\Openkore-SVN>start.exe ! .\fields\tools\gat_to_fld.pl
Note: in this example the root folder was: C:\Openkore-SVN, yours can be different depending on where you have installed kore.
You Need Perl
ServerType
ServerType
serverType
Network parser module to use with your server.
File:Development.png The following documentation describes a feature that was greatly changed in SVN trunk (latest development version) since the last release.
It may work differently or not be available if you're using 2.0.7 or any older version.
Contents
[hide]
1 ServerTypes overview
1.1 Supported
1.2 Legacy
2 Determining kRO serverType
2.1 Compilation Date
2.2 Server Version
2.3 Packet Appearance
2.4 Notes
3 Links
ServerTypes overview
Supported
Named serverTypes can be loaded since r6870 and begin to appear in r7066 (not counting kRO serverType tree which started all that madness).
Server servertype
Official, Korea kRO_RagexeRE_0 8_1
Official, Taiwan twRO 21, 22
Official, Japan none
Official, Thailand tRO 21
Official, China none
Official, International iRO 22
Official, Philippines pRO 22
Official, Indonesia idRO 22
Official, Malaysia mRO 22
Official, Brazil bRO (Odin) 0
bRO_Thor (Thor) 22
Official, Russia rRO 0
Official, France fRO 0
Official, Middle East aRO 22
Private servers kRO_RagexeRE_*
kRO_Sakexe_* *
File:Development.png Implementation of this feature is expected to become outdated with server updates.
As OpenKore is a free project, if you stumble upon such updates, you are expected to fix the problem and contribute your changes back. Usually, server supporters will do that, but there isn't any for random private servers, and some official ones may not always be covered.
Legacy
Numeric serverTypes (0-22, 8_1-8_5) are outdated and aren't being updated to follow server updates, so they probably will not work correctly - that's a real reason to update from OpenKore 2.0.7 and stop using them, if you don't want to update them by yourself. Don't complain that there's just "some problems" with them if you don't have solutions too.
They're kept in OpenKore for use with really outdated official and private servers.
serverType 0 is also used as a base for serverTypes for official servers (except kRO).
Determining kRO serverType
OpenKore 2.0.7 and previous versions does not have kRO serverType and aren't capable of loading it without changes in source. To configure for an up to date pserver, you need svn trunk (or 2.1 when it becomes released), not 2.0.7.
Only official servers have their own serverType, so other servers (private ones) must find the server's executable compilation date and use the appropriate kRO serverType (newer versions) or Sakray serverTypes (older versions)
Currently, kRO serverTypes syntax is:
kRO_RagexeRE___
And Sakray ones is:
kRO_Sakexe___
You can find all serverType files in src/Network/Receive. Only serverTypes whose files actually do exist would work.
Compilation Date
Executable's compilation date can be changed, so don't really rely on it.
1. Download IpeViewer [1].
2. Open it and go the File > Open or just press F2. Select your server's executable.
3. Go to PE Header tab.
http://www.openkore.com/images/7/7e/ServerType-header.PNG
4. Beside the Time Data Stamp box, see the executable's compilation date.
5. Find the most suitable serverType file in src/Network/Receive/kRO.
For example, if the date was January 26, 2010, file name would be RagexeRE_2010_01_26a.pm.
6. Set serverType to "kRO_" and file name without extension.
For example, if file name was RagexeRE_2010_01_26a.pm, serverType would be kRO_RagexeRE_2010_01_26a.
If there is no file with exact compilation date, try the ones near to that date, or the latest available.
Server Version
Server version changes when there are incompatible changes in protocol (usually master_login packet changes at that point). Try serverTypes corresponding to the server's version. Use eAthena's packet_db as reference.
Packet Appearance
Since there are packets being continually introduced, you may inspect packets (and packet lengths) used on the server (either from already generated recvpackets.txt or from warnings on unknown packets). Use eAthena's packet_db as reference.
Notes
If you bot on a private server that uses eAthena, DO NOT use kRO_RagexeRE_0, as it is only meant to be used for the official kRO server.
Links
OpenKore's serverType files
eAthena's packet_db.txt
rAthena's packet_db.txt
serverType
Network parser module to use with your server.
File:Development.png The following documentation describes a feature that was greatly changed in SVN trunk (latest development version) since the last release.
It may work differently or not be available if you're using 2.0.7 or any older version.
Contents
[hide]
1 ServerTypes overview
1.1 Supported
1.2 Legacy
2 Determining kRO serverType
2.1 Compilation Date
2.2 Server Version
2.3 Packet Appearance
2.4 Notes
3 Links
ServerTypes overview
Supported
Named serverTypes can be loaded since r6870 and begin to appear in r7066 (not counting kRO serverType tree which started all that madness).
Server servertype
Official, Korea kRO_RagexeRE_0 8_1
Official, Taiwan twRO 21, 22
Official, Japan none
Official, Thailand tRO 21
Official, China none
Official, International iRO 22
Official, Philippines pRO 22
Official, Indonesia idRO 22
Official, Malaysia mRO 22
Official, Brazil bRO (Odin) 0
bRO_Thor (Thor) 22
Official, Russia rRO 0
Official, France fRO 0
Official, Middle East aRO 22
Private servers kRO_RagexeRE_*
kRO_Sakexe_* *
File:Development.png Implementation of this feature is expected to become outdated with server updates.
As OpenKore is a free project, if you stumble upon such updates, you are expected to fix the problem and contribute your changes back. Usually, server supporters will do that, but there isn't any for random private servers, and some official ones may not always be covered.
Legacy
Numeric serverTypes (0-22, 8_1-8_5) are outdated and aren't being updated to follow server updates, so they probably will not work correctly - that's a real reason to update from OpenKore 2.0.7 and stop using them, if you don't want to update them by yourself. Don't complain that there's just "some problems" with them if you don't have solutions too.
They're kept in OpenKore for use with really outdated official and private servers.
serverType 0 is also used as a base for serverTypes for official servers (except kRO).
Determining kRO serverType
OpenKore 2.0.7 and previous versions does not have kRO serverType and aren't capable of loading it without changes in source. To configure for an up to date pserver, you need svn trunk (or 2.1 when it becomes released), not 2.0.7.
Only official servers have their own serverType, so other servers (private ones) must find the server's executable compilation date and use the appropriate kRO serverType (newer versions) or Sakray serverTypes (older versions)
Currently, kRO serverTypes syntax is:
kRO_RagexeRE_
And Sakray ones is:
kRO_Sakexe_
You can find all serverType files in src/Network/Receive. Only serverTypes whose files actually do exist would work.
Compilation Date
Executable's compilation date can be changed, so don't really rely on it.
1. Download IpeViewer [1].
2. Open it and go the File > Open or just press F2. Select your server's executable.
3. Go to PE Header tab.
http://www.openkore.com/images/7/7e/ServerType-header.PNG
4. Beside the Time Data Stamp box, see the executable's compilation date.
5. Find the most suitable serverType file in src/Network/Receive/kRO.
For example, if the date was January 26, 2010, file name would be RagexeRE_2010_01_26a.pm.
6. Set serverType to "kRO_" and file name without extension.
For example, if file name was RagexeRE_2010_01_26a.pm, serverType would be kRO_RagexeRE_2010_01_26a.
If there is no file with exact compilation date, try the ones near to that date, or the latest available.
Server Version
Server version changes when there are incompatible changes in protocol (usually master_login packet changes at that point). Try serverTypes corresponding to the server's version. Use eAthena's packet_db as reference.
Packet Appearance
Since there are packets being continually introduced, you may inspect packets (and packet lengths) used on the server (either from already generated recvpackets.txt or from warnings on unknown packets). Use eAthena's packet_db as reference.
Notes
If you bot on a private server that uses eAthena, DO NOT use kRO_RagexeRE_0, as it is only meant to be used for the official kRO server.
Links
OpenKore's serverType files
eAthena's packet_db.txt
rAthena's packet_db.txt
Sunday, May 13, 2012
Packet Length Extractor
Packet Length Extractor
If you're having server problems, such as:
Packet Tokenizer: Unknown switch: xxxx
Getting disconnected after a few seconds
NPCs, players and monsters are not recognized by Kore (shown as Unknown)
Then generating a new recvpackets.txt might solve the problem. It's advisable to always extract the recvpackets before running Openkore. The file must be on tables folder.
The network data that the server sends to Kore, is a byte stream. Kore must be able to recognize messages inside that byte stream to be able to do something with it. But the size of the messages can vary from to server to server. Recvpackets.txt contains information about the size of each message, so Kore can correctly split the byte stream into messages.
Contents
[hide]
1 RO Tools
1.1 Usage
2 Packet Extractor
3 Packet Extractor v3
3.1 Usage
4 Notes
RO Tools
JCV's RO Tools v1.0.3 (Link down as of Jan 19, 2012. See instructions below for OpenPacketExtractor)
It's better to use JCV's RO Tools as it is more up to date and have some fixes for newer clients. Also it's much easier to maintain, but it has undesirable and outdated options in addition to the Openkore packet extractor.
Usage
Open RO Tools.
Click in the button with ... beside the box. Search for your's server executable (not server patcher) and open it.
File:button.PNG
On Extractor Type, check Full Disarm box.
File:full.PNG
Click on Start button and wait it to finish.
File:start.PNG
After it finishes, it will ask for you to save the file. Save it on tables folder, inside your Openkore's root folder. Override current file if needed.
Packet Extractor
OpenKore Packet Length Extractor v1.1.0 (Link down as of Jan 19,2012)
Also in OpenKore SVN.
Packet Extractor v3
In OpenKore SVN. (See kLab's forum post on Open Packet Extractor for more details.)
Packet extractor branch to work with new insert server list here clients.
Usage
Run packet_extract.pl with your ragexe file name as an argument. It will generate extractor.exe.
Run extractor.exe (works with wine on non-Windows) which will output recvpackets contents to STDOUT.
Notes
Recvpackets file can be renamed as long as recvpackets option on servers.txt is set accordingly. (See Connectivity Guide)
There may be problems extracting the recvpackets if your server's client has some kind of protection. You should deal with it (like unpack if binary is packed) before using packet extractor, if it fails to find anything.
If you're having server problems, such as:
Packet Tokenizer: Unknown switch: xxxx
Getting disconnected after a few seconds
NPCs, players and monsters are not recognized by Kore (shown as Unknown)
Then generating a new recvpackets.txt might solve the problem. It's advisable to always extract the recvpackets before running Openkore. The file must be on tables folder.
The network data that the server sends to Kore, is a byte stream. Kore must be able to recognize messages inside that byte stream to be able to do something with it. But the size of the messages can vary from to server to server. Recvpackets.txt contains information about the size of each message, so Kore can correctly split the byte stream into messages.
Contents
[hide]
1 RO Tools
1.1 Usage
2 Packet Extractor
3 Packet Extractor v3
3.1 Usage
4 Notes
RO Tools
JCV's RO Tools v1.0.3 (Link down as of Jan 19, 2012. See instructions below for OpenPacketExtractor)
It's better to use JCV's RO Tools as it is more up to date and have some fixes for newer clients. Also it's much easier to maintain, but it has undesirable and outdated options in addition to the Openkore packet extractor.
Usage
Open RO Tools.
Click in the button with ... beside the box. Search for your's server executable (not server patcher) and open it.
File:button.PNG
On Extractor Type, check Full Disarm box.
File:full.PNG
Click on Start button and wait it to finish.
File:start.PNG
After it finishes, it will ask for you to save the file. Save it on tables folder, inside your Openkore's root folder. Override current file if needed.
Packet Extractor
OpenKore Packet Length Extractor v1.1.0 (Link down as of Jan 19,2012)
Also in OpenKore SVN.
Packet Extractor v3
In OpenKore SVN. (See kLab's forum post on Open Packet Extractor for more details.)
Packet extractor branch to work with new insert server list here clients.
Usage
Run packet_extract.pl with your ragexe file name as an argument. It will generate extractor.exe.
Run extractor.exe (works with wine on non-Windows) which will output recvpackets contents to STDOUT.
Notes
Recvpackets file can be renamed as long as recvpackets option on servers.txt is set accordingly. (See Connectivity Guide)
There may be problems extracting the recvpackets if your server's client has some kind of protection. You should deal with it (like unpack if binary is packed) before using packet extractor, if it fails to find anything.
Happy Mother Day's
Selamat Hari Ibu Untuk Semua Ibu Atas Muka Bumi Ni.
Jasa Anda Semua Amat Dihargai.
Duit Tak Banyak Nak Beli Barang Untuk Mak Aku.
Jadi Tak Leh Nak Beli Hadiah Lah.
Kesian Aku.
Tahun Depan La Plak Kot
Jasa Anda Semua Amat Dihargai.
Duit Tak Banyak Nak Beli Barang Untuk Mak Aku.
Jadi Tak Leh Nak Beli Hadiah Lah.
Kesian Aku.
Tahun Depan La Plak Kot
Full Chemical Protection
automacro paket {
console /\[(jarak|dist)=(.*)\] (.*) \((\d+)\): (f|fcp|FCP)$/
exclusive 1
run-once 1
call {
$distance = $.lastMatch2
$namaPlayer = $.lastMatch3
$playerID = $.lastMatch4
$playerguild = @eval (exists $::players{$::playersID[$playerID]}->{guild} ? $::players{$::playersID[$playerID]}->{guild}{name} : 'null')
#Nama guild yg mau FCP
$guild1 =
$guild2 =
$guild3 =
$guild4 =
$player1 =
if ($playerguild == $guild1) goto oke
if ($playerguild == $guild2) goto oke
if ($playerguild == $guild3) goto oke
if ($playerguild == $guild4) goto oke
if ($namaPlayer == $player1) goto oke
goto lain
:oke
if ($distance > 2 ) goto jauh
do sp 479 $playerID 5
goto end
:jauh
do e com
goto end
:lain
do c Ank Bukan Geng Aku P Belah...
:end
release paket
}
}
automacro sp {
console /\[(jarak|dist)=(.*)\] (.*) \((\d+)\): (fcp|FCP)$/
sp < 10%
exclusive 1
run-once 1
call kering
}
macro kering {
do c Tunggu Sat Sp Abis Neh $.sp
pause 0.2
release sp
}
console /\[(jarak|dist)=(.*)\] (.*) \((\d+)\): (f|fcp|FCP)$/
exclusive 1
run-once 1
call {
$distance = $.lastMatch2
$namaPlayer = $.lastMatch3
$playerID = $.lastMatch4
$playerguild = @eval (exists $::players{$::playersID[$playerID]}->{guild} ? $::players{$::playersID[$playerID]}->{guild}{name} : 'null')
#Nama guild yg mau FCP
$guild1 =
$guild2 =
$guild3 =
$guild4 =
$player1 =
if ($playerguild == $guild1) goto oke
if ($playerguild == $guild2) goto oke
if ($playerguild == $guild3) goto oke
if ($playerguild == $guild4) goto oke
if ($namaPlayer == $player1) goto oke
goto lain
:oke
if ($distance > 2 ) goto jauh
do sp 479 $playerID 5
goto end
:jauh
do e com
goto end
:lain
do c Ank Bukan Geng Aku P Belah...
:end
release paket
}
}
automacro sp {
console /\[(jarak|dist)=(.*)\] (.*) \((\d+)\): (fcp|FCP)$/
sp < 10%
exclusive 1
run-once 1
call kering
}
macro kering {
do c Tunggu Sat Sp Abis Neh $.sp
pause 0.2
release sp
}
Gospel With pubm
automacro paket {
pubm "gospel"
exclusive 1
run-once 1
call pket
}
macro pket{
do ss 369 10
release paket
}
Taip "gospel" bot akan buff player anda
pubm "gospel"
exclusive 1
run-once 1
call pket
}
macro pket{
do ss 369 10
release paket
}
Taip "gospel" bot akan buff player anda
Kalau Nak Bot Buff Tanpa Guild ,
Ganti $guild1 menjadi $player1
cth: $player1 = nama char kamu yg akan di beri buff
setelah diganti $guild1 menjadi $player1 kita harus tukar juga if ($playerguild == $guild1) goto oke menjadi if ($namaPlayer == $player1) goto oke.
Contoh Bot Tukar Jadi Players
automacro link {
console /\[(jarak|dist)=(.*)\] (.*) \((\d+)\): (spirit|soul|\*Flag\s\d\*)$/
sp > 10%
call linker
}
macro linker {
$distance = $.lastMatch2
$namaPlayer = $.lastMatch3
$id = $.lastMatch4
$playerguild = @eval (exists $::players{$::playersID[$id]}->{guild} ? $::players{$::playersID[$id]}->{guild}{name} : 'null')
#Nama player yg mau di paket
$player1 =
$player2 =
$player3 =
$player4 =
$player5 =
if ($namaPlayer == $player1) goto oke
if ($namaPlayer == $player2) goto oke
if ($namaPlayer == $player3) goto oke
if ($namaPlayer == $player4) goto oke
if ($namaPlayer == $player5) goto oke
goto bukan
if ($id < 0) stop
if ($distance > 11) goto jauh
:oke
$jobID = @eval ($::players{$::playersID[$id]}->{jobID})
if ($jobID = 7) goto knight
if ($jobID = 13) goto knight
if ($jobID = 4008) goto knight
if ($jobID = 4014) goto knight
if ($jobID = 12) goto assassin
if ($jobID = 4013) goto assassin
if ($jobID = 10) goto smith
if ($jobID = 4011) goto smith
if ($jobID = 14) goto paladin
if ($jobID = 21) goto paladin
if ($jobID = 4015) goto paladin
if ($jobID = 4022) goto paladin
if ($jobID = 4012) goto sniper
if ($jobID = 11) goto sniper
if ($jobID = 16) goto professor
if ($jobID = 4017) goto professor
if ($jobID = 8) goto priest
if ($jobID = 4009) goto priest
if ($jobID = 15) goto champion
if ($jobID = 4016) goto champion
if ($jobID = 4010) goto wizard
if ($jobID = 4018) goto stalker
if ($jobID = 18) goto creator
if ($jobID = 4019) goto creator
if ($jobID = 4020) goto clown
if ($jobID = 4021) goto clown
if ($jobID = 19) goto clown
if ($jobID = 20) goto clown
if ($jobID = 4047) goto star
if ($jobID = 4049) goto soul
if ($jobID = 23) goto snoob
goto jauh
:jauh
do c $namaPlayer Jangan Jauh2 donk...
stop
release link
:bukan
do e ??
stop
release link
:snoob
do sp 451 $id
stop
release link
:star
do sp 448 $id
stop
release link
:soul
do sp 461 $id
stop
release link
:knight
do sp 452 $id
stop
release link
:priest
do sp 454 $id
stop
release link
:wizard
do sp 453 $id
stop
release link
:smith
do sp 458 $id
stop
release link
:sniper
do sp 460 $id
stop
release link
:assassin
do sp 457 $id
stop
release link
:paladin
do sp 450 $id
stop
release link
:champion
do sp 447 $id
stop
release link
:professor
do sp 449 $id
stop
release link
:creator
do sp 445 $id
stop
release link
:clown
do sp 455 $id
stop
release link
:stalker
do sp 456 $id
stop
release link
}
Ganti $guild1 menjadi $player1
cth: $player1 = nama char kamu yg akan di beri buff
setelah diganti $guild1 menjadi $player1 kita harus tukar juga if ($playerguild == $guild1) goto oke menjadi if ($namaPlayer == $player1) goto oke.
Contoh Bot Tukar Jadi Players
automacro link {
console /\[(jarak|dist)=(.*)\] (.*) \((\d+)\): (spirit|soul|\*Flag\s\d\*)$/
sp > 10%
call linker
}
macro linker {
$distance = $.lastMatch2
$namaPlayer = $.lastMatch3
$id = $.lastMatch4
$playerguild = @eval (exists $::players{$::playersID[$id]}->{guild} ? $::players{$::playersID[$id]}->{guild}{name} : 'null')
#Nama player yg mau di paket
$player1 =
$player2 =
$player3 =
$player4 =
$player5 =
if ($namaPlayer == $player1) goto oke
if ($namaPlayer == $player2) goto oke
if ($namaPlayer == $player3) goto oke
if ($namaPlayer == $player4) goto oke
if ($namaPlayer == $player5) goto oke
goto bukan
if ($id < 0) stop
if ($distance > 11) goto jauh
:oke
$jobID = @eval ($::players{$::playersID[$id]}->{jobID})
if ($jobID = 7) goto knight
if ($jobID = 13) goto knight
if ($jobID = 4008) goto knight
if ($jobID = 4014) goto knight
if ($jobID = 12) goto assassin
if ($jobID = 4013) goto assassin
if ($jobID = 10) goto smith
if ($jobID = 4011) goto smith
if ($jobID = 14) goto paladin
if ($jobID = 21) goto paladin
if ($jobID = 4015) goto paladin
if ($jobID = 4022) goto paladin
if ($jobID = 4012) goto sniper
if ($jobID = 11) goto sniper
if ($jobID = 16) goto professor
if ($jobID = 4017) goto professor
if ($jobID = 8) goto priest
if ($jobID = 4009) goto priest
if ($jobID = 15) goto champion
if ($jobID = 4016) goto champion
if ($jobID = 4010) goto wizard
if ($jobID = 4018) goto stalker
if ($jobID = 18) goto creator
if ($jobID = 4019) goto creator
if ($jobID = 4020) goto clown
if ($jobID = 4021) goto clown
if ($jobID = 19) goto clown
if ($jobID = 20) goto clown
if ($jobID = 4047) goto star
if ($jobID = 4049) goto soul
if ($jobID = 23) goto snoob
goto jauh
:jauh
do c $namaPlayer Jangan Jauh2 donk...
stop
release link
:bukan
do e ??
stop
release link
:snoob
do sp 451 $id
stop
release link
:star
do sp 448 $id
stop
release link
:soul
do sp 461 $id
stop
release link
:knight
do sp 452 $id
stop
release link
:priest
do sp 454 $id
stop
release link
:wizard
do sp 453 $id
stop
release link
:smith
do sp 458 $id
stop
release link
:sniper
do sp 460 $id
stop
release link
:assassin
do sp 457 $id
stop
release link
:paladin
do sp 450 $id
stop
release link
:champion
do sp 447 $id
stop
release link
:professor
do sp 449 $id
stop
release link
:creator
do sp 445 $id
stop
release link
:clown
do sp 455 $id
stop
release link
:stalker
do sp 456 $id
stop
release link
}
Auto Skill
Ini macro apabila ada player yang meminta paket maka secara otomatis
si bot akan memberikan paket agi dan bless kepada si player tersebut...
automacro agibless{
pubm /ab/
call paket1
}
macro paket1{
do sp 34 $.lastpub
pause 2
do sp 29 $.lastpub
}
automacro agibless{
pubm /ab/
call paket1
}
macro paket1{
do sp 34 $.lastpub
pause 2
do sp 29 $.lastpub
}
Buff untuk guild
automacro buffAndWarp {
pubm /(ald|alde|sq|pron|prt|HL|pay|asum|heal|santuary|sant|ab|buff|agi|bless)/i
sp >= 70
priority 0
class high priest
exclusive 1
call checkMsg
}
macro checkMsg {
$i = @player ($.lastpub)
$g = @eval (exists $::players{$::playersID[$i]}->{guild} ? $::players{$::playersID[$i]}->{guild}{name} : 'null')
if ($g == Cap Ayam) goto accessGranted
if ($g == Samseng) goto accessGranted
goto end
:accessGranted
$msg = $.lastpubMsg
$posx = @rand (4, 5, 6, 7)
$posy = @rand (4, 5, 6, 7)
$cellIsFull = 0
do eval $::Macro::Data::varStack{cellIsFull} = 0;foreach (@{$::playersList->getItems()}) { next if (($_->{pos_to}{x} != $posx) || ($_->{pos_to}{y} != $posy));$::Macro::Data::varStack{cellIsFull} = 1; last;}
if ($cellIsFull == 1) goto accessGranted
$x = @arg ("$.pos", 1)
$y = @arg ("$.pos", 2)
$evalx = @eval ($x + $posx)
$evaly = @eval ($y + $posy)
if ($msg == ALD) goto warpAld
if ($msg == ald) goto warpAld
if ($msg == alde) goto warpAld
if ($msg == ALDE) goto warpAld
if ($msg == SQ) goto warpSq
if ($msg == sq) goto warpSq
if ($msg == GEF) goto warpGef
if ($msg == gef) goto warpGef
if ($msg == HL) goto warpHl
if ($msg == hl) goto warpHl
if ($msg == pay) goto warpHl
if ($msg == asum) goto asum
if ($msg == ASUM) goto asum
if ($msg == agi) goto agi
if ($msg == AGI) goto agi
if ($msg == bless) goto bless
if ($msg == BLESS) goto bless
if ($msg == ab) goto agiBless
if ($msg == AB) goto agiBless
if ($msg == buff) goto agiBless
if ($msg == heal) goto heal
if ($msg == HEAL) goto heal
if ($msg == sant) goto santuary
if ($msg == santuary) goto santuary
if ($msg == SANT) goto santuary
if ($msg == SANTUARY) goto santuary
goto end
:warpAld
do sl 27 $evalx $evaley
pause 1
do warp alde_gld
stop
:warpSq
do sl 27 $evalx $evaly
pause 1
do warp prt_gld
stop
:warpGef
do sl 27 $evalx $evaly
pause 1
do warp gef_fild13
stop
:warpHl
do sl 27 $evalx $evaly
pause 1
do warp pay_gld
stop
:asum
do sp 361 $i 5
stop
:agi
do sp 29 $i 10
stop
:bless
do sp 34 $i 10
stop
:agiBless
do sp 34 $i 10
pause 1
do sp 29 $i 10
stop
:heal
do sp 28 $i 10
pause 0.5
do sp 28 $i 10
pause 0.5
do sp 28 $i 10
pause 0.5
do sp 28 $i 10
stop
:santuary
do sp 70 $i 7
stop
:end
log $msg
stop
}
Tukar Cap Ayam Dengan Samseng
pubm /(ald|alde|sq|pron|prt|HL|pay|asum|heal|santuary|sant|ab|buff|agi|bless)/i
sp >= 70
priority 0
class high priest
exclusive 1
call checkMsg
}
macro checkMsg {
$i = @player ($.lastpub)
$g = @eval (exists $::players{$::playersID[$i]}->{guild} ? $::players{$::playersID[$i]}->{guild}{name} : 'null')
if ($g == Cap Ayam) goto accessGranted
if ($g == Samseng) goto accessGranted
goto end
:accessGranted
$msg = $.lastpubMsg
$posx = @rand (4, 5, 6, 7)
$posy = @rand (4, 5, 6, 7)
$cellIsFull = 0
do eval $::Macro::Data::varStack{cellIsFull} = 0;foreach (@{$::playersList->getItems()}) { next if (($_->{pos_to}{x} != $posx) || ($_->{pos_to}{y} != $posy));$::Macro::Data::varStack{cellIsFull} = 1; last;}
if ($cellIsFull == 1) goto accessGranted
$x = @arg ("$.pos", 1)
$y = @arg ("$.pos", 2)
$evalx = @eval ($x + $posx)
$evaly = @eval ($y + $posy)
if ($msg == ALD) goto warpAld
if ($msg == ald) goto warpAld
if ($msg == alde) goto warpAld
if ($msg == ALDE) goto warpAld
if ($msg == SQ) goto warpSq
if ($msg == sq) goto warpSq
if ($msg == GEF) goto warpGef
if ($msg == gef) goto warpGef
if ($msg == HL) goto warpHl
if ($msg == hl) goto warpHl
if ($msg == pay) goto warpHl
if ($msg == asum) goto asum
if ($msg == ASUM) goto asum
if ($msg == agi) goto agi
if ($msg == AGI) goto agi
if ($msg == bless) goto bless
if ($msg == BLESS) goto bless
if ($msg == ab) goto agiBless
if ($msg == AB) goto agiBless
if ($msg == buff) goto agiBless
if ($msg == heal) goto heal
if ($msg == HEAL) goto heal
if ($msg == sant) goto santuary
if ($msg == santuary) goto santuary
if ($msg == SANT) goto santuary
if ($msg == SANTUARY) goto santuary
goto end
:warpAld
do sl 27 $evalx $evaley
pause 1
do warp alde_gld
stop
:warpSq
do sl 27 $evalx $evaly
pause 1
do warp prt_gld
stop
:warpGef
do sl 27 $evalx $evaly
pause 1
do warp gef_fild13
stop
:warpHl
do sl 27 $evalx $evaly
pause 1
do warp pay_gld
stop
:asum
do sp 361 $i 5
stop
:agi
do sp 29 $i 10
stop
:bless
do sp 34 $i 10
stop
:agiBless
do sp 34 $i 10
pause 1
do sp 29 $i 10
stop
:heal
do sp 28 $i 10
pause 0.5
do sp 28 $i 10
pause 0.5
do sp 28 $i 10
pause 0.5
do sp 28 $i 10
stop
:santuary
do sp 70 $i 7
stop
:end
log $msg
stop
}
Tukar Cap Ayam Dengan Samseng
Auto Heal
Ini macro untuk priest, jadi apabila ada org yang minta heal , automatic bot akan heal player tersebut
automacro mintaheal{
pubm /heal/
call giveheal}
macro giveheal {
pause 1
do sp 28 $.lastpub
pause 1
do sp 28 $.lastpub
}
sp 28 [ heal ]
bot akan heal 2 kali
Tell Kore To Eat UseSelf Item
useSelf_item meat
Meat ,Sushi
{ hp sp <= 30%30%
homunculus_hp homunculus_sp homunculus_dead onAction whenStatusActive whenStatusInactive whenFollowing spirit aggressives monsters notMonsters stopWhenHit 0 inLockOnly 0 notWhileSitting 0 notInTown 0 timeout disabled 0 inInventory manualAI 0 } The Red words you have to change it yourself,if you have white pot change it to white pot. and the 30% change it which one you like 100%,50% and anythingCara Guna WireShark
1. Download and install Wireshark.
2. Open your ragnarok but don't login yet! Leave it on the login screen and open Wireshark.
3. At Wireshark's window, go to Capture > Options on the upper menu or press Ctrl + K.
4. In the top right box, select the interface that will be used to capture on. If there isn't any specific interface to use, select the one whose IP address is equal to the your ip address or is not unknown. Alternatively you can try all of them and use the one that records the packets. Set the others settings like the images bellow:
5. Click on Start button and go back to the Ragnarok window and login.
7. In Wireshark main window, you can see the TCP segments that were captured. Fill in the packet filter, but what to fill in depends on the username you used to login.
10. A new window will open, in the bottom left, select Hex Dump.
11. These are the login packets. Take a look at it and write down the packets that contains the version and master version numbers. They are marked on the image bellow.
Converting can be made using Windows' calculator or any other site that has a hex to dec calculator.
1. Open Windows calculator Start > Accessories > Calculator.
2. Go to View on the upper menu and click on Scientific.
3. Check the circle beside Hex.
4. On the calculator, type the number that you got for master_version and version. In the example, master_version hexadecimal number is 10.
5. Check the circle beside Dec.
6. After checking, the number shown should automatically be converted from hexadecimal to decimal.
2. Open your ragnarok but don't login yet! Leave it on the login screen and open Wireshark.
3. At Wireshark's window, go to Capture > Options on the upper menu or press Ctrl + K.
4. In the top right box, select the interface that will be used to capture on. If there isn't any specific interface to use, select the one whose IP address is equal to the your ip address or is not unknown. Alternatively you can try all of them and use the one that records the packets. Set the others settings like the images bellow:
5. Click on Start button and go back to the Ragnarok window and login.
- Note. Valid information are not needed.
7. In Wireshark main window, you can see the TCP segments that were captured. Fill in the packet filter, but what to fill in depends on the username you used to login.
- Enter this in the "Filter" text box:
eth contains "xxxxxx" or eth contains xxxxxx
- Replace xxxxxx with the username that was used to login and press enter. In the example bellow, username was Mushroom.
- Write down the IP and port.
10. A new window will open, in the bottom left, select Hex Dump.
11. These are the login packets. Take a look at it and write down the packets that contains the version and master version numbers. They are marked on the image bellow.
- version displayed as 4-byte unsigned number in little-endian, in hex
- master version displayed as 1-byte unsigned number, in hex
Converting Hexadecimal to Decimal numbers
Master_version and server version collected from the login packets are in hexadecimal number (base-16) and Kore expects a decimal number (base-10), so converting those numbers are needed before Kore can read them.Converting can be made using Windows' calculator or any other site that has a hex to dec calculator.
1. Open Windows calculator Start > Accessories > Calculator.
2. Go to View on the upper menu and click on Scientific.
3. Check the circle beside Hex.
4. On the calculator, type the number that you got for master_version and version. In the example, master_version hexadecimal number is 10.
5. Check the circle beside Dec.
6. After checking, the number shown should automatically be converted from hexadecimal to decimal.
- You must convert master_version and version.
- OpenKore Help A lot
Cara Guna WPE
1. Download WPE and extract it.
3. At WPE's window, click on Target Programs button.
4. A window will open, search for the server's executable and double-click it.
6. Switch to your Ragnarok's window, put and try to login.
8. A window will open with recorded data. One of the packets sent to the server would be login packet which usually contains the server's version, master_version, IP and port - write them down because they are going to be used later. The packets will be different on each server, possible login packets may start with 64 00 or 02 B0. Other packets (such as 18-byte-long 02 04) may be sent before login packet.
credit to OpenKore
3. At WPE's window, click on Target Programs button.
4. A window will open, search for the server's executable and double-click it.
- Note. Some servers "hide" their executables by renaming it (like from xxxRO.exe to xxxx.dll or xxxxx.bin), so don't worry if the executable isn't a .exe one.
6. Switch to your Ragnarok's window, put and try to login.
- Note. Valid login information are not needed.
8. A window will open with recorded data. One of the packets sent to the server would be login packet which usually contains the server's version, master_version, IP and port - write them down because they are going to be used later. The packets will be different on each server, possible login packets may start with 64 00 or 02 B0. Other packets (such as 18-byte-long 02 04) may be sent before login packet.
- Legend:
- version (displayed as 4-byte unsigned number in little-endian, in hex)
- IP (as is)
- port (as is)
- master version (displayed as 1-byte unsigned number, in hex)
credit to OpenKore
Connectivity Guide
Mendapatkan Maklumat Server
OpenKore datang dengan senarai server maklumat rasmi sahaja, kerana jumlah yang tinggi private server, adalah mustahil untuk mempunyai dan menjaga mereka dikemaskini, jadi private server harus mengikuti panduan ini untuk mendapatkan dan mengemaskini maklumat pelayan mereka. Sebelum meneruskan, baca senarai server tidak disokong.Server anda mungkin mempunyai anti-bot yang menyebabkan tidak disokong oleh Openkore.
OpenKore memerlukan maklumat berikut tentang pelayan Ragnarok Online sebelum ia boleh memulakan dan login:
Mungkin ada masalah menentukan versi dan master_version jika protokol pelayan anda mempunyai beberapa jenis penyulitan. Dalam kes itu, semata-mata menentukan nilai-nilai ini tidak akan membantu, isu utama berurusan dengan penyulitan itu.
WPE (Winsock Packet Editor)
1. Memuat turun WPE
Sebelum memuat turun, membuat pasti untuk melumpuhkan anti-virus anda kerana ia boleh menandakan WPE sebagai virus dan memadam. Turun pada risiko anda, kami tidak akan resposabilized jika komputer kita akan rosak.
Anda akan memerlukan beberapa program untuk mengekstrak, yang biasa WinRAR dan 7zip.
Download WPE atau WireShark
credit goes to OpenKore
OpenKore datang dengan senarai server maklumat rasmi sahaja, kerana jumlah yang tinggi private server, adalah mustahil untuk mempunyai dan menjaga mereka dikemaskini, jadi private server harus mengikuti panduan ini untuk mendapatkan dan mengemaskini maklumat pelayan mereka. Sebelum meneruskan, baca senarai server tidak disokong.Server anda mungkin mempunyai anti-bot yang menyebabkan tidak disokong oleh Openkore.
OpenKore memerlukan maklumat berikut tentang pelayan Ragnarok Online sebelum ia boleh memulakan dan login:
- The server name
- The server's host (IP address or hostname) and port
- The server's master version number, version number, character encoding, charBlockSize
- addTableFolders to look for tables in
Mungkin ada masalah menentukan versi dan master_version jika protokol pelayan anda mempunyai beberapa jenis penyulitan. Dalam kes itu, semata-mata menentukan nilai-nilai ini tidak akan membantu, isu utama berurusan dengan penyulitan itu.
WPE (Winsock Packet Editor)
1. Memuat turun WPE
Sebelum memuat turun, membuat pasti untuk melumpuhkan anti-virus anda kerana ia boleh menandakan WPE sebagai virus dan memadam. Turun pada risiko anda, kami tidak akan resposabilized jika komputer kita akan rosak.
Anda akan memerlukan beberapa program untuk mengekstrak, yang biasa WinRAR dan 7zip.
Download WPE atau WireShark
credit goes to OpenKore
CharBlockSize
- charBlockSize <value>
- Character block (inner structure for character list packet) size. May be 106 (default), 108, 112, 116; with renewal servers, 128, 132 and 136. Correct value for a server may be not supported by a specific serverType or not supported at all, so merely trying values mentioned here may not be enough.
- Cari Saja Yang Mana Boleh Pakai
Macro Plugin
Download Macro Plugin
Bila dah download install ikut cara macam nih.
Bila dah download install ikut cara macam nih.
openkore |-- openkore.pl |-- control | |-- macros.txt |-- fields |-- logs |-- plugins | |-- macro | | |-- Macro | | | |-- Automacro.pm | | | |-- Data.pm | | | |-- Parser.pm | | | |-- Script.pm | | | |-- Utilities.pm | | |-- macro.pl |-- src |-- tables
Openkore Download
Download OpenKore here
plugins
Guides
- Quick start: obtain, install, run
- Configure connection
- Frequently Asked Questions
- Quick command and configuration overview
- References — concepts shared between other features
- How to run — dependencies, compilation, arguments
- Updating to trunk notes
- Interfaces
- XKore — Using Kore and RO client simultaneously
- Poseidon — GameGuard and HackShield solution
- Run multiple bots from the same .exe
References
control- config.txt
- items_control — inventory/storage/cart behaviour
- mon_control — specific monsters behavior
- pickupitems — specific loots behavior
- priority.txt
- routeweights.txt
- shop — Vending list
- sys.txt
- timeouts.txt
plugins
- Macro plugin
- How to get, use, create; Specific plugin docs
Development
Developer Documentation
Current Wiki TODO's
- OpenKore and Template:OpenKore Contributors need some updating
- complete config.txt pages that are conform with char and add appropriate categories (ex. Category:Connection for char) from old manual and older manual
- commands discussion: Category_talk:Console_Command
- config.txt options: loginPinCode, repairAuto_list, wx_map_portalSticking, wx_map_monsterSticking, wx_map_npcSticking, encrypt.
- redirect http://openkore.sourceforge.net/manual/ to this wiki
- Track down orphan pages and link the appropriately, esp to main page
- Redo main page so it looks more like irowiki.org; reorganizing pages into different categories and adding overview/introduction pages to each category
- Write 'foundation pages' for wiki such as Help:Editing which will contain tutorial with information such as manual of style, links to wiki markup explanations.
- Organization of pages should refer to irowiki.org, OpenTTD wiki
- disable forced uppercase for page titles
- remove 'index.php' from wiki view URLs?
- http://www.mediawiki.org/wiki/Extension:Cite/Cite.php
- Why is the logo missing on the front page?
Subscribe to:
Posts (Atom)