Monday, November 10, 2014

Plugin Wait4Party

di config.txt master tambahkan: follow_wait 1

catatan: jika sudah menggunakan macro, jangan gunakan ini

package waitParty;


use Plugins;
use Globals;
use Log qw(message error warning debug);


our $findParty;
our $temp;


Plugins::register('waitParty', 'Wait and come back for party', \&unload, \&unload);


my $hooks = Plugins::addHooks(   ['actor_player_add', \&waitForOthers, undef],
            ['actor_player_remove', \&waitForOthers, undef],
            ['party_share', \&waitForOthers, undef],
            ['party_move', \&waitForOthers, undef],
            ['AI_pre', \&waitForOthers, undef],
            ['actor_action_sit', \&waitForOthers, undef],
            ['actor_action_stand', \&waitForOthers, undef]);


sub unload {
   Plugins::delHooks($hooks);
}


sub waitForOthers {
   return unless $config{'follow_wait'};
   return unless defined @partyUsersID;


   #return if bot isn't at lockmap
   return if (($config{'follow_wait_inLockOnly'} > 0) && ($field{name} ne $config{lockMap}));


   my $actor;
   foreach (@partyUsersID) {
      next if $_ eq $accountID;
      next if $_ eq "";
      $actor = $playersList->getByID($_);


      if(!$actor && $char->{'party'}{'users'}{$_}{'online'}) {
         my %party;
         $party{x} = $char->{party}{users}{$_}{pos}{x};
         $party{y} = $char->{party}{users}{$_}{pos}{y};
         ($party{map}) = $char->{party}{users}{$_}{map} =~ /([\s\S]*)\.gat/;


         if ($party{map} ne $field{name} || $party{x} == 0 || $party{y} == 0) {
            delete $party{x};
            delete $party{y};
         }


         return unless ($party{map} ne $field{name} || exists $party{x});


         if ((exists $ai_v{party} && AI::distance(\%party, $ai_v{party}) > 15)
            || $party{map} != $ai_v{party}{map}
            || (AI::timeOut($ai_v{party}{time}, 15) && AI::distance(\%party, $char->{pos_to}) > $config{followDistanceMax})) {


            $ai_v{party}{x} = $party{x};
            $ai_v{party}{y} = $party{y};
            $ai_v{party}{map} = $party{map};
            $ai_v{party}{time} = time;


            warning "Party is far way.
", "waitParty";


            if ($ai_v{party}{map} ne $field{name}) {
               message "Searching party: $ai_v{party}{map}
", , "follow";
            } elsif (AI::distance(\%party, $char->{pos_to}) > $config{followDistanceMax} ) {
               message "Searching party: $ai_v{party}{map} ($ai_v{party}{x},$ai_v{party}{y})
", "follow";
            } else {
               return;
            }
            AI::clear("move", "route", "mapRoute");
            AI::ai_route($ai_v{party}{map}, $ai_v{party}{x}, $ai_v{party}{y}, distFromGoal => $config{followDistanceMin});
            my $followIndex = AI::findAction("follow");
            if (defined $followIndex) {
               $ai_seq_args[$followIndex]{ai_follow_lost_end}{timeout} = $timeout{ai_follow_lost_end}{timeout};
            }
         }
         $findParty = 1;
         return;
      } elsif ($findParty && ($actor = $playersList->getByID($_))) {
         warning "Party Found.
", "waitParty";
         $findParty = 0;
      } elsif ($findParty) {
         warning "Party is offline.
", "waitParty";
         $findParty = 0;
         return;
      }
   }
}
1;

macro elven arrow

kondisi:
sesuaikan tulisan elven quiver nya, jgn sampe salah
macro ini menggunakan merchant class, klo lsg pake archer class, yg do cart nya hilangkan
jangan full paste, cek lagi kekuatan char anda, tiap char beda²
pastikan pass kafra udah di set dg benar di config.txt]

