adeonc@Posted: Sun Sep 13, 2009 8:50 am :
Hello everyone.
Today I spent like the whole day trying to figure out a way to get my code returning a player's clientNum.
For testing, I made the following:
Quote:
in Game_local.cpp, section below
===========
idGameLocal::SelectSpawnSpot
===========
the code:
if( gameLocal.gameType == GAME_DM || gameLocal.gameType == GAME_TDM || gameLocal.gameType == GAME_TOURNEY ) {
spawnArray = &spawnSpots;
gameLocal.Printf( "Your client number: %d \n", PROBLEM GOES HERE );
}
In theory, if I put the right function to be used with the printf, the hoster will see in console the message: "Your client number: 0" everytime that he spawns, and the message: "Your client number: 1" everytime the player 2 spawns and so forth. Right?
How can I have the player clientNum being returned in this case?
Thank you.
Sikkpin@Posted: Sun Sep 13, 2009 9:11 am : You should be able to cycle through the numbers with "gameLocal.GetNextClientNum( int current )" with your number being stored in "gameLocal.localClientNum". I don't know if these will help.
TinMan@Posted: Sun Sep 13, 2009 10:32 am : Since the player is being passed in to SelectSpawnPoint
player->entityNumber
adeonc@Posted: Sun Sep 13, 2009 5:23 pm : TinMan wrote:
Since the player is being passed in to SelectSpawnPoint
player->entityNumber
Awesome! The answer was pretty simple and solved my problem. I was going nuts.
Worked perfectly. Thank you sir. To you both for your time
![Smile :)](https://web.archive.org/web/20101225121534im_/http://www.doom3world.org/phpbb2/images/smilies/icon_smile.gif)
By the way, how did you get knowledge on the SDK? By reading the whole code or is there any good reference related to it on the internet? I've never seen a complete/good tutorial of the SDK
![Confused :?](https://web.archive.org/web/20101225121534im_/http://www.doom3world.org/phpbb2/images/smilies/icon_confused.gif)
TinMan@Posted: Mon Sep 14, 2009 6:21 am : There's some information here:
http://www.modwiki.net/wiki/Coding#Coding_tutorialsOtherwise, as the saying goes, good code is it's own documentation.
My addition would be, with Visual Studios 'Go to Declaration/Definition'
![Smile :)](https://web.archive.org/web/20101225121534im_/http://www.doom3world.org/phpbb2/images/smilies/icon_smile.gif)
So, a combination of rummaging through the code and stepping through execution with the debugger.
Naturally the larger the code base the longer it takes to figure things out.
adeonc@Posted: Mon Sep 14, 2009 3:05 pm : TinMan wrote:
There's some information here:
http://www.modwiki.net/wiki/Coding#Coding_tutorialsOtherwise, as the saying goes, good code is it's own documentation.
My addition would be, with Visual Studios 'Go to Declaration/Definition'
![Smile :)](https://web.archive.org/web/20101225121534im_/http://www.doom3world.org/phpbb2/images/smilies/icon_smile.gif)
So, a combination of rummaging through the code and stepping through execution with the debugger.
Naturally the larger the code base the longer it takes to figure things out.
Uhmm... I see.
I've been having headaches trying to figure out this SDK. Specially because I'm kinda newbie at C++. Pointers still get me badly.
Yesterday I got pretty happy when I finished some piece of code that makes a player spawn in a specific info_player_start according to its player->entityNumber by adding a "playernum" parameter in the spawnspot followed by an integer number. So the hoster spawns at player_start with playernum 1, the player 2 spawns at player_start with playernum 2 and so on. If there's no spawnpoints with "playernum" set letf, the game proceeds the default method of sorting.
Anyways, seems simple, but, after all, I spent two days trying to develop it just because I couldn't read many parts of the code at all
![Sad :(](https://web.archive.org/web/20101225121534im_/http://www.doom3world.org/phpbb2/images/smilies/icon_sad.gif)
All in all, really appreciate programming.
Thanks for reply.
RedFox@Posted: Fri Oct 09, 2009 12:20 am : I am working on a Proof-of-Concept of something and will need to to do some spawn point selecting too in the near future. I haven't had a dig at the spawning code yet, but I saw your post and thought I'd ask: could you outline the changes in the code that you made to create the spawn point selection? This would help me a lot. Anyway, thanks in advance and happy coding!
chuckdood@Posted: Fri Oct 09, 2009 9:08 pm : I found the best way to learn about pointers was to add some watches in VC++ while debugging, and watch the address of the variable you're watching. You can see it change, or stay the same for a bunch of calls to a variable. in Doom3, they use idStr all over the place in a bunch of functions, but it is referring to only one idStr variable, so by watching all of the used versions, and the original variable, I started to notice that they were the same thing, because their address was the same. something like 0x024a6bf1 for each variable I watched, as an example. Only then did I start to understand pointers.
adeonc@Posted: Sat Oct 10, 2009 1:37 pm : RedFox wrote:
I am working on a Proof-of-Concept of something and will need to to do some spawn point selecting too in the near future. I haven't had a dig at the spawning code yet, but I saw your post and thought I'd ask: could you outline the changes in the code that you made to create the spawn point selection? This would help me a lot. Anyway, thanks in advance and happy coding!
Sure, pal. I'll be posting that later for you.
adeonc@Posted: Sun Sep 13, 2009 8:50 am : Hello everyone.
Today I spent like the whole day trying to figure out a way to get my code returning a player's clientNum.
For testing, I made the following:
Quote:
in Game_local.cpp, section below
===========
idGameLocal::SelectSpawnSpot
===========
the code:
if( gameLocal.gameType == GAME_DM || gameLocal.gameType == GAME_TDM || gameLocal.gameType == GAME_TOURNEY ) {
spawnArray = &spawnSpots;
gameLocal.Printf( "Your client number: %d \n", PROBLEM GOES HERE );
}
In theory, if I put the right function to be used with the printf, the hoster will see in console the message: "Your client number: 0" everytime that he spawns, and the message: "Your client number: 1" everytime the player 2 spawns and so forth. Right?
How can I have the player clientNum being returned in this case?
Thank you.
Sikkpin@Posted: Sun Sep 13, 2009 9:11 am : You should be able to cycle through the numbers with "gameLocal.GetNextClientNum( int current )" with your number being stored in "gameLocal.localClientNum". I don't know if these will help.
TinMan@Posted: Sun Sep 13, 2009 10:32 am : Since the player is being passed in to SelectSpawnPoint
player->entityNumber
adeonc@Posted: Sun Sep 13, 2009 5:23 pm : TinMan wrote:
Since the player is being passed in to SelectSpawnPoint
player->entityNumber
Awesome! The answer was pretty simple and solved my problem. I was going nuts.
Worked perfectly. Thank you sir. To you both for your time
![Smile :)](https://web.archive.org/web/20101225115339im_/http://www.doom3world.org/phpbb2/images/smilies/icon_smile.gif)
By the way, how did you get knowledge on the SDK? By reading the whole code or is there any good reference related to it on the internet? I've never seen a complete/good tutorial of the SDK
![Confused :?](https://web.archive.org/web/20101225115339im_/http://www.doom3world.org/phpbb2/images/smilies/icon_confused.gif)
TinMan@Posted: Mon Sep 14, 2009 6:21 am : There's some information here:
http://www.modwiki.net/wiki/Coding#Coding_tutorialsOtherwise, as the saying goes, good code is it's own documentation.
My addition would be, with Visual Studios 'Go to Declaration/Definition'
![Smile :)](https://web.archive.org/web/20101225115339im_/http://www.doom3world.org/phpbb2/images/smilies/icon_smile.gif)
So, a combination of rummaging through the code and stepping through execution with the debugger.
Naturally the larger the code base the longer it takes to figure things out.
adeonc@Posted: Mon Sep 14, 2009 3:05 pm : TinMan wrote:
There's some information here:
http://www.modwiki.net/wiki/Coding#Coding_tutorialsOtherwise, as the saying goes, good code is it's own documentation.
My addition would be, with Visual Studios 'Go to Declaration/Definition'
![Smile :)](https://web.archive.org/web/20101225115339im_/http://www.doom3world.org/phpbb2/images/smilies/icon_smile.gif)
So, a combination of rummaging through the code and stepping through execution with the debugger.
Naturally the larger the code base the longer it takes to figure things out.
Uhmm... I see.
I've been having headaches trying to figure out this SDK. Specially because I'm kinda newbie at C++. Pointers still get me badly.
Yesterday I got pretty happy when I finished some piece of code that makes a player spawn in a specific info_player_start according to its player->entityNumber by adding a "playernum" parameter in the spawnspot followed by an integer number. So the hoster spawns at player_start with playernum 1, the player 2 spawns at player_start with playernum 2 and so on. If there's no spawnpoints with "playernum" set letf, the game proceeds the default method of sorting.
Anyways, seems simple, but, after all, I spent two days trying to develop it just because I couldn't read many parts of the code at all
![Sad :(](https://web.archive.org/web/20101225115339im_/http://www.doom3world.org/phpbb2/images/smilies/icon_sad.gif)
All in all, really appreciate programming.
Thanks for reply.
RedFox@Posted: Fri Oct 09, 2009 12:20 am : I am working on a Proof-of-Concept of something and will need to to do some spawn point selecting too in the near future. I haven't had a dig at the spawning code yet, but I saw your post and thought I'd ask: could you outline the changes in the code that you made to create the spawn point selection? This would help me a lot. Anyway, thanks in advance and happy coding!
chuckdood@Posted: Fri Oct 09, 2009 9:08 pm : I found the best way to learn about pointers was to add some watches in VC++ while debugging, and watch the address of the variable you're watching. You can see it change, or stay the same for a bunch of calls to a variable. in Doom3, they use idStr all over the place in a bunch of functions, but it is referring to only one idStr variable, so by watching all of the used versions, and the original variable, I started to notice that they were the same thing, because their address was the same. something like 0x024a6bf1 for each variable I watched, as an example. Only then did I start to understand pointers.
adeonc@Posted: Sat Oct 10, 2009 1:37 pm : RedFox wrote:
I am working on a Proof-of-Concept of something and will need to to do some spawn point selecting too in the near future. I haven't had a dig at the spawning code yet, but I saw your post and thought I'd ask: could you outline the changes in the code that you made to create the spawn point selection? This would help me a lot. Anyway, thanks in advance and happy coding!
Sure, pal. I'll be posting that later for you.
adeonc@Posted: Sun Sep 13, 2009 8:50 am : Hello everyone.
Today I spent like the whole day trying to figure out a way to get my code returning a player's clientNum.
For testing, I made the following:
Quote:
in Game_local.cpp, section below
===========
idGameLocal::SelectSpawnSpot
===========
the code:
if( gameLocal.gameType == GAME_DM || gameLocal.gameType == GAME_TDM || gameLocal.gameType == GAME_TOURNEY ) {
spawnArray = &spawnSpots;
gameLocal.Printf( "Your client number: %d \n", PROBLEM GOES HERE );
}
In theory, if I put the right function to be used with the printf, the hoster will see in console the message: "Your client number: 0" everytime that he spawns, and the message: "Your client number: 1" everytime the player 2 spawns and so forth. Right?
How can I have the player clientNum being returned in this case?
Thank you.
Sikkpin@Posted: Sun Sep 13, 2009 9:11 am : You should be able to cycle through the numbers with "gameLocal.GetNextClientNum( int current )" with your number being stored in "gameLocal.localClientNum". I don't know if these will help.
TinMan@Posted: Sun Sep 13, 2009 10:32 am : Since the player is being passed in to SelectSpawnPoint
player->entityNumber
adeonc@Posted: Sun Sep 13, 2009 5:23 pm : TinMan wrote:
Since the player is being passed in to SelectSpawnPoint
player->entityNumber
Awesome! The answer was pretty simple and solved my problem. I was going nuts.
Worked perfectly. Thank you sir. To you both for your time
![Smile :)](https://web.archive.org/web/20101225115339im_/http://www.doom3world.org/phpbb2/images/smilies/icon_smile.gif)
By the way, how did you get knowledge on the SDK? By reading the whole code or is there any good reference related to it on the internet? I've never seen a complete/good tutorial of the SDK
![Confused :?](https://web.archive.org/web/20101225115339im_/http://www.doom3world.org/phpbb2/images/smilies/icon_confused.gif)
TinMan@Posted: Mon Sep 14, 2009 6:21 am : There's some information here:
http://www.modwiki.net/wiki/Coding#Coding_tutorialsOtherwise, as the saying goes, good code is it's own documentation.
My addition would be, with Visual Studios 'Go to Declaration/Definition'
![Smile :)](https://web.archive.org/web/20101225115339im_/http://www.doom3world.org/phpbb2/images/smilies/icon_smile.gif)
So, a combination of rummaging through the code and stepping through execution with the debugger.
Naturally the larger the code base the longer it takes to figure things out.
adeonc@Posted: Mon Sep 14, 2009 3:05 pm : TinMan wrote:
There's some information here:
http://www.modwiki.net/wiki/Coding#Coding_tutorialsOtherwise, as the saying goes, good code is it's own documentation.
My addition would be, with Visual Studios 'Go to Declaration/Definition'
![Smile :)](https://web.archive.org/web/20101225115339im_/http://www.doom3world.org/phpbb2/images/smilies/icon_smile.gif)
So, a combination of rummaging through the code and stepping through execution with the debugger.
Naturally the larger the code base the longer it takes to figure things out.
Uhmm... I see.
I've been having headaches trying to figure out this SDK. Specially because I'm kinda newbie at C++. Pointers still get me badly.
Yesterday I got pretty happy when I finished some piece of code that makes a player spawn in a specific info_player_start according to its player->entityNumber by adding a "playernum" parameter in the spawnspot followed by an integer number. So the hoster spawns at player_start with playernum 1, the player 2 spawns at player_start with playernum 2 and so on. If there's no spawnpoints with "playernum" set letf, the game proceeds the default method of sorting.
Anyways, seems simple, but, after all, I spent two days trying to develop it just because I couldn't read many parts of the code at all
![Sad :(](https://web.archive.org/web/20101225115339im_/http://www.doom3world.org/phpbb2/images/smilies/icon_sad.gif)
All in all, really appreciate programming.
Thanks for reply.
RedFox@Posted: Fri Oct 09, 2009 12:20 am : I am working on a Proof-of-Concept of something and will need to to do some spawn point selecting too in the near future. I haven't had a dig at the spawning code yet, but I saw your post and thought I'd ask: could you outline the changes in the code that you made to create the spawn point selection? This would help me a lot. Anyway, thanks in advance and happy coding!
chuckdood@Posted: Fri Oct 09, 2009 9:08 pm : I found the best way to learn about pointers was to add some watches in VC++ while debugging, and watch the address of the variable you're watching. You can see it change, or stay the same for a bunch of calls to a variable. in Doom3, they use idStr all over the place in a bunch of functions, but it is referring to only one idStr variable, so by watching all of the used versions, and the original variable, I started to notice that they were the same thing, because their address was the same. something like 0x024a6bf1 for each variable I watched, as an example. Only then did I start to understand pointers.
adeonc@Posted: Sat Oct 10, 2009 1:37 pm : RedFox wrote:
I am working on a Proof-of-Concept of something and will need to to do some spawn point selecting too in the near future. I haven't had a dig at the spawning code yet, but I saw your post and thought I'd ask: could you outline the changes in the code that you made to create the spawn point selection? This would help me a lot. Anyway, thanks in advance and happy coding!
Sure, pal. I'll be posting that later for you.