JagDogger2525 Posted March 17, 2017 Hey - I tried to find the following but thanks to the update to the forum, all links linking here, to doomworld, are no longer available. In MAPINFO, I am trying to get the 2 hardest difficulties I have to start with a shotgun while others, just start normally. How would I go about writing that in? 0 Share this post Link to post
40oz Posted March 18, 2017 would you rather do that than just put a skill 2 and 3 shotgun in the starting room of each map? also what about making the easy skill not start with a shotgun makes it easier? 0 Share this post Link to post
JagDogger2525 Posted March 21, 2017 On 3/17/2017 at 9:30 PM, 40oz said: would you rather do that than just put a skill 2 and 3 shotgun in the starting room of each map? also what about making the easy skill not start with a shotgun makes it easier? Well, I am trying to get MAPINFO to give the shotgun to the 2 Hardest Difficulties I have and there are 3 skills that have a Hard/Nightmare Spawn Filter and I do NOT want the 3rd Hardest to have the shotgun at the start up I have 8 skills - The 2 hardest are hard, just so freaking hard with a pistol start and need every weapon one could get WHILE the 3rd hardest is hard yet progress-able with a pistol start. The easiest Skill I have set basically is able to be beaten with a pistol or shotgun at most and doesn't need any other weapon. The 2nd Hardest has an Agressiveness of 0.75 and the hardest being 0.875 The 2 Hardest, I have it where all Pinky's change into Spectres The 2nd Hardest has Monster Health and Damage Factor at 1.75 with the hardest at 2.25 The 2nd and 3rd Hardest have spawn filters of Hard with hardest being Nightmare And finally, the Hardest having an increase difficulty of enemies - Zombo becomes Shotty, Shotty becomes Chainy, Impy becomes a Cyberimp, Cacos become Cacospectres, etc. 0 Share this post Link to post
JagDogger2525 Posted March 21, 2017 Here is what I have (minus a few things) for the 3 hardest difficulties - Name2 and Name3 are the two that I would like to give the shotgun start to WITHOUT giving Name1 a shotgun start as if I would just insert the shotgun in front of the player in a map editor. skill name1 { MonsterHealth = 1.25 DamageFactor = 1.25 SpawnFilter = Hard Aggressiveness = 0.625 Name = "Name1" ReplaceActor = "DoomImpBall", "CacodemonBall" ReplaceActor = "CacodemonBall", "ArachnotronPlasma"} skill name2 { AmmoFactor = 2 FastMonsters DisableCheats MonsterHealth = 1.75 DamageFactor = 1.75 RespawnTime = 60 RespawnLimit = 2 SpawnFilter = Hard Aggressiveness = 0.75 Name = "Name2" ReplaceActor = "Demon", "Spectre" ReplaceActor = "ZombieMan", "ShotgunGuy" ReplaceActor = "DoomImpBall", "CacodemonBall" ReplaceActor = "CacodemonBall", "BaronBall" MustConfirm = "You are sacrificing a LOT - You Sure?" NoInfighting Key = "d"} skill name3 { AmmoFactor = 2 FastMonsters DisableCheats MonsterHealth = 2.25 DamageFactor = 2.25 RespawnTime = 24 SpawnFilter = Nightmare Aggressiveness = 0.875 Name = "Name3" ReplaceActor = "Demon", "Spectre" ReplaceActor = "ZombieMan", "ShotgunGuy" ReplaceActor = "ShotgunGuy", "ChaingunGuy" ReplaceActor = "DoomImp", "CyberImp" ReplaceActor = "Cacodemon", "Cacospectre" ReplaceActor = "Arachnotron", "Arachnorb" ReplaceActor = "DoomImpBall", "FatShot" ReplaceActor = "CacodemonBall", "BaronBall" MustConfirm = "There is no coming back from this place. You really want to risk your life?" NoInfighting Key = "h"} 0 Share this post Link to post
Dragonfly Posted April 4, 2017 Use ACS with an if statement which checks the Game Skill. You can enforce this check on all maps via LOADACS rather than manually adding it to all maps, too. Example: script 1 ENTER { if (GameSkill() >= SKILL_HARD) { GiveInventory("Shotgun", 1); } } Please note that the above code is NOT TESTED and may not work, but I think it should. :P ZDoom Wiki is very useful for learning this stuff. GameSkill() - https://zdoom.org/wiki/GameSkill GiveInventory() - https://zdoom.org/wiki/GiveInventory 0 Share this post Link to post
JagDogger2525 Posted April 5, 2017 (edited) Thank you SO much - the only thing that I did was add an additional ';' at the first '}' to make it: script 1 ENTER { if (GameSkill() >= SKILL_VERY_HARD) { GiveInventory("Shotgun", 1); }; } I tested this and it works - it still brings up the pistol but it adds the Shotgun to the inventory Now just to modify it into NOT adding the shotgun into the mid-2 difficulties. Edit: I have the first 4 as easy/normal, then the next 4 as normal/hard Edited April 5, 2017 by JagDogger2525 : knowledge 0 Share this post Link to post
Dragonfly Posted April 5, 2017 That semi-colon shouldn't be there after the curly brace. 0 Share this post Link to post
JagDogger2525 Posted April 5, 2017 (edited) 23 minutes ago, Dragonfly said: That semi-colon shouldn't be there after the curly brace. Oh, well, it works for me both ways . . . now - how not to include the shotgun in the mid-2 skill sets I have custom names for the difficulties after nightmare EDIT: I think I could pass it with the last 3 by having it as '>' instead of '>=' but it just wouldn't feel right Edited April 5, 2017 by JagDogger2525 0 Share this post Link to post
scifista42 Posted April 5, 2017 20 minutes ago, Dragonfly said: That semi-colon shouldn't doesn't need to be there after the curly brace. Fixed. It creates a redundant empty command, but an empty command doesn't do any harm either. 1 Share this post Link to post
Maes Posted April 5, 2017 You could also make the player spawn directly on the shotgun itself, and mark it for appearance only on the hardest difficulties. This method is also vanilla compatible, FWIW, unless I'm missing something. 0 Share this post Link to post
JagDogger2525 Posted April 5, 2017 8 minutes ago, Maes said: You could also make the player spawn directly on the shotgun itself, and mark it for appearance only on the hardest difficulties. This method is also vanilla compatible, FWIW, unless I'm missing something. That would work but I would have to script each into each map - not only that, I am trying to get it in a package that doesn't have maps and uses the base Doom and Doom 2 maps 0 Share this post Link to post
scifista42 Posted April 5, 2017 1 hour ago, JagDogger2525 said: Edit: I have the first 4 as easy/normal, then the next 4 as normal/hard In your custom skill definitions in MAPINFO, define a unique ACSReturn value (number) for each of them, then use this number in the ACS script instead of "SKILL_VERY_HARD". 0 Share this post Link to post
Gez Posted April 5, 2017 1 hour ago, scifista42 said: Fixed. It creates a redundant empty command, but an empty command doesn't do any harm either. It doesn't do any harm in that script, but imagine a variant... script 1 ENTER { if (GameSkill() >= SKILL_VERY_HARD) { GiveInventory("Shotgun", 1); }; else if (GameSkill() >= SKILL_MEDIUM) { GivenInventory("Chainsaw", 1); }; } Suddenly the script doesn't work anymore, as the compiler complains about the else. 0 Share this post Link to post
JagDogger2525 Posted April 5, 2017 53 minutes ago, scifista42 said: In your custom skill definitions in MAPINFO, define a unique ACSReturn value (number) for each of them, then use this number in the ACS script instead of "SKILL_VERY_HARD". That helped I also am trying to get that script to work on any other map without scripting it into each map (my Hell's Train Station is in E5M1 and for an update, hope to have the shotgun start show up in the other doom maps/levels/episodes) 0 Share this post Link to post
JagDogger2525 Posted April 5, 2017 (edited) I totally got the global effect: In SLADE: Create a new file (8 letters preferred) Create a new file (named LOADACS) Within LOADACS, use the file name you named Within the original file, make it ACS (ZDOOM) and use this code: #library "(name)lib" #include "zcommon.acs" script 1 ENTER { if (GameSkill() >= [Skill_Very_Easy to Skill_Very_Hard] or [number after doing ACSRETURN in MAPINFO]) { GiveInventory("Shotgun", 1); } } Compile the original file (ACC needed) Put the compilation in between A_START and A_END Save and Test 0 Share this post Link to post