Adding CEP1 merge content
Adding CEP1 merge content. Updated brownie model. Updated wemic heads & female torso. Updated hobgoblin.
This commit is contained in:
75
_workspace/wemic/pcpack/CSkin_ReadMe.txt
Normal file
75
_workspace/wemic/pcpack/CSkin_ReadMe.txt
Normal file
@@ -0,0 +1,75 @@
|
||||
Character Skin ReadMe
|
||||
|
||||
Implementation:
|
||||
|
||||
1. Import cskin.erf, if you would also like the default skins from pcpackv1, also import skins.erf
|
||||
|
||||
2. Apply these scripts to the events:
|
||||
|
||||
cskin_moduleload to the modules OnModuleLoad event.
|
||||
cskin_onlevelup to the modules OnPlayerLevelUp event.
|
||||
cskin_onenter to the OnEnter event of the area with the module's starting location.
|
||||
|
||||
Note:
|
||||
|
||||
Item Level Restrictions should be turned off, otherwise players will end up with hides in their inventory.
|
||||
|
||||
Configuration:
|
||||
|
||||
all script configuration is done in the cskin_include file, in the ConfigurePCRaceHides() function.
|
||||
|
||||
You will regonize this if you have configured the ECL scripts, there are two ways
|
||||
|
||||
Subrace field - add this line for each race:
|
||||
|
||||
SetHidesForRaceByString(string sRace,int iReference,string sLevels = "0");
|
||||
|
||||
where sRace is the subrace you want to add, it is not case sensitive but it is completely unforgiving of spelling errors.
|
||||
iReference is the number you want to use in the skin resref, and will replace the value of RACIAL_TYPE_* in the resref descriptiong below.
|
||||
sLevels are the levels the race should get news hides at, this is optional, if left blank the race will get the standard hide at all levels, otherwise specify levels delimated with a ':', example: SetHidesForRaceByString("DROW",75,"0:2:4:6:8:10:12:14:16:18") will set up Drow as a subrace to receive hides at even level increments and use the number 75 as the resref reference number.
|
||||
|
||||
with hak - add this line for each race:
|
||||
|
||||
SetHidesForRaceByInt(RACIAL_TYPE_*,"0:5:10:15");
|
||||
|
||||
Where Racial_type_* is the race you're adding and the second parameter is a list of the levels they get a new hide and it is deliminated by a ':'
|
||||
|
||||
Example:
|
||||
|
||||
SetHidesForRaceByInt(RACIAL_TYPE_DROW,"0:2:4:6:8:10:12:14:16:18");
|
||||
|
||||
This will set up the Drow race to get a hide at levels 0,2,4,6,8,10,12,14,16 and 18.
|
||||
|
||||
the hides:
|
||||
|
||||
The Hides must have a VERY SPECIFIC RESREF:
|
||||
|
||||
"skin_#_#"
|
||||
|
||||
The first pound is the integer value of the RACIAL_TYPE_* the hide matches with, the second # is the level it applies to.
|
||||
|
||||
"skin_28_0" is the resref for the hide a tiefling gets at level 0.
|
||||
|
||||
Note: Level 0 hides are defaults for races that do not change abilities on levelup. If a character is between levels, it will look DOWN the list to nearest they should get one and apply that.
|
||||
|
||||
Merging Files:
|
||||
|
||||
If any of the events listed above are already in use you will need to merge code into the files already present. The following is code snippets and may require slight changes to work in your particular situation. Generally it is fine to insert the code just before the closing bracet of the main() function.
|
||||
|
||||
All scripts must #include "cskin_include" before adding this code.
|
||||
|
||||
OnModuleLoad:
|
||||
|
||||
ConfigurePCRaceHides();
|
||||
|
||||
OnPlayerlevelup:
|
||||
|
||||
ApplyRacialSkin(GetPCLevellingUp());
|
||||
|
||||
onEnter:
|
||||
|
||||
object oPC = GetEnteringObject();
|
||||
if(GetIsPC(oPC))
|
||||
{
|
||||
ApplyRacialSkin(oPC);
|
||||
}
|
BIN
_workspace/wemic/pcpack/ECL.erf
Normal file
BIN
_workspace/wemic/pcpack/ECL.erf
Normal file
Binary file not shown.
BIN
_workspace/wemic/pcpack/ECL_CSkin_Combo.erf
Normal file
BIN
_workspace/wemic/pcpack/ECL_CSkin_Combo.erf
Normal file
Binary file not shown.
6
_workspace/wemic/pcpack/ECL_CSkin_ReadMe.txt
Normal file
6
_workspace/wemic/pcpack/ECL_CSkin_ReadMe.txt
Normal file
@@ -0,0 +1,6 @@
|
||||
Combination ECL and Character hide System Readme
|
||||
|
||||
You should follow the implementation instructions from the ECL_ReadMe.txt and cskin_ReadMe.txt with the following exceptions:
|
||||
|
||||
In the events OnModuleLoad, OnPlayerlevelup and the OnEnter event of the area with the starting location you will use these scripts:
|
||||
codi_moduleload, codi_onlevelup, and codi_onenter respectively. NOT what it says in the other two ReadMe files.
|
94
_workspace/wemic/pcpack/ECL_ReadMe.txt
Normal file
94
_workspace/wemic/pcpack/ECL_ReadMe.txt
Normal file
@@ -0,0 +1,94 @@
|
||||
Effective Character Level System ReadMe
|
||||
|
||||
This system is designed to take the effective character level of non-standard races into account and to use standard 3e experience rules.
|
||||
|
||||
Because class level cannot be altered by race in the NWN engine, a workaround must be made. Races that have an ECL of +1 or higher receive proportionately less experience, as determined by what level they should be. For example, a level 1 tiefling fighter would normally need 1000 experience to reach level 2, however the tiefling has an ECL of +1, so instead the experience should be the difference between level 2 and 3, or 2000 experience. Therefor, at level 1, this character would get 1/2 the experience of a standard race, 2/3 the experience at level 2, and so on. This simulates the character being 1 level higher, and as such they will cease to gain experience at level 19 (ECL 20).
|
||||
|
||||
Update: the ecl_onenter script is no longer required.
|
||||
|
||||
Implementation:
|
||||
|
||||
1. Import the .erf into your module.
|
||||
|
||||
This should import the following files into your module:
|
||||
ecl_include
|
||||
ecl_moduleload
|
||||
ecl_onlevelup
|
||||
nw_c2_default7
|
||||
nw_s3_balordeth
|
||||
|
||||
Note: If you have overwritten nw_c2_default7 or nw_s3_balordeth already, refer to the last section of this readme.
|
||||
|
||||
2. Set the XP scale of the module to 0.
|
||||
|
||||
The XP scale can be found in the module properties, on the advanced tab.
|
||||
|
||||
3. Add the scripts to the events.
|
||||
|
||||
Add ecl_moduleload into the module's OnModuleLoad event.
|
||||
Add ecl_onlevelup into the modules' OnPlayerLevelUp event.
|
||||
|
||||
If any of these events are already in use, refer to the last section of this readme.
|
||||
|
||||
4. New scripting functions.
|
||||
|
||||
Any script that you use to grant XP to the player need to be updated. Include the ecl_include script use the following script replacements:
|
||||
|
||||
Instead of GiveXPToCreature, use GiveXPToPlayer
|
||||
Instead of RewardPartyXP, use GrantPartyXP
|
||||
If you use GetHitDice to get a player's level, you should replace it with GetECL, but only on a pc object.
|
||||
|
||||
Configuration:
|
||||
|
||||
All configuration is done in the "ecl_include" script.
|
||||
|
||||
There are four constants defined at the top:
|
||||
MAX_XP_GAIN - This is the highest amount of experience any player can receive at a given time. There is a flag to ignore this on a case by case basis, but it will be enforced by default.
|
||||
MIN_XP_GAIN - This is the minimum amount of experience any player can receive at a given time. The 3e rules specify a player 7 or more levels above the CR rating of a monster get zero experience. Using this constant will apply a minimum to be rewarded after every kill.
|
||||
MAX_ECL - This is as high an ECL as your mod will allow. It is 3 by default, if you institute races with a higher ECL you must set this value.
|
||||
DEFAULT_XP_MOD - This number is multiplied into every experience gain. This system uses by the book distribution, which in a non-PnP scenario will level characters far too quickly. There is a flag to ignore this on a case by case basis. The default is 0.04.
|
||||
|
||||
Each race is configured in the ConfigureECL() function. One line needs to added for each new races, in one of two ways:
|
||||
|
||||
AddRaceByString("Race_Name",ECL);
|
||||
|
||||
This is for adding races through the SubRace field, it requires no hak and should fit right in with systems already designed around the SubRace field. There are already a few of these by default, as examples. It is not case sensitive, and will autocomplete from the players subrace. (ie If the player's subrace is 'Tief', it will assume them to be a Tiefling. If it finds more than one match in this fashion it will use the highest ECL matched; so it is best to make sure the player uses the full race name.)
|
||||
|
||||
or
|
||||
|
||||
AddRaceByInt(RACIAL_TYPE_*,ECL);
|
||||
|
||||
This method will add the actual race to the ECL list. It requires a hak for custom races, examples are included that require the pcpackv1.
|
||||
|
||||
Merging files:
|
||||
|
||||
If any of those events were already in use or if nw_c2_default7 or nw_s3_balordeth are already overwritten, you will need to include the following code into the scripts that are already in place, note that these are code snippets and may require some editing to work properly. Variable names may need to be changed, etc. Generally it is fine to insert this code just before the closing bracket of the main() function.
|
||||
|
||||
You must #include "ecl_include" in all of these scripts before adding this code.
|
||||
|
||||
OnModuleLoad:
|
||||
|
||||
ConfigureECL();
|
||||
|
||||
OnPlayerLevelUp:
|
||||
|
||||
SetECL(GetPCLevellingUp());
|
||||
|
||||
|
||||
nw_c2_default7 and nw_s3_balordeth:
|
||||
|
||||
object oKiller = GetLastKiller();
|
||||
if(ECL_DEBUG)SendMessageToPC(oKiller,"DEBUG: You killed " + GetName(OBJECT_SELF));
|
||||
if(GetIsPC(GetMaster(oKiller)))
|
||||
{
|
||||
oKiller = GetMaster(oKiller);
|
||||
}
|
||||
if(GetIsPC(oKiller))
|
||||
{
|
||||
if(ECL_DEBUG)SendMessageToPC(oKiller,"DEBUG: You are a PC, beginning XP calculation.");
|
||||
RewardKillXP(oKiller);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
BIN
_workspace/wemic/pcpack/cskin.erf
Normal file
BIN
_workspace/wemic/pcpack/cskin.erf
Normal file
Binary file not shown.
BIN
_workspace/wemic/pcpack/dialog.tlk
Normal file
BIN
_workspace/wemic/pcpack/dialog.tlk
Normal file
Binary file not shown.
22
_workspace/wemic/pcpack/dialog_tlk vFINAL.txt
Normal file
22
_workspace/wemic/pcpack/dialog_tlk vFINAL.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
Wemic
|
||||
Wemics
|
||||
wemic
|
||||
|
||||
|
||||
|
||||
|
||||
Fierce hunters that roam the plains, wemics are masters of ambushes and strategy. Wemics have the body of a lion with a humanoid torso. A wemic's face is a mixture of human and leonine features. Wemics typically live and hunt in groups called prides.
|
||||
|
||||
Wemic Ability Adjustments: +7 Str, +1 Dex, +1 Con, -2 Cha
|
||||
Favored Class (Barbarian): A multiclass wemic's barbarian class does not count when determining whether he suffers an XP penalty for multiclassing.
|
||||
Special Abilities:
|
||||
- Alertness: Wemics cannot easily be surprised in combat
|
||||
- Skill Affinity (Hide): +2 Racial bonus to Hide checks
|
||||
- Skill Affinity (Jump): +11 Racial bonus to Jump checks
|
||||
- Skill Affinity (Listen): +8 Racial bonus to Listen checks
|
||||
- Skill Affinity (Move Silently): +6 Racial bonus to Move Silently checks
|
||||
- Skill Affinity (Spot): +8 Racial bonus to Spot checks
|
||||
- Skill Affinity (Wilderness Lore): +4 Racial bonus to Wilderness Lore checks
|
||||
|
||||
|
||||
The wild, empty savannah is not enough to satisfy your natural curiosity about the world for any length of time. Forsaking your own pride, at least for the time being, your wanderings have brought you in contact with the puny Two-Legs who leap so boldly into the face of adventure.
|
BIN
_workspace/wemic/pcpack/skins.erf
Normal file
BIN
_workspace/wemic/pcpack/skins.erf
Normal file
Binary file not shown.
Reference in New Issue
Block a user