bounty board

All about the macro plugin can be found in this forum. This forum is intended for the macro plugin only.

Moderator: Moderators

Message
Author
Enseladang_Talong
Noob
Noob
Posts: 5
Joined: 05 Feb 2016, 19:56
Noob?: Yes

bounty board

#1 Post by Enseladang_Talong »

Goodmorning! So I made a macro to do killing quest in geffen for flying petite. What happen is I manually type "Macro checkQuest" on the kore for the bot to talk to the npc. And after getting the quest the bot will just stand and will not go to the map to kill the monster. I would really appreciate if someone can help me. Here is all in my macros.txt

automacro checkQuest {
# hook packet/quest_update_mission_hunt
hook target_died
exclusive 1
call {
if (@config(skypQuest) != 1 || $.lvl > 80) goto next
$temp1 = @eval($::questList->{62680}->{missions}->{1156}->{count})
if ($temp1 == 150) call questSkyP
:end
}
}
macro questSkyP {
set exclusive 1
do move geffen 72 77
pause 1
do talk @npc (74 79)
pause 2
do talk resp 0
pause 2
do talk resp 5
pause 2
do talk resp 0
:end
}

jowy
Noob
Noob
Posts: 4
Joined: 17 Mar 2016, 04:07
Noob?: No

Re: bounty board

#2 Post by jowy »

try "macro status" and check did the macro successfully finish.
I suspect it stop at :end there or somewhere else if got lag connection suddenly

normally i would use

do talknpc 74 79 r1 r5 r0 n
pause 1
do talknpc 74 79 r0 r5 r0 n

claudio_sbc
Human
Human
Posts: 28
Joined: 13 Apr 2016, 09:31
Noob?: Yes

Re: bounty board

#3 Post by claudio_sbc »

Man, why are you using goto :next label?
Where is this label?

traplord01
Noob
Noob
Posts: 11
Joined: 02 Nov 2016, 02:47
Noob?: Yes

Re: bounty board

#4 Post by traplord01 »

This will somehow help you do bounty stuff..

***note I got this from IRO BOUNTY 1.1


