Postado Abril 25, 2015 10 anos ALO COM QUE EU FALO? Gente tem como me ajuda com esse Script do Comedinha? ele faz um checagem de itens que um jogador especifico porem eu quero tirar a checagem de item da Cabeça, Amuleto, Armor, Mao Esquerda, Legs, Ring e Ammo Slot, ficando somente a verificação da BACKPACK, MAO DIREITA E PÉS link do Script: http://www.tibiaking.com/forum/topic/20933-talkaction-player-check-system/ 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 REP+ E OBRIGADU! Meus Contatos! Minhas Funções: Skype: TsplayerT Facebook: TakaFukushii YouTube: ADoseDupla Twitter: @_Splayer_ Mapper:▓▓▓▓▓▓▓▓▓▓ 97% Programmer:▓▓▓▓▓▒▒▒▒▒ 45% Scripter:▓▓▓▓▓▓▓▓▓▒ 83% Spriter:▓▓▓▓▓▓▒▒▒▒ 57% Gamemaster:▓▓▓▓▓▓▓▓▓▓ 99% Ot Creator:▓▓▓▓▓▓▓▒▒▒71% Ot Client Maker:▓▓▓▓▓▓▓▒▒▒74%
Postado Abril 25, 2015 10 anos Vai aprender quando? Negativado. O tópico foi movido para a área correta, preste mais atenção da próxima vez! Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680Este tópico foi movido: De: "OTServ → Aprovação de Tópicos de Conteúdos" Para: "OTServ → Suporte OTServ → Suporte de Scripts"
Postado Abril 25, 2015 10 anos Mesmo assim, irei ajudar, basta remover aqui: local slotName = {"Cabeça", "Amuleto", "Backpack", "Armor", "Mao Direita", "Mao Esquerda", "Legs", "Pés", "Ring", "Ammo Slot"} Ficando assim: local slotName = {"Backpack", "Mao Direita", "Pés"} Editado Abril 25, 2015 10 anos por Deadpool (veja o histórico de edições) Se te ajudei, deixe seu curti, clique em melhor resposta, para que eu possa ajudar sempre. Trabalhos (C++): Cor das mensagens nos channels Ajusta/Mudar cor das mensagens de Loot Liberação dos novos Remakes da PokeXGames. NPC "Guild Master" que cria, deleta, invita, kicka players da guild. At Soon, LIKE ON FACEBOOK. Clik on Imgs
Postado Abril 25, 2015 10 anos Se não der certo, tenta esse: local config = { check = {"check", "viwer", "verificar", "ver"}, delete = {"del", "delete", "deletar"}, search = {"search", "procurar"} } function getItemsInContainer(cont, sep) local text, tsep, 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 not isContainer(item.uid) 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 = {CONST_SLOT_BACKPACK, CONST_SLOT_RIGHT, CONST_SLOT_FEET} 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) then local text = getPlayerName(player) .. "'s Equipment: " for i = 1, #slotName do text = text .. "\n\n" local item = getPlayerSlotItem(player, slotName[i]) if item.itemid > 0 then if isContainer(item.uid) 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) 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
Postado Abril 25, 2015 10 anos Autor Mesmo assim, irei ajudar, basta remover aqui: local slotName = {"Cabeça", "Amuleto", "Backpack", "Armor", "Mao Direita", "Mao Esquerda", "Legs", "Pés", "Ring", "Ammo Slot"} Ficando assim: local slotName = {"Backpack", "Mao Direita", "Pés"} ja tentei e não funcionou... ;-; Se não der certo, tenta esse: local config = { check = {"check", "viwer", "verificar", "ver"}, delete = {"del", "delete", "deletar"}, search = {"search", "procurar"} } function getItemsInContainer(cont, sep) local text, tsep, 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 not isContainer(item.uid) 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 = {CONST_SLOT_BACKPACK, CONST_SLOT_RIGHT, CONST_SLOT_FEET} 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) then local text = getPlayerName(player) .. "'s Equipment: " for i = 1, #slotName do text = text .. "\n\n" local item = getPlayerSlotItem(player, slotName[i]) if item.itemid > 0 then if isContainer(item.uid) 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) 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 Cara deu erro: [Error - LuaScriptInterface::loadFile] data/talkactions/scripts/playercheck.lua:86: ')' expected near '=' [Warning - Event::loadScript] Cannot load script (data/talkactions/scripts/playercheck.lua) data/talkactions/scripts/playercheck.lua:86: ')' expected near '=' Editado Abril 25, 2015 10 anos por TsplayerT (veja o histórico de edições) Meus Contatos! Minhas Funções: Skype: TsplayerT Facebook: TakaFukushii YouTube: ADoseDupla Twitter: @_Splayer_ Mapper:▓▓▓▓▓▓▓▓▓▓ 97% Programmer:▓▓▓▓▓▒▒▒▒▒ 45% Scripter:▓▓▓▓▓▓▓▓▓▒ 83% Spriter:▓▓▓▓▓▓▒▒▒▒ 57% Gamemaster:▓▓▓▓▓▓▓▓▓▓ 99% Ot Creator:▓▓▓▓▓▓▓▒▒▒71% Ot Client Maker:▓▓▓▓▓▓▓▒▒▒74%
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.