Ir para conteúdo

Shiny Stone mais "simples"


zipter98

Posts Recomendados

Olá,

Esse script não é nada complexo, mas, como a maioria dos que vejo sobre Shiny Stone é necessário fazer tabelas para definir os pokémons que irão evoluir e talz, achei melhor fazer este aqui, que é mais simples.

As configurações já estão indicadas no script. Ah, pra quem não sabe, Shiny Stone transforma o pokémon na sua versão shiny.

 

Vá em data/actions/scripts, crie um arquivo com extensão .lua, nomeie-o shinystone, e adicione o seguinte conteúdo:

 

 

function onUse(cid, item, frompos, item2, topos)

local cfg = {
eff_one = xxx, --Efeito que irá sair ao evoluir o pokémon (esse efeito aparecerá no pokémon)
eff_two = xxx, --Efeito que irá sair ao evoluir o pokémon (esse efeito aparecerá no player)
proibidos = false, --Terá pokémons proibidos para evoluir? [true/sim] [false/não]
}
local can_not = {}
if cfg.proibidos == true then
can_not = {"Espeon", "Umbreon", "Magneton"} --Pokémons que não podem evoluir.
end
if not isMonster(item2.uid) or not isSummon(item2.uid) then
return true
end
if not pokes["Shiny "..getCreatureName(item2.uid)] then
return doPlayerSendCancel(cid, "Esse pokémon não possui uma forma shiny.")
end
local minlevel = pokes["Shiny "..getCreatureName(item2.uid)].level
if not isPlayer(getCreatureMaster(item2.uid)) or getCreatureMaster(item2.uid) ~= cid then
return doPlayerSendCancel(cid, "Você só pode evoluir seu próprio pokémon.")
end
if getPlayerLevel(cid) < minlevel then
return doPlayerSendCancel(cid, "Você não tem o level necessário para evoluir esse pokémon. ("..minlevel..").")
end
if isInArray(can_not, getCreatureName(item2.uid)) then
return doPlayerSendCancel(cid, "Você não pode evoluir esse pokémon!")
end
local nome = "Shiny "..getCreatureName(item2.uid)
local owner = getCreatureMaster(item2.uid)
local pokeball = getPlayerSlotItem(cid, 8)
local description = "Contains a "..nome.."."
local pct = getCreatureHealth(item2.uid) / getCreatureMaxHealth(item2.uid)
doItemSetAttribute(pokeball.uid, "hp", pct)
doItemSetAttribute(pokeball.uid, "poke", nome)
doItemSetAttribute(pokeball.uid, "description", "Contains a "..nome..".")
doPlayerSendTextMessage(cid, 27, "Parabéns! Seu "..getPokeName(item2.uid).." se transformou em um "..nome.."!")
doSendMagicEffect(getThingPos(item2.uid), cfg.eff_one)
doTransformItem(getPlayerSlotItem(cid, 7).uid, fotos[nome])
doSendMagicEffect(getThingPos(cid), cfg.eff_two)
local oldpos = getThingPos(item2.uid)
local oldlod = getCreatureLookDir(item2.uid)
doRemoveCreature(item2.uid)
doSummonMonster(cid, nome)
local pk = getCreatureSummons(cid)[1]
doTeleportThing(pk, oldpos, false)
doCreatureSetLookDir(pk, oldlod)
doRemoveItem(item.uid, 1)
doAddPokemonInOwnList(cid, nome)
local happy = getItemAttribute(pokeball.uid, "happy")
doItemSetAttribute(pokeball.uid, "happy", happy + happyGainedOnEvolution)
if happy + happyGainedOnEvolution > 255 then
doItemSetAttribute(pokeball.uid, "happy", 255)
end
adjustStatus(pk, pokeball.uid, true, false)
if useKpdoDlls then
doUpdateMoves(cid)
end
return true
end

Agora, em data/actions, abra actions.xml, e adicione a tag:
<action itemid="id da shiny stone" event="script" value="shinystone.lua" allowfaruse="1"/>
Só isso, qualquer erro, só postar. Testei aqui, e está funcionando perfeitamente.
Testado em PDA by Slicer sem level, v1.9.
Ah, só mais uma complementação: só está evoluindo pokémons que sua versão shiny tenha "Shiny " antes do nome. Por exemplo, "Shiny Electabuzz". Se em seu server os shinies não tiverem o prefixo "Shiny", obviamente, o pokémon não irá evoluir.
Editado por zipter98
Link para o comentário
Compartilhar em outros sites

