Ir para conteúdo

Featured Replies

Postado

Preciso de ajuda com o script de dar respawn aleatório dos Megas, como se fosse o spawn de Shiny. A base do servidor é a PokemasterX

 

Tentei mexer em tudo quanto é forma de fazer com que funcione, mas aparentemente não tá dando certo. Hahaha

 

Você tem o código disponível? Se tiver publique-o aqui: 

 local respGrande = {"Pupitar", "Tyranitar", "Skarmory", "Magcargo", "Ampharos", "Xatu", "Crobat", "Typhlosion", "Magmar", "Electabuzz", "Cubone", "Marowak", "Electrode", "Charizard", "Oddish", "Paras", "Parasect"}

local respMedio = {"Lanturn", "Dratini", "Dragonair", "Snorlax", "Krabby", "Kingler", "Gengar", "Pidgeot", "Raichu", "Machamp"}

local respPequeno = {"Steelix", "Sudowoodo", "Feraligatr", "Meganium", "Dragonite", "Gyarados", "Pinsir", "Tauros", "Jynx", "Scyther", "Mr. mime", "Horsea", "Seadra", "Tangela", "Grimer", "Muk", "Tentacool", "Tentacruel", "Farfetch'd", "Growlithe", "Arcanine", "Alakazam", "Venusaur", "Blastoise", "Butterfree", "Beedrill", "Ratatta", "Raticate", "Golbat", "Venonat", "Venomoth"}

local shinykarp = {"Magikarp"}
local megas = {"Blastoise", "Alakazam", "Absol", "Venusaur", "Aggron", "Tyranitar", "Gengar", "Ampharos", "Lucario", "Pidgeot", "Scizor"} 

