Randomized Henchmen
Randomized Henchmen
This commit is contained in:
parent
79303e9f79
commit
68de4c6610
@ -96,7 +96,7 @@
|
||||
},
|
||||
"OnEnter": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
"value": "spawn_smpl_onen2"
|
||||
},
|
||||
"OnExit": {
|
||||
"type": "resref",
|
||||
@ -2913,7 +2913,7 @@
|
||||
},
|
||||
"Version": {
|
||||
"type": "dword",
|
||||
"value": 15
|
||||
"value": 16
|
||||
},
|
||||
"Width": {
|
||||
"type": "int",
|
||||
|
@ -184,7 +184,7 @@
|
||||
"id": 87694,
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
"0": "\"Hey there!\" the gnome hold out his tiny hand, \"My name is Cranefoot Purplepanda, master of gnomish combat, and expert ranger. Gnomes, being the superior species we are, have taken it upon ourselves to aid the lesser people of this land. So, I am here to help you. Do you want to join my party?"
|
||||
"0": "\"Hey there!\" *the gnome holds out his tiny hand*, \"My name is Cranefoot Purplepanda, master of gnomish combat, and expert ranger. Gnomes, being the superior species we are, have taken it upon ourselves to aid the lesser people of this land. So, I am here to help you. Do you want to join my party?"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -10305,7 +10305,7 @@
|
||||
"Text": {
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
"0": "\"Umm...yea. I...uh, didn't really die there. Nope. Just used my magical gnomish teleporter to wisk me out of danger at the last second--your eyes were too slow to see.\""
|
||||
"0": "\"Umm...yea. I...uh, didn't really die there. Nope. Just used my magical gnomish teleporter to wisk me out of danger at the last second; your eyes were too slow to see.\""
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -10848,7 +10848,7 @@
|
||||
},
|
||||
"NumWords": {
|
||||
"type": "dword",
|
||||
"value": 2583
|
||||
"value": 2584
|
||||
},
|
||||
"PreventZoomIn": {
|
||||
"type": "byte",
|
||||
|
29007
_module/dlg/cv_hen_rogue.dlg.json
Normal file
29007
_module/dlg/cv_hen_rogue.dlg.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -21,6 +21,10 @@
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"ActionParams": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"Animation": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
@ -50,6 +54,10 @@
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"ConditionParams": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"Index": {
|
||||
"type": "dword",
|
||||
"value": 1
|
||||
@ -65,6 +73,10 @@
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"ConditionParams": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"Index": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
@ -78,7 +90,7 @@
|
||||
},
|
||||
"Script": {
|
||||
"type": "resref",
|
||||
"value": "at_caplvlup"
|
||||
"value": ""
|
||||
},
|
||||
"Sound": {
|
||||
"type": "resref",
|
||||
@ -97,6 +109,10 @@
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"ActionParams": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"Animation": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
@ -126,6 +142,10 @@
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"ConditionParams": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"Index": {
|
||||
"type": "dword",
|
||||
"value": 3
|
||||
@ -141,6 +161,10 @@
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"ConditionParams": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"Index": {
|
||||
"type": "dword",
|
||||
"value": 2
|
||||
@ -173,6 +197,10 @@
|
||||
},
|
||||
{
|
||||
"__struct_id": 2,
|
||||
"ActionParams": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"Animation": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
@ -202,6 +230,10 @@
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"ConditionParams": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"Index": {
|
||||
"type": "dword",
|
||||
"value": 5
|
||||
@ -217,6 +249,10 @@
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"ConditionParams": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"Index": {
|
||||
"type": "dword",
|
||||
"value": 4
|
||||
@ -262,6 +298,10 @@
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"ActionParams": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"Animation": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
@ -303,6 +343,10 @@
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"ActionParams": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"Animation": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
@ -328,6 +372,10 @@
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"ConditionParams": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"Index": {
|
||||
"type": "dword",
|
||||
"value": 1
|
||||
@ -360,6 +408,10 @@
|
||||
},
|
||||
{
|
||||
"__struct_id": 2,
|
||||
"ActionParams": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"Animation": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
@ -401,6 +453,10 @@
|
||||
},
|
||||
{
|
||||
"__struct_id": 3,
|
||||
"ActionParams": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"Animation": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
@ -426,6 +482,10 @@
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"ConditionParams": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"Index": {
|
||||
"type": "dword",
|
||||
"value": 2
|
||||
@ -458,6 +518,10 @@
|
||||
},
|
||||
{
|
||||
"__struct_id": 4,
|
||||
"ActionParams": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"Animation": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
@ -499,6 +563,10 @@
|
||||
},
|
||||
{
|
||||
"__struct_id": 5,
|
||||
"ActionParams": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"Animation": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
@ -549,6 +617,10 @@
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"ConditionParams": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"Index": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
|
@ -184,7 +184,7 @@
|
||||
"id": 87694,
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
"0": "\"Yea? What do you want? If you want to talk, go somewhere else. You want a rogue: a killer, a sneak, a scout, I'm your guy--<FullName>. You need that kind of help?\""
|
||||
"0": "\"Yea? What do you want? If you want to talk, go somewhere else. You want a rogue: a killer, a sneak, a scout, I'm your guy. You need that kind of help?\""
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -122,20 +122,6 @@
|
||||
"value": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 4,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 4,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 4,
|
||||
"Comment": {
|
||||
@ -273,41 +259,6 @@
|
||||
"value": "Source: Columns & Things by NewAge"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 9,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Charlie's Oriental Placables v1.0 by Charlie"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 9,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Source: All Purpose Placeables 1.1 by M.G.Skaggs"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 9,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Source: All Purpose Placeables 1.1 by M.G.Skaggs"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 9,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Source: All Purpose Placeables 1.1 by M.G.Skaggs"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 9,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Source: Torture, Taxidermy, and High Tea by Gnomad"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 9,
|
||||
"Comment": {
|
||||
@ -469,13 +420,6 @@
|
||||
"value": "Source: LOK Dungeon Tileset 1.04 Full by Danmar\r\n(Placeables only extracted)"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 9,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Source: Placeable Pak by Schazzwozzer"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 9,
|
||||
"Comment": {
|
||||
@ -536,6 +480,55 @@
|
||||
"WaypointList": {
|
||||
"type": "list",
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 5,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "This is the default waypoint you may place to set a patrol path for a creature or NPC.\r\n1. Create the creature and either use its current Tag or fill in a new one.\r\n2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature.\r\n3. Place a series of waypoints along the route you wish the creature to walk.\r\n4. Select all of the newly created waypoints and right click. Choose the Create Set option.\r\n5. The waypoint set will have a set name of \"WP_\" + NPC Tag. Thus if an NPC with the Tag \"Guard\" will have a waypoint set called \"WP_Guard\". Note that Tags are case sensitive."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 5,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "This is the default waypoint you may place to set a patrol path for a creature or NPC.\r\n1. Create the creature and either use its current Tag or fill in a new one.\r\n2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature.\r\n3. Place a series of waypoints along the route you wish the creature to walk.\r\n4. Select all of the newly created waypoints and right click. Choose the Create Set option.\r\n5. The waypoint set will have a set name of \"WP_\" + NPC Tag. Thus if an NPC with the Tag \"Guard\" will have a waypoint set called \"WP_Guard\". Note that Tags are case sensitive."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 5,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "This is the default waypoint you may place to set a patrol path for a creature or NPC.\r\n1. Create the creature and either use its current Tag or fill in a new one.\r\n2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature.\r\n3. Place a series of waypoints along the route you wish the creature to walk.\r\n4. Select all of the newly created waypoints and right click. Choose the Create Set option.\r\n5. The waypoint set will have a set name of \"WP_\" + NPC Tag. Thus if an NPC with the Tag \"Guard\" will have a waypoint set called \"WP_Guard\". Note that Tags are case sensitive."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 5,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "This is the default waypoint you may place to set a patrol path for a creature or NPC.\r\n1. Create the creature and either use its current Tag or fill in a new one.\r\n2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature.\r\n3. Place a series of waypoints along the route you wish the creature to walk.\r\n4. Select all of the newly created waypoints and right click. Choose the Create Set option.\r\n5. The waypoint set will have a set name of \"WP_\" + NPC Tag. Thus if an NPC with the Tag \"Guard\" will have a waypoint set called \"WP_Guard\". Note that Tags are case sensitive."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 5,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "This is the default waypoint you may place to set a patrol path for a creature or NPC.\r\n1. Create the creature and either use its current Tag or fill in a new one.\r\n2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature.\r\n3. Place a series of waypoints along the route you wish the creature to walk.\r\n4. Select all of the newly created waypoints and right click. Choose the Create Set option.\r\n5. The waypoint set will have a set name of \"WP_\" + NPC Tag. Thus if an NPC with the Tag \"Guard\" will have a waypoint set called \"WP_Guard\". Note that Tags are case sensitive."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 5,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "This is the default waypoint you may place to set a patrol path for a creature or NPC.\r\n1. Create the creature and either use its current Tag or fill in a new one.\r\n2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature.\r\n3. Place a series of waypoints along the route you wish the creature to walk.\r\n4. Select all of the newly created waypoints and right click. Choose the Create Set option.\r\n5. The waypoint set will have a set name of \"WP_\" + NPC Tag. Thus if an NPC with the Tag \"Guard\" will have a waypoint set called \"WP_Guard\". Note that Tags are case sensitive."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 5,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "This is the default waypoint you may place to set a patrol path for a creature or NPC.\r\n1. Create the creature and either use its current Tag or fill in a new one.\r\n2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature.\r\n3. Place a series of waypoints along the route you wish the creature to walk.\r\n4. Select all of the newly created waypoints and right click. Choose the Create Set option.\r\n5. The waypoint set will have a set name of \"WP_\" + NPC Tag. Thus if an NPC with the Tag \"Guard\" will have a waypoint set called \"WP_Guard\". Note that Tags are case sensitive."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 5,
|
||||
"Comment": {
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -9019,25 +9019,6 @@
|
||||
"value": "ra_g_ant_soldr02"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"CR": {
|
||||
"type": "float",
|
||||
"value": 2.0
|
||||
},
|
||||
"FACTION": {
|
||||
"type": "cexostring",
|
||||
"value": "Animal"
|
||||
},
|
||||
"NAME": {
|
||||
"type": "cexostring",
|
||||
"value": "Giant Ant: Worker"
|
||||
},
|
||||
"RESREF": {
|
||||
"type": "resref",
|
||||
"value": "zep_giantantw001"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"CR": {
|
||||
@ -9057,6 +9038,25 @@
|
||||
"value": "ra_g_ant_workr01"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"CR": {
|
||||
"type": "float",
|
||||
"value": 2.0
|
||||
},
|
||||
"FACTION": {
|
||||
"type": "cexostring",
|
||||
"value": "Animal"
|
||||
},
|
||||
"NAME": {
|
||||
"type": "cexostring",
|
||||
"value": "Giant Ant: Worker"
|
||||
},
|
||||
"RESREF": {
|
||||
"type": "resref",
|
||||
"value": "zep_giantantw001"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"CR": {
|
||||
@ -18214,6 +18214,25 @@
|
||||
"value": "gortizin"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"CR": {
|
||||
"type": "float",
|
||||
"value": 1.0
|
||||
},
|
||||
"FACTION": {
|
||||
"type": "cexostring",
|
||||
"value": "Merchant"
|
||||
},
|
||||
"NAME": {
|
||||
"type": "cexostring",
|
||||
"value": "Henchman: Rogue"
|
||||
},
|
||||
"RESREF": {
|
||||
"type": "resref",
|
||||
"value": "npc_hen_rogue001"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"CR": {
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
_module/ncs/ra_hen_spw_rogue.ncs
Normal file
BIN
_module/ncs/ra_hen_spw_rogue.ncs
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -10,8 +10,10 @@
|
||||
|
||||
#include "69_INC_HENAI"
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
|
||||
//RESPAWN WAYPOINT INSTRUCTIONS
|
||||
//Create a specific respawn location for henchman with a waypoint with TAG "WP_Respawn_'TAG'"
|
||||
//where 'TAG' is the TAG of the NPC
|
||||
@ -50,7 +52,7 @@ void main()
|
||||
SetLocalInt(OBJECT_SELF, "HenchInvDrop", TRUE);
|
||||
|
||||
//Sets the distance from the enemy that the henchman will switch to melee weapons
|
||||
SetLocalFloat(OBJECT_SELF, "HenchRange", 5.0);
|
||||
SetLocalFloat(OBJECT_SELF, "HenchRange", 10.0);
|
||||
|
||||
//Sets up the special henchmen listening patterns
|
||||
SetAssociateListenPatterns();
|
||||
@ -144,6 +146,8 @@ void main()
|
||||
//SetSpawnInCondition(NW_FLAG_ON_DIALOGUE_EVENT); //OPTIONAL BEHAVIOR - Fire User Defined Event 1004
|
||||
//SetSpawnInCondition(NW_FLAG_DEATH_EVENT); //OPTIONAL BEHAVIOR - Fire User Defined Event 1007
|
||||
|
||||
|
||||
|
||||
if(GetLocalInt(OBJECT_SELF, "HenchInvDrop") == FALSE)
|
||||
{
|
||||
HenchmanNoDropItems69(TRUE, OBJECT_SELF);
|
||||
|
@ -5,38 +5,50 @@
|
||||
// By Thrym of Markshire 5/21/06 //
|
||||
// //
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// FUNCTION: //
|
||||
// The Nomenclature is an include file placed in the spawn script //
|
||||
// nw_c2_default9 designed to assign a name to a generic NPC who may //
|
||||
// wander towns, roads, shops, etc. //
|
||||
// //
|
||||
// Utilizing both SetName and RandomName the system will name the NPC in //
|
||||
// one of two ways ... //
|
||||
// //
|
||||
// "SET_NAME": By setting the variable "SET_NAME" on the NPC and //
|
||||
// assigning it a string the creature will rename itself upon spawning. //
|
||||
// This is handy for DM's and builders to create more precisely named //
|
||||
// creatures for the palette and then generize them upon spawn. //
|
||||
// //
|
||||
// eg. Ancient White Dragon in the Creator becomes White Dragon on Spawn. //
|
||||
// //
|
||||
// "SET_NAME" = "RANDOM": By setting the same variable to the name "RANDOM" //
|
||||
// the NPC then is given a random name generated by RACE and GENDER using //
|
||||
// the RandomName function. //
|
||||
// //
|
||||
// eg. Male Dwarven Villager in the creator becomes Gloigan on spawn //
|
||||
// this time and perhaps Rufus on the next spawned Villager. //
|
||||
// //
|
||||
// "NAME_TYPE": Setting this int variable to "1" will cause a Full Name //
|
||||
// to be generated if the "SET_NAME" is set to "RANDOM". //
|
||||
// //
|
||||
// eg. Male Dwarven Villager becomes Gloigan Stonecutter or Rufus Mason. //
|
||||
// //
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/*
|
||||
// FUNCTION:
|
||||
// The Nomenclature is an include file placed in the spawn script
|
||||
// nw_c2_default9 designed to assign a name to a generic NPC who may
|
||||
// wander towns, roads, shops, etc.
|
||||
//
|
||||
// Utilizing both SetName and RandomName the system will name the NPC in
|
||||
// one of two ways ...
|
||||
//
|
||||
// "SET_NAME": By setting the variable "SET_NAME" on the NPC and
|
||||
// assigning it a string the creature will rename itself upon spawning.
|
||||
// This is handy for DM's and builders to create more precisely named
|
||||
// creatures for the palette and then generize them upon spawn.
|
||||
//
|
||||
// eg. Ancient White Dragon in the Creator becomes White Dragon on Spawn.
|
||||
//
|
||||
// "SET_NAME" = "RANDOM": By setting the same variable to the name "RANDOM"
|
||||
// the NPC then is given a random name generated by RACE and GENDER using
|
||||
// the RandomName function.
|
||||
//
|
||||
// eg. Male Dwarven Villager in the creator becomes Gloigan on spawn
|
||||
// this time and perhaps Rufus on the next spawned Villager.
|
||||
//
|
||||
// "NAME_TYPE": Setting this int variable to "1" will cause a Full Name
|
||||
// to be generated if the "SET_NAME" is set to "RANDOM".
|
||||
//
|
||||
// eg. Male Dwarven Villager becomes Gloigan Stonecutter or Rufus Mason.
|
||||
|
||||
"RND_ROGUE"
|
||||
"RND_BARBARIAN"
|
||||
"RND_FIGHTER"
|
||||
"RND_CLERIC" : Setting these to "1" will give the NPC a class appropriate
|
||||
"RND_MAGE" : title
|
||||
"RND_DRUID"
|
||||
"RND_RANGER"
|
||||
|
||||
|
||||
//
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////*/
|
||||
|
||||
//void main (){}
|
||||
|
||||
|
||||
///// FUNCTION DECLARATIONS ////////////////////////////////////////////////////
|
||||
|
||||
// Generates a Random First Name
|
||||
@ -66,13 +78,245 @@ void ms_Nomenclature(object oNPC = OBJECT_SELF)
|
||||
string sTitle = GetLocalString(oNPC, "TITLE");
|
||||
string sPostfix = GetLocalString(oNPC, "POSTFIX");
|
||||
|
||||
int nRndRogue = GetLocalInt(OBJECT_SELF,"RND_ROGUE");
|
||||
if (nRndRogue == 1)
|
||||
{
|
||||
int nResult = d6(1);
|
||||
if (nResult == 1)
|
||||
{
|
||||
sPostfix = "the Quick";
|
||||
}
|
||||
else if(nResult == 2)
|
||||
{
|
||||
sPostfix = "the Quiet";
|
||||
}
|
||||
else if(nResult == 3)
|
||||
{
|
||||
sPostfix = "the Sharp";
|
||||
}
|
||||
else if(nResult ==4)
|
||||
{
|
||||
sPostfix = "the Sneak";
|
||||
}
|
||||
else if(nResult == 5)
|
||||
{
|
||||
sPostfix = "the Rogue";
|
||||
}
|
||||
else
|
||||
sPostfix = "the Footpad";
|
||||
|
||||
}
|
||||
|
||||
int nRndBarb = GetLocalInt(OBJECT_SELF,"RND_BARBARIAN");
|
||||
if (nRndBarb == 1)
|
||||
{
|
||||
int nResult = d6(1);
|
||||
if (nResult == 1)
|
||||
{
|
||||
sPostfix = "the Barbarian";
|
||||
}
|
||||
else if(nResult == 2)
|
||||
{
|
||||
sPostfix = "the Destroyer";
|
||||
}
|
||||
else if(nResult == 3)
|
||||
{
|
||||
sPostfix = "of the Plains";
|
||||
}
|
||||
else if(nResult ==4)
|
||||
{
|
||||
sPostfix = "of Tiger Clan";
|
||||
}
|
||||
else if(nResult == 5)
|
||||
{
|
||||
sPostfix = "of Bear Clan";
|
||||
}
|
||||
else
|
||||
sPostfix = "the Avenger";
|
||||
|
||||
}
|
||||
|
||||
int nRndFight = GetLocalInt(OBJECT_SELF,"RND_FIGHTER");
|
||||
if (nRndFight == 1)
|
||||
{
|
||||
int nResult = d6(1);
|
||||
if (nResult == 1)
|
||||
{
|
||||
sPostfix = "the Strong";
|
||||
}
|
||||
else if(nResult == 2)
|
||||
{
|
||||
sPostfix = "the Stout";
|
||||
}
|
||||
else if(nResult == 3)
|
||||
{
|
||||
sPostfix = "of the Blade";
|
||||
}
|
||||
else if(nResult ==4)
|
||||
{
|
||||
sPostfix = "of Neverwinter";
|
||||
}
|
||||
else if(nResult == 5)
|
||||
{
|
||||
sPostfix = "of Amn";
|
||||
}
|
||||
else
|
||||
sPostfix = "the Swordhand";
|
||||
|
||||
}
|
||||
|
||||
int nRndCleric = GetLocalInt(OBJECT_SELF,"RND_CLERIC");
|
||||
if (nRndCleric == 1)
|
||||
{
|
||||
int nResult = d6(1);
|
||||
if (nResult == 1)
|
||||
{
|
||||
sPostfix = "the Pious";
|
||||
}
|
||||
else if(nResult == 2)
|
||||
{
|
||||
sPostfix = "the Holy";
|
||||
}
|
||||
else if(nResult == 3)
|
||||
{
|
||||
sPostfix = "the Priest";
|
||||
}
|
||||
else if(nResult ==4)
|
||||
{
|
||||
sPostfix = "the Zealous";
|
||||
}
|
||||
else if(nResult == 5)
|
||||
{
|
||||
sPostfix = "of Phlan";
|
||||
}
|
||||
else
|
||||
sPostfix = "the Wise";
|
||||
|
||||
}
|
||||
|
||||
int nRndMage = GetLocalInt(OBJECT_SELF,"RND_MAGE");
|
||||
if (nRndMage == 1)
|
||||
{
|
||||
int nResult = d6(1);
|
||||
if (nResult == 1)
|
||||
{
|
||||
sPostfix = "the Mad";
|
||||
}
|
||||
else if(nResult == 2)
|
||||
{
|
||||
sPostfix = "the Arcane";
|
||||
}
|
||||
else if(nResult == 3)
|
||||
{
|
||||
sPostfix = "the Black";
|
||||
}
|
||||
else if(nResult ==4)
|
||||
{
|
||||
sPostfix = "the Wizard";
|
||||
}
|
||||
else if(nResult == 5)
|
||||
{
|
||||
sPostfix = "of Waterdeep";
|
||||
}
|
||||
else
|
||||
sPostfix = "the Mage";
|
||||
|
||||
}
|
||||
|
||||
int nRndBard = GetLocalInt(OBJECT_SELF,"RND_BARD");
|
||||
if (nRndMage == 1)
|
||||
{
|
||||
int nResult = d6(1);
|
||||
if (nResult == 1)
|
||||
{
|
||||
sPostfix = "the Dancer";
|
||||
}
|
||||
else if(nResult == 2)
|
||||
{
|
||||
sPostfix = "the Troubador";
|
||||
}
|
||||
else if(nResult == 3)
|
||||
{
|
||||
sPostfix = "of the Song";
|
||||
}
|
||||
else if(nResult ==4)
|
||||
{
|
||||
sPostfix = "the Bard";
|
||||
}
|
||||
else if(nResult == 5)
|
||||
{
|
||||
sPostfix = "the Raconteur";
|
||||
}
|
||||
else
|
||||
sPostfix = "the Minstrel";
|
||||
|
||||
}
|
||||
|
||||
int nRndDruid = GetLocalInt(OBJECT_SELF,"RND_DRUID");
|
||||
if (nRndDruid == 1)
|
||||
{
|
||||
int nResult = d6(1);
|
||||
if (nResult == 1)
|
||||
{
|
||||
sPostfix = "the Druid";
|
||||
}
|
||||
else if(nResult == 2)
|
||||
{
|
||||
sPostfix = "of the Forest";
|
||||
}
|
||||
else if(nResult == 3)
|
||||
{
|
||||
sPostfix = "of the Wild";
|
||||
}
|
||||
else if(nResult ==4)
|
||||
{
|
||||
sPostfix = "the Wolflord";
|
||||
}
|
||||
else if(nResult == 5)
|
||||
{
|
||||
sPostfix = "the Treelord";
|
||||
}
|
||||
else
|
||||
sPostfix = "the Warden";
|
||||
|
||||
}
|
||||
|
||||
int nRndRanger = GetLocalInt(OBJECT_SELF,"RND_RANGER");
|
||||
if (nRndRanger == 1)
|
||||
{
|
||||
int nResult = d6(1);
|
||||
if (nResult == 1)
|
||||
{
|
||||
sPostfix = "the Ranger";
|
||||
}
|
||||
else if(nResult == 2)
|
||||
{
|
||||
sPostfix = "of the Forest";
|
||||
}
|
||||
else if(nResult == 3)
|
||||
{
|
||||
sPostfix = "of the Wild";
|
||||
}
|
||||
else if(nResult ==4)
|
||||
{
|
||||
sPostfix = "the Strider";
|
||||
}
|
||||
else if(nResult == 5)
|
||||
{
|
||||
sPostfix = "the Venger";
|
||||
}
|
||||
else
|
||||
sPostfix = "the Warden";
|
||||
|
||||
}
|
||||
|
||||
if (sRandomName != "")
|
||||
{
|
||||
if (sRandomName == "RANDOM")
|
||||
{
|
||||
switch (GetLocalInt(oNPC, "NAME_TYPE"))
|
||||
{
|
||||
case 1: sRandomName = sTitle + " " + ms_RandomFirstName(oNPC) + " " + ms_RandomLastName(oNPC); break;
|
||||
case 1: sRandomName = sTitle + " " + ms_RandomFirstName(oNPC) + " " + ms_RandomLastName(oNPC)+ " " + sPostfix; break;
|
||||
default: sRandomName = sTitle + " " + ms_RandomFirstName(oNPC) + " " + sPostfix; break;
|
||||
}
|
||||
}
|
||||
|
186
_module/nss/ra_hen_spw_rogue.nss
Normal file
186
_module/nss/ra_hen_spw_rogue.nss
Normal file
@ -0,0 +1,186 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Associate: On Spawn In
|
||||
//:: ra_hen_spw_rogue
|
||||
//:: Copyright (c) 2021 Project RATDOG
|
||||
//:://////////////////////////////////////////////
|
||||
/*
|
||||
|
||||
OnSpawn for randomized rogue henchman.
|
||||
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Jaysyn
|
||||
//:: Created On: Oct 10, 2021
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
#include "69_INC_HENAI"
|
||||
#include "ms_name_inc"
|
||||
#include "rnd_commoner_inc"
|
||||
#include "ra_rnd_armor_inc"
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
// Apply randomizations.
|
||||
RndLightArmor(OBJECT_SELF);
|
||||
|
||||
ms_Nomenclature(OBJECT_SELF);
|
||||
|
||||
int nKeepskin = GetLocalInt(OBJECT_SELF,"RA_KEEPSKIN");
|
||||
if (nKeepskin != 1)
|
||||
{
|
||||
rnd_skin(OBJECT_SELF);
|
||||
}
|
||||
|
||||
rnd_skin(OBJECT_SELF);
|
||||
|
||||
int nKeephead = GetLocalInt(OBJECT_SELF,"RA_KEEPHEAD");
|
||||
if (nKeephead != 1)
|
||||
{
|
||||
rnd_head(OBJECT_SELF);
|
||||
}
|
||||
|
||||
int nKeeptats = GetLocalInt(OBJECT_SELF,"RA_KEEPTATS");
|
||||
if (nKeeptats != 1)
|
||||
{
|
||||
rnd_tattoo(OBJECT_SELF);
|
||||
}
|
||||
//RESPAWN WAYPOINT INSTRUCTIONS
|
||||
//Create a specific respawn location for henchman with a waypoint with TAG "WP_Respawn_'TAG'"
|
||||
//where 'TAG' is the TAG of the NPC
|
||||
//Create a default general respawn location with waypoint with TAG "NW_DEATH_TEMPLE"
|
||||
//Create a Home waypoint with TAG "WP_Home_'TAG'" where 'TAG' is the TAG of the NPC
|
||||
// This is where the Hench will go when they quit the PC
|
||||
|
||||
//Sets default level up package based on settings in henchman's blueprint
|
||||
//This may be changed through henchman dialog, do not edit
|
||||
SetLocalInt(OBJECT_SELF, "ClassPackage", GetCreatureStartingPackage(OBJECT_SELF));
|
||||
//Set variable for level up, do not edit
|
||||
SetLocalInt(OBJECT_SELF, "NewClass", -1);
|
||||
|
||||
//Sets up the HENCH_LAG for this henchman,
|
||||
//Replace the 0 with any number the henchman lags(+)
|
||||
//or leads(-) in level. Save this script as something
|
||||
//else per this henchman. This allows multileveled
|
||||
//henchman
|
||||
//Minimum of -1,-2,-3... Maximum of 1,2,3... Same Level = 0
|
||||
SetLocalInt(OBJECT_SELF, "HenchLag", 0);
|
||||
|
||||
//Sets the Maximum Level the Henchman may level
|
||||
//Default: 40
|
||||
SetLocalInt(OBJECT_SELF, "HENCH_MAXLEVEL", 40);
|
||||
|
||||
//Sets whether or not PC is allowed into henchman inventory
|
||||
//TRUE: Inventory is accessible
|
||||
//FALSE: Inventory is not accessible
|
||||
//Default: TRUE
|
||||
SetLocalInt(OBJECT_SELF, "HenchInv", TRUE);
|
||||
|
||||
//Sets whether or not initial henchman inventory is no drop
|
||||
//TRUE: Inventory is droppable
|
||||
//FALSE: Inventory is not droppable
|
||||
//Default: TRUE
|
||||
SetLocalInt(OBJECT_SELF, "HenchInvDrop", TRUE);
|
||||
|
||||
//Sets the distance from the enemy that the henchman will switch to melee weapons
|
||||
SetLocalFloat(OBJECT_SELF, "HenchRange", 10.0);
|
||||
|
||||
//Sets up the special henchmen listening patterns
|
||||
SetAssociateListenPatterns();
|
||||
// Set additional henchman listening patterns
|
||||
bkSetListeningPatterns();
|
||||
|
||||
//Equips melee weapon by default
|
||||
//Equips ranged weapons by default if TRUE.
|
||||
SetAssociateState(NW_ASC_USE_RANGED_WEAPON, FALSE);
|
||||
|
||||
//Sets the default distance that the henchman will follow
|
||||
//the PC, only uncomment one of the following three
|
||||
SetAssociateState(NW_ASC_DISTANCE_2_METERS);
|
||||
//SetAssociateState(NW_ASC_DISTANCE_4_METERS);
|
||||
//SetAssociateState(NW_ASC_DISTANCE_6_METERS);
|
||||
//End default distances
|
||||
|
||||
SetAssociateState(NW_ASC_POWER_CASTING);
|
||||
SetAssociateState(NW_ASC_HEAL_AT_50);
|
||||
SetAssociateState(NW_ASC_RETRY_OPEN_LOCKS);
|
||||
SetAssociateState(NW_ASC_DISARM_TRAPS);
|
||||
SetAssociateState(NW_ASC_MODE_DEFEND_MASTER, FALSE);
|
||||
|
||||
// April 2002: Summoned monsters, associates and familiars need to stay
|
||||
// further back due to their size.
|
||||
if (GetAssociate(ASSOCIATE_TYPE_HENCHMAN, GetMaster()) == OBJECT_SELF ||
|
||||
GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION, GetMaster()) == OBJECT_SELF ||
|
||||
GetAssociate(ASSOCIATE_TYPE_DOMINATED, GetMaster()) == OBJECT_SELF ||
|
||||
GetAssociate(ASSOCIATE_TYPE_FAMILIAR, GetMaster()) == OBJECT_SELF ||
|
||||
GetAssociate(ASSOCIATE_TYPE_SUMMONED, GetMaster()) == OBJECT_SELF)
|
||||
{
|
||||
SetAssociateState(NW_ASC_DISTANCE_4_METERS);
|
||||
}
|
||||
|
||||
// SPECIAL CONVERSATION SETTTINGS
|
||||
//SetSpawnInCondition(NW_FLAG_SPECIAL_CONVERSATION);
|
||||
//SetSpawnInCondition(NW_FLAG_SPECIAL_COMBAT_CONVERSATION);
|
||||
// This causes the creature to say a special greeting in their conversation file
|
||||
// upon Perceiving the player. Attach the [NW_D2_GenCheck.nss] script to the desired
|
||||
// greeting in order to designate it. As the creature is actually saying this to
|
||||
// himself, don't attach any player responses to the greeting.
|
||||
|
||||
//Set starting location
|
||||
SetAssociateStartLocation();
|
||||
|
||||
// For some general behavior while we don't have a master,
|
||||
// let's do some immobile animations
|
||||
// SetSpawnInCondition(NW_FLAG_IMMOBILE_AMBIENT_ANIMATIONS);
|
||||
|
||||
// For some general behavior while we don't have a master,
|
||||
// let's do some mobile animations
|
||||
// SetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS);
|
||||
|
||||
|
||||
// **** Special Combat Tactics *****//
|
||||
// * These are special flags that can be set on creatures to
|
||||
// * make them follow certain specialized combat tactics.
|
||||
// * NOTE: ONLY ONE OF THESE SHOULD BE SET ON A SINGLE CREATURE.
|
||||
|
||||
// * Ranged attacker
|
||||
// * Will attempt to stay at ranged distance from their
|
||||
// * target.
|
||||
// SetCombatCondition(X0_COMBAT_FLAG_RANGED);
|
||||
|
||||
// * Defensive attacker
|
||||
// * Will use defensive combat feats and parry
|
||||
// SetCombatCondition(X0_COMBAT_FLAG_DEFENSIVE);
|
||||
|
||||
// * Ambusher
|
||||
// * Will go stealthy/invisible and attack, then
|
||||
// * run away and try to go stealthy again before
|
||||
// * attacking anew.
|
||||
// SetCombatCondition(X0_COMBAT_FLAG_AMBUSHER);
|
||||
|
||||
// * Cowardly
|
||||
// * Cowardly creatures will attempt to flee
|
||||
// * attackers.
|
||||
// SetCombatCondition(X0_COMBAT_FLAG_COWARDLY);
|
||||
|
||||
// CUSTOM USER DEFINED EVENTS
|
||||
/*
|
||||
The following settings will allow the user to fire one of the blank user defined events in the NW_D2_DefaultD. Like the
|
||||
On Spawn In script this script is meant to be customized by the end user to allow for unique behaviors. The user defined
|
||||
events user 1000 - 1010
|
||||
*/
|
||||
//SetSpawnInCondition(NW_FLAG_PERCIEVE_EVENT); //OPTIONAL BEHAVIOR - Fire User Defined Event 1002
|
||||
//SetSpawnInCondition(NW_FLAG_ATTACK_EVENT); //OPTIONAL BEHAVIOR - Fire User Defined Event 1005
|
||||
//SetSpawnInCondition(NW_FLAG_DAMAGED_EVENT); //OPTIONAL BEHAVIOR - Fire User Defined Event 1006
|
||||
//SetSpawnInCondition(NW_FLAG_DISTURBED_EVENT); //OPTIONAL BEHAVIOR - Fire User Defined Event 1008
|
||||
//SetSpawnInCondition(NW_FLAG_END_COMBAT_ROUND_EVENT); //OPTIONAL BEHAVIOR - Fire User Defined Event 1003
|
||||
//SetSpawnInCondition(NW_FLAG_ON_DIALOGUE_EVENT); //OPTIONAL BEHAVIOR - Fire User Defined Event 1004
|
||||
//SetSpawnInCondition(NW_FLAG_DEATH_EVENT); //OPTIONAL BEHAVIOR - Fire User Defined Event 1007
|
||||
|
||||
ActionEquipMostEffectiveArmor();
|
||||
|
||||
if(GetLocalInt(OBJECT_SELF, "HenchInvDrop") == FALSE)
|
||||
{
|
||||
HenchmanNoDropItems69(TRUE, OBJECT_SELF);
|
||||
}
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Bandit Random Armor Include
|
||||
// Randomized Armor Include
|
||||
// RA_RND_ARMOR_INC
|
||||
//
|
||||
// By: Jaysyn
|
||||
@ -63,3 +63,67 @@ void RndBanditArmor(object oNPC)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void RndLightArmor(object oNPC)
|
||||
{
|
||||
// Makes sure any original armor isn't dropped as loot.
|
||||
SetDroppableFlag(GetItemInSlot(INVENTORY_SLOT_CHEST, OBJECT_SELF), 0);
|
||||
|
||||
//Randomizes Armor
|
||||
|
||||
int nResult = d8(1);
|
||||
int nStackSize = 1; // Create 1 items;
|
||||
|
||||
object oArmor;
|
||||
|
||||
string sItem;
|
||||
|
||||
if (nResult == 1)
|
||||
{
|
||||
sItem = "aarcl002";
|
||||
}
|
||||
else if(nResult == 2)
|
||||
{
|
||||
sItem = "baleas_cloth019";
|
||||
}
|
||||
else if(nResult == 3)
|
||||
{
|
||||
sItem = "aarcl004";
|
||||
}
|
||||
else if(nResult ==4)
|
||||
{
|
||||
sItem = "zep_studdedleath";
|
||||
}
|
||||
else if(nResult == 5)
|
||||
{
|
||||
sItem = "aarcl004";
|
||||
}
|
||||
else if(nResult == 6)
|
||||
{
|
||||
sItem = "nw_aarcl001";
|
||||
}
|
||||
else if(nResult == 7)
|
||||
{
|
||||
sItem = "nw_aarcl002";
|
||||
}
|
||||
else
|
||||
sItem = "nw_aarcl009";
|
||||
|
||||
CreateItemOnObject(sItem, OBJECT_SELF, nStackSize);
|
||||
|
||||
// Loop the object's inventory and equip the first
|
||||
object oItem = GetFirstItemInInventory(OBJECT_SELF);
|
||||
while(GetIsObjectValid(oItem))
|
||||
{
|
||||
// Check if armor, of course
|
||||
if(GetBaseItemType(oItem) == BASE_ITEM_ARMOR)
|
||||
{
|
||||
// Equip it and stop the script
|
||||
DelayCommand(1.0f, ActionEquipItem(oItem, INVENTORY_SLOT_CHEST));
|
||||
return;
|
||||
}
|
||||
|
||||
oItem = GetNextItemInInventory(OBJECT_SELF);
|
||||
}
|
||||
|
||||
}
|
||||
|
Binary file not shown.
@ -112,7 +112,7 @@
|
||||
"__struct_id": 3,
|
||||
"Spell": {
|
||||
"type": "word",
|
||||
"value": 436
|
||||
"value": 442
|
||||
},
|
||||
"SpellFlags": {
|
||||
"type": "byte",
|
||||
@ -127,7 +127,7 @@
|
||||
"__struct_id": 3,
|
||||
"Spell": {
|
||||
"type": "word",
|
||||
"value": 442
|
||||
"value": 436
|
||||
},
|
||||
"SpellFlags": {
|
||||
"type": "byte",
|
||||
|
1027
_module/utc/npc_hen_rogue001.utc.json
Normal file
1027
_module/utc/npc_hen_rogue001.utc.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -2,7 +2,7 @@
|
||||
"__data_type": "UTC ",
|
||||
"Appearance_Head": {
|
||||
"type": "byte",
|
||||
"value": 47
|
||||
"value": 2
|
||||
},
|
||||
"Appearance_Type": {
|
||||
"type": "word",
|
||||
@ -169,10 +169,6 @@
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 2,
|
||||
"Dropable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"EquippedRes": {
|
||||
"type": "resref",
|
||||
"value": "aarcl004"
|
||||
|
@ -14,7 +14,7 @@
|
||||
},
|
||||
"ArmorPart_LFArm": {
|
||||
"type": "byte",
|
||||
"value": 4
|
||||
"value": 150
|
||||
},
|
||||
"ArmorPart_LFoot": {
|
||||
"type": "byte",
|
||||
@ -22,7 +22,7 @@
|
||||
},
|
||||
"ArmorPart_LHand": {
|
||||
"type": "byte",
|
||||
"value": 4
|
||||
"value": 1
|
||||
},
|
||||
"ArmorPart_LShin": {
|
||||
"type": "byte",
|
||||
@ -50,7 +50,7 @@
|
||||
},
|
||||
"ArmorPart_RFArm": {
|
||||
"type": "byte",
|
||||
"value": 4
|
||||
"value": 150
|
||||
},
|
||||
"ArmorPart_RFoot": {
|
||||
"type": "byte",
|
||||
@ -58,7 +58,7 @@
|
||||
},
|
||||
"ArmorPart_RHand": {
|
||||
"type": "byte",
|
||||
"value": 4
|
||||
"value": 1
|
||||
},
|
||||
"ArmorPart_Robe": {
|
||||
"type": "byte",
|
||||
|
173
_module/uti/zep_studdedleath.uti.json
Normal file
173
_module/uti/zep_studdedleath.uti.json
Normal file
@ -0,0 +1,173 @@
|
||||
{
|
||||
"__data_type": "UTI ",
|
||||
"AddCost": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
},
|
||||
"ArmorPart_Belt": {
|
||||
"type": "byte",
|
||||
"value": 4
|
||||
},
|
||||
"ArmorPart_LBicep": {
|
||||
"type": "byte",
|
||||
"value": 150
|
||||
},
|
||||
"ArmorPart_LFArm": {
|
||||
"type": "byte",
|
||||
"value": 164
|
||||
},
|
||||
"ArmorPart_LFoot": {
|
||||
"type": "byte",
|
||||
"value": 11
|
||||
},
|
||||
"ArmorPart_LHand": {
|
||||
"type": "byte",
|
||||
"value": 113
|
||||
},
|
||||
"ArmorPart_LShin": {
|
||||
"type": "byte",
|
||||
"value": 85
|
||||
},
|
||||
"ArmorPart_LShoul": {
|
||||
"type": "byte",
|
||||
"value": 10
|
||||
},
|
||||
"ArmorPart_LThigh": {
|
||||
"type": "byte",
|
||||
"value": 4
|
||||
},
|
||||
"ArmorPart_Neck": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"ArmorPart_Pelvis": {
|
||||
"type": "byte",
|
||||
"value": 4
|
||||
},
|
||||
"ArmorPart_RBicep": {
|
||||
"type": "byte",
|
||||
"value": 150
|
||||
},
|
||||
"ArmorPart_RFArm": {
|
||||
"type": "byte",
|
||||
"value": 164
|
||||
},
|
||||
"ArmorPart_RFoot": {
|
||||
"type": "byte",
|
||||
"value": 11
|
||||
},
|
||||
"ArmorPart_RHand": {
|
||||
"type": "byte",
|
||||
"value": 113
|
||||
},
|
||||
"ArmorPart_Robe": {
|
||||
"type": "byte",
|
||||
"value": 112
|
||||
},
|
||||
"ArmorPart_RShin": {
|
||||
"type": "byte",
|
||||
"value": 85
|
||||
},
|
||||
"ArmorPart_RShoul": {
|
||||
"type": "byte",
|
||||
"value": 10
|
||||
},
|
||||
"ArmorPart_RThigh": {
|
||||
"type": "byte",
|
||||
"value": 4
|
||||
},
|
||||
"ArmorPart_Torso": {
|
||||
"type": "byte",
|
||||
"value": 127
|
||||
},
|
||||
"BaseItem": {
|
||||
"type": "int",
|
||||
"value": 16
|
||||
},
|
||||
"Charges": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"Cloth1Color": {
|
||||
"type": "byte",
|
||||
"value": 22
|
||||
},
|
||||
"Cloth2Color": {
|
||||
"type": "byte",
|
||||
"value": 3
|
||||
},
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": ""
|
||||
},
|
||||
"Cost": {
|
||||
"type": "dword",
|
||||
"value": 15
|
||||
},
|
||||
"Cursed": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"DescIdentified": {
|
||||
"type": "cexolocstring",
|
||||
"value": {}
|
||||
},
|
||||
"Description": {
|
||||
"id": 16807967,
|
||||
"type": "cexolocstring",
|
||||
"value": {}
|
||||
},
|
||||
"Identified": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Leather1Color": {
|
||||
"type": "byte",
|
||||
"value": 7
|
||||
},
|
||||
"Leather2Color": {
|
||||
"type": "byte",
|
||||
"value": 3
|
||||
},
|
||||
"LocalizedName": {
|
||||
"id": 16807957,
|
||||
"type": "cexolocstring",
|
||||
"value": {}
|
||||
},
|
||||
"Metal1Color": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"Metal2Color": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"PaletteID": {
|
||||
"type": "byte",
|
||||
"value": 6
|
||||
},
|
||||
"Plot": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"PropertiesList": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"StackSize": {
|
||||
"type": "word",
|
||||
"value": 1
|
||||
},
|
||||
"Stolen": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"Tag": {
|
||||
"type": "cexostring",
|
||||
"value": "ZEP_STUDDEDLEATH"
|
||||
},
|
||||
"TemplateResRef": {
|
||||
"type": "resref",
|
||||
"value": "zep_studdedleath"
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user