Bom dia, como vocês estão?
Faz um tempo que não posto nada então resolvi postar um script que eu fiz recentemente mais pra estudo, talvez não tenha ficado tão bom quanto em outros games, se alguém tiver alguma opinião sobre, pode falar ai que vai ser legal.
Enfim, eu vi em alguns games uma parada bem interessante, quando o player passa sobre aquela grama alta ela vira grama baixa e tem uma chance de spawnar um pokémon, resolvi tentar fazer algo semelhante e deu certo, segue o vídeo ai pra vocês verem o que estou falando:
2024-12-16-09-38-43.mp4
Achei bem interessante, dá pra fazer bastante coisa com isso, eventos e talls então resolvi postar.
Segue a baixo a instalação do código:
Passo 1 - crie um script com o nome de mato.lua em data/movements/mato.lua e cole o código a baixo:
local grassId = 3985 -- id do mato antes de ser pisado
local steppedGrassId = 3984 -- id do mato depois de ser pisado
local respawnTime = 3 * 60 * 1000 -- 3 minutos
local spawnChance = 5 -- % de chance de spawn
local pokemonList = {"Bulbasaur", "Charmander", "Squirtle", "Pidgey", "Rattata", "Ekans", "Pikachu", "Sandshrew", "Zubat", "Oddish"}
function onStepIn(cid, item, position, fromPosition)
if not isPlayer(cid) then
return true
end
if item.itemid ~= grassId then
return true
end
local tileItem = getTileItemById(position, grassId)
if tileItem and tileItem.uid > 0 then
doTransformItem(tileItem.uid, steppedGrassId)
if math.random(100) <= spawnChance then
local randomPokemon = pokemonList[math.random(#pokemonList)]
local spawnPosition = {x = position.x, y = position.y, z = position.z}
local spawnedCreature = doSummonCreature(randomPokemon, spawnPosition)
addEvent(function()
local currentTile = getTileItemById(position, steppedGrassId)
if currentTile and currentTile.uid > 0 and currentTile.itemid == steppedGrassId then
doTransformItem(currentTile.uid, grassId)
end
end, respawnTime)
end
end
return true
end
Passo 2 - em movements.xml adicione a seguinte linha:
<movevent type="StepIn" itemid="3985" event="script" value="mato.lua"/>
Pronto, código instalado, agora precisa verificar como está o mato no object builder pois geralmente este mato não é possível andar sobre:
Faça essa validação para ambos, tanto no mato crescido quanto no mato pisado e deixe com essas configurações ai.
Por fim, faça as mesmas configurações no item editor:
E deixe desta forma também.
Por fim é isso, espero que tenham gostado do código, não é muita coisa massss é legalzinho 😄