di artikel macro untuk pemula saya udh pernah singgung tentang eval, disini saya mau bagi2 sedikit eval yang mungkin bisa membantu untuk macro kalian smua diantaranya eval berhitung, eval cek kondisi player dan lainnya.
eval berhitung
menjumlah, mengali membagi mengurangi dapat dilakukan dengan eval. tanda yg dipakai adalah + untuk penjumlahan - untuk pengurangan * untuk perkalian \ untuk pembagian dan ** untuk pangkat. penggunaannya kira2 seperti ini :
penjumlahan :
$a = 2
$b = 4
$c = @eval ($a+$b)
pengurangan
$c = @eval ($a-$b)
perkalian
$c = @eval ($a*$b)
pembagian
$c = @eval ($a\$b)
pangkat
$c = @eval ($a**$b)
akar
$c = @eval ($a**0.5)
untuk bilangan pecahan, selalu digunakan titik sebagai pengganti koma.
eval cek kondisi char lain
terkadang kita juga perlu untuk mengecek kondisi player. disini input kepada eval adalah berupa $id yang merupakan nomer index player yang bisa di dapat dengan capture melalui console dengan regexp atau menggunakan perintah @player.
cek guild
$nick = nickplayernya
$id = @player ($nick)
$guild = @eval (exists $::players{$::playersID[$id]}->{guild} ? $::players{$::playersID[$id]}->{guild}{name} : 'null')
cek guild title
$title = @eval (exists $::players{$::playersID[$id]}->{guild} ? $::players{$::playersID[$id]}->{guild}{title} : 'null')
cek jarak
$distance = @eval ($::players{$::playersID[$id]}->distance)
cek level
$lvl = @eval ($::players{$::playersID[$id]}->{lvl})
cek posisi
$x = @eval ($::players{$::playersID[$id]}->{pos_to}{x})
$y = @eval ($::players{$::playersID[$id]}->{pos_to}{y})
cek job
$job = @eval ($::players{$::playersID[$id]}->job)
cek status
$status = @eval ($::players{$::playersID[$id]}->statusesString)
cek nama party
$party = @eval (exists $::players{$::playersID[$id]}->{party} ? $::players{$::playersID[$id]}->{party}{name} : 'null')
cek weapon
$w = @eval (Misc::itemName({nameID => $::players{$::playersID[$id]}->{weapon}}))
cek perisai
$s = @eval (Misc::itemName({nameID => $::players{$::playersID[$id]}->{shield}}))
cek headgear
$top = @eval (Misc::headgearName($::players{$::playersID[$id]}->{headgear}{top}))
$mid = @eval (Misc::headgearName($::players{$::playersID[$id]}->{headgear}{mid}))
$low = @eval (Misc::headgearName($::players{$::playersID[$id]}->{headgear}{low}))
cek no urut id
@eval ($::players{$::playersID[$id]}->{nameID})
eval cek kondisi char sendiri
terkadang kita juga butuh untuk melihat beberapa info tentang char kita sendiri. eval ini bisa membantu untuk memberi informasi tentang kondisi char sendiri jika pada macro belum disediakan
cek status str
$str = @eval ($::char->{str})
agi
$agi = @eval ($::char->{agi})
vit
$vit = @eval ($::char->{vit})
int
$int = @eval ($::char->{int})
dex
$dex = @eval ($::char->{dex})
luk
$luk = @eval ($::char->{luk})
cek posisi
$x = @eval ($::char->{pos_to}{x})
$y = @eval ($::char->{pos_to}{y})
eval lainnya
mengecek koordinat bisa dipanah atau tidak *$boolean = 0 jika tidak bisa
$xtarget = #koordinat x target
$ytarget = #koordinat y target
$xme = #koordinat x player
$yme = #koordinat y player
$boolean = @eval (Misc::checkLineSnipable ({x => $xme, y => $yme}, {x => $xtarget, y => ytarget}))
mengecek koordinat bisa dilalui atau tidak / bisa dilakukan skill area atau tidak *$boolean = 0 jika tidak bisa
$boolean = @eval($::field->isWalkable($xtarget, $ytarget))
mengecek auth *boolean = 0 jika bukan auth
$nick = nick yang dicek
$boolean = @eval (defined $::overallAuth{"$nick"} ? $::overallAuth{"$nick"}:"None")
mendapatkan nomer index npc melalui nomer id npc
$id = #nomer id npc
$index = @eval (Actor::get(pack 'V', $id)->{binID})
No comments:
Post a Comment