Jump to content
  • 0

Bonus de chance de Catch Pokemon


wenderotpoke

Question

Galerinha.... 

Seguinte quem puder dar um help...
boom tem esse codigo ai do meu catch system... tem a Storage  121212 ela da um buff no catch, gostaria que ele fosse ingetada no player por tempo

 

exemplo o cara usa o item e a storege fica nele por um tempo e dps sai

 

Abaixo está a linha onde acontece esse efeito descrito!!

    if getPlayerStorageValue(cid, 121212) >= 1 then catchinfo.rate = 1000  end 

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Troque o código por este:

 

local storage_buff_catch = 3133586 -- STORAGE DO BONUS DE CATCH
local minutes_buff = 5 -- MINUTOS PARA TER O BUFF DO CATCH

local ballcatch = { --id normal, id da ball shiy
	[2394] = {cr = 1, on = 193, off = 192, ball = {11826}, send = 86, typeee = "poke", boost = "0"}, --alterado v1.9 \/
	[2391] = {cr = 2, on = 198, off = 197, ball = {11832}, send = 87, typeee = "great", boost = "0"},
	[2393] = {cr = 3, on = 202, off = 201, ball = {11835}, send = 88, typeee = "super", boost = "0"},
	[2392] = {cr = 4, on = 200, off = 199, ball = {11829}, send = 89, typeee = "ultra", boost = "0"},
	[12617] = {cr = 4, on = 204, off = 203, ball = {12621}, send = 84, typeee = "saffari", boost = "0"}, 
	[12832] = {cr = 100000, on = 23, off = 24, ball = {12826}, send = 85, typeee = "master", boost = "50"},
	
	[15677] = {cr = 6, on = 313, off = 314, ball = {16204}, send = 72, typeee = "magu", boost = "0", type = {"fire", "ground"}},
	[15676] = {cr = 6, on = 316, off = 317, ball = {16205}, send = 73, typeee = "sora", boost = "0", type = {"water", "ice"}},
	[15678] = {cr = 6, on = 319, off = 320, ball = {16206}, send = 74, typeee = "yume", boost = "0", type = {"fairy", "psychic"}},
	[15680] = {cr = 6, on = 322, off = 323, ball = {16207}, send = 75, typeee = "dusk", boost = "0", type = {"ghost", "dark"}},
	[15673] = {cr = 6, on = 331, off = 332, ball = {16210}, send = 78, typeee = "tale", boost = "0", type = {"dragon", "flying"}},
	[15674] = {cr = 6, on = 334, off = 335, ball = {16211}, send = 79, typeee = "moon", boost = "0", type = {"fighting", "normal"}},
	[15675] = {cr = 6, on = 337, off = 338, ball = {16212}, send = 80, typeee = "net", boost = "0", type = {"bug", "poison"}},
	[15681] = {cr = 6, on = 346, off = 347, ball = {16215}, send = 83, typeee = "tinker", boost = "0", type = {"electric", "steel"}},
	
	[15679] = {cr = 1, on = 343, off = 344, ball = {16214}, send = 82, typeee = "premier", boost = "0"},
	
	[15682] = {cr = 6, on = 325, off = 326, ball = {16208}, send = 76, typeee = "fast", boost = "0", pokes = {"Pidgeot", "Kadabra", "Rapidash", "Scyther", "Electabuzz", "Manectric", "Persian", "Starmie", "Sneasel", "Dugtrio", "Alakazam", "Sceptile", "Swellow", "Jolteon", "Crobat", "Electrode", "Ninjask", "Raichu", "Dodrio", "Gengar", "Tauros", "Jumpluff", "Espeon", "Shiny Raichu", "Shiny Dodrio", "Shiny Tauros", "Shiny Gengar", "Shiny Espeon"}},
	[15672] = {cr = 6, on = 328, off = 329, ball = {16209}, send = 77, typeee = "heavy", boost = "0", pokes = {"Golem", "Gyarados", "Snorlax", "Onix", "Tyranitar", "Metang", "Steelix", "Camerupt", "Lapras", "Mantine", "Hariyama", "Aggron", " Wailord", "Glalie", "Metagross", "Rhyperior", "Shiny Golem", "Shiny Gyarados", "Shiny Snorlax", "Shiny Onix", "Shiny Tyranitar", "Shiny Metang", "Shiny Steelix", "Shiny Camerupt", "Shiny Lapras", "Shiny Mantine", "Shiny Hariyama", "Shiny Aggron", "Shiny  Wailord", "Shiny Glalie", "Shiny Metagross", "Shiny Rhyperior"}},
}

