Ir para conteúdo

heavy2

Posts Recomendados

Olá Xtibianos.... então eu andei dando uma "caçada" por ai atras de tutorais de como add novas spells no PDA, eu achei o tutorial do Slicer porem não entendi muito bem... será que alguem com bom coração poderia me ajudar me dando algum link ou postando o tutorial mesmo....

 

 

OBS: Na hora de fazer o tutorial que seja passo á passo do 0

 

OBS2: Não precisa ser como adicionar no Dat editor essas coisas. eu so quero saber a parte de script tudo certinho..

 

OBS3: De Preferencia sem Abreviaçõespra eu entender melhor.

 

Agradecido desde já xD'

Link para o comentário
Compartilhar em outros sites

Vc leu o que eu disse ? :) vou re-copiar pra vc dar uma olhada..

 

"Então eu andei dando uma "caçada" por ai atras de tutorais de como add novas spells no PDA, eu achei o tutorial do Slicer porem não entendi muito bem"

 

Como citei acima eu ja procurei e não encontrei.. e como citei acima denovo eu não entendi queria + detalhado..... :)

 

 

 

OBS: Proxima vez se vc não souber não responda no topico por favor, se não souber ou não puder ajudar não faz com que eu não pense que alguem ja postou a resposta para minha duvida..

 

Obrigado mesmo assim (:

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

Dependendo da spell, não é algo complexo de se criar. Primeiramente, você deve saber as funções de damage, as áreas (data/lib/areas.lua), dependendo do objetivo da spell, outras informações adicionais. Com isso em mente, vá em data/lib/pokemon moves.lua; com isso, procure por:

if hands == 3 then
local ret = {}
ret.id = target
ret.cd = 9 --alterado v1.6
ret.eff = 43
ret.check = getPlayerStorageValue(target, conds["Slow"])
ret.first = true
ret.cond = "Slow"

doMoveDano2(cid, target, FIGHTINGDAMAGE, 0, 0, ret, spell)
end

OBS: Essa parte é a da passive Demon Puncher. Logo abaixo, adicione, primeiramente:

elseif spell == "Nome da spell" then

Agora, você começa a montar sua spell. Você pode definir variáveis, criar funções, condições, funções já existentes (como as de damage), etc.

Você quer que sua spell seja chamada de Thundrs (não sou bom com nomes ._.); solte um efeito na posição do usuário da spell; desapareça; reapareça e dê um dano em área daqui 5 segundos;

Assim, o corpo de sua spell seria:


local time = 5   --Tempo para aplicar o damage em área/reaparecer/soltar um efeito no target.
local eff_one = 14 --Efeito que aparecerá no cid.
local eff_two = 13 --Efeito que aparecerá no target.

doSendMagicEffect(getThingPosWithDebug(cid), eff_one) --efeito que aparecerá no cid.
doDisapear(cid) --função que faz com que o cid desapareça.
addEvent(function()
doAppear(cid) --função que faz com que o cid reapareça.
doMoveInArea2(cid, 48, thunderr, ELECTRICDAMAGE, min, max, spell) --função(cid, efeito, área, tipo do damage, min, max, spell)
end, time * 1000)


Ficando assim:


elseif spell == "Thundrs" then

local time = 5 --Tempo para aplicar o damage em área/reaparecer/soltar um efeito no target.
local eff_one = 14 --Efeito que aparecerá no cid.
local eff_two = 13 --Efeito que aparecerá no target.

doSendMagicEffect(getThingPosWithDebug(cid), eff_one) --efeito que aparecerá no cid.
doDisapear(cid) --função que faz com que o cid desapareça.
addEvent(function()
doAppear(cid) --função que faz com que o cid reapareça.
doMoveInArea2(cid, 48, thunderr, ELECTRICDAMAGE, min, max, spell) --função(cid, efeito, área, tipo do damage, min, max, spell)
end, time * 1000)


Depois, configure a spell em data/spells. Aí, é só configurar no configuration.lua, e acabou.

Você pode verificar funções de damage em data/lib/NewStatusSyst.lua.




Realmente, não sou bom com explicações ._.
Link para o comentário
Compartilhar em outros sites

Ok consegui entender um pouco + do que o post do Slicer.. Porem... em Data/Spells eu vou configurar o q ? kk' da uma editada no post dizendo o q configurar *-* e em configuration tb o que configurar....

 

 

@Edit Outra coisa que eu n entendi é dps que eu add a spell no Dat/Spr como a script vai reconhecer que eu quero que os dados dela seja pra tal Spell..

 

Outra coisa.. eu quero add Barrier no meu Servidor.. ai eu peguei a spell que tá no Pokemoves.lua do servidor do Stylo ficando assim..

 

elseif spell == "Barrier" then
if not isCreature(getCreatureTarget(cid)) then
local function sendAtk(cid)
if not isCreature(cid) then return true end
setPlayerStorageValue(cid, 9658783, -1)
setPlayerStorageValue(cid, 734276, -1)
end
setPlayerStorageValue(cid, 734276, 1)
setPlayerStorageValue(cid, 9658783, 1)
pos = getThingPosWithDebug(cid)

local function doSendEff(cid)
if not isCreature(cid) then return true end
doSendMagicEffect({x = pos.x + 1, y = pos.y + 1, z = pos.z}, 192)
end
for i = 0, 7 do
addEvent(doSendEff, i*1000, cid)
end
addEvent(sendAtk, 8000, cid)
stopNow(cid, 8 * 800)
else
local ret = {}
ret.id = target
ret.cd = 10
ret.check = getPlayerStorageValue(target, conds["Sleep"])
ret.eff = 0
ret.cond = "Sleep"

doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 24)
pos = getThingPosWithDebug(target)
addEvent(doMoveDano2, 150, cid, target, PSYCHICDAMAGE, 0, 0, ret, spell)
local function doSendEff(cid)
if not isCreature(cid) then return true end
doSendMagicEffect({x = pos.x + 1, y = pos.y + 1, z = pos.z}, 192)
end
for i = 0, 7 do
addEvent(doSendEff, i*1000, cid)
end
stopNow(target, 8 * 800)
end

 

