Ir para conteúdo

Featured Replies

Postado

Alguém ajuda com a conversão disso pra SQL?

 

CREATE TABLE IF NOT EXISTS `busque-cabeca` (
  `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;

 

E deu o erro anexado:

 

function onSay(cid, words, param)
if(param == "") then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[BUSQUE A CABEÇA] Use: \"!busque [prize],[nick]\" Exemplo de prêmio 1(k).")
		return TRUE
	end
	local t = string.explode(param, ",")
	if(not t[2]) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[BUSQUE A CABEÇA] Use: \"!busque [prize],[nick]\" Exemplo de prêmio 1(k).")
		return TRUE
	end
	
	local sp_id = getPlayerGUIDByName(t[2])
	if sp_id == nil then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[BUSQUE A CABEÇA] Este player não existe")		
		return TRUE
	end
	
    local result_plr = db.getResult("SELECT * FROM `busque_cabeca` 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 < 1) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[BUSQUE A CABEÇA] Use: \"!busque [prize],[nick]\" Exemplo de prêmio 1(k)
		return TRUE
	end
	
	if(prize >= 100000000000000000000) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[BUSQUE A CABEÇA] Desculpe, você digitou um número muito grande")
		return TRUE
	end

	if is ~= 0 then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[BUSQUE A CABEÇA] Este player já está sob mandato de morte.")	
		return TRUE
	end
	
		if doPlayerRemoveMoney(cid, prize*1000) == TRUE then
		    db.executeQuery("INSERT INTO `busque_cabeca` VALUES (NULL,"..getPlayerGUID(cid)..","..sp_id..",0," .. os.time() .. ","..prize..",0,0);")
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[BUSQUE A CABEÇA] O Player foi adicionado na lista de morte!")			
		else
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[BUSQUE A CABEÇA] Você não tem dinheiro suficiente para oferecer a recompensa nessa cabeça!")			
		end
	
	
	return 1
end

 

 

erro 1.png

Editado por JcA (veja o histórico de edições)

  • Respostas 27
  • Visualizações 4.6k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Se ele não tiver não vai, o script vai verificar a função: if doPlayerRemoveMoney(cid, prize*1000) == TRUE then e retornar a msg: doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[BUSQUE

  • Créditos para o autor base masteuszx. Absolute. masteuszx = autor do auto hunted e os créditos a mim pela tradução. Vamos ler, se é que saber. Abraços

Posted Images

Postado

Quando aplico o comando !busque da o seguinte erro no log:

Citar

Lua Script Error: [TalkAction Interface]
data/talkactions/scripts/busque.lua:onSay
data/talkactions/scripts/busque.lua:6: attempt to call field 'explode' (a nil value)
stack traceback:
[C]: in function 'explode'
data/talkactions/scripts/busque.lua:6: in function

 

Alguém sabe o que pode ser?

Ot versão 10.0

 

  • 1 month later...
Postado

Perfeito, adaptar para modern aac é possivel?

Em 8/27/2014 em 14:09, Absolute disse:

Fala galera do TK, trago hoje a vocês um sistema chamado Bounty Hunters, porém traduzido e pouco modificado.

 

Como funciona?

O Player irá executar !hunt, VALOR,NICK
Com este comando ele estará oferecendo uma recompensa para que matar o jogador de NICK que ele colocou.
Ao player que dar o golpe final no jogador huntado receberá automaticamente o prêmio em sua backpack (Oferecido pelo solicitante do hunted)

 

 

 


 

 

 

Sem mimimi vamos ao que interessa:

 

Em data/talkactions/scripts crie um arquivo com o nome de busque.lua e dentro adicione o conteúdo:


function onSay(cid, words, param)
if(param == "") then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[BUSQUE A CABEÇA] Use: \"!busque [prize],[nick]\" Exemplo de prêmio 1(k).")
		return TRUE
	end
	local t = string.explode(param, ",")
	if(not t[2]) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[BUSQUE A CABEÇA] Use: \"!busque [prize],[nick]\" Exemplo de prêmio 1(k).")
		return TRUE
	end
	
	local sp_id = getPlayerGUIDByName(t[2])
	if sp_id == nil then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[BUSQUE A CABEÇA] Este player não existe")		
		return TRUE
	end
	
    local result_plr = db.getResult("SELECT * FROM `busque_cabeca` 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 < 1) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[BUSQUE A CABEÇA] Use: \"!busque [prize],[nick]\" Exemplo de prêmio 1(k)
		return TRUE
	end
	
	if(prize >= 100000000000000000000) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[BUSQUE A CABEÇA] Desculpe, você digitou um número muito grande")
		return TRUE
	end

	if is ~= 0 then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[BUSQUE A CABEÇA] Este player já está sob mandato de morte.")	
		return TRUE
	end
	
		if doPlayerRemoveMoney(cid, prize*1000) == TRUE then
		    db.executeQuery("INSERT INTO `busque_cabeca` VALUES (NULL,"..getPlayerGUID(cid)..","..sp_id..",0," .. os.time() .. ","..prize..",0,0);")
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[BUSQUE A CABEÇA] O Player foi adicionado na lista de morte!")			
		else
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[BUSQUE A CABEÇA] Você não tem dinheiro suficiente para oferecer a recompensa nessa cabeça!")			
		end
	
	
	return 1
end

Em data/talkactions/talkactions.xml adicione a seguinte linha:


<talkaction access="0" log="no" filter="word" words="!busque" script="busque.lua" />

Agora em data/creaturescripts/scripts crie um arquivo com o nome busque-kill.lua e adicione:


function onKill(cid, target)
if isPlayer(target) == TRUE then
---- BOUNTY HUNTERS START -----
pid = cid
pid2 = getPlayerGUID(target)
    local result_plr = db.getResult("SELECT * FROM `busque_cabeca` 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 `busque_cabeca` SET `killed` = 1, `k_id`="..getPlayerGUID(cid)..", `kill_time` = " .. os.time() .. " WHERE `id`  = "..bid..";")
	doPlayerAddMoney(cid,prize*1000)
	doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,'[BUSQUE A CABEÇA] Você matou um jogador que estava em pena de morte, receba sua recompensa!')
end	
---- BOUNTY HUNTERS END -----
end
return TRUE
end

Em data/creaturescripts/creaturescripts.xml adicione a seguinte linha:


<event type="kill" name="Busque" script="busque-kill.lua"/>

Agora ainda na pasta creaturescripts/scripts abra o seu arquivo login.lua e abaixo de registerCreatureEvent(cid, "PlayerDeath") adicione:


registerCreatureEvent(cid, "Busque")

Agora pra finalizar, vá no seu PHPMYADMIN/SQL e execute a seguinte query:


CREATE TABLE IF NOT EXISTS `busque-cabeca` (
  `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;

 

Caso possua site e queira colocar a página, segue a página do gesior, coloque em www/


   <?php
@mysql_connect("localhost","user","password");
@mysql_select_db("database");

$main_content .= '<P ALIGN=CENTER>
    <br>
    <FONT SIZE=5 COLOR=#CFF00C>
        Como usar...
    </FONT>
    <br>
    <br>
    <FONT SIZE=2 COLOR=#CFF00C>
    * !hunt [prize],[nick] :
        <FONT SIZE=1 COLOR=#FCC33F>
            Exemplo de HUNT:<br>
            Digite: !hunt 100,Absolute
        </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>Encomendado</B></center>
                </TD>
                <TD CLASS=white width=30%>
                    <center><B>Valor do Prêmio</B></center>
                </TD>
                <TD CLASS=white width=30%>
                    <center><B>Sacrificado</B></center>
                </TD>
                <TD CLASS=white width=10%>
                    <center><B>Morto Por</B></center>
                </TD>
            </TR>';
 $inv = @mysql_query("SELECT * FROM `busque_cabeca` 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">Ninguém Ainda!</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>
                    No momento não há cabeças para busca.
                </center>
            </TD>
        </TR>';
}
        $main_content .='</TABLE><div align="right">Copyright &copy; <a href="http://www.tibiaking.com/forum/user/116608-absolute/">Absolute on TibiaKing</a>.</div>';
?> 

Aqui:


@mysql_connect("localhost","user","password");
@mysql_select_db("database"); 

Em user coloque o seu usuário phpmyadmin e em password a senha.

Em database o nome do seu banco de dados.

 

 

 

Pós isso, abra seu index.php e procure por: 


   case "guilds";
        $topic = "Guilds";
        $subtopic = "guilds";
        include("guilds.php");
    break; 

Após o break; Adicione:


    case "busque-cabeca";
        $topic = "Busque a Cabeca";
        $subtopic = "characters";
        include("busque-cabeca.php");
    break; 

Depois vá em layouts/tibiacom/layout.php e procure por:


<a href='index.php?subtopic=guilds'>
  <div id='submenu_guilds' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'>
    <div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div>

    <div id='ActiveSubmenuItemIcon_guilds' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div>
    <div class='SubmenuitemLabel'>Guilds</div>
    <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div>
  </div>

Logo abaixo adicione:


<a href='index.php?subtopic=busque-cabeca'>
  <div id='submenu_bounty' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'>
    <div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div>

    <div id='ActiveSubmenuItemIcon_biunty' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div>
    <div class='SubmenuitemLabel'><font color=red>Busque a Cabeca!</font></div>
    <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div>
  </div>

Pronto, tudo perfeito!

 

 

 

 

Créditos para o autor base masteuszx.

Absolute.

 

 

 

 

Qualquer dúvida publique no tópico, será bem legal ver esse sistema nos vossos servidores :grin:

 

 

 

Até o próximo sisteminha.

 

Absolute.

Eu uso modern, dá pra adaptar para modern, ou algum código parecido mais simples pra modern, quais estao sendo caçados e o valor seria basicamente isso

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo