WarW0lf 26 Postado Julho 30, 2012 Share Postado Julho 30, 2012 (editado) 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á em data/talkactions/scripts/ e crie um arquivo tbounty.lua function 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 Eu Comente, Avalie e REP++ Editado Agosto 1, 2017 por Mudrock Link para o comentário Compartilhar em outros sites More sharing options...
noobprego 1 Postado Agosto 7, 2012 Share Postado Agosto 7, 2012 Vou testar, se funcionar mesmo, REP +. A ideia é ótima. Outra coisa, o player que matar ganha um frag normal? Vai pegar White Skull? Link para o comentário Compartilhar em outros sites More sharing options...
WarW0lf 26 Postado Agosto 8, 2012 Autor Share Postado Agosto 8, 2012 Sim Link para o comentário Compartilhar em outros sites More sharing options...
cs007 13 Postado Agosto 8, 2012 Share Postado Agosto 8, 2012 Bem legal mesmo seu script Link para o comentário Compartilhar em outros sites More sharing options...
WarW0lf 26 Postado Agosto 8, 2012 Autor Share Postado Agosto 8, 2012 Obrigado amigo! Link para o comentário Compartilhar em outros sites More sharing options...
Carnavotu 18 Postado Agosto 8, 2012 Share Postado Agosto 8, 2012 Funfa sem site ? Link para o comentário Compartilhar em outros sites More sharing options...
WarW0lf 26 Postado Agosto 8, 2012 Autor Share Postado Agosto 8, 2012 Funfa Link para o comentário Compartilhar em outros sites More sharing options...
yugnaith 4 Postado Agosto 12, 2012 Share Postado Agosto 12, 2012 Tem como tu esplica melhor a parte PhpMyAdmin ? Meu servidor é de war e sem sit funfa normalmente ? Link para o comentário Compartilhar em outros sites More sharing options...
Raidou 16 Postado Agosto 12, 2012 Share Postado Agosto 12, 2012 Mano,perfeito,este sistema merece meu rep++. Link para o comentário Compartilhar em outros sites More sharing options...
WarW0lf 26 Postado Agosto 12, 2012 Autor Share Postado Agosto 12, 2012 Obrigado e que bom que gostou Link para o comentário Compartilhar em outros sites More sharing options...
milbradt 19 Postado Agosto 12, 2012 Share Postado Agosto 12, 2012 Show meo! ^^ Vou implatar ele no meu server de narutibia ^^ Vlw por compartilhar =D Link para o comentário Compartilhar em outros sites More sharing options...
PostadorHunter 99 Postado Agosto 13, 2012 Share Postado Agosto 13, 2012 muito bom rep++ Link para o comentário Compartilhar em outros sites More sharing options...
RHCP 24 Postado Agosto 24, 2012 Share Postado Agosto 24, 2012 (editado) A página em php está um tanto bugada. @Edit Consegui a página pra gesior, sem bugs. <?php mysql_connect("localhost","root","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> Sends an announcement about huncie to form. Price in thousands.<br> Example: !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>Commissioned</B></center> </TD> <TD CLASS=white width=30%> <center><B>Award</B></center> </TD> <TD CLASS=white width=30%> <center><B>Offer</B></center> </TD> <TD CLASS=white width=10%> <center><B>Killed By</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>'; ?> Editado Agosto 24, 2012 por RHCP Link para o comentário Compartilhar em outros sites More sharing options...
eduardosm14 9 Postado Setembro 7, 2012 Share Postado Setembro 7, 2012 aqui n funfo, tem q registra nada no creaturescripts.xml? Link para o comentário Compartilhar em outros sites More sharing options...
groku 13 Postado Setembro 15, 2012 Share Postado Setembro 15, 2012 Só preciso dar umas ajeitadas nas escritas e efeito e cái igual luva! Seria legal também você tentar fazer um NPC em que você pega bountry hunter com 1 player randomicamente online do serv com level próximo! Só sugestão mas tá ótimo isso aí! Vou guardar o system pra futuros servs que vou faze pra mi u.u Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados