Initial Commit

Initial Commit.
This commit is contained in:
Jaysyn904
2025-09-14 15:40:46 -04:00
parent 7083b33d71
commit 1eefc84201
19230 changed files with 11539227 additions and 0 deletions

357
_removed/subraces.nss Normal file
View File

@@ -0,0 +1,357 @@
//
// NWSubraces
//
// Basic subrace functionality
//
// (c) Shir'le E. Illios, 2002 (shirle@drowwanderer.com)
//
////////////////////////////////////////////////////////
// **************************************************************
// ** Constants
// **********************
// Enum of the supported subraces
const int SUBRACE_NONE = 0; // No Subrace set yet
const int SUBRACE_MONSTER = 1; // For monsters, etc. without subrace
const int SUBRACE_DWARF_GOLD = 2;
const int SUBRACE_DWARF_GRAY = 3;
const int SUBRACE_DWARF_SHIELD = 4;
const int SUBRACE_ELF_DARK = 5;
const int SUBRACE_ELF_MOON = 6;
const int SUBRACE_ELF_SUN = 7;
const int SUBRACE_ELF_WILD = 8;
const int SUBRACE_ELF_WOOD = 9;
const int SUBRACE_GNOME_DEEP = 10;
const int SUBRACE_GNOME_ROCK = 11;
const int SUBRACE_HALFELF = 12;
const int SUBRACE_HALFORC = 13;
const int SUBRACE_HALFLING_GHOSTWISE = 14;
const int SUBRACE_HALFLING_LIGHTFOOT = 15;
const int SUBRACE_HALFLING_STRONGHEART = 16;
const int SUBRACE_HUMAN = 17;
const int SUBRACE_HALFDROW = 18;
const int AREA_NONE = 0;
const int AREA_DEFAULT_LIGHT = 1;
const int AREA_DARK = 2;
const int AREA_LIGHT = 3;
const int AREA_SUN = 4;
const int SUBRACE_AREA_DEFAULT_GROUND = 10;
const int SUBRACE_AREA_UNDERGROUND = 20;
const int SUBRACE_AREA_ABOVEGROUND = 30;
// Include the subrace definitions and the subraces code.
#include "sei_subraces"
#include "sei_subraceslst"
#include "sei_xp"
// **************************************************************
// ** Structures
// **********************
// Structure used to pass information on a certain subrace.
struct Subrace
{
int m_nID;
int m_nBaseRace;
int m_nNumFieldValues;
int m_nNumTraits;
int m_bSpellResistance;
int m_nLightSensitivity;
float m_fLightBlindness;
int m_nStonecunning;
int m_nSpellLikeAbility;
int m_nECLAdd;
int m_nFavoredClassF;
int m_nFavoredClassM;
int m_bIsDefault;
};
// **************************************************************
// ** Event functions
// **********************
// Initializes the available subraces and everything that is needed to properly
// run this script.
// Call this function in the OnModuleLoad event of the module.
//
void Subraces_InitSubraces();
// Sets the default area settings. This is so you don't have to do it for every area.
// Call this function in the OnModuleLoad event of the module.
// ARGUMENTS:
// a_nSettings = What the default settings for the area are.
// There is light-level:
// AREA_DARK - The area is considered dark.
// AREA_LIGHT - The area is considered daylight.
// AREA_SUN - The light level depends on the sun (day/night).
// And there is the 'ground' setting:
// SUBRACE_AREA_UNDERGROUND - The area is underground.
// SUBRACE_AREA_ABOVEGROUND - The area is above ground.
// Add the setting for lightness to that of ground for the
// final setting, i.e.:
// Subraces_SetDefaultAreaSettings( AREA_DARK + SUBRACE_AREA_UNDERGROUND );
// for if most of the areas in the module are dark and underground.
//
void Subraces_SetDefaultAreaSettings( int a_nSettings );
// Initializes the subrace for character a_oCharacter.
// Call this function in the OnClientEnter event of the module.
// ARGUMENTS:
// a_oCharacter = The character to initialize the subrace for
//
void Subraces_InitSubrace( object a_oCharacter );
// Modifies the character's subrace attributes on a character's level up.
// Call this function in the OnPlayerLevelUp event of the module.
// ARGUMENTS:
// a_oCharacter = The character to level up.
//
void Subraces_LevelUpSubrace( object a_oCharacter );
// Makes sure that the subrace is set correctly again when the character respawns.
// ARGUMENTS:
// a_oCharacter = The character respawning.
//
void Subraces_RespawnSubrace( object a_oCharacter );
// Does some subrace specific things when a character enters a new area.
// Call this function in the OnEnter event of every area.
// ARGUMENTS:
// a_oCharacter = The character to enter the new area.
// a_nSettings = The light and (under)ground settings of the area.
// Don't specify this argument to use module defaults.
//
void Subraces_OnEnterArea( object a_oCharacter, int a_nSettings = 0 );
// **************************************************************
// ** Useage functions
// **********************
// Returns the subrace (enum) for the target.
// ARGUMENTS:
// a_oCharacter = The character to get the subrace from (assumed valid)
// RESULT:
// The subrace of a_oCharacter (see te "SUBRACE_" variables)
//
int Subraces_GetCharacterSubrace( object a_oCharacter );
// Returns whether the character is of subrace a_nSubrace.
// ARGUMENTS:
// a_oCharacter = The character to get the subrace from (assumed valid)
// a_nSubrace = The subrace to check against
// RESULT:
// Whether a_oCharacter is of subrace a_nSubrace
//
int Subraces_IsCharacterOfSubrace( object a_oCharacter, int a_nSubrace );
// Returns the effective character level of the character.
// ARGUMENTS:
// a_oCharacter = The character to get the ECL from (assumed valid)
//
int Subraces_GetEffectiveCharacterLevel( object a_oCharacter );
// Remove subrace related items before starting a new module.
// If the new module supports subraces it should re-initialize them.
// ARGUMENTS:
// a_sModuleName = The name of the module to start.
//
void Subraces_StartNewModule( string a_sModuleName );
// Remove subrace related items before sending PC through protal.
// If the new server supports subraces it should re-initialize them.
// ARGUMENTS:
// a_oTarget = The character to send through the portal.
// a_sIPaddress = This can be numerical "192.168.0.84" or alphanumeric
// "www.bioware.com". It can also contain a port
// "192.168.0.84:5121" or "www.bioware.com:5121"; if the
// port is not specified, it will default to 5121.
// a_sPassword = Login password for the destination server.
// a_sWaypointTag = If this is set, after portalling the character will be
// moved to this waypoint if it exists.
// a_bSeamless = If this is set, the client wil not be prompted with
// the information window telling them about the server,
// and they will not be allowed to save a copy of their
// character if they are using a local vault character.
//
void Subraces_ActivatePortal( object a_oTarget, string a_sIPaddress="", string a_sPassword="", string a_sWaypointTag="", int a_bSeemless=FALSE );
// Change the area settings dependent traits for the character.
// This function can for instance be called in the OnEnter and OnExit scripts
// of a trigger to create an area where the settings differ from the rest of the
// area. (Like a room of sunlight in an otherwise lightless dungeon).
// ARGUMENTS:
// a_oCharacter = The character the settings affect.
// a_nSettings = What these differing settings are. Leave away to reset
// to the area defaults.
//
void Subraces_ChangeAreaSettings( object a_oCharacter, int a_nSettings = 0 );
// A subrace safe version of BioWare's RemoveEffect function. Removes effect
// in such a way as not to touch te subraces (i.e. te subraces are safe).
// ARGUMENTS:
// a_oCreature = The creature to remove the effect from.
// a_eEffect = The effect to remove from the creature.
//
void Subraces_SafeRemoveEffect( object a_oCreature, effect a_eEffect );
// A subrace safe version that removes all non-subrace effects from the char.
// ARGUMENTS:
// a_oCreature = The creature to remove the effect from.
//
void Subraces_SafeRemoveEffects( object a_oCreature );
// **************************************************************
// ** Function definitions
// **********************
// Initializes the available subraces and everything that is needed to properly
// run this script.
//
void Subraces_InitSubraces()
{
SEI_InitSubraces();
}
// Sets the default area settings. This is so you don't have to do it for every area.
//
void Subraces_SetDefaultAreaSettings( int a_nSettings )
{
SEI_SetDefaultAreaSettings( a_nSettings );
}
// Initializes the subrace for character a_oCharacter.
//
void Subraces_InitSubrace( object a_oCharacter )
{
AssignCommand( GetModule(), SEI_InitSubrace( a_oCharacter ) );
}
// Modifies the character's subrace attributes on a character's level up.
//
void Subraces_LevelUpSubrace( object a_oCharacter )
{
SEI_LevelUpSubrace( a_oCharacter );
}
// Makes sure that the subrace is set correctly again when the character respawns.
//
void Subraces_RespawnSubrace( object a_oCharacter )
{
SEI_InitSubrace( a_oCharacter );
}
// Does some subrace specific things when a character enters a new area.
//
void Subraces_OnEnterArea( object a_oCharacter, int a_nSettings = 0 )
{
SEI_EnterArea( a_oCharacter, a_nSettings );
}
// Returns the subrace (enum) for the target.
//
int Subraces_GetCharacterSubrace( object a_oCharacter )
{
return SEI_GetCharacterSubrace( a_oCharacter );
}
// Returns whether the character is of subrace a_nSubrace.
//
int Subraces_IsCharacterOfSubrace( object a_oCharacter, int a_nSubrace )
{
return SEI_IsCharacterOfSubrace( a_oCharacter, a_nSubrace );
}
// Returns the effective character level of the character.
//
int Subraces_GetEffectiveCharacterLevel( object a_oCharacter )
{
return SEI_GetEffectiveCharacterLevel( a_oCharacter );
}
// Remove subrace related items before starting a new module.
//
void Subraces_StartNewModule( string a_sModuleName )
{
object oPC = GetFirstPC();
while( GetIsObjectValid( oPC ) )
{
SEI_RemoveSubrace( oPC );
oPC = GetNextPC();
}
StartNewModule( a_sModuleName );
}
// Remove subrace related items before sending PC through protal.
//
void Subraces_ActivatePortal( object a_oTarget, string a_sIPaddress="", string a_sPassword="", string a_sWaypointTag="", int a_bSeemless=FALSE )
{
SEI_RemoveSubrace( a_oTarget );
ActivatePortal( a_oTarget, a_sIPaddress, a_sPassword, a_sWaypointTag, a_bSeemless );
}
// Change the area settings dependent traits for the character.
//
void Subraces_ChangeAreaSettings( object a_oCharacter, int a_nSettings = 0 )
{
SEI_ApplyAreaSettings( a_oCharacter, a_nSettings );
}
// A subrace safe version of BioWare's RemoveEffect function.
//
void Subraces_SafeRemoveEffect( object a_oCreature, effect a_eEffect )
{
SEI_RemoveEffect( a_oCreature, a_eEffect );
}
// A subrace safe version that removes all non-subrace effects from the char.
//
void Subraces_SafeRemoveEffects( object a_oCreature )
{
SEI_RemoveEffects( a_oCreature );
SEI_InitSubraceTraits( a_oCreature, FALSE );
}
// SEI_TODO: Added for development. Remove!
/*
void main ()
{
}
//*/