Sign in to follow this  
Followers 0
sickboy

CBA: Community Base Addons public release!

336 posts in this topic

Current version: CBA v0.3.0: Feature Release

cbalegoblocks42250x250.png

Vision

What does the name Community Base Addons mean? It is a system that:

  • Aims to have community wide acceptance and to be used as much as possible by community addons to maintain compatibility.
  • Offers a range of features for addon-makers and mission designers.
  • The community is very much encouraged to request or submit functionality.
    • The most obvious example would be to submit functions to be included in the CBA function library. This would make them available to a large audience of developers and save on replicated development.

Key Features

  • Extended Eventhandlers: official port of XEH for Arma 2.
  • Function library: Integrated into the BIS Functions module.
  • Many other things you never thought you needed but won't be able to live without...
  • Full documentation is available at DevHeaven.

The manual, functions reference and complete sources are included in the release.

Download

(Previous Discussion Thread)

Please take a look at our function documentation: generic wiki and comprehensive html docs for usage.

Please take a look at our Plans wiki

Edited by Suma
Updated link

Share this post


Link to post
Share on other sites

yeah!

thanks guys.. this is a critical piece needed to bring addons into A2.

Share this post


Link to post
Share on other sites

Nice one guys! Excellent work.

I've already been looking at the documentation and discovered something:

Look here: http://dev-heaven.net/wiki/cca/Extended_Eventhandlers

Under section 1.8 (XEH init EH on player respawn) it says:

IMPORTANT: This feature will only work on the player's unit - AI units that respawn won't have their XEH init EH:s re-executed. (If someone can figure out a trick to identify playable units in a MP mission, this limitation could be removed)
Shouldn't this be easy now in Arma2 with the playableUnits command? Maybe this has been fixed already (didn't find anything in the changelog), but wanted to point it out just in case. :)

Share this post


Link to post
Share on other sites

Tnx a lot for replies and mirrors!

Nice one guys! Excellent work.

I've already been looking at the documentation and discovered something:

Look here: http://dev-heaven.net/wiki/cca/Extended_Eventhandlers

Under section 1.8 (XEH init EH on player respawn) it says:

Shouldn't this be easy now in Arma2 with the playableUnits command? Maybe this has been fixed already (didn't find anything in the changelog), but wanted to point it out just in case. :)

Good spotting MDX :) Cheers!

Ticket added here http://dev-heaven.net/issues/show/2647

Sounds like food for Rel2 :)

Share this post


Link to post
Share on other sites

I'd like to be the first post on the second page to congratulate the team on it's first release :)

Share this post


Link to post
Share on other sites

Wanted to put some extra publicity on our docs:

Please take a look at our function documentation: generic wiki and comprehensive html docs for usage.

@DM:

Tnx mate! Will your Smoke effects make use of CBA?

Edited by Sickboy

Share this post


Link to post
Share on other sites
@DM:

Tnx mate! Will your Smoke effects make use of CBA?

Well thanks to your new release, the DMHide works right out of the ArmA1 box :) I'm going to rejig it tonight, improve it & release it as a JTD release. So practical thanks from me :)

The smoke effects... I haven't started any yet, but I'm pretty sure it will happen :) there's stuff in the A1 release that throws up errors that will probably mean I'll just start over from scratch. Not that they're insurmountable, but you know, sometimes a rewrite is inevitable and practical. DMSmokeEffects represents, for me, my first ever mod so there's lots of stuff that's inefficient & unnecessary. I doubt anyone (except for me in controlled tests) ever noticed that the smoke dies off quicker in rain and becomes all steamy. That is all wasted code, happening for all particles on all particle sources :D

And oh yeah - your CBA will come in as invaluable :)

Edited by DMarkwick

Share this post


Link to post
Share on other sites

Congratulations to all that have slaved away at making CBA come to life, and I hope that it forms the basis for many more contributions.

I doubt anyone (except for me in controlled tests) ever noticed that the smoke dies off quicker in rain and becomes all steamy. That is all wasted code, happening for all particles on all particle sources :D

Damn! It was overlooked by me, and maybe as it is such a natural thing, became subliminal. Certainly not wasted code, and I for one look forward to what you come up with for ArmA2.

Share this post


Link to post
Share on other sites
Congratulations to all that have slaved away at making CBA come to life, and I hope that it forms the basis for many more contributions.

Damn! It was overlooked by me, and maybe as it is such a natural thing, became subliminal. Certainly not wasted code, and I for one look forward to what you come up with for ArmA2.

Thanks for the support :) I had some amount of positive results in ArmA1 when I started playing about with propagating fire. So there is a good possibility of forest fires etc in ArmA2's release ;)

Share this post


Link to post
Share on other sites

Excellent work Devs!! I am sure the community will appreciate this work greatly.

Share this post


Link to post
Share on other sites

Have no idea how these things work, but it seems to be a good thing. :D

Good work guys!

Share this post


Link to post
Share on other sites

Thanks for this.

Force Recon units do not XEH init properly. The fix below worked for me:

// XEH uses all existing event handlers
#define EXTENDED_EVENTHANDLERS init = "if(isnil'SLX_XEH_objects')then{call compile preprocessFile'extended_eventhandlers\InitXEH.sqf'};[_this select 0,'Extended_Init_EventHandlers']call SLX_XEH_init;"; \
fired = "_s=nearestObject[_this select 0,_this select 4]; [_this select 0,_this select 1,_this select 2,_this select 3,_this select 4,_s]call((_this select 0)getVariable'Extended_FiredEH')"; \
animChanged     = "_this call((_this select 0)getVariable'Extended_AnimChangedEH')"; \
animDone        = "_this call((_this select 0)getVariable'Extended_AnimDoneEH')"; \
dammaged        = "_this call((_this select 0)getVariable'Extended_DammagedEH')"; \
engine          = "_this call((_this select 0)getVariable'Extended_EngineEH')"; \
firedNear       = "_this call((_this select 0)getVariable'Extended_FiredNearEH')"; \
fuel            = "_this call((_this select 0)getVariable'Extended_FuelEH')"; \
gear            = "_this call((_this select 0)getVariable'Extended_GearEH')"; \
getIn           = "_this call((_this select 0)getVariable'Extended_GetInEH')"; \
getOut          = "_this call((_this select 0)getVariable'Extended_GetOutEH')"; \
//handleDamage    = "_this call((_this select 0)getVariable'Extended_HandleDamageEH')"; \
//handleHealing   = "_this call((_this select 0)getVariable'Extended_HandleHealingEH')"; \
hit             = "_this call((_this select 0)getVariable'Extended_HitEH')"; \
incomingMissile = "_this call((_this select 0)getVariable'Extended_IncomingMissileEH')"; \
killed          = "_this call((_this select 0)getVariable'Extended_KilledEH')"; \
landedTouchDown = "_this call((_this select 0)getVariable'Extended_LandedTouchDownEH')"; \
landedStopped   = "_this call((_this select 0)getVariable'Extended_LandedStoppedEH')";

class Extended_Init_EventHandlers {
class FR_Miles {Miles_init = "(_this select 0) setidentity ""Miles"";";};
class FR_Cooper {Cooper_init = "(_this select 0) setidentity ""Cooper"";";};
class FR_Sykes {Sykes_init = "(_this select 0) setidentity ""Sykes"";";};
class FR_Ohara {Ohara_init = "(_this select 0) setidentity ""Ohara"";";};
class FR_Rodriguez {Rodriguez_init = "(_this select 0) setidentity ""Rodriguez"";";};
};

class CfgVehicles {
class SoldierWB;
class FR_Base : SoldierWB {
	class EventHandlers { EXTENDED_EVENTHANDLERS };
};

class FR_Miles : FR_Base {
	class EventHandlers : EventHandlers {HandleIdentity = "true"; EXTENDED_EVENTHANDLERS };
};

class FR_GL : FR_Base {
	class EventHandlers;
};

class FR_Cooper : FR_GL {
	class EventHandlers : EventHandlers {HandleIdentity = "true"; EXTENDED_EVENTHANDLERS };
};

class FR_Marksman : FR_Base {
	class EventHandlers;
};

class FR_Sykes : FR_Marksman {
	class EventHandlers : EventHandlers {HandleIdentity = "true"; EXTENDED_EVENTHANDLERS };
};

class FR_Corpsman : FR_Base {
	class EventHandlers;
};

class FR_OHara : FR_Corpsman {
	class EventHandlers : EventHandlers {HandleIdentity = "true"; EXTENDED_EVENTHANDLERS };
};

class FR_AR : FR_Base {
	class EventHandlers;
};

class FR_Rodriguez : FR_AR {
	class EventHandlers : EventHandlers {HandleIdentity = "true"; EXTENDED_EVENTHANDLERS };
};

};

Edited by Robalo_AS
edited version - no rpt errors

Share this post


Link to post
Share on other sites

Looks like an amazingly worthy effort! This may very well put scripting back into the realms of possibility for me again. Look forward to posting some of my unoptimized junk that others might find useful, lol. It'll be less junky with THIS.. Thanks CBA team!

Share this post


Link to post
Share on other sites

While adding the initial first release touches to JTD Tracker Dog, I find that game logics can no longer be assigned into vehicle positions. I don't know whether this is a bug or a new limitation to prevent problems somewhere else (As discussed at OFPEC).

Is there the possibility that a modified game logic could be derived from the default one, with the old abilities reinstated as a CBA project?

As I say the default one might have been fixed to prevent problems somewhere else, but this might not apply to a derivative?

Share this post


Link to post
Share on other sites
While adding the initial first release touches to JTD Tracker Dog, I find that game logics can no longer be assigned into vehicle positions. I don't know whether this is a bug or a new limitation to prevent problems somewhere else (As discussed at OFPEC).

Is there the possibility that a modified game logic could be derived from the default one, with the old abilities reinstated as a CBA project?

As I say the default one might have been fixed to prevent problems somewhere else, but this might not apply to a derivative?

:)

Not sure if it is a property to be set, or possibly a result of changed logic usage.

"LOGIC" can now only be created by: createVehicleLocal, camCreate and createUnit.

Correct would be: http://dev-heaven.net/boards/37/topics/show/949#message-1098 (posted at DH for syntax highlighting and biki links)

Are you able to put _logic into vehicle cargo with above code?

If not, we could try to find the issue or create our own logic-alike object.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0