automacro quiver {
 inventory "HuntingQuiver" < 170
 location mora
 exclusive 1
 run-once 1
 call {
  do ai manual
  pause 0.5
  do move 100 110
  pause 0.5
  do talknpc 100 118 b
  pause 2
  do buy 5 30000
  pause 1
  do talknpc 106 117 c r0 r0 r0 r0 r0
  pause 1
  do talknpc 100 118 b
  pause 2
  do buy 5 30000
  pause 1
  do talknpc 106 117 c r0 r0 r0 r0 r0
  pause 1
  do cart add ElvenQuiver
  pause 1
  do talknpc 100 118 b
  pause 2
  do buy 5 30000
  pause 1
  do talknpc 106 117 c r0 r0 r0 r0 r0
  pause 1
  do talknpc 100 118 b
  pause 2
  do buy 5 30000
  pause 1
  do talknpc 106 117 c r0 r0 r0 r0 r0
  pause 1
  do cart add ElvenQuiver
  pause 1
  do talknpc 100 118 b
  pause 2
  do buy 5 30000
  pause 1
  do talknpc 106 117 c r0 r0 r0 r0 r0
  pause 1
  do talknpc 100 118 b
  pause 2
  do buy 5 30000
  pause 1
  do talknpc 106 117 c r0 r0 r0 r0 r0
  pause 1
  do cart add ElvenQuiver 80
  pause 1
  do talknpc 100 118 b
  pause 2
  do buy 5 30000
  pause 1
  do talknpc 106 117 c r0 r0 r0 r0 r0
  pause 1
  do talknpc 100 118 b
  pause 2
  do buy 5 30000
  pause 1
  do talknpc 106 117 c r0 r0 r0 r0 r0
  pause 1
  do cart add ElvenQuiver
  pause 1
  do talknpc 100 118 b
  pause 2
  do buy 5 20000
  pause 1
  do talknpc 106 117 c r0 r0 r0 r0 r0
  pause 1
  do talknpc 100 118 b
  pause 2
  do buy 5 12000
  pause 1
  do talknpc 106 117 c r0 r0 r0 r0 r0
  pause 1
  do talknpc 100 118 b
  pause 2
  do buy 5 6000
  pause 1
  do talknpc 106 117 c r0 r0 r0 r0 r0
  release quiver


 }
}
automacro storage {
 inventory "ElvenQuiver" > 170
 location mora
 exclusive 1
 run-once 1
 call {
  do ai manual
  pause 0.5
  do move 52 133
  pause 1
  do talknpc 48 128 c r0
  pause 2
  do storage add HuntingQuiver
  pause 0.5
  do cart get HuntingQuiver
  pause 0.5
  do storage add HuntingQuiver
  pause 0.5
  do cart get HuntingQuiver
  pause 0.5
  do storage add HuntingQuiver
  pause 1
  release storage


 }
}

Macro Jamur Monk

kondisi:
Buat char Aco dan quest Monk sampai mau cari jamur aja, abis itu stop
tulisan merah bisa di sesuaikan dg simpos anda
kadang suka stuk pas mau hit jamur nya, ini bisa sekali2 bot nya di relog

automacro payon {
 location payon
 run-once 1
 call warp
 timeout 100
}


macro warp {
 pause 0.2
 do sit
 pause 1
 do ai manual
 pause 0.1
 do move 95 59
 pause 0.5
 do sl 27 94 60
 pause 3
 do warp 2
 pause 2
 do move 94 60
 pause 8
 do ai auto
 release payon
}


automacro monk {
 location prt_monk
 run-once 1
 call jamur
 timeout 100
}


macro jamur {
 pause 0.2
 do ai manual
 pause 1
 do move 192 172
 pause 6
 do move 332 59
 pause 2
 do move 341 68
 pause 2
 do move 339 51
 pause 1
 do move 332 59
 pause 2
 do talk 0
 pause 2
 do talk resp 0
 pause 8
 do stand
 do ai auto
 release monk
}

Macro Rebirth Yuno

Kondisi:
- char tsb ada di posisi yuno_in02
- char tsb ada zeny 1.285.000
- Char tsb sudah di naikin full skill nya/tidak ada sisa skill
- Char tsb berat nya 0
- Char tsb tidak menggunakan peco2 job knight/crusader,cart job mercen class,falcon char hunter

automacro yunoin {
 exclusive 1
 run-once 1
 location yuno_in02
 call {
  do ai manual
  pause 0.5
  do sit
  pause 0.5
  do move 90 166
  pause 1
  do talknpc 88 164 c r0
  pause 2
  do move 93 202
  pause 3
  do talk 0
  pause 3
  do move yuno_in05
  pause 0.5
  do sit
  pause 0.5
  do ai auto
  release yunoin
 }
}
automacro yunoin5 {
 exclusive 1
 timeout 25
 location yuno_in05
 call {
  do ai manual
  pause 0.5
  do sit
  pause 0.5
  do move 45 54
  pause 1
  do talk 0
  pause 4
  do sit
  pause 0.5
  do ai auto
  release yunoin5
 }
}
automacro val {
 exclusive 1
 run-once 1
 location valkyrie
 call {
  do ai manual
  pause 0.5
  do sit
  pause 0.5
  do move 50 75
  pause 3
  do talk 0
  pause 10
  do ai manual
  release val
 }
}

Plugin HideConsole

1. di config.txt tambahkan: HideConsole 1
2. jika mau melihat bot: matikan bot dari task manager, nyalakan lagi

# =======================
# hideConsole v1.0
# =======================
# by hakore (hakore@users.sourceforge.net)
# see documentation at: http://forums.openkore.com/viewtopic.php?p=103437


package hideConsole;
use Globals qw(%config $interface);
use Log qw(message error);


Plugins::register('hideConsole', 'hide your console', \&onUnload);
my $hooks = Plugins::addHooks(
['initialized', \&autoHideConsole, undef],
['Command_post', \&cmdhideConsole, undef]
);


sub onUnload {
Plugins::delHooks($hooks);
}


sub autoHideConsole {
if ($config{hideConsole} > 0) {
hideConsole();
}
}


