• Please note: In an effort to ensure that all of our users feel welcome on our forums, we’ve updated our forum rules. You can review the updated rules here: http://forums.wolflair.com/showthread.php?t=5528.

    If a fellow Community member is not following the forum rules, please report the post by clicking the Report button (the red yield sign on the left) located on every post. This will notify the moderators directly. If you have any questions about these new rules, please contact support@wolflair.com.

    - The Lone Wolf Development Team

Savage Suzerain

SeeleyOne

Well-known member
Has anyone already started to make a data file for Suzerain? Does anyone know how I could change the XP table to include a new rank at 120 xp? As a side note, I have also considered changing the xp table to 25 point intervals, instead of 20, so each Rank has one additional Advance.
 
Hmmm... I'd have to take a look. It would take creating a duplicate game system, and them modifying some base files. It's two different issues. Creating an extra Rank is a different animal than changing the number of points per Rank.
 
I'm also looking at this (well, adding the Demi-God rank, not messing with the XP-to-rank ratio), and would appreciate any advice! It looks like the calculations for this are in the procedures.dat file in the Savage Worlds standard data set (copied below for reference). I'd like to use a Setting Adjust in a .user file if possible, rather than modifying the SW stuff, so it can be turned on and off. This is a bit deeper into HL editing than I've been before, but my initial thought is if there's some way to do an "if Savage Suzerain setting (setSavSuz) is selected, then modify the RankName and RankCalc procedures" script or some such that would be great.


The relevant code from what I've been able to tell thus far (haven't tried editing it directly in the SW data set):

Code:
  <!-- Procedure RankName
        Map the character rank as a value to the corresponding string for display.
        The inbound rank is specified via the "rankvalue" variable, while the
        generated string is returned in the "ranktext" variable.

        Inbound parameter:  rankvalue
        Outbound parameter: ranktext
  -->
  <procedure id="RankName" scripttype="none"><![CDATA[
    ~declare variables that are used to communicate with our caller
    var rankvalue as number
    var ranktext as string

    ~map the value to the corresponding string
    if (rankvalue = 0) then
      ranktext = "Novice"
    elseif (rankvalue = 1) then
      ranktext = "Seasoned"
    elseif (rankvalue = 2) then
      ranktext = "Veteran"
    elseif (rankvalue = 3) then
      ranktext = "Heroic"
    elseif (rankvalue = 4) then
      ranktext = "Legendary"
    else
      ranktext = "Invalid Value: " & rankvalue
      endif
    ]]></procedure>


  <!-- Procedure RankCalc
        Determine the hero's rank 
        Inbound parameter:  xpvalue
        Outbound parameter: rankvalue
  -->
  <!-- RDS SWD The Rank calculation was moved to here to allow it to be called twice -->
  <!--         It's called early (Setup/4000) for PC's and later (Final/5000) for NPC's -->
  <procedure id="RankCalc" scripttype="none"><![CDATA[
    ~declare variables that are used to communicate with our caller
      var xpvalue as number
      var rankvalue as number
        if (xpvalue < 80) then
          rankvalue = round(xpvalue / 20,0,-1)
        else
          rankvalue = 4
          endif
    ]]></procedure>
 
These can't be changed with a Setting Adjustment, unfortunately. It'll require duplicating the game system and making changes to the base files. You've identified the correct code slices, though. Good one! Sounds like you're well on your way.
 
Back
Top