function script F_Bounty_Board {
if (BaseLevel < getarg(0) || (BaseLevel > getarg(1) && getarg(1))){
for (.@i = 5; .@i < getargcount(); .@i += 4){
if (checkquest(getarg(.@i)) != -1){
mes "[Bounty Board]";
mes "You are ready to collect your bounty.";
mes "Which bounty do you want to collect?";
next;
switch(select("Collect 1 bounty", "Collect ALL bounties", "I want to QUIT hunting", "cancel")){
case 1: goto L_BountyOne;
case 2: goto L_BountyAll;
case 3: goto L_BountyDel;
case 4: close;
}
}
}
switch(getarg(3)){
case 1: mes "These bounties are available only to adventurers who are between the levels "+getarg(0)+"-"+getarg(1)+"."; break;
case 2: mes "These bounties are available only to adventurers who are between levels "+getarg(0)+" and "+getarg(1)+"."; break;
case 3: mes "These bounties are available only to adventurers who are above level "+getarg(0)+"."; break;
case 4: mes "These bounties are available only to adventurers who are higher than level "+getarg(0)+"."; break;
case 5: mes "You've stumbled upon what appears to be a bulletin board with wanted ads. Nothing looks that interesting."; break;
}
close;
}
mes "[Bounty Board]";
mes "You've stumbled upon what appears to be a bulletin board with wanted ads.";
mes "Take a closer look?";
next;
mes "[Bounty Board]";
mes "There are many listings for monster hunting.";
next;
switch(select("Check bounty missions", "Collect bounty rewards", "Where do I go to hunt?", "Search for other bounty hunters.", "I want to QUIT hunting", "Not interested.")){
case 1: // Check bounty missions
mes "[Bounty Board]";
mes "There is a list of monsters on the board.";
mes "Looking through it you decide to take one hunting task.";
next;
for (.@i = 4; .@i < getargcount(); .@i += 4)
.@menu$ = .@menu$ + getmonsterinfo(getarg(.@i),MOB_NAME) + ":";
.@menu$ = .@menu$ + "Hunt All:Cancel";
.@bounty = (select(.@menu$) * 4) + 1;
if (.@bounty > getargcount()+1){
mes "[Bounty Board]";
mes "You have decided not to take any bounties.";
close;
} else if (.@bounty == getargcount()+1){
for (.@i = 5; .@i < getargcount(); .@i += 4){
if (checkquest(getarg(.@i)) == -1)
setquest getarg(.@i);
.@HuntAllList$ = .@HuntAllList$ + (.@i+4 > getargcount()?" and ":(.@i > 5?", ":"")) + getmonsterinfo(getarg(.@i-1),MOB_NAME);
}
mes "[Bounty Board]";
mes "There is a bounty to hunt 150 " + .@HuntAllList$ + " hunt them all.";
close;
}
.@monster$ = getmonsterinfo(getarg(.@bounty-1),MOB_NAME);
mes "[Bounty Board]";
mes "There is a bounty to hunt 150 " + .@monster$ + ".";
next;
if (select("I'll do it.", "Uhh actually nevermind.") == 1){
if (checkquest(getarg(.@bounty),HUNTING) == -1)
setquest getarg(.@bounty);
mes "[Bounty Board]";
mes "You have accepted the bounty to hunt "+.@monster$+".";
}
close;
case 2: // Collect bounty rewards
mes "[Bounty Board]";
mes "You are ready to collect your bounty.";
mes "Which bounty do you want to collect?";
next;
switch(select("Collect 1 bounty", "Collect ALL bounties", "cancel")){
case 1: goto L_BountyOne;
case 2: goto L_BountyAll;
case 3: close;
}
case 3: // Where do I go to hunt?
mes "[Bounty Board]";
switch(getarg(2)){
case 1: mes "You can hunt them at the dungeon. You're staring at the entrance now!"; break;
case 2: mes "You can hunt them at the forests surrounding Payon and at the Cave up north at Archer Village."; break;
case 3: mes "You can hunt them at various fields surrounding Prontera."; break;
case 4: mes "You can hunt them at various fields and dungeons around Prontera."; break;
case 5: mes "You can hunt at the Umbala Fields to fulfill these bounties."; break;
case 6:
mes "Wich monster hunting field do you want to go to?";
next;
.@bounty = (select("Golem", "Stalactic Golem", "Medusa", "Cancel") * 4) + 1;
if (.@bounty > getargcount())
close;
mes "[Bounty Board]";
if (checkquest(getarg(.@bounty),HUNTING) == -1){
mes "You're currently not hunting "+getmonsterinfo(getarg(.@bounty-1),MOB_NAME)+".";
close;
}
mes "Sending you now.";
close2;
switch(.@bounty){
case 1: warp "cmd_fild06",147,36; break;
case 2: warp "beach_dun2",154,25; break;
case 3: warp "beach_dun",266,67; break;
}
end;
case 7: mes "You can hunt at the <NAVI>Juno Fields<INFO>yuno,158,16,</INFO></NAVI> to fulfill these bounties."; break;
case 8: mes "You can hunt at <NAVI>Brasilis Field<INFO>brasilis,309,304,</INFO></NAVI> and <NAVI>Brasilis Dungeon<INFO>brasilis,183,284,</INFO></NAVI> to fulfill these bounties."; break;
case 9: mes "You can hunt them at various fields surrounding Lighthalzen."; break;
case 10: mes "You can hunt them at various fields and dungeons around Lighthalzen."; break;
case 11:
mes "You can hunt at <NAVI>Splendide Field<INFO>mid_camp,14,143,</INFO></NAVI> to fulfill these bounties.";
mes "Be sure that you're an authorized member of the Midgard Alliance before you go there.";
break;
case 12: mes "You can hunt at the two Dicastes Fields to fulfill these bounties."; break;
}
close;
case 4: // Search for other bounty hunters.
mes "[Bounty Board]";
mes "To find players to party with, click on the [Booking] button in, your user menu or type \"/booking\" in the chat box to bring up the window.";
next;
mes "[Bounty Board]";
mes "Then click \"Search\" to bring up all party listings.";
mes "To post a party wanted ad, type \"/recruit\" into the chat box.";
close;
case 5: // I want to QUIT hunting
goto L_BountyDel;
case 6: // Not interested.
mes "[Bounty Board]";
mes "Life is full of dangers.";
mes "You don't live life unless you put yourself in danger from time to time";
close;
}

L_BountyOne:
mes "[Bounty Board]";
mes "You will receive ^FF00001 Eden Merit Badge if all bounties are collected together.^000000";
mes "Otherwise, zeny and EXP/JEXP are rewarded alone.";
mes "^FF0000VIP accounts get to choose how to distribute experience prizes^000000.";
next;
for (.@i = 4; .@i < getargcount(); .@i += 4)
.@menu$ = .@menu$ + getmonsterinfo(getarg(.@i),MOB_NAME) + ":";
.@menu$ = .@menu$ + "Cancel";
.@bounty = (select(.@menu$) * 4) + 1;
if (.@bounty > getargcount()){
mes "^000000[Bounty Board]^000000";
mes "Come back when you have a bounty completed.";
close;
}
if (checkquest(getarg(.@bounty),HUNTING) == 2){
if (vip_status(1)){
mes "^000000[Bounty Board]^000000";
mes "How will you distribute your newfound experience?";
next;
.@vip_reward = select("^FF0000Both Base and Job EXP^000000", "^0000FFI want Base EXP only.^000000", "^FFA400I want Job EXP only.^000000");
}
erasequest getarg(.@bounty);
if (Zeny + 37500 <= MAX_ZENY)
Zeny += 37500;
.@BaseExp = getarg(.@bounty+1);
.@JobExp = getarg(.@bounty+2);
switch(.@vip_reward){
case 2:
getexp .@BaseExp,0;
getexp .@JobExp,0;
break;
case 3:
getexp 0,.@BaseExp;
getexp 0,.@JobExp;
break;
default:
getexp .@BaseExp,.@JobExp;
break;
}
} else {
mes "^000000[Bounty Board]^000000";
mes "The bounty to hunt "+getmonsterinfo(getarg(.@bounty-1),MOB_NAME)+" has not been completed.";
}
close;

L_BountyAll:
mes "[Bounty Board]";
mes "Oh you fancy yourself a good hunter eh?";
mes "Let me see if you've actually hunted all the monsters you said you would.";
next;
for (.@i = 5; .@i < getargcount(); .@i += 4){
if (checkquest(getarg(.@i),HUNTING) < 2){
mes "[Bounty Board]";
mes "The bounty to hunt all has not been completed.";
mes "Lying will not be tolerated.";
close;
}
}
if (vip_status(1)){
mes "^000000[Bounty Board]^000000";
mes "How will you distribute your newfound experience?";
next;
.@vip_reward = select("^FF0000Both Base and Job EXP^000000", "^0000FFI want Base EXP only.^000000", "^FFA400I want Job EXP only.^000000");
}
for (.@i = 5; .@i < getargcount(); .@i += 4)
erasequest getarg(.@i);
for (.@i = 6; .@i < getargcount(); .@i += 4){
if (Zeny + 37500 <= MAX_ZENY)
Zeny += 37500;
.@BaseExp = getarg(.@i);
.@JobExp = getarg(.@i+1);
switch(.@vip_reward){
case 2:
getexp .@BaseExp,0;
getexp .@JobExp,0;
break;
case 3:
getexp 0,.@BaseExp;
getexp 0,.@JobExp;
break;
default:
getexp .@BaseExp,.@JobExp;
break;
}
}
getitem "Para_Logro_Badge",1;
mes "[Bounty Board]";
mes "Here is your reward.";
close;

L_BountyDel:
mes "[Bounty Board]";
mes "I'll check what missions that you've taken so far.";
mes "Which ones do you want to quit?";
next;
for (.@i = 5; .@i < getargcount(); .@i += 4){
if (checkquest(getarg(.@i),HUNTING) == 1){
.@monster$ = getmonsterinfo(getarg(.@i-1),MOB_NAME);
mes "[Bounty Board]";
mes "You have NOT completed the " + .@monster$ + " hunt mission.";
mes "Do you want to continue or quit?";
next;
if (select("Keep hunting "+.@monster$, "^FF0000Get rid of my quest^000000") == 2){
erasequest getarg(.@i);
mes "[Bounty Board]";
mes "All of your records for this quest have been deleted.";
close2;
.@questerased = 1;
}
}
}
if (!.@questerased)
close;
else
end;

}