sub cmdhideConsole {
my (undef, $args) = @_;
my ($cmd) = split(' ', $args->{input}, 2);
if ($cmd eq "hideconsole") {
message("Console hidden
");


hideConsole();
$args->{return} = 1;
}
}


sub hideConsole {
eval 'use Win32::Console;Win32::Console->new(STD_OUTPUT_HANDLE)->Free();';
}


return 1;

Plugin autotrade.pl

1. di config.txt tambahkan
tradeAuto 1
2. ubah di config.txt
dealAuto 0
3. buka notepad baru simpan, dengan nama autotrade.txt di folder control, isi:
# [item name] [price]
Gladius [3] 1000000

-----------------plugin-----------------------
package autoTrade;
#ported from messykorexp by Joseph
#original code by systeman
use strict;
use Plugins;
use Globals;
use Log qw(message warning error debug);
use AI;
use Misc;
use Network::Send;
use Utils;


Plugins::register('autoTrade', 'automated chat room dealing', \&Unload);
my $hook1 = Plugins::addHook('AI_pre', \&call);
my $hook2 = Plugins::addHook('parseMsg/pre', \&packet);


# load table file
our %trade_lut;
my $file = "autotrade.txt";
#my $cfID = Settings::addConfigFile($file, \%trade_lut, \&FileParsers:arseDataFile_lc);
my $cfID = Settings::addControlFile($file, loader => [\&FileParsers:arseDataFile_lc, \%trade_lut]);
#Settings::load($cfID);
undef $file;


sub Unload {
\tPlugins::delHook('AI_pre', $hook1);
\tPlugins::delHook('parseMsg/pre', $hook2);
\tSettings::removeFile($cfID);
}


my $dealTrade;
my $dealFinalize;
my $tradeDealAddItem;
my $itemAddTimeout;


# TIMEOUTS: you can change these if you want
# time to wait for them to add items before cancelling?
my $itemWaitTime = 12;
# time to wait before accepting deal request?
my $dealAcceptTime = 2;
# time to wait before adding zeny once they finalize their item choices?
my $zenyAddDelay = 3;


sub packet {
\tmy $hookName = shift;
\tmy $args = shift;
\tmy $switch = $args->{switch};
\tmy $msg = $args->{msg};


\tif ($switch eq "00E9") {
\t\tmy $amount = unpack("L1", substr($msg, 2,4));
\t\tmy $ID = unpack("S1", substr($msg, 6,2));
\t\tif ($ID > 0) {
\t\t\t# they added an item, so reset the timeout
\t\t\t$tradeDealAddItem = 1;
\t\t}
\t}
\tif ($switch eq "01F4") {
\t\t#deal request, wait before accepting
\t\t$itemAddTimeout = time;
\t}
\tif ($switch eq "00E5" || $switch eq "01F4") {
\t\t#deal request, wait before accepting
\t\t$itemAddTimeout = time;
\t}
\tif ($switch eq "00EC") {
\t\tmy $type = unpack("C1", substr($msg, 2, 1));
\t\tif ($type == 1) {
\t\t\t#they finalize their item selections
\t\t\t$itemAddTimeout = time;
\t\t}
\t}
}


sub call {
\tAUTOTRADE: {
\t\tif (AI::is("","tradeAuto", "deal") && $config{tradeAuto} && $char->{skills}{NV_BASIC}{lv} > 4) {
\t\t\tif (AI::action ne "tradeAuto" && AI::action ne "deal" && $::currentChatRoom ne "") {
\t\t\t\tmessage "Begin auto-trade mode.
", "autoTrade";
\t\t\t\tif ($config{dealAuto}) {
\t\t\t\t\t$config{dealAuto} = 0;
\t\t\t\t\tMisc::configModify("dealAuto", $config{dealAuto});
\t\t\t\t}
\t\t\t\tAI::queue("tradeAuto");
\t\t\t}


\t\t\tlast AUTOTRADE if !AI::is("tradeAuto","deal");


\t\t\tif (Utils::timeOut($itemAddTimeout,$dealAcceptTime) && $::incomingDeal{name} && !$::currentDeal{name}) {
\t\t\t\t$messageSender->sendDealAccept();
\t\t\t\tundef $dealFinalize;
\t\t\t\tundef $dealTrade;
\t\t\t\t$itemAddTimeout = time;
\t\t\t\tmessage "Sent deal accept, begin trading
", "autoTrade";
\t\t\t}
\t\t\tlast AUTOTRADE if (!$::currentDeal{name});
\t\t\tif (!Utils::timeOut($itemAddTimeout,$itemWaitTime) && $tradeDealAddItem) {
\t\t\t\t$itemAddTimeout = time;
\t\t\t\tundef $tradeDealAddItem;
\t\t\t}
\t\t\tif (($::currentDeal{other_finalize} && Utils::timeOut($itemAddTimeout,$zenyAddDelay)) || Utils::timeOut($itemAddTimeout,$itemWaitTime)) {
\t\t\t\tif ($::currentDeal{other} eq ()) {
\t\t\t\t\tmessage "Other person didn't add any items, cancelling...
", "autoTrade";
\t\t\t\t\t$messageSender->sendCurrentDealCancel();
\t\t\t\t\t$itemAddTimeout = time;
\t\t\t\t} elsif (!$dealFinalize) {
\t\t\t\t\tmy $sumvalue;


\t\t\t\t\tmy @currentDealOther;
\t\t\t\t\tforeach (keys %{$::currentDeal{other}}) {
\t\t\t\t\t\tpush @currentDealOther, $_;
\t\t\t\t\t}
\t\t\t\t\tmy $max = @currentDealOther;
\t\t\t\t\tfor (my $i = 0;$i < $max;$i++) {
\t\t\t\t\t\tmy $found = 0;
\t\t\t\t\t\tmy $ID = $currentDealOther[$i];
\t\t\t\t\t\tmy $name = lc main::itemName($::currentDeal{other}{$ID});
\t\t\t\t\t\tif (defined $trade_lut{$name}) {
\t\t\t\t\t\t\tmessage "Add ".$trade_lut{$name}."z x $::currentDeal{other}{$ID}{amount} to deal
", "autoTrade";
\t\t\t\t\t\t\t$sumvalue += ($::currentDeal{other}{$ID}{amount} * $trade_lut{$name});
\t\t\t\t\t\t} else {
\t\t\t\t\t\t\tmessage "Other person added item which is not in buy list, cancelling...
", "autoTrade";
\t\t\t\t\t\t\t$messageSender->sendCurrentDealCancel();
\t\t\t\t\t\t\tlast AUTOTRADE;
\t\t\t\t\t\t}
\t\t\t\t\t}
\t\t\t\t\tmessage "Trading $sumvalue zeny and confirming
", "autoTrade";
\t\t\t\t\t$messageSender->sendDealAddItem(0, $sumvalue);
\t\t\t\t\tsleep(0.5);
\t\t\t\t\t$messageSender->sendDealFinalize();
\t\t\t\t\t$dealFinalize = 1;
\t\t\t\t\t$itemAddTimeout = time;
\t\t\t\t}


\t\t\t}
\t\t\tif ($::currentDeal{you_finalize} && Utils::timeOut($itemAddTimeout,$itemWaitTime)) {
\t\t\t\tmessage "Other person didn't accept the final trade, cancelling...
", "autoTrade";
\t\t\t\t$messageSender->sendCurrentDealCancel();
\t\t\t\t$itemAddTimeout = time;
\t\t\t}
\t\t\tif (!$dealTrade && $::currentDeal{you_finalize} && $::currentDeal{other_finalize}) {
\t\t\t\tmessage "Accepting final trade
", "autoTrade";
\t\t\t\t$messageSender->sendDealTrade();
\t\t\t\t$dealTrade = 1;
\t\t\t}
\t\t}
\t}
}


return 1;

Macro auto balik tempat hunt pakai warp setelah storage

1. tambahkan di config.txt (x dan y sesuaikan seleramu)
autoMoveOnDeath 1
autoMoveOnDeath_x 29
autoMoveOnDeath_y 226
autoMoveOnDeath_map prontera
2. yang dimerahin = sesuaikan seleramu
3. yang dibiruin = tergantung pakai OK bahasa inggris / indonesia
automacro warp {
map payon
console /Storage closed/
inventory "Blue Gemstone" > 1
run-once 1
call {
do sl 27 100 100
#ganti dengan koordinat di sekitar karaktermu saat storage
pause 1.5
do warp 1
pause 1
do move 100 100
#ganti dengan kode warp tempat huntmu yang sudah dimemo
release warp
}
}

Macro auto balik simpos jika kena warp

#1. macro ini bila bot di magmaring (ve_fild03) dan harus ada butwing di inventory
#2. bila bot di map lain, misal di hode (moc_fild17) maka map (ve_fild03, veins, ve_fild04, ve_fild05, ve_fild06) diganti dengan: moc_fild17, morocc, moc_fild12, moc_fild18, moc_fild11
#3. yang dimerahin = sesuaikan seleramu

automacro warp {

\texclusive 1

\tlocation not ve_fild03

\tlocation not veins

\tlocation not ve_fild04

\tlocation not ve_fild05

\tlocation not ve_fild06\t

\tcall {

\t\tdo is Butterfly Wing

\t\tpause 1

\t\trelease warp

\t}

}

Macro Antri Strip Weapon

automacro relog {

hp > 70%

status Strip Weapon

run-once 1

call {

do relog 1

}

}

Sunday, January 19, 2014

Macro Auto Invite Guild

#yang dimerahin = sesuaikan seleramu
#yang dibiruin = tergantung pakai openkore bahasa inggris / indonesia

automacro Pub {

console /You are not a guildmaster./

call {

pause 2

do chat create "Guild R> All Job masuk ketik info" 2 0

do look 4

}

}



automacro info {

pubm /info/i

exclusive 1

call {

do c halo kami dari Guild R> All Job 3 130++

do c untuk bergabung dengan Guild ketik: join

}

}



automacro terima {

console /Target telah menerima./i

exclusive 1

call {

do c selamat bergabung :)

}

}



