Openkore.com

OpenKore Forums
It is currently 21 Aug 2017, 04:22

All times are UTC - 5 hours [ DST ]





Post new topic Reply to topic  [ 14 posts ]  Go to page Previous  1, 2
Author Message
 Post subject: Re: bounty board
PostPosted: 19 Apr 2017, 04:29 
Offline
Developers
Developers

Joined: 01 Nov 2008, 15:31
Posts: 288
maybe because of this:

Mortimal wrote:
This is incomplete custom macro...

_________________
Please use pin function for uploading your file contents!


Top
 Profile  
 
 Post subject: Re: bounty board
PostPosted: 12 May 2017, 23:26 
Offline
Noob
Noob

Joined: 12 May 2017, 23:21
Posts: 1
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


Top
 Profile  
 
 Post subject: Re: bounty board
PostPosted: 15 Jun 2017, 16:58 
Offline
Moderators
Moderators
User avatar

Joined: 16 Dec 2011, 02:53
Posts: 1137
Location: Brazil
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

_________________
"'There are three things all wise men fear: the sea in storm, a night with no moon, and the anger of a gentle man.'" :P

Click here and travel to a new world -> Newbies
Read before asking something.
How to connect to private servers


Top
 Profile  
 
 Post subject: Re: bounty board
PostPosted: 30 Jun 2017, 13:10 
Offline
Noob
Noob

Joined: 30 Apr 2011, 14:36
Posts: 4
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...


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 14 posts ]  Go to page Previous  1, 2

All times are UTC - 5 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group