Ir para conteúdo

zipter98

Herói
  • Total de itens

    2553
  • Registro em

  • Última visita

  • Dias Ganhos

    73

Tudo que zipter98 postou

  1. Ué, você configurou corretamente o nome do monstro no código (letras maiúsculas e minúsculas fazem diferença)? local config = { name = "xxx", --nome do monstro vocId = xxx, --vocation id } function onTarget(cid, target) if isMonster(cid) and isPlayer(target) then if getPlayerVocation(target) ~= config.vocId then return false end elseif isPlayer(cid) and isMonster(target) then if getCreatureName(target) == config.name and getPlayerVocation(cid) ~= config.vocId then return doPlayerSendCancel(cid, "você não pode atacar esta criatura.") and false end end return true end function onStatsChange(cid, attacker, type, combat, value) if isMonster(attacker) and isPlayer(cid) then if getPlayerVocation(cid) ~= config.vocId then return false end elseif isPlayer(attacker) and isMonster(cid) and type == STATSCHANGE_HEALTHLOSS then if getCreatureName(cid) == config.name and getPlayerVocation(attacker) ~= config.vocId then return doPlayerSendCancel(attacker, "você não pode atacar esta criatura.") and false end end return true end
  2. move1.lua: Abaixo de: if getPlayerStorageValue(mypoke, 3894) >= 1 then return doPlayerSendCancel(cid, "You can't attack because you is with fear") --alterado v1.3 end coloque: if move.name == "Morph" then for i = 1, 12 do if getCD(getPlayerSlotItem(cid, 8).uid, "move"..i) > 0 then return doPlayerSendCancel(cid, "To use Morph, all the spells of your pokemon need to be ready.") end end end
  3. Tenho uma ideia melhor: poste aqui o código da spell Shredder Team, encontrada em pokemon moves.lua.
  4. @Lordbaxx Uhum, manda PM. @FlamesAdmin Troque: doSendMagicEffect(getThingPos(cid), effect) por: doSendMagicEffect({x = getThingPos(cid).x + 1, y = getThingPos(cid).y + 1, z = getThingPos(cid).z}, effect)
  5. Use este código e informe tudo que for imprimido no console. local config = { name = "xxx", --nome do monstro vocId = xxx, --vocation id } function onTarget(cid, target) if isMonster(cid) and isPlayer(target) then if getPlayerVocation(target) ~= config.vocId then return false end elseif isPlayer(cid) and isMonster(target) then print("[Target] - "..getCreatureName(cid)) print("[Target] - Vocation ID: [configurada: "..config.vocId.."] / [cid: "..getPlayerVocation(cid).."]") if getCreatureName(target) == config.name and getPlayerVocation(cid) ~= config.vocId then print("[Target] Cid can't target monster.") return doPlayerSendCancel(cid, "você não pode atacar esta criatura.") and false end end return true end function onStatsChange(cid, attacker, type, combat, value) if isMonster(attacker) and isPlayer(cid) then if getPlayerVocation(cid) ~= config.vocId then return false end elseif isPlayer(attacker) and isMonster(cid) and type == STATSCHANGE_HEALTHLOSS then print("[StatsChange] - "..getCreatureName(attacker)) print("[StatsChange] - Vocation ID: [configurada: "..config.vocId.."] / [cid: "..getPlayerVocation(attacker).."]") if getCreatureName(cid) == config.name and getPlayerVocation(attacker) ~= config.vocId then print("[StatsChange] Cid can't damage monster.") return doPlayerSendCancel(attacker, "você não pode atacar esta criatura.") and false end end return true end
  6. Cara, se ela estiver declarada como variável global em algum arquivo da lib, basta chamá-la normalmente no código (a não ser que haja uma variável local com mesmo nome neste script, não haverá problemas).
  7. Seria sim, mas não programo no OTClient. No entanto, li um pouco do código da barra de magias de lá e pensei que a modificação que fiz em cooldown bar.lua a alteraria. Você testou o sistema depois da última atualização?
  8. EDIT: Já editei aquele meu primeiro comentário com o código corrigido.
  9. Desculpe, é a pressa para ir jantar. Código corrigido. E sim (podem ser mais jogadores, basta configurar a quantidade equivalente de posições).
  10. C++, por ser bem mais complicado e muito mais útil. Lua você aprende em pouco tempo lendo tutoriais na internet. Depois, é só prática.
  11. Tag: <talkaction words="!abrir;!quest" event="script" value="nome_do_arquivo.lua"/> Código: local config = { players = { {x = 1056, y = 1056, z = 7}, --Posições para onde os jogadores serão teleportados. {x = 1055, y = 1056, z = 7}, {x = 1054, y = 1056, z = 7}, }, storage = {91812, 91813}, } function onSay(cid, words) if words == "!abrir" then if getPlayerGroupId(cid) ~= 6 then return false elseif getGlobalStorageValue(config.storage[1]) > -1 then return doPlayerSendCancel(cid, "The quest is already open.") end setGlobalStorageValue(config.storage[1], 1) broadcastMessage("The quest was open! Waiting for "..#config.players.." players...") elseif words == "!quest" then if getGlobalStorageValue(config.storage[1]) < 1 then return doPlayerSendCancel(cid, "The quest isn't open.") end local message, newStorage, count = getCreatureName(cid).." was registered in the quest!", 0, 0 for i = 0, #config.players - 1 do count = count + 1 newStorage = config.storage[2] + i if getGlobalStorageValue(newStorage) == getPlayerGUID(cid) then return doPlayerSendCancel(cid, "You are already registered in the quest.") elseif getGlobalStorageValue(newStorage) == -1 then break end end setGlobalStorageValue(newStorage, getPlayerGUID(cid)) doPlayerSendTextMessage(cid, 27, "You were registered in the quest.") if count == #config.players then local startQuest, p = true, {} for i = 0, #config.players - 1 do local pid = getPlayerByName(getPlayerNameByGUID(getGlobalStorageValue(config.storage[2] + i))) if not isPlayer(pid) then if startQuest then startQuest = false end setGlobalStorageValue(config.storage[2] + i, -1) else p[#p + 1] = pid end end if startQuest then for i = 1, #p do doPlayerSendTextMessage(p[i], MESSAGE_STATUS_CONSOLE_ORANGE, "Good luck at the quest! ^^") doTeleportThing(p[i], config.players[i]) end for i = 0, #config.players - 1 do setGlobalStorageValue(config.storage[2] + i, -1) end setGlobalStorageValue(config.storage[1], -1) message = message.." It has started now, with "..#p.." players!" end end broadcastMessage(message) end return true end
  12. É, basicamente. Não que isso vá influenciar em muita coisa, já que os Unowns servirão basicamente para o Unown Rush (ou outra utilidade que você possa achar para eles).
  13. Ah, é com level mesmo. Você se importaria se os Unowns fossem "balanceados" de acordo com o Unown Legion? Porque, se não, vai ser bem chato arrumar essa spell. PS: Se ajustados como mencionei, o nick deles, aura e status serão os mesmos do Unown Legion.
  14. Cara, não dá para se basear muito por este vídeo, mas enfim: elseif spell == "Mamaragan" then local effect = 207 --Efeito. local areas = {rock1, rock2, rock3, rock4, rock5} --Áreas, em ordem de execução, da spell (de areas.lua). for i = 0, #areas do addEvent(function() doMoveInArea2(cid, effect, areas[i + 1], ELECTRICDAMAGE, min, max, spell) end, i * 300) end PS: Coloquei como padrão as áreas de execução do Power Wave, que achei bem semelhante.
  15. Deve ser a base que você está usando (escrevi estes códigos para PDA, sem level nos pokémons). Entretanto, se ela for a mesma, peço que poste aqui o código da função adjustStatus (data/lib, level system.lua).
  16. Ajudaria mais se você gravasse um vídeo ou fizesse uma gif da spell.
  17. Tags: <event type="statschange" name="guardaStatsChange" event="script" value="guarda.lua"/> <event type="target" name="guardaTarget" event="script" value="guarda.lua"/> Em login.lua: registerCreatureEvent(cid, "guardaStatsChange") registerCreatureEvent(cid, "guardaTarget") No xml do monstro: <script> <event name="guardaStatsChange"/> <event name="guardaTarget"/> </script>
  18. Recomendo ler o terceiro parágrafo do tópico.
  19. Como ficaram as tags e o registro em login.lua?
  20. Troque: min = 5 + getPokemonLevel(cid) + (table.f / 100 * movetype * specialoffenseRate) por: min = 5 + getPokemonLevel(cid) + ((table and table.f or 0) / 100 * movetype * specialoffenseRate)
  21. OK, tenta assim: local config = { name = "xxx", --nome do monstro vocId = xxx, --vocation id } function onTarget(cid, target) if isMonster(cid) and isPlayer(target) then if getPlayerVocation(target) ~= config.vocId then return false end elseif isPlayer(cid) and isMonster(target) then if getCreatureName(target) == config.name and getPlayerVocation(cid) ~= config.vocId then return doPlayerSendCancel(cid, "você não pode atacar esta criatura.") and false end end return true end function onStatsChange(cid, attacker, type, combat, value) if isMonster(attacker) and isPlayer(cid) then if getPlayerVocation(cid) ~= config.vocId then return false end elseif isPlayer(attacker) and isMonster(cid) then if getCreatureName(cid) == config.name and getPlayerVocation(attacker) ~= config.vocId then return doPlayerSendCancel(attacker, "você não pode atacar esta criatura.") and false end end return true end
  22. E o monstro, ele foca apenas os jogadores com a vocation id configurada?
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...