Jump to content
Sign in to follow this  
BeePee

So you want to be a cowboy...

Recommended Posts

Just dropped in to say "I enjoyed rounding up the cows".

Nice mission, Thanks.

Tnx! Good to hear that peaple like this :) But what you can download from first post is not really a mission. It's just basic concept. The real mission I plan to release in a few days. Just need to finish scoring system, add trigger finishing the mission and add debriefing. Stay tuned! :D

Share this post


Link to post
Share on other sites
Tnx! Good to hear that peaple like this :) But what you can download from first post is not really a mission. It's just basic concept. The real mission I plan to release in a few days. Just need to finish scoring system, add trigger finishing the mission and add debriefing. Stay tuned! :D

Good, good,good and good again!

Waiting in the wings :eek:

Share this post


Link to post
Share on other sites

Still some problems with scoring system. Unfortunately it's not possible to pass script variables into debriefing.

Also I have problem with counting players. If AI is switched off in lobby, then

playersNumber east/west

and

{
if(isPlayer _x) then {
	playersCount = playersCount +1;
}
else{
	deleteVehicle _x;
}
}forEach playableUnits;

always returns 0. Enabled AI in lobby works fine.

Some hint anyone?

Share this post


Link to post
Share on other sites

Thanks BEEPEE for the files had a ball rustling up the cattle,looking forward to a bigger and better version

maybe some holding pens to rack em in to ?or a few more herds a round the place for team playing ,but other than that it works great the script and concept i like

be good if the buggers ran a bit faster as well

keep up the good work

here is a vid of me rustling them up with commentary

cheers

AZY

EyN0vF1C68Q

Edited by AZY

Share this post


Link to post
Share on other sites

Update! Read first post.

I need three players to help me test mp version of YeeHaa mission. Please post here if you are interested plus time when you are available.

Thanks.

Share this post


Link to post
Share on other sites

im up for it mate . just yell out !! what now is that test ? its 9.44 pm here in Australia what state are you in ? making a cattle rustling map i would presume your in Australia ?

Edited by AZY

Share this post


Link to post
Share on other sites

No my friend. I'm from Poland central Europe (UTC+1). If I would live in Australia I would probably rustling cows in real heli heh. I'll let you know AZY when the test will run.

Ok 1 player up. We need two more.

EDIT

Two players up. Just one more (or two if AZY cant).

AZY can you fly thursday evening 9PM UTC+1? In Australia it would be... something like 7AM friday morning I think :\ Is it possible for you to fly so early?

Edited by BeePee

Share this post


Link to post
Share on other sites

I think that is 8pm here in the UK, so I think I can help out. I will have just got the kids to bed so should be OK.

Share this post


Link to post
Share on other sites

Ok, four guys reported on duty ;) So thursday 9PM UTC+1 I'll run test serwer. The name will be something like BeePee's rancho. I'll send you PM with password. Cya there.

Share this post


Link to post
Share on other sites

download link isnt working for me at this moment.

working now.

Is this even a different file? 17.9 kb just like the last time I downloaded it.

it still doesn't work properly on a dedicated.

only a single player slot is available at the start.

as soon as the mission begins, task on screen says shutdown engine.

cows unaffected by helicopter.

Edited by [DirTyDeeDs]-Ziggy-

Share this post


Link to post
Share on other sites

No my friend. It is not a different file. As I wrote in the first post:

The mission needs some tests in MP to find bugs [...] After those tests and removing bugs the mission will be released for everyone.

it's not released yet. I just don't like releasing unfinished "products".

Share this post


Link to post
Share on other sites

Thanks for the script BeePee.

I'm going to try giving the cows a herd-mentality and hopefully get them stampeding a little when they're in a large group. Assuming I can alter their speed sufficiently...

Share this post


Link to post
Share on other sites

Beepee - regarding the test this evening,

To prevent a script from running on every client you need to add the following to the top;

if (!isServer) exitWith {};

Basically this causes the script to exit if it is running on a client. By default, every script runs on every client AND the server.

Alternatively you could use;


if (isServer) then
{

your code

};

which would only run the enclosed code on a server.

Share this post


Link to post
Share on other sites

Thank you Jedra!

This weekend i'll try to fix all found bugs. Those informations from you will really help me do this. I didn't know that every script runs on each client and on server! I was wondering how to run a script on server :confused: while it seems it already does run on server! Great.

Tnx MD500Enthusiast, glad you like it! But what you can play now is just the concept mission. The more complex one will be released after removing bugs which we found yesterday evening with Jedra and my two squad m8s (Rahonavis and Paweu).

Share this post


Link to post
Share on other sites

No problem BeePee, just let me know if you need a hand testing. The next time I will be able to start a helicopter manually! That will teach me not to be lazy and use Auto Startup all the time!

Share this post


Link to post
Share on other sites
Thank you Jedra!

This weekend i'll try to fix all found bugs. Those informations from you will really help me do this. I didn't know that every script runs on each client and on server! I was wondering how to run a script on server :confused: while it seems it already does run on server! Great.

Tnx MD500Enthusiast, glad you like it! But what you can play now is just the concept mission. The more complex one will be released after removing bugs which we found yesterday evening with Jedra and my two squad m8s (Rahonavis and Paweu).

khan me pl8 wit ju gais??? plox?

Share this post


Link to post
Share on other sites
khan me pl8 wit ju gais??? plox?

eeh? :confused:

two minutes later...

eeeeh? :confused:

another two minutes...

khan -> can

me -> me

pl8 -> play

wit -> with

ju -> you

gais -> guys

plox -> please

Can I play with you guys?? Please?

I hope I decoded it right.

aaa thats better!

Of course you can! When I fix all bugs ;) I'll let you know about next test run.

Share this post


Link to post
Share on other sites

Spent some time today trying to give the cows a more herd-like behaviour.

What this modified cow_flee.sqf script does:

When a cow detects a vehicle nearby, the cow will look for a other cows nearby.

If it finds other cows, it will move towards a cow it respects, rather than running directly away from the vehicle.

If it doesn't find a higher-ranking cow, it will behave as usual and flee the vehicle.

How it plays:

It gives the cows a bit more awareness of each other, and an instinct to stay together. By watching how the cows move, its possible to work out who is the highest ranking, and herd accordingly. Be careful though, cows will still separate if they fall behind.

If you have any time to play with it, let me know how it feels for you. Do the cows behave more as you'd expect from a herd, or does this seem a bit artificial? What other behaviours can you think of that would increase the experience?

Also, testing this script with humans rather than cows has been hours of giggles. :D

if (!isServer) exitWith {};

_unitToConvert=_this select 0;

// Create Cow
_cow=objNull;
_cowName=format ["cow0%1",floor(random 5)];
if(_cowName=="cow00") then{_cowName="cow01"};
_cow=(group _unitToConvert) createUnit [_cowName, getpos _unitToConvert,[] , 0, "None"];
deletevehicle _unitToConvert;

// Set Cows Leadership Value
_leadershipValue = random 1;
_cow setSkill ["Endurance",_leadershipValue];
_cowSkill = _cow skill "Endurance";

/* 
Herding Radius
Set Radius To Search For Leader.
Higher value will create a stronger herd.
Lower value will see cows seperating from the herd more.
Default: round(random 6) * 5;
*/
_radius = round(random 6) * 5;


_leaderCow = objNull;

while{true} do {
{
	_herder = _x;
	_distance=_cow distance _x;
	_flee=floor(random 50)+5;
	if(_distance<_flee) then {

		// Give Cows a Herding Instict
		// Find The Greatest Leader within _radius
		//maxSkill = 0; // Used if you want cows to follow a single leader.
		{
			if(_x skill "Endurance" > _cowSkill) then {
				// Uncomment to have cows follow a single leader.
				//if(_x skill "Endurance" > _maxSkill) then {
					//_maxSkill = _x skill "Endurance";
					_leaderCow = _x;
				//};
			};
		}foreach nearestObjects[_cow,["Cow"], _radius];

		if(_leaderCow isKindOf "Cow") then {
			_cow doMove [(2*((getPosATL _leaderCow)select 0))-((getPosATL _cow) select 0), (2*((getPosATL _leaderCow)select 1))-((getPosATL _cow) select 1), (getPosATL _leaderCow) select 2];
			//hint format["Following ",typeOf _leaderCow];
		}else{
			_cow doMove [(2*((getPosATL _cow)select 0))-((getPosATL _herder) select 0), (2*((getPosATL _cow)select 1))-((getPosATL _herder) select 1), (getPosATL _cow) select 2];
			//hint format["Being a Leader!!"];
		};
	};
} forEach vehicles;
sleep (random 4);
};

Share this post


Link to post
Share on other sites

An overhaul of my herding script. Still in progress but coming along well. Rather than herding based on leadership, we've gone for a more natural approach.

If your vehicle gets up close, cow/s will immediately move away from it, and will try to move in the same direction as each other.

Whilst your vehicle is near the cows but not right up close, cows will try to stay in a herd, moving towards an average point between any cows in the area they want to move to.

Whilst doing any of these actions, the cow should still react to being pestered by your vehicle.

As I said, it's still in progress, but I'd love to hear some feedback on what's there so far.

==Edited December 06. Much improved and fairly final version.==

if (!isServer) exitWith {};
waituntil {!isnil "bis_fnc_init"};

_unitToConvert=_this select 0;

// Create Cow
_cow=objNull;
_cowName=format ["cow0%1",floor(random 5)];
if(_cowName=="cow00") then{_cowName="cow01"};
_cow=(group _unitToConvert) createUnit [_cowName, getpos _unitToConvert,[] , 0, "None"];
deletevehicle _unitToConvert;


while{true} do {
{
	_herder = _x;
	_distance=_cow distance _x;
	_flee=floor(random 50)+5;
	if(_distance<_flee) then {

		if(_distance < 15) then {
			_cow setSpeedMode "FULL";
			_muster =  [(2*((getPosATL _cow)select 0))-((getPosATL _herder) select 0) , (2*((getPosATL _cow) select 1))-((getPosATL _herder) select 1) , (getPosATL _cow) select 2];
			/* //Set a Marker for debugging (causes some rpt errors)
			_marker = createMarker [_random, position _musterLocation];
			_markerstr setMarkerShape "ICON";
			_random setMarkerType "DOT";
			*/
			_random = format ["location %1", random 100];
			_musterLocation = createLocation ["Name", _muster, 1, 1];
			_dirToMuster = [_cow, _musterLocation] call BIS_fnc_DirTo;
			_cow setFormDir _dirToMuster;
			_cow doMove (position _musterLocation);

			//hint format["musterLocation: %1",_dirToMuster];
			_i = 0;
			while { ( _distance <= 5) and ( _i < (random 5) + 5)} do {
				sleep 0.5;
				_i = _i + 1;
			};

			deleteLocation _musterLocation;
		}else{

			// Get position to look for friends near
			_musterX = (2*((getPosATL _cow)select 0))-((getPosATL _herder) select 0);
			_musterY = (2*((getPosATL _cow)select 1))-((getPosATL _herder) select 1);
			_musterDistance = _cow distance [_musterX, _musterY];

			_friends = [_musterX, _musterY] nearObjects ["Cow", _musterDistance];
			_noOfFriends = count _friends;

			if( _noOfFriends > 1 ) then {
				_totalX = 0;
				_totalY = 0;
				_avgX = 0;
				_avgY = 0;
				{
					_totalX = _totalX + ((getPosATL _x) select 0);
					_totalY = _totalY + ((getPosATL _x) select 1);
				}forEach _friends;

				_avgX = _totalX / (count(_friends));
				_avgY = _totalY / (count(_friends));
				//hint format["X: %1", _avgX];

				_cow doMove[ _avgX, _avgY, (getPosATL _cow) select 2];
				//hint format["Joining friends."];
				_i = 0;
				while { ( _distance > _flee) and ( _i < (random 5) + 5)} do {
					sleep 0.5;
					_i = _i + 1;
				};

			}else{
				_cow doMove [(2*((getPosATL _cow)select 0))-((getPosATL _herder) select 0)  , (2*((getPosATL _cow)select 1))-((getPosATL _herder) select 1)  , (getPosATL _cow) select 2];
				//hint format["No friends found, engaging independant thought."];
				sleep 0.5;
				_i = 0;
				while { ( _distance > _flee) and ( _i < (random 5) + 5)} do {
					sleep 0.5;
					_i = _i + 1;
				};
			};
		};
	};
} forEach vehicles;
sleep (random 1);
};

Edited by maumau

Share this post


Link to post
Share on other sites

In the single all works.

But in multiplayer, the cows do not walk, stand on the spot.

And there is no respawn after a helicopter crash.

PS:

Put the file Yeehaaa! _1_02.South_Asia_H.pbo The folder \Program files\Bohemia Interactive\Take On Helicopters\mpmissions

Share this post


Link to post
Share on other sites

Yes I know. Because Yeehaaa! _1_02 is a single player mission. The multiplayer mission (Yeehaaa! _1_04_MP) will be released after removing all found bugs. That will be somewhere in a few days I hope.

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  

×