Ir para conteúdo

CabralChoi

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    CabralChoi deu reputação a Bruno Minervino em TopLevel Effect   
    Fala galera,
     
    Um membro fez um pedido, e achei que deveria compartilhar com vocês, algo simples porém útil. Principalmente em OT's do estilo Baiak.
     
    O que o script faz ?
    Ele simplesmente manda um efeito para o Top Level caso ele estiver online.
     
    Instalação:

    Em data/creaturescripts/creaturescripts.xml adicione:
    <event type="login" name="TopEffect" event="script" value="topeffect.lua"/> <event type="advance" name="CheckTop" event="script" value="topeffect.lua"/> Agora crie um arquivo em data/creaturescripts/scripts com o nome topeffect.lua e adicione:
    --[[ Script by Bruno Minervino para o Tibia King Caso for postar, colocar os créditos ]] local config = { tempo = 10, --tempo em segundos mensagem = { texto = "[TOP]", --não use mais de 9 caracteres efeito = TEXTCOLOR_LIGHTBLUE --efeito para a função doSendAnimatedText }, efeito = 30, --efeito da função doSendMagicEffect globalstr = 5687 -- uma global storage qualquer q esteje vazia } --[[ Não mexa em nada abaixo ]] local topPlayer = getGlobalStorageValue(config.globalstr) > 0 and getGlobalStorageValue(config.globalstr) or 0 function onLogin(cid) local query = db.getResult("SELECT `id`, `name`, `level` FROM `players` WHERE `group_id` < 2 ORDER BY `level` DESC LIMIT 1") if (query:getID() ~= -1) then local pid = query:getDataString("id") local name = query:getDataString("name") if getPlayerName(cid) == name then if topPlayer ~= getPlayerID(cid) then topPlayer = getPlayerID(cid) end setGlobalStorageValue(config.globalstr, pid) TopEffect(cid) end end registerCreatureEvent(cid, "CheckTop") return true end function onAdvance(cid, skill, oldlevel, newlevel) if skill == 8 then local query = db.getResult("SELECT `id`, `name`, `level` FROM `players` WHERE `group_id` < 2 ORDER BY `level` DESC LIMIT 1") if (query:getID() ~= -1) then local level = tonumber(query:getDataString("level")) if level < newlevel and topPlayer ~= getPlayerID(cid) then doBroadcastMessage("O jogador " .. getPlayerName(cid) .. " tornou-se o novo Top Level. Parabens!", 22) topPlayer = getPlayerID(cid) doSaveServer() setGlobalStorageValue(config.globalstr, getPlayerID(cid)) TopEffect(cid) end end end return true end function TopEffect(cid) if not isPlayer(cid) then return true end if topPlayer == getPlayerID(cid) then doSendAnimatedText(getCreaturePosition(cid), config.mensagem.texto, config.mensagem.efeito) doSendMagicEffect(getCreaturePosition(cid), config.efeito) addEvent(TopEffect, config.tempo * 1000, cid) end end function getPlayerNameById(id) local query = db.getResult("SELECT `name` FROM `players` WHERE `id` = " .. db.escapeString(id)) if query:getID() ~= -1 then return query:getDataString("name") end return 0 end function getPlayerIdByName(name) local query = db.getResult("SELECT `id` FROM `players` WHERE `name` = " .. db.escapeString(name)) if query:getID() ~= -1 then return tonumber(query:getDataString("id")) end return 0 end function getPlayerID(cid) return getPlayerIdByName(getPlayerName(cid)) end  
    Espero ajudar!
  2. Gostei
    CabralChoi deu reputação a Kimoszin em [CreatureEvent] Efeito no Player   
    Bom pessoal, criei esse script totalmente inutil e util para vocês, espero que gostem

    - Oque exatamente ele faz?
    Nada, ele só verifica se o player tem uma storage e se o player tiver, quando ele logar vai aparecer um efeito em um tempo configuravel,
    Por Exemplo, o player é VIP, ai o seu system vip tem uma storage, você adiciona essa storage no script e o player vai ficar com um efeito, ou ...
    Tem aquela super quest fodona em seu servidor, pq nao mostrar para os outros que aquele player conseguiu fazer? *-*

    - Nossa que legal, como posso ter isso no meu servidor?
    Simples amigo, basta você ir em \data\creaturescripts\scripts, depois adicionar um registro no login.lua e adicionar uma linha em creaturescripts.xml

    effect.lua

    local effect = 30 -- Efeito que vai usar local storage = 9994 -- Storage que o player precisa ter local tempo = 5 -- Tempo em segundos function onLogin(cid) if getPlayerStorageValue(cid, storage) == 1 then SendEffect(cid) end return TRUE end function SendEffect(cid) doSendMagicEffect(getCreaturePosition(cid), effect) addEvent(SendEffect, tempo*1000, cid) return TRUE end Agora adicione isso em login.lua registerCreatureEvent(cid, "Effect") Agora adicione esse code em creaturescripts.xml <event type="login" name="Effect" event="script" value="effect.lua"/>

    Uma Fotinho para ver, estou usando o efeito 30


    Abraços...
  3. Gostei
    CabralChoi deu reputação a Lyu em Death System 2016 versão frag consecutivo!   
    Fala rapaziada, quanto tempo sem publicar algo aqui! Bom, hoje eu venho trazer um sisteminha que é bem utilizado atualmente.
    Estou falando o Death System! Porém, com algumas coisinhas a mais.
     
    Testado em OTX Server 8.60..
     
    Como funciona?
    O Death System em alguns servidores possui um channel chamado "Mortes" ou "Death Channel",
    mas há alguns servidores que preferem que seja anunciado no default mesmo e a função é informar
    quem matou quem, ou quem foi morto por certo monstro.
     
    O que há de novo?
    Bom, agora quem matar x jogadores(configurável) e essa quantia for uma consecutiva, será anunciado isso :

     
    E se algum jogador derrotá-lo dentro a consecutiva, será anunciado isso :

     
    Vamos ao sistema :
    em data/XML/channels.xml, adicione isso :
    <channel id="15" name="Death Channel"/> em data/creaturescripts/creaturescripts.xml :
    <event type="death" name="deathchannel" event="script" value="deathchannel.lua"/> em data/creaturescripts/login.lua, adicione isso antes do último return true :
    registerCreatureEvent(cid, "deathchannel") em data/creaturescripts/scripts, crie um arquivo deathchannel.lua e cole isso dentro :
    -- Coded by Zoom.. local info, win, lose = "%s [Level: %s] foi mort%s pelo %s %s%s", "%s obteve %s frags seguidos após derrotar %s.", "%s acabou de impedir que %s fizesse uma sequência de %s frags seguidos." local frags, storage = {10, 15, 20, 25, 30, 35, 40, 45, 50}, 30045 function onDeath(cid, corpse, deathList) if(not isPlayer(cid)) then return true end local target = deathList[1] doCreatureSetStorage(target, storage, getCreatureStorage(target, storage) + (getCreatureStorage(target, storage) == -1 and 2 or 1)) for _, pid in ipairs(getPlayersOnline()) do doPlayerSendChannelMessage(pid, '', info:format(getCreatureName(cid), getPlayerLevel(cid), getPlayerSex(cid) == 1 and "o" or "a", isPlayer(target) and "player" or "monstro", getCreatureName(target), isPlayer(target) and " [Level: "..getPlayerLevel(target).."]." or "."), TALKTYPE_CHANNEL_ORANGE, 0xF) for _, frag in ipairs(frags) do if(getCreatureStorage(target, storage) == frag) then doPlayerSendChannelMessage(pid, '', win:format(getCreatureName(target), frag, getCreatureName(cid)), TALKTYPE_CHANNEL_MANAGEMENT, 0xF) end if(getCreatureStorage(cid, storage) >= frag) then doPlayerSendChannelMessage(pid, '', lose:format(getCreatureName(target), getCreatureName(cid), getCreatureStorage(cid, storage)+1), TALKTYPE_GAMEMASTER_CHANNEL, 0xF) end end end doCreatureSetStorage(cid, storage, 0) return true end Há uma única configuração, que é as consecutivas :
    local frags = {10, 15, 20, 25, 30, 35, 40, 45, 50}
    completou 10 frags? anuncia! e assim sucessivamente..
     
    Créditos : EU
  4. Gostei
    CabralChoi deu reputação a Smart Maxx em [GlobalEvents] Perfect Zombie Event 100% automatico   
    Primeiramente o evento foi testado num servidor 8.6, TFS 0.4, sem apresentar nenhum problema.
     
     
     
     
    Em data/creaturescripts/scripts  crie o arquivo zombieevent.lua :
     
    local config = {     playerCount = 2001, -- Storage dos players que entram e sai do evento          goblet = 5805, -- Troféu que vai pro vencedor do evento     rewards = {2195, 2152, 2160}, -- Recompensas.            moneyReward = {2160, 10, 1}, -- {moneyId, quantidade, usar}1 pra usar 0 pra não usar}          -- Area que o zumbi vai spawnar     fromPosition = {x = 543, y = 578, z = 7}, -- top de fromPosition até     toPosition = {x = 577, y = 600, z = 7} -- em baixo toPostion     } function onStatsChange(cid, attacker, type, combat, value)     if isPlayer(cid) and isMonster(attacker) then         if isInArea(getPlayerPosition(cid), config.fromPosition, config.toPosition) then             if getGlobalStorageValue(config.playerCount) >= 2 then                 doBroadcastMessage(getPlayerName(cid) .. " have been eated by Zombies!", MESSAGE_STATUS_CONSOLE_RED)                 local corpse = doCreateItem(3058, 1, getPlayerPosition(cid))                 doItemSetAttribute(corpse, "description", "You recognize " .. getCreatureName(cid) .. ". He was killed by "..(isMonster(attacker) and "a "..string.lower(getCreatureName(attacker)) or isCreature(attacker) and getCreatureName(attacker) or "a field item")..".")                 doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)                 doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false)                 doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT)                 setGlobalStorageValue(config.playerCount, getGlobalStorageValue(config.playerCount)-1)             elseif getGlobalStorageValue(config.playerCount) == 1 then                 if isInArea(getPlayerPosition(cid), config.fromPosition, config.toPosition) then                     doBroadcastMessage(getPlayerName(cid) .. " won the Zombie event! Congratulations!", MESSAGE_STATUS_WARNING)                     local goblet = doPlayerAddItem(cid, config.goblet, 1)                     doItemSetAttribute(goblet, "description", "Awarded to " .. getPlayerName(cid) .. " for winning the Zombie event.")                     local corpse = doCreateItem(3058, 1, getPlayerPosition(cid))                     doItemSetAttribute(corpse, "description", "You recognize " .. getCreatureName(cid) .. ". He was killed by "..(isMonster(attacker) and "a "..string.lower(getCreatureName(attacker)) or isCreature(attacker) and getCreatureName(attacker) or "a field item")..".")                     doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)                     doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false)                     doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT)                     for _,items in ipairs(config.rewards) do                         doPlayerAddItem(cid, items, 1)                     end                     if config.moneyReward[3] == 1 then                         doPlayerAddItem(cid, config.moneyReward[1], config.moneyReward[2])                     end                 end                                          for x = config.fromPosition.x, config.toPosition.x do                     for y = config.fromPosition.y, config.toPosition.y do                         for z = config.fromPosition.z, config.toPosition.z do                             areapos = {x = x, y = y, z = z, stackpos = 253}                             getMonsters = getThingfromPos(areapos)                             if isMonster(getMonsters.uid) then                                 doRemoveCreature(getMonsters.uid)                             end                         end                     end                 end             end             return false         end     end return true end Na mesma pasta  em login.lua antes do ultimo return true adicione :
    registerCreatureEvent(cid, "zombieevent") Agora em data/creaturescripts adicione em creturescripts.XML :
    <!-- ZOMBIE EVENT -->    <event type="statschange" name="zombieevent" event="script" value="zombieevent.lua"/> Agora vamos em data/monster crie uma pasta com o nome ZombieEvent e dentro dessa pasta crie o arquivo chamado event zombie.XML :
    <?xml version="1.0" encoding="UTF-8"?><monster name="Event Zombie" nameDescription="an event zombie" race="undead" experience="280" speed="100" manacost="0">     <health now="500" max="500"/>     <look type="311" corpse="9875"/>     <targetchange interval="5000" chance="50"/>     <strategy attack="100" defense="0"/>     <flags>         <flag summonable="0"/>         <flag attackable="0"/>         <flag hostile="1"/>         <flag illusionable="0"/>         <flag convinceable="0"/>         <flag pushable="0"/>         <flag canpushitems="1"/>         <flag canpushcreatures="1"/>         <flag targetdistance="1"/>         <flag staticattack="90"/>         <flag runonhealth="0"/>     </flags>     <attacks>         <attack name="melee" interval="2000" min="-35000" max="-35000"/>     </attacks>     <defenses armor="15" defense="10"/>     <immunities>         <immunity paralyze="1"/> <immunity invisible="1"/>     </immunities>     <voices interval="5000" chance="10">         <voice sentence="You wont last long!"/>         <voice sentence="Mmmmh.. braains!"/>     </voices>     <loot>         <item id="2148" countmax="1" chance="100000"/><!-- gold coin -->     </loot> </monster> voltando pra pasta data/monster abra o arquivo monsters.XML  e adicione :
    <!-- ZombieEvent --> <monster name="event zombie" file="ZombieEvent/event zombie.xml"/> tudo ok até aqui ... então vamos pra pasta data/movements/scripts crie zombieevent.lua :
    local config = {    playerCount = 2001, -- Storage do players do evento     maxPlayers = 20, -- Maximo de players pra partiparem do evento     minLevel = 17 -- Level minimo pra entrar no evento     }      function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) if getPlayerLevel(cid) < config.minLevel then         addEvent(tpBack, 1000, cid, fromPosition)         doPlayerSendCancel(cid, "You need to be at least level " .. config.minLevel .. ".")         return false end     if getGlobalStorageValue(config.playerCount) < config.maxPlayers then         setGlobalStorageValue(config.playerCount, getGlobalStorageValue(config.playerCount)+1)         if getGlobalStorageValue(config.playerCount) == config.maxPlayers then             doBroadcastMessage("The Zombie event is now full [" .. getGlobalStorageValue(config.playerCount) .. " players]! The event will soon start.")         else                 doBroadcastMessage(getPlayerName(cid) .. " entered the Zombie event! Currently " .. getGlobalStorageValue(config.playerCount) .. " players have joined!", MESSAGE_STATUS_CONSOLE_RED)         end         else         addEvent(tpBack, 1000, cid, fromPosition)         doPlayerSendCancel(cid, "The event is full. There is already " .. config.maxPlayers .. " players participating in the quest.")         return false     end     print(getStorage(config.playerCount) .. " Players in the zombie event.")     return true end function tpBack(cid, fromPosition)     doTeleportThing(cid, fromPosition, true)     doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT) end voltando pra data/movements abra o arquivo movements.XML e adicione :
     
     <!-- ZOMBIE event -->     <movevent type="StepIn" actionid="2008" event="script" value="zombieevent.lua"/> agora vamos pra parte mais importante e que devemos mais prestar atenção... 
     
    em data/globalevents/scripts crie zombieevent.lua :
    local config = {    semana_mes = "semana",     days = {1,2,3,4,5,6,7}, -- Dia das semanas que irá acontecer o evento     goblet = 5805, -- Troféu que vai pro vencedor do evento     rewards = {2195, 2152, 2160}, -- Recompensas.        moneyReward = {2160, 10, 1},-- {moneyId, quantidade, usar}1 pra usar 0 pra não usar}     playerCount = 2001, -- Storage dos players que entram e sai do evento     zombieCount = 2002, -- Storage do zombie do event     teleportActionId = 2008, -- Action ID do teleport     teleportPosition = {x = 652, y = 1020, z = 7, stackpos = 1}, -- Onde o teleport é criado     teleportToPosition = {x = 559, y = 589, z = 7}, -- Pra onde será teleportado     teleportId = 1387, -- ID do teleporte     timeToStartEvent = 2, -- Minutos que o portal irá ficar aberto até os player entrarem     timeBetweenSpawns = 20, -- Segundos dps do evento ser startado começarem a aparecer os zombie     zombieName = "event zombie", -- Nome do zombie sumonado     playersNeededToStartEvent = 3, -- Players necessários pro evento ser iniciado          -- Area que o zumbi vai spawnar     fromPosition = {x = 543, y = 578, z = 7}, -- top de fromPosition até     toPosition = {x = 577, y = 600, z = 7} -- -- em baixo toPostion     } function onTime()     local time = os.date("*t")     if (config.semana_mes == "semana" and isInArray(config.days,time.wday)) or (config.semana_mes == "mes" and isInArray(config.days,time.day)) or config.semana_mes == "" then    local tp = doCreateTeleport(config.teleportId, config.teleportToPosition, config.teleportPosition)    doItemSetAttribute(tp, "aid", config.teleportActionId)    doBroadcastMessage("Zombie event starting in " .. config.timeToStartEvent .. " minutes! The teleport will be closed when the event start!", MESSAGE_STATUS_WARNING)    setGlobalStorageValue(config.playerCount, 0)    setGlobalStorageValue(config.zombieCount, 0)    addEvent(startEvent, config.timeToStartEvent * 1000 * 60)     end     return TRUE end function startEvent()             local fromp, top = config.fromPosition, config.toPosition     if getGlobalStorageValue(config.playerCount) >= config.playersNeededToStartEvent then         addEvent(spawnZombie, config.timeBetweenSpawns * 1000)         doBroadcastMessage("Good luck in the zombie event people! The teleport has closed!", MESSAGE_STATUS_WARNING)                  for x = fromp.x, top.x do             for y = fromp.y, top.y do                 for z = fromp.z, top.z do                     areapos = {x = x, y = y, z = z, stackpos = 253}                     getPlayers = getThingfromPos(areapos)                     if isPlayer(getPlayers.uid) then                         doPlayerSendTextMessage(getPlayers.uid, MESSAGE_EVENT_ADVANCE, "The first zombie will spawn in " .. config.timeBetweenSpawns .. " seconds! Good luck!") pvgaylord()                     end                 end             end         end     else         doBroadcastMessage("The Zombie event could not start because of to few players participating.\n At least " .. config.playersNeededToStartEvent .. " players is needed!", MESSAGE_STATUS_WARNING)         for x = fromp.x, top.x do             for y = fromp.y, top.y do                 for z = fromp.z, top.z do                     areapos = {x = x, y = y, z = z, stackpos = 253}                     getPlayers = getThingfromPos(areapos)                     if isPlayer(getPlayers.uid) then                         doTeleportThing(getPlayers.uid, getTownTemplePosition(getPlayerTown(getPlayers.uid)), false)                         doSendMagicEffect(getPlayerPosition(getPlayers.uid), CONST_ME_TELEPORT)                     end                 end             end         end     end end function spawnZombie()     if getGlobalStorageValue(config.playerCount) >= 2 then         pos = {x = math.random(config.fromPosition.x, config.toPosition.x), y = math.random(config.fromPosition.y, config.toPosition.y), z = math.random(config.fromPosition.z, config.toPosition.z)}         doSummonCreature(config.zombieName, pos)         doSendMagicEffect(pos, CONST_ME_MORTAREA)         setGlobalStorageValue(config.zombieCount, getGlobalStorageValue(config.zombieCount)+1)         doBroadcastMessage("A zombie has spawned! There is currently " .. getGlobalStorageValue(config.zombieCount) .. " zombies in the zombie event!", MESSAGE_STATUS_CONSOLE_RED)         addEvent(spawnZombie, config.timeBetweenSpawns * 1000)     else local fromp, top = config.fromPosition, config.toPosition         for x = fromp.x, top.x do             for y = fromp.y, top.y do                 for z = fromp.z, top.z do                     areapos = {x = x, y = y, z = z, stackpos = 253}                     cid = getThingfromPos(areapos).uid                     if isPlayer(cid) then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) doBroadcastMessage(getCreatureName(cid)..' has survived at zombie event!')                   for _,items in ipairs(config.rewards) do               doPlayerAddItem(cid, items, 1)       end               if config.moneyReward[3] == 1 then         doPlayerAddItem(cid, config.moneyReward[1], config.moneyReward[2])         end                 doBroadcastMessage(getPlayerName(cid) .. " won the Zombie event! Congratulations!", MESSAGE_STATUS_WARNING)                local goblet = doPlayerAddItem(cid, config.goblet, 1)                doItemSetAttribute(goblet, "description", "Awarded to " .. getPlayerName(cid) .. " for winning the Zombie event.")    elseif isMonster(cid) then doRemoveCreature(cid)                     end                 end             end         end     end end function pvgaylord() local fromp, top, p, m = config.fromPosition, config.toPosition, 0, 0 for x = fromp.x, top.x do             for y = fromp.y, top.y do                 for z = fromp.z, top.z do                     local areapos = {x = x, y = y, z = z, stackpos = 253}                     local cid = getThingfromPos(areapos).uid                     if isPlayer(cid) then p = p+1    elseif isMonster(cid) then m = m+1                     end                 end             end         end if p ~= getGlobalStorageValue(config.playerCount) then setGlobalStorageValue(config.playerCount, p) end if p < 2 then return true end addEvent(pvgaylord,100,nil) end na mesma pasta crie o arquivo fechazombie.lua :
    local teleportPos = {x = 652, y = 1020, z = 7, stackpos = 1} -- Posição em que se abre o teleport local teleportId = 1387 function onTimer()     for i = 1, 255 do         teleportPos.stackpos = i         if getThingFromPos(teleportPos).itemid == teleportId then             doRemoveItem(getThingFromPos(teleportPos).uid, 1)         end     end     return true end agora em data/globalevents abra o arquivo globalevents.XML e adicione :
     
    <globalevent name="zombieevent" time="23:41" event="script" value="zombieevent.lua"/> <globalevent name="zombieventt" time="23:43" event="script" value="fechazombie.lua"/> Importante : time="Horário que irá acontecer o evento" e no fechazombie coloque 2 minutos a mais da hora que vc colocou pra iniciar, para assim fechar o teleport na hora em que o evento é startado (configuração padrão do script, se alterar lá terá que alterar aqui tb)
     
     
     
     
     
    Agora só abrir e desfrutar do seu novo sistema...
     
     
    Download de mapas :
     
    http://tibiaking.com...apa-modificado/ - tiago.bordin1988
    http://tibiaking.com...mbie-event-v10/ - ricardo3
    http://tibiaking.com...map-86-inovado/ - OhGod
    http://www.speedysha...ombieEvent.otbm
     
     
     
     
     
     
     
    Créditos...
    Fausto32
    Sociopata
    Orochi Elf
    Phowned
    Smart Maxx
     
     
  5. Gostei
    CabralChoi deu reputação a AgaSsI em [Sistema] Auto Loot   
    creaturescripts.xml
      <event type="login" name="aloot_reg" event="script" value="aloot.lua"/> <event type="kill" name="aloot_kill" event="script" value="aloot.lua"/> creaturescripts/scritps aloot.lua
      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 talkactios.xml
      <talkaction words="/aloot" hide="yes" event="script" value="aloot.lua"/> Talkaction/scrips
      local stor, limit = 7575, 5 --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 Usando
    /aloot check
    Cheka a Lista dos Loots
    /aloot add:itemid ou nome do item
    Exemplo
    /aloot add:worm
    /aloot add:2170
    16:42 Item >>worm<< has been added to the autoloot list.
    Para remover
    /aloot remove:worm
    /aloot remove:2170
    Exemplo Testado:
    16:41 Looted 2 gold coin.
    16:41 Looted 1 cheese.
    CREDITOS: eduardobean
    é isso pessoal gosto da + Rep

Informação Importante

Confirmação de Termo