GA
action

[PDA] New Ditto System[PXG]

Por gabrielbsales, 27 de mar. de 2014 em Mods, funções e outros

ditto
pxg
clonar
tipo
new
script
56
13.9k
fabiosaF
03 de abril de 2014 às 02:14

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.

gabrielbsalesG
03 de abril de 2014 às 02:19

Skype: gabriel.sales.01

Editado Abril 3 por gabrielbsales

fabiosaF
03 de abril de 2014 às 02:24

aceita lá

MauricioPCM
07 de abril de 2014 às 02:40

@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?

gabrielbsalesG
07 de abril de 2014 às 02:46

@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

NoninhouhN
07 de abril de 2014 às 13:23

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 Abril 7 por Noninhouh

TechrlzT
07 de abril de 2014 às 15:49

 

 

 

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 Abril 7 por Techrlz

gabrielbsalesG
08 de abril de 2014 às 01:48

Obrigado ^^

OmegaO
09 de abril de 2014 às 20:33

Por favor, melhore a organização do seu tópico para que ele seja aprovado. Este tópico possui dicas sobre como fazer isso.

1 ano depois...
FurabioF
08 de abril de 2015 às 01:29

Tópico movido, para a área de scripting.

1 mês depois...
MwkbM
22 de maio de 2015 às 13:25

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.

gabrielbsalesG
27 de maio de 2015 às 22:05

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".

2 meses depois...
clebao666C
07 de julho de 2015 às 12:15

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++

 

 

Luga03L
07 de julho de 2015 às 13:12

 

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

clebao666C
07 de julho de 2015 às 13:24

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????