[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4787: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3922)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4789: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3922)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4790: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3922)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4791: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3922)
InsideQC Forums • View topic - Quakeworld skins confusion

Quakeworld skins confusion

Discuss programming in the QuakeC language.

Moderator: InsideQC Admins

Quakeworld skins confusion

Postby OneManClan » Thu Nov 08, 2012 3:40 pm

OneManClan
 
Posts: 247
Joined: Sat Feb 28, 2009 2:38 pm

Re: Quakeworld skins confusion

Postby OneManClan » Fri Nov 09, 2012 1:55 am

A: the skins are in pak1.pak
[credit: xavior]
OneManClan
 
Posts: 247
Joined: Sat Feb 28, 2009 2:38 pm

Re: Quakeworld skins confusion

Postby Spike » Fri Nov 09, 2012 5:51 am

with fte,
flocate skins/tf_scout.pcx
that'll say which path/pak they're in, if it can be found.
.
Spike
 
Posts: 2914
Joined: Fri Nov 05, 2004 3:12 am
Location: UK

Re: Quakeworld skins confusion

Postby OneManClan » Mon Feb 11, 2013 3:31 pm

[Hijacking my own thread, but it still comes under the same the same subject so...]


Hey people.

I'm working on a new mod/feature which involves multiple player skins, including (eg) a different skin for each level of blood. It's working well, except for the situation when a player dies. Their corpse (which remains visible on the ground for a while after they have respawned) changes skin, and mimicks the skin of the (now respawned) player. This has always IIUC been a problem with Q1TF and spies, where if a spy respawns and disguises as (eg) 'soldier', his corpse (which stays on the ground for at least 15 (?) seconds), ALSO switches to 'soldier' skin - so the two are connected. What I'd like is to be able to use a new skin, specifically for player corpses, but am having trouble understanding the code.

Can someone explain to me how to change a corpses skin, as distinct from a (respawned) player's skin?

IIUC PutClientInServer() doesnt actually 'spawn' anything, just resets the players 'settings', and PlayerDie() also doesn't spawn anything, so how can there be a player AND his corpse - somewhere a corpse entity was made - which is still responding to skin changes in the living 'version'?


thanks,

OneManClan
OneManClan
 
Posts: 247
Joined: Sat Feb 28, 2009 2:38 pm

Re: Quakeworld skins confusion

Postby Spike » Mon Feb 11, 2013 5:02 pm

There are players, with their colours and their skins.
And there are entities.


Each entity has a .colormap field. This .colormap field refers to a player slot.
When the player dies, the model and colormap of the player is copied over to a new entity (part of the bodyqueue).

When drawing the entity, the client looks at the colormap field. if its set, it recolours the entity according to the colour of the player indicated, and if its player.mdl then it also gets the player's skin too.
(note: vanilla glqw does not support colouring of models other than player.mdl).
The gamecode has no real control over the skin or colours used. Any checks (which are pretty common) are basically hacks for the simple reason that it cannot control skins on entities individually, it can traditionally only ask the client to update its settings.


There are some extensions that you can use, but you're not going to like them...
DP_ENT_CUSTOMCOLORMAP:
self.colourmap = 1024 + (shirt*16) + (pants);
That line will set explicit colours on an entity. This means that colours can persist on the corpse without changing if eg the spy changes his team colours.
This extension is rather NQ centric in that it ignores player skins - this is a good thing, as it means the skin won't animate on corpses, but you will loose your class-specific skins if you don't have a copy of that skin within the player.mdl and don't do .skin stuff too to match it, etc.
FTE has supported this for a brief while, but only on non-player entities (debug_pext_replacementdeltas should enable it on player entities also). No other QuakeWorld client supports this (including DP as a QW client).


Side note: with QuakeWorld protocols, players have a hardcoded .colormap field equal to their own player slot.
.
Spike
 
Posts: 2914
Joined: Fri Nov 05, 2004 3:12 am
Location: UK

Re: Quakeworld skins confusion

Postby OneManClan » Thu Mar 14, 2013 6:40 am

Last edited by OneManClan on Thu Mar 14, 2013 12:02 pm, edited 3 times in total.
OneManClan
 
Posts: 247
Joined: Sat Feb 28, 2009 2:38 pm

Re: Quakeworld skins confusion

Postby Spike » Thu Mar 14, 2013 7:39 am

.
Spike
 
Posts: 2914
Joined: Fri Nov 05, 2004 3:12 am
Location: UK


Return to QuakeC Programming

Who is online

Users browsing this forum: No registered users and 1 guest