Ir para conteúdo
  • Cadastre-se

Sitema%2FMod Ditto e Shiny Ditto System 100%


Posts Recomendados

Eae pessoal blz?? eu peguei o ditto system postado pelo Wend e feito pelo Gabrielbsales(Featzen), então só mudei algumas tags e modifiquei um pouco e dei umas melhorias, bem pequenas só que vão ajudar, creio eu :P Então vamos parar de blábláblá em começar o tutorial!
 
Primeiramente vá em Data/actions/scripts/order.lua e Procure por:
 

-------- TRANSFORM ----------

Apague tudo aqui dentro, até o:


-------- LIGHT ------------

Ai dentro ditto coloque isto:
 

if (getCreatureName(mysum) == "Ditto") and getItemAttribute(thisball.uid, "ehditto") ~= -1 and isMonster(item2.uid) and pokes[getCreatureName(item2.uid)] then
local m = getCreatureMaster(cid)
local p = getPlayerSlotItem(m, 8)
local proibidossempre = {"Celebi", "Moltres", "Zapdos", "Suicune", "Entei", "Raikou", "Suicune", "Lugia", "Mewtwo", "Mew", "Shiny Rhydon", "Shiny Ariados", "Shiny Magneton", "Shiny Ninetales", "Shiny Politoed", "Shiny Stantler", "Shiny Dodrio", "Shiny Espeon", "Shiny Umbreon"} -- Nunca permitir
local proibidosboost = {"Shiny Dragonite", "Shiny Snorlax", "Shiny Gyarados", "Shiny Scyther"} -- Permitir se ditto for +50
local boost = getItemAttribute(thisball.uid, "boost") or 0
if getCreatureName(item2.uid) == "Ditto" or getCreatureName(item2.uid) == "Shiny Ditto" then
doPlayerSendCancel(cid, "Your ditto can't transform into another ditto.")
markPos(mysum, unfix)
return true
end
if isInArray(proibidossempre, getCreatureName(item2.uid)) then --Checa a lista
doPlayerSendCancel(cid, "Your ditto can't transform into that pokemon.")
markPos(mysum, unfix)
return true
end
if isInArray(proibidosboost, getCreatureName(item2.uid)) and boost < 50 then --Checa a lista
doPlayerSendCancel(cid, "Your ditto can't transform into that pokemon.")
markPos(mysum, unfix)
return true
end
 
if getCreatureName(item2.uid) == getPlayerStorageValue(mysum, 1010) then
doPlayerSendCancel(cid, "Your ditto is already transformed into that pokemon.")
markPos(mysum, unfix)
return true
end
markPos(mysum, unfix)
local name = getCreatureName(item2.uid)
setPlayerStorageValue(mysum, 1010, getCreatureName(item2.uid))
doItemSetAttribute(thisball.uid, "ehditto", 1)
doItemSetAttribute(thisball.uid, "poke", getCreatureName(item2.uid))
doUpdateMoves(cid)
doSetCreatureOutfit(mysum, getCreatureOutfit(item2.uid), -1)
doCreatureSay(mysum, "TRANSFORM!", TALKTYPE_MONSTER)
doFaceCreature(mysum, getThingPos(item2.uid))
doSendMagicEffect(getThingPos(mysum), 184)
doPlayerSay(cid, ""..getPokeName(mysum)..", transform into "..getArticle(name).." "..name.."!", 1)
return true
end
-----------------------------
 
