FJ
pedido

Sistema de vim shiny

Por Fjinst, 27 de jun. de 2015 em Scripts

resolvido
script
22
3.5k
FjinstF
27 de junho de 2015 às 22:20

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

zipter98Z
27 de junho de 2015 às 22:29

Você tem as sources do seu servidor?

FjinstF
28 de junho de 2015 às 09:39

Sim, tfs 8.54 0.3.6

zipter98Z
28 de junho de 2015 às 14:21

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 Junho 28 por zipter98

GhostzinhowG
28 de junho de 2015 às 14:30

Zipter,teria como configurar este script de pokémon na versão de Tibia? Tipo se mata dragon lord tem 2% no próximo respawn de vir Demodras.

 

Uso TFS 0.4 - TIBIA 8.60

zipter98Z
28 de junho de 2015 às 14:37

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 Junho 28 por zipter98

GhostzinhowG
28 de junho de 2015 às 14:41

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

zipter98Z
28 de junho de 2015 às 14:57

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.

FjinstF
28 de junho de 2015 às 15:26

É 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 ;)

GhostzinhowG
28 de junho de 2015 às 15:47

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

 

FjinstF
28 de junho de 2015 às 15:58

Se eu não me engano tem que criar uma função na pasta libs, sobre esse doShiny, ou então até mesmo seja pelas soucers, não sei dizer.

zipter98Z
28 de junho de 2015 às 16:44

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 Junho 28 por zipter98

GhostzinhowG
28 de junho de 2015 às 17:32

Bom, não consegui pelas sources.. daquele tutorial que você citou.. vou aguardar o código.

 

Obrigado desde já. happy.png

zipter98Z
28 de junho de 2015 às 23:26
Melhor resposta

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 Junho 29 por zipter98

FjinstF
29 de junho de 2015 às 10:34

Uma dúvida, onde eu coloco isso? '-', já instalei as soucers OnSpawn