Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 02/09/22 em todas áreas

  1. Pelo que entendi, você quer que ao derrotar o último pokémon do contador da task, os boss spawnem na posição do último pokémon derrotado. Se é isso, é tranquilo. Eu refiz o código, porque olhando novamente o código que fiz ano passado, achei que dava para melhorar, e já está com a alteração que você pediu. Substitua todo seu código por esse: -- VARIÁVEIS -- local total = 50 -- TOTAL DE POKEMON QUE PRECISA DERROTAR local random_chance = 50 -- PORCENTAGEM QUE TEM DO POKEMON SPAWNAR AO TERMINAR A TASK -- TABELA COM OS POKÉMONS DA TASK QUE PRECISA DERROTAR -- local pokemon_task = { "Charizard", } -- TABELA COM OS POKEMONS QUE APARECERÃO AO DERROTAR A QUANTIDADE DO POKÉMON QUE COLOCOU NA VARIÁVEL pokemon_derrotar -- local pokemons_spawn = { "Mewtwo", "Mew", "Articuno", "Zapdos", "Moltres", } ------------------------------- CÓDIGO ----------------------------- function onKill(cid, target) for _, pokemon in ipairs(pokemon_task) do if getCreatureName(target) == pokemon then if getGlobalStorageValue(storage_task_defeat_count) < 0 then setGlobalStorageValue(storage_task_defeat_count, 1) end setGlobalStorageValue(storage_task_defeat_count, getGlobalStorageValue(storage_task_defeat_count) + 1) -- INCREMENTA O CONTADOR DE POKÉMONS DERROTADOS DA TASK local restante = total - getGlobalStorageValue(storage_task_defeat_count) if restante == 0 then local chance = math.random(100) -- VARIÁVEL QUE GERA VALOR ALEATÓRIO if chance >= random_chance then for _, boss in pairs(pokemons_spawn) do doCreateMonster(boss, getCreaturePosition(target)) end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você despertou a fúria de alguns pokémons, fuja para sobreviver!") end setGlobalStorageValue(storage_task_defeat_count, 0) end break end end return true end Vamos as explicações! Eu alterei um pouco a estrutura do código, então agora está mais otimizado e agora adicionei o pokémon da task em uma tabela, caso queira adicionar mais de um pokémon para contabilizar a task, agora é possível. Porém, se adicionar mais de um pokémon para a task, do jeito que eu fiz, qualquer um pokémon que está dentro da tabela pokemon_task que derrotar, irá contabilizar como o total, e não individualmente, ou seja, por exemplo, o total que defini é 50 (variável total), então, se você adicionar por exemplo dois pokémons, no caso, Charizard e Blastoise, e você matar 25 Charizards e 25 Blastoises, vai ter a chance de nascer os boss se o valor aleatório gerado pela chance estiver na range definida de 50 (se o math.random gerar 50 ou mais). Caso queira que conte individualmente, vou ter que alterar o código. Mas, se quiser só um pokémon, então deixe somente um na tabela, assim como deixei. Agora, como estamos trabalhando com storage global, vamos criar ela na pasta lib, porque do jeito que eu tinha feito não era a maneira correta, o certo é criar ela de forma global, e não local. Então, vai em Data/Lib e abra o arquivo 100-compat.lua (ou um arquivo de sua preferência) e adicione a seguinte linha no final do arquivo: storage_task_defeat_count = 336699 Mantive o mesmo valor na storage global, e agora ela está registrada globalmente. Pronto, está finalizado as alterações! Agora teste e veja se vai dar algum problema.
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...