X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fxonotic.wiki.git;a=blobdiff_plain;f=Programming-QuakeC-stuff-in-Xonotic.md;h=8c5970c06b283cf0ad8f726be227b828a18d3b71;hp=84ac404fd43fc70d3148e96f6344e1c7a73be0fb;hb=3b611e79cedbcc996d79f4e13c34bcf627ce829d;hpb=fc6169e6838516ca634a9c1923e2bbcc570854dd diff --git a/Programming-QuakeC-stuff-in-Xonotic.md b/Programming-QuakeC-stuff-in-Xonotic.md index 84ac404..8c5970c 100644 --- a/Programming-QuakeC-stuff-in-Xonotic.md +++ b/Programming-QuakeC-stuff-in-Xonotic.md @@ -1,5 +1,27 @@ **Note:** The article is written as developer notes to ease developer tasks and save QuakeC terms here. +> ## Table of Contents +> 1. [CSQC, MENUQC, SVQC and GAMEQC blocks](#csqc-menuqc-svqc-and-gameqc-blocks) +> 2. [MUTATOR functions](#mutator-functions) +> +> 2.1. [How to use MUTATOR functions](#how-to-use-mutator-functions) +> +> 2.2. [List of MUTATOR functions](#list-of-mutator-functions) +> +> 3. [Weapon functions](#weapon-functions) +> +> 3.1. [A bit of introduction](#a-bit-of-introduction) +> +> 3.2. [List of weapon functions](#list-of-weapon-functions) +> +> 4. [HUD, Menu and Draw functions](#hud-menu-and-draw-functions) +> +> 5. [Gamemodes](#gamemodes) +> +> 5.1. [Samples](#samples) +> +> 6. [Effects](#effects) + # CSQC, MENUQC, SVQC and GAMEQC blocks Xonotic uses the ***csprogs.dat*** from the server you're playing on, as it must match the server's ***progs.dat*** code (whereas your ***menu.dat*** is always your local copy). @@ -30,12 +52,18 @@ Example: `sv_campcheck` is clearly a server cvar (**sv_*** cvars are server cvar Example: `cl_chatsound` is clearly a client cvar (**cl_*** cvars are client cvars), only can be declared inside a **`#ifdef CSQC`** block. +- **hud_*** cvars: + +Example: `hud_progressbar_alpha` is a client cvar (**hud_*** cvars belong to client cvars), only can be declared inside a **`#ifdef CSQC`** block. +
-# MUTATOR functions (from: [`qcsrc/client/mutators/events.qh`](https://timepath.github.io/scratchspace/d8/d0e/client_2mutators_2events_8qh_source.html), [`qcsrc/common/mutators/events.qh`](https://timepath.github.io/scratchspace/d4/d95/common_2mutators_2events_8qh_source.html), [`qcsrc/server/mutators/events.qh`](https://timepath.github.io/scratchspace/d6/ddd/server_2mutators_2events_8qh_source.html)) +# MUTATOR functions + +### How to use MUTATOR functions -### How to use MUTATOR functions: +You can look the following link if you're trying/testing your own mutator: [Writing your first mutator](writing-your-first-mutator) **Attention:** to use a hook, first register your mutator using `REGISTER_MUTATOR`, then create your function using `MUTATOR_HOOKFUNCTION`. @@ -284,12 +312,33 @@ Making gamemodes doesn't seem easy. There's a little explanation of what does ea ## Samples -There are good examples of the commits of the people who developed gamemodes: +There are good examples of the commits and repositories of people who developed gamemodes: + +- [**Lyberta's GunGame gametype commits**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/merge_requests/482/diffs) + +Taken from: https://forums.xonotic.org/showthread.php?tid=7314 + +You can look and test the [**Lyberta's GunGame gametype repository**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/Lyberta/GunGame) + +- [**How Survival gamemode was developed (first commit)**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/commit/8f61a40877542ac94baa74c5ed653c77b77bd855) -- [**Lyberta's GunGame gametype**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/merge_requests/482/diffs) (Taken from: https://forums.xonotic.org/showthread.php?tid=7314) +It's recommended use the final product in this [**repository**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/Mario/survival). Many changes have been influenced. -- [**How Survival gamemode was developed (first commit)**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/commit/8f61a40877542ac94baa74c5ed653c77b77bd855) (It's recommended look the final product in this [**repository**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/Mario/survival)) [**SMB modpack repository**](https://github.com/MarioSMB/modpack/tree/master/mod/common/gamemodes/survival) has added Survival gamemode and others. +# Effects + +Spawns effect particle in-game. + +The effects can be used with `Send_Effect(effect, org, vel, howmany)` function to test the effects from [**qcsrc/common/effects/all.inc**](https://timepath.github.io/scratchspace/d9/d95/effects_2all_8inc_source.html) + +**Send_Effect** function definition is inside: [**qcsrc/common/effects/effect.qh**](https://timepath.github.io/scratchspace/d5/de6/effect_8qh_source.html) + +For example, you can test the smokes, using `EFFECT_SMOKE_LARGE`: +```c +Send_Effect(EFFECT_SMOKE_LARGE, this.origin, '0 0 0', 1); +``` + +EFFECT list: [**qcsrc/common/effects/all.inc**](https://timepath.github.io/scratchspace/d9/d95/effects_2all_8inc_source.html)
\ No newline at end of file