Ir para conteúdo
  • Cadastre-se

Derivado [Dúvida] Receber addon por tentativa


Posts Recomendados

Olá pessoal, olha eu aqui denovo...

Mas agora é simples! Eu nas minhas tentativas aqui em casa sempre acabo bugando tudo, hehe!

 

Bem o caso é que quero que o player receba o addon dos vials summoner por tentativa, ou seja, tera 1 chance em 45 de conseguir.

O player irá colocar 2 crystal coins no lugar X,Y,Z descrito... e ao dar USE no lugar programado ele irá sortear.

 

Tem como vincular as tentativas no script que eu uso?

 

 

O script que uso é esse:

local c = {
	checkItems = {[2160] = 2}, -- [itemId] = quantidade
	checkPlaces = {{x=34, y=202, z=8}}, -- posicoes
	addons = {{133, 141}, name = "Summoner Addon"}, -- {addon female/male}, nome do outfit
	storage = 21010,
	level = 0
}

local function getTableMax(t)
	local ret = 0
	for _, i in pairs(t) do
		ret = ret + 1
	end
	return ret
end

function onUse(cid, item, fromPosition, itemEx, toPosition)
	if(getPlayerStorageValue(cid, c.storage) == -1) then
		if(getPlayerLevel(cid) > c.level) then
			local done = {}
			for n, pos in pairs(c.checkPlaces) do
				for itemId, count in pairs(c.checkItems) do
					local posItem = getTileItemById(pos, itemId)
					if(posItem.uid ~= 0 and (count == 1 or posItem.type >= count) and not done[itemId]) then
						done[itemId] = {count, pos}
						break
					end
				end
			end
			if(getTableMax(done) == getTableMax(c.checkItems)) then
				for i, t in pairs(done) do
					doRemoveItem(getTileItemById(t[2], i).uid, t[1])
					doSendMagicEffect(t[2], CONST_ME_FIREAREA)
				end
				setPlayerStorageValue(cid, c.storage, 1)
				for i = 1, #c.addons[1] do
					doPlayerAddOutfit(cid, c.addons[1][i], 1)
				end
				doPlayerSendTextMessage(cid, 21, "You just earned the "..(c.addons.name)..".")
			else
				doPlayerSendCancel(cid, "You need all itens.")
			end
		else
			doPlayerSendCancel(cid, "You need level "..(c.level)..".")
		end
	else
		doPlayerSendCancel(cid, "You have already completed this addon.")
	end
	return true
end


Obrigado!!!

Euphoria ATS

Map itself  |  Loot Balanced  |  RPG  | Addons & Outfits  | Quests
Sistemas balanceados e muita diversão... yours, euphoria.

Link para o post
Compartilhar em outros sites

