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
Mortimal
Developers
Developers
Posts: 389
Joined: 01 Nov 2008, 15:31
Noob?: No

Re: bounty board

#11 Post by Mortimal »

maybe because of this:

Mortimal wrote:This is incomplete custom macro...
Please use pin function for uploading your file contents!

NguxDarkangelx
Noob
Noob
Posts: 1
Joined: 12 May 2017, 23:21
Noob?: Yes

Re: bounty board

#12 Post by NguxDarkangelx »

Hi im new to openkore, and must say im completely lost on how to write macros or plugins, but if someone could help me figure out how and help me get one to work to repeat quests like the bounty boards it would be greatly appreciated

SkylorD
Moderators
Moderators
Posts: 1163
Joined: 16 Dec 2011, 02:53
Noob?: Yes
Location: Brazil

Re: bounty board

#13 Post by SkylorD »

Read the plugin section. Use the search.
Read the wiki.


How to create plugins :

http://openkore.com/index.php/How_to_wr ... r_OpenKore

How to create macros :

http://openkore.com/index.php/Macro_plugin
Learn rules

dao100
Noob
Noob
Posts: 1
Joined: 30 Apr 2011, 14:36
Noob?: Yes

Re: bounty board

#14 Post by dao100 »

traplord01 wrote: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...


How should I put openkore folder which? i am newbie please help me...

Post Reply