function onUse(cid, item, frompos, item3, topos)
	
	local item2 = getTopCorpse(topos)
	if item2 == null then
		return true
	end
	
	if getPlayerStorageValue(cid, 55006) >= 1 then 
		doPlayerSendCancel(cid, "Você não pode capturar nenhum pokémon enquanto está em duel.")
		return true
	end
	
	if getItemAttribute(item2.uid, "catching") == 1 then
		return true
	end 
	
	local name = string.lower(getItemAttribute(item2.uid, "pokeName"))
	name = string.gsub(name, "fainted ", "")
	name = string.gsub(name, "defeated ", "")
	name = doCorrectPokemonName(name)	
		
	local storage = newpokedex[name].stoCatch 
	
	if type(getPlayerStorageValue(cid, storage)) ~= "string" or not string.find(getPlayerStorageValue(cid, storage), "magu") then --alterado v1.9 
		setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0, dark = 0, magu = 0, sora = 0, yume = 0, dusk = 0, tale = 0, moon = 0, net = 0, premier = 0, tinker = 0, fast = 0, heavy = 0;") --alterado v1.9 
	end 
	
	local owner = getItemAttribute(item2.uid, "corpseowner")
	local pOwner = getPlayerByName(owner)
	local isInParyWithPlayer = false
	
	if isInParty(cid) and isInParty(pOwner) then
		isInParyWithPlayer = isPartyEquals(pOwner, cid)
	end
	
	if owner and isCreature(pOwner) and isPlayer(pOwner) and cid ~= pOwner and not isInParyWithPlayer then 
		doPlayerSendCancel(cid, "Desculpa. Isso não é possivel.")
		return true
	end
	
	local newidd = isShinyName(name) and ballcatch[item.itemid].ball[2] or ballcatch[item.itemid].ball[1] or false --alterado v1.9 
	local typeee = ballcatch[item.itemid].typeee
	local boost = ballcatch[item.itemid].boost	
	
	local catchBlocks = {"Kabuto", "Kabutops", "Omanyte", "Omastar","Shiny Vileplume", "Shiny Marowak", "Shiny Umbreon", "Shiny Fearow", "Shiny Espeon", "Shiny Flareon", "Shiny Jolteon", "Shiny Vaporeon", "Shiny Salamence", "Shiny Magmortar", "Shiny Electivire", "Shiny Scizor", "Moltres", "Articuno", "Zapdos", "Aerodactyl", "Hitmonlee", "Hitmonchan", "Hitmontop", "Raikou", "Entei", "Suicune", "Lugia", "Ho-oh"}
	if isInArray(catchBlocks, name) then
		doSendMsg(cid, "Você não pode capturar este pokemon.")
		return true
	end

	local catchCyber = {"Shiny Dodrio", "Shiny Magneton", "Shiny Espeon", "Shiny Umbreon", "Shiny Rhydon", "Shiny Ninetales", "Shiny Onix", "Shiny Ariados", "Shiny Stantler", "Shiny Politoed"}
	
	if isInArray(catchCyber, name) and getPlayerStorageValue(cid, 50926) ~= 1 then
		doSendMsg(cid, "Você não concluiu a Cyber Quest!")
		return true
	end
	
	if getPlayerStorageValue(cid, 1654987) >= 1 then
		doSendMsg(cid, "Você não pode capturar pokémons nesse local.")
		return true
	end
	
	if typeee == "master" and isShinyName(name) then
		doSendMsg(cid, "Você não pode capturar pokemon shiny com a master ball.")
		return true
	end

	-- // New's Bag \\ --
	
	if typeee == "poke" then
		local valor = getPlayerStorageValue(cid, 233200) <= 0 and 1 or getPlayerStorageValue(cid, 233200)
		setPlayerStorageValue(cid, 233200, valor + 1)
	elseif typeee == "great" then
		local valor1 = getPlayerStorageValue(cid, 233201) <= 0 and 1 or getPlayerStorageValue(cid, 233201)
		setPlayerStorageValue(cid, 233201, valor1 + 1)
	elseif typeee == "super" then
		local valor2 = getPlayerStorageValue(cid, 233202) <= 0 and 1 or getPlayerStorageValue(cid, 233202)
		setPlayerStorageValue(cid, 233202, valor2 + 1)
	elseif typeee == "ultra" then
		local valor3= getPlayerStorageValue(cid, 233203) <= 0 and 1 or getPlayerStorageValue(cid, 233203)
		setPlayerStorageValue(cid, 233203, valor3 + 1)
	end
	
	if getPlayerStorageValue(cid, 233200) >= 100 and getPlayerStorageValue(cid, 232200) ~= 1 then
		doPlayerAddItem(cid, 12683, 1)
		setPlayerStorageValue(cid, 233200, 0)
	elseif getPlayerStorageValue(cid, 233201) >= 250 and getPlayerStorageValue(cid, 232201) ~= 1 then	
		doPlayerAddItem(cid, 12682, 1)
		setPlayerStorageValue(cid, 233201, 0)
	elseif getPlayerStorageValue(cid, 233202) >= 500 and getPlayerStorageValue(cid, 232202) ~= 1 then	
		doPlayerAddItem(cid, 12684, 1)
		setPlayerStorageValue(cid, 233202, 0)
	elseif getPlayerStorageValue(cid, 233203) >= 1000 and getPlayerStorageValue(cid, 232203) ~= 1 then	
		doPlayerAddItem(cid, 12685, 1)
		setPlayerStorageValue(cid, 233203, 0)
	end

	if getPlayerStorageValue(cid, 244787) >= 1 and typeee ~= "saffari" then 
		doPlayerSendCancel(cid, "Você não pode capturar esse pokémon com essa Pokébola.")
		return true
	end	
	
	if getPlayerStorageValue(cid, 244787) >= 1 and getPlayerItemCount(cid, 12617) <= 1 then --alterado v1.9
		setPlayerStorageValue(cid, 244787, -1) 
		doTeleportThing(cid, {x = 925, y = 1535, z = 6}, false)
		doSendMagicEffect(getThingPos(cid), 21)
		doPlayerSendTextMessage(cid, 27, "Você não tem mais Saffari Ball!")
	end		
		
