Difference between revisions of "Quake c string"

From QuakeQEWiki
Jump to navigation Jump to search
(added sub snippet)
 
Line 27: Line 27:
| }
| }
|}
|}
== Substitution ==
String substitution can be used when outputting text to the screen as in the following snippet:
<code>local float msg_type = MSG_ONE; //could be broadcast etc</code>
<code>msg_entity = self.owner;</code>
<code>WriteByte(msg_type,SVC_PRINT); // SVC_CENTERPRINT etc</code>
<code>WriteShort(msg_type, 2); // 2 is the number of following arguments</code>
<code>WriteString(msg_type, "Player name: {}\n" );</code>
<code>WriteString(msg_type, self.owner.netname ); //substitute in player name where the {} was above</code>


== Uses ==
== Uses ==
Line 47: Line 63:


== Trivia ==
== Trivia ==
The 2021 release uses curly-braces as a delimiter/replacement shorthand
Searching through the existing entities in the world of quake can be done by strings
Searching through the existing entities in the world of quake can be done by strings



Latest revision as of 04:13, 13 May 2022

Quake C strings are one of the primitive types of Quake C. They are zero-terminated sequences of characters (meaning a series of ascii letters). Vanilla quake c offers no straightforward ways to modify a string once it is created and no way to combine existing strings into a new string.

In quake-c code, double quotation marks delimit the start and end of a string.

local string myString = "The Rune of Black Magic throbs evilly in your hand";

Escape Charaters[edit | edit source]

Much like the C programming language, strings in QuakeC have escape characters:

character result
\n new line
\" "
\0 unknown
{{ {
}} }

Substitution[edit | edit source]

String substitution can be used when outputting text to the screen as in the following snippet:


local float msg_type = MSG_ONE; //could be broadcast etc

msg_entity = self.owner;

WriteByte(msg_type,SVC_PRINT); // SVC_CENTERPRINT etc

WriteShort(msg_type, 2); // 2 is the number of following arguments

WriteString(msg_type, "Player name: {}\n" );

WriteString(msg_type, self.owner.netname ); //substitute in player name where the {} was above

Uses[edit | edit source]

In Quake-C strings are used for

  • FileNames
    • precache_model ("progs/wizard.mdl");
  • text output
    • sprint (self, "not enough ammo.\n");
  • identifiers
    • if (self.classname == "monster_ogre")
  • lighting
    • lightstyle(1, "mmnmmommommnonmmonqnmmo");
  • commands
    • stuffcmd (other, "bf\n");
  • cvars
    • timelimit = cvar("timelimit") * 60;
  • find
    • le2 = find( le1, target, "lightning");

Trivia[edit | edit source]

Searching through the existing entities in the world of quake can be done by strings

Strings can be printed/output to screen with a number of different methods

The maximum length of a string is 2048 characters

see also:[edit | edit source]

ftos creates a string from a floating point number

vtos creates a string representation of a vector

WriteString - sends a string to the quake engine