ON
talkaction

Search Item

Por Oneshot, 24 de dez. de 2012 em Actions e Talkactions

script
8
1.6k
OneshotO
24 de dezembro de 2012 às 08:00

Nome: Search Item

Tipo: Talkaction

Autor: Oneshot

 


 

Essa é uma talkaction que percorre todo o banco de dados a procura de um certo item X e retorna uma lista dos jogadores, tanto online como offline que possuam esse item.

 


 

data/talkactions/scripts/searchitem.lua

function onSay(cid, words, param, channel)
param = tonumber(param) or ""
if param == "" then
	return doPlayerSendCancel(cid, words .." [itemid]")
end

local result = db.getResult("SELECT name, online FROM players WHERE id IN (SELECT player_id FROM player_items WHERE itemtype = ".. param ..");")

local msg = "Resultados da busca pelo item ".. param .." em seu banco de dados:\n\n"
if result:getID() ~= -1 then
	while true do
		local name = result:getDataString("name")
		local online = result:getDataInt("online")

		msg = msg .. name .." [".. (online == 1 and "Online" or "Offline") .."]\n"
		if not result:next() then
			break
		end
	end
else
	msg = msg .. "O item não foi encontrado em nenhum jogador."
end
doShowTextDialog(cid, param, msg)
return true
end

 

data/talkactions/talkactions.xml

<talkaction words="/searchitem" access="5" event="script" value="searchitem.lua"/>

 


 

Abraços

Editado Dezembro 24 por Oneshot

markim1986M
24 de dezembro de 2012 às 13:32

Nome: Search Item

Tipo: Talkaction

Autor: Oneshot

 


 

Essa é uma talkaction que percorre todo o banco de dados a procura de um certo item X e retorna uma lista dos jogadores, tanto online como offline que possuam esse item.

 


 

data/talkactions/scripts/searchitem.lua

function onSay(cid, words, param, channel)
param = tonumber(param) or ""
if param == "" then
	return doPlayerSendCancel(cid, words .." [itemid]")
end

local result = db.getResult("SELECT name, online FROM players WHERE id = (SELECT player_id FROM player_items WHERE itemtype = ".. param ..");")

local msg = "Resultados da busca pelo item ".. param .." em seu banco de dados:\n\n"
if result:getID() ~= -1 then
	while true do
		local name = result:getDataString("name")
		local online = result:getDataInt("online")

		msg = msg .. name .." [".. (online == 1 and "Online" or "Offline") .."]\n"
		if not result:next() then
			break
		end
	end
else
	msg = msg .. "O item não foi encontrado em nenhum jogador."
end
doShowTextDialog(cid, param, msg)
return true
end

 

data/talkactions/talkactions.xml

<talkaction words="/searchitem" access="5" event="script" value="searchitem.lua"/>

 


 

Abraços

 

 

Ola, eu testei seu script e o mesmo esta dando erro quando eu faço a busca do item, aparece essa tela:

 

demonshieldq.png

 

 

E no console aparece esse erro.

[24/12/2012 13:28:57] mysql_real_query(): SELECT name, online FROM players WHERE id = (SELECT player_id FROM player_items WHERE itemtype = 2463); - MYSQL ERROR: Subquery returns more than 1 row (1242)

 

ja testei outros itens e todos nao localizam, abraços!

OneshotO
24 de dezembro de 2012 às 13:44

Eu cometi um erro extremamente grotesco quanto a query de busca no banco de dados. Agora está consertado.

 

Abraços.

Editado Dezembro 24 por Oneshot

markim1986M
24 de dezembro de 2012 às 14:17

Eu cometi um erro extremamente grotesco quanto a query de busca no banco de dados. Agora está consertado.

 

Abraços.

 

Fico no aguardo, obrigado!

OneshotO
24 de dezembro de 2012 às 14:49

Eu cometi um erro extremamente grotesco quanto a query de busca no banco de dados. Agora está consertado.

 

Abraços.

 

Fico no aguardo, obrigado!

 

No momento da postagem, eu já havia consertado rsrs.

 

Abraços.

HesLifeH
24 de dezembro de 2012 às 15:23

Muito bom oneshot

bem original

juliok80J
25 de dezembro de 2012 às 13:10

Funcionou perfeitamente!

 

+REP assim que liberar... cara você é muito foda!

 

Por favor, quando você tiver um tempo livre da uma passadinha no meu tópico, creio que seja coisa simples pra você, preciso muito da sua ajuda.

 

http://www.xtibia.co...epois-de-3-min/

 

Abraços e parabéns pelo script!

Editado Dezembro 25 por juliok80

xxcomnomexxX
25 de dezembro de 2012 às 14:08

Eu paguei 1 hoster Hoje e precisava de algum scripter para me ajudar se estiver interessado em dar uma ajuda fala comigo Marcelinho_tavares8@hotmail.com