Ir para conteúdo

Featured Replies

Postado
  • Este é um post popular.

Versão: 3.2
Versão de tibia: 9.4+ (Funciona em anteriores)
Descrição: Existem muitos scripts que ajudam o administrador do servidor a cuidar dele, um deles é saber coisas sobre quem está jogando e se está sendo honesta. Eu peguei alguns scripts e estou juntando em um para diminuir o tamanho e ter uma fácil verificação.

TAG:

<talkaction log="yes" words="!p;/p" access="5" event="script" value="playercheck.lua"/>

Script:
Talkactions/scripts/playercheck.lua


local config = {

check = {"check", "viwer", "verificar", "ver"},

delete = {"del", "delete", "deletar"},

search = {"search", "procurar"}

}



function getItemsInContainer(cont, sep)

local text = ""

local tsep = ""

local count = ""

for i=1, sep do

tsep = tsep.."-"

end

tsep = tsep..">"

for i=0, getContainerSize(cont.uid)-1 do

local item = getContainerItem(cont.uid, i)

if isContainer(item.uid) == FALSE then

if item.type > 0 then

count = "("..item.type.."x)"

end

text = text.."\n"..tsep..getItemNameById(item.itemid).." "..count.." ("..item.itemid..")"

else

if getContainerSize(item.uid) > 0 then

text = text.."\n"..tsep..getItemNameById(item.itemid).." ("..item.itemid..")"

text = text..getItemsInContainer(item, sep+2).." ("..item.itemid..")"

else

text = text.."\n"..tsep..getItemNameById(item.itemid).." ("..item.itemid..")"

end

end

end

return text

end



function onSay(cid, words, param, channel)

local slotName = {"Cabeça", "Amuleto", "Backpack", "Armor", "Mao Direita", "Mao Esquerda", "Legs", "Pés", "Ring", "Ammo Slot"}

local t = string.explode(param, ",")

if(table.isStrIn(param, config.check)) then

if getPlayerGroupId (cid) >= 5 then

local player = getPlayerByNameWildcard(t[2])

if isPlayer(player) == TRUE then

local text = getPlayerName(player).."'s Equipment: "

for i=1, 10 do

text = text.."\n\n"

local item = getPlayerSlotItem(player, i)

if item.itemid > 0 then

if isContainer(item.uid) == TRUE then

text = text..slotName[i]..": "..getItemNameById(item.itemid).." ("..item.itemid..") "..getItemsInContainer(item, 1)

else

text = text..slotName[i]..": "..getItemNameById(item.itemid).." ("..item.itemid..")"

end

else

text = text..slotName[i]..": Empty"

end

end

doShowTextDialog(cid, 6579, text)

else

doPlayerSendCancel(cid, "This player is not online.")

end

end

elseif(table.isStrIn(param, config.delete)) then

if getPlayerGroupId(cid) >= 5 then

local player = getPlayerByNameWildcard(t[3])

if isPlayer(player) == TRUE then

count = t[4]

if(not t[4]) then

count = 1

end

if getPlayerItemCount(player, t[2]) > 0 then

if doPlayerRemoveItem(player, t[2], count) then

doPlayerSendCancel(cid, "Item Deletado.")

else

doPlayerSendCancel(cid, "Este player não esta quantidade.")

end

else

doPlayerSendCancel(cid, "Este player não tem o item.")

end

end

end

elseif(table.isStrIn(param, config.search)) then

if getPlayerGroupId (cid) >= 5 then

local player = getPlayerByNameWildcard(t[3])

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

local msg = "Resultados da busca pelo item ".. t[2] .." 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, t[2], msg)

end

end

return true

end

Explicação:
Quando o god digita:
/p check, (PNAME) - Ele verifica os items que o player tem.
/p del, (ID), (PNAME), (COUNT) - Ele deleta o item de determinado player (Se não colocar o count ele irá remover somente 1).
/p search, (ID) - Ele verifica quantos players tem tal item e se está online.

Créditos:
Oneshot
CaioODemais
Comedinha (Bruno Carvalho)

 

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

  • Respostas 20
  • Visualizações 6.3k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

Postado
  • Autor

Hmm muito melhor que o que eu postei rsrs.

Mas o segundo comando pra remover o Item do player. Ele precisa estar offline?

Precisa estar online, vou ver se na próxima versão ele pode estar tanto off quanto on.

Postado

Vixi, estando online é melhor ainda.

Quando os players clonavam item em meu OT tinha que esperar deslogar pra remover pela database ;/ Porque se não dava save e voltava tudo rsrs.

Muito perfeito esse Script.

Postado
  • Autor

Vixi, estando online é melhor ainda.

Quando os players clonavam item em meu OT tinha que esperar deslogar pra remover pela database ;/ Porque se não dava save e voltava tudo rsrs.

Muito perfeito esse Script.

Ty manow, fiz algumas alterações.

Atualização: 3.1:

Fixes:

O /p check mostra o id dos items (eu tinha esquecido de atualiza no meu aqui)

O /p del agora deleta os items do player (foi uma falha minha e estava removendo o item do próprio god).

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