Hocusdoom BETA (new version 10-15-2019) almost there

For Total Conversions and projects that don't otherwise fall under the other categories.
Forum rules
The Projects forums are ONLY for YOUR PROJECTS! If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.

Got a cool project idea but nothing else? Put it in the project ideas thread instead!

Projects for any Doom-based engine (especially 3DGE) are perfectly acceptable here too.

Please read the full rules for more details.

Re: Hocus Doom

Postby ravage » Sun Feb 01, 2015 7:51 pm

twinkieman93 wrote:Save your whoohoos, something got broken. :V In the latest devbuild of GZDoom(I just downloaded it, so it's the latest, I'm sure), I get this error.
Code: Select allExpand view
Script error, "hocus_beta05212014.pk3:d_particle.txt" line 75:
'user_angle' is already defined in 'MagicPoofSmall' or one of its
ancestors.

And the game goes kaput. :(

You're running an older version. I already fixed that. Try this: https://dl.dropboxusercontent.com/u/186 ... -01-15.pk3
User avatar
ravage
YAHOO!
 
Joined: 03 Sep 2003

Re: Hocus Doom

Postby Yholl » Sun Feb 01, 2015 10:38 pm

Been playing through this and having an absolute blast, this is a stellar example of what a TC can be. Amazing work!

Noticed a visual glitch with enemies; beyond 1024 units, they no longer animate. Fixing it should be as simple as an A_Jump(256, "NormalSee") at the end of each of the monster's NormalSee states, as with inheritance, they're actually going back to the base inherited HocusMonsterbase's frames beyond 1024 units. Hard to spot because of wildcard #### frames being awesome, but yeah.
User avatar
Yholl
I will hit you with my Decorate.
 
Joined: 17 Dec 2012
Location: Here, stupid.

Re: Hocus Doom

Postby ravage » Mon Feb 02, 2015 12:16 pm

Added that fix. Thanks!
User avatar
ravage
YAHOO!
 
Joined: 03 Sep 2003

Re: Hocus Doom

Postby ravage » Thu Feb 19, 2015 2:44 am

Image Image

Progress!
User avatar
ravage
YAHOO!
 
Joined: 03 Sep 2003

Re: Hocus Doom

Postby Ozymandias81 » Thu Feb 19, 2015 8:29 pm

ravage wrote:Image Image

Progress!

WOW, it's just Hocusastic! :lol:

PS: I've found this inside resources thread... Image
User avatar
Ozymandias81
Doom is a State of Mind... Out of Control.
 
Joined: 04 Jul 2013
Location: Mount Olympus, Mars
Github ID: Ozymandias81
Operating System: Windows Vista/7 64-bit
Graphics Processor: nVidia (Modern GZDoom)

Re: Hocus Doom

Postby Thorir » Fri Feb 20, 2015 10:57 am

Script error, "hocusdoom-02-01-15 (1).pk3:decorate" line 1350:
"NEVERTARGET" is an unknown flag

Now what? :/
User avatar
Thorir
 
Joined: 03 Jan 2013
Location: Hungary

Re: Hocus Doom

Postby Tormentor667 » Fri Feb 20, 2015 11:04 am

Do you have the latest SVN version of GZDoom?
User avatar
Tormentor667
needs more detail
 
Joined: 16 Jul 2003
Location: Germany

Re: Hocus Doom

Postby Gez » Fri Feb 20, 2015 11:27 am

Thorir wrote:Script error, "hocusdoom-02-01-15 (1).pk3:decorate" line 1350:
"NEVERTARGET" is an unknown flag

Now what? :/

Now you go here: http://devbuilds.drdteam.org/gzdoom/
Gez
 
 
 
Joined: 06 Jul 2007

Re: Hocus Doom

Postby Thorir » Fri Feb 20, 2015 12:02 pm

Thank you lads!
User avatar
Thorir
 
Joined: 03 Jan 2013
Location: Hungary

Re: Hocus Doom

Postby ravage » Mon Apr 06, 2015 12:04 pm

Happy Easter! Its time again to pick myself up from my self-imposed slump and get some more work done! Most of the maps for the first episode are finished, save for some small details and more playtesting. The biggest hurdle right now before a 'shareware' release is the high scores table. I don't have any idea how to implement that just yet, but I would really like to. I'd also like some feedback on how the levels play too.

Current playable demo for 04-06-2015
Mp3 versions of music

changelog for - 04-06-2015

  • changed icy water in the Ice levels damage from 5 to 1
  • finished map08
  • finished map09
  • added several new models & decorations for maps 13 & 14
  • finally fixed the scrolling secret gem platform in map04 (after forgetting to fix it several updates in a row)
  • nerfed the ambush to the crystal above the bridge in map06. It was too annoying.
  • made Egg Dragons shoot only one egg instead of 1-3, since they're severely powerful
  • also made the fire shots from eggs affected by gravity.
User avatar
ravage
YAHOO!
 
Joined: 03 Sep 2003

Re: Hocus Doom

Postby Gez » Mon Apr 06, 2015 12:47 pm

The way I could see the high score table working in ZDoom is with custom CVARs, defined in CVARINFO. Each entry in the high score table would have two CVARs, an int CVAR for the score and a string CVAR for the name. So for a high-score table with ten entries, that's twenty CVARs to juggle with.
Gez
 
 
 
Joined: 06 Jul 2007

Re: Hocus Doom

Postby ravage » Mon Apr 06, 2015 2:13 pm

Gez wrote:The way I could see the high score table working in ZDoom is with custom CVARs, defined in CVARINFO. Each entry in the high score table would have two CVARs, an int CVAR for the score and a string CVAR for the name. So for a high-score table with ten entries, that's twenty CVARs to juggle with.

I figured I'd have to use CVARs to store them outside of the wad, but going about how to display them is the issue. I kinda want to see if it'll be possible using MENUDEFS so that you can look at them outside of a running game.
User avatar
ravage
YAHOO!
 
Joined: 03 Sep 2003

Re: Hocus Doom

Postby fluff » Thu Apr 30, 2015 3:03 am

ravage wrote:I'd also like some feedback on how the levels play too.


I registered just to let you know that I love what's there so far.
I don't have any critical feedback but what's there is fun and looks nice. A very promising TC.

..cutting that nerco-date close, hope that's okay. :roll:
User avatar
fluff
 
Joined: 30 Apr 2015

Re: Hocus Doom

Postby AFADoomer » Thu Apr 30, 2015 9:15 pm

I have high scores in my Wolf3D TC... Essentially what is described above - values saved in a custom cvars, then rendered with a set of ACS hudmessages. They only show up in the "no lives left" end of game screen and in the titlemap loop. I streamlined this into a single, sorted cvar string for my Blake Stone TC. There are separate functions to check the current score against the scores saved, re-sort the score into the list, and write the cvar, then another set to read the cvar, split the string into an array, and parse as hudmessages. Probably more convoluted than you want, but it works:

ACS:
Code: Select allExpand view
str      highscores[11][4];

Script "W_DoHighScores" (void)
{
   If (PlayerCount() == 1)
   {
      SetMusic("LEVELA");

      PopulateHighScores();
      DrawHighScores();
   }
}

Function int CheckHighScore (void)
{
   PopulateHighScores();

   int CurrentScore = GetActorProperty(0, APROP_Score);
   int intReturn = 0;

   For (int s = 0; s <= 9; s++)
   {
      If (
         (strLen(strParam(d:CurrentScore)) > strLen(highscores[s][2])) ||
         (
            (strLen(strParam(d:CurrentScore)) == strLen(highscores[s][2])) &&
            (strCmp(strParam(d:CurrentScore), highscores[s][2]) > 0))
         )
         intReturn += 1;
   }

   return intReturn;
}

Function void SwapScores (int index1, int index2)
{
   str TempName;
   str TempLevel;
   str TempScore;
   str TempRatio;

   TempName = highscores[index1][0];
   TempLevel = highscores[index1][1];
   TempScore = highscores[index1][2];
   TempRatio = highscores[index1][3];

   highscores[index1][0] = highscores[index2][0];
   highscores[index1][1] = highscores[index2][1];
   highscores[index1][2] = highscores[index2][2];
   highscores[index1][3] = highscores[index2][3];

   highscores[index2][0] = TempName;
   highscores[index2][1] = TempLevel;
   highscores[index2][2] = TempScore;
   highscores[index2][3] = TempRatio;
}

Function void PopulateHighScores (void)
{
   SplitScoreString(GetCVarString("blake_highscore_data"), '|');

   highscores[10][0] = GetCVarString("name");
   highscores[10][1] = StrParam(d:Level);
   highscores[10][2] = StrParam(d:GetActorProperty(0, APROP_Score));
   highscores[10][3] = StrParam(d:GetRatio());
}

Function void SortHighScores (void)
{
   PopulateHighScores();

   int Swapped = true;

   While (Swapped == true)
   {
      Swapped = false;
      For (int s = 1; s <= 10; s++)
      {
         If (
            (strLen(highscores[s][2]) > strLen(highscores[s-1][2])) ||
            (
               (strLen(highscores[s][2]) == strLen(highscores[s-1][2])) &&
               (strCmp(highscores[s][2], highscores[s-1][2]) > 0))
            )
         {
            SwapScores(s, s-1);
            Swapped = true;
         }
      }
   }
}

Function void WriteHighScores (void)
{
   SetCVarString("blake_highscore_data", JoinScoreString('|'));
}

Function void DrawHighScores (void)
{
   SetHudSize (320, 200, 1);

   int NameX = 45.1;
   int LevelX = 167.4;
   int ScoreX = 234.2;
   int RatioX = 271.2;
   int LineY = 68.1;
   int LineHeight = 8.0;

   SetFont("MENUBACK");
   HudMessage(s:"A";0,46,0,160.0,100.0,0);

   SetFont("BIGFONT");
   HudMessage (s:"HIGH SCORES"; HUDMSG_COLORSTRING, 45, "BSMenuMediumGreen", 160.0, 33.1, 0);

   SetFont("TINYFONT");
   HudMessage (s:"NAME"; HUDMSG_COLORSTRING, 44, "BSMenuMediumGreen", 96.0, 65.2, 0);
   HudMessage (s:"MISSION"; HUDMSG_COLORSTRING, 43, "BSMenuMediumGreen", 168.0, 65.2, 0);
   HudMessage (s:"SCORE"; HUDMSG_COLORSTRING, 42, "BSMenuMediumGreen", 218.0, 65.2, 0);
   HudMessage (s:"MISSION\n  RATIO"; HUDMSG_COLORSTRING, 41, "BSMenuMediumGreen", 265.0, 65.2, 0);

   For (int s = 0; s <= 9; s++)
   {
      int ThisLineY = LineY + (LineHeight * s);
      HudMessage (s:highscores[s][0]; HUDMSG_COLORSTRING, 1 + (s * 4), "BSMenuBrightGreen", NameX, ThisLineY, 0);
      HudMessage (s:highscores[s][1]; HUDMSG_COLORSTRING, 2 + (s * 4), "BSMenuBrightGreen", LevelX, ThisLineY, 0);
      HudMessage (s:highscores[s][2]; HUDMSG_COLORSTRING, 3 + (s * 4), "BSMenuBrightGreen", ScoreX, ThisLineY, 0);
      HudMessage (s:highscores[s][3]; HUDMSG_COLORSTRING, 4 + (s * 4), "BSMenuBrightGreen", RatioX, ThisLineY, 0);
   }
}

global str 50:SplitData[];

Function void SplitScoreString (str InputData, str separator)
{
   StrCpy(a:SplitData, InputData);

   int CurrentLetter = 0;
   int CurrentLength = 0;
   int Index = 0;

   For (int t = 0; t <= StrLen(InputData); t++)
   {
      If (SplitData[t] == separator || t == StrLen(InputData))
      {
         highscores[Index / 4][Index % 4] = strMid(InputData, CurrentLetter, CurrentLength);
         Index++;
         CurrentLength = 0;
         CurrentLetter = t + 1;
      }
      Else
         CurrentLength++;
   }
}

Function str JoinScoreString (str separator)
{
   str Data = "";

   For (int s = 0; s <= 9; s++)
      Data = StrParam(s:Data, s:highscores[s][0], c:separator, s:highscores[s][1], c:separator, s:highscores[s][2], c:separator, s:highscores[s][3], c:separator);

   Return Data;
}


CVarInfo:
Code: Select allExpand view
user string blake_highscore_data = "JAM PRODUCTIONS INC.|1|10000|0||1|10000|0|JERRY JONES|1|10000|0|MICHAEL MAYNARD|1|10000|0|JAMES T. ROW|1|10000|0||1|10000|0||1|10000|0|TO REGISTER CALL|1|10000|0|1-800-GAME123|1|10000|0||1|10000|0";


Result:
Image
User avatar
AFADoomer
 
Joined: 15 Jul 2003

Re: Hocus Doom

Postby stavros_sk » Thu Apr 30, 2015 9:29 pm

Just played this mod and I'm loving it so far.
The graphics are spectacular and overall the game is very fun to play.
Keep up the great work!
stavros_sk
 
Joined: 30 Apr 2015

PreviousNext

Return to TCs, Full Games, and Other Projects

Who is online

Users browsing this forum: No registered users and 7 guests