--[[	if getPlayerStorageValue(cid, 141416) >= 1 then
		return true
	end]]--
	
	local catchinfo = {}
	
	if isShinyName(name) then
		catchinfo.rate = ballcatch[item.itemid].cr + getPlayerSorte()
	else
		catchinfo.rate = ballcatch[item.itemid].cr + getPlayerSorteInNormal()
	end
	
	catchinfo.catch = ballcatch[item.itemid].on
	catchinfo.fail = ballcatch[item.itemid].off
	catchinfo.newid = newidd 
	catchinfo.name = doCorrectPokemonName(name)
	catchinfo.topos = topos
	--catchinfo.chance = x.chance	
	
	doBrokesCount(cid, newpokedex[doCorrectPokemonName(name)].stoCatch , typeee)
	
	doSendDistanceShoot(getThingPos(cid), topos, ballcatch[item.itemid].send)
	doRemoveItem(item.uid, 1)
	
	---- newsBalls
	if (ballcatch[item.itemid].type ~= nil or ballcatch[item.itemid].pokes ~= nil) then
		catchinfo.rate = getBallsRate(catchinfo.name, item.itemid) + getPlayerSorte()
	end
	
	if isGod(cid) or getPlayerStorageValue(cid, 394672) >= 1 then catchinfo.rate = 100000 end 

    if getPlayerStorageValue(cid, storage_buff_catch) <= os.time() then 
	    if getPlayerStorageValue(cid, 121212) >= 1 then 
            catchinfo.rate = 1000  
            setPlayerStorageValue(cid, storage_buff_catch, os.time() + (60 * minutes_buff))
        end 
    end    
	
	local d = getDistanceBetween(getThingPos(cid), topos)
	
	setPlayerStorageValue(cid, 141416, 1)
	addEvent(setPlayerStorageValue, 725, cid, 141416, -1)
	doItemSetAttribute(item2.uid, "catching", 1)
	addEvent(doSendPokeBall, d * 70 + 100 - (d * 14) , cid, catchinfo, false, false, typeee, 1.5) 
	addEvent(doSendMagicEffect, (d * 70 + 100 - (d * 14)) - 100, topos, 3)
	return true
end

function getPlayerSorte()

	if math.random(1, 200) >= 199 then
		ballS = math.random(250, 450)
	else
		ballS = math.random(1, 35)
	end		
	
	return ballS
end

function getPlayerSorteInNormal()
	
	if math.random(1, 100) >= 95 then
		ballS = math.random(250, 450)
	else
		ballS = math.random(1, 35)
	end		
	
	return ballS
end

function getBallsRate(name, id)
	if pokes[name] then
		if isInArray(ballcatch[id].type, pokes[name].type) or isInArray(ballcatch[id].type, pokes[name].type2) or isInArray(ballcatch[id].pokes, name) then
			return 6
		end
	end
	return 4
end  

 

Nas duas primeiras linhas do código tem uma variável que armazena o valor da storage que irá guardar o tempo para usar o buff novamente e embaixo tem a variável que contém o tempo em minutos para usar o buff, só alterar o tempo, pois eu deixei 5 apenas como valor fictício.

 

Teste e se der algum problema, me avise.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...