[hlcoders] Perspective projection in a hud element
I'm having trouble setting up a perspective projection for drawing to a hud element. The following code fails to draw anything to the screen: (I hope the formatting doesn't get fudged beyond recognition) void CHudPerspective::Paint() { materials-MatrixMode( MATERIAL_PROJECTION ); materials-PushMatrix(); materials-LoadIdentity(); materials-PerspectiveX( 60.0, 1.333, 1.0, 100.0 ); materials-MatrixMode( MATERIAL_MODEL ); materials-PushMatrix(); materials-LoadIdentity(); IMesh* pMesh = materials-GetDynamicMesh( true, NULL, NULL, m_matWhite ); CMeshBuilder meshBuilder; static const unsigned char clr[] = { 255, 0, 0, 255 }; static const int BOX_SIZE = 10; // draw a red box meshBuilder.DrawQuad( pMesh, Vector( -BOX_SIZE, BOX_SIZE, 5.0f ).Base(), Vector( BOX_SIZE, BOX_SIZE, 5.0f ).Base(), Vector( BOX_SIZE, -BOX_SIZE, 5.0f ).Base(), Vector( -BOX_SIZE, -BOX_SIZE, 5.0f ).Base(), clr, true ); pMesh-Draw(); materials-PopMatrix(); materials-MatrixMode( MATERIAL_PROJECTION ); materials-PopMatrix(); } Replacing PerspectiveX() with Ortho() results in the box drawing normally. Has anyone had success using PerspectiveX()? I'd love to see an example, since the only code in the SDK that uses it is in the utils\hlmviewer project. Cheers, Casey ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders
[hlcoders] VMPI
Hey All I was wondering if you might be able to shed some light on the VMPI Feture of the complie tools. I have been looking at the source code, and its got nothing to go by, other then the text files, that the log complains about. Can you please email me back with the format the text files go in, what files to put in them etc? Thanks Adam http://ammahls.com __ Do you Yahoo!? Yahoo! Small Business - Try our new resources site! http://smallbusiness.yahoo.com/resources/ ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders
Re: [hlcoders] Re: FireGameEvent, kickid, ServerExecute, crash
Yep, though this is a little slow-going since it requires a player connection / dedicated server to reproduce the issue. I see two different problems since the latest Valve update. I can obtain crash dumps if anyone is particularly keen on them. Yet, since the addon produces this on any Windows dedicated server I tried, this should be unnecessary. First was a crash and this is when srcds.exe was launched in GUI mode. It's a read access violaton on 0x0040: 0040() AdminServer.dll!025012d7() kernel32.dll!7c81eb33() AdminServer.dll!024db411() vstdlib.dll!00877101() AdminServer.dll!025012c6() AdminServer.dll!024cc89d() dedicated.dll!10004bd6() dedicated.dll!10018903() dedicated.dll!10018957() For a Windows console dedicated server, the crash appears to have morphed into an infinite loop that eats all the server CPU cycles-- not sure if the latest Valve update causes that or if trying to get a debugger involved has changed the nature of the problem slightly. -Mattie - Original Message - From: Daniel Jennings [EMAIL PROTECTED] To: hlcoders@list.valvesoftware.com Sent: Saturday, March 26, 2005 9:24 PM Subject: Re: [hlcoders] Re: FireGameEvent, kickid, ServerExecute, crash Have you run it through a debugger to check the stack when it crashes? - Original Message - From: Adam amckern Mckern [EMAIL PROTECTED] To: hlcoders@list.valvesoftware.com Sent: Saturday, March 26, 2005 5:13 PM Subject: Re: [hlcoders] Re: FireGameEvent, kickid, ServerExecute, crash are your runing the lattest build of ded server, and have you thought of adding a break point? --- Mattie Casper [EMAIL PROTECTED] wrote: Events are caused within events all the time--- people use events to do all sorts of things: kick players, make people swap teams, teamkill punishment, etc. Even if server event reentrance is a problem, we need some Valve documentation saying this is forbidden or dangerous. To clarify three points: 1. I'm not interested in specifically kicking a player. I'm interested in doing X during an event where X is anything the administrator wants. So if he wants to kick a player that's his thing. I, personally, am not trying to kick anyone during an event. I'm letting people run semi-special config files during an event. 2. The crash doesn't just happen when plugin code specifically kicks someone. It can happen when a player is kicked via some administrative plugin, by the console, etc. It just needs to happen at the around the time an event calls ServerExecute. 3. The example below is the smallest example I made to reproduce the problem. I'm no newbie to coding-- I've considered all sorts of workarounds. Like scheduling things independently via GameFrame, avoiding the ServerExecute, etc. Unfortunately, these alternatives are substandard/messy and, really, I just need someone at Valve to say this is a bug, we'll fix it or ServerExecute during an event is unsupported because of X and we'll document it as such going forward. If I've missed existing documentation to this effect, I'm hoping someone on the list can point me to it. (Educated guesses stated as if they were fact won't help me, though.) Thanks, -Mattie cheeseh wrote: - I am guessing that when you kick a player another event is triggered that tells that the player was kicked/left the server. You cannot have two events fire inside each other, I am taking this from the old net message code that was from HL1, you could not have two messages start before they end. Instead of kicking the player there, try raising a flag (try storing a global boolean variable and the player id) and check it on startframe (or GameFrame () as it is now in HL2 I think) when the flag is true, kick the stored player id, then set the flag to false. In the event code replace it with setting the boolean to true and setting the playerid to the userid.- Original Message - From: Mattie Casper [EMAIL PROTECTED] To: hlcoders@list.valvesoftware.com Sent: Saturday, March 26, 2005 9:25 AM Subject: FireGameEvent, kickid, ServerExecute, crash Hello, I've found what seems, for me, to be a really annoying bug in CSS (and probably mods). The following problem happens regardless of whether you use IGameEventListener or IGameEventListener2. My Windows server crashes 98% of the time with the following code in a listener/plugin: void CEmptyServerPlugin::FireGameEvent( IGameEvent * event ) { const char * name = event-GetName(); if (FStrEq(name, player_changename)) { if(tester_cvar.GetInt()==1) { Msg(Kicking ya.\n); int userid = event-GetInt(userid); char szMessage[1024]; sprintf(szMessage, kickid %d Go away.\n, userid); engine-ServerCommand(szMessage); if (tester2_cvar.GetInt()==1) { //
RE: [hlcoders] Re: FireGameEvent, kickid, ServerExecute, crash
Looks like a null pointer is trying to be de-referenced. Have you stepped the code and verified that this is not the problem? - Alfred -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Mattie Casper Sent: Sunday, March 27, 2005 10:20 AM To: hlcoders@list.valvesoftware.com Subject: Re: [hlcoders] Re: FireGameEvent, kickid, ServerExecute, crash Yep, though this is a little slow-going since it requires a player connection / dedicated server to reproduce the issue. I see two different problems since the latest Valve update. I can obtain crash dumps if anyone is particularly keen on them. Yet, since the addon produces this on any Windows dedicated server I tried, this should be unnecessary. First was a crash and this is when srcds.exe was launched in GUI mode. It's a read access violaton on 0x0040: 0040() AdminServer.dll!025012d7() kernel32.dll!7c81eb33() AdminServer.dll!024db411() vstdlib.dll!00877101() AdminServer.dll!025012c6() AdminServer.dll!024cc89d() dedicated.dll!10004bd6() dedicated.dll!10018903() dedicated.dll!10018957() For a Windows console dedicated server, the crash appears to have morphed into an infinite loop that eats all the server CPU cycles-- not sure if the latest Valve update causes that or if trying to get a debugger involved has changed the nature of the problem slightly. -Mattie - Original Message - From: Daniel Jennings [EMAIL PROTECTED] To: hlcoders@list.valvesoftware.com Sent: Saturday, March 26, 2005 9:24 PM Subject: Re: [hlcoders] Re: FireGameEvent, kickid, ServerExecute, crash Have you run it through a debugger to check the stack when it crashes? - Original Message - From: Adam amckern Mckern [EMAIL PROTECTED] To: hlcoders@list.valvesoftware.com Sent: Saturday, March 26, 2005 5:13 PM Subject: Re: [hlcoders] Re: FireGameEvent, kickid, ServerExecute, crash are your runing the lattest build of ded server, and have you thought of adding a break point? --- Mattie Casper [EMAIL PROTECTED] wrote: Events are caused within events all the time--- people use events to do all sorts of things: kick players, make people swap teams, teamkill punishment, etc. Even if server event reentrance is a problem, we need some Valve documentation saying this is forbidden or dangerous. To clarify three points: 1. I'm not interested in specifically kicking a player. I'm interested in doing X during an event where X is anything the administrator wants. So if he wants to kick a player that's his thing. I, personally, am not trying to kick anyone during an event. I'm letting people run semi-special config files during an event. 2. The crash doesn't just happen when plugin code specifically kicks someone. It can happen when a player is kicked via some administrative plugin, by the console, etc. It just needs to happen at the around the time an event calls ServerExecute. 3. The example below is the smallest example I made to reproduce the problem. I'm no newbie to coding-- I've considered all sorts of workarounds. Like scheduling things independently via GameFrame, avoiding the ServerExecute, etc. Unfortunately, these alternatives are substandard/messy and, really, I just need someone at Valve to say this is a bug, we'll fix it or ServerExecute during an event is unsupported because of X and we'll document it as such going forward. If I've missed existing documentation to this effect, I'm hoping someone on the list can point me to it. (Educated guesses stated as if they were fact won't help me, though.) Thanks, -Mattie cheeseh wrote: - I am guessing that when you kick a player another event is triggered that tells that the player was kicked/left the server. You cannot have two events fire inside each other, I am taking this from the old net message code that was from HL1, you could not have two messages start before they end. Instead of kicking the player there, try raising a flag (try storing a global boolean variable and the player id) and check it on startframe (or GameFrame () as it is now in HL2 I think) when the flag is true, kick the stored player id, then set the flag to false. In the event code replace it with setting the boolean to true and setting the playerid to the userid.- Original Message - From: Mattie Casper [EMAIL PROTECTED] To: hlcoders@list.valvesoftware.com Sent: Saturday, March 26, 2005 9:25 AM Subject: FireGameEvent, kickid, ServerExecute, crash Hello, I've found what seems, for me, to be a really annoying bug in CSS (and probably mods). The following problem happens regardless of whether you use IGameEventListener or IGameEventListener2. My Windows server crashes 98% of the time with the following code in a listener/plugin: void CEmptyServerPlugin::FireGameEvent(
Re: [hlcoders] Re: FireGameEvent, kickid, ServerExecute, crash
Alfred Reynolds wrote: Looks like a null pointer is trying to be de-referenced. Have you stepped the code and verified that this is not the problem? If it's 0x40, it's not NULL, but it's still borked up! ;) -- Jeffrey botman Broome ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders
RE: [hlcoders] Re: FireGameEvent, kickid, ServerExecute, crash
0x40 looking like an offset into a null vtable :) - Alfred -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jeffrey botman Broome Sent: Sunday, March 27, 2005 1:41 PM To: hlcoders@list.valvesoftware.com Subject: Re: [hlcoders] Re: FireGameEvent, kickid, ServerExecute, crash Alfred Reynolds wrote: Looks like a null pointer is trying to be de-referenced. Have you stepped the code and verified that this is not the problem? If it's 0x40, it's not NULL, but it's still borked up! ;) -- Jeffrey botman Broome ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders
RE: [hlcoders] Re: FireGameEvent, kickid, ServerExecute, crash
Oh, and don't run ServerExecute(), you don't need to do that (it shouldn't crash anything, but it isn't appropriate for you to call that). - Alfred -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Alfred Reynolds Sent: Sunday, March 27, 2005 1:23 PM To: hlcoders@list.valvesoftware.com Subject: RE: [hlcoders] Re: FireGameEvent, kickid, ServerExecute, crash Looks like a null pointer is trying to be de-referenced. Have you stepped the code and verified that this is not the problem? - Alfred -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Mattie Casper Sent: Sunday, March 27, 2005 10:20 AM To: hlcoders@list.valvesoftware.com Subject: Re: [hlcoders] Re: FireGameEvent, kickid, ServerExecute, crash Yep, though this is a little slow-going since it requires a player connection / dedicated server to reproduce the issue. I see two different problems since the latest Valve update. I can obtain crash dumps if anyone is particularly keen on them. Yet, since the addon produces this on any Windows dedicated server I tried, this should be unnecessary. First was a crash and this is when srcds.exe was launched in GUI mode. It's a read access violaton on 0x0040: 0040() AdminServer.dll!025012d7() kernel32.dll!7c81eb33() AdminServer.dll!024db411() vstdlib.dll!00877101() AdminServer.dll!025012c6() AdminServer.dll!024cc89d() dedicated.dll!10004bd6() dedicated.dll!10018903() dedicated.dll!10018957() For a Windows console dedicated server, the crash appears to have morphed into an infinite loop that eats all the server CPU cycles-- not sure if the latest Valve update causes that or if trying to get a debugger involved has changed the nature of the problem slightly. -Mattie - Original Message - From: Daniel Jennings [EMAIL PROTECTED] To: hlcoders@list.valvesoftware.com Sent: Saturday, March 26, 2005 9:24 PM Subject: Re: [hlcoders] Re: FireGameEvent, kickid, ServerExecute, crash Have you run it through a debugger to check the stack when it crashes? - Original Message - From: Adam amckern Mckern [EMAIL PROTECTED] To: hlcoders@list.valvesoftware.com Sent: Saturday, March 26, 2005 5:13 PM Subject: Re: [hlcoders] Re: FireGameEvent, kickid, ServerExecute, crash are your runing the lattest build of ded server, and have you thought of adding a break point? --- Mattie Casper [EMAIL PROTECTED] wrote: Events are caused within events all the time--- people use events to do all sorts of things: kick players, make people swap teams, teamkill punishment, etc. Even if server event reentrance is a problem, we need some Valve documentation saying this is forbidden or dangerous. To clarify three points: 1. I'm not interested in specifically kicking a player. I'm interested in doing X during an event where X is anything the administrator wants. So if he wants to kick a player that's his thing. I, personally, am not trying to kick anyone during an event. I'm letting people run semi-special config files during an event. 2. The crash doesn't just happen when plugin code specifically kicks someone. It can happen when a player is kicked via some administrative plugin, by the console, etc. It just needs to happen at the around the time an event calls ServerExecute. 3. The example below is the smallest example I made to reproduce the problem. I'm no newbie to coding-- I've considered all sorts of workarounds. Like scheduling things independently via GameFrame, avoiding the ServerExecute, etc. Unfortunately, these alternatives are substandard/messy and, really, I just need someone at Valve to say this is a bug, we'll fix it or ServerExecute during an event is unsupported because of X and we'll document it as such going forward. If I've missed existing documentation to this effect, I'm hoping someone on the list can point me to it. (Educated guesses stated as if they were fact won't help me, though.) Thanks, -Mattie cheeseh wrote: - I am guessing that when you kick a player another event is triggered that tells that the player was kicked/left the server. You cannot have two events fire inside each other, I am taking this from the old net message code that was from HL1, you could not have two messages start before they end. Instead of kicking the player there, try raising a flag (try storing a global boolean variable and the player id) and check it on startframe (or GameFrame () as it is now in HL2 I think) when the flag is true, kick the stored player id, then set the flag to false. In the event code replace it with setting the boolean to true and setting the playerid to the userid.- Original Message - From: Mattie Casper [EMAIL PROTECTED] To: hlcoders@list.valvesoftware.com Sent: Saturday, March 26, 2005 9:25 AM Subject:
[hlcoders] Dedicated Servers and Missing Scripts
Hi all. When trying to set up a Dedicated Server, with + commands in it's command, I get alot of missing script files (weapons, soundscapes, even files with e3_* on them) and the server refuses to start. Although, if you start it without the + commands, and then do map it runs fine. I have no idea why it would do this, so does any one know? Also, what are the .ctx files in the scripts directory for? Thanks -Knifa ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders
Re: [hlcoders] Re: FireGameEvent, kickid, ServerExecute, crash
Alfred-- I have stepped through my code, but I haven't stepped through this particular callstack as I don't have any symbols for this. This is a Server Plugin for CSS. The code I provide below is very simple and it'd be easy for most anyone to reproduce. I can provide an entire sample project if someone is interested, but I'd be surprised if that was necessary. I actually do need to perform ServerExecute. Here's why: 1. The EventScripts plugin will execute an administrator's config file upon a particular event. (E.g. exec player_say.cfg, round_start.cfg, etc) 2. I provide some console commands that support expanding variables if those console commands are run within an event. These are event-specific variables (like what's provided in the IGameEvent, like userid, etc). 3. If those console commands aren't executed right away, the event information will be lost (or, potentially, leaked since I don't know when I need to stop expanding variables if I exit the event). For example, an administrator might provide a player_changename.cfg that performs something like this: es kickid event_var(userid). The 'es' console command will expand all strings that begin with event_var to be the value passed in with the IGameEvent. So this might expand to an immediate kickid 3 console command. (In this particular example, the server will crash much like the plugin sample I listed below.) I can't read these IGameEvent values if the event has already passed (without lots of pain and potential to break backwards compatibility for my users). Why is it inappropriate to call ServerExecute? It's used in other places within the SDK, particularly when loading config files (which is exactly what I'm doing). I'd really like to know why the call below crashes the server. Is there any additional information I can provide to help get the answer to this question? Thanks for any insight you can provide, and let me know if you have any difficulties reproducing the problem. -Mattie FYI-- Anyone interested in the minutae of EventScripts, which is growing in interest in the community: http://www.sourcemod.net/forums/viewtopic.php?t=908 - Original Message - From: Alfred Reynolds [EMAIL PROTECTED] To: hlcoders@list.valvesoftware.com Sent: Sunday, March 27, 2005 4:49 PM Subject: RE: [hlcoders] Re: FireGameEvent, kickid, ServerExecute, crash Oh, and don't run ServerExecute(), you don't need to do that (it shouldn't crash anything, but it isn't appropriate for you to call that). - Alfred -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Alfred Reynolds Sent: Sunday, March 27, 2005 1:23 PM To: hlcoders@list.valvesoftware.com Subject: RE: [hlcoders] Re: FireGameEvent, kickid, ServerExecute, crash Looks like a null pointer is trying to be de-referenced. Have you stepped the code and verified that this is not the problem? - Alfred -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Mattie Casper Sent: Sunday, March 27, 2005 10:20 AM To: hlcoders@list.valvesoftware.com Subject: Re: [hlcoders] Re: FireGameEvent, kickid, ServerExecute, crash Yep, though this is a little slow-going since it requires a player connection / dedicated server to reproduce the issue. I see two different problems since the latest Valve update. I can obtain crash dumps if anyone is particularly keen on them. Yet, since the addon produces this on any Windows dedicated server I tried, this should be unnecessary. First was a crash and this is when srcds.exe was launched in GUI mode. It's a read access violaton on 0x0040: 0040() AdminServer.dll!025012d7() kernel32.dll!7c81eb33() AdminServer.dll!024db411() vstdlib.dll!00877101() AdminServer.dll!025012c6() AdminServer.dll!024cc89d() dedicated.dll!10004bd6() dedicated.dll!10018903() dedicated.dll!10018957() For a Windows console dedicated server, the crash appears to have morphed into an infinite loop that eats all the server CPU cycles-- not sure if the latest Valve update causes that or if trying to get a debugger involved has changed the nature of the problem slightly. -Mattie - Original Message - From: Daniel Jennings [EMAIL PROTECTED] To: hlcoders@list.valvesoftware.com Sent: Saturday, March 26, 2005 9:24 PM Subject: Re: [hlcoders] Re: FireGameEvent, kickid, ServerExecute, crash Have you run it through a debugger to check the stack when it crashes? - Original Message - From: Adam amckern Mckern [EMAIL PROTECTED] To: hlcoders@list.valvesoftware.com Sent: Saturday, March 26, 2005 5:13 PM Subject: Re: [hlcoders] Re: FireGameEvent, kickid, ServerExecute, crash are your runing the lattest build of ded server, and have you thought of adding a break point? --- Mattie Casper [EMAIL PROTECTED] wrote: Events are caused within events all the time--- people use events to do all sorts of things: kick players, make people swap teams, teamkill punishment, etc. Even if server event reentrance is a problem, we need some Valve
RE: [hlcoders] RE: Random Respawn
I did a full test of going through that process (breakpoints at all references to setting the player origin), and this still didn't get me any closer to the problem. I found the absolute position of the spawn point and had it print to console the location of that player (GetAbsOrigin()), when I spawned at the wrong spot I had a key bound that would have it print out my location from the value returned at GetAbsOrigin(). Here's the interesting part, it really is spawning me at the location I told it to... but a split second after that it's setting my position to a completely different location. I can't hunt down in the code where or why it is doing this. Location of Selected Spawn: 0 by 1083654144 by 0 Location a few seconds later(no movement by the player): -2147483648 by -1067923612 by -536870912 Any suggestions on where this problem lurks, a possible fix, or further debugging techniques? My only thoughts is that it has something to do with the player interpolation code, since it is actually going to his last known position before the respawn. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of garry Sent: Tuesday, March 22, 2005 6:13 AM To: hlcoders@list.valvesoftware.com Subject: Re: [hlcoders] RE: Random Respawn I'd just scan the code for all the places where it sets a player's position - then try to work out if it could be being called when it is being called. Have you tried doing a full recompile? It usually solves these kinds of things that have no explanation. On Mon, 21 Mar 2005 23:40:14 -0600, Ben Everett [EMAIL PROTECTED] wrote: This is a multi-part message in MIME format. -- [ Picked text/plain from multipart/alternative ] Some more information on this since I spent a large majority of time working on it. It seems to have something to do w/ interpolation. I can't reproduce it reliably yet but it seems to happen when: 1) You jump and hit a model or the ceiling/roof of the static world, it teleports you to either your spawn or your position a few seconds ago. Timing this just right at round end can reproduce this. 2) There is also the problem that it will 'teleport' you to a location that is NOT a spawn point (i.e. middle of the map, outside of the map, a wall, etc) randomly. I can see nowhere on the server-side of the code that is causing this. Any tips on where to look for a solution to this? _ From: Ben Everett [mailto:[EMAIL PROTECTED] Sent: Monday, March 21, 2005 1:06 AM To: 'hlcoders@list.valvesoftware.com' Subject: Random Respawn For some reason at random intervals on random players the absolute position of the player is set to the position of the point they spawned from. I've been attempting to trace this bug for quite a few days now and haven't had any luck, any tips on where to look or a possible fix? Codito Ergo Sum. Forsaken -- ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders