Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
JagDogger2525

Skill/Difficulty Shotgun Start

Recommended Posts

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?

Share this post


Link to post

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?

Share this post


Link to post
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.

Share this post


Link to post

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"}

 

Share this post


Link to post

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

Share this post


Link to post

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 by JagDogger2525 : knowledge

Share this post


Link to post
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 by JagDogger2525

Share this post


Link to post
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.

Share this post


Link to post

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.

Share this post


Link to post
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

Share this post


Link to post
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".

Share this post


Link to post
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.

Share this post


Link to post
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)

Share this post


Link to post

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

Share this post


Link to post

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×