Jump to content

How does a game get Nexus support?


Riekopo

Recommended Posts

I'd like to know how a game gets Nexus support? I play the Total War games and use a lot of mods. However, the modding community for Total War is a total mess. It's very confusing and not user friendly at all. I really want it to have Nexus support.

Link to comment
Share on other sites

Ask Robin Scott he is the owner and operator of the nexus sites, Also Known as Dar0ne.

 

 

Sweet to hear Rome Total War 2 is going to be Moddable. :biggrin:

Edited by Thor.
Link to comment
Share on other sites

No its Dark0ne, look at is user name :smile: with a zero :smile:

I was pressing zero but got O instead, probably because the keyboard is 13 years old and was owned by two programmers before I got it, it's bloody resilient. Maybe that's why Bethesda has so much buggy code in their games, their programmers must use the same keyboard as me. ;D

Link to comment
Share on other sites

 

No its Dark0ne, look at is user name :smile: with a zero :smile:

I was pressing zero but got O instead, probably because the keyboard is 13 years old and was owned by two programmers before I got it, it's bloody resilient. Maybe that's why Bethesda has so much buggy code in their games, their programmers must use the same keyboard as me. ;D

 

 

That awkward moment when you look through your BOSS codes and realise there are hundreds of mistakes... :ohdear:

Edited by billyro
Link to comment
Share on other sites

That awkward moment when you look through your BOSS codes and realise there are hundreds of mistakes... :ohdear:

Actually, no. Writing Shell scripts for Linux using BASH is different than writing a true program in C/C#/C++/Java/JavaScript/Python/whatever. The BASH shell first reads through the script and if there is a mistake, it returns an error and terminates the script on mistake immediately after executing it.

 

Besides, I test every command in terminal beforehand, that way I can write anything without making mistakes. Here's an example of how I implemented my game auto-detection and ini parsing.

 

First I exected the following command in terminal to check load order export:

 

 

cd /home/werne/.PlayOnLinux/wineprefix/Fallout3/drive_c/Program\ Files/Bethesda\ Softworks/Fallout\ 3/Data && ls -l -tr|grep 'esp$\|esm$' > ~/Desktop/loadorder

 

 

Command successfuly exported the load order to desktop

 

Then I used a variation to that command which which includes INI parsing and reads the FO3 directory location from test.ini

 

 

ls -l -tr "$(awk -F "=" '/FALLOUT_3/ {print $2}' ~/.BOSS/ini-test.ini)"|grep 'esp$\|esm$' > ~/Desktop/loadorder

 

 

Which, once again, worked perfectly.

 

Only then is that I built a test script called boss-ini-test that went like this:

 

 

if [ "$(awk -F "=" '/FALLOUT_3/ {print $2}' ~/.BOSS/ini-test.ini)" == "" ]; then
   echo "Locating game from INI failed"
else
   echo "Locating game from INI successful"
fi

 

 

It located the game from the INI and printed "Locating game from INI successful"

 

Then I edited the script like this:

 

 

if [ "$(awk -F "=" '/FALLOUT_3/ {print $2}' ~/.BOSS/ini-test.ini)" == "" ]; then
   echo "No game location found"
else
   cd "$(awk -F "=" '/FALLOUT_3/ {print $2}' ~/.BOSS/ini-test.ini)"
   ls -l -tr|grep 'esp$\|esm$' > ~/Desktop/loadorder
   echo "Load order successfuly exported"
fi

 

 

And it was a success.

 

I included a partial section of it into my game auto-detect module:

 

 

if [ "$1" == "--detect-games" ]; then
   echo "FALLOUT_3=$(find ~/ -name "Fallout3.esm")"|sed 's/............$//' > ~/.BOSS/data/fo3.dir
   echo "FALLOUT_NV=$(find ~/ -name "FalloutNV.esm")"|sed 's/.............$//' > ~/.BOSS/data/fonv.dir
   echo "SKYRIM=$(find ~/ -name "Skyrim.esm")"|sed 's/..........$//' > ~/.BOSS/data/skyrim.dir
   echo "OBLIVION=$(find ~/ -name "Oblivion.esm")"|sed 's/............$//' > ~/.BOSS/data/oblivion.dir
   echo "MORROWIND=$(find ~/ -name "Morrowind.esm")"|sed 's/.............$//' > ~/.BOSS/data/morrowind.dir
   cat ~/.BOSS/data/header ~/.BOSS/data/*.dir > ~/.BOSS/ini-test.ini
   rm -rf ~/.BOSS/data/*.dir
   if [ "$(awk -F "=" '/FALLOUT_3/ {print $2}' ~/.BOSS/ini-test.ini)" == "" ]; then
      echo "Fallout 3 directory detected: No"
   else
      echo "Fallout 3 directory detected: Yes"
      echo "Directory location: $(awk -F "=" '/FALLOUT_3/ {print $2}' ~/.BOSS/ini-test.ini)"
   fi
   if [ "$(awk -F "=" '/FALLOUT_NV/ {print $2}' ~/.BOSS/ini-test.ini)" == "" ]; then
      echo "Fallout: New Vegas directory detected: No"
   else
      echo "Fallout: New Vegas directory detected: Yes"
      echo "Directory location: $(awk -F "=" '/FALLOUT_NV/ {print $2}' ~/.BOSS/ini-test.ini)"
   fi
   if [ "$(awk -F "=" '/SKYRIM/ {print $2}' ~/.BOSS/ini-test.ini)" == "" ]; then
      echo "Skyrim directory detected: No"
   else
      echo "Skyrim directory detected: Yes"
      echo "Directory location: $(awk -F "=" '/SKYRIM/ {print $2}' ~/.BOSS/ini-test.ini)"
   fi
   if [ "$(awk -F "=" '/OBLIVION/ {print $2}' ~/.BOSS/ini-test.ini)" == "" ]; then
      echo "Oblivion directory detected: No"
   else
      echo "Oblivion directory detected: Yes"
      echo "Directory location: $(awk -F "=" '/OBLIVION/ {print $2}' ~/.BOSS/ini-test.ini)"
   fi
   if [ "$(awk -F "=" '/MORROWIND/ {print $2}' ~/.BOSS/ini-test.ini)" == "" ]; then
      echo "Morrowind directory detected: No"
   else
      echo "Morrowind directory detected: Yes"
      echo "Directory location: $(awk -F "=" '/MORROWIND/ {print $2}' ~/.BOSS/ini-test.ini)"
   fi
   echo "

 

 

This thing detected Fallout 3 and Skyrim directories and wrote the locations into ini-test.ini

 

At the same time, another part of it was included in a Fallout 3 test module:

 

 

if [ "$1" == "--fo3"  ]; then
   if [ "$2" == "--offline"  ]; then
      if [ -f ~/.BOSS/masterlists/fo3 ]; then
         #Fallout 3 masterlist found in ~/.BOSS/masterlists/ (BOSS already started?)
         echo "Fallout 3 Masterlist found, initializing BOSS."
         sleep 1
         cd "$(awk -F "=" '/FALLOUT_3/ {print $2}' ~/.BOSS/ini-test.ini)"
         #Sorting module not yet implemented, additional testing and adjustments needed
         ls -l -tr|grep 'esp$\|esm$' > ~/.BOSS/log/loadorder.fo3
         echo "Finished. A log has been created in ~/.BOSS/logs/ directory."
         exit 1
      else
         #Fallout 3 masterlist not found in ~/.BOSS/masterlists/, invoke BOSS halt
         echo "Fallout 3 Masterlist not found while BOSS is in offline mode, BOSS will now stop."
         exit 1
      fi
   else
      if [ -f ~/.BOSS/masterlists/fo3 ]; then
         #Fallout 3 masterlist found in ~/.BOSS/masterlists/ (BOSS already started?)
         echo "Fallout 3 Masterlist found, removing old list and preparing to download the latest instance."
         sleep 1
         wget http://better-oblivion-sorting-software.googlecode.com/svn/data/boss-fallout/masterlist.txt -O ~/.BOSS/masterlists/fo3
         cd "$(awk -F "=" '/FALLOUT_3/ {print $2}' ~/.BOSS/ini-test.ini)"
         #Sorting module not yet implemented, additional testing and adjustments needed
         ls -l -tr|grep 'esp$\|esm$' > ~/.BOSS/log/loadorder.fo3
         echo "Finished. A log has been created in ~/.BOSS/logs/ directory."
         exit 1
      else
         #Fallout 3 masterlist not found in ~/.BOSS/masterlists/ (initial BOSS startup?)
         echo "Old Fallout 3 Masterlist not found, preparing to download the latest instance."
         sleep 1
         wget http://better-oblivion-sorting-software.googlecode.com/svn/data/boss-fallout/masterlist.txt -O ~/.BOSS/masterlists/fo3
         cd "$(awk -F "=" '/FALLOUT_3/ {print $2}' ~/.BOSS/ini-test.ini)"
         #Sorting module not yet implemented, additional testing and adjustments needed
         ls -l -tr|grep 'esp$\|esm$' > ~/.BOSS/log/loadorder.fo3
         echo "Finished. A log has been created in ~/.BOSS/logs/ directory."
         exit 1
      fi
   fi
fi

 

 

This one downloaded the masterlist and exported my current load order, it worked like a charm. I still didn't figure out how to actually sort the load order though. And only then is that I included the last two into the main script (which, by now, reached over 1000 lines of code).

 

If there was even the slightest mistake in any of these, they would plurp out an error on startup. And that's why I can't make mistakes in my code.

Edited by Werne
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...