zipter primeiramente parabens pelo script.

Só uma dúvida,estava lendo o script,e este código nao faz remover o item só se estiver no player? ou seja,se caso ele use a stone no chão para transformar em shiny o pokemon,irá transformar,e não irá remover a pedra,pois a pedra nao está no player.

 

 

doPlayerRemoveItem(cid, cfg.id_stone, 1)

 

O correto seria usar doRemoveItem(item.uid) ,não?

Link para o comentário
Compartilhar em outros sites

O que são Mega Pokemons? Tem algo a mais escrito no nome? Eles possuem forma Shiny? O script nada mais que remove um poke normal e cria um mesmo adicionando o Shiny,claro isso se tiver a forma Shiny.

Link para o comentário
Compartilhar em outros sites

Kabo, pode sim cara... É só editar as variáveis, tirando o "shiny" e colocando "mega".

E também deixar o sistema de Mega Pokemon com nome Mega no começo igual os shinys! xD


Tente esse script aqui:

 

 

 

function onUse(cid, item, frompos, item2, topos)
local cfg = {
eff_one = xxx, --Efeito que irá sair ao evoluir o pokémon (esse efeito aparecerá no pokémon)
eff_two = xxx, --Efeito que irá sair ao evoluir o pokémon (esse efeito aparecerá no player)
proibidos = false, --Terá pokémons proibidos para evoluir? [true/sim] [false/não]
}
local can_not = {}
if cfg.proibidos == true then
can_not = {"Espeon", "Umbreon", "Magneton"} --Pokémons que não podem evoluir.
end
if not isMonster(item2.uid) or not isSummon(item2.uid) then
return true
end
if not pokes["Mega "..getCreatureName(item2.uid)] then
return doPlayerSendCancel(cid, "Esse pokémon não possui uma forma mega.")
end
local minlevel = pokes["Mega "..getCreatureName(item2.uid)].level
if not isPlayer(getCreatureMaster(item2.uid)) or getCreatureMaster(item2.uid) ~= cid then
return doPlayerSendCancel(cid, "Você só pode evoluir seu próprio pokémon.")
end
if getPlayerLevel(cid) < minlevel then
return doPlayerSendCancel(cid, "Você não tem o level necessário para evoluir esse pokémon. ("..minlevel..").")
end
if isInArray(can_not, getCreatureName(item2.uid)) then
return doPlayerSendCancel(cid, "Você não pode evoluir esse pokémon!")
end
local nome = "Mega "..getCreatureName(item2.uid)
local owner = getCreatureMaster(item2.uid)
local pokeball = getPlayerSlotItem(cid, 8)
local description = "Contains a "..nome.."."
local pct = getCreatureHealth(item2.uid) / getCreatureMaxHealth(item2.uid)
doItemSetAttribute(pokeball.uid, "hp", pct)
doItemSetAttribute(pokeball.uid, "poke", nome)
doItemSetAttribute(pokeball.uid, "description", "Contains a "..nome..".")
doPlayerSendTextMessage(cid, 27, "Parabéns! Seu "..getPokeName(item2.uid).." se transformou em um "..nome.."!")
doSendMagicEffect(getThingPos(item2.uid), cfg.eff_one)
doTransformItem(getPlayerSlotItem(cid, 7).uid, fotos[nome])
doSendMagicEffect(getThingPos(cid), cfg.eff_two)
local oldpos = getThingPos(item2.uid)
local oldlod = getCreatureLookDir(item2.uid)
doRemoveCreature(item2.uid)
doSummonMonster(cid, nome)
local pk = getCreatureSummons(cid)[1]
doTeleportThing(pk, oldpos, false)
doCreatureSetLookDir(pk, oldlod)
doRemoveItem(item.uid, 1)
doAddPokemonInOwnList(cid, nome)
local happy = getItemAttribute(pokeball.uid, "happy")
doItemSetAttribute(pokeball.uid, "happy", happy + happyGainedOnEvolution)
if happy + happyGainedOnEvolution > 255 then
doItemSetAttribute(pokeball.uid, "happy", 255)
end
adjustStatus(pk, pokeball.uid, true, false)
if useKpdoDlls then
doUpdateMoves(cid)
end
return true
end

 

 

Link para o comentário
Compartilhar em outros sites

  • 3 months later...
  • 1 year later...
  • 1 year later...
×
×
  • Criar Novo...