Jump to content
Sign in to follow this  
5133p39

Dawn of the Yomies

Recommended Posts

I ment, I shouldnt hear a moan 300 meters away, but they scare the hell out of me, like they are 10 meters away of me..

brrrrr...

Share this post


Link to post
Share on other sites
I ment, I shouldnt hear a moan 300 meters away, but they scare the hell out of me, like they are 10 meters away of me..

brrrrr...

I don't know... the moan is more like a roar than moan, so it should be heard over quite a distance, but maybe the distance should be lowered.

No matter what, the sounds should be tweaked anyway, but i would probably need someones help, because i really do not understand the sound config numbers (i understand their meaning, but i have no clue about the right values for the right effect - distance to be heard, etc.).

Share this post


Link to post
Share on other sites
Id hate to sound pushy, and feel free to tell me if im getting annoying, but did you manage to find out what was causing my REPEAT spawns to not...well, repeat in the end? I'm still baffled trying to fix it my self.

I was testing your Quarantine mission, and first i must say its great, i had good time.

But then some errors started popping up, i tried to locate them, find out the reasons of these errors, and fix them, but after some time i decided to pick another way.

I am curently editing the mission, removing everything which after carefull examination seems like it has nothing to do with the problem, and i hope after that it will be much easier to debug it.

Share this post


Link to post
Share on other sites

Meantime, i was of course working on the Yomies and Citizens.

I tried to use waypoint based movement for the Citizens town-to-town traveling.

Which made some thing easier, and some more difficult.

Basically, when Citizen "decides" he wants to travel, a random location is choosen, and new "MOVE" waypoint is created.

Once the waypoint is reached, another random value check is performed to decide whether the Citizen will continue traveling to another location, or whether he will stop and start wandering around current location.

During the traveling, the fsmFormation is periodically checking for vehicles to be used by the Citizen and when it finds any, the Citizen is assigned as a driver to the nearest suitable vehicle, and ordered to get in, when he gets in, he automatically continues to the traveling destination waypoint (thats the beauty of it - i don't need to tell him again and again, after each little action he performs, to move to that traveling destination).

But when using waypoints, you cannot be running any FSM run by the doFSM command, because the game will stop processing waypoints for the particular unit, while there is any doFSM running.

So i had to move some logic from the various FSM files directly into the fsmFormation which is run from the unit's config.cpp by its class member "fsmFormation" specifying the FSM file (this won't stop unit processing its waypoints).

So, when it seemed i solved all problems, i put together a quick test mission on SaraLite island.

I created markers specifying all the town locations and which tells the scripts how many citizens to spawn at this location, and so on.

I populated only about 70% of all towns on the western part of the island, all together about 100 citizens to spawn. And i put some cars and motorcycles into these towns, so the citizens can find them.

And finally, i put my player unit on the map, and set forth, towards the big testing adventure.

Problem #1:

Already 100 citizens spawn and only on western part of the island, and yet it seems like a ghost town everywhere i go.

And i can create maximum of 144 civilian units, because that is the per-side groups count limit. And each civilian needs to be alone in his group, otherwise (because of automatic in-group sharing of information) when one civilian detects a zombie then all of his group would start running regardless of their distance from this zombie (even if they would be on the other side of the island, they would start running).

I could MAYBE fix the running problem by checking the distance, but the same problem also applies for dead bodies.

When a citizens finds dead body, he will inspect it for weapons and ammo, but once the body is known to them, they wont check it again - meaning, if one group member finds body, all of his group will know about it, but they wont inspect it, because when (if) they got there from the other side of the island, they will already know about it and thus it won't start the fsmDanger which is running the inspect procedure.

So i can spawn only 144 citizens, or i need to turn off the automatic in-group sharing of informations (which i cannot - there is no way).

Problem #2:

When traveling citizen reaches his waypoint, he will leave the car right where he stopped, often blocking the way for other citizens going through the town.

I will fix this by creating "parking slot" markers on the map, which will be used to park the car at one of the free parking slots. I already used this solution before, so it will work.

Problem #3:

The stupid AI are walking right in the middle of the roads!

Not only that it looks SUPER STUPID, but it also complicates the vehicle traffic - no surprise we have problem #4.

Solution: None.

Bis needs to rewrite some things, and make for example two kinds of building/road pathways - one for vehicles, second for units on foot.

Probability of this happening: -2^36

Problem #4:

It was a massacre. After 20 minutes, the roads and streets were full of dead citizens and broken cars. It looked very sinister, which would make nice addition to the post-apocalyptic zombie-game atmosphere, but with the things like this the zombies are completely useless, because the citizens will decimate themselves almost completely before the playing time reaches 30 minutes.

Possible solutions:

a.) Respawn citizens killed in accidents.

b.) Automatic repair of cars, at least of those which were not completely destroyed.

But all together it was fun watching the chaos.

And i cannot wait until i release the zombies into this mess.

btw. Because of the occasional AI pathfinding problems, i think we need an island which won't be full of objects like the (Southern) Sahrani is.

You know, all the pavements, street signs, corner stones, garbage cans, thin streets, it makes it very difficult for the AI to navigate through this, and i often seen them to go around the whole town, instead of going through it, only because there was one AI standing in the middle of street (who the hell did the pathfinding in this game? i know its very difficult in this kind of open space game, but is it really that difficult?).

My dream is the old OFP Nogova island, and somebody was working on its ArmA port, but unfortunately the last time i tried it, it was crashing my ArmA, so i think its not ready yet sad_o.gif

Share this post


Link to post
Share on other sites

The work is not going very well, after rewriting the FSM files again, using waypoints for traveling and also for wandering, i discovered that when units get out of the car, they often freeze and stops moving - i don't know why, but it seems it has something to do with pathfinding, somehow they are maybe too close to their car and they can't find a way to get around it so they are just standing there until the game ends, or until i push them aside or move the car away.

I will try to find some way around this, probably by running some function which will move them another meter away from the car, maybe that will help.

But right now, i feel like throwing my ArmA DVD out of the window, it is not fun anymore, it is starting to be more like some boring tedious repetitive work. I feel disapointed, and need a break.

Share this post


Link to post
Share on other sites

When it starts getting like that its often best to take a brake i find. Playing another game (Zombie Master mod for HL2 always fun) or just play Arma. I know might sound funny to you non mission/addon makers out there but i find quiet often i never actually play Arma and just edit and make scripts n missions init. Its always good to sit back n take 5 mindlessly blasting away at things for fun, then return later to coding refreshed and de-frustrated.

Share this post


Link to post
Share on other sites
When it starts getting like that its often best to take a brake i find. Playing another game (Zombie Master mod for HL2 always fun) or just play Arma. I know might sound funny to you non mission/addon makers out there but i find quiet often i never actually play Arma and just edit and make scripts n missions init. Its always good to sit back n take 5 mindlessly blasting away at things for fun, then return later to coding refreshed and de-frustrated.

Exactly what i am trying, except right now for me only the Crysis seems to be working smile_o.gif

Share this post


Link to post
Share on other sites

Hi 5133p39,

in reply to your post in the Quarantine thread: the zombie animations were made by TeaCup, and can be found in this thread.

There are two types of animations: zombie_frantic.rtm and zombie_stagger.rtm. The first is used for class AmovPercMsprSnonWnonDf : SprintCivilBaseDf, and the latter for class AmovPercMwlkSnonWnonDf : AmovPercMstpSnonWnonDnon and class AmovPercMrunSnonWnonDf : AmovPercMstpSnonWnonDnon.

As I said in the Q thread: your zombies are amazing, especially since they enter buildings and climb ladders. Properly scary animations are the only thing missing smile_o.gif

Regards,

Xawery

Share this post


Link to post
Share on other sites

Hi 5133p39,

I have a question regarding iViewDist. Does it adapt to changes in view distance due to increasing fogginess, poor weather etc.? In other words, if the weather is clear when the mission begins but grows foggier as time passes, will the yomies spawn nearer to the player as he enters a spawn zone?

Alternatively, would it be possible to give iViewDist a fixed value (rather than connecting it to param1), and comment out setViewDistance iViewDist; in init_game.sqf?

I'm making a mission which starts out nice and sunny with a good view distance, but gets dark and foggy by the time the players encounter their first yomies. Connecting iViewDist to param1 either means that the view distance is short from the start, or that the yomies spawn too far from the players when they finally encounter them.

Share this post


Link to post
Share on other sites
Quote[/b] ]Alternatively, would it be possible to give iViewDist a fixed value (rather than connecting it to param1), and comment out setViewDistance iViewDist; in init_game.sqf?

from my experiences it is indeed possible to give Iviewdist a fixed value and comment out setviewdistance Iviewdist;. Thats exactly what i have done in Quarantine (hence why yomies will spawn in front of you occasional when your playing it)

Share this post


Link to post
Share on other sites

Thanks for the reply D, I'm going to give it a whirl smile_o.gif

The reason why I asked is the following: I noticed that setting the weather to extremely foggy caused the yomies to spawn much nearer to the player than iViewDist would allow. This lead me to believe that perhaps it does scale dynamically with changing weather conditions. Oh well, no time to test it, I guess I'll have to do it this way!

/Edit: wrong initial biggrin_o.gif

Share this post


Link to post
Share on other sites
Thanks for the reply D, I'm going to give it a whirl smile_o.gif

The reason why I asked is the following: I noticed that setting the weather to extremely foggy caused the yomies to spawn much nearer to the player than iViewDist would allow. This lead me to believe that perhaps it does scale dynamically with changing weather conditions. Oh well, no time to test it, I guess I'll have to do it this way!

/Edit: wrong initial biggrin_o.gif

Exactly... at least if i remember correctly.

It should spawn the yomies in distance depending on the CURRENT fog, but there should be some variable which sets the minimum spawn distance to the player.

btw. again, sorry i haven't fixed any of the problems yet, or that i haven't released the new better version (too much bugs right now).

It seems like the whole world is going to fall apart and it causes too much problems in my work, i really really do not have the time, and i have absolutely no idea how long this state of things prevails.

Share this post


Link to post
Share on other sites
Exactly... at least if i remember correctly.

It should spawn the yomies in distance depending on the CURRENT fog, but there should be some variable which sets the minimum spawn distance to the player.

Ok, but the current fog level has a higher priority than the iViewDist variable, right? In other words, if iViewDist is set on 1000, but the fog limits the view distance to 300, the yomies will spawn at 300?

Regarding the second part of your post 5133p39: as I have said before, I have managed to attach Tea Cup's zombie anims to your yomies (for private purposes, of course) and they work just fine. Would you like me to send you the modified version so you can have a look at the result? I understand you don't have the time to spend on the yomies, but perhaps if you like these anims in conjunction with your zombies you could give the modified version your blessing.

Share this post


Link to post
Share on other sites

I just spent the last hour or two wondering why the zombies weren't attacking in my mission, then I decided to flick through the code.

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

iViewDist = param1;

Turns out I removed the param1 value as I "wasn't going to use it", I ended up setting iViewDist directly.

Figured I'd post this here for anyone about to make the same silly mistake. icon_rolleyes.gif

Share this post


Link to post
Share on other sites
I just spent the last hour or two wondering why the zombies weren't attacking in my mission, then I decided to flick through the code.

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

iViewDist = param1;

Turns out I removed the param1 value as I "wasn't going to use it", I ended up setting iViewDist directly.

Figured I'd post this here for anyone about to make the same silly mistake. icon_rolleyes.gif

Hehe, join the club. Took me days to figure out why commenting out that little line in the init buggered things up.

Share this post


Link to post
Share on other sites

Not sure if I just found a bug or created some crazy workaround, but here goes. huh.gif I was having trouble using the fCreateSpawn function in my mission - no zombies would spawn in the areas created using the function (yet the marker method worked perfectly), so I followed the code through and saw this near the beginning of init_spawn_triggers.sqf:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

// spawns init is run from the mission init, but can be run again later if needed.

if (isNil "Spawns") then {

 Spawns = [];

 _m = "yomie_spawn";

} else {

 _m = Format["yomie_spawn_%1",_i];

};

_i = count Spawns;

Looking at that, I saw that _i was used, but wasn't defined until afterwards, so I changed it:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

if (isNil "Spawns") then {

 Spawns = [];

 _m = "yomie_spawn";

} else {

 _i = count Spawns;

 _m = Format["yomie_spawn_%1",_i];

};

_i = count Spawns;

Spawnpoints created using fCreateSpawn started working after I saved the change.

Share this post


Link to post
Share on other sites

I was wondering would it be possible to spawn yomies into the same group? as currently they all spawn into there own separate groups individually. I do understand why they are spawned into groups individually currently because of problems with squad leader over riding fsm. and such. But i would like to tinker around with and to see what happens when the yomies are all grouped together, it also be great if a new group was then created and yomies spawned into that once the previous group reaches maximum number of units init. As spawning them like this could be useful for my needs in my Quarantine mission (not to concerned about yomies not wandering around and sharing info on targets)

I'm currently looking into this but if any ones got a quick answer it be much appreciated!

*edit*

Just reading back through the thread and relized that the above will not be possible since yomies targeting and chasing fsm are also effected! so scratch that idea!

is there a way to perhaps keep track of how many groups there are for each side, then when the cap is hit for one side, say 144 civ groups, next yomies that spawn are spawed as east groups intill they cap 144, then west, then resistance, etc..

I believe sleeper said it was possible but i am not sure how to do it my self. This however would be a perfect solution for my quarantine mission allowing me to up the number of yomies spawned in each city and town without having to worry about capping the 144 limit. Since the limit would be expanded to 576*

edit 2*

Found the solution:

Edit your init_game.sqf find ySide = createCenter Resistance; and change it to:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

ySide = createCenter Resistance;

ySidee = createCenter East;

ySidew = createCenter West;

ySidec = createCenter Civilian;

edit "spawn_yomie.sqf"

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">/*

Spawn yomie of desired type, at the desired coordinates, and for desired spawn

area specified by index of the appropriate trigger in the array 'aSpawn'.

Usage: _yomie = [_pos,_type,_i] call fSpawnYomie;

*/

private ["_grp","_i","_pos","_type","_yomie"];

_pos = _this select 0;

_type = _this select 1;

_i = _this select 2;

//edited part

_grp = createGroup ySide;

if (isNull _grp) then {_grp = createGroup ySidee;};

if (isNull _grp) then {_grp = createGroup ySidec;};

if (isNull _grp) then {_grp = createGroup ySidew;};

//end of edit

if (isNull _grp) exitWi...rest of the sqf.....

My pc started chugging at around 390 yomies being spawned on that small island with airport up north, that was while testing within my quarantine mission with all other units and such else where and in window'd mode. I guess you'd get decent performace on a clean mission in full screen mode with about 400+ yomies.

Share this post


Link to post
Share on other sites

So basically - once the resistance side fills up, it continues using the west/east/civ sides?

Share this post


Link to post
Share on other sites

That is not the whole solution, you should change init_game.sqf too. This is what I have been using for the last year and a half with success:

I have found a solution to max 144 yombies. Its just a small change so I will post it here soon, I must test it some more first.. Right now I´m playing a MP game and my yombie kills are 147.

If my calculations are right the new max number is 572 yombies. I just have to prove it, so I´m chasing them around in a M113 on Rahmadi as we speak.....

----------------------------------------------------------

OK. Arma crashed when I had shot about 500 and had many of them still coming straight for me. Arma did not crash because of the yombies, just the normal "inconvenience" (8800 user).

I hope 5133p39 dont mind me doing this? Nothing else is changed from 5133p39s excellent vision and job except the max-number.

To to raise the yombie-count (143*4) you have to add some code in 2 files.

The first file is init_game.sqf which you will find in the /yourmissionfolder/yomies/.

Find this code:<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">ySide = createCenter Resistance;

// Center created for creating new groups when spawning new yomies.

// Unfortunately, there is a bug, which affects acquiring targets by the AI.

// To get rid of the bug, we still need some Resistance unit placed on the map,

// in the mission editor - the CreateCenter/Group won't do the job alone.

Change it to this:<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">ySide = createCenter Resistance;

ySidee = createCenter East;

ySidew = createCenter West;

ySidec = createCenter Civilian;

// Center created for creating new groups when spawning new yomies.

// Unfortunately, there is a bug, which affects acquiring targets by the AI.

// To get rid of the bug, we still need some Resistance unit placed on the map,

// in the mission editor - the CreateCenter/Group won't do the job alone.

The other file is spawn_yomie.sqf located in yourmissionfolder/yomies/funcs/.

Find this code:<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">_pos = _this select 0;

_type = _this select 1;

_i = _this select 2;

_grp = createGroup ySide;

Change it to this:<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">_pos = _this select 0;

_type = _this select 1;

_i = _this select 2;

_grp = createGroup ySidec;

_grp = createGroup ySidew;

_grp = createGroup ySidee;

_grp = createGroup ySide;

Thats all.

I had, before the crash, a killing spree in yombies on Rahmadi. You can choose to pump out all yombies from one marker, or divide into different. You can have all as civilians or whatever.

This doesnt change anything else, the only differens is that the maximum amount of yombies are 572 (four units are needed as normal units). But every group you add, no matter side, takes away one yombie.

Share this post


Link to post
Share on other sites

Ah yes of course, i have edited the init_game.sqf also like andersson described above. However when i have tested with andersons suggested fix in the yomie_spawn.sqf i found it will only spawn 144 yomies in one go max (so can only spawn 144 at any one time), but with my suggested fix to the yomie_spawn.sqf combined with anderssons init_game.sqf fix you will now be able to spawn 576 (minus the players group, and other groups you have placed in your mission before hand)yomies at any one time. As once one group cap is reached for one side, itll spawn yomies into next side, intill that group caps reached,and so on.

Simple way to test both solutions:

Put in your init.sqs/sqf:

NYomies=0;

then in spawn_yomie.sqf just after [_yomie] joinSilent _grp;:

NYomie=Nyomie+1;

hint format ["%1",Nyomie];

Then make a yomie spawn marker in your mission that spawns 576 yomies. It'll count up every time a yomie is spawned intill no more groups are left (since no more yomies are spawning)

Share this post


Link to post
Share on other sites

Ah! I see the difference now, didnt pay enough attention.

Clever and good!

Share this post


Link to post
Share on other sites

hello everyone. me and my brother have been having a bit of a headach with the yomies addon. we cant get all the bodies to delete no matter what we try. the bodies im speaking of are the friendly teammate bodies any player unit ect. we have worked on body removers and tried writing our own scripts to try and handle it but to no avail.. i cannot get less then 5 dead player units off the board at a time.. if someone disconnects they leave more bodies then build on top of the 5 they left before they disconnected. it causes server lag and eventually will lead to bad performance and the crash. ive seen many others ask this same question and get no answer to how to solve this problem.. we cannot build on yomies as a mission anymore without this issue being addressed.. we have been working on a yom board for almost 2 months now and this one thing is holding us up from releasing our map. please respond to me and the others who have asked this question.. how do we make all the bodies remove of dead player units without getting that beautiful if yom = man error ect.. im at a wall with it.. we`ve tried everything we can think of and made stuff up too boot.. please try and and fix this bug.. love the yoms thanks for the hard work it is appreciated.i`m sorry its just that no one will host these things unless this gets fixed its just a crash waiting to happen and i really want to get this mission out.

Share this post


Link to post
Share on other sites

Having the same problem. I can't make player dead bodies disappear without erroring out the yomie script.

Particularly when they die inside the yomie spawn zone.

I see now with the version codes that allow for 570ish zombies. we have 4 yomie category groups to spawn yomies from.

in game we have 4 groups in which to choose from: East, West, Civ, and Guerrila.

I see the yomie spawn list now occupies east, west, civ, and resistance..

Is it maybe this thats causing the players dead bodies in quarantine and other maps, not to disappear apon death?

I also notice that the status of your body changes in this mission. I can trigger a blufor trigger while being an independent. Meaning the game considers me a blufor.

I also notice if i am looking at a player as he dies his name tag goes from green to red.

That makes me believe the status of that body is immediately changing apon death to Opfor maybe..

Been trying to figure this problem out for a long time with not much luck.

If anyone knows how to clean up players dead bodies when using yomies in quarantine please let us know.

We can't really use yomies reliably until we figure this out..

The dead players bodies will crash a server every night.

Is it only in quarantine this problem is happening?

because if so, then we need to look at the changes that have been made to the original script.

Anyway.. gl..lol..

We'll let you know if we find out anything.

Oh murphy, to partially fix the issue your having in quarantine. Take out the names of the players in the players init lines.. you cant have man2 punish himself with the killed event apon death or he will get himself executed everytime he dies. Even if he kills himself, or respawns.lol..

Me and my bro David.B have pretty good understanding of it now a days XD..That works to an extent anyway.

But if i recall that issue crept back up later anyway.

But it's something to look into.

I'm Bishop btw.. but the name was taken.. Go figure.. >.>

Share this post


Link to post
Share on other sites

As far as i know Yomies body removal script is not made with the intention of removing players dead bodies. It only takes into account bodies of units spawned via yomie spawning scripts.

You could use a third party body removal script and edit it slightly to check any bodies to see if they are of a Yomie class name, and if so, dont delete it. Or you could edit the yomie body removal script to delete players as well, not entirely sure on how to do this as i will have to have a look at it and do some tinkering.

And yes Quarantine does not have a script for removing player bodies, its something i have over looked but will take note of for next update.

Quote[/b] ]Oh murphy, to partially fix the issue your having in quarantine. Take out the names of the players in the players init lines.. you cant have man2 punish himself with the killed event apon death or he will get himself executed everytime he dies. Even if he kills himself, or respawns.lol..

This was not an issue i was aware of! thanks for pointing it out, will get on fixing it.

Share this post


Link to post
Share on other sites

Hey, Im having a bit of trouble installing the basic template, I dont really know where to put it lol

A few pointers would be nice, thanks wink_o.gif

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×