.:: Bots United ::.

.:: Bots United ::. (http://forums.bots-united.com/index.php)
-   Help request (http://forums.bots-united.com/forumdisplay.php?f=37)
-   -   Going to load IAD file ... (http://forums.bots-united.com/showthread.php?t=6828)

Krillin 28-06-2008 10:37

Going to load IAD file ...
 
Being as documentation is non-existing, we see the following message in our consoles for our server(s)
Code:

Going to load IAD file : realbot/data/cstrike/ini/{map_name}.ini
There aren't any examples to go by, so we have to ask:
1) What is the purpose of these files for every map?
2) What can go into these files?
3) What does IAD stand for?

Examples of this file type would be helpful.

Thanks, in advance,
Krillin

stefanhendriks 29-06-2008 14:27

Re: Going to load IAD file ...
 
I have some time to spare, so i will digg into this. I'll get back to you asap.

stefanhendriks 29-06-2008 14:53

Re: Going to load IAD file ...
 
I had to browse the source of RealBot to get you the answer, but here goes.

All your questions can be answered with the following:

IAD stands for Important Area Definition. (See Iniparser.cpp)

The IAD's are 'important goals' in the map. The documentation is limited, shame on myself; I think they are for assigning 'important areas' so bots will chose these areas as places to go besides the obvious goals such as hostages or bomb spots.

By doing this you can sort of influence their behaviour about moving around the map. Once bots are running around for some time, they tend to get satisfied with some experience and never seem to take alternative routes; by adding important goals / area definitions you can still 'force' the bots to go there.

After looking a bit further, looks like i commented on Important Goals the following:
Code:

// "important goals" should not always be chosen, somehow
              // i am not really confident how this works. This seems
              // to overrule everything or something. Yikes.
              // using ugly RANDOM_LONG to bypass most checks, but still
              // keep them in the game

The path_think method will decide where to go, and from all goals (objectives and game goals) the highest score is best candidate to go to.

The IAD code seems to be bugged; so if you add them, chance is that bots will not plant bombs as often (or not at all).

In short, if you don't add them, you're fine ;-)

Dang, i should compile this thing and clean it up...

Krillin 29-06-2008 20:37

Re: Going to load IAD file ...
 
Yeah, I have been reading the souce code myself trying to figure out what needs to be configured for these bots.

The appear to act 'dumb' when no one is playing in the server but the player is spectating. But a total 180 when a play joins a team.

The configuration of realbot is very confusing until you read the 'dll.cpp' souce file.

So, my next question is do these files need to exist for the bots, or are they logging this information in the /exp/ folder of files?

I have also noted there seems to be a problem with a grenade model, but I am not sure exactly why. There is just a repeated error in the reallog.txt
Code:

UTIL_GetGrenadeType unknown grenade model
Sources show util.cpp that the models match up for grenades on the ground! Not sure why this would be important but here are what the different model prefixes mean:

p_ prefix == First person model, what the player sees.
v_ prefix == Third Person Modle, for what another player would see if you were holding this item
w_ prefix == Is model of item when on the ground.

Hope this helps clear the 3 different model types.

Krillin

stefanhendriks 29-06-2008 22:53

Re: Going to load IAD file ...
 
In short, IAD files can be ignored.

You probably already knows this, but:

Code:

realbot help
can give you some insight in some commands. But yeah, there needs to be documentation about the commands. Since it became a metamod plugin, things got unclear.

As for the grenade types; there are 2 places where the bot checks if a 'grenade type' is the bomb (which is planted).

This is:
1. Where a game loop checks when the bomb is planted
2. Where bot defusing code runs

When looking for a C4 timer it does:
Code:

while ((pent = UTIL_FindEntityByClassname(pent, "grenade")) != NULL) {
      if (UTIL_GetGrenadeType(pent) == 4)      // It is a C4
  ...

which basically means, get all entities , and there could be a possibility that the UTIL_GetGrenadeType is not identifying the model correctly. However, the function tells me that whenever it spits out "UTIL_GetGrenadeType unknown grenade model", it should also print the model name in the second line. Can you tell me what model name it gives? If you don't see a thing, then it means somehow there was a model there with no model name..(v.model)

I have seen many things in code there what i'd like to improve. I have been away for like 2, 3 years and gained a lot of experience in programming for real (hence not only for hobby), and seeing RealBot now makes me feel i can A LOT better.

If you like, you can give me some more pointers where you'd like to see improvements. Then i can work on them more efficiently.

Also; when players are spectating, is this also for maps where players are for the first time? Or do bots always act dumb, even when they have played well before? Because realbot needs to learn a map first. But then again, if you run a server, i suppose that you had real players before who spawned a lot of waypoints already.

Krillin 30-06-2008 01:44

Re: Going to load IAD file ...
 
So that explains the w_c4.mdl being as that is the model which is on the ground. However, if the other models (flash and smoke) are harmless and really don't do any damage, that is ok. However the w_hegrenade is an entirely different story. The bots do not react or even attempt to run from this. It is like they are not aware these are dangerous and do not react to them.

I do not want to post the anire reallog.txt (too big, a lot of text almost 750KB). Only because what I could is what is there. Just the same line, no other lines but. Every now and then there is an order of a bot commanding another bot to go to #.

Sample
Code:

UTIL_GetGrenadeType unknown grenade model
UTIL_GetGrenadeType unknown grenade model
UTIL_GetGrenadeType unknown grenade model
UTIL_GetGrenadeType unknown grenade model
UTIL_GetGrenadeType unknown grenade model
UTIL_GetGrenadeType unknown grenade model
UTIL_GetGrenadeType unknown grenade model
UTIL_GetGrenadeType unknown grenade model
UTIL_GetGrenadeType unknown grenade model
UTIL_GetGrenadeType unknown grenade model
UTIL_GetGrenadeType unknown grenade model
UTIL_GetGrenadeType unknown grenade model
UTIL_GetGrenadeType unknown grenade model
UTIL_GetGrenadeType unknown grenade model
RBPRINT->[FUNCTION 'CreateSwatTeams()']-[Team NONE] : Creating teams
Assigned '[DD]Dragon' to leader 'SadBloke'
RBPRINT->[FUNCTION 'CreateSwatTeams()']-[Team NONE] : Finished
'SadBloke' ordered '[DD]Dragon' to go to 790
RBPRINT->[FUNCTION 'CreateSwatTeams()']-[Team NONE] : Creating teams
Assigned '[DD]Dragon' to leader 'SadBloke'
RBPRINT->[FUNCTION 'CreateSwatTeams()']-[Team NONE] : Finished
'SadBloke' ordered '[DD]Dragon' to go to 3179
'SadBloke' ordered '[DD]Dragon' to go to 3179

So it is safe to assume your statement of: "If you don't see a thing, then it means somehow there was a model there with no model name..(v.model)" But it is verified these models are there. However, what about the v_thighpack.mdl. CT's drop this model (defuse kit) when they are killed on DE_MAPS. Maybe this is what it is having trouble with? I believe they can be picked up by other CT players (Note: Not T Players [why would they want or need a defusal kit?]).

Krillin

stefanhendriks 30-06-2008 07:48

Re: Going to load IAD file ...
 
Quote:

The bots do not react or even attempt to run from this. It is like they are not aware these are dangerous and do not react to them.
That is correct, there is no such code that tries to avoid grenades using the UTIL_GetGrenadeType method.

Perhaps there is some other way implemented, but not that i know of my hearth.

I am puzzled what this could be, do you know if this happens only in DE maps, or does it also happen in CS maps?

Looks like the create swat teams method is still doing stuff what is not supposed to do. The entire 'swat thing' was removed because it did not really work out.


All times are GMT +2. The time now is 01:26.

Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.