FlamesAdmin 261 Postado Junho 26, 2015 Share Postado Junho 26, 2015 Boa noite, gostaria de uma ajudinha para fazer esses 2 moves do PxG Iron Body: ao usar essa passiva, ele não toma dano por x segundos e tem y chance de ativá-la. Heavy Slam: ao usar Heavy Slam, o oponente que estiver na área, é arremessado 2 sqm atrás. Link para o comentário Compartilhar em outros sites More sharing options...
0 zipter98 1101 Postado Junho 26, 2015 Share Postado Junho 26, 2015 1ª spell: Isso é basicamente um Iron Defense, só que em forma de passiva, não é? 2ª spell: Saberia dizer se esse "pulo" do pokémon é um effect, outfit ou o pokémon literalmente pula? E os oponentes na área são logo teleportados para trás ou são empurrados? Link para o comentário Compartilhar em outros sites More sharing options...
0 FlamesAdmin 261 Postado Junho 26, 2015 Autor Share Postado Junho 26, 2015 (editado) 1° Sim 2° Ele pula literalmente, são empurrados. PS: no inicio da 2ª gif, ele estava com o Iron Body, não tem nada a ver com o Heavy Slam. Editado Junho 26, 2015 por FlamesAdmin Link para o comentário Compartilhar em outros sites More sharing options...
0 zipter98 1101 Postado Junho 26, 2015 Share Postado Junho 26, 2015 O Iron Body pode ser ativado quando, exatamente? Parece ser diferente das outras passivas, já que no segundo gif ele foi ativado sem o Bronzong receber dano. Link para o comentário Compartilhar em outros sites More sharing options...
0 FlamesAdmin 261 Postado Junho 26, 2015 Autor Share Postado Junho 26, 2015 Quando solta o Bronzong, ela ativa, e também ativa as vezes quando esta em hunt. Link para o comentário Compartilhar em outros sites More sharing options...
0 zipter98 1101 Postado Junho 26, 2015 Share Postado Junho 26, 2015 (editado) Iron Body: exp2.0.lua: Em baixo de: if damageCombat == GROUNDDAMAGE then if isInArray(specialabilities["levitate"], getCreatureName(cid)) then valor = 0 end end coloque: if getCreatureName(cid) == ironBody.name and getPlayerStorageValue(cid, 2818) < os.time() and math.random(1, 100) <= ironBody.chance then doSetCreatureOutfit(cid, {lookType = ironBody.outfit}, ironBody.duration * 1000) setPlayerStorageValue(cid, 9658783, 1) setPlayerStorageValue(cid, 2818, os.time() + ironBody.cooldown) addEvent(function() if isCreature(cid) then doRemoveCondition(cid, CONDITION_OUTFIT) setPlayerStorageValue(cid, 9658783, -1) end end, ironBody.duration * 1000) end Em goback.lua (actions), abaixo de: doCreatureSay(cid, mgo, TALKTYPE_SAY) coloque: if pokename == ironBody.name then doSetCreatureOutfit(pk, {lookType = ironBody.outfit}, ironBody.duration * 1000) setPlayerStorageValue(pk, 9658783, 1) setPlayerStorageValue(pk, 2818, os.time() + ironBody.cooldown) addEvent(function() if isCreature(pk) then doRemoveCondition(pk, CONDITION_OUTFIT) setPlayerStorageValue(pk, 9658783, -1) end end, ironBody.duration * 1000) end Depois, em configuration.lua: ironBody = { name = "Bronzong", --Nome do pokémon. outfit = xxx, --Outfit. duration = 5, --Duração. chance = 35, --Chance, em %, de ativar a passiva. cooldown = 15, --Cooldown para usá-la novamente. } E você tem certeza absoluta que o pulo do Bronzong não é um efeito? Conferiu no client da PxG? Se for literalmente um salto, já imagino como foi feito. E, assim, adianto: será necessária a criação de um item invisível, com a propriedade do jogador poder passar por cima dele e sofrer uma elevação (como os bancos e parcels, sabe?). Editado Junho 26, 2015 por zipter98 Link para o comentário Compartilhar em outros sites More sharing options...
0 nociam 90 Postado Junho 26, 2015 Share Postado Junho 26, 2015 Iron Body: exp2.0.lua: Em baixo de: if damageCombat == GROUNDDAMAGE then if isInArray(specialabilities["levitate"], getCreatureName(cid)) then valor = 0 end end coloque: if getCreatureName(cid) == ironBody.name and getPlayerStorageValue(cid, 2818) < os.time() and math.random(1, 100) <= ironBody.chance then doSetCreatureOutfit(cid, ironBody.outfit, ironBody.duration * 1000) setPlayerStorageValue(cid, 9658783, 1) setPlayerStorageValue(cid, 2818, os.time() + ironBody.cooldown) addEvent(function() if isCreature(cid) then doRemoveCondition(cid, CONDITION_OUTFIT) setPlayerStorageValue(cid, 9658783, -1) end end, ironBody.duration * 1000) end Em goback.lua (actions), abaixo de: doCreatureSay(cid, mgo, TALKTYPE_SAY) coloque: if pokename == ironBody.name then doSetCreatureOutfit(pk, ironBody.outfit, ironBody.duration * 1000) setPlayerStorageValue(pk, 9658783, 1) setPlayerStorageValue(pk, 2818, os.time() + ironBody.cooldown) addEvent(function() if isCreature(pk) then doRemoveCondition(pk, CONDITION_OUTFIT) setPlayerStorageValue(pk, 9658783, -1) end end, ironBody.duration * 1000) end Depois, em configuration.lua: ironBody = { name = "Bronzong", --Nome do pokémon. outfit = xxx, --Outfit. duration = 5, --Duração. chance = 35, --Chance, em %, de ativar a passiva. cooldown = 15, --Cooldown para usá-la novamente. } E você tem certeza absoluta que o pulo do Bronzong não é um efeito? Conferiu no client da PxG? Se for literalmente um salto, já imagino como foi feito. E, assim, adianto: será necessária a criação de um item invisível, com a propriedade do jogador poder passar por cima dele e sofrer uma elevação (como os bancos e parcels, sabe?). Nao e um efeito tem outras magias que faz isso exemplo o Earthquake o pokemon atacado que fica tando o pulo. Link para o comentário Compartilhar em outros sites More sharing options...
0 FlamesAdmin 261 Postado Junho 26, 2015 Autor Share Postado Junho 26, 2015 (editado) Como o @nociam disse, tem outras magias que o pokemon fica 'pulando'. No Earthquake, o oponente que está na área dele que fica 'pulando'. Se for possível fazer esse 'pulo', td bem, mais se não for, só deixe um pequeno delay para que o efeito saia. #Edit Quando solta o Bronzong. [26/06/2015 18:35:20] [Error - Action Interface] [26/06/2015 18:35:20] data/actions/scripts/goback.lua:onUse [26/06/2015 18:35:20] Description: [26/06/2015 18:35:20] attempt to index a number value [26/06/2015 18:35:20] stack traceback: [26/06/2015 18:35:20] [C]: in function 'doSetCreatureOutfit' [26/06/2015 18:35:20] data/actions/scripts/goback.lua:257: in function <data/actions/scripts/goback.lua:11> Quando os selvagens atacam ele: [26/06/2015 18:36:16] [Error - CreatureScript Interface] [26/06/2015 18:36:16] data/creaturescripts/scripts/exp2.0.lua:onStatsChange [26/06/2015 18:36:16] Description: [26/06/2015 18:36:16] attempt to index a number value [26/06/2015 18:36:16] stack traceback: [26/06/2015 18:36:16] [C]: in function 'doSetCreatureOutfit' [26/06/2015 18:36:16] data/creaturescripts/scripts/exp2.0.lua:558: in function <data/creaturescripts/scripts/exp2.0.lua:65> Editado Junho 26, 2015 por FlamesAdmin Link para o comentário Compartilhar em outros sites More sharing options...
0 nociam 90 Postado Junho 26, 2015 Share Postado Junho 26, 2015 Ta uma olhada de como e o sistema http://forum.pokexgames.com/threads/112567-Novos-sistemas-para-o-Patch-do-dia-12-06 Link para o comentário Compartilhar em outros sites More sharing options...
0 zipter98 1101 Postado Junho 26, 2015 Share Postado Junho 26, 2015 Posso ver como ficou a configuração da tabela? E ela está em configuration.lua, certo? Sobre o pulo, é como eu disse: aquele item terá de ser criado. Link para o comentário Compartilhar em outros sites More sharing options...
0 FlamesAdmin 261 Postado Junho 26, 2015 Autor Share Postado Junho 26, 2015 Posso ver como ficou a configuração da tabela? E ela está em configuration.lua, certo? Sobre o pulo, é como eu disse: aquele item terá de ser criado. Sim, coloquei em configutarion ironBody = { name = "Bronzong", --Nome do pokémon. outfit = 1554, --Outfit. duration = 5, --Duração. chance = 35, --Chance, em %, de ativar a passiva. cooldown = 15, --Cooldown para usá-la novamente. } Só me corrige, eu coloquei ela láááá embaixo perto das passivesChances = {, esta certo ? Link para o comentário Compartilhar em outros sites More sharing options...
0 zipter98 1101 Postado Junho 26, 2015 Share Postado Junho 26, 2015 Ops, agora vi o erro. Falta de atenção minha, desculpe. Corrigido. Link para o comentário Compartilhar em outros sites More sharing options...
0 FlamesAdmin 261 Postado Junho 26, 2015 Autor Share Postado Junho 26, 2015 (editado) Agora sim. Sem erro algum agora Heavy Slam Me diz o que tem que ser feito nesse 'item invisível' para o oponente dar esse 'pulo'. Editado Junho 26, 2015 por FlamesAdmin Link para o comentário Compartilhar em outros sites More sharing options...
0 zipter98 1101 Postado Junho 26, 2015 Share Postado Junho 26, 2015 (editado) As configurações e atributos no programa, não sei dizer. Entretanto, pegue como base um banco (porém, neste caso, a sprite será "invisível"). O necessário é que o jogador possa passar por cima do item e sofrer uma elevação. Editado Junho 27, 2015 por zipter98 Link para o comentário Compartilhar em outros sites More sharing options...
0 FlamesAdmin 261 Postado Junho 29, 2015 Autor Share Postado Junho 29, 2015 As configurações e atributos no programa, não sei dizer. Entretanto, pegue como base um banco (porém, neste caso, a sprite será "invisível"). O necessário é que o jogador possa passar por cima do item e sofrer uma elevação. Ok irei fazer aqui. @zipter Nada ainda do código? Link para o comentário Compartilhar em outros sites More sharing options...
0 zipter98 1101 Postado Junho 29, 2015 Share Postado Junho 29, 2015 (editado) Já terminei faz tempo, só estou esperando você avisar que criou o item. Certamente não ficou igual a PxG, porque, caso tenham usado esse método, deve ter demorado um bom tempo para achar o tempo ideal para representar um pulo "perfeito" (como o da gif). E, sinceramente, não estava com paciência de ficar procurando tal tempo. Função de pulo: function jump(cid, rounds) doChangeSpeed(cid, -getCreatureSpeed(cid)) doCreatureSetNoMove(cid, true) for i = 1, rounds do addEvent(function() if isCreature(cid) then local pos = getThingPos(cid) local item = doCreateItem(ITEM_INVISIVEL, 1, pos) addEvent(function() local it = getTileItemById(pos, ITEM_INVISIVEL).uid if it > 0 then doRemoveItem(it) end if i == rounds then doRegainSpeed(cid) doCreatureSetNoMove(cid, false) end end, rounds == 1 and 200 or (i + 2) * 100) end end, i * (rounds == 1 and 200 or 100)) end end Use jump(cid, 1) para um pulo de altura "1" (como o causado pelo Earthquake), e jump(cid, 2) para pulos como do Heavy Slam. Código do Heavy Slam: local config = { areas = {area1, area2}, --Áreas, em ordem de execução. effect = 160, --Efeito. combat = NORMALDAMAGE, --Elemento. } local function doPushCreature(target, cid) if target > 0 then if not isNpc(target) then local position = getThingPosition(cid) local fromPosition = getThingPosition(target) local x = ((fromPosition.x - position.x) < 0 and -1 or ((fromPosition.x - position.x) == 0 and 0 or 1)) local y = ((fromPosition.y - position.y) < 0 and -1 or ((fromPosition.y - position.y) == 0 and 0 or 1)) local toPosition = {x = fromPosition.x + x, y = fromPosition.y + y, z = fromPosition.z} if doTileQueryAdd(target, toPosition) == 1 and getTileInfo(toPosition).house == false then doTeleportThing(target, toPosition, true) end end end end jump(cid, 2) addEvent(function() for i = 0, #config.areas - 1 do addEvent(function() local pos = getPosfromArea(cid, config.areas[i + 1]) doMoveInArea2(cid, config.effect, config.areas[i + 1], config.combat, min, max) for j = 1, #pos do local pid = getTopCreature(pos[j]).uid if ehMonstro(pid) then doPushCreature(pid, cid) elseif isSummon(pid) then local master = getCreatureMaster(pid) if isSummon(cid) then if getPlayerStorageValue(master, 52480) >= 1 and getPlayerStorageValue(master, 52481) >= 0 then local masterCid = getCreatureMaster(cid) if isDuelingAgainst(masterCid, master) then doPushCreature(pid, cid) end end else doPushCreature(pid, cid) end end end end, i * 230) end end, 650) Editado Junho 29, 2015 por zipter98 Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
FlamesAdmin 261
Boa noite, gostaria de uma ajudinha para fazer esses 2 moves do PxG
Iron Body: ao usar essa passiva, ele não toma dano por x segundos e tem y chance de ativá-la.
Heavy Slam: ao usar Heavy Slam, o oponente que estiver na área, é arremessado 2 sqm atrás.
Link para o comentário
Compartilhar em outros sites
18 respostass a esta questão
Posts Recomendados