.:: Bots United ::.

.:: Bots United ::. (http://forums.bots-united.com/index.php)
-   Releases, Installers, Docs & Coding (http://forums.bots-united.com/forumdisplay.php?f=48)
-   -   PODBOT2.6MM after PMB...work still pending (http://forums.bots-united.com/showthread.php?t=1372)

SoUlFaThEr 14-04-2004 20:26

PODBOT2.6MM after PMB...work still pending
 
here is our new podbot 2.6mm thread.

lets continue the work on it in here.

first items to fix:

1. that the bots dont hit buttons at all unless a flagged waypoint is there.
2. that a button flag is no longer an automatic thing. it needs to be added to the menus in the waypoint editor so WE can place a button flag if theres REALLY a button a bot needs to hit... this is a huge problem solve!

behavior is not an issue right now. but if this is easy:
1. bomb carriers have a default NORMAL behavior pattern
2. hostage holders have a default AGGRESSIVE behavior
3. a VIP has a default NORMAL behavior.

Pierre-Marie Baty 14-04-2004 22:32

Re: PODBOT2.6MM after PMB...work still pending
 
Out of curiousity I've had a quick look in the code for that button problem and I've found something horrible.

The button flag on waypoints doesn't have any purpose.
It's useless. The bots just ignore it.

It's there, you can set the flag, but there's no code to tell the bot how to handle it!

The bots only press the buttons they see on a random basis.

This needs to change. And while you're at it, implement the button usage the right way this time, like Stefan is saying.

And about the personality thingy, here's at least something I can tell you :

The bot personalities are set during the BotCreate() function, i.e. when the bot is created, NOT when the round is restarted. In order for the bomb carrier or the VIP to have a personality depending on its role in the team, you have to change that and alter the bot personalities in BotSpawnInit() which is the function that resets the bot at each start of a new round. If you do so however, don't forget to randomize the personalities for the bots that neither have a bomb nor are the VIP, else you'll end up with only "normal" personalities bots.

SoUlFaThEr 15-04-2004 00:59

Re: PODBOT2.6MM after PMB...work still pending
 
cool PM thanks for that extremely valuable info.

im really wondering why he added a button flag that doesnt have a corresponding code to tell the bot about it. crazy shit.

is Austin capable of doing what Stephan did with the buttons/trigger-multiples? He was writing me his idea of how it should happen and it seemed really similar to Stephans thing.

and the personality thing seems like it COULD work...
so thats a good sign !!

Austin?

here is StephanHendricks theory about the door which works on maps like de_prodigy and de_rats(whose buttons are not func_buttons but rather...trigger_multiples!) :

- find a button to open the door (target/targetname match)
- traceline
- when traceline fails
- check on why
- when traceline returns "worldspawn" AND you are checking for a trigger_multiple, find a waypoint/node very close to this.
- when available. RETRY the traceline
- on success, still go to it!

sPlOrYgOn 15-04-2004 01:26

Re: PODBOT2.6MM after PMB...work still pending
 
Alright heres a list of what i've changed from the Podbot SDK
Quote:

+ Stopped bots from randomly pushing buttons (WARNING: Since there is no code to handle button flags the bots will NOT push buttons at all)
+ Button flag no longer added automaticly
+ Fixed the bug i found.. about the addbot command in the podbot.cfg
BOTS WILL NOT PUSH BUTTONS!!!
I do not know how to implement this well but I have an idea how to..
I do not feel that I know enough to add my 'idea' of how it should be done..
http://www.mapzap.org/podbot.zip
my releases will be uploaded there.

[edit]
I have also just decided I will try to implement them pushing buttons when there is a button flag but I will be expecting someone (Austin) to take a look at it and fix up any errors.
[/edit]
[edit2]
I have just changed my mind..
This is way out of my head..
[/edit2]
[edit3]
*just wondering* Why doesn't podbot just use TraceToss for calculating where to throw a nade?
(just found TraceToss in Metamod's Engine Notes, me know nothinga bout it.)
[/edit3]
[edit4]
I uploaded the wrong file and just reuploaded.
[/edit4]
[edit5]
btw no linux build. that linux build is from last version. If you read my other posts you would know why.
Anyways it shouldn't be any useful to linux people since they don't push buttons. This is more of a release for waypointers since SF suggested that button flag no longer automaticly added to waypoints
[/edit5]
[edit6]
just rebuilt because I just realized that if i removed auto placing of button flags and theres no option for manually placing them then they're as good as gone.. so I just added the button flag to the Change Flag menu.
Please redownload.
[/edit6]
[edit7]
I just noticed that the angle "problem" that was fixed by pmb in the other thread about 10 pages back isn't in the podbot sdk..
on purpose or no?
[/edit7]

SoUlFaThEr 15-04-2004 02:57

Re: PODBOT2.6MM after PMB...work still pending
 
before i download.......did you put in the button flag that the bot should USE. and also place in our flag menu?...does it have a sprite so we know it? is it part of the flag mentions on the upper left like pmb has done for us?

did you test if the bot is pressing anything it sees without a button flag anywhere?

if you did, and all the things i mentioned above are IN it...... then ill download this file.
and THANK you too :)

did you test it?

your 7 edits makes me wonder......doesnt look good man :)(changed my mind/wrong upload)

also please toss the code you made for these new options into this thread when you update ........that will be standard procedure on updates for the bot from now on. please do this......we will be able to correct bugs in it much faster this way if theres a question about it.

also Musicman was making some things happen.......and they are surely NOT in your portion.......this is what i meant about getting organized you guys :)

sPlOrYgOn 15-04-2004 05:16

Re: PODBOT2.6MM after PMB...work still pending
 
Alright sorry.
I was sorta in a rush..
I'll go look for the code right now.
I only tested if it auto added button flags and it didn't so that part is working.
But i didn't delete it all. I only delete the part that checks for if a button is near.
I'll go look through the code again and see what I changed and post it. I'm on a different computer right now... I keep getting kicked off of my fast computer :'(
[edit]
in bot.cpp around line 996 find:
Code:

        if ((strcmp ("func_button", STRING (pent->v.classname)) == 0)
            && (strncmp ("cam", STRING (pent->v.target), 3) != 0))
        {
            bCanPickup = TRUE;
            iPickType = PICKUP_BUTTON;
        }

and change it to:
Code:

/*        if ((strcmp ("func_button", STRING (pent->v.classname)) == 0)
            && (strncmp ("cam", STRING (pent->v.target), 3) != 0))
        {
            bCanPickup = TRUE;
            iPickType = PICKUP_BUTTON;
        }*/

in waypoint.cpp around line 394 find:
Code:

  while (!FNullEnt (pent = FIND_ENTITY_IN_SPHERE (pent, pHostEdict->v.origin, radius)))
  {
      strcpy (item_name, STRING (pent->v.classname));

      if ((strcmp ("func_button", item_name) == 0)
          && (strncmp ("cam", STRING (pent->v.target), 3) != 0))
      {
        UTIL_HostPrint (HUD_PRINTCENTER, "Button detected. Setting Flag!\n");
        p->flags = W_FL_USE_BUTTON;
      }
  }

and change it to:
Code:

/*  while (!FNullEnt (pent = FIND_ENTITY_IN_SPHERE (pent, pHostEdict->v.origin, radius)))
  {
      strcpy (item_name, STRING (pent->v.classname));

      if ((strcmp ("func_button", item_name) == 0)
          && (strncmp ("cam", STRING (pent->v.target), 3) != 0))
      {
        UTIL_HostPrint (HUD_PRINTCENTER, "Button detected. Setting Flag!\n");
        p->flags = W_FL_USE_BUTTON;
      }
  }*/

also in waypoint.cpp around line 218 find:
Code:

  char item_name[64];
and change it to:
Code:

//  char item_name[64];
in bot_globals.cpp around line 595 find:
Code:

menutext_t menuWaypointAddFlag =
{
  0x3FF,
  " Waypoint Flags\n"
  "1. Add Block with Hostage\n"
  "2. Add T ONLY Camp\n"
  "3. Add CT ONLY Camp\n"
  "4. Del Block with Hostage\n"
  "5. Del T ONLY Camp\n"
  "6. Del CT ONLY Camp\n"
  "\n"
  "0. Cancel"
};

and change it to:
Code:

menutext_t menuWaypointAddFlag =
{
  0x3FF,
  " Waypoint Flags\n"
  "1. Add Block with Hostage\n"
  "2. Add T ONLY Camp\n"
  "3. Add CT ONLY Camp\n"
  "4. Add Use Button\n"
  "5. Del Block with Hostage\n"
  "6. Del T ONLY Camp\n"
  "7. Del CT ONLY Camp\n"
  "8. Del Use Button\n"
  "\n"
  "0. Cancel"
};

in dll.cpp around line 2066 find:
Code:

                    case 4:
                        WaypointChangeFlags (W_FL_NOHOSTAGE, 0);
                        EMIT_SOUND_DYN2 (pEntity, CHAN_WEAPON, "weapons/he_bounce-1.wav", 1.0, ATTN_NORM, 0, 100);
                        break;

                    case 5:
                        WaypointChangeFlags (W_FL_TERRORIST, 0);
                        EMIT_SOUND_DYN2 (pEntity, CHAN_WEAPON, "weapons/he_bounce-1.wav", 1.0, ATTN_NORM, 0, 100);
                        break;

                    case 6:
                        WaypointChangeFlags (W_FL_COUNTER, 0);
                        EMIT_SOUND_DYN2 (pEntity, CHAN_WEAPON, "weapons/he_bounce-1.wav", 1.0, ATTN_NORM, 0, 100);
                        break;

and change it to:
Code:

                    case 4:
                        WaypointChangeFlags (W_FL_USE_BUTTON, 1);
                        EMIT_SOUND_DYN2 (pEntity, CHAN_WEAPON, "weapons/he_bounce-1.wav", 1.0, ATTN_NORM, 0, 100);
                        break;

                    case 5:
                        WaypointChangeFlags (W_FL_NOHOSTAGE, 0);
                        EMIT_SOUND_DYN2 (pEntity, CHAN_WEAPON, "weapons/he_bounce-1.wav", 1.0, ATTN_NORM, 0, 100);
                        break;

                    case 6:
                        WaypointChangeFlags (W_FL_TERRORIST, 0);
                        EMIT_SOUND_DYN2 (pEntity, CHAN_WEAPON, "weapons/he_bounce-1.wav", 1.0, ATTN_NORM, 0, 100);
                        break;

                    case 7:
                        WaypointChangeFlags (W_FL_COUNTER, 0);
                        EMIT_SOUND_DYN2 (pEntity, CHAN_WEAPON, "weapons/he_bounce-1.wav", 1.0, ATTN_NORM, 0, 100);
                        break;

                    case 8:
                        WaypointChangeFlags (W_FL_USE_BUTTON, 0);
                        EMIT_SOUND_DYN2 (pEntity, CHAN_WEAPON, "weapons/he_bounce-1.wav", 1.0, ATTN_NORM, 0, 100);
                        break;

there thats it.
[/edit]
[edit2]
i think i said this but i guess u didn't see or something. I said i stoped them from pushing buttons at random, but because the code does not implement the button flag even if you put a button flag there they will not push a button. So the dll I released, they do NOT push buttons at all.

PMB already put the Use Button flag in the upper left corner if the flag is on the waypoint. No there are no sprite changes or color changes the only way to know if the button flag is there is to move upto a waypoint and check if the button flag is listed in the upper left corner.
[/edit2]

SoUlFaThEr 15-04-2004 09:59

Re: PODBOT2.6MM after PMB...work still pending
 
ok very cool and thanks for doing that :)
I really appreciate it!

so,
if i add a flag right now with that .dll, the bots still wont push the button there? or they will.......

stefanhendriks 15-04-2004 10:48

Re: PODBOT2.6MM after PMB...work still pending
 
for pushing buttons i guess you just have to stand close to it. Ie in de_prodigy you have to touch it in order to push the button. I did not do more then a distance check for that.

MusicMan 15-04-2004 16:53

Re: PODBOT2.6MM after PMB...work still pending
 
could the code:

Code:

if (pBot->bIsVIP == TRUE)
{
        pBot->bot_personality = 2;
}
 
else if (pBot->bIsLeader == TRUE)
{
        pBot->bot_personality = 1;
}
 
else
 
//Randomize personalities

could this code be used to define personalities of bots who are bomb carriers, and bots that are VIP's? and how do I determine if a bot is escorting hostages?

Thanks in advance;)

MusicMan

Pierre-Marie Baty 15-04-2004 17:06

Re: PODBOT2.6MM after PMB...work still pending
 
@MusicMan: yes
And there is a function like this (or similar)
bool BotHasHostage (bot_t *pBot)
which returns TRUE if the bot is carrying a hostage around. You could use it.


All times are GMT +2. The time now is 15:12.

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