automacro Gagal {

console /Target sudah berada dalam sebuah Guild./i

exclusive 1

call {

do c Anda sudah bergabung dengan sebuah guild

do c silahkan leave guild dan relog

do c lalu masuk pub lagi dan ketik: join

}

}



automacro penuh {

console /Guild anda penuh./i

exclusive 1

call {

do c maaf, Guild saat ini penuh

}

}



automacro join {

pubm /join/i

exclusive 1

macro_delay 0

call {



$namaPlayer = $.lastMatch3

$id = $.lastMatch4

$jobID = @eval ($::players{$::playersID[$id]}->{jobID})

if ($jobID = 4060) goto undang

if ($jobID = 4061) goto undang

if ($jobID = 4062) goto undang

if ($jobID = 4063) goto undang

if ($jobID = 4064) goto undang

if ($jobID = 4065) goto undang

if ($jobID = 4073) goto undang

if ($jobID = 4074) goto undang

if ($jobID = 4075) goto undang

if ($jobID = 4076) goto undang

if ($jobID = 4077) goto undang

if ($jobID = 4078) goto undang

if ($jobID = 4079) goto undang

if ($jobID = 4081) goto undang

if ($jobID = 4083) goto undang

if ($jobID = 4085) goto undang

if ($jobID = 4087) goto undang

if ($jobID = 4096) goto undang

if ($jobID = 4097) goto undang

if ($jobID = 4098) goto undang

if ($jobID = 4099) goto undang

if ($jobID = 4100) goto undang

if ($jobID = 4101) goto undang

if ($jobID = 4102) goto undang

if ($jobID = 4103) goto undang

if ($jobID = 4104) goto undang

if ($jobID = 4105) goto undang

if ($jobID = 4106) goto undang

if ($jobID = 4107) goto undang

if ($jobID = 4108) goto undang

if ($jobID = 4109) goto undang

if ($jobID = 4110) goto undang

if ($jobID = 4111) goto undang

if ($jobID = 4112) goto undang

goto bukan



:bukan

do c maaf, job dan level anda tidak memenuhi syarat

stop



:undang

do guild request $namaPlayer

}

}

