Como funciona?
Bounty System é um script que visa o pvp.
Um player diz o comando /bounty [prize],[nick]. e a partir daí o player que foi colocado em [nick] passa a ser procurado, e o primeiro a matá-lo ganha uma recompensa.
Vamos lá...
Execute os comandos em seu PhpMyAdmin:
CREATE TABLE IF NOT EXISTS `bounty_hunters` (
`id` int(11) NOT NULL auto_increment,
`fp_id` int(11) NOT NULL,
`sp_id` int(11) NOT NULL,
`k_id` int(11) NOT NULL,
`added` int(15) NOT NULL,
`prize` bigint(20) NOT NULL,
`killed` int(11) NOT NULL,
`kill_time` int(15) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Vá em data/creaturescripts/scripts/,e crie um arquivo bounty.lua e cole isto:
function onKill(cid, target)
if isPlayer(target) == TRUE then
pid = cid
pid2 = getPlayerGUID(target)
local result_plr = db.getResult("SELECT * FROM `bounty_hunters` WHERE `sp_id` = "..pid2.." AND `killed` = 0;")
if(result_plr:getID() ~= -1) then
prize = tonumber(result_plr:getDataInt("prize"))
bid = tonumber(result_plr:getDataInt("id"))
result_plr:free()
else
prize = 0
bid = 0
end
if (bid ~= 0 and prize ~= 0 and not(getTileInfo(getCreaturePosition(cid)).pvp)) then
db.executeQuery("UPDATE `bounty_hunters` SET `killed` = 1, `k_id`="..getPlayerGUID(cid)..", `kill_time` = " .. os.time() .. " WHERE `id` = "..bid..";")
doPlayerAddMoney(cid,prize)
doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_ORANGE,"[bounty System]: You killed "..getPlayerName(target).."! You gained the bounty that was put on his/her head!")
doSendMagicEffect(getCreaturePosition(cid), 27)
doBroadcastMessage("[bounty System]: "..getPlayerName(cid).." killed "..getPlayerName(target).." and gained the bounty! ("..prize.." gold)", MESSAGE_EVENT_ADVANCE)
end
end return TRUE
end
Vá em data/creaturescripts/scripts/ e coloque isto em login.lua :
registerCreatureEvent(cid, "Bounty")Vá emdata/talkactions/scripts/ e crie um arquivo tbounty.luafunction onSay(cid, words, param)
if(param == "") then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[bounty System]: Usage: \"!bounty [gold],[nick]\" where gold is at least 10000.")
return TRUE
end
local t = string.explode(param, ",")
if(not t[2]) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[bounty System]: Usage: \"!bounty [gold],[nick]\" where gold is at least 10000.")
return TRUE
end
local sp_id = getPlayerGUIDByName(t[2])
if sp_id == nil then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[bounty System]: You cant put a bounty on imaginary people, your target doesn't exist.")
return TRUE
end local result_plr = db.getResult("SELECT * FROM `bounty_hunters` WHERE `sp_id` = "..sp_id.." AND `killed` = 0;")
if(result_plr:getID() ~= -1) then
is = tonumber(result_plr:getDataInt("sp_id"))
result_plr:free()
else
is = 0
end
prize = tonumber(t[1])
if(prize == nil or prize < 10000) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[bounty System]: Usage: \"!bounty [gold],[nick]\" where gold is at least 10000.")
return TRUE
end
if(prize >= 999999999) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "[bounty System]: Sorry, bounty limit is at 999.9 million gold!")
return TRUE
end if is ~= 0 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "[bounty System]: "..t[2].." has already got a bounty on his/her head.")
return TRUE
end
if doPlayerRemoveMoney(cid, prize) == TRUE then
db.executeQuery("INSERT INTO `bounty_hunters` VALUES (NULL,"..getPlayerGUID(cid)..","..sp_id..",0," .. os.time() .. ","..prize..",0,0);")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "[bounty System]: Bounty on "..t[2].."s head has been added successfully!")
doBroadcastMessage("[bounty System]: A bounty of "..prize.." gold for "..t[2].."s head has been submitted by "..getPlayerName(cid)..". The first one to kill "..t[2].." will get the gold!", MESSAGE_EVENT_ADVANCE)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "[bounty System]: You dont have enough gold!")
end
return 1
end
Vá em data/talkactions/talkactions.xml e coloque:<talkaction words="/bounty;!bounty;!hunt;/hunt" script="tbounty.lua" />Pronto!!!Demonstração:Página (Php)<?mysql_connect("localhost","user","password");mysql_select_db("database");$main_content .= '<P ALIGN=CENTER><br><FONT SIZE=5 COLOR=#CFF00C>How to use...</FONT><br><br><FONT SIZE=2 COLOR=#CFF00C>* !hunt [prize],[nick] :<FONT SIZE=1 COLOR=#FCC33F>Wysyla ogloszenie o huncie dla postaci. Cena w tysiacach.<br>Przyklad: !hunt 100,Infinity</FONT><br></FONT></P><br><br><center><h1>Bounty Hunters</h1></center><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="#505050"><TD CLASS=white width=30%><center><B>Zlecil</B></center></TD><TD CLASS=white width=30%><center><B>Nagroda</B></center></TD><TD CLASS=white width=30%><center><B>Ofiara</B></center></TD><TD CLASS=white width=10%><center><B>Zabity przez</B></center></TD></TR>';$inv = mysql_query("SELECT * FROM `bounty_hunters` ORDER BY `added` DESC");$num = 0;$color=$config['site']['darkborder'];while($tab = mysql_fetch_array($inv)){if($num%2 == 0){$color=$config['site']['darkborder'];}else{$color=$config['site']['lightborder'];}$pid = $tab['fp_id'];$sid = $tab['sp_id'];$kid = $tab['k_id'];$killed = $tab['killed'];$prize = $tab['prize']*1000;if($killed == 0){$kill = '<font color="red">Nobody!</font>';}else{$k = mysql_query("SELECT * FROM `players` WHERE `id` = ".$kid."");$k1 = mysql_fetch_array($k);$kill_name = $k1['name'];$kill = '<a href="index.php?subtopic=characters&name='.$kill_name.'">'.$kill_name.'</a>';}$f = mysql_query("SELECT * FROM `players` WHERE `id` = ".$pid."");$f1 = mysql_fetch_array($f);$s = mysql_query("SELECT * FROM `players` WHERE `id` = ".$sid."");$s1 = mysql_fetch_array($s);$fn = $f1['name'];$sn = $s1['name'];$main_content .= '<TR BGCOLOR="'.$color.'"><TD><center><b><a href="index.php?subtopic=characters&name='.$fn.'">'.$fn.'</a></b></center></TD><TD><center><b>'.$prize.' gp</b></center></TD><TD><center><b><a href="index.php?subtopic=characters&name='.$sn.'">'.$sn.'</a></b></center></TD><TD><center><b>'.$kill.'</b></center></TD></TR>';$num++;}if($num == 0){$main_content.='<TR BGCOLOR="'.$color.'"><TD colspan=4><center>Currently there are not any bounty hunter offer.</center></TD></TR>';}$main_content .='</TABLE><div align="right">Copyright © <a href="http://otibia.net">oTibia.net</a>.</div>';?>Créditos: Pheenix e EuComente, Avalie e REP++