Giter Club home page Giter Club logo

swlor_nwn's Introduction

Star Wars: Legends of the Old Republic

Server-side C# code used in the Neverwinter Nights Star Wars: Legends of the Old Republic module.

Game: Neverwinter Nights: Enhanced Edition

Website: https://starwarsnwn.com/

Discord: https://discord.gg/MyQAM6m

Forums: https://forums.starwarsnwn.com/

Project Description

This project contains the C# source code used on the Star Wars: Legends of the Old Republic server.

It serves as a replacement for NWScript and handles most server features and functions. This is possible by using the NWNX_DotNet plugin for NWNX.

Refer to the quick start guide below and be sure to post any issues on our forums. The link to the forums is above.

Prerequisites:

Git: https://git-scm.com/downloads

Docker: https://www.docker.com/products/docker-desktop/

Visual Studio 2022: https://www.visualstudio.com/downloads/

Neverwinter Nights: https://store.steampowered.com/app/704450/Neverwinter_Nights_Enhanced_Edition/

Installation:

  1. Fork this repo.

  2. At command line: git clone --recursive https://github.com/<your_username>/SWLOR_NWN.git

  3. Run SWLOR_NWN/Module/PackModule.cmd to generate the Star Wars LOR v2.mod file.

  4. Open SWLOR.Game.Server.sln with Visual Studio

  5. Right click on SWLOR.Runner within Visual Studio and select "Set as Startup Project"

  6. Click the green run button at the top of Visual Studio. Note that this will take a while the first time you do it.

Troubleshooting

'TLK does not exist' error:

This happens because you didn't clone with the --recursive command. Redo step 2.

'Type initializer for Ductus.FluentDocker.Extensions.CommandExtensions threw an exception' error:

You need to install docker.

'Missing required HAK file' error on login

Copy the files in the hak directory to your NWN play directory. Alternatively, edit nwn.ini to point to the debugserver/hak folder.

'Missing required TLK file' error on login

Copy the swlor2_tlk.tlk file in the tlk directory to your NWN play directory. Alternatively, edit nwn.ini to point to the debugserver/tlk folder.

'Unable to load module' error

Delete all docker containers and images, then delete all files in the debugserver/modules, debugserver/tlk, and debugserver/hak folders. Then rerun the application.

Getting Help

If you need help with anything related to Star Wars: Legends of the Old Republic please feel free to contact us on our Discord here: https://discord.gg/MyQAM6m

For NWNX and Docker related issues please look for help in the NWNX Discord channel here: https://discord.gg/m2hJPDE

swlor_nwn's People

Contributors

announcer348 avatar bentusi16 avatar cavcode avatar couls avatar dependabot[bot] avatar feddydk avatar givemedeath avatar hicks224 avatar holmstn avatar johnwildkins avatar kenji3108 avatar liareth avatar martinus-1453 avatar mithreas avatar nights192 avatar ranger-x-dev avatar scorchys12 avatar sytrath avatar taelon875 avatar tinfy-gimpassa avatar valo56 avatar wandering-poet avatar xisifer avatar zarquonz avatar zickery avatar zunath avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

swlor_nwn's Issues

Power/CPU display bug

There's a display bug with power and CPU on one of the base management menus. I think it's when placing a territory. Power was showing at a cap of 200 and CPU at a cap of 500, both incorrect values. Need to dig into it further to find out the problem and fix. Probably forgot a parentheses

Perk Refunds

Add a way to refund perk purchases. Should come from using an item. Once refunded, the perk level should drop and the spent SP should be returned to the player.

Char Gen GUI Edits

Main Page:
1.) Rename Race to Species
2.) Rename Class to Background

Race Page:
1.) Remove recommended button
2.) Rename references to "Race" to "Species"
3.) Remove sub race button

Class Page:
1.) Change the default message to explain that classes are backgrounds for your character and don't work the same way as in NWN. Give brief overview of skill system.
2.) Change header to read "Select background for your character"
3.) Remove the Recommended button
4.) Remove Configure Packages button

Alignment Page:
1.) Remove alignment buttons
2.) Move header down to center. Change it to read "Alignments are not used on this server."
3.) Remove recommended button
4.) Remove side panel explaining alignments.

Abilities Page:
1.) Remove recommended button
2.) Modify text for each ability score to explain what they do on SWLOR.

Character Record:
1.) Remove skills tab
2.) Remove spells tab

Character Info Page:
1.) Remove age label and field
2.) Remove Deity button

GAME: Starship production

Special base structures designed for starship production need to be added. This should be a multi-step process and involve a lot of custom components to produce.

Dependent on the space system being developed first.

Rename forage perks

Missed a few perks when I renamed forage to scavenging. Rename the perks and associated code files.

Add crafting history to menu

