Ir para conteúdo
  • 0

Sistema de Minerio + Refinamento


igorlabanca

Pergunta

Primeiramente quero deixar bem claro que já conheço os sistemas de refinamentos ou "upgrades" para itens aqui do forum...

Porém esse que eu desejo é um pouco mais real e preciso dele para colocar no servidor que estou desenvolvendo...

 

Vamos lá, irei tentar explicar passo a passo:

divisor.png

 

 

1° Passo (Extraindo o Minerio)

 

O player da vocação (11, 16, 21) usa o item pick.gif (ID: 2553) Nessas Pedras ironmine.gif (ID's: 5619, 5620),

Com isso ele PODE OU NÂO Obter (70% Obter, 30% não obter) um Iron Ore ironore.gif (ID:5880)

 

 

OBS² : Ao player usar a pick nas pedras e obter sucesso aparecerá o efeito na pedra (CONST_ME_BLOCKHIT = 3)
Menssagem no server log: (Você obteve 1 iron ore!)

 

OBS³: Caso o player use a pick e não obter sucesso aparecerá o efeito na pedra (CONST_ME_HITAREA = 9 )
Menssagem no server log: (Você Falhou!)

 

OBS³: Após 20 "pikaretadas" (use da pick na pedra) as pedras vão se "quebrar" transformando-as nos itens (ID's: 5621,5622)

 

 

divisor.png

 

 

 

 

2° Ultimo Passo (Refinamento)

Após o player de vocação (11, 16, 21) ter o Iron Ore ironore.gif ele usará o iron hammer Iron_Hammer.gifnos itens definidos abaixo:
O player só pode refinar: (Sword's, Axe's, Club's, Helmet's. Armor's, Leg's, Shield's)
Nas Armas só aumentará o ATK e não a defesa. Obviamente nas armaduras e nos shields a defesa.



Abaixo segue a porcentagem de obter sucesso:
+1 (60%) +2 (50%) +3 (40%) +4 (30%) +5 (20%) +6 (10%) +7 (6%) +8 (4%) +9 (3%) +10 MÁXIMO (1%)

 

OBS¹: Caso o player obtenha sucesso Aparecerá o efeito no item (CONST_ME_CRAPS = 26)
e a Mensagem no server log (Você Refinou com sucesso)

OBS²: Caso o player não obtenha sucesso o item será transformado em um metal trash (ID: 2256) ainda com o efeito (CONST_ME_CRAPS = 26) .
e a Mensagem no server log (Você Falhou !)

 

 

divisor.png

 

 

 

Bom, esse sistema é de um servidor ao qual eu jogava, caso fiquem algumas duvidas eu fiz um video em 2012 (por isso essa voz mimi) de como funciona o sistema.

 




Bom pessoal então é isso !
espero que vocês possam me ajudar.
Obrigado.

UP

Editado por igorlabanca
Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Pow mano eu e a galera precisa muito desse do refine pow os que tem são tudo bugado pow , ajuda ai mano!

Posta ae para que outros que tiverem atras possam conseguir.

e o do cassino tbm pq esses scripts é tudo para por em ot bronson!

@UP

Editado por AdilsonTsunami
Link para o comentário
Compartilhar em outros sites

  • 0

Adilson o de refinamento não é tão simples assim, infezlimente para fazer igual o do bronson requer algumas coisas que o Killua não conseguiu fazer :/
Porém se alguem, com boa vontade quiser ajudar estamos ai !
e o script de cassino logo logo sera finalizado.

Link para o comentário
Compartilhar em outros sites

  • 0

Está aqui o Cassino funcionando perfeitamente =) O script ficou gigante pq tem muitos efeitos x.x

Tive a ilustre ajuda de meu amigo @zipter98 na execução do código :)


local bixos = {"Dog", "Deer", "Pig", "Rat"}
local positions = {{x = 133, y = 43, z = 7}, {x = 135, y = 43, z = 7}, {x = 137, y = 43, z = 7}}
local price = 5000
local prize = 50000

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local first = math.random(1, #bixos)
    local second = math.random(1, #bixos)
    local third = math.random(1, #bixos)
    local tab = {}
        
    if getGlobalStorageValue(82192) > os.time() then
        doPlayerSendCancel(cid, "Aguarde um pouco para apostar.")
        return true
    end
    
    if getPlayerMoney(cid) < price then
        doPlayerSendCancel(cid, "Voce precisa de " .. price .. " para jogar.")
    end
    
    setGlobalStorageValue(82192, os.time() + 6)
    for i = 1, (#positions) do
        doSendMagicEffect(positions[i], 22)
    end
    
    doPlayerRemoveMoney(cid, price)
    doCreateMonster(bixos[first], positions[1])
    doSendMagicEffect(positions[1], 26)
    addEvent(doSendMagicEffect, 100, positions[1], 31)
    table.insert(tab, first)
    setGlobalStorageValue(bixos[first], getGlobalStorageValue(bixos[first])+1) 
    addEvent(function()
        doCreateMonster(bixos[second], positions[2])
        doSendMagicEffect(positions[2], 26)
        addEvent(doSendMagicEffect, 100, positions[2], 31)
        table.insert(tab, second)
    end, 1000)
    addEvent(function()
        doCreateMonster(bixos[third], positions[3])
        doSendMagicEffect(positions[3], 26)
        addEvent(doSendMagicEffect, 100, positions[3], 31)
        setGlobalStorageValue(bixos[third], getGlobalStorageValue(bixos[third])+1)
        table.insert(tab, third)
    end, 2000)
    addEvent(function()
        doRemoveCreature(getTopCreature(positions[1]).uid)
        doRemoveCreature(getTopCreature(positions[2]).uid)
        doRemoveCreature(getTopCreature(positions[3]).uid)
            doSendMagicEffect(positions[1], 54)
            doSendMagicEffect(positions[2], 54)
            doSendMagicEffect(positions[3], 54)
        if tab[1] == tab[2] and tab[1] == tab[3] then
            doPlayerAddMoney(cid, prize)
            doSendAnimatedText(getThingPos(cid), "Voce", 93)
            addEvent(doSendAnimatedText, 800, getThingPos(cid), "Ganhou", 93)
            addEvent(doSendAnimatedText, 1600, getThingPos(cid), "" .. prize .."gps!", 93)
            doSendMagicEffect(getThingPos(cid), 30)
            doSendMagicEffect(positions[1], 30)
            doSendMagicEffect(positions[2], 30)
            doSendMagicEffect(positions[3], 30)
            addEvent(doSendMagicEffect, 800, getThingPos(cid), 29)
            addEvent(doSendMagicEffect, 800, positions[1], 29)
            addEvent(doSendMagicEffect, 800, positions[2], 29)
            addEvent(doSendMagicEffect, 800, positions[3], 29)
            addEvent(doSendMagicEffect, 1600, getThingPos(cid), 28)
            addEvent(doSendMagicEffect, 1600, positions[1], 28)
            addEvent(doSendMagicEffect, 1600, positions[2], 28)
            addEvent(doSendMagicEffect, 1600, positions[3], 28)
        else
            doSendAnimatedText(getThingPos(cid), "Voce", 93)
            addEvent(doSendAnimatedText, 800, getThingPos(cid), "Perdeu", 93)
            addEvent(doSendAnimatedText, 1600, getThingPos(cid), "=(", 93)
        end
end, 3500)
    return true
end
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...