Ir para conteúdo

zipter98

Herói
  • Total de itens

    2553
  • Registro em

  • Última visita

  • Dias Ganhos

    72

Tudo que zipter98 postou

  1. Tenta pegar o código que enviei, sem alterações, e testa (os dois). Uma coisinha: dependendo de como sua função ehMonstro esteja configurada, os jogadores terão que retornar o pokémon para a pokeball a cada wave "derrotada" para o código funcionar por completo.
  2. Estranho, aqui funcionou direitinho. EDIT: Não li por inteiro seu comentário. Vou ver aqui a possível causa desse erro. Você fez alguma alteração no script? Se sim, posso vê-la? E, se você fez, teste o código do jeito que eu enviei, sem alterações.
  3. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  4. O do primeiro código, você não precisa alterar a tag. Do segundo, <action actionid="19381;19382;19383;19384" event="script" value="nome do arquivo.lua"/> Isso com os actionids que testei.
  5. Basta fazer tudo corretamente, que irá funcionar. Troque aquele seu código da alavanca da Outland Main por esse: Depois, crie um arquivo .lua em data/actions/scripts, com o seguinte conteúdo: A cada novo action id adicionado no código, não se esqueça de também colocá-lo na tag e na tabela aids. Explicação: local monsters = Definirá os monstros que irão nascer na wave, e a posição. Modelo: {"Nome do monstro", posição} local posi = Coordenadas da posição superior esquerda da área. local posis = Coordenadas da posição inferior direita da área. local pos = Onde a alavanca será criada, após eliminar cada wave. Criando novas waves: Primeiramente, tenha em mente que cada actionid representa uma nova wave. Se são 4 actionids, então serão 5 waves (4 actionids + a wave programada pela alavanca da Outland Main). Quando você adicionar um novo actionid, não se esqueça de colocá-lo na tag e na tabela aids. Cada elseif item.actionid == aids[número] then representa uma wave, sendo número = wave. LEMBRE-SE: esse número também representa a index na tabela aids. Portanto, se você colocar, por exemplo, esse número = 20, e não tiver 20 actionids na tabela, não funcionará. Modelo: elseif item.actionid == aids[wave/número/index do actionid na tabela aids] then local monsters = {{"Nome do monstro", posição}, {"Nome do monstro", posição}, {"Nome do monstro", posição}, {"Nome do monstro", posição}} doRemoveItem(item.uid, 1) addEvent(function() for i = 1, #monsters do doCreateMonster(monsters[i][1], monsters[i][2]) end checkMonsters(posi, posis, pos, new_aid) --Lembre-se: esse new_aid sempre será o actionid da alavanca+1. end, 5*1000) Todas as waves estão configuradas para ocorrer em 5 segundos. Para alterar isso, basta mudar os 5*1000 para segundos*1000. Exemplo: 10 segundos-10*1000. Configurei 5 waves, sendo os actionids: 19381, 19382, 19383, 19384. OBS: A primeira wave não possui actionid, pois foi iniciada pelo código de entrada da Outland Main! Segue como deixei as waves: -[wave/actionid] - Pokémons: pokémons que vêm na wave. [1ª wave/sem actionid] - Pokémons: Pikachu e Magikarp. [2ª wave/19381] - Pokémons: Pikachu, Magikarp e Caterpie. [3ª wave/19382] - Pokémons: Pikachu, Magikarp, Caterpie e Metapod. [4ª wave/19383] - Pokémons: Pikachu, Magikarp, Caterpie, Metapod e Butterfree. [5ª wave/19384] - Pokémons: Pikachu, Magikarp, Caterpie, Metapod, Butterfree e Mewtwo. Acrescentando: quando for configurar a última wave, configure normalmente como as outras. Quando todos os pokémons forem derrotados, será criada uma alavanca com actionid x. Então, em outro arquivo, você configura o quê quiser: se a alavanca criada levará para uma posição e dará os prêmios, ou se apenas teleportará, ou se, sei lá, matará os jogadores. Então, na tag, você coloca o actionid que foi setado nesta última alavanca (em outras palavras, o actionid da alavanca da última wave + 1). Espero que tenha entendido.
  6. Área incorreta, tópico movido. Mais cuidado da próxima vez. Sobre seu pedido, local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 32) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -100.2, 1, -100.2, 1) function onCastSpell(cid, var) local position1 = {x=getThingPosition(getCreatureTarget(cid)).x+1, y=getThingPosition(getCreatureTarget(cid)).y, z=getThingPosition(getCreatureTarget(cid)).z} doSendMagicEffect(position1, 199) return doCombat(cid, combat, var) end
  7. zipter98

    Tile com effect

    Tópico movido para a seção de dúvidas e pedidos resolvidos.
  8. zipter98

    Tile com effect

    function onThink(interval, lastExecution, thinkInterval) local pos = {x = 3586, y = 3385, z = 11} doSendMagicEffect(pos, 21) return true end
  9. Primeiramente, onKill/onDeath não funcionam em PDA. No caso, você teria que "mover" esse código para exp2.0.lua. Sobre este seu outro pedido, vou ver o quê posso fazer.
  10. zipter98

    Shop OTClient

    Área incorreta, tópico movido. Mais cuidado da próxima vez.
  11. Substitua esta parte do order.lua de actions por essa: ----START FLY or RIDE or LEVITATE --------- if (item2.uid == cid or getRecorderPlayer(topos) == cid) and (isInArray(skills["fly"], getPokemonName(mysum)) or isInArray(skills["ride"], getPokemonName(mysum)) or isInArray(skills["levitate_fly"], getPokemonName(mysum))) then --alterado v1.8 >> if getPlayerStorageValue(cid, 6598754) == 1 or getPlayerStorageValue(cid, 6598755) == 1 then return doPlayerSendCancel(cid, "You can't do it while in the PVP Zone!") --alterado v1.7 end if #getCreatureSummons(cid) > 1 then --alterado v1.9 return doPlayerSendCancel(cid, "You can't do it right now!") end if getPlayerStorageValue(cid, 91831) >= 1 then return doPlayerSendCancel(cid, "Você não pode usar fly/ride agora.") end if getPlayerStorageValue(cid, 52480) >= 1 then return doPlayerSendCancel(cid, "You can't do it while a duel!") --alterado v1.6 end if getPlayerStorageValue(cid, 5700) >= 1 then --alterado v1.9 doPlayerSendCancel(cid, "You can't do that while is mount in a bike!") return true end if getPlayerStorageValue(cid, 22545) >= 1 and (isInArray(skills["fly"], getPokemonName(mysum)) or isInArray(skills["levitate_fly"], getPokemonName(mysum))) then return doPlayerSendCancel(cid, "You can't do that while in the Golden Arena!") --alterado v1.8 end local pct = getCreatureHealth(mysum) / getCreatureMaxHealth(mysum) doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "hp", 1 - pct) if isInArray(skills["fly"], getPokemonName(mysum)) then doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["fly"][math.random(1, #txt["fly"])].."", 1) addEvent(goThere, 500, mysum, topos, "fly", isCreature(getCreatureTarget(cid))) elseif isInArray(skills["levitate_fly"], getPokemonName(mysum)) then doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["levitate_fly"][math.random(1, #txt["levitate_fly"])].."", 1) --alterado v1.8 addEvent(goThere, 500, mysum, topos, "fly", isCreature(getCreatureTarget(cid))) else doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["ride"][math.random(1, #txt["ride"])].."", 1) addEvent(goThere, 500, mysum, topos, "ride", isCreature(getCreatureTarget(cid))) end return true end E o movement: function onStepIn(cid, item, position, fromPosition) if getPlayerStorageValue(cid, 91831) >= 1 then doPlayerSendTextMessage(cid, 27, "Agora você pode usar fly/ride.") setPlayerStorageValue(cid, 91831, -1) else doPlayerSendTextMessage(cid, 27, "Agora você não pode usar fly/ride.") setPlayerStorageValue(cid, 91831, 1) end return true end
  12. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  13. zipter98

    Buff DBO 8.54

    Tópico movido para a seção de dúvidas e pedidos resolvidos.
  14. Faça o seguinte: um movement simples, que teleporte para a arena, e sete storage x no jogador. Aí, na função canAttackOther, você coloca uma verificação tipo essa: if getPlayerStorageValue(master1, storage) >= 1 and getPlayerStorageValue(master2, storage) >= 1 then return "Can" end
  15. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  16. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  17. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  18. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  19. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  20. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  21. Esperemos o relato do mesmo.
  22. zipter98

    wonder woman

    /\ sing = cantar. @topic Bem legal, parabéns.
  23. data/globalevents/scripts. Crie um arquivo com extensão .lua, e coloque o seguinte conteúdo: function onThink(interval, lastExecution, thinkInterval) local cfg = { pos = {x = x, y = y, z = z}, --Onde o portal será criado. topos = {x = x, y = y, z = z}, --Para onde ele levará. tempo = x, --Depois de quanto tempo o portal será fechado (recomendo menos que o intervalo colocado em globalevents.xml). OBS: Em segundos. } local tp = getTileItemById(cfg.pos, 1387).uid if tp < 1 then doCreateTeleport(1387, cfg.topos, cfg.pos) addEvent(function() doRemoveItem(tp, 1) end, cfg.tempo*1000) end return true end Depois, em globalevents.xml, coloque a seguinte tag: <globalevent name="Teleport" interval="x" event="script" value="nome do arquivo.lua"/> Não se esqueça de alterar o interval (de quanto em quanto tempo vai ser executado o script, em segundos). O código que eu fiz fará o seguinte: Quando executado, se não houver um portal na posição desejada, um teleporte será criado, e, após x tempo (configurável), este será removido.
  • Quem Está Navegando   0 membros estão online

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