heavy2 44 Postado Novembro 26, 2013 Share Postado Novembro 26, 2013 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 More sharing options...
AnjoCelestial 23 Postado Novembro 26, 2013 Share Postado Novembro 26, 2013 '-' meu lindo não sabe pesquisar não?? Tutorial do slicer é bém claro!! Link para o comentário Compartilhar em outros sites More sharing options...
heavy2 44 Postado Novembro 26, 2013 Autor Share Postado Novembro 26, 2013 (editado) 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 Novembro 26, 2013 por heavy2 Link para o comentário Compartilhar em outros sites More sharing options...
zipter98 1101 Postado Novembro 26, 2013 Share Postado Novembro 26, 2013 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 More sharing options...
heavy2 44 Postado Novembro 26, 2013 Autor Share Postado Novembro 26, 2013 (editado) 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" thenif not isCreature(getCreatureTarget(cid)) thenlocal function sendAtk(cid)if not isCreature(cid) then return true endsetPlayerStorageValue(cid, 9658783, -1)setPlayerStorageValue(cid, 734276, -1)endsetPlayerStorageValue(cid, 734276, 1)setPlayerStorageValue(cid, 9658783, 1)pos = getThingPosWithDebug(cid)local function doSendEff(cid)if not isCreature(cid) then return true enddoSendMagicEffect({x = pos.x + 1, y = pos.y + 1, z = pos.z}, 192)endfor i = 0, 7 do addEvent(doSendEff, i*1000, cid)endaddEvent(sendAtk, 8000, cid) stopNow(cid, 8 * 800)elselocal ret = {}ret.id = targetret.cd = 10ret.check = getPlayerStorageValue(target, conds["Sleep"])ret.eff = 0ret.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 enddoSendMagicEffect({x = pos.x + 1, y = pos.y + 1, z = pos.z}, 192)endfor i = 0, 7 do addEvent(doSendEff, i*1000, cid)endstopNow(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 Novembro 26, 2013 por heavy2 Link para o comentário Compartilhar em outros sites More sharing options...
zipter98 1101 Postado Novembro 26, 2013 Share Postado Novembro 26, 2013 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 More sharing options...
heavy2 44 Postado Novembro 26, 2013 Autor Share Postado Novembro 26, 2013 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 More sharing options...
Gabrieltxu 736 Postado Dezembro 4, 2013 Share Postado Dezembro 4, 2013 Tópico movido para a seção de dúvidas e pedidos resolvidos. Link para o comentário Compartilhar em outros sites More sharing options...
Stigal 584 Postado Abril 21, 2018 Share Postado Abril 21, 2018 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 More sharing options...
Posts Recomendados