Alguém? :(

Euphoria ATS

Map itself  |  Loot Balanced  |  RPG  | Addons & Outfits  | Quests
Sistemas balanceados e muita diversão... yours, euphoria.

Link para o post
Compartilhar em outros sites

up! up!
Ja tentei mesclar mil scripts mais sou mto ruim nisso =(

Euphoria ATS

Map itself  |  Loot Balanced  |  RPG  | Addons & Outfits  | Quests
Sistemas balanceados e muita diversão... yours, euphoria.

Link para o post
Compartilhar em outros sites

Alguém sabe aqui tbm por favor uma ajuda!!

Euphoria ATS

Map itself  |  Loot Balanced  |  RPG  | Addons & Outfits  | Quests
Sistemas balanceados e muita diversão... yours, euphoria.

Link para o post
Compartilhar em outros sites

Gente por favor... alguém?

Euphoria ATS

Map itself  |  Loot Balanced  |  RPG  | Addons & Outfits  | Quests
Sistemas balanceados e muita diversão... yours, euphoria.

Link para o post
Compartilhar em outros sites

?

local chance = math.random(0,999)
if (chance >= 450) then
	-- script
end

 

discord.pngDiscord: vankk #7765

Precisando de ajuda? Entre em contato comigo via Discord.

 

Muitos vêm seus muitos dias de glória, mas poucos vêm seus muitos dias de luta.

Link para o post
Compartilhar em outros sites

Vankk, obrigado por ter vindo aqui eme ajudar!!!

 

Vou explicar de uma maneira fácil:

- o player irá colocar 2 crystal coins no recipiente de coordenadas X,Y e Z

- ao dar USE na alavanca ao lado do recipiente onde esta as crystal coins, as moedas irão sumir

- o player irá ou nao receber o addon, quero que ele tenha 1 chance em 50 de conseguir

 

Se conseguir irá aparecer

"You have received new addon from summoner outfit"

 

Se não conseguir irá aparecer

"Take care next time"

 

 

Conseguindo ou não

Irá sumir o dinheiro... O player tem que usar toda vez mais dinheiro ate conseguir!

Euphoria ATS

Map itself  |  Loot Balanced  |  RPG  | Addons & Outfits  | Quests
Sistemas balanceados e muita diversão... yours, euphoria.

Link para o post
Compartilhar em outros sites
  • 1 month later...
6 horas atrás, Orochi Elf disse:

Só pra constar, o item ficará em cima de uma mesa, ou chão ou ficará dentro de alguma caixa ou algo do tipo?

 

@Orochi Elf, obrigado pelo interesse!!
Vou explicar melhor pra ver se vc entende mais facilmente a maneira de uso dele.

 

Bom, o player levará consigo 5k e irá dar USE em uma PEDRA
Ao dar use na pedra ele irá perderá os 5k e terá UMA chance em 10, 20 ou 30 (configurável) de conseguir o addon (wizzard="145, 149" - addon="1")

 

Ou seja:

Ao dar USE com 5k irá fazer 1 match.random que terá chance de vir direto ou não

E a cada USE ele irá perder 5k... Ou ganha de primeira, ou irá tentando... até conseguir!

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

Euphoria ATS

Map itself  |  Loot Balanced  |  RPG  | Addons & Outfits  | Quests
Sistemas balanceados e muita diversão... yours, euphoria.

Link para o post
Compartilhar em outros sites
Em 18/01/2016 19:04:55, PLoOc disse:

 

@Orochi Elf, obrigado pelo interesse!!
Vou explicar melhor pra ver se vc entende mais facilmente a maneira de uso dele.

 

Bom, o player levará consigo 5k e irá dar USE em uma PEDRA
Ao dar use na pedra ele irá perderá os 5k e terá UMA chance em 10, 20 ou 30 (configurável) de conseguir o addon (wizzard="145, 149" - addon="1")

 

Ou seja:

Ao dar USE com 5k irá fazer 1 match.random que terá chance de vir direto ou não

E a cada USE ele irá perder 5k... Ou ganha de primeira, ou irá tentando... até conseguir!

 

 

Brother, como já disse a você, estou um pouco enferrujado, mas tenta ai.

 

-- Developed by: Tony Araújo (OrochiElf) -- 

local configs = {
    price = 5000 -- Gold Coins
    addonType = 1, -- Addon Number
    chance = 30 -- 30%
    outfitTab = {
        [0] = 145, --  Female Wizzard
        [1] = 149; --  Male Wizzard
    }
}

function onUse(cid)
    if getPlayerStorageValue(cid, 12394) < 1 then
        if doPlayerRemoveMoney(cid, configs.price) then
            if math.random(100) >= configs.chance then
            
                doPlayerAddOutfit(cid, configs.outfitTab[getPlayerSex(cid)], configs.addonType)
                doPlayerSendTextMessage(cid, 25, "You have received new addon from wizzard outfit")
                setPlayerStorageValue(cid, 12394, 1)
            else
            
                doPlayerSendCancel("Take care next time.")
            end
        else
        
            doPlayerSendCancel("You need ".. configs.price .." gold coins.")    
        end
    else
    
        doPlayerSendCancel("You cant do it.")
    end
    return true
end

 

Tony Araújo  ;D 

 

Link para o post
Compartilhar em outros sites
4 horas atrás, Orochi Elf disse:

Brother, como já disse a você, estou um pouco enferrujado, mas tenta ai.

 


-- Developed by: Tony Araújo (OrochiElf) -- 

local configs = {
    price = 5000 -- Gold Coins
    addonType = 1, -- Addon Number
    chance = 30 -- 30%
    outfitTab = {
        [0] = 145, --  Female Wizzard
        [1] = 149; --  Male Wizzard
    }
}

function onUse(cid)
    if getPlayerStorageValue(cid, 12394) < 1 then
        if doPlayerRemoveMoney(cid, configs.price) then
            if math.random(100) >= configs.chance then
            
                doPlayerAddOutfit(cid, configs.outfitTab[getPlayerSex(cid)], configs.addonType)
                doPlayerSendTextMessage(cid, 25, "You have received new addon from wizzard outfit")
                setPlayerStorageValue(cid, 12394, 1)
            else
            
                doPlayerSendCancel("Take care next time.")
            end
        else
        
            doPlayerSendCancel("You need ".. configs.price .." gold coins.")    
        end
    else
    
        doPlayerSendCancel("You cant do it.")
    end
    return true
end

 

@Orochi Elf Cara valeu!
Mas deu esse erro aqui:

 

[20/01/2016 01:52:21] [Error - LuaScriptInterface::loadFile] data/actions/scripts/addons/summoner1.lua:3: '}' expected (to close '{' at line 1) near 'addonType'
[20/01/2016 01:52:21] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/addons/summoner1.lua)
[20/01/2016 01:52:21] data/actions/scripts/addons/summoner1.lua:3: '}' expected (to close '{' at line 1) near 'addonType'

Euphoria ATS

Map itself  |  Loot Balanced  |  RPG  | Addons & Outfits  | Quests
Sistemas balanceados e muita diversão... yours, euphoria.

Link para o post
Compartilhar em outros sites

kkkkkk, foram erros toscos meus, está faltando uma vírgula depois de price, e no chance também.

Assim:

local configs = {
    price = 5000, -- Gold Coins
    addonType = 1, -- Addon Number
    chance = 30, -- 30%
    outfitTab = {
        [0] = 145, --  Female Wizzard
        [1] = 149; --  Male Wizzard
    };
}

 

Tony Araújo  ;D 

 

Link para o post
Compartilhar em outros sites

Valeeeu!

Pronto meu caro!!!
Acertei tudo... agora tá 100%, só dei uma pequena pincelada, beem de leve!

Tava faltando o cid lá nos SendCancel o que fazia não dar mensagem nenhuma após concluir o addon, e se não tivesse dinheiro.

No demais só acertei ao meu gosto!

 

Obrigado @Orochi Elf pela infinita paciência e dedicação!

 

local configs = {
	name = "Wizzard Addon",
    price = 20000, -- Gold Coins
    addonType = 1,	-- Addon Number
    chance = 95, -- % de erro
    outfitTab = {
        [0] = 133, --  Female Wizzard
        [1] = 141; --  Male Wizzard
    }
}

function onUse(cid)
    if getPlayerStorageValue(cid, 21010) < 1 then
        if doPlayerRemoveMoney(cid, configs.price) then
            if math.random(100) >= configs.chance then
            
                doPlayerAddOutfit(cid, configs.outfitTab[getPlayerSex(cid)], configs.addonType)
                doPlayerSendTextMessage(cid, 21, "You just earned the "..(configs.name)..".")
                setPlayerStorageValue(cid, 21010, 1)
            else
            
                doPlayerSendCancel(cid, "Take care next time.")
            end
        else
        
            doPlayerSendCancel(cid, "You need ".. configs.price .." gold coins.")    
        end
    else
    
        doPlayerSendCancel(cid, "You have already completed this addon.")
    end
    return true
end

 

 

1000rep+ pra você!

 

 

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

Euphoria ATS

Map itself  |  Loot Balanced  |  RPG  | Addons & Outfits  | Quests
Sistemas balanceados e muita diversão... yours, euphoria.

Link para o post
Compartilhar em outros sites

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 LeoTK
      Salve galera neste tópico irei postar algumas prints do mapa do servidor para quem queira acompanhar e quem sabe até utilizar de inspiração para mapear o seu NTO.
       
      #Att 11/08/2022

       
       
       
       
      Konoha (Em Desenvolvimento)
       
       
       
       
    • Por DiigooMix
      Como o título já diz, será que alguém possui sprite do hitto e se possível as transformações dele?
    • Por OmegaZero
      Olá gostaria que alguém me ajudasse com uma "scripting" não sei se é pela mesma, seria o seguinte uma determinada arma teria a chance de dar double hit e não sei oque fazer alguem poderia ajudar?

      OBS:não sei se é o local correto se não for mova, desculpe
    • Por Madarasenju
      Olá galera do Tibia King, queria por uns npc's no meu server que não tem função de trade nem nada do tipo, queria que eles só andassem como enfeite, Rep+ Pra quem me ajudar... grato desde já.
    • Por SilenceRoot
      A magia é assim o você usa a a magia e ela ficará ativado por 10 segundos, até que o inimigo lance a primeira magia ou todos de uma vez, quando ele lançar a primeira magia, ele não lhe acertará ou seja esquivando dela, e logo em seguida será teletransportado aleatoriamente ao redor do inimigo que usou.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo