Alibek Omarov
2 years ago
1 changed files with 150 additions and 0 deletions
@ -0,0 +1,150 @@ |
|||||||
|
# There are few new commands availiable in xash3d fork: |
||||||
|
|
||||||
|
## Commands: |
||||||
|
### ent_create |
||||||
|
Create entity with specified classname and key/values |
||||||
|
|
||||||
|
`ent_create <classname> <key> <value> <key> <value> ...` |
||||||
|
|
||||||
|
for example: |
||||||
|
|
||||||
|
`ent_create monster_zombie targetname zomb1` |
||||||
|
|
||||||
|
after creating entity, ent_last_xxx cvars are set to new entity and ent_last_cb called, look at ent_getvars description |
||||||
|
|
||||||
|
### ent_fire |
||||||
|
|
||||||
|
Make some actions on entity |
||||||
|
|
||||||
|
`ent_fire <pattern> <command> <args>` |
||||||
|
Availiavle commands: |
||||||
|
* Set fields (Only set entity field, does not call any functions): |
||||||
|
* health |
||||||
|
* gravity |
||||||
|
* movetype |
||||||
|
* solid |
||||||
|
* rendermode |
||||||
|
* rendercolor (vector) |
||||||
|
* renderfx |
||||||
|
* renderamt |
||||||
|
* hullmin (vector) |
||||||
|
* hullmax (vector) |
||||||
|
* Actions |
||||||
|
* rename: set entity targetname |
||||||
|
* settarget: set entity target (only targetnames) |
||||||
|
* setmodel: set entity model (does not update) |
||||||
|
* set: set key/value by server library |
||||||
|
* See game FGD to get list. |
||||||
|
* command takes two arguments |
||||||
|
* touch: touch entity by current player. |
||||||
|
* use: use entity by current player. |
||||||
|
* movehere: place entity in player fov. |
||||||
|
* drop2floor: place entity to nearest floor surface |
||||||
|
* moveup: move entity to 25 units up |
||||||
|
* moveup (value): move by y axis relatively to specified value |
||||||
|
* Flags (Set/clear specified flag bit, arg is bit number): |
||||||
|
* setflag |
||||||
|
* clearflag |
||||||
|
* setspawnflag |
||||||
|
* clearspawnflag |
||||||
|
|
||||||
|
### ent_info |
||||||
|
Print information about entity by identificator |
||||||
|
|
||||||
|
`ent_info <identificator>` |
||||||
|
|
||||||
|
### ent_getvars |
||||||
|
Set client cvars containing entity information (useful for [[Scripting]]) and call ent_last_cb |
||||||
|
|
||||||
|
`ent_getvars <identificator>` |
||||||
|
|
||||||
|
These cvars are set: |
||||||
|
``` |
||||||
|
ent_last_name |
||||||
|
ent_last_num |
||||||
|
ent_last_inst |
||||||
|
ent_last_origin |
||||||
|
ent_last_class |
||||||
|
``` |
||||||
|
|
||||||
|
### ent_list |
||||||
|
Print short information about antities, filtered by pattern |
||||||
|
|
||||||
|
`ent_list <pattern>` |
||||||
|
|
||||||
|
## Syntax description |
||||||
|
|
||||||
|
### \<identificator\> |
||||||
|
|
||||||
|
* !cross: entity under aim |
||||||
|
* Instance code: !\<number\>_\<seria\l> |
||||||
|
* set by ent_getvars command |
||||||
|
* Entity index |
||||||
|
* targetname pattern |
||||||
|
|
||||||
|
### \<pattern\> |
||||||
|
|
||||||
|
Pattern is like identificator, but may filter many entities by classname |
||||||
|
|
||||||
|
### (vector) |
||||||
|
|
||||||
|
used by ent_fire command. vector means three float values, entered without quotes |
||||||
|
|
||||||
|
### key/value |
||||||
|
|
||||||
|
All entities parameters may be set by specifiing key and value strings. |
||||||
|
|
||||||
|
Originally, this mechanizm is used in map/bsp format, but it can be used in enttools too. |
||||||
|
|
||||||
|
Keys and values are passed to server library and processed by entity keyvalue function, setting edict and entity owns parameters. |
||||||
|
|
||||||
|
If value contains spaces, it must be put in quotes: |
||||||
|
|
||||||
|
`ent_fire !cross set origin "0 0 0"` |
||||||
|
|
||||||
|
## Using with scripting |
||||||
|
|
||||||
|
ent_create and ent_getvars commands are setting cvars on client |
||||||
|
|
||||||
|
It can be used with ent_last_cb alias that is executed after setting cvars. |
||||||
|
|
||||||
|
Simple example: |
||||||
|
|
||||||
|
``` |
||||||
|
ent_create weapon_c4 |
||||||
|
alias ent_last_cb "ent_fire \$ent_last_inst use" |
||||||
|
``` |
||||||
|
|
||||||
|
Use weapon_c4 after creating it. |
||||||
|
|
||||||
|
Note that you cannot use many dfferent callbacks at the same time. |
||||||
|
|
||||||
|
You can set entity name by by pattern and create special script, contatning all callbacks. |
||||||
|
|
||||||
|
Example: |
||||||
|
|
||||||
|
example.cfg |
||||||
|
``` |
||||||
|
alias ent_last_cb exec entity_cb.cfg |
||||||
|
ent create \<class\> targetname my_ent1_$name |
||||||
|
ent_create \<class\> targetname my_ent2_$name |
||||||
|
``` |
||||||
|
entity_cb.cfg |
||||||
|
``` |
||||||
|
if $ent_last_name == my_ent1_$name |
||||||
|
:(ent1 actions) |
||||||
|
if $ent_last_name == my_ent2_$name |
||||||
|
:(ent2 actions) |
||||||
|
``` |
||||||
|
Note that scripting cannot be blocking. You cannot wait for server answer and continue. But you can use small scripts, connected with ent_last_cb command. The best usage is user interaction. You can add touch buttons to screen or call user command menu actions by callbacks. |
||||||
|
## Server side |
||||||
|
|
||||||
|
To enable entity tools on server, set sv_enttools_enable to 1 |
||||||
|
|
||||||
|
To change maximum number of entities, touched by ent_fire, change sv_enttools_maxfire to required number. |
||||||
|
|
||||||
|
To enable actions on players, set sv_enttools_players to 1. |
||||||
|
|
||||||
|
To enable entity tools for player by nickname, set sv_enttools_godplayer to nickname. Useful to temporary enable from rcon. |
||||||
|
|
||||||
|
To prevent crash on some actions, set host_mapdesign_fatal to 0 |
Loading…
Reference in new issue