Ir para conteúdo
  • 0

Sistema de vim shiny


Fjinst

Pergunta

Olá a todos, eu estou aqui para pedir se alguém sabe onde posso encontrar ou até mesmo me disponibilizar ou explicar como faço para ter o sistema de shiinys de pokémon?

Resumindo:

Um script ou sistema que quando matar o bixo tem tipo 0,0003% de chance de vim um shiny no lugar dele, algo assim, alguém pode me disponibilizar um?, procurei mas não achei :S

 

 

Desde já, grato pela atenção de ambos

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Não se esqueçam de registrar o evento no arquivo .XML dos monstros que poderão spawnar um boss.

 

local config = {
    chance = 1,                     --Coloquem apenas números inteiros (1 - 0.0001%).
    bosses = {
        --["monster_name"] = "boss",
        ["Dragon Lord"] = "Demodras",
    },
}
function onSpawn(cid)
    if isMonster(cid) then
        addEvent(function()
            if isCreature(cid) then
                local boss = config.bosses[getCreatureName(cid)]
                if boss and math.random(1, 1000000) <= config.chance then
                    local pos = getThingPos(cid)
                    doRemoveCreature(cid)
                    doCreateMonster(boss, pos)
                end
            end
        end, 5)
    end
    return true
end
Editado por zipter98
Link para o comentário
Compartilhar em outros sites

  • 0

OK. Você saberia dizer se há alguma tabela no seu servidor (em algum arquivo da lib) em que os pokémons são configurados para alguma coisa (por exemplo, status e spells, como no PDA)? Se sim, peço que diga o nome desta tabela. Assim, não haverá margens de erros na criação do shiny.

Caso contrário, eu posso criar uma função para verificar se o monstro existe (meio gambiarra, mas enfim).

Editado por zipter98
Link para o comentário
Compartilhar em outros sites

  • 0

Claro, seria quase o mesmo processo. Porém, neste caso, você teria que configurar uma tabela indicando os monstros e seus respectivos "shinies".

Já adianto a ambos: será necessário instalar nas sources o creatureevent onSpawn.

Link para a versão 0.3.6

Link para a versão 0.4

Editado por zipter98
Link para o comentário
Compartilhar em outros sites

  • 0

Bom você me poderia citar, as pastas que são envolvidas e os arquivos .lua necessários? Porque assim baixo um Otserv pokémon e copio as pastas, alterando somente os nomes dos monsters e bosses. Se puder me ajudar, ficarei muito grato. happy.png

Link para o comentário
Compartilhar em outros sites

  • 0

data/creaturescripts/scripts, geralmente spawn.lua. Você deve registrar o evento no arquivo XML do(s) monstro(s).

Entretanto, em servidores de pokémon, os pokémons shinies são gerados pelo script apenas adicionando o prefixo "Shiny " no nome. No seu caso, este método não seria possível.

Link para o comentário
Compartilhar em outros sites

  • 0

É exatamente isso que o amigo falou, quero que um dragon lord se torne demodras, tenha 2% de chance, não tem essa tabela, pois não é um servidor de pokémon e sim de tibia, queria adaptar esse sistema de shinys para poder vim boss no lugar dos monstros normais, tendo uma chance pequena, tipo isso, matar um rat ter uma chance de vim um Super rat, algo desse genero ;)

Link para o comentário
Compartilhar em outros sites

  • 0

Fjinst, fiz download aqui de um server pokémon; no caminho data\creaturescripts\scripts coloquei o arquivo spawn.lua contendo:

 

local shinys = {
"Rat", "Bug", "Rotworm", "Minotaur", "Dragon", "Dragon Lord", "Witch", "Hydra", "Ice Witch", "Necromancer", "Giant Spider"}
local raros = {"Demon"}


local function doShinys(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  --


         if isInArray(shinys, getCreatureName(cid)) and math.random(1, 1000) <= 2 then


        local position = {x=getCreaturePosition(cid).x, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z}
        local newName = "Shiny "..getCreatureName(cid)..""


         doRemoveCreature(cid)
         local s = doCreateMonster(newName, position)
         doSendMagicEffect(getThingPos(s), 18)
      end
   end
end


function onSpawn(cid)
 print(getCreatureName(cid))


registerCreatureEvent(cid, "Exp")
if isSummon(cid) then
registerCreatureEvent(cid, "SummonDeath")
return true
end
         doShiny(cid)
doShinys(cid)
return true
end


function doShiny(cid)


if isPlayer(cid) or isNpc(cid) then return true end
        local position = {x=581, y=980, z=7} -- não sei pra que serve
local level = pokes[getCreatureName(cid)].level
        local newName = getCreatureName(cid).."["..level.."]"


         doRemoveCreature(cid)
         doCreateMonsterNick(getCreatureName(cid),newName, position)
return true
end

Então como não manjo de scripts fiz essas alterações, só que porém não funfa pois tem que fazer outra tabela com os bosses.

Se o Zipter98 puder acrescenta-la ficaremos gratos. mdr.gif

 

Link para o comentário
Compartilhar em outros sites

  • 0

Não se preocupem, fazer o que vocês querem é bem simples. Como estou ocupado no momento, mais tarde farei o código para vocês.

Pelas sources, é necessário apenas instalar aquele creatureevent que citei (onSpawn).

Editado por zipter98
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...