Level One rework

Revamped Level One: North & Level One: Central to be as close to PnP as possible.  Added Level One: Latrene 3 area.  Added efreeti appearance from CEP3.  Revamped efreeti bottle to be like PnP (no wishes, yet)
This commit is contained in:
Jaysyn904 2023-09-23 22:02:32 -04:00
parent 7832a55868
commit 2e30722043
106 changed files with 40744 additions and 9332 deletions

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 384 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -3121,8 +3121,8 @@
3117 **** **** USER_RESERVED **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
3118 **** **** USER_RESERVED **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
3119 **** **** USER_RESERVED **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
3120 **** **** USER_RESERVED **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
3121 **** **** USER_RESERVED **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
3120 "Genie: Efreeti* (Cervantes)" **** Genie_Fire c_efreeti **** R F 2 1.4 1 1 FAST 2.85 4.5 0.5 0.8 1 0.5 2 H 1 20 1 1 po_efreeti02 4 10 1 1 1 60 30 head_g 3 1
3121 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
3122 **** **** USER_RESERVED **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
3123 **** **** USER_RESERVED **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
3124 **** **** USER_RESERVED **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****

View File

@ -10461,7 +10461,7 @@
10457 **** **** **** **** **** USER
10458 **** **** **** **** **** USER
10459 **** **** **** **** **** USER
10460 **** **** **** **** **** USER
10460 efreeti02_ 4 16 **** 0 ****
10461 **** **** **** **** **** USER
10462 **** **** **** **** **** USER
10463 **** **** **** **** **** USER

View File

@ -13121,7 +13121,7 @@
13117 **** **** ****
13118 **** **** ****
13119 **** **** ****
13120 **** **** ****
13120 "Genie: Efreeti* (Cervantes)" c_efreeti ****
13121 **** **** ****
13122 **** **** ****
13123 **** **** ****

View File

@ -677,7 +677,7 @@
},
"Version": {
"type": "dword",
"value": 111
"value": 113
},
"Width": {
"type": "int",

View File

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

View File

@ -13921,7 +13921,7 @@
},
"Version": {
"type": "dword",
"value": 10
"value": 11
},
"Width": {
"type": "int",

View File

@ -87,7 +87,7 @@
"Name": {
"type": "cexolocstring",
"value": {
"0": "Level 1: North"
"0": "| OLD Level 1: North |"
}
},
"NoRest": {
@ -2913,7 +2913,7 @@
},
"Version": {
"type": "dword",
"value": 20
"value": 23
},
"Width": {
"type": "int",

View File

@ -0,0 +1,346 @@
{
"__data_type": "ARE ",
"ChanceLightning": {
"type": "int",
"value": 0
},
"ChanceRain": {
"type": "int",
"value": 0
},
"ChanceSnow": {
"type": "int",
"value": 0
},
"Comments": {
"type": "cexostring",
"value": "Level One: Latrene 3"
},
"Creator_ID": {
"type": "int",
"value": -1
},
"DayNightCycle": {
"type": "byte",
"value": 0
},
"Expansion_List": {
"type": "list",
"value": []
},
"Flags": {
"type": "dword",
"value": 7
},
"FogClipDist": {
"type": "float",
"value": 45.0
},
"Height": {
"type": "int",
"value": 2
},
"ID": {
"type": "int",
"value": -1
},
"IsNight": {
"type": "byte",
"value": 1
},
"LightingScheme": {
"type": "byte",
"value": 18
},
"LoadScreenID": {
"type": "word",
"value": 0
},
"ModListenCheck": {
"type": "int",
"value": 0
},
"ModSpotCheck": {
"type": "int",
"value": 0
},
"MoonAmbientColor": {
"type": "dword",
"value": 2310951
},
"MoonDiffuseColor": {
"type": "dword",
"value": 2114144
},
"MoonFogAmount": {
"type": "byte",
"value": 10
},
"MoonFogColor": {
"type": "dword",
"value": 1849670
},
"MoonShadows": {
"type": "byte",
"value": 0
},
"Name": {
"type": "cexolocstring",
"value": {
"0": "Level One: Latrene 3"
}
},
"NoRest": {
"type": "byte",
"value": 1
},
"OnEnter": {
"type": "resref",
"value": "ra_lvl01a_onentr"
},
"OnExit": {
"type": "resref",
"value": "ra_lvl01a_onexit"
},
"OnHeartbeat": {
"type": "resref",
"value": "ra_lvl01a_onhb"
},
"OnUserDefined": {
"type": "resref",
"value": ""
},
"PlayerVsPlayer": {
"type": "byte",
"value": 3
},
"ResRef": {
"type": "resref",
"value": "lvl01_latrene3"
},
"ShadowOpacity": {
"type": "byte",
"value": 60
},
"SkyBox": {
"type": "byte",
"value": 6
},
"SunAmbientColor": {
"type": "dword",
"value": 0
},
"SunDiffuseColor": {
"type": "dword",
"value": 0
},
"SunFogAmount": {
"type": "byte",
"value": 0
},
"SunFogColor": {
"type": "dword",
"value": 0
},
"SunShadows": {
"type": "byte",
"value": 0
},
"Tag": {
"type": "cexostring",
"value": "LVL01_LATRENE3"
},
"Tile_List": {
"type": "list",
"value": [
{
"__struct_id": 1,
"Tile_AnimLoop1": {
"type": "byte",
"value": 0
},
"Tile_AnimLoop2": {
"type": "byte",
"value": 0
},
"Tile_AnimLoop3": {
"type": "byte",
"value": 0
},
"Tile_Height": {
"type": "int",
"value": 0
},
"Tile_ID": {
"type": "int",
"value": 21
},
"Tile_MainLight1": {
"type": "byte",
"value": 0
},
"Tile_MainLight2": {
"type": "byte",
"value": 3
},
"Tile_Orientation": {
"type": "int",
"value": 2
},
"Tile_SrcLight1": {
"type": "byte",
"value": 0
},
"Tile_SrcLight2": {
"type": "byte",
"value": 0
}
},
{
"__struct_id": 1,
"Tile_AnimLoop1": {
"type": "byte",
"value": 0
},
"Tile_AnimLoop2": {
"type": "byte",
"value": 0
},
"Tile_AnimLoop3": {
"type": "byte",
"value": 0
},
"Tile_Height": {
"type": "int",
"value": 0
},
"Tile_ID": {
"type": "int",
"value": 24
},
"Tile_MainLight1": {
"type": "byte",
"value": 1
},
"Tile_MainLight2": {
"type": "byte",
"value": 0
},
"Tile_Orientation": {
"type": "int",
"value": 3
},
"Tile_SrcLight1": {
"type": "byte",
"value": 0
},
"Tile_SrcLight2": {
"type": "byte",
"value": 0
}
},
{
"__struct_id": 1,
"Tile_AnimLoop1": {
"type": "byte",
"value": 0
},
"Tile_AnimLoop2": {
"type": "byte",
"value": 0
},
"Tile_AnimLoop3": {
"type": "byte",
"value": 0
},
"Tile_Height": {
"type": "int",
"value": 0
},
"Tile_ID": {
"type": "int",
"value": 21
},
"Tile_MainLight1": {
"type": "byte",
"value": 0
},
"Tile_MainLight2": {
"type": "byte",
"value": 2
},
"Tile_Orientation": {
"type": "int",
"value": 1
},
"Tile_SrcLight1": {
"type": "byte",
"value": 0
},
"Tile_SrcLight2": {
"type": "byte",
"value": 0
}
},
{
"__struct_id": 1,
"Tile_AnimLoop1": {
"type": "byte",
"value": 0
},
"Tile_AnimLoop2": {
"type": "byte",
"value": 0
},
"Tile_AnimLoop3": {
"type": "byte",
"value": 0
},
"Tile_Height": {
"type": "int",
"value": 0
},
"Tile_ID": {
"type": "int",
"value": 5
},
"Tile_MainLight1": {
"type": "byte",
"value": 0
},
"Tile_MainLight2": {
"type": "byte",
"value": 3
},
"Tile_Orientation": {
"type": "int",
"value": 0
},
"Tile_SrcLight1": {
"type": "byte",
"value": 2
},
"Tile_SrcLight2": {
"type": "byte",
"value": 2
}
}
]
},
"Tileset": {
"type": "resref",
"value": "tmd19a"
},
"Version": {
"type": "dword",
"value": 7
},
"Width": {
"type": "int",
"value": 2
},
"WindPower": {
"type": "int",
"value": 0
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,835 @@
{
"__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": 5
},
"IsChild": {
"type": "byte",
"value": 0
}
},
{
"__struct_id": 1,
"Active": {
"type": "resref",
"value": ""
},
"ConditionParams": {
"type": "list",
"value": []
},
"Index": {
"type": "dword",
"value": 2
},
"IsChild": {
"type": "byte",
"value": 0
}
},
{
"__struct_id": 2,
"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": "You see before you a suspiciously clean commode. The smell around it is absolutely horrible."
}
}
},
{
"__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": 1
},
"IsChild": {
"type": "byte",
"value": 0
}
}
]
},
"Script": {
"type": "resref",
"value": ""
},
"Sound": {
"type": "resref",
"value": ""
},
"Speaker": {
"type": "cexostring",
"value": ""
},
"Text": {
"type": "cexolocstring",
"value": {
"0": "As you turn and walk away you hear a slimy ripping sound from behind. You turn around to see a disgusting monstrosity bearing down upon you."
}
}
},
{
"__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
},
"Quest": {
"type": "cexostring",
"value": ""
},
"RepliesList": {
"type": "list",
"value": [
{
"__struct_id": 0,
"Active": {
"type": "resref",
"value": ""
},
"ConditionParams": {
"type": "list",
"value": []
},
"Index": {
"type": "dword",
"value": 3
},
"IsChild": {
"type": "byte",
"value": 0
}
}
]
},
"Script": {
"type": "resref",
"value": ""
},
"Sound": {
"type": "resref",
"value": ""
},
"Speaker": {
"type": "cexostring",
"value": ""
},
"Text": {
"type": "cexolocstring",
"value": {
"0": "Against your better judgement you open the lid & peer in. All you can see is stinky blackness."
}
}
},
{
"__struct_id": 3,
"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": 4
},
"IsChild": {
"type": "byte",
"value": 0
}
}
]
},
"Script": {
"type": "resref",
"value": ""
},
"Sound": {
"type": "resref",
"value": ""
},
"Speaker": {
"type": "cexostring",
"value": ""
},
"Text": {
"type": "cexolocstring",
"value": {
"0": "As you turn and walk away you hear a slimy ripping sound from behind. You turn around to see a disgusting monstrosity bearing down upon you."
}
}
},
{
"__struct_id": 4,
"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": 6
},
"IsChild": {
"type": "byte",
"value": 0
}
}
]
},
"Script": {
"type": "resref",
"value": ""
},
"Sound": {
"type": "resref",
"value": ""
},
"Speaker": {
"type": "cexostring",
"value": ""
},
"Text": {
"type": "cexolocstring",
"value": {
"0": "You drop trou & turn around to use the commode. Before you manage to sit down you hear a ripping sound & sense a rush of motion behind you. The commode has shape-shifted into what can only be described as a dung monster."
}
}
}
]
},
"NumWords": {
"type": "dword",
"value": 142
},
"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": [
{
"__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": ""
},
"Sound": {
"type": "resref",
"value": ""
},
"Text": {
"type": "cexolocstring",
"value": {
"0": "Leave."
}
}
},
{
"__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": []
},
"Quest": {
"type": "cexostring",
"value": ""
},
"Script": {
"type": "resref",
"value": "at_dm_attack1"
},
"Sound": {
"type": "resref",
"value": ""
},
"Text": {
"type": "cexolocstring",
"value": {
"0": "Run?!?"
}
}
},
{
"__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": [
{
"__struct_id": 0,
"Active": {
"type": "resref",
"value": ""
},
"ConditionParams": {
"type": "list",
"value": []
},
"Index": {
"type": "dword",
"value": 2
},
"IsChild": {
"type": "byte",
"value": 0
}
}
]
},
"Quest": {
"type": "cexostring",
"value": ""
},
"Script": {
"type": "resref",
"value": ""
},
"Sound": {
"type": "resref",
"value": ""
},
"Text": {
"type": "cexolocstring",
"value": {
"0": "Look into the commode."
}
}
},
{
"__struct_id": 3,
"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": 3
},
"IsChild": {
"type": "byte",
"value": 0
}
}
]
},
"Quest": {
"type": "cexostring",
"value": ""
},
"Script": {
"type": "resref",
"value": ""
},
"Sound": {
"type": "resref",
"value": ""
},
"Text": {
"type": "cexolocstring",
"value": {
"0": "Leave."
}
}
},
{
"__struct_id": 4,
"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": "at_dm_attack1"
},
"Sound": {
"type": "resref",
"value": ""
},
"Text": {
"type": "cexolocstring",
"value": {
"0": "Run?!?"
}
}
},
{
"__struct_id": 5,
"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": 4
},
"IsChild": {
"type": "byte",
"value": 0
}
}
]
},
"Quest": {
"type": "cexostring",
"value": ""
},
"Script": {
"type": "resref",
"value": ""
},
"Sound": {
"type": "resref",
"value": ""
},
"Text": {
"type": "cexolocstring",
"value": {
"0": "Answer the call of nature."
}
}
},
{
"__struct_id": 6,
"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": "at_dm_attack1"
},
"Sound": {
"type": "resref",
"value": ""
},
"Text": {
"type": "cexolocstring",
"value": {
"0": "Run?!?"
}
}
}
]
},
"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,860 @@
{
"__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 privy-hole is much less full of crap than the other two. You think you can see something glinting faintly below."
}
}
},
{
"__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": ""
},
"Sound": {
"type": "resref",
"value": ""
},
"Speaker": {
"type": "cexostring",
"value": ""
},
"Text": {
"type": "cexolocstring",
"value": {
"0": "You could squeeze down there & see if there is anything worth taking, if you had a rope."
}
}
},
{
"__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
},
"Quest": {
"type": "cexostring",
"value": ""
},
"RepliesList": {
"type": "list",
"value": [
{
"__struct_id": 0,
"Active": {
"type": "resref",
"value": ""
},
"ConditionParams": {
"type": "list",
"value": []
},
"Index": {
"type": "dword",
"value": 4
},
"IsChild": {
"type": "byte",
"value": 0
}
},
{
"__struct_id": 1,
"Active": {
"type": "resref",
"value": ""
},
"ConditionParams": {
"type": "list",
"value": []
},
"Index": {
"type": "dword",
"value": 3
},
"IsChild": {
"type": "byte",
"value": 0
}
}
]
},
"Script": {
"type": "resref",
"value": ""
},
"Sound": {
"type": "resref",
"value": ""
},
"Speaker": {
"type": "cexostring",
"value": ""
},
"Text": {
"type": "cexolocstring",
"value": {
"0": "You could squeeze down there & see if there is anything worth taking."
}
}
},
{
"__struct_id": 3,
"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": "at_move2latrene3"
},
"Sound": {
"type": "resref",
"value": ""
},
"Speaker": {
"type": "cexostring",
"value": ""
},
"Text": {
"type": "cexolocstring",
"value": {
"0": "Secure your rope & enter the privy-hole."
}
}
},
{
"__struct_id": 4,
"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": 1
},
"LinkComment": {
"type": "cexostring",
"value": ""
}
}
]
},
"Script": {
"type": "resref",
"value": ""
},
"Sound": {
"type": "resref",
"value": ""
},
"Speaker": {
"type": "cexostring",
"value": ""
},
"Text": {
"type": "cexolocstring",
"value": {
"0": "Someone smaller than you could squeeze thru the privy-hole to look around, too bad there isn't a rope handy."
}
}
},
{
"__struct_id": 5,
"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": 5
},
"IsChild": {
"type": "byte",
"value": 0
}
}
]
},
"Script": {
"type": "resref",
"value": ""
},
"Sound": {
"type": "resref",
"value": ""
},
"Speaker": {
"type": "cexostring",
"value": ""
},
"Text": {
"type": "cexolocstring",
"value": {
"0": "Someone smaller than you could squeeze thru the privy-hole to look around."
}
}
}
]
},
"NumWords": {
"type": "dword",
"value": 122
},
"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": "Leave."
}
}
},
{
"__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": "sc_isbig_hasrope"
},
"ConditionParams": {
"type": "list",
"value": []
},
"Index": {
"type": "dword",
"value": 5
},
"IsChild": {
"type": "byte",
"value": 0
}
},
{
"__struct_id": 1,
"Active": {
"type": "resref",
"value": "is_big_no_rope"
},
"ConditionParams": {
"type": "list",
"value": []
},
"Index": {
"type": "dword",
"value": 4
},
"IsChild": {
"type": "byte",
"value": 0
}
},
{
"__struct_id": 2,
"Active": {
"type": "resref",
"value": "sc_small_hasrope"
},
"ConditionParams": {
"type": "list",
"value": []
},
"Index": {
"type": "dword",
"value": 2
},
"IsChild": {
"type": "byte",
"value": 0
}
},
{
"__struct_id": 3,
"Active": {
"type": "resref",
"value": "sc_small_no_rope"
},
"ConditionParams": {
"type": "list",
"value": []
},
"Index": {
"type": "dword",
"value": 1
},
"IsChild": {
"type": "byte",
"value": 0
}
}
]
},
"Quest": {
"type": "cexostring",
"value": ""
},
"Script": {
"type": "resref",
"value": ""
},
"Sound": {
"type": "resref",
"value": ""
},
"Text": {
"type": "cexolocstring",
"value": {
"0": "Inspect the privy-hole."
}
}
},
{
"__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": "I'm an adventurer, why don't I have rope?"
}
}
},
{
"__struct_id": 3,
"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": "Absolutely not."
}
}
},
{
"__struct_id": 4,
"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": 3
},
"IsChild": {
"type": "byte",
"value": 0
}
}
]
},
"Quest": {
"type": "cexostring",
"value": ""
},
"Script": {
"type": "resref",
"value": ""
},
"Sound": {
"type": "resref",
"value": ""
},
"Text": {
"type": "cexolocstring",
"value": {
"0": "That sounds like a great idea."
}
}
},
{
"__struct_id": 5,
"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": "I can't say that I'm very sad I don't fit down there."
}
}
}
]
},
"StartingList": {
"type": "list",
"value": [
{
"__struct_id": 0,
"Active": {
"type": "resref",
"value": ""
},
"ConditionParams": {
"type": "list",
"value": []
},
"Index": {
"type": "dword",
"value": 0
}
}
]
}
}

View File

@ -2,64 +2,7 @@
"__data_type": "GIC ",
"Creature List": {
"type": "list",
"value": [
{
"__struct_id": 4,
"Comment": {
"type": "cexostring",
"value": ""
}
},
{
"__struct_id": 4,
"Comment": {
"type": "cexostring",
"value": ""
}
},
{
"__struct_id": 4,
"Comment": {
"type": "cexostring",
"value": ""
}
},
{
"__struct_id": 4,
"Comment": {
"type": "cexostring",
"value": ""
}
},
{
"__struct_id": 4,
"Comment": {
"type": "cexostring",
"value": ""
}
},
{
"__struct_id": 4,
"Comment": {
"type": "cexostring",
"value": ""
}
},
{
"__struct_id": 4,
"Comment": {
"type": "cexostring",
"value": ""
}
},
{
"__struct_id": 4,
"Comment": {
"type": "cexostring",
"value": "Naga, Dark: 09 HD\r\n\r\nMonster Manual, pg. 191"
}
}
]
"value": []
},
"Door List": {
"type": "list",

View File

@ -6,15 +6,7 @@
},
"Door List": {
"type": "list",
"value": [
{
"__struct_id": 8,
"Comment": {
"type": "cexostring",
"value": "Area Transition"
}
}
]
"value": []
},
"Encounter List": {
"type": "list",
@ -87,13 +79,6 @@
"value": "Source: Bathroom Fixtures by Lisa Edited by SBird for CEP."
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: Bathroom Fixtures by Lisa Edited by SBird for CEP."
}
},
{
"__struct_id": 9,
"Comment": {
@ -255,13 +240,6 @@
"value": "Bones"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Low treasure script."
}
},
{
"__struct_id": 9,
"Comment": {
@ -324,6 +302,13 @@
"type": "cexostring",
"value": "Broken Furniture [Respawning]"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: Bathroom Fixtures by Lisa Edited by SBird for CEP."
}
}
]
},
@ -345,13 +330,6 @@
"value": ""
}
},
{
"__struct_id": 1,
"Comment": {
"type": "cexostring",
"value": ""
}
},
{
"__struct_id": 1,
"Comment": {
@ -396,7 +374,21 @@
"__struct_id": 5,
"Comment": {
"type": "cexostring",
"value": ""
"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."
}
},
{

View File

@ -0,0 +1,167 @@
{
"__data_type": "GIC ",
"Creature List": {
"type": "list",
"value": []
},
"Door List": {
"type": "list",
"value": []
},
"Encounter List": {
"type": "list",
"value": []
},
"List": {
"type": "list",
"value": []
},
"Placeable List": {
"type": "list",
"value": [
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "volition's Bio Placeables by volition\r\n"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "volition's Bio Placeables by volition\r\n"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "volition's Bio Placeables by volition\r\n"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "volition's Bio Placeables by volition\r\n"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "volition's Bio Placeables by volition\r\n"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "volition's Bio Placeables by volition\r\n"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "volition's Bio Placeables by volition\r\n"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "volition's Bio Placeables by volition\r\n\r\nCharlie Bronson rope..."
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "volition's Bio Placeables by volition\r\n"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "volition's Bio Placeables by volition\r\n"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "volition's Bio Placeables by volition\r\n"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": ""
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": ""
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: Lief's Fog by Lief\r\nUse caution, these fog effects will slow the module down to a crawl if too many are used."
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": ""
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": ""
}
}
]
},
"SoundList": {
"type": "list",
"value": []
},
"StoreList": {
"type": "list",
"value": []
},
"TriggerList": {
"type": "list",
"value": []
},
"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."
}
}
]
}
}

View File

@ -0,0 +1,411 @@
{
"__data_type": "GIC ",
"Creature List": {
"type": "list",
"value": []
},
"Door List": {
"type": "list",
"value": [
{
"__struct_id": 8,
"Comment": {
"type": "cexostring",
"value": "Area Transition"
}
}
]
},
"Encounter List": {
"type": "list",
"value": [
{
"__struct_id": 7
}
]
},
"List": {
"type": "list",
"value": []
},
"Placeable List": {
"type": "list",
"value": [
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Sewer Grates by Lost Dragon\r\n"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: LOK Dungeon Tileset 1.04 Full by Danmar\r\n(Placeables only extracted)"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: LOK Dungeon Tileset 1.04 Full by Danmar\r\n(Placeables only extracted)"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: LOK Dungeon Tileset 1.04 Full by Danmar\r\n(Placeables only extracted)"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: Bathroom Fixtures by Lisa"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: Bathroom Fixtures by Lisa"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: Bathroom Fixtures by Lisa"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: Bathroom Fixtures by Lisa Edited by SBird for CEP."
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Splatter Pack v1.0 by Knat\r\n"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: Tracks, Splats, and Scrawl by Rimmy"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: Tracks, Splats, and Scrawl by Rimmy"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: Bathroom Fixtures by Lisa"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: Extra Debris Pack 1 by Brother Roth"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: Bathroom Fixtures by Lisa"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: Bathroom Fixtures by Lisa"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: Bathroom Fixtures by Lisa"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: Tracks, Splats, and Scrawl by Rimmy"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: Tracks, Splats, and Scrawl by Rimmy"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: Tracks, Splats, and Scrawl by Rimmy"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: Tracks, Splats, and Scrawl by Rimmy"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: Tracks, Splats, and Scrawl by Rimmy"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: Tracks, Splats, and Scrawl by Rimmy"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: Tracks, Splats, and Scrawl by Rimmy"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: Tracks, Splats, and Scrawl by Rimmy"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: Tracks, Splats, and Scrawl by Rimmy"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: Tracks, Splats, and Scrawl by Rimmy"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: Tracks, Splats, and Scrawl by Rimmy"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: Tracks, Splats, and Scrawl by Rimmy"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: Tracks, Splats, and Scrawl by Rimmy"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Bones"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Bones"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": ""
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "volition's Bio Placeables by volition\r\n"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "volition's Bio Placeables by volition\r\n"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "volition's Bio Placeables by volition\r\n"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "volition's Bio Placeables by volition\r\n"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Broken Chair 3"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Broken Furniture [Respawning]"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Broken Furniture [Respawning]"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Broken Furniture [Respawning]"
}
},
{
"__struct_id": 9,
"Comment": {
"type": "cexostring",
"value": "Source: Bathroom Fixtures by Lisa Edited by SBird for CEP."
}
}
]
},
"SoundList": {
"type": "list",
"value": []
},
"StoreList": {
"type": "list",
"value": []
},
"TriggerList": {
"type": "list",
"value": [
{
"__struct_id": 1,
"Comment": {
"type": "cexostring",
"value": ""
}
},
{
"__struct_id": 1,
"Comment": {
"type": "cexostring",
"value": ""
}
}
]
},
"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": {
"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."
}
}
]
}
}

File diff suppressed because it is too large Load Diff

View File

@ -2463,7 +2463,7 @@
"__struct_id": 0,
"Appearance": {
"type": "int",
"value": 471
"value": 3120
},
"Comment": {
"type": "cexostring",
@ -2471,11 +2471,11 @@
},
"CR": {
"type": "float",
"value": 9.0
"value": 11.0
},
"ResRef": {
"type": "resref",
"value": "efreeti"
"value": "efreeti001"
},
"SingleSpawn": {
"type": "byte",
@ -28016,6 +28016,10 @@
"type": "resref",
"value": "nw_it_gold001"
},
"xModelPart1": {
"type": "word",
"value": 1
},
"XOrientation": {
"type": "float",
"value": 0.0
@ -28113,6 +28117,10 @@
"type": "resref",
"value": "nw_it_gem010"
},
"xModelPart1": {
"type": "word",
"value": 10
},
"XOrientation": {
"type": "float",
"value": 0.0
@ -28210,6 +28218,10 @@
"type": "resref",
"value": "nw_it_gem011"
},
"xModelPart1": {
"type": "word",
"value": 11
},
"XOrientation": {
"type": "float",
"value": 0.0
@ -28307,6 +28319,10 @@
"type": "resref",
"value": "nw_it_gem002"
},
"xModelPart1": {
"type": "word",
"value": 2
},
"XOrientation": {
"type": "float",
"value": 0.0
@ -28404,6 +28420,10 @@
"type": "resref",
"value": "nw_it_gem006"
},
"xModelPart1": {
"type": "word",
"value": 6
},
"XOrientation": {
"type": "float",
"value": 0.0
@ -28730,6 +28750,10 @@
"type": "resref",
"value": "nw_it_gold001"
},
"xModelPart1": {
"type": "word",
"value": 1
},
"XOrientation": {
"type": "float",
"value": 0.0
@ -28827,6 +28851,10 @@
"type": "resref",
"value": "nw_it_gem007"
},
"xModelPart1": {
"type": "word",
"value": 1
},
"XOrientation": {
"type": "float",
"value": 0.0
@ -28924,6 +28952,10 @@
"type": "resref",
"value": "nw_it_gem004"
},
"xModelPart1": {
"type": "word",
"value": 4
},
"XOrientation": {
"type": "float",
"value": 0.0
@ -29021,6 +29053,10 @@
"type": "resref",
"value": "nw_it_gem008"
},
"xModelPart1": {
"type": "word",
"value": 8
},
"XOrientation": {
"type": "float",
"value": 0.0
@ -29347,6 +29383,10 @@
"type": "resref",
"value": "nw_it_gold001"
},
"xModelPart1": {
"type": "word",
"value": 1
},
"XOrientation": {
"type": "float",
"value": 0.0
@ -29444,6 +29484,10 @@
"type": "resref",
"value": "nw_it_gem014"
},
"xModelPart1": {
"type": "word",
"value": 14
},
"XOrientation": {
"type": "float",
"value": 0.0
@ -29541,6 +29585,10 @@
"type": "resref",
"value": "nw_it_gem003"
},
"xModelPart1": {
"type": "word",
"value": 3
},
"XOrientation": {
"type": "float",
"value": 0.0
@ -29638,6 +29686,10 @@
"type": "resref",
"value": "nw_it_gem009"
},
"xModelPart1": {
"type": "word",
"value": 9
},
"XOrientation": {
"type": "float",
"value": 0.0

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1798,6 +1798,20 @@
"type": "resref",
"value": "lvl01_central"
}
},
{
"__struct_id": 6,
"Area_Name": {
"type": "resref",
"value": "lvl01_latrene3"
}
},
{
"__struct_id": 6,
"Area_Name": {
"type": "resref",
"value": "lvl01_north"
}
}
]
},

View File

@ -903,7 +903,7 @@
},
"NAME": {
"type": "cexostring",
"value": "The Dung Monster"
"value": "The Dung Monster: 10 HD"
},
"RESREF": {
"type": "resref",
@ -922,7 +922,7 @@
},
"NAME": {
"type": "cexostring",
"value": "Treant, Corrupted [07 HD]"
"value": "Treant, Corrupted: 07 HD"
},
"RESREF": {
"type": "resref",
@ -14928,25 +14928,6 @@
"value": "dreamlarva"
}
},
{
"__struct_id": 0,
"CR": {
"type": "float",
"value": 9.0
},
"FACTION": {
"type": "cexostring",
"value": "Hostile"
},
"NAME": {
"type": "cexostring",
"value": "Efreeti"
},
"RESREF": {
"type": "resref",
"value": "efreeti"
}
},
{
"__struct_id": 0,
"CR": {
@ -15004,6 +14985,25 @@
"value": 16808918
}
},
{
"__struct_id": 0,
"CR": {
"type": "float",
"value": 11.0
},
"FACTION": {
"type": "cexostring",
"value": "Hostile"
},
"NAME": {
"type": "cexostring",
"value": "Genie, Efreeti: 10 HD"
},
"RESREF": {
"type": "resref",
"value": "efreeti001"
}
},
{
"__struct_id": 0,
"CR": {
@ -15979,7 +15979,7 @@
},
"FACTION": {
"type": "cexostring",
"value": "PC"
"value": "Hostile"
},
"NAME": {
"type": "cexostring",
@ -44275,6 +44275,25 @@
"value": 40643
}
},
{
"__struct_id": 0,
"CR": {
"type": "float",
"value": 11.0
},
"FACTION": {
"type": "cexostring",
"value": "Hostile"
},
"NAME": {
"type": "cexostring",
"value": "Summoned Efreeti: 10 HD"
},
"RESREF": {
"type": "resref",
"value": "sum_efreeti001"
}
},
{
"__struct_id": 0,
"CR": {

View File

@ -9515,7 +9515,7 @@
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "Efreeti Props"
"value": "Efreeti Properties"
},
"RESREF": {
"type": "resref",
@ -12563,6 +12563,17 @@
"value": "cr_dung_slam"
}
},
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "EfreetiSlam"
},
"RESREF": {
"type": "resref",
"value": "efreetislam"
}
},
{
"__struct_id": 0,
"RESREF": {
@ -18713,6 +18724,17 @@
"LIST": {
"type": "list",
"value": [
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "[old] Efreeti Bottle"
},
"RESREF": {
"type": "resref",
"value": "efreetibottle"
}
},
{
"__struct_id": 0,
"NAME": {
@ -18933,6 +18955,28 @@
"value": "it_gold010"
}
},
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "50' Hempen Rope"
},
"RESREF": {
"type": "resref",
"value": "itm_hemp_rope001"
}
},
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "50' Silk Rope"
},
"RESREF": {
"type": "resref",
"value": "itm_silk_rope001"
}
},
{
"__struct_id": 0,
"NAME": {
@ -19384,6 +19428,17 @@
"value": "item044"
}
},
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "Efreeti Bottle"
},
"RESREF": {
"type": "resref",
"value": "itm_efreetibot01"
}
},
{
"__struct_id": 0,
"NAME": {
@ -19395,6 +19450,17 @@
"value": "prc_it_emblmfr"
}
},
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "Exhausted Efreeti Bottle"
},
"RESREF": {
"type": "resref",
"value": "itm_deadbottle"
}
},
{
"__struct_id": 0,
"NAME": {
@ -20720,17 +20786,6 @@
"value": "prc_devilweed"
}
},
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "Efreeti Bottle"
},
"RESREF": {
"type": "resref",
"value": "efreetibottle"
}
},
{
"__struct_id": 0,
"NAME": {
@ -20874,6 +20929,17 @@
"value": 13411
}
},
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "Potion of Detect Magic"
},
"RESREF": {
"type": "resref",
"value": "pot_detmagic01"
}
},
{
"__struct_id": 0,
"NAME": {
@ -23926,6 +23992,17 @@
"value": "sp_it_spdvscr109"
}
},
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "Detect Magic"
},
"RESREF": {
"type": "resref",
"value": "scr_det_magic"
}
},
{
"__struct_id": 0,
"NAME": {
@ -38396,6 +38473,17 @@
"value": "baalsummon1kurki"
}
},
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "Burning Scimitar"
},
"RESREF": {
"type": "resref",
"value": "ar_wswpsc_fire01"
}
},
{
"__struct_id": 0,
"NAME": {
@ -40411,17 +40499,6 @@
"LIST": {
"type": "list",
"value": [
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "RA_WMGMWN_DETMAG"
},
"RESREF": {
"type": "resref",
"value": "ra_wmgmwn_detmag"
}
},
{
"__struct_id": 0,
"NAME": {
@ -40488,6 +40565,17 @@
"value": "prc_cwand_csw"
}
},
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "Wand of Detect Magic"
},
"RESREF": {
"type": "resref",
"value": "ra_wmgmwn_detmag"
}
},
{
"__struct_id": 0,
"NAME": {

View File

@ -19,13 +19,13 @@
"value": [
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "Bones"
},
"RESREF": {
"type": "resref",
"value": "ra_plc_bones001"
},
"STRREF": {
"type": "dword",
"value": 52997
}
},
{
@ -3041,6 +3041,17 @@
"value": 16811532
}
},
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "Stinky Commode"
},
"RESREF": {
"type": "resref",
"value": "ra_dm_commode"
}
},
{
"__struct_id": 0,
"RESREF": {
@ -7120,6 +7131,17 @@
"value": 16812470
}
},
{
"__struct_id": 0,
"RESREF": {
"type": "resref",
"value": "ra_plc_plate001"
},
"STRREF": {
"type": "dword",
"value": 68883
}
},
{
"__struct_id": 0,
"RESREF": {
@ -7131,17 +7153,6 @@
"value": 16812490
}
},
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "Plate"
},
"RESREF": {
"type": "resref",
"value": "ra_plc_plate001"
}
},
{
"__struct_id": 0,
"RESREF": {
@ -9439,17 +9450,6 @@
"value": 16811104
}
},
{
"__struct_id": 0,
"RESREF": {
"type": "resref",
"value": "zep_bbars003"
},
"STRREF": {
"type": "dword",
"value": 16811106
}
},
{
"__struct_id": 0,
"NAME": {
@ -9463,13 +9463,24 @@
},
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "Broken Furniture"
"RESREF": {
"type": "resref",
"value": "zep_bbars003"
},
"STRREF": {
"type": "dword",
"value": 16811106
}
},
{
"__struct_id": 0,
"RESREF": {
"type": "resref",
"value": "ra_broke_furn001"
},
"STRREF": {
"type": "dword",
"value": 67713
}
},
{
@ -11544,24 +11555,24 @@
},
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "Easel"
},
"RESREF": {
"type": "resref",
"value": "ra_easel001"
},
"STRREF": {
"type": "dword",
"value": 14701
}
},
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "Garbage"
},
"RESREF": {
"type": "resref",
"value": "ra_plc_garb001"
},
"STRREF": {
"type": "dword",
"value": 5799
}
},
{
@ -11588,13 +11599,13 @@
},
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "Rubble"
},
"RESREF": {
"type": "resref",
"value": "ra_pl_rubble001"
},
"STRREF": {
"type": "dword",
"value": 68810
}
},
{
@ -11632,13 +11643,13 @@
},
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "Wagon Wheel"
},
"RESREF": {
"type": "resref",
"value": "wagonwheel01_plc"
},
"STRREF": {
"type": "dword",
"value": 5746
}
},
{
@ -11654,13 +11665,13 @@
},
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "Web"
},
"RESREF": {
"type": "resref",
"value": "ra_plc_web001"
},
"STRREF": {
"type": "dword",
"value": 84591
}
},
{
@ -11714,13 +11725,13 @@
},
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "Bench"
},
"RESREF": {
"type": "resref",
"value": "ra_plc_bench001"
},
"STRREF": {
"type": "dword",
"value": 5821
}
},
{
@ -11736,46 +11747,35 @@
},
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "Broken Chair"
"RESREF": {
"type": "resref",
"value": "brokechair01_plc"
},
"STRREF": {
"type": "dword",
"value": 66903
}
},
{
"__struct_id": 0,
"RESREF": {
"type": "resref",
"value": "brokechair03_plc"
},
"STRREF": {
"type": "dword",
"value": 66903
}
},
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "Broken Chair"
},
"RESREF": {
"type": "resref",
"value": "brokechair01_plc"
}
},
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "Broken Chair 3"
},
"RESREF": {
"type": "resref",
"value": "brokechair01_plc"
}
},
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "Broken Furniture"
},
"RESREF": {
"type": "resref",
"value": "brokefurn01_plc"
},
"STRREF": {
"type": "dword",
"value": 67713
}
},
{
@ -12144,17 +12144,6 @@
"type": "dword",
"value": 16811670
}
},
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "Sticky Webbing"
},
"RESREF": {
"type": "resref",
"value": "ra_plc_web001"
}
}
]
},
@ -12238,6 +12227,17 @@
"value": 16811770
}
},
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "Magic Poop?"
},
"RESREF": {
"type": "resref",
"value": "ra_plc_magicpoop"
}
},
{
"__struct_id": 0,
"NAME": {
@ -17567,6 +17567,17 @@
"LIST": {
"type": "list",
"value": [
{
"__struct_id": 0,
"NAME": {
"type": "cexostring",
"value": "Hole"
},
"RESREF": {
"type": "resref",
"value": "ra_plc_dm_hole"
}
},
{
"__struct_id": 0,
"NAME": {

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
_module/ncs/hputest.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.

Binary file not shown.

Binary file not shown.

BIN
_module/ncs/sc_is_small.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.

Binary file not shown.

Binary file not shown.

BIN
_module/ncs/spawn_main.ncs Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,83 @@
//:: at_dm_attack1.nss
//::
//:: Spawns the Dung Monster (ra_dungmonster01) from the Commode conversation.
//::
//::
void main()
{
//:: Declare major variables
object oPlaceable = OBJECT_SELF;
//:: Check if the Dung Monster is already active
int DungMonsterActive = GetLocalInt(GetModule(), "DungMonsterActive");
//:: If it's not already active, spawn the Dung Monster
if (DungMonsterActive == 0)
{
object oCreature = GetObjectByTag("ra_dungmonster01");
// Check if the monster already exists
if (!GetIsObjectValid(oCreature))
{
// If it doesn't exist, spawn it
oCreature = CreateObject(OBJECT_TYPE_CREATURE, "ra_dungmonster01", GetLocation(oPlaceable));
// Get the nearest player to the placeable
object oNearestPlayer = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC, oPlaceable);
// If we found a player, make the creature attack them
if (GetIsObjectValid(oCreature) && GetIsObjectValid(oNearestPlayer))
{
AssignCommand(oCreature, ActionAttack(oNearestPlayer));
}
}
// Set the Dung Monster as active in the module
SetLocalInt(GetModule(), "DungMonsterActive", 1);
}
//:: Clear the plot flag on the commode
SetPlotFlag(oPlaceable, FALSE);
//:: Destroy the commode
DestroyObject(oPlaceable, 0.0f);
//:: Spawn the latrine hole
object oHole = CreateObject(OBJECT_TYPE_PLACEABLE, "ra_plc_dm_hole", GetLocation(oPlaceable));
}
/* void main()
{
//:: Declare major variables
object oPlaceable = OBJECT_SELF;
//:: Spawn the Dung Monster
object oCreature = CreateObject(OBJECT_TYPE_CREATURE, "ra_dungmonster01", GetLocation(oPlaceable));
//:: Get the nearest player to the placeable
object oNearestPlayer = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC, oPlaceable);
//:: If we found a player, make the creature attack them
GetIsObjectValid(oCreature) && GetIsObjectValid(oNearestPlayer))
{
AssignCommand(oCreature, ActionAttack(oNearestPlayer));
}
//:: Clear the plot flag on the commode
SetPlotFlag(oPlaceable, FALSE);
//:: Set a var on the module to show the Dung Monster is active
SetLocalInt(GetModule(), "DungMonsterActive", TRUE);
//:: Destroy the commode
DestroyObject(oPlaceable, 0.0f);
//:: Spawn the latrene hole
object oHole = CreateObject(OBJECT_TYPE_PLACEABLE, "ra_plc_dm_hole", GetLocation(oPlaceable));
} */

View File

@ -0,0 +1,14 @@
void main()
{
object oTarget;
// Get the PC who is in this conversation.
object oPC = GetPCSpeaker();
// Find the location to which to teleport.
oTarget = GetWaypointByTag("WP_LATRENE3");
// Teleport the PC.
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, JumpToObject(oTarget));
}

View File

@ -34,12 +34,13 @@ if(GetLocalInt(oClicker,"DoorOnce") == FALSE)
DelayCommand(1.1,DeleteLocalInt(oClicker,"DoorOnce"));
//:: Prevents the Dung Monster from perma-chasing PC's
//:: Prevents the Dung Monster from perma-chasing PC's
int nRandom = d4(1);
if (sResRef == "ra_dungmonster" && nRandom > 2)
{
DestroyObject(oClicker);
DelayCommand(0.0f, SetLocalInt(GetModule(), "DungMonsterActive", FALSE));
}
if(GetIsPC(oClicker)==TRUE)

View File

@ -0,0 +1,45 @@
//::///////////////////////////////////////////////
//:: Name x2_def_heartbeat
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Gelatinous Cube Heartbeat
*/
//:://////////////////////////////////////////////
//:: Created By: Georg Zoeller
//:: Created On: Sept 16/03
//:://////////////////////////////////////////////
#include "x0_i0_spells"
#include "x2_i0_spells"
void main()
{
// execute default AI
ExecuteScript("nw_c2_default1", OBJECT_SELF);
// Cube additions
// * Only on the first heartbeat, destroy the creature's personal space
if (!GetLocalInt(OBJECT_SELF,"X2_L_GCUBE_SETUP"))
{
effect eGhost = EffectCutsceneGhost();
eGhost = SupernaturalEffect(eGhost);
ApplyEffectToObject(DURATION_TYPE_PERMANENT,eGhost,OBJECT_SELF);
SetLocalInt(OBJECT_SELF,"X2_L_GCUBE_SETUP",TRUE) ;
}
object oVictim = GetFirstObjectInShape(SHAPE_CUBE,4.0f,GetLocation(OBJECT_SELF),TRUE, OBJECT_TYPE_CREATURE);
while (GetIsObjectValid(oVictim))
{
if (spellsIsTarget(oVictim,SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF) && oVictim != OBJECT_SELF)
{
EngulfAndDamage(oVictim,OBJECT_SELF);
}
oVictim = GetNextObjectInShape(SHAPE_CUBE,4.0f,GetLocation(OBJECT_SELF),TRUE, OBJECT_TYPE_CREATURE);
}
}

View File

@ -10,4 +10,15 @@ void main()
{
ExecuteScript("prc_rest", OBJECT_SELF);
ExecuteScript("x2_mod_def_rest", OBJECT_SELF);
// Find the nearest summoned Efreeti with the specified tag
object oSummonedEfreeti = GetNearestObjectByTag("SUM_EFREETI001");
// Check if the summoned Efreeti exists and is valid
if (GetIsObjectValid(oSummonedEfreeti))
{
// Destroy the summoned Efreeti immediately
DestroyObject(oSummonedEfreeti, 0.0f);
}
}

75
_module/nss/hputest.nss Normal file
View File

@ -0,0 +1,75 @@
#include "69_inc_henai"
void main()
{
object oMaster = GetMaster();
ClearAllActions();
SetAssociateState(NW_ASC_IS_BUSY);
int bFound = FALSE;
string sName;
location lCenter = GetLocation(OBJECT_SELF);
object oThing = GetFirstObjectInShape(SHAPE_SPHERE, 15.0, lCenter, TRUE, OBJECT_TYPE_PLACEABLE | OBJECT_TYPE_ITEM);
// Create a list of party members
object oPartyMember = GetFirstFactionMember(oMaster);
while (GetIsObjectValid(oThing))
{
if (GetObjectType(oThing) == OBJECT_TYPE_ITEM)
{
bFound = TRUE;
sName = GetName(oThing);
TurnToFaceObject(oThing);
ActionPickUpItem(oThing);
// Loop through all party members and send a message to each
while (GetIsObjectValid(oPartyMember))
{
if (GetIsPC(oPartyMember))
{
ActionDoCommand(SendMessageToPC(oPartyMember, GetName(OBJECT_SELF) + " picked up " + sName + "."));
}
oPartyMember = GetNextFactionMember(oMaster);
}
}
else // oThing is a placeable
{
if (GetHasInventory(oThing)) // Containers (including corpses)
{
// Don't search locked containers
// Only search trapped containers if you can't see the trap
if (!GetLocked(oThing) && (!GetIsTrapped(oThing) || (GetIsTrapped(oThing) && !GetTrapDetectedBy(oThing, OBJECT_SELF))))
{
bFound = TRUE;
ActionMoveToObject(oThing);
ActionDoCommand(AssignCommand(oThing, PlayAnimation(ANIMATION_PLACEABLE_OPEN)));
TurnToFaceObject(oThing);
ActionPlayAnimation(ANIMATION_LOOPING_GET_MID, 1.0, 3.0);
object oItem = GetFirstItemInInventory(oThing);
while (GetIsObjectValid(oItem))
{
ActionDoCommand(SendMessageToPC(oMaster, GetName(OBJECT_SELF) + " picked up " + GetName(oItem) + " from " + GetName(oThing) + "."));
// Loop through all party members and send a message to each
while (GetIsObjectValid(oPartyMember))
{
if (GetIsPC(oPartyMember))
{
ActionDoCommand(SendMessageToPC(oPartyMember, GetName(OBJECT_SELF) + " picked up " + GetName(oItem) + " from " + GetName(oThing) + "."));
}
oPartyMember = GetNextFactionMember(oMaster);
}
ActionTakeItem(oItem, oThing);
oItem = GetNextItemInInventory(oThing);
}
ActionDoCommand(AssignCommand(oThing, PlayAnimation(ANIMATION_PLACEABLE_CLOSE)));
}
}
} // else
oThing = GetNextObjectInShape(SHAPE_SPHERE, 15.0, lCenter, TRUE, OBJECT_TYPE_PLACEABLE | OBJECT_TYPE_ITEM);
} // while(GetIsObjectValid(oThing))
ActionDoCommand(SetAssociateState(NW_ASC_IS_BUSY, FALSE));
if (!bFound)
SpeakString("I don't see where I can find any around here.");
}

View File

@ -0,0 +1,23 @@
#include "prc_inc_nwscript"
int StartingConditional()
{
object oPC = GetPCSpeaker();
// Check if the PC's size is small, tiny, diminutive, or fine
int nSize = PRCGetCreatureSize(oPC);
// Check if the size is medium or larger
if (nSize == CREATURE_SIZE_MEDIUM || nSize == CREATURE_SIZE_LARGE ||
nSize == CREATURE_SIZE_HUGE || nSize == 22 || nSize == 23)
{
// Check if the PC has either "itm_hemp_rope001" or "itm_silk_rope001"
if (GetItemPossessedBy(oPC, "ITM_HEMP_ROPE001") == OBJECT_INVALID ||
GetItemPossessedBy(oPC, "ITM_SILK_ROPE001") == OBJECT_INVALID)
{
return TRUE;
}
}
return FALSE;
}

View File

@ -0,0 +1,353 @@
// Tag-based script template.
// This is intended to be a starting point for writing an item's tag-based script.
// Copy this to a script whose name is the tag of the item in question.
// Edit the event handlers (scroll down to find them) as desired.
#include "nw_i0_generic"
#include "x2_inc_switches"
// -----------------------------------------------------------------------------
// This first part is standard and generic.
// There should be no need to edit it; just skip down to the next part.
// -----------------------------------------------------------------------------
int RA_DEBUG = 0;
// The individual event handlers.
void OnAcquire(object oEventItem, object oAcquiredBy, object oTakenFrom, int nStackSize);
void OnActivate(object oEventItem, object oActTarget, location lActTarget, object oActivator);
void OnEquip(object oEventItem, object oEquippedBy);
void OnHit(object oEventItem, object oHitTarget, object oCaster);
int OnSpellCast(object oEventItem, int nSpell, object oCaster);
void OnUnacquire(object oEventItem, object oLostBy);
void OnUnequip(object oEventItem, object oUnequippedBy);
// The main function.
void main()
{
int nEvent = GetUserDefinedItemEventNumber();
// Spells might continue to their spell scripts. All other events are
// completely handled by this script.
if ( nEvent != X2_ITEM_EVENT_SPELLCAST_AT )
SetExecutedScriptReturnValue();
// Determine which event triggered this script's execution.
switch ( nEvent )
{
// Item was acquired.
case X2_ITEM_EVENT_ACQUIRE:
OnAcquire(GetModuleItemAcquired(), GetModuleItemAcquiredBy(),
GetModuleItemAcquiredFrom(), GetModuleItemAcquiredStackSize());
break;
// Item was activated ("activate item" or "unique power").
case X2_ITEM_EVENT_ACTIVATE:
OnActivate(GetItemActivated(), GetItemActivatedTarget(),
GetItemActivatedTargetLocation(), GetItemActivator());
break;
// Item was equipped by a PC.
case X2_ITEM_EVENT_EQUIP:
OnEquip(GetPCItemLastEquipped(), GetPCItemLastEquippedBy());
break;
// Item is a weapon that just hit a target, or it is the armor of someone
// who was just hit.
case X2_ITEM_EVENT_ONHITCAST:
OnHit(GetSpellCastItem(), GetSpellTargetObject(), OBJECT_SELF);
break;
// A PC (or certain NPCs) cast a spell at the item.
case X2_ITEM_EVENT_SPELLCAST_AT:
if ( OnSpellCast(GetSpellTargetObject(), GetSpellId(), OBJECT_SELF) )
SetExecutedScriptReturnValue();
break;
// Item was unacquired.
case X2_ITEM_EVENT_UNACQUIRE:
OnUnacquire(GetModuleItemLost(), GetModuleItemLostBy());
break;
// Item was unequipped by a PC.
case X2_ITEM_EVENT_UNEQUIP:
OnUnequip(GetPCItemLastUnequipped(), GetPCItemLastUnequippedBy());
break;
}
}
// -----------------------------------------------------------------------------
// Event handlers
// -----------------------------------------------------------------------------
// This second part is where you add your desired functionality. Each event
// has its own function with relavant information passed as parameters.
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
// oEventItem was acquired (by a PC or an NPC).
// Run by the module.
void OnAcquire(object oEventItem, object oAcquiredBy, object oTakenFrom, int nStackSize)
{
// Default: do nothing.
}
// -----------------------------------------------------------------------------
// oEventItem was activated ("activate item" or "unique power").
// Run by the module.
void OnActivate(object oEventItem, object oActTarget, location lActTarget, object oActivator)
{
//:: Declare major variables
object oPC = oActTarget;
object oItem = GetItemActivated();
object oSpawn;
effect eEffect;
effect eVFX;
int nRandom = d100(1);
if (RA_DEBUG)
{
SendMessageToPC(oPC, "Efreeti Bottle Tag Based Script is running");
SendMessageToPC(oPC, "Rolled a "+ IntToString(nRandom) +".");
}
//:: Have the item activator check if the player has already summoned an efreeti.
object oExistingEfreeti = GetNearestObjectByTag("SUM_EFREETI001");
eEffect = GetFirstEffect(oPC);
while(GetIsEffectValid(eEffect))
{
if(GetEffectTag(eEffect) == GetName(oPC)+"SummonedEfreeti")
RemoveEffect(oPC, eEffect);
eEffect = GetNextEffect(oPC);
}
if (GetIsObjectValid(oExistingEfreeti))
{
SendMessageToPC(oPC, "You can only summon one Efreeti per day.");
return;
}
//:: If success on a 10% chance.
if ( nRandom <= 10 )
{
//:: Spawn Hostile Efreeti.
eVFX = EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_FIRE);
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "sum_efreeti001", GetLocation(oActivator));
AssignCommand(oSpawn, DetermineCombatRound(oPC));
DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVFX, oSpawn));
// Set the player's "SummonedEfreeti" variable to 1 to mark that an efreeti has been summoned.
SetLocalInt(oPC, GetName(oPC)+"SummonedEfreeti", 1);
SendMessageToPC(oPC, "The efreeti is insane and attacks immediately!");
//:: Create the non-magical bottle
object oDeadBottle = CreateItemOnObject("ITM_DEADBOTTLE", oPC, 1);
//:: Destroy the original magical bottle
DestroyObject(oItem);
}
//:: Else if, the next 20%.
/* else if ( nRandom < 21 && nRandom > 10 )
{
Remarked out until I get the Wish spell figured out.
//:: Spawn Friendly Efreeti.
eVFX = EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_FIRE);
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "sum_efreeti001", GetLocation(oActivator));
AssignCommand(oSpawn, ActionStartConversation(oPC));
DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVFX, oSpawn));
SetIsTemporaryFriend(oPC, oSpawn, FALSE);
SendMessageToPC(oPC, "The efreeti is friendly & wants to speak!");
// Set the player's "SummonedEfreeti" variable to 1 to mark that an efreeti has been summoned.
SetLocalInt(oPC, GetName(oPC)+"SummonedEfreeti", 1);
//:: Create the non-magical bottle
object oDeadBottle = CreateItemOnObject("ITM_DEADBOTTLE", oPC, 1);
//:: Destroy the original magical bottle
DestroyObject(oItem);
} */
//:: Else, the remainder.
else
{
//:: Have the item activator check if the player has already summoned an efreeti.
object oExistingEfreeti = GetObjectByTag(GetName(oPC)+"SummonedEfreeti");
int nSummoned = GetLocalInt(oPC, GetName(oPC)+"SummonedEfreeti");
if (!GetIsObjectValid(oExistingEfreeti) && nSummoned == 0)
{
// No Efreeti exists and the player hasn't summoned one yet, so we can summon a new one.
eEffect = EffectSummonCreature("efreeti001", VFX_FNF_GAS_EXPLOSION_FIRE, 1.0);
eEffect = MagicalEffect(eEffect);
eEffect = TagEffect(eEffect, GetName(oPC)+"SummonedEfreeti");
DelayCommand(0.5f, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oActivator, 600.0f));
DelayCommand(600.0f, DeleteLocalInt(oPC, GetName(oPC)+"SummonedEfreeti"));
SendMessageToPC(oPC, "The efreeti grudgingly serves you for a time.");
// Set the player's "SummonedEfreeti" variable to 1 to mark that an efreeti has been summoned.
SetLocalInt(oPC, GetName(oPC)+"SummonedEfreeti", 1);
}
else
{
// An Efreeti is already present or has been summoned by the player; inform the player.
SendMessageToPC(oPC, "You can only summon one Efreeti per day.");
}
}
}
// -----------------------------------------------------------------------------
// oEventItem was equipped by a PC.
// Run by the module.
void OnEquip(object oEventItem, object oEquippedBy)
{
// Default: do nothing.
}
// -----------------------------------------------------------------------------
// oEventItem is a weapon that just hit a target, or it is the armor of someone who
// was just hit by someone else's weapon.
// Run by the caster.
void OnHit(object oEventItem, object oHitTarget, object oCaster)
{
// Default: do nothing.
}
// -----------------------------------------------------------------------------
// Someone cast a spell at oEventItem.
// This usually only fires if a PC cast the spell, but it also fires for
// DM-possessed NPCs and NPCs in an area with the "X2_L_WILD_MAGIC" local integer set.
//
// Return TRUE to prevent the spell script from firing.
// Return FALSE to proceed normally.
//
// This fires after the UMD check, module spellhook, item creation, and
// sequencer handlers decide they do not want to handle/interrupt this spell.
// This fires before the check to see if this is a spell that normally can
// target items (and before the spell script itself runs).
//
// Run by the caster.
int OnSpellCast(object oEventItem, int nSpell, object oCaster)
{
// Default: just proceed normally.
return FALSE;
}
// -----------------------------------------------------------------------------
// oEventItem was unacquired/lost (by a PC or NPC).
// Run by the module.
void OnUnacquire(object oEventItem, object oLostBy)
{
// Default: do nothing.
}
// -----------------------------------------------------------------------------
// oEventItem was unequipped by a PC.
// Run by the module.
void OnUnequip(object oEventItem, object oUnequippedBy)
{
// Default: do nothing.
}
//:: void main (){}
/* // Declare constants for the chances of the efreeti's behavior
const int CHANCE_INSANE = 10;
const int CHANCE_GRANT_WISHES = 10;
// Declare constants for the efreeti's actions
const int ACTION_INSANE = 1;
const int ACTION_GRANT_WISHES = 2;
const int ACTION_SERVE_CHARACTER = 3;
#include "nw_i0_generic"
void main()
{
//:: Declare major variables
object oPC = GetItemActivator();
object oItem = GetItemActivated();
object oSpawn;
effect eVFX;
//:: Roll a d% to determine the efreeti's behavior
int nRoll = d100(1);
//:: Determine the efreeti's action based on the roll
int nEfreetiAction;
if (nRoll <= CHANCE_INSANE)
{
nEfreetiAction = ACTION_INSANE;
}
else if (nRoll <= CHANCE_INSANE + CHANCE_GRANT_WISHES)
{
nEfreetiAction = ACTION_GRANT_WISHES;
}
else
{
nEfreetiAction = ACTION_SERVE_CHARACTER;
}
//:: Handle the efreeti's action
switch (nEfreetiAction)
{
case ACTION_INSANE:
SendMessageToPC(oPC, "The efreeti is insane and attacks immediately!");
//:: Spawn hostile Efreeti.
eVFX = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_3);
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "efreeti001", GetLocation(oPC));
AssignCommand(oSpawn, DetermineCombatRound(oPC));
DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVFX, oSpawn));
break;
case ACTION_GRANT_WISHES:
SendMessageToPC(oPC, "The efreeti is friendly & wants to speak!");
//:: Spawn friendly Efreeti.
// Insert code here to handle the granting of wishes
break;
case ACTION_SERVE_CHARACTER:
SendMessageToPC(oPC, "The efreeti loyally serves you for a time.");
effect eSummon = EffectSummonCreature("efreeti001", VFX_NONE);
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetLocation(oPC), TurnsToSeconds(10));
/* //:: Summon Efreeti.
effect eSummon = EffectSummonCreature("efreeti001", VFX_FNF_SUMMON_MONSTER_3);
DelayCommand(0.5f, ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetLocation(oPC), TurnsToSeconds(10)));
break;
}
/* // If the efreeti is insane or grants wishes, swap out the bottle with "ITM_DEADBOTTLE"
if (nEfreetiAction == ACTION_INSANE || nEfreetiAction == ACTION_GRANT_WISHES)
{
// Create the non-magical bottle
object oDeadBottle = CreateObject(OBJECT_TYPE_ITEM, "ITM_DEADBOTTLE", GetLocation(oItem));
// Destroy the original magical bottle
DestroyObject(oItem);
}
} */

View File

@ -0,0 +1,36 @@
// Custom script for the OnUsed event of a placable
// Simulates climbing a rope up 20 feet
#include "prc_misc_const"
void main()
{
object oPC = GetLastUsedBy();
int nClimbSkill = GetSkillRank(SKILL_CLIMB, oPC);
int nClimbDC = 5;
location locDestination1 = GetLocation(GetWaypointByTag("WP_LATRENE_EXIT"));
location locDestination2 = GetLocation(GetWaypointByTag("WP_LATRENE3"));
// Roll a d20 for the Climb check
int nRoll = d20();
// Add the Climb skill rank to the roll
nRoll += nClimbSkill;
// Check if the roll meets or exceeds the DC
if (nRoll >= nClimbDC)
{
// Successful climb, move the player to the destination
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionJumpToLocation(locDestination1));
}
else
{
// Failed climb, apply 2d6 bludgeoning damage and move the player back to WP_LATRENE3
int nDamage = d6(2); // Roll 2d6 for damage
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nDamage, DAMAGE_TYPE_BLUDGEONING), oPC);
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionJumpToLocation(locDestination2));
AssignCommand(oPC, SpeakString("Ow!"));
}
}

View File

@ -0,0 +1,36 @@
void main()
{
// Declare major variables
object oPlaceable = OBJECT_SELF;
// Check if the Dung Monster has already been spawned in the module
int DungMonsterSpawned = GetLocalInt(GetModule(), "DungMonsterSpawned");
// If it's not already spawned, spawn the Dung Monster
if (DungMonsterSpawned == 0)
{
// Spawn the Dung Monster
object oCreature = CreateObject(OBJECT_TYPE_CREATURE, "ra_dungmonster01", GetLocation(oPlaceable));
// Get the nearest player to the placeable
object oNearestPlayer = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC, oPlaceable);
// If we found a player, make the creature attack them
if (GetIsObjectValid(oCreature) && GetIsObjectValid(oNearestPlayer))
{
AssignCommand(oCreature, ActionAttack(oNearestPlayer));
}
// Set the Dung Monster as spawned in the module
SetLocalInt(GetModule(), "DungMonsterSpawned", 1);
}
// Clear the plot flag on the commode
SetPlotFlag(oPlaceable, FALSE);
// Destroy the commode
DestroyObject(oPlaceable, 0.0f);
// Spawn the latrine hole
object oHole = CreateObject(OBJECT_TYPE_PLACEABLE, "ra_plc_dm_hole", GetLocation(oPlaceable));
}