EXAMPLE ONE CITY:

//= Uses function "F_Bounty_Board" to manage the Bounty Boards
//= npc on cities.
//= The function arguments are this:
//= callfunc "F_Bounty_Board", MinLevel, MaxLevel, MsgHuntPlace, MsgOutLevel,
//= MonsterID, QuestID, BaseExp, JobExp{,
//= MonsterID, QuestID, BaseExp, JobExp};
//============================================================

comodo,104,136,3 script Bounty Board 40-60#cmd1 837,{
callfunc "F_Bounty_Board", 40, 60, 1, 1,
1034, 62617, 52312, 59062, // THARA_FROG
1323, 62618, 72225, 81000, // SEE_OTTER
1317, 62619, 60750, 68287, // FUR_SEAL
1254, 62620, 62212, 69862, // RAGGLER
1687, 62621, 164025, 184950, // GREEN_IGUANA
1271, 62622, 82012, 92475, // ALLIGATOR
1118, 62809, 59140, 66491; // FLORA
end;
}

comodo,106,136,3 script Bounty Board 60-105#cmd2 837,{
callfunc "F_Bounty_Board", 60, 105, 6, 1,
1040, 62623, 91125, 102600, // GOLEM
1278, 62624, 113850, 128025, // STALACTIC_GOLEM
1148, 62625, 293062, 219712; // MEDUSA
end;
}


