More feedback needed.
Posted: Tue Nov 04, 2003 1:33 am
Well I've taken some suggestions and was wondering what people think of this once again. For those of you who don't know, it's a source modification to Zdoom (now 48). Here is the link, below is the list of some of the changes.
http://modarchive.gnlive.com/files/gadoom.zip
*Added footsteps to both players and enemies, footstep priority is low so channel overloads won't be an issue. Footsteps fade with distance and can use multiple channels at any given time. They also follow physics to some degree as well, speed determines rate and you must be standing on a surface in order to create footsteps.
*Added taunting via the command, taunt: <sound name>, it is only heard by other players and monsters within a limited distance. It can be set to any sound, but only the players who have the sound will hear it. Taunting wakes up any surrounding monsters.
*Changed: Fists so they no longer alert nearby enemy when you take a swing.
*Changed: Doors now have a greater possibility of awakening nearby enemies, but the system still needs some work.
*Added a feature that makes it so damage from weapons variate depending on distance from their target (as long as it isn't monster vs monster, or player vs monster (it'd be to powerful) ). They are more powerful when used at very close range, (all but the melee weapons). However, they do not weaken beyond their set damage rate.
*Added "Mod" file support. Used with -mod in the command line.
*Added Mod file variables for both Default Slime and Lava damage. They are set by <slimedamage> and <lavadamage>, available range is 0-500. They take effect on all lava and slime damage, but still retain damage "level", so for example if low lava damage is set to 20, hefty damage will be even more dangerous.
*Added Mod file declarers which can specify certain files to add into processing. <reqfile> will make the file required in order to play the project, if it's not found the project will not be executed (a warning will be given). <optfile> is like reqfile except only a warning will be given if the file doesn't exist and the user will be allowed to play. Multiple file declarers may be used within a mod file. Support files are "*.deh", "*.bex" and of course "*.wad". All mod files must end with <end> to signify the end of the stream.
*Added the ACS script command of getdistance(), it returns the distance in units of roughly 32, 2 would be about 64. The arguments for getdistance() consist of 2 actor tids, for example, getdistance(0, 3) would return the distance between the activator (always zero) and the actor with the tid of 3, returns 0 (NULL) when failed.
*Added both the console command and ACS script command of "drawpic", sytax for the ACS command is drawpic(string graphicname, int x, int y, int tics), where graphicname is the name of the graphic to be displayed (must be within used wad), x is the left corner and y is the right corner, tics is the amount of time the graphic should be displayed. For memory sake (in case of recursion), only 32 graphics may be displayed at any given time (this will probably change in the future). Example drawpic("interpic", 0, 0, 40). Graphics appear in their natural state and will not be stretched. This command is useful for intros, credits, etc.
*Added ACS script command checksight(), which checks to see if two actors are "in sight" of each other. The arguments for checksight() consist of 2 actor tids, for example, checksight(0, 3) would tranverse the sight path between the activator (always zero) and the actor with the tid of 3. Returns 1 if true, 0 if false, and -1 for failed.
*Added Mod File option <nostats>, when present level transitions are immediate in all modes except deathmatch. Update: Not yet ported to 48.
*Added a Mod File stream of <thinginfo> the value of which opens a stream to a thing (Actors only supported at the moment), once a stream is open thing variables may be assigned. Currently enemies/weapons can only be altered). Streams do not have to be manually closed, they are closed when a new stream is opened.
*Added Mod File stream modifiers to <thinginfo>, they include <droptype> and <dropchance> (they are enemy modifiers), droptype's value is the item that the currently opened thinginfo stream drops. It may be any object, even another enemy, which could make for some interesting mods, perhaps a guy that turns to an attacking ghost upon death. <dropchance> declares the chance of that thing being dropped, if not set it will be 100. Available range is 1-100. If "None" is assigned, the default drop item will be removed. If <harmless> is specified, that "enemy" will not shoot at players, no value is required when using <harmless>. When <fearful> is present the enemy will try to get away from the player (still firing if <harmless> is not set), no value is required.
*Added Mod File stream modifier to <thinginfo> that is for weapon fire types. <firetype> only works under a weapon stream opened with thinginfo, but when used correctly it sets the current fire type of the opened weapon. So you can now have the pistol shoot shotgun rounds etc. Example: "<thinginfo>pistol <firetype>shotgun" will cause the pistol to shoot shotgun rounds. Along with the use of dehacked you can really modify how a weapon fires.
*Added the ability to create up to 3 (I'll add more if needed) custom fire types in a Mod File. First you must open up a Custom fire type stream by using <customfiretype> the value of which is the new firetype name. Then you may set additional properties, see below:
-----------------
Name: <projectile>
What it does: Sets the projectile type
Available Values:
bullet: Normal Bullet
fireball: Imp Fire Ball
bfgball: BFG Ball
missile: Rocket
plasma: Plasma Shot
-----------------
Name: <bulletdamage>
What it does: Sets bullet damage if <projectile> is equal to bullet.
Available Values:
0-*
-----------------
Name: <projectilenum>
What it does: Number of projectile's fired
Available Values:
1-*
-----------------
Name: <firesound>
What it does: Where the firing sound is defined.
Available Values:
Must be string: Example, weapons/shotgf
-----------------
Name: <attachscript>
What it does: Attaches an ACS script to be run upon firing.
Available Values:
Must be number of script to be executed.
-----------------
Names: <attachscript_arg1>, <attachscript_arg2>, <attachscript_arg3>
What they do: Add script arguments for attached script.
Available Values:
Integers only
-----------------
Here is a full example:
<customfiretype>ultrashotgun
<projectile>bullet
<bulletdam>50
<firesound>weapons/shotgf
<projectilenum>50
<attachscript>2
<attachscript_arg1>4
Then you can use <firetype>ultrashotgun to access the new firing type. But be sure you define any custom fire types before linking them.
*Improved?: Monsters will tend to keep away from the melee range of the player when the player is using a melee weapon, however it isn't that noticable unless the player is standing in a "crowd" of enemies. Yet it does increase difficulty.
*Improved?: No longer does invisibility become immediate for players, now players slowly transition into and out of invisibility (appearing is quicker than fading out).
*Improved?: Before only a player firing (and of course sight/distance) would alert enemies of a hostile presence. Meaning if there was a group of enemies and only one saw a player and the player never fired, unless the player fired or got into sight none of the other enemies would attack even if someone was shooting right behind them, now even fellow monsters firing will cause nearby enemies to look for the hostile attacker.
*Added: New cvar "vid_adjustfps", which players with low-end computers may find useful, basically if the framerate drops below a certain value, different effects will be turned off (however they will be turned back on if the framerate once again rises).
*Added: ACS Command Sector_CeilingHit(1, tag, (int)script, (int)arg1, (int)arg2, (int)arg3), which sets a script to be activated upon a projectile hitting the ceiling of sector "tag". Overridable (only one script can be assigned), however you can dynamically link to other scripts if needed.
*Added: ACS Command Sector_FloorSound(tag, sound "pointer"), which sets the base footstep sound for sector "tag", useful for declaring different material types. Example: Sector_FloorSound(2, "footsteps/metal").
*Added: <ai_darkness> Mod File Stream modifier, which sets the level of darkness the base AI will no longer be able to see the player. Its default is 0, but when set to a value between 1 and 256 it will become active. Enemies will also notice you if you come close to them in the darkness (really close). <ai_darkness> may only take an integer.
http://modarchive.gnlive.com/files/gadoom.zip
*Added footsteps to both players and enemies, footstep priority is low so channel overloads won't be an issue. Footsteps fade with distance and can use multiple channels at any given time. They also follow physics to some degree as well, speed determines rate and you must be standing on a surface in order to create footsteps.
*Added taunting via the command, taunt: <sound name>, it is only heard by other players and monsters within a limited distance. It can be set to any sound, but only the players who have the sound will hear it. Taunting wakes up any surrounding monsters.
*Changed: Fists so they no longer alert nearby enemy when you take a swing.
*Changed: Doors now have a greater possibility of awakening nearby enemies, but the system still needs some work.
*Added a feature that makes it so damage from weapons variate depending on distance from their target (as long as it isn't monster vs monster, or player vs monster (it'd be to powerful) ). They are more powerful when used at very close range, (all but the melee weapons). However, they do not weaken beyond their set damage rate.
*Added "Mod" file support. Used with -mod in the command line.
*Added Mod file variables for both Default Slime and Lava damage. They are set by <slimedamage> and <lavadamage>, available range is 0-500. They take effect on all lava and slime damage, but still retain damage "level", so for example if low lava damage is set to 20, hefty damage will be even more dangerous.
*Added Mod file declarers which can specify certain files to add into processing. <reqfile> will make the file required in order to play the project, if it's not found the project will not be executed (a warning will be given). <optfile> is like reqfile except only a warning will be given if the file doesn't exist and the user will be allowed to play. Multiple file declarers may be used within a mod file. Support files are "*.deh", "*.bex" and of course "*.wad". All mod files must end with <end> to signify the end of the stream.
*Added the ACS script command of getdistance(), it returns the distance in units of roughly 32, 2 would be about 64. The arguments for getdistance() consist of 2 actor tids, for example, getdistance(0, 3) would return the distance between the activator (always zero) and the actor with the tid of 3, returns 0 (NULL) when failed.
*Added both the console command and ACS script command of "drawpic", sytax for the ACS command is drawpic(string graphicname, int x, int y, int tics), where graphicname is the name of the graphic to be displayed (must be within used wad), x is the left corner and y is the right corner, tics is the amount of time the graphic should be displayed. For memory sake (in case of recursion), only 32 graphics may be displayed at any given time (this will probably change in the future). Example drawpic("interpic", 0, 0, 40). Graphics appear in their natural state and will not be stretched. This command is useful for intros, credits, etc.
*Added ACS script command checksight(), which checks to see if two actors are "in sight" of each other. The arguments for checksight() consist of 2 actor tids, for example, checksight(0, 3) would tranverse the sight path between the activator (always zero) and the actor with the tid of 3. Returns 1 if true, 0 if false, and -1 for failed.
*Added Mod File option <nostats>, when present level transitions are immediate in all modes except deathmatch. Update: Not yet ported to 48.
*Added a Mod File stream of <thinginfo> the value of which opens a stream to a thing (Actors only supported at the moment), once a stream is open thing variables may be assigned. Currently enemies/weapons can only be altered). Streams do not have to be manually closed, they are closed when a new stream is opened.
*Added Mod File stream modifiers to <thinginfo>, they include <droptype> and <dropchance> (they are enemy modifiers), droptype's value is the item that the currently opened thinginfo stream drops. It may be any object, even another enemy, which could make for some interesting mods, perhaps a guy that turns to an attacking ghost upon death. <dropchance> declares the chance of that thing being dropped, if not set it will be 100. Available range is 1-100. If "None" is assigned, the default drop item will be removed. If <harmless> is specified, that "enemy" will not shoot at players, no value is required when using <harmless>. When <fearful> is present the enemy will try to get away from the player (still firing if <harmless> is not set), no value is required.
*Added Mod File stream modifier to <thinginfo> that is for weapon fire types. <firetype> only works under a weapon stream opened with thinginfo, but when used correctly it sets the current fire type of the opened weapon. So you can now have the pistol shoot shotgun rounds etc. Example: "<thinginfo>pistol <firetype>shotgun" will cause the pistol to shoot shotgun rounds. Along with the use of dehacked you can really modify how a weapon fires.
*Added the ability to create up to 3 (I'll add more if needed) custom fire types in a Mod File. First you must open up a Custom fire type stream by using <customfiretype> the value of which is the new firetype name. Then you may set additional properties, see below:
-----------------
Name: <projectile>
What it does: Sets the projectile type
Available Values:
bullet: Normal Bullet
fireball: Imp Fire Ball
bfgball: BFG Ball
missile: Rocket
plasma: Plasma Shot
-----------------
Name: <bulletdamage>
What it does: Sets bullet damage if <projectile> is equal to bullet.
Available Values:
0-*
-----------------
Name: <projectilenum>
What it does: Number of projectile's fired
Available Values:
1-*
-----------------
Name: <firesound>
What it does: Where the firing sound is defined.
Available Values:
Must be string: Example, weapons/shotgf
-----------------
Name: <attachscript>
What it does: Attaches an ACS script to be run upon firing.
Available Values:
Must be number of script to be executed.
-----------------
Names: <attachscript_arg1>, <attachscript_arg2>, <attachscript_arg3>
What they do: Add script arguments for attached script.
Available Values:
Integers only
-----------------
Here is a full example:
<customfiretype>ultrashotgun
<projectile>bullet
<bulletdam>50
<firesound>weapons/shotgf
<projectilenum>50
<attachscript>2
<attachscript_arg1>4
Then you can use <firetype>ultrashotgun to access the new firing type. But be sure you define any custom fire types before linking them.
*Improved?: Monsters will tend to keep away from the melee range of the player when the player is using a melee weapon, however it isn't that noticable unless the player is standing in a "crowd" of enemies. Yet it does increase difficulty.
*Improved?: No longer does invisibility become immediate for players, now players slowly transition into and out of invisibility (appearing is quicker than fading out).
*Improved?: Before only a player firing (and of course sight/distance) would alert enemies of a hostile presence. Meaning if there was a group of enemies and only one saw a player and the player never fired, unless the player fired or got into sight none of the other enemies would attack even if someone was shooting right behind them, now even fellow monsters firing will cause nearby enemies to look for the hostile attacker.
*Added: New cvar "vid_adjustfps", which players with low-end computers may find useful, basically if the framerate drops below a certain value, different effects will be turned off (however they will be turned back on if the framerate once again rises).
*Added: ACS Command Sector_CeilingHit(1, tag, (int)script, (int)arg1, (int)arg2, (int)arg3), which sets a script to be activated upon a projectile hitting the ceiling of sector "tag". Overridable (only one script can be assigned), however you can dynamically link to other scripts if needed.
*Added: ACS Command Sector_FloorSound(tag, sound "pointer"), which sets the base footstep sound for sector "tag", useful for declaring different material types. Example: Sector_FloorSound(2, "footsteps/metal").
*Added: <ai_darkness> Mod File Stream modifier, which sets the level of darkness the base AI will no longer be able to see the player. Its default is 0, but when set to a value between 1 and 256 it will become active. Enemies will also notice you if you come close to them in the darkness (really close). <ai_darkness> may only take an integer.