View File

@ -0,0 +1,89 @@
//::////////////////////////////////////////////////////////////////////////////
/*//
Level 1a: Latrene 3
onEnter script
ra_lvl01a_onentr.nss
Wandering Monsters: None
Detections: Faint evil from the whole place; slightly more to the south east.
Continuous Effects: The stench of this level requires all characters to make
a Fortitude save (DC 10) upon entering the level and every 30 minutes
thereafter or all rolls are at 2 morale penalty due to the distraction
caused by the overpowering smell.
*///
//::////////////////////////////////////////////////////////////////////////////
#include "spawn_functions"
#include "tgdc_explore_inc"
void StenchMessage(object oPC = OBJECT_SELF)
{
//:: Only fire for (real) PCs.
if ( !GetIsPC(oPC) || GetIsDMPossessed(oPC) )
return;
//:: Have text appear over the PC's head.
FloatingTextStringOnCreature("The smell of this cesspool is making you physically ill.", oPC, FALSE);
}
void main()
{
//:: Get the entering object (usually a PC)
object oPC = GetEnteringObject();
//:: Only fire once per PC.
if (!GetLocalInt(oPC, "DO_ONCE__" + GetTag(OBJECT_SELF)) )
{
StenchMessage(oPC);
SetLocalInt(oPC, "DO_ONCE__" + GetTag(OBJECT_SELF), TRUE);
}
/*
Spawn_OnAreaEnter() can take three arguments - the name of the heartbeat
script to execute, the heartbeat duration, and a delay for the first
heartbeat. They default to spawn_sample_hb, 6.0, and 0.0 respectively; as
if it were called like: Spawn_OnAreaEnter( "spawn_sample_hb", 6.0, 0.0 );
*/
if ( GetIsAreaAboveGround( OBJECT_SELF ) && ! GetIsAreaNatural( OBJECT_SELF ) )
{
//:: Indoors - no delay on the first HB
Spawn_OnAreaEnter( "spawn_sample_hb", 6.0, 0.0 );
}
else
{
//:: Outdoors or underground - do a 3 second delay on the first HB
Spawn_OnAreaEnter( "spawn_sample_hb", 6.0, 3.0 );
}
//:: Records that the PC has entered Rappan Athuk at least once.
SetLocalInt(oPC, "bEnteredDungeon", 1);
SetLocalInt(oPC, "bEnteredLevelOne", 1);
}

View File

@ -0,0 +1,50 @@
//::////////////////////////////////////////////////////////////////////////////
/*//
Level 1a: Latrene 3
onExit script
ra_lvl01a_onexit.nss
Wandering Monsters: None
Detections: Faint evil from the whole place; slightly more to the south east.
Continuous Effects: The stench of this level requires all characters to make
a Fortitude save (DC 26) upon entering the level and every 2 minutes
thereafter become Nauseated due to the overpowering smell.
*///
//::////////////////////////////////////////////////////////////////////////////
void main()
{
//:: Get the entering object (usually a PC)
object oPC = GetExitingObject();
//:: Clears Level 1a stench message int var,
//:: so it will show up again next time they enter
DelayCommand(0.0f,DeleteLocalInt(oPC, "DO_ONCE__" + GetTag(OBJECT_SELF)));
}

View File

@ -0,0 +1,107 @@
//::////////////////////////////////////////////////////////////////////////////
/*//
Level 1a: Latrene 3
onHeartbeat script
ra_lvl01a_onhb.nss
Wandering Monsters: None
Detections: Faint evil from the whole place; slightly more to the south east.
Continuous Effects: The stench of this level requires all characters to make
a Fortitude save (DC 26) upon entering the level and every 2 minutes
thereafter become Nauseated due to the overpowering smell.
*///
//::////////////////////////////////////////////////////////////////////////////
#include "prc_inc_spells"
//:: Function to process the stench penalty
void ApplySick(object oPC)
{
int RA_DEBUG = 0;
//:: Check for exising variable on player
int oldTime = GetLocalInt(oPC, "StenchFortSaveTime");
// Get the current system time in seconds
int newTime = (GetTimeHour()*60*60)+(GetTimeMinute()*60)+GetTimeSecond();
// Calculate the time difference in seconds
int timeDifference = newTime - oldTime;
if (RA_DEBUG)
{
SendMessageToPC(oPC, "oldTime = " + IntToString(oldTime));
SendMessageToPC(oPC, "newTime = " + IntToString(newTime));
SendMessageToPC(oPC, "timeDifference = " + IntToString(timeDifference));
}
//:: Check if the character hasn't made a Fortitude save in the last 3 minutes
if (oldTime == 0 || timeDifference >= 15)
{
//:: Check if the character failed the save
if (!FortitudeSave(oPC, 26))
{
//:: Apply Nausea
effect eNauseated = EffectNausea(oPC, 12.0f);
effect eVFX = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
effect eLink = EffectLinkEffects(eNauseated, eVFX);
eLink = SupernaturalEffect(eLink);
eLink = TagEffect(eLink, "LatreneStench");
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oPC, 12.0f); // 12 seconds = 2 in-game minutes.
//:: Store the current time on player
SetLocalInt(oPC, "LatreneFortSaveTime", newTime);
if (RA_DEBUG)
{
SendMessageToPC(oPC, "Failed LatreneFortSave");
SendMessageToPC(oPC, "Setting LatreneFortSaveTime as " + IntToString(newTime));
}
// Send a message to the player
SendMessageToPC(oPC, "The overpowering stench is nauseating you.");
}
//:: Store the current time on player
SetLocalInt(oPC, "LatreneFortSaveTime", newTime);
if (RA_DEBUG)
{
SendMessageToPC(oPC, "Passed LatreneFortSave");
SendMessageToPC(oPC, "Setting LatreneFortSaveTime as " + IntToString(newTime));
}
}
}
void main()
{
int RA_DEBUG = 0;
//:: Declare major variables
object oArea = OBJECT_SELF;
object oPC = GetFirstObjectInArea(oArea, OBJECT_TYPE_CREATURE);
while (GetIsObjectValid(oPC))
{
if (GetIsPC(oPC) || (GetMaster(oPC) != OBJECT_INVALID && GetIsPC(GetMaster(oPC))))
{
if (RA_DEBUG)
{
SendMessageToPC(oPC, "Running Level 1a Area HB");
}
//:: Apply the stench
ApplySick(oPC);
}
// Get the next object in the area
oPC = GetNextObjectInArea(oArea);
}
}

View File

@ -0,0 +1,16 @@
int StartingConditional()
{
object oPC = GetPCSpeaker();
// Check if the PC's size is small, tiny, diminutive, or fine
int nSize = GetCreatureSize(oPC);
// Check if the size is small, tiny, diminutive, or fine
if (nSize == CREATURE_SIZE_SMALL || nSize == CREATURE_SIZE_TINY ||
nSize == 20 || nSize == 21)
{
return TRUE;
}
return FALSE;
}

View File

@ -0,0 +1,23 @@
#include "prc_inc_nwscript"
int StartingConditional()
{
object oPC = GetPCSpeaker();
// Check if the PC's size is small, tiny, diminutive, or fine
int nSize = PRCGetCreatureSize(oPC);
// Check if the size is medium or larger
if (nSize == CREATURE_SIZE_MEDIUM || nSize == CREATURE_SIZE_LARGE ||
nSize == CREATURE_SIZE_HUGE || nSize == 22 || nSize == 23)
{
// Check if the PC has either "itm_hemp_rope001" or "itm_silk_rope001"
if (GetItemPossessedBy(oPC, "ITM_HEMP_ROPE001") != OBJECT_INVALID ||
GetItemPossessedBy(oPC, "ITM_SILK_ROPE001") != OBJECT_INVALID)
{
return TRUE;
}
}
return FALSE;
}

View File

@ -0,0 +1,16 @@
int StartingConditional()
{
object oPC = GetPCSpeaker();
// Check if the PC's size is small, tiny, diminutive, or fine
int nSize = GetCreatureSize(oPC);
// Check if the size is small, tiny, diminutive, or fine
if (nSize == CREATURE_SIZE_SMALL || nSize == CREATURE_SIZE_TINY ||
nSize == 20 || nSize == 21)
{
return FALSE;
}
return TRUE;
}

View File

@ -0,0 +1,23 @@
#include "prc_inc_nwscript"
int StartingConditional()
{
object oPC = GetPCSpeaker();
// Check if the PC's size is small, tiny, diminutive, or fine
int nSize = PRCGetCreatureSize(oPC);
// Check if the size is small, tiny, diminutive, or fine
if (nSize == CREATURE_SIZE_SMALL || nSize == CREATURE_SIZE_TINY ||
nSize == 20 || nSize == 21)
{
// Check if the PC has either "itm_hemp_rope001" or "itm_silk_rope001"
if (GetItemPossessedBy(oPC, "ITM_HEMP_ROPE001") != OBJECT_INVALID ||
GetItemPossessedBy(oPC, "ITM_SILK_ROPE001") != OBJECT_INVALID)
{
return TRUE;
}
}
return FALSE;
}

View File

@ -0,0 +1,23 @@
#include "prc_inc_nwscript"
int StartingConditional()
{
object oPC = GetPCSpeaker();
// Check if the PC's size is small, tiny, diminutive, or fine
int nSize = PRCGetCreatureSize(oPC);
// Check if the size is small, tiny, diminutive, or fine
if (nSize == CREATURE_SIZE_SMALL || nSize == CREATURE_SIZE_TINY ||
nSize == 21 || nSize == 22)
{
// Check if the PC has either "itm_hemp_rope001" or "itm_silk_rope001"
if (GetItemPossessedBy(oPC, "ITM_HEMP_ROPE001") == OBJECT_INVALID ||
GetItemPossessedBy(oPC, "ITM_SILK_ROPE001") == OBJECT_INVALID)
{
return TRUE;
}
}
return FALSE;
}

View File

@ -8300,7 +8300,7 @@ at night. */
//:: Dungeon Level 1 Random Encounters
if (sCamp == "enc_level01")
{
int nSpawn = Random(20) + 1;
int nSpawn = d20(1);
switch(nSpawn)
{
case 1:
@ -8599,7 +8599,7 @@ at night. */
//:: 1 Gelatinous Cube: 04 HD
case 4:
//:: 1 Dung Monster: 10 HD
//:: 1 Dung Monster: 10 HD or 1d2 Shadows: 03 HD
{
// Set Number of Placeables
SetLocalInt(oCamp, "CampNumP", 0);
@ -8625,14 +8625,31 @@ at night. */
// Set Placeable 1 and Spawn Flags
//SetLocalString(oCamp, "CampP1", "plc_chest1");
//SetLocalString(oCamp, "CampP1_Flags", "SP_PL3T80P30");
string sCreatureTag = "RA_DUNGMONSTER01"; // Replace with the desired tag.
object oCreature = GetObjectByTag(sCreatureTag);
// Set Creature 0 and Spawn Flags
SetLocalString(oCamp, "CampC0", "ra_dungmonster01");
SetLocalString(oCamp, "CampC0_Flags", "SP_RW_CD060");
if (GetIsObjectValid(oCreature))
{
// The creature with the specified tag exists in the module.
// You can add your code here to handle this case.
break;
}
//:: 1 Dung Monster: 10 HD
// Set Number of Creatures
SetLocalInt(oCamp, "CampNumC", d2(1));
// Set Creature 0 and Spawn Flags
SetLocalString(oCamp, "CampC0", "shadow001");
SetLocalString(oCamp, "CampC0_Flags", "SP_RW_CD060");
}
else
{
// Set Creature 0 and Spawn Flags
SetLocalString(oCamp, "CampC0", "ra_dungmonster01");
SetLocalString(oCamp, "CampC0_Flags", "SP_RW_CD060");
DelayCommand(0.0f, SetLocalInt(GetModule(), "DungMonsterActive", TRUE));
}
}
//:: 1 Dung Monster: 10 HD or 1d2 Shadows: 03 HD
case 5: case 6: case 7: case 8: case 10: case 11: case 12: case 13: case 14: case 15: case 16: case 17: case 18: case 19: case 20:
//:: 1 Dire Rat
@ -8669,10 +8686,10 @@ at night. */
break;
}
//:: 1 Dire Rat
}
}
}
//:: Dungeon Level 1 Random Encounters
//:: Dungeon Level 1 Random Encounters
//:: The Dishonest Patrol (EL 11)
if (sCamp == "dishonest_patrol")

View File

@ -151,6 +151,38 @@ int SpawnCheckCustom(object oSpawn)
//:: they have been inside the dungeon & Sheriff Ostland is still alive.
//:: Process spawn if Dung Monster *is not* roaming & *not* "dead" (Commode)
if (nSpawnCheckCustom == 11)
{
int iDungMonActive = GetLocalInt(GetModule(), "DungMonsterActive");
int iDungMonDead = GetLocalInt(GetModule(), "DungMonsterDead");
if (iDungMonActive && iDungMonDead)
{
nProcessSpawn = FALSE;
}
}
//:: Process spawn if Dung Monster *is not* roaming & *not* "dead" (Commode)
//:: Process spawn if Dung Monster *is* roaming or is "dead" (Hole)
if (nSpawnCheckCustom == 12)
{
int iDungMonActive = GetLocalInt(GetModule(), "DungMonsterActive");
int iDungMonDead = GetLocalInt(GetModule(), "DungMonsterDead");
if (iDungMonActive || iDungMonDead)
{
nProcessSpawn = TRUE;
}
}
//:: Process spawn if Dung Monster *is* roaming or is "dead" (Hole)
//:: Checks for stage 1 or lower for the "Spider's Captive quest"
if (nSpawnCheckCustom == 50)
{
@ -199,8 +231,8 @@ int SpawnCheckCustom(object oSpawn)
//:: Checks for stage 2 or lower for the "Spider's Captive quest"
/* //:: Checks for stage 98 or lower (Drusilla's not dead) for the "Vengeful Druid quest"
if (nSpawnCheckCustom == 52)
/* //:: Checks for stage 98 or lower (Drusilla's not dead) for the "Vengeful Druid quest" //:: I wish past me left a note
if (nSpawnCheckCustom == 52) //:: for future me on why this was disabled
{
//:: Initialize major variables
object oArea = GetArea(OBJECT_SELF);
@ -246,6 +278,9 @@ int SpawnCheckCustom(object oSpawn)
//:: Checks for non-completion of "The Outcasts" quest
// -------------------------------------------
// Only Make Modifications Between These Lines
//

View File

@ -2,7 +2,7 @@
// Spawn Check - PCs
//
// void main (){}
//:: void main (){}
#include "pqj_inc"
@ -49,16 +49,16 @@ int SpawnCheckPCs(object oSpawn)
// Only Make Modifications Between These Lines
// -------------------------------------------
// Check 00
//:: Example Check 00
if (nCheckPCs == 0)
{
// Example, Allow Spawn
nProcessSpawn = TRUE;
}
//
//:: Example Check 00
// Spawn with a Skill Check
//:: Spawn with a Skill Check
if (nCheckPCs == 1)
{
// Get Current Number of Children
@ -84,7 +84,8 @@ int SpawnCheckPCs(object oSpawn)
}
}
}
//
//:: Spawn with a Skill Check
//:: Spawn with a 25DC Skill Check
if (nCheckPCs == 2)
@ -112,9 +113,10 @@ int SpawnCheckPCs(object oSpawn)
}
}
}
//:: Spawn with a 25DC Skill Check
//:: Spawn with a 25DC Skill Check
// Spawn Based on Journal Quest Entry
//:: Spawn Based on Journal Quest Entry
if (nCheckPCs == 3)
{
// Check Journal Quest Entry
@ -125,9 +127,10 @@ int SpawnCheckPCs(object oSpawn)
nProcessSpawn = TRUE;
}
}
//
//:: Spawn Based on Journal Quest Entry
// Spawn Based on Item in PC Inventory
// Spawn Based on Item in PC Inventory
if (nCheckPCs == 4)
{
// Check Player for Item
@ -142,7 +145,8 @@ int SpawnCheckPCs(object oSpawn)
oItem = GetNextItemInInventory(oPC);
}
}
//
// Spawn Based on Item in PC Inventory
//:: Checks for non-completion of "The Outcasts" quest.
if (nCheckPCs == 5)
@ -158,7 +162,7 @@ int SpawnCheckPCs(object oSpawn)
//:: Checks for non-completion of "The Outcasts" quest.
//:: #52 - Spawn if Drusilla isn't dead
//:: #52 - Spawn if Drusilla isn't dead
if (nCheckPCs == 52)
{
// Check Journal Quest Entry
@ -169,7 +173,20 @@ int SpawnCheckPCs(object oSpawn)
nProcessSpawn = TRUE;
}
}
//:: #52 - Spawn if Drusilla isn't dead
//:: #52 - Spawn if Drusilla isn't dead
//:: #99 Checks to see if a nearby PC is using Detect Magic.
if (nCheckPCs == 99)
{
// Check if player is using Detect Magic (spellID 1576)
if (GetHasSpellEffect(1576, oPC))
{
nProcessSpawn = TRUE;
}
}
//:: #99 Checks to see if a nearby PC is using Detect Magic.
// -------------------------------------------
// Only Make Modifications Between These Lines

View File

@ -2,7 +2,7 @@
//:: Name x2_def_ondeath
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
/*
Default OnDeath script
*/
//:://////////////////////////////////////////////
@ -12,7 +12,19 @@
void main()
{
object oNPC = OBJECT_SELF;
object oNPC = OBJECT_SELF;
string sResRef = GetResRef(oNPC);
//:: Special handling for Dung Monster
if (sResRef == "ra_dungmonster")
{
float fRejuveTime = HoursToSeconds(24) * d4(1);
SetLocalInt(GetModule(), "DungMonsterActive", FALSE);
SetLocalInt(GetModule(), "DungMonsterDead", TRUE);
ActionDoCommand(DelayCommand(fRejuveTime, SetLocalInt(GetModule(), "DungMonsterDead", FALSE)));
}
// Makes sure armor's droppable flag is set to 0
SetDroppableFlag(GetItemInSlot(INVENTORY_SLOT_CHEST, OBJECT_SELF), 0);

View File

@ -466,7 +466,7 @@ void main()
//:: Dung Monster texture override
if (sResRef == "ra_dungmonster01")
{
ReplaceObjectTexture(OBJECT_SELF,"yochlol_eye", "black");
ReplaceObjectTexture(OBJECT_SELF,"yochlol_eye", "poop01");
ReplaceObjectTexture(OBJECT_SELF,"yochlol_skin", "poop01");
}

Binary file not shown.

View File

@ -2,11 +2,11 @@
"__data_type": "UTC ",
"Appearance_Type": {
"type": "word",
"value": 471
"value": 3120
},
"BodyBag": {
"type": "byte",
"value": 0
"value": 3
},
"Cha": {
"type": "byte",
@ -14,7 +14,7 @@
},
"ChallengeRating": {
"type": "float",
"value": 9.0
"value": 11.0
},
"ClassList": {
"type": "list",
@ -34,7 +34,7 @@
},
"Comment": {
"type": "cexostring",
"value": ""
"value": "Genie, Efreeti: 10 HD\r\n\r\nMonster Manual I, pg. 115\r\n\r\nEtherealness = Plane Shift\r\nEnlarge / Reduce Person = Change Size\r\nBurning Hands = Pyrotechnics / Produce Flame\r\n\r\n??? = Gaseous Form\r\n\r\n2 Ranks in Persuade = 2(+2) Diplomacy\r\n13(+2) Taunt = 13(+2) Sense Motive"
},
"Con": {
"type": "byte",
@ -42,7 +42,7 @@
},
"Conversation": {
"type": "resref",
"value": ""
"value": "cv_charmed"
},
"CRAdjust": {
"type": "int",
@ -50,20 +50,20 @@
},
"CurrentHitPoints": {
"type": "short",
"value": 50
"value": 45
},
"DecayTime": {
"type": "dword",
"value": 5000
"value": 10000
},
"Deity": {
"type": "cexostring",
"value": ""
"value": "Fire"
},
"Description": {
"type": "cexolocstring",
"value": {
"0": "Genies from the plane of fire, the Efreet are known for their independence, ferocity and penchant for trickery."
"0": "This being looks just like a mighty giant with brick-red skin, fiery eyes & small horns."
}
},
"Dex": {
@ -72,16 +72,23 @@
},
"Disarmable": {
"type": "byte",
"value": 0
"value": 1
},
"Equip_ItemList": {
"type": "list",
"value": [
{
"__struct_id": 16,
"EquippedRes": {
"type": "resref",
"value": "ar_wswpsc_fire01"
}
},
{
"__struct_id": 16384,
"EquippedRes": {
"type": "resref",
"value": "efreetifist"
"value": "efreetislam"
}
},
{
@ -107,6 +114,13 @@
"value": 7
}
},
{
"__struct_id": 1,
"Feat": {
"type": "word",
"value": 228
}
},
{
"__struct_id": 1,
"Feat": {
@ -114,6 +128,13 @@
"value": 10
}
},
{
"__struct_id": 1,
"Feat": {
"type": "word",
"value": 316
}
},
{
"__struct_id": 1,
"Feat": {
@ -121,19 +142,33 @@
"value": 377
}
},
{
"__struct_id": 1,
"Feat": {
"type": "word",
"value": 291
}
},
{
"__struct_id": 1,
"Feat": {
"type": "word",
"value": 289
}
},
{
"__struct_id": 1,
"Feat": {
"type": "word",
"value": 45
}
}
]
},
"FirstName": {
"type": "cexolocstring",
"value": {
"0": "Efreeti"
"0": "Genie, Efreeti: 10 HD"
}
},
"fortbonus": {
@ -150,7 +185,7 @@
},
"HitPoints": {
"type": "short",
"value": 50
"value": 45
},
"Int": {
"type": "byte",
@ -184,7 +219,7 @@
},
"MaxHitPoints": {
"type": "short",
"value": 70
"value": 65
},
"NaturalAC": {
"type": "byte",
@ -192,7 +227,7 @@
},
"NoPermDeath": {
"type": "byte",
"value": 0
"value": 1
},
"PaletteID": {
"type": "byte",
@ -200,7 +235,7 @@
},
"PerceptionRange": {
"type": "byte",
"value": 10
"value": 11
},
"Phenotype": {
"type": "int",
@ -212,7 +247,7 @@
},
"PortraitId": {
"type": "word",
"value": 722
"value": 10460
},
"Race": {
"type": "byte",
@ -224,59 +259,185 @@
},
"ScriptAttacked": {
"type": "resref",
"value": "x2_def_attacked"
"value": "ra_ai_attacked"
},
"ScriptDamaged": {
"type": "resref",
"value": "x2_def_ondamage"
"value": "ra_ai_ondamaged"
},
"ScriptDeath": {
"type": "resref",
"value": "x2_def_ondeath"
"value": "ra_ai_ondeath"
},
"ScriptDialogue": {
"type": "resref",
"value": "x2_def_onconv"
"value": "ra_ai_onconverse"
},
"ScriptDisturbed": {
"type": "resref",
"value": "x2_def_ondisturb"
"value": "ra_ai_ondisturb"
},
"ScriptEndRound": {
"type": "resref",
"value": "x2_def_endcombat"
"value": "ra_ai_endcmbtrnd"
},
"ScriptHeartbeat": {
"type": "resref",
"value": "x2_def_heartbeat"
"value": "ra_ai_heartbeat"
},
"ScriptOnBlocked": {
"type": "resref",
"value": "x2_def_onblocked"
"value": "ra_ai_onblocked"
},
"ScriptOnNotice": {
"type": "resref",
"value": "x2_def_percept"
"value": "ra_ai_onpercept"
},
"ScriptRested": {
"type": "resref",
"value": "x2_def_rested"
"value": "ra_ai_onrested"
},
"ScriptSpawn": {
"type": "resref",
"value": "x2_def_spawn"
"value": "ra_ai_onspawn"
},
"ScriptSpellAt": {
"type": "resref",
"value": "x2_def_spellcast"
"value": "ra_ai_onspelled"
},
"ScriptUserDefine": {
"type": "resref",
"value": "x2_def_userdef"
"value": "ra_ai_userdef"
},
"SkillList": {
"type": "list",
"value": [
{
"__struct_id": 0,
"Rank": {
"type": "byte",
"value": 0
}
},
{
"__struct_id": 0,
"Rank": {
"type": "byte",
"value": 13
}
},
{
"__struct_id": 0,
"Rank": {
"type": "byte",
"value": 0
}
},
{
"__struct_id": 0,
"Rank": {
"type": "byte",
"value": 13
}
},
{
"__struct_id": 0,
"Rank": {
"type": "byte",
"value": 0
}
},
{
"__struct_id": 0,
"Rank": {
"type": "byte",
"value": 0
}
},
{
"__struct_id": 0,
"Rank": {
"type": "byte",
"value": 13
}
},
{
"__struct_id": 0,
"Rank": {
"type": "byte",
"value": 0
}
},
{
"__struct_id": 0,
"Rank": {
"type": "byte",
"value": 13
}
},
{
"__struct_id": 0,
"Rank": {
"type": "byte",
"value": 0
}
},
{
"__struct_id": 0,
"Rank": {
"type": "byte",
"value": 0
}
},
{
"__struct_id": 0,
"Rank": {
"type": "byte",
"value": 2
}
},
{
"__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": 13
}
},
{
"__struct_id": 0,
"Rank": {
"type": "byte",
"value": 14
}
},
{
"__struct_id": 0,
"Rank": {
@ -323,7 +484,7 @@
"__struct_id": 0,
"Rank": {
"type": "byte",
"value": 13
"value": 15
}
},
{
@ -347,13 +508,6 @@
"value": 0
}
},
{
"__struct_id": 0,
"Rank": {
"type": "byte",
"value": 13
}
},
{
"__struct_id": 0,
"Rank": {
@ -424,125 +578,6 @@
"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": {
@ -554,7 +589,7 @@
},
"SoundSetFile": {
"type": "word",
"value": 366
"value": 391
},
"SpecAbilityList": {
"type": "list",
@ -563,7 +598,52 @@
"__struct_id": 4,
"Spell": {
"type": "word",
"value": 199
"value": 10
},
"SpellCasterLevel": {
"type": "byte",
"value": 12
},
"SpellFlags": {
"type": "byte",
"value": 1
}
},
{
"__struct_id": 4,
"Spell": {
"type": "word",
"value": 10
},
"SpellCasterLevel": {
"type": "byte",
"value": 12
},
"SpellFlags": {
"type": "byte",
"value": 1
}
},
{
"__struct_id": 4,
"Spell": {
"type": "word",
"value": 2072
},
"SpellCasterLevel": {
"type": "byte",
"value": 12
},
"SpellFlags": {
"type": "byte",
"value": 1
}
},
{
"__struct_id": 4,
"Spell": {
"type": "word",
"value": 724
},
"SpellCasterLevel": {
"type": "byte",
@ -578,7 +658,7 @@
"__struct_id": 4,
"Spell": {
"type": "word",
"value": 199
"value": 724
},
"SpellCasterLevel": {
"type": "byte",
@ -593,7 +673,7 @@
"__struct_id": 4,
"Spell": {
"type": "word",
"value": 199
"value": 724
},
"SpellCasterLevel": {
"type": "byte",
@ -603,6 +683,276 @@
"type": "byte",
"value": 1
}
},
{
"__struct_id": 4,
"Spell": {
"type": "word",
"value": 90
},
"SpellCasterLevel": {
"type": "byte",
"value": 12
},
"SpellFlags": {
"type": "byte",
"value": 1
}
},
{
"__struct_id": 4,
"Spell": {
"type": "word",
"value": 90
},
"SpellCasterLevel": {
"type": "byte",
"value": 12
},
"SpellFlags": {
"type": "byte",
"value": 1
}
},
{
"__struct_id": 4,
"Spell": {
"type": "word",
"value": 90
},
"SpellCasterLevel": {
"type": "byte",
"value": 12
},
"SpellFlags": {
"type": "byte",
"value": 1
}
},
{
"__struct_id": 4,
"Spell": {
"type": "word",
"value": 5554
},
"SpellCasterLevel": {
"type": "byte",
"value": 12
},
"SpellFlags": {
"type": "byte",
"value": 1
}
},
{
"__struct_id": 4,
"Spell": {
"type": "word",
"value": 5554
},
"SpellCasterLevel": {
"type": "byte",
"value": 12
},
"SpellFlags": {
"type": "byte",
"value": 1
}
},
{
"__struct_id": 4,
"Spell": {
"type": "word",
"value": 5554
},
"SpellCasterLevel": {
"type": "byte",
"value": 12
},
"SpellFlags": {
"type": "byte",
"value": 1
}
},
{
"__struct_id": 4,
"Spell": {
"type": "word",
"value": 5554
},
"SpellCasterLevel": {
"type": "byte",
"value": 12
},
"SpellFlags": {
"type": "byte",
"value": 1
}
},
{
"__struct_id": 4,
"Spell": {
"type": "word",
"value": 5554
},
"SpellCasterLevel": {
"type": "byte",
"value": 12
},
"SpellFlags": {
"type": "byte",
"value": 1
}
},
{
"__struct_id": 4,
"Spell": {
"type": "word",
"value": 5554
},
"SpellCasterLevel": {
"type": "byte",
"value": 12
},
"SpellFlags": {
"type": "byte",
"value": 1
}
},
{
"__struct_id": 4,
"Spell": {
"type": "word",
"value": 5554
},
"SpellCasterLevel": {
"type": "byte",
"value": 12
},
"SpellFlags": {
"type": "byte",
"value": 1
}
},
{
"__struct_id": 4,
"Spell": {
"type": "word",
"value": 5554
},
"SpellCasterLevel": {
"type": "byte",
"value": 12
},
"SpellFlags": {
"type": "byte",
"value": 1
}
},
{
"__struct_id": 4,
"Spell": {
"type": "word",
"value": 5554
},
"SpellCasterLevel": {
"type": "byte",
"value": 12
},
"SpellFlags": {
"type": "byte",
"value": 1
}
},
{
"__struct_id": 4,
"Spell": {
"type": "word",
"value": 5554
},
"SpellCasterLevel": {
"type": "byte",
"value": 12
},
"SpellFlags": {
"type": "byte",
"value": 1
}
},
{
"__struct_id": 4,
"Spell": {
"type": "word",
"value": 130
},
"SpellCasterLevel": {
"type": "byte",
"value": 12
},
"SpellFlags": {
"type": "byte",
"value": 1
}
},
{
"__struct_id": 4,
"Spell": {
"type": "word",
"value": 2074
},
"SpellCasterLevel": {
"type": "byte",
"value": 12
},
"SpellFlags": {
"type": "byte",
"value": 1
}
},
{
"__struct_id": 4,
"Spell": {
"type": "word",
"value": 191
},
"SpellCasterLevel": {
"type": "byte",
"value": 12
},
"SpellFlags": {
"type": "byte",
"value": 1
}
},
{
"__struct_id": 4,
"Spell": {
"type": "word",
"value": 191
},
"SpellCasterLevel": {
"type": "byte",
"value": 12
},
"SpellFlags": {
"type": "byte",
"value": 1
}
},
{
"__struct_id": 4,
"Spell": {
"type": "word",
"value": 191
},
"SpellCasterLevel": {
"type": "byte",
"value": 12
},
"SpellFlags": {
"type": "byte",
"value": 1
}
}
]
},
@ -616,11 +966,11 @@
},
"Subrace": {
"type": "cexostring",
"value": ""
"value": "Outsider (Extraplanar, Fire)"
},
"Tag": {
"type": "cexostring",
"value": "Efreeti"
"value": "efreeti001"
},
"Tail_New": {
"type": "dword",
@ -632,7 +982,57 @@
},
"TemplateResRef": {
"type": "resref",
"value": "efreeti"
"value": "efreeti001"
},
"VarTable": {
"type": "list",
"value": [
{
"__struct_id": 0,
"Name": {
"type": "cexostring",
"value": "SET_NAME"
},
"Type": {
"type": "dword",
"value": 3
},
"Value": {
"type": "cexostring",
"value": "Efreeti"
}
},
{
"__struct_id": 0,
"Name": {
"type": "cexostring",
"value": "X2_L_NUMBER_OF_ATTACKS"
},
"Type": {
"type": "dword",
"value": 1
},
"Value": {
"type": "int",
"value": 2
}
},
{
"__struct_id": 0,
"Name": {
"type": "cexostring",
"value": "SPAWN_TYPE"
},
"Type": {
"type": "dword",
"value": 3
},
"Value": {
"type": "cexostring",
"value": "no_spn_melcast3"
}
}
]
},
"WalkRate": {
"type": "int",

View File

@ -1958,6 +1958,13 @@
"FeatList": {
"type": "list",
"value": [
{
"__struct_id": 1,
"Feat": {
"type": "word",
"value": 2918
}
},
{
"__struct_id": 1,
"Feat": {

View File

@ -1958,6 +1958,13 @@
"FeatList": {
"type": "list",
"value": [
{
"__struct_id": 1,
"Feat": {
"type": "word",
"value": 2918
}
},
{
"__struct_id": 1,
"Feat": {

View File

@ -1958,6 +1958,13 @@
"FeatList": {
"type": "list",
"value": [
{
"__struct_id": 1,
"Feat": {
"type": "word",
"value": 2918
}
},
{
"__struct_id": 1,
"Feat": {

View File

@ -1958,6 +1958,13 @@
"FeatList": {
"type": "list",
"value": [
{
"__struct_id": 1,
"Feat": {
"type": "word",
"value": 2918
}
},
{
"__struct_id": 1,
"Feat": {

View File

@ -34,7 +34,7 @@
},
"Comment": {
"type": "cexostring",
"value": "Treant, Corrupted [07 HD]"
"value": "Treant, Corrupted: 07 HD"
},
"Con": {
"type": "byte",
@ -168,7 +168,7 @@
"FirstName": {
"type": "cexolocstring",
"value": {
"0": "Treant, Corrupted [07 HD]"
"0": "Treant, Corrupted: 07 HD"
}
},
"fortbonus": {

View File

@ -34,7 +34,7 @@
},
"Comment": {
"type": "cexostring",
"value": "The Dung Monster\r\n\r\nRappan Athuk Reloaded, pg. 208"
"value": "The Dung Monster: 10 HD\r\n\r\nRappan Athuk Reloaded, pg. 208"
},
"Con": {
"type": "byte",
@ -107,6 +107,13 @@
"value": 0
}
},
{
"__struct_id": 1,
"Feat": {
"type": "word",
"value": 2918
}
},
{
"__struct_id": 1,
"Feat": {
@ -140,7 +147,7 @@
"FirstName": {
"type": "cexolocstring",
"value": {
"0": "The Dung Monster"
"0": "The Dung Monster: 10 HD"
}
},
"fortbonus": {

View File

@ -114,6 +114,13 @@
"FeatList": {
"type": "list",
"value": [
{
"__struct_id": 1,
"Feat": {
"type": "word",
"value": 2918
}
},
{
"__struct_id": 1,
"Feat": {

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,131 @@
{
"__data_type": "UTI ",
"AddCost": {
"type": "dword",
"value": 0
},
"BaseItem": {
"type": "int",
"value": 49
},
"Charges": {
"type": "byte",
"value": 0
},
"Comment": {
"type": "cexostring",
"value": ""
},
"Cost": {
"type": "dword",
"value": 1200
},
"Cursed": {
"type": "byte",
"value": 0
},
"DescIdentified": {
"type": "cexolocstring",
"value": {}
},
"Description": {
"type": "cexolocstring",
"value": {
"0": ""
}
},
"Identified": {
"type": "byte",
"value": 1
},
"LocalizedName": {
"type": "cexolocstring",
"value": {
"0": "Potion of Detect Magic"
}
},
"ModelPart1": {
"type": "byte",
"value": 11
},
"ModelPart2": {
"type": "byte",
"value": 11
},
"ModelPart3": {
"type": "byte",
"value": 11
},
"PaletteID": {
"type": "byte",
"value": 24
},
"Plot": {
"type": "byte",
"value": 0
},
"PropertiesList": {
"type": "list",
"value": [
{
"__struct_id": 0,
"ChanceAppear": {
"type": "byte",
"value": 100
},
"CostTable": {
"type": "byte",
"value": 3
},
"CostValue": {
"type": "word",
"value": 1
},
"Param1": {
"type": "byte",
"value": 255
},
"Param1Value": {
"type": "byte",
"value": 0
},
"PropertyName": {
"type": "word",
"value": 15
},
"Subtype": {
"type": "word",
"value": 1461
}
}
]
},
"StackSize": {
"type": "word",
"value": 10
},
"Stolen": {
"type": "byte",
"value": 0
},
"Tag": {
"type": "cexostring",
"value": "POT_DETMAGIC01"
},
"TemplateResRef": {
"type": "resref",
"value": "pot_detmagic01"
},
"xModelPart1": {
"type": "word",
"value": 11
},
"xModelPart2": {
"type": "word",
"value": 11
},
"xModelPart3": {
"type": "word",
"value": 11
}
}

View File

@ -14,11 +14,11 @@
},
"Comment": {
"type": "cexostring",
"value": ""
"value": "Wand of Detect Magic"
},
"Cost": {
"type": "dword",
"value": 501
"value": 4501
},
"Cursed": {
"type": "byte",
@ -30,7 +30,9 @@
},
"Description": {
"type": "cexolocstring",
"value": {}
"value": {
"0": ""
}
},
"Identified": {
"type": "byte",
@ -39,20 +41,20 @@
"LocalizedName": {
"type": "cexolocstring",
"value": {
"0": "RA_WMGMWN_DETMAG"
"0": "Wand of Detect Magic"
}
},
"ModelPart1": {
"type": "byte",
"value": 11
"value": 14
},
"ModelPart2": {
"type": "byte",
"value": 11
"value": 14
},
"ModelPart3": {
"type": "byte",
"value": 11
"value": 34
},
"PaletteID": {
"type": "byte",
@ -93,7 +95,7 @@
},
"Subtype": {
"type": "word",
"value": 33
"value": 1461
}
},
{
@ -104,11 +106,11 @@
},
"CostTable": {
"type": "byte",
"value": 0
"value": 31
},
"CostValue": {
"type": "word",
"value": 0
"value": 5
},
"Param1": {
"type": "byte",
@ -120,73 +122,11 @@
},
"PropertyName": {
"type": "word",
"value": 63
"value": 94
},
"Subtype": {
"type": "word",
"value": 1
}
},
{
"__struct_id": 0,
"ChanceAppear": {
"type": "byte",
"value": 100
},
"CostTable": {
"type": "byte",
"value": 0
},
"CostValue": {
"type": "word",
"value": 0
},
"Param1": {
"type": "byte",
"value": 255
},
"Param1Value": {
"type": "byte",
"value": 0
},
"PropertyName": {
"type": "word",
"value": 63
},
"Subtype": {
"type": "word",
"value": 10
}
},
{
"__struct_id": 0,
"ChanceAppear": {
"type": "byte",
"value": 100
},
"CostTable": {
"type": "byte",
"value": 0
},
"CostValue": {
"type": "word",
"value": 0
},
"Param1": {
"type": "byte",
"value": 255
},
"Param1Value": {
"type": "byte",
"value": 0
},
"PropertyName": {
"type": "word",
"value": 63
},
"Subtype": {
"type": "word",
"value": 9
"value": 1461
}
}
]
@ -206,5 +146,17 @@
"TemplateResRef": {
"type": "resref",
"value": "ra_wmgmwn_detmag"
},
"xModelPart1": {
"type": "word",
"value": 14
},
"xModelPart2": {
"type": "word",
"value": 14
},
"xModelPart3": {
"type": "word",
"value": 34
}
}

View File

@ -0,0 +1,116 @@
{
"__data_type": "UTI ",
"AddCost": {
"type": "dword",
"value": 0
},
"BaseItem": {
"type": "int",
"value": 75
},
"Charges": {
"type": "byte",
"value": 0
},
"Comment": {
"type": "cexostring",
"value": ""
},
"Cost": {
"type": "dword",
"value": 2160
},
"Cursed": {
"type": "byte",
"value": 0
},
"DescIdentified": {
"id": 16826982,
"type": "cexolocstring",
"value": {}
},
"Description": {
"type": "cexolocstring",
"value": {
"0": ""
}
},
"Identified": {
"type": "byte",
"value": 1
},
"LocalizedName": {
"type": "cexolocstring",
"value": {
"0": "Detect Magic"
}
},
"ModelPart1": {
"type": "byte",
"value": 0
},
"PaletteID": {
"type": "byte",
"value": 26
},
"Plot": {
"type": "byte",
"value": 0
},
"PropertiesList": {
"type": "list",
"value": [
{
"__struct_id": 0,
"ChanceAppear": {
"type": "byte",
"value": 100
},
"CostTable": {
"type": "byte",
"value": 3
},
"CostValue": {
"type": "word",
"value": 1
},
"Param1": {
"type": "byte",
"value": 255
},
"Param1Value": {
"type": "byte",
"value": 0
},
"PropertyName": {
"type": "word",
"value": 15
},
"Subtype": {
"type": "word",
"value": 1461
}
}
]
},
"StackSize": {
"type": "word",
"value": 10
},
"Stolen": {
"type": "byte",
"value": 0
},
"Tag": {
"type": "cexostring",
"value": "SCR_DET_MAGIC"
},
"TemplateResRef": {
"type": "resref",
"value": "scr_det_magic"
},
"xModelPart1": {
"type": "word",
"value": 0
}
}

View File

@ -0,0 +1,184 @@
{
"__data_type": "UTI ",
"AddCost": {
"type": "dword",
"value": 0
},
"BaseItem": {
"type": "int",
"value": 53
},
"Charges": {
"type": "byte",
"value": 0
},
"Comment": {
"type": "cexostring",
"value": "Burning Scimitar"
},
"Cost": {
"type": "dword",
"value": 13942
},
"Cursed": {
"type": "byte",
"value": 0
},
"DescIdentified": {
"type": "cexolocstring",
"value": {
"0": "This obsidian scimitar has been psionically tempered & imbued with the elemental power of fire."
}
},
"Description": {
"type": "cexolocstring",
"value": {
"0": ""
}
},
"Identified": {
"type": "byte",
"value": 1
},
"LocalizedName": {
"id": 1547,
"type": "cexolocstring",
"value": {
"0": "Burning Scimitar"
}
},
"ModelPart1": {
"type": "byte",
"value": 31
},
"ModelPart2": {
"type": "byte",
"value": 23
},
"ModelPart3": {
"type": "byte",
"value": 24
},
"PaletteID": {
"type": "byte",
"value": 37
},
"Plot": {
"type": "byte",
"value": 0
},
"PropertiesList": {
"type": "list",
"value": [
{
"__struct_id": 0,
"ChanceAppear": {
"type": "byte",
"value": 100
},
"CostTable": {
"type": "byte",
"value": 2
},
"CostValue": {
"type": "word",
"value": 1
},
"Param1": {
"type": "byte",
"value": 255
},
"Param1Value": {
"type": "byte",
"value": 0
},
"PropertyName": {
"type": "word",
"value": 56
},
"Subtype": {
"type": "word",
"value": 0
}
},
{
"__struct_id": 0,
"ChanceAppear": {
"type": "byte",
"value": 100
},
"CostTable": {
"type": "byte",
"value": 4
},
"CostValue": {
"type": "word",
"value": 7
},
"Param1": {
"type": "byte",
"value": 255
},
"Param1Value": {
"type": "byte",
"value": 0
},
"PropertyName": {
"type": "word",
"value": 16
},
"Subtype": {
"type": "word",
"value": 10
}
},
{
"__struct_id": 0,
"ChanceAppear": {
"type": "byte",
"value": 100
},
"CostTable": {
"type": "byte",
"value": 28
},
"CostValue": {
"type": "word",
"value": 69
},
"Param1": {
"type": "byte",
"value": 255
},
"Param1Value": {
"type": "byte",
"value": 0
},
"PropertyName": {
"type": "word",
"value": 85
},
"Subtype": {
"type": "word",
"value": 0
}
}
]
},
"StackSize": {
"type": "word",
"value": 1
},
"Stolen": {
"type": "byte",
"value": 0
},
"Tag": {
"type": "cexostring",
"value": "AR_WSWPSC_FIRE01"
},
"TemplateResRef": {
"type": "resref",
"value": "ar_wswpsc_fire01"
}
}

View File

@ -10,15 +10,15 @@
},
"Charges": {
"type": "byte",
"value": 1
"value": 0
},
"Comment": {
"type": "cexostring",
"value": ""
"value": "Efreeti Bottle"
},
"Cost": {
"type": "dword",
"value": 9000
"value": 0
},
"Cursed": {
"type": "byte",
@ -27,13 +27,13 @@
"DescIdentified": {
"type": "cexolocstring",
"value": {
"0": "A bottle containing the essence of a powerful elemental spirit, the Efreeti Bottle allows the user to summon it at will."
"0": "A bottle containing the essence of a powerful elemental spirit, the Efreeti Bottle allows the user to summon an efreeti once per day with unpredictable effects."
}
},
"Description": {
"type": "cexolocstring",
"value": {
"0": ""
"0": "A thin stream of smoke is issuing from this lead-stoppered brass bottle."
}
},
"Identified": {
@ -43,7 +43,7 @@
"LocalizedName": {
"type": "cexolocstring",
"value": {
"0": "Efreeti Bottle"
"0": "[old] Efreeti Bottle"
}
},
"ModelPart1": {
@ -52,7 +52,7 @@
},
"PaletteID": {
"type": "byte",
"value": 24
"value": 23
},
"Plot": {
"type": "byte",
@ -89,7 +89,38 @@
},
"Subtype": {
"type": "word",
"value": 421
"value": 329
}
},
{
"__struct_id": 0,
"ChanceAppear": {
"type": "byte",
"value": 100
},
"CostTable": {
"type": "byte",
"value": 28
},
"CostValue": {
"type": "word",
"value": 2
},
"Param1": {
"type": "byte",
"value": 255
},
"Param1Value": {
"type": "byte",
"value": 0
},
"PropertyName": {
"type": "word",
"value": 85
},
"Subtype": {
"type": "word",
"value": 0
}
}
]
@ -104,10 +135,14 @@
},
"Tag": {
"type": "cexostring",
"value": "EfreetiBottle"
"value": "ITM_EFREETIBOT01"
},
"TemplateResRef": {
"type": "resref",
"value": "efreetibottle"
},
"xModelPart1": {
"type": "word",
"value": 26
}
}

View File

@ -30,16 +30,19 @@
},
"Description": {
"type": "cexolocstring",
"value": {}
"value": {
"0": ""
}
},
"Identified": {
"type": "byte",
"value": 0
},
"LocalizedName": {
"id": 13187,
"type": "cexolocstring",
"value": {
"0": "Efreeti Props"
"0": "Efreeti Properties"
}
},
"ModelPart1": {
@ -57,68 +60,6 @@
"PropertiesList": {
"type": "list",
"value": [
{
"__struct_id": 0,
"ChanceAppear": {
"type": "byte",
"value": 100
},
"CostTable": {
"type": "byte",
"value": 3
},
"CostValue": {
"type": "word",
"value": 8
},
"Param1": {
"type": "byte",
"value": 255
},
"Param1Value": {
"type": "byte",
"value": 0
},
"PropertyName": {
"type": "word",
"value": 15
},
"Subtype": {
"type": "word",
"value": 208
}
},
{
"__struct_id": 0,
"ChanceAppear": {
"type": "byte",
"value": 100
},
"CostTable": {
"type": "byte",
"value": 3
},
"CostValue": {
"type": "word",
"value": 8
},
"Param1": {
"type": "byte",
"value": 255
},
"Param1Value": {
"type": "byte",
"value": 0
},
"PropertyName": {
"type": "word",
"value": 15
},
"Subtype": {
"type": "word",
"value": 280
}
},
{
"__struct_id": 0,
"ChanceAppear": {
@ -170,7 +111,7 @@
},
"Param1Value": {
"type": "byte",
"value": 0
"value": 255
},
"PropertyName": {
"type": "word",
@ -180,6 +121,37 @@
"type": "word",
"value": 10
}
},
{
"__struct_id": 0,
"ChanceAppear": {
"type": "byte",
"value": 100
},
"CostTable": {
"type": "byte",
"value": 26
},
"CostValue": {
"type": "word",
"value": 0
},
"Param1": {
"type": "byte",
"value": 255
},
"Param1Value": {
"type": "byte",
"value": 0
},
"PropertyName": {
"type": "word",
"value": 82
},
"Subtype": {
"type": "word",
"value": 129
}
}
]
},
@ -193,7 +165,7 @@
},
"Tag": {
"type": "cexostring",
"value": "EfreetiProps"
"value": "EfreetiProperties"
},
"TemplateResRef": {
"type": "resref",

View File

@ -0,0 +1,141 @@
{
"__data_type": "UTI ",
"AddCost": {
"type": "dword",
"value": 0
},
"BaseItem": {
"type": "int",
"value": 71
},
"Charges": {
"type": "byte",
"value": 0
},
"Comment": {
"type": "cexostring",
"value": ""
},
"Cost": {
"type": "dword",
"value": 17256
},
"Cursed": {
"type": "byte",
"value": 0
},
"DescIdentified": {
"type": "cexolocstring",
"value": {}
},
"Description": {
"type": "cexolocstring",
"value": {}
},
"Identified": {
"type": "byte",
"value": 1
},
"LocalizedName": {
"id": 13222,
"type": "cexolocstring",
"value": {
"0": "EfreetiSlam"
}
},
"ModelPart1": {
"type": "byte",
"value": 1
},
"PaletteID": {
"type": "byte",
"value": 56
},
"Plot": {
"type": "byte",
"value": 0
},
"PropertiesList": {
"type": "list",
"value": [
{
"__struct_id": 0,
"ChanceAppear": {
"type": "byte",
"value": 100
},
"CostTable": {
"type": "byte",
"value": 4
},
"CostValue": {
"type": "word",
"value": 7
},
"Param1": {
"type": "byte",
"value": 255
},
"Param1Value": {
"type": "byte",
"value": 0
},
"PropertyName": {
"type": "word",
"value": 16
},
"Subtype": {
"type": "word",
"value": 10
}
},
{
"__struct_id": 0,
"ChanceAppear": {
"type": "byte",
"value": 100
},
"CostTable": {
"type": "byte",
"value": 19
},
"CostValue": {
"type": "word",
"value": 18
},
"Param1": {
"type": "byte",
"value": 255
},
"Param1Value": {
"type": "byte",
"value": 255
},
"PropertyName": {
"type": "word",
"value": 77
},
"Subtype": {
"type": "word",
"value": 0
}
}
]
},
"StackSize": {
"type": "word",
"value": 1
},
"Stolen": {
"type": "byte",
"value": 0
},
"Tag": {
"type": "cexostring",
"value": "EfreetiSlam"
},
"TemplateResRef": {
"type": "resref",
"value": "efreetislam"
}
}

View File

@ -0,0 +1,117 @@
{
"__data_type": "UTI ",
"AddCost": {
"type": "dword",
"value": 300
},
"BaseItem": {
"type": "int",
"value": 29
},
"Charges": {
"type": "byte",
"value": 0
},
"Comment": {
"type": "cexostring",
"value": "Efreeti Bottle"
},
"Cost": {
"type": "dword",
"value": 300
},
"Cursed": {
"type": "byte",
"value": 0
},
"DescIdentified": {
"type": "cexolocstring",
"value": {
"0": "A fine brass bottle that once contained the essence of a powerful Efreeti. Still a valuable decoration."
}
},
"Description": {
"type": "cexolocstring",
"value": {
"0": "An empty brass bottle."
}
},
"Identified": {
"type": "byte",
"value": 1
},
"LocalizedName": {
"type": "cexolocstring",
"value": {
"0": "Exhausted Efreeti Bottle"
}
},
"ModelPart1": {
"type": "byte",
"value": 26
},
"PaletteID": {
"type": "byte",
"value": 23
},
"Plot": {
"type": "byte",
"value": 0
},
"PropertiesList": {
"type": "list",
"value": [
{
"__struct_id": 0,
"ChanceAppear": {
"type": "byte",
"value": 100
},
"CostTable": {
"type": "byte",
"value": 28
},
"CostValue": {
"type": "word",
"value": 2
},
"Param1": {
"type": "byte",
"value": 255
},
"Param1Value": {
"type": "byte",
"value": 0
},
"PropertyName": {
"type": "word",
"value": 85
},
"Subtype": {
"type": "word",
"value": 0
}
}
]
},
"StackSize": {
"type": "word",
"value": 1
},
"Stolen": {
"type": "byte",
"value": 0
},
"Tag": {
"type": "cexostring",
"value": "ITM_DEADBOTTLE"
},
"TemplateResRef": {
"type": "resref",
"value": "itm_deadbottle"
},
"xModelPart1": {
"type": "word",
"value": 26
}
}

View File

@ -0,0 +1,148 @@
{
"__data_type": "UTI ",
"AddCost": {
"type": "dword",
"value": 9000
},
"BaseItem": {
"type": "int",
"value": 29
},
"Charges": {
"type": "byte",
"value": 0
},
"Comment": {
"type": "cexostring",
"value": "Efreeti Bottle"
},
"Cost": {
"type": "dword",
"value": 9000
},
"Cursed": {
"type": "byte",
"value": 0
},
"DescIdentified": {
"type": "cexolocstring",
"value": {
"0": "A bottle containing the essence of a powerful elemental spirit, the Efreeti Bottle allows the user to summon an efreeti once per day with unpredictable effects."
}
},
"Description": {
"type": "cexolocstring",
"value": {
"0": "A thin stream of smoke is issuing from this lead-stoppered brass bottle."
}
},
"Identified": {
"type": "byte",
"value": 0
},
"LocalizedName": {
"type": "cexolocstring",
"value": {
"0": "Efreeti Bottle"
}
},
"ModelPart1": {
"type": "byte",
"value": 26
},
"PaletteID": {
"type": "byte",
"value": 23
},
"Plot": {
"type": "byte",
"value": 0
},
"PropertiesList": {
"type": "list",
"value": [
{
"__struct_id": 0,
"ChanceAppear": {
"type": "byte",
"value": 100
},
"CostTable": {
"type": "byte",
"value": 3
},
"CostValue": {
"type": "word",
"value": 8
},
"Param1": {
"type": "byte",
"value": 255
},
"Param1Value": {
"type": "byte",
"value": 0
},
"PropertyName": {
"type": "word",
"value": 15
},
"Subtype": {
"type": "word",
"value": 335
}
},
{
"__struct_id": 0,
"ChanceAppear": {
"type": "byte",
"value": 100
},
"CostTable": {
"type": "byte",
"value": 28
},
"CostValue": {
"type": "word",
"value": 2
},
"Param1": {
"type": "byte",
"value": 255
},
"Param1Value": {
"type": "byte",
"value": 0
},
"PropertyName": {
"type": "word",
"value": 85
},
"Subtype": {
"type": "word",
"value": 0
}
}
]
},
"StackSize": {
"type": "word",
"value": 1
},
"Stolen": {
"type": "byte",
"value": 0
},
"Tag": {
"type": "cexostring",
"value": "ITM_EFREETIBOT01"
},
"TemplateResRef": {
"type": "resref",
"value": "itm_efreetibot01"
},
"xModelPart1": {
"type": "word",
"value": 26
}
}

View File

@ -0,0 +1,117 @@
{
"__data_type": "UTI ",
"AddCost": {
"type": "dword",
"value": 1
},
"BaseItem": {
"type": "int",
"value": 29
},
"Charges": {
"type": "byte",
"value": 0
},
"Comment": {
"type": "cexostring",
"value": "50' Hempen Rope"
},
"Cost": {
"type": "dword",
"value": 1
},
"Cursed": {
"type": "byte",
"value": 0
},
"DescIdentified": {
"type": "cexolocstring",
"value": {
"0": "Can you even call yourself an adventurer if you don't have any rope?"
}
},
"Description": {
"type": "cexolocstring",
"value": {
"0": "Can you even call yourself an adventurer if you don't have any rope?"
}
},
"Identified": {
"type": "byte",
"value": 1
},
"LocalizedName": {
"type": "cexolocstring",
"value": {
"0": "50' Hempen Rope"
}
},
"ModelPart1": {
"type": "byte",
"value": 103
},
"PaletteID": {
"type": "byte",
"value": 23
},
"Plot": {
"type": "byte",
"value": 0
},
"PropertiesList": {
"type": "list",
"value": [
{
"__struct_id": 0,
"ChanceAppear": {
"type": "byte",
"value": 100
},
"CostTable": {
"type": "byte",
"value": 0
},
"CostValue": {
"type": "word",
"value": 0
},
"Param1": {
"type": "byte",
"value": 11
},
"Param1Value": {
"type": "byte",
"value": 1
},
"PropertyName": {
"type": "word",
"value": 81
},
"Subtype": {
"type": "word",
"value": 0
}
}
]
},
"StackSize": {
"type": "word",
"value": 1
},
"Stolen": {
"type": "byte",
"value": 0
},
"Tag": {
"type": "cexostring",
"value": "ITM_HEMP_ROPE001"
},
"TemplateResRef": {
"type": "resref",
"value": "itm_hemp_rope001"
},
"xModelPart1": {
"type": "word",
"value": 103
}
}

Some files were not shown because too many files have changed in this diff Show More