-------- TRANSFORM Shiny Ditto ---------- --alterado v1.7
if (getCreatureName(mysum) == "Shiny Ditto") and getItemAttribute(thisball.uid, "ehshinyditto") ~= -1 and isMonster(item2.uid) and pokes[getCreatureName(item2.uid)] then
local m = getCreatureMaster(cid)
local p = getPlayerSlotItem(m, 8)
local proibidossempre = {"Celebi", "Moltres", "Zapdos", "Suicune", "Entei", "Raikou", "Suicune", "Lugia", "Mewtwo", "Mew", "Shiny Rhydon", "Shiny Ariados", "Shiny Magneton", "Shiny Ninetales", "Shiny Politoed", "Shiny Stantler", "Shiny Dodrio", "Shiny Espeon", "Shiny Umbreon"} -- Nunca permitir
local proibidosboost = {"Shiny Dragonite", "Shiny Snorlax", "Shiny Gyarados", "Shiny Scyther"} -- Permitir se ditto for +50
local boost = getItemAttribute(thisball.uid, "boost") or 0
if getCreatureName(item2.uid) == "Ditto" or getCreatureName(item2.uid) == "Shiny Ditto" then
doPlayerSendCancel(cid, "Your ditto can't transform into another ditto.")
markPos(mysum, unfix)
return true
end
if isInArray(proibidossempre, getCreatureName(item2.uid)) then --Checa a lista
doPlayerSendCancel(cid, "Your ditto can't transform into that pokemon.")
markPos(mysum, unfix)
return true
end
if isInArray(proibidosboost, getCreatureName(item2.uid)) and boost < 50 then --Checa a lista
doPlayerSendCancel(cid, "Your ditto can't transform into that pokemon.")
markPos(mysum, unfix)
return true
end
 
if getCreatureName(item2.uid) == getPlayerStorageValue(mysum, 1010) then
doPlayerSendCancel(cid, "Your ditto is already transformed into that pokemon.")
markPos(mysum, unfix)
return true
end
markPos(mysum, unfix)
local name = getCreatureName(item2.uid)
setPlayerStorageValue(mysum, 1010, getCreatureName(item2.uid))
doItemSetAttribute(thisball.uid, "ehshinyditto", 1)
doItemSetAttribute(thisball.uid, "poke", getCreatureName(item2.uid))
doUpdateMoves(cid)
doSetCreatureOutfit(mysum, getCreatureOutfit(item2.uid), -1)
doCreatureSay(mysum, "TRANSFORM!", TALKTYPE_MONSTER)
doFaceCreature(mysum, getThingPos(item2.uid))
doSendMagicEffect(getThingPos(mysum), 184)
--doPlayerSay(cid, ""..getPokeName(mysum)..", transform into "..getArticle(name).." "..name.."!", 1)
doCreatureSay(cid, ""..getPokeName(mysum)..", transform into "..getArticle(name).." "..name.."!", TALKTYPE_ORANGE_1)
return true
end


 
Pronto Agora esta transformando e copiando as habilidades e tudo! Agora Para o ditto e shiny ditto reverter a transformação .
 
Crie um arquivo chamado dittorevert.lua em data/talkactions e coloque isto dentro:

function onSay(cid, words, param, channel)
local thisball = getPlayerSlotItem(cid, 8)
if getItemAttribute(thisball.uid, "ehditto") then
doItemSetAttribute(thisball.uid, "poke",  "Ditto")
doItemSetAttribute(thisball.uid, "ehditto",  1)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Puxe o ditto para terminar a reversão do ditto.')
elseif getItemAttribute(thisball.uid, "ehshinyditto") then
doItemSetAttribute(thisball.uid, "poke",  "Shiny Ditto")
doItemSetAttribute(thisball.uid, "ehshinyditto",  1)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Puxe o Shiny Ditto para terminar a reversão do Shiny Ditto.')
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Você Não Está Usando Um Ditto ou Shiny Ditto.')
end
end


e em talkactions.xml coloque isto:

<talkaction words="!revert" event="script" value="dittorevert.lua"/>

Pronto sistema 100% só que ele está com nome, poder, força tudo igual! para resolver isto vamos em lib/level system.lua
 
abra e procure por isto: 

setPlayerStorageValue(pk, 1000, getItemAttribute(item, "level"))
setPlayerStorageValue(pk, 1001, getItemAttribute(item, "offense") + bonusoffense)
setPlayerStorageValue(pk, 1002, getItemAttribute(item, "defense") + bonusdefense)
setPlayerStorageValue(pk, 1003, getItemAttribute(item, "speed") + bonusagility)
setPlayerStorageValue(pk, 1005, getItemAttribute(item, "specialattack") + bonussattack)


e substitua por isto:

if (getItemAttribute(item, "ehditto") == 1) then
setPlayerStorageValue(pk, 1000, getItemAttribute(item, "level"))
setPlayerStorageValue(pk, 1001, getItemAttribute(item, "offense") + bonusoffense * 0.75)
setPlayerStorageValue(pk, 1002, getItemAttribute(item, "defense") + bonusdefense * 0.75)
setPlayerStorageValue(pk, 1003, getItemAttribute(item, "speed") + bonusagility * 0.75)
setPlayerStorageValue(pk, 1005, getItemAttribute(item, "specialattack") + bonussattack * 0.75)
elseif (getItemAttribute(item, "ehshinyditto") == 1) then
setPlayerStorageValue(pk, 1000, getItemAttribute(item, "level"))
setPlayerStorageValue(pk, 1001, getItemAttribute(item, "offense") + bonusoffense * 0.50)
setPlayerStorageValue(pk, 1002, getItemAttribute(item, "defense") + bonusdefense * 0.50)
setPlayerStorageValue(pk, 1003, getItemAttribute(item, "speed") + bonusagility * 0.50)
setPlayerStorageValue(pk, 1005, getItemAttribute(item, "specialattack") + bonussattack * 0.50)
else
setPlayerStorageValue(pk, 1000, getItemAttribute(item, "level"))
setPlayerStorageValue(pk, 1001, getItemAttribute(item, "offense") + bonusoffense)
setPlayerStorageValue(pk, 1002, getItemAttribute(item, "defense") + bonusdefense)
setPlayerStorageValue(pk, 1003, getItemAttribute(item, "speed") + bonusagility)
setPlayerStorageValue(pk, 1005, getItemAttribute(item, "specialattack") + bonussattack)
end


Pronto Agora o Shiny ditto ta com 75% de força do poke transformado e o ditto com 50% de força do pokemon transformado
 
Agora para identificar que é um ditto/shiny ditto vamos em creaturescript/scripts/look.lua, abra e procure por:

table.insert(str, "\nIt contains "..getArticle(pokename).." "..pokename..".\n")

substitua por:

if getItemAttribute(thing.uid, "ehditto") == 1 then
table.insert(str, "\nIt contains "..getArticle(pokename).." "..pokename.." (Ditto).\n")
elseif getItemAttribute(thing.uid, "ehshinyditto") == 1 then
table.insert(str, "\nIt contains "..getArticle(pokename).." "..pokename.." (Shiny Ditto).\n")
else
table.insert(str, "\nIt contains "..getArticle(pokename).." "..pokename..".\n")
end

Em actions/scripts/goback.lua procure por:
 

if getCreatureName(pk) == "Ditto" or getCreatureName(pk) == "Shiny Ditto" then --edited
 
local left = getItemAttribute(item.uid, "transLeft")
local name = getItemAttribute(item.uid, "transName")
 
if left and left > 0 then
setPlayerStorageValue(pk, 1010, name)
doSetCreatureOutfit(pk, {lookType = getItemAttribute(item.uid, "transOutfit")}, -1)
addEvent(deTransform, left * 1000, pk, getItemAttribute(item.uid, "transTurn"))
doItemSetAttribute(item.uid, "transBegin", os.clock())
else
setPlayerStorageValue(pk, 1010, getCreatureName(pk) == "Ditto" and "Ditto" or "Shiny Ditto") --edited
end
end


e apague!
 
em lib/Some Functions.lua procure por:
 

function doAppear(cid) --Faz um poke q tava invisivel voltar a ser visivel...
if not isCreature(cid) then return true end
doRemoveCondition(cid, CONDITION_INVISIBLE)
doRemoveCondition(cid, CONDITION_OUTFIT)
doCreatureSetHideHealth(cid, false)
if getCreatureName(cid) == "Ditto" and pokes[getPlayerStorageValue(cid, 1010)] and getPlayerStorageValue(cid, 1010) ~= "Ditto" then
if isSummon(cid) then
local item = getPlayerSlotItem(getCreatureMaster(cid), 8)
doSetCreatureOutfit(cid, {lookType = getItemAttribute(item.uid, "transOutfit")}, -1) --alterado v1.6.1
end
end
end

 


e substitua por:

function doAppear(cid) --Faz um poke q tava invisivel voltar a ser visivel...
if not isCreature(cid) then return true end
doRemoveCondition(cid, CONDITION_INVISIBLE)
doRemoveCondition(cid, CONDITION_OUTFIT)
doCreatureSetHideHealth(cid, false)
end

 
Ainda em Some functions procure por:

if getCreatureName(pokemon) == "Ditto" then
if isTransformed(pokemon) then
local left = getItemAttribute(pokeball.uid, "transLeft") - (os.clock() - getItemAttribute(pokeball.uid, "transBegin"))
doItemSetAttribute(pokeball.uid, "transLeft", left)
end
end

 
e apague
 
e para finalizar procure por:

if getCreatureName(pokemon) == "Shiny Ditto" then
if isTransformed(pokemon) then
local left = getItemAttribute(pokeball.uid, "transLeft") - (os.clock() - getItemAttribute(pokeball.uid, "transBegin"))
doItemSetAttribute(pokeball.uid, "transLeft", left)
end
end

e Apague!!!!!!!
 
Pronto Agora sim Sistema 100% Esta Copiando Habilidades, força diminuida do pokemon normal e identificação do Ditto e Shiny Ditto! Acredito que vai ajudar a muitos!
 
Créditos
 
Gabrielbsales Por criar o Script
Wend por fazer um tutorial mais completo
Zet0N0Murmurou (Summer Slyer) por adaptar e melhorar o script para o Shiny Ditto!

Editado por Summer Slyer (veja o histórico de edições)

wq3bBzt.png
Pokémon Dust Evolution
 
É aonde começa sua nova aventura!! 

 

Facebook

 
Verifique Atualizações

 

Link para o post
Compartilhar em outros sites

UP

wq3bBzt.png
Pokémon Dust Evolution
 
É aonde começa sua nova aventura!! 

 

Facebook

 
Verifique Atualizações

 

Link para o post
Compartilhar em outros sites

Tópico aprovado e movido a área correta, obrigado por compartilhar.

Você recebeu um REP pela contribuição!

Link para o post
Compartilhar em outros sites
  • 2 weeks later...

Cara, nao sei se é pedir muito, mas teria como fazer que o Ditto(normal), quando transformado em algum pokemon e depois voltado para ball, ser "destransformado", para que quando o solte ele, ele seja Ditto normal? Alem disso como é o Look?(O do Wend, mostrava que é o Pokemon transformado, eu quero que apareçe que é Ditto)

O Shiny Ditto, grava o pokemon mesmo sendo guardado na ball

Meus Contatos!

 

Minhas Funções:

 

               Skype: TsplayerT

         Facebook: TakaFukushii

          YouTube: ADoseDupla

           Twitter: @_Splayer_

 

 

 

 

 

 

 

                             Mapper:▓▓▓▓▓▓▓▓▓▓ 97%

     Programmer:▓▓▓▓▓▒▒▒▒▒ 45%

             Scripter:▓▓▓▓▓▓▓▓▓▒ 83%

              Spriter:▓▓▓▓▓▓▒▒▒▒ 57%

    Gamemaster:▓▓▓▓▓▓▓▓▓▓ 99%

        Ot Creator:▓▓▓▓▓▓▓▒▒▒71%

Ot Client Maker:▓▓▓▓▓▓▓▒▒▒74%

 

Link para o post
Compartilhar em outros sites

Tipo o primeiro pedido, estou sem tempo para ver, mas o segundo que mostra apenas que é Ditto ou Shiny Ditto vc pode usar este no look.lua:
 

if getItemAttribute(thing.uid, "ehditto") == 1 then
table.insert(str, "\nIt contains "..getArticle(pokename).." Ditto.\n")
elseif getItemAttribute(thing.uid, "ehshinyditto") == 1 then
table.insert(str, "\nIt contains "..getArticle(pokename).." Shiny Ditto.\n")
else
table.insert(str, "\nIt contains "..getArticle(pokename).." "..pokename..".\n")
end

 
Acredito que isto funcione!

 

a primeira linha ou seja o pedido eu n tenho tempo para fazer e a ultima linha que vc falou ae, eu n entendi nada, vc falou de shiny ditto gravado ahh? explica melhor ae

wq3bBzt.png
Pokémon Dust Evolution
 
É aonde começa sua nova aventura!! 

 

Facebook

 
Verifique Atualizaçõ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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo