Zombies4Test Reload ( WIP)

User avatar
duckgo
Member
Posts: 239
Joined: Sun Sep 20, 2020 08:01
In-game: PixelZone
Contact:

Re: Zombies4Test Reload ( WIP)

by duckgo » Post

Darth_Tiktaalik wrote: โ†‘
Mon Sep 30, 2024 14:14
Ok here's all the features I've been testing & behaviors I've noticed. Is there anything I'm missing here?

1. Hostile Zombies spawned & deafeatable(spawning crashes voxelibre, functional in repixture/mineclonia/Hades/minetest game)

2. 7th day zombie invasion

3. Zombies attack human NPCs from repixture and mobs NPC

4. mineclonia Iron golems will attack zombies but zombies do not seem to target the villagers at all

5. zcoins dropped by zombies, usable in vending machines and with trader

6. recipes

7. structures(trees sometimes generate inside structures in repixture)

8. Ranged and melee weapons, ammo for the guns

9. placeable fortifications and decorations, punji sticks deal damage to any players or mobs passing over them

10. food & health items

11. loot in bedroom drawers and supply boxes, the beds are unusable due to contamination.

This is all correct :)

1 - In voxelibre something related to mob spawning creates a conflict, unfortunately neither I nor the subgame devs know what happens.

2 - The invasion in 7 days is one of the things I had the most doubts about if it would work correctly, despite games like Mineclonia, not changing the color of the sky, the game's globalstep makes the color return to the default.

3 - Zombies do not attack villages because the API is different, and they are not attacked by golems because of the API, but I think specific_attack can make them attack villages.

4 - zcoins were added only for trade, at first it wasgold or iron, but since they are different in games, the currency was a way to do this.

5 - recipes, thanks to you, repixture also has them now XD

6 - The structures are schematics, so it may happen that they generate before the trees :(

7 - the weapons were an experiment I did when it was still a modpack, this time I tried to improve it and make it possible for players to create their own weapons, I haven't shared it yet..

8 - punji and barbed wire deal damage to any invader

9 - about the food, it's simple, but I've thought about some of them offering some temporary effect.

10 - the loots are just to help the player since we usually run a lot, the beds are decorative and the message is just an excuse to say that you can't sleep in it..

I always try to emphasize that I'm not a programmer and I know little about the moon, but I have fun trying to do things :)
๐ŸŽฎ ๐ŸŽฎ Mods ๐ŸŽฎ ๐ŸŽฎ

User avatar
duckgo
Member
Posts: 239
Joined: Sun Sep 20, 2020 08:01
In-game: PixelZone
Contact:

Re: Zombies4Test Reload ( WIP)

by duckgo » Post

I have a list of things I intend to put in Z4T, but I'll save it for future updates.. and I'll start making this week or next week, a modern decoration mod, which I can work in conjunction with z4t, and works in all subgames too, for those who want to build their city and expand their world.. :)
๐ŸŽฎ ๐ŸŽฎ Mods ๐ŸŽฎ ๐ŸŽฎ

Darth_Tiktaalik
Member
Posts: 21
Joined: Thu Oct 27, 2022 23:06
GitHub: Darth-Tiktaalik

Re: Zombies4Test Reload ( WIP)

by Darth_Tiktaalik » Post

I made enough progress in voxelibre mob spawning to get the crawler to attack and kill me.

Seems voxelibre mcl_mobs is still mostly mobs redo but it needs a few tweaks:

can_despawn is a value that can be true or false but one of these must be set to avoid nil value crash

spawnclass also needs to be set, for crawler I did it as spawn_class = "crawlerzombie",


values for xp_min and xp_max that can (must?) be set and determines how many experience points drop when a mob is killed. Of type number

appears to want registration in form of mcl_mobs.register_mob("zombies4test:crawlerzombie", crawlerzombie)


To fit more with how voxelibre's mobs_mc does things the zombie code in my compat file is now following a local crawlerzombie = {
instead of mobs:register_mob("zombies4test:crawlerzombie", {


I need to figure out how to fix those egg errors but it does register the egg for creative use with mcl_mobs.register_egg("zombies4test:crawlerzombie", "Crawler Zombie", "zombies_egg.png",0)
Attachments
screenshot_20241002_074445.png
screenshot_20241002_074445.png (889.09 KiB) Viewed 1132 times

User avatar
duckgo
Member
Posts: 239
Joined: Sun Sep 20, 2020 08:01
In-game: PixelZone
Contact:

Re: Zombies4Test Reload ( WIP)

by duckgo » Post

Darth_Tiktaalik wrote: โ†‘
Wed Oct 02, 2024 12:01
I made enough progress in voxelibre mob spawning to get the crawler to attack and kill me.

Seems voxelibre mcl_mobs is still mostly mobs redo but it needs a few tweaks:

can_despawn is a value that can be true or false but one of these must be set to avoid nil value crash

spawnclass also needs to be set, for crawler I did it as spawn_class = "crawlerzombie",


values for xp_min and xp_max that can (must?) be set and determines how many experience points drop when a mob is killed. Of type number

appears to want registration in form of mcl_mobs.register_mob("zombies4test:crawlerzombie", crawlerzombie)


To fit more with how voxelibre's mobs_mc does things the zombie code in my compat file is now following a local crawlerzombie = {
instead of mobs:register_mob("zombies4test:crawlerzombie", {


I need to figure out how to fix those egg errors but it does register the egg for creative use with mcl_mobs.register_egg("zombies4test:crawlerzombie", "Crawler Zombie", "zombies_egg.png",0)
I did something similar, but the question is, why does Mineclonia use the same mcl_mobs API, and not crash, and Voxelibre crashes? I showed this to the developers and we don't understand why.
If you look at the spawn register of voxelibre and Mineclonia, they are different

-- Mineclonia :
mcl_mobs.spawn_setup({

})

-- Voxelibre
mcl_mobs:spawn_specific()


I don't know if there is a difference between the two spawn records, I have doubts, but I can test what you did, and the egg is simple, if everything goes well, I create an item for each zombie that adds an entity :)
๐ŸŽฎ ๐ŸŽฎ Mods ๐ŸŽฎ ๐ŸŽฎ

User avatar
duckgo
Member
Posts: 239
Joined: Sun Sep 20, 2020 08:01
In-game: PixelZone
Contact:

Re: Zombies4Test Reload ( WIP)

by duckgo » Post

I tested it here, added the spawns and no zombies appeared. I'll wait to see how the Voxlibre API will work in the future.

This is a specific problem that only occurs in Voxlibre and should be analyzed by the team to find out what change was made to the API that causes this conflict related to mob spawns, perhaps looking at the Mineclonia API which is also mcl_mobs and doesn't break.

I would like to find a way to disable the default zombies and be able to add XP without having to register everything, because any change in the future will give me a lot of work. ๐Ÿ˜…
๐ŸŽฎ ๐ŸŽฎ Mods ๐ŸŽฎ ๐ŸŽฎ

User avatar
duckgo
Member
Posts: 239
Joined: Sun Sep 20, 2020 08:01
In-game: PixelZone
Contact:

Re: Zombies4Test Reload ( WIP)

by duckgo » Post

I'd like to hear your opinion guys.
I intend to start a modern decorative mod with various items and blocks, it would work with Z4T or not, it would be useful for building cities and maps for those who are interested.
If you agree, I'll put the roads and signage in this decoration mod, keeping only the decorative items of the structures :)
๐ŸŽฎ ๐ŸŽฎ Mods ๐ŸŽฎ ๐ŸŽฎ

Darth_Tiktaalik
Member
Posts: 21
Joined: Thu Oct 27, 2022 23:06
GitHub: Darth-Tiktaalik

Re: Zombies4Test Reload ( WIP)

by Darth_Tiktaalik » Post

perhaps looking at the Mineclonia API which is also mcl_mobs and doesn't break.
You'd probably have to look into their use of metatables, since that relates to some values that caused me crashes like can_despawn per mcl_mobs init.lua, voxelibre doesn't have these:

local final_def = setmetatable(table.merge(def,{
initial_properties = table.merge(mcl_mobs.mob_class.initial_properties,init_props),
can_despawn = can_despawn,




I'd like to hear your opinion guys.
I intend to start a modern decorative mod with various items and blocks, it would work with Z4T or not, it would be useful for building cities and maps for those who are interested.
If you agree, I'll put the roads and signage in this decoration mod, keeping only the decorative items of the structures :)
Seems like a good idea to me, keeping extra decoations separate would make base install lighter

Darth_Tiktaalik
Member
Posts: 21
Joined: Thu Oct 27, 2022 23:06
GitHub: Darth-Tiktaalik

Re: Zombies4Test Reload ( WIP)

by Darth_Tiktaalik » Post

duckgo wrote: โ†‘
Wed Oct 02, 2024 16:56
I tested it here, added the spawns and no zombies appeared.
oh, for spawns themselves this is controlled with mcl_mobs:spawn_specific(), in which you supply details like biomes(biomes are all listed in mcl_mobs spawning.lua) and such. The above "can_despawn" code was fixing some crashes I had getting this to work.

mcl_mobs:spawn_specific(name, dimension, type_of_spawning, biomes, min_light, max_light, interval, chance, aoc, min_height, max_height, day_toggle, on_spawn, check_position)

name:
the mobs name

dimension:
"overworld"
"nether"
"end"

types of spawning:
"water"
"ground"
"lava"

biomes: tells the spawner to allow certain mobs to spawn in certain biomes
{"this", "that", "grasslands", "whatever"}


what is aoc??? objects in area

User avatar
duckgo
Member
Posts: 239
Joined: Sun Sep 20, 2020 08:01
In-game: PixelZone
Contact:

Re: Zombies4Test Reload ( WIP)

by duckgo » Post

Darth_Tiktaalik wrote: โ†‘
Wed Oct 02, 2024 20:26
perhaps looking at the Mineclonia API which is also mcl_mobs and doesn't break.
You'd probably have to look into their use of metatables, since that relates to some values that caused me crashes like can_despawn per mcl_mobs init.lua, voxelibre doesn't have these:

local final_def = setmetatable(table.merge(def,{
initial_properties = table.merge(mcl_mobs.mob_class.initial_properties,init_props),
can_despawn = can_despawn,




I'd like to hear your opinion guys.
I intend to start a modern decorative mod with various items and blocks, it would work with Z4T or not, it would be useful for building cities and maps for those who are interested.
If you agree, I'll put the roads and signage in this decoration mod, keeping only the decorative items of the structures :)
Seems like a good idea to me, keeping extra decoations separate would make base install lighter
Lighter, and it would also have extra content, which could be used in conjunction with the Z4T, or even for those who just want to use the decorations without zombies to disturb ๐Ÿ˜
๐ŸŽฎ ๐ŸŽฎ Mods ๐ŸŽฎ ๐ŸŽฎ

User avatar
duckgo
Member
Posts: 239
Joined: Sun Sep 20, 2020 08:01
In-game: PixelZone
Contact:

Re: Zombies4Test Reload ( WIP)

by duckgo » Post

Darth_Tiktaalik wrote: โ†‘
Wed Oct 02, 2024 21:22
duckgo wrote: โ†‘
Wed Oct 02, 2024 16:56
I tested it here, added the spawns and no zombies appeared.
oh, for spawns themselves this is controlled with mcl_mobs:spawn_specific(), in which you supply details like biomes(biomes are all listed in mcl_mobs spawning.lua) and such. The above "can_despawn" code was fixing some crashes I had getting this to work.

mcl_mobs:spawn_specific(name, dimension, type_of_spawning, biomes, min_light, max_light, interval, chance, aoc, min_height, max_height, day_toggle, on_spawn, check_position)

name:
the mobs name

dimension:
"overworld"
"nether"
"end"

types of spawning:
"water"
"ground"
"lava"

biomes: tells the spawner to allow certain mobs to spawn in certain biomes
{"this", "that", "grasslands", "whatever"}


what is aoc??? objects in area
I did some research, including comparing the mcl_mobs versions of the subgames, and there are some changes, I think in line 293 they are not even different.

I set aside some time just for this and I didn't find a simple solution, and I don't intend to create an exclusive focus on a single thing.

I prefer to dedicate my time creating new things, if it was a problem in the mod and there was the same conflict in the other subgames, I would have to try to solve it.

but feel free to share your version if it works well with voxelibre, so that players can also have fun with it, I am very grateful and happy with help ๐Ÿ˜‰
๐ŸŽฎ ๐ŸŽฎ Mods ๐ŸŽฎ ๐ŸŽฎ

Darth_Tiktaalik
Member
Posts: 21
Joined: Thu Oct 27, 2022 23:06
GitHub: Darth-Tiktaalik

Re: Zombies4Test Reload ( WIP)

by Darth_Tiktaalik » Post

but feel free to share your version if it works well with voxelibre, so that players can also have fun with it, I am very grateful and happy with help ๐Ÿ˜‰
I've been working on it, there's a few things that need fixing first but I've gotten spawns mostly working.

My compat code is contained in *_mcl.lua files so that if you ever need to disable it it'll be easy to comment loading it out of init.lua and get original z4t behaviours back.

vl_held_item doesn't seem to be shared by mineclonia so checking for it in my if else blocks could allow for only loading my fixes if voxelibre is detected and leaving the mineclonia behaviours untouched
Attachments
screenshot_20241003_123022.png
screenshot_20241003_123022.png (973.89 KiB) Viewed 1029 times

Darth_Tiktaalik
Member
Posts: 21
Joined: Thu Oct 27, 2022 23:06
GitHub: Darth-Tiktaalik

Re: Zombies4Test Reload ( WIP)

by Darth_Tiktaalik » Post

The final blockers before sending for review are currently:

1. spawning ztrader and the hospital's doctor zombie, for mobs redo you specified a node the trader's house has and a hospital node but voxelibre doesn't seem to support doing this with mcl_mobs.spawn_specific()

mcl_structures.register_structure_spawn() does allow you to specify what node of a structure mobs spawn on and Voxelibre uses this for pillager outposts. I'll play around with this next time I fire up minetest.

The trader himself works fine if spawned in via creative mode egg

2. Zombie spawn frequencies(currently spawn at higher rates than mobs redo version) and the invasion mechanic

User avatar
duckgo
Member
Posts: 239
Joined: Sun Sep 20, 2020 08:01
In-game: PixelZone
Contact:

Re: Zombies4Test Reload ( WIP)

by duckgo » Post

Darth_Tiktaalik wrote: โ†‘
Sat Oct 05, 2024 16:36
The final blockers before sending for review are currently:

1. spawning ztrader and the hospital's doctor zombie, for mobs redo you specified a node the trader's house has and a hospital node but voxelibre doesn't seem to support doing this with mcl_mobs.spawn_specific()

mcl_structures.register_structure_spawn() does allow you to specify what node of a structure mobs spawn on and Voxelibre uses this for pillager outposts. I'll play around with this next time I fire up minetest.

The trader himself works fine if spawned in via creative mode egg

2. Zombie spawn frequencies(currently spawn at higher rates than mobs redo version) and the invasion mechanic

I've looked at what you've done, you've really been working hard to solve this problem.
I'm just not going to rush into solving this, because it's going to take time, Z4T isn't the only mod I have with this same problem, I'd have to do all of this and keep doing it whenever I add something new.
When you have questions, I suggest asking them on Discord or Matrix, they're nice and quick to respond there..
Is there any other monster mod you'd like to see on Minetest? :)
๐ŸŽฎ ๐ŸŽฎ Mods ๐ŸŽฎ ๐ŸŽฎ

User avatar
duckgo
Member
Posts: 239
Joined: Sun Sep 20, 2020 08:01
In-game: PixelZone
Contact:

Re: Zombies4Test Reload ( WIP)

by duckgo » Post

Hello everyone, as promised, Zombies4test will be back on the contentdb, there are still things I have in mind for them in the future, but right now I'm going to focus on some other things, but until then, I hope you have a lot of fun..

Download : https://content.minetest.net/packages/p ... bies4test/
๐ŸŽฎ ๐ŸŽฎ Mods ๐ŸŽฎ ๐ŸŽฎ

Post Reply