Tuesday, 23 July 2013

macro anti warp versi 2

ini sebetulnya macro anti warp juga seperti yang sebelumnya, cuma disini saya menggunakan sub sebagai triggernya agar lebih responsif dan lebih powerfull. dia buka pub kalo kondisi2 seperti ini terpenuhi :
- dia ada di deket warp
- dia ada di warp
- dia sedang berjalan menuju warp
- dan dia cuma menutup pub kalo bener2 udh aman dan gaada warp yang mengancam di sekitar char
jadi ini macronya :


automacro isengwarp {
eval main::warpiseng()
run-once 1
exclusive 1
call {
pub("iseng ya", "password")
do e shy
$w = 1
while ($w = 1) as loop
chatroom()
$w = warpiseng()
end loop
do chat leave
release isengwarp
}
}

sub chatroom{
use Misc;
use Globals;
use strict;
if ($chatRooms{$currentChatRoom} eq "") {
    pub("iseng ya", "password");
    }
}

sub warpiseng {
use Misc;
use Actor;
use strict;
my $statuses = "Warp Portal";
my ($spell, $type, $ID, $x, $y, $spx, $spy, $xx, $yy, $a, $b, $aa, $bb);
for $ID (@spellsID) {
    $spell = $spells{$ID};
    $type = getSpellName($spell->{type});
        if ($type eq $statuses) {
        $x = $char->{pos_to}{x};
        $y = $char->{pos_to}{y};
        $xx = $char->{pos}{x};
        $yy = $char->{pos}{y};
        $spx = $spell->{pos}{x};
        $spy = $spell->{pos}{y};
        $a = abs($spx-$x);
        $b = abs($spy-$y);
        $aa = abs($spx-$xx);
        $bb = abs($spy-$yy);
        if (($x eq $spx && $y eq $spy) || ($xx eq $spx && $yy eq $spy) || ( $a < 4 && $b < 4) || ($aa < 4 && $bb < 4)) {
            return 1;
            }
        else {
            return 0;
            }
        }
    next unless $spell;
    }
return 0;
}

sub pub{
use Misc;
use strict;
my $title = $_[0];
my $users = 2;
my $public = 0;
my $password = $_[1];
$messageSender->sendChatRoomCreate($title, $users, $public, $password);
}

No comments:

Post a Comment