Ir para conteúdo
Banner com Efeitos

Featured Replies

Postado

.Qual servidor ou website você utiliza como base? 

12.98 RkDiazGlobal - TFS 1.6

Qual o motivo deste tópico? 

queria implantar essa script abaixo no meu otserver mais nao tem o actions.xml para registrar. ja tentei colocar "roleta:register()"  mais da erro na linha do register

Está surgindo algum erro? Se sim coloque-o aqui. 

Citar

local decayItems = {
    [1945] = 1946, [1946] = 1945
}
local slots = {
    -- aqui sao os slots da esteira, por onde os itens vao ir passando... podem ser adicionados quantos quiser...
    Position(32364, 32183, 6), Position(32365, 32183, 6), Position(32366, 32183, 6), Position(32367, 32183, 6),    Position(32368, 32183, 6),
    Position(32369, 32183, 6), Position(32370, 32183, 6), Position(32371, 32183, 6), Position(32372, 32183, 6),    Position(32373, 32183, 6),
    Position(32374, 32183, 6), Position(32375, 32183, 6), Position(32376, 32183, 6)
}

local itemtable = {
    --aqui pode ter ate 100 itens.. a chance nunca pode se repetir, ela deve ser de 1 a 100...
    -- inserir os itens respeitando a ordem: [1], [2], [3], ...  ate o ultimo [100]
    [1] = {id = 2148, chance = 1},
    [2] = {id = 2398, chance = 5},
    [3] = {id = 2386, chance = 10},
    [4] = {id = 2643, chance = 15},
    [5] = {id = 2461, chance = 20},
    [6] = {id = 2510, chance = 25},
    [7] = {id = 2649, chance = 30},
    [8] = {id = 2643, chance = 35},
    [9] = {id = 2647, chance = 40},
    [10] = {id = 9078, chance = 45},
    [11] = {id = 2490, chance = 50},
    [12] = {id = 2457, chance = 55},
    [13] = {id = 2152, chance = 60},
    
    [14] = {id = 2160, chance = 95},
    [15] = {id = 2159, chance = 99}
}

local function ender(cid, position)
    local player = Player(cid)
    local posicaofim = Position(32370, 32183, 6) -- AQUI VAI APARECER A SETA, que define o item que o player ganhou
    local item = Tile(posicaofim):getTopDownItem()
    if item then
        local itemId = item:getId()
        posicaofim:sendMagicEffect(CONST_ME_TUTORIALARROW)
        player:addItem(itemId, 1)
    end
    local alavanca = Tile(position):getTopDownItem()
    if alavanca then
        alavanca:setActionId(18562) -- aqui volta o actionid antigo, para permitir uma proxima jogada...
    end
    if itemId == 2159 or itemId == 2160 then --checar se é o ID do item LENDARIO
        broadcastMessage("O player "..player:getName().." ganhou "..item:getName().."", MESSAGE_EVENT_ADVANCE) -- se for item raro mandar no broadcast
        
        for _, pid in ipairs(getPlayersOnline()) do
            if pid ~= cid then
                pid:say("O player "..player:getName().." ganhou "..item:getName().."", TALKTYPE_MONSTER_SAY) -- se nao for lendario, mandar uma mensagem comum
            end
        end
    end
end

local function delay(position, aux)
    local item = Tile(position):getTopDownItem()
    if item then
        local slot = aux + 1
        item:moveTo(slots[slot])
    end    
end

local function exec(cid)
    --calcular uma chance e atribuir um item
    local rand = math.random(1, 100)
    local aux, memo = 0, 0
    if rand >= 1 then
        for i = 1, #itemtable do
            local randitemid = itemtable[i].id
            local randitemchance = itemtable[i].chance
            if rand >= randitemchance then
                aux = aux + 1
                memo = randitemchance
            end
            
        end
    end
    -- Passo um: Criar um item no primeiro SLOT, e deletar se houver o item do ultimo slot.
    Game.createItem(itemtable[aux].id, 1, slots[1])
    slots[1]:sendMagicEffect(CONST_ME_POFF)
    local item = Tile(slots[#slots]):getTopDownItem()
    if item then
        item:remove()
    end
    --Passo dois: Mover itens para o proximo slot em todos os slots de 1 a 12 para o 2 > 13
    local maxslot = #slots-1
    local lastloop = 0
    for i = 1, maxslot do
        
        addEvent(delay, 1*1*60, slots[i], i)
    end
end

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local player = Player(cid)
    if not player then
        return false
    end
    if not player:removeItem(5091, 1) then -- PARA JOGAR o player precisa ter o item 5091, que representa um bilhete vendido na store ou em um npc....
        return false
    end
    
    item:transform(decayItems[item.itemid])
    item:decay()    
    --muda actionid do item para nao permitir executar duas instancias
    item:setActionId(18563)
    
    local segundos = 30
    local loopsize = segundos*2
    
    for i = 1, loopsize do
        addEvent(exec, 1*i*500, cid.uid)
    end
    addEvent(ender, (1*loopsize*500)+1000, cid.uid, fromPosition)
    
    return true
end

 

Você tem o código disponível? Se tiver publique-o aqui: 

 

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

 

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.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo