Tweaked & Bugfixed "Spider's Captive" quest

Tweaked & Bugfixed "Spider's Captive" quest.  Breathed a little life into the Warrior's Guild.  Changed several quest rewards to be split among the party.  Full compile.
This commit is contained in:
Jaysyn904 2022-11-20 00:21:57 -05:00
parent 310b26f555
commit 8989a30fc8
90 changed files with 2758 additions and 1892 deletions

View File

@ -11169,7 +11169,7 @@
},
"Version": {
"type": "dword",
"value": 15
"value": 16
},
"Width": {
"type": "int",

File diff suppressed because it is too large Load Diff

View File

@ -11169,7 +11169,7 @@
},
"Version": {
"type": "dword",
"value": 87
"value": 88
},
"Width": {
"type": "int",

View File

@ -11169,7 +11169,7 @@
},
"Version": {
"type": "dword",
"value": 17
"value": 18
},
"Width": {
"type": "int",

View File

@ -11169,7 +11169,7 @@
},
"Version": {
"type": "dword",
"value": 15
"value": 16
},
"Width": {
"type": "int",

View File

@ -52,7 +52,7 @@
"__struct_id": 0,
"Active": {
"type": "resref",
"value": "qst_spiders_chk"
"value": "qst_ch_spiders01"
},
"ConditionParams": {
"type": "list",
@ -60,7 +60,7 @@
},
"Index": {
"type": "dword",
"value": 2
"value": 3
},
"IsChild": {
"type": "byte",
@ -77,6 +77,25 @@
"type": "list",
"value": []
},
"Index": {
"type": "dword",
"value": 1
},
"IsChild": {
"type": "byte",
"value": 0
}
},
{
"__struct_id": 2,
"Active": {
"type": "resref",
"value": "qst_ch_spiders02"
},
"ConditionParams": {
"type": "list",
"value": []
},
"Index": {
"type": "dword",
"value": 0
@ -148,7 +167,7 @@
},
"Index": {
"type": "dword",
"value": 1
"value": 2
},
"IsChild": {
"type": "byte",
@ -221,7 +240,7 @@
},
"Index": {
"type": "dword",
"value": 3
"value": 4
},
"IsChild": {
"type": "byte",
@ -253,7 +272,7 @@
},
"NumWords": {
"type": "dword",
"value": 155
"value": 159
},
"PreventZoomIn": {
"type": "byte",
@ -284,6 +303,75 @@
"type": "dword",
"value": 4294967295
},
"EntriesList": {
"type": "list",
"value": [
{
"__struct_id": 0,
"Active": {
"type": "resref",
"value": ""
},
"ConditionParams": {
"type": "list",
"value": []
},
"Index": {
"type": "dword",
"value": 1
},
"IsChild": {
"type": "byte",
"value": 1
},
"LinkComment": {
"type": "cexostring",
"value": ""
}
}
]
},
"Quest": {
"type": "cexostring",
"value": ""
},
"Script": {
"type": "resref",
"value": "at_spiders_lie"
},
"Sound": {
"type": "resref",
"value": ""
},
"Text": {
"type": "cexolocstring",
"value": {
"0": "<StartHighlight>[Lie]</Start>: No, I haven't."
}
}
},
{
"__struct_id": 1,
"ActionParams": {
"type": "list",
"value": []
},
"Animation": {
"type": "dword",
"value": 0
},
"AnimLoop": {
"type": "byte",
"value": 1
},
"Comment": {
"type": "cexostring",
"value": ""
},
"Delay": {
"type": "dword",
"value": 4294967295
},
"EntriesList": {
"type": "list",
"value": [
@ -328,7 +416,7 @@
}
},
{
"__struct_id": 1,
"__struct_id": 2,
"ActionParams": {
"type": "list",
"value": []
@ -373,7 +461,7 @@
}
},
{
"__struct_id": 2,
"__struct_id": 3,
"ActionParams": {
"type": "list",
"value": []
@ -438,7 +526,7 @@
}
},
{
"__struct_id": 3,
"__struct_id": 4,
"ActionParams": {
"type": "list",
"value": []

View File

@ -0,0 +1,105 @@
{
"__data_type": "DLG ",
"DelayEntry": {
"type": "dword",
"value": 0
},
"DelayReply": {
"type": "dword",
"value": 0
},
"EndConverAbort": {
"type": "resref",
"value": "nw_walk_wp"
},
"EndConversation": {
"type": "resref",
"value": "nw_walk_wp"
},
"EntryList": {
"type": "list",
"value": [
{
"__struct_id": 0,
"ActionParams": {
"type": "list",
"value": []
},
"Animation": {
"type": "dword",
"value": 0
},
"AnimLoop": {
"type": "byte",
"value": 1
},
"Comment": {
"type": "cexostring",
"value": ""
},
"Delay": {
"type": "dword",
"value": 4294967295
},
"Quest": {
"type": "cexostring",
"value": ""
},
"RepliesList": {
"type": "list",
"value": []
},
"Script": {
"type": "resref",
"value": ""
},
"Sound": {
"type": "resref",
"value": ""
},
"Speaker": {
"type": "cexostring",
"value": ""
},
"Text": {
"type": "cexolocstring",
"value": {
"0": "CAN\"T YOU SEE IM BUSY SECURING THE FUTURE OF OUR FINE CITY?!?"
}
}
}
]
},
"NumWords": {
"type": "dword",
"value": 12
},
"PreventZoomIn": {
"type": "byte",
"value": 0
},
"ReplyList": {
"type": "list",
"value": []
},
"StartingList": {
"type": "list",
"value": [
{
"__struct_id": 0,
"Active": {
"type": "resref",
"value": ""
},
"ConditionParams": {
"type": "list",
"value": []
},
"Index": {
"type": "dword",
"value": 0
}
}
]
}
}

View File

@ -0,0 +1,369 @@
{
"__data_type": "DLG ",
"DelayEntry": {
"type": "dword",
"value": 0
},
"DelayReply": {
"type": "dword",
"value": 0
},
"EndConverAbort": {
"type": "resref",
"value": "nw_walk_wp"
},
"EndConversation": {
"type": "resref",
"value": "nw_walk_wp"
},
"EntryList": {
"type": "list",
"value": [
{
"__struct_id": 0,
"ActionParams": {
"type": "list",
"value": []
},
"Animation": {
"type": "dword",
"value": 0
},
"AnimLoop": {
"type": "byte",
"value": 1
},
"Comment": {
"type": "cexostring",
"value": ""
},
"Delay": {
"type": "dword",
"value": 4294967295
},
"Quest": {
"type": "cexostring",
"value": ""
},
"RepliesList": {
"type": "list",
"value": [
{
"__struct_id": 0,
"Active": {
"type": "resref",
"value": ""
},
"ConditionParams": {
"type": "list",
"value": []
},
"Index": {
"type": "dword",
"value": 1
},
"IsChild": {
"type": "byte",
"value": 0
}
},
{
"__struct_id": 1,
"Active": {
"type": "resref",
"value": ""
},
"ConditionParams": {
"type": "list",
"value": []
},
"Index": {
"type": "dword",
"value": 0
},
"IsChild": {
"type": "byte",
"value": 0
}
}
]
},
"Script": {
"type": "resref",
"value": ""
},
"Sound": {
"type": "resref",
"value": ""
},
"Speaker": {
"type": "cexostring",
"value": ""
},
"Text": {
"type": "cexolocstring",
"value": {
"0": "This cocoon appears to be moving. Will you try and cut it open?"
}
}
},
{
"__struct_id": 1,
"ActionParams": {
"type": "list",
"value": []
},
"Animation": {
"type": "dword",
"value": 0
},
"AnimLoop": {
"type": "byte",
"value": 1
},
"Comment": {
"type": "cexostring",
"value": ""
},
"Delay": {
"type": "dword",
"value": 4294967295
},
"Quest": {
"type": "cexostring",
"value": ""
},
"RepliesList": {
"type": "list",
"value": [
{
"__struct_id": 0,
"Active": {
"type": "resref",
"value": ""
},
"ConditionParams": {
"type": "list",
"value": []
},
"Index": {
"type": "dword",
"value": 2
},
"IsChild": {
"type": "byte",
"value": 0
}
}
]
},
"Script": {
"type": "resref",
"value": "destroyselfnofx"
},
"Sound": {
"type": "resref",
"value": ""
},
"Speaker": {
"type": "cexostring",
"value": ""
},
"Text": {
"type": "cexolocstring",
"value": {
"0": "You open the cocoon, revealing a man, weak-looking and tired, but still alive, dressed in the clothing of a merchant. He gets up and looks to you."
}
}
}
]
},
"NumWords": {
"type": "dword",
"value": 51
},
"PreventZoomIn": {
"type": "byte",
"value": 0
},
"ReplyList": {
"type": "list",
"value": [
{
"__struct_id": 0,
"ActionParams": {
"type": "list",
"value": []
},
"Animation": {
"type": "dword",
"value": 0
},
"AnimLoop": {
"type": "byte",
"value": 1
},
"Comment": {
"type": "cexostring",
"value": ""
},
"Delay": {
"type": "dword",
"value": 4294967295
},
"EntriesList": {
"type": "list",
"value": []
},
"Quest": {
"type": "cexostring",
"value": ""
},
"Script": {
"type": "resref",
"value": ""
},
"Sound": {
"type": "resref",
"value": ""
},
"Text": {
"type": "cexolocstring",
"value": {
"0": "No, it's probably just more spiders."
}
}
},
{
"__struct_id": 1,
"ActionParams": {
"type": "list",
"value": []
},
"Animation": {
"type": "dword",
"value": 0
},
"AnimLoop": {
"type": "byte",
"value": 1
},
"Comment": {
"type": "cexostring",
"value": ""
},
"Delay": {
"type": "dword",
"value": 4294967295
},
"EntriesList": {
"type": "list",
"value": [
{
"__struct_id": 0,
"Active": {
"type": "resref",
"value": ""
},
"ConditionParams": {
"type": "list",
"value": []
},
"Index": {
"type": "dword",
"value": 1
},
"IsChild": {
"type": "byte",
"value": 0
}
}
]
},
"Quest": {
"type": "cexostring",
"value": ""
},
"Script": {
"type": "resref",
"value": "at_free_antony"
},
"Sound": {
"type": "resref",
"value": ""
},
"Text": {
"type": "cexolocstring",
"value": {
"0": "Yes, cut it open."
}
}
},
{
"__struct_id": 2,
"ActionParams": {
"type": "list",
"value": []
},
"Animation": {
"type": "dword",
"value": 0
},
"AnimLoop": {
"type": "byte",
"value": 1
},
"Comment": {
"type": "cexostring",
"value": ""
},
"Delay": {
"type": "dword",
"value": 4294967295
},
"EntriesList": {
"type": "list",
"value": []
},
"Quest": {
"type": "cexostring",
"value": ""
},
"Script": {
"type": "resref",
"value": ""
},
"Sound": {
"type": "resref",
"value": ""
},
"Text": {
"type": "cexolocstring",
"value": {
"0": "End."
}
}
}
]
},
"StartingList": {
"type": "list",
"value": [
{
"__struct_id": 0,
"Active": {
"type": "resref",
"value": ""
},
"ConditionParams": {
"type": "list",
"value": []
},
"Index": {
"type": "dword",
"value": 0
}
}
]
}
}

View File

@ -64,7 +64,7 @@
"Text": {
"type": "cexolocstring",
"value": {
"0": "Please, <sir/madam>, my training is important. Everytime you interrupt me, I lose focus."
"0": "Please, <sir/madam>, my training is important. When you interrupt me, I lose focus."
}
}
}

View File

@ -205,6 +205,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."
}
},
{
"__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": {

View File

@ -596,13 +596,6 @@
"value": "Log -- sittable placeable by jin\r\n"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Spiderweb Cocoon"
}
},
{
"__struct_id": 9,
"Comment": {
@ -642,6 +635,13 @@
"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": {

View File

@ -3454,7 +3454,7 @@
},
"XPosition": {
"type": "float",
"value": 32.2932243347168
"value": 32.28910446166992
},
"YOrientation": {
"type": "float",
@ -3462,7 +3462,7 @@
},
"YPosition": {
"type": "float",
"value": 28.03713417053223
"value": 28.01113128662109
},
"ZPosition": {
"type": "float",
@ -3677,69 +3677,7 @@
"id": 14817,
"type": "cexolocstring",
"value": {
"0": "SP_SN01M01_SA_SD25_RG006M002_DS1_RH"
}
},
"MapNote": {
"type": "cexolocstring",
"value": {}
},
"MapNoteEnabled": {
"type": "byte",
"value": 1
},
"Tag": {
"type": "cexostring",
"value": "RA_HU_M_TRAIN01"
},
"TemplateResRef": {
"type": "resref",
"value": "sp_waypoint"
},
"XOrientation": {
"type": "float",
"value": 0.0
},
"XPosition": {
"type": "float",
"value": 30.79048538208008
},
"YOrientation": {
"type": "float",
"value": 1.0
},
"YPosition": {
"type": "float",
"value": 27.48962211608887
},
"ZPosition": {
"type": "float",
"value": -5.7220458984375e-006
}
},
{
"__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_SN01M01_SA_SD25_RG006M002_DS1_RH"
"0": "SP_SN01M01_SA_SD25_RG006M002_DS1_SF"
}
},
"MapNote": {
@ -3764,7 +3702,7 @@
},
"XPosition": {
"type": "float",
"value": 38.05971908569336
"value": 37.29938125610352
},
"YOrientation": {
"type": "float",
@ -3772,7 +3710,7 @@
},
"YPosition": {
"type": "float",
"value": 26.77575874328613
"value": 26.21817588806152
},
"ZPosition": {
"type": "float",
@ -3801,69 +3739,7 @@
"id": 14817,
"type": "cexolocstring",
"value": {
"0": "SP_SN01M01_SA_SD25_RG006M002_DS1_RH"
}
},
"MapNote": {
"type": "cexolocstring",
"value": {}
},
"MapNoteEnabled": {
"type": "byte",
"value": 1
},
"Tag": {
"type": "cexostring",
"value": "RA_HU_M_TRAIN01"
},
"TemplateResRef": {
"type": "resref",
"value": "sp_waypoint"
},
"XOrientation": {
"type": "float",
"value": 7.346839692639297e-040
},
"XPosition": {
"type": "float",
"value": 41.23397445678711
},
"YOrientation": {
"type": "float",
"value": 1.0
},
"YPosition": {
"type": "float",
"value": 38.72893142700195
},
"ZPosition": {
"type": "float",
"value": -5.7220458984375e-006
}
},
{
"__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_SN01M01_SA_SD25_RG006M002_DS1_RH"
"0": "SP_SN01M01_SA_SD25_RG006M002_DS1_SF"
}
},
"MapNote": {
@ -3888,7 +3764,7 @@
},
"XPosition": {
"type": "float",
"value": 48.31501770019531
"value": 47.26783752441406
},
"YOrientation": {
"type": "float",
@ -3896,7 +3772,193 @@
},
"YPosition": {
"type": "float",
"value": 37.04639053344727
"value": 36.3851203918457
},
"ZPosition": {
"type": "float",
"value": -5.7220458984375e-006
}
},
{
"__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_SN01M01_SA_SD25_RG066M022_DS1_RH_SF"
}
},
"MapNote": {
"type": "cexolocstring",
"value": {}
},
"MapNoteEnabled": {
"type": "byte",
"value": 1
},
"Tag": {
"type": "cexostring",
"value": "RA_HU_M_DRILL01"
},
"TemplateResRef": {
"type": "resref",
"value": "sp_waypoint"
},
"XOrientation": {
"type": "float",
"value": -0.817584753036499
},
"XPosition": {
"type": "float",
"value": 44.74227905273438
},
"YOrientation": {
"type": "float",
"value": 0.5758082866668701
},
"YPosition": {
"type": "float",
"value": 28.62376976013184
},
"ZPosition": {
"type": "float",
"value": -5.7220458984375e-006
}
},
{
"__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_SN01M01_SA_SD25_RG006M002_DS1_SF"
}
},
"MapNote": {
"type": "cexolocstring",
"value": {}
},
"MapNoteEnabled": {
"type": "byte",
"value": 1
},
"Tag": {
"type": "cexostring",
"value": "RA_HU_M_TRAIN01"
},
"TemplateResRef": {
"type": "resref",
"value": "sp_waypoint"
},
"XOrientation": {
"type": "float",
"value": 8.908208480543938e-039
},
"XPosition": {
"type": "float",
"value": 32.28215789794922
},
"YOrientation": {
"type": "float",
"value": 1.0
},
"YPosition": {
"type": "float",
"value": 26.1224422454834
},
"ZPosition": {
"type": "float",
"value": -5.7220458984375e-006
}
},
{
"__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_SN01M01_SA_SD25_RG006M002_DS1_SF"
}
},
"MapNote": {
"type": "cexolocstring",
"value": {}
},
"MapNoteEnabled": {
"type": "byte",
"value": 1
},
"Tag": {
"type": "cexostring",
"value": "RA_HU_M_TRAIN01"
},
"TemplateResRef": {
"type": "resref",
"value": "sp_waypoint"
},
"XOrientation": {
"type": "float",
"value": 7.714323208416159e-039
},
"XPosition": {
"type": "float",
"value": 42.2049674987793
},
"YOrientation": {
"type": "float",
"value": 1.0
},
"YPosition": {
"type": "float",
"value": 36.23260879516602
},
"ZPosition": {
"type": "float",

View File

@ -71841,231 +71841,6 @@
"value": -5.222045729169622e-006
}
},
{
"__struct_id": 9,
"AnimationState": {
"type": "byte",
"value": 0
},
"Appearance": {
"type": "dword",
"value": 90
},
"AutoRemoveKey": {
"type": "byte",
"value": 0
},
"Bearing": {
"type": "float",
"value": 2.454369068145752
},
"BodyBag": {
"type": "byte",
"value": 0
},
"CloseLockDC": {
"type": "byte",
"value": 0
},
"Conversation": {
"type": "resref",
"value": "cocoonspids"
},
"CurrentHP": {
"type": "short",
"value": 15
},
"Description": {
"id": 14728,
"type": "cexolocstring",
"value": {}
},
"DisarmDC": {
"type": "byte",
"value": 15
},
"Faction": {
"type": "dword",
"value": 1
},
"Fort": {
"type": "byte",
"value": 16
},
"Hardness": {
"type": "byte",
"value": 5
},
"HasInventory": {
"type": "byte",
"value": 0
},
"HP": {
"type": "short",
"value": 15
},
"Interruptable": {
"type": "byte",
"value": 1
},
"KeyName": {
"type": "cexostring",
"value": ""
},
"KeyRequired": {
"type": "byte",
"value": 0
},
"Lockable": {
"type": "byte",
"value": 0
},
"Locked": {
"type": "byte",
"value": 0
},
"LocName": {
"id": 14729,
"type": "cexolocstring",
"value": {}
},
"OnClick": {
"type": "resref",
"value": ""
},
"OnClosed": {
"type": "resref",
"value": ""
},
"OnDamaged": {
"type": "resref",
"value": ""
},
"OnDeath": {
"type": "resref",
"value": ""
},
"OnDisarm": {
"type": "resref",
"value": ""
},
"OnHeartbeat": {
"type": "resref",
"value": ""
},
"OnInvDisturbed": {
"type": "resref",
"value": ""
},
"OnLock": {
"type": "resref",
"value": ""
},
"OnMeleeAttacked": {
"type": "resref",
"value": ""
},
"OnOpen": {
"type": "resref",
"value": ""
},
"OnSpellCastAt": {
"type": "resref",
"value": ""
},
"OnTrapTriggered": {
"type": "resref",
"value": ""
},
"OnUnlock": {
"type": "resref",
"value": ""
},
"OnUsed": {
"type": "resref",
"value": "objconverse"
},
"OnUserDefined": {
"type": "resref",
"value": ""
},
"OpenLockDC": {
"type": "byte",
"value": 18
},
"Plot": {
"type": "byte",
"value": 1
},
"PortraitId": {
"type": "word",
"value": 448
},
"Ref": {
"type": "byte",
"value": 0
},
"Static": {
"type": "byte",
"value": 0
},
"Tag": {
"type": "cexostring",
"value": "SpiderwebCocoon"
},
"TemplateResRef": {
"type": "resref",
"value": "plc_spdcocoon"
},
"TrapDetectable": {
"type": "byte",
"value": 1
},
"TrapDetectDC": {
"type": "byte",
"value": 0
},
"TrapDisarmable": {
"type": "byte",
"value": 1
},
"TrapFlag": {
"type": "byte",
"value": 0
},
"TrapOneShot": {
"type": "byte",
"value": 1
},
"TrapType": {
"type": "byte",
"value": 0
},
"Type": {
"type": "byte",
"value": 0
},
"Useable": {
"type": "byte",
"value": 1
},
"Will": {
"type": "byte",
"value": 0
},
"X": {
"type": "float",
"value": 53.34228897094727
},
"Y": {
"type": "float",
"value": 27.66551017761231
},
"Z": {
"type": "float",
"value": 0.01000607013702393
}
},
{
"__struct_id": 9,
"AnimationState": {
@ -72800,6 +72575,68 @@
"type": "float",
"value": 0.0
}
},
{
"__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_SD25_PCR_PL0_DS2_CC051"
}
},
"MapNote": {
"type": "cexolocstring",
"value": {}
},
"MapNoteEnabled": {
"type": "byte",
"value": 1
},
"Tag": {
"type": "cexostring",
"value": "RA_PL_WRIGCOCOON"
},
"TemplateResRef": {
"type": "resref",
"value": "sp_waypoint"
},
"XOrientation": {
"type": "float",
"value": 0.0
},
"XPosition": {
"type": "float",
"value": 53.28160095214844
},
"YOrientation": {
"type": "float",
"value": 1.0
},
"YPosition": {
"type": "float",
"value": 27.05251693725586
},
"ZPosition": {
"type": "float",
"value": 0.01000607013702393
}
}
]
}

View File

@ -1750,7 +1750,7 @@
"Mod_Description": {
"type": "cexolocstring",
"value": {
"0": "Beyond the Dungeon of Graves v1.2\n\nBY: Tolen\n\n\nBased on Rappan Athuk: The Dungeon of Graves, published by Necromancer Games.\n\nPRC added & merged by Jaysyn\n\n\nRequires CEP 1 & PRC 4.1.10+"
"0": "Beyond the Dungeon of Graves v1.2\n\nOriginally by: Tolen\n\nUpdated by: Jaysyn\n\n\nBased on Rappan Athuk: The Dungeon of Graves, published by Necromancer Games.\n\nPRC added & merged by Jaysyn\n\n\nRequires CEP 1, CEP 3 & PRC 4.1.10+"
}
},
"Mod_DuskHour": {

View File

@ -18261,7 +18261,7 @@
"__struct_id": 0,
"CR": {
"type": "float",
"value": 0.25
"value": 2.0
},
"FACTION": {
"type": "cexostring",
@ -18269,11 +18269,11 @@
},
"NAME": {
"type": "cexostring",
"value": "Antony"
"value": "Antony the Merchant"
},
"RESREF": {
"type": "resref",
"value": "antony"
"value": "npc_antony"
}
},
{
@ -18846,6 +18846,25 @@
"value": "npc_derevash"
}
},
{
"__struct_id": 0,
"CR": {
"type": "float",
"value": 9.0
},
"FACTION": {
"type": "cexostring",
"value": "Defender"
},
"NAME": {
"type": "cexostring",
"value": "Drill Instructor, Human Male"
},
"RESREF": {
"type": "resref",
"value": "ra_hu_m_drill01"
}
},
{
"__struct_id": 0,
"CR": {
@ -20279,7 +20298,7 @@
},
"FACTION": {
"type": "cexostring",
"value": "Neutral"
"value": "Defender"
},
"NAME": {
"type": "cexostring",

View File

@ -11256,6 +11256,17 @@
"value": "prc_walliron"
}
},
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "Wiggling Cocoon"
},
"RESREF": {
"type": "resref",
"value": "ra_pl_wrigcocoon"
}
},
{
"__struct_id": 0,
"RESREF": {

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
_module/ncs/wg_training.ncs Normal file

Binary file not shown.

View File

@ -2,6 +2,6 @@ void main()
{
AssignCommand(OBJECT_SELF, ClearAllActions());
AssignCommand(OBJECT_SELF, ActionAttack(GetNearestObjectByTag("CombatDummy")));
AssignCommand(OBJECT_SELF, ActionAttack(GetNearestObjectByTag("ra_rnd_train_spw")));
}

View File

@ -0,0 +1,14 @@
//:: at_free_antony.nss
void main()
{
//: Declare major variables
object oPC = GetPCSpeaker();
object oTarget = oPC;
object oSpawn;
location lTarget = GetLocation(oTarget);
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "npc_antony", lTarget);
}

View File

@ -0,0 +1,25 @@
//::///////////////////////////////////////////////
//:: FileName at_spiders_lie
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 8/28/2005 11:07:31 PM
//:://////////////////////////////////////////////
void main()
{
//:: Declare Major Variables
object oPC = GetPCSpeaker();
int nChange;
int nAlignment = GetAlignmentGoodEvil(oPC);
if (nAlignment == ALIGNMENT_LAWFUL) {nChange = 5;}
if (nAlignment == ALIGNMENT_NEUTRAL) {nChange = 3;}
if (nAlignment == ALIGNMENT_CHAOTIC) {nChange = 1;}
//:: Give the speaker some gold
GiveGoldToCreature(oPC, 250);
AdjustAlignment(oPC, ALIGNMENT_CHAOTIC, nAlignment, FALSE);
}

View File

@ -49,6 +49,11 @@ void main()
// AI status check. Is the AI on?
if(GetAIOff()) return;
//:: Skip commoners unless the are beign attacked
string sCommoner = GetTag(OBJECT_SELF);
if (!GetIsInCombat() && FindSubString(sCommoner, "NPC_COM_")) return;
// Declare main things.
// - We declare OUTSIDE if's JUST IN CASE!
object oPerceived = GetLastPerceived();

View File

@ -0,0 +1,33 @@
//::///////////////////////////////////////////////
//::
//:: qst_ch_spiders01.nss
//::
//:: Copyright (c) 2022 Project RATDOG
//::
//:://////////////////////////////////////////////
/*
Checks for stage 1 of the "Spiders" quest.
*/
//:://////////////////////////////////////////////
//::
//:: Created By: Jaysyn
//:: Created On: 20221119
//::
//:://////////////////////////////////////////////
#include "pqj_inc"
int StartingConditional()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
int nInt;
nInt = RetrieveQuestState("spiders", oPC);
// nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYspiders");
if (!(nInt == 1)) return FALSE;
return TRUE;
}

View File

@ -0,0 +1,34 @@
//::///////////////////////////////////////////////
//::
//:: qst_ch_spiders02.nss
//::
//:: Copyright (c) 2022 Project RATDOG
//::
//:://////////////////////////////////////////////
/*
Checks for stage 2 of the "Spiders" quest.
*/
//:://////////////////////////////////////////////
//::
//:: Created By: Jaysyn
//:: Created On: 20221119
//::
//:://////////////////////////////////////////////
#include "pqj_inc"
int StartingConditional()
{
//:: Declare major variables
object oPC = GetPCSpeaker();
int nInt;
nInt = RetrieveQuestState("spiders", oPC);
// nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYspiders");
if (!(nInt == 2)) return FALSE;
return TRUE;
}

View File

@ -27,7 +27,7 @@ int StartingConditional()
// nInt=GetLocalInt(oPC, "NW_JOURNAL_ENTRYspiders");
if (!(nInt == 1)) return FALSE;
if (!(nInt == 0)) return FALSE;
return TRUE;
}

View File

@ -13,6 +13,7 @@
#include "pqj_inc"
#include "nw_i0_tool"
#include "x0_i0_partywide"
void main()
{
@ -20,9 +21,11 @@ void main()
object oPC = GetPCSpeaker();
//:: Give the speaker some gold
GiveGoldToCreature(GetPCSpeaker(), 500);
GiveGoldToAllEqually(oPC, 500);
//:: Set quest stage & update DB.
AddPersistentJournalQuestEntry("spiders", 3, oPC);
}
//:: Reward party with Quest XP
GiveXPToAllEqually(oPC, GetJournalQuestExperience("spiders"));
}

