mirror of
https://github.com/DaanVandenBosch/phantasmal-world.git
synced 2025-04-04 22:58:29 +08:00
More .dat object properties are now parsed.
This commit is contained in:
parent
1a1a52bd43
commit
206cc3ebb0
@ -134,5 +134,6 @@ Features that are in ***bold italics*** are planned and not yet implemented.
|
|||||||
- Forest Laser
|
- Forest Laser
|
||||||
- Switch (none door)
|
- Switch (none door)
|
||||||
- Energy Barrier
|
- Energy Barrier
|
||||||
|
- Teleporter
|
||||||
- [Load Quest](#load-quest): Can't parse quest 4
|
- [Load Quest](#load-quest): Can't parse quest 4
|
||||||
- [Load Quest](#load-quest): Can't parse quest 125 White Day
|
- [Load Quest](#load-quest): Can't parse quest 125 White Day
|
||||||
|
@ -27,7 +27,12 @@ export type DatEntity = {
|
|||||||
unknown: number[][];
|
unknown: number[][];
|
||||||
};
|
};
|
||||||
|
|
||||||
export type DatObject = DatEntity;
|
export type DatObject = DatEntity & {
|
||||||
|
id: number;
|
||||||
|
group_id: number;
|
||||||
|
object_id: number;
|
||||||
|
action: number;
|
||||||
|
};
|
||||||
|
|
||||||
export type DatNpc = DatEntity & {
|
export type DatNpc = DatEntity & {
|
||||||
skin: number;
|
skin: number;
|
||||||
@ -69,7 +74,9 @@ export function parse_dat(cursor: Cursor): DatFile {
|
|||||||
|
|
||||||
for (let i = 0; i < object_count; ++i) {
|
for (let i = 0; i < object_count; ++i) {
|
||||||
const type_id = cursor.u16();
|
const type_id = cursor.u16();
|
||||||
const unknown1 = cursor.u8_array(10);
|
const unknown1 = cursor.u8_array(6);
|
||||||
|
const id = cursor.u16();
|
||||||
|
const group_id = cursor.u16();
|
||||||
const section_id = cursor.u16();
|
const section_id = cursor.u16();
|
||||||
const unknown2 = cursor.u8_array(2);
|
const unknown2 = cursor.u8_array(2);
|
||||||
const position = cursor.vec3_f32();
|
const position = cursor.vec3_f32();
|
||||||
@ -77,14 +84,20 @@ export function parse_dat(cursor: Cursor): DatFile {
|
|||||||
const rotation_y = (cursor.i32() / 0xffff) * 2 * Math.PI;
|
const rotation_y = (cursor.i32() / 0xffff) * 2 * Math.PI;
|
||||||
const rotation_z = (cursor.i32() / 0xffff) * 2 * Math.PI;
|
const rotation_z = (cursor.i32() / 0xffff) * 2 * Math.PI;
|
||||||
const scale = cursor.vec3_f32();
|
const scale = cursor.vec3_f32();
|
||||||
const unknown3 = cursor.u8_array(16);
|
const object_id = cursor.u32();
|
||||||
|
const action = cursor.u32();
|
||||||
|
const unknown3 = cursor.u8_array(8);
|
||||||
|
|
||||||
objs.push({
|
objs.push({
|
||||||
type_id,
|
type_id,
|
||||||
|
id,
|
||||||
|
group_id,
|
||||||
section_id,
|
section_id,
|
||||||
position,
|
position,
|
||||||
rotation: new Vec3(rotation_x, rotation_y, rotation_z),
|
rotation: new Vec3(rotation_x, rotation_y, rotation_z),
|
||||||
scale,
|
scale,
|
||||||
|
object_id,
|
||||||
|
action,
|
||||||
area_id,
|
area_id,
|
||||||
unknown: [unknown1, unknown2, unknown3],
|
unknown: [unknown1, unknown2, unknown3],
|
||||||
});
|
});
|
||||||
@ -180,10 +193,12 @@ export function write_dat({ objs, npcs, unknowns }: DatFile): ResizableBuffer {
|
|||||||
|
|
||||||
cursor.write_u16(obj.type_id);
|
cursor.write_u16(obj.type_id);
|
||||||
|
|
||||||
if (obj.unknown[0].length !== 10)
|
if (obj.unknown[0].length !== 6)
|
||||||
throw new Error(`unknown[0] should be of length 10, was ${obj.unknown[0].length}`);
|
throw new Error(`unknown[0] should be of length 6, was ${obj.unknown[0].length}`);
|
||||||
|
|
||||||
cursor.write_u8_array(obj.unknown[0]);
|
cursor.write_u8_array(obj.unknown[0]);
|
||||||
|
cursor.write_u16(obj.id);
|
||||||
|
cursor.write_u16(obj.group_id);
|
||||||
cursor.write_u16(obj.section_id);
|
cursor.write_u16(obj.section_id);
|
||||||
|
|
||||||
if (obj.unknown[1].length !== 2)
|
if (obj.unknown[1].length !== 2)
|
||||||
@ -195,9 +210,11 @@ export function write_dat({ objs, npcs, unknowns }: DatFile): ResizableBuffer {
|
|||||||
cursor.write_i32(Math.round((obj.rotation.y / (2 * Math.PI)) * 0xffff));
|
cursor.write_i32(Math.round((obj.rotation.y / (2 * Math.PI)) * 0xffff));
|
||||||
cursor.write_i32(Math.round((obj.rotation.z / (2 * Math.PI)) * 0xffff));
|
cursor.write_i32(Math.round((obj.rotation.z / (2 * Math.PI)) * 0xffff));
|
||||||
cursor.write_vec3_f32(obj.scale);
|
cursor.write_vec3_f32(obj.scale);
|
||||||
|
cursor.write_u32(obj.object_id);
|
||||||
|
cursor.write_u32(obj.action);
|
||||||
|
|
||||||
if (obj.unknown[2].length !== 16)
|
if (obj.unknown[2].length !== 8)
|
||||||
throw new Error(`unknown[2] should be of length 16, was ${obj.unknown[2].length}`);
|
throw new Error(`unknown[2] should be of length 8, was ${obj.unknown[2].length}`);
|
||||||
|
|
||||||
cursor.write_u8_array(obj.unknown[2]);
|
cursor.write_u8_array(obj.unknown[2]);
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,9 @@ export type QuestNpc = {
|
|||||||
*/
|
*/
|
||||||
readonly position: Vec3;
|
readonly position: Vec3;
|
||||||
readonly rotation: Vec3;
|
readonly rotation: Vec3;
|
||||||
|
/**
|
||||||
|
* Seemingly 3 floats, not sure what they represent.
|
||||||
|
*/
|
||||||
readonly scale: Vec3;
|
readonly scale: Vec3;
|
||||||
/**
|
/**
|
||||||
* Data of which the purpose hasn't been discovered yet.
|
* Data of which the purpose hasn't been discovered yet.
|
||||||
@ -24,8 +27,12 @@ export type QuestNpc = {
|
|||||||
|
|
||||||
export type QuestObject = {
|
export type QuestObject = {
|
||||||
readonly type: ObjectType;
|
readonly type: ObjectType;
|
||||||
|
readonly id: number;
|
||||||
|
readonly group_id: number;
|
||||||
readonly area_id: number;
|
readonly area_id: number;
|
||||||
readonly section_id: number;
|
readonly section_id: number;
|
||||||
|
readonly object_id: number;
|
||||||
|
readonly action: number;
|
||||||
/**
|
/**
|
||||||
* Section-relative position
|
* Section-relative position
|
||||||
*/
|
*/
|
||||||
|
@ -206,8 +206,12 @@ function parse_obj_data(objs: DatObject[]): QuestObject[] {
|
|||||||
return objs.map(obj_data => {
|
return objs.map(obj_data => {
|
||||||
return {
|
return {
|
||||||
type: pso_id_to_object_type(obj_data.type_id),
|
type: pso_id_to_object_type(obj_data.type_id),
|
||||||
|
id: obj_data.id,
|
||||||
|
group_id: obj_data.group_id,
|
||||||
area_id: obj_data.area_id,
|
area_id: obj_data.area_id,
|
||||||
section_id: obj_data.section_id,
|
section_id: obj_data.section_id,
|
||||||
|
object_id: obj_data.object_id,
|
||||||
|
action: obj_data.action,
|
||||||
position: obj_data.position,
|
position: obj_data.position,
|
||||||
rotation: obj_data.rotation,
|
rotation: obj_data.rotation,
|
||||||
scale: obj_data.scale,
|
scale: obj_data.scale,
|
||||||
@ -511,10 +515,14 @@ function get_npc_type(episode: number, { type_id, scale, skin, area_id }: DatNpc
|
|||||||
function objects_to_dat_data(objects: QuestObject[]): DatObject[] {
|
function objects_to_dat_data(objects: QuestObject[]): DatObject[] {
|
||||||
return objects.map(object => ({
|
return objects.map(object => ({
|
||||||
type_id: object_data(object.type).pso_id!,
|
type_id: object_data(object.type).pso_id!,
|
||||||
|
id: object.id,
|
||||||
|
group_id: object.group_id,
|
||||||
section_id: object.section_id,
|
section_id: object.section_id,
|
||||||
position: object.position,
|
position: object.position,
|
||||||
rotation: object.rotation,
|
rotation: object.rotation,
|
||||||
scale: object.scale,
|
scale: object.scale,
|
||||||
|
object_id: object.object_id,
|
||||||
|
action: object.action,
|
||||||
area_id: object.area_id,
|
area_id: object.area_id,
|
||||||
unknown: object.unknown,
|
unknown: object.unknown,
|
||||||
}));
|
}));
|
||||||
|
@ -102,14 +102,22 @@ export abstract class ObservableQuestEntity<Type extends EntityType = EntityType
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class ObservableQuestObject extends ObservableQuestEntity<ObjectType> {
|
export class ObservableQuestObject extends ObservableQuestEntity<ObjectType> {
|
||||||
@observable type: ObjectType;
|
readonly id: number;
|
||||||
|
readonly group_id: number;
|
||||||
|
readonly object_id: number;
|
||||||
|
readonly action: number;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Data of which the purpose hasn't been discovered yet.
|
* Data of which the purpose hasn't been discovered yet.
|
||||||
*/
|
*/
|
||||||
unknown: number[][];
|
readonly unknown: number[][];
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
type: ObjectType,
|
type: ObjectType,
|
||||||
|
id: number,
|
||||||
|
group_id: number,
|
||||||
|
object_id: number,
|
||||||
|
action: number,
|
||||||
area_id: number,
|
area_id: number,
|
||||||
section_id: number,
|
section_id: number,
|
||||||
position: Vec3,
|
position: Vec3,
|
||||||
@ -119,19 +127,21 @@ export class ObservableQuestObject extends ObservableQuestEntity<ObjectType> {
|
|||||||
) {
|
) {
|
||||||
super(type, area_id, section_id, position, rotation, scale);
|
super(type, area_id, section_id, position, rotation, scale);
|
||||||
|
|
||||||
this.type = type;
|
this.id = id;
|
||||||
|
this.group_id = group_id;
|
||||||
|
this.object_id = object_id;
|
||||||
|
this.action = action;
|
||||||
this.unknown = unknown;
|
this.unknown = unknown;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export class ObservableQuestNpc extends ObservableQuestEntity<NpcType> {
|
export class ObservableQuestNpc extends ObservableQuestEntity<NpcType> {
|
||||||
@observable type: NpcType;
|
readonly pso_type_id: number;
|
||||||
pso_type_id: number;
|
readonly pso_skin: number;
|
||||||
pso_skin: number;
|
|
||||||
/**
|
/**
|
||||||
* Data of which the purpose hasn't been discovered yet.
|
* Data of which the purpose hasn't been discovered yet.
|
||||||
*/
|
*/
|
||||||
unknown: number[][];
|
readonly unknown: number[][];
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
type: NpcType,
|
type: NpcType,
|
||||||
@ -146,7 +156,6 @@ export class ObservableQuestNpc extends ObservableQuestEntity<NpcType> {
|
|||||||
) {
|
) {
|
||||||
super(type, area_id, section_id, position, rotation, scale);
|
super(type, area_id, section_id, position, rotation, scale);
|
||||||
|
|
||||||
this.type = type;
|
|
||||||
this.pso_type_id = pso_type_id;
|
this.pso_type_id = pso_type_id;
|
||||||
this.pso_skin = pso_skin;
|
this.pso_skin = pso_skin;
|
||||||
this.unknown = unknown;
|
this.unknown = unknown;
|
||||||
|
@ -102,6 +102,10 @@ class QuestEditorStore {
|
|||||||
obj =>
|
obj =>
|
||||||
new ObservableQuestObject(
|
new ObservableQuestObject(
|
||||||
obj.type,
|
obj.type,
|
||||||
|
obj.id,
|
||||||
|
obj.group_id,
|
||||||
|
obj.object_id,
|
||||||
|
obj.action,
|
||||||
obj.area_id,
|
obj.area_id,
|
||||||
obj.section_id,
|
obj.section_id,
|
||||||
obj.position,
|
obj.position,
|
||||||
@ -176,6 +180,10 @@ class QuestEditorStore {
|
|||||||
rotation: obj.rotation,
|
rotation: obj.rotation,
|
||||||
scale: obj.scale,
|
scale: obj.scale,
|
||||||
unknown: obj.unknown,
|
unknown: obj.unknown,
|
||||||
|
id: obj.id,
|
||||||
|
group_id: obj.group_id,
|
||||||
|
object_id: obj.object_id,
|
||||||
|
action: obj.action,
|
||||||
})),
|
})),
|
||||||
npcs: quest.npcs.map(npc => ({
|
npcs: quest.npcs.map(npc => ({
|
||||||
type: npc.type,
|
type: npc.type,
|
||||||
|
@ -84,341 +84,341 @@ function create_default_objects(): ObservableQuestObject[] {
|
|||||||
return [
|
return [
|
||||||
new ObservableQuestObject(
|
new ObservableQuestObject(
|
||||||
ObjectType.MenuActivation,
|
ObjectType.MenuActivation,
|
||||||
|
16384,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
0,
|
0,
|
||||||
10,
|
10,
|
||||||
new Vec3(-16.313568115234375, 3, -579.5118408203125),
|
new Vec3(-16.313568115234375, 3, -579.5118408203125),
|
||||||
new Vec3(0.0009587526218325454, 0, 0),
|
new Vec3(0.0009587526218325454, 0, 0),
|
||||||
new Vec3(1, 1, 1),
|
new Vec3(1, 1, 1),
|
||||||
[
|
[[2, 0, 0, 0, 0, 0], [0, 0], [0, 0, 0, 0, 128, 75, 251, 140]],
|
||||||
[2, 0, 0, 0, 0, 0, 0, 64, 0, 0],
|
|
||||||
[0, 0],
|
|
||||||
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 75, 251, 140],
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
new ObservableQuestObject(
|
new ObservableQuestObject(
|
||||||
ObjectType.MenuActivation,
|
ObjectType.MenuActivation,
|
||||||
|
16385,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
0,
|
0,
|
||||||
10,
|
10,
|
||||||
new Vec3(-393.07318115234375, 10, -12.964752197265625),
|
new Vec3(-393.07318115234375, 10, -12.964752197265625),
|
||||||
new Vec3(0, 0, 0),
|
new Vec3(0, 0, 0),
|
||||||
new Vec3(9.183549615799121e-41, 1.0000011920928955, 1),
|
new Vec3(9.183549615799121e-41, 1.0000011920928955, 1),
|
||||||
[
|
[[2, 0, 1, 0, 0, 0], [0, 0], [0, 0, 0, 0, 32, 76, 251, 140]],
|
||||||
[2, 0, 1, 0, 0, 0, 1, 64, 0, 0],
|
|
||||||
[0, 0],
|
|
||||||
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 76, 251, 140],
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
new ObservableQuestObject(
|
new ObservableQuestObject(
|
||||||
ObjectType.MenuActivation,
|
ObjectType.MenuActivation,
|
||||||
|
16386,
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
65536,
|
||||||
0,
|
0,
|
||||||
10,
|
10,
|
||||||
new Vec3(-458.60699462890625, 10, -51.270660400390625),
|
new Vec3(-458.60699462890625, 10, -51.270660400390625),
|
||||||
new Vec3(0, 0, 0),
|
new Vec3(0, 0, 0),
|
||||||
new Vec3(1, 1, 1),
|
new Vec3(1, 1, 1),
|
||||||
[
|
[[2, 0, 2, 0, 0, 0], [0, 0], [10, 0, 0, 0, 192, 76, 251, 140]],
|
||||||
[2, 0, 2, 0, 0, 0, 2, 64, 0, 0],
|
|
||||||
[0, 0],
|
|
||||||
[2, 0, 0, 0, 0, 0, 1, 0, 10, 0, 0, 0, 192, 76, 251, 140],
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
new ObservableQuestObject(
|
new ObservableQuestObject(
|
||||||
ObjectType.MenuActivation,
|
ObjectType.MenuActivation,
|
||||||
|
16387,
|
||||||
|
0,
|
||||||
|
3,
|
||||||
|
0,
|
||||||
0,
|
0,
|
||||||
10,
|
10,
|
||||||
new Vec3(-430.19696044921875, 10, -24.490447998046875),
|
new Vec3(-430.19696044921875, 10, -24.490447998046875),
|
||||||
new Vec3(0, 0, 0),
|
new Vec3(0, 0, 0),
|
||||||
new Vec3(1, 1, 1),
|
new Vec3(1, 1, 1),
|
||||||
[
|
[[2, 0, 3, 0, 0, 0], [0, 0], [0, 0, 0, 0, 96, 77, 251, 140]],
|
||||||
[2, 0, 3, 0, 0, 0, 3, 64, 0, 0],
|
|
||||||
[0, 0],
|
|
||||||
[3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 77, 251, 140],
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
new ObservableQuestObject(
|
new ObservableQuestObject(
|
||||||
ObjectType.PlayerSet,
|
ObjectType.PlayerSet,
|
||||||
|
16388,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
0,
|
0,
|
||||||
10,
|
10,
|
||||||
new Vec3(0.995330810546875, 0, -37.0010986328125),
|
new Vec3(0.995330810546875, 0, -37.0010986328125),
|
||||||
new Vec3(0, 4.712460886831327, 0),
|
new Vec3(0, 4.712460886831327, 0),
|
||||||
new Vec3(0, 1, 1),
|
new Vec3(0, 1, 1),
|
||||||
[
|
[[2, 0, 4, 0, 0, 0], [0, 0], [0, 0, 0, 0, 0, 78, 251, 140]],
|
||||||
[2, 0, 4, 0, 0, 0, 4, 64, 0, 0],
|
|
||||||
[0, 0],
|
|
||||||
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 251, 140],
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
new ObservableQuestObject(
|
new ObservableQuestObject(
|
||||||
ObjectType.PlayerSet,
|
ObjectType.PlayerSet,
|
||||||
|
16389,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
0,
|
0,
|
||||||
10,
|
10,
|
||||||
new Vec3(3.0009307861328125, 0, -23.99688720703125),
|
new Vec3(3.0009307861328125, 0, -23.99688720703125),
|
||||||
new Vec3(0, 4.859725289544806, 0),
|
new Vec3(0, 4.859725289544806, 0),
|
||||||
new Vec3(1.000000238418579, 1, 1),
|
new Vec3(1.000000238418579, 1, 1),
|
||||||
[
|
[[2, 0, 5, 0, 0, 0], [0, 0], [0, 0, 0, 0, 160, 78, 251, 140]],
|
||||||
[2, 0, 5, 0, 0, 0, 5, 64, 0, 0],
|
|
||||||
[0, 0],
|
|
||||||
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 78, 251, 140],
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
new ObservableQuestObject(
|
new ObservableQuestObject(
|
||||||
ObjectType.PlayerSet,
|
ObjectType.PlayerSet,
|
||||||
|
16390,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
0,
|
0,
|
||||||
10,
|
10,
|
||||||
new Vec3(2.0015106201171875, 0, -50.00386047363281),
|
new Vec3(2.0015106201171875, 0, -50.00386047363281),
|
||||||
new Vec3(0, 4.565196484117848, 0),
|
new Vec3(0, 4.565196484117848, 0),
|
||||||
new Vec3(2.000002384185791, 1, 1),
|
new Vec3(2.000002384185791, 1, 1),
|
||||||
[
|
[[2, 0, 6, 0, 0, 0], [0, 0], [0, 0, 0, 0, 64, 79, 251, 140]],
|
||||||
[2, 0, 6, 0, 0, 0, 6, 64, 0, 0],
|
|
||||||
[0, 0],
|
|
||||||
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 79, 251, 140],
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
new ObservableQuestObject(
|
new ObservableQuestObject(
|
||||||
ObjectType.PlayerSet,
|
ObjectType.PlayerSet,
|
||||||
|
16391,
|
||||||
|
0,
|
||||||
|
65536,
|
||||||
|
10,
|
||||||
0,
|
0,
|
||||||
10,
|
10,
|
||||||
new Vec3(4.9973907470703125, 0, -61.99664306640625),
|
new Vec3(4.9973907470703125, 0, -61.99664306640625),
|
||||||
new Vec3(0, 4.368843947166543, 0),
|
new Vec3(0, 4.368843947166543, 0),
|
||||||
new Vec3(3.0000007152557373, 1, 1),
|
new Vec3(3.0000007152557373, 1, 1),
|
||||||
[
|
[[2, 0, 7, 0, 0, 0], [0, 0], [0, 0, 0, 0, 224, 79, 251, 140]],
|
||||||
[2, 0, 7, 0, 0, 0, 7, 64, 0, 0],
|
|
||||||
[0, 0],
|
|
||||||
[0, 0, 1, 0, 10, 0, 0, 0, 0, 0, 0, 0, 224, 79, 251, 140],
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
new ObservableQuestObject(
|
new ObservableQuestObject(
|
||||||
ObjectType.MainRagolTeleporter,
|
ObjectType.MainRagolTeleporter,
|
||||||
|
18264,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
0,
|
0,
|
||||||
10,
|
10,
|
||||||
new Vec3(132.00314331054688, 1.000000238418579, -265.002197265625),
|
new Vec3(132.00314331054688, 1.000000238418579, -265.002197265625),
|
||||||
new Vec3(0, 0.49088134237826325, 0),
|
new Vec3(0, 0.49088134237826325, 0),
|
||||||
new Vec3(1.000000238418579, 1, 1),
|
new Vec3(1.000000238418579, 1, 1),
|
||||||
[
|
[[0, 0, 87, 7, 0, 0], [0, 0], [0, 0, 0, 0, 208, 128, 250, 140]],
|
||||||
[0, 0, 87, 7, 0, 0, 88, 71, 0, 0],
|
|
||||||
[0, 0],
|
|
||||||
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 128, 250, 140],
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
new ObservableQuestObject(
|
new ObservableQuestObject(
|
||||||
ObjectType.PrincipalWarp,
|
ObjectType.PrincipalWarp,
|
||||||
|
16393,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
65536,
|
||||||
0,
|
0,
|
||||||
10,
|
10,
|
||||||
new Vec3(-228, 0, -2020.99951171875),
|
new Vec3(-228, 0, -2020.99951171875),
|
||||||
new Vec3(0, 2.9452880542695796, 0),
|
new Vec3(0, 2.9452880542695796, 0),
|
||||||
new Vec3(-10.000004768371582, 0, -30.000030517578125),
|
new Vec3(-10.000004768371582, 0, -30.000030517578125),
|
||||||
[
|
[[2, 0, 9, 0, 0, 0], [0, 0], [0, 0, 1, 0, 176, 81, 251, 140]],
|
||||||
[2, 0, 9, 0, 0, 0, 9, 64, 0, 0],
|
|
||||||
[0, 0],
|
|
||||||
[0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 176, 81, 251, 140],
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
new ObservableQuestObject(
|
new ObservableQuestObject(
|
||||||
ObjectType.MenuActivation,
|
ObjectType.MenuActivation,
|
||||||
|
16394,
|
||||||
|
0,
|
||||||
|
4,
|
||||||
|
0,
|
||||||
0,
|
0,
|
||||||
10,
|
10,
|
||||||
new Vec3(-41.000030517578125, 0, 42.37322998046875),
|
new Vec3(-41.000030517578125, 0, 42.37322998046875),
|
||||||
new Vec3(0, 0, 0),
|
new Vec3(0, 0, 0),
|
||||||
new Vec3(1, 1, 1),
|
new Vec3(1, 1, 1),
|
||||||
[
|
[[2, 0, 10, 0, 0, 0], [1, 0], [0, 0, 0, 0, 224, 82, 251, 140]],
|
||||||
[2, 0, 10, 0, 0, 0, 10, 64, 0, 0],
|
|
||||||
[1, 0],
|
|
||||||
[4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 82, 251, 140],
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
new ObservableQuestObject(
|
new ObservableQuestObject(
|
||||||
ObjectType.MenuActivation,
|
ObjectType.MenuActivation,
|
||||||
|
16395,
|
||||||
|
0,
|
||||||
|
5,
|
||||||
|
0,
|
||||||
0,
|
0,
|
||||||
10,
|
10,
|
||||||
new Vec3(-479.21673583984375, 8.781256675720215, -322.465576171875),
|
new Vec3(-479.21673583984375, 8.781256675720215, -322.465576171875),
|
||||||
new Vec3(6.28328118244177, 0.0009587526218325454, 0),
|
new Vec3(6.28328118244177, 0.0009587526218325454, 0),
|
||||||
new Vec3(1, 1, 1),
|
new Vec3(1, 1, 1),
|
||||||
[
|
[[2, 0, 11, 0, 0, 0], [0, 0], [0, 0, 0, 0, 128, 83, 251, 140]],
|
||||||
[2, 0, 11, 0, 0, 0, 11, 64, 0, 0],
|
|
||||||
[0, 0],
|
|
||||||
[5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 83, 251, 140],
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
new ObservableQuestObject(
|
new ObservableQuestObject(
|
||||||
ObjectType.PrincipalWarp,
|
ObjectType.PrincipalWarp,
|
||||||
|
16396,
|
||||||
|
0,
|
||||||
|
32768,
|
||||||
|
0,
|
||||||
0,
|
0,
|
||||||
10,
|
10,
|
||||||
new Vec3(-228, 0, -351.0015869140625),
|
new Vec3(-228, 0, -351.0015869140625),
|
||||||
new Vec3(0, 0, 0),
|
new Vec3(0, 0, 0),
|
||||||
new Vec3(10.000006675720215, 0, -1760.0010986328125),
|
new Vec3(10.000006675720215, 0, -1760.0010986328125),
|
||||||
[
|
[[2, 0, 12, 0, 0, 0], [0, 0], [0, 0, 0, 0, 32, 84, 251, 140]],
|
||||||
[2, 0, 12, 0, 0, 0, 12, 64, 0, 0],
|
|
||||||
[0, 0],
|
|
||||||
[0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 84, 251, 140],
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
new ObservableQuestObject(
|
new ObservableQuestObject(
|
||||||
ObjectType.TelepipeLocation,
|
ObjectType.TelepipeLocation,
|
||||||
|
16397,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
0,
|
0,
|
||||||
10,
|
10,
|
||||||
new Vec3(-561.88232421875, 0, -406.8829345703125),
|
new Vec3(-561.88232421875, 0, -406.8829345703125),
|
||||||
new Vec3(0, 0, 0),
|
new Vec3(0, 0, 0),
|
||||||
new Vec3(1, 1, 1),
|
new Vec3(1, 1, 1),
|
||||||
[
|
[[2, 0, 13, 0, 0, 0], [0, 0], [0, 0, 0, 0, 80, 85, 251, 140]],
|
||||||
[2, 0, 13, 0, 0, 0, 13, 64, 0, 0],
|
|
||||||
[0, 0],
|
|
||||||
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 85, 251, 140],
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
new ObservableQuestObject(
|
new ObservableQuestObject(
|
||||||
ObjectType.TelepipeLocation,
|
ObjectType.TelepipeLocation,
|
||||||
|
16398,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
0,
|
0,
|
||||||
10,
|
10,
|
||||||
new Vec3(-547.8557739257812, 0, -444.8822326660156),
|
new Vec3(-547.8557739257812, 0, -444.8822326660156),
|
||||||
new Vec3(0, 0, 0),
|
new Vec3(0, 0, 0),
|
||||||
new Vec3(1, 1, 1),
|
new Vec3(1, 1, 1),
|
||||||
[
|
[[2, 0, 14, 0, 0, 0], [0, 0], [0, 0, 0, 0, 16, 86, 251, 140]],
|
||||||
[2, 0, 14, 0, 0, 0, 14, 64, 0, 0],
|
|
||||||
[0, 0],
|
|
||||||
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 86, 251, 140],
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
new ObservableQuestObject(
|
new ObservableQuestObject(
|
||||||
ObjectType.TelepipeLocation,
|
ObjectType.TelepipeLocation,
|
||||||
|
16399,
|
||||||
|
0,
|
||||||
|
3,
|
||||||
|
0,
|
||||||
0,
|
0,
|
||||||
10,
|
10,
|
||||||
new Vec3(-486.441650390625, 0, -497.4501647949219),
|
new Vec3(-486.441650390625, 0, -497.4501647949219),
|
||||||
new Vec3(0, 0, 0),
|
new Vec3(0, 0, 0),
|
||||||
new Vec3(9.183549615799121e-41, 1.0000011920928955, 1),
|
new Vec3(9.183549615799121e-41, 1.0000011920928955, 1),
|
||||||
[
|
[[2, 0, 15, 0, 0, 0], [0, 0], [0, 0, 0, 0, 208, 86, 251, 140]],
|
||||||
[2, 0, 15, 0, 0, 0, 15, 64, 0, 0],
|
|
||||||
[0, 0],
|
|
||||||
[3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 86, 251, 140],
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
new ObservableQuestObject(
|
new ObservableQuestObject(
|
||||||
ObjectType.TelepipeLocation,
|
ObjectType.TelepipeLocation,
|
||||||
|
16400,
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
65536,
|
||||||
0,
|
0,
|
||||||
10,
|
10,
|
||||||
new Vec3(-522.4052734375, 0, -474.1882629394531),
|
new Vec3(-522.4052734375, 0, -474.1882629394531),
|
||||||
new Vec3(0, 0, 0),
|
new Vec3(0, 0, 0),
|
||||||
new Vec3(1, 1, 1),
|
new Vec3(1, 1, 1),
|
||||||
[
|
[[2, 0, 16, 0, 0, 0], [0, 0], [10, 0, 0, 0, 144, 87, 251, 140]],
|
||||||
[2, 0, 16, 0, 0, 0, 16, 64, 0, 0],
|
|
||||||
[0, 0],
|
|
||||||
[2, 0, 0, 0, 0, 0, 1, 0, 10, 0, 0, 0, 144, 87, 251, 140],
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
new ObservableQuestObject(
|
new ObservableQuestObject(
|
||||||
ObjectType.MedicalCenterDoor,
|
ObjectType.MedicalCenterDoor,
|
||||||
|
16401,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
0,
|
0,
|
||||||
10,
|
10,
|
||||||
new Vec3(-34.49853515625, 0, -384.4951171875),
|
new Vec3(-34.49853515625, 0, -384.4951171875),
|
||||||
new Vec3(0, 5.497871034636549, 0),
|
new Vec3(0, 5.497871034636549, 0),
|
||||||
new Vec3(3.0000007152557373, 1, 1),
|
new Vec3(3.0000007152557373, 1, 1),
|
||||||
[
|
[[2, 0, 17, 0, 0, 0], [0, 0], [0, 0, 0, 0, 80, 88, 251, 140]],
|
||||||
[2, 0, 17, 0, 0, 0, 17, 64, 0, 0],
|
|
||||||
[0, 0],
|
|
||||||
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 88, 251, 140],
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
new ObservableQuestObject(
|
new ObservableQuestObject(
|
||||||
ObjectType.ShopDoor,
|
ObjectType.ShopDoor,
|
||||||
|
16402,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
0,
|
0,
|
||||||
10,
|
10,
|
||||||
new Vec3(-393.0031433105469, 0, -143.49981689453125),
|
new Vec3(-393.0031433105469, 0, -143.49981689453125),
|
||||||
new Vec3(0, 3.141640591220885, 0),
|
new Vec3(0, 3.141640591220885, 0),
|
||||||
new Vec3(3.0000007152557373, 1, 1),
|
new Vec3(3.0000007152557373, 1, 1),
|
||||||
[
|
[[2, 0, 18, 0, 0, 0], [0, 0], [0, 0, 0, 0, 80, 89, 251, 140]],
|
||||||
[2, 0, 18, 0, 0, 0, 18, 64, 0, 0],
|
|
||||||
[0, 0],
|
|
||||||
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 89, 251, 140],
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
new ObservableQuestObject(
|
new ObservableQuestObject(
|
||||||
ObjectType.MenuActivation,
|
ObjectType.MenuActivation,
|
||||||
|
16403,
|
||||||
|
0,
|
||||||
|
6,
|
||||||
|
0,
|
||||||
0,
|
0,
|
||||||
10,
|
10,
|
||||||
new Vec3(-355.17462158203125, 0, -43.15193176269531),
|
new Vec3(-355.17462158203125, 0, -43.15193176269531),
|
||||||
new Vec3(0, 0, 0),
|
new Vec3(0, 0, 0),
|
||||||
new Vec3(1.000000238418579, 1, 1),
|
new Vec3(1.000000238418579, 1, 1),
|
||||||
[
|
[[2, 0, 19, 0, 0, 0], [0, 0], [0, 0, 0, 0, 80, 90, 251, 140]],
|
||||||
[2, 0, 19, 0, 0, 0, 19, 64, 0, 0],
|
|
||||||
[0, 0],
|
|
||||||
[6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 90, 251, 140],
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
new ObservableQuestObject(
|
new ObservableQuestObject(
|
||||||
ObjectType.HuntersGuildDoor,
|
ObjectType.HuntersGuildDoor,
|
||||||
|
16404,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
0,
|
0,
|
||||||
10,
|
10,
|
||||||
new Vec3(-43.00239562988281, 0, -118.00120544433594),
|
new Vec3(-43.00239562988281, 0, -118.00120544433594),
|
||||||
new Vec3(0, 3.141640591220885, 0),
|
new Vec3(0, 3.141640591220885, 0),
|
||||||
new Vec3(3.0000007152557373, 1, 1),
|
new Vec3(3.0000007152557373, 1, 1),
|
||||||
[
|
[[2, 0, 20, 0, 0, 0], [0, 0], [0, 0, 0, 0, 240, 90, 251, 140]],
|
||||||
[2, 0, 20, 0, 0, 0, 20, 64, 0, 0],
|
|
||||||
[0, 0],
|
|
||||||
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 90, 251, 140],
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
new ObservableQuestObject(
|
new ObservableQuestObject(
|
||||||
ObjectType.TeleporterDoor,
|
ObjectType.TeleporterDoor,
|
||||||
|
16405,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
0,
|
0,
|
||||||
10,
|
10,
|
||||||
new Vec3(26.000823974609375, 0, -265.99810791015625),
|
new Vec3(26.000823974609375, 0, -265.99810791015625),
|
||||||
new Vec3(0, 3.141640591220885, 0),
|
new Vec3(0, 3.141640591220885, 0),
|
||||||
new Vec3(3.0000007152557373, 1, 1),
|
new Vec3(3.0000007152557373, 1, 1),
|
||||||
[
|
[[2, 0, 21, 0, 0, 0], [0, 0], [0, 0, 0, 0, 240, 91, 251, 140]],
|
||||||
[2, 0, 21, 0, 0, 0, 21, 64, 0, 0],
|
|
||||||
[0, 0],
|
|
||||||
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 91, 251, 140],
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
new ObservableQuestObject(
|
new ObservableQuestObject(
|
||||||
ObjectType.PlayerSet,
|
ObjectType.PlayerSet,
|
||||||
|
16406,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
0,
|
0,
|
||||||
10,
|
10,
|
||||||
new Vec3(57.81005859375, 0, -268.5472412109375),
|
new Vec3(57.81005859375, 0, -268.5472412109375),
|
||||||
new Vec3(0, 4.712460886831327, 0),
|
new Vec3(0, 4.712460886831327, 0),
|
||||||
new Vec3(0, 1, 1),
|
new Vec3(0, 1, 1),
|
||||||
[
|
[[2, 0, 22, 0, 0, 0], [0, 0], [0, 0, 0, 0, 240, 92, 251, 140]],
|
||||||
[2, 0, 22, 0, 0, 0, 22, 64, 0, 0],
|
|
||||||
[0, 0],
|
|
||||||
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 92, 251, 140],
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
new ObservableQuestObject(
|
new ObservableQuestObject(
|
||||||
ObjectType.PlayerSet,
|
ObjectType.PlayerSet,
|
||||||
|
16407,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
0,
|
0,
|
||||||
10,
|
10,
|
||||||
new Vec3(66.769287109375, 0, -252.3748779296875),
|
new Vec3(66.769287109375, 0, -252.3748779296875),
|
||||||
new Vec3(0, 4.712460886831327, 0),
|
new Vec3(0, 4.712460886831327, 0),
|
||||||
new Vec3(1.000000238418579, 1, 1),
|
new Vec3(1.000000238418579, 1, 1),
|
||||||
[
|
[[2, 0, 23, 0, 0, 0], [0, 0], [0, 0, 0, 0, 144, 93, 251, 140]],
|
||||||
[2, 0, 23, 0, 0, 0, 23, 64, 0, 0],
|
|
||||||
[0, 0],
|
|
||||||
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 93, 251, 140],
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
new ObservableQuestObject(
|
new ObservableQuestObject(
|
||||||
ObjectType.PlayerSet,
|
ObjectType.PlayerSet,
|
||||||
|
16408,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
0,
|
0,
|
||||||
10,
|
10,
|
||||||
new Vec3(67.36819458007812, 0, -284.9297180175781),
|
new Vec3(67.36819458007812, 0, -284.9297180175781),
|
||||||
new Vec3(0, 4.712460886831327, 0),
|
new Vec3(0, 4.712460886831327, 0),
|
||||||
new Vec3(2.000000476837158, 1, 1),
|
new Vec3(2.000000476837158, 1, 1),
|
||||||
[
|
[[2, 0, 24, 0, 0, 0], [0, 0], [0, 0, 0, 0, 48, 94, 251, 140]],
|
||||||
[2, 0, 24, 0, 0, 0, 24, 64, 0, 0],
|
|
||||||
[0, 0],
|
|
||||||
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 94, 251, 140],
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
new ObservableQuestObject(
|
new ObservableQuestObject(
|
||||||
ObjectType.PlayerSet,
|
ObjectType.PlayerSet,
|
||||||
|
16409,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
0,
|
0,
|
||||||
10,
|
10,
|
||||||
new Vec3(77.10488891601562, 0, -269.2830505371094),
|
new Vec3(77.10488891601562, 0, -269.2830505371094),
|
||||||
new Vec3(0, 4.712460886831327, 0),
|
new Vec3(0, 4.712460886831327, 0),
|
||||||
new Vec3(3.0000007152557373, 1, 1),
|
new Vec3(3.0000007152557373, 1, 1),
|
||||||
[
|
[[2, 0, 25, 0, 0, 0], [0, 0], [0, 0, 0, 0, 208, 94, 251, 140]],
|
||||||
[2, 0, 25, 0, 0, 0, 25, 64, 0, 0],
|
|
||||||
[0, 0],
|
|
||||||
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 94, 251, 140],
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user