Added Elite Troll creature
Added Elite Troll creature.
This commit is contained in:
parent
edb3ec4afe
commit
b2c9230e9b
@ -6353,7 +6353,7 @@
|
|||||||
},
|
},
|
||||||
"Version": {
|
"Version": {
|
||||||
"type": "dword",
|
"type": "dword",
|
||||||
"value": 16
|
"value": 17
|
||||||
},
|
},
|
||||||
"Width": {
|
"Width": {
|
||||||
"type": "int",
|
"type": "int",
|
||||||
|
@ -646,6 +646,13 @@
|
|||||||
"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."
|
"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,
|
"__struct_id": 5,
|
||||||
"Comment": {
|
"Comment": {
|
||||||
|
@ -19316,6 +19316,68 @@
|
|||||||
"type": "float",
|
"type": "float",
|
||||||
"value": 5.497299194335938
|
"value": 5.497299194335938
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 5,
|
||||||
|
"Appearance": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 1
|
||||||
|
},
|
||||||
|
"Description": {
|
||||||
|
"type": "cexolocstring",
|
||||||
|
"value": {}
|
||||||
|
},
|
||||||
|
"HasMapNote": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
"LinkedTo": {
|
||||||
|
"type": "cexostring",
|
||||||
|
"value": ""
|
||||||
|
},
|
||||||
|
"LocalizedName": {
|
||||||
|
"id": 14817,
|
||||||
|
"type": "cexolocstring",
|
||||||
|
"value": {
|
||||||
|
"0": "SP_SN04_SA_SR20M05_SD20M16_RW_PC05_RG010M005_DS2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"MapNote": {
|
||||||
|
"type": "cexolocstring",
|
||||||
|
"value": {}
|
||||||
|
},
|
||||||
|
"MapNoteEnabled": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 1
|
||||||
|
},
|
||||||
|
"Tag": {
|
||||||
|
"type": "cexostring",
|
||||||
|
"value": "RA_TROLL002"
|
||||||
|
},
|
||||||
|
"TemplateResRef": {
|
||||||
|
"type": "resref",
|
||||||
|
"value": "sp_waypoint"
|
||||||
|
},
|
||||||
|
"XOrientation": {
|
||||||
|
"type": "float",
|
||||||
|
"value": 0.0
|
||||||
|
},
|
||||||
|
"XPosition": {
|
||||||
|
"type": "float",
|
||||||
|
"value": 59.86631393432617
|
||||||
|
},
|
||||||
|
"YOrientation": {
|
||||||
|
"type": "float",
|
||||||
|
"value": 1.0
|
||||||
|
},
|
||||||
|
"YPosition": {
|
||||||
|
"type": "float",
|
||||||
|
"value": 58.00840759277344
|
||||||
|
},
|
||||||
|
"ZPosition": {
|
||||||
|
"type": "float",
|
||||||
|
"value": 4.999994277954102
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -7048,6 +7048,25 @@
|
|||||||
"value": "troll004"
|
"value": "troll004"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"CR": {
|
||||||
|
"type": "float",
|
||||||
|
"value": 6.0
|
||||||
|
},
|
||||||
|
"FACTION": {
|
||||||
|
"type": "cexostring",
|
||||||
|
"value": "Hostile"
|
||||||
|
},
|
||||||
|
"NAME": {
|
||||||
|
"type": "cexostring",
|
||||||
|
"value": "Troll, Elite [RA]: 06 HD"
|
||||||
|
},
|
||||||
|
"RESREF": {
|
||||||
|
"type": "resref",
|
||||||
|
"value": "ra_troll002"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"__struct_id": 0,
|
"__struct_id": 0,
|
||||||
"CR": {
|
"CR": {
|
||||||
|
Binary file not shown.
Binary file not shown.
@ -15,34 +15,36 @@ void main()
|
|||||||
{
|
{
|
||||||
object oNPC = OBJECT_SELF;
|
object oNPC = OBJECT_SELF;
|
||||||
object oAttacker;
|
object oAttacker;
|
||||||
|
|
||||||
string sResRef = GetResRef(oNPC);
|
string sResRef = GetResRef(oNPC);
|
||||||
|
|
||||||
effect eSleep = EffectSleep();
|
|
||||||
|
|
||||||
//:: Handles troll regen
|
effect eSleep = EffectSleep();
|
||||||
if(sResRef == "ra_troll001" || sResRef == "TROLL_FEDORLA")
|
|
||||||
{
|
|
||||||
if(GetLocalInt(oNPC, "nSubDual") > 0)
|
|
||||||
{
|
|
||||||
SetLocalInt(oNPC, "nSubDual", GetLocalInt(oNPC, "nSubDual") - 5);
|
|
||||||
|
|
||||||
if(GetLocalInt(oNPC, "nSubDual") < GetCurrentHitPoints(oNPC))
|
//:: Handles troll regen
|
||||||
{
|
if(sResRef == "ra_troll001"
|
||||||
RemoveEffect(oNPC, eSleep);
|
|| sResRef == "ra_troll002"
|
||||||
}
|
|| sResRef == "TROLL_FEDORLA")
|
||||||
|
{
|
||||||
|
if(GetLocalInt(oNPC, "nSubDual") > 0)
|
||||||
|
{
|
||||||
|
SetLocalInt(oNPC, "nSubDual", GetLocalInt(oNPC, "nSubDual") - 5);
|
||||||
|
|
||||||
|
if(GetLocalInt(oNPC, "nSubDual") < GetCurrentHitPoints(oNPC))
|
||||||
|
{
|
||||||
|
RemoveEffect(oNPC, eSleep);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(GetLocalInt(oNPC, "nSubDual") > GetCurrentHitPoints(oNPC))
|
||||||
|
{
|
||||||
|
SpeakString("I am still unconscious!");
|
||||||
|
SetIsDestroyable(FALSE, TRUE, TRUE);
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSleep, OBJECT_SELF, 6.5f);
|
||||||
|
}
|
||||||
|
|
||||||
|
//SpeakString("My Subdual is now " + IntToString(GetLocalInt(oNPC, "nSubDual")));
|
||||||
|
|
||||||
if(GetLocalInt(oNPC, "nSubDual") > GetCurrentHitPoints(oNPC))
|
|
||||||
{
|
|
||||||
SpeakString("I am still unconscious!");
|
|
||||||
SetIsDestroyable(FALSE, TRUE, TRUE);
|
|
||||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSleep, OBJECT_SELF, 6.5f);
|
|
||||||
}
|
|
||||||
|
|
||||||
SpeakString("My Subdual is now " + IntToString(GetLocalInt(oNPC, "nSubDual")));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//:: Equips best armor
|
//:: Equips best armor
|
||||||
if ((!GetIsInCombat(oNPC) && (GetItemInSlot(INVENTORY_SLOT_CHEST) == OBJECT_INVALID)))
|
if ((!GetIsInCombat(oNPC) && (GetItemInSlot(INVENTORY_SLOT_CHEST) == OBJECT_INVALID)))
|
||||||
|
@ -13,16 +13,16 @@
|
|||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
int nTotalDamage = GetTotalDamageDealt();
|
int nTotalDamage = GetTotalDamageDealt();
|
||||||
int nFireDamage = 0;
|
int nFireDamage = 0;
|
||||||
int nAcidDamage = 0;
|
int nAcidDamage = 0;
|
||||||
int nTotalHP = GetMaxHitPoints(OBJECT_SELF);
|
int nTotalHP = GetMaxHitPoints(OBJECT_SELF);
|
||||||
|
|
||||||
string sResRef = GetResRef(OBJECT_SELF);
|
string sResRef = GetResRef(OBJECT_SELF);
|
||||||
|
|
||||||
effect eSleep = EffectSleep();
|
effect eSleep = EffectSleep();
|
||||||
effect eSlow = EffectSlow();
|
effect eSlow = EffectSlow();
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
// GZ: 2003-10-16
|
// GZ: 2003-10-16
|
||||||
// Make Plot Creatures Ignore Attacks
|
// Make Plot Creatures Ignore Attacks
|
||||||
@ -33,71 +33,73 @@ void main()
|
|||||||
}
|
}
|
||||||
|
|
||||||
//:: Handles troll regen
|
//:: Handles troll regen
|
||||||
if(sResRef == "ra_troll001" || sResRef == "TROLL_FEDORLA")
|
if(sResRef == "ra_troll001"
|
||||||
{
|
|| sResRef == "ra_troll002"
|
||||||
DelayCommand(0.0f, SpeakString("Max/Total HP: " + IntToString(nTotalHP)));
|
|| sResRef == "TROLL_FEDORLA")
|
||||||
|
{
|
||||||
if(GetDamageDealtByType(DAMAGE_TYPE_FIRE) != -1)
|
DelayCommand(0.0f, SpeakString("Max/Total HP: " + IntToString(nTotalHP)));
|
||||||
{
|
|
||||||
nFireDamage = GetDamageDealtByType(DAMAGE_TYPE_FIRE);
|
|
||||||
//DelayCommand(0.0f, SpeakString("Fire Damage: " + IntToString(nFireDamage)));
|
|
||||||
}
|
|
||||||
|
|
||||||
if(GetDamageDealtByType(DAMAGE_TYPE_ACID) != -1)
|
if(GetDamageDealtByType(DAMAGE_TYPE_FIRE) != -1)
|
||||||
{
|
{
|
||||||
nAcidDamage = GetDamageDealtByType(DAMAGE_TYPE_ACID);
|
nFireDamage = GetDamageDealtByType(DAMAGE_TYPE_FIRE);
|
||||||
//DelayCommand(0.0f, SpeakString("Acid Damage: " + IntToString(nAcidDamage)));
|
//DelayCommand(0.0f, SpeakString("Fire Damage: " + IntToString(nFireDamage)));
|
||||||
}
|
}
|
||||||
|
|
||||||
int nNoRegen = nFireDamage + nAcidDamage;
|
|
||||||
int nSubDmg = nTotalDamage - nNoRegen;
|
|
||||||
|
|
||||||
//DelayCommand(0.0f, SpeakString("Real damage this attack: " + IntToString(nNoRegen)));
|
|
||||||
|
|
||||||
SetLocalInt(OBJECT_SELF, "NoRegen", nNoRegen + GetLocalInt(OBJECT_SELF, "NoRegen"));
|
|
||||||
|
|
||||||
nNoRegen = GetLocalInt(OBJECT_SELF, "NoRegen");
|
|
||||||
|
|
||||||
//DelayCommand(0.0f, SpeakString("Actual Damage Stored: " + IntToString(nNoRegen)));
|
|
||||||
|
|
||||||
effect eHeal = EffectHeal(nSubDmg);
|
if(GetDamageDealtByType(DAMAGE_TYPE_ACID) != -1)
|
||||||
//DelayCommand(0.0f, SpeakString("Subdual damage healed: " + IntToString(nSubDmg)));
|
{
|
||||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, eHeal, OBJECT_SELF, 0.0f);
|
nAcidDamage = GetDamageDealtByType(DAMAGE_TYPE_ACID);
|
||||||
|
//DelayCommand(0.0f, SpeakString("Acid Damage: " + IntToString(nAcidDamage)));
|
||||||
int nCurrentHP = GetCurrentHitPoints(OBJECT_SELF);
|
}
|
||||||
DelayCommand(0.0f, SpeakString("Current HP: " + IntToString(nCurrentHP)));
|
|
||||||
|
|
||||||
if ((nTotalHP - nNoRegen) < nCurrentHP)
|
|
||||||
{
|
|
||||||
nCurrentHP = nTotalHP - nNoRegen;
|
|
||||||
//DelayCommand(0.0f, SpeakString("Setting HP to: " + IntToString(nCurrentHP)));
|
|
||||||
SetCurrentHitPoints(OBJECT_SELF, nCurrentHP);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(GetLocalInt(OBJECT_SELF, "nSubDual") <= GetCurrentHitPoints(OBJECT_SELF))
|
|
||||||
{
|
|
||||||
SetLocalInt(OBJECT_SELF, "nSubDual", nSubDmg + GetLocalInt(OBJECT_SELF, "nSubDual"));
|
|
||||||
}
|
|
||||||
|
|
||||||
int nSD = GetLocalInt(OBJECT_SELF, "nSubDual");
|
int nNoRegen = nFireDamage + nAcidDamage;
|
||||||
|
int nSubDmg = nTotalDamage - nNoRegen;
|
||||||
//DelayCommand(0.0f, SpeakString("SD: " + IntToString(nSD)));
|
|
||||||
//DelayCommand(0.0f, SpeakString("CH: " + IntToString(nCurrentHP)));
|
|
||||||
//DelayCommand(0.0f, SpeakString("NoRegen: " + IntToString(nNoRegen)));
|
|
||||||
|
|
||||||
if(nSD > GetCurrentHitPoints(OBJECT_SELF))
|
//DelayCommand(0.0f, SpeakString("Real damage this attack: " + IntToString(nNoRegen)));
|
||||||
{
|
|
||||||
//SpeakString("I am unconscious!");
|
SetLocalInt(OBJECT_SELF, "NoRegen", nNoRegen + GetLocalInt(OBJECT_SELF, "NoRegen"));
|
||||||
SetIsDestroyable(FALSE, TRUE, TRUE);
|
|
||||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSleep, OBJECT_SELF, 6.0f);
|
nNoRegen = GetLocalInt(OBJECT_SELF, "NoRegen");
|
||||||
}
|
|
||||||
else if(nSD == GetCurrentHitPoints(OBJECT_SELF))
|
//DelayCommand(0.0f, SpeakString("Actual Damage Stored: " + IntToString(nNoRegen)));
|
||||||
{
|
|
||||||
//SpeakString("I am staggered!");
|
effect eHeal = EffectHeal(nSubDmg);
|
||||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSlow, OBJECT_SELF, 6.0f);
|
//DelayCommand(0.0f, SpeakString("Subdual damage healed: " + IntToString(nSubDmg)));
|
||||||
}
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eHeal, OBJECT_SELF, 0.0f);
|
||||||
|
|
||||||
}
|
int nCurrentHP = GetCurrentHitPoints(OBJECT_SELF);
|
||||||
|
//DelayCommand(0.0f, SpeakString("Current HP: " + IntToString(nCurrentHP)));
|
||||||
|
|
||||||
|
if ((nTotalHP - nNoRegen) < nCurrentHP)
|
||||||
|
{
|
||||||
|
nCurrentHP = nTotalHP - nNoRegen;
|
||||||
|
//DelayCommand(0.0f, SpeakString("Setting HP to: " + IntToString(nCurrentHP)));
|
||||||
|
SetCurrentHitPoints(OBJECT_SELF, nCurrentHP);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(GetLocalInt(OBJECT_SELF, "nSubDual") <= GetCurrentHitPoints(OBJECT_SELF))
|
||||||
|
{
|
||||||
|
SetLocalInt(OBJECT_SELF, "nSubDual", nSubDmg + GetLocalInt(OBJECT_SELF, "nSubDual"));
|
||||||
|
}
|
||||||
|
|
||||||
|
int nSD = GetLocalInt(OBJECT_SELF, "nSubDual");
|
||||||
|
|
||||||
|
//DelayCommand(0.0f, SpeakString("SD: " + IntToString(nSD)));
|
||||||
|
//DelayCommand(0.0f, SpeakString("CH: " + IntToString(nCurrentHP)));
|
||||||
|
//DelayCommand(0.0f, SpeakString("NoRegen: " + IntToString(nNoRegen)));
|
||||||
|
|
||||||
|
if(nSD > GetCurrentHitPoints(OBJECT_SELF))
|
||||||
|
{
|
||||||
|
//SpeakString("I am unconscious!");
|
||||||
|
SetIsDestroyable(FALSE, TRUE, TRUE);
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSleep, OBJECT_SELF, 6.0f);
|
||||||
|
}
|
||||||
|
else if(nSD == GetCurrentHitPoints(OBJECT_SELF))
|
||||||
|
{
|
||||||
|
//SpeakString("I am staggered!");
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSlow, OBJECT_SELF, 6.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
//:: Execute the CODI AI NPC OnDamaged script
|
//:: Execute the CODI AI NPC OnDamaged script
|
||||||
ExecuteScript("no_ai_dam", OBJECT_SELF);
|
ExecuteScript("no_ai_dam", OBJECT_SELF);
|
||||||
|
Binary file not shown.
783
_module/utc/ra_troll002.utc.json
Normal file
783
_module/utc/ra_troll002.utc.json
Normal file
@ -0,0 +1,783 @@
|
|||||||
|
{
|
||||||
|
"__data_type": "UTC ",
|
||||||
|
"Appearance_Type": {
|
||||||
|
"type": "word",
|
||||||
|
"value": 165
|
||||||
|
},
|
||||||
|
"BodyBag": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 5
|
||||||
|
},
|
||||||
|
"Cha": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 13
|
||||||
|
},
|
||||||
|
"ChallengeRating": {
|
||||||
|
"type": "float",
|
||||||
|
"value": 6.0
|
||||||
|
},
|
||||||
|
"ClassList": {
|
||||||
|
"type": "list",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"__struct_id": 2,
|
||||||
|
"Class": {
|
||||||
|
"type": "int",
|
||||||
|
"value": 22
|
||||||
|
},
|
||||||
|
"ClassLevel": {
|
||||||
|
"type": "short",
|
||||||
|
"value": 6
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Comment": {
|
||||||
|
"type": "cexostring",
|
||||||
|
"value": "Troll [RA]: 06 HD\r\n\r\nMonster Manual I, pg. 247"
|
||||||
|
},
|
||||||
|
"Con": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 10
|
||||||
|
},
|
||||||
|
"Conversation": {
|
||||||
|
"type": "resref",
|
||||||
|
"value": "cv_charmed"
|
||||||
|
},
|
||||||
|
"CRAdjust": {
|
||||||
|
"type": "int",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
"CurrentHitPoints": {
|
||||||
|
"type": "short",
|
||||||
|
"value": 48
|
||||||
|
},
|
||||||
|
"DecayTime": {
|
||||||
|
"type": "dword",
|
||||||
|
"value": 10000
|
||||||
|
},
|
||||||
|
"Deity": {
|
||||||
|
"type": "cexostring",
|
||||||
|
"value": ""
|
||||||
|
},
|
||||||
|
"Description": {
|
||||||
|
"type": "cexolocstring",
|
||||||
|
"value": {
|
||||||
|
"0": "This big, bipedal creature is about one and a half times as tall as a human but very thin. It has long and ungainly arms and legs The legs end in great three-toed feet, the arms in wide, powerful hands with sharpened claws. The hide is rubbery, and its hair is thick and ropy, and seems to writhe with its own energy."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Dex": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 8
|
||||||
|
},
|
||||||
|
"Disarmable": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 1
|
||||||
|
},
|
||||||
|
"Equip_ItemList": {
|
||||||
|
"type": "list",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"__struct_id": 16384,
|
||||||
|
"EquippedRes": {
|
||||||
|
"type": "resref",
|
||||||
|
"value": "nw_it_crewpsp005"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 32768,
|
||||||
|
"EquippedRes": {
|
||||||
|
"type": "resref",
|
||||||
|
"value": "nw_it_crewpsp005"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 65536,
|
||||||
|
"EquippedRes": {
|
||||||
|
"type": "resref",
|
||||||
|
"value": "nw_it_crewps005"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"FactionID": {
|
||||||
|
"type": "word",
|
||||||
|
"value": 1
|
||||||
|
},
|
||||||
|
"FeatList": {
|
||||||
|
"type": "list",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"__struct_id": 1,
|
||||||
|
"Feat": {
|
||||||
|
"type": "word",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 1,
|
||||||
|
"Feat": {
|
||||||
|
"type": "word",
|
||||||
|
"value": 3112
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 1,
|
||||||
|
"Feat": {
|
||||||
|
"type": "word",
|
||||||
|
"value": 2898
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 1,
|
||||||
|
"Feat": {
|
||||||
|
"type": "word",
|
||||||
|
"value": 5195
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 1,
|
||||||
|
"Feat": {
|
||||||
|
"type": "word",
|
||||||
|
"value": 22774
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 1,
|
||||||
|
"Feat": {
|
||||||
|
"type": "word",
|
||||||
|
"value": 2468
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 1,
|
||||||
|
"Feat": {
|
||||||
|
"type": "word",
|
||||||
|
"value": 2919
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 1,
|
||||||
|
"Feat": {
|
||||||
|
"type": "word",
|
||||||
|
"value": 4717
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 1,
|
||||||
|
"Feat": {
|
||||||
|
"type": "word",
|
||||||
|
"value": 4095
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 1,
|
||||||
|
"Feat": {
|
||||||
|
"type": "word",
|
||||||
|
"value": 4092
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 1,
|
||||||
|
"Feat": {
|
||||||
|
"type": "word",
|
||||||
|
"value": 22
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 1,
|
||||||
|
"Feat": {
|
||||||
|
"type": "word",
|
||||||
|
"value": 2884
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 1,
|
||||||
|
"Feat": {
|
||||||
|
"type": "word",
|
||||||
|
"value": 354
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 1,
|
||||||
|
"Feat": {
|
||||||
|
"type": "word",
|
||||||
|
"value": 1089
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 1,
|
||||||
|
"Feat": {
|
||||||
|
"type": "word",
|
||||||
|
"value": 3415
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 1,
|
||||||
|
"Feat": {
|
||||||
|
"type": "word",
|
||||||
|
"value": 2285
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 1,
|
||||||
|
"Feat": {
|
||||||
|
"type": "word",
|
||||||
|
"value": 4742
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 1,
|
||||||
|
"Feat": {
|
||||||
|
"type": "word",
|
||||||
|
"value": 24070
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 1,
|
||||||
|
"Feat": {
|
||||||
|
"type": "word",
|
||||||
|
"value": 4235
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 1,
|
||||||
|
"Feat": {
|
||||||
|
"type": "word",
|
||||||
|
"value": 2569
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 1,
|
||||||
|
"Feat": {
|
||||||
|
"type": "word",
|
||||||
|
"value": 289
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"FirstName": {
|
||||||
|
"type": "cexolocstring",
|
||||||
|
"value": {
|
||||||
|
"0": "Troll, Elite [RA]: 06 HD"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fortbonus": {
|
||||||
|
"type": "short",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
"Gender": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
"GoodEvil": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
"HitPoints": {
|
||||||
|
"type": "short",
|
||||||
|
"value": 48
|
||||||
|
},
|
||||||
|
"Int": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 14
|
||||||
|
},
|
||||||
|
"Interruptable": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 1
|
||||||
|
},
|
||||||
|
"IsImmortal": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
"IsPC": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
"LastName": {
|
||||||
|
"type": "cexolocstring",
|
||||||
|
"value": {
|
||||||
|
"0": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"LawfulChaotic": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
"Lootable": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
"MaxHitPoints": {
|
||||||
|
"type": "short",
|
||||||
|
"value": 84
|
||||||
|
},
|
||||||
|
"NaturalAC": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 5
|
||||||
|
},
|
||||||
|
"NoPermDeath": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 1
|
||||||
|
},
|
||||||
|
"PaletteID": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 37
|
||||||
|
},
|
||||||
|
"PerceptionRange": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 10
|
||||||
|
},
|
||||||
|
"Phenotype": {
|
||||||
|
"type": "int",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
"Plot": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
"PortraitId": {
|
||||||
|
"type": "word",
|
||||||
|
"value": 1301
|
||||||
|
},
|
||||||
|
"Race": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 231
|
||||||
|
},
|
||||||
|
"refbonus": {
|
||||||
|
"type": "short",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
"ScriptAttacked": {
|
||||||
|
"type": "resref",
|
||||||
|
"value": "ra_ai_attacked"
|
||||||
|
},
|
||||||
|
"ScriptDamaged": {
|
||||||
|
"type": "resref",
|
||||||
|
"value": "ra_ai_ondamaged"
|
||||||
|
},
|
||||||
|
"ScriptDeath": {
|
||||||
|
"type": "resref",
|
||||||
|
"value": "ra_ai_ondeath"
|
||||||
|
},
|
||||||
|
"ScriptDialogue": {
|
||||||
|
"type": "resref",
|
||||||
|
"value": "ra_ai_onconverse"
|
||||||
|
},
|
||||||
|
"ScriptDisturbed": {
|
||||||
|
"type": "resref",
|
||||||
|
"value": "ra_ai_ondisturb"
|
||||||
|
},
|
||||||
|
"ScriptEndRound": {
|
||||||
|
"type": "resref",
|
||||||
|
"value": "ra_ai_endcmbtrnd"
|
||||||
|
},
|
||||||
|
"ScriptHeartbeat": {
|
||||||
|
"type": "resref",
|
||||||
|
"value": "ra_ai_heartbeat"
|
||||||
|
},
|
||||||
|
"ScriptOnBlocked": {
|
||||||
|
"type": "resref",
|
||||||
|
"value": "ra_ai_onblocked"
|
||||||
|
},
|
||||||
|
"ScriptOnNotice": {
|
||||||
|
"type": "resref",
|
||||||
|
"value": "ra_ai_onpercept"
|
||||||
|
},
|
||||||
|
"ScriptRested": {
|
||||||
|
"type": "resref",
|
||||||
|
"value": "ra_ai_onrested"
|
||||||
|
},
|
||||||
|
"ScriptSpawn": {
|
||||||
|
"type": "resref",
|
||||||
|
"value": "ra_ai_onspawn"
|
||||||
|
},
|
||||||
|
"ScriptSpellAt": {
|
||||||
|
"type": "resref",
|
||||||
|
"value": "ra_ai_onspelled"
|
||||||
|
},
|
||||||
|
"ScriptUserDefine": {
|
||||||
|
"type": "resref",
|
||||||
|
"value": "ra_ai_userdef"
|
||||||
|
},
|
||||||
|
"SkillList": {
|
||||||
|
"type": "list",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 9
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 4
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 5
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Rank": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"SoundSetFile": {
|
||||||
|
"type": "word",
|
||||||
|
"value": 92
|
||||||
|
},
|
||||||
|
"SpecAbilityList": {
|
||||||
|
"type": "list",
|
||||||
|
"value": []
|
||||||
|
},
|
||||||
|
"StartingPackage": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 84
|
||||||
|
},
|
||||||
|
"Str": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 12
|
||||||
|
},
|
||||||
|
"Subrace": {
|
||||||
|
"type": "cexostring",
|
||||||
|
"value": "Giant"
|
||||||
|
},
|
||||||
|
"Tag": {
|
||||||
|
"type": "cexostring",
|
||||||
|
"value": "RA_TROLL002"
|
||||||
|
},
|
||||||
|
"Tail_New": {
|
||||||
|
"type": "dword",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
"TemplateList": {
|
||||||
|
"type": "list",
|
||||||
|
"value": []
|
||||||
|
},
|
||||||
|
"TemplateResRef": {
|
||||||
|
"type": "resref",
|
||||||
|
"value": "ra_troll002"
|
||||||
|
},
|
||||||
|
"VarTable": {
|
||||||
|
"type": "list",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Name": {
|
||||||
|
"type": "cexostring",
|
||||||
|
"value": "SET_NAME"
|
||||||
|
},
|
||||||
|
"Type": {
|
||||||
|
"type": "dword",
|
||||||
|
"value": 3
|
||||||
|
},
|
||||||
|
"Value": {
|
||||||
|
"type": "cexostring",
|
||||||
|
"value": "Troll"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Name": {
|
||||||
|
"type": "cexostring",
|
||||||
|
"value": "SPAWN_TYPE"
|
||||||
|
},
|
||||||
|
"Type": {
|
||||||
|
"type": "dword",
|
||||||
|
"value": 3
|
||||||
|
},
|
||||||
|
"Value": {
|
||||||
|
"type": "cexostring",
|
||||||
|
"value": "no_spn_ftr"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__struct_id": 0,
|
||||||
|
"Name": {
|
||||||
|
"type": "cexostring",
|
||||||
|
"value": "FAST_HEALING"
|
||||||
|
},
|
||||||
|
"Type": {
|
||||||
|
"type": "dword",
|
||||||
|
"value": 1
|
||||||
|
},
|
||||||
|
"Value": {
|
||||||
|
"type": "int",
|
||||||
|
"value": 5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"WalkRate": {
|
||||||
|
"type": "int",
|
||||||
|
"value": 7
|
||||||
|
},
|
||||||
|
"willbonus": {
|
||||||
|
"type": "short",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
"Wings_New": {
|
||||||
|
"type": "dword",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
"Wis": {
|
||||||
|
"type": "byte",
|
||||||
|
"value": 15
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user