Resource:Assault: Difference between revisions
(→Map Elements: mainly spawnpoints -> spawngroups/areas and more wiki-like formatting) |
|||
Line 73: | Line 73: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
A spawnarea is a rectangle in which players are spawned randomly. It is defined by one point and two size values. | A spawnarea is a rectangle in which players are spawned randomly. It is defined by one point and two size values. '''This may change slightly soon.''' | ||
* '''posX, posY, posZ:''' position | * '''posX, posY, posZ:''' position |
Revision as of 22:27, 11 July 2007
Assault should be similiar to Unreal Tournament's Assault.
How a game should work
- Waiting for players before each new round for a certain amount of seconds or if enough players have joined
- Let players select their team
- Spawn players according to their team
- team1 has to attack and reach one or more objectives (marker), while team2 defends the objectives
- if team1 reached an objective, teamspawns may be at another location, according to the next objective
- if the final objective is reached, the first round ends and team2 has to attack (on the same map)
- the timelimit for the second round should be the time team1 needed to reach the final objective
Winning
- If team2 doesn't reach the objective in the timelimit, meaning team1 was faster, team1 wins.
- If team2 is able to reach the objective in the timelimit, meaning team2 was faster, team2 wins.
- If team1 and team2 aren't able to reach the objective within the timelimit, game ends tied.
Mapmanager
Assault should work with the mapmanager, so additional maps can easily be created. It also triggers events for map specific scripts and provides functions to trigger custom objectives (not really tested yet).
Events/Functions
onAssaultObjectiveReached ( table objectiveReached ) onAssaultStartRound ( ) onAssaultCreateObjective ( table objectiveToCreate ) -- planned bool triggerObjective( string objectiveId ) -- not tested yet!
Map Elements
(may be changed)
<assaultSettings timelimit="(int)" finishType="(string)" finishObjective="(string)" time="(time)" weather="(int)" />
- timelimit: duration of one round in seconds
- finishType: when will a team have conquered the base/reached the objective
- "objective": when a certain objective is reached
- "all": when all objectives are reached
- finishObjective: used when finishType is set to objective
- time: time hours:minutes (defaults to 12:00)
- weather: weather id (defaults to 0)
<objective name="(string)" description="(string)" successText="(string)" id="(string)" req="(string)" posX="(float)" posY="(float)" posZ="(float)" />
- name: the name of the objective, used for the objective list on the screen
- description: may be used in the help windows
- successText: shown when the objective is reached
- id: unique identification for the objective
- req: objectives required for this objective, ids seperated by comma, e.g. req="door,room1,room2"
- posX, posY, posZ: position of the objective
- type: the type of the objective
- "checkpoint": (default) assault creates a checkpoint at the location, which has to be activated by the attacker by walking into it
- "custom": assault does nothing about it except waiting for another script to trigger it (not really tested yet)
<spawngroup type="(string)" req="(string)"> - put spawnareas here - </spawngroup>
A spawngroup is a collection of one or several spawnareas. One of the spawnareas will be randomly selected on spawn. You can use this to let attacking players attack from different sides or to let some players spawn with different weapons for example.
- type:
- "attacker": a spawngroup for the attacking team
- "defender": a spawngroup for the defending team
- req: objective ids seperated by comma required for this checkpoint to work
<spawnarea posX="(float)" posY="(float)" posZ="(float)" sizeX="(int)" sizeY="(int)" />
A spawnarea is a rectangle in which players are spawned randomly. It is defined by one point and two size values. This may change slightly soon.
- posX, posY, posZ: position
- sizeX, sizeY: the maximum number that will be added to the X or Y coordinate
- skins: random skin from,to
- weapons: weapon1,ammo1;weapon2,ammo2;weapon3,ammo3..
Always the last spawngroup (from the order in the mapfile) that meets the 'req' requirements is used to spawn players.
<camera type="(string)" posX="(float)" posY="(float)" posZ="(float)" targetX="(float)" targetY="(float)" targetZ="(float)" />
- type: defines the type of the camera, when it will be used
- "spawn": after selecting the team and before spawning
- "selectTeam": select Team screen
- "finish": when the last objective is reached
- posX, posY, posZ, targetX, targetY, targetZ: position and look at
Example map
Check out /resources/as-area51/ on the ftp.