Ir para conteúdo

Featured Replies

Postado

Boa noite, então eu tenho esse codigo:

 

local STORAGE_SKILL_LEVEL = 10009

local STORAGE_SKILL_TRY = 10007

	local config = {

	 levels = {

		 {level = {0,9}, quant = {1,1}, percent = 5},

		 {level = {10,19}, quant = {1,1}, percent = 10},

		 {level = {20,29}, quant = {1,1}, percent = 15},

		 {level = {30,39}, quant = {1,1}, percent = 20},

		 {level = {40,49}, quant = {1,1}, percent = 25},

		 {level = {50,59}, quant = {1,1}, percent = 30},

		 {level = {60,69}, quant = {1,1}, percent = 30},

		 {level = {70,79}, quant = {1,1}, percent = 35},

		 {level = {80,89}, quant = {1,1}, percent = 35},

		 {level = {90,99}, quant = {1,1}, percent = 40},

		 {level = {100}, quant = {1,1}, percent = 50}

	 },

	 rocks = {5092}, -- Id das rochas que podem ser quebradas
	 rocks2 = {5093},
	 rocks3 = {5094},
	 rocks4 = {5095},
	 
	 stones = {5097},  -- Modelo = {rock_id, rock_id}
	 stones2 = {5099},
	 stones3 = {5100},
	 stones4 = {5098},

	 rock_delay = 60, -- Tempo de volta da rocha (Em segundos)

	 bonus_chance = 3, -- Chance (em porcentagem) de se conseguir um bonus de exp

	 bonus_exp = 1 -- Bonus extra

	}



------------------------------------

-- END Configurations ---

------------------------------------

function getCuttingLevel(cid)

	return getPlayerStorageValue(cid, STORAGE_SKILL_LEVEL)

end

function setPlayerCuttingLevel(cid, n)

	setPlayerStorageValue(cid, STORAGE_SKILL_LEVEL, n)

end

function addCuttingLevel(cid, n)

	setPlayerCuttingLevel(cid, getCuttingLevel(cid) + (isNumber(n) and n or 1))

	setCuttingTry(cid, 0)

end

function getCuttingInfo(cid)

	for i = 1, #config.levels do

		min = config.levels[i].level[1]; max = config.levels[i].level[2]

		if (getCuttingLevel(cid) >= min and getCuttingLevel(cid) <= max) then

			return {quantity = {min = config.levels[i].quant[1], max = config.levels[i].quant[2]}, chance = config.levels[i].percent}

		end

	end

end

function getStoneByRock(rockid)

	for i = 1, #config.stones do

		if (config.stones[2] == rockid) then
			return config.stones[1]
	    elseif (config.stones2[3] == rockid2) then
			return config.stones2[4]
		end

	end

end

function getCuttingTries(cid)

	return getPlayerStorageValue(cid, STORAGE_SKILL_TRY)

end

function setCuttingTry(cid, n)

	setPlayerStorageValue(cid, STORAGE_SKILL_TRY, n)

end

function addCuttingTry(cid, bonus)

	setCuttingTry(cid, getCuttingTries(cid) + 1 + (bonus and config.bonus_exp or 0))


	if (getCuttingTries(cid) >= getCuttingExpTo(getCuttingLevel(cid))) then -- Up

		doPlayerSendTextMessage(cid, 22, "You advanced from level " .. getCuttingLevel(cid) .. " to level ".. (getCuttingLevel(cid) + 1) .." in miner.")


		if ((getCuttingLevel(cid)+1) == getCuttingMaxLevel()) then

			doPlayerSendTextMessage(cid, 22, "Max level reached in miner.")

		end


		addCuttingLevel(cid)

		doSendMagicEffect(getCreaturePosition(cid), math.random(28,30))

		setCuttingTry(cid, 0)

	end

end

function getCuttingExpTo(level)

	return ((level*1.5)+((level+1)*7))

end

function getCuttingMaxLevel()

	return config.levels[#config.levels].level[#config.levels[#config.levels].level]

end

---------------------------


function onUse(cid, item, fromPosition, itemEx, toPosition)

	rock = { id = itemEx.itemid, uid = itemEx.uid, position = toPosition }

	player = { position = getCreaturePosition(cid) }


	if (getCuttingLevel(cid) < 0) then

		setPlayerCuttingLevel(cid, 0)

	end


	if (isInArray(config.rocks, rocks2, rocks3, rocks4, rock.id, rock.id2, rock.id3, rock.id4)) then

		addCuttingTry(cid)


		if (math.random(1,100) <= getCuttingInfo(cid).chance) then

			local collected = math.random(getCuttingInfo(cid).quantity.min, getCuttingInfo(cid).quantity.max)

			doPlayerAddItem(cid, getStoneByRock(rock.id), collected)

			doPlayerSendTextMessage(cid, 22, "You got " .. collected .. " brass" .. (collected > 1 and "s" or "") .. " ore.")


			if (math.random(1,100) <= config.bonus_chance) then -- Bonus calc

				addCuttingTry(cid, true)

				doSendAnimatedText(player.position, "Bonus!", COLOR_ORANGE)

			end


			event_rockCut(rock)

		else

			if (math.random(0,100) <= (0-getCuttingInfo(cid).chance/0)) then

				doPlayerSendTextMessage(cid, 22, "You got nothing.")

				event_rockCut(rock)

			else

				doSendMagicEffect(rock.position, 3)

				doSendAnimatedText(rock.position, "Poff!", COLOR_GREEN)

			end

		end

	else

		doPlayerSendCancel(cid, "This can't be cut.")

	end

end

function event_rockCut(rock)

	addEvent(event_rockGrow, config.rock_delay * 1000, rock.position, rock.id)


	doTransformItem(rock.uid, 5104)

	doSendMagicEffect(rock.position, 3)

	doSendAnimatedText(rock.position, "Tack!", COLOR_GREEN)

	doItemSetAttribute(rock.uid, "name", "A trunk of " .. getItemNameById(rock.id))

end

function event_rockGrow(rockPos, old_id)

	local rock = getThingFromPos(rockPos).uid

	doTransformItem(rock, old_id)

	doItemSetAttribute(rock, "name", getItemNameById(old_id))

	doSendMagicEffect(rockPos, 3)

end

eu estou tentando editar para que dependendo da pedra, exemplo, 5092, venha o minerio 5097 e somente ele, eu tentei:

 

		if (config.stones[2] == rockid) then
			return config.stones[1]
	    elseif (config.stones2[3] == rockid2) then
			return config.stones2[4]
		end

mas não estou tendo resultado nenhum, nem erro, alguem poderia me dar uma luz?

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