You can utilize it with other cities with this config...

let me know if you figured out cause I havent...
Attachments
iRO Bounty Boards v1.1.rar
(19.34 KiB) Downloaded 308 times

Palimbo
Noob
Noob
Posts: 3
Joined: 20 Feb 2017, 15:08
Noob?: No

Re: bounty board

#5 Post by Palimbo »

I found a solution for the Bounty Board Macro.
After 6 hours it works pretty well for me even if i die or relog.

The Macro ist for the Novus Bounty Board in Hugel and is simple. I Made it for even a Slave can use it.

automacro checkQuest {
timeout 15 # the Macro trigger every 15 secons and look if you have enough
# monsters or not.

exclusive 1 # this let other macros dont interrupt
call {
$temp1 = @eval($::questList->{62790}->{missions}->{1718}->{count}+$::questList->{62789}->{missions}->{1715}->{count}) # here you tell the macro what $temp1 is, in my macro it count the monsters yellow novus (ID of the Mob 1715) + the red novus (ID 1715).... So the macro will create a summary of this two monsters. like you killed 20 + 10 then the macro know $temp1 = 30
if ($temp1 == 300) call Novus #here you set how much monsters you need to finish the quest and what to do if the number is reached
}
}

macro Novus { #here is the macro that will trigger when you reach the needed 300 mobs
do is Butterfly Wing #use a butterfly wing....
pause 3
do move hugel 76 148 #move to the bounty board
pause 1
do talknpc 67 153 c c r1 c r1 c c r0 n #talking sequence for the bounty board after finished the quest if you only want base ep or only want to return one quest you need to change
pause 2
do talknpc 67 153 c c r0 c r2 n #this is the sequence to take the quests again
pause 2
}

You can change everthing here: for example you only want to hunt one monster, just delete everthing from "+" in the $temp1 = line example: $temp1 = @eval($::questList->{62790}->{missions}->{1718}->{count}) but you need to cange the number from 300 to 150 as well in the next line.

I hope someone understand me :D
Maybe someone can write this a little bit bette then me.

Here again the Macro without explanation

automacro checkQuest {
timeout 15
exclusive 1
call {
$temp1 = @eval($::questList->{62790}->{missions}->{1718}->{count}+$::questList->{62789}->{missions}->{1715}->{count})
if ($temp1 == 300) call Novus
}
}

macro Novus {
do is Butterfly Wing
pause 3
do move hugel 76 148
pause 1
do talknpc 67 153 c c r1 c r1 c c r0 n
pause 2
do talknpc 67 153 c c r0 c r2 n
pause 2
}

if you dont want to trigger it set timeout higer like 9999999999999999 or just delete it
oh and you need to be on auto Ai mode and set the lock map to the map with the monsters you need to hunt, otherwise your bot will do nothing :D

palancho
Human
Human
Posts: 39
Joined: 28 Mar 2017, 03:08
Noob?: Yes

Re: bounty board

#6 Post by palancho »

Guys, do this macros require to have lockmap not set or something?- becouse they don't run.
Or do they require proper lvl, becouse I am already 92+ lvl on my character.
I am trying to run Geffen Bounty Board macro from this rar file: iRO Bounty Boards v1.1.rar and it does not work :(
Maybe I am doing something wrong, I am new to macros.
I simply copy data from Geffen macro file into macros txt file in my config folder.
Anyone could help me please?

Mortimal
Developers
Developers
Posts: 389
Joined: 01 Nov 2008, 15:31
Noob?: No

Re: bounty board

#7 Post by Mortimal »

This is incomplete custom macro... i don't think someone will do it for u...
Please use pin function for uploading your file contents!

palancho
Human
Human
Posts: 39
Joined: 28 Mar 2017, 03:08
Noob?: Yes

Re: bounty board

#8 Post by palancho »

Mortimal wrote:This is incomplete custom macro... i don't think someone will do it for u...
Hi!!! But I am trying to use this macro from macro bundle attachement: iRO Bounty Boards v1.1.rar ;)

Here it is:


//===== Atlantis Script ======================================
//= iRO Bounty Boards : Geffen
//===== By: ==================================================
//= Ragno / AtlantisRO
//===== Actual Version: ======================================
//= 1.0.2 Removed += operations with strings.
//= 1.0.1 Changed npc and monsters constants to numerical ids
//= 1.0 Starting Release
//===== General Description: =================================
//= Hunting Quest designed by iRO:
//= http://irowiki.org/wiki/Bounty_Board_Quests
//===== How to Use: ==========================================
//= Uses function "F_Bounty_Board" to manage the Bounty Boards
//= npc on cities.
//= The function arguments are this:
//= callfunc "F_Bounty_Board", MinLevel, MaxLevel, MsgHuntPlace, MsgOutLevel,
//= MonsterID, QuestID, BaseExp, JobExp{,
//= MonsterID, QuestID, BaseExp, JobExp};
//============================================================

geffen,78,75,3 script Bounty Board 1-20#gf1 837,{
callfunc "F_Bounty_Board", 1, 20, 1, 1,
1011, 62660, 4950, 4050, // CHONCHON
1012, 62661, 10125, 7650, // RODA_FROG
1020, 62662, 16200, 12151, // MANDRAGORA
1094, 62663, 13050, 9675; // AMBERNITE
end;
}

geffen,77,76,3 script Bounty Board 21-50#gf2 837,{
callfunc "F_Bounty_Board", 21, 50, 2, 1,
1018, 62664, 16200, 18225, // CREAMY
1103, 62665, 18225, 20475, // CARAMEL
1128, 62666, 24300, 27225, // HORN
1077, 62667, 18225, 20475, // POISON_SPORE
1104, 62810, 30375, 34200, // COCO
1056, 62811, 18225, 20475, // SMOKIE
1145, 62812, 20250, 22725, // MARTIN
1033, 62813, 26100, 29475; // ELDER_WILOW
end;
}

geffen,76,77,3 script Bounty Board 41-75#gf3 837,{
callfunc "F_Bounty_Board", 41, 75, 2, 1,
1023, 62668, 39375, 60750, // ORK_WARRIOR
1273, 62669, 42750, 48825, // ORC_LADY
1122, 62670, 41400, 46575, // GOBLIN_1
1258, 62671, 50625, 56925, // GOBLIN_ARCHER
1169, 62820, 37350, 42075; // SKEL_WORKER
end;
}

geffen,75,78,3 script Bounty Board 61-100#gf4 837,{
callfunc "F_Bounty_Board", 61, 100, 2, 1,
1036, 62672, 65475, 73800, // GHOUL
1130, 62673, 71100, 79875, // JAKK
1061, 62674, 56250, 116100; // NIGHTMARE
end;
}

geffen,74,79,3 script Bounty Board 81-120#gf5 837,{
callfunc "F_Bounty_Board", 81, 120, 2, 1,
1109, 62675, 203175, 243675, // DEVIRUCHI
1143, 62676, 162225, 225900, // MARIONETTE
1192, 62677, 133875, 133875, // WRAITH
1198, 62678, 273375, 187425, // DARK_PRIEST
1253, 62679, 213750, 160275, // GARGOYLE
1156, 62680, 101250, 113850, // PETIT_
1155, 62681, 131625, 148050, // PETIT
1117, 62682, 150525, 144000, // EVIL_DRUID
1263, 62683, 103275, 150075; // WIND_GHOST
end;
}

geffen,73,80,3 script Bounty Board 101-150#gf6 837,{
callfunc "F_Bounty_Board", 101, 150, 2, 1,
1267, 62684, 218700, 164025, // CARAT
1208, 62685, 381150, 277425, // WANDER_MAN
1207, 62686, 244350, 183150, // STING
1194, 62687, 207450, 293175, // ARCLOUSE
1163, 62688, 311625, 233550, // RAYDRIC
1132, 62689, 321975, 241425, // KHALITZBURG
1206, 62690, 329625, 249975, // ANOLIAN
//1371, 62691, // FAKE_ANGEL
1390, 62692, 321975, 241425, // VIOLY
//1292, 62693, // MINI_DEMON
1310, 62815, 347625, 347625; // MAJORUROS
end;
}

Mortimal
Developers
Developers
Posts: 389
Joined: 01 Nov 2008, 15:31
Noob?: No

Re: bounty board

#9 Post by Mortimal »

good for u -_-
Please use pin function for uploading your file contents!

palancho
Human
Human
Posts: 39
Joined: 28 Mar 2017, 03:08
Noob?: Yes

Re: bounty board

#10 Post by palancho »

Mortimal wrote:good for u -_-
Mate but it does not trigger :/

Post Reply