Vou ser sincero, primeira pessoa que eu tento ajudar quando o assunto trata-se de derivados.
Segue basicamente a mesma lógica que você tinha antes, não sei se vai dar certo.
Teste ai:
local pokes = {
["Brave Venusaur"] = {"Magmortar", "Electrivire", "Milotic", "Salamence"},
["Mew"] = {"Pikachu", "Squirtle", "Onix", "Mister Mime"}
}
local function doSummon(cid)
if isCreature(cid) then
if isSummon(cid) then return true end
if getPlayerStorageValue(cid, 74469) >= 1 then return true end
if getPlayerStorageValue(cid, 22546) >= 1 then return true end
if isNpcSummon(cid) then return true end
if getPlayerStorageValue(cid, 637500) >= 1 then return true end
local name, pos = getCreatureName(cid), getThingPos(cid)
if pokes[name] then
chance = 2.0 --2% chance
else
return true
end
if math.random(1, 500) <= chance * 10 then
local rand = math.random(1, #pokes[name])
doSendMagicEffect(getThingPos(cid), 18)
doRemoveCreature(cid)
local summon = doCreateMonster(pokes[name][rand], pos, false)
setPlayerStorageValue(summon, 74469, 1)
else
setPlayerStorageValue(cid, 74469, 1)
end --/\
else
return true
end
end
function onSpawn(cid)
registerCreatureEvent(cid, "Experience")
registerCreatureEvent(cid, "GeneralConfiguration")
registerCreatureEvent(cid, "DirectionSystem")
registerCreatureEvent(cid, "CastSystem")
if isSummon(cid) then
registerCreatureEvent(cid, "SummonDeath")
return true
end
addEvent(doSummon, 10, cid)
addEvent(adjustWildPoke, 5, cid)
return true
endBasta colocar o nome do poke e dentro da array os possíveis summons dele, exemplo:["Brave Venusaur"] = {"Magmortar", "Electrivire", "Milotic", "Salamence"}
Não esqueça de colocar vírgula ao final de cada array caso for criar outra, como eu fiz no script







info
Grupo: Visconde
Registrado: 28/07/12
Posts: 273
Reputação: +26
Char no Tibia: Kisame of Tenebra
Seguinte como muitos sabem os servidores de pokemon quando você mata um pokemon por exemplo MAGMAR ele quando da respawn tem chance de vir SHINY eu gostaria de um SCRIPT a onde não viria shiny seria desta forma:
O player está caçando na outland e ta matando Brave Venusaur, Quando o Brave Venusaur for renascer ele teria 1 chance de nascer 1 pokemon dos listados aleatorios.
Os Listados seriam: Magmortar, electrivire, milotic e salamence.
Ai eu pensei a é so alterar no Spawn.Lua mais n é algo tão facil, bati bati a cabeça e não consegui está ai abaixo o script q faz nascer shiny.
local shinys = {
"Venusaur", "Blastoise", "Butterfree", "Beedrill", "Pidgeot", "Rattata", "Raticate", "Raichu", "Golbat", "Paras", "Parasect", "Magmar", "Typhlosion", "Xatu", "Growlithe", "Arcanine", "Tentacruel", "Farfetch'd", "Gengar", "Krabby", "Tauros",
"Kingler", "Cubone", "Horsea", "Seadra", "Weezing", "Scyther", "Pinsir", "Crobat", "Zubat", "Tentacool", "Feraligatr", "Machamp", "Meganium", "Alakazam", "Tangela", "Ampharos", "Electabuzz", "Jynx", "Charizard", "Voltorb", "Electrode"}
local raros = {"Dragonair", "Dratini", "Giant Magikarp", "Gyarados", "Magmortar", "Electivire", "Salamence", "Mantine"}
local function ShinyName(cid)
if isCreature(cid) then
if string.find(tostring(getCreatureName(cid)), "Shiny") then
local newName = tostring(getCreatureName(cid)):match("Shiny (.*)")
doCreatureSetNick(cid, newName)
if isMonster(cid) then
doSetCreatureDropLoot(cid, false)
end
end
end
end
local function doSetRandomGender(cid)
if not isCreature(cid) then return true end
if isSummon(cid) then return true end
local gender = 0
local name = getCreatureName(cid)
if not newpokedex[name] then return true end
local rate = newpokedex[name].gender
if rate == 0 then
gender = 3
elseif rate == 500 then
gender = 4
elseif rate == -1 then
gender = 0
elseif math.random(1, 500) <= rate then
gender = 4
else
gender = 3
end
doCreatureSetSkullType(cid, gender)
end
local function doShiny(cid)
if isCreature(cid) then
if isSummon(cid) then return true end
if getPlayerStorageValue(cid, 74469) >= 1 then return true end
if getPlayerStorageValue(cid, 22546) >= 1 then return true end
if isNpcSummon(cid) then return true end
if getPlayerStorageValue(cid, 637500) >= 1 then return true end --alterado v1.9
if isInArray(shinys, getCreatureName(cid)) then --alterado v1.9 \/
chance = 2.0 --1% chance
elseif isInArray(raros, getCreatureName(cid)) then --n coloquem valores menores que 0.1 !!
chance = 1 --1% chance
else
return true
end
if math.random(1, 500) <= chance*10 then
doSendMagicEffect(getThingPos(cid), 18)
local name, pos = "Shiny ".. getCreatureName(cid), getThingPos(cid)
doRemoveCreature(cid)
local shi = doCreateMonster(name, pos, false)
setPlayerStorageValue(shi, 74469, 1)
else
setPlayerStorageValue(cid, 74469, 1)
end --/\
else
return true
end
end
function onSpawn(cid)
registerCreatureEvent(cid, "Experience")
registerCreatureEvent(cid, "GeneralConfiguration")
registerCreatureEvent(cid, "DirectionSystem")
registerCreatureEvent(cid, "CastSystem")
if isSummon(cid) then
registerCreatureEvent(cid, "SummonDeath")
return true
end
addEvent(doShiny, 10, cid)
addEvent(ShinyName, 15, cid)
addEvent(adjustWildPoke, 5, cid)
return true
end
aguardando ajuda