Adding MMO systems
Added barred doors, set up more city denizen spawners, cleaned up Baleas Town Guards, Faerunized the "Holy Paladins". Added character deleter NPC in the OOC Starting Area.
This commit is contained in:
parent
ae152d0814
commit
d0d52fb1d0
@ -87,7 +87,7 @@
|
||||
"Name": {
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
"0": "Adventurer's Inn"
|
||||
"0": "_Adventurer's Inn_"
|
||||
}
|
||||
},
|
||||
"NoRest": {
|
||||
@ -677,7 +677,7 @@
|
||||
},
|
||||
"Version": {
|
||||
"type": "dword",
|
||||
"value": 33
|
||||
"value": 36
|
||||
},
|
||||
"Width": {
|
||||
"type": "int",
|
||||
|
@ -11169,7 +11169,7 @@
|
||||
},
|
||||
"Version": {
|
||||
"type": "dword",
|
||||
"value": 38
|
||||
"value": 45
|
||||
},
|
||||
"Width": {
|
||||
"type": "int",
|
||||
|
@ -87,7 +87,7 @@
|
||||
"Name": {
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
"0": "OOC Starting Area"
|
||||
"0": "_OOC Starting Area_"
|
||||
}
|
||||
},
|
||||
"NoRest": {
|
||||
@ -1709,7 +1709,7 @@
|
||||
},
|
||||
"Version": {
|
||||
"type": "dword",
|
||||
"value": 62
|
||||
"value": 63
|
||||
},
|
||||
"Width": {
|
||||
"type": "int",
|
||||
|
105
_module/dlg/cv_baleasguard01.dlg.json
Normal file
105
_module/dlg/cv_baleasguard01.dlg.json
Normal file
@ -0,0 +1,105 @@
|
||||
{
|
||||
"__data_type": "DLG ",
|
||||
"DelayEntry": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
},
|
||||
"DelayReply": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
},
|
||||
"EndConverAbort": {
|
||||
"type": "resref",
|
||||
"value": "nw_walk_wp"
|
||||
},
|
||||
"EndConversation": {
|
||||
"type": "resref",
|
||||
"value": "nw_walk_wp"
|
||||
},
|
||||
"EntryList": {
|
||||
"type": "list",
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"ActionParams": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"Animation": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
},
|
||||
"AnimLoop": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": ""
|
||||
},
|
||||
"Delay": {
|
||||
"type": "dword",
|
||||
"value": 4294967295
|
||||
},
|
||||
"Quest": {
|
||||
"type": "cexostring",
|
||||
"value": ""
|
||||
},
|
||||
"RepliesList": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"Script": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"Sound": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"Speaker": {
|
||||
"type": "cexostring",
|
||||
"value": ""
|
||||
},
|
||||
"Text": {
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
"0": "I've got my eye on you, <race>."
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"NumWords": {
|
||||
"type": "dword",
|
||||
"value": 7
|
||||
},
|
||||
"PreventZoomIn": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"ReplyList": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"StartingList": {
|
||||
"type": "list",
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Active": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"ConditionParams": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"Index": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
105
_module/dlg/cv_goldeye.dlg.json
Normal file
105
_module/dlg/cv_goldeye.dlg.json
Normal file
@ -0,0 +1,105 @@
|
||||
{
|
||||
"__data_type": "DLG ",
|
||||
"DelayEntry": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
},
|
||||
"DelayReply": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
},
|
||||
"EndConverAbort": {
|
||||
"type": "resref",
|
||||
"value": "nw_walk_wp"
|
||||
},
|
||||
"EndConversation": {
|
||||
"type": "resref",
|
||||
"value": "nw_walk_wp"
|
||||
},
|
||||
"EntryList": {
|
||||
"type": "list",
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"ActionParams": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"Animation": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
},
|
||||
"AnimLoop": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": ""
|
||||
},
|
||||
"Delay": {
|
||||
"type": "dword",
|
||||
"value": 4294967295
|
||||
},
|
||||
"Quest": {
|
||||
"type": "cexostring",
|
||||
"value": ""
|
||||
},
|
||||
"RepliesList": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"Script": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"Sound": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"Speaker": {
|
||||
"type": "cexostring",
|
||||
"value": ""
|
||||
},
|
||||
"Text": {
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
"0": "Greetings! Welcome to the Temple of All Gods in Balleas!"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"NumWords": {
|
||||
"type": "dword",
|
||||
"value": 10
|
||||
},
|
||||
"PreventZoomIn": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"ReplyList": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"StartingList": {
|
||||
"type": "list",
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Active": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"ConditionParams": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"Index": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
559
_module/dlg/hs_del_pc.dlg.json
Normal file
559
_module/dlg/hs_del_pc.dlg.json
Normal file
@ -0,0 +1,559 @@
|
||||
{
|
||||
"__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,
|
||||
"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": ""
|
||||
},
|
||||
"Index": {
|
||||
"type": "dword",
|
||||
"value": 1
|
||||
},
|
||||
"IsChild": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Active": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"Index": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
},
|
||||
"IsChild": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Script": {
|
||||
"type": "resref",
|
||||
"value": "at_caplvlup"
|
||||
},
|
||||
"Sound": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"Speaker": {
|
||||
"type": "cexostring",
|
||||
"value": ""
|
||||
},
|
||||
"Text": {
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
"0": "What do you need, mortal?"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"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": ""
|
||||
},
|
||||
"Index": {
|
||||
"type": "dword",
|
||||
"value": 3
|
||||
},
|
||||
"IsChild": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Active": {
|
||||
"type": "resref",
|
||||
"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'd like to delete this character from the server vault?"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 2,
|
||||
"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": ""
|
||||
},
|
||||
"Index": {
|
||||
"type": "dword",
|
||||
"value": 5
|
||||
},
|
||||
"IsChild": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Active": {
|
||||
"type": "resref",
|
||||
"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": " Are you certain? You will be booted from the server. When you come back your character will be deleted. This cannot be undone, and there is nothing the server admins or DMs can do to undelete this character."
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"NumWords": {
|
||||
"type": "dword",
|
||||
"value": 67
|
||||
},
|
||||
"PreventZoomIn": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"ReplyList": {
|
||||
"type": "list",
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"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": "Done"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"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": ""
|
||||
},
|
||||
"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": "I'd like to delete this character."
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 2,
|
||||
"Animation": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
},
|
||||
"AnimLoop": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": ""
|
||||
},
|
||||
"Delay": {
|
||||
"type": "dword",
|
||||
"value": 4294967295
|
||||
},
|
||||
"EntriesList": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"Quest": {
|
||||
"type": "cexostring",
|
||||
"value": ""
|
||||
},
|
||||
"Script": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"Sound": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"Text": {
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
"0": "No."
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 3,
|
||||
"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": ""
|
||||
},
|
||||
"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": "Yes."
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 4,
|
||||
"Animation": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
},
|
||||
"AnimLoop": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": ""
|
||||
},
|
||||
"Delay": {
|
||||
"type": "dword",
|
||||
"value": 4294967295
|
||||
},
|
||||
"EntriesList": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"Quest": {
|
||||
"type": "cexostring",
|
||||
"value": ""
|
||||
},
|
||||
"Script": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"Sound": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"Text": {
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
"0": "No, my mistake."
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 5,
|
||||
"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": "dante_letodel_at"
|
||||
},
|
||||
"Sound": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"Text": {
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
"0": "Yes, proceed."
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"StartingList": {
|
||||
"type": "list",
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Active": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"Index": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
@ -112,13 +112,6 @@
|
||||
"value": "Chair"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 9,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "BESIE Commoner Spawner \r\nBy: Ray Miller\r\nkaynekayne@bigfoot.com\r\n\r\nFor populating citys, towns, inns etc...\r\nUses \"Random Cloths Commoners\" by Mayset Aalikor\r\n\r\nChance to walk each heartbeat - Hit Points (offset by 1)\r\nSpawn Diameter - Fortitude Save (in 10 meter increments)\r\nTable Number - Reflex Save (Format: \"re_commoner#\")\r\nMax Spawns - Will Save\r\nTime in/Time out - Tag (\"re_b#e#\")\r\n\r\nExample: A tag of \"re_b6e22\" will spawn the commoners in at hour 6, spawn them out at hour 22."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 9,
|
||||
"Comment": {
|
||||
@ -198,13 +191,6 @@
|
||||
"type": "cexostring",
|
||||
"value": "This waypoint is used for respawning a PC if the option of a custom location is set."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__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."
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -14,154 +14,7 @@
|
||||
"__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": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"__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": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"__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": ""
|
||||
"value": "Cleric of Waukeen"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -385,6 +238,202 @@
|
||||
"type": "cexostring",
|
||||
"value": "Strong Door"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 8,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door\r\n\r\nUse this for doors that are never meant to open."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 8,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door\r\n\r\nUse this for doors that are never meant to open."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 8,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door\r\n\r\nUse this for doors that are never meant to open."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 8,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door\r\n\r\nUse this for doors that are never meant to open."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 8,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door\r\n\r\nUse this for doors that are never meant to open."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 8,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door\r\n\r\nUse this for doors that are never meant to open."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 8,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door\r\n\r\nUse this for doors that are never meant to open."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 8,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door\r\n\r\nUse this for doors that are never meant to open."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 8,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door\r\n\r\nUse this for doors that are never meant to open."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 8,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door\r\n\r\nUse this for doors that are never meant to open."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 8,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door\r\n\r\nUse this for doors that are never meant to open."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 8,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door\r\n\r\nUse this for doors that are never meant to open."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 8,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door\r\n\r\nUse this for doors that are never meant to open."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 8,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door\r\n\r\nUse this for doors that are never meant to open."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 8,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door\r\n\r\nUse this for doors that are never meant to open."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 8,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door\r\n\r\nUse this for doors that are never meant to open."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 8,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door\r\n\r\nUse this for doors that are never meant to open."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 8,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door\r\n\r\nUse this for doors that are never meant to open."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 8,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door\r\n\r\nUse this for doors that are never meant to open."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 8,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door\r\n\r\nUse this for doors that are never meant to open."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 8,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door\r\n\r\nUse this for doors that are never meant to open."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 8,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door\r\n\r\nUse this for doors that are never meant to open."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 8,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door\r\n\r\nUse this for doors that are never meant to open."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 8,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door\r\n\r\nUse this for doors that are never meant to open."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 8,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door\r\n\r\nUse this for doors that are never meant to open."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 8,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door\r\n\r\nUse this for doors that are never meant to open."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 8,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door\r\n\r\nUse this for doors that are never meant to open."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 8,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door\r\n\r\nUse this for doors that are never meant to open."
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -531,6 +580,20 @@
|
||||
"type": "cexostring",
|
||||
"value": "BESIE Commoner Spawner \r\nBy: Ray Miller\r\nkaynekayne@bigfoot.com\r\n\r\nFor populating citys, towns, inns etc...\r\nUses \"Random Cloths Commoners\" by Mayset Aalikor\r\n\r\nChance to walk each heartbeat - Hit Points (offset by 1)\r\nSpawn Diameter - Fortitude Save (in 10 meter increments)\r\nTable Number - Reflex Save (Format: \"re_commoner#\")\r\nMax Spawns - Will Save\r\nTime in/Time out - Tag (\"re_b#e#\")\r\n\r\nExample: A tag of \"re_b6e22\" will spawn the commoners in at hour 6, spawn them out at hour 22."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 9,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "BESIE Persistent World Respawner\r\nBy: Ray Miller\r\nkaynekayne@bigfoot.com\r\n\r\nChance to Respawn\r\n(each hb after reset time) = Hit Points / 100\r\nLevel = Fortitude save\r\nReset Time (in minutes) = Reflex save\r\nSpawner Number = Will Save\r\nEncounter Table = Tag\r\n\r\nA full standard table consists of \"re_abcdeghimput0\" :\r\na = animal\r\nb = bandit\r\nc = construct\r\nd = dragon\r\ne = elemental\r\ng = giant\r\nh = humanoid\r\ni = instect\r\nm = magical beast / miscellaneous\r\nn = aberration\r\np = planar\r\nu = undead\r\nt0 = assign standard treasure table to the encounter"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 9,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "BESIE Persistent World Respawner\r\nBy: Ray Miller\r\nkaynekayne@bigfoot.com\r\n\r\nChance to Respawn\r\n(each hb after reset time) = Hit Points / 100\r\nLevel = Fortitude save\r\nReset Time (in minutes) = Reflex save\r\nSpawner Number = Will Save\r\nEncounter Table = Tag\r\n\r\nA full standard table consists of \"re_abcdeghimput0\" :\r\na = animal\r\nb = bandit\r\nc = construct\r\nd = dragon\r\ne = elemental\r\ng = giant\r\nh = humanoid\r\ni = instect\r\nm = magical beast / miscellaneous\r\nn = aberration\r\np = planar\r\nu = undead\r\nt0 = assign standard treasure table to the encounter"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -799,63 +862,147 @@
|
||||
"__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."
|
||||
"value": "This is the default waypoint you may place to set a Spawn point for the BESIE PW Spawner tool.\r\n1. Place a PW Spawner tool anywhere in the area.\r\n2. Set all other parameters on the PW Spawner tool according to the instructions found in the comments sections on that tool.\r\n3. Change the tag of this waypoint to match the Will Save number of the tool. ie. if the Will Save of the PW Spawner is 2 then change the tag of this Waypoint to \"PWS02\"\r\n4. Add any special behavior designators to the end of the tag ie. \"PWS02s2s1\". See the following table for behavior designators:\r\n\r\nBehavior designators:\r\ns1 - Do not return to spawn point after chasing an enemy (or moving for any other reason). This should be set if the creature spawned here has waypoints to walk or to POST.\r\ns2 - Random Walk. This creature will randomly walk a small patrol area via the RandomWalk() function.\r\ns3 - Sit. The creature will sit on the ground instead of standing (provided he has a sitting animation).\r\ns4 - No Regeneration. The Creature will not regenerate hitpoints. Note, this does NOT prevent a creature who regenerates naturally or due to some other source from regenerating.\r\ns5 - Only at day. Only spawn this creature during dawn or day.\r\ns6 - Only at night. Only spawn this creature during dusk or night.\r\nb## - Begin Time. Spawn in at this time.\r\ne## - End Time - Spawn out at this time.\r\n(note: do not use e or b with s5 or s6)\r\nt## - Territroy. If the creature goes outside of this territory range it will teleport back to the spawn point when not in combat. NOTE: Can NOT be set below 30 meters. If set below 30 meters it will default to 30."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__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."
|
||||
"value": "This is the default waypoint you may place to set a Spawn point for the BESIE PW Spawner tool.\r\n1. Place a PW Spawner tool anywhere in the area.\r\n2. Set all other parameters on the PW Spawner tool according to the instructions found in the comments sections on that tool.\r\n3. Change the tag of this waypoint to match the Will Save number of the tool. ie. if the Will Save of the PW Spawner is 2 then change the tag of this Waypoint to \"PWS02\"\r\n4. Add any special behavior designators to the end of the tag ie. \"PWS02s2s1\". See the following table for behavior designators:\r\n\r\nBehavior designators:\r\ns1 - Do not return to spawn point after chasing an enemy (or moving for any other reason). This should be set if the creature spawned here has waypoints to walk or to POST.\r\ns2 - Random Walk. This creature will randomly walk a small patrol area via the RandomWalk() function.\r\ns3 - Sit. The creature will sit on the ground instead of standing (provided he has a sitting animation).\r\ns4 - No Regeneration. The Creature will not regenerate hitpoints. Note, this does NOT prevent a creature who regenerates naturally or due to some other source from regenerating.\r\ns5 - Only at day. Only spawn this creature during dawn or day.\r\ns6 - Only at night. Only spawn this creature during dusk or night.\r\nb## - Begin Time. Spawn in at this time.\r\ne## - End Time - Spawn out at this time.\r\n(note: do not use e or b with s5 or s6)\r\nt## - Territroy. If the creature goes outside of this territory range it will teleport back to the spawn point when not in combat. NOTE: Can NOT be set below 30 meters. If set below 30 meters it will default to 30."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__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."
|
||||
"value": "This is the default waypoint you may place to set a Spawn point for the BESIE PW Spawner tool.\r\n1. Place a PW Spawner tool anywhere in the area.\r\n2. Set all other parameters on the PW Spawner tool according to the instructions found in the comments sections on that tool.\r\n3. Change the tag of this waypoint to match the Will Save number of the tool. ie. if the Will Save of the PW Spawner is 2 then change the tag of this Waypoint to \"PWS02\"\r\n4. Add any special behavior designators to the end of the tag ie. \"PWS02s2s1\". See the following table for behavior designators:\r\n\r\nBehavior designators:\r\ns1 - Do not return to spawn point after chasing an enemy (or moving for any other reason). This should be set if the creature spawned here has waypoints to walk or to POST.\r\ns2 - Random Walk. This creature will randomly walk a small patrol area via the RandomWalk() function.\r\ns3 - Sit. The creature will sit on the ground instead of standing (provided he has a sitting animation).\r\ns4 - No Regeneration. The Creature will not regenerate hitpoints. Note, this does NOT prevent a creature who regenerates naturally or due to some other source from regenerating.\r\ns5 - Only at day. Only spawn this creature during dawn or day.\r\ns6 - Only at night. Only spawn this creature during dusk or night.\r\nb## - Begin Time. Spawn in at this time.\r\ne## - End Time - Spawn out at this time.\r\n(note: do not use e or b with s5 or s6)\r\nt## - Territroy. If the creature goes outside of this territory range it will teleport back to the spawn point when not in combat. NOTE: Can NOT be set below 30 meters. If set below 30 meters it will default to 30."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__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."
|
||||
"value": "This is the default waypoint you may place to set a Spawn point for the BESIE PW Spawner tool.\r\n1. Place a PW Spawner tool anywhere in the area.\r\n2. Set all other parameters on the PW Spawner tool according to the instructions found in the comments sections on that tool.\r\n3. Change the tag of this waypoint to match the Will Save number of the tool. ie. if the Will Save of the PW Spawner is 2 then change the tag of this Waypoint to \"PWS02\"\r\n4. Add any special behavior designators to the end of the tag ie. \"PWS02s2s1\". See the following table for behavior designators:\r\n\r\nBehavior designators:\r\ns1 - Do not return to spawn point after chasing an enemy (or moving for any other reason). This should be set if the creature spawned here has waypoints to walk or to POST.\r\ns2 - Random Walk. This creature will randomly walk a small patrol area via the RandomWalk() function.\r\ns3 - Sit. The creature will sit on the ground instead of standing (provided he has a sitting animation).\r\ns4 - No Regeneration. The Creature will not regenerate hitpoints. Note, this does NOT prevent a creature who regenerates naturally or due to some other source from regenerating.\r\ns5 - Only at day. Only spawn this creature during dawn or day.\r\ns6 - Only at night. Only spawn this creature during dusk or night.\r\nb## - Begin Time. Spawn in at this time.\r\ne## - End Time - Spawn out at this time.\r\n(note: do not use e or b with s5 or s6)\r\nt## - Territroy. If the creature goes outside of this territory range it will teleport back to the spawn point when not in combat. NOTE: Can NOT be set below 30 meters. If set below 30 meters it will default to 30."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__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."
|
||||
"value": "This is the default waypoint you may place to set a Spawn point for the BESIE PW Spawner tool.\r\n1. Place a PW Spawner tool anywhere in the area.\r\n2. Set all other parameters on the PW Spawner tool according to the instructions found in the comments sections on that tool.\r\n3. Change the tag of this waypoint to match the Will Save number of the tool. ie. if the Will Save of the PW Spawner is 2 then change the tag of this Waypoint to \"PWS02\"\r\n4. Add any special behavior designators to the end of the tag ie. \"PWS02s2s1\". See the following table for behavior designators:\r\n\r\nBehavior designators:\r\ns1 - Do not return to spawn point after chasing an enemy (or moving for any other reason). This should be set if the creature spawned here has waypoints to walk or to POST.\r\ns2 - Random Walk. This creature will randomly walk a small patrol area via the RandomWalk() function.\r\ns3 - Sit. The creature will sit on the ground instead of standing (provided he has a sitting animation).\r\ns4 - No Regeneration. The Creature will not regenerate hitpoints. Note, this does NOT prevent a creature who regenerates naturally or due to some other source from regenerating.\r\ns5 - Only at day. Only spawn this creature during dawn or day.\r\ns6 - Only at night. Only spawn this creature during dusk or night.\r\nb## - Begin Time. Spawn in at this time.\r\ne## - End Time - Spawn out at this time.\r\n(note: do not use e or b with s5 or s6)\r\nt## - Territroy. If the creature goes outside of this territory range it will teleport back to the spawn point when not in combat. NOTE: Can NOT be set below 30 meters. If set below 30 meters it will default to 30."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__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."
|
||||
"value": "This is the default waypoint you may place to set a Spawn point for the BESIE PW Spawner tool.\r\n1. Place a PW Spawner tool anywhere in the area.\r\n2. Set all other parameters on the PW Spawner tool according to the instructions found in the comments sections on that tool.\r\n3. Change the tag of this waypoint to match the Will Save number of the tool. ie. if the Will Save of the PW Spawner is 2 then change the tag of this Waypoint to \"PWS02\"\r\n4. Add any special behavior designators to the end of the tag ie. \"PWS02s2s1\". See the following table for behavior designators:\r\n\r\nBehavior designators:\r\ns1 - Do not return to spawn point after chasing an enemy (or moving for any other reason). This should be set if the creature spawned here has waypoints to walk or to POST.\r\ns2 - Random Walk. This creature will randomly walk a small patrol area via the RandomWalk() function.\r\ns3 - Sit. The creature will sit on the ground instead of standing (provided he has a sitting animation).\r\ns4 - No Regeneration. The Creature will not regenerate hitpoints. Note, this does NOT prevent a creature who regenerates naturally or due to some other source from regenerating.\r\ns5 - Only at day. Only spawn this creature during dawn or day.\r\ns6 - Only at night. Only spawn this creature during dusk or night.\r\nb## - Begin Time. Spawn in at this time.\r\ne## - End Time - Spawn out at this time.\r\n(note: do not use e or b with s5 or s6)\r\nt## - Territroy. If the creature goes outside of this territory range it will teleport back to the spawn point when not in combat. NOTE: Can NOT be set below 30 meters. If set below 30 meters it will default to 30."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__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."
|
||||
"value": "This is the default waypoint you may place to set a Spawn point for the BESIE PW Spawner tool.\r\n1. Place a PW Spawner tool anywhere in the area.\r\n2. Set all other parameters on the PW Spawner tool according to the instructions found in the comments sections on that tool.\r\n3. Change the tag of this waypoint to match the Will Save number of the tool. ie. if the Will Save of the PW Spawner is 2 then change the tag of this Waypoint to \"PWS02\"\r\n4. Add any special behavior designators to the end of the tag ie. \"PWS02s2s1\". See the following table for behavior designators:\r\n\r\nBehavior designators:\r\ns1 - Do not return to spawn point after chasing an enemy (or moving for any other reason). This should be set if the creature spawned here has waypoints to walk or to POST.\r\ns2 - Random Walk. This creature will randomly walk a small patrol area via the RandomWalk() function.\r\ns3 - Sit. The creature will sit on the ground instead of standing (provided he has a sitting animation).\r\ns4 - No Regeneration. The Creature will not regenerate hitpoints. Note, this does NOT prevent a creature who regenerates naturally or due to some other source from regenerating.\r\ns5 - Only at day. Only spawn this creature during dawn or day.\r\ns6 - Only at night. Only spawn this creature during dusk or night.\r\nb## - Begin Time. Spawn in at this time.\r\ne## - End Time - Spawn out at this time.\r\n(note: do not use e or b with s5 or s6)\r\nt## - Territroy. If the creature goes outside of this territory range it will teleport back to the spawn point when not in combat. NOTE: Can NOT be set below 30 meters. If set below 30 meters it will default to 30."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__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."
|
||||
"value": "This is the default waypoint you may place to set a Spawn point for the BESIE PW Spawner tool.\r\n1. Place a PW Spawner tool anywhere in the area.\r\n2. Set all other parameters on the PW Spawner tool according to the instructions found in the comments sections on that tool.\r\n3. Change the tag of this waypoint to match the Will Save number of the tool. ie. if the Will Save of the PW Spawner is 2 then change the tag of this Waypoint to \"PWS02\"\r\n4. Add any special behavior designators to the end of the tag ie. \"PWS02s2s1\". See the following table for behavior designators:\r\n\r\nBehavior designators:\r\ns1 - Do not return to spawn point after chasing an enemy (or moving for any other reason). This should be set if the creature spawned here has waypoints to walk or to POST.\r\ns2 - Random Walk. This creature will randomly walk a small patrol area via the RandomWalk() function.\r\ns3 - Sit. The creature will sit on the ground instead of standing (provided he has a sitting animation).\r\ns4 - No Regeneration. The Creature will not regenerate hitpoints. Note, this does NOT prevent a creature who regenerates naturally or due to some other source from regenerating.\r\ns5 - Only at day. Only spawn this creature during dawn or day.\r\ns6 - Only at night. Only spawn this creature during dusk or night.\r\nb## - Begin Time. Spawn in at this time.\r\ne## - End Time - Spawn out at this time.\r\n(note: do not use e or b with s5 or s6)\r\nt## - Territroy. If the creature goes outside of this territory range it will teleport back to the spawn point when not in combat. NOTE: Can NOT be set below 30 meters. If set below 30 meters it will default to 30."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__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."
|
||||
"value": "This is the default waypoint you may place to set a Spawn point for the BESIE PW Spawner tool.\r\n1. Place a PW Spawner tool anywhere in the area.\r\n2. Set all other parameters on the PW Spawner tool according to the instructions found in the comments sections on that tool.\r\n3. Change the tag of this waypoint to match the Will Save number of the tool. ie. if the Will Save of the PW Spawner is 2 then change the tag of this Waypoint to \"PWS02\"\r\n4. Add any special behavior designators to the end of the tag ie. \"PWS02s2s1\". See the following table for behavior designators:\r\n\r\nBehavior designators:\r\ns1 - Do not return to spawn point after chasing an enemy (or moving for any other reason). This should be set if the creature spawned here has waypoints to walk or to POST.\r\ns2 - Random Walk. This creature will randomly walk a small patrol area via the RandomWalk() function.\r\ns3 - Sit. The creature will sit on the ground instead of standing (provided he has a sitting animation).\r\ns4 - No Regeneration. The Creature will not regenerate hitpoints. Note, this does NOT prevent a creature who regenerates naturally or due to some other source from regenerating.\r\ns5 - Only at day. Only spawn this creature during dawn or day.\r\ns6 - Only at night. Only spawn this creature during dusk or night.\r\nb## - Begin Time. Spawn in at this time.\r\ne## - End Time - Spawn out at this time.\r\n(note: do not use e or b with s5 or s6)\r\nt## - Territroy. If the creature goes outside of this territory range it will teleport back to the spawn point when not in combat. NOTE: Can NOT be set below 30 meters. If set below 30 meters it will default to 30."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 5,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "This is the default waypoint you may place to set a Spawn point for the BESIE PW Spawner tool.\r\n1. Place a PW Spawner tool anywhere in the area.\r\n2. Set all other parameters on the PW Spawner tool according to the instructions found in the comments sections on that tool.\r\n3. Change the tag of this waypoint to match the Will Save number of the tool. ie. if the Will Save of the PW Spawner is 2 then change the tag of this Waypoint to \"PWS02\"\r\n4. Add any special behavior designators to the end of the tag ie. \"PWS02s2s1\". See the following table for behavior designators:\r\n\r\nBehavior designators:\r\ns1 - Do not return to spawn point after chasing an enemy (or moving for any other reason). This should be set if the creature spawned here has waypoints to walk or to POST.\r\ns2 - Random Walk. This creature will randomly walk a small patrol area via the RandomWalk() function.\r\ns3 - Sit. The creature will sit on the ground instead of standing (provided he has a sitting animation).\r\ns4 - No Regeneration. The Creature will not regenerate hitpoints. Note, this does NOT prevent a creature who regenerates naturally or due to some other source from regenerating.\r\ns5 - Only at day. Only spawn this creature during dawn or day.\r\ns6 - Only at night. Only spawn this creature during dusk or night.\r\nb## - Begin Time. Spawn in at this time.\r\ne## - End Time - Spawn out at this time.\r\n(note: do not use e or b with s5 or s6)\r\nt## - Territroy. If the creature goes outside of this territory range it will teleport back to the spawn point when not in combat. NOTE: Can NOT be set below 30 meters. If set below 30 meters it will default to 30."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 5,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "This is the default waypoint you may place to set a Spawn point for the BESIE PW Spawner tool.\r\n1. Place a PW Spawner tool anywhere in the area.\r\n2. Set all other parameters on the PW Spawner tool according to the instructions found in the comments sections on that tool.\r\n3. Change the tag of this waypoint to match the Will Save number of the tool. ie. if the Will Save of the PW Spawner is 2 then change the tag of this Waypoint to \"PWS02\"\r\n4. Add any special behavior designators to the end of the tag ie. \"PWS02s2s1\". See the following table for behavior designators:\r\n\r\nBehavior designators:\r\ns1 - Do not return to spawn point after chasing an enemy (or moving for any other reason). This should be set if the creature spawned here has waypoints to walk or to POST.\r\ns2 - Random Walk. This creature will randomly walk a small patrol area via the RandomWalk() function.\r\ns3 - Sit. The creature will sit on the ground instead of standing (provided he has a sitting animation).\r\ns4 - No Regeneration. The Creature will not regenerate hitpoints. Note, this does NOT prevent a creature who regenerates naturally or due to some other source from regenerating.\r\ns5 - Only at day. Only spawn this creature during dawn or day.\r\ns6 - Only at night. Only spawn this creature during dusk or night.\r\nb## - Begin Time. Spawn in at this time.\r\ne## - End Time - Spawn out at this time.\r\n(note: do not use e or b with s5 or s6)\r\nt## - Territroy. If the creature goes outside of this territory range it will teleport back to the spawn point when not in combat. NOTE: Can NOT be set below 30 meters. If set below 30 meters it will default to 30."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 5,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "This is the default waypoint you may place to set a Spawn point for the BESIE PW Spawner tool.\r\n1. Place a PW Spawner tool anywhere in the area.\r\n2. Set all other parameters on the PW Spawner tool according to the instructions found in the comments sections on that tool.\r\n3. Change the tag of this waypoint to match the Will Save number of the tool. ie. if the Will Save of the PW Spawner is 2 then change the tag of this Waypoint to \"PWS02\"\r\n4. Add any special behavior designators to the end of the tag ie. \"PWS02s2s1\". See the following table for behavior designators:\r\n\r\nBehavior designators:\r\ns1 - Do not return to spawn point after chasing an enemy (or moving for any other reason). This should be set if the creature spawned here has waypoints to walk or to POST.\r\ns2 - Random Walk. This creature will randomly walk a small patrol area via the RandomWalk() function.\r\ns3 - Sit. The creature will sit on the ground instead of standing (provided he has a sitting animation).\r\ns4 - No Regeneration. The Creature will not regenerate hitpoints. Note, this does NOT prevent a creature who regenerates naturally or due to some other source from regenerating.\r\ns5 - Only at day. Only spawn this creature during dawn or day.\r\ns6 - Only at night. Only spawn this creature during dusk or night.\r\nb## - Begin Time. Spawn in at this time.\r\ne## - End Time - Spawn out at this time.\r\n(note: do not use e or b with s5 or s6)\r\nt## - Territroy. If the creature goes outside of this territory range it will teleport back to the spawn point when not in combat. NOTE: Can NOT be set below 30 meters. If set below 30 meters it will default to 30."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 5,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "This is the default waypoint you may place to set a Spawn point for the BESIE PW Spawner tool.\r\n1. Place a PW Spawner tool anywhere in the area.\r\n2. Set all other parameters on the PW Spawner tool according to the instructions found in the comments sections on that tool.\r\n3. Change the tag of this waypoint to match the Will Save number of the tool. ie. if the Will Save of the PW Spawner is 2 then change the tag of this Waypoint to \"PWS02\"\r\n4. Add any special behavior designators to the end of the tag ie. \"PWS02s2s1\". See the following table for behavior designators:\r\n\r\nBehavior designators:\r\ns1 - Do not return to spawn point after chasing an enemy (or moving for any other reason). This should be set if the creature spawned here has waypoints to walk or to POST.\r\ns2 - Random Walk. This creature will randomly walk a small patrol area via the RandomWalk() function.\r\ns3 - Sit. The creature will sit on the ground instead of standing (provided he has a sitting animation).\r\ns4 - No Regeneration. The Creature will not regenerate hitpoints. Note, this does NOT prevent a creature who regenerates naturally or due to some other source from regenerating.\r\ns5 - Only at day. Only spawn this creature during dawn or day.\r\ns6 - Only at night. Only spawn this creature during dusk or night.\r\nb## - Begin Time. Spawn in at this time.\r\ne## - End Time - Spawn out at this time.\r\n(note: do not use e or b with s5 or s6)\r\nt## - Territroy. If the creature goes outside of this territory range it will teleport back to the spawn point when not in combat. NOTE: Can NOT be set below 30 meters. If set below 30 meters it will default to 30."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 5,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "This is the default waypoint you may place to set a Spawn point for the BESIE PW Spawner tool.\r\n1. Place a PW Spawner tool anywhere in the area.\r\n2. Set all other parameters on the PW Spawner tool according to the instructions found in the comments sections on that tool.\r\n3. Change the tag of this waypoint to match the Will Save number of the tool. ie. if the Will Save of the PW Spawner is 2 then change the tag of this Waypoint to \"PWS02\"\r\n4. Add any special behavior designators to the end of the tag ie. \"PWS02s2s1\". See the following table for behavior designators:\r\n\r\nBehavior designators:\r\ns1 - Do not return to spawn point after chasing an enemy (or moving for any other reason). This should be set if the creature spawned here has waypoints to walk or to POST.\r\ns2 - Random Walk. This creature will randomly walk a small patrol area via the RandomWalk() function.\r\ns3 - Sit. The creature will sit on the ground instead of standing (provided he has a sitting animation).\r\ns4 - No Regeneration. The Creature will not regenerate hitpoints. Note, this does NOT prevent a creature who regenerates naturally or due to some other source from regenerating.\r\ns5 - Only at day. Only spawn this creature during dawn or day.\r\ns6 - Only at night. Only spawn this creature during dusk or night.\r\nb## - Begin Time. Spawn in at this time.\r\ne## - End Time - Spawn out at this time.\r\n(note: do not use e or b with s5 or s6)\r\nt## - Territroy. If the creature goes outside of this territory range it will teleport back to the spawn point when not in combat. NOTE: Can NOT be set below 30 meters. If set below 30 meters it will default to 30."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 5,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "This is the default waypoint you may place to set a Spawn point for the BESIE PW Spawner tool.\r\n1. Place a PW Spawner tool anywhere in the area.\r\n2. Set all other parameters on the PW Spawner tool according to the instructions found in the comments sections on that tool.\r\n3. Change the tag of this waypoint to match the Will Save number of the tool. ie. if the Will Save of the PW Spawner is 2 then change the tag of this Waypoint to \"PWS02\"\r\n4. Add any special behavior designators to the end of the tag ie. \"PWS02s2s1\". See the following table for behavior designators:\r\n\r\nBehavior designators:\r\ns1 - Do not return to spawn point after chasing an enemy (or moving for any other reason). This should be set if the creature spawned here has waypoints to walk or to POST.\r\ns2 - Random Walk. This creature will randomly walk a small patrol area via the RandomWalk() function.\r\ns3 - Sit. The creature will sit on the ground instead of standing (provided he has a sitting animation).\r\ns4 - No Regeneration. The Creature will not regenerate hitpoints. Note, this does NOT prevent a creature who regenerates naturally or due to some other source from regenerating.\r\ns5 - Only at day. Only spawn this creature during dawn or day.\r\ns6 - Only at night. Only spawn this creature during dusk or night.\r\nb## - Begin Time. Spawn in at this time.\r\ne## - End Time - Spawn out at this time.\r\n(note: do not use e or b with s5 or s6)\r\nt## - Territroy. If the creature goes outside of this territory range it will teleport back to the spawn point when not in combat. NOTE: Can NOT be set below 30 meters. If set below 30 meters it will default to 30."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 5,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "This is the default waypoint you may place to set a Spawn point for the BESIE PW Spawner tool.\r\n1. Place a PW Spawner tool anywhere in the area.\r\n2. Set all other parameters on the PW Spawner tool according to the instructions found in the comments sections on that tool.\r\n3. Change the tag of this waypoint to match the Will Save number of the tool. ie. if the Will Save of the PW Spawner is 2 then change the tag of this Waypoint to \"PWS02\"\r\n4. Add any special behavior designators to the end of the tag ie. \"PWS02s2s1\". See the following table for behavior designators:\r\n\r\nBehavior designators:\r\ns1 - Do not return to spawn point after chasing an enemy (or moving for any other reason). This should be set if the creature spawned here has waypoints to walk or to POST.\r\ns2 - Random Walk. This creature will randomly walk a small patrol area via the RandomWalk() function.\r\ns3 - Sit. The creature will sit on the ground instead of standing (provided he has a sitting animation).\r\ns4 - No Regeneration. The Creature will not regenerate hitpoints. Note, this does NOT prevent a creature who regenerates naturally or due to some other source from regenerating.\r\ns5 - Only at day. Only spawn this creature during dawn or day.\r\ns6 - Only at night. Only spawn this creature during dusk or night.\r\nb## - Begin Time. Spawn in at this time.\r\ne## - End Time - Spawn out at this time.\r\n(note: do not use e or b with s5 or s6)\r\nt## - Territroy. If the creature goes outside of this territory range it will teleport back to the spawn point when not in combat. NOTE: Can NOT be set below 30 meters. If set below 30 meters it will default to 30."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 5,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "This is the default waypoint you may place to set a Spawn point for the BESIE PW Spawner tool.\r\n1. Place a PW Spawner tool anywhere in the area.\r\n2. Set all other parameters on the PW Spawner tool according to the instructions found in the comments sections on that tool.\r\n3. Change the tag of this waypoint to match the Will Save number of the tool. ie. if the Will Save of the PW Spawner is 2 then change the tag of this Waypoint to \"PWS02\"\r\n4. Add any special behavior designators to the end of the tag ie. \"PWS02s2s1\". See the following table for behavior designators:\r\n\r\nBehavior designators:\r\ns1 - Do not return to spawn point after chasing an enemy (or moving for any other reason). This should be set if the creature spawned here has waypoints to walk or to POST.\r\ns2 - Random Walk. This creature will randomly walk a small patrol area via the RandomWalk() function.\r\ns3 - Sit. The creature will sit on the ground instead of standing (provided he has a sitting animation).\r\ns4 - No Regeneration. The Creature will not regenerate hitpoints. Note, this does NOT prevent a creature who regenerates naturally or due to some other source from regenerating.\r\ns5 - Only at day. Only spawn this creature during dawn or day.\r\ns6 - Only at night. Only spawn this creature during dusk or night.\r\nb## - Begin Time. Spawn in at this time.\r\ne## - End Time - Spawn out at this time.\r\n(note: do not use e or b with s5 or s6)\r\nt## - Territroy. If the creature goes outside of this territory range it will teleport back to the spawn point when not in combat. NOTE: Can NOT be set below 30 meters. If set below 30 meters it will default to 30."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 5,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "This is the default waypoint you may place to set a Spawn point for the BESIE PW Spawner tool.\r\n1. Place a PW Spawner tool anywhere in the area.\r\n2. Set all other parameters on the PW Spawner tool according to the instructions found in the comments sections on that tool.\r\n3. Change the tag of this waypoint to match the Will Save number of the tool. ie. if the Will Save of the PW Spawner is 2 then change the tag of this Waypoint to \"PWS02\"\r\n4. Add any special behavior designators to the end of the tag ie. \"PWS02s2s1\". See the following table for behavior designators:\r\n\r\nBehavior designators:\r\ns1 - Do not return to spawn point after chasing an enemy (or moving for any other reason). This should be set if the creature spawned here has waypoints to walk or to POST.\r\ns2 - Random Walk. This creature will randomly walk a small patrol area via the RandomWalk() function.\r\ns3 - Sit. The creature will sit on the ground instead of standing (provided he has a sitting animation).\r\ns4 - No Regeneration. The Creature will not regenerate hitpoints. Note, this does NOT prevent a creature who regenerates naturally or due to some other source from regenerating.\r\ns5 - Only at day. Only spawn this creature during dawn or day.\r\ns6 - Only at night. Only spawn this creature during dusk or night.\r\nb## - Begin Time. Spawn in at this time.\r\ne## - End Time - Spawn out at this time.\r\n(note: do not use e or b with s5 or s6)\r\nt## - Territroy. If the creature goes outside of this territory range it will teleport back to the spawn point when not in combat. NOTE: Can NOT be set below 30 meters. If set below 30 meters it will default to 30."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 5,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "This is the default waypoint you may place to set a Spawn point for the BESIE PW Spawner tool.\r\n1. Place a PW Spawner tool anywhere in the area.\r\n2. Set all other parameters on the PW Spawner tool according to the instructions found in the comments sections on that tool.\r\n3. Change the tag of this waypoint to match the Will Save number of the tool. ie. if the Will Save of the PW Spawner is 2 then change the tag of this Waypoint to \"PWS02\"\r\n4. Add any special behavior designators to the end of the tag ie. \"PWS02s2s1\". See the following table for behavior designators:\r\n\r\nBehavior designators:\r\ns1 - Do not return to spawn point after chasing an enemy (or moving for any other reason). This should be set if the creature spawned here has waypoints to walk or to POST.\r\ns2 - Random Walk. This creature will randomly walk a small patrol area via the RandomWalk() function.\r\ns3 - Sit. The creature will sit on the ground instead of standing (provided he has a sitting animation).\r\ns4 - No Regeneration. The Creature will not regenerate hitpoints. Note, this does NOT prevent a creature who regenerates naturally or due to some other source from regenerating.\r\ns5 - Only at day. Only spawn this creature during dawn or day.\r\ns6 - Only at night. Only spawn this creature during dusk or night.\r\nb## - Begin Time. Spawn in at this time.\r\ne## - End Time - Spawn out at this time.\r\n(note: do not use e or b with s5 or s6)\r\nt## - Territroy. If the creature goes outside of this territory range it will teleport back to the spawn point when not in combat. NOTE: Can NOT be set below 30 meters. If set below 30 meters it will default to 30."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 5,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "This is the default waypoint you may place to set a Spawn point for the BESIE PW Spawner tool.\r\n1. Place a PW Spawner tool anywhere in the area.\r\n2. Set all other parameters on the PW Spawner tool according to the instructions found in the comments sections on that tool.\r\n3. Change the tag of this waypoint to match the Will Save number of the tool. ie. if the Will Save of the PW Spawner is 2 then change the tag of this Waypoint to \"PWS02\"\r\n4. Add any special behavior designators to the end of the tag ie. \"PWS02s2s1\". See the following table for behavior designators:\r\n\r\nBehavior designators:\r\ns1 - Do not return to spawn point after chasing an enemy (or moving for any other reason). This should be set if the creature spawned here has waypoints to walk or to POST.\r\ns2 - Random Walk. This creature will randomly walk a small patrol area via the RandomWalk() function.\r\ns3 - Sit. The creature will sit on the ground instead of standing (provided he has a sitting animation).\r\ns4 - No Regeneration. The Creature will not regenerate hitpoints. Note, this does NOT prevent a creature who regenerates naturally or due to some other source from regenerating.\r\ns5 - Only at day. Only spawn this creature during dawn or day.\r\ns6 - Only at night. Only spawn this creature during dusk or night.\r\nb## - Begin Time. Spawn in at this time.\r\ne## - End Time - Spawn out at this time.\r\n(note: do not use e or b with s5 or s6)\r\nt## - Territroy. If the creature goes outside of this territory range it will teleport back to the spawn point when not in combat. NOTE: Can NOT be set below 30 meters. If set below 30 meters it will default to 30."
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 5,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "This is the default waypoint you may place to set a Spawn point for the BESIE PW Spawner tool.\r\n1. Place a PW Spawner tool anywhere in the area.\r\n2. Set all other parameters on the PW Spawner tool according to the instructions found in the comments sections on that tool.\r\n3. Change the tag of this waypoint to match the Will Save number of the tool. ie. if the Will Save of the PW Spawner is 2 then change the tag of this Waypoint to \"PWS02\"\r\n4. Add any special behavior designators to the end of the tag ie. \"PWS02s2s1\". See the following table for behavior designators:\r\n\r\nBehavior designators:\r\ns1 - Do not return to spawn point after chasing an enemy (or moving for any other reason). This should be set if the creature spawned here has waypoints to walk or to POST.\r\ns2 - Random Walk. This creature will randomly walk a small patrol area via the RandomWalk() function.\r\ns3 - Sit. The creature will sit on the ground instead of standing (provided he has a sitting animation).\r\ns4 - No Regeneration. The Creature will not regenerate hitpoints. Note, this does NOT prevent a creature who regenerates naturally or due to some other source from regenerating.\r\ns5 - Only at day. Only spawn this creature during dawn or day.\r\ns6 - Only at night. Only spawn this creature during dusk or night.\r\nb## - Begin Time. Spawn in at this time.\r\ne## - End Time - Spawn out at this time.\r\n(note: do not use e or b with s5 or s6)\r\nt## - Territroy. If the creature goes outside of this territory range it will teleport back to the spawn point when not in combat. NOTE: Can NOT be set below 30 meters. If set below 30 meters it will default to 30."
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -9,6 +9,13 @@
|
||||
"type": "cexostring",
|
||||
"value": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 4,
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Annihilus"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -725,6 +725,83 @@
|
||||
"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": {
|
||||
@ -3540,233 +3617,6 @@
|
||||
"value": 9.5367431640625e-006
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 9,
|
||||
"AnimationState": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"Appearance": {
|
||||
"type": "dword",
|
||||
"value": 157
|
||||
},
|
||||
"AutoRemoveKey": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"Bearing": {
|
||||
"type": "float",
|
||||
"value": -0.0
|
||||
},
|
||||
"BodyBag": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"CloseLockDC": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"Conversation": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"CurrentHP": {
|
||||
"type": "short",
|
||||
"value": 10
|
||||
},
|
||||
"Description": {
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
"0": ""
|
||||
}
|
||||
},
|
||||
"DisarmDC": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"Faction": {
|
||||
"type": "dword",
|
||||
"value": 1
|
||||
},
|
||||
"Fort": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Hardness": {
|
||||
"type": "byte",
|
||||
"value": 5
|
||||
},
|
||||
"HasInventory": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"HP": {
|
||||
"type": "short",
|
||||
"value": 10
|
||||
},
|
||||
"Interruptable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"KeyName": {
|
||||
"type": "cexostring",
|
||||
"value": ""
|
||||
},
|
||||
"KeyRequired": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"Lockable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Locked": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"LocName": {
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
"0": "Commoner Spawner"
|
||||
}
|
||||
},
|
||||
"OnClick": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"OnClosed": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"OnDamaged": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"OnDeath": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"OnDisarm": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"OnHeartbeat": {
|
||||
"type": "resref",
|
||||
"value": "re_commonspwnrhb"
|
||||
},
|
||||
"OnInvDisturbed": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"OnLock": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"OnMeleeAttacked": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"OnOpen": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"OnSpellCastAt": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"OnTrapTriggered": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"OnUnlock": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"OnUsed": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"OnUserDefined": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"OpenLockDC": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"Plot": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"PortraitId": {
|
||||
"type": "word",
|
||||
"value": 515
|
||||
},
|
||||
"Ref": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Static": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Tag": {
|
||||
"type": "cexostring",
|
||||
"value": "re_b0e0"
|
||||
},
|
||||
"TemplateResRef": {
|
||||
"type": "resref",
|
||||
"value": "commonerspawner"
|
||||
},
|
||||
"TrapDetectable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"TrapDetectDC": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"TrapDisarmable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"TrapFlag": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"TrapOneShot": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"TrapType": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"Type": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"Useable": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"Will": {
|
||||
"type": "byte",
|
||||
"value": 6
|
||||
},
|
||||
"X": {
|
||||
"type": "float",
|
||||
"value": 29.35725784301758
|
||||
},
|
||||
"Y": {
|
||||
"type": "float",
|
||||
"value": 11.43533039093018
|
||||
},
|
||||
"Z": {
|
||||
"type": "float",
|
||||
"value": 0.009999409317970276
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 9,
|
||||
"AnimationState": {
|
||||
@ -4942,66 +4792,6 @@
|
||||
"type": "float",
|
||||
"value": -5.7220458984375e-006
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 5,
|
||||
"Appearance": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Description": {
|
||||
"type": "cexolocstring",
|
||||
"value": {}
|
||||
},
|
||||
"HasMapNote": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"LinkedTo": {
|
||||
"type": "cexostring",
|
||||
"value": ""
|
||||
},
|
||||
"LocalizedName": {
|
||||
"id": 14817,
|
||||
"type": "cexolocstring",
|
||||
"value": {}
|
||||
},
|
||||
"MapNote": {
|
||||
"type": "cexolocstring",
|
||||
"value": {}
|
||||
},
|
||||
"MapNoteEnabled": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Tag": {
|
||||
"type": "cexostring",
|
||||
"value": "wp_portal_start"
|
||||
},
|
||||
"TemplateResRef": {
|
||||
"type": "resref",
|
||||
"value": "nw_waypoint001"
|
||||
},
|
||||
"XOrientation": {
|
||||
"type": "float",
|
||||
"value": -0.07357039302587509
|
||||
},
|
||||
"XPosition": {
|
||||
"type": "float",
|
||||
"value": 13.59123420715332
|
||||
},
|
||||
"YOrientation": {
|
||||
"type": "float",
|
||||
"value": -0.9972900152206421
|
||||
},
|
||||
"YPosition": {
|
||||
"type": "float",
|
||||
"value": 15.8717794418335
|
||||
},
|
||||
"ZPosition": {
|
||||
"type": "float",
|
||||
"value": -5.7220458984375e-006
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1703,7 +1703,7 @@
|
||||
},
|
||||
"Mod_Entry_Area": {
|
||||
"type": "resref",
|
||||
"value": "cityofbaleas"
|
||||
"value": "starting_area"
|
||||
},
|
||||
"Mod_Entry_Dir_X": {
|
||||
"type": "float",
|
||||
@ -1715,15 +1715,15 @@
|
||||
},
|
||||
"Mod_Entry_X": {
|
||||
"type": "float",
|
||||
"value": 154.0
|
||||
"value": 18.49996757507324
|
||||
},
|
||||
"Mod_Entry_Y": {
|
||||
"type": "float",
|
||||
"value": 80.0
|
||||
"value": 14.86960029602051
|
||||
},
|
||||
"Mod_Entry_Z": {
|
||||
"type": "float",
|
||||
"value": 1.0
|
||||
"value": -5.7220458984375e-006
|
||||
},
|
||||
"Mod_Expan_List": {
|
||||
"type": "list",
|
||||
|
@ -16101,6 +16101,82 @@
|
||||
"LIST": {
|
||||
"type": "list",
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"CR": {
|
||||
"type": "float",
|
||||
"value": 2.0
|
||||
},
|
||||
"FACTION": {
|
||||
"type": "cexostring",
|
||||
"value": "Commoner"
|
||||
},
|
||||
"NAME": {
|
||||
"type": "cexostring",
|
||||
"value": "Commoner: Elf Female 01"
|
||||
},
|
||||
"RESREF": {
|
||||
"type": "resref",
|
||||
"value": "npc_com_el_f001"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"CR": {
|
||||
"type": "float",
|
||||
"value": 2.0
|
||||
},
|
||||
"FACTION": {
|
||||
"type": "cexostring",
|
||||
"value": "Commoner"
|
||||
},
|
||||
"NAME": {
|
||||
"type": "cexostring",
|
||||
"value": "Commoner: Elf Female 02"
|
||||
},
|
||||
"RESREF": {
|
||||
"type": "resref",
|
||||
"value": "npc_com_el_f002"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"CR": {
|
||||
"type": "float",
|
||||
"value": 2.0
|
||||
},
|
||||
"FACTION": {
|
||||
"type": "cexostring",
|
||||
"value": "Commoner"
|
||||
},
|
||||
"NAME": {
|
||||
"type": "cexostring",
|
||||
"value": "Commoner: Male Elf 01"
|
||||
},
|
||||
"RESREF": {
|
||||
"type": "resref",
|
||||
"value": "npc_com_el_m001"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"CR": {
|
||||
"type": "float",
|
||||
"value": 2.0
|
||||
},
|
||||
"FACTION": {
|
||||
"type": "cexostring",
|
||||
"value": "Commoner"
|
||||
},
|
||||
"NAME": {
|
||||
"type": "cexostring",
|
||||
"value": "Commoner: Male Elf 02"
|
||||
},
|
||||
"RESREF": {
|
||||
"type": "resref",
|
||||
"value": "npc_com_el_m002"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"CR": {
|
||||
@ -16732,6 +16808,25 @@
|
||||
"value": "antony"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"CR": {
|
||||
"type": "float",
|
||||
"value": 7.0
|
||||
},
|
||||
"FACTION": {
|
||||
"type": "cexostring",
|
||||
"value": "Defender"
|
||||
},
|
||||
"NAME": {
|
||||
"type": "cexostring",
|
||||
"value": "Baleas Town Guard"
|
||||
},
|
||||
"RESREF": {
|
||||
"type": "resref",
|
||||
"value": "npc_baleasgrd001"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"CR": {
|
||||
@ -17283,6 +17378,25 @@
|
||||
"value": "gerald"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"CR": {
|
||||
"type": "float",
|
||||
"value": 17.0
|
||||
},
|
||||
"FACTION": {
|
||||
"type": "cexostring",
|
||||
"value": "Defender"
|
||||
},
|
||||
"NAME": {
|
||||
"type": "cexostring",
|
||||
"value": "Goldeye Paladin"
|
||||
},
|
||||
"RESREF": {
|
||||
"type": "resref",
|
||||
"value": "npc_goldeye001"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"CR": {
|
||||
@ -21916,6 +22030,25 @@
|
||||
"LIST": {
|
||||
"type": "list",
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"CR": {
|
||||
"type": "float",
|
||||
"value": 12.0
|
||||
},
|
||||
"FACTION": {
|
||||
"type": "cexostring",
|
||||
"value": "Merchant"
|
||||
},
|
||||
"NAME": {
|
||||
"type": "cexostring",
|
||||
"value": "Annihilus"
|
||||
},
|
||||
"RESREF": {
|
||||
"type": "resref",
|
||||
"value": "npc_annihilus"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"CR": {
|
||||
@ -28766,25 +28899,6 @@
|
||||
"value": "nw_ac_cobra40"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"CR": {
|
||||
"type": "float",
|
||||
"value": 6.0
|
||||
},
|
||||
"FACTION": {
|
||||
"type": "cexostring",
|
||||
"value": "Commoner"
|
||||
},
|
||||
"NAME": {
|
||||
"type": "cexostring",
|
||||
"value": "Commoner"
|
||||
},
|
||||
"RESREF": {
|
||||
"type": "resref",
|
||||
"value": "felf"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"CR": {
|
||||
@ -28861,25 +28975,6 @@
|
||||
"value": "fhalforc"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"CR": {
|
||||
"type": "float",
|
||||
"value": 6.0
|
||||
},
|
||||
"FACTION": {
|
||||
"type": "cexostring",
|
||||
"value": "Commoner"
|
||||
},
|
||||
"NAME": {
|
||||
"type": "cexostring",
|
||||
"value": "Commoner"
|
||||
},
|
||||
"RESREF": {
|
||||
"type": "resref",
|
||||
"value": "melf"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"CR": {
|
||||
|
@ -14,6 +14,22 @@
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"LIST": {
|
||||
"type": "list",
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"NAME": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door"
|
||||
},
|
||||
"RESREF": {
|
||||
"type": "resref",
|
||||
"value": "barred_door"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"STRREF": {
|
||||
"type": "dword",
|
||||
"value": 6688
|
||||
|
@ -2450,6 +2450,17 @@
|
||||
"value": 12862
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"NAME": {
|
||||
"type": "cexostring",
|
||||
"value": "Large Shield +1"
|
||||
},
|
||||
"RESREF": {
|
||||
"type": "resref",
|
||||
"value": "ra_ashlmwhite001"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"RESREF": {
|
||||
@ -33533,6 +33544,17 @@
|
||||
"value": 16807580
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"NAME": {
|
||||
"type": "cexostring",
|
||||
"value": "Maul +1"
|
||||
},
|
||||
"RESREF": {
|
||||
"type": "resref",
|
||||
"value": "ra_wmblmu_001"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"RESREF": {
|
||||
|
@ -10921,17 +10921,6 @@
|
||||
"value": "codi_sam_altar"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"NAME": {
|
||||
"type": "cexostring",
|
||||
"value": "BESIE RES"
|
||||
},
|
||||
"RESREF": {
|
||||
"type": "resref",
|
||||
"value": "randomencounters"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"RESREF": {
|
||||
@ -11086,17 +11075,6 @@
|
||||
"value": 14729
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"NAME": {
|
||||
"type": "cexostring",
|
||||
"value": "Commoner Spawner"
|
||||
},
|
||||
"RESREF": {
|
||||
"type": "resref",
|
||||
"value": "commonerspawner"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"RESREF": {
|
||||
@ -11108,50 +11086,6 @@
|
||||
"value": 16811960
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"NAME": {
|
||||
"type": "cexostring",
|
||||
"value": "MMORPG Spawner"
|
||||
},
|
||||
"RESREF": {
|
||||
"type": "resref",
|
||||
"value": "mmorpgspawner"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"NAME": {
|
||||
"type": "cexostring",
|
||||
"value": "Placeable Spawner"
|
||||
},
|
||||
"RESREF": {
|
||||
"type": "resref",
|
||||
"value": "placeablerespawn"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"NAME": {
|
||||
"type": "cexostring",
|
||||
"value": "PW RES"
|
||||
},
|
||||
"RESREF": {
|
||||
"type": "resref",
|
||||
"value": "besiepwres"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"NAME": {
|
||||
"type": "cexostring",
|
||||
"value": "PW Respawner"
|
||||
},
|
||||
"RESREF": {
|
||||
"type": "resref",
|
||||
"value": "pwrespawner"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"RESREF": {
|
||||
@ -17161,6 +17095,77 @@
|
||||
"type": "byte",
|
||||
"value": 2
|
||||
},
|
||||
"LIST": {
|
||||
"type": "list",
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"NAME": {
|
||||
"type": "cexostring",
|
||||
"value": "BESIE RES"
|
||||
},
|
||||
"RESREF": {
|
||||
"type": "resref",
|
||||
"value": "randomencounters"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"NAME": {
|
||||
"type": "cexostring",
|
||||
"value": "Commoner Spawner"
|
||||
},
|
||||
"RESREF": {
|
||||
"type": "resref",
|
||||
"value": "commonerspawner"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"NAME": {
|
||||
"type": "cexostring",
|
||||
"value": "MMORPG Spawner"
|
||||
},
|
||||
"RESREF": {
|
||||
"type": "resref",
|
||||
"value": "mmorpgspawner"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"NAME": {
|
||||
"type": "cexostring",
|
||||
"value": "Placeable Spawner"
|
||||
},
|
||||
"RESREF": {
|
||||
"type": "resref",
|
||||
"value": "placeablerespawn"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"NAME": {
|
||||
"type": "cexostring",
|
||||
"value": "PW RES"
|
||||
},
|
||||
"RESREF": {
|
||||
"type": "resref",
|
||||
"value": "besiepwres"
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"NAME": {
|
||||
"type": "cexostring",
|
||||
"value": "PW Respawner"
|
||||
},
|
||||
"RESREF": {
|
||||
"type": "resref",
|
||||
"value": "pwrespawner"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"STRREF": {
|
||||
"type": "dword",
|
||||
"value": 6690
|
||||
|
BIN
_module/ncs/ar_barredoor_f2o.ncs
Normal file
BIN
_module/ncs/ar_barredoor_f2o.ncs
Normal file
Binary file not shown.
BIN
_module/ncs/at_caplvlup.ncs
Normal file
BIN
_module/ncs/at_caplvlup.ncs
Normal file
Binary file not shown.
BIN
_module/ncs/dante_letodel_at.ncs
Normal file
BIN
_module/ncs/dante_letodel_at.ncs
Normal file
Binary file not shown.
BIN
_module/ncs/door_area_trans.ncs
Normal file
BIN
_module/ncs/door_area_trans.ncs
Normal file
Binary file not shown.
BIN
_module/ncs/ds_closedoors.ncs
Normal file
BIN
_module/ncs/ds_closedoors.ncs
Normal file
Binary file not shown.
Binary file not shown.
BIN
_module/ncs/ra_bal_grd_onspw.ncs
Normal file
BIN
_module/ncs/ra_bal_grd_onspw.ncs
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
_module/ncs/se_door_death.ncs
Normal file
BIN
_module/ncs/se_door_death.ncs
Normal file
Binary file not shown.
185
_module/nss/_inc_battlecry_.nss
Normal file
185
_module/nss/_inc_battlecry_.nss
Normal file
@ -0,0 +1,185 @@
|
||||
///////////////////////////////////
|
||||
// Carcerian's BattleCry Script //
|
||||
// "Evil Dead" Edition //
|
||||
///////////////////////////////////
|
||||
|
||||
#include "NW_I0_GENERIC"
|
||||
|
||||
const int BattleCryChance = 15;
|
||||
const int CombatCryChance = 20;
|
||||
const int DeathCryChance = 20;
|
||||
const int CustomUndeadChance = 50;
|
||||
|
||||
const string COLOR_RED = "<cþ >";
|
||||
const string COLOR_DARK = "<cSSS>";
|
||||
const string COLOR_GREEN = "<c þ >";
|
||||
const string COLOR_WHITE = "<cþþþ>";
|
||||
const string COLOR_VIOLET = "<c¥ ¥>";
|
||||
const string COLOR_YELLOW = "<cþþ >";
|
||||
|
||||
int HasSpoken()
|
||||
{
|
||||
if (GetLocalInt(OBJECT_SELF,"HASSPOKEN")) return 1;
|
||||
SetLocalInt(OBJECT_SELF,"HASSPOKEN",1);
|
||||
DelayCommand(IntToFloat(d10(4)),SetLocalInt(OBJECT_SELF,"HASSPOKEN",0));
|
||||
return 0;
|
||||
}
|
||||
|
||||
void DoUndeadChatter()
|
||||
{
|
||||
string sMyTag = GetTag(OBJECT_SELF);
|
||||
if ((FindSubString(sMyTag,"SKEL")>-1)||(FindSubString(sMyTag,"MOHRG")>-1))
|
||||
{
|
||||
switch (d3()) // Skeletons
|
||||
{
|
||||
case 1 : ActionSpeakString(COLOR_WHITE+"I got a bone to pick with you!",TALKVOLUME_TALK); break;
|
||||
case 2 : ActionSpeakString(COLOR_WHITE+"Forward, you worthless bags of bones!",TALKVOLUME_TALK); break;
|
||||
case 3 : ActionSpeakString(COLOR_WHITE+"CHARGE!",TALKVOLUME_TALK); break;
|
||||
}
|
||||
}
|
||||
else if (FindSubString(sMyTag,"ZOMB")>-1)
|
||||
{
|
||||
if (Random(2)) ActionSpeakString(COLOR_GREEN+"Brains!",TALKVOLUME_TALK);
|
||||
else ActionSpeakString(COLOR_GREEN+"BRAINS!",TALKVOLUME_TALK);
|
||||
// "More brains!"
|
||||
}
|
||||
else if ((FindSubString(sMyTag,"GHOUL")>-1)||(FindSubString(sMyTag,"GHAST")>-1)
|
||||
||(FindSubString(sMyTag,"WIGHT")>-1))
|
||||
{
|
||||
switch (d4()) // Flesh Eaters
|
||||
{
|
||||
case 1 : ActionSpeakString(COLOR_GREEN+"I'll feast on your entrails!",TALKVOLUME_TALK); break;
|
||||
case 2 : ActionSpeakString(COLOR_GREEN+"FOOD!",TALKVOLUME_TALK); break;
|
||||
case 3 : ActionSpeakString(COLOR_GREEN+"Live ones!!",TALKVOLUME_TALK); break;
|
||||
case 4 : ActionSpeakString(COLOR_GREEN+"FLESSSSHHHH!!!",TALKVOLUME_TALK); break;
|
||||
}
|
||||
}
|
||||
else if ((FindSubString(sMyTag,"WRAITH")>-1)||(FindSubString(sMyTag,"ALLIP")>-1)
|
||||
||(FindSubString(sMyTag,"Bodak")>-1)||(FindSubString(sMyTag,"SHADOW")>-1)
|
||||
||(FindSubString(sMyTag,"SHFIEND")>-1)||(FindSubString(sMyTag,"SPECTRE")>-1))
|
||||
{
|
||||
switch (d4()) // Soul Eaters
|
||||
{
|
||||
case 1 : ActionSpeakString(COLOR_VIOLET+"I'll swallow your soul!",TALKVOLUME_TALK); break;
|
||||
case 2 : ActionSpeakString(COLOR_VIOLET+"Your soul will be mine!",TALKVOLUME_TALK); break;
|
||||
case 3 : ActionSpeakString(COLOR_VIOLET+"Mine!!!!",TALKVOLUME_TALK); break;
|
||||
case 4 : ActionSpeakString(COLOR_VIOLET+"The darkness calls for you...",TALKVOLUME_TALK); break;
|
||||
}
|
||||
}
|
||||
else switch (d6()) // Generic Undead
|
||||
{
|
||||
case 1 : ActionSpeakString(COLOR_RED+"I'll swallow your soul!",TALKVOLUME_TALK); break;
|
||||
case 2 : ActionSpeakString(COLOR_RED+"Blood and souls!",TALKVOLUME_TALK); break;
|
||||
case 3 : ActionSpeakString(COLOR_RED+"Joinnnn usssssssss!",TALKVOLUME_TALK); break;
|
||||
case 4 : ActionSpeakString(COLOR_RED+"For the Master!",TALKVOLUME_TALK); break;
|
||||
case 5 : ActionSpeakString(COLOR_RED+"For the Master!",TALKVOLUME_TALK); break;
|
||||
case 6 : ActionSpeakString(COLOR_RED+"One by one we will take you!",TALKVOLUME_TALK); break;
|
||||
}
|
||||
}
|
||||
|
||||
// For use on perception
|
||||
void DoBattleCry()
|
||||
{ //if undead spotted "i see dead people!" "Dead ahead!"
|
||||
if (d100()<=BattleCryChance)
|
||||
{
|
||||
if (HasSpoken()) return;
|
||||
if ((GetRacialType(OBJECT_SELF) == RACIAL_TYPE_UNDEAD)&&(d100()<=CustomUndeadChance))
|
||||
{
|
||||
DoUndeadChatter();
|
||||
}
|
||||
else switch (d10())
|
||||
{
|
||||
case 1: PlayVoiceChat(VOICE_CHAT_ATTACK); break;
|
||||
case 2: PlayVoiceChat(VOICE_CHAT_BATTLECRY1); break;
|
||||
case 3: PlayVoiceChat(VOICE_CHAT_BATTLECRY2); break;
|
||||
case 4: PlayVoiceChat(VOICE_CHAT_BATTLECRY3); break;
|
||||
case 5: PlayVoiceChat(VOICE_CHAT_THREATEN); break;
|
||||
case 6: PlayVoiceChat(VOICE_CHAT_TAUNT); break;
|
||||
case 7: PlayVoiceChat(VOICE_CHAT_ENEMIES); break;
|
||||
case 8: PlayVoiceChat(VOICE_CHAT_CHEER); break;
|
||||
case 9: PlayVoiceChat(VOICE_CHAT_FOLLOWME); break;
|
||||
case 10: PlayVoiceChat(VOICE_CHAT_LOOKHERE); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//For End of Combat Round
|
||||
void DoCombatCry()
|
||||
{
|
||||
if (GetHasEffect(EFFECT_TYPE_FRIGHTENED))
|
||||
{
|
||||
if (d100()<=CombatCryChance)
|
||||
{
|
||||
if (HasSpoken()) return;
|
||||
if ((GetRacialType(OBJECT_SELF) == RACIAL_TYPE_UNDEAD)&&(d100()<=CustomUndeadChance))
|
||||
switch (d6()) //Turned undead :)
|
||||
{
|
||||
case 1 : ActionSpeakString(COLOR_YELLOW+"It Burns! It Burns!",TALKVOLUME_TALK); break;
|
||||
case 2 : ActionSpeakString(COLOR_YELLOW+"Cursed Light!",TALKVOLUME_TALK); break;
|
||||
case 3 : ActionSpeakString(COLOR_YELLOW+"Your faith is weak, I can feel your fear...",TALKVOLUME_TALK); break;
|
||||
case 4 : ActionSpeakString(COLOR_YELLOW+"AAAIIIEEE!!!",TALKVOLUME_TALK); break;
|
||||
case 5 : ActionSpeakString(COLOR_YELLOW+"NOOO!!!",TALKVOLUME_TALK); break;
|
||||
case 6 : ActionSpeakString(COLOR_YELLOW+"It Burns!",TALKVOLUME_TALK); break;
|
||||
}
|
||||
else switch (d6())
|
||||
{
|
||||
case 1: PlayVoiceChat(VOICE_CHAT_FLEE); break;
|
||||
case 2: PlayVoiceChat(VOICE_CHAT_HELP); break;
|
||||
case 3: PlayVoiceChat(VOICE_CHAT_GUARDME); break;
|
||||
case 4: PlayVoiceChat(VOICE_CHAT_CUSS); break;
|
||||
case 5: PlayVoiceChat(VOICE_CHAT_BADIDEA); break;
|
||||
case 6: PlayVoiceChat(VOICE_CHAT_NEARDEATH); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (d100()<=CombatCryChance)
|
||||
{
|
||||
if (HasSpoken()) return;
|
||||
if ((GetRacialType(OBJECT_SELF) == RACIAL_TYPE_UNDEAD)&&(d100()<=CustomUndeadChance))
|
||||
switch (d6())
|
||||
{
|
||||
DoUndeadChatter();
|
||||
}
|
||||
else switch (d6())
|
||||
{
|
||||
case 1: PlayVoiceChat(VOICE_CHAT_BATTLECRY1); break;
|
||||
case 2: PlayVoiceChat(VOICE_CHAT_BATTLECRY2); break;
|
||||
case 3: PlayVoiceChat(VOICE_CHAT_BATTLECRY3); break;
|
||||
case 4: PlayVoiceChat(VOICE_CHAT_LAUGH); break;
|
||||
case 5: PlayVoiceChat(VOICE_CHAT_TAUNT); break;
|
||||
case 6: PlayVoiceChat(VOICE_CHAT_THREATEN); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//For Creature Death
|
||||
void DoDeathCry()
|
||||
{
|
||||
if (d100()<=DeathCryChance)
|
||||
{
|
||||
if (HasSpoken()) return;
|
||||
if ((GetRacialType(OBJECT_SELF) == RACIAL_TYPE_UNDEAD)&&(d100()<=CustomUndeadChance))
|
||||
switch (d6())
|
||||
{
|
||||
case 1 : ActionSpeakString(COLOR_RED+"Dead by dawn! Dead by dawn!",TALKVOLUME_TALK); break;
|
||||
case 2 : ActionSpeakString(COLOR_RED+"Death is only the beginning!",TALKVOLUME_TALK); break;
|
||||
case 3 : ActionSpeakString(COLOR_RED+"Darkness take me...",TALKVOLUME_TALK); break;
|
||||
case 4 : ActionSpeakString(COLOR_RED+"Free at last...",TALKVOLUME_TALK); break;
|
||||
case 5 : ActionSpeakString(COLOR_RED+"Time to die...",TALKVOLUME_TALK); break;
|
||||
case 6 : ActionSpeakString(COLOR_RED+"Thank you...",TALKVOLUME_TALK); break;
|
||||
} // "No more tears..."
|
||||
else switch (d6())
|
||||
{
|
||||
case 1: PlayVoiceChat(VOICE_CHAT_CUSS); break;
|
||||
case 2: PlayVoiceChat(VOICE_CHAT_DEATH); break;
|
||||
case 3: PlayVoiceChat(VOICE_CHAT_NEARDEATH); break;
|
||||
case 4: PlayVoiceChat(VOICE_CHAT_GOODBYE); break;
|
||||
case 5: PlayVoiceChat(VOICE_CHAT_LAUGH); break;
|
||||
case 6: PlayVoiceChat(VOICE_CHAT_HEALME); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
//void main (){}
|
200
_module/nss/_inc_livingdead_.nss
Normal file
200
_module/nss/_inc_livingdead_.nss
Normal file
@ -0,0 +1,200 @@
|
||||
const float fUnlifespan = 300.0;
|
||||
|
||||
string SpawnOf(object oSpawnKiller = OBJECT_INVALID)
|
||||
{
|
||||
string sSpawn = "";
|
||||
string sKiller = GetName(oSpawnKiller, FALSE);
|
||||
object oLeft = GetItemInSlot(INVENTORY_SLOT_LEFTHAND,oSpawnKiller);
|
||||
object oRight = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oSpawnKiller);
|
||||
string sLeftTag = GetTag(oLeft);
|
||||
string sRightTag = GetTag(oRight);
|
||||
if (!(GetStringRight(sKiller, 6) ==" Spawn") ||
|
||||
!(GetStringRight(sKiller, 6) ==" Rat"))
|
||||
if ((GetIsPC(GetMaster(oSpawnKiller))||(GetIsPC(oSpawnKiller))))
|
||||
{
|
||||
if ((FindSubString(sKiller, "Morg")>-1)||
|
||||
(sRightTag=="vampirespawner")||
|
||||
(sLeftTag=="vampirespawner")) sSpawn = "namechspawn";
|
||||
/* // No Vampires on Athas
|
||||
if ((FindSubString(sKiller, "Vampire")>-1)||(sRightTag=="vampirespawner")||(sLeftTag=="vampirespawner"))
|
||||
{
|
||||
if (GetGender(OBJECT_SELF)==GENDER_FEMALE) sSpawn = "vampirespawn_f";
|
||||
else sSpawn = "vampirespawn_m";
|
||||
} */
|
||||
else if ((FindSubString(sKiller, "Tyrantfog")>-1)||(sRightTag=="tyrantfogspawner")) sSpawn = "zombiespawn";
|
||||
else if (FindSubString(sKiller, "Ghoul")>-1) sSpawn = "ghoulspawn";
|
||||
else if (FindSubString(sKiller, "Ghast")>-1) sSpawn = "ghoulspawn";
|
||||
else if ((FindSubString(sKiller, "Shadow")>-1)||(sRightTag=="shadowspawner")) sSpawn = "shadowspawn";
|
||||
else if (FindSubString(sKiller, "Spectre")>-1) sSpawn = "spectrespawn";
|
||||
else if (FindSubString(sKiller, "Wraith")>-1) sSpawn = "wraithspawn";
|
||||
else if ((FindSubString(sKiller, "Wight")>-1)||(sRightTag=="wightspawner")) sSpawn = "wightspawn";
|
||||
else if (FindSubString(sKiller, "Crypt Chanter")>-1) sSpawn = "wraithspawn";
|
||||
else if (FindSubString(sKiller, "Bleakborn")>-1) sSpawn = "zombiespawn";
|
||||
else if (FindSubString(sKiller, "Bodak")>-1) sSpawn = "zombiespawn";
|
||||
else if (FindSubString(sKiller, "T'liz")>-1) sSpawn = "namechspawn";
|
||||
else if ((FindSubString(sKiller, "Meorty")>-1) ||
|
||||
(FindSubString(sKiller, "Amithrang")>-1)) sSpawn = "namechspawn";
|
||||
}
|
||||
else // Monster Killer
|
||||
{
|
||||
if (FindSubString(sKiller, "Tyrantfog")>-1) sSpawn = "zombiespawn";
|
||||
else if (FindSubString(sKiller, "Ghast")>-1) sSpawn = "ghoulspawn";
|
||||
else if (FindSubString(sKiller, "Ghoul")>-1) sSpawn = "ghoulspawn";
|
||||
else if (((FindSubString(sKiller, "Meorty")>-1) ||
|
||||
(FindSubString(sKiller, "Amithrang")>-1))) sSpawn = "namechspawn";
|
||||
else if (FindSubString(sKiller, "Shadow")>-1) sSpawn = "shadowspawn";
|
||||
else if (FindSubString(sKiller, "Spectre")>-1) sSpawn = "spectrespawn";
|
||||
else if (FindSubString(sKiller, "Crypt Chanter")>-1) sSpawn = "wraithspawn";
|
||||
else if (FindSubString(sKiller, "Bleakborn")>-1) sSpawn = "zombiespawn";
|
||||
else if (FindSubString(sKiller, "Bodak")>-1) sSpawn = "zombiespawn";
|
||||
else if (FindSubString(sKiller, "T'liz")>-1) sSpawn = "namechspawn";
|
||||
else if ((FindSubString(sKiller, "Morg")>-1)||
|
||||
(sRightTag=="vampirespawner")||
|
||||
(sLeftTag=="vampirespawner")) sSpawn = "namechspawn";
|
||||
/* //No Vampires on Athas
|
||||
{
|
||||
if (GetGender(OBJECT_SELF)==GENDER_FEMALE) sSpawn = "vampirespawn_f";
|
||||
else sSpawn = "vampirespawn_m";
|
||||
}*/
|
||||
else if (FindSubString(sKiller, "Wight")>-1) sSpawn = "wightspawn";
|
||||
if (FindSubString(sKiller, "Wraith")>-1) sSpawn = "wraithspawn";
|
||||
}
|
||||
return sSpawn;
|
||||
}
|
||||
|
||||
int ShadeType(object oShadeKiller = OBJECT_INVALID)
|
||||
{
|
||||
int iShade = 0;
|
||||
string sSpawn = "";
|
||||
string sKiller = GetName(oShadeKiller);
|
||||
object oRight = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oShadeKiller);
|
||||
string sRightTag = GetTag(oRight);
|
||||
if ((FindSubString(sKiller, "Shadow")>-1)||(sRightTag=="shadowspawner")) iShade = 1;
|
||||
else if (FindSubString(sKiller, "Spectre")>-1) iShade = 2;
|
||||
if (FindSubString(sKiller, "Wraith")>-1) iShade = 3;
|
||||
return iShade;
|
||||
}
|
||||
|
||||
int IsSpawnable(int iSpawnRace)
|
||||
{
|
||||
int iSpawnable = 0;
|
||||
if ((iSpawnRace == RACIAL_TYPE_ANIMAL)||
|
||||
(iSpawnRace == RACIAL_TYPE_BEAST)||
|
||||
(iSpawnRace == RACIAL_TYPE_MAGICAL_BEAST)||
|
||||
(iSpawnRace == RACIAL_TYPE_SHAPECHANGER)||
|
||||
(iSpawnRace == RACIAL_TYPE_VERMIN)||
|
||||
(iSpawnRace == RACIAL_TYPE_ABERRATION)||
|
||||
(iSpawnRace == RACIAL_TYPE_FEY)||
|
||||
(iSpawnRace == RACIAL_TYPE_GIANT)||
|
||||
(iSpawnRace == RACIAL_TYPE_HUMANOID_GOBLINOID)||
|
||||
(iSpawnRace == RACIAL_TYPE_HUMANOID_MONSTROUS)||
|
||||
(iSpawnRace == RACIAL_TYPE_HUMANOID_ORC)||
|
||||
(iSpawnRace == RACIAL_TYPE_HUMANOID_REPTILIAN)||
|
||||
(iSpawnRace == RACIAL_TYPE_DRAGON)||
|
||||
(iSpawnRace == RACIAL_TYPE_DWARF)||
|
||||
(iSpawnRace == RACIAL_TYPE_ELF)||
|
||||
(iSpawnRace == RACIAL_TYPE_GNOME)||
|
||||
(iSpawnRace == RACIAL_TYPE_HALFELF)||
|
||||
(iSpawnRace == RACIAL_TYPE_HALFLING)||
|
||||
(iSpawnRace == RACIAL_TYPE_HUMAN)||
|
||||
(iSpawnRace == RACIAL_TYPE_HALFORC))
|
||||
iSpawnable = 1;
|
||||
return iSpawnable;
|
||||
}
|
||||
|
||||
int IsNonHuman(int iSpawnRace)
|
||||
{
|
||||
int iSpawnable = 0;
|
||||
if ((iSpawnRace == RACIAL_TYPE_ANIMAL)||
|
||||
(iSpawnRace == RACIAL_TYPE_BEAST)||
|
||||
(iSpawnRace == RACIAL_TYPE_DRAGON)||
|
||||
(iSpawnRace == RACIAL_TYPE_MAGICAL_BEAST)||
|
||||
(iSpawnRace == RACIAL_TYPE_VERMIN)||
|
||||
(iSpawnRace == RACIAL_TYPE_ABERRATION)||
|
||||
(iSpawnRace == RACIAL_TYPE_FEY)||
|
||||
(iSpawnRace == RACIAL_TYPE_GIANT) ||
|
||||
(iSpawnRace == RACIAL_TYPE_HUMANOID_GOBLINOID)||
|
||||
(iSpawnRace == RACIAL_TYPE_HUMANOID_MONSTROUS)||
|
||||
(iSpawnRace == RACIAL_TYPE_HUMANOID_ORC)||
|
||||
(iSpawnRace == RACIAL_TYPE_HUMANOID_REPTILIAN))
|
||||
iSpawnable = 1;
|
||||
return iSpawnable;
|
||||
}
|
||||
|
||||
int UndeadCheck(object oMyKiller)
|
||||
{
|
||||
int iPassed = 0;
|
||||
int iSpawnVFX = VFX_FNF_SUMMON_UNDEAD;
|
||||
object oMyKiller = GetLastKiller();
|
||||
int iRace = GetRacialType(OBJECT_SELF);
|
||||
int iKillerRace = GetRacialType(oMyKiller);
|
||||
int iKillerUndeadClass = GetLevelByClass(CLASS_TYPE_UNDEAD, oMyKiller);
|
||||
object oLeft = GetItemInSlot(INVENTORY_SLOT_LEFTHAND,oMyKiller);
|
||||
object oRight = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oMyKiller);
|
||||
string sLeftTag = GetTag(oLeft);
|
||||
string sRightTag = GetTag(oRight);
|
||||
if ((iKillerRace==RACIAL_TYPE_UNDEAD)
|
||||
||(iKillerUndeadClass>0)
|
||||
||(sRightTag=="tyrantfogspawner")
|
||||
||(sRightTag=="shadowspawner")
|
||||
||(sRightTag=="CR_SLAM_PSISHAD1")
|
||||
||(sLeftTag=="CR_SLAM_PSISHAD1")
|
||||
||(sRightTag=="vampirespawner")
|
||||
||(sLeftTag=="vampirespawner"))
|
||||
if (IsSpawnable(iRace))
|
||||
{
|
||||
string sSpawnStr = SpawnOf(oMyKiller);
|
||||
if (sSpawnStr != "")
|
||||
{
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(iSpawnVFX), OBJECT_SELF);
|
||||
object oSpawn = CreateObject(OBJECT_TYPE_CREATURE, sSpawnStr, GetLocation(OBJECT_SELF));
|
||||
if (GetIsObjectValid(oSpawn)) iPassed = 1;
|
||||
SetPortraitId(oSpawn, GetPortraitId(OBJECT_SELF));
|
||||
if (GetIsPC(GetMaster(oMyKiller))||(GetIsPC(oMyKiller)))
|
||||
{
|
||||
SetName(oSpawn,GetName(OBJECT_SELF,FALSE)+" "+GetName(oSpawn,TRUE));
|
||||
if (GetIsObjectValid(GetMaster(oMyKiller)))
|
||||
AddHenchman(GetMaster(oMyKiller), oSpawn);
|
||||
else AddHenchman(oMyKiller, oSpawn);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetName(oSpawn,GetName(OBJECT_SELF,FALSE)+" "+GetName(oSpawn,TRUE));
|
||||
//if (FindSubString(GetName(OBJECT_SELF)," Spawn")==-1) SetName(GetName(OBJECT_SELF)+ " Spawn");
|
||||
ChangeFaction(oSpawn,oMyKiller);
|
||||
}
|
||||
int iShadeNum = 0;
|
||||
if (IsNonHuman(iRace))
|
||||
{
|
||||
SetCreatureAppearanceType(oSpawn,GetAppearanceType(OBJECT_SELF));
|
||||
iShadeNum = ShadeType(oMyKiller);
|
||||
switch (iShadeNum)
|
||||
{
|
||||
case 1: //dark shadows
|
||||
ApplyEffectToObject(DURATION_TYPE_PERMANENT,SupernaturalEffect(EffectVisualEffect(VFX_DUR_PROT_SHADOW_ARMOR)),oSpawn,7.0);
|
||||
ApplyEffectToObject(DURATION_TYPE_PERMANENT,SupernaturalEffect(EffectVisualEffect(VFX_DUR_GHOST_TRANSPARENT)),oSpawn,7.0);
|
||||
break;
|
||||
case 2: //grey spectre
|
||||
ApplyEffectToObject(DURATION_TYPE_PERMANENT,SupernaturalEffect(EffectVisualEffect(VFX_DUR_GHOST_TRANSPARENT)),oSpawn,7.0);
|
||||
break;
|
||||
case 3: //light wraith
|
||||
ApplyEffectToObject(DURATION_TYPE_PERMANENT,SupernaturalEffect(EffectVisualEffect(VFX_DUR_GLOW_GREY)),oSpawn,7.0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (iShadeNum>0) //Fly off
|
||||
{
|
||||
DelayCommand(fUnlifespan-1.5,ApplyEffectToObject(DURATION_TYPE_PERMANENT,EffectDisappear(), oSpawn));
|
||||
DestroyObject(oSpawn, fUnlifespan);
|
||||
}
|
||||
else // Decay and Disintegrate
|
||||
{
|
||||
DelayCommand(fUnlifespan-1.5,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_IMP_DEATH), oSpawn));
|
||||
DestroyObject(oSpawn, fUnlifespan);
|
||||
}
|
||||
}
|
||||
}
|
||||
return iPassed;
|
||||
}
|
||||
|
||||
//void main() {}
|
458
_module/nss/aps_include.nss
Normal file
458
_module/nss/aps_include.nss
Normal file
@ -0,0 +1,458 @@
|
||||
// Name : Avlis Persistence System include
|
||||
// Purpose : Various APS/NWNX2 related functions
|
||||
// Authors : Ingmar Stieger, Adam Colon, Josh Simon
|
||||
// Modified : December 21, 2003
|
||||
|
||||
// This file is licensed under the terms of the
|
||||
// GNU GENERAL PUBLIC LICENSE (GPL) Version 2
|
||||
|
||||
/************************************/
|
||||
/* Return codes */
|
||||
/************************************/
|
||||
|
||||
int SQL_ERROR = 0;
|
||||
int SQL_SUCCESS = 1;
|
||||
|
||||
/************************************/
|
||||
/* Function prototypes */
|
||||
/************************************/
|
||||
sqlquery last_sql_query;
|
||||
|
||||
// Setup placeholders for ODBC requests and responses
|
||||
void SQLInit();
|
||||
|
||||
// Execute statement in sSQL
|
||||
void SQLExecDirect(string sSQL);
|
||||
|
||||
// Position cursor on next row of the resultset
|
||||
// Call this before using SQLGetData().
|
||||
// returns: SQL_SUCCESS if there is a row
|
||||
// SQL_ERROR if there are no more rows
|
||||
int SQLFetch();
|
||||
|
||||
// * deprecated. Use SQLFetch instead.
|
||||
// Position cursor on first row of the resultset and name it sResultSetName
|
||||
// Call this before using SQLNextRow() and SQLGetData().
|
||||
// returns: SQL_SUCCESS if result set is not empty
|
||||
// SQL_ERROR is result set is empty
|
||||
int SQLFirstRow();
|
||||
|
||||
// * deprecated. Use SQLFetch instead.
|
||||
// Position cursor on next row of the result set sResultSetName
|
||||
// returns: SQL_SUCCESS if cursor could be advanced to next row
|
||||
// SQL_ERROR if there was no next row
|
||||
int SQLNextRow();
|
||||
|
||||
// Return value of column iCol in the current row of result set sResultSetName
|
||||
string SQLGetData(int iCol);
|
||||
|
||||
// Return a string value when given a location
|
||||
string APSLocationToString(location lLocation);
|
||||
|
||||
// Return a location value when given the string form of the location
|
||||
location APSStringToLocation(string sLocation);
|
||||
|
||||
// Return a string value when given a vector
|
||||
string APSVectorToString(vector vVector);
|
||||
|
||||
// Return a vector value when given the string form of the vector
|
||||
vector APSStringToVector(string sVector);
|
||||
|
||||
// Set oObject's persistent string variable sVarName to sValue
|
||||
// Optional parameters:
|
||||
// iExpiration: Number of days the persistent variable should be kept in database (default: 0=forever)
|
||||
// sTable: Name of the table where variable should be stored (default: pwdata)
|
||||
void SetPersistentString(object oObject, string sVarName, string sValue, int iExpiration = 0, string sTable = "pwdata");
|
||||
|
||||
// Set oObject's persistent integer variable sVarName to iValue
|
||||
// Optional parameters:
|
||||
// iExpiration: Number of days the persistent variable should be kept in database (default: 0=forever)
|
||||
// sTable: Name of the table where variable should be stored (default: pwdata)
|
||||
void SetPersistentInt(object oObject, string sVarName, int iValue, int iExpiration = 0, string sTable = "pwdata");
|
||||
|
||||
// Set oObject's persistent float variable sVarName to fValue
|
||||
// Optional parameters:
|
||||
// iExpiration: Number of days the persistent variable should be kept in database (default: 0=forever)
|
||||
// sTable: Name of the table where variable should be stored (default: pwdata)
|
||||
void SetPersistentFloat(object oObject, string sVarName, float fValue, int iExpiration = 0, string sTable = "pwdata");
|
||||
|
||||
// Set oObject's persistent location variable sVarName to lLocation
|
||||
// Optional parameters:
|
||||
// iExpiration: Number of days the persistent variable should be kept in database (default: 0=forever)
|
||||
// sTable: Name of the table where variable should be stored (default: pwdata)
|
||||
// This function converts location to a string for storage in the database.
|
||||
void SetPersistentLocation(object oObject, string sVarName, location lLocation, int iExpiration = 0, string sTable = "pwdata");
|
||||
|
||||
// Set oObject's persistent vector variable sVarName to vVector
|
||||
// Optional parameters:
|
||||
// iExpiration: Number of days the persistent variable should be kept in database (default: 0=forever)
|
||||
// sTable: Name of the table where variable should be stored (default: pwdata)
|
||||
// This function converts vector to a string for storage in the database.
|
||||
void SetPersistentVector(object oObject, string sVarName, vector vVector, int iExpiration = 0, string sTable = "pwdata");
|
||||
|
||||
// Get oObject's persistent string variable sVarName
|
||||
// Optional parameters:
|
||||
// sTable: Name of the table where variable is stored (default: pwdata)
|
||||
// * Return value on error: ""
|
||||
string GetPersistentString(object oObject, string sVarName, string sTable = "pwdata");
|
||||
|
||||
// Get oObject's persistent integer variable sVarName
|
||||
// Optional parameters:
|
||||
// sTable: Name of the table where variable is stored (default: pwdata)
|
||||
// * Return value on error: 0
|
||||
int GetPersistentInt(object oObject, string sVarName, string sTable = "pwdata");
|
||||
|
||||
// Get oObject's persistent float variable sVarName
|
||||
// Optional parameters:
|
||||
// sTable: Name of the table where variable is stored (default: pwdata)
|
||||
// * Return value on error: 0
|
||||
float GetPersistentFloat(object oObject, string sVarName, string sTable = "pwdata");
|
||||
|
||||
// Get oObject's persistent location variable sVarName
|
||||
// Optional parameters:
|
||||
// sTable: Name of the table where variable is stored (default: pwdata)
|
||||
// * Return value on error: 0
|
||||
location GetPersistentLocation(object oObject, string sVarname, string sTable = "pwdata");
|
||||
|
||||
// Get oObject's persistent vector variable sVarName
|
||||
// Optional parameters:
|
||||
// sTable: Name of the table where variable is stored (default: pwdata)
|
||||
// * Return value on error: 0
|
||||
vector GetPersistentVector(object oObject, string sVarName, string sTable = "pwdata");
|
||||
|
||||
// Delete persistent variable sVarName stored on oObject
|
||||
// Optional parameters:
|
||||
// sTable: Name of the table where variable is stored (default: pwdata)
|
||||
void DeletePersistentVariable(object oObject, string sVarName, string sTable = "pwdata");
|
||||
|
||||
// (private function) Replace special character ' with ~
|
||||
string SQLEncodeSpecialChars(string sString);
|
||||
|
||||
// (private function)Replace special character ' with ~
|
||||
string SQLDecodeSpecialChars(string sString);
|
||||
|
||||
/************************************/
|
||||
/* Implementation */
|
||||
/************************************/
|
||||
|
||||
// Functions for initializing APS and working with result sets
|
||||
|
||||
void SQLInit()
|
||||
{
|
||||
SQLExecDirect("CREATE TABLE IF NOT EXISTS pwdata(player varchar(64), tag varchar(64), name varchar(64), val text, expire int(11), last timestamp NOT NULL DEFAULT DEFAULT_TIMESTAMP, PRIMARY KEY (player,tag,name))");
|
||||
}
|
||||
|
||||
void SQLExecDirect(string sSQL)
|
||||
{
|
||||
sqlquery sql = SqlPrepareQueryCampaign("db",sSQL);
|
||||
last_sql_query = sql;
|
||||
if(GetStringLowerCase(GetStringLeft(sSQL,6)) != "select")
|
||||
{
|
||||
SqlStep(sql);
|
||||
}
|
||||
}
|
||||
|
||||
int SQLFetch()
|
||||
{
|
||||
return SqlStep(last_sql_query);
|
||||
}
|
||||
|
||||
// deprecated. use SQLFetch().
|
||||
int SQLFirstRow()
|
||||
{
|
||||
return SQLFetch();
|
||||
}
|
||||
|
||||
// deprecated. use SQLFetch().
|
||||
int SQLNextRow()
|
||||
{
|
||||
return SQLFetch();
|
||||
}
|
||||
|
||||
string SQLGetData(int iCol)
|
||||
{
|
||||
return SqlGetString(last_sql_query,iCol-1);
|
||||
}
|
||||
|
||||
// These functions deal with various data types. Ultimately, all information
|
||||
// must be stored in the database as strings, and converted back to the proper
|
||||
// form when retrieved.
|
||||
|
||||
string APSVectorToString(vector vVector)
|
||||
{
|
||||
return "#POSITION_X#" + FloatToString(vVector.x) + "#POSITION_Y#" + FloatToString(vVector.y) +
|
||||
"#POSITION_Z#" + FloatToString(vVector.z) + "#END#";
|
||||
}
|
||||
|
||||
vector APSStringToVector(string sVector)
|
||||
{
|
||||
float fX, fY, fZ;
|
||||
int iPos, iCount;
|
||||
int iLen = GetStringLength(sVector);
|
||||
|
||||
if (iLen > 0)
|
||||
{
|
||||
iPos = FindSubString(sVector, "#POSITION_X#") + 12;
|
||||
iCount = FindSubString(GetSubString(sVector, iPos, iLen - iPos), "#");
|
||||
fX = StringToFloat(GetSubString(sVector, iPos, iCount));
|
||||
|
||||
iPos = FindSubString(sVector, "#POSITION_Y#") + 12;
|
||||
iCount = FindSubString(GetSubString(sVector, iPos, iLen - iPos), "#");
|
||||
fY = StringToFloat(GetSubString(sVector, iPos, iCount));
|
||||
|
||||
iPos = FindSubString(sVector, "#POSITION_Z#") + 12;
|
||||
iCount = FindSubString(GetSubString(sVector, iPos, iLen - iPos), "#");
|
||||
fZ = StringToFloat(GetSubString(sVector, iPos, iCount));
|
||||
}
|
||||
|
||||
return Vector(fX, fY, fZ);
|
||||
}
|
||||
|
||||
string APSLocationToString(location lLocation)
|
||||
{
|
||||
object oArea = GetAreaFromLocation(lLocation);
|
||||
vector vPosition = GetPositionFromLocation(lLocation);
|
||||
float fOrientation = GetFacingFromLocation(lLocation);
|
||||
string sReturnValue;
|
||||
|
||||
if (GetIsObjectValid(oArea))
|
||||
sReturnValue =
|
||||
"#AREA#" + GetTag(oArea) + "#POSITION_X#" + FloatToString(vPosition.x) +
|
||||
"#POSITION_Y#" + FloatToString(vPosition.y) + "#POSITION_Z#" +
|
||||
FloatToString(vPosition.z) + "#ORIENTATION#" + FloatToString(fOrientation) + "#END#";
|
||||
|
||||
return sReturnValue;
|
||||
}
|
||||
|
||||
location APSStringToLocation(string sLocation)
|
||||
{
|
||||
location lReturnValue;
|
||||
object oArea;
|
||||
vector vPosition;
|
||||
float fOrientation, fX, fY, fZ;
|
||||
|
||||
int iPos, iCount;
|
||||
int iLen = GetStringLength(sLocation);
|
||||
|
||||
if (iLen > 0)
|
||||
{
|
||||
iPos = FindSubString(sLocation, "#AREA#") + 6;
|
||||
iCount = FindSubString(GetSubString(sLocation, iPos, iLen - iPos), "#");
|
||||
oArea = GetObjectByTag(GetSubString(sLocation, iPos, iCount));
|
||||
|
||||
iPos = FindSubString(sLocation, "#POSITION_X#") + 12;
|
||||
iCount = FindSubString(GetSubString(sLocation, iPos, iLen - iPos), "#");
|
||||
fX = StringToFloat(GetSubString(sLocation, iPos, iCount));
|
||||
|
||||
iPos = FindSubString(sLocation, "#POSITION_Y#") + 12;
|
||||
iCount = FindSubString(GetSubString(sLocation, iPos, iLen - iPos), "#");
|
||||
fY = StringToFloat(GetSubString(sLocation, iPos, iCount));
|
||||
|
||||
iPos = FindSubString(sLocation, "#POSITION_Z#") + 12;
|
||||
iCount = FindSubString(GetSubString(sLocation, iPos, iLen - iPos), "#");
|
||||
fZ = StringToFloat(GetSubString(sLocation, iPos, iCount));
|
||||
|
||||
vPosition = Vector(fX, fY, fZ);
|
||||
|
||||
iPos = FindSubString(sLocation, "#ORIENTATION#") + 13;
|
||||
iCount = FindSubString(GetSubString(sLocation, iPos, iLen - iPos), "#");
|
||||
fOrientation = StringToFloat(GetSubString(sLocation, iPos, iCount));
|
||||
|
||||
lReturnValue = Location(oArea, vPosition, fOrientation);
|
||||
}
|
||||
|
||||
return lReturnValue;
|
||||
}
|
||||
|
||||
// These functions are responsible for transporting the various data types back
|
||||
// and forth to the database.
|
||||
|
||||
void SetPersistentString(object oObject, string sVarName, string sValue, int iExpiration =
|
||||
0, string sTable = "pwdata")
|
||||
{
|
||||
string sPlayer;
|
||||
string sTag;
|
||||
|
||||
if (GetIsPC(oObject))
|
||||
{
|
||||
sPlayer = SQLEncodeSpecialChars(GetPCPlayerName(oObject));
|
||||
sTag = SQLEncodeSpecialChars(GetName(oObject));
|
||||
}
|
||||
else
|
||||
{
|
||||
sPlayer = "~";
|
||||
sTag = GetTag(oObject);
|
||||
}
|
||||
|
||||
sVarName = SQLEncodeSpecialChars(sVarName);
|
||||
sValue = SQLEncodeSpecialChars(sValue);
|
||||
|
||||
string sSQL = "SELECT player FROM " + sTable + " WHERE player='" + sPlayer +
|
||||
"' AND tag='" + sTag + "' AND name='" + sVarName + "'";
|
||||
SQLExecDirect(sSQL);
|
||||
|
||||
if (SQLFirstRow() == SQL_SUCCESS)
|
||||
{
|
||||
// row exists
|
||||
sSQL = "UPDATE " + sTable + " SET val='" + sValue +
|
||||
"',expire=" + IntToString(iExpiration) + " WHERE player='" + sPlayer +
|
||||
"' AND tag='" + sTag + "' AND name='" + sVarName + "'";
|
||||
SQLExecDirect(sSQL);
|
||||
}
|
||||
else
|
||||
{
|
||||
// row doesn't exist
|
||||
sSQL = "INSERT INTO " + sTable + " (player,tag,name,val,expire) VALUES" +
|
||||
"('" + sPlayer + "','" + sTag + "','" + sVarName + "','" +
|
||||
sValue + "'," + IntToString(iExpiration) + ")";
|
||||
SQLExecDirect(sSQL);
|
||||
}
|
||||
}
|
||||
|
||||
string GetPersistentString(object oObject, string sVarName, string sTable = "pwdata")
|
||||
{
|
||||
string sPlayer;
|
||||
string sTag;
|
||||
|
||||
if (GetIsPC(oObject))
|
||||
{
|
||||
sPlayer = SQLEncodeSpecialChars(GetPCPlayerName(oObject));
|
||||
sTag = SQLEncodeSpecialChars(GetName(oObject));
|
||||
}
|
||||
else
|
||||
{
|
||||
sPlayer = "~";
|
||||
sTag = GetTag(oObject);
|
||||
}
|
||||
|
||||
sVarName = SQLEncodeSpecialChars(sVarName);
|
||||
|
||||
string sSQL = "SELECT val FROM " + sTable + " WHERE player='" + sPlayer +
|
||||
"' AND tag='" + sTag + "' AND name='" + sVarName + "'";
|
||||
SQLExecDirect(sSQL);
|
||||
|
||||
if (SQLFirstRow() == SQL_SUCCESS)
|
||||
return SQLDecodeSpecialChars(SQLGetData(1));
|
||||
else
|
||||
{
|
||||
return "";
|
||||
// If you want to convert your existing persistent data to APS, this
|
||||
// would be the place to do it. The requested variable was not found
|
||||
// in the database, you should
|
||||
// 1) query it's value using your existing persistence functions
|
||||
// 2) save the value to the database using SetPersistentString()
|
||||
// 3) return the string value here.
|
||||
}
|
||||
}
|
||||
|
||||
void SetPersistentInt(object oObject, string sVarName, int iValue, int iExpiration =
|
||||
0, string sTable = "pwdata")
|
||||
{
|
||||
SetPersistentString(oObject, sVarName, IntToString(iValue), iExpiration, sTable);
|
||||
}
|
||||
|
||||
int GetPersistentInt(object oObject, string sVarName, string sTable = "pwdata")
|
||||
{
|
||||
return StringToInt(GetPersistentString(oObject, sVarName, sTable));
|
||||
}
|
||||
|
||||
void SetPersistentFloat(object oObject, string sVarName, float fValue, int iExpiration =
|
||||
0, string sTable = "pwdata")
|
||||
{
|
||||
SetPersistentString(oObject, sVarName, FloatToString(fValue), iExpiration, sTable);
|
||||
}
|
||||
|
||||
float GetPersistentFloat(object oObject, string sVarName, string sTable = "pwdata")
|
||||
{
|
||||
return StringToFloat(GetPersistentString(oObject, sVarName, sTable));
|
||||
}
|
||||
|
||||
void SetPersistentLocation(object oObject, string sVarName, location lLocation, int iExpiration =
|
||||
0, string sTable = "pwdata")
|
||||
{
|
||||
SetPersistentString(oObject, sVarName, APSLocationToString(lLocation), iExpiration, sTable);
|
||||
}
|
||||
|
||||
location GetPersistentLocation(object oObject, string sVarName, string sTable = "pwdata")
|
||||
{
|
||||
return APSStringToLocation(GetPersistentString(oObject, sVarName, sTable));
|
||||
}
|
||||
|
||||
void SetPersistentVector(object oObject, string sVarName, vector vVector, int iExpiration =
|
||||
0, string sTable = "pwdata")
|
||||
{
|
||||
SetPersistentString(oObject, sVarName, APSVectorToString(vVector), iExpiration, sTable);
|
||||
}
|
||||
|
||||
vector GetPersistentVector(object oObject, string sVarName, string sTable = "pwdata")
|
||||
{
|
||||
return APSStringToVector(GetPersistentString(oObject, sVarName, sTable));
|
||||
}
|
||||
|
||||
void DeletePersistentVariable(object oObject, string sVarName, string sTable = "pwdata")
|
||||
{
|
||||
string sPlayer;
|
||||
string sTag;
|
||||
|
||||
if (GetIsPC(oObject))
|
||||
{
|
||||
sPlayer = SQLEncodeSpecialChars(GetPCPlayerName(oObject));
|
||||
sTag = SQLEncodeSpecialChars(GetName(oObject));
|
||||
}
|
||||
else
|
||||
{
|
||||
sPlayer = "~";
|
||||
sTag = GetTag(oObject);
|
||||
}
|
||||
|
||||
sVarName = SQLEncodeSpecialChars(sVarName);
|
||||
string sSQL = "DELETE FROM " + sTable + " WHERE player='" + sPlayer +
|
||||
"' AND tag='" + sTag + "' AND name='" + sVarName + "'";
|
||||
SQLExecDirect(sSQL);
|
||||
}
|
||||
|
||||
// Problems can arise with SQL commands if variables or values have single quotes
|
||||
// in their names. These functions are a replace these quote with the tilde character
|
||||
|
||||
string SQLEncodeSpecialChars(string sString)
|
||||
{
|
||||
if (FindSubString(sString, "'") == -1) // not found
|
||||
return sString;
|
||||
|
||||
int i;
|
||||
string sReturn = "";
|
||||
string sChar;
|
||||
|
||||
// Loop over every character and replace special characters
|
||||
for (i = 0; i < GetStringLength(sString); i++)
|
||||
{
|
||||
sChar = GetSubString(sString, i, 1);
|
||||
if (sChar == "'")
|
||||
sReturn += "~";
|
||||
else
|
||||
sReturn += sChar;
|
||||
}
|
||||
return sReturn;
|
||||
}
|
||||
|
||||
string SQLDecodeSpecialChars(string sString)
|
||||
{
|
||||
if (FindSubString(sString, "~") == -1) // not found
|
||||
return sString;
|
||||
|
||||
int i;
|
||||
string sReturn = "";
|
||||
string sChar;
|
||||
|
||||
// Loop over every character and replace special characters
|
||||
for (i = 0; i < GetStringLength(sString); i++)
|
||||
{
|
||||
sChar = GetSubString(sString, i, 1);
|
||||
if (sChar == "~")
|
||||
sReturn += "'";
|
||||
else
|
||||
sReturn += sChar;
|
||||
}
|
||||
return sReturn;
|
||||
}
|
||||
|
80
_module/nss/ar_barredoor_f2o.nss
Normal file
80
_module/nss/ar_barredoor_f2o.nss
Normal file
@ -0,0 +1,80 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Name Random OnFailToOpen Msg Generator - for Doors
|
||||
//:: FileName ar_barreddoor_f2o
|
||||
//::
|
||||
//::
|
||||
//////////////////////////////////////////////
|
||||
/* Use this script to show that the door can never be opened with random
|
||||
messages instead of just 1 (This door has been barred from the other
|
||||
side.) for example. A big thanks to Kevin Eberwein for giving me a hand
|
||||
making this work as well as a couple ideas to add to it.*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Kevin Werbenuk (Help from Kevin Eberwein)
|
||||
//:: Created On: July 14, 2002
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
void main()
|
||||
{
|
||||
object oPC = GetLastUsedBy(); // Get the PC that attempted to open the door.
|
||||
object oDoor = OBJECT_SELF; // Gets the door this is being called from
|
||||
int nRandomMsg;
|
||||
int nVar;
|
||||
int nDoorNumber;
|
||||
|
||||
nVar = GetLocalInt(oPC, "BALEAS_DOOR_01");
|
||||
nDoorNumber = GetLocalInt(OBJECT_SELF, "BARRED");
|
||||
|
||||
if (nVar != 0)
|
||||
nRandomMsg = nVar;
|
||||
|
||||
else
|
||||
nRandomMsg = Random(9);
|
||||
|
||||
switch (nRandomMsg)
|
||||
{
|
||||
case 0:
|
||||
SpeakString("This door is barred from the other side.");
|
||||
SetLocalInt(oPC, "BALEAS_DOOR_01", nRandomMsg);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
SpeakString("As you reach for the door handle you notice, there isn't one. Looks like you will have to try to find another way if there is.");
|
||||
SetLocalInt(oPC, "BALEAS_DOOR_01", nRandomMsg);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
SpeakString("As you turn the handle a voice bellows, 'Go away! Your not getting in here!'");
|
||||
SetLocalInt(oPC, "BALEAS_DOOR_01", nRandomMsg);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
SpeakString("Neither push nor pull can get this door open.");
|
||||
SetLocalInt(oPC, "BALEAS_DOOR_01", nRandomMsg);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
SpeakString("As you attempt entry you hear a 'Thud.' Obviously this door is blocked by some means");
|
||||
SetLocalInt(oPC, "BALEAS_DOOR_01", nRandomMsg);
|
||||
break;
|
||||
|
||||
case 5:
|
||||
SpeakString("Approaching the door you get an overwhelming feeling of magic power. There seems to be some magical ward preventing this door from being opened.");
|
||||
SetLocalInt(oPC, "BALEAS_DOOR_01", nRandomMsg);
|
||||
break;
|
||||
|
||||
case 6:
|
||||
SpeakString("Unfortunately you are not strong enough to open this door.");
|
||||
SetLocalInt(oPC, "BALEAS_DOOR_01", nRandomMsg);
|
||||
break;
|
||||
|
||||
case 7:
|
||||
SpeakString("The sound of laughter seems to emminate from the door as it doesn't buldge.");
|
||||
SetLocalInt(oPC, "BALEAS_DOOR_01", nRandomMsg);
|
||||
break;
|
||||
|
||||
case 8:
|
||||
SpeakString("Opening doors isn't your strong point, eh?");
|
||||
SetLocalInt(oPC, "BALEAS_DOOR_01", nRandomMsg);
|
||||
break;
|
||||
}
|
||||
}
|
19
_module/nss/at_caplvlup.nss
Normal file
19
_module/nss/at_caplvlup.nss
Normal file
@ -0,0 +1,19 @@
|
||||
#include "nw_i0_tool"
|
||||
/* Script generated by
|
||||
Lilac Soul's NWN Script Generator, v. 1.6
|
||||
|
||||
For download info, please visit:
|
||||
http://www.lilacsoul.revility.com */
|
||||
|
||||
//Put this on action taken in the conversation editor
|
||||
void main()
|
||||
{
|
||||
|
||||
object oPC = GetPCSpeaker();
|
||||
|
||||
if (GetHitDice(oPC) <= 2)
|
||||
{
|
||||
RewardPartyXP(3000, oPC, FALSE);
|
||||
|
||||
}
|
||||
}
|
20
_module/nss/dante_letodel_at.nss
Normal file
20
_module/nss/dante_letodel_at.nss
Normal file
@ -0,0 +1,20 @@
|
||||
#include "nwnx_admin"
|
||||
|
||||
void main()
|
||||
{
|
||||
object oPlayer = GetPCSpeaker();
|
||||
|
||||
string sName = GetName(oPlayer);
|
||||
|
||||
string sPlayer = GetPCPlayerName(oPlayer);
|
||||
|
||||
SendMessageToPC(oPlayer,"sPlayer = "+sPlayer);
|
||||
SendMessageToPC(oPlayer,"sName = "+sName);
|
||||
|
||||
NWNX_Administration_DeletePlayerCharacter(oPlayer, 1, "Character Deleted");
|
||||
SendMessageToPC(oPlayer,sPlayer+" has deleted "+sName);
|
||||
SendMessageToAllDMs(sPlayer+" has deleted "+sName);
|
||||
}
|
||||
|
||||
|
||||
|
102
_module/nss/door_area_trans.nss
Normal file
102
_module/nss/door_area_trans.nss
Normal file
@ -0,0 +1,102 @@
|
||||
////////////////////////////////////////
|
||||
/*
|
||||
Closes door when player transitions
|
||||
|
||||
If the player opens door and does not transition the door
|
||||
will not close.
|
||||
|
||||
This script doesn't interfere with the Area Transiton Wizard.
|
||||
|
||||
*/
|
||||
////////////////////////////////////////
|
||||
#include "x0_inc_henai"
|
||||
void b_FollowMaster(object oMaster);
|
||||
void main()
|
||||
{
|
||||
object oClicker = GetClickingObject();
|
||||
object oSelf = OBJECT_SELF;
|
||||
object oDest = GetTransitionTarget(OBJECT_SELF);
|
||||
|
||||
if(oDest == OBJECT_INVALID)
|
||||
{
|
||||
SendMessageToAllDMs("Door "+GetTag(OBJECT_SELF)+
|
||||
" is missing a transition target");
|
||||
return;
|
||||
}
|
||||
|
||||
// Seems the script is firing twice, once for the door actually used
|
||||
// and once for the transition target
|
||||
if(GetLocalInt(oClicker,"DoorOnce") == FALSE)
|
||||
{
|
||||
SetLocalInt(oClicker,"DoorOnce",TRUE);
|
||||
DelayCommand(1.1,DeleteLocalInt(oClicker,"DoorOnce"));
|
||||
|
||||
if(GetIsPC(oClicker)==TRUE)
|
||||
{
|
||||
SetLocalInt(oClicker,"PC_USED_DOOR",TRUE);
|
||||
AssignCommand(oClicker,JumpToObject(oDest));
|
||||
|
||||
b_FollowMaster(oClicker);
|
||||
|
||||
AssignCommand(oClicker,ActionDoCommand(SignalEvent(oSelf,
|
||||
EventUserDefined(9006))));
|
||||
}
|
||||
|
||||
else // A different script was required for npc's. Go figure.
|
||||
{
|
||||
// Allows for npc to perform the door open animation before
|
||||
// jumping to the destination. Otherwise the npc will still be
|
||||
// performing the door open animation when he transitions and sometimes
|
||||
// transitions back to his original location.
|
||||
DelayCommand(1.0,AssignCommand(oClicker,JumpToObject(oDest)));
|
||||
|
||||
|
||||
// When an NPC is chasing a player, he sometimes transitions to an
|
||||
// area before player does then leaves when he sees
|
||||
// nothing and\or WalkWaypoints fires. This gives him something else
|
||||
// to do for a half second (like walk behind the door.. geesh).
|
||||
DelayCommand(1.2,AssignCommand(oClicker,
|
||||
ActionMoveAwayFromObject(oDest,FALSE,0.1)));
|
||||
|
||||
// I'm sick of re-writing the bw ai. It's assumed that
|
||||
// if no enemy is present or the npc is not in combat,
|
||||
// DetermineCombatRound will do nothing.
|
||||
DelayCommand(1.2,AssignCommand(oClicker,
|
||||
ActionDoCommand(DetermineCombatRound())));
|
||||
|
||||
|
||||
DelayCommand(3.0,SignalEvent(oSelf,EventUserDefined(9006)));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void a_FollowMaster(object oMaster)
|
||||
{
|
||||
float fDist = GetFollowDistance();
|
||||
ActionForceFollowObject(oMaster,fDist);
|
||||
|
||||
}
|
||||
|
||||
void b_FollowMaster(object oMaster)
|
||||
{
|
||||
object oAssociate = GetFirstFactionMember(oMaster,FALSE);
|
||||
while(oAssociate != OBJECT_INVALID)
|
||||
{
|
||||
|
||||
if(GetAssociateType(oAssociate)!= ASSOCIATE_TYPE_NONE)
|
||||
{
|
||||
if(GetAssociateState(NW_ASC_MODE_STAND_GROUND,oAssociate) == TRUE)
|
||||
{SetAssociateState(NW_ASC_MODE_STAND_GROUND,FALSE,oAssociate);}
|
||||
|
||||
if(oMaster != OBJECT_INVALID)
|
||||
{AssignCommand(oAssociate,a_FollowMaster(oMaster));}
|
||||
|
||||
}
|
||||
oAssociate = GetNextFactionMember(oMaster,FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
|
5
_module/nss/ds_closedoors.nss
Normal file
5
_module/nss/ds_closedoors.nss
Normal file
@ -0,0 +1,5 @@
|
||||
//Closes door if it is open
|
||||
void main()
|
||||
{
|
||||
DelayCommand(25.0,ActionCloseDoor(OBJECT_SELF));
|
||||
}
|
@ -27,6 +27,28 @@ void DeathCheck(int nDeaths);
|
||||
|
||||
void main()
|
||||
{
|
||||
|
||||
object oNPC = OBJECT_SELF;
|
||||
|
||||
// Chance of guard type creatures dropping gear onDeath.
|
||||
if ((GetResRef(oNPC) == "npc_baleasgrd001") ||
|
||||
(GetResRef(oNPC) == "npc_goldeye001") ||
|
||||
(GetResRef(oNPC) == "npc_baleasgrd003") ||
|
||||
(GetResRef(oNPC) == "npc_baleasgrd004") ||
|
||||
(GetResRef(oNPC) == "npc_baleasgrd005"))
|
||||
{
|
||||
object oArmor = GetItemInSlot(INVENTORY_SLOT_CHEST, oNPC);
|
||||
object oWeapon = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oNPC);
|
||||
|
||||
// Give a 3% chance to drop armor &/or equipped weapon
|
||||
int bDroppableA = d100() > 97;
|
||||
int bDroppableW = d100() > 97;
|
||||
|
||||
SetDroppableFlag(oArmor, bDroppableA);
|
||||
SetDroppableFlag(oWeapon, bDroppableW);
|
||||
|
||||
}
|
||||
|
||||
// If we are set to, don't fire this script at all
|
||||
if(GetAIInteger(I_AM_TOTALLY_DEAD)) return;
|
||||
|
||||
|
454
_module/nss/ra_bal_grd_onspw.nss
Normal file
454
_module/nss/ra_bal_grd_onspw.nss
Normal file
@ -0,0 +1,454 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Name ra_bal_grd_onspw
|
||||
//:: Copyright (c) 2001 Bioware Corp.
|
||||
//:://////////////////////////////////////////////
|
||||
/*
|
||||
Default On Spawn script
|
||||
|
||||
|
||||
2003-07-28: Georg Zoeller:
|
||||
|
||||
If you set a ninteger on the creature named
|
||||
"X2_USERDEFINED_ONSPAWN_EVENTS"
|
||||
The creature will fire a pre and a post-spawn
|
||||
event on itself, depending on the value of that
|
||||
variable
|
||||
1 - Fire Userdefined Event 1510 (pre spawn)
|
||||
2 - Fire Userdefined Event 1511 (post spawn)
|
||||
3 - Fire both events
|
||||
|
||||
2007-12-31: Deva Winblood
|
||||
Modified to look for X3_HORSE_OWNER_TAG and if
|
||||
it is defined look for an NPC with that tag
|
||||
nearby or in the module (checks near first).
|
||||
It will make that NPC this horse's master.
|
||||
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Keith Warner, Georg Zoeller
|
||||
//:: Created On: June 11/03
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
const int EVENT_USER_DEFINED_PRESPAWN = 1510;
|
||||
const int EVENT_USER_DEFINED_POSTSPAWN = 1511;
|
||||
|
||||
#include "NW_I0_GENERIC"
|
||||
#include "ms_name_inc"
|
||||
#include "x2_inc_switches"
|
||||
#include "rnd_commoner_inc"
|
||||
|
||||
|
||||
void ShrinkEm(object oPC)
|
||||
{
|
||||
SetObjectVisualTransform(oPC, OBJECT_VISUAL_TRANSFORM_SCALE, 0.5f);
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
string sTag;
|
||||
object oNPC;
|
||||
// User defined OnSpawn event requested?
|
||||
int nSpecEvent = GetLocalInt(OBJECT_SELF,"X2_USERDEFINED_ONSPAWN_EVENTS");
|
||||
|
||||
|
||||
// Pre Spawn Event requested
|
||||
if (nSpecEvent == 1 || nSpecEvent == 3 )
|
||||
{
|
||||
SignalEvent(OBJECT_SELF,EventUserDefined(EVENT_USER_DEFINED_PRESPAWN ));
|
||||
}
|
||||
|
||||
sTag=GetLocalString(OBJECT_SELF,"X3_HORSE_OWNER_TAG");
|
||||
if (GetStringLength(sTag)>0)
|
||||
{ // look for master
|
||||
oNPC=GetNearestObjectByTag(sTag);
|
||||
if (GetIsObjectValid(oNPC)&&GetObjectType(oNPC)==OBJECT_TYPE_CREATURE)
|
||||
{ // master found
|
||||
AddHenchman(oNPC);
|
||||
} // master found
|
||||
else
|
||||
{ // look in module
|
||||
oNPC=GetObjectByTag(sTag);
|
||||
if (GetIsObjectValid(oNPC)&&GetObjectType(oNPC)==OBJECT_TYPE_CREATURE)
|
||||
{ // master found
|
||||
AddHenchman(oNPC);
|
||||
} // master found
|
||||
else
|
||||
{ // master does not exist - remove X3_HORSE_OWNER_TAG
|
||||
DeleteLocalString(OBJECT_SELF,"X3_HORSE_OWNER_TAG");
|
||||
} // master does not exist - remove X3_HORSE_OWNER_TAG
|
||||
} // look in module
|
||||
} // look for master
|
||||
|
||||
|
||||
//:: Sets a random integer on the creature to use with other spell functions
|
||||
|
||||
string sImmune = GetName(OBJECT_SELF)+"_AURA_IMMUNE";
|
||||
int nRandomSeed = Random(999);
|
||||
SetLocalInt(OBJECT_SELF, sImmune, nRandomSeed);
|
||||
|
||||
//:: Creature will quickly & automatically buff itself up with any defensive
|
||||
//:: spells it has memorized.
|
||||
|
||||
int nAutobuff = GetLocalInt(OBJECT_SELF,"AUTOBUFF");
|
||||
if (nAutobuff > 0 )
|
||||
{
|
||||
SetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY);
|
||||
}
|
||||
|
||||
//:: Creature will flee those that close within 7m if they are not friends,
|
||||
//:: Rangers or Druids.
|
||||
|
||||
int nHerbivore = GetLocalInt(OBJECT_SELF,"CREATURE_VAR_HERBIVORE");
|
||||
if (nHerbivore > 0 )
|
||||
{
|
||||
SetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL);
|
||||
SetBehaviorState(NW_FLAG_BEHAVIOR_HERBIVORE);
|
||||
}
|
||||
|
||||
//:: Creature will only attack those that close within 5m and are not friends,
|
||||
//:: Rangers or Druids.
|
||||
|
||||
int nOmnivore = GetLocalInt(OBJECT_SELF,"CREATURE_VAR_OMNIVORE");
|
||||
if (nOmnivore > 0 )
|
||||
{
|
||||
SetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL);
|
||||
SetBehaviorState(NW_FLAG_BEHAVIOR_OMNIVORE);
|
||||
}
|
||||
|
||||
int nOLM = GetLocalInt(OBJECT_SELF,"OLM");
|
||||
if (nOLM > 0)
|
||||
{
|
||||
DelayCommand(0.0f, ShrinkEm(OBJECT_SELF));
|
||||
|
||||
effect eSlow = EffectMovementSpeedDecrease(50);
|
||||
eSlow = SupernaturalEffect(eSlow);
|
||||
eSlow = ExtraordinaryEffect(eSlow);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eSlow,OBJECT_SELF));
|
||||
}
|
||||
|
||||
int nNoStun = GetLocalInt(OBJECT_SELF,"NOSTUN");
|
||||
if (nNoStun > 0)
|
||||
{
|
||||
effect eNoStun = EffectImmunity(IMMUNITY_TYPE_STUN);
|
||||
eNoStun = SupernaturalEffect(eNoStun);
|
||||
eNoStun = ExtraordinaryEffect(eNoStun);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eNoStun,OBJECT_SELF));
|
||||
}
|
||||
int nNatInvis = GetLocalInt(OBJECT_SELF,"NATURAL_INVIS");
|
||||
if (nNatInvis > 0)
|
||||
{
|
||||
effect eNatInvis = EffectInvisibility(4);
|
||||
eNatInvis = SupernaturalEffect(eNatInvis);
|
||||
eNatInvis = ExtraordinaryEffect(eNatInvis);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eNatInvis,OBJECT_SELF));
|
||||
}
|
||||
|
||||
int nNoSleep = GetLocalInt(OBJECT_SELF,"NOSLEEP");
|
||||
if (nNoSleep > 0)
|
||||
{
|
||||
effect eNoSleep = EffectImmunity(IMMUNITY_TYPE_SLEEP);
|
||||
eNoSleep = SupernaturalEffect(eNoSleep);
|
||||
eNoSleep = ExtraordinaryEffect(eNoSleep);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eNoSleep,OBJECT_SELF));
|
||||
}
|
||||
|
||||
int nNoDaze = GetLocalInt(OBJECT_SELF,"NODAZE");
|
||||
if (nNoDaze > 0)
|
||||
{
|
||||
effect eNoDaze = EffectImmunity(IMMUNITY_TYPE_DAZED);
|
||||
eNoDaze = SupernaturalEffect(eNoDaze);
|
||||
eNoDaze = ExtraordinaryEffect(eNoDaze);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eNoDaze,OBJECT_SELF));
|
||||
}
|
||||
|
||||
int nNoBlind = GetLocalInt(OBJECT_SELF,"NOBLIND");
|
||||
if (nNoBlind > 0)
|
||||
{
|
||||
effect eNoBlind = EffectImmunity(IMMUNITY_TYPE_BLINDNESS);
|
||||
eNoBlind = SupernaturalEffect(eNoBlind);
|
||||
eNoBlind = ExtraordinaryEffect(eNoBlind);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eNoBlind,OBJECT_SELF));
|
||||
}
|
||||
|
||||
int nNoDeaf = GetLocalInt(OBJECT_SELF,"NODEAF");
|
||||
if (nNoDeaf > 0)
|
||||
{
|
||||
effect eNoDeaf = EffectImmunity(IMMUNITY_TYPE_DEAFNESS);
|
||||
eNoDeaf = SupernaturalEffect(eNoDeaf);
|
||||
eNoDeaf = ExtraordinaryEffect(eNoDeaf);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eNoDeaf,OBJECT_SELF));
|
||||
}
|
||||
|
||||
int nDeaf = GetLocalInt(OBJECT_SELF,"IS_DEAF");
|
||||
if (nDeaf > 0)
|
||||
{
|
||||
effect eDeaf = EffectDeaf();
|
||||
eDeaf = SupernaturalEffect(eDeaf);
|
||||
eDeaf = ExtraordinaryEffect(eDeaf);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eDeaf,OBJECT_SELF));
|
||||
}
|
||||
|
||||
/* Fix for the new golems to reduce their number of attacks */
|
||||
|
||||
int nNumber = GetLocalInt(OBJECT_SELF,CREATURE_VAR_NUMBER_OF_ATTACKS);
|
||||
if (nNumber >0 )
|
||||
{
|
||||
SetBaseAttackBonus(nNumber);
|
||||
}
|
||||
|
||||
int nVFX = GetLocalInt(OBJECT_SELF,"SpawnVFX");
|
||||
if(nVFX)
|
||||
{
|
||||
ApplyEffectToObject(DURATION_TYPE_PERMANENT,SupernaturalEffect(EffectVisualEffect(nVFX)),OBJECT_SELF);
|
||||
}
|
||||
|
||||
int nRegen = GetLocalInt(OBJECT_SELF,"FAST_HEALING");
|
||||
if(nRegen)
|
||||
{
|
||||
effect eRegen = EffectRegenerate(nRegen, 6.0f);
|
||||
eRegen = SupernaturalEffect(eRegen);
|
||||
eRegen = ExtraordinaryEffect(eRegen);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT, eRegen, OBJECT_SELF));
|
||||
}
|
||||
|
||||
int nShadowy = GetLocalInt(OBJECT_SELF,"SHADOWY");
|
||||
if (nShadowy)
|
||||
{
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_PROT_SHADOW_ARMOR);
|
||||
eVis = SupernaturalEffect(eVis);
|
||||
eVis = ExtraordinaryEffect(eVis);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
|
||||
}
|
||||
|
||||
int nStony = GetLocalInt(OBJECT_SELF,"STONY");
|
||||
if (nStony)
|
||||
{
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_PROT_STONESKIN);
|
||||
eVis = SupernaturalEffect(eVis);
|
||||
eVis = ExtraordinaryEffect(eVis);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
|
||||
}
|
||||
int nFirey = GetLocalInt(OBJECT_SELF,"FIREY");
|
||||
if (nFirey)
|
||||
{
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_INFERNO_NO_SOUND);
|
||||
eVis = SupernaturalEffect(eVis);
|
||||
eVis = ExtraordinaryEffect(eVis);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
|
||||
}
|
||||
int nWoody = GetLocalInt(OBJECT_SELF,"WOODY");
|
||||
if (nWoody)
|
||||
{
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_PROT_BARKSKIN);
|
||||
eVis = SupernaturalEffect(eVis);
|
||||
eVis = ExtraordinaryEffect(eVis);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
|
||||
}
|
||||
|
||||
int nConcealed20 = GetLocalInt(OBJECT_SELF,"CONCEALED20");
|
||||
if (nConcealed20)
|
||||
{
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_BLUR );
|
||||
effect eConceal = EffectConcealment(20, 0);
|
||||
eVis = SupernaturalEffect(eVis);
|
||||
eVis = ExtraordinaryEffect(eVis);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
|
||||
}
|
||||
|
||||
int nConcealed50 = GetLocalInt(OBJECT_SELF,"CONCEALED50");
|
||||
if (nConcealed50)
|
||||
{
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_BLUR );
|
||||
effect eConceal = EffectConcealment(50, 0);
|
||||
eVis = SupernaturalEffect(eVis);
|
||||
eVis = ExtraordinaryEffect(eVis);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
|
||||
}
|
||||
|
||||
int nIcy = GetLocalInt(OBJECT_SELF,"ICY");
|
||||
if (nIcy)
|
||||
{
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_ICESKIN);
|
||||
eVis = SupernaturalEffect(eVis);
|
||||
eVis = ExtraordinaryEffect(eVis);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
|
||||
}
|
||||
|
||||
int nSR = GetLocalInt(OBJECT_SELF,"SPELL_RESISTANCE");
|
||||
if ( nSR )
|
||||
{
|
||||
effect eSR = EffectSpellResistanceIncrease(nSR);
|
||||
eSR = SupernaturalEffect(eSR);
|
||||
eSR = ExtraordinaryEffect(eSR);
|
||||
ApplyEffectToObject(DURATION_TYPE_PERMANENT,eSR,OBJECT_SELF);
|
||||
}
|
||||
|
||||
int nAttackBonus = GetLocalInt(OBJECT_SELF,"ATTACK_BONUS");
|
||||
if ( nAttackBonus )
|
||||
{
|
||||
effect eAttack = EffectAttackIncrease(nAttackBonus);
|
||||
eAttack = SupernaturalEffect(eAttack);
|
||||
eAttack = ExtraordinaryEffect(eAttack);
|
||||
ApplyEffectToObject(DURATION_TYPE_PERMANENT,eAttack,OBJECT_SELF);
|
||||
}
|
||||
|
||||
int nAcidShield = GetLocalInt(OBJECT_SELF,"ACID_SHIELD");
|
||||
if ( nAcidShield )
|
||||
{
|
||||
effect eShield = EffectDamageShield(0,DAMAGE_BONUS_1d8,DAMAGE_TYPE_ACID);
|
||||
eShield = SupernaturalEffect(eShield);
|
||||
eShield = ExtraordinaryEffect(eShield);
|
||||
ApplyEffectToObject(DURATION_TYPE_PERMANENT,eShield,OBJECT_SELF);
|
||||
}
|
||||
|
||||
int nSerratedEdge = GetLocalInt(OBJECT_SELF,"SERRATED_EDGE");
|
||||
if ( nSerratedEdge )
|
||||
{
|
||||
effect eShield = EffectDamageShield(0,DAMAGE_BONUS_1d6,DAMAGE_TYPE_SLASHING);
|
||||
eShield = SupernaturalEffect(eShield);
|
||||
eShield = ExtraordinaryEffect(eShield);
|
||||
ApplyEffectToObject(DURATION_TYPE_PERMANENT,eShield,OBJECT_SELF);
|
||||
}
|
||||
|
||||
int nSpikedArmor = GetLocalInt(OBJECT_SELF,"SPIKED_ARMOR");
|
||||
if ( nSpikedArmor )
|
||||
{
|
||||
effect eShield = EffectDamageShield(0,DAMAGE_BONUS_1d4,DAMAGE_TYPE_PIERCING);
|
||||
eShield = SupernaturalEffect(eShield);
|
||||
eShield = ExtraordinaryEffect(eShield);
|
||||
ApplyEffectToObject(DURATION_TYPE_PERMANENT,eShield,OBJECT_SELF);
|
||||
}
|
||||
|
||||
int nGlow = GetLocalInt (OBJECT_SELF,"GLOW_COLOR");
|
||||
if (nGlow == 1)
|
||||
{
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_BLUE);
|
||||
eVis = SupernaturalEffect(eVis);
|
||||
eVis = ExtraordinaryEffect(eVis);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
|
||||
}
|
||||
else if (nGlow == 2)
|
||||
{
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_BROWN);
|
||||
eVis = SupernaturalEffect(eVis);
|
||||
eVis = ExtraordinaryEffect(eVis);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
|
||||
}
|
||||
else if (nGlow == 3)
|
||||
{
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_GREEN);
|
||||
eVis = SupernaturalEffect(eVis);
|
||||
eVis = ExtraordinaryEffect(eVis);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
|
||||
}
|
||||
else if (nGlow == 4)
|
||||
{
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_GREY);
|
||||
eVis = SupernaturalEffect(eVis);
|
||||
eVis = ExtraordinaryEffect(eVis);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
|
||||
}
|
||||
else if (nGlow == 5)
|
||||
{
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_BLUE);
|
||||
eVis = SupernaturalEffect(eVis);
|
||||
eVis = ExtraordinaryEffect(eVis);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
|
||||
}
|
||||
else if (nGlow == 6)
|
||||
{
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_BROWN);
|
||||
eVis = SupernaturalEffect(eVis);
|
||||
eVis = ExtraordinaryEffect(eVis);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
|
||||
}
|
||||
else if (nGlow == 7)
|
||||
{
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_GREEN);
|
||||
eVis = SupernaturalEffect(eVis);
|
||||
eVis = ExtraordinaryEffect(eVis);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
|
||||
}
|
||||
else if (nGlow == 8)
|
||||
{
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_ORANGE);
|
||||
eVis = SupernaturalEffect(eVis);
|
||||
eVis = ExtraordinaryEffect(eVis);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
|
||||
}
|
||||
else if (nGlow == 9)
|
||||
{
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_PURPLE);
|
||||
eVis = SupernaturalEffect(eVis);
|
||||
eVis = ExtraordinaryEffect(eVis);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
|
||||
}
|
||||
else if (nGlow == 10)
|
||||
{
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_RED);
|
||||
eVis = SupernaturalEffect(eVis);
|
||||
eVis = ExtraordinaryEffect(eVis);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
|
||||
}
|
||||
else if (nGlow == 11)
|
||||
{
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_YELLOW);
|
||||
eVis = SupernaturalEffect(eVis);
|
||||
eVis = ExtraordinaryEffect(eVis);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
|
||||
}
|
||||
else if (nGlow == 12)
|
||||
{
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_ORANGE);
|
||||
eVis = SupernaturalEffect(eVis);
|
||||
eVis = ExtraordinaryEffect(eVis);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
|
||||
}
|
||||
else if (nGlow == 13)
|
||||
{
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_PURPLE);
|
||||
eVis = SupernaturalEffect(eVis);
|
||||
eVis = ExtraordinaryEffect(eVis);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
|
||||
}
|
||||
else if (nGlow == 14)
|
||||
{
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_RED);
|
||||
eVis = SupernaturalEffect(eVis);
|
||||
eVis = ExtraordinaryEffect(eVis);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
|
||||
}
|
||||
else if (nGlow == 15)
|
||||
{
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_WHITE);
|
||||
eVis = SupernaturalEffect(eVis);
|
||||
eVis = ExtraordinaryEffect(eVis);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
|
||||
}
|
||||
else if (nGlow == 16)
|
||||
{
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_YELLOW);
|
||||
eVis = SupernaturalEffect(eVis);
|
||||
eVis = ExtraordinaryEffect(eVis);
|
||||
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
|
||||
}
|
||||
|
||||
// Execute default OnSpawn script.
|
||||
ExecuteScript("nw_c2_default9", OBJECT_SELF);
|
||||
|
||||
|
||||
//Post Spawn event requeste
|
||||
if (nSpecEvent == 2 || nSpecEvent == 3)
|
||||
{
|
||||
SignalEvent(OBJECT_SELF,EventUserDefined(EVENT_USER_DEFINED_POSTSPAWN));
|
||||
}
|
||||
|
||||
ms_Nomenclature(OBJECT_SELF);
|
||||
|
||||
rnd_skin(OBJECT_SELF);
|
||||
|
||||
rnd_head(OBJECT_SELF);
|
||||
|
||||
rnd_tattoo(OBJECT_SELF);
|
||||
|
||||
}
|
@ -28,9 +28,13 @@ void main()
|
||||
// Randomize Tattoos
|
||||
rnd_tattoo(OBJECT_SELF);
|
||||
|
||||
//Randomize Clothing
|
||||
// Randomize Clothing
|
||||
rnd_clothes(OBJECT_SELF);
|
||||
|
||||
// Randomize Last Name Usage
|
||||
int bNameChance = d100() > 33;
|
||||
SetLocalInt(OBJECT_SELF, "NAME_TYPE", bNameChance);
|
||||
|
||||
//Calls the Random Name Generator
|
||||
ms_Nomenclature(OBJECT_SELF);
|
||||
|
||||
|
@ -59,25 +59,37 @@ while(!END)
|
||||
break;
|
||||
|
||||
case 8:sChoice = "NPC_COM_DW_F001"; // Dwarven Female
|
||||
iWeight = 4;
|
||||
iWeight = 3;
|
||||
break;
|
||||
|
||||
case 9:sChoice = "NPC_COM_DW_F002"; // Portly Dwarven Female
|
||||
iWeight = 4;
|
||||
iWeight = 2;
|
||||
break;
|
||||
|
||||
case 10:sChoice = "NPC_COM_DW_M001"; // Dwarven Male
|
||||
iWeight = 3;
|
||||
iWeight = 4;
|
||||
break;
|
||||
|
||||
case 11:sChoice = "NPC_COM_DW_M002"; // Portly Dwarven Male
|
||||
iWeight = 2;
|
||||
break;
|
||||
|
||||
case 12:sChoice = "mhalforc";
|
||||
case 12:sChoice = "NPC_COM_EL_F001"; // Elven Female
|
||||
iWeight = 2;
|
||||
break;
|
||||
|
||||
case 13:sChoice = "NPC_COM_EL_F002"; // Portly Elven Female
|
||||
iWeight = 1;
|
||||
break;
|
||||
|
||||
case 14:sChoice = "NPC_COM_EL_M001"; // Elven Male
|
||||
iWeight = 2;
|
||||
break;
|
||||
|
||||
case 15:sChoice = "NPC_COM_EL_M002"; // Portly Elven Male
|
||||
iWeight = 1;
|
||||
break;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//END OF CUSTOM ENCOUNTER TABLE! DO NOT EDIT BELOW THIS LINE//////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -4,7 +4,7 @@
|
||||
Randomize appearance & clothing for commoners
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Jason Collins Watamaniuk
|
||||
//:: Created By: Jason Collins
|
||||
//:: Created On: Sept 01, 2021
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
|
86
_module/nss/se_door_death.nss
Normal file
86
_module/nss/se_door_death.nss
Normal file
@ -0,0 +1,86 @@
|
||||
//::////////////////////////////////////////////////////////////////////////////
|
||||
//:: Name Respawn Door/s v1.1
|
||||
//:: FileName se_door_death
|
||||
//:: Copyright (c) 2001 Bioware Corp.
|
||||
//::////////////////////////////////////////////////////////////////////////////
|
||||
/*
|
||||
Respawn a door after a set delay
|
||||
Set a float on the door ie. RESPAWN_TIMER = xx else the default is used
|
||||
Thanks to Craig Welburn for the insight
|
||||
Cheers to Zarathustra217
|
||||
*/
|
||||
//::////////////////////////////////////////////////////////////////////////////
|
||||
//:: Created By: Sir Elric
|
||||
//:: Created On: 8th May, 2006
|
||||
//:: Modified On: 16th August, 2007
|
||||
//:: Event Used: OnDeath event of a door
|
||||
//::////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "x2_inc_compon"
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// CONSTANTS - Settings below
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
const float RESPAWN_TIMER_DEFAULT = 600.0; // Default respawn delay
|
||||
const int DO_CRAFT_DROP = TRUE; // Drop default Bioware crafting item?
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// PROTOTYPES
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
// Respawn a door after a set delay
|
||||
// If no float is set on the door ie. RESPAWN_TIMER = xx
|
||||
// The default delay will be used ie. RESPAWN_TIMER_DEFAULT = xx
|
||||
// oSelf: - Object calling the script
|
||||
void SE_RespawnDoor(object oSelf);
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// FUNCTIONS
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
void SE_RespawnDoor(object oSelf)
|
||||
{
|
||||
PlayAnimation(ANIMATION_DOOR_CLOSE);
|
||||
int nHealAmount = GetMaxHitPoints(oSelf) - GetCurrentHitPoints(oSelf);
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectHeal(nHealAmount), oSelf);
|
||||
}
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// MAIN
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
object oSelf = OBJECT_SELF;
|
||||
object oKiller = GetLastKiller();
|
||||
|
||||
SetIsDestroyable(FALSE);
|
||||
|
||||
float fDelay = GetLocalFloat(oSelf, "RESPAWN_TIMER");
|
||||
if(fDelay == 0.0)
|
||||
fDelay = RESPAWN_TIMER_DEFAULT;
|
||||
|
||||
DelayCommand(fDelay, SE_RespawnDoor(oSelf));
|
||||
|
||||
if (!GetIsPC(oKiller))
|
||||
return;
|
||||
|
||||
while (GetIsObjectValid(GetMaster(oKiller)))
|
||||
{
|
||||
oKiller=GetMaster(oKiller);
|
||||
}
|
||||
|
||||
if(GetIsObjectValid(oKiller))
|
||||
{
|
||||
AdjustReputation(oKiller, OBJECT_SELF, -35);
|
||||
AdjustAlignment (oKiller, ALIGNMENT_CHAOTIC, 10);
|
||||
}
|
||||
|
||||
if(DO_CRAFT_DROP)
|
||||
craft_drop_placeable();
|
||||
}
|
Binary file not shown.
1149
_module/utc/npc_annihilus.utc.json
Normal file
1149
_module/utc/npc_annihilus.utc.json
Normal file
File diff suppressed because it is too large
Load Diff
1202
_module/utc/npc_baleasgrd001.utc.json
Normal file
1202
_module/utc/npc_baleasgrd001.utc.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -86,11 +86,11 @@
|
||||
},
|
||||
"Cha": {
|
||||
"type": "byte",
|
||||
"value": 10
|
||||
"value": 12
|
||||
},
|
||||
"ChallengeRating": {
|
||||
"type": "float",
|
||||
"value": 6.0
|
||||
"value": 2.0
|
||||
},
|
||||
"ClassList": {
|
||||
"type": "list",
|
||||
@ -103,7 +103,7 @@
|
||||
},
|
||||
"ClassLevel": {
|
||||
"type": "short",
|
||||
"value": 10
|
||||
"value": 3
|
||||
}
|
||||
}
|
||||
]
|
||||
@ -126,11 +126,11 @@
|
||||
},
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": ""
|
||||
"value": "Commoner: Elf Female 01"
|
||||
},
|
||||
"Con": {
|
||||
"type": "byte",
|
||||
"value": 10
|
||||
"value": 14
|
||||
},
|
||||
"Conversation": {
|
||||
"type": "resref",
|
||||
@ -142,11 +142,11 @@
|
||||
},
|
||||
"CurrentHitPoints": {
|
||||
"type": "short",
|
||||
"value": 25
|
||||
"value": 12
|
||||
},
|
||||
"DecayTime": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
"value": 10000
|
||||
},
|
||||
"Deity": {
|
||||
"type": "cexostring",
|
||||
@ -154,11 +154,13 @@
|
||||
},
|
||||
"Description": {
|
||||
"type": "cexolocstring",
|
||||
"value": {}
|
||||
"value": {
|
||||
"0": "This lithes elf appears to be shopping."
|
||||
}
|
||||
},
|
||||
"Dex": {
|
||||
"type": "byte",
|
||||
"value": 10
|
||||
"value": 12
|
||||
},
|
||||
"Disarmable": {
|
||||
"type": "byte",
|
||||
@ -175,13 +177,6 @@
|
||||
"FeatList": {
|
||||
"type": "list",
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Feat": {
|
||||
"type": "word",
|
||||
"value": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Feat": {
|
||||
@ -189,13 +184,6 @@
|
||||
"value": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Feat": {
|
||||
"type": "word",
|
||||
"value": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Feat": {
|
||||
@ -264,7 +252,7 @@
|
||||
"FirstName": {
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
"0": "Commoner"
|
||||
"0": "Commoner: Elf Female 01"
|
||||
}
|
||||
},
|
||||
"fortbonus": {
|
||||
@ -281,11 +269,11 @@
|
||||
},
|
||||
"HitPoints": {
|
||||
"type": "short",
|
||||
"value": 25
|
||||
"value": 12
|
||||
},
|
||||
"Int": {
|
||||
"type": "byte",
|
||||
"value": 10
|
||||
"value": 12
|
||||
},
|
||||
"Interruptable": {
|
||||
"type": "byte",
|
||||
@ -299,6 +287,110 @@
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"ItemList": {
|
||||
"type": "list",
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"InventoryRes": {
|
||||
"type": "resref",
|
||||
"value": "nw_wswdg001"
|
||||
},
|
||||
"Repos_PosX": {
|
||||
"type": "word",
|
||||
"value": 0
|
||||
},
|
||||
"Repos_Posy": {
|
||||
"type": "word",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Dropable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"InventoryRes": {
|
||||
"type": "resref",
|
||||
"value": "ra_it_gold010"
|
||||
},
|
||||
"Pickpocketable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Repos_PosX": {
|
||||
"type": "word",
|
||||
"value": 1
|
||||
},
|
||||
"Repos_Posy": {
|
||||
"type": "word",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 2,
|
||||
"Dropable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"InventoryRes": {
|
||||
"type": "resref",
|
||||
"value": "ra_it_gold010"
|
||||
},
|
||||
"Pickpocketable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Repos_PosX": {
|
||||
"type": "word",
|
||||
"value": 3
|
||||
},
|
||||
"Repos_Posy": {
|
||||
"type": "word",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 3,
|
||||
"InventoryRes": {
|
||||
"type": "resref",
|
||||
"value": "nw_it_mpotion020"
|
||||
},
|
||||
"Pickpocketable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Repos_PosX": {
|
||||
"type": "word",
|
||||
"value": 5
|
||||
},
|
||||
"Repos_Posy": {
|
||||
"type": "word",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 4,
|
||||
"Dropable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"InventoryRes": {
|
||||
"type": "resref",
|
||||
"value": "nw_it_mpotion020"
|
||||
},
|
||||
"Repos_PosX": {
|
||||
"type": "word",
|
||||
"value": 6
|
||||
},
|
||||
"Repos_Posy": {
|
||||
"type": "word",
|
||||
"value": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"LastName": {
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
@ -307,11 +399,11 @@
|
||||
},
|
||||
"LawfulChaotic": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
"value": 50
|
||||
},
|
||||
"Lootable": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
"value": 1
|
||||
},
|
||||
"MaxHitPoints": {
|
||||
"type": "short",
|
||||
@ -327,7 +419,7 @@
|
||||
},
|
||||
"PaletteID": {
|
||||
"type": "byte",
|
||||
"value": 4
|
||||
"value": 39
|
||||
},
|
||||
"PerceptionRange": {
|
||||
"type": "byte",
|
||||
@ -415,6 +507,55 @@
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"__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": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
@ -457,6 +598,34 @@
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"__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": {
|
||||
@ -608,7 +777,7 @@
|
||||
},
|
||||
"SoundSetFile": {
|
||||
"type": "word",
|
||||
"value": 65535
|
||||
"value": 135
|
||||
},
|
||||
"SpecAbilityList": {
|
||||
"type": "list",
|
||||
@ -624,11 +793,11 @@
|
||||
},
|
||||
"Subrace": {
|
||||
"type": "cexostring",
|
||||
"value": ""
|
||||
"value": "Elf"
|
||||
},
|
||||
"Tag": {
|
||||
"type": "cexostring",
|
||||
"value": "Commoner"
|
||||
"value": "NPC_COM_EL_F001"
|
||||
},
|
||||
"Tail_New": {
|
||||
"type": "dword",
|
||||
@ -640,7 +809,27 @@
|
||||
},
|
||||
"TemplateResRef": {
|
||||
"type": "resref",
|
||||
"value": "felf"
|
||||
"value": "npc_com_el_f001"
|
||||
},
|
||||
"VarTable": {
|
||||
"type": "list",
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Name": {
|
||||
"type": "cexostring",
|
||||
"value": "SET_NAME"
|
||||
},
|
||||
"Type": {
|
||||
"type": "dword",
|
||||
"value": 3
|
||||
},
|
||||
"Value": {
|
||||
"type": "cexostring",
|
||||
"value": "RANDOM"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"WalkRate": {
|
||||
"type": "int",
|
850
_module/utc/npc_com_el_f002.utc.json
Normal file
850
_module/utc/npc_com_el_f002.utc.json
Normal file
@ -0,0 +1,850 @@
|
||||
{
|
||||
"__data_type": "UTC ",
|
||||
"Appearance_Head": {
|
||||
"type": "byte",
|
||||
"value": 8
|
||||
},
|
||||
"Appearance_Type": {
|
||||
"type": "word",
|
||||
"value": 1
|
||||
},
|
||||
"ArmorPart_RFoot": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"BodyBag": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"BodyPart_Belt": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"BodyPart_LBicep": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"BodyPart_LFArm": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"BodyPart_LFoot": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"BodyPart_LHand": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"BodyPart_LShin": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"BodyPart_LShoul": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"BodyPart_LThigh": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"BodyPart_Neck": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"BodyPart_Pelvis": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"BodyPart_RBicep": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"BodyPart_RFArm": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"BodyPart_RHand": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"BodyPart_RShin": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"BodyPart_RShoul": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"BodyPart_RThigh": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"BodyPart_Torso": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Cha": {
|
||||
"type": "byte",
|
||||
"value": 12
|
||||
},
|
||||
"ChallengeRating": {
|
||||
"type": "float",
|
||||
"value": 2.0
|
||||
},
|
||||
"ClassList": {
|
||||
"type": "list",
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 2,
|
||||
"Class": {
|
||||
"type": "int",
|
||||
"value": 20
|
||||
},
|
||||
"ClassLevel": {
|
||||
"type": "short",
|
||||
"value": 3
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Color_Hair": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Color_Skin": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Color_Tattoo1": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Color_Tattoo2": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Commoner: Elf Female 02"
|
||||
},
|
||||
"Con": {
|
||||
"type": "byte",
|
||||
"value": 14
|
||||
},
|
||||
"Conversation": {
|
||||
"type": "resref",
|
||||
"value": "re_cv_commoner"
|
||||
},
|
||||
"CRAdjust": {
|
||||
"type": "int",
|
||||
"value": 0
|
||||
},
|
||||
"CurrentHitPoints": {
|
||||
"type": "short",
|
||||
"value": 12
|
||||
},
|
||||
"DecayTime": {
|
||||
"type": "dword",
|
||||
"value": 10000
|
||||
},
|
||||
"Deity": {
|
||||
"type": "cexostring",
|
||||
"value": ""
|
||||
},
|
||||
"Description": {
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
"0": "This lady elf is just going about her day."
|
||||
}
|
||||
},
|
||||
"Dex": {
|
||||
"type": "byte",
|
||||
"value": 12
|
||||
},
|
||||
"Disarmable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Equip_ItemList": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"FactionID": {
|
||||
"type": "word",
|
||||
"value": 2
|
||||
},
|
||||
"FeatList": {
|
||||
"type": "list",
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Feat": {
|
||||
"type": "word",
|
||||
"value": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Feat": {
|
||||
"type": "word",
|
||||
"value": 236
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Feat": {
|
||||
"type": "word",
|
||||
"value": 235
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Feat": {
|
||||
"type": "word",
|
||||
"value": 240
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Feat": {
|
||||
"type": "word",
|
||||
"value": 354
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Feat": {
|
||||
"type": "word",
|
||||
"value": 237
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Feat": {
|
||||
"type": "word",
|
||||
"value": 238
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Feat": {
|
||||
"type": "word",
|
||||
"value": 239
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Feat": {
|
||||
"type": "word",
|
||||
"value": 256
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Feat": {
|
||||
"type": "word",
|
||||
"value": 46
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"FirstName": {
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
"0": "Commoner: Elf Female 02"
|
||||
}
|
||||
},
|
||||
"fortbonus": {
|
||||
"type": "short",
|
||||
"value": 0
|
||||
},
|
||||
"Gender": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"GoodEvil": {
|
||||
"type": "byte",
|
||||
"value": 100
|
||||
},
|
||||
"HitPoints": {
|
||||
"type": "short",
|
||||
"value": 12
|
||||
},
|
||||
"Int": {
|
||||
"type": "byte",
|
||||
"value": 12
|
||||
},
|
||||
"Interruptable": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"IsImmortal": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"IsPC": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"ItemList": {
|
||||
"type": "list",
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"InventoryRes": {
|
||||
"type": "resref",
|
||||
"value": "nw_wswdg001"
|
||||
},
|
||||
"Repos_PosX": {
|
||||
"type": "word",
|
||||
"value": 0
|
||||
},
|
||||
"Repos_Posy": {
|
||||
"type": "word",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Dropable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"InventoryRes": {
|
||||
"type": "resref",
|
||||
"value": "ra_it_gold010"
|
||||
},
|
||||
"Pickpocketable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Repos_PosX": {
|
||||
"type": "word",
|
||||
"value": 1
|
||||
},
|
||||
"Repos_Posy": {
|
||||
"type": "word",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 2,
|
||||
"Dropable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"InventoryRes": {
|
||||
"type": "resref",
|
||||
"value": "ra_it_gold010"
|
||||
},
|
||||
"Pickpocketable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Repos_PosX": {
|
||||
"type": "word",
|
||||
"value": 3
|
||||
},
|
||||
"Repos_Posy": {
|
||||
"type": "word",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 3,
|
||||
"InventoryRes": {
|
||||
"type": "resref",
|
||||
"value": "nw_it_mpotion020"
|
||||
},
|
||||
"Pickpocketable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Repos_PosX": {
|
||||
"type": "word",
|
||||
"value": 5
|
||||
},
|
||||
"Repos_Posy": {
|
||||
"type": "word",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 4,
|
||||
"Dropable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"InventoryRes": {
|
||||
"type": "resref",
|
||||
"value": "nw_it_mpotion020"
|
||||
},
|
||||
"Repos_PosX": {
|
||||
"type": "word",
|
||||
"value": 6
|
||||
},
|
||||
"Repos_Posy": {
|
||||
"type": "word",
|
||||
"value": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"LastName": {
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
"0": ""
|
||||
}
|
||||
},
|
||||
"LawfulChaotic": {
|
||||
"type": "byte",
|
||||
"value": 50
|
||||
},
|
||||
"Lootable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"MaxHitPoints": {
|
||||
"type": "short",
|
||||
"value": 15
|
||||
},
|
||||
"NaturalAC": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"NoPermDeath": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"PaletteID": {
|
||||
"type": "byte",
|
||||
"value": 39
|
||||
},
|
||||
"PerceptionRange": {
|
||||
"type": "byte",
|
||||
"value": 11
|
||||
},
|
||||
"Phenotype": {
|
||||
"type": "int",
|
||||
"value": 2
|
||||
},
|
||||
"Plot": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"PortraitId": {
|
||||
"type": "word",
|
||||
"value": 20
|
||||
},
|
||||
"Race": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"refbonus": {
|
||||
"type": "short",
|
||||
"value": 0
|
||||
},
|
||||
"ScriptAttacked": {
|
||||
"type": "resref",
|
||||
"value": "nw_c2_default5"
|
||||
},
|
||||
"ScriptDamaged": {
|
||||
"type": "resref",
|
||||
"value": "nw_c2_default6"
|
||||
},
|
||||
"ScriptDeath": {
|
||||
"type": "resref",
|
||||
"value": "nw_c2_default7"
|
||||
},
|
||||
"ScriptDialogue": {
|
||||
"type": "resref",
|
||||
"value": "nw_c2_default4"
|
||||
},
|
||||
"ScriptDisturbed": {
|
||||
"type": "resref",
|
||||
"value": "nw_c2_default8"
|
||||
},
|
||||
"ScriptEndRound": {
|
||||
"type": "resref",
|
||||
"value": "nw_c2_default3"
|
||||
},
|
||||
"ScriptHeartbeat": {
|
||||
"type": "resref",
|
||||
"value": "nw_c2_default1"
|
||||
},
|
||||
"ScriptOnBlocked": {
|
||||
"type": "resref",
|
||||
"value": "re_common_blkd"
|
||||
},
|
||||
"ScriptOnNotice": {
|
||||
"type": "resref",
|
||||
"value": "nw_c2_default2"
|
||||
},
|
||||
"ScriptRested": {
|
||||
"type": "resref",
|
||||
"value": "nw_c2_defaulta"
|
||||
},
|
||||
"ScriptSpawn": {
|
||||
"type": "resref",
|
||||
"value": "re_common_spawn"
|
||||
},
|
||||
"ScriptSpellAt": {
|
||||
"type": "resref",
|
||||
"value": "nw_c2_defaultb"
|
||||
},
|
||||
"ScriptUserDefine": {
|
||||
"type": "resref",
|
||||
"value": "nw_c2_defaultd"
|
||||
},
|
||||
"SkillList": {
|
||||
"type": "list",
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"__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": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"__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": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"__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": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"SoundSetFile": {
|
||||
"type": "word",
|
||||
"value": 180
|
||||
},
|
||||
"SpecAbilityList": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"StartingPackage": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"Str": {
|
||||
"type": "byte",
|
||||
"value": 10
|
||||
},
|
||||
"Subrace": {
|
||||
"type": "cexostring",
|
||||
"value": "Elf"
|
||||
},
|
||||
"Tag": {
|
||||
"type": "cexostring",
|
||||
"value": "NPC_COM_EL_F002"
|
||||
},
|
||||
"Tail_New": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
},
|
||||
"TemplateList": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"TemplateResRef": {
|
||||
"type": "resref",
|
||||
"value": "npc_com_el_f002"
|
||||
},
|
||||
"VarTable": {
|
||||
"type": "list",
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Name": {
|
||||
"type": "cexostring",
|
||||
"value": "SET_NAME"
|
||||
},
|
||||
"Type": {
|
||||
"type": "dword",
|
||||
"value": 3
|
||||
},
|
||||
"Value": {
|
||||
"type": "cexostring",
|
||||
"value": "RANDOM"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"WalkRate": {
|
||||
"type": "int",
|
||||
"value": 4
|
||||
},
|
||||
"willbonus": {
|
||||
"type": "short",
|
||||
"value": 0
|
||||
},
|
||||
"Wings_New": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
},
|
||||
"Wis": {
|
||||
"type": "byte",
|
||||
"value": 10
|
||||
}
|
||||
}
|
@ -90,7 +90,7 @@
|
||||
},
|
||||
"ChallengeRating": {
|
||||
"type": "float",
|
||||
"value": 6.0
|
||||
"value": 2.0
|
||||
},
|
||||
"ClassList": {
|
||||
"type": "list",
|
||||
@ -103,7 +103,7 @@
|
||||
},
|
||||
"ClassLevel": {
|
||||
"type": "short",
|
||||
"value": 10
|
||||
"value": 3
|
||||
}
|
||||
}
|
||||
]
|
||||
@ -126,11 +126,11 @@
|
||||
},
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": ""
|
||||
"value": "Commoner: Male Elf 01"
|
||||
},
|
||||
"Con": {
|
||||
"type": "byte",
|
||||
"value": 10
|
||||
"value": 14
|
||||
},
|
||||
"Conversation": {
|
||||
"type": "resref",
|
||||
@ -142,11 +142,11 @@
|
||||
},
|
||||
"CurrentHitPoints": {
|
||||
"type": "short",
|
||||
"value": 25
|
||||
"value": 12
|
||||
},
|
||||
"DecayTime": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
"value": 10000
|
||||
},
|
||||
"Deity": {
|
||||
"type": "cexostring",
|
||||
@ -155,12 +155,12 @@
|
||||
"Description": {
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
"0": ""
|
||||
"0": "Ths fellow is just wandering around & taking in the city."
|
||||
}
|
||||
},
|
||||
"Dex": {
|
||||
"type": "byte",
|
||||
"value": 10
|
||||
"value": 12
|
||||
},
|
||||
"Disarmable": {
|
||||
"type": "byte",
|
||||
@ -177,13 +177,6 @@
|
||||
"FeatList": {
|
||||
"type": "list",
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Feat": {
|
||||
"type": "word",
|
||||
"value": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Feat": {
|
||||
@ -191,13 +184,6 @@
|
||||
"value": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Feat": {
|
||||
"type": "word",
|
||||
"value": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Feat": {
|
||||
@ -266,7 +252,7 @@
|
||||
"FirstName": {
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
"0": "Commoner"
|
||||
"0": "Commoner: Male Elf 01"
|
||||
}
|
||||
},
|
||||
"fortbonus": {
|
||||
@ -283,11 +269,11 @@
|
||||
},
|
||||
"HitPoints": {
|
||||
"type": "short",
|
||||
"value": 25
|
||||
"value": 12
|
||||
},
|
||||
"Int": {
|
||||
"type": "byte",
|
||||
"value": 10
|
||||
"value": 12
|
||||
},
|
||||
"Interruptable": {
|
||||
"type": "byte",
|
||||
@ -301,6 +287,110 @@
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"ItemList": {
|
||||
"type": "list",
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"InventoryRes": {
|
||||
"type": "resref",
|
||||
"value": "nw_it_mpotion020"
|
||||
},
|
||||
"Pickpocketable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Repos_PosX": {
|
||||
"type": "word",
|
||||
"value": 0
|
||||
},
|
||||
"Repos_Posy": {
|
||||
"type": "word",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Dropable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"InventoryRes": {
|
||||
"type": "resref",
|
||||
"value": "nw_it_mpotion020"
|
||||
},
|
||||
"Repos_PosX": {
|
||||
"type": "word",
|
||||
"value": 1
|
||||
},
|
||||
"Repos_Posy": {
|
||||
"type": "word",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 2,
|
||||
"Dropable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"InventoryRes": {
|
||||
"type": "resref",
|
||||
"value": "ra_it_gold010"
|
||||
},
|
||||
"Pickpocketable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Repos_PosX": {
|
||||
"type": "word",
|
||||
"value": 2
|
||||
},
|
||||
"Repos_Posy": {
|
||||
"type": "word",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 3,
|
||||
"Dropable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"InventoryRes": {
|
||||
"type": "resref",
|
||||
"value": "ra_it_gold010"
|
||||
},
|
||||
"Pickpocketable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Repos_PosX": {
|
||||
"type": "word",
|
||||
"value": 4
|
||||
},
|
||||
"Repos_Posy": {
|
||||
"type": "word",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 4,
|
||||
"InventoryRes": {
|
||||
"type": "resref",
|
||||
"value": "nw_wswdg001"
|
||||
},
|
||||
"Repos_PosX": {
|
||||
"type": "word",
|
||||
"value": 6
|
||||
},
|
||||
"Repos_Posy": {
|
||||
"type": "word",
|
||||
"value": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"LastName": {
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
@ -309,11 +399,11 @@
|
||||
},
|
||||
"LawfulChaotic": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
"value": 50
|
||||
},
|
||||
"Lootable": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
"value": 1
|
||||
},
|
||||
"MaxHitPoints": {
|
||||
"type": "short",
|
||||
@ -329,7 +419,7 @@
|
||||
},
|
||||
"PaletteID": {
|
||||
"type": "byte",
|
||||
"value": 4
|
||||
"value": 39
|
||||
},
|
||||
"PerceptionRange": {
|
||||
"type": "byte",
|
||||
@ -508,6 +598,83 @@
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 5
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 5
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
@ -610,7 +777,7 @@
|
||||
},
|
||||
"SoundSetFile": {
|
||||
"type": "word",
|
||||
"value": 65535
|
||||
"value": 132
|
||||
},
|
||||
"SpecAbilityList": {
|
||||
"type": "list",
|
||||
@ -626,11 +793,11 @@
|
||||
},
|
||||
"Subrace": {
|
||||
"type": "cexostring",
|
||||
"value": ""
|
||||
"value": "Elf"
|
||||
},
|
||||
"Tag": {
|
||||
"type": "cexostring",
|
||||
"value": "Commoner"
|
||||
"value": "NPC_COM_EL_M001"
|
||||
},
|
||||
"Tail_New": {
|
||||
"type": "dword",
|
||||
@ -642,7 +809,27 @@
|
||||
},
|
||||
"TemplateResRef": {
|
||||
"type": "resref",
|
||||
"value": "melf"
|
||||
"value": "npc_com_el_m001"
|
||||
},
|
||||
"VarTable": {
|
||||
"type": "list",
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Name": {
|
||||
"type": "cexostring",
|
||||
"value": "SET_NAME"
|
||||
},
|
||||
"Type": {
|
||||
"type": "dword",
|
||||
"value": 3
|
||||
},
|
||||
"Value": {
|
||||
"type": "cexostring",
|
||||
"value": "RANDOM"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"WalkRate": {
|
||||
"type": "int",
|
850
_module/utc/npc_com_el_m002.utc.json
Normal file
850
_module/utc/npc_com_el_m002.utc.json
Normal file
@ -0,0 +1,850 @@
|
||||
{
|
||||
"__data_type": "UTC ",
|
||||
"Appearance_Head": {
|
||||
"type": "byte",
|
||||
"value": 14
|
||||
},
|
||||
"Appearance_Type": {
|
||||
"type": "word",
|
||||
"value": 1
|
||||
},
|
||||
"ArmorPart_RFoot": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"BodyBag": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"BodyPart_Belt": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"BodyPart_LBicep": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"BodyPart_LFArm": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"BodyPart_LFoot": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"BodyPart_LHand": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"BodyPart_LShin": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"BodyPart_LShoul": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"BodyPart_LThigh": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"BodyPart_Neck": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"BodyPart_Pelvis": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"BodyPart_RBicep": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"BodyPart_RFArm": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"BodyPart_RHand": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"BodyPart_RShin": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"BodyPart_RShoul": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"BodyPart_RThigh": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"BodyPart_Torso": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Cha": {
|
||||
"type": "byte",
|
||||
"value": 10
|
||||
},
|
||||
"ChallengeRating": {
|
||||
"type": "float",
|
||||
"value": 2.0
|
||||
},
|
||||
"ClassList": {
|
||||
"type": "list",
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 2,
|
||||
"Class": {
|
||||
"type": "int",
|
||||
"value": 20
|
||||
},
|
||||
"ClassLevel": {
|
||||
"type": "short",
|
||||
"value": 3
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Color_Hair": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Color_Skin": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Color_Tattoo1": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Color_Tattoo2": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Commoner: Male Elf 02"
|
||||
},
|
||||
"Con": {
|
||||
"type": "byte",
|
||||
"value": 14
|
||||
},
|
||||
"Conversation": {
|
||||
"type": "resref",
|
||||
"value": "re_cv_commoner"
|
||||
},
|
||||
"CRAdjust": {
|
||||
"type": "int",
|
||||
"value": 0
|
||||
},
|
||||
"CurrentHitPoints": {
|
||||
"type": "short",
|
||||
"value": 12
|
||||
},
|
||||
"DecayTime": {
|
||||
"type": "dword",
|
||||
"value": 10000
|
||||
},
|
||||
"Deity": {
|
||||
"type": "cexostring",
|
||||
"value": ""
|
||||
},
|
||||
"Description": {
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
"0": "Now that's a big elf!"
|
||||
}
|
||||
},
|
||||
"Dex": {
|
||||
"type": "byte",
|
||||
"value": 12
|
||||
},
|
||||
"Disarmable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Equip_ItemList": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"FactionID": {
|
||||
"type": "word",
|
||||
"value": 2
|
||||
},
|
||||
"FeatList": {
|
||||
"type": "list",
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Feat": {
|
||||
"type": "word",
|
||||
"value": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Feat": {
|
||||
"type": "word",
|
||||
"value": 236
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Feat": {
|
||||
"type": "word",
|
||||
"value": 235
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Feat": {
|
||||
"type": "word",
|
||||
"value": 240
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Feat": {
|
||||
"type": "word",
|
||||
"value": 354
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Feat": {
|
||||
"type": "word",
|
||||
"value": 237
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Feat": {
|
||||
"type": "word",
|
||||
"value": 238
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Feat": {
|
||||
"type": "word",
|
||||
"value": 239
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Feat": {
|
||||
"type": "word",
|
||||
"value": 256
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Feat": {
|
||||
"type": "word",
|
||||
"value": 46
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"FirstName": {
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
"0": "Commoner: Male Elf 02"
|
||||
}
|
||||
},
|
||||
"fortbonus": {
|
||||
"type": "short",
|
||||
"value": 0
|
||||
},
|
||||
"Gender": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"GoodEvil": {
|
||||
"type": "byte",
|
||||
"value": 100
|
||||
},
|
||||
"HitPoints": {
|
||||
"type": "short",
|
||||
"value": 12
|
||||
},
|
||||
"Int": {
|
||||
"type": "byte",
|
||||
"value": 12
|
||||
},
|
||||
"Interruptable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"IsImmortal": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"IsPC": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"ItemList": {
|
||||
"type": "list",
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"InventoryRes": {
|
||||
"type": "resref",
|
||||
"value": "nw_it_mpotion020"
|
||||
},
|
||||
"Pickpocketable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Repos_PosX": {
|
||||
"type": "word",
|
||||
"value": 0
|
||||
},
|
||||
"Repos_Posy": {
|
||||
"type": "word",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 1,
|
||||
"Dropable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"InventoryRes": {
|
||||
"type": "resref",
|
||||
"value": "nw_it_mpotion020"
|
||||
},
|
||||
"Repos_PosX": {
|
||||
"type": "word",
|
||||
"value": 1
|
||||
},
|
||||
"Repos_Posy": {
|
||||
"type": "word",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 2,
|
||||
"Dropable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"InventoryRes": {
|
||||
"type": "resref",
|
||||
"value": "ra_it_gold010"
|
||||
},
|
||||
"Pickpocketable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Repos_PosX": {
|
||||
"type": "word",
|
||||
"value": 2
|
||||
},
|
||||
"Repos_Posy": {
|
||||
"type": "word",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 3,
|
||||
"Dropable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"InventoryRes": {
|
||||
"type": "resref",
|
||||
"value": "ra_it_gold010"
|
||||
},
|
||||
"Pickpocketable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"Repos_PosX": {
|
||||
"type": "word",
|
||||
"value": 4
|
||||
},
|
||||
"Repos_Posy": {
|
||||
"type": "word",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 4,
|
||||
"InventoryRes": {
|
||||
"type": "resref",
|
||||
"value": "nw_wswdg001"
|
||||
},
|
||||
"Repos_PosX": {
|
||||
"type": "word",
|
||||
"value": 6
|
||||
},
|
||||
"Repos_Posy": {
|
||||
"type": "word",
|
||||
"value": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"LastName": {
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
"0": ""
|
||||
}
|
||||
},
|
||||
"LawfulChaotic": {
|
||||
"type": "byte",
|
||||
"value": 50
|
||||
},
|
||||
"Lootable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"MaxHitPoints": {
|
||||
"type": "short",
|
||||
"value": 15
|
||||
},
|
||||
"NaturalAC": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"NoPermDeath": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"PaletteID": {
|
||||
"type": "byte",
|
||||
"value": 39
|
||||
},
|
||||
"PerceptionRange": {
|
||||
"type": "byte",
|
||||
"value": 11
|
||||
},
|
||||
"Phenotype": {
|
||||
"type": "int",
|
||||
"value": 2
|
||||
},
|
||||
"Plot": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"PortraitId": {
|
||||
"type": "word",
|
||||
"value": 38
|
||||
},
|
||||
"Race": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"refbonus": {
|
||||
"type": "short",
|
||||
"value": 0
|
||||
},
|
||||
"ScriptAttacked": {
|
||||
"type": "resref",
|
||||
"value": "nw_c2_default5"
|
||||
},
|
||||
"ScriptDamaged": {
|
||||
"type": "resref",
|
||||
"value": "nw_c2_default6"
|
||||
},
|
||||
"ScriptDeath": {
|
||||
"type": "resref",
|
||||
"value": "nw_c2_default7"
|
||||
},
|
||||
"ScriptDialogue": {
|
||||
"type": "resref",
|
||||
"value": "nw_c2_default4"
|
||||
},
|
||||
"ScriptDisturbed": {
|
||||
"type": "resref",
|
||||
"value": "nw_c2_default8"
|
||||
},
|
||||
"ScriptEndRound": {
|
||||
"type": "resref",
|
||||
"value": "nw_c2_default3"
|
||||
},
|
||||
"ScriptHeartbeat": {
|
||||
"type": "resref",
|
||||
"value": "nw_c2_default1"
|
||||
},
|
||||
"ScriptOnBlocked": {
|
||||
"type": "resref",
|
||||
"value": "re_common_blkd"
|
||||
},
|
||||
"ScriptOnNotice": {
|
||||
"type": "resref",
|
||||
"value": "nw_c2_default2"
|
||||
},
|
||||
"ScriptRested": {
|
||||
"type": "resref",
|
||||
"value": "nw_c2_defaulta"
|
||||
},
|
||||
"ScriptSpawn": {
|
||||
"type": "resref",
|
||||
"value": "re_common_spawn"
|
||||
},
|
||||
"ScriptSpellAt": {
|
||||
"type": "resref",
|
||||
"value": "nw_c2_defaultb"
|
||||
},
|
||||
"ScriptUserDefine": {
|
||||
"type": "resref",
|
||||
"value": "nw_c2_defaultd"
|
||||
},
|
||||
"SkillList": {
|
||||
"type": "list",
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 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": 5
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 5
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Rank": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"SoundSetFile": {
|
||||
"type": "word",
|
||||
"value": 132
|
||||
},
|
||||
"SpecAbilityList": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"StartingPackage": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"Str": {
|
||||
"type": "byte",
|
||||
"value": 18
|
||||
},
|
||||
"Subrace": {
|
||||
"type": "cexostring",
|
||||
"value": "Elf"
|
||||
},
|
||||
"Tag": {
|
||||
"type": "cexostring",
|
||||
"value": "NPC_COM_EL_M002"
|
||||
},
|
||||
"Tail_New": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
},
|
||||
"TemplateList": {
|
||||
"type": "list",
|
||||
"value": []
|
||||
},
|
||||
"TemplateResRef": {
|
||||
"type": "resref",
|
||||
"value": "npc_com_el_m002"
|
||||
},
|
||||
"VarTable": {
|
||||
"type": "list",
|
||||
"value": [
|
||||
{
|
||||
"__struct_id": 0,
|
||||
"Name": {
|
||||
"type": "cexostring",
|
||||
"value": "SET_NAME"
|
||||
},
|
||||
"Type": {
|
||||
"type": "dword",
|
||||
"value": 3
|
||||
},
|
||||
"Value": {
|
||||
"type": "cexostring",
|
||||
"value": "RANDOM"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"WalkRate": {
|
||||
"type": "int",
|
||||
"value": 4
|
||||
},
|
||||
"willbonus": {
|
||||
"type": "short",
|
||||
"value": 0
|
||||
},
|
||||
"Wings_New": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
},
|
||||
"Wis": {
|
||||
"type": "byte",
|
||||
"value": 10
|
||||
}
|
||||
}
|
1465
_module/utc/npc_goldeye001.utc.json
Normal file
1465
_module/utc/npc_goldeye001.utc.json
Normal file
File diff suppressed because it is too large
Load Diff
213
_module/utd/barred_door.utd.json
Normal file
213
_module/utd/barred_door.utd.json
Normal file
@ -0,0 +1,213 @@
|
||||
{
|
||||
"__data_type": "UTD ",
|
||||
"AnimationState": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"Appearance": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
},
|
||||
"AutoRemoveKey": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"CloseLockDC": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Barred Door\r\n\r\nUse this for doors that are never meant to open."
|
||||
},
|
||||
"Conversation": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"CurrentHP": {
|
||||
"type": "short",
|
||||
"value": 200
|
||||
},
|
||||
"Description": {
|
||||
"id": 9078,
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
"0": "A well made agafari door decorated with bits of ceramic."
|
||||
}
|
||||
},
|
||||
"DisarmDC": {
|
||||
"type": "byte",
|
||||
"value": 15
|
||||
},
|
||||
"Faction": {
|
||||
"type": "dword",
|
||||
"value": 1
|
||||
},
|
||||
"Fort": {
|
||||
"type": "byte",
|
||||
"value": 30
|
||||
},
|
||||
"GenericType_New": {
|
||||
"type": "dword",
|
||||
"value": 12
|
||||
},
|
||||
"Hardness": {
|
||||
"type": "byte",
|
||||
"value": 20
|
||||
},
|
||||
"HP": {
|
||||
"type": "short",
|
||||
"value": 200
|
||||
},
|
||||
"Interruptable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"KeyName": {
|
||||
"type": "cexostring",
|
||||
"value": ""
|
||||
},
|
||||
"KeyRequired": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"LinkedTo": {
|
||||
"type": "cexostring",
|
||||
"value": ""
|
||||
},
|
||||
"LinkedToFlags": {
|
||||
"type": "byte",
|
||||
"value": 2
|
||||
},
|
||||
"LoadScreenID": {
|
||||
"type": "word",
|
||||
"value": 0
|
||||
},
|
||||
"Lockable": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"Locked": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"LocName": {
|
||||
"id": 5349,
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
"0": "Barred Door"
|
||||
}
|
||||
},
|
||||
"OnClick": {
|
||||
"type": "resref",
|
||||
"value": "door_area_trans"
|
||||
},
|
||||
"OnClosed": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"OnDamaged": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"OnDeath": {
|
||||
"type": "resref",
|
||||
"value": "se_door_death"
|
||||
},
|
||||
"OnDisarm": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"OnFailToOpen": {
|
||||
"type": "resref",
|
||||
"value": "ar_barredoor_f2o"
|
||||
},
|
||||
"OnHeartbeat": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"OnLock": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"OnMeleeAttacked": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"OnOpen": {
|
||||
"type": "resref",
|
||||
"value": "ds_closedoors"
|
||||
},
|
||||
"OnSpellCastAt": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"OnTrapTriggered": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"OnUnlock": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"OnUserDefined": {
|
||||
"type": "resref",
|
||||
"value": ""
|
||||
},
|
||||
"OpenLockDC": {
|
||||
"type": "byte",
|
||||
"value": 18
|
||||
},
|
||||
"PaletteID": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"Plot": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"PortraitId": {
|
||||
"type": "word",
|
||||
"value": 558
|
||||
},
|
||||
"Ref": {
|
||||
"type": "byte",
|
||||
"value": 20
|
||||
},
|
||||
"Tag": {
|
||||
"type": "cexostring",
|
||||
"value": "BARRED_DOOR"
|
||||
},
|
||||
"TemplateResRef": {
|
||||
"type": "resref",
|
||||
"value": "barred_door"
|
||||
},
|
||||
"TrapDetectable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"TrapDetectDC": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"TrapDisarmable": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"TrapFlag": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"TrapOneShot": {
|
||||
"type": "byte",
|
||||
"value": 1
|
||||
},
|
||||
"TrapType": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"Will": {
|
||||
"type": "byte",
|
||||
"value": 20
|
||||
}
|
||||
}
|
114
_module/uti/ra_ashlmwhite001.uti.json
Normal file
114
_module/uti/ra_ashlmwhite001.uti.json
Normal file
@ -0,0 +1,114 @@
|
||||
{
|
||||
"__data_type": "UTI ",
|
||||
"AddCost": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
},
|
||||
"BaseItem": {
|
||||
"type": "int",
|
||||
"value": 56
|
||||
},
|
||||
"Charges": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Large Shield +1"
|
||||
},
|
||||
"Cost": {
|
||||
"type": "dword",
|
||||
"value": 676
|
||||
},
|
||||
"Cursed": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"DescIdentified": {
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
"0": "A large shield is effective protection for the adventurer who can afford the added weight and encumbrance. This one has been slightly enchanted to proved even more protection."
|
||||
}
|
||||
},
|
||||
"Description": {
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
"0": ""
|
||||
}
|
||||
},
|
||||
"Identified": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"LocalizedName": {
|
||||
"id": 1550,
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
"0": "Large Shield +1"
|
||||
}
|
||||
},
|
||||
"ModelPart1": {
|
||||
"type": "byte",
|
||||
"value": 87
|
||||
},
|
||||
"PaletteID": {
|
||||
"type": "byte",
|
||||
"value": 11
|
||||
},
|
||||
"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": 1
|
||||
},
|
||||
"Subtype": {
|
||||
"type": "word",
|
||||
"value": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"StackSize": {
|
||||
"type": "word",
|
||||
"value": 1
|
||||
},
|
||||
"Stolen": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"Tag": {
|
||||
"type": "cexostring",
|
||||
"value": "RA_ASHLMWHITE001"
|
||||
},
|
||||
"TemplateResRef": {
|
||||
"type": "resref",
|
||||
"value": "ra_ashlmwhite001"
|
||||
}
|
||||
}
|
120
_module/uti/ra_wmblmu_001.uti.json
Normal file
120
_module/uti/ra_wmblmu_001.uti.json
Normal file
@ -0,0 +1,120 @@
|
||||
{
|
||||
"__data_type": "UTI ",
|
||||
"AddCost": {
|
||||
"type": "dword",
|
||||
"value": 0
|
||||
},
|
||||
"BaseItem": {
|
||||
"type": "int",
|
||||
"value": 318
|
||||
},
|
||||
"Charges": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"Comment": {
|
||||
"type": "cexostring",
|
||||
"value": "Maul +1"
|
||||
},
|
||||
"Cost": {
|
||||
"type": "dword",
|
||||
"value": 1535
|
||||
},
|
||||
"Cursed": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"DescIdentified": {
|
||||
"type": "cexolocstring",
|
||||
"value": {}
|
||||
},
|
||||
"Description": {
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
"0": ""
|
||||
}
|
||||
},
|
||||
"Identified": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"LocalizedName": {
|
||||
"id": 16807580,
|
||||
"type": "cexolocstring",
|
||||
"value": {
|
||||
"0": "Maul +1"
|
||||
}
|
||||
},
|
||||
"ModelPart1": {
|
||||
"type": "byte",
|
||||
"value": 112
|
||||
},
|
||||
"ModelPart2": {
|
||||
"type": "byte",
|
||||
"value": 112
|
||||
},
|
||||
"ModelPart3": {
|
||||
"type": "byte",
|
||||
"value": 112
|
||||
},
|
||||
"PaletteID": {
|
||||
"type": "byte",
|
||||
"value": 41
|
||||
},
|
||||
"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": 6
|
||||
},
|
||||
"Subtype": {
|
||||
"type": "word",
|
||||
"value": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"StackSize": {
|
||||
"type": "word",
|
||||
"value": 1
|
||||
},
|
||||
"Stolen": {
|
||||
"type": "byte",
|
||||
"value": 0
|
||||
},
|
||||
"Tag": {
|
||||
"type": "cexostring",
|
||||
"value": "RA_WMBLMU_001"
|
||||
},
|
||||
"TemplateResRef": {
|
||||
"type": "resref",
|
||||
"value": "ra_wmblmu_001"
|
||||
}
|
||||
}
|
@ -154,7 +154,7 @@
|
||||
},
|
||||
"PaletteID": {
|
||||
"type": "byte",
|
||||
"value": 9
|
||||
"value": 2
|
||||
},
|
||||
"Plot": {
|
||||
"type": "byte",
|
||||
|
@ -152,7 +152,7 @@
|
||||
},
|
||||
"PaletteID": {
|
||||
"type": "byte",
|
||||
"value": 9
|
||||
"value": 2
|
||||
},
|
||||
"Plot": {
|
||||
"type": "byte",
|
||||
|
@ -152,7 +152,7 @@
|
||||
},
|
||||
"PaletteID": {
|
||||
"type": "byte",
|
||||
"value": 9
|
||||
"value": 2
|
||||
},
|
||||
"Plot": {
|
||||
"type": "byte",
|
||||
|
@ -156,7 +156,7 @@
|
||||
},
|
||||
"PaletteID": {
|
||||
"type": "byte",
|
||||
"value": 9
|
||||
"value": 2
|
||||
},
|
||||
"Plot": {
|
||||
"type": "byte",
|
||||
|
@ -154,7 +154,7 @@
|
||||
},
|
||||
"PaletteID": {
|
||||
"type": "byte",
|
||||
"value": 9
|
||||
"value": 2
|
||||
},
|
||||
"Plot": {
|
||||
"type": "byte",
|
||||
|
@ -154,7 +154,7 @@
|
||||
},
|
||||
"PaletteID": {
|
||||
"type": "byte",
|
||||
"value": 9
|
||||
"value": 2
|
||||
},
|
||||
"Plot": {
|
||||
"type": "byte",
|
||||
|
Loading…
x
Reference in New Issue
Block a user