[PDA] New Ditto System[PXG]

gabrielbsales

Nothing
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 26/01/13Posts: 266

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)

Markowiicz

Freelancer
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 06/06/13Posts: 76Gênero: Masculino


[Error - LuaScriptInterface::loadFile] data/lib/level system.lua:484: 'end' expected (to close 'function' at line 204) near '<eof>'

[Warning - LuaScriptInterface::initState] Cannot load data/lib/


Some stuff:

 

Sou Freelancer, se deseja um orçamento de Mapping, só contatar.

 

Markowiicz

Freelancer
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 06/06/13Posts: 76Gênero: Masculino

Bem, Erro Corrigido, Mas O Ditto Não Tem As Habilidades Dos Pokémons.

 

Exemplo: Clonei Um Pidgeot, Mas Ele Não Quer Dar Fly. Como No Tópico Diz

Que Ele Terá As Habilidades Dos Pokémons Clonados...

Some stuff:

 

Sou Freelancer, se deseja um orçamento de Mapping, só contatar.

 

Drk Shadow

https://www.facebook.com/PokeXCrazy/
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 07/01/12Posts: 495Gênero: MasculinoChar no Tibia: Nem Tenho

[28/03/2014 07:40:22] [Error - CreatureScript Interface]

[28/03/2014 07:40:22] data/creaturescripts/scripts/goback.lua:onDeath
[28/03/2014 07:40:22] Description:
[28/03/2014 07:40:22] (luaGetThingPosition) Thing not found
[28/03/2014 07:40:22] [Error - CreatureScript Interface]
[28/03/2014 07:40:22] data/creaturescripts/scripts/goback.lua:onDeath
[28/03/2014 07:40:22] Description:
[28/03/2014 07:40:22] (luaGetCreatureName) Creature not found
[28/03/2014 07:40:22] [Error - CreatureScript Interface]
[28/03/2014 07:40:22] data/creaturescripts/scripts/goback.lua:onDeath
[28/03/2014 07:40:22] Description:
[28/03/2014 07:40:22] data/creaturescripts/scripts/goback.lua:91: bad argument #3 to 'gsub' (string/function/table expected)
[28/03/2014 07:40:22] stack traceback:
[28/03/2014 07:40:22] [C]: in function 'gsub'
[28/03/2014 07:40:22] data/creaturescripts/scripts/goback.lua:91: in function <data/creaturescripts/scripts/goback.lua:55>
Ta dando esse erro ae se tenta puxar o ditto denovo fica soltando varios, e quando o ditto morre, ele vira o pokemon no qual ele se transformou.
E sobre o look, agora todos os pokemons estão com a descrição (ditto).

Dá uma conferida no meu projeto =)

https://www.facebook.com/PokeXCrazy/

signa.png

zipter98

avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 20/09/12Posts: 2553Gênero: Masculino

Caso o Ditto não tenha boost e tente copiar um dos elementos [pokémons] da tabela proibidosboost, ocorrerá um erro. Por quê? Caso o pokémon não tenha boost, obviamente sua pokeball não terá o atributo "boost". Neste caso, seria o mesmo que comparar if nil < 50.

Para evitar isso, recomendaria trocar:

if isInArray(proibidosboost, getCreatureName(item2.uid)) and getItemAttribute(thisball.uid, "boost") < 50 then

Por:

local boost = getItemAttribute(thisball.uid, "boost") or 0
if isInArray(proibidosboost, getCreatureName(item2.uid)) and boost < 50 then

Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.

Drk Shadow

https://www.facebook.com/PokeXCrazy/
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 07/01/12Posts: 495Gênero: MasculinoChar no Tibia: Nem Tenho

@gabrielbsales

 

Qual a base que você usa no seu servidor, ou que usou pra fazer o script ?


Aqui continua bugando ;s

Dá uma conferida no meu projeto =)

https://www.facebook.com/PokeXCrazy/

signa.png

Strogman

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 04/11/12Posts: 464Gênero: MasculinoChar no Tibia: Lysty Of Death

está faltando a parte do goback!

 

                                 logo_full_1600.png.f8d0c5d8ba71c660bad630b327c3e64d.png

                                                              htps://www.facebook.com/PokemonOnlineSVKE

                                                                                                                       PokeSvke

Strogman

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 04/11/12Posts: 464Gênero: MasculinoChar no Tibia: Lysty Of Death

portrait ta bugando e o pokemon tbm quando puxa ele mesmo depois de tirar a parte do ditto do goback

 

                                 logo_full_1600.png.f8d0c5d8ba71c660bad630b327c3e64d.png

                                                              htps://www.facebook.com/PokemonOnlineSVKE

                                                                                                                       PokeSvke

allanzinh

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 29/05/13Posts: 51Char no Tibia: Nunca Joguei

Man Funciono Certinho aki . Eo Usei o /r nele para ele morrer e depois fico normal . só que se não matar ele , ele Não volta pra ball . Só uma dica ali em talcks muda a tag la pro mesmo nome da pasta pq está diferente . e quem não sabe de nada igual a mim se não mudar era da Erro .

gabrielbsales

Nothing
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 26/01/13Posts: 266

Man Funciono Certinho aki . Só uma dica ali em talcks muda a tag la pro mesmo nome da pasta pq está diferente . e quem não sabe de nada igual a mim se não mudar era da Erro .

Sobre o Problema no gobak vc tem que colocar a tag no Lugar Certo .

 

Exemplo: <talkaction log="yes" words="/addskill" access="3" event="function" value="addSkill"/> La aonde começa a tag parecida com a que ele posto e coloca la que deo Certo aki .

Isso, ajeitei, obrigado.