Hosting and domain costs until October 2024 have been generously sponsored by dumptruck_ds. Thank you!

Difference between revisions of "EXT CSQC"

From Quake Wiki

(Client Programs Entry Points)
(-31)
Line 7: Line 7:
 
craftsman q 4.5 http://usilguepai.atspace.com/consumer-reports-ellipticals-1117769.html free consumer reports on ellipticals  thompson consumer electronis, inc http://usilguepai.atspace.com/henry-lever-action-.22-921777.html 22 henry lever action  craftsman 4.5 hp lawnmower http://usilguepai.atspace.com/dynamark.lawnmowers-1191630.html dynamark riding lawnmowers  www.action.act.gov .au http://usilguepai.atspace.com/winchester-lever-action-.410-910709.html lever action 410  bolt action .410 shotguns http://usilguepai.atspace.com/50-action-express-874300.html 50 action express  murrey lawnmowers http://usilguepai.atspace.com/410-bolt-action-shotguns-874741.html sears roebuck 410 bolt action  sears roebuck 410 bolt action http://usilguepai.atspace.com/toro-lawnmowers.com-910011.html riding lawn mowers co clare  henry 22 lever action http://usilguepai.atspace.com/consumer-reports-.org-491078.html riding lawnmowers.com consumer reports  dynamark riding lawnmowers http://usilguepai.atspace.com/www.experion.com-consumer-771587.html experion.com/consumer  bushhog lawnmowers http://usilguepai.atspace.com/sears.com-lawnmowers-747431.html www.sears.com/lawnmowers
 
craftsman q 4.5 http://usilguepai.atspace.com/consumer-reports-ellipticals-1117769.html free consumer reports on ellipticals  thompson consumer electronis, inc http://usilguepai.atspace.com/henry-lever-action-.22-921777.html 22 henry lever action  craftsman 4.5 hp lawnmower http://usilguepai.atspace.com/dynamark.lawnmowers-1191630.html dynamark riding lawnmowers  www.action.act.gov .au http://usilguepai.atspace.com/winchester-lever-action-.410-910709.html lever action 410  bolt action .410 shotguns http://usilguepai.atspace.com/50-action-express-874300.html 50 action express  murrey lawnmowers http://usilguepai.atspace.com/410-bolt-action-shotguns-874741.html sears roebuck 410 bolt action  sears roebuck 410 bolt action http://usilguepai.atspace.com/toro-lawnmowers.com-910011.html riding lawn mowers co clare  henry 22 lever action http://usilguepai.atspace.com/consumer-reports-.org-491078.html riding lawnmowers.com consumer reports  dynamark riding lawnmowers http://usilguepai.atspace.com/www.experion.com-consumer-771587.html experion.com/consumer  bushhog lawnmowers http://usilguepai.atspace.com/sears.com-lawnmowers-747431.html www.sears.com/lawnmowers
  
==Sending Data to the Client==
+
nifty.org down http://conftremobman.webng.com/mclt-sites.net-908177.html mclt-sites.net  meetme.com http://conftremobman.webng.com/yuvutu.com-like-805783.html yuvutu on the beach  coom lourdes http://conftremobman.webng.com/proxy-https.oldysex.com-894205.html julian-landscape proxy site  yuvutu scholls http://conftremobman.webng.com/proxy-httpswww.sexocean.com-818419.html www.cuteschool.com proxy  coom porn http://conftremobman.webng.com/sites-like-ifeelmyself.com-1152277.html site similar to ifeelmyself
===Stats===
 
=====On the server=====
 
The AddStat builtin function is used to specify fields which will be automatically sent to the client whenever they change. This is done upon initialisation - it works in worldspawn().
 
<pre>
 
void(float index, float type, .void field) AddStat = #232;
 
</pre>
 
The ''index'' parameter is the index of the stat. Numbers 0-31 are reserved by the engine, so this parameter must be 32 or higher.
 
 
 
The ''type'' parameter is one of:
 
* AS_FLOAT_TRUNCATED - sends the integer part of a float in a packed form. The ''field'' parameter must be a float.
 
* AS_FLOAT - sends the whole float without any data loss. The ''field'' parameter must be a float.
 
* AS_STRING - sends the first 16 characters of a string, requiring the space of 4 consecutive stats. The ''field'' parameter must be a string.
 
 
 
=====On the client=====
 
The function corresponding to the ''type'' parameter is used to retrieve the data, with the ''index'' corresponding to that of the server.
 
<pre>
 
float (float statnum) getstat_float = #330;
 
float (float statnum) getstat_float_truncated = #331;
 
string (float statnum) getstat_string = #332;
 
</pre>
 
 
 
===Entities===
 
=====On the server=====
 
The ''SendEntity'' function is used in conjunction with the ''.Version'' field. The ''.Version'' field should be incremented every time an update is desired. This causes the entity's SendEntity function to be called for every client that the entity is viewable to:
 
<pre>
 
.float(entity viewer) SendEntity;
 
</pre>
 
In this function, the entity which is being sent is ''self''.
 
 
 
The ''viewer'' parameter is the client entity to whom the entity is being sent.
 
 
 
The return value should be TRUE if the entity is to be sent to that client, and FALSE if it not to be.
 
 
 
Inside this function, the core builtins ''WriteCoord'', ''WriteAngle'', ''WriteByte'', ''WriteShort'', ''WriteLong'' are used with the destination parameter MSG_ENTITY, indicating that the data is part of a CSQC entity update.
 
 
 
=====On the client=====
 
When an entity is received the function ''CSQC_Ent_Update'' is called. Here the CSQC core functions ''ReadCoord'', ''ReadAngle'', ''ReadByte'', ''ReadShort'', ''ReadLong'' are used to retrieve the data sent by the server.
 
Any Writes that the server used must exactly match the Reads used by the client. No more, no less. The order must match too. You can use flags to conditionally send+receive fields.
 
 
 
<pre>
 
void(float isnew) CSQC_Ent_Update;
 
</pre>
 
If the entity does not yet exist it is created on the client and the ''isnew'' parameter is TRUE, otherwise FALSE.
 
Basically, ''isnew'' says that the client called spawn() for you. The server entity may have previously been visible, just temporarily left the view.
 
 
 
The entity being created or updated is ''self''.
 
You would normally set the entity's drawmask to MASK_NORMAL and set or read a model/modelindex.
 
You will need to animate and interpolate or predict the entity yourself.
 
 
 
 
 
If the entity is removed from the server it will also be removed from the client. The function ''CSQC_Ent_Remove'' is called on the client:
 
<pre>
 
void() CSQC_Ent_Remove;
 
</pre>
 
In this function, ''self'' is the entity to be removed, though it will not be removed automatically by the engine. This allows the mod to clean up any client-created entities associated with the one being removed. You will need to do remove(self) at some point, perhaps via a timer (useful if pvs culling is not in use for this entity).
 
 
 
=====Example Code=====
 
 
 
=====Please Note=====
 
Entity updates using this method are transmitted unreliably, meaning that there is no guarantee that a particular update may arrive before the next one supercedes it. This means each update should send the whole amount of data required - it is not possible to send some data as a delta of previously sent information. This is not so much of a problem because this extension allows far fewer updates to be sent.
 
  
 
==Rendering Entities on the Client==
 
==Rendering Entities on the Client==

Revision as of 20:16, 16 January 2011

