Inside3D!
     

adding new buttons

 
Post new topic   Reply to topic    Inside3d Forums Forum Index -> QuakeC Programming
View previous topic :: View next topic  
Author Message
Zylyx_



Joined: 05 Dec 2007
Posts: 111
Location: scotland, uk

PostPosted: Thu Jan 01, 2009 6:26 pm    Post subject: adding new buttons Reply with quote

hi!

I'm implementing a chasecam into my mod, and I was wondering how I would go about doing this:

- Allowing the player to switch from 1st person to 3rd person view, at a press of a (customizable) keyboard button e.g. F1.

I know that in quakeC, when working with the jump code for example, you would use self.button2 , but I have a feeling that the button field types (button0, button1, button2) available are hard coded. Is there any way to assign custom keyboard buttons to specific player actions (without the needing to use impulses)? Should I perhaps need to make use of cvar or cvar_set?

Thnx again!

P.S. Not sure if this was asked before, but I did browse the forums.



EDIT: A few minutes later...

Ok, so I now have this code in my client.qc:

Code:
// Called when a new player connects to a server or starts a new level. Informs other players that a new player has entered the game. Needed for single player?   
void ClientConnect () =
{
   //bind the ccam button
   cvar_set("bind F1", "impulse 100"); //calls impulse 100, which activates the chasecam, everytime the player presses F1
}


I'm hoping that this will work. I have binded the key F1 to invoke the impulse command 100, which activates the chase cam. I have placed this code in the ClientConnect() function, mainly becuase I want it to be set-up everytime the client connects to the game (server). I'm gonna do some more work on it now...
_________________
....noodle...
Back to top
View user's profile Send private message MSN Messenger
mh



Joined: 12 Jan 2008
Posts: 910

PostPosted: Thu Jan 01, 2009 9:10 pm    Post subject: Reply with quote

What if the person already has F1 bound to something else? They might have their key settings just the way they like, and become a little upset...

I'd be of the opinion that keybindings belong to the player, and not to the mod developer. Wink

I'd suggest using a cvar; Quake has 8 provided (scratch1-scratch4 which are not saved over a session, saved1-saved4 which are) for just this kind of thing.
_________________
DirectQ Engine - New release 1.8.666a, 9th August 2010
MHQuake Blog (General)
Direct3D 8 Quake Engines
Back to top
View user's profile Send private message Visit poster's website
Spirit



Joined: 20 Nov 2004
Posts: 476

PostPosted: Fri Jan 02, 2009 9:52 am    Post subject: Reply with quote

Why not simply put this into an autoexec.cfg?

bind F1 "impulse 100"
_________________
Quake Maps
Back to top
View user's profile Send private message Visit poster's website
FrikaC
Site Admin


Joined: 08 Oct 2004
Posts: 947

PostPosted: Fri Jan 02, 2009 5:10 pm    Post subject: Reply with quote

cvar_set doesn't execute generic console commands like bind, it only sets cvars. To send console commands to the clients use stuffcmd. For console commands to be executed on the server use localcmd.

Note any stuffcmds or prints done in ClientConnect will usually not reach the client because at that point they haven't really connected yet. Typically how I do it is set up a timer from ClientConnect and when it runs out then I do whatever stuffcmd is required then clear the timer so it doesn't occur again.

However, as pointed out autoexec.cfg, when possible, is a much cleaner solution.

Edit: also mh's point about key bindings belonging to the player I agree with 100%, I typically use this for aliases.


Last edited by FrikaC on Tue Jan 06, 2009 9:38 pm; edited 1 time in total
Back to top
View user's profile Send private message Send e-mail
Zylyx_



Joined: 05 Dec 2007
Posts: 111
Location: scotland, uk

PostPosted: Fri Jan 02, 2009 10:53 pm    Post subject: Reply with quote

cool, thnx for the info. I'll try that and a few other things over the weekend, hopefully.
_________________
....noodle...
Back to top
View user's profile Send private message MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic    Inside3d Forums Forum Index -> QuakeC Programming All times are GMT
Page 1 of 1

 
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