diff --git a/README.md b/README.md index 2beb47c..abba3c2 100644 --- a/README.md +++ b/README.md @@ -4,23 +4,25 @@ reconstructed from https://www.moddb.com/downloads/iddevnet-archive, own backups # Missing files (not available on archive.org either): - Doom3/downloads/testbox_textures.zip + this one might never have been available: https://web.archive.org/web/20060720042901/http://www.iddevnet.com/doom3/downloads/testbox_textures.zip - Doom3/skins_imp.png - -- The Examples and Debug HUD for Quake4 (https://web.archive.org/web/20080720014114/http://www.iddevnet.com/quake4/DownloadableContent) - - debug_huds.zip - - Quake 4 Animation Examples: animations.zip - - Font stuff: q4font.zip (q4font.exe), marine_ANSI.zip (ANSI example font) marine_symbol.zip (Symbol example font) - - MakeAMod DMSP (Deathmatch Singleplayer): dmsp_v1.pk4 - - MakeAMod-InstaGib: q4-instagib.zip - - Example Definition Files: monster_strogg_marine_rocket.def monster_slimy_lobber.def - - ExampleMaps: programmerexamplemaps.zip map_ai_tetherexamples.zip - - Quake 4 Art Examples: Quake_4_Texture_Reference.zip Quake_4_Model_Reference.zip Quake_4_Modeling_Parts_Junkyard.zip +- Quake 4 Animation Examples: animations.zip + see https://web.archive.org/web/20101007092356/http://iddevnet.com/quake4/AnimationExamples - Lots of images for Quake4: + - BasicScriptTutorial: basicscripttutorial4.png - DefinitionFileExamples: monster_strogg_marine_rocket.jpg - - LevelEditor_BasicRoom: image01.jpg to image12.jpg (all of them) + - LevelEditor_BasicRoom: image01.jpg - image12.jpg (all of them) - Effects_Performance: fx_overdraw_bad.jpg fx_overdraw_good.jpg - ArtReference_CreatingTextures: tex_01.jpg - tex_09.jpg (all of them) - Scripting_ScriptsAndEntities: repairbot1.jpg - repairbot8.jpg (all of them) - The_Properties_of_a_segment: fx_lock.jpg - Basic_FX_file_structure: fx_check.jpg fx_sortorder.jpg + - ArtReference_CreatingCreatures: image_01.jpg - image_14.jpg (all of them, though I'm not sure they were ever really uploaded) + - Notes_about_Origins: fx_origins.jpg + - ArtReference_Q4Shaders_AnimatedStrips: shader_stripimage1.jpg shader_stripimage2.jpg + - LevelEditor_Clipping: fx_origins.jpg, airdefense1_editor.jpg, core_shaft.jpg, mp_angleclip.jpg + - Entity_MonsterBerserker: monster_berserker.jpg + - Adding_Fonts_to_use_in_Quake_4_GUIs: guied_ansi.jpg, guied_symbol.jpg + - FX_Entity_Editor: fx_enteditor.jpg + - Sounds_SoundPlacement: image1.jpg, image2.jpg diff --git a/quake4/ArtExamples.html b/quake4/ArtExamples.html index 627e626..a93527a 100644 --- a/quake4/ArtExamples.html +++ b/quake4/ArtExamples.html @@ -190,7 +190,17 @@ actionsMenuInit('More Actions:');

Quake 4 Art Examples

-

We've included several files that should illustrate how to implement art content in Quake 4.


Included in this .zip file are everything you need to see how two textures from Quake 4 were made. For more information on making textures, check out our Creating Textures page.

Quake_4_Texture_Reference.zip


To see one of the pillar models created for Quake 4, grab this file. For more information on making models, check out our Creating Models page.

Quake_4_Model_Reference.zip


This handy reference file has all of the little bits used to add details to textures, models and creatures. They really help to speed the process up and to unify the look of the game. Use these when you are Creating Models

Quake_4_Modeling_Parts_Junkyard.zip

ArtExamples (last edited 2005-11-04 22:51:00 by EricBiessman)

+

We've included several files that should illustrate how to implement art content in Quake 4.


