Hey guys. I'm new here. I just got my hands on Xash and it's nice. I'm planning in modding using Xash on a sample game for myself as a hobby.
Now for the problem: I wanted to make the sample game third person and i know that the 'thirdperson' console command is for that. It's nice but I know I need to tweak it. Now, how do I put the thirdperson as default whenever I run my mod?
I saw one called Macky's Adventure that uses autoexec.cfg with the cvars, but when I run Macky's on xash, it doesn't go thirdperson, so you have to type the 'thirdperson' command by yourself in-game.
Again, good job to you guys for making this engine and this toolkit!
Tried that, but config.cfg always resets when using.
Цитата:
KiQ писал: You also can change that in client-side code.
About the client side code, it's kind of convoluted, I can't find the variable to change for it. I'll try to search again, but if anyone can help, I'll greatly acknowledge.
CRxTRDude ok, use userconfig.cfg . I can make tutorial about client-side thirdperson, but i only change view on key pressed. But, this code simply to change to keep thirdperson forever. But, then we need to dopilit' thirdperson view for many usability in game.
I got the thing working now, but then I need to tilt the view, are there cvar equivalent in xashxt to the 'cam_' cvars such as cam_idealdist, cam_idealpitch and cam_idealyaw?
I'm eventually implementing the camera system first before continuing the mod. I want to look at the inner working of the tools before doing anything.
CRxTRDude писал: Is there an official list of cvars to use for xashxt for reference? I'm just curious if there is such documentation for cvars for developers.
So, Xash still uses old shitty HL 3rd person code? (>_> ) Whatever.
CRxTRDude there are plenty of places where you can set CVar to desired value: during creation (CVAR_CREATE() or whatever it is in cl dll -- best way), during initialization (CHud), during execution (valve.rc, autoexec.cfg, other CFGs)... just keep in mind where the value was set, so you won't spend hours finding out later.
Цитата:
CRxTRDude писал: I'm eventually implementing the camera system
~ X ~ писал: during creation (CVAR_CREATE() or whatever it is in cl dll -- best way)
I've been looking for something like that in the source code. Something that is initialized already in the dll. I'll try to look it up after I can use my computer.
Edit: How can I put 'thirdperson' as the default cvar initialized and not 'firstperson'?
Цитата:
~ X ~ писал: Wasn't that already done by someone else?
Does it have a third person view implemented as well? I'll check it out. (I hope the source code is VC++2008 compatible )
CRxTRDude there are two approaches to client camera code: the original HL code is rudimentary, and itself conflicts with R_Calc*RefDef() code. I took the second path - integration of camera code into V_Calc*() code.
WARNING: I think this code isn't HL-compatible... I don't remember If Xash uses that old code, the task of porting this new approach back into HL requires better than average coding skills IMHO.
Цитата:
CRxTRDude писал: I've been looking for something like that in the source code.
Look into view.cpp (last lines):
C++ Source Code:
1
void V_Init(void)
2
{
3
ADD_DOMMAND("centerview", V_StartPitchDrift);
4
ADD_DOMMAND("thirdperson", CMD_ThirdPerson);
5
ADD_DOMMAND("firstperson", CMD_FirstPerson);
6
...
7
}
So the actual switch code is:
C++ Source Code:
1
void CMD_ThirdPerson(void)
2
{
3
if (CL_IsThirdPersonAllowed())
4
gHUD.m_iCameraMode = CAM_MODE_LOCKED;
5
}
6
7
void CMD_FirstPerson(void)
8
{
9
gHUD.m_iCameraMode = CAM_MODE_OFF;
10
}
It basically means, you have to set gHUD.m_iCameraMode to desired mode somewhere else beforehand. Like CHud::Init() or whatever place it is set to 0.
Something similar to this can probably be done in original HL too. Good luck
I did that ~ X ~ through the hud.cpp declaring it to CHud::Init and it works! Thanks. The problem now is incorporating camera adjustments in the dll. BTW, I've been using the xashxt code, not the Half-Life SDK, just to let you know.
I've been meaning also to ask btw, what's bad about the 3rd person code in the original hl SDK? I'm just curious.
CRxTRDude писал: I've been meaning also to ask btw, what's bad about the 3rd person code in the original hl SDK? I'm just curious.
Цитата:
~ X ~ писал: the original HL code is rudimentary, and itself conflicts with R_Calc*RefDef() code
Ok, I'll try to explain.
It means, spectator modes (chase cam, especially), overview code and some other things manipulate Point Of View through RefDef code (V_Calc*Refdef() functions), but HL "thirdperson" camera code had its own functions (I don't remember exactly since I got rid of it half a decade ago), which were used to rotate and move POV. Obviously, this duplication is yet another thing-that-valve-left-because-they-were-in-a-hurry. AFAIR, that code was much more limited than even default spectator code, and If you're going to improve something, I suggest you use something better to start from.
~ X ~ Okay then, I want to use the XHLDM 3rd person camera, where do i start to get it from the source code? (and if it's okay with you if I use it?) You can PM me instead if you want. And thanks guys for helping!