Ir para conteúdo

Featured Replies

Postado

Salve rapaziada!

 

Estou com um script que ao clicar em um item vc irá Sumonar 3 Digimons selvagens para o player matar.

 

Porém os 3 digimons que são sumonados são sempre os mesmos (1 de cada). Gostaria de modificar o script onde tenha uma lista com vários digimons (uns 20 mais ou menos) e ao usar o item continue sumonando apenas 3, só que aleatórios, 3 digimons dentro dessa lista de 20.

 

Alguém consegue me ajudar a modificar isso? Vou deixar o script aqui.

 

Outra coisa, se for possível gostaria que os Digimons fiquem sumonados por apenas X segundos. Depois desse tempo se não forem derrotados eles somem.

 

Spoiler

local config = {
    
    name1 = "Koromon", -- Nome do Summon
    name2 = "Sunmon", -- Nome do Summon
    name3 = "Yokomon", -- Nome do Summon
    exaust_sto = 5555, -- Storage que contabiliza o exaust
    exaust_time = 60 -- Segundos de Exaust
    
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local pos = getCreaturePosition(cid)
        if getTileInfo(getThingPos(cid)).protection then 
            return doPlayerSendCancel(cid, "Este item nao pode ser usado em area PZ") and doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) and false
        else if not exhaustion.check(cid, config.exaust_sto) then
            doPlayerRemoveItem(cid, 17830, 1)
            exhaustion.set(cid, config.exaust_sto, config.exaust_time)
            local target1 = doCreateMonster(config.name1, pos)
            local target2 = doCreateMonster(config.name2, pos)
            local target3 = doCreateMonster(config.name3, pos)
            doPlayerSendTextMessage(cid, 27, "Voce invocou o monstro!!")
            doSendMagicEffect(pos, CONST_ME_TELEPORT)    
            return true     
        else
            doPlayerSendTextMessage(cid, 27, "Exhaustion!! Wait ".. exhaustion.get(cid, config.exaust_sto) .." seconds.")
            doSendMagicEffect(pos, POFF)
            return false
        end
    end
    return true
end

Spoiler

 

 

Editado por MIzakinha (veja o histórico de edições)

Resolvido por MIzakinha

Ir para solução
Postado

Desistiu do pokemon ? agora é digimon ? kk, brincadeiras a parte com base no seu script, testa esse:

 

local NUMBER = math.random(1,5) -- Alterar o numero maximo pelo numero final da tabela.
local NUMBER2 = math.random(1,5) -- Alterar o numero maximo pelo numero final da tabela.
local NUMBER3 = math.random(1,5) -- Alterar o numero maximo pelo numero final da tabela.
local KEY = {
	[1] = "Demon",
	[2] = "Dragon",
	[3] = "Demodras",
	[4] = "Hydra",
	[5] = "Rotworm",	
}

local config = {
    exaust_sto = 5555, -- Storage que contabiliza o exaust
    exaust_time = 60 -- Segundos de Exaust
    
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local pos = getCreaturePosition(cid)
	local VALUE = KEY[NUMBER]
	local VALUE2 = KEY[NUMBER2]
	local VALUE3 = KEY[NUMBER3]
	local MONSTER_1 = VALUE
	local MONSTER_2 = VALUE2
	local MONSTER_3 = VALUE3
        if getTileInfo(getThingPos(cid)).protection then 
            return doPlayerSendCancel(cid, "Este item nao pode ser usado em area PZ") and doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) and false
        else if not exhaustion.check(cid, config.exaust_sto) then
            doRemoveItem(item.uid, 1)
            exhaustion.set(cid, config.exaust_sto, config.exaust_time)
            local target1 = doCreateMonster(MONSTER_1, pos)
			local target2 = doCreateMonster(MONSTER_2, pos)
			local target3 = doCreateMonster(MONSTER_3, pos)
            doPlayerSendTextMessage(cid, 27, "Voce invocou o monstro!!")
            doSendMagicEffect(pos, CONST_ME_TELEPORT)    
            return true     
        else
            doPlayerSendTextMessage(cid, 27, "Exhaustion!! Wait ".. exhaustion.get(cid, config.exaust_sto) .." seconds.")
            doSendMagicEffect(pos, POFF)
            return false
        end
    end
    return true
end

 

 

Quanto ao monstro sumir, isso está além do meu conhecimento.

Postado
  • Autor
  • Solução
47 minutos atrás, WhiteBubble disse:

Desistiu do pokemon ? agora é digimon ? kk, brincadeiras a parte com base no seu script, testa esse:

 


local NUMBER = math.random(1,5) -- Alterar o numero maximo pelo numero final da tabela.
local NUMBER2 = math.random(1,5) -- Alterar o numero maximo pelo numero final da tabela.
local NUMBER3 = math.random(1,5) -- Alterar o numero maximo pelo numero final da tabela.
local KEY = {
	[1] = "Demon",
	[2] = "Dragon",
	[3] = "Demodras",
	[4] = "Hydra",
	[5] = "Rotworm",	
}

local config = {
    exaust_sto = 5555, -- Storage que contabiliza o exaust
    exaust_time = 60 -- Segundos de Exaust
    
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local pos = getCreaturePosition(cid)
	local VALUE = KEY[NUMBER]
	local VALUE2 = KEY[NUMBER2]
	local VALUE3 = KEY[NUMBER3]
	local MONSTER_1 = VALUE
	local MONSTER_2 = VALUE2
	local MONSTER_3 = VALUE3
        if getTileInfo(getThingPos(cid)).protection then 
            return doPlayerSendCancel(cid, "Este item nao pode ser usado em area PZ") and doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) and false
        else if not exhaustion.check(cid, config.exaust_sto) then
            doRemoveItem(item.uid, 1)
            exhaustion.set(cid, config.exaust_sto, config.exaust_time)
            local target1 = doCreateMonster(MONSTER_1, pos)
			local target2 = doCreateMonster(MONSTER_2, pos)
			local target3 = doCreateMonster(MONSTER_3, pos)
            doPlayerSendTextMessage(cid, 27, "Voce invocou o monstro!!")
            doSendMagicEffect(pos, CONST_ME_TELEPORT)    
            return true     
        else
            doPlayerSendTextMessage(cid, 27, "Exhaustion!! Wait ".. exhaustion.get(cid, config.exaust_sto) .." seconds.")
            doSendMagicEffect(pos, POFF)
            return false
        end
    end
    return true