Included in this .zip file are everything you need to see how two textures from Quake 4 were made. For more information on making textures, check out our Creating Textures page. +

Quake_4_Texture_Reference.zip +


+To see one of the pillar models created for Quake 4, grab this file. For more information on making models, check out our +Creating Models page. +

Quake_4_Model_Reference.zip +


+This handy reference file has all of the little bits used to add details to textures, models and creatures. They really help to speed the process up and to unify the look of the game. Use these when you are +Creating Models

+Quake_4_Modeling_Parts_Junkyard.zip +

ArtExamples (last edited 2005-11-04 22:51:00 by EricBiessman)

diff --git a/quake4/BasicScriptTutorial.html b/quake4/BasicScriptTutorial.html index 9611b8f..a54416e 100644 --- a/quake4/BasicScriptTutorial.html +++ b/quake4/BasicScriptTutorial.html @@ -196,7 +196,7 @@ actionsMenuInit('More Actions:');

What You’ll Need

You will need a licensed copy of Quake 4 and the SDK. You will be using both the map editor, and a script editing tool of your choice.

Script editing can be done in any text editing program. However, since the script system closely resembles C style code, an editor that uses syntax highlighting would be best. Our developers here used both Visual Studio and Ultra Edit 32, but in a pinch you can use notepad.exe.

Setting up your first script file

-

Script files can be set up two ways. One method is for quick practice and “scratchpad” style development, the other is for distribution. To get started, we’ll use the first method because it’s much simpler. Create a new text file in the directory that has the .map file you want to use the script on. For example, if you’re working out of C:\Program Files\Quake4\q4base\maps\, you’d place the file there.

Name the file [mapname].script. So if your map is called “awesome.map” you’d name the file “awesome.script”

+

Script files can be set up two ways. One method is for quick practice and “scratchpad” style development, the other is for distribution. To get started, we’ll use the first method because it’s much simpler. Create a new text file in the directory that has the .map file you want to use the script on. For example, if you’re working out of C:\Program Files\Quake4\q4base\maps\, you’d place the file there.

Name the file [mapname].script. So if your map is called “awesome.map” you’d name the file “awesome.script”

Your first script function, “Hello Stroggos”

Open up the script file you just created with your editor. Enter the following into the file and save the file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

