Ir para conteúdo

[PDA] New Ditto System[PXG]


Posts Recomendados

eu adicionei certo só que quando eu falo !revert aparece o comando em vermelho e em seguida em amarelo não acontece nada, é normal ele vira o nome do pokes também?

não ta tendo como posta spoler eu ia te manda o meu talk e o script pra tu ver que eu coloquei certo, só isso que não funfa vei, se poder entra skype ou algo assim pra mim te mostra.

Link para o comentário
Compartilhar em outros sites

@gabrielbsales

 

pegou de boa o system, mto bom...

só que se o server tem o shiny ditto... nele não funciona.

como que eu faço para habilitar o system no shiny ditto?

Tem que fazer poucas modificações, se quiser posso fazer, me add skype: gabriel.sales.01

Link para o comentário
Compartilhar em outros sites

ae, gabrielbsales, tava vendo ake, pq c n coloca pra ele volta pa ball e sair automaticamente?

tava tentando fazer ele sair so q n deu certo, so deu certo puxar ele =/

 

 

 

    doReturnPokemon(cid, mysum, thisball, 184)

 

 

 

isso ae foi pra ele voltar, agr so criar um addEvent e colocar pra sair, q eu n consegui fazer =/

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

 

 

 

Isso ocorreu quando você tentou fazer o que?

quando eu tentei da order no ditto pra virar shiny, eu fiz aquilo ai eu perdi o fly e o ride do server?

 

Seu server está muito modificado? Testei no Pda By Slicer 1.9.1 e funcionou sem bugs.

 

tipo os erros paro de dar mais eu coloquei a tag do !revert não deu tem um local exato pra por se tiver me fala ai, tem como aumenta o tempo dele fica transformado? rep ai man ta ficando daora se der pra ajudar agradeço mais ainda.

deu isso também quando eu logo.

 

26120id.png

 

 

Isso e do seu OTC, tem nada a ver com o script descrito no topico.

 

Mais te ajudando com seu problema:

 

talkactions.xml:

<talkaction value="otcCliente.lua" event="script" words="#getSto#;#getGym#;@pokedex;@buy;@tvCam;@autoLoot"/>
Editado por Techrlz
Link para o comentário
Compartilhar em outros sites

  • 11 months later...
  • 1 month later...

Cara, nao sei se sabe mas tem um bug nessa script, transforma em qualquer pokemon e va no npc de venda de pokemon. voce vai vender o (Ditto) pelo pokemon transformado.

Link para o comentário
Compartilhar em outros sites

Cara, nao sei se sabe mas tem um bug nessa script, transforma em qualquer pokemon e va no npc de venda de pokemon. voce vai vender o (Ditto) pelo pokemon transformado.

Sim, estou ciente desse "bug", mas assim como tudo que posto aqui, deixo algo pra vocês resolverem.

Já foi postado boa parte do "sistema".

Link para o comentário
Compartilhar em outros sites

  • 1 month later...

Bom, esse ditto system:

-Copia o pokemon e o balanceia sem necessidade de puxa-lo.

-Copias Habilidades...

Primeiramente, vá no some functions.lua - Localizado na pasta lib.

E adicione isto no final(depois do ultimo end):

 

 

function doDittoTransform(ditto, pokemon)
local sid = getCreatureMaster(ditto)
local eff = 184
local name = pokemon
local pos = getCreaturePosition(ditto)
local outfit = getPokemonXMLOutfit(pokemon)
 doSendMagicEffect(getThingPosWithDebug(ditto), eff)
 doSetCreatureOutfit(ditto, {lookType = outfit}, -1)
 doItemSetAttribute(getPlayerSlotItem(sid, 8).uid, "poke", name)
 doItemSetAttribute(getPlayerSlotItem(sid, 8).uid, "ehditto", 1)
 doPlayerSay(sid, ""..getPokeName(ditto)..", transform into "..getArticle(pokemon).." "..pokemon.."!", 1)
  doCreatureSay(ditto, "TRANSFORM!", TALKTYPE_MONSTER)
 doRemoveCreature(ditto)
 doSummonMonster(sid, name)
 doTeleportThing(getCreatureSummons(sid)[1], pos, false)
 adjustStatus(getCreatureSummons(sid)[1], getPlayerSlotItem(sid, 8).uid, true, false)
doUpdateMoves(sid)
return true
end

function doDittoRevert(m)
local sid = m
local eff = 184
local name = "Ditto"
local outfit = getPokemonXMLOutfit(name)
if #getCreatureSummons(sid) <= 0 then
 doItemSetAttribute(getPlayerSlotItem(sid, 8).uid, "poke", name)
 doItemSetAttribute(getPlayerSlotItem(sid, 8).uid, "ehditto", 1)
elseif #getCreatureSummons(sid) == 1 then
local ditto = getCreatureSummons(sid)[1]
local pos = getCreaturePosition(ditto)
if getCreatureName(ditto) == "Ditto" then
return true
end
 doSendMagicEffect(getThingPosWithDebug(ditto), eff)
 doSetCreatureOutfit(ditto, {lookType = outfit}, -1)
 doItemSetAttribute(getPlayerSlotItem(sid, 8).uid, "poke", name)
 doItemSetAttribute(getPlayerSlotItem(sid, 8).uid, "ehditto", 1)
 doPlayerSay(sid, ""..getPokeName(ditto)..", untransfrom!", 1)
  doCreatureSay(ditto, "TRANSFORM!", TALKTYPE_MONSTER)
 doRemoveCreature(ditto)
 doSummonMonster(sid, name)
 doTeleportThing(getCreatureSummons(sid)[1], pos, false)
 adjustStatus(getCreatureSummons(sid)[1], getPlayerSlotItem(sid, 8).uid, true, false)
doUpdateMoves(sid)
end
end 

 

 

 

Bom, essas são as funções de transformar e destransformar.

 

Agora, vá no order.lua - Localizado no actions/scripts.

E procure por:

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

Apague tudo aqui dentro, até o:

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

Ali dentro, bote:

 

 

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 = {"Mew_", "Mewtwo_", "Unown Legion", "Ho-oh", "Moltres", "Celebi", "Moltres", "Zapdos", "Suicune", "Entei", "Raikou", "Articuno", "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 outpokes = {"Magnet Electabuzz","Elder Tyranitar","Hard Golem","Brute Rhydon","Iron Steelix","Brave Charizard","Elder Charizard","Lava Magmar","Enraged Typhlosion","Capoeira Hitmontop","Boxer Hitmonchan","Taekwondo Hitmonlee","Dragon Machamp","Undefeated Machamp","Wardog Arcanine","Elder Arcanine","Furious Mantine","War Gyarados","Brave Blastoise","Brave Venusaur","Ancient Meganium","Tribal Feraligatr","Elder Dragonite","Elder Pinsir","Elder Raichu","Charged Raichu","Tribal Xatu","Enigmatic Girafarig","Ancient Alakazam","Master Alakazam","Furious Ampharos","Elder Electabuzz","Furious Scyther","Tribal Scyther","War Heracross","Metal Scizor","Brave Nidoking","Brave Nidoqueen","Elder Muk","Dark Crobat","Trickmaster Gengar"                              ,"Elder Gengar"                              ,"Banshee Misdreavus","Hungry Snorlax","Brute Ursaring","War Granbull","Singer Wigglytuff","Aviator Pidgeot","Metal Skarmory","Brave Noctowl","Elder Pidgeot","Ancient Dragonite","Milch-Miltank","Ancient Kingdra","Psy Jynx","Elder Venusaur","Elder Jynx","Evil Cloyster","Freezing Dewgong","Elder Tangela","Furious Sandslash","Roll Donphan","Bone Marowak","Octopus Octillery","Moon Clefable","Heavy Piloswine","Elder Blastoise","Elder Tentacruel","Elder Marowak","Master Stantler"}
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(outpokes, getCreatureName(item2.uid)) then
doPlayerSendCancel(cid, "Your ditto can't transform into this pokemon.")
markPos(mysum, unfix)
return true
end
if getPlayerLevel(cid) < pokes[getCreatureName(item2.uid)].level then
doPlayerSendCancel(cid, "You haven't level to transform into that pokemon.")
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
markPos(mysum, unfix)
doFaceCreature(mysum, getThingPos(item2.uid))
doDittoTransform(mysum, getCreatureName(item2.uid))
return true
end
----------------------------- 

 

 

 

Pronto, ditto ja está tranformando, agora falta o !revert, para isso vá em talkactions/scripts e crie um arquivo(.lua) com nome de dittorevert, e dentro coloque:

 

 

function onSay(cid, words, param, channel)
local thisball = getPlayerSlotItem(cid, 8)
if thisball and getItemAttribute(thisball.uid, "ehditto") then
doDittoRevert(cid)
end
return true
end 

 

 

 

Agora, no talkactions.xml adicione esta linha:

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

Se fizer tudo corretamente, funcionará normalmente.

 

Gif:

 

 

Hi9PcI.gif

 

 

 

Créditos:

Gabrielbsales(sou op faço tudo solo)

 

tem como postar como fazer o procedimento para shiny ditto????

vc ajudo um membro ae do forum mais nao postaram como fazer aq . desde ja agradeço. rep++

 

 

Link para o comentário
Compartilhar em outros sites

 

tem como postar como fazer o procedimento para shiny ditto????

vc ajudo um membro ae do forum mais nao postaram como fazer aq . desde ja agradeço. rep++

 

 

Eu fiz este mesmo procedimento só que aonde tinha "Ditto" troquei por shiny ditto :p dps faço um tópico para ajudar a vcs :p

Pronto Criei o tópico e o tutorial segue ai: http://www.xtibia.com/forum/topic/235361-ditto-e-shiny-ditto-system-igual-pxg-100/?p=1659331

Link para o comentário
Compartilhar em outros sites

Bom, esse ditto system:

-Copia o pokemon e o balanceia sem necessidade de puxa-lo.

-Copias Habilidades...

Primeiramente, vá no some functions.lua - Localizado na pasta lib.

E adicione isto no final(depois do ultimo end):

 

 

function doDittoTransform(ditto, pokemon)
local sid = getCreatureMaster(ditto)
local eff = 184
local name = pokemon
local pos = getCreaturePosition(ditto)
local outfit = getPokemonXMLOutfit(pokemon)
 doSendMagicEffect(getThingPosWithDebug(ditto), eff)
 doSetCreatureOutfit(ditto, {lookType = outfit}, -1)
 doItemSetAttribute(getPlayerSlotItem(sid, 8).uid, "poke", name)
 doItemSetAttribute(getPlayerSlotItem(sid, 8).uid, "ehditto", 1)
 doPlayerSay(sid, ""..getPokeName(ditto)..", transform into "..getArticle(pokemon).." "..pokemon.."!", 1)
  doCreatureSay(ditto, "TRANSFORM!", TALKTYPE_MONSTER)
 doRemoveCreature(ditto)
 doSummonMonster(sid, name)
 doTeleportThing(getCreatureSummons(sid)[1], pos, false)
 adjustStatus(getCreatureSummons(sid)[1], getPlayerSlotItem(sid, 8).uid, true, false)
doUpdateMoves(sid)
return true
end

function doDittoRevert(m)
local sid = m
local eff = 184
local name = "Ditto"
local outfit = getPokemonXMLOutfit(name)
if #getCreatureSummons(sid) <= 0 then
 doItemSetAttribute(getPlayerSlotItem(sid, 8).uid, "poke", name)
 doItemSetAttribute(getPlayerSlotItem(sid, 8).uid, "ehditto", 1)
elseif #getCreatureSummons(sid) == 1 then
local ditto = getCreatureSummons(sid)[1]
local pos = getCreaturePosition(ditto)
if getCreatureName(ditto) == "Ditto" then
return true
end
 doSendMagicEffect(getThingPosWithDebug(ditto), eff)
 doSetCreatureOutfit(ditto, {lookType = outfit}, -1)
 doItemSetAttribute(getPlayerSlotItem(sid, 8).uid, "poke", name)
 doItemSetAttribute(getPlayerSlotItem(sid, 8).uid, "ehditto", 1)
 doPlayerSay(sid, ""..getPokeName(ditto)..", untransfrom!", 1)
  doCreatureSay(ditto, "TRANSFORM!", TALKTYPE_MONSTER)
 doRemoveCreature(ditto)
 doSummonMonster(sid, name)
 doTeleportThing(getCreatureSummons(sid)[1], pos, false)
 adjustStatus(getCreatureSummons(sid)[1], getPlayerSlotItem(sid, 8).uid, true, false)
doUpdateMoves(sid)
end
end 

 

 

 

Bom, essas são as funções de transformar e destransformar.

 

Agora, vá no order.lua - Localizado no actions/scripts.

E procure por:

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

Apague tudo aqui dentro, até o:

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

Ali dentro, bote:

 

 

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 = {"Mew_", "Mewtwo_", "Unown Legion", "Ho-oh", "Moltres", "Celebi", "Moltres", "Zapdos", "Suicune", "Entei", "Raikou", "Articuno", "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 outpokes = {"Magnet Electabuzz","Elder Tyranitar","Hard Golem","Brute Rhydon","Iron Steelix","Brave Charizard","Elder Charizard","Lava Magmar","Enraged Typhlosion","Capoeira Hitmontop","Boxer Hitmonchan","Taekwondo Hitmonlee","Dragon Machamp","Undefeated Machamp","Wardog Arcanine","Elder Arcanine","Furious Mantine","War Gyarados","Brave Blastoise","Brave Venusaur","Ancient Meganium","Tribal Feraligatr","Elder Dragonite","Elder Pinsir","Elder Raichu","Charged Raichu","Tribal Xatu","Enigmatic Girafarig","Ancient Alakazam","Master Alakazam","Furious Ampharos","Elder Electabuzz","Furious Scyther","Tribal Scyther","War Heracross","Metal Scizor","Brave Nidoking","Brave Nidoqueen","Elder Muk","Dark Crobat","Trickmaster Gengar"                              ,"Elder Gengar"                              ,"Banshee Misdreavus","Hungry Snorlax","Brute Ursaring","War Granbull","Singer Wigglytuff","Aviator Pidgeot","Metal Skarmory","Brave Noctowl","Elder Pidgeot","Ancient Dragonite","Milch-Miltank","Ancient Kingdra","Psy Jynx","Elder Venusaur","Elder Jynx","Evil Cloyster","Freezing Dewgong","Elder Tangela","Furious Sandslash","Roll Donphan","Bone Marowak","Octopus Octillery","Moon Clefable","Heavy Piloswine","Elder Blastoise","Elder Tentacruel","Elder Marowak","Master Stantler"}
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(outpokes, getCreatureName(item2.uid)) then
doPlayerSendCancel(cid, "Your ditto can't transform into this pokemon.")
markPos(mysum, unfix)
return true
end
if getPlayerLevel(cid) < pokes[getCreatureName(item2.uid)].level then
doPlayerSendCancel(cid, "You haven't level to transform into that pokemon.")
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
markPos(mysum, unfix)
doFaceCreature(mysum, getThingPos(item2.uid))
doDittoTransform(mysum, getCreatureName(item2.uid))
return true
end
----------------------------- 

 

 

 

Pronto, ditto ja está tranformando, agora falta o !revert, para isso vá em talkactions/scripts e crie um arquivo(.lua) com nome de dittorevert, e dentro coloque:

 

 

function onSay(cid, words, param, channel)
local thisball = getPlayerSlotItem(cid, 8)
if thisball and getItemAttribute(thisball.uid, "ehditto") then
doDittoRevert(cid)
end
return true
end 

 

 

 

Agora, no talkactions.xml adicione esta linha:

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

Se fizer tudo corretamente, funcionará normalmente.

 

Gif:

 

 

Hi9PcI.gif

 

 

 

Créditos:

Gabrielbsales(sou op faço tudo solo)

 

consegui adaptar aq so que agora quando eu copio shiny blastoise com o shiny ditto se usar ancient fury ele buga e da erros na distro

 

[07/07/2015 13:24:05] data/talkactions/scripts/move1.lua:248: in function <data/talkactions/scripts/move1.lua:21>

 

 

sabe como resolver????

 

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...