Minha Duvida é se eu pegar isso e colar no meu Pokemoves.lua vai ficar certinho ou tenho que modificar + alguma coisa ? alem de editar o spells/configuration etc...

 

Tem que por o ID Itemtype da Spell em algum script tb ? '-'

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

Primeiramente, você deve verificar a sprite das spells em seu Dat Editor. O ID que você usará nos scripts é o Itemtype do Dat Editor. Tomando este script do Barrier como exemplo: verifique no seu Dat Editor se em seu client você têm a sprite do Barrier. Se sim, verifique seu Itemtype. Aí, com este já em mente, você procura por todas as funções que usam o Itemtype, e edita lá. Por exemplo,

doSendMagicEffect({x = pos.x + 1, y = pos.y + 1, z = pos.z}, 192)

Onde 192 é o Itemtype. Se no seu Dat Editor a sprite do Barrier (ou outro sprite desejado) tiver Itemtype, por exemplo, 32, você deveria mudar para:

doSendMagicEffect({x = pos.x + 1, y = pos.y + 1, z = pos.z}, 32)


Resumindo: o Itemtype do Dat Editor é o ID que você usará nos scripts.


Agora, em data/spells; copie um arquivo qualquer de data/spells/scripts/ps, e nomeie para o nome da spell. Aí, neste, você provavelmente verá algo como:

function onCastSpell(cid, var)

if isSummon(cid) then return true end

docastspell(cid, "Nome da spell")

return true
end


Em Nome da spell, você colocar o nome da spell (hue). Se a spell for o Barrier, então, arquivo com nome Barrier, conteúdo:

function onCastSpell(cid, var)

if isSummon(cid) then return true end

docastspell(cid, "Barrier")

return true
end


Novamente em data/spells; abra spells.xml, e coloque, antes de </spells>, a tag da spell. A base seria assim:

<instant name="Nome da spell" words="palavras que o god dirá para usar a spell" lvl="1000" mana="0" event="script" value="ps/Nome do arquivo da spell.lua"></instant>

No caso do Barrier, ficaria assim:

<instant name="Barrier" words="barrierspell" lvl="1000" mana="0" event="script" value="ps/Barrier.lua"></instant>


Agora, vamos para a parte mais fácil: configuration.lua.

Em data/lib/configuration.lua, procure pela configuração de moveset do(s) pokémon(s) que deseja que tenha a spell. Provavelmente, você sabe editar essa parte.

Tomando como a Mr. Mime e o Barrier como exemplo, você procuraria pela configuração da Mr. Mime. No caso,

["Mr. Mime"] =   {move1 = {name = "Doubleslap", level = 35, cd = 10, dist = 1, target = 1, f = 25, t = "normal"},
move2 = {name = "Psywave", level = 35, cd = 15, dist = 1, target = 0, f = 75, t = "psychic"},
move3 = {name = "Magical Leaf", level = 35, cd = 15, dist = 4, target = 1, f = 35, t = "grass"},
move4 = {name = "Confusion", level = 35, cd = 35, dist = 1, target = 0, f = 50, t = "psychic"},
move5 = {name = "Psychic", level = 37, cd = 30, dist = 1, target = 0, f = 90, t = "psychic"},
move6 = {name = "Psyusion", level = 35, cd = 60, dist = 1, target = 0, f = 70, t = "psychic"},
move7 = {name = "Reflect", level = 38, cd = 35, dist = 1, target = 0, f = 0, t = "psychic"},
move8 = {name = "Mimic Wall", level = 36, cd = 5, dist = 1, target = 0, f = 0, t = "psychic"},
move9 = {name = "Miracle Eye", level = 36, cd = 40, dist = 1, target = 0, f = 0, t = "psychic"},
},

Então, defina em qual "m" ficará o Barrier. Suponhamos que você queira que ele fique na posição 10 (move10/m10).

Depois de definido isso, monte a "linha" de sua spell. A base seria esta:

movenúmero do "m"(por exemplo, move9 para m9) = {name = "Nome da spell", level = level necessário para usar a spell, cd = tempo de cooldown da spell, dist = distância mínima para usar a spell(se for em área, deixe 1), target = 0(se deixar 1, precisará de target. 0, não.), f = defina aqui a força da spell, t = "elemento da spell que aparecerá na pokedex"},

Definido as características da spell, adicione então essa "linha" na tabela de moves do pokémon. O Mr. Mime ficaria, então, assim (configurações a meu gosto):

["Mr. Mime"] =   {move1 = {name = "Doubleslap", level = 35, cd = 10, dist = 1, target = 1, f = 25, t = "normal"},
move2 = {name = "Psywave", level = 35, cd = 15, dist = 1, target = 0, f = 75, t = "psychic"},
move3 = {name = "Magical Leaf", level = 35, cd = 15, dist = 4, target = 1, f = 35, t = "grass"},
move4 = {name = "Confusion", level = 35, cd = 35, dist = 1, target = 0, f = 50, t = "psychic"},
move5 = {name = "Psychic", level = 37, cd = 30, dist = 1, target = 0, f = 90, t = "psychic"},
move6 = {name = "Psyusion", level = 35, cd = 60, dist = 1, target = 0, f = 70, t = "psychic"},
move7 = {name = "Reflect", level = 38, cd = 35, dist = 1, target = 0, f = 0, t = "psychic"},
move8 = {name = "Mimic Wall", level = 36, cd = 5, dist = 1, target = 0, f = 0, t = "psychic"},
move9 = {name = "Miracle Eye", level = 36, cd = 40, dist = 1, target = 0, f = 0, t = "psychic"},
move10 = {name = "Barrier", level = 64, cd = 45, dist = 1, target = 1, f = 0, t = "psychic"}, --coloque dist = 1, porque, neste script do Stylo Maldoso, o Barrier pode ser usado à qualquer distância.
},
Link para o comentário
Compartilhar em outros sites

Você explicou muito bem... ta ai seu Rep... mas eu não curto muito Scripting me dá dor de cabeça rs, então prefiro não mexer com isso...

 

Mesmo Vlw pela sua Paciencia comigo :)

Link para o comentário
Compartilhar em outros sites

  • 4 years later...
A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...