A list of non-existing pages including a list of the pages where they are referred to:

  1. AFDeclaration: Declaration
  2. AFEditor: Declaration
  3. AddingScriptEvents: ScriptFile Events
  4. AdvancedTutorial: ScriptFiles
  5. AjudaAosIniciantes: PáginaPrincipal
  6. AjudaConteúdo: PáginaPrincipal
  7. AlphaTest: ArtReference Q4Shaders Extra Passes
  8. AlphaZeroClamp: ArtReference Q4Shaders Extra Passes
  9. AudioDeclaration: Declaration
  10. AyudaDeContenidos: PáginaDeInicio
  11. AyudaParaPrincipiantes: PáginaDeInicio
  12. BasicTutorial: ScriptFiles
  13. BuscarPágina: PáginaDeInicio
  14. CameraDefinition: Declaration
  15. ClampTable: ArtReference Q4Shaders Tables
  16. ClampTables: ArtReference Q4Shaders Tables
  17. DeveloperMode: ScriptEvent println
  18. Doom3World: Quake4SDK
  19. EMailDeclaration: Declaration
  20. EffectDeclaration: Declaration
  21. Entity AASFlood: LevelEditor Clipping
  22. Entity FuncAASObstacle: LevelEditor Clipping
  23. EntityEvents: ScriptFile Events
  24. GlowParm: ArtReference Q4Shaders Guides
  25. HelpOnInstalling/ApacheOnUnix: SystemPagesInChineseGroup
  26. HelpOnInstalling/StandaloneOnUnix: SystemPagesInChineseGroup
  27. IgnoreAlphatest: ArtReference Q4Shaders Extra Passes
  28. InfoPlayerStart: BasicScriptTutorial
  29. InverseAlpha: ArtReference Q4Shaders Extra Passes
  30. KeyValue: MakeAMod-InstaGib
  31. LevelEditor SPMapDefs: LevelEditor
  32. LevelEditor_MPMapDefs: ServerAdmin
  33. LipsyncDeclaration: Declaration
  34. LocalParm: ArtReference Q4Shaders Guides
  35. MapFile: MakeAMod-InstaGib
  36. MaskAlpha: ArtReference Q4Shaders Extra Passes
  37. MaterialDeclaration: Declaration
  38. MaterialImage: ArtReference Q4Shaders Definitions
  39. MaterialType: ArtReference Q4Shaders Definitions
  40. MaterialTypeDeclaration: Declaration
  41. ModelExportDeclaration: Declaration
  42. NavegaciónDelSitio: PáginaDeInicio
  43. PDADeclaration: Declaration
  44. PgDn: LevelEditor KeyboardShortcuts
  45. PgUp: LevelEditor KeyboardShortcuts
  46. PlaybackDeclaration: Declaration
  47. Q4Base: FXEditor Tab - Sprite
  48. ReferenciaDeSintaxis: PáginaDeInicio
  49. ScriptEvents: ScriptFiles
  50. ScriptUtility: Hub - Repairbot Ambience and the Tetranode, Scripting ScriptsAndEntities
  51. ScriptUtilityFunctions: ScriptFile Events
  52. SkinDeclaration: Declaration
  53. SnapClampTable: ArtReference Q4Shaders Tables
  54. SnapClampTables: ArtReference Q4Shaders Tables
  55. SoundDeclaration: Declaration
  56. SoundTable: ArtReference Q4Shaders Tables
  57. SysObject: ScriptFiles
  58. SystemPagesInBulgarianGroup: SystemPagesGroup
  59. SystemPagesInCroatianGroup: SystemPagesGroup
  60. SystemPagesInIndonesianGroup: SystemPagesGroup
  61. SystemPagesInKoreanGroup: SystemPagesGroup
  62. SystemPagesInLatvianGroup: SystemPagesGroup
  63. SystemPagesInRomanianGroup: SystemPagesGroup
  64. SystemPagesInTurkishGroup: SystemPagesGroup
  65. TableDeclaration: Declaration
  66. TextureParm: ArtReference Q4Shaders Guides
  67. TypeParm: ArtReference Q4Shaders Guides
  68. VariantParm: ArtReference Q4Shaders Guides
  69. VideoDeclaration: Declaration
  70. WindowDefs: Using the GUIEditor
  71. WritingNewScriptEvents: ScriptFile
  72. fs_game_base: ServerAdmin
  73. ПомощьНовичкам: Начало
  74. СправочникПоСинтаксису: Начало
  75. 中文的MoinMoin/字型樣式: SystemPagesInChineseGroup

WantedPages (last modified 2007-04-08 01:53:23)

+ +
+
+ + + + + + diff --git a/quake4/basicscripttutorial1.png b/quake4/basicscripttutorial1.png new file mode 100644 index 0000000..b58dfd4 Binary files /dev/null and b/quake4/basicscripttutorial1.png differ diff --git a/quake4/basicscripttutorial2.png b/quake4/basicscripttutorial2.png new file mode 100644 index 0000000..938a0ab Binary files /dev/null and b/quake4/basicscripttutorial2.png differ diff --git a/quake4/basicscripttutorial3.png b/quake4/basicscripttutorial3.png new file mode 100644 index 0000000..f33b51d Binary files /dev/null and b/quake4/basicscripttutorial3.png differ diff --git a/quake4/basicscripttutorial5.png b/quake4/basicscripttutorial5.png new file mode 100644 index 0000000..400766d Binary files /dev/null and b/quake4/basicscripttutorial5.png differ diff --git a/quake4/basicscripttutorial6.png b/quake4/basicscripttutorial6.png new file mode 100644 index 0000000..ce45ee8 Binary files /dev/null and b/quake4/basicscripttutorial6.png differ diff --git a/quake4/basicscripttutorial7.png b/quake4/basicscripttutorial7.png new file mode 100644 index 0000000..109e0a0 Binary files /dev/null and b/quake4/basicscripttutorial7.png differ diff --git a/quake4/debug_huds.zip b/quake4/debug_huds.zip new file mode 100644 index 0000000..bccb78c Binary files /dev/null and b/quake4/debug_huds.zip differ diff --git a/quake4/dmsp_v1.pk4 b/quake4/dmsp_v1.pk4 new file mode 100644 index 0000000..2ef047b Binary files /dev/null and b/quake4/dmsp_v1.pk4 differ diff --git a/quake4/fx_overview.jpg b/quake4/fx_overview.jpg new file mode 100644 index 0000000..51401ab Binary files /dev/null and b/quake4/fx_overview.jpg differ diff --git a/quake4/map_ai_tetherexamples.zip b/quake4/map_ai_tetherexamples.zip new file mode 100644 index 0000000..253ae2b Binary files /dev/null and b/quake4/map_ai_tetherexamples.zip differ diff --git a/quake4/marine_ANSI.zip b/quake4/marine_ANSI.zip new file mode 100644 index 0000000..c7912e8 Binary files /dev/null and b/quake4/marine_ANSI.zip differ diff --git a/quake4/marine_symbol.zip b/quake4/marine_symbol.zip new file mode 100644 index 0000000..c01ef48 Binary files /dev/null and b/quake4/marine_symbol.zip differ diff --git a/quake4/monster_slimy_lobber.def b/quake4/monster_slimy_lobber.def new file mode 100644 index 0000000..393061a --- /dev/null +++ b/quake4/monster_slimy_lobber.def @@ -0,0 +1,111 @@ +//------------------------------------------------ +// SDK Example Content +// Slimy Lobber +// +// Compare the entries in this def file to those of the monster_slimy_transfer +// (def/ai/monster_slimy_transfer.def) as an example of how to implement new +// monsters and monster attacks using only existing AI code. +// +// aweldon Nov 05 +//------------------------------------------------ + + + +model model_monster_slimy_lobber +{ + inherit model_monster_slimy_transfer // Use Slimy Transfer mesh and anims as base. + + // Lobbing anim ----------------------------------------------------------------------------------------- + anim lob models/monsters/slimy_transfer/attack01.md5anim // Use existing melee anim + { + frame 1,13,27,36,57 sound snd_flesh // Use pre-existing sounds + frame 19 ai_attack melee r_wrist // Throw at appropriate frame + frame 19 fx fx_lob r_wrist + } +} + +entityDef damage_lobber_grenade +{ + // These values are copied from the monster_gunner .def file and seem to work ok. + "inherit" "damage_monster_base" + "knockback" "0" + "damage" "60" + "push" "10000" + + "tv_scale" "0.7" + "tv_time" "4200" +} + +entityDef damage_lobber_grenade_splash +{ + // These values are copied from the monster_gunner .def file and seem to work ok. + "inherit" "damage_monster_base" + "knockback" "0" + "damage" "80" + "radius" "200" + "push" "10000" + + "tv_scale" "0.7" + "tv_time" "4200" +} + + +entityDef projectile_lobber_bit +{ + "inherit" "projectile_gunner_grenade" // inherit defaults from the Gunner grenade + + "fuse" "3" //shorten the fuse + + "detonate_on_actor" "1" // Explode when hitting directly + + "model" "models/gibs/head_pork.lwo" // New 'grenade' model (brraaaaaaainnnnns...) + "fx_fly" "effects/impact/impact_flesh.fx" // When flying, play the impact effect. Admittedly not the best effect for this purpose. + "fx_detonate" "effects/monsters/gib.fx" // Use the splatty gib effect for 'explosions' + "fx_impact" "effects/monsters/gib.fx" // Use the splatty gib effect for 'explosions' + + "def_splash_damage" "damage_lobber_grenade_splash" // Use damage def specified above + "def_damage" "damage_lobber_grenade" // Use damage def specified above + + "speed" "500" // Adjust speed + "angular_velocity" "0 -900 200" // Give a nudge up and towards center. + + "bounce" "15" // Make with the bouncing + + "contact_friction" "1" // Reduced friction for better bounce behavior + + "delay_splash" "0" // Splash damage effects are instantaneous + + "snd_ricochet" "failedtransfer_flesh" // Fleshy sound on bounce +} + +// New EntityDef +entityDef monster_slimy_lobber +{ + "inherit" "monster_slimy_transfer" // Inherit from the Slimy Transfer + + // --------------------------------- Actions ------------------------------------ + "action_meleeAttack" "1" // Leave this enabled, we'll replace it with our lobbing attack + "action_meleeAttack_anim" "lob" // 'New' anim on melee attack + + "action_meleeAttack_minrange" "80" // Minimum distance (in units) for attack. + "action_meleeAttack_maxrange" "512" // Maximum distance (in units) for attack. + "action_meleeAttack_blendFrames" "6" // Blend frames on attack + "action_meleeAttack_rate" ".5" // Rate of attack + + "action_vomitAttack" "1" // Keep the vomit attack enabled + "action_vomitAttack_minrange" "0" // Minimum distance (in units) for attack. + "action_vomitAttack_maxrange" "128" // Maximum distance (in units) for attack. + + + // --------------------------------- Body ------------------------------------ + "model" "model_monster_slimy_lobber" // Use our new ModelDef from above + + + // --------------------------------- Combat ---------------------------------- + "health" "75" // Beef these guys up a bit + "painThreshold" "40" // Can take more damage before playing pain anims + + "def_attack_melee" "projectile_lobber_bit" // Change melee attack to our new projectile + + "fx_lob" "effects/impact/impact_flesh.fx" // Effect to play when lobbing (added on frame commands above) +} diff --git a/quake4/monster_strogg_marine_rocket.def b/quake4/monster_strogg_marine_rocket.def new file mode 100644 index 0000000..fa70170 --- /dev/null +++ b/quake4/monster_strogg_marine_rocket.def @@ -0,0 +1,84 @@ +//------------------------------------------------ +// SDK Example Content +// Rocket Launcher Strogg Marine +// +// Compare the entries in this def file to those of the monster_strogg_marine_sgun +// (monster_strogg_marine.def) as an example of how to implement new monsters +// and monster attacks using only existing AI code. +// +// aweldon Nov 05 +//------------------------------------------------ + +entityDef projectile_strogg_marine_rocket +{ + // We'll just steal the standard single player rocket. + "inherit" "projectile_rocket" + + // ...but that does a little too much damage! + "def_damage" "damage_strogg_marine_rocket" + "def_splash_damage" "damage_strogg_marine_rocket_splash" +} + +entityDef damage_strogg_marine_rocket +{ + // Inherit the standard single player rocket damage + "inherit" "damage_rocketDirect" + + // Lower damage from 150 to something more reasonable. + "damage" "65" +} + +entityDef damage_strogg_marine_rocket_splash +{ + // Inherit the standard single player rocket splash damage + + // Lower damage from 150 to something more reasonable. + "damage" "45" + + // This might also get a little messy... + "gib" "1" +} + +entityDef monster_strogg_marine_rocket +{ + "inherit" "monster_strogg_marine_sgun" // Use the shotgun guy as a base + "editor_usage" "Rocket Strogg Marine" // What will display in the editor + "editor_ignore" "0" // Show the entity in the right click menu + "model" "monster_strogg_marine_sgun" // Use the mesh and anims from the shotgun guy + "skin" "skins/monsters/strogg_marine/smv_shotgun" // Leave the skin as the shotgun guy + + // --------------------------------- Defs ---------------------------------- + "minShots" "1" // Will fire at least once. + "maxShots" "3" // ...and up to 3 times in sequence. + // These refer only to the number of times the fire animation will play, and not how many physical shots are fired + // That can be modified by including multiple shots on frame commands or by upping the count per attack. + + "actionTimer_rangedAttack_rate" ".5" // Was .25. Time between attacks + + "action_rangedAttack" "1" + "action_rangedAttack_anim" "shotgun_range_attack" // Anim to play when attacking + "action_rangedAttack_minRange" "128" // Minimum attack range in units. Was 0 on shotgun. + "action_rangedAttack_maxRange" "640" // Maximum attack range in units. Was 400 on shotgun. + "action_rangedAttack_failrate" "0" // Attack will never fail. + + "action_rollAttack_rate" "2" // Was .25. Time between attacks. + + "action_strafe" "0" // Disable Strafing + + "def_attack_base" "projectile_strogg_marine_rocket" // Use our new projectile for base attacks. + "attack_base_count" "1" // One projectile + "attack_base_spread" "0" // no spread + "attack_base_hitscan" "0" // Does not hit instantly + "attack_base_accuracy" "1" // increased accuracy + + "def_attack_jointDir" "projectile_strogg_marine_rocket" // Use our new projectile for joint attacks. + "attack_jointDir_locktojoint" "1" // Lock to joint direction + "attack_jointDir_count" "1" // One projectile + "attack_jointDir_spread" "0" // no spread + "attack_jointDir_hitscan" "0" // does not hit instantly + "attack_jointDir_accuracy" "0" // no change + + // --------------------------------- Effects --------------------------------- + "fx_blaster_muzzleflash" "effects\weapons\rocket\muzzleflash_world.fx" // Rocket launcher muzzle flash + "snd_weapon_fire" "weapon_rocket_fire" // Rocket launcher sound shader +} \ No newline at end of file diff --git a/quake4/programmerexamplemaps.zip b/quake4/programmerexamplemaps.zip new file mode 100644 index 0000000..2028c33 Binary files /dev/null and b/quake4/programmerexamplemaps.zip differ diff --git a/quake4/q4-instagib.zip b/quake4/q4-instagib.zip new file mode 100644 index 0000000..32426ee Binary files /dev/null and b/quake4/q4-instagib.zip differ diff --git a/quake4/q4font.zip b/quake4/q4font.zip new file mode 100644 index 0000000..0f42cee Binary files /dev/null and b/quake4/q4font.zip differ diff --git a/quake4/repairbot1.jpg b/quake4/repairbot1.jpg new file mode 100644 index 0000000..9870d59 Binary files /dev/null and b/quake4/repairbot1.jpg differ diff --git a/quake4/repairbot2.jpg b/quake4/repairbot2.jpg new file mode 100644 index 0000000..2eeed76 Binary files /dev/null and b/quake4/repairbot2.jpg differ diff --git a/quake4/repairbot3.jpg b/quake4/repairbot3.jpg new file mode 100644 index 0000000..c2152d5 Binary files /dev/null and b/quake4/repairbot3.jpg differ diff --git a/quake4/repairbot4.jpg b/quake4/repairbot4.jpg new file mode 100644 index 0000000..eddc21f Binary files /dev/null and b/quake4/repairbot4.jpg differ diff --git a/quake4/repairbot5.jpg b/quake4/repairbot5.jpg new file mode 100644 index 0000000..e6440a4 Binary files /dev/null and b/quake4/repairbot5.jpg differ diff --git a/quake4/repairbot6.jpg b/quake4/repairbot6.jpg new file mode 100644 index 0000000..3f0cf3b Binary files /dev/null and b/quake4/repairbot6.jpg differ diff --git a/quake4/repairbot7.jpg b/quake4/repairbot7.jpg new file mode 100644 index 0000000..f14150f Binary files /dev/null and b/quake4/repairbot7.jpg differ diff --git a/quake4/repairbot8.jpg b/quake4/repairbot8.jpg new file mode 100644 index 0000000..c100621 Binary files /dev/null and b/quake4/repairbot8.jpg differ diff --git a/quake4/sdk_batchsize.jpg b/quake4/sdk_batchsize.jpg new file mode 100644 index 0000000..06b168b Binary files /dev/null and b/quake4/sdk_batchsize.jpg differ diff --git a/quake4/sdk_debughud.jpg b/quake4/sdk_debughud.jpg new file mode 100644 index 0000000..a152d1b Binary files /dev/null and b/quake4/sdk_debughud.jpg differ diff --git a/quake4/sdk_lightcount.jpg b/quake4/sdk_lightcount.jpg new file mode 100644 index 0000000..0332ee4 Binary files /dev/null and b/quake4/sdk_lightcount.jpg differ