function onSpawn(cid)



	if isSummon(cid) then
		return true
	end
	
	if not isCreature(cid) then 
		return true
	end
	
	if getCreatureName(cid) == "" or getCreatureName(cid) == nil then
		setPlayerStorageValue(cid, 510, getCreatureNick(cid))
	end
	
	registerCreatureEvent(cid, "GeneralConfiguration")
	registerCreatureEvent(cid, "WildAttack")
	registerCreatureEvent(cid, "PokeWalk")
	 
	if not ehMonstro(cid) then
		setPokemonGhost(cid)
		if getCreatureName(cid):find("Shiny ") then
			setPlayerStorageValue(cid, storages.EhShiny, 1)
		end
		return true
	end
	
	local name = getCreatureName(cid)
	local pos = getThingPos(cid) 
	
	addEvent(function()
		if not isSummon(cid) and not isShinyName(name) then

			local chance = 0
			if isInArray(respGrande, doCorrectString(name)) then --alterado v1.9 \/
				chance = 20 
			elseif isInArray(respMedio, doCorrectString(name)) then
				chance = 25
			elseif isInArray(respPequeno, doCorrectString(name)) then
				chance = 30
			end 
		
			local function doShiny(cid, pos, name, mode)
				if pos and name then
					name = "Shiny "..name
				
					if not pokes[name] then 
						return true 
					end	
					
					doSendMagicEffect(pos, 18) 
					doCreateMonsterNick(cid, name, retireShinyName(name), pos, false)
				end	
			end	
		
			if math.random(1, 1000) <= chance then
				doRemoveCreature(cid)
				doShiny(cid, pos, name, 1)
				return true
			end
			
		local storages = {"Hoodeasy", "Hoodmedium", "Hoodhard", "Hoodexpert", "Hoodlendary"}		
		for i = 1, #storages do
			if isShinyName(name) and getPlayerStorageValue(cid, storages[i]) >= 1 then
				doRemoveCreature(cid)
			end
		end
		
	end

	local spawn_arrs = {
		{frompos = {x = 1922, y = 41, z = 14}, topos = {x = 2833, y = 1428, z = 14}},
	}		
		
		for _, arr in pairs(spawn_arrs) do
			if isInRange(pos, arr.frompos, arr.topos) then
				if isWild(cid) and string.find(name, "Shiny") and not isInArray({"Shiny Salamence", "Shiny Scizor", "Shiny Magmortar", "Shiny Electivire"}, name) then
					doRemoveCreature(cid)
				end
			end
		end
			
		if isInArray({"Abporygon", "Aporygon"}, name) then
			doCreatureSetHideHealth(cid, true)
		end
		
		if isWild(cid) and getCreatureName(cid) == "Magikarp" then
			if math.random(1, 5000) <= 25 then
				doRemoveCreature(cid)
				doCreateMonster("Feebas", pos, false)
			end
		end
		
		if isWild(cid) and isHoenn(getCreatureName(cid)) then
			if math.random(1, 5000) <= 25 then
				local sorte = bossName[math.random(#bossName)]
				doRemoveCreature(cid)	
				doCreateMonster(sorte, pos, false)				
			end
		end				
		
		if not isSummon(cid) then
			adjustWildPoke(cid)
		end
	if isPokePassive(cid) then
	      setPokemonPassive(cid, true)
	end
	
	end, 5)
	
	setPokemonGhost(cid)
	doMarkedPos(cid, getThingPos(cid))
	setSmeargle(cid)		
	addEvent(Camouflage, 5, cid)
	
	

	
	return true
	
end


function Camouflage(cid)
	if isWild(cid) and getCreatureName(cid) == "Kecleon" then
		doSetCreatureOutfit(cid, {lookType = 2057}, -1)	
		doCreatureSetHideHealth(cid, true)		
	end
end
	
function setSmeargle(cid)
	if isSummon(cid) then return true end
	if getCreatureName(cid):find("Smeargle") then
			local id = math.random(5, 6)
			if math.random(1, 500) <= 50 then id = math.random(7, 8) end
			setPlayerStorageValue(cid, storages.SmeargleID, "Smeargle " .. id)
	end
end
function doShiny(cid)
    if isCreature(cid) then
           if isSummon(cid) then return true end
           if isNpcSummon(cid) then return true end
            local chance = 0
            if isInArray(megas, doCorrectString(getCreatureName(cid))) then  --alterado v1.9 \/
               chance = 500   --50% chance  
            end    
            local sid = cid
            if math.random(1, 1000) <= chance then  
              doSendMagicEffect(getThingPos(cid), 18)               
              local name, pos = "Mega ".. getCreatureName(cid), getThingPos(cid)
              if not pokes[name] then return true end
              doRemoveCreature(cid)
              --print(name .. ", " .. retireShinyName(name))
              local shi = doCreateMonsterNick(sid, name, retireShinyName(name), pos, false)          
           end  
    else
                                                               
    return true
    end
end

 

 

 

  • 3 weeks later...
Postado
local respGrande = {"Pupitar", "Tyranitar", "Skarmory", "Magcargo", "Ampharos", "Xatu", "Crobat", "Typhlosion", "Magmar", "Electabuzz", "Cubone", "Marowak", "Electrode", "Charizard", "Oddish", "Paras", "Parasect"}

local respMedio = {"Lanturn", "Dratini", "Dragonair", "Snorlax", "Krabby", "Kingler", "Gengar", "Pidgeot", "Raichu", "Machamp"}

local respPequeno = {"Steelix", "Sudowoodo", "Feraligatr", "Meganium", "Dragonite", "Gyarados", "Pinsir", "Tauros", "Jynx", "Scyther", "Mr. mime", "Horsea", "Seadra", "Tangela", "Grimer", "Muk", "Tentacool", "Tentacruel", "Farfetch'd", "Growlithe", "Arcanine", "Alakazam", "Venusaur", "Blastoise", "Butterfree", "Beedrill", "Ratatta", "Raticate", "Golbat", "Venonat", "Venomoth"}

local shinykarp = {"Magikarp"}

local pokemonMega = {"Alakazam"}

function onSpawn(cid)



	if isSummon(cid) then
		return true
	end
	
	if not isCreature(cid) then 
		return true
	end
	
	if getCreatureName(cid) == "" or getCreatureName(cid) == nil then
		setPlayerStorageValue(cid, 510, getCreatureNick(cid))
	end
	
	registerCreatureEvent(cid, "GeneralConfiguration")
	registerCreatureEvent(cid, "WildAttack")
	registerCreatureEvent(cid, "PokeWalk")
	 
	if not ehMonstro(cid) then
		setPokemonGhost(cid)
		if getCreatureName(cid):find("Shiny ") then
			setPlayerStorageValue(cid, storages.EhShiny, 1)
		end
		return true
	end
	
	local name = getCreatureName(cid)
	local pos = getThingPos(cid) 
	
	addEvent(function()
		if not isSummon(cid) and not isShinyName(name) then

			local chance = 0
			if isInArray(respGrande, doCorrectString(name)) then --alterado v1.9 \/
				chance = 20 
			elseif isInArray(respMedio, doCorrectString(name)) then
				chance = 25
			elseif isInArray(respPequeno, doCorrectString(name)) then
				chance = 30
			elseif isInArray(pokemonMega, doCorrectString(name)) then
				chance = 10
			end 
		
			local function doShiny(cid, pos, name, mode)
				if pos and name then
					name = "Shiny "..name
				
					if not pokes[name] then 
						return true 
					end	
					
					doSendMagicEffect(pos, 18) 
					doCreateMonsterNick(cid, name, retireShinyName(name), pos, false)
				end	
			end	
		
			if math.random(1, 1000) <= chance then
				doRemoveCreature(cid)
				doShiny(cid, pos, name, 1)
				return true
			end
			
		local storages = {"Hoodeasy", "Hoodmedium", "Hoodhard", "Hoodexpert", "Hoodlendary"}		
		for i = 1, #storages do
			if isShinyName(name) and getPlayerStorageValue(cid, storages[i]) >= 1 then
				doRemoveCreature(cid)
			end
		end
		
	end

	local spawn_arrs = {
		{frompos = {x = 1922, y = 41, z = 7}, topos = {x = 2833, y = 1428, z = 7}},
	}		
		
		for _, arr in pairs(spawn_arrs) do
			if isInRange(pos, arr.frompos, arr.topos) then
				if isWild(cid) and string.find(name, "Shiny") and not isInArray({"Shiny Salamence", "Shiny Scizor", "Shiny Magmortar", "Shiny Electivire"}, name) then
					doRemoveCreature(cid)
				end
			end
		end
			
		if isInArray({"Abporygon", "Aporygon"}, name) then
			doCreatureSetHideHealth(cid, true)
		end
		
		if isWild(cid) and getCreatureName(cid) == "Magikarp" then
			if math.random(1, 5000) <= 25 then
				doRemoveCreature(cid)
				doCreateMonster("Feebas", pos, false)
			end
		end
		
		if isWild(cid) and isHoenn(getCreatureName(cid)) then
			if math.random(1, 5000) <= 25 then
				local sorte = bossName[math.random(#bossName)]
				doRemoveCreature(cid)	
				doCreateMonster(sorte, pos, false)				
			end
		end				
		
		if not isSummon(cid) then
			adjustWildPoke(cid)
		end
	if isPokePassive(cid) then
	      setPokemonPassive(cid, true)
	end
	
	end, 5)
	
	setPokemonGhost(cid)
	doMarkedPos(cid, getThingPos(cid))
	setSmeargle(cid)		
	addEvent(Camouflage, 5, cid)
	
	

	
	return true
	
end


function Camouflage(cid)
	if isWild(cid) and getCreatureName(cid) == "Kecleon" then
		doSetCreatureOutfit(cid, {lookType = 2057}, -1)	
		doCreatureSetHideHealth(cid, true)		
	end
end
	
function setSmeargle(cid)
	if isSummon(cid) then return true end
	if getCreatureName(cid):find("Smeargle") then
			local id = math.random(5, 6)
			if math.random(1, 500) <= 50 then id = math.random(7, 8) end
			setPlayerStorageValue(cid, storages.SmeargleID, "Smeargle " .. id)
	end
end

 

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

Informação Importante

Confirmação de Termo