Ir para conteúdo
  • Cadastre-se

Derivado script de shiny stone e boost stone


Posts Recomendados

Alguem poderia me ajudar com script de shiny stone que to com problema em que quando evoluo o pokemon para shiny ele nao fica com os status de shiny so muda de cor e ganha o nome de shiny, e na boost stone é que ela não falha, toda vez que uso ela funciona, queria que em uma certa quantidade ela falha-se e OBS: uso server com level system, alguem ajuda pfv

Link para o post
Compartilhar em outros sites

Shiny stone teria que ter um bom conhecimento na sua base...
Boost stone posta seu script q eu arrumo pra vc, ja aproveita e fala a partir de qual boost pode falhar, e a percentagem de falha

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Link para o post
Compartilhar em outros sites
Em 08/03/2017 ás 08:03, luangop disse:

Shiny stone teria que ter um bom conhecimento na sua base...
Boost stone posta seu script q eu arrumo pra vc, ja aproveita e fala a partir de qual boost pode falhar, e a percentagem de falha

como assim conhecimento na minha base?

 

Boost stone queria que falha-se a partir da 5º e a porcentagem 50%

 

Script da Boost stone:

 

function onUse(cid, item, topos, item2, frompos)
local myball = getPlayerSlotItem(cid, 8)
local boost = getItemAttribute(myball.uid, "boost") or 0
local boosts = 0
local summon = getCreatureSummons(cid)[1]
if boost >= 50 then
return doPlayerSendCancel(cid, "[BOOST VIP] Seu Pokemon Esta No Boost Maximo!.")
end

if #getCreatureSummons(cid) >= 1 then
boosts = boosts + 1 ----- Testar Ainda
local pokemon = getItemAttribute(myball.uid, "poke")
local off = pokes[pokemon].offense * boost_rate * boosts
local def = pokes[pokemon].defense * boost_rate * boosts
local agi = pokes[pokemon].agility * boosts
local spatk = pokes[pokemon].specialattack * boost_rate * boosts
local vit = pokes[pokemon].vitality * boost_rate * boosts
doSetItemAttribute(myball.uid, "boost", boost + boosts)
doItemSetAttribute(myball.uid, "offense", getItemAttribute(myball.uid, "offense") + off)
doItemSetAttribute(myball.uid, "defense", getItemAttribute(myball.uid, "defense") + def)
doItemSetAttribute(myball.uid, "speed", getItemAttribute(myball.uid, "speed") + agi)
doItemSetAttribute(myball.uid, "specialattack", getItemAttribute(myball.uid, "specialattack") + spatk)
doItemSetAttribute(myball.uid, "vitality", getItemAttribute(myball.uid, "vitality") + vit)
doRemoveItem(item.uid, 1)
doSendFlareEffect(getThingPos(cid))
doSendFlareEffect(getThingPos(summon))
doSendAnimatedText(getThingPos(summon), "Boost UP!", 215)
doPlayerSendTextMessage(cid, 27, "[BOOST VIP] Parabens, Seu Pokemon "..pokemon..", Foi Boostado .")
doPlayerSendTextMessage(cid, 27, "[BOOST VIP] Agora Seu Pokemon "..pokemon.." Esta com o Boost +["..boosts + boost.."].")
else
return doPlayerSendCancel(cid, "[BOOST VIP] So Pode Usar em Seus Pokemons!.")
end
return true
end

Editado por arthurmgoncalves (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Boost stone:
 

function onUse(cid, item, topos, item2, frompos)
	local myball = getPlayerSlotItem(cid, 8)
	local boost = getItemAttribute(myball.uid, "boost") or 0
	local boosts = 0
	local summon = getCreatureSummons(cid)[1]
	local lvfalha = 5
	local chancefail = 50
	if boost >= 50 then
		return doPlayerSendCancel(cid, "[BOOST VIP] Seu Pokemon Esta No Boost Maximo!.")
	end
	if #getCreatureSummons(cid) >= 1 then
		if boost > lvfalha then
			local qqq = math.random(1, 100)
			if qqq > chancefail then
				doSendAnimatedText(getThingPos(summon), "Fail!", 215)
				doPlayerSendTextMessage(cid, 27, "Sua boost stone falhou! [".. qqq .."/50]")
				doRemoveItem(item.uid, 1)
				return true
			end
		end
		boosts = boosts + 1 ----- Testar Ainda
		local pokemon = getItemAttribute(myball.uid, "poke")
		local off = pokes[pokemon].offense * boost_rate * boosts
		local def = pokes[pokemon].defense * boost_rate * boosts
		local agi = pokes[pokemon].agility * boosts
		local spatk = pokes[pokemon].specialattack * boost_rate * boosts
		local vit = pokes[pokemon].vitality * boost_rate * boosts
		doSetItemAttribute(myball.uid, "boost", boost + boosts)
		doItemSetAttribute(myball.uid, "offense", getItemAttribute(myball.uid, "offense") + off)
		doItemSetAttribute(myball.uid, "defense", getItemAttribute(myball.uid, "defense") + def)
		doItemSetAttribute(myball.uid, "speed", getItemAttribute(myball.uid, "speed") + agi)
		doItemSetAttribute(myball.uid, "specialattack", getItemAttribute(myball.uid, "specialattack") + spatk)
		doItemSetAttribute(myball.uid, "vitality", getItemAttribute(myball.uid, "vitality") + vit)
		doRemoveItem(item.uid, 1)
		doSendFlareEffect(getThingPos(cid))
		doSendFlareEffect(getThingPos(summon))
		doSendAnimatedText(getThingPos(summon), "Boost UP!", 215)
		doPlayerSendTextMessage(cid, 27, "[BOOST VIP] Parabens, Seu Pokemon "..pokemon..", Foi Boostado .")
		doPlayerSendTextMessage(cid, 27, "[BOOST VIP] Agora Seu Pokemon "..pokemon.." Esta com o Boost +["..boosts + boost.."].")
	else
		return doPlayerSendCancel(cid, "[BOOST VIP] So Pode Usar em Seus Pokemons!.")
	end
	return true
end


Poste o script da sua shiny stone!

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Link para o post
Compartilhar em outros sites

Vlw, man pelo script

 

script da shiny stone:

 

local evo = {
["Gengar"] = {"Shiny Gengar", 1},
}
local balls = {
[11826] = {newBall = 11826},
[11832] = {newBall = 11832},
[11835] = {newBall = 11835},
[11829] = {newBall = 11829},
}
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
if isMonster(itemEx.uid) and getCreatureMaster(itemEx.uid) == cid then
local monster = getCreatureName(itemEx.uid)
if evo[monster] then  
 if getPlayerItemCount(cid, item.itemid) >= evo[monster][2] then
doPlayerSendTextMessage(cid, 27, "Parabens! Seu "..getPokeName(itemEx.uid).." evoluiu para "..evo[monster][1].."!")
doSendMagicEffect(getThingPos(itemEx.uid), 18)
doRemoveCreature(itemEx.uid)
doPlayerRemoveItem(cid, item.itemid, evo[monster][2]-1)
doRemoveItem(item.uid, 1)
doSummonMonster(cid,evo[monster][1])
local pokeball = getPlayerSlotItem(cid, 8)
doItemSetAttribute(pokeball.uid, "poke", evo[monster][1])
doItemSetAttribute(pokeball.uid, "level", pokes[evo[monster][1]].level)
doItemSetAttribute(ball, "hp", 1)
doItemSetAttribute(ball, "happy", 110)
local pk = getCreatureSummons(cid)[1]
local oldpos = getThingPos(itemEx.uid)
local oldlod = getCreatureLookDir(itemEx.uid)
local oldlvl = getPokemonLevel(itemEx.uid)
doTeleportThing(pk, oldpos, false)
doCreatureSetLookDir(pk, oldlod)
sendFinishEvolutionEffect(pk, true)
addEvent(sendFinishEvolutionEffect, 550, pk, true)
addEvent(sendFinishEvolutionEffect, 1050, pk)

local status = getPokemonStatus(getCreatureName(pk))
local off = status.off
local def = status.def
local agi = status.agi
local spatk = status.spatk
local vit = status.vit

doPlayerSendTextMessage(cid, 27, "Evolution bonus: • Offense: +"..doMathDecimal(off).."  • Defense: +"..doMathDecimal(def).."  • Spc. Atk: +"..doMathDecimal(spatk).."  • Agility: +"..doMathDecimal(agi).."  • Vitality: +"..doMathDecimal(vit).."")

adjustStatus(pk, pokeball.uid, true, false)
return TRUE
 else
return doPlayerSendTextMessage(cid, 27, "You need atleast ".. evo[monster][2] .." stones to do it!")
 end
end
end
return FALSE
end

Link para o post
Compartilhar em outros sites
  • 2 weeks later...
Em 15/03/2017 ás 16:04, arthurmgoncalves disse:

Vlw, man pelo script

 

script da shiny stone:

 

local evo = {
["Gengar"] = {"Shiny Gengar", 1},
}
local balls = {
[11826] = {newBall = 11826},
[11832] = {newBall = 11832},
[11835] = {newBall = 11835},
[11829] = {newBall = 11829},
}
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
if isMonster(itemEx.uid) and getCreatureMaster(itemEx.uid) == cid then
local monster = getCreatureName(itemEx.uid)
if evo[monster] then  
 if getPlayerItemCount(cid, item.itemid) >= evo[monster][2] then
doPlayerSendTextMessage(cid, 27, "Parabens! Seu "..getPokeName(itemEx.uid).." evoluiu para "..evo[monster][1].."!")
doSendMagicEffect(getThingPos(itemEx.uid), 18)
doRemoveCreature(itemEx.uid)
doPlayerRemoveItem(cid, item.itemid, evo[monster][2]-1)
doRemoveItem(item.uid, 1)
doSummonMonster(cid,evo[monster][1])
local pokeball = getPlayerSlotItem(cid, 8)
doItemSetAttribute(pokeball.uid, "poke", evo[monster][1])
doItemSetAttribute(pokeball.uid, "level", pokes[evo[monster][1]].level)
doItemSetAttribute(ball, "hp", 1)
doItemSetAttribute(ball, "happy", 110)
local pk = getCreatureSummons(cid)[1]
local oldpos = getThingPos(itemEx.uid)
local oldlod = getCreatureLookDir(itemEx.uid)
local oldlvl = getPokemonLevel(itemEx.uid)
doTeleportThing(pk, oldpos, false)
doCreatureSetLookDir(pk, oldlod)
sendFinishEvolutionEffect(pk, true)
addEvent(sendFinishEvolutionEffect, 550, pk, true)
addEvent(sendFinishEvolutionEffect, 1050, pk)

local status = getPokemonStatus(getCreatureName(pk))
local off = status.off
local def = status.def
local agi = status.agi
local spatk = status.spatk
local vit = status.vit

doPlayerSendTextMessage(cid, 27, "Evolution bonus: • Offense: +"..doMathDecimal(off).."  • Defense: +"..doMathDecimal(def).."  • Spc. Atk: +"..doMathDecimal(spatk).."  • Agility: +"..doMathDecimal(agi).."  • Vitality: +"..doMathDecimal(vit).."")

adjustStatus(pk, pokeball.uid, true, false)
return TRUE
 else
return doPlayerSendTextMessage(cid, 27, "You need atleast ".. evo[monster][2] .." stones to do it!")
 end
end
end
return FALSE
end

@luangop com esse ai acho que tem que fazer varias modificaçoes mas com esse outro script funciona normal, mas nao tem o valor de quantas stones precisa, so usa uma shiny stone tem como configurar o valor de quantas stones posso usar pra ter o shiny 

 

o script:

 

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

 

local cfg = {

    eff_one = 15,     --Efeito que irá sair ao evoluir o pokémon (esse efeito aparecerá no pokémon)

    eff_two = 18,    --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

Editado por arthurmgoncalves (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por LeoTK
      Salve galera neste tópico irei postar algumas prints do mapa do servidor para quem queira acompanhar e quem sabe até utilizar de inspiração para mapear o seu NTO.
       
      #Att 11/08/2022

       
       
       
       
      Konoha (Em Desenvolvimento)
       
       
       
       
    • Por DiigooMix
      Como o título já diz, será que alguém possui sprite do hitto e se possível as transformações dele?
    • Por OmegaZero
      Olá gostaria que alguém me ajudasse com uma "scripting" não sei se é pela mesma, seria o seguinte uma determinada arma teria a chance de dar double hit e não sei oque fazer alguem poderia ajudar?

      OBS:não sei se é o local correto se não for mova, desculpe
    • Por Madarasenju
      Olá galera do Tibia King, queria por uns npc's no meu server que não tem função de trade nem nada do tipo, queria que eles só andassem como enfeite, Rep+ Pra quem me ajudar... grato desde já.
    • Por SilenceRoot
      A magia é assim o você usa a a magia e ela ficará ativado por 10 segundos, até que o inimigo lance a primeira magia ou todos de uma vez, quando ele lançar a primeira magia, ele não lhe acertará ou seja esquivando dela, e logo em seguida será teletransportado aleatoriamente ao redor do inimigo que usou.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo