NTai XE10.1b
Moderators: hoijui, Moderators
The XE9.79 version is months old. Out of date, kaput.
Unless you're using the very latest builds your bug reports are useless because how do I know that bug even exists any more? Is it a bug I fixed myself since then? Is it a bug in a class that I recently deleted and rewrote?
Simply put, you cant. The latest build isn't in a releasable state. An installer stable perfect build hasn't been released in months, certainly not this half of 2007. You're just going to have to wait for me and DJ to agree with each other on whether svn commit 123abc is worth releasing or not.
Unless you're using the very latest builds your bug reports are useless because how do I know that bug even exists any more? Is it a bug I fixed myself since then? Is it a bug in a class that I recently deleted and rewrote?
Simply put, you cant. The latest build isn't in a releasable state. An installer stable perfect build hasn't been released in months, certainly not this half of 2007. You're just going to have to wait for me and DJ to agree with each other on whether svn commit 123abc is worth releasing or not.
http://www.darkstars.co.uk/2007/ntai-progress/
You'll find the dgun behaviour was committed to svn with the old routines removed accordingly. I may do the same for the retreat behaviour soon.
DJ could you look at toolkit, and if it isn't too complex at adding behaviours? A checklist should do the job, although there're one ro two exceptions.
the none and auto behaviours are exclusive, and a unit cannot have this behaviour and any other behaviour. All other behaviours must be disabled if one of these is selected. A unit cannot have both the auto and none behaviours either.
Other behaviours atm are: metalmaker, dgun, and attacker
The tag they're read from is "AI\\behaviours\\unitname", and auto is the default value.
You'll find the dgun behaviour was committed to svn with the old routines removed accordingly. I may do the same for the retreat behaviour soon.
DJ could you look at toolkit, and if it isn't too complex at adding behaviours? A checklist should do the job, although there're one ro two exceptions.
the none and auto behaviours are exclusive, and a unit cannot have this behaviour and any other behaviour. All other behaviours must be disabled if one of these is selected. A unit cannot have both the auto and none behaviours either.
Other behaviours atm are: metalmaker, dgun, and attacker
The tag they're read from is "AI\\behaviours\\unitname", and auto is the default value.
So:The tag they're read from is "AI\\behaviours\\unitname", and auto is the default value.
Code: Select all
[AI]
{
[BEHAVIOURS]
{
arm_peewee=attacker;
arm_commander=dgun;
arm_radar=none;
random_unit=dgun,metalmaker,attacker;
arm_mex=auto;
}
}
The problem is that a bad unit id shouldn't make it as far as the task system, it should be caught as early as possible to prevent processing and wasted resources, hence the assert statement.
As I understood it, an assert resolves into nothingness in a release build and a break point in a debug build, so i thought adding an assert would do pretty much nothing and be ignored unless ran via a debugger.
As I understood it, an assert resolves into nothingness in a release build and a break point in a debug build, so i thought adding an assert would do pretty much nothing and be ignored unless ran via a debugger.
No, a bad unitID shouldnt cause a crash unless I haven't checked the return value of UnitDef or CUnitTypeData pointers for null pointer values. bad unit IDs are ignored by the engine.
It's just unnecessary processing and lag that could be avoided, and could lead to certain jamming up like the accumulation of unit objects for units that no longer exist, or even duplicates as a unit that doesn't exists ID is actually assigned to a new unit.
Hence the assertion I put in. If its true then you should look backwards in the debugger to determine how it happened and fix it.
It's just unnecessary processing and lag that could be avoided, and could lead to certain jamming up like the accumulation of unit objects for units that no longer exist, or even duplicates as a unit that doesn't exists ID is actually assigned to a new unit.
Hence the assertion I put in. If its true then you should look backwards in the debugger to determine how it happened and fix it.
tbh if i was going to invest time debugging your code i'd be more likely to write my own AI. As it is I don't have much time, I give you as much help as I can, not many people get bug reports down to specific lines of code.If its true then you should look backwards in the debugger to determine how it happened and fix it.
At the end of the day, this is your project, you can either fix the bugs I report or not but I don't have time to fix them for you. I'd like to see this project do well but it's taken so long to get a reliable version it is now well behind KAIK which also plays without the need for configs.