//===== rAthena Script =======================================
//= Bounty Hunter
//===== By: ==================================================
//= Forgot who now.. =/ | Being revised by Mysterious
//===== Current Version: =====================================
//= 1.9
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Place a bounty on a Player while using a SQL Table
//===== Other Information: ===================================
// There's a Ladder included
//===== TODO: ================================================
// - Revise whole script
//===== Additional Comments: =================================
//= v1.0 - First release
//= v1.1 - Removed unneccessary Spacing [Mysterious]
//= v1.2 - Fixed Sentence structures [Mysterious]
//= v1.3 - Fixed massive typos [Mysterious]
//= v1.4 - Reorganized parts [Mysterious]
//= v1.5 - Edited Credits [Mysterious]
//= v1.6 - Organized SQL DB Creation [Mysterious]
//= v1.7 - Fixed more issues [Mysterious]
//= v1.8 - Fixed more spacing [Mysterious]
//= v1.9 - Fixed Sentence structures [Mysterious]
//============================================================
// =========== Create SQL Tables ========
/*
CREATE TABLE IF NOT EXISTS `bountyladder` (`char_id` int(10) unsigned NOT NULL default '0',`name` varchar(255) NOT NULL,`earned` int(10) unsigned NOT NULL default '0',`assasinated` int(10) unsigned NOT NULL default '0',`target1` varchar(255) NOT NULL,`target2` varchar(255) NOT NULL,`target3` varchar(255) NOT NULL,PRIMARY KEY (`char_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `bountys` (`char_id` bigint(20) unsigned NOT NULL,`name` varchar(255) NOT NULL,`bounty` bigint(20) unsigned NOT NULL,`onoff` tinyint(4) unsigned NOT NULL default '0',`des` varchar(255) NOT NULL,`reason` varchar(255) default NULL,`id` bigint(20) unsigned default '0',`basexp` bigint(20) unsigned NOT NULL,`jobxp` bigint(20) unsigned NOT NULL,`itemid` bigint(20) unsigned NOT NULL,`itemat` bigint(20) unsigned NOT NULL,PRIMARY KEY (`char_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;
/*
// ======================================
prontera,144,144,4 script Bounty Hunter 65,{
// =========== Settings ==========
set nn$,"[ Bounty Hunter ]"; //Name of NPC
set $mingm,40; //Minimum GM level to access NPC and change settings Note: You can set 'getgmlevel' to 'getgroupid' as well.
// ===============================
// Do not remove this. This is used to prevent SQL Error.
query_sql ("INSERT bountyladder (char_id,name,earned,assasinated,target1,target2,target3) VALUES ("+getcharid(0)+",'"+strcharinfo(0)+"',0,0,'Empty','Empty','Empty') ON DUPLICATE KEY UPDATE char_id="+getcharid(0)+"");
// Start of Main Script
mes nn$;
mes "Hello there "+strcharinfo(0)+"! What would you like to do?";
if (getgmlevel() >= $mingm) {
menu "- Set a Bounty",L_B,"- View Ladder",L_tl,"- Staff Menu",L_GM;
}
menu "- Set a Bounty",L_B,"- View Ladder",L_tl;
close;
end;
//Players will set a Bounty or view whose a Bounty
L_B:
next;
mes nn$;
mes "Order by:";
menu "Zeny",-,"Name",L_BN,"ID",L_BI,"Search",L_Sb;
query_sql ("SELECT count(name) FROM bountys",.@rows);
next;
mes nn$;
mes "Explantation: ^DF0101ID^000000# ^FA5858Name^000000 Bounty";
next;
set .@i,-1;
query_sql ("SELECT name,bounty,id FROM bountys WHERE onoff=1 ORDER BY bounty DESC LIMIT "+.@rows+"",@name$,@bounty,.@id);
while (.@i < .@rows-1) {
set .@i,.@i + 1;
mes "^DF0101"+.@id[.@i]+"^000000# ^FA5858"+@name$[.@i]+"^000000 "+@bounty[.@i]+"";
}
mes " ";
mes "Input the Characters ID you want to set as a Target or read information about:";
input .@ida;
if (query_sql ("SELECT name FROM bountys WHERE id="+.@ida+"") == 0) {
next;
mes nn$;
mes "Sorry, it seems I couldn't find "+.@ida+" ID.";
close;
end;
}
menu "- Read Info",-,"- Set as a Target",L_ST;
query_sql ("SELECT name,bounty,id,des,reason,basexp,jobexp,itemid,itemat FROM bountys WHERE id="+.@ida+"",@name$,@bounty,.@id,@des$,@reason$,@bxp,@jxp,@iid,@iat);
next;
mes "^04B404Bounty ID^000000: "+.@id+"";
mes "^04B404Name^000000: "+@name$+"";
mes "^04B404Bounty^000000: "+@bounty+"";
mes "^04B404Reason^000000: "+@reason$+"";
mes "^04B404Description^000000: "+@des$+"";
mes "^04B404BaseExp^000000: "+@bxp+"";
mes "^04B404JobExp^000000: "+@jxp+"";
mes "^04B404Itemname(ID)^000000: "+getitemname(@iid)+"("+@iid+")";
mes "^04B404Itemamount^000000: "+@iat+"";
close;
end;
L_BN:
query_sql ("SELECT count(name) FROM bountys",.@rows);
next;
mes nn$;
mes "Explantation: ^DF0101ID^000000# ^FA5858Name^000000 Bounty";
next;
set .@i,-1;
query_sql ("SELECT name,bounty,id FROM bountys WHERE onoff=1 ORDER BY name ASC LIMIT "+.@rows+"",@name$,@bounty,.@id);
while (.@i < .@rows-1) {
set .@i,.@i + 1;
mes "^DF0101"+.@id[.@i]+"^000000# ^FA5858"+@name$[.@i]+"^000000 "+@bounty[.@i]+"";
}
mes " ";
mes "Input the Characters ID you want to set as a Target or read information about:";
input .@ida;
if (query_sql ("SELECT name FROM bountys WHERE id="+.@ida+"") == 0) {
next;
mes nn$;
mes "Sorry, but it seems I can't find "+.@ida+" ID.";
close;
end;
}
menu "- Read Info",-,"- Set as a Target",L_ST;
query_sql ("SELECT name,bounty,id,des,reason,basexp,jobexp,itemid,itemat FROM bountys WHERE id="+.@ida+"",@name$,@bounty,.@id,@des$,@reason$,@bxp,@jxp,@iid,@iat);
next;
mes "^04B404Bounty ID^000000: "+.@id+"";
mes "^04B404Name^000000: "+@name$+"";
mes "^04B404Bounty^000000: "+@bounty+"";
mes "^04B404Reason^000000: "+@reason$+"";
mes "^04B404Description^000000: "+@des$+"";
mes "^04B404BaseExp^000000: "+@bxp+"";
mes "^04B404JobExp^000000: "+@jxp+"";
mes "^04B404Itemname(ID)^000000: "+getitemname(@iid)+"("+@iid+")";
mes "^04B404Itemamount^000000: "+@iat+"";
close;
end;
L_BI:
query_sql ("SELECT count(name) FROM bountys",.@rows);
next;
mes nn$;
mes "Explantation: ^DF0101ID^000000# ^FA5858Name^000000 Bounty";
next;
set .@i,-1;
query_sql ("SELECT name,bounty,id FROM bountys WHERE onoff=1 ORDER BY id ASC LIMIT "+.@rows+"",@name$,@bounty,.@id);
while (.@i < .@rows-1) {
set .@i,.@i + 1;
mes "^DF0101"+.@id[.@i]+"^000000# ^FA5858"+@name$[.@i]+"^000000 "+@bounty[.@i]+"";
}
mes " ";
mes "Input the Characters ID you want to set as a Target or read information about:";
input .@ida;
if (query_sql ("SELECT name FROM bountys WHERE id="+.@ida+"") == 0) {
next;
mes nn$;
mes "Sorry, but I couldn't find "+.@ida+" ID.";
close;
end;
}
menu "- Read Info",-,"- Set as a Target",L_ST;
query_sql ("SELECT name,bounty,id,des,reason,basexp,jobexp,itemid,itemat FROM bountys WHERE id="+.@ida+"",@name$,@bounty,.@id,@des$,@reason$,@bxp,@jxp,@iid,@iat);
next;
mes "^04B404Bounty ID^000000: "+.@id+"";
mes "^04B404Name^000000: "+@name$+"";
mes "^04B404Bounty^000000: "+@bounty+"";
mes "^04B404Reason^000000: "+@reason$+"";
mes "^04B404Description^000000: "+@des$+"";
mes "^04B404BaseExp^000000: "+@bxp+"";
mes "^04B404JobExp^000000: "+@jxp+"";
mes "^04B404Itemname(ID)^000000: "+getitemname(@iid)+"("+@iid+")";
mes "^04B404Itemamount^000000: "+@iat+"";
close;
end;
L_sb:
next;
mes nn$;
mes "Would you like to search by..";
menu "- Name",-,"- ID",L_stlid;
next;
mes "Please input their Name:";
input @sname$;
if (query_sql("SELECT id FROM bountys WHERE name='"+escape_sql(@sname$)+"'") == 0) {
next;
mes nn$;
mes "Sorry, but I couldn't find "+@sname$+"!";
close;
end;
}
next;
mes nn$;
mes "I was able to find "+@sname$+". What would you like to do?";
set @search,1;
menu "- Read Info",-,"- Set as a Target",L_STS;
query_sql ("SELECT name,bounty,id,des,reason,basexp,jobexp,itemid,itemat FROM bountys WHERE name='"+escape_sql(@sname$)+"'",@name$,@bounty,.@id,@des$,@reason$,@bxp,@jxp,@iid,@iat);
next;
mes "^04B404Bounty ID^000000: "+.@id+"";
mes "^04B404Name^000000: "+@name$+"";
mes "^04B404Bounty^000000: "+@bounty+"";
mes "^04B404Reason^000000: "+@reason$+"";
mes "^04B404Description^000000: "+@des$+"";
mes "^04B404BaseExp^000000: "+@bxp+"";
mes "^04B404JobExp^000000: "+@jxp+"";
mes "^04B404Itemname(ID)^000000: "+getitemname(@iid)+"("+@iid+")";
mes "^04B404Itemamount^000000: "+@iat+"";
close;
end;
L_STS:
next;
query_sql ("SELECT name FROM bountys WHERE name='"+escape_sql(@sname$)+"'",@name$);
if (@name$ == strcharinfo(0)) {
mes nn$;
mes "Sorry, but you can't set yourself.";
close;
end;
}
query_sql ("SELECT name FROM bountys WHERE name='"+escape_sql(@sname$)+"'");
query_sql ("SELECT target1,target2,target3 FROM bountyladder WHERE char_id="+getcharid(0)+"",@t1$,@t2$,@t3$);
if (@t1$ == "") {
query_sql ("UPDATE bountyladder SET target1='Empty'");
}
if (@t2$ == "") {
query_sql ("UPDATE bountyladder SET target2='Empty'");
}
if (@t3$ == "") {
query_sql ("UPDATE bountyladder SET target3='Empty'");
}
query_sql ("SELECT target1,target2,target3 FROM bountyladder WHERE char_id="+getcharid(0)+"",@t1$,@t2$,@t3$);
menu ""+@t1$+"",-,""+@t2$+"",L_STS2,""+@t3$+"",L_STS3;
if (@t1$ != "Empty") {
mes nn$;
mes "Please choose an empty target slot.";
close;
end;
}
if (@name$ == @t2$) {
mes nn$;
mes "Sorry, but you can only set one target.";
close;
end;
}
if (@name$ == @t3$) {
mes nn$;
mes "Sorry, but you can only set one target.";
close;
end;
}
query_sql ("SELECT name FROM bountys WHERE name='"+escape_sql(@sname$)+"'",@name$);
query_sql ("UPDATE bountyladder SET target1='"+@name$+"' WHERE char_id="+getcharid(0)+"");
query_sql ("SELECT target1 FROM bountyladder WHERE char_id="+getcharid(0)+"",@target1$);
next;
mes nn$;
mes "Target 1: "+@target1$+"";
close;
end;
L_STS2:
if (@t2$ != "Empty") {
mes nn$;
mes "Please choose an empty slot.";
close;
end;
}
query_sql ("SELECT name FROM bountys WHERE name='"+escape_sql(@sname$)+"'",@name$);
query_sql ("UPDATE bountyladder SET target2='"+@name$+"' WHERE char_id="+getcharid(0)+"");
query_sql ("SELECT target2 FROM bountyladder WHERE char_id="+getcharid(0)+"",@target2$);
mes nn$;
mes "Target 2: "+@target2$+"";
close;
end;
L_STS3:
if (@t3$ != "Empty") {
mes nn$;
mes "Please choose an empty slot.";
close;
end;
}
query_sql ("SELECT name FROM bountys WHERE name='"+escape_sql(@sname$)+"'",@name$);
query_sql ("UPDATE bountyladder SET target3='"+@name$+"' WHERE char_id="+getcharid(0)+"");
query_sql ("SELECT target3 FROM bountyladder WHERE char_id="+getcharid(0)+"",@target3$);
mes nn$;
mes "Target 3: "+@target3$+"";
close;
end;
L_stlid:
next;
mes nn$;
mes "Please input an ID:";
input .@ida;
if (query_sql ("SELECT name FROM bountys WHERE id="+.@ida+"") == 0) {
next;
mes nn$;
mes "Sorry, but I couldn't find "+.@ida+" ID.";
close;
end;
}
menu "- Read Info",-,"- Set as a Target",L_ST;
query_sql ("SELECT name,bounty,id,des,reason,basexp,jobexp,itemid,itemat FROM bountys WHERE id="+.@ida+"",@name$,@bounty,.@id,@des$,@reason$,@bxp,@jxp,@iid,@iat);
next;
mes "^04B404Bounty ID^000000: "+.@id+"";
mes "^04B404Name^000000: "+@name$+"";
mes "^04B404Bounty^000000: "+@bounty+"";
mes "^04B404Reason^000000: "+@reason$+"";
mes "^04B404Description^000000: "+@des$+"";
mes "^04B404BaseExp^000000: "+@bxp+"";
mes "^04B404JobExp^000000: "+@jxp+"";
mes "^04B404Itemname(ID)^000000: "+getitemname(@iid)+"("+@iid+")";
mes "^04B404Itemamount^000000: "+@iat+"";
close;
end;
L_ST:
next;
query_sql ("SELECT name FROM bountys WHERE id="+.@ida+"",@name$);
if (@name$ == strcharinfo(0)) {
mes nn$;
mes "You don't can target yourself.";
close;
end;
}
query_sql ("SELECT name FROM bountys WHERE id="+.@ida+"");
query_sql ("SELECT target1,target2,target3 FROM bountyladder WHERE char_id="+getcharid(0)+"",@t1$,@t2$,@t3$);
if (@t1$ == "") {
query_sql ("UPDATE bountyladder SET target1='Empty'");
}
if (@t2$ == "") {
query_sql ("UPDATE bountyladder SET target2='Empty'");
}
if (@t3$ == "") {
query_sql ("UPDATE bountyladder SET target3='Empty'");
}
query_sql ("SELECT target1,target2,target3 FROM bountyladder WHERE char_id="+getcharid(0)+"",@t1$,@t2$,@t3$);
menu ""+@t1$+"",-,""+@t2$+"",L_ST2,""+@t3$+"",L_ST3;
if (@t1$ != "Empty") {
mes nn$;
mes "This target slot is in using,choose an empty target slot.";
close;
end;
}
if (@name$ == @t2$) {
mes nn$;
mes "You only once can set target 1 character.";
close;
end;
}
if (@name$ == @t3$) {
mes nn$;
mes "You only once can set target 1 character.";
close;
end;
}
query_sql ("SELECT name FROM bountys WHERE id="+.@ida+"",@name$);
query_sql ("UPDATE bountyladder SET target1='"+@name$+"' WHERE char_id="+getcharid(0)+"");
query_sql ("SELECT target1 FROM bountyladder WHERE char_id="+getcharid(0)+"",@target1$);
next;
mes nn$;
mes "Target 1: "+@target1$+"";
close;
end;
L_ST2:
if (@t2$ != "Empty") {
mes nn$;
mes "This target slot is in using,choose an empty target slot.";
close;
end;
}
query_sql ("SELECT name FROM bountys WHERE id="+.@ida+"",@name$);
query_sql ("UPDATE bountyladder SET target2='"+@name$+"' WHERE char_id="+getcharid(0)+"");
query_sql ("SELECT target2 FROM bountyladder WHERE char_id="+getcharid(0)+"",@target2$);
mes nn$;
mes "Target 2: "+@target2$+"";
close;
end;
L_ST3:
if (@t3$ != "Empty") {
mes nn$;
mes "This target slot is in using,choose an empty target slot.";
close;
end;
}
query_sql ("SELECT name FROM bountys WHERE id="+.@ida+"",@name$);
query_sql ("UPDATE bountyladder SET target3='"+@name$+"' WHERE char_id="+getcharid(0)+"");
query_sql ("SELECT target3 FROM bountyladder WHERE char_id="+getcharid(0)+"",@target3$);
mes nn$;
mes "Target 3: "+@target3$+"";
close;
end;
// Top of the list
L_tl:
mes nn$;
mes "Order by:";
menu "Earned Zeny",-,"Name",TL_n,"Assasinated players",TL_k,"Search",L_stl;
query_sql ("SELECT count(name) FROM bountyladder",.@rows);
next;
mes nn$;
mes "Explantation:";
mes "^DF0101|Positison|^FF0000 |Name| ^FA5858|earned zeny|^000000 |assasinated .. player|";
set .@i,-1;
set .@o,0;
query_sql ("SELECT name,earned,assasinated FROM bountyladder ORDER BY earned DESC LIMIT "+.@rows+"",@name$,@eazeny,@kills);
while (.@i < .@rows-1) {
set .@i,.@i+1;
set .@o,.@o+1;
mes "^DF0101"+.@o+"^000000 ^FF0000"+@name$[.@i]+" ^FA5858"+@eazeny[.@i]+"^000000 "+@kills[.@i]+"";
}
close;
end;
TL_k:
query_sql ("SELECT count(name) FROM bountyladder",.@rows);
next;
mes nn$;
mes "Explantation:";
mes "^DF0101|Positison|^FF0000 |Name| ^FA5858|earned zeny| |assasinated .. player|^000000";
set .@i,-1;
set .@o,0;
query_sql ("SELECT name,earned,assasinated FROM bountyladder ORDER BY assasinated DESC LIMIT "+.@rows+"",@name$,@eazeny,@kills);
while (.@i < .@rows-1) {
set .@i,.@i+1;
set .@o,.@o+1;
mes "^DF0101"+.@o+"^000000 ^FF0000"+@name$[.@i]+" ^FA5858"+@eazeny[.@i]+" "+@kills[.@i]+"";
}
close;
end;
TL_n:
query_sql ("SELECT count(name) FROM bountyladder",@rows);
next;
mes nn$;
mes "Explantation:";
mes "^DF0101|Positison|^FF0000 |Name| ^FA5858|earned zeny|^000000 |assasinated .. player|";
set .@i,-1;
set .@o,0;
query_sql ("SELECT name,earned,assasinated FROM bountyladder ORDER BY name DESC LIMIT "+.@rows+"",@name$,@eazeny,@kills);
while (.@i < .@rows-1) {
set .@i,.@i+1;
set .@o,.@o+1;
mes "^DF0101"+.@o+"^000000 ^FF0000"+@name$[.@i]+" ^FA5858"+@eazeny[.@i]+"^000000 "+@kills[.@i]+"";
}
close;
end;
L_stl:
next;
mes nn$;
mes "Input the searchable name:";
input @sname$;
if (query_sql("SELECT name FROM bountyladder WHERE name='"+escape_sql(@sname$)+"'") == 0) {
next;
mes nn$;
mes "Sorry i'm not found "+@sname$+"";
}
next;
mes nn$;
query_sql ("SELECT name,earned,assasinated FROM bountyladder WHERE name='"+escape_sql(@sname$)+"'",@name$,@eazeny,@kills);
mes "^FF0000"+@name$[0]+" ^FA5858"+@eazeny[0]+"^000000 "+@kills[0]+"";
close;
end;
// Staff Menu
L_GM:
next;
mes nn$;
mes "Hey there! What would you like to do?";
menu "- Add bounty",GM_addbounty,"- Edit bounty",GM_edit,"- Delete bounty",GM_delbounty,"- Delete all bounties",GM_delallb;
GM_delbounty:
query_sql ("SELECT count(name) FROM bountys",.@rows);
next;
mes nn$;
mes "Explantation: ^DF0101ID^000000# ^FA5858Name^000000 Bounty";
next;
set .@i,-1;
query_sql ("SELECT name,bounty,id FROM bountys WHERE onoff=1 ORDER BY id DESC LIMIT "+.@rows+"",@name$,@bounty,.@id);
while (.@i < .@rows-1) {
set .@i,.@i + 1;
mes "^DF0101"+.@id[.@i]+"^000000# ^FA5858"+@name$[.@i]+"^000000 "+@bounty[.@i]+"";
}
mes " ";
mes "Please input the ID you wish to delete:";
input .@ida;
if (query_sql ("SELECT name FROM bountys WHERE id="+.@ida+"") == 0) {
next;
mes nn$;
mes "Sorry i'm not found "+.@ida+" Bounty ID.";
close;
end;
}
query_sql ("SELECT name,bounty,id,des,reason,basexp,jobexp,itemid,itemat FROM bountys WHERE id="+.@ida+"",@name$,@bounty,.@id,@des$,@reason$,@bxp,@jxp,@iid,@iat);
next;
mes "^04B404Bounty ID^000000: "+.@id+"";
mes "^04B404Name^000000: "+@name$+"";
mes "^04B404Bounty^000000: "+@bounty+"";
mes "^04B404Reason^000000: "+@reason$+"";
mes "^04B404Description^000000: "+@des$+"";
mes "^04B404BaseExp^000000: "+@bxp+"";
mes "^04B404JobExp^000000: "+@jxp+"";
mes "^04B404Itemname(ID)^000000: "+getitemname(@iid)+"("+@iid+")";
mes "^04B404Itemamount^000000: "+@iat+"";
next;
mes "Please choose a name:";
input @verify$;
if (@verify$ != @name$) {
next;
mes nn$;
mes "Sorry, but that's a wrong name.";
close;
end;
}
if (@verify$ == @name$) {
next;
mes nn$;
mes "Thank you.";
query_sql ("DELETE FROM bountys WHERE id="+.@ida+"");
mes "Name: "+@verify$+" has been deleted.";
close;
end;
}
GM_delallb:
next;
mes nn$;
mes "Are you sure you want to delete all bounties?";
menu "- Yes",-,"- No",L_no;
next;
mes nn$;
query_sql ("DELETE FROM bountys");
mes "All bounties have been deleted.";
close;
end;
GM_edit:
query_sql ("SELECT count(name) FROM bountys",.@rows);
next;
mes nn$;
mes "Explantation: ^DF0101ID^000000# ^FA5858Name^000000 Bounty";
next;
set .@i,-1;
query_sql ("SELECT name,bounty,id FROM bountys WHERE onoff=1 ORDER BY id DESC LIMIT "+.@rows+"",@name$,@bounty,.@id);
while (.@i < .@rows-1) {
set .@i,.@i + 1;
mes "^DF0101"+.@id[.@i]+"^000000# ^FA5858"+@name$[.@i]+"^000000 "+@bounty[.@i]+"";
}
mes " ";
mes "Please input the ID of the Bounty you wish to edit:";
input .@ida;
if (query_sql ("SELECT name FROM bountys WHERE id="+.@ida+"") == 0) {
next;
mes nn$;
mes "Sorry, but I couldn't find "+.@ida+" ID.";
close;
end;
}
query_sql ("SELECT name,bounty,id,des,reason,basexp,jobexp,itemid,itemat FROM bountys WHERE id="+.@ida+"",@name$,@bounty,.@id,@des$,@reason$,@bxp,@jxp,@iid,@iat);
next;
mes "^04B404Bounty ID^000000: "+.@id+"";
mes "^04B404Name^000000: "+@name$+"";
mes "^04B404Bounty^000000: "+@bounty+"";
mes "^04B404Reason^000000: "+@reason$+"";
mes "^04B404Description^000000: "+@des$+"";
mes "^04B404BaseExp^000000: "+@bxp+"";
mes "^04B404JobExp^000000: "+@jxp+"";
mes "^04B404Itemname(ID)^000000: "+getitemname(@iid)+"("+@iid+")";
mes "^04B404Itemamount^000000: "+@iat+"";
mes " ";
mes "What would you like to change?";
menu "- Bounty",GM_editbounty,"- Reason",GM_editreason,"- Description",GM_editdes,"- BaseExp",GM_editbexp,"- JobExp",GM_editjexp,"- Item ID",GM_edititemid,"- Item Amount",GM_edititemat,"- Change Settings Together",-;
next;
mes "Now input the bounty (How much Zeny):";
mes "Input '0' if you don't want Zeny as a reward.";
input @r;
next;
mes "Now input the reason:";
input @rea$;
mes "Now input the description:";
input @d$;
next;
mes "Now input the BaseExp:";
mes "Note: Please input ' 0 ' if you don't want to give BaseEXP as a reward.";
input @bxp;
next;
mes "Now input the JobExp:";
mes "Note: Please input ' 0 ' if you don't want to give JobEXP as a reward.";
input @jxp;
next;
mes "Now input the itemid:";
mes "Note: Please input less than ' 541 ' if you don't want to give an Item as a reward.";
input @iid;
next;
if (@iid >= 1) {
mes "How much should I give out of "+@iid+"?";
mes "If you input ' 0 ', I'll automatically give out 1.";
input @iat;
if (@iat == 0) {set @iat,1;
next;
}
}
mes "^04B404Bounty ID^000000: "+.@id+"";
mes "^04B404Name^000000: "+@name$+"";
mes "^04B404Bounty^000000: "+@r+"";
mes "^04B404Reason^000000: "+@rea$+"";
mes "^04B404Description^000000: "+@d$+"";
mes "^04B404BaseExp^000000: "+@bxp$+"";
mes "^04B404JobExp^000000: "+@jxp+"";
mes "^04B404Itemname(ID)^000000: "+getitemname(@iid)+"("+@iid+")";
mes "^04B404DItemamount^000000: "+@iat+"";
mes " ";
mes "Is everything fine?";
menu "- Yes",-,"- No",L_no;
query_sql ("UPDATE bountys SET des='"+@d$+"',reason='"+@rea$+"',bounty="+@r+",basexp="+@bxp+",jobexp="+@jxp+",itemid="+@iid+",itemat="+@iat+" WHERE id="+.@ida+"");
close;
end;
GM_editbounty:
next;
mes nn$;
mes "Now input the bounty (How much Zeny):";
mes "Please input '0' if you dont to set Zeny as a reward.";
input @r;
mes "^04B404Bounty^000000: "+@r+"";
mes nn$;
mes "Is this okay?";
menu "Yes",-,"No",L_no;
query_sql ("UPDATE bountys SET bounty="+@r+" WHERE id="+.@ida+"");
close;
end;
GM_editreason:
next;
mes nn$;
mes "Please input a reason:";
input @rea$;
mes "^04B404Reason^000000: "+@rea$+"";
mes nn$;
mes "Is this okay?";
menu "Yes",-,"No",L_no;
query_sql ("UPDATE bountys SET reason="+@rea$+" WHERE id="+.@ida+"");
close;
end;
GM_editdes:
next;
mes nn$;
mes "Please enter a description:";
input @des$;
mes "^04B404Description^000000: "+@des$+"";
mes nn$;
mes "Is this okay?";
menu "Yes",-,"No",L_no;
query_sql ("UPDATE bountys SET des="+@des$+" WHERE id="+.@ida+"");
close;
end;
GM_editbexp:
next;
mes nn$;
mes "Please input your desired BaseEXP:";
input @bexp;
mes "^04B404BaseExp^000000: "+@bexp+"";
mes nn$;
mes "Is this okay?";
menu "Yes",-,"No",L_no;
query_sql ("UPDATE bountys SET basexp="+@bexp+" WHERE id="+.@ida+"");
close;
end;
GM_editjexp:
next;
mes nn$;
mes "Please input your desired JobEXP:";
input @jexp;
mes "^04B404JobExp^000000: "+@jexp+"";
mes nn$;
mes "Is this okay?";
menu "Yes",-,"No",L_no;
query_sql ("UPDATE bountys SET jobxp="+@jexp+" WHERE id="+.@ida+"");
close;
end;
GM_edititemid:
next;
mes nn$;
mes "Please input your desired Item:";
input @iid;
mes "^04B404Itemname(ID)^000000: "+@iid+"";
mes nn$;
mes "Is this okay?";
menu "Yes",-,"No",L_no;
query_sql ("UPDATE bountys SET itemid="+@iid+" WHERE id="+.@ida+"");
close;
end;
GM_edititemat:
next;
mes nn$;
mes "How much of the item would you like to give?";
input @itemat;
mes "^04B404Iteamamount^000000: "+@itemat+"";
mes nn$;
mes "Is this okay?";
menu "Yes",-,"No",L_no;
query_sql ("UPDATE bountys SET itemat="+@itemat+" WHERE id="+.@ida+"");
close;
end;
GM_addbounty:
next;
mes nn$;
mes "^FF0000WARNING^000000: Please do not add quotations in your around the characters name!";
next;
mes "Insert his/her name:";
input @pname$;
if (query_sql ("SELECT name FROM bountys WHERE name='"+escape_sql(@pname$)+"'") == 0) {
if (query_sql ("SELECT char_id FROM `char` WHERE name='"+escape_sql(@pname$)+"'") == 0) {
next;
mes nn$;
mes "Sorry, I couldn't find ^04B404"+@pname$+"^000000.";
close;
end;
}
next;
mes "Now input the bounty (How much Zeny):";
mes "Input 0 if you don't want zeny as a reward.";
input @r;
next;
mes "Now input the reason:";
input @rea$;
mes "Now input the description:";
input @d$;
next;
mes "Now input the BaseExp.";
mes "Input 0 if you don't want BaseExp reward.";
input @bxp;
next;
mes "Now input the JobExp.";
mes "Input 0 if you don't want JobExp reward.";
input @jxp;
next;
mes "Now input the itemid.";
mes "Input lesser than 501 if you don't want Item Reward reward.";
input @iid;
next;
if (@iid >= 501) {
mes "Now input the reward amount of "+@iid+" itemid.";
mes "If you input 0 it's automatically setted to 1.";
input @iat;
if (@iat == 0) {set @iat,1;
}
next;
}
query_sql ("SELECT MAX(id) FROM bountys",.@ik);
set .@ikk,.@ik+1;
mes "^04B404Bounty ID^000000: "+.@ikk+"";
mes "^04B404Name^000000: "+@pname$+"";
mes "^04B404Bounty^000000: "+@r+"";
mes "^04B404Reason^000000: "+@rea$+"";
mes "^04B404Description^000000: "+@d$+"";
mes "^04B404BaseExp^000000: "+@bxp+"";
mes "^04B404JobExp^000000: "+@jxp+"";
mes "^04B404Itemname(ID)^000000: "+getitemname(@iid)+"("+@iid+")";
mes "^04B404Itemamount^000000: "+@iat+"";
mes " ";
mes nn$;
mes "Is this fine?";
menu "Yes",-,"No",GM_addbountyno;
query_sql ("SELECT char_id FROM `char` WHERE name='"+escape_sql(@pname$)+"'",@cid);
query_sql ("INSERT bountys (char_id,name,bounty,onoff,des,reason,id,basexp,jobxp,itemid,itemat) VALUES ("+@cid+",'"+escape_sql(@pname$)+"',"+@r+",1,'"+escape_sql(@d$)+"','"+escape_sql(@rea$)+"',"+.@ikk+","+@bxp+","+@jxp+","+@iid+","+@iat+")");
close;
end;
}
next;
mes nn$;
mes "Sorry there is a bounty on "+@pname$+"'s head.";
close;
end;
GM_maxzeny:
mes nn$;
mes "What is your current Maximum of Zeny in the server?";
input .@new;
if (.@new == 0) {
next;
mes nn$;
mes "You need to input a number higher than 0!";
next;
goto GM_maxzeny;
}
set $maxzeny,.@new;
goto L_GM;
GM_addbountyno:
next;
mes nn$;
mes "Then try again.";
goto GM_addbounty;
end;
L_no:
close;
end;
// Labels
OnPCKillEvent:
set @name2$,rid2name(killedrid);
query_sql ("SELECT bounty,name,basexp,jobxp,itemid,itemat FROM bountys WHERE name='"+escape_sql(@name2$)+"'",@bountyr,@name$,@bexp,@jexp,@iid,@iamount);
query_sql ("SELECT target1,target2,target3 FROM bountyladder WHERE char_id="+getcharid(0)+"",@t1$,@t2$,@t3$);
if (@t1$ == @name2$) {
if (@bexp >= 1) {dispbottom "You have earned "+@bexp+" BaseExp.";set JobExp,JobExp+@jexp;}
if (@jexp >= 1) {dispbottom "You have earned "+@jexp+" JobExp.";set BaseExp,BaseExp+@bexp;}
if (@iid >= 501) {getitem @iid,@iamount;dispbottom "You have got "+@iamount+" of "+getitemname(@iid)+"."; }
if (@bountyr >= 1) {dispbottom "You have killed "+@name$+" and you have got "+@bountyr+" Zeny.";set Zeny,Zeny+@bountyr;}
query_sql ("UPDATE bountyladder SET target1='Empty'");
query_sql ("DELETE FROM bountys WHERE name='"+escape_sql(@name2$)+"'");
query_sql ("UPDATE bountyladder SET earned=earned+"+@bountyr+" WHERE char_id="+getcharid(0)+"");
query_sql ("UPDATE bountyladder SET assasinated=assasinated+1 WHERE char_id="+getcharid(0)+"");
announce "[Bounty Hunter]:"+@name$+" killed by "+strcharinfo(0)+".",bc_all;
end;
}
else if (@t2$ == @name2$) {
if (@bexp >= 1) {dispbottom "You have earned "+@bexp+" BaseExp.";set JobExp,JobExp+@jexp;}
if (@jexp >= 1) {dispbottom "You have earned "+@jexp+" JobExp.";set BaseExp,BaseExp+@bexp;}
if (@iid >= 501) {getitem @iid,@iamount;dispbottom "You have got "+@iamount+" of "+getitemname(@iid)+"."; }
if (@bountyr >= 1) {dispbottom "You have killed "+@name$+" and you have got "+@bountyr+" Zeny.";set Zeny,Zeny+@bountyr;}
query_sql ("DELETE FROM bountys WHERE name='"+escape_sql(@name2$)+"'");
query_sql ("UPDATE bountyladder SET earned=earned+"+@bountyr+" WHERE char_id="+getcharid(0)+"");
query_sql ("UPDATE bountyladder SET assasinated=assasinated+1 WHERE char_id="+getcharid(0)+"");
query_sql ("UPDATE bountyladder SET target2='Empty'");
announce "[Bounty Hunter]:"+@name$+" killed by "+strcharinfo(0)+".",bc_all;
}
else if (@t3$ == @name2$) {
if (@bexp >= 1) {dispbottom "You have earned "+@bexp+" BaseExp.";set JobExp,JobExp+@jexp;}
if (@jexp >= 1) {dispbottom "You have earned "+@jexp+" JobExp.";set BaseExp,BaseExp+@bexp;}
if (@iid >= 501) {getitem @iid,@iamount;dispbottom "You have got "+@iamount+" of "+getitemname(@iid)+"."; }
if (@bountyr >= 1) {dispbottom "You have killed "+@name$+" and you have got "+@bountyr+" Zeny.";set Zeny,Zeny+@bountyr;}
dispbottom "You have killed "+@name$+" and you have got "+@bountyr+" Zeny.";
query_sql ("DELETE FROM bountys WHERE name='"+escape_sql(@name2$)+"'");
query_sql ("UPDATE bountyladder SET earned=earned+"+@bountyr+" WHERE char_id="+getcharid(0)+"");
query_sql ("UPDATE bountyladder SET assasinated=assasinated+1 WHERE char_id="+getcharid(0)+"");
query_sql ("UPDATE bountyladder SET target3='Empty'");
announce "[Bounty Hunter]:"+@name$+" killed by "+strcharinfo(0)+".",bc_all;
}
else if (@t1 != @enemy$ & @t2 != @enemy$ & @t3 != @enemy$) {
end;
}
// End Bracket
}