Demonbholder 420 Postado Maio 31, 2011 Share Postado Maio 31, 2011 (editado) Faaala pessoal, estive um pouco ausente, pois estava bem ocupado, tanto com as novidades que estão por vir no XTibia, quanto com a minha vida pessoal. Enfim, o que importa é que eu fiz esse script agora pouco, e eu acho que pode ser útil no seu OT Serv. Como funciona: É um sistema de busca melhorado, você fala a talkaction junto com dois ou um parâmetro. No caso de um único parâmetro é para checar quais são as possíveis buscas. Você poderá editar o script para adicionar mais buscas, mas eu fiz apenas de nome, nível e sexo. Então você fala !search check e isso aparecerá: First param: name level sex Second param: Match result Exemple: !search level,100 O que esta em negrito é o que você vai poder adicionar mais no script. Ensinarei no final como adicionar mais. Quando você usar dois parâmetros, deve ser como o exemplo ali em cima. No exemplo acima, esta !search level,100 isso quer dizer que o script vai mostrar o nome dos jogadores que possuem o level 100. Exemplos: !search name,Demonbholder Comentário: Inútil, pois só vai mostrar Demonbholder, caso ele exista, claro. !search level,100 Comentário: Vai mostrar o nome dos jogadores nível 100. !search sex,1 Comentário: Vai mostrar o nome dos jogadores do sexo masculino. Talkaction function getInformation(pa) local n = {} local pla = tonumber(db.getResult("SELECT `id` FROM `players` ORDER BY `id` DESC;"):getDataString("id")) local t = {} for i = 1, pla do info = {"name", "level", "sex"} for a, b in pairs(info) do local data = db.getResult("SELECT `"..b.."` FROM `players` WHERE `id` = "..i..";"):getDataString(b) table.insert(n, data) end table.insert(t, n) n = {} end return pa and info or t end function onSay(cid, words, param) local str = nil if param == "" then return TRUE, doPlayerSendCancel(cid, "Wrong param.") end if param == "check" then for _, da in pairs(getInformation(TRUE)) do str = str == nil and "First param: \n\n" .. da or str .. "\n" .. da end str = str .. "\n\nSecond param: Match result \n\nExemple: "..words.." level,100" return doShowTextDialog(cid, 2160, str), TRUE end local par = string.explode(param, ",") if par[2] == nil or par[2] == "" then return TRUE, doPlayerSendCancel(cid, "Wrong param.") end local ta = {} for z, a in pairs(getInformation()) do for b, c in pairs(a) do if table.find(getInformation(TRUE), par[1]) == b and c == par[2] then table.insert(ta, getInformation()[z][1]) end end end for _, d in pairs(ta) do str = str == nil and d or str .. "\n" .. d end return str and doShowTextDialog(cid, 2160, str) or doPlayerSendTextMessage(cid, 4, "No players found."), TRUE end Crie um arquivo .lua em data/talkactions/scripts e cole o script acima. Depois vá em data/talkactions, abra o arquivo talkactions.xml e cole esta tag: <talkaction words="!search" script="NomeDoArquivo.lua" /> Refinando ainda mais sua busca: Ache esta linha no script: {"name", "level", "sex"} Para adicionar mais quesitos para a busca, siga o exemplo: {"name", "level", "sex", "vocation", "cap"} Os nomes dos quesitos são de acordo com a database do seu OT Serv. Espero que tenha ficado claro, obrigado. Editado Junho 2, 2011 por Demonbholder Link para o comentário Compartilhar em outros sites More sharing options...
nyuchiha 108 Postado Maio 31, 2011 Share Postado Maio 31, 2011 Showwwwww Muito Bom cara , bem inovador. Link para o comentário Compartilhar em outros sites More sharing options...
SkyDangerous 395 Postado Maio 31, 2011 Share Postado Maio 31, 2011 Sistema Muito Legal. Bom para aqueles curiosos que gostam de saber sobre as coisas. REP + Link para o comentário Compartilhar em outros sites More sharing options...
Demonbholder 420 Postado Maio 31, 2011 Autor Share Postado Maio 31, 2011 Quem viu o script logo que eu postei pode perceber que eu mudei um pouco, antes estava com número e um pouco mais difícil de entender. Agora ta tranquilo, valeu pelos comentários. Abraços. Link para o comentário Compartilhar em outros sites More sharing options...
joaohd 200 Postado Junho 1, 2011 Share Postado Junho 1, 2011 O código em si está bom. Só recomendo que aprenda a identar o código pois fica muito mais fácil de entender e localizar algum erro caso exista. flw Link para o comentário Compartilhar em outros sites More sharing options...
Henrique Moura 193 Postado Junho 1, 2011 Share Postado Junho 1, 2011 Curti bastante. Apesar de não saber criar muita coisa, eu gosto de ler scripts desse tipo, hahaha. Abraço. Link para o comentário Compartilhar em outros sites More sharing options...
Demonbholder 420 Postado Junho 2, 2011 Autor Share Postado Junho 2, 2011 @Apocarai Valeu, não sou muito de identar, tenho preguiça haha. @Kakilo Riairiai, tenta começar a aprender, é bacana. -- Abraços. Link para o comentário Compartilhar em outros sites More sharing options...
Hudsin 47 Postado Junho 8, 2011 Share Postado Junho 8, 2011 Porr* mto foda esse sistema!!! NUSSSS!!!!!! USADO E APROVADO! :button_ok: :button_ok: :button_ok: PERFEITO!!! Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados