Ir para conteúdo
  • Cadastre-se

(Resolvido)Loot automatico


Ir para solução Resolvido por slyton,

Posts Recomendados

Fala galera tk,Venho aqui pedi um scripting 
Oque ele faria?
Bom seria um que nem ''PokexGames'' pegaria itens dos pokémons
automaticamente e colocaria em sua bag
Exemplo mato um rattata {Loot] ''Apple bite''
ao player clicar no 'Pokémon' o itens iria automaticamente para sua
bag veja na print
post-106324-0-66360600-1407885346_thumb.
Pois bem somente isso agradeço desde já a quem ajudar
Valendo meu rep +
 
OBS: Se estiver na área incorreta mova!
Link para o post
Compartilhar em outros sites

Não seria o script Auto Loot?

YDmXTU2.png

 

Entenda tudo sobre VPS, DEDICADOS & HOSPEDAGENS. => Clique aqui

Global Full Download 10.9x - TFS 1.2/FERUMBRAS/KRAILOS. => Clique aqui

 

Muitos querem aquilo que você tem, 
mas vão desistir quando souberem o preço que você pagou.

 

skype-favicon.png lu.lukinha

message-16.png [email protected]

Link para o post
Compartilhar em outros sites

Não seria o script Auto Loot?

Infelizmente não sei mais se esse ''Auto loot'' Faz isso que eu estou querendo deve ser sim se fizer poderia posta?

Link para o post
Compartilhar em outros sites
  • Solução

Bom é muito fácil... mas como é 1 genérico não é perfeito, chega de lenga lenga e vamos lá.

Vá em data\creaturescripts\scripts\ e crie 1 arquivo lua chamado aloot.lua e bote isto dentro.

function onLogin(cid)

registerCreatureEvent(cid, "aloot_kill")

return true

end

local stor = 7575

function autoloot(cid, target, pos)

local function doStack(cid, itemid, new)

local count = getPlayerItemCount(cid, itemid)

if (count > 100) then

count = count - math.floor(count / 100) * 100

end

local newCount = count + new

if (count ~= 0) then

local find = getPlayerItemById(cid, true, itemid, count).uid

if (find > 0) then

doRemoveItem(find)

else

newCount = new

end

end

local item = doCreateItemEx(itemid, newCount)

doPlayerAddItemEx(cid, item, true)

end

local function scanContainer(cid, uid, list)

for k = (getContainerSize(uid) - 1), 0, -1 do

local tmp = getContainerItem(uid, k)

if (isInArray(list, tmp.itemid)) then

if isItemStackable(tmp.itemid) and (getPlayerItemCount(cid, tmp.itemid) > 0) then

doStack(cid, tmp.itemid, tmp.type)

else

local item = doCreateItemEx(tmp.itemid, tmp.type)

doPlayerAddItemEx(cid, item, true)

end

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Looted ' .. tmp.type .. ' ' .. getItemNameById(tmp.itemid) .. '.')

doRemoveItem(tmp.uid)

elseif isContainer(tmp.uid) then

scanContainer(cid, tmp.uid, list)

end

end

end

local items = {}

for i = getTileInfo(pos).items, 1, -1 do

pos.stackpos = i

table.insert(items, getThingFromPos(pos))

end

