2025/09/05 Update
Fixed random hang at log on for single player. Fixed class title function in Markshire Nomenclature script. Fixed faction melee that ensued if player was killed by defender faction in town. Updated most humanoids to use new class title function. Full compile.
This commit is contained in:
		@@ -9840,7 +9840,7 @@
 | 
			
		||||
  },
 | 
			
		||||
  "Version": {
 | 
			
		||||
    "type": "dword",
 | 
			
		||||
    "value": 108
 | 
			
		||||
    "value": 111
 | 
			
		||||
  },
 | 
			
		||||
  "Width": {
 | 
			
		||||
    "type": "int",
 | 
			
		||||
 
 | 
			
		||||
@@ -87,7 +87,7 @@
 | 
			
		||||
  "Name": {
 | 
			
		||||
    "type": "cexolocstring",
 | 
			
		||||
    "value": {
 | 
			
		||||
      "0": "Icy Plains Barracks"
 | 
			
		||||
      "0": "The Icy Plains: Barracks"
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "NoRest": {
 | 
			
		||||
@@ -1230,13 +1230,17 @@
 | 
			
		||||
      }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  "TileBrdrDisabled": {
 | 
			
		||||
    "type": "byte",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "Tileset": {
 | 
			
		||||
    "type": "resref",
 | 
			
		||||
    "value": "tin01"
 | 
			
		||||
  },
 | 
			
		||||
  "Version": {
 | 
			
		||||
    "type": "dword",
 | 
			
		||||
    "value": 11
 | 
			
		||||
    "value": 12
 | 
			
		||||
  },
 | 
			
		||||
  "Width": {
 | 
			
		||||
    "type": "int",
 | 
			
		||||
 
 | 
			
		||||
@@ -87,7 +87,7 @@
 | 
			
		||||
  "Name": {
 | 
			
		||||
    "type": "cexolocstring",
 | 
			
		||||
    "value": {
 | 
			
		||||
      "0": "Icy Plains Outpost"
 | 
			
		||||
      "0": "The Icy Plains: Outpost"
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "NoRest": {
 | 
			
		||||
@@ -1230,13 +1230,17 @@
 | 
			
		||||
      }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  "TileBrdrDisabled": {
 | 
			
		||||
    "type": "byte",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "Tileset": {
 | 
			
		||||
    "type": "resref",
 | 
			
		||||
    "value": "tin01"
 | 
			
		||||
  },
 | 
			
		||||
  "Version": {
 | 
			
		||||
    "type": "dword",
 | 
			
		||||
    "value": 13
 | 
			
		||||
    "value": 14
 | 
			
		||||
  },
 | 
			
		||||
  "Width": {
 | 
			
		||||
    "type": "int",
 | 
			
		||||
 
 | 
			
		||||
@@ -87,7 +87,7 @@
 | 
			
		||||
  "Name": {
 | 
			
		||||
    "type": "cexolocstring",
 | 
			
		||||
    "value": {
 | 
			
		||||
      "0": "Respawning"
 | 
			
		||||
      "0": "| Respawning |"
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "NoRest": {
 | 
			
		||||
@@ -337,7 +337,7 @@
 | 
			
		||||
  },
 | 
			
		||||
  "Version": {
 | 
			
		||||
    "type": "dword",
 | 
			
		||||
    "value": 28
 | 
			
		||||
    "value": 33
 | 
			
		||||
  },
 | 
			
		||||
  "Width": {
 | 
			
		||||
    "type": "int",
 | 
			
		||||
 
 | 
			
		||||
@@ -37,7 +37,7 @@
 | 
			
		||||
        "__struct_id": 2,
 | 
			
		||||
        "FactionGlobal": {
 | 
			
		||||
          "type": "word",
 | 
			
		||||
          "value": 1
 | 
			
		||||
          "value": 0
 | 
			
		||||
        },
 | 
			
		||||
        "FactionName": {
 | 
			
		||||
          "type": "cexostring",
 | 
			
		||||
@@ -52,7 +52,7 @@
 | 
			
		||||
        "__struct_id": 3,
 | 
			
		||||
        "FactionGlobal": {
 | 
			
		||||
          "type": "word",
 | 
			
		||||
          "value": 1
 | 
			
		||||
          "value": 0
 | 
			
		||||
        },
 | 
			
		||||
        "FactionName": {
 | 
			
		||||
          "type": "cexostring",
 | 
			
		||||
@@ -995,7 +995,7 @@
 | 
			
		||||
        },
 | 
			
		||||
        "FactionRep": {
 | 
			
		||||
          "type": "dword",
 | 
			
		||||
          "value": 50
 | 
			
		||||
          "value": 100
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
@@ -1280,7 +1280,7 @@
 | 
			
		||||
        },
 | 
			
		||||
        "FactionRep": {
 | 
			
		||||
          "type": "dword",
 | 
			
		||||
          "value": 50
 | 
			
		||||
          "value": 100
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
@@ -1310,7 +1310,7 @@
 | 
			
		||||
        },
 | 
			
		||||
        "FactionRep": {
 | 
			
		||||
          "type": "dword",
 | 
			
		||||
          "value": 50
 | 
			
		||||
          "value": 100
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
@@ -1595,7 +1595,7 @@
 | 
			
		||||
        },
 | 
			
		||||
        "FactionRep": {
 | 
			
		||||
          "type": "dword",
 | 
			
		||||
          "value": 50
 | 
			
		||||
          "value": 100
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
@@ -3830,7 +3830,7 @@
 | 
			
		||||
        },
 | 
			
		||||
        "FactionRep": {
 | 
			
		||||
          "type": "dword",
 | 
			
		||||
          "value": 50
 | 
			
		||||
          "value": 100
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
 
 | 
			
		||||
@@ -624,7 +624,7 @@
 | 
			
		||||
        },
 | 
			
		||||
        "FactionID": {
 | 
			
		||||
          "type": "word",
 | 
			
		||||
          "value": 4
 | 
			
		||||
          "value": 15
 | 
			
		||||
        },
 | 
			
		||||
        "FeatList": {
 | 
			
		||||
          "type": "list",
 | 
			
		||||
@@ -699,7 +699,7 @@
 | 
			
		||||
        },
 | 
			
		||||
        "IsImmortal": {
 | 
			
		||||
          "type": "byte",
 | 
			
		||||
          "value": 0
 | 
			
		||||
          "value": 1
 | 
			
		||||
        },
 | 
			
		||||
        "IsPC": {
 | 
			
		||||
          "type": "byte",
 | 
			
		||||
@@ -739,7 +739,7 @@
 | 
			
		||||
        },
 | 
			
		||||
        "Plot": {
 | 
			
		||||
          "type": "byte",
 | 
			
		||||
          "value": 0
 | 
			
		||||
          "value": 1
 | 
			
		||||
        },
 | 
			
		||||
        "PortraitId": {
 | 
			
		||||
          "type": "word",
 | 
			
		||||
@@ -43146,7 +43146,7 @@
 | 
			
		||||
        },
 | 
			
		||||
        "XPosition": {
 | 
			
		||||
          "type": "float",
 | 
			
		||||
          "value": 77.206787109375
 | 
			
		||||
          "value": 77.24542999267578
 | 
			
		||||
        },
 | 
			
		||||
        "YOrientation": {
 | 
			
		||||
          "type": "float",
 | 
			
		||||
@@ -43154,11 +43154,11 @@
 | 
			
		||||
        },
 | 
			
		||||
        "YPosition": {
 | 
			
		||||
          "type": "float",
 | 
			
		||||
          "value": 102.9355850219727
 | 
			
		||||
          "value": 102.8522262573242
 | 
			
		||||
        },
 | 
			
		||||
        "ZPosition": {
 | 
			
		||||
          "type": "float",
 | 
			
		||||
          "value": -0.5900029540061951
 | 
			
		||||
          "value": -0.5899975299835205
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
@@ -81282,15 +81282,15 @@
 | 
			
		||||
        },
 | 
			
		||||
        "X": {
 | 
			
		||||
          "type": "float",
 | 
			
		||||
          "value": 79.86756896972656
 | 
			
		||||
          "value": 79.08158111572266
 | 
			
		||||
        },
 | 
			
		||||
        "Y": {
 | 
			
		||||
          "type": "float",
 | 
			
		||||
          "value": 120.5093231201172
 | 
			
		||||
          "value": 118.2999877929688
 | 
			
		||||
        },
 | 
			
		||||
        "Z": {
 | 
			
		||||
          "type": "float",
 | 
			
		||||
          "value": 9.5367431640625e-006
 | 
			
		||||
          "value": -5.7220458984375e-006
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
 
 | 
			
		||||
@@ -798,7 +798,7 @@
 | 
			
		||||
        },
 | 
			
		||||
        "XPosition": {
 | 
			
		||||
          "type": "float",
 | 
			
		||||
          "value": 13.00344657897949
 | 
			
		||||
          "value": 13.19540405273438
 | 
			
		||||
        },
 | 
			
		||||
        "YOrientation": {
 | 
			
		||||
          "type": "float",
 | 
			
		||||
@@ -806,11 +806,11 @@
 | 
			
		||||
        },
 | 
			
		||||
        "YPosition": {
 | 
			
		||||
          "type": "float",
 | 
			
		||||
          "value": 10.46471309661865
 | 
			
		||||
          "value": 8.502401351928711
 | 
			
		||||
        },
 | 
			
		||||
        "ZPosition": {
 | 
			
		||||
          "type": "float",
 | 
			
		||||
          "value": 2.980232238769531e-008
 | 
			
		||||
          "value": -5.7220458984375e-006
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    ]
 | 
			
		||||
 
 | 
			
		||||
@@ -956,11 +956,11 @@
 | 
			
		||||
  },
 | 
			
		||||
  "Mod_Entry_X": {
 | 
			
		||||
    "type": "float",
 | 
			
		||||
    "value": 10.0
 | 
			
		||||
    "value": 9.0
 | 
			
		||||
  },
 | 
			
		||||
  "Mod_Entry_Y": {
 | 
			
		||||
    "type": "float",
 | 
			
		||||
    "value": 7.0
 | 
			
		||||
    "value": 5.0
 | 
			
		||||
  },
 | 
			
		||||
  "Mod_Entry_Z": {
 | 
			
		||||
    "type": "float",
 | 
			
		||||
 
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								_module/ncs/ms_name_inc.ncs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								_module/ncs/ms_name_inc.ncs
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								_module/ncs/old_mod_enter.ncs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								_module/ncs/old_mod_enter.ncs
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -1,10 +1,24 @@
 | 
			
		||||
#include "prc_inc_racial"
 | 
			
		||||
#include "utl_i_sqluuid"
 | 
			
		||||
#include "utl_i_sqlocals"
 | 
			
		||||
#include "nw_i0_plot"
 | 
			
		||||
 | 
			
		||||
void GetKiller();
 | 
			
		||||
 | 
			
		||||
void Raise(object oPlayer)
 | 
			
		||||
void ClearAllFactionMembers(object oMember, object oPlayer)
 | 
			
		||||
{
 | 
			
		||||
//    AssignCommand(oMember, SpeakString("here"));
 | 
			
		||||
    AdjustReputation(oPlayer, oMember, 100);
 | 
			
		||||
    SetLocalInt(oPlayer, "NW_G_Playerhasbeenbad", 10); // * Player bad
 | 
			
		||||
    object oClear = GetFirstFactionMember(oMember, FALSE);
 | 
			
		||||
    while (GetIsObjectValid(oClear) == TRUE)
 | 
			
		||||
    {
 | 
			
		||||
        ClearPersonalReputation(oPlayer, oClear);
 | 
			
		||||
        oClear = GetNextFactionMember(oMember, FALSE);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
	
 | 
			
		||||
/* void EN4_Raise(object oPlayer)
 | 
			
		||||
{
 | 
			
		||||
        effect eVisual = EffectVisualEffect(VFX_IMP_RESTORATION);
 | 
			
		||||
 | 
			
		||||
@@ -37,6 +51,7 @@ void Raise(object oPlayer)
 | 
			
		||||
        SignalEvent(oPlayer, EventSpellCastAt(OBJECT_SELF, SPELL_RESTORATION, FALSE));
 | 
			
		||||
        ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisual, oPlayer);
 | 
			
		||||
}
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
void main()
 | 
			
		||||
{
 | 
			
		||||
@@ -81,8 +96,25 @@ if (SQLocalsUUID_GetInt(oPlayer,"PCHardcore") == 0 && SQLocalsUUID_GetInt(oPlaye
 | 
			
		||||
    {   SQLocalsUUID_SetInt(oPlayer, "NW_G_Playerhasbeenbad", 10); // * Player bad
 | 
			
		||||
        SetStandardFactionReputation(STANDARD_FACTION_DEFENDER, 80, oPlayer);
 | 
			
		||||
    }
 | 
			
		||||
	
 | 
			
		||||
	//:: Clears bad rep with Neutral faction.
 | 
			
		||||
	ClearAllFactionMembers(GetObjectByTag("en4_evilstarter"), oPlayer);
 | 
			
		||||
	
 | 
			
		||||
	//:: Hopefully stops the melee in Hightop if a player respawns after attacking Defenders or Citizens.
 | 
			
		||||
	object oGuard 		= GetObjectByTag("en4_cityguard4");
 | 
			
		||||
	object oCitizen 	= GetObjectByTag("en4_wcitizen");	
 | 
			
		||||
	object oMerchant 	= GetObjectByTag("en4_merchant6");
 | 
			
		||||
	
 | 
			
		||||
	AdjustFactionReputation(oGuard, oCitizen,   100);
 | 
			
		||||
    AdjustFactionReputation(oCitizen,   oGuard, 100);
 | 
			
		||||
	
 | 
			
		||||
	AdjustFactionReputation(oMerchant, oCitizen,   100);
 | 
			
		||||
    AdjustFactionReputation(oCitizen,   oMerchant, 100);
 | 
			
		||||
	
 | 
			
		||||
	AdjustFactionReputation(oGuard, oMerchant,   100);
 | 
			
		||||
    AdjustFactionReputation(oMerchant,   oGuard, 100);
 | 
			
		||||
 | 
			
		||||
DelayCommand(2.0, PopUpDeathGUIPanel(oPlayer,TRUE, TRUE,0,"Death has taken you."));
 | 
			
		||||
	DelayCommand(2.0, PopUpDeathGUIPanel(oPlayer,TRUE, TRUE,0,"You are dead."));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void GetKiller()
 | 
			
		||||
 
 | 
			
		||||
@@ -1,29 +1,46 @@
 | 
			
		||||
void main()
 | 
			
		||||
{
 | 
			
		||||
    object oPC = GetEnteringObject();
 | 
			
		||||
	object oPC;
 | 
			
		||||
	object oSpawnPoint;
 | 
			
		||||
	string sDestTag;
 | 
			
		||||
 | 
			
		||||
    if (GetIsPC(oPC))
 | 
			
		||||
    {
 | 
			
		||||
        string sDestTag = GetLocalString(oPC, "Respawn");
 | 
			
		||||
        if (sDestTag == "")
 | 
			
		||||
        {
 | 
			
		||||
            sDestTag = "en3_respawning";
 | 
			
		||||
        }
 | 
			
		||||
	oPC = GetEnteringObject();
 | 
			
		||||
 | 
			
		||||
        object oSpawnPoint = GetObjectByTag(sDestTag);
 | 
			
		||||
	//SendMessageToPC(oPC,"en3_respawn2 >> entering.");
 | 
			
		||||
 | 
			
		||||
	if (GetIsPC(oPC))
 | 
			
		||||
	{
 | 
			
		||||
		//SendMessageToPC(oPC,"en3_respawn2 >> PC found.");
 | 
			
		||||
		
 | 
			
		||||
		sDestTag = GetLocalString(oPC,"Respawn");
 | 
			
		||||
		
 | 
			
		||||
		if (sDestTag == "")
 | 
			
		||||
		{
 | 
			
		||||
			//SendMessageToPC(oPC,"en3_respawn2 >> Destination variable was unset, setting.");
 | 
			
		||||
			SetLocalString(oPC, "Respawn", "EN4_Respawn");			
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		//SendMessageToPC(oPC,"en3_respawn2 >> Destination tag is: "+sDestTag+".");
 | 
			
		||||
		
 | 
			
		||||
		oSpawnPoint = GetWaypointByTag(sDestTag);
 | 
			
		||||
		
 | 
			
		||||
        if (GetIsObjectValid(oSpawnPoint))
 | 
			
		||||
        {
 | 
			
		||||
            AssignCommand(oPC, JumpToLocation(GetLocation(oSpawnPoint)));
 | 
			
		||||
			//SendMessageToPC(oPC,"en3_respawn2 >> Destination is valid, jumping.");
 | 
			
		||||
			// Teleport the PC.
 | 
			
		||||
			AssignCommand(oPC, ClearAllActions());
 | 
			
		||||
			DelayCommand(0.3f,AssignCommand(oPC,JumpToObject(oSpawnPoint)));
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            // optional debug
 | 
			
		||||
            FloatingTextStringOnCreature("Invalid spawn point: " + sDestTag, oPC);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
        }		
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* void main()
 | 
			
		||||
{
 | 
			
		||||
object oPC;
 | 
			
		||||
 
 | 
			
		||||
@@ -53,31 +53,31 @@ void main()
 | 
			
		||||
    {
 | 
			
		||||
		//SQLocalsUUID_SetInt(oPC,"OverallQuest",132);
 | 
			
		||||
 | 
			
		||||
		SQLocals_SetInt(GetModule(),"ClientEnter",1);
 | 
			
		||||
		SetLocalInt(GetModule(),"ClientEnter",1);
 | 
			
		||||
		
 | 
			
		||||
		DelayCommand(1.0f,SQLocals_SetInt(GetModule(),"ClientEnter",0));
 | 
			
		||||
		DelayCommand(1.0f,SetLocalInt(GetModule(),"ClientEnter",0));
 | 
			
		||||
 | 
			
		||||
		if (SQLocals_GetInt(GetModule(),"ModuleStart") == 0)
 | 
			
		||||
		if (GetLocalInt(GetModule(),"ModuleStart") == 0)
 | 
			
		||||
			SetupModule();
 | 
			
		||||
		
 | 
			
		||||
		if (SQLocals_GetInt(GetModule(),"DynamicMerchant") == 0)
 | 
			
		||||
		if (GetLocalInt(GetModule(),"DynamicMerchant") == 0)
 | 
			
		||||
        {
 | 
			
		||||
			SetupDynamicMerchant();
 | 
			
		||||
			SQLocals_SetInt(GetModule(),"DynamicMerchant",1);
 | 
			
		||||
			SetLocalInt(GetModule(),"DynamicMerchant",1);
 | 
			
		||||
			SQLocalsUUID_SetInt(oPC,"DynamicMerchant",1);
 | 
			
		||||
        } 
 | 
			
		||||
		else 
 | 
			
		||||
		{
 | 
			
		||||
			if (SQLocalsUUID_GetInt(oPC,"DynamicMerchant") == 0)
 | 
			
		||||
			if (GetLocalInt(oPC,"DynamicMerchant") == 0)
 | 
			
		||||
			{
 | 
			
		||||
				AddToDynamicMerchant();
 | 
			
		||||
				SQLocalsUUID_SetInt(oPC,"DynamicMerchant",1);
 | 
			
		||||
			}
 | 
			
		||||
        }
 | 
			
		||||
		if (SQLocalsUUID_GetInt(oPC,"ModStart") == 0)
 | 
			
		||||
		if (GetLocalInt(oPC,"ModStart") == 0)
 | 
			
		||||
        {
 | 
			
		||||
			SQLocalsUUID_SetInt(oPC,"ModStart",1);
 | 
			
		||||
			SQLocalsUUID_SetInt(oPC,"Entering",1);
 | 
			
		||||
			SetLocalInt(oPC,"ModStart",1);
 | 
			
		||||
			SetLocalInt(oPC,"Entering",1);
 | 
			
		||||
        
 | 
			
		||||
			if (iAnimal >= 1)
 | 
			
		||||
			{
 | 
			
		||||
@@ -103,6 +103,7 @@ void main()
 | 
			
		||||
			SendMessageToPC(oPC,"Starting New Campaign...");
 | 
			
		||||
        
 | 
			
		||||
			SetLocalString(oPC,"Respawn","EN4_Respawn");
 | 
			
		||||
			SendMessageToPC(oPC,"EN4_Respawn is set on the 'Respawn' string var.");
 | 
			
		||||
 | 
			
		||||
			if (GetXP(oPC) == 0)
 | 
			
		||||
            {
 | 
			
		||||
@@ -144,10 +145,10 @@ void main()
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
	if (SQLocalsUUID_GetInt(GetModule(),"ModStarted") == 0)
 | 
			
		||||
	if (GetLocalInt(GetModule(),"ModStarted") == 0)
 | 
			
		||||
    {
 | 
			
		||||
		SetupRandomNPCs();
 | 
			
		||||
		SQLocalsUUID_SetInt(GetModule(),"ModStarted",1);
 | 
			
		||||
		SetLocalInt(GetModule(),"ModStarted",1);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -187,7 +188,7 @@ void SetupCharacter(object oPC)
 | 
			
		||||
 | 
			
		||||
	oItem = CreateItemOnObject("Tunic",oPC);
 | 
			
		||||
	
 | 
			
		||||
	AssignCommand(oPC, ActionEquipItem(oItem, INVENTORY_SLOT_CHEST));
 | 
			
		||||
	DelayCommand(0.0f, ActionEquipItem(oItem, INVENTORY_SLOT_CHEST));
 | 
			
		||||
 | 
			
		||||
	CheckSpecialRace(oPC);
 | 
			
		||||
 | 
			
		||||
@@ -789,14 +790,14 @@ if (iMod>0)
 | 
			
		||||
 | 
			
		||||
string GetRace(object oPC)
 | 
			
		||||
{
 | 
			
		||||
    string sRace = GetSubRace(oPC);
 | 
			
		||||
    
 | 
			
		||||
    if (sRace == "")
 | 
			
		||||
    {
 | 
			
		||||
        sRace = GetStringByStrRef(StringToInt(Get2DAString("racialtypes", "Name", GetRacialType(oPC))));
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    return sRace;
 | 
			
		||||
	string sRace = GetSubRace(oPC);
 | 
			
		||||
 | 
			
		||||
	if (sRace == "")
 | 
			
		||||
	{
 | 
			
		||||
		sRace = GetStringByStrRef(StringToInt(Get2DAString("racialtypes", "Name", GetRacialType(oPC))));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return sRace;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void SetupDynamicMerchant()
 | 
			
		||||
@@ -861,43 +862,43 @@ GetNegativeItem(oStore);
 | 
			
		||||
 | 
			
		||||
void AddToDynamicMerchant()
 | 
			
		||||
{
 | 
			
		||||
object oStore;
 | 
			
		||||
	object oStore;
 | 
			
		||||
 | 
			
		||||
oStore = GetObjectByTag("NH1_Dynamic");
 | 
			
		||||
	oStore = GetObjectByTag("NH1_Dynamic");
 | 
			
		||||
 | 
			
		||||
GetMagicItem(oStore,TRUE,TRUE,5);
 | 
			
		||||
GetMagicItem(oStore,TRUE,TRUE,5);
 | 
			
		||||
GetMagicItem(oStore,TRUE,TRUE,5);
 | 
			
		||||
GetMagicItem(oStore,TRUE,TRUE,5);
 | 
			
		||||
	GetMagicItem(oStore,TRUE,TRUE,5);
 | 
			
		||||
	GetMagicItem(oStore,TRUE,TRUE,5);
 | 
			
		||||
	GetMagicItem(oStore,TRUE,TRUE,5);
 | 
			
		||||
	GetMagicItem(oStore,TRUE,TRUE,5);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void SetupModule()
 | 
			
		||||
{
 | 
			
		||||
object oChest;
 | 
			
		||||
int iRandom;
 | 
			
		||||
int iAI;
 | 
			
		||||
	object oChest;
 | 
			
		||||
	int iRandom;
 | 
			
		||||
	int iAI;
 | 
			
		||||
 | 
			
		||||
SQLocals_SetInt(GetModule(),"ModuleStart",1);
 | 
			
		||||
SQLocals_SetInt(GetModule(),MODULE_SWITCH_ENABLE_BEBILITH_RUIN_ARMOR,FALSE);
 | 
			
		||||
SetMaxHenchmen(4);
 | 
			
		||||
	SetLocalInt(GetModule(),"ModuleStart",1);
 | 
			
		||||
	SetLocalInt(GetModule(),MODULE_SWITCH_ENABLE_BEBILITH_RUIN_ARMOR,FALSE);
 | 
			
		||||
	SetMaxHenchmen(4);
 | 
			
		||||
 | 
			
		||||
string sCampaign = "Endless Nights IV";
 | 
			
		||||
if (GetCampaignInt(sCampaign,"MP") == 1)
 | 
			
		||||
    sCampaign = "MP_Endless Nights IV";
 | 
			
		||||
iAI = GetCampaignInt(sCampaign,"MP");
 | 
			
		||||
SQLocals_SetInt(GetModule(),"NoAI",iAI);
 | 
			
		||||
	string sCampaign = "Endless Nights IV";
 | 
			
		||||
	if (GetCampaignInt(sCampaign,"MP") == 1)	sCampaign = "MP_Endless Nights IV";
 | 
			
		||||
 | 
			
		||||
oChest = GetObjectByTag("EN4_SpecChest" + IntToString(Random(2)+1));
 | 
			
		||||
SQLocals_SetInt(oChest,"Weapon",1);
 | 
			
		||||
	iAI = GetCampaignInt(sCampaign,"MP");
 | 
			
		||||
	SetLocalInt(GetModule(),"NoAI",iAI);
 | 
			
		||||
 | 
			
		||||
iRandom = Random(4);
 | 
			
		||||
if (iRandom==0)
 | 
			
		||||
    {
 | 
			
		||||
    iRandom = Random(4)+1;
 | 
			
		||||
    SQLocals_SetInt(GetModule(),"HTC_SpecialMerchant",iRandom);
 | 
			
		||||
    }
 | 
			
		||||
	oChest = GetObjectByTag("EN4_SpecChest" + IntToString(Random(2)+1));
 | 
			
		||||
	SetLocalInt(oChest,"Weapon",1);
 | 
			
		||||
 | 
			
		||||
WriteTimestampedLogEntry("*** Endless Night IV Loaded ***");
 | 
			
		||||
	iRandom = Random(4);
 | 
			
		||||
	if (iRandom==0)
 | 
			
		||||
	{
 | 
			
		||||
		iRandom = Random(4)+1;
 | 
			
		||||
		SetLocalInt(GetModule(),"HTC_SpecialMerchant",iRandom);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	WriteTimestampedLogEntry("*** Endless Night IV Loaded ***");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void CheckSpecialRace(object oPC)
 | 
			
		||||
@@ -1056,120 +1057,6 @@ void CheckSpecialRace(object oPC)
 | 
			
		||||
	else if (iRace == RACIAL_TYPE_ZAKYA_RAKSHASA) {iDeaths = 3; iMonstrous = 0;}
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
// if (iRace == RACIAL_TYPE_SHADOWSWYFT) {iDeaths = 2;}
 | 
			
		||||
 | 
			
		||||
// else if (iRace == RACIAL_TYPE_NERAPHIM) {iDeaths = 1; iMonstrous = 1;}
 | 
			
		||||
    
 | 
			
		||||
// else if (iRace == RACIAL_TYPE_TROLL)
 | 
			
		||||
    // {
 | 
			
		||||
    // iDeaths = 3;
 | 
			
		||||
    // iMonstrous = 1;
 | 
			
		||||
    // }
 | 
			
		||||
// else if (iRace == RACIAL_TYPE_HALFOGRE)
 | 
			
		||||
    // {
 | 
			
		||||
    // iDeaths = 2;
 | 
			
		||||
    // }
 | 
			
		||||
// else if (iRace == RACIAL_TYPE_AZER)
 | 
			
		||||
    // {
 | 
			
		||||
    // iDeaths = 3;
 | 
			
		||||
    // iMonstrous = 1;
 | 
			
		||||
    // }
 | 
			
		||||
// else if (iRace == RACIAL_TYPE_PIXIE)
 | 
			
		||||
    // {
 | 
			
		||||
    // iDeaths = 2;
 | 
			
		||||
    // }
 | 
			
		||||
// else if (iRace == RACIAL_TYPE_ILLITHID)
 | 
			
		||||
    // {
 | 
			
		||||
    // iDeaths = 3;
 | 
			
		||||
    // iMonstrous = 1;
 | 
			
		||||
    // }
 | 
			
		||||
// else if (iRace == RACIAL_TYPE_RAKSHASA)
 | 
			
		||||
    // {
 | 
			
		||||
    // iDeaths = 3;
 | 
			
		||||
    // iMonstrous = 1;
 | 
			
		||||
    // }
 | 
			
		||||
// else if (iRace == RACIAL_TYPE_GITHZERAI)
 | 
			
		||||
    // {
 | 
			
		||||
    // iDeaths = 2;
 | 
			
		||||
    // iMonstrous = 1;
 | 
			
		||||
    // }
 | 
			
		||||
// else if (iRace == RACIAL_TYPE_GITHYANKI)
 | 
			
		||||
    // {
 | 
			
		||||
    // iDeaths = 2;
 | 
			
		||||
    // iMonstrous = 1;
 | 
			
		||||
    // }
 | 
			
		||||
// else if (iRace == RACIAL_TYPE_PURE_YUAN)
 | 
			
		||||
    // {
 | 
			
		||||
    // iDeaths = 3;
 | 
			
		||||
    // iMonstrous = 1;
 | 
			
		||||
    // }
 | 
			
		||||
// else if (iRace == RACIAL_TYPE_LIZARDFOLK)
 | 
			
		||||
    // {
 | 
			
		||||
    // iDeaths = 2;
 | 
			
		||||
    // iMonstrous = 1;
 | 
			
		||||
    // }
 | 
			
		||||
// else if (iRace == RACIAL_TYPE_MINOTAUR)
 | 
			
		||||
    // {
 | 
			
		||||
    // iDeaths = 3;
 | 
			
		||||
    // iMonstrous = 1;
 | 
			
		||||
    // }
 | 
			
		||||
// else if (iRace == RACIAL_TYPE_BUGBEAR)
 | 
			
		||||
    // {
 | 
			
		||||
    // iDeaths = 1;
 | 
			
		||||
    // iMonstrous = 1;
 | 
			
		||||
    // }
 | 
			
		||||
// else if (iRace == RACIAL_TYPE_OGRE)
 | 
			
		||||
    // {
 | 
			
		||||
    // iDeaths = 3;
 | 
			
		||||
    // iMonstrous = 1;
 | 
			
		||||
    // }
 | 
			
		||||
// else if (iRace == RACIAL_TYPE_TIEFLING)
 | 
			
		||||
    // {
 | 
			
		||||
    // iDeaths = 1;
 | 
			
		||||
    // }
 | 
			
		||||
// else if (iRace == RACIAL_TYPE_TANARUKK)
 | 
			
		||||
    // {
 | 
			
		||||
    // iDeaths = 3;
 | 
			
		||||
    // iMonstrous = 1;
 | 
			
		||||
    // }
 | 
			
		||||
// else if (iRace == RACIAL_TYPE_FEYRI)
 | 
			
		||||
    // {
 | 
			
		||||
    // iDeaths = 3;
 | 
			
		||||
    // }
 | 
			
		||||
// else if (iRace == RACIAL_TYPE_AASIMAR)
 | 
			
		||||
    // {
 | 
			
		||||
    // iDeaths = 1;
 | 
			
		||||
    // }
 | 
			
		||||
// else if (iRace == RACIAL_TYPE_OROG)
 | 
			
		||||
    // {
 | 
			
		||||
    // iDeaths = 2;
 | 
			
		||||
    // iMonstrous = 1;
 | 
			
		||||
    // }
 | 
			
		||||
// else if (iRace == RACIAL_TYPE_DEEP_GNOME)
 | 
			
		||||
    // {
 | 
			
		||||
    // iDeaths = 2;
 | 
			
		||||
    // }
 | 
			
		||||
// else if (iRace == RACIAL_TYPE_DROW_FEMALE)
 | 
			
		||||
    // {
 | 
			
		||||
    // iDeaths = 2;
 | 
			
		||||
    // }
 | 
			
		||||
// else if (iRace == RACIAL_TYPE_WILD_DWARF)
 | 
			
		||||
    // {
 | 
			
		||||
    // iDeaths = 1;
 | 
			
		||||
    // }
 | 
			
		||||
// else if (iRace == RACIAL_TYPE_URDINNIR)
 | 
			
		||||
    // {
 | 
			
		||||
    // iDeaths = 2;
 | 
			
		||||
    // }
 | 
			
		||||
// else if (iRace == RACIAL_TYPE_DUERGAR)
 | 
			
		||||
    // {
 | 
			
		||||
    // iDeaths = 1;
 | 
			
		||||
    // }
 | 
			
		||||
// else if (iRace == RACIAL_TYPE_ARC_DWARF)
 | 
			
		||||
    // {
 | 
			
		||||
    // iDeaths = 2;
 | 
			
		||||
    // }
 | 
			
		||||
 | 
			
		||||
	if (iMonstrous == 1)
 | 
			
		||||
	{
 | 
			
		||||
		object oGood;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1518
									
								
								_module/nss/old_mod_enter.nss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1518
									
								
								_module/nss/old_mod_enter.nss
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -9,4 +9,4 @@ if (GetIsPC(oPC) && GetLocalInt(oPC,"Monstrous") == 1)
 | 
			
		||||
    oSpawnPoint = GetObjectByTag("EN4_MERespawn");
 | 
			
		||||
    DelayCommand(0.1f,AssignCommand(oPC,JumpToLocation(GetLocation(oSpawnPoint))));
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
@@ -1,13 +1,89 @@
 | 
			
		||||
{
 | 
			
		||||
  "__data_type": "UTC ",
 | 
			
		||||
  "Appearance_Head": {
 | 
			
		||||
    "type": "byte",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "Appearance_Type": {
 | 
			
		||||
    "type": "word",
 | 
			
		||||
    "value": 1103
 | 
			
		||||
  },
 | 
			
		||||
  "ArmorPart_RFoot": {
 | 
			
		||||
    "type": "byte",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "BodyBag": {
 | 
			
		||||
    "type": "byte",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "BodyPart_Belt": {
 | 
			
		||||
    "type": "byte",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "BodyPart_LBicep": {
 | 
			
		||||
    "type": "byte",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "BodyPart_LFArm": {
 | 
			
		||||
    "type": "byte",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "BodyPart_LFoot": {
 | 
			
		||||
    "type": "byte",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "BodyPart_LHand": {
 | 
			
		||||
    "type": "byte",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "BodyPart_LShin": {
 | 
			
		||||
    "type": "byte",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "BodyPart_LShoul": {
 | 
			
		||||
    "type": "byte",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "BodyPart_LThigh": {
 | 
			
		||||
    "type": "byte",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "BodyPart_Neck": {
 | 
			
		||||
    "type": "byte",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "BodyPart_Pelvis": {
 | 
			
		||||
    "type": "byte",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "BodyPart_RBicep": {
 | 
			
		||||
    "type": "byte",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "BodyPart_RFArm": {
 | 
			
		||||
    "type": "byte",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "BodyPart_RHand": {
 | 
			
		||||
    "type": "byte",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "BodyPart_RShin": {
 | 
			
		||||
    "type": "byte",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "BodyPart_RShoul": {
 | 
			
		||||
    "type": "byte",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "BodyPart_RThigh": {
 | 
			
		||||
    "type": "byte",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "BodyPart_Torso": {
 | 
			
		||||
    "type": "byte",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "Cha": {
 | 
			
		||||
    "type": "byte",
 | 
			
		||||
    "value": 14
 | 
			
		||||
@@ -32,6 +108,22 @@
 | 
			
		||||
      }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  "Color_Hair": {
 | 
			
		||||
    "type": "byte",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "Color_Skin": {
 | 
			
		||||
    "type": "byte",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "Color_Tattoo1": {
 | 
			
		||||
    "type": "byte",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "Color_Tattoo2": {
 | 
			
		||||
    "type": "byte",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "Comment": {
 | 
			
		||||
    "type": "cexostring",
 | 
			
		||||
    "value": ""
 | 
			
		||||
@@ -657,5 +749,81 @@
 | 
			
		||||
  "Wis": {
 | 
			
		||||
    "type": "byte",
 | 
			
		||||
    "value": 14
 | 
			
		||||
  },
 | 
			
		||||
  "xAppearance_Head": {
 | 
			
		||||
    "type": "word",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "xArmorPart_RFoot": {
 | 
			
		||||
    "type": "word",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "xBodyPart_Belt": {
 | 
			
		||||
    "type": "word",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "xBodyPart_LBicep": {
 | 
			
		||||
    "type": "word",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "xBodyPart_LFArm": {
 | 
			
		||||
    "type": "word",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "xBodyPart_LFoot": {
 | 
			
		||||
    "type": "word",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "xBodyPart_LHand": {
 | 
			
		||||
    "type": "word",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "xBodyPart_LShin": {
 | 
			
		||||
    "type": "word",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "xBodyPart_LShoul": {
 | 
			
		||||
    "type": "word",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "xBodyPart_LThigh": {
 | 
			
		||||
    "type": "word",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "xBodyPart_Neck": {
 | 
			
		||||
    "type": "word",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "xBodyPart_Pelvis": {
 | 
			
		||||
    "type": "word",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "xBodyPart_RBicep": {
 | 
			
		||||
    "type": "word",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "xBodyPart_RFArm": {
 | 
			
		||||
    "type": "word",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "xBodyPart_RHand": {
 | 
			
		||||
    "type": "word",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "xBodyPart_RShin": {
 | 
			
		||||
    "type": "word",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "xBodyPart_RShoul": {
 | 
			
		||||
    "type": "word",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "xBodyPart_RThigh": {
 | 
			
		||||
    "type": "word",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  },
 | 
			
		||||
  "xBodyPart_Torso": {
 | 
			
		||||
    "type": "word",
 | 
			
		||||
    "value": 0
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user