Inside3D!
     

Frikbots & Skins
Goto page Previous  1, 2, 3, 4, 5  Next
 
Post new topic   Reply to topic    Inside3d Forums Forum Index -> Artificial Intelligence
View previous topic :: View next topic  
Author Message
Sajt



Joined: 16 Oct 2004
Posts: 1026

PostPosted: Fri Jul 06, 2007 2:11 am    Post subject: Reply with quote

Holy cow! I saw a few apostrophes in there, scar3crow! Very Happy
_________________
F. A. Špork, an enlightened nobleman and a great patron of art, had a stately Baroque spa complex built on the banks of the River Labe.
Back to top
View user's profile Send private message
FrikaC
Site Admin


Joined: 08 Oct 2004
Posts: 947

PostPosted: Fri Jul 06, 2007 2:16 pm    Post subject: Reply with quote

scar3crow wrote:
To be honest, if it doesn't involve custom skins, I do just go with DP, whether the server is QW, NQ or DP protocol... Who cares? Its still Quake. With that line of thought, people who don't switch to something that works well between all of them is furthering the divide (which should have died the moment broadband became widely available and the source was released as well). The only difference, thats real to me, is ease of bunnyhopping in QW and NQ. And if your Quake playing is so reliant on that, then you suck at the game. Same thing goes if you only play on dm3 or dm6 or whatnot. There, I said it, I get tired of that shit.


We should play STC more.
Back to top
View user's profile Send private message Send e-mail
scar3crow
Inside3D Staff


Joined: 18 Jan 2005
Posts: 837
Location: Las Vegas, NV

PostPosted: Fri Jul 06, 2007 8:13 pm    Post subject: Reply with quote

That we should, didn't Krimzon make a map for it a few years back?

I miss sneaking around and up walls as a Thief, raiding the enemy base...

Urm... Frikbot skins! Still on topic?
Back to top
View user's profile Send private message AIM Address
redrum



Joined: 28 Mar 2007
Posts: 367
Location: Long Island, New York

PostPosted: Mon Jul 23, 2007 4:11 pm    Post subject: Reply with quote

I was able to apply the custom skins to the bots!
After I did this, the bots are now removed from the scoreboard.
Why did this happen?
_________________
Welcome to the Overlook Hotel 69.113.123.178:27500
Back to top
View user's profile Send private message Send e-mail
FrikaC
Site Admin


Joined: 08 Oct 2004
Posts: 947

PostPosted: Mon Jul 23, 2007 8:21 pm    Post subject: Reply with quote

Don't mess up those messages.
Back to top
View user's profile Send private message Send e-mail
redrum



Joined: 28 Mar 2007
Posts: 367
Location: Long Island, New York

PostPosted: Mon Jul 23, 2007 10:06 pm    Post subject: Reply with quote

What messages?
_________________
Welcome to the Overlook Hotel 69.113.123.178:27500
Back to top
View user's profile Send private message Send e-mail
FrikaC
Site Admin


Joined: 08 Oct 2004
Posts: 947

PostPosted: Mon Jul 23, 2007 10:34 pm    Post subject: Reply with quote

Those messages.
Back to top
View user's profile Send private message Send e-mail
scar3crow
Inside3D Staff


Joined: 18 Jan 2005
Posts: 837
Location: Las Vegas, NV

PostPosted: Mon Jul 23, 2007 10:53 pm    Post subject: Reply with quote

>_<
Back to top
View user's profile Send private message AIM Address
redrum



Joined: 28 Mar 2007
Posts: 367
Location: Long Island, New York

PostPosted: Tue Jul 24, 2007 2:32 pm    Post subject: Reply with quote

OK TERRIFIC!
_________________
Welcome to the Overlook Hotel 69.113.123.178:27500
Back to top
View user's profile Send private message Send e-mail
Lightning Hunter



Joined: 28 Nov 2007
Posts: 61

PostPosted: Tue Sep 15, 2009 10:27 pm    Post subject: Reply with quote

I stumbled upon this thread after trying to give the Frikbots custom skins as well, except I'm not using Quakeworld. I'm not compiling the code with any mods at all; only with Quake. I was hoping I could do it the "quick hack" way, with a player.mdl and modifying bot_misc.qc, as quoted here:

Quote:
First, you'll need a player.mdl with some different skins on it. Second, look for BotName in bot_misc.qc. Just stick in some self.skin = X where X is the skin number.


So, I have a player.mdl in the /progs folder with 16 different skins. I changed the BotName section in bot_misc.qc to look like this:

Code:

string(float r) BotName =
{
   self.b_num = r;
   if (r == 1)
   {   
      self.skin = 0;
      return "Vincent";
   }
   else if (r == 2)
   {
      self.skin = 1;
      return "Bishop";
   }
   else if (r == 3)
   {   
      self.skin = 2;
      return "Nomad";


Each bot after just has the next skin number. Obviously, something is wrong - because all I see now is the white team skin... Any ideas? Will the quick hack even work at all?
Back to top
View user's profile Send private message
FrikaC
Site Admin


Joined: 08 Oct 2004
Posts: 947

PostPosted: Wed Sep 16, 2009 9:12 pm    Post subject: Reply with quote

It's white because of the missing bshirt/bpants. Likely somewhere else in the code is setting the skin back to 0. Maybe PutClientInServer?
Back to top
View user's profile Send private message Send e-mail
Lightning Hunter



Joined: 28 Nov 2007
Posts: 61

PostPosted: Thu Sep 17, 2009 9:43 pm    Post subject: Reply with quote

Um, I only found The following code doing a search for "putclientinserver":

In Bot_qw.qc
Code:

void(float whatbot, float whatskill) BotConnect =
{
   local float f;
   local string h;
   local entity uself;
   
   f = ClientNextAvailable();
   uself = self;
   if(f == -1)
   {
      bprint(PRINT_HIGH, "Unable to connect a bot, server is full.\n");
      return;
   }

   bot_count = bot_count + 1;
   self = GetClientEntity(f);
   bot_start_topic(1);
   self.b_clientno = f;
   self.colormap = f + 1;
   if (whatbot)
      self.netname = BotName(whatbot);
   else
      self.netname = PickARandomName();
   // players can set skill all weird, so leave these checks in
   whatskill = rint(whatskill);
   if (whatskill > 3)
      whatskill = 3;
   else if (whatskill < 0)
      whatskill = 0;
   self.b_skill = whatskill;
   self.b_entertime = time;
   self.team = self.b_pants + 1;
   UpdateClient(self);
   SetNewParms();
   self.ishuman = 2;
   ClientConnect();
   PutClientInServer();
   if(f > 16)
      active_clients2 = active_clients2 | ClientBitFlag(f - 16);
   else
      active_clients1 = active_clients1 | ClientBitFlag(f);
   self = uself;
};


And in bot.qc
Code:

void(float whichteam, float whatbot, float whatskill) BotConnect =
{
   local float f;
   local string h;
   local entity uself;
   
   f = ClientNextAvailable();
   uself = self;
   if(f == -1)
   {
      bprint("Unable to connect a bot, server is full.\n");
      return;
   }
   
   // chat thing

   bot_count = bot_count + 1;
   self = GetClientEntity(f);
   if (!saved_bots)
      bot_start_topic(1);
   self.b_clientno = f;
   self.colormap = f + 1;
   if (whatbot)
      self.netname = BotName(whatbot);
   else
      self.netname = PickARandomName();


   // players can set skill all weird, so leave these checks in
   whatskill = rint(whatskill);
   if (whatskill > 3)
      whatskill = 3;
   else if (whatskill < 0)
      whatskill = 0;
   self.b_skill = whatskill;

   if (teamplay && !coop)
   {
      if (whichteam)
         self.b_pants = FindAnotherColor(uself.team - 1);
      else
         self.b_pants = uself.team - 1;
      self.b_shirt = self.b_pants;
   }

   self.team = self.b_pants + 1;
   UpdateClient(self);
   SetNewParms();
   self.ishuman = 2;
   ClientConnect();
   PutClientInServer();

   active_clients = active_clients | ClientBitFlag(f);

   // this is risky... could corrupt .way files if done wrong
   // If you're not the gambling type, comment this out

   f = ClientBitFlag(self.b_num - 1);
   current_bots = current_bots | f;

   if (self.b_num <= 8)
      saved_skills1 = (saved_skills1 & (65536 - (3 * f)) | (self.b_skill * f));
   else
   {
      f = ClientBitFlag(self.b_num - 9);
      saved_skills2 = (saved_skills2 & (65536 - (3 * f)) | (self.b_skill * f));
   }

   h = ftos(current_bots);
   cvar_set("scratch1", h);
   h = ftos(saved_skills1);
   cvar_set("scratch2", h);
   h = ftos(saved_skills2);
   cvar_set("scratch3", h);
   self = uself;

};


And of course I found putclientinserver in client.qc, but I shouldn't have to change that, right? None of this seems relevant, but I could be wrong. I've only ever done very trivial coding with QuakeC in the past.
Back to top
View user's profile Send private message
Lightning Hunter



Joined: 28 Nov 2007
Posts: 61

PostPosted: Fri Sep 25, 2009 6:59 pm    Post subject: Reply with quote

No responses? I guess it's just too much work to get new skins to work with the Frikbots + regular Quake. Confused
Back to top
View user's profile Send private message
Dr. Shadowborg
Inside3D Staff


Joined: 16 Oct 2004
Posts: 726

PostPosted: Sat Sep 26, 2009 4:27 am    Post subject: Reply with quote

Lightning Hunter wrote:
No responses? I guess it's just too much work to get new skins to work with the Frikbots + regular Quake. Confused


Make a fresh function to set the skin, and call that AFTER:

Code:

   ClientConnect();
   PutClientInServer();


in BotConnect(); (This is located inside bot.qc)
_________________
"Roboto suggests Plasma Bazooka."
Back to top
View user's profile Send private message
Lightning Hunter



Joined: 28 Nov 2007
Posts: 61

PostPosted: Sat Sep 26, 2009 7:17 pm    Post subject: Reply with quote

I found what you were talking about in bot.qc, but I'm not sure what "fresh function" I could create. Like I said, I'm absolutely noobish at QuakeC.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Inside3d Forums Forum Index -> Artificial Intelligence All times are GMT
Goto page Previous  1, 2, 3, 4, 5  Next
Page 4 of 5

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2004 phpBB Group