if (#items == 0) then

return

end

local corpse = -1

for _, item in ipairs(items) do

local name = getItemName(item.uid):lower()

if name:find(target:lower()) then

corpse = item.uid

break

end

end

if (corpse ~= -1) and isContainer(corpse) then

scanContainer(cid, corpse, tostring(getPlayerStorageValue(cid, stor)):gsub('_', ''):explode(','))

end

end

function onKill(cid, target, lastHit)

if not isPlayer(target) then

local infos = getPlayerStorageValue(cid, stor)

if (infos == -1) then

return true

end

local list = tostring(infos):explode(',')

if (#list == 0) then

return true

end

addEvent(autoloot, 150, cid, getCreatureName(target), getCreaturePosition(target))

end

return true

end

<event type="login" name="aloot_reg" event="script" value="aloot.lua"/>
<event type="kill" name="aloot_kill" event="script" value="aloot.lua"/>

Bom depois de ter feito todo o procedimento, você vai precisar dos comandos.

vá em \data\talkactions\scripts\ e crie um arquivo lua chamado de aloot.lua e bote isto dentro.

local stor, limit = 7575, 60 --storage, limit to add.

local allow_container = false --empty! not looted with items, atleast for now.

function onSay(cid, words, param)

local expl = param:explode(':')

local action, rst = expl[1], expl[2]

if (action:lower() == 'check') then

local infos, list = getPlayerStorageValue(cid, stor), {}

if (infos ~= -1) then

list = tostring(infos):explode(',')

end

local txt = 'Autoloot List:\n'

if (#list > 0) then

for k, id in ipairs(list) do

id = id:gsub('_', '')

if tonumber(id) then

txt = txt .. getItemNameById(tonumber(id)) .. ((k < #list) and '\n' or '')

end

end

else

txt = 'Empty'

end

doPlayerPopupFYI(cid, txt)

elseif (action:lower() == 'add') then

local infos, list = getPlayerStorageValue(cid, stor), {}

if (infos ~= -1) then

list = tostring(infos):gsub('_', ''):explode(',')

end

if (#list >= limit) then

return doPlayerSendCancel(cid, 'You already have ' .. limit .. ' autolooting items.')

end

local item = tonumber(rst)

if not item then

item = getItemIdByName(rst, false)

if not item then

return doPlayerSendCancel(cid, 'not valid item.')

end

end

if not allow_container and isItemContainer(item) then

return doPlayerSendCancel(cid, 'this item can not be autolooted.')

end

local attrs = getItemInfo(item)

if not attrs then

return doPlayerSendCancel(cid, 'not valid item.')

elseif not attrs.movable or not attrs.pickupable then

return doPlayerSendCancel(cid, 'this item can not be autolooted.')

end

if isInArray(list, item) then

return doPlayerSendCancel(cid, 'already added.')

end

table.insert(list, tostring(item))

local new = ''

for v, id in ipairs(list) do

new = new .. '_' .. id:gsub('_' ,'') .. ((v < #list) and ',' or '')

end

doPlayerSetStorageValue(cid, stor, tostring(new))

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Item >>' .. getItemNameById(item) .. '<< has been added to the autoloot list.')

elseif (action:lower() == 'remove') then

local infos, list = getPlayerStorageValue(cid, stor), {}

if (infos ~= -1) then

list = tostring(infos):gsub('_', ''):explode(',')

end

if (#list == 0) then

return doPlayerSendCancel(cid, 'You dont have any item added.')

end

if (#list >= limit) then

return doPlayerSendCancel(cid, 'You already have ' .. limit .. ' autolooting items.')

end

local item = tonumber(rst)

if not item then

item = getItemIdByName(rst, false)

if not item then

return doPlayerSendCancel(cid, 'not valid item.')

end

end

if not isInArray(list, item) then

return doPlayerSendCancel(cid, 'This item is not in the list.')

end

local new = ''

for v, id in ipairs(list) do

if (tonumber(id) ~= item) then

new = new .. '_' .. id:gsub('_' ,'') .. ((v < #list) and ',' or '')

end

end

doPlayerSetStorageValue(cid, stor, tostring(new))

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Item >>' .. getItemNameById(item) .. '<< removed from the autoloot list.')

end

return true

end

Depois vá em data\talkactions\talkactions.xml e bote isto dentro.

<talkaction words="/aloot" event="script" value="aloot.lua"/>

AAAH mas como é os comandos? e como eu edito o script?.

Comandos

/aloot add: nome do item
/aloot remove: nome do item
Editar o script é só no talkactions.lua

local stor, limit = 7575, 60 --storage, Limite de itens adicionados.
Bom espero ter ajudado. Editado por slyton (veja o histórico de edições)

JqGfm7S.png

Servidor com sources estáveis, com sistemas completos e tudo atualizados, para saber mais acessem   https://www.facebook.com/pokeVKS

Link para o post
Compartilhar em outros sites

Bom é muito fácil... mas como é 1 genérico não é perfeito, chega de lenga lenga e vamos lá.

Vá em data\creaturescripts\scripts\ e crie 1 arquivo lua chamado aloot.lua e bote isto dentro.

function onLogin(cid)

registerCreatureEvent(cid, "aloot_kill")

return true

end

local stor = 7575

function autoloot(cid, target, pos)

local function doStack(cid, itemid, new)

local count = getPlayerItemCount(cid, itemid)

if (count > 100) then

count = count - math.floor(count / 100) * 100

end

local newCount = count + new

if (count ~= 0) then

local find = getPlayerItemById(cid, true, itemid, count).uid

if (find > 0) then

doRemoveItem(find)

else

newCount = new

end

end

local item = doCreateItemEx(itemid, newCount)

doPlayerAddItemEx(cid, item, true)

end

local function scanContainer(cid, uid, list)

for k = (getContainerSize(uid) - 1), 0, -1 do

local tmp = getContainerItem(uid, k)

if (isInArray(list, tmp.itemid)) then

if isItemStackable(tmp.itemid) and (getPlayerItemCount(cid, tmp.itemid) > 0) then

doStack(cid, tmp.itemid, tmp.type)

else

local item = doCreateItemEx(tmp.itemid, tmp.type)

doPlayerAddItemEx(cid, item, true)

end

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Looted ' .. tmp.type .. ' ' .. getItemNameById(tmp.itemid) .. '.')

doRemoveItem(tmp.uid)

elseif isContainer(tmp.uid) then

scanContainer(cid, tmp.uid, list)

end

end

end

local items = {}

for i = getTileInfo(pos).items, 1, -1 do

pos.stackpos = i

table.insert(items, getThingFromPos(pos))

end

if (#items == 0) then

return

end

local corpse = -1

for _, item in ipairs(items) do

local name = getItemName(item.uid):lower()

if name:find(target:lower()) then

corpse = item.uid

break

end

end

if (corpse ~= -1) and isContainer(corpse) then

scanContainer(cid, corpse, tostring(getPlayerStorageValue(cid, stor)):gsub('_', ''):explode(','))

end

end

function onKill(cid, target, lastHit)

if not isPlayer(target) then

local infos = getPlayerStorageValue(cid, stor)

if (infos == -1) then

return true

end

local list = tostring(infos):explode(',')

if (#list == 0) then

return true

end

addEvent(autoloot, 150, cid, getCreatureName(target), getCreaturePosition(target))

end

return true

end

<event type="login" name="aloot_reg" event="script" value="aloot.lua"/>
<event type="kill" name="aloot_kill" event="script" value="aloot.lua"/>

Bom depois de ter feito todo o procedimento, você vai precisar dos comandos.

vá em \data\talkactions\scripts\ e crie um arquivo lua chamado de aloot.lua e bote isto dentro.

local stor, limit = 7575, 60 --storage, limit to add.

local allow_container = false --empty! not looted with items, atleast for now.

function onSay(cid, words, param)

local expl = param:explode(':')

local action, rst = expl[1], expl[2]

if (action:lower() == 'check') then

local infos, list = getPlayerStorageValue(cid, stor), {}

if (infos ~= -1) then

list = tostring(infos):explode(',')

end

local txt = 'Autoloot List:\n'

if (#list > 0) then

for k, id in ipairs(list) do

id = id:gsub('_', '')

if tonumber(id) then

txt = txt .. getItemNameById(tonumber(id)) .. ((k < #list) and '\n' or '')

end

end

else

txt = 'Empty'

end

doPlayerPopupFYI(cid, txt)

elseif (action:lower() == 'add') then

local infos, list = getPlayerStorageValue(cid, stor), {}

if (infos ~= -1) then

list = tostring(infos):gsub('_', ''):explode(',')

end

if (#list >= limit) then

return doPlayerSendCancel(cid, 'You already have ' .. limit .. ' autolooting items.')

end

local item = tonumber(rst)

if not item then

item = getItemIdByName(rst, false)

if not item then

return doPlayerSendCancel(cid, 'not valid item.')

end

end

if not allow_container and isItemContainer(item) then

return doPlayerSendCancel(cid, 'this item can not be autolooted.')

end

local attrs = getItemInfo(item)

if not attrs then

return doPlayerSendCancel(cid, 'not valid item.')

elseif not attrs.movable or not attrs.pickupable then

return doPlayerSendCancel(cid, 'this item can not be autolooted.')

end

if isInArray(list, item) then

return doPlayerSendCancel(cid, 'already added.')

end

table.insert(list, tostring(item))

local new = ''

for v, id in ipairs(list) do

new = new .. '_' .. id:gsub('_' ,'') .. ((v < #list) and ',' or '')

end

doPlayerSetStorageValue(cid, stor, tostring(new))

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Item >>' .. getItemNameById(item) .. '<< has been added to the autoloot list.')

elseif (action:lower() == 'remove') then

local infos, list = getPlayerStorageValue(cid, stor), {}

if (infos ~= -1) then

list = tostring(infos):gsub('_', ''):explode(',')

end

if (#list == 0) then

return doPlayerSendCancel(cid, 'You dont have any item added.')

end

if (#list >= limit) then

return doPlayerSendCancel(cid, 'You already have ' .. limit .. ' autolooting items.')

end

local item = tonumber(rst)

if not item then

item = getItemIdByName(rst, false)

if not item then

return doPlayerSendCancel(cid, 'not valid item.')

end

end

if not isInArray(list, item) then

return doPlayerSendCancel(cid, 'This item is not in the list.')

end

local new = ''

for v, id in ipairs(list) do

if (tonumber(id) ~= item) then

new = new .. '_' .. id:gsub('_' ,'') .. ((v < #list) and ',' or '')

end

end

doPlayerSetStorageValue(cid, stor, tostring(new))

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Item >>' .. getItemNameById(item) .. '<< removed from the autoloot list.')

end

return true

end

Depois vá em data\talkactions\talkactions.xml e bote isto dentro.

<talkaction words="/aloot" event="script" value="aloot.lua"/>

AAAH mas como é os comandos? e como eu edito o script?.

Comandos

/aloot add: nome do item
/aloot remove: nome do item
Editar o script é só no talkactions.lua

local stor, limit = 7575, 60 --storage, Limite de itens adicionados.
Bom espero ter ajudado.

 

Resolvido obrigado pela colaboração!!Reputado :D

Link para o post
Compartilhar em outros sites
  • 1 year later...

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por Killua
      Últimas atualizações:
       
      16/12/2013:
       
       


       
       
      Introdução:
       
       
      Este é o meu já conhecido evento Blood Castle Automático que estava em outro fórum que acabou. Estou trazendo ele aqui para que ele não "morra".
       
       
       
       
      Informações:  
       
      #Dica: Acho que fica legal o premio do evento ser um item que da double exp por um tempo.
       
       
      Atualização [12/04/2014]
       
       
      Resolvi refazer o código, para facilitar a instalação e melhorar o funcionamento do evento.
       
       
      O que mudou?
       
       
       
       
       
      Instalando o evento:
       
      Lib:
       


       
       
      Movements: 
       


       
       
       
      Creaturescripts: 
       


       
      Monsters: 
       

          O evento pode acontecer de duas maneiras: automática ou manualmente. Vou por as duas possibilidades:     Automática:   

       
       
      Manual:
       


       
       
      Como Configurar:
       
       
      * Se você for colocar, dentro do evento, um teleporte para as pessoas que não quiserem mais participar, coloque o Action ID 9371 nele.
       
       
      * Lembre-se de por NO-LOGOUT tool e NO-PVP tool em toda área do evento!!
       
       
      Todas as demais explicações estão na lib, mas vou demonstrar como configurar os mais "confusos".
       
       
      No modo automático, você configura de quanto em quanto o tempo o evento vai acontecer. Nessa tag:
      <globalevent name="Blood Castle" interval="3600" event="script" value="BloodGlobalEvent.lua"/> Aqui está 3600 segundos, ou seja, 1 hora.
      * Se seu servidor for em milisegundos, multiplique o número por 1000, assim: 3600 segundos * 1000 = 3600000 milisegundos = 1 hora.
       
      No modo manual, para iniciar o evento, basta usar a talkaction /blood-start com seu god.
       
       
      Em posGuarda, vc deve colocar a posicao do Guarda do Portao, como mostrado abaixo:  
        As posPedras são onde ficam as pedras que tampam a passagem enquanto o evento não esta aberto, conforme na imagem abaixo:  
        Em estátua, vc deve colocar a posição em que o arcanjo vai ser criado, conforme na imagem abaixo:  

        Nas posParedes, vc deve por a posição das paredes que bloqueiam a entrada do castelo e que são removidas quando o guarda morre, conforme abaixo:  
        Em fromPos e toPos, você vai por o canto superior esquerdo e o canto inferior direito do mapa do seu evento, respectivamente. Dessa maneira:  
        As outras configurações eu acredito que já estejam bem explicadas.     Espero que gostem dessa nova versão. Recomendo a todos que já usam o evento, reinstalar com essa nova versão.   Qualquer dúvida ou bug, postem que irei responder.
    • Por King Laker
      Olá, passei um tempo procurando este script até que um amigo do TK disponibilizou (credito no fim do post)
      Edit1: O evento funciona assim, o evento começa as 14:00:00 para inscrições realizando as inscrições você é levado para sala de espera (coloque no-logout e protection) onde você tera de esperar 5 minutos passado os 5 minutos todos na sala de espera serão teleportados para uma arena que você pode fazer facilmente e configurar conforme explicado na script --> apenas lembre de colocar o no-logout e pvp tool na arena.
      (As 13:59:00 vai aparecer um broadcast dizendo que o Npc PvP irá aparecer em 1 minutos que você terá então 5 minutos para se inscrever com o custo de 10k (configurável na script do actions) a área onde o npc nasce é configurável, o npc sumirá após 6 minutos (1 minuto depois do inicio da matança)-) 
      O ultimo vivo na arena terá de clicar na alavanca e será teleportado para o templo (coordenadas configuráveis) ganhando o devido premio do evento (configuravel na script do actions).
      Vamos lá:

      data/lib adicione um arquivo .lua e renomeie para Torneio.lua e coloque dentro
       
      vai em Globalevents adicione Torneio.lua e dentro dele coloque
       
      (se sua versão é em millisegundos então mude para)
       
      Adicione a tag em globalevents.xml
       
      se seu servidor for em millisegundos:
       
      vai em Actions adicione Torneio.lua e dentro:
      Atenção: Voce faz uma area do Torneio no Map editor e Coloca PVP-Zone e no-logout no Mapa editor e coloca uma Alavanca com a uniqueid "18279" e actionid "18279" antes verifique se não tem a action e unique id no seu servidor com o mesmo numero (18279) [ a alavanca serve para quando o ultimo player vivo no evento volte para o templo e receba os premios]
       
      Em Actions.xml adcione a tag 
       
      Agora o NPC TORNEIO em  data/NPC adicione um xml, renomeie para o nome torneio.xml (pode mudar mais tarde, se não souber oque esta fazendo não mexa)
       
      em NPC/SCRIPTS/torneio.lua
       
      LEIA:
       
      ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       
      aqui um script que achei no TK que você pode usar no seu evento, ele faz o npc aparecer 1 minuto depois do horario marcado na posição que você quiser, com um broadcast dizendo que ele esta chegando. (é bom para dizer que o evento esta começando)
      vá em globalevents.xml e adicione a tag
      Dica: Coloque 1 minuto antes do inicio do evento (configuravel no lib/torneio.lua) no meu caso seria as 12:00:00 hrs (meio dia)
       
      se o seu servidor não for millisegundos use
       
      va em globalevents/scripts e crie um arquivo .lua com o nome de npcpvp
       
      se o seu servidor não for em millisegundos use assim:
       

      Creditos:
      @J.L por disponibilizar os script do Evento PvP.
      @Stigal por disponibilizar o script do Npc que aparece sozinho na hr marcada.
      @King Laker por editar e mesclar os scripts.
    • Por Yok
      Então , estou começando agora no mundo de script, e eu e um amigo estávamos conversando sobro no Futuro OT que estamos criando e vimos a necessidade de um Tutor Automático para não depender tanto de alguém sempre respondendo a galera.

       
      [1] Como funciona: Simplesmente com uma Talk Action , você manda no Global Channel !tutor e ira abrir uma ModalWindow com as duvidas.

       
      [2] Como ele responde: Isso vai depender de você colocar para responder, pois o sistema manda uma mensagem no Local Chat em Azul.

       
      [3] Como Instalar: É bem simples de instalar mas siga os passos atentamente. Enfim vamos para a melhor parte .
       
      1) Primeiro você tem que ter o ModalWindow instala-do no seu Server: Modal Window
       
       2) Em \data\talkactions\talkactions.xml registre a seguinte linha.
      <talkaction words="!tutor" script="tutor.lua"/>  
       3) Em \data\talkactions\scripts crie o seguinte arquivo "tutor.lua" e adicione.
       
      function onSay(cid, player, words, param) cid:registerEvent("modalwindowhelper") local titulo = "Tutor Automatico" -- Esse é o titulo do ModalWindow local mensagem = "Oi,eu sou o Tutor Automatico do OTS, posso respoder algumas de suas duvidas" -- Subtitulo do ModalWindow local popup = ModalWindow(1000, titulo, mensagem) popup:addButton(100, "Confirm") popup:addButton(101, "Cancel") popup:addChoice(1, "Pergunta1") -- Aqui é onde voce vai adicionar as perguntas, basta seguir a sequencia popup:addChoice(2, "Pergunta2") popup:setDefaultEnterButton(100) popup:setDefaultEscapeButton(101) popup:sendToPlayer(cid) return true end 4) Em \data\creaturescripts\creaturescripts.xml registre a seguinte linha.
      <event type="modalwindow" name="modalwindowhelper" script="tutor.lua"/> 5) Em \data\creaturescripts\scripts crie o seguinte arquivo "tutor.lua" e adicione.
      function onModalWindow(cid, modalWindowId, buttonId, choiceId) cid:unregisterEvent("modalwindowhelper") local mensagem = { [1] = "Tutor Automatico: Resposta1", -- aqui é voce vai adicionar as respostas respeitando a sequencia [2] = "Tutor Automatico: Resposta2", } if modalWindowId == 1000 then if buttonId == 100 then for x = 1,#mensagem do if choiceId == x then cid:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, mensagem[x]) end end end end end Caso Tenha Ajudado +REP
      Créditos:  Yok 
    • Por cicinhobdr
      Estou criando meu server de ot pokemon só pra brinca mesmo sabe.
      Mas eu queria saber como colocar evento automático tipo de loteria, batalha PVP.....sei lah qualquer coisa.
      E que de para configurar hora sendo ele de hora em hora ou n e o prêmio que será dado ao vencedor.
       
      Desde já agradeço.
    • Por RenanPhellip
      Eai pessoal, já tentei 3 scripts de teleport automático mas os 3 não funcionaram!
      Preciso que o teleport apareça automaticamente no templo aos sábados às 18h e feche às 21h contendo broadcast nos 2 horários.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo