[Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo:fix_sound

no-reply_wiki at metalforge.org no-reply_wiki at metalforge.org
Sat May 10 03:12:11 CDT 2008


A page in your DokuWiki was added or changed. Here are the details:

Date        : 2008/05/10 03:12
User        : ryo
Edit Summary: copy doc/Developers/sound

@@ -1,5 +1,131 @@
  [[https://sourceforge.net/tracker/index.php?func=detail&aid=1082436&group_id=13833&atid=363833|On sourceforge tracker]]
+ 
+ ====== Current implementation ======
+ (section copied from server/doc/Developers/sound)
+ 
+ This document describes the sound support for Crossfire, and how the client should handle the commands it receives.
+ 
+ ===== Client-side support =====
+ Sound support is activated by issuing a 'setup sound2 x' command, with x a combination of:
+   * 1 for sounds
+   * 2 for background music
+ 
+ When sound is activated, the server will send 'sound2' commands to client.
+ 
+ The format of the command is:
+ <code>    sound2 <x><y><dir><volume><type><len of action>action<len of name>name</code>
+ 
+ with
+   * 'x' and 'y' are bytes, position of the sound relative to the player.
+   * 'dir' is a byte from 0 to 8, the direction the sound is moving to.
+   * 'volume' is a byte from 1 to 100, arbitrary intensity of the sound.
+   * 'type' is a byte, the major sound type.
+   * 'len of action' is a byte, length of action.
+   * 'action' is a string, specifying an arbitrary filename.
+   * 'len of name' is a byte, length of name.
+   * 'name' is the name of the sound emitter, that can be used to find a specific sound.
+ 
+ Using the type, action and name, the client can determine what sound to play:
+   * 'type' gives a base directory
+   * 'action' is the actual sound to play, without the extension
+   * 'name' specifies a subdirectory in type's directory, in which client should first search
+ 
+ If no sound can be found in 'name', client should search in the base directory.
+ 
+ This enables to override sounds for specific monsters or races.
+ 
+ 'type' can be:
+   * 1: living sound (moving, dying, ...)
+   * 2: spell casting sound
+   * 3: item sound (potion, weapon ...)
+   * 4: ground sound (door, trap opening, ...)
+   * 5: hit something
+   * 6: hit by something
+ 
+ Each type will have an associated subdirectory, in which will be the sound files.
+ 
+ Examples:
+ (<x> indicates a byte of value x)
+ 
+ <code>sound2 <3><2><5><40><1><8>fireball<4>wand</code>
+ Something cast (<1>) a spell from a 'wand', at position (3,2) relative to the player,
+ in direction south (<5>).
+ The spell is a 'fireball'.
+ Client will first look for a 'cast/wand/fireball' file. If not found,
+ it will look for 'cast/fireball'.
+ 
+ <code>sound2 <0><0><0><80><2><5>apply<17>potion</code>
+ player applies a potion of something.
+ Client should first look for 'item/apply/potion', then 'item/apply'.
+ 
+ 
+ ===== Conventions for 'action' field =====
+ For living sounds, the 'action' will be things like 'move', 'death', ...
+ 
+ For spell casting, 'action' will be the spell name. This enables to have spell-specific sounds.
+ 
+ For item sounds, 'action' will be things like 'apply', 'burn' and such.
+ 
+ Ground sounds will have actions like 'hole open', 'trap spring' and such.
+ 
+ For 'hit' and 'hit by' types, the 'action' will be the skill name used to attack.
+ 
+ 
+ ===== Name meaning =====
+ Name will be the base name of the emitter, so 'wand', 'mouse', 'door'.
+ 
+ For players, it will be the player's race.
+ 
+ ===== Server-side support =====
+ Objects have a 'sound_chance' field, 0 to 100, that is the probability of sending a sound.
+ 
+ The volume will be randomly determined at each sound for more variability.
+ 
+ Players receive a maximum of MAX_SOUNDS_TICK sounds per tick, to not send too many.
+ 
+ Server doesn't really care of the actions, that are arbitrary.
+ 
+ 
+ ===== Existing sounds =====
+ Please update this section as you add sounds.
+ 
+ living:
+   * push: something is pushed
+   * death: something dies
+ 
+ spell:
+   * fumble: spell failure
+   * learn: learnt a spell
+ 
+ item:
+   * explode
+   * evaporate
+   * fire: arrow or equivalent is fired
+   * poof: wand has no more charges
+   * tick: clock sound
+   * turn handle: handle is activated
+   * apply
+ 
+ ground
+   * open: door opens
+   * fall hole: something falls in a hole
+   * poison: someone drank poison
+ 
+ hit something:
+   * one per attack skill
+   * low: inflict low damage
+   * medium: inflict medium damage
+   * high: inflict high damage
+   * kill: killed something
+ 
+ hit by something:
+   * one per attack skill
+   * low: took low damage
+   * medium: took medium damage
+   * high: took high damage
+ 
+ 
  ====== Fix and revamp sound ======
  
  ==== Ideas ====
    * Fix brokenness in current sound system


IP-Address  : 82.236.87.204
Old Revision: http://wiki.metalforge.net/doku.php/dev_todo:fix_sound?rev=1190974068
New Revision: http://wiki.metalforge.net/doku.php/dev_todo:fix_sound

-- 
This mail was generated by DokuWiki at
http://wiki.metalforge.net/




More information about the crossfire-wiki mailing list