Add a way for players to easily access the past 5 items they've crafted on a per-device basis. Should be persistent through resets.

Ideally this is a one-click step to access the blueprint for multiple crafting procedures. I.E: Instead of selecting a category, then blueprint every time they can simply select one from their history and go directly to the crafting process.

PWKs missing on Star Wars placeables

Hopefully the PWKs are in Xeph's Star Wars haks or in the other ones. But until we get 'em, or I make them, you can walk through all Star Wars placeables.

Char selection gui edits

1.) Remove "Show Pregenerated Characters"
2.) Remove "Customize Character"
3.) Remove "Delete Character"
4.) Remove skills tab
5.) Remove spells tab
6.) Extend New Character button to fill the void left by the Delete button. Or if not possible, center it.

Too many instructions error

There's a "too many instructions" error that fires off after the server boots up. It continues until any conversation opens. Not sure what the heck is happening but needs to be fixed.

Base Drills

Set up drills for bases. Should use a separate loot table from the normal area resources loot table. These should be geared towards higher quality materials.

As part of this, also set up resource silos to increase maximum resource storage.

String special char issues

There are issues when converting special chars from C# to NWN. I think this has something to do with the encoding in the Mono plugin but need to investigate further to be sure.

Problem areas:

Color tokens are wrong (RGB of 0,0,255 ends up being 0,0,62)
Degree symbols aren't being displayed properly (another char is displayed instead).

Referenced here too: zunath/Freescape#1

Remove quests from journals after completion

Remove quests from journals after completion. Also remove all of the extraneous state information from existing quests. Don't add quests which have been completed after a player logs in to the game.

Add TLK entries to database

Add the TLK entries into the database for easier access.

Need a quick way to regenerate these records as they change frequently.

GAME: Space system

Add a space system whereby players can purchase or craft a starship, customize its loadout, and enter space.

There should be enemies to fight, activities like mining to perform, and several different places to go.

Combat should involve clicking a creature to set your target. The target should be highlighted on the player's screen. Then, combat proceeds via the use of feats granted on entry into space.

At least one skill should be introduced with this system, along with several different perks.

Periodic exception

There's an exception being raised shortly after the server comes up. Doesn't cause a problem as far as I can tell but it does come up pretty much every time.

DM Bugs

Getting exceptions as a DM:

  • When rest menu is attempted to be opened
  • On log-in when checking for global ID

Change persistent locations to use resrefs

We have a way to pull from the area cache now, so change persistent locations to store and use area resrefs instead of tags. This'll prevent area builders from having to remember to make the tags unique.

Change death system

Modify the death system to reduce durability on items when a player dies. Do not drop items to a corpse object. No XP loss or debt.

Fix robe graphics

We're missing some robe graphics - namely for 169. Need to check on the Contrition haks, d20, and CEP to see if there are missing files lost during merging.

GAME: Add Holo-communicator items

From Xephnin:

It was an in character means to communicate vast distances. You would get an item that asked you who you wanted to call, then it would page that person and if they accepted a "holo" of your character would appear before them and whatever you said in talk or whisper would be relayed through your clone.

Droids need weapons

The droids in the maintenance level need to be equipped with laser weapons because they don't have attack animations and are susceptible to AOOs

Track BIC info in the database

Track values found in the player BIC file in the database. Should be stored in a separate PlayerCharacterDetails table and not the main PlayerCharacters table.

Set up playable races

Set up the playable races and add them to character creation. Should be relatively simple for now - just stat increases/decreases for the initial launch.

Hunger system changes

Remove the requirement to eat. Instead, eating should give long term stat buffs depending on the type of food eaten. Cooking food will adjust these stats.

GAME: Holo-message board

Players can leave messages on the board and other players can come along to read them.

Should allow for both public (dev-placed) and player constructed structures.

Don't assign IDs on acquire

Assigning IDs on item acquire has a side effect of stackable items being treated as different items.

Remove the assigning of IDs on acquisition / loss and instead GetOrAssignID whenever an item is added to persistent storage.

Adjust graphics of building exteriors

Adjust the graphics of building exteriors to be appropriate to the planet they're placed on. This also includes changing the door spawn rules to ensure they get created at the appropriate location on the building.

Resource spawning needs a disable switch

Need a way to disable resource spawning in certain areas. Currently based on the resource level value on the area, but this is used in two places.

Add another flag to areas to enable or disable automatic resource spawning.

Add "Rest" perk

Add a perk which functions similarly to meditate, but recovers HP instead.

GAME: Base turrets

Add turret structures to bases which defend control towers from attackers. Should require power to operate and if no power is available should be taken offline.

Set up Force ability perks

Modify the old Evocation/Alteration perks to work better with the Star Wars setting. An equal number of abilities should be added on both sides - Light and Dark. Players should be able to choose any and all of them without restriction.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.