Macro auto invite guild

#kalau pemicunya dari pembicaraan di umum? ya tinggal ganti guild jadi pubm dan $.lastguild jadi $.lastpub

#kalau pemicunya dari whisper? ya tinggal ganti guild jadi pm dan $.lastguild jadi $.lastpm

automacro grup {

guild /grup/

exclusive 1

run-once 1

call {

do party request $.lastguild

release grup

}

Macro rough elunium oridecon via npc autostorage

#catatan:
#1. yang dimerahin = sesuaikan seleramu
#2. jangan lupa di config.txt atur bagian autostorage:


storageAuto 1

storageAuto_npc payon 171 226 #kafra payon atas

storageAuto_distance 12

storageAuto_npc_type 1

storageAuto_npc_steps c r1 n

storageAuto_password 0000 #sesuaikan password storagemu

storageAuto_keepOpen 0

storageAuto_useChatCommand

relogAfterStorage 0

minStorageZeny 50



getAuto Rough Elunium {

minAmount 1

maxAmount 100 #sesuaikan dengan berat karaktermu

passive

}



#3. bila ingin mengubah rough oridecon cukup mengganti semua kata Elunium dengan Oridecon


automacro ubahjadielu {

location payon 141 181

inventory "Rough Elunium" > 4

run-once 1

call {

do talk 1

pause 2

do talk resp 1

pause 1.5

release all

}

}



automacro balik {

location not payon 141 181

inventory "Rough Elunium" > 4

run-once 1

call {

do move payon 141 181

pause 5

release balik

}

}

Macro eluminum oridecon from rough via npv

#catatan:
#1. yang dimerahin = sesuaikan seleramu
#2. bila ingin mengubah rough oridecon cukup mengganti semua kata Elunium dengan Oridecon


automacro ubahjadielu {

location payon 141 181

inventory "Rough Elunium" > 4

run-once 1

call {

do talk 1

pause 2

do talk resp 1

pause 1.5

release all

}

}



automacro ambilroughtaruhelu {

location payon 141 181

inventory "Rough Elunium" < 4

cart "Rough Elunium" > 4

run-once 1

call {

do cart get rough elunium 100

pause 1

do cart add elunium

release all

}

}



automacro abis {

location payon 141 181

inventory "Rough Elunium" < 4

cart "Rough Elunium" < 4

run-once 1

call {

do quit

}

}

Macro great narute to green live

macro divider {

do talk 0

pause 3

do talk resp 1

pause 2

do talk resp 0

pause 1

do talk num 10

pause 1

do talk num 6

pause 1

do cart get @cart(Great Nature) 10

do cart add @inventory(Green Live) 60

call divider

}



macro umstore {

do move 29 71

pause 3

do move umbala 97 154

}



macro return {

do move umbala 219 189

}



automacro StoreGL {

location umbala 97 154

timeout 60

delay 2

call {

do talk 4

pause 2

do talk resp 0

pause 2

do storage add @inventory(Green Live)

pause 1

do cart get @cart(Green Live) 650

pause 1

do storage add @inventory(Green Live)

pause 1

do cart get @cart(Green Live)

pause 1

do storage add @inventory(Green Live)

pause 1

do storage get @storage(Great Nature) 220

pause 1

do cart add @inventory(Great Nature) 220

pause 1

do storage get @storage(Great Nature) 10

pause 1

do storage close

pause 2

call return

}

}



automacro CallD {

location um_in

console /NPC Exist/

timeout 20

delay 2

call divider

}



automacro CallUS {

console /Cart Item Great Nature/

location um_in

inventory "Great Nature" < 2

inventory "Green Live" > 500

timeout 20

delay 2

call umstore

}

Macro tempa npc - refine equip npc



macro nempa {

$bahan = Shield [1]



# Ganti Dengan dibawah ini apabila bukan nempa armor

# Shield : $step = c r2 c r0 c n

# Jubah : $step = c r4 c r0 c n

# Alas Kaki : $step = c c r5 r0 c n

# Headgear : $step = c c r8 r0 c n



$step = c r4 c r0 c n



# Ganti Dengan dibawah ini apabila bukan nempa armor

# Shield : $step2 = c r2 c r0 c c r0 c n

# Jubah : $step2 = c r4 c r0 c c r0 c n

# Alas Kaki : $step2 = c r5 c r0 c c r0 c n

# Headgear : $step2 = c r8 c r0 c c r0 c n



$step2 = c r2 c r0 c c r0 c n



do conf autoTalkCont 0

do move 60 64

do sit



:five

$doom = @inventory($bahan)

if ($doom == -1) goto six

if (@inventory(Elunium) == -1) goto exit

do eq @inventory($bahan)

$i = 0

while ($i < 4) as begin

do talknpc 63 60 $step

$i++

end begin

pause 15

do talknpc 63 60 $step2

goto five



:six

if (@inventory(+5 $bahan) == -1) goto eight

if (@inventory(Elunium) == -1) goto exit

pause 90

do eq @inventory(+5 $bahan)

do talknpc 63 60 $step2

goto six



:seven

if (@inventory(+6 $bahan) == -1) goto eight

if (@inventory(Elunium) == -1) goto exit

pause 270

do eq @inventory(+6 $bahan)

do talknpc 63 60 $step2

goto seven



:eight

if (@inventory(+7 $bahan) == -1) goto exit

if (@inventory(Elunium) == -1) goto exit

pause 810

do eq @inventory(+7 $bahan)

do talknpc 63 60 $step2

goto eight



:exit

do conf autoTalkCont 1

log -- Refine Macro End --

}

Macro whisper

#catatan:
#1. yang dimerahin = sesuaikan seleramu
#2. tidak bisa deteksi nickname berkutip ( ' dan " ) dan bergaris miring ( / )

automacro info {

pm /info/

call {

do pm "$.lastpm" ketik job karaktermu ^O^

release all

}

}



automacro AB {

pm /AB|ab/

call {

do pm "$.lastpm" 100 WSP, 100 Strawberry, 100 Blue Gems

release all

}

}

Macro coating bottle dll

macro release {

pause 0.5

release create

}



automacro store {

inventory "Medicine Bowl" = 0

call kafra

run-once 1

exclusive 1

delay 2

}



macro kafra {

do talknpc 120 62 c r1 c

pause 1

do storage add Glistening Coat

pause 1

do storage get Medicine Bowl 550

pause 1

do storage get Heart Of Mermaid 550

pause 1

do storage get Zenorc's Fang 550

pause 1

do storage get Empty Bottle 550

pause 1

do storage get Alcohol 550

pause 1

do storage close

call release

}

Macro Pharmacy Acid Bottle dll

#yang dimerahin = sesuaikan keinginan, misal mau pharmacy Fire Bottle dll


##### Red Potion = 8E 01 F5 01 00 00 00 00 00 00

##### Yellow Potion = 8E 01 F7 01 00 00 00 00 00 00

##### White Potion = 8E 01 F8 01 00 00 00 00 00 00

##### Blue Potion = 8E 01 F9 01 00 00 00 00 00 00

##### Adonyne = 8E 01 5D 02 00 00 00 00 00 00

##### Aloevera = 8E 01 5E 02 00 00 00 00 00 00

##### Red Slim = 8E 01 21 02 00 00 00 00 00 00

##### Yellow Slim = 8E 01 22 02 00 00 00 00 00 00

##### White Slim = 8E 01 23 02 00 00 00 00 00 00

##### Alcohol = 8E 01 CA 03 00 00 00 00 00 00

##### Fire Bottle = 8E 01 DF 1B 00 00 00 00 00 00

##### Acid Bottle = 8E 01 E0 1B 00 00 00 00 00 00

##### Plant Bottle = 8E 01 E1 1B 00 00 00 00 00 00

##### Mine Bottle = 8E 01 E2 1B 00 00 00 00 00 00

##### Coating Wax = 8E 01 E3 1B 00 00 00 00 00 00



automacro brew {

run-once 1

sp > 15 %

map prontera

call {

:cek

log jumlah Medicine Bow = @invamount (Medicine Bow)

log jumlah Empty Bottle = @invamount (Empty Bottle)

log jumlah Immortal Heart = @invamount (Immortal Heart)

if (@invamount (Medicine Bowl) = 0) goto storage

if (@invamount (Empty Bottle) = 0) goto storage

if (@invamount (Immortal Heart) = 0) goto storage

if (@invamount (Medicine Bowl) > 0) goto jalan

if (@invamount (Empty Bottle) > 0) goto jalan

if (@invamount (Immortal Heart) > 0) goto jalan

goto end



:storage

do move prontera 37 199

do talknpc 29 207 c r1 n

pause 3

do storage get @storage(Medicine Bowl) 100

pause 3

do storage get @storage(Immortal Heart) 100

pause 3

do storage get @storage(Empty Bottle) 100

pause 3

do storage add @inventory(Acid Bottle)

do storage close

goto jalan



:jalan

do ss 228

do send 8E 01 E0 1B 00 00 00 00 00 00

pause 0.5

goto cek



:end

stop

}

Macro Paket Soullink

#catatan:
#1. isi paket adalah kaite, kaizel, kaupe, kaahi
#2. berikan 1 baris di paling atas (enter)
#3. format notepad harus UTF-8
#4. karakter dengan macro ini harus dalam status aktif spirit
#5. jika mau ganti emotion bendera dengan emotion /lv maka ganti \*Flag\s\d\* dengan *Heart*

automacro pkt {

console /\[(jarak|dist)=(.*)\] (.*) \((\d+)\): (\*Flag\s\d\*|sl)$/

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')



$guild1 = namaGuildmu

$guild2 = namaGuildmu



if ($playerguild == $guild1) goto oke

if ($playerguild == $guild2) goto oke



:oke

do sp 462 $playerID

pause 1.5

do sp 463 $playerID

pause 1.5

do sp 464 $playerID

pause 1

do sp 465 $playerID

pause 1

release pkt

}

}

Macro priest dengan emo atau bendera

#catatan:
#1. isi paket adalah blessing, agi, sacrament, kyrie
#2. berikan 1 baris di paling atas (enter)
#3. format notepad harus UTF-8
#4. jika mau ganti emotion bendera dengan emotion /swt maka ganti \*Flag\s\d\* dengan *Sweat*
#5. daftar emotion bisa dilihat di tables -> emotions.txt



automacro pkt {

console /\[(jarak|dist)=(.*)\] (.*) \((\d+)\): (\*Flag\s\d\*|paket)$/

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')



$guild1 = namaGuildmu

$guild2 = namaGuildmu



if ($playerguild == $guild1) goto oke

if ($playerguild == $guild2) goto oke



:oke

do sp 34 $playerID

do sp 29 $playerID

pause 1.5

do sp 2515 $playerID

pause 1.5

do sp 73 $playerID

release pkt

}

}

Macro paket priest

#catatan:
#1. yang dimerahin = sesuaikan seleramu
#2. isi paket adalah blessing, agi, sacrament, kyrie
#3. urutkan skill dari yang memiliki delay after terendah dan dipadukan dengan pause agar tidak terlewat


automacro pkt {

pubm /paket/

exclusive 1

run-once 1

call {

do sp 34 $.lastpub

do sp 29 $.lastpub

pause 1.5

do sp 2515 $.lastpub

pause 1.5

do sp 73 $.lastpub

release pkt

}

}

Macro Reload hp/sp via inn

#catatan:
#1. yang dimerahin = sesuaikan seleramu
#2. lokasi di inn prontera kiri -> sp di bawah 95% -> istirahat

automacro inn {

map prt_in

sp < 95%

exclusive 1

call {

pause 4

do talk @npc(244 135)

pause 2

do talk resp 1

release inn

}

}

Macro Auto Repair Equip via NPC

#catatan:
#1. yang dimerahin = sesuaikan seleramu
#2. macro ini lokasinya di prontera
#3. lokasi prontera -> cek inventory -> ada tulisan BROKEN -> jalan ke gedung repair -> ada tulisan Hollgrehenn -> ke koordinat -> betulin equipment yang rusak


automacro i {

map prontera

run-once 1

call {

do i

release all

}

}



automacro rusak {

console /BROKEN/

run-once 1

call {

do move prontera 178 184

pause 5

release all

}

}



automacro benerin {

console /Hollgrehenn/

run-once 1

call {

do move 60 64

pause 4

release all

}

}



automacro benerinn {

location prt_in 60 64

run-once 1

call {

do talk @npc(63 54)

pause 3

do talk resp 0

pause 3

do talk resp 0

pause 3

do quit

release all

}

}

Macro Disconnect per periode:

automacro dcTime {

timeout 900

delay 7

exclusive 1

call {

do relog

}

}

Macro Disconnect Warper

automacro lain {

location not namaMap

run-once 1

call {

do relog 9999999999

release lain

}

}

Macro disconnect MVP

#yang dimerahin = sesuaikan seleramu


automacro MVP {

monster Acidus,Amon Ra,Arc Angeling,Archangeling,Archdam,Archer Guardian,Armeyer Dinze,Armaia,Assassin Cross Eremes,Assaulter,Banshee,Baphomet,Baphomet Jr.,Atroce,Bacsojin,White Lady,Beelzebub,Bloody Butterfly,Bow Guardian,Bow Master,Byorgue,Carat,Chepet,Chimera,Chung E,Galion,Green Maiden,Civil Servant,Mao Guai,Creamy Fear,Dark Illusion,Dark Lord,Dark Snake Lord,Evil Snake Lord,Deathword,Death Word,Deleter,Detale,Detarderous,Deviling,Diabolic,Dimik,Drake,Doppelganger,  Dracula,Dragon Fly,Erend,Errende Ebecee,Taoist Hermit,Executioner,Eddga,Elder,Eremes,Eremes Guile,Frus,Flame Skull,Freezer,Fallen Bishop,Fallen Bishop Hibram,Ferus,Gazeti,Gemini-S58,Garm,Garm Baby,Goblin Leader,Gloom Under Night,Harword,Howard Alt-Eisen,Hatii,Hatii Baby,Hell Fly,Gopinich,Grizzly,Gryphon,High Wizard Katrinn,High Wizard Kathryne,Hellion Revenant,High Priest Magaleta,High Priest Margaretha,Ifrit,Imp,Incantation Samurai,Samurai Specter,Incarnation of Morroc,Hydro,Hydrolancer,Katrinn,Kathryne Keyron,Kavac,Kavach Icarus,Kiel,Kiehl,Kiel D-01,Killer Mantis,Knight Guardian,Knight of Abyss,Abysmal Knight,Knight of Windstorm,Stormy Knight,Ktullanux,Lady Tanee,Li Me Mang Ryang,Jing Guai,Lord Knight Seyren,Lord of Death,Lord of the Dead,Magaleta,Margaretha Sorin,Majoruros,Maya,Maya Purple,Mistress,Moonlight Flower,Mutant Dragon,Mutant Dragonoid,Mysteltainn,Necromancer,Orc Hero,Orc Lord,Orc Sniper,Osiris,Panzer Goblin,Pharaoh,Phendark,Phreeoni,Plasma,Rawrel,Laurell Weinder,Removal,Remover,RSX 0806,RSX-0806,Sea Otter,Seyren,Seyren Windsor,Shecil,Cecil Damon,Shecil Damon,Shinobi,Skeggiold,Skogul,Sniper Shecil,Sniper Cecil,Snowier,Solace,Lady Solace,Soldier Guardian,Sword Guardian,Sword Master,Tao Gunka,Thanatos,Memory of Thanatos,Thanatos Maero,Maero of Thanatos,Thanatos Despero,Despero of Thanatos,Thanatos Odium,Odium of Thanatos,Thanatos Dolor,Dolor of Thanatos,Golden Thief Bug,Tirfing,Ogretooth,Valkyrie Randgris,Venatu,Vesper,Valkyrie,Turtle General,Whitesmith Harword,Mastersmith Howard,Whikebain,Ygnizem,Egnigem Cenia

status not dead

call disconnect

run-once 0

exclusive 1

}

macro disconnect {

do relog 1200

}

Macro Auto Skill Joker / Wanderer

#catatan:
#1. yang dimerahin = sesuaikan seleramu
#2. bisa menggunakan sl atau ss
#3. 330 adalah kode skill Service for You
#4. tiap 60 detik akan menggunakan Service for You

automacro skillJokerWanderer {

map payon

call {

pause 1

do sl 330 170 110

#kalau menggunakan ss: ss 330

pause 1

}

timeout 60

}

Macro Auto Trans

#catatan:
#1. yang dimerahin = sesuaikan seleramu
#2. berat karakter lebih dari 49% dan berada di prontera -> ajak transaksi ke nickname -> mengajukan white pot -> transaksi selesai



automacro deal {

weight > 49%

map prontera

run-once 1

call {

do deal @player (nicknameYangDituju)

do deal add @inventory(White Potion)

pause 1

do deal

pause 3

do deal

rellease all

}

}

Macro Auto Beli HP Pill and SP pill

#catatan:
#1. tentunya keadaan id harus premium service dan ada zeny
#2. maksimal 1x pembelian hp dan sp pill maka harus buka storage terus menerus

automacro hpSpPill {

map payon

run-once 1

call b

}



macro b {

do autostorage

pause 1

do talknpc 178 110 c c r0 c r1 n

pause 1

do talknpc 178 110 c c r0 c r2 n

pause 1

release hpSpPill

}

Macro Auto Beli Arrow

macro beli {
$awal = $.pos
do move payon_in01 11 126
do talk 0
do store
do buy 0 30000
}



automacro BuatQuiver {
inventory "Arrow" > 500
call Quiver
run-once 1
}



macro Quiver {
do move 11 126 payon_in01
do talknpc 5 134 r0 r0 r0
release BuatQuiver
}