• Welcome to Battlezone Universe.
 

News:

Welcome to the BZU Archive dated December 24, 2009. Topics and posts are in read-only mode. Those with accounts will be able to login and browse anything the account had access granted to at the time. No changes to permissions will be made to be given access to particular content. If you have any questions, please reach out to squirrelof09/Rapazzini.

Main Menu

(Medium Suggestion) BZ2 DLL / Interface

Started by eddeighton, May 10, 2004, 10:54:58 AM

Previous topic - Next topic

eddeighton

I just wanted to create a wishlist related to the in game interface and dll capabilities.  I am relatively new around here but it seems previous wishlists mostly involve issues around flight mechanics and missions plus I havn't read much before about the customisation of the gui or menu system.

Dynamic menus - ability to add mission specific commands to units.  Or be able to get info about the unit group selection in the dll combined with some form of keyboard event handling.  Clearly there is a number of ways this could work to ultimately provide the ability to handle commands in the dll with respect to a dynamically made unit selections and ofcoarse the ability to somehow invoke those commands from ingame.  This would make the game hugely more interesting in terms of the tactical stuff possible in mods.

Minimap bitmap access.  It could be very cool if it was possible to access the bitmap resource used for the minimap so it could be custom drawn in the dll.  There would be loads of possible uses i.e.

thermal imaging,
electromagnetic,
effect of radar jammers,
dropship zones,
alien infestations,
other intelligence stats about the enemy - not enough intelligence in bz,,,

I have not experimented with the custom interface capabilities i.e. for building panels or pop up dialogs.  Again, it would be very cool if it was possible to display a bitmap resource that can be modified in the dll with basic win32 gdi or whatever.  Ultimatly mouse event handling within the displayed bitmap would provide for some great stuff for my mod and probably many other peoples.

Simple commands clearly just require selecting a unit and issuing the command i.e. hold or power down, eject, return to base, hold fire, fire at will, etc.  

Obviously it would also be very cool if more complex commands were possible which required secondary unit / structure / location arguments for stuff like avoid, repressing fire, patrol, lure, weapon selection, hunt for unit type, hunt for structure type, selecting attack style, selecting hull level before returning to base,, the list of cool possible commands goes on.

So much cool stuff, I just wanted to make sure you know atleast I myself am hedging for these capabilities.  I dont play multi-player and personally dont care for stuff like preventing hacking or fixing the 'easy win' problems which unfortunatly seem to drag the devs away from adding cool new gameplay capabilities but I guess is the major concern for most.

Anyway thats my say :)

Ed.

GSH


Angstromicus

GSH says it, so might as well just ask a question instead.




GSH, or whoever knows about dlls, is it possible to make terrain deformations happen Edit: with dll files (I kno I have a "terrain fetish"?

GSH

The things a DLL may do are listed in the ScriptUtils.h file distributed w/ the 1.2 & 1.3 MP DLL source releases. I suggest you read it. You'll have to be a programmer to use them, either in C++ form or the DLL Scriptor form. If you're not a programmer, then become one or bribe one.

-- GSH

OvermindDL1

There is a way to deform the therrain, but only in build square type sizes, I have not seen any adverse effects from this beside AI dodging a mountain that no longer exists...  Would it be possible to split this please?

Angstromicus

Quote from: OvermindDL1There is a way to deform the therrain, but only in build square type sizes, I have not seen any adverse effects from this beside AI dodging a mountain that no longer exists...  Would it be possible to split this please?

build square? u mean only doable by building and erasing a structure that owns terrain?

Zero Angel

The Special Ops MOD (which was cancelled) had 'a terraforming constructor', i think it has something to do with a terrain forming object being build then erasing itself.

I just talked to NoK and he says it was done with the help of a custom DLL. Damn shame.
QuoteAwareness, Teamwork, Discipline
Constantly apply these principles, and you will succeed in a lot of things, especially BZ2 team strat.
{bac}Zero Angel
Victory through superior aggression

OvermindDL1

Similier, let me leave it at that at the moment.  Mabye someday I will finish that dll I was experimenting with for terraforming terrain.

Tempest Storm

Right ZA, but as OM said earlier, it can only be used to teraform build squares to a different height. Its unfrotunate that BZ2 can't support it, but free moving terrain is killed with the locked build squares.

Angstromicus

Why couldn't develpoers just take the ability to move terrain freely from bz1 and make off that, why does that have to be taken out? Broken buildings and multiplayer problems? Solutions:

Diffrent building bases (IE: like in bz1).

Don't use/place thumper in multiplayer.

GSH

TOO- the graphics engine is completely different from BZ1 to BZ2. What you want is (1) not possible, (2) of so limited payoff that it's not worth working on.

Give it up, now. You'll save yourself a lot of trouble. Anything that sounds like "write my mod" will get roundfiled.

-- GSH

eddeighton

After spending some time learning the dll and interface capabilities I have re-written this with hopefully ideas that Nathan or others will appreciate.  I am currently working full time on my mod and really hope that maybe in the final 1.3 patch some of these things might be available - I also mention stuff that previously people said was not possible but actually turned out to be very possible :)

Custom commands.  So far I have found its possible to:
Add custom keyboard commands that are handled in dll.
Custom handle the Hunt command (could not get rescue to work).
So pretty much anything is possible which is fantastic.

Bitmap drawing. Its possible to display your own bitmaps within the interface.  I wonder if there is a way to get BZ to reload an image file - then you could re-write the file in dll - good for stuff like special sky-eye view if it didn;t update much.   This is not important to my mod but I figured others would want it a lot.

Modified HUD So far I have successfullly got custom commbunkers that allow deploying dropships, custom popup dialogs controled via keyboard that enable extended squad and base commands.  In some cases I have managed to be able to specify arguments to commands through using the beacon placed in the commbunker aswell as just examining objects current commands and selected state.

The only problems I have encountered with the dll are:

No ability to determine the current group of a handle.  Could this not be added as a capability of isOdf() ?

No ability to convert an AiPath into a named path which makes it impossible to dynamically setup AiPaths for issueing commands to units except for cases when you can build some object at the AiPath point and use the object handle in the command.  In the dll the AIPath class and PathType enum are left completely undefined yet one of the comments indicates a member of AiPath,,

AiPath::Find(,,,,);

and another indicates the LOOP_PATH enum.  For my mod I am having to programatically set the paths in the bzn file because I cannot set the paths from the dll.  This incurs load time hits also due to having an ascii bzn.  

Last thing is that AddObject and DeleteObject are not always called, i.e. if scavenger buildings are on a map when it loads AddObject is not called.  The is no call to DeleteObject when a power building is destroyed.   Tracking active objects in game is thus a little tricky requiring some brute tests on some things to see if the handles are no longer valid.


Ed.

OvermindDL1

Yes, that AI Class would be nice to actually have useable, at the moment the header only contains information for the class, not actually the functions inside it, so it is a bit useless as nothing really calls or uses it.

I have also noticed that on spawn/delete object...

Red Devil

Perhaps it was enough that the class exists, maybe needed just for reference?
What box???

OvermindDL1

Or some obsolete functionality, who knows...