View File

@ -0,0 +1,81 @@
//::///////////////////////////////////////////////
//:: Name ra_rnd_drill_hb
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
Default Heartbeat script
*/
//:://////////////////////////////////////////////
//:: Created By: Keith Warner
//:: Created On: June 11/03
//:://////////////////////////////////////////////
void main()
{
//:: Declare major variables
int iRollTen = d10(1);
string sSayThis;
if(GetArea(OBJECT_SELF) == GetObjectByTag("WarriorsGuild"))
{
if(d100(1) > 71) //:: 30% chance to fire
{
if(iRollTen != 0) //:: Sanity check
{
switch(iRollTen) //:: Switch
{
case 1:
sSayThis = "Attack!";
break;
case 2:
sSayThis = "Fight you maggots!!";
break;
case 3:
sSayThis = "My dead grandmother can fight better than you weaklings!";
break;
case 4:
sSayThis = "You call that a counter strike!?!";
break;
case 5:
sSayThis = "You boys are all going to die the next time the orcs attack, you know that?";
break;
case 6:
sSayThis = "If that dummy was a hobgoblin, you'd be dead private!!";
break;
case 7:
sSayThis = "Yes, yes! Like that, very good!";
break;
case 8:
sSayThis = "Come on, come on!!";
break;
case 9:
sSayThis = "Harder! Hit that dummy like it owes you money!";
break;
case 10:
sSayThis = "Attack, fight!";
break;
}
ActionSpeakString(sSayThis); //:: Make the NPC talk
}
}
}
//:: Execute the default NPC OnHeartbeat script
ExecuteScript("nw_c2_default1", OBJECT_SELF);
//:: Execute the PRC NPC OnHeartbeat script
ExecuteScript("prc_npc_hb", OBJECT_SELF);
}

View File

@ -15,7 +15,7 @@ void main()
//:: Attack the Combat Dummy
AssignCommand(OBJECT_SELF, ClearAllActions());
AssignCommand(OBJECT_SELF, ActionAttack(GetNearestObjectByTag("CombatDummy")));
AssignCommand(OBJECT_SELF, ActionAttack(GetNearestObjectByTag("RA_PLC_CMB_DUMMY")));
//:: Execute the default NPC OnHeartbeat script
ExecuteScript("nw_c2_default1", OBJECT_SELF);

View File

@ -489,6 +489,6 @@ void main()
SignalEvent(OBJECT_SELF,EventUserDefined(EVENT_USER_DEFINED_POSTSPAWN));
}
AssignCommand(OBJECT_SELF, ActionAttack(GetNearestObjectByTag("CombatDummy")));
AssignCommand(OBJECT_SELF, ActionAttack(GetNearestObjectByTag("RA_PLC_CMB_DUMMY")));
}

View File

@ -123,6 +123,31 @@ int SpawnCheckCustom(object oSpawn)
}
//:: Checks for stage 1 or lower for the "Spider's Captive quest"
//:: Checks for stage 2 or lower for the "Spider's Captive quest"
if (nSpawnCheckCustom == 51)
{
//:: Initialize major variables
object oArea = GetArea(OBJECT_SELF);
object oPC = GetFirstObjectInArea(oArea);
//:: Cycle through PCs in Area
while (oPC != OBJECT_INVALID)
{
//:: Check quest stage
if ( RetrieveQuestState("spiders", oPC) <= 2 )
{
nProcessSpawn = TRUE;
//SendMessageToPC(oPC, "Spawn Processed");
SetLocalInt(oSpawn, "SpawnProcessed", TRUE);
}
oPC = GetNextObjectInArea(oArea);
}
}
//:: Checks for stage 2 or lower for the "Spider's Captive quest"
// -------------------------------------------
// Only Make Modifications Between These Lines
//

138
_module/nss/wg_training.nss Normal file
View File

@ -0,0 +1,138 @@
/*
Created By: Lilivati 02.09.2004
Updated By: Jaysyn 2022.11.19
This script has a commander issuing orders to a group of trainees. I use it in the OnHeartbeat
event for an area.
The demo mod uses 6 trainees, but any number will do.
You can change the existing case statement actions to whatever you want the trainees to do,
but if you want to add more actions, you have to change line 35 to a different die.
Important Info:
1) In Case 1, you need to set the direction in the last line before break to whatever
direction your trainees were originally facing.
2) Case 1 (Attack!) tends to break up orderly trainee lines. I tried to compensate for
this, but I'm only moderately happy with the result. Check out the demo mod to see
what I mean. Widely spacing the trainees also seems to help. (This would have been
much cleaner if combat animations were available as constants...)
3) Make sure your invisible objects are outside of the trainee's "space" or it won't look
nice in the module
4) To demonstrate Case 4, my trainees have artificially high hide skill ranks, and the
Hide In Plain Sight feat. Normal trainees will fail to hide from most PCs. (Note: if
your trainees do not have this feat, you might want to comment out (//) line 75)
Objects needed:
Commander: NPC, tag "COMMANDER"
Trainee: NPC, tag "TRAINEE"
An invisible object placed in front of each trainee, useable, plot object, with faction set to Hostile
A waypoint where each trainee is standing
*/
void main()
{
//:: Declare major variables
int i = 0;
object oComm = GetObjectByTag("RA_HU_M_DRILL01");
object oNoob = GetObjectByTag("RA_HU_M_TRAIN01", i);
object oDummy = GetObjectByTag("ra_plc_cmb_dummy");
float fFacing = GetFacing(oNoob);
//:: this "if" statement is nice if you're using the commander in more than one area; if the "if"
//:: statement isn't present, wherever the commander is she'll be yelling "Attack!" "Duck!" etc.
if(GetArea(GetFirstPC()) == GetObjectByTag("WarriorsGuild"))
{
int nRoll = d10(1);
while(oNoob != OBJECT_INVALID)
{
switch (nRoll)
{
//:: trainees attack nearest invisible object and return to position of nearest waypoint
case 1:
AssignCommand(oComm,ActionSpeakString("Attack!"));
DelayCommand(0.1f,AssignCommand(oNoob,SetFacing(DIRECTION_NORTH)));
DelayCommand(1.0f,AssignCommand(oNoob,ActionAttack(oDummy, FALSE)));
//DelayCommand(6.0f,AssignCommand(oNoob,ActionMoveToObject(GetNearestObjectToLocation(OBJECT_TYPE_WAYPOINT,GetLocation(oNoob)),TRUE,1.0f)));
DelayCommand(7.0f,AssignCommand(oNoob,SetFacing(DIRECTION_NORTH)));
break;
//:: trainees execute duck animation
case 2:
AssignCommand(oComm,ActionSpeakString("Duck!"));
DelayCommand(1.0f,AssignCommand(oNoob,ActionPlayAnimation(ANIMATION_FIREFORGET_DODGE_DUCK,1.0f)));
DelayCommand(5.0f,AssignCommand(oNoob,ClearAllActions(TRUE)));
break;
//:: trainees execute dodge animation
case 3:
AssignCommand(oComm,ActionSpeakString("Dodge!"));
DelayCommand(1.0f,AssignCommand(oNoob,ActionPlayAnimation(ANIMATION_FIREFORGET_DODGE_SIDE,1.0f)));
DelayCommand(5.0f,AssignCommand(oNoob,ClearAllActions(TRUE)));
break;
//:: trainees attack nearest invisible object and return to position of nearest waypoint
case 4:
AssignCommand(oComm,ActionSpeakString("Attack!"));
DelayCommand(0.1f,AssignCommand(oNoob,SetFacing(DIRECTION_NORTH)));
DelayCommand(1.0f,AssignCommand(oNoob,ActionAttack(oDummy, FALSE)));
//DelayCommand(6.0f,AssignCommand(oNoob,ActionMoveToObject(GetNearestObjectToLocation(OBJECT_TYPE_WAYPOINT,GetLocation(oNoob)),TRUE,1.0f)));
DelayCommand(7.0f,AssignCommand(oNoob,SetFacing(DIRECTION_NORTH)));
break;
//:: trainees execute duck animation
case 5:
AssignCommand(oComm,ActionSpeakString("Duck!"));
DelayCommand(1.0f,AssignCommand(oNoob,ActionPlayAnimation(ANIMATION_FIREFORGET_DODGE_DUCK,1.0f)));
DelayCommand(5.0f,AssignCommand(oNoob,ClearAllActions(TRUE)));
break;
//:: trainees execute dodge animation
case 6:
AssignCommand(oComm,ActionSpeakString("Dodge!"));
DelayCommand(1.0f,AssignCommand(oNoob,ActionPlayAnimation(ANIMATION_FIREFORGET_DODGE_SIDE,1.0f)));
DelayCommand(5.0f,AssignCommand(oNoob,ClearAllActions(TRUE)));
break;
//:: trainees go into stealth mode and then leave stealth mode
case 7:
AssignCommand(oComm,ActionSpeakString("Hide!"));
DelayCommand(1.0f,AssignCommand(oNoob,ActionUseSkill(SKILL_HIDE,GetFirstPC(),0,OBJECT_INVALID)));
DelayCommand(2.0f,AssignCommand(oNoob,ActionUseFeat(FEAT_HIDE_IN_PLAIN_SIGHT,GetFirstPC())));
//:: they're trainees so they're pretty bad at hiding :)
DelayCommand(5.0f,AssignCommand(oComm,ActionSpeakString("Pitiful!")));
DelayCommand(7.0f,AssignCommand(oNoob,ClearAllActions(TRUE)));
break;
//:: trainees attack nearest invisible object and return to position of nearest waypoint
case 8:
AssignCommand(oComm,ActionSpeakString("Attack!"));
DelayCommand(0.1f,AssignCommand(oNoob,SetFacing(DIRECTION_NORTH)));
DelayCommand(1.0f,AssignCommand(oNoob,ActionAttack(oDummy, FALSE)));
//DelayCommand(5.0f,AssignCommand(oNoob,ClearAllActions(TRUE)));
//DelayCommand(6.0f,AssignCommand(oNoob,ActionMoveToObject(GetNearestObjectToLocation(OBJECT_TYPE_WAYPOINT,GetLocation(oNoob)),TRUE,1.0f)));
DelayCommand(7.0f,AssignCommand(oNoob,SetFacing(DIRECTION_NORTH)));
break;
//:: trainees execute salute animation
case 9:
AssignCommand(oComm,ActionSpeakString("Salute!"));
DelayCommand(1.0f,AssignCommand(oNoob,ActionPlayAnimation(ANIMATION_FIREFORGET_SALUTE,1.0f)));
DelayCommand(5.0f,AssignCommand(oNoob,ClearAllActions(TRUE)));
break;
//:: trainees sit on ground
case 10:
AssignCommand(oComm,ActionSpeakString("Alright, take a short break."));
DelayCommand(1.0f,AssignCommand(oNoob,ActionSpeakString("Finally!")));
DelayCommand(2.0f,AssignCommand(oNoob,ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS,1.0f,4.0f)));
DelayCommand(7.0f,AssignCommand(oNoob,ClearAllActions(TRUE)));
break;
}
i++;
oNoob = GetObjectByTag("RA_HU_M_TRAIN01",i);
}
}
}

Binary file not shown.

View File

@ -14,7 +14,7 @@
},
"ChallengeRating": {
"type": "float",
"value": 0.25
"value": 2.0
},
"ClassList": {
"type": "list",
@ -27,18 +27,18 @@
},
"ClassLevel": {
"type": "short",
"value": 1
"value": 3
}
}
]
},
"Comment": {
"type": "cexostring",
"value": ""
"value": "Antony the Merchant"
},
"Con": {
"type": "byte",
"value": 10
"value": 12
},
"Conversation": {
"type": "resref",
@ -50,7 +50,7 @@
},
"CurrentHitPoints": {
"type": "short",
"value": 2
"value": 12
},
"DecayTime": {
"type": "dword",
@ -112,7 +112,7 @@
"id": 12696,
"type": "cexolocstring",
"value": {
"0": "Antony"
"0": "Antony the Merchant"
}
},
"fortbonus": {
@ -129,7 +129,7 @@
},
"HitPoints": {
"type": "short",
"value": 2
"value": 12
},
"Int": {
"type": "byte",
@ -161,7 +161,7 @@
},
"MaxHitPoints": {
"type": "short",
"value": 3
"value": 18
},
"NaturalAC": {
"type": "byte",
@ -201,55 +201,55 @@
},
"ScriptAttacked": {
"type": "resref",
"value": "nw_c2_default5"
"value": "x2_def_attacked"
},
"ScriptDamaged": {
"type": "resref",
"value": "nw_c2_default6"
"value": "x2_def_ondamage"
},
"ScriptDeath": {
"type": "resref",
"value": "nw_c2_default7"
"value": "x2_def_ondeath"
},
"ScriptDialogue": {
"type": "resref",
"value": "nw_c2_default4"
"value": "x2_def_onconv"
},
"ScriptDisturbed": {
"type": "resref",
"value": "nw_c2_default8"
"value": "x2_def_ondisturb"
},
"ScriptEndRound": {
"type": "resref",
"value": "nw_c2_default3"
"value": "x2_def_endcombat"
},
"ScriptHeartbeat": {
"type": "resref",
"value": "nw_c2_default1"
"value": "x2_def_heartbeat"
},
"ScriptOnBlocked": {
"type": "resref",
"value": "nw_c2_defaulte"
"value": "x2_def_onblocked"
},
"ScriptOnNotice": {
"type": "resref",
"value": "talktopc"
"value": "talk2pc_onpercp"
},
"ScriptRested": {
"type": "resref",
"value": "nw_c2_defaulta"
"value": "x2_def_rested"
},
"ScriptSpawn": {
"type": "resref",
"value": "nw_c2_default9"
"value": "x2_def_spawn"
},
"ScriptSpellAt": {
"type": "resref",
"value": "nw_c2_defaultb"
"value": "x2_def_spellcast"
},
"ScriptUserDefine": {
"type": "resref",
"value": "nw_c2_defaultd"
"value": "x2_def_userdef"
},
"SkillList": {
"type": "list",
@ -398,7 +398,7 @@
"__struct_id": 0,
"Rank": {
"type": "byte",
"value": 0
"value": 6
}
},
{
@ -547,11 +547,11 @@
},
"Subrace": {
"type": "cexostring",
"value": ""
"value": "Human"
},
"Tag": {
"type": "cexostring",
"value": "antony"
"value": "NPC_ANTONY"
},
"Tail_New": {
"type": "dword",
@ -563,7 +563,27 @@
},
"TemplateResRef": {
"type": "resref",
"value": "antony"
"value": "npc_antony"
},
"VarTable": {
"type": "list",
"value": [
{
"__struct_id": 0,
"Name": {
"type": "cexostring",
"value": "SET_NAME"
},
"Type": {
"type": "dword",
"value": 1
},
"Value": {
"type": "int",
"value": 0
}
}
]
},
"WalkRate": {
"type": "int",

File diff suppressed because it is too large Load Diff

View File

@ -180,7 +180,7 @@
},
"FactionID": {
"type": "word",
"value": 7
"value": 4
},
"FeatList": {
"type": "list",
@ -255,6 +255,13 @@
"value": 2919
}
},
{
"__struct_id": 1,
"Feat": {
"type": "word",
"value": 433
}
},
{
"__struct_id": 1,
"Feat": {
@ -642,7 +649,7 @@
},
"PerceptionRange": {
"type": "byte",
"value": 11
"value": 8
},
"Phenotype": {
"type": "int",
@ -666,23 +673,23 @@
},
"ScriptAttacked": {
"type": "resref",
"value": "x2_def_attacked"
"value": "nw_ai_onattacked"
},
"ScriptDamaged": {
"type": "resref",
"value": "x2_def_ondamage"
"value": "nw_ai_ondamaged"
},
"ScriptDeath": {
"type": "resref",
"value": "x2_def_ondeath"
"value": "nw_ai_ondeath"
},
"ScriptDialogue": {
"type": "resref",
"value": "x2_def_onconv"
"value": "nw_ai_onconvers"
},
"ScriptDisturbed": {
"type": "resref",
"value": "x2_def_ondisturb"
"value": "nw_ai_ondisturb"
},
"ScriptEndRound": {
"type": "resref",
@ -694,15 +701,15 @@
},
"ScriptOnBlocked": {
"type": "resref",
"value": "x2_def_onblocked"
"value": "nw_ai_onblocked"
},
"ScriptOnNotice": {
"type": "resref",
"value": "x2_def_percept"
"value": ""
},
"ScriptRested": {
"type": "resref",
"value": "x2_def_rested"
"value": "nw_ai_onrested"
},
"ScriptSpawn": {
"type": "resref",
@ -710,11 +717,11 @@
},
"ScriptSpellAt": {
"type": "resref",
"value": "x2_def_spellcast"
"value": "nw_ai_onspellcst"
},
"ScriptUserDefine": {
"type": "resref",
"value": "x2_def_userdef"
"value": ""
},
"SkillList": {
"type": "list",
@ -758,7 +765,7 @@
"__struct_id": 0,
"Rank": {
"type": "byte",
"value": 0
"value": 3
}
},
{

View File

@ -0,0 +1,221 @@
{
"__data_type": "UTP ",
"AnimationState": {
"type": "byte",
"value": 0
},
"Appearance": {
"type": "dword",
"value": 90
},
"AutoRemoveKey": {
"type": "byte",
"value": 0
},
"BodyBag": {
"type": "byte",
"value": 0
},
"CloseLockDC": {
"type": "byte",
"value": 0
},
"Comment": {
"type": "cexostring",
"value": "Wiggling Cocoon\r\n\r\nSpawns the NPC Antony for the \"Spider's Captive\" quest."
},
"Conversation": {
"type": "resref",
"value": "cv_pl_cocoon"
},
"CurrentHP": {
"type": "short",
"value": 30
},
"Description": {
"id": 14728,
"type": "cexolocstring",
"value": {
"0": "A matted mass of webbing surrounds the central core of the cocoon. Something seems to be moving around in this one."
}
},
"DisarmDC": {
"type": "byte",
"value": 15
},
"Faction": {
"type": "dword",
"value": 1
},
"Fort": {
"type": "byte",
"value": 16
},
"Hardness": {
"type": "byte",
"value": 15
},
"HasInventory": {
"type": "byte",
"value": 0
},
"HP": {
"type": "short",
"value": 30
},
"Interruptable": {
"type": "byte",
"value": 0
},
"KeyName": {
"type": "cexostring",
"value": ""
},
"KeyRequired": {
"type": "byte",
"value": 0
},
"Lockable": {
"type": "byte",
"value": 0
},
"Locked": {
"type": "byte",
"value": 0
},
"LocName": {
"id": 14729,
"type": "cexolocstring",
"value": {
"0": "Wiggling Cocoon"
}
},
"OnClick": {
"type": "resref",
"value": ""
},
"OnClosed": {
"type": "resref",
"value": ""
},
"OnDamaged": {
"type": "resref",
"value": ""
},
"OnDeath": {
"type": "resref",
"value": ""
},
"OnDisarm": {
"type": "resref",
"value": ""
},
"OnHeartbeat": {
"type": "resref",
"value": ""
},
"OnInvDisturbed": {
"type": "resref",
"value": ""
},
"OnLock": {
"type": "resref",
"value": ""
},
"OnMeleeAttacked": {
"type": "resref",
"value": ""
},
"OnOpen": {
"type": "resref",
"value": ""
},
"OnSpellCastAt": {
"type": "resref",
"value": ""
},
"OnTrapTriggered": {
"type": "resref",
"value": ""
},
"OnUnlock": {
"type": "resref",
"value": ""
},
"OnUsed": {
"type": "resref",
"value": "objconverse"
},
"OnUserDefined": {
"type": "resref",
"value": ""
},
"OpenLockDC": {
"type": "byte",
"value": 18
},
"PaletteID": {
"type": "byte",
"value": 9
},
"Plot": {
"type": "byte",
"value": 1
},
"PortraitId": {
"type": "word",
"value": 448
},
"Ref": {
"type": "byte",
"value": 0
},
"Static": {
"type": "byte",
"value": 0
},
"Tag": {
"type": "cexostring",
"value": "RA_PL_WRIGCOCOON"
},
"TemplateResRef": {
"type": "resref",
"value": "ra_pl_wrigcocoon"
},
"TrapDetectable": {
"type": "byte",
"value": 1
},
"TrapDetectDC": {
"type": "byte",
"value": 0
},
"TrapDisarmable": {
"type": "byte",
"value": 1
},
"TrapFlag": {
"type": "byte",
"value": 0
},
"TrapOneShot": {
"type": "byte",
"value": 1
},
"TrapType": {
"type": "byte",
"value": 0
},
"Type": {
"type": "byte",
"value": 0
},
"Useable": {
"type": "byte",
"value": 1
},
"Will": {
"type": "byte",
"value": 0
}
}

View File

@ -176,7 +176,7 @@
},
"Tag": {
"type": "cexostring",
"value": "CombatDummy"
"value": "RA_PLC_CMB_DUMMY"
},
"TemplateResRef": {
"type": "resref",