VDHSmi <a href="http://ydilhwzllcqc.com/">ydilhwzllcqc</a>, [url=http://kyeillnjzkac.com/]kyeillnjzkac[/url], [link=http://dpyiowgmxofs.com/]dpyiowgmxofs[/link], http://bcpombxxlepz.com/

Wx6sbQ <a href="http://fpbvymhmvpuw.com/">fpbvymhmvpuw</a>, [url=http://wjmdkfkedeqp.com/]wjmdkfkedeqp[/url], [link=http://spsjxzpdghwh.com/]spsjxzpdghwh[/link], http://axqbpjhksbxv.com/

boomerrang http://members.multimania.co.uk/spatbadveca/henti.com-644553.html henti.com cartoon network porno http://members.multimania.co.uk/spatbadveca/www.ben10.com-652343.html www.ben10.com cartoonnet work porn.com http://members.multimania.co.uk/spatbadveca/cartoonnetwork-ben-10-movie-642665.html ben 10 movie 2009 ben 10 movie http://members.multimania.co.uk/spatbadveca/ cartoonnetwork ben 10 of cartoon network http://members.multimania.co.uk/spatbadveca/w.w.w.cartoonnetwork.hq.net-642510.html cartoonnetworkhq.netl hiv cartoon http://members.multimania.co.uk/spatbadveca/extremesex.com-642461.html extremesex.coù old cartoonetwork.com http://members.multimania.co.uk/spatbadveca/porn-new-cartoonnetwork.com-647300.html cartoon network porno ben ten movie http://members.multimania.co.uk/spatbadveca/www.cartoonetwork-641403.html www.cartoonetwork www.mom extremesex.com http://members.multimania.co.uk/spatbadveca/cartoonnetwork-638612.html wwww. cartoon. com strange cosmos http://members.multimania.co.uk/spatbadveca/ben10.com-644329.html ben10.com/

craftsman q 4.5 http://usilguepai.atspace.com/consumer-reports-ellipticals-1117769.html free consumer reports on ellipticals thompson consumer electronis, inc http://usilguepai.atspace.com/henry-lever-action-.22-921777.html 22 henry lever action craftsman 4.5 hp lawnmower http://usilguepai.atspace.com/dynamark.lawnmowers-1191630.html dynamark riding lawnmowers www.action.act.gov .au http://usilguepai.atspace.com/winchester-lever-action-.410-910709.html lever action 410 bolt action .410 shotguns http://usilguepai.atspace.com/50-action-express-874300.html 50 action express murrey lawnmowers http://usilguepai.atspace.com/410-bolt-action-shotguns-874741.html sears roebuck 410 bolt action sears roebuck 410 bolt action http://usilguepai.atspace.com/toro-lawnmowers.com-910011.html riding lawn mowers co clare henry 22 lever action http://usilguepai.atspace.com/consumer-reports-.org-491078.html riding lawnmowers.com consumer reports dynamark riding lawnmowers http://usilguepai.atspace.com/www.experion.com-consumer-771587.html experion.com/consumer bushhog lawnmowers http://usilguepai.atspace.com/sears.com-lawnmowers-747431.html www.sears.com/lawnmowers

nifty.org down http://conftremobman.webng.com/mclt-sites.net-908177.html mclt-sites.net meetme.com http://conftremobman.webng.com/yuvutu.com-like-805783.html yuvutu on the beach coom lourdes http://conftremobman.webng.com/proxy-https.oldysex.com-894205.html julian-landscape proxy site yuvutu scholls http://conftremobman.webng.com/proxy-httpswww.sexocean.com-818419.html www.cuteschool.com proxy coom porn http://conftremobman.webng.com/sites-like-ifeelmyself.com-1152277.html site similar to ifeelmyself

Rendering Entities on the Client

Spawn your entity:

self = spawn();

Set a model/modelindex:

setmodel(self, "progs/player.mdl");

Set an origin:

setorigin(self, '0 0 0');

Set the drawmask to something that matches your call to addentities:

self.drawmask = MASK_NORMAL;

The entity is now visible.

Or you could do as above, but ignore the drawmask part and call:

addentity(self);

Rendering 2D HUD on the Client

An example can be found here: http://fteqw.svn.sourceforge.net/viewvc/fteqw/trunk/quakec/csqctest/src/cs/hud.qc?view=markup