end

 

 

Quanto ao monstro sumir, isso está além do meu conhecimento.

Sempre foi digimon kkkk, eu colocava pokemon pq a galera nao ta acostuma com digimon eu acho, no script é a mesma coisa entao n tinha problema haha

 

Vou testar aqui se deu certo, obrigado!

1 hora atrás, WhiteBubble disse:

Desistiu do pokemon ? agora é digimon ? kk, brincadeiras a parte com base no seu script, testa esse:

 


local NUMBER = math.random(1,5) -- Alterar o numero maximo pelo numero final da tabela.
local NUMBER2 = math.random(1,5) -- Alterar o numero maximo pelo numero final da tabela.
local NUMBER3 = math.random(1,5) -- Alterar o numero maximo pelo numero final da tabela.
local KEY = {
	[1] = "Demon",
	[2] = "Dragon",
	[3] = "Demodras",
	[4] = "Hydra",
	[5] = "Rotworm",	
}

local config = {
    exaust_sto = 5555, -- Storage que contabiliza o exaust
    exaust_time = 60 -- Segundos de Exaust
    
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local pos = getCreaturePosition(cid)
	local VALUE = KEY[NUMBER]
	local VALUE2 = KEY[NUMBER2]
	local VALUE3 = KEY[NUMBER3]
	local MONSTER_1 = VALUE
	local MONSTER_2 = VALUE2
	local MONSTER_3 = VALUE3
        if getTileInfo(getThingPos(cid)).protection then 
            return doPlayerSendCancel(cid, "Este item nao pode ser usado em area PZ") and doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) and false
        else if not exhaustion.check(cid, config.exaust_sto) then
            doRemoveItem(item.uid, 1)
            exhaustion.set(cid, config.exaust_sto, config.exaust_time)
            local target1 = doCreateMonster(MONSTER_1, pos)
			local target2 = doCreateMonster(MONSTER_2, pos)
			local target3 = doCreateMonster(MONSTER_3, pos)
            doPlayerSendTextMessage(cid, 27, "Voce invocou o monstro!!")
            doSendMagicEffect(pos, CONST_ME_TELEPORT)    
            return true     
        else
            doPlayerSendTextMessage(cid, 27, "Exhaustion!! Wait ".. exhaustion.get(cid, config.exaust_sto) .." seconds.")
            doSendMagicEffect(pos, POFF)
            return false
        end
    end
    return true
end

 

 

Quanto ao monstro sumir, isso está além do meu conhecimento.

Então, acho que não funcionou. Tá sumonando sempre os mesmos. Sumona dois do [1] e um do [2]. Sempre eles. Não tá aleatório

Consegui resolver, modifiquei um pouco o script que o @WhiteBubble mandou ai em cima e funcionou. Obrigado @WhiteBubble pela ajuda mais uma vez.

 

Pra quem quiser vou deixar aqui embaixo 

Spoiler

local KEY = {
    [1] = "Card Yokomon",
    [2] = "Card Koromon",
    [3] = "Card Sunmon",    
}
local config = {
    exaust_sto = 5555, -- Storage que contabiliza o exaust
    exaust_time = 60 -- Segundos de Exaust
    
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
    local NUMBER = math.random(1,3) -- Alterar o numero maximo pelo numero final da tabela.
    local NUMBER2 = math.random(1,3) -- Alterar o numero maximo pelo numero final da tabela.
    local NUMBER3 = math.random(1,3) -- Alterar o numero maximo pelo numero final da tabela.    
    local pos = getCreaturePosition(cid)
    local VALUE = KEY[NUMBER]
    local VALUE2 = KEY[NUMBER2]
    local VALUE3 = KEY[NUMBER3]
    local MONSTER_1 = VALUE
    local MONSTER_2 = VALUE2
    local MONSTER_3 = VALUE3
        if getTileInfo(getThingPos(cid)).protection then 
            return doPlayerSendCancel(cid, "Este item nao pode ser usado em area PZ") and doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) and false
        else if not exhaustion.check(cid, config.exaust_sto) then
            doRemoveItem(item.uid, 1)
            exhaustion.set(cid, config.exaust_sto, config.exaust_time)
            doCreateMonster(MONSTER_1, pos)
            doCreateMonster(MONSTER_2, pos)
            doCreateMonster(MONSTER_3, pos)
            doPlayerSendTextMessage(cid, 27, "Voce invocou o monstro!!")
            doSendMagicEffect(pos, CONST_ME_TELEPORT)    
            return true     
        else
            doPlayerSendTextMessage(cid, 27, "Exhaustion!! Wait ".. exhaustion.get(cid, config.exaust_sto) .." seconds.")
            doSendMagicEffect(pos, POFF)
            return false
        end
    end
    return true
end

 

Postado

O script que fiz é aleatório só que como no caso você usou apenas 3 monstros a chance de sair o mesmo é maior, como exemplo um dado de 3 numeros, você joga ele 3 vezes, dificilmente vai cair os numeros 1,2,3. Mas que bom que resolveu, qualquer coisa só perguntar :)

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.6k

Informação Importante

Confirmação de Termo