Compare commits

...

241 commits

Author SHA1 Message Date
RandomityGuy
717d4eb5c6 update readme 2026-04-06 22:42:11 +01:00
RandomityGuy
6fd8d12386 next update 2026-04-06 13:24:40 +01:00
RandomityGuy
6ffd04038c fix chat escaping 2026-04-06 12:31:24 +01:00
RandomityGuy
7a648a8aeb this button too 2026-04-05 02:40:36 +01:00
RandomityGuy
14c7885f58 this last change 2026-04-03 17:33:49 +01:00
RandomityGuy
1ec04251e8 update changelog 2026-04-03 00:22:31 +01:00
RandomityGuy
d7b1e68b21 try this to make them be singleplayer 2026-04-02 20:46:13 +01:00
RandomityGuy
cbfafdb63f mbg and mbu icons on bottom right 2026-04-01 13:38:17 +01:00
RandomityGuy
6fcbbb6edb update libpng 2026-04-01 00:33:02 +01:00
RandomityGuy
0170bca4c0 lol fix ci for mac 2026-04-01 00:27:08 +01:00
RandomityGuy
359e3c3dc8 fix ci 2026-04-01 00:21:11 +01:00
RandomityGuy
bc7b6f9b9f update ci 2026-03-31 14:53:51 +01:00
RandomityGuy
d20015de69 update ver 2026-03-31 14:53:42 +01:00
RandomityGuy
09344d58a4 reduce allocs 2026-03-31 14:44:11 +01:00
RandomityGuy
30f58ed436 fix touch camera again, bring in mbu camera auto centering 2026-03-31 14:44:03 +01:00
RandomityGuy
ba112425f8 normalize touch camera and do this minor inlining 2026-03-30 17:41:19 +01:00
RandomityGuy
f2a0ba443e update mac ci 2026-03-29 19:07:28 +01:00
RandomityGuy
cc1c8d7950 attempt fix camera 2026-03-29 18:08:55 +01:00
RandomityGuy
ef8c54c195 add proper turn server support 2026-03-29 15:05:16 +01:00
RandomityGuy
bc428260fa try to make touch camera better 2026-03-29 11:05:05 +01:00
RandomityGuy
5391c665ac some mp optimizations 2026-03-28 18:45:08 +00:00
RandomityGuy
c4bbe512df implement progress import-export 2026-03-28 17:57:50 +00:00
RandomityGuy
a67cf3deaa impl console cheats 2026-03-28 15:00:06 +00:00
RandomityGuy
44c15ab011 more array reuse 2026-03-28 14:33:04 +00:00
RandomityGuy
8d35663f3d fix this gravity rewind bug 2026-03-28 13:42:39 +00:00
RandomityGuy
d8cee80266 fix this cursorlock pause issue on chrome and this minor thing 2026-03-28 12:40:49 +00:00
RandomityGuy
724ebbda99 fix this broadphase crash 2026-03-28 01:51:24 +00:00
RandomityGuy
8f08c3b817 reduce array allocations when doing collision 2026-03-27 17:34:32 +00:00
RandomityGuy
4bddb5bd0a fix texture paths for difs and fix endgame softlock for custom missions 2026-03-14 01:42:13 +00:00
RandomityGuy
2ef28aae5f - try to make it case insensitive
- escape all text derived from user input
- fix various race condition issues
- make scrolling smooth for touch controls
- fix leaderboards count
- fix potential crash when joining MP
- clamp input
- fix replay clock when stopped time
- also update ci to only run when tagged
2026-01-27 22:15:10 +00:00
RandomityGuy
51c456e907 update readme 2025-11-19 17:43:36 +00:00
RandomityGuy
afa42fe498 update readme 2025-08-17 21:53:06 +05:30
RandomityGuy
a79f7c8fcc readme update 2025-06-30 20:24:47 +05:30
RandomityGuy
ef9b79f120 Merge branch 'master' of https://github.com/RandomityGuy/MBHaxe 2025-03-21 21:30:35 +05:30
RandomityGuy
553ed365e9 update links 2025-03-21 21:30:23 +05:30
RandomityGuy
d69cb92028
Update README.md 2025-02-15 01:20:16 +05:30
RandomityGuy
e06d871aaf
add discord link 2025-02-15 01:20:06 +05:30
RandomityGuy
8a9866db54 update changelog 2025-02-14 22:50:07 +05:30
RandomityGuy
a2e2b4e211 fix fps not matching tps 2025-02-14 21:56:32 +05:30
RandomityGuy
c5a90673b9 ver increment 2025-02-14 21:43:54 +05:30
RandomityGuy
fbaa766f7e Merge branch 'master' of https://github.com/RandomityGuy/MBHaxe 2025-02-14 21:42:07 +05:30
RandomityGuy
10008f98c3 align this better 2025-02-14 21:41:57 +05:30
RandomityGuy
47b10edbab change fps display to display tps instead when vsync is on 2025-02-14 21:39:39 +05:30
RandomityGuy
6044889270 match drawn fps to tick rate always, except for when vsync 2025-02-14 21:22:53 +05:30
RandomityGuy
e7cac9cd0c uuid things 2025-02-14 20:13:23 +05:30
RandomityGuy
06d0c6d98e score send criteria change and fix replay record oob bug 2025-02-14 20:13:09 +05:30
RandomityGuy
3a21ca2f5c
Create FUNDING.yml 2025-02-11 22:28:47 +05:30
RandomityGuy
ad0e867b48 update links 2025-02-11 21:42:30 +05:30
RandomityGuy
ae0c057b31 update changelog 2025-02-11 21:41:34 +05:30
RandomityGuy
301a8675cf make all this follow ui scale 2025-02-11 18:05:22 +05:30
RandomityGuy
5736b9c03c add support for MBU/MBM datablocks via substitutions 2025-02-11 12:49:10 +05:30
RandomityGuy
570c7355eb don't submit replays for customs 2025-02-11 12:41:15 +05:30
RandomityGuy
611ac6cebd limit replay size 2025-02-11 12:36:31 +05:30
RandomityGuy
7fd6f00cf7 fix typo 2025-02-10 22:25:58 +05:30
RandomityGuy
5cfe49c166 camera smoothing and some name stuff 2025-02-10 21:59:23 +05:30
RandomityGuy
f40914f071 add support for marble attribute changing 2025-02-07 14:38:16 +05:30
RandomityGuy
4743684298 fix sporkintheroad and add custom friction support 2025-02-07 01:13:46 +05:30
RandomityGuy
6673f7dc5c fix pmg level selection not being persistent 2025-02-05 00:59:19 +05:30
RandomityGuy
efd4f50e4e exit LB replays on pmg 2025-02-05 00:50:32 +05:30
RandomityGuy
c12cdfc908 make these inline 2025-01-18 12:38:14 +05:30
RandomityGuy
995029e99b few fixes for LB 2024-12-13 14:26:54 +05:30
RandomityGuy
3a17b3fea5 fix input keys for locked fps metrics 2024-12-13 11:32:13 +05:30
RandomityGuy
3cfb0785fe fix case insensitivity again and discard the marbleland game requirements 2024-12-13 01:15:28 +05:30
RandomityGuy
07bff7724d lb limit count and attempt case insensitive 2024-11-21 21:08:28 +05:30
RandomityGuy
5d61ee091c fix random powerup 2024-11-20 23:59:23 +05:30
RandomityGuy
3de0519d47 fix dynamic grid broadphase being broken 2024-11-05 20:25:58 +05:30
RandomityGuy
0a56019a53 fps limiter 2024-11-05 20:03:35 +05:30
RandomityGuy
a4254f8771 new hunt spawn algorithm, closer to PQ 2024-11-05 19:17:51 +05:30
RandomityGuy
69c81eb5ce more forced version checks 2024-11-05 01:24:56 +05:30
RandomityGuy
1c28616679 toggle between different lb categories 2024-11-05 01:07:48 +05:30
RandomityGuy
f8731ab84c these assets 2024-11-05 00:01:36 +05:30
RandomityGuy
e1e882098b leaderboards impl 2024-11-05 00:01:09 +05:30
RandomityGuy
a92b0eb1b6 make trigger collision detection more accurate 2024-11-02 14:20:49 +05:30
RandomityGuy
a7ade37670 hunt: respawn camera fixes 2024-11-02 14:20:31 +05:30
RandomityGuy
9bd8ed8a5d preserve sorting for PMG 2024-11-02 01:40:49 +05:30
RandomityGuy
d6a97365a8 oob bugfix and fix gem count reports in MP 2024-11-02 01:34:16 +05:30
RandomityGuy
9b8b908524 replay fixes and network last contact normal 2024-11-02 01:21:53 +05:30
RandomityGuy
aedffdc2c3 lmao fix 2024-08-02 01:19:48 +05:30
RandomityGuy
b6032a4b64 readme update 2024-07-21 18:09:50 +05:30
RandomityGuy
77108d12af final 2024-07-21 18:09:17 +05:30
RandomityGuy
d275730b3e version update and download icon 2024-07-21 13:02:53 +05:30
RandomityGuy
3d065c116e bugfixes for the reported issues 2024-07-21 12:26:10 +05:30
RandomityGuy
5a6c8ae6e1 this critical 2024-07-19 19:14:26 +05:30
RandomityGuy
bb33ddf07b readme update 2024-07-19 19:14:22 +05:30
RandomityGuy
c348dfb530 Merge branch 'mbp-net' 2024-07-19 18:32:52 +05:30
RandomityGuy
6ea397b7d5 Merge branch 'master' of https://github.com/RandomityGuy/MBHaxe 2024-07-19 18:31:22 +05:30
RandomityGuy
e97f7f2823 minor 2024-07-18 23:47:14 +05:30
RandomityGuy
c5c1c30c4b oops 2024-07-17 22:27:31 +05:30
RandomityGuy
8a1997190a swappable spawns 2024-07-17 22:24:19 +05:30
RandomityGuy
e7e50cf865 grid for broadphase, faster 2024-07-17 19:11:54 +05:30
RandomityGuy
97e8f5a753 more optimizations for mp 2024-07-17 16:27:24 +05:30
RandomityGuy
4cf4748813 stall bug 2024-07-17 13:03:22 +05:30
RandomityGuy
ebd3f03e13 reported bugfixes 2024-07-17 12:42:37 +05:30
RandomityGuy
70b4d51943 fix js 2024-07-16 23:03:19 +05:30
RandomityGuy
203916bfae more bugfixes 2024-07-16 21:48:15 +05:30
RandomityGuy
b6679f7b87 some more optimizations 2024-07-16 19:38:34 +05:30
RandomityGuy
13c9c8d99e some optimizations 2024-07-16 18:47:39 +05:30
RandomityGuy
ef6612bcb8 this edge case 2024-07-16 00:35:49 +05:30
RandomityGuy
6c45fce486 this missing 2024-07-16 00:23:57 +05:30
RandomityGuy
2662ff7074 more fixes and suggestions 2024-07-16 00:05:01 +05:30
RandomityGuy
f41b169dca various reported bugfixes 2024-07-15 22:29:29 +05:30
RandomityGuy
8f3177a885 fix drop shadow 2024-07-15 19:05:35 +05:30
RandomityGuy
e66f9fd0ff persist selection and fix music bug 2024-07-14 23:42:02 +05:30
RandomityGuy
d74b8d81be optimize raycast 2024-07-14 20:00:01 +05:30
RandomityGuy
80aa53997c few more fixes 2024-07-14 14:41:37 +05:30
RandomityGuy
296c7e893b various reported bugfixes 2024-07-14 02:04:06 +05:30
RandomityGuy
2610a72257 fix this crash bruh 2024-07-13 00:51:55 +05:30
RandomityGuy
6abf22776e touch ui i forgot 2024-07-12 14:26:43 +05:30
RandomityGuy
41a356ca65 minor load crash fixes 2024-07-12 14:26:30 +05:30
RandomityGuy
e40625d451 typo 2024-07-12 01:27:28 +05:30
RandomityGuy
5ab50aef12 update haxe!!! 2024-07-12 01:21:24 +05:30
RandomityGuy
602e662503 holy shit finally nuke shadows out of the engine 2024-07-12 00:54:54 +05:30
RandomityGuy
e216be4ec9 fix a lot of things, camera (attempt), improve pathedinteriors scalability, touch support things, spectator mode mobile camera 2024-07-12 00:38:10 +05:30
RandomityGuy
3964b43aca various fixes: platinum gem on end game, fix spawn chances, fix weird states regarding player leaves 2024-07-10 12:13:04 +05:30
RandomityGuy
d34bc7c363 this 2024-07-09 01:37:07 +05:30
RandomityGuy
cd3fe87fed fix some js bug and significantly speed up loading 2024-07-09 01:36:33 +05:30
RandomityGuy
00e4420100 pq shaders and asset update 2024-07-08 22:43:00 +05:30
RandomityGuy
b4b3906610 PQ maps and fixes 2024-07-08 13:04:32 +05:30
RandomityGuy
19cc14679e fix spectator display bug and add collision invulnerability 2024-07-08 00:48:48 +05:30
RandomityGuy
18d0e7154f this 2024-07-08 00:00:58 +05:30
RandomityGuy
ffa9855174 uuid and fix gem predictions not wokring 2024-07-07 23:55:42 +05:30
RandomityGuy
e7417c7002 fix respawn gravity and add ids to the hosted server 2024-07-07 23:16:44 +05:30
RandomityGuy
3fcf2c8799 fix gravity bug, fix spectator invisible btn bug, fix pause bug, fix prediction bug, fix competitive mode bug 2024-07-07 22:41:24 +05:30
RandomityGuy
f9a58d15a9 competitive mode and small bugfixes 2024-07-07 19:33:16 +05:30
RandomityGuy
26ed1cb820 various bugfixes from testing 2024-07-06 01:47:49 +05:30
RandomityGuy
85ce3b5507 update this to fix ci 2024-07-04 23:40:22 +05:30
RandomityGuy
7e60689a58 update CI 2024-07-04 23:30:37 +05:30
RandomityGuy
6f374db2ad add version check and attempt mobile controls fixes 2024-07-04 23:23:57 +05:30
RandomityGuy
0f11c17cb8 remove unused assets 2024-07-04 01:44:28 +05:30
RandomityGuy
bdccf31a23 username change on jsg 2024-07-04 01:34:11 +05:30
RandomityGuy
0c58d597d4 more touch controls settings 2024-07-04 01:33:46 +05:30
RandomityGuy
54aae3c997 ping 2 2024-07-04 01:33:24 +05:30
RandomityGuy
d893ca30e6 ping icons 2024-07-04 01:32:53 +05:30
RandomityGuy
98de4cff1c finally the offset feature for HtmlText, making features of player count and readyness ez 2024-07-03 23:05:18 +05:30
RandomityGuy
da12b521db marble reflection things and platform icons 2024-07-03 21:45:24 +05:30
RandomityGuy
87ff14b6b8 fix spectate bug 2024-07-03 19:21:45 +05:30
RandomityGuy
2416a7119e radar fixes and spectator ui (pc) 2024-07-03 01:45:42 +05:30
RandomityGuy
41f041f3f9 implement chat (lobby) and fix marble sounds 2024-07-03 00:36:08 +05:30
RandomityGuy
5220b8909c fix various ui bugs 2024-07-02 01:55:26 +05:30
RandomityGuy
c07083f400 fix > 65k verts 2024-07-01 19:39:32 +05:30
RandomityGuy
1706c16540 make server list little better and add passworded joins 2024-07-01 00:59:05 +05:30
RandomityGuy
de265e7742
Update README.md 2024-06-30 22:29:28 +05:30
RandomityGuy
0c9db3ea58 fix search 2024-06-29 18:07:58 +05:30
RandomityGuy
b4324707f3 fix sky z fighting 2024-06-29 12:29:51 +05:30
RandomityGuy
bd5fb5021c fix this 2024-06-29 00:06:58 +05:30
RandomityGuy
aa8f640b0e js 2024-06-28 14:39:00 +05:30
RandomityGuy
7682e6b5f8 start chat 2024-06-28 13:45:35 +05:30
RandomityGuy
ca314d734a multimaterial optimization 2024-06-28 13:45:27 +05:30
RandomityGuy
fa92b6d1af some js and minor fixes 2024-06-28 00:51:53 +05:30
RandomityGuy
3a928a6014 spectator mode 2024-06-27 01:57:14 +05:30
RandomityGuy
57873e6301 teleporter networking 2024-06-27 00:11:40 +05:30
RandomityGuy
2d5bdda9ab fix textures 2024-06-26 20:43:10 +05:30
RandomityGuy
60b116f9aa server side only quick respawn 2024-06-26 20:27:58 +05:30
RandomityGuy
11043e04b0 rough trapdoor networking, bare minimum 2024-06-26 19:20:22 +05:30
RandomityGuy
98b6781970 slightly better explodables 2024-06-26 12:44:49 +05:30
RandomityGuy
21ac9259d4 this 2024-06-26 01:55:54 +05:30
RandomityGuy
a8d316d4fd make nukes network successfully 2024-06-26 01:43:22 +05:30
RandomityGuy
a33fb533df fix again 2024-06-25 00:18:43 +05:30
RandomityGuy
d9b9298277 fix again 2024-06-24 23:49:13 +05:30
RandomityGuy
87efa2ce51 fix again 2024-06-24 23:31:11 +05:30
RandomityGuy
424127e527 fix again 2024-06-24 23:29:59 +05:30
RandomityGuy
ba0dd018ab fix ratios 2024-06-24 21:58:27 +05:30
RandomityGuy
52343d9a45 finally ios support (web) 2024-06-24 21:58:23 +05:30
RandomityGuy
9d483d2382 fix ratios 2024-06-24 21:48:02 +05:30
RandomityGuy
0376db7c73 finally ios support (web) 2024-06-24 21:47:40 +05:30
RandomityGuy
0720ea9424 network the MPs finally, this removes traplaunches though 2024-06-24 13:47:55 +05:30
RandomityGuy
c830d417f1 fix mps 2024-06-24 01:11:00 +05:30
RandomityGuy
5a8eab9aff mp rework bit 2024-06-23 23:24:06 +05:30
RandomityGuy
f84d69fbda refresh btn 2024-06-23 21:40:49 +05:30
RandomityGuy
a0d01656ab better mp message boxes 2024-06-23 21:37:16 +05:30
RandomityGuy
d7acac9227 fix mid-game join 2024-06-23 01:16:22 +05:30
RandomityGuy
8b612fd089 player kicking, marble skin change networking, minor improvements 2024-06-23 00:54:23 +05:30
RandomityGuy
08f057dc6c fix compile 2024-06-22 20:43:48 +05:30
RandomityGuy
7bc95d492b reduce side window 2024-06-22 20:43:28 +05:30
RandomityGuy
36bc46d7b9 attempt implement the restarts and add shader/mega helicopter 2024-06-22 01:30:53 +05:30
RandomityGuy
7837be38e9 end game initial 2024-06-21 22:42:30 +05:30
RandomityGuy
651726bb06 camera overview thing + rsg multiplayer (no sounds currently) 2024-06-21 00:16:01 +05:30
RandomityGuy
a1c4691466 pre-game stuff 2024-06-20 22:12:22 +05:30
RandomityGuy
cc57591342 make everything use a better performant drop shadow instead, add pre game support, more clientside fixes 2024-06-20 18:24:10 +05:30
RandomityGuy
a817d0481b slightly faster raycasts 2024-06-19 12:17:11 +05:30
RandomityGuy
7bb3969fc7 add better shadow renderer 2024-06-19 12:16:55 +05:30
RandomityGuy
9bab55cba5 more MP ui 2024-06-18 23:49:37 +05:30
RandomityGuy
870474cfed implement radar and fix hunt gem counter color 2024-06-18 00:54:56 +05:30
RandomityGuy
b3978bb9bb add player list, scoreboard and working blast 2024-06-17 23:02:19 +05:30
RandomityGuy
b1af411014 get more powerups networked 2024-06-17 00:58:57 +05:30
RandomityGuy
64ee9dcf29 more MP assets 2024-06-17 00:58:45 +05:30
RandomityGuy
fe37dc4209 make hunt network again, and fix marble radius for MP 2024-06-16 20:25:17 +05:30
RandomityGuy
3120674b66 add initial netcode 2024-06-16 14:48:25 +05:30
RandomityGuy
7ba9b5aaf6
Update README.md 2024-06-16 01:24:03 +05:30
RandomityGuy
2e9917d9f1 implement hunt basicss 2024-06-16 00:54:17 +05:30
RandomityGuy
911ea765bf assets for multiplayer 2024-06-16 00:53:57 +05:30
RandomityGuy
81e4c98cca separate out marble logic and apply optimizations from mbu branch, prepare for netcode 2024-06-14 14:53:58 +05:30
RandomityGuy
56c8e6e97e Merge branch 'master' of https://github.com/RandomityGuy/MBHaxe 2024-06-14 11:07:32 +05:30
RandomityGuy
7366f49670
Update README.md 2024-06-14 00:21:35 +05:30
RandomityGuy
0cd6486d39
Update README.md 2024-06-13 21:51:27 +05:30
RandomityGuy
3d388e6b57
Update README.md 2024-06-12 19:20:43 +05:30
RandomityGuy
268b59a841
Update README.md 2024-06-04 18:31:11 +05:30
RandomityGuy
e6d01130d4 fix textures not loading in certain cases 2024-02-20 21:22:54 +05:30
RandomityGuy
ee65e733e5 update readme 2023-12-25 15:08:33 +05:30
RandomityGuy
a83b1cb13e update link 2023-12-24 13:50:46 +05:30
RandomityGuy
4084e362b3 fix the MP bug that was reported 2023-12-14 00:28:48 +05:30
RandomityGuy
4e80a53d07
Merge pull request #30 from glitch128/platinum
Replace icons and edit manifest (Platinum)
2023-12-12 23:51:18 +05:30
Corruption
bd373b6971
Replace icons and edit manifest (Platinum) 2023-12-12 09:19:26 -08:00
RandomityGuy
c4f4ea92b8 default to date 2023-12-03 21:42:28 +05:30
RandomityGuy
1e5227b4fa fix out of order date sort in js 2023-12-03 21:40:05 +05:30
RandomityGuy
7f87db5757 ...update haxe 2023-12-03 20:43:40 +05:30
RandomityGuy
8569a95116 attempt some fix? 2023-12-03 20:04:28 +05:30
RandomityGuy
a06adeb435 Merge branch 'master' of https://github.com/RandomityGuy/MBHaxe 2023-11-29 22:46:34 +05:30
RandomityGuy
c6a7d5cb38 play from url 2023-11-29 22:45:34 +05:30
RandomityGuy
d040c56382 camera thing 2023-11-18 22:40:23 +05:30
RandomityGuy
cca94aa290
Update README.md 2023-10-11 00:16:32 +05:30
RandomityGuy
d63a0798ac zlib pls 2023-10-09 00:28:33 +05:30
RandomityGuy
588eba52d2 update ci mac 2023-10-09 00:12:44 +05:30
RandomityGuy
bcd2f2b085 update zlib for mac compile 2023-10-08 23:50:54 +05:30
RandomityGuy
67eb9a0991 changelog 2023-10-08 23:26:32 +05:30
RandomityGuy
c40243acaa implement sorting for customs 2023-10-08 01:50:32 +05:30
RandomityGuy
f303925551 dds support + better marbleland 2023-10-03 21:20:18 +05:30
RandomityGuy
25b1c01205 github buttons 2023-10-03 19:17:07 +05:30
RandomityGuy
484e189978 more mkt and ver up 2023-10-03 19:08:41 +05:30
RandomityGuy
36d3f86f28 this 2023-10-02 23:19:42 +05:30
RandomityGuy
d8604c9717 reduce more memory 2023-10-02 14:29:02 +05:30
RandomityGuy
63781f1532 optimize heap 2023-10-02 13:56:59 +05:30
RandomityGuy
a9b9ed1a98 fix bugs 2023-10-02 12:21:17 +05:30
RandomityGuy
7fb8e4530d non-user identifying analytics 2023-10-02 01:48:42 +05:30
RandomityGuy
dfc943e802 fix more memory leak 2023-10-01 23:19:00 +05:30
RandomityGuy
74d444a835 fix memory leaks caused by world not being properly disposed 2023-10-01 14:06:36 +05:30
RandomityGuy
ef6c3a0146 rewind optimize memory 2023-10-01 14:06:05 +05:30
RandomityGuy
a2be44157e updated marbleland support 2023-09-29 22:57:51 +05:30
RandomityGuy
11052389b1 match mbg collision callback code and add deadzone to touch camera 2023-09-22 23:25:23 +05:30
RandomityGuy
ea6766dff6 better touch controls camera 2023-07-25 22:31:52 +05:30
RandomityGuy
4f23c2cea9 fix replay center on mac 2023-07-25 18:58:52 +05:30
RandomityGuy
72f13ba68b update links 2023-07-24 00:49:23 +05:30
RandomityGuy
9852825486 update readme 2023-07-22 21:41:44 +05:30
RandomityGuy
79d470cc57 update readme links 2023-07-22 00:09:30 +05:30
RandomityGuy
d7d2cfaf45 ver update 2023-07-21 21:25:19 +05:30
RandomityGuy
5bd92b2312 fix CI 2023-07-21 21:19:56 +05:30
RandomityGuy
67db795368 fix camera 2023-07-21 21:19:48 +05:30
RandomityGuy
52bdbdc65b finally fix camera 2023-07-21 21:13:59 +05:30
RandomityGuy
52276538e3 fix camera 2023-07-21 21:12:31 +05:30
RandomityGuy
e37795a80d speed cubemap 2023-07-21 21:11:30 +05:30
RandomityGuy
72e83a5dbb do all the backport fixes 2023-07-21 21:05:19 +05:30
1221 changed files with 146970 additions and 3634 deletions

View file

@ -3,13 +3,15 @@
version: 2.1
orbs:
win: circleci/windows@4.1.1 # The Windows orb give you everything you need to start using the Windows executor.
macos: circleci/macos@2.5.1
# Define a job to be invoked later in a workflow.
# See: https://circleci.com/docs/2.0/configuration-reference/#jobs
jobs:
build:
macos:
xcode: 14.1.0 # Specify the Xcode version to use
xcode: 26.2.0 # Specify the Xcode version to use
resource_class: m4pro.medium
environment:
HOMEBREW_NO_AUTO_UPDATE: 1
NPROC: 4
@ -21,26 +23,34 @@ jobs:
- checkout:
path: ~/MBHaxe
- macos/install-rosetta
- run:
name: Install brew dependencies
command: |
brew install cmake
brew install pkg-config
brew install libpthread-stubs
brew install neko
brew install nasm
- run:
name: Install Haxe
command: |
set -eux
download_url="https://github.com/HaxeFoundation/haxe/releases/download/4.2.5/haxe-4.2.5-osx.tar.gz"
download_url="https://github.com/HaxeFoundation/haxe/releases/download/4.3.4/haxe-4.3.4-osx.tar.gz"
echo "Downloading [$download_url]..."
mkdir /tmp/haxe
curl -fsSL --retry 3 --retry-delay 5 "$download_url" -o /tmp/haxe.tar.gz
tar xzvf /tmp/haxe.tar.gz -C /tmp/haxe --strip-components=1
export PATH=/tmp/haxe/:"$PATH"
export HAXE_STD_PATH=/tmp/haxe/std
mkdir ~/haxe
curl -fsSL --retry 3 --retry-delay 5 "$download_url" -o ~/haxe.tar.gz
tar xzvf ~/haxe.tar.gz -C ~/haxe --strip-components=1
download_url="https://github.com/HaxeFoundation/neko/releases/download/v2-4-0-rc/neko-2.4.0-rc-osx-universal.tar.gz"
echo "Downloading [$download_url]..."
mkdir ~/neko
curl -fsSL --retry 3 --retry-delay 5 "$download_url" -o ~/neko.tar.gz
tar xzvf ~/neko.tar.gz -C ~/neko --strip-components=1
export PATH=~/haxe/:"$PATH"
export PATH=~/neko/:"$PATH"
export HAXE_STD_PATH=~/haxe/std
export DYLD_LIBRARY_PATH=~/neko
sudo chmod +x ~/neko/neko
haxelib setup ~/haxelib
haxelib list
haxelib install hashlink
@ -51,10 +61,10 @@ jobs:
command: |
mkdir -p ~/deps
cd ~/deps
curl https://www.zlib.net/zlib-1.2.13.tar.xz | tar xz
cd zlib-1.2.13
if [ ! -f /usr/local/lib/libz.1.2.13.dylib ]; then
cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.15" -DCMAKE_MACOSX_RPATH=TRUE
curl https://www.zlib.net/zlib-1.3.2.tar.xz | tar xz
cd zlib-1.3.2
if [ ! -f /usr/local/lib/libz.1.3.2.dylib ]; then
cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.15" -DCMAKE_MACOSX_RPATH=TRUE -DCMAKE_POLICY_VERSION_MINIMUM=3.5
cmake --build build --config Release -j$NPROC
sudo cmake --install build
fi
@ -67,7 +77,7 @@ jobs:
curl https://openal-soft.org/openal-releases/openal-soft-1.22.2.tar.bz2 | tar xz
cd openal-soft-1.22.2
if [ ! -f /usr/local/lib/libopenal.1.22.2.dylib ]; then
cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.15" -DALSOFT_BACKEND_SNDIO=NO -DALSOFT_BACKEND_PORTAUDIO=NO -DALSOFT_BACKEND_WAVE=NO -DALSOFT_UTILS=NO -DALSOFT_EXAMPLES=NO -DCMAKE_MACOSX_RPATH=TRUE
cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.15" -DALSOFT_BACKEND_SNDIO=NO -DALSOFT_BACKEND_PORTAUDIO=NO -DALSOFT_BACKEND_WAVE=NO -DALSOFT_UTILS=NO -DALSOFT_EXAMPLES=NO -DCMAKE_MACOSX_RPATH=TRUE -DCMAKE_POLICY_VERSION_MINIMUM=3.5
cmake --build build --config Release -j$NPROC
sudo cmake --install build
fi
@ -79,7 +89,7 @@ jobs:
curl -L https://downloads.sourceforge.net/project/libjpeg-turbo/2.1.4/libjpeg-turbo-2.1.4.tar.gz | tar xz
cd libjpeg-turbo-2.1.4
if [ ! -f /usr/local/lib/libturbojpeg.0.2.0.dylib ]; then
cmake -S. -Bbuild-x86 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES="x86_64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.15" -DCMAKE_MACOSX_RPATH=TRUE -DCMAKE_INSTALL_PREFIX=/usr/local
cmake -S. -Bbuild-x86 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES="x86_64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.15" -DCMAKE_MACOSX_RPATH=TRUE -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_POLICY_VERSION_MINIMUM=3.5
cmake --build build-x86 --config release -j$NPROC
fi
@ -88,7 +98,7 @@ jobs:
command: |
cd ~/deps/libjpeg-turbo-2.1.4
if [ ! -f /usr/local/lib/libturbojpeg.0.2.0.dylib ]; then
cmake -S. -Bbuild-arm64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES="arm64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.15" -DCMAKE_MACOSX_RPATH=TRUE -DCMAKE_INSTALL_PREFIX=/usr/local
cmake -S. -Bbuild-arm64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES="arm64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.15" -DCMAKE_MACOSX_RPATH=TRUE -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_POLICY_VERSION_MINIMUM=3.5
cmake --build build-arm64 --config release -j$NPROC
fi
@ -112,7 +122,7 @@ jobs:
curl -L https://downloads.xiph.org/releases/ogg/libogg-1.3.5.tar.xz | tar xz
cd libogg-1.3.5
if [ ! -f /usr/local/lib/libogg.0.8.5.dylib ]; then
cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.15" -DBUILD_SHARED_LIBS=ON -DCMAKE_MACOSX_RPATH=TRUE
cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.15" -DBUILD_SHARED_LIBS=ON -DCMAKE_MACOSX_RPATH=TRUE -DCMAKE_POLICY_VERSION_MINIMUM=3.5
cmake --build build --config Release -j$NPROC
sudo cmake --install build
fi
@ -125,7 +135,7 @@ jobs:
curl -L https://downloads.xiph.org/releases/vorbis/libvorbis-1.3.7.tar.xz | tar xz
cd libvorbis-1.3.7
if [ ! -f /usr/local/lib/libvorbis.0.4.9.dylib ]; then
cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.15" -DBUILD_SHARED_LIBS=ON -DCMAKE_MACOSX_RPATH=TRUE
cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.15" -DBUILD_SHARED_LIBS=ON -DCMAKE_MACOSX_RPATH=TRUE -DCMAKE_POLICY_VERSION_MINIMUM=3.5
cmake --build build --config Release -j$NPROC
sudo cmake --install build
fi
@ -135,10 +145,10 @@ jobs:
command: |
mkdir -p ~/deps
cd ~/deps
curl -L https://download.sourceforge.net/libpng/libpng-1.6.39.tar.xz | tar xz
cd libpng-1.6.39
curl -L https://download.sourceforge.net/libpng/libpng-1.6.56.tar.xz | tar xz
cd libpng-1.6.56
if [ ! -f /usr/local/lib/libpng16.16.dylib ]; then
cmake -S. -Bbuild-x86 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES="x86_64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.15" -DCMAKE_MACOSX_RPATH=TRUE
cmake -S. -Bbuild-x86 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES="x86_64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.15" -DCMAKE_MACOSX_RPATH=TRUE -DCMAKE_POLICY_VERSION_MINIMUM=3.5
cmake --build build-x86 --config release -j$NPROC
fi
@ -147,9 +157,9 @@ jobs:
command: |
mkdir -p ~/deps
cd ~/deps
cd libpng-1.6.39
cd libpng-1.6.56
if [ ! -f /usr/local/lib/libpng16.16.dylib ]; then
cmake -S. -Bbuild-arm64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES="arm64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.15" -DCMAKE_MACOSX_RPATH=TRUE
cmake -S. -Bbuild-arm64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES="arm64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.15" -DCMAKE_MACOSX_RPATH=TRUE -DCMAKE_POLICY_VERSION_MINIMUM=3.5
cmake --build build-arm64 --config release -j$NPROC
fi
@ -157,8 +167,8 @@ jobs:
name: Install libpng (Universal)
command: |
if [ ! -f /usr/local/lib/libpng16.16.dylib ]; then
cd ~/deps/libpng-1.6.39/build-arm64
for i in libpng16.16.39.0.dylib libpng16.a png-fix-itxt pngfix pngimage pngstest pngtest pngunknown pngvalid
cd ~/deps/libpng-1.6.56/build-arm64
for i in libpng16.16.56.0.dylib libpng16.a png-fix-itxt pngfix pngimage pngstest pngtest pngunknown pngvalid
do
lipo -create -output $i ../build-x86/$i $i
done
@ -173,7 +183,7 @@ jobs:
curl -L https://github.com/libsdl-org/SDL/releases/download/release-2.26.1/SDL2-2.26.1.tar.gz | tar xz
cd SDL2-2.26.1
if [ ! -f /usr/local/lib/libSDL2-2.0.0.dylib ]; then
cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.15" -DBUILD_SHARED_LIBS=ON -DCMAKE_MACOSX_RPATH=TRUE
cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.15" -DBUILD_SHARED_LIBS=ON -DCMAKE_MACOSX_RPATH=TRUE -DCMAKE_POLICY_VERSION_MINIMUM=3.5
cmake --build build --config Release -j$NPROC
sudo cmake --install build
fi
@ -182,9 +192,9 @@ jobs:
command: |
mkdir -p ~/deps
cd ~/deps
curl https://dist.libuv.org/dist/v1.44.2/libuv-v1.44.2.tar.gz | tar xz
cd libuv-v1.44.2
cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.15" -DCMAKE_MACOSX_RPATH=TRUE
curl -fsSL https://github.com/libuv/libuv/archive/refs/tags/v1.44.2.tar.gz | tar xz
cd libuv-1.44.2
cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.15" -DCMAKE_MACOSX_RPATH=TRUE -DCMAKE_POLICY_VERSION_MINIMUM=3.5
cmake --build build --config Release -j$NPROC
sudo cmake --install build
@ -195,20 +205,30 @@ jobs:
cd ~/deps
git clone --depth=1 https://github.com/RandomityGuy/hashlink
cd hashlink
cd ~/deps
git clone https://github.com/RandomityGuy/hxDatachannel
cd hashlink
mv ~/deps/hxDatachannel/cpp libs/datachannel
echo -e "\nadd_subdirectory(datachannel)" >> libs/CMakeLists.txt
curl -L https://raw.githubusercontent.com/RandomityGuy/hashlink/master/libs/ssl/CMakeLists.txt > libs/ssl/CMakeLists.txt
# Fix OpenAL
# curl -L https://github.com/nullobsi/hashlink/commit/a09491918cc4b83c2cb9fcded855fe967857385f.diff | git apply
cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.15" -DCMAKE_FIND_FRAMEWORK=LAST -DWITH_SQLITE=OFF -DBUILD_TESTING=OFF -DCMAKE_MACOSX_RPATH=TRUE
cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.15" -DCMAKE_FIND_FRAMEWORK=LAST -DWITH_SQLITE=OFF -DBUILD_TESTING=OFF -DCMAKE_MACOSX_RPATH=TRUE -DHASHLINK_INCLUDE_DIR="~/deps/hashlink/src" -DHASHLINK_LIBRARY_DIR="/usr/local/lib/" -DCMAKE_POLICY_VERSION_MINIMUM=3.5
cmake --build build --config Release -j$NPROC
sudo cmake --install build
- run:
name: Install haxe dependencies
command: |
export PATH=/tmp/haxe/:"$PATH"
export HAXE_STD_PATH=/tmp/haxe/std
export PATH=~/haxe/:"$PATH"
export HAXE_STD_PATH=~/haxe/std
export PATH=~/neko/:"$PATH"
export DYLD_LIBRARY_PATH=~/neko
haxelib git heaps https://github.com/RandomityGuy/heaps
haxelib dev hlopenal ~/deps/hashlink/libs/openal
haxelib dev hlsdl ~/deps/hashlink/libs/sdl
haxelib dev datachannel ~/deps/hxDatachannel
haxelib install colyseus-websocket
- save_cache:
key: mbhaxe-deps-v1
@ -226,19 +246,22 @@ jobs:
- /usr/local/lib/libvorbis.0.4.9.dylib
- /usr/local/lib/libvorbisfile.3.3.8.dylib
- /usr/local/lib/libvorbisenc.2.0.12.dylib
- /usr/local/lib/libz.1.2.13.dylib
- /usr/local/lib/libz.1.3.2.dylib
- /usr/local/lib/datachannel.hdll
- run:
name: Compile MBHaxe
command: |
export PATH=/tmp/haxe/:"$PATH"
export HAXE_STD_PATH=/tmp/haxe/std
export PATH=~/haxe/:"$PATH"
export HAXE_STD_PATH=~/haxe/std
export PATH=~/neko/:"$PATH"
export DYLD_LIBRARY_PATH=~/neko
cd ~/MBHaxe
haxe compile-macos.hxml
cd native
cp ~/deps/hashlink/src/hlc_main.c .
clang -mmacosx-version-min=10.15 -arch x86_64 -arch arm64 -o marblegame -I . -L /usr/local/lib/ -std=c11 marblegame.c /usr/local/lib/{ui.hdll,openal.hdll,fmt.hdll,sdl.hdll,uv.hdll,ssl.hdll} -lsdl2 -lhl
clang -mmacosx-version-min=10.15 -arch x86_64 -arch arm64 -o marblegame -I . -L /usr/local/lib/ -std=c11 marblegame.c /usr/local/lib/{ui.hdll,openal.hdll,fmt.hdll,sdl.hdll,uv.hdll,ssl.hdll,datachannel.hdll} -lsdl2 -lhl -luv
- run:
name: Package app bundle
@ -248,7 +271,7 @@ jobs:
cd "macos-dist/MarbleBlast Platinum.app/Contents/MacOS"
otool -L marblegame
cd ../Frameworks
cp /usr/local/lib/{ui.hdll,openal.hdll,fmt.hdll,sdl.hdll,libSDL2-2.0.0.dylib,ssl.hdll,uv.hdll} .
cp /usr/local/lib/{ui.hdll,openal.hdll,fmt.hdll,sdl.hdll,libSDL2-2.0.0.dylib,ssl.hdll,uv.hdll,datachannel.hdll} .
cp /usr/local/lib/libhl.1.13.0.dylib libhl.1.dylib
cp /usr/local/lib/libogg.0.8.5.dylib libogg.0.dylib
cp /usr/local/lib/libopenal.1.22.2.dylib libopenal.1.dylib
@ -257,7 +280,7 @@ jobs:
cp /usr/local/lib/libvorbis.0.4.9.dylib libvorbis.0.4.9.dylib
cp /usr/local/lib/libvorbisfile.3.3.8.dylib libvorbisfile.3.3.8.dylib
cp /usr/local/lib/libvorbisenc.2.0.12.dylib libvorbisenc.2.0.12.dylib
cp /usr/local/lib/libz.1.2.13.dylib libz.1.dylib
cp /usr/local/lib/libz.1.3.2.dylib libz.1.dylib
cp /usr/local/lib/libuv.1.dylib libuv.1.dylib
# These libraries have dangling RPATHs
install_name_tool -delete_rpath /usr/local/lib libturbojpeg.0.dylib
@ -276,14 +299,17 @@ jobs:
- run:
name: ZIP Bundle
command: |
cd ~/MBHaxe
cd ~/MBHaxe/macos-dist
npm install -g create-dmg
create-dmg --dmg-title="Marble Blast Platinum" "MarbleBlast Platinum.app" || true
rm -rf "macos-dist/MarbleBlast Platinum.app.in"
zip -r MBHaxe-Platinum-Mac.zip macos-dist/
mv "marblegame vpipeline.git.tag.dmg" "MBHaxe-Platinum-Mac.dmg"
# zip -r MBHaxe-Ultra-Mac.zip macos-dist/
- run:
name: Upload to Artifact Storage
command: |
scp -o StrictHostKeyChecking=no -i $KEYPATH -P $PORT ~/MBHaxe/MBHaxe-Platinum-Mac.zip $REMOTEDIR/MBHaxe-Platinum-Mac.zip
scp -o StrictHostKeyChecking=no -i $KEYPATH -P $PORT ~/MBHaxe/macos-dist/MBHaxe-Platinum-Mac.dmg $REMOTEDIR/MBHaxe-Platinum-Mac.dmg
# - store_artifacts:
# path: ~/MBHaxe/MBHaxe-Platinum-Mac.zip
@ -319,10 +345,16 @@ jobs:
nekopath=$(/bin/find /c/ProgramData/chocolatey/lib/neko -name neko.dll -printf '%h\n')
set NEKOPATH=$nekopath
export PATH=$nekopath:"$PATH"
- run:
name: Install CMake
command: |
choco install --no-progress cmake -y
- run:
name: Install Haxe
command: |
download_url="https://github.com/HaxeFoundation/haxe/releases/download/4.2.5/haxe-4.2.5-win64.zip"
download_url="https://github.com/HaxeFoundation/haxe/releases/download/4.3.4/haxe-4.3.4-win64.zip"
echo "Downloading [$download_url]..."
mkdir /tmp/haxe
curl -fsSL --retry 3 --retry-delay 5 "$download_url" -o /tmp/haxe.zip
@ -348,6 +380,18 @@ jobs:
mv /tmp/include/openal include/openal
MSBuild.exe hl.sln -m -nologo -p:Configuration=Release -p:Platform=x64
- run:
name: Build datachannel
command: |
mkdir ~/deps
cd ~/deps
git clone https://github.com/RandomityGuy/hxDatachannel
cd hxDatachannel/cpp
"/c/Program Files/CMake/bin/cmake" -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DHASHLINK_LIBRARY_DIR="~/deps/hashlink/x64/Release" -DHASHLINK_INCLUDE_DIR="../../hashlink/src" -DCMAKE_POLICY_VERSION_MINIMUM=3.5
"/c/Program Files/CMake/bin/cmake" --build build --config Release -j4
mv ~/deps/hxDatachannel/cpp/build/Release/datachannel.hdll ~/deps/hashlink/x64/Release
mv ~/deps/hxDatachannel/cpp/build/Release/datachannel.lib ~/deps/hashlink/x64/Release
- run:
name: Install haxe dependencies
command: |
@ -360,6 +404,8 @@ jobs:
haxelib dev hlopenal ~/deps/hashlink/libs/openal
haxelib dev hlsdl ~/deps/hashlink/libs/sdl
haxelib dev hashlink ~/deps/hashlink/other/haxelib
haxelib dev datachannel ~/deps/hxDatachannel
haxelib install colyseus-websocket
- run:
name: Compile MBHaxe
@ -372,17 +418,8 @@ jobs:
cd ~/project
haxe compile-c.hxml
cd native
sed -i -e 's/MaxSpeed/Disabled/g' marblegame.vcxproj
sed -i -e 's/<FunctionLevelLinking>true<\/FunctionLevelLinking>//g' marblegame.vcxproj
sed -i -e 's/<IntrinsicFunctions>true<\/IntrinsicFunctions>//g' marblegame.vcxproj
sed -i -e 's/<EnableCOMDATFolding>true<\/EnableCOMDATFolding>//g' marblegame.vcxproj
sed -i -e 's/<OptimizeReferences>true<\/OptimizeReferences>//g' marblegame.vcxproj
sed -i -e 's/HL_MAKE;//g' marblegame.vcxproj
sed -i -e 's/<ClInclude Include=".*" \/>//g' marblegame.vcxproj
sed -i -e 's/<ClCompile Include=".*" \/>//g' marblegame.vcxproj
perl -0777 -i.marblegame.vcxproj -pe 's/<ItemGroup>[^.]*<\/ItemGroup>/<ItemGroup><ClCompile Include="marblegame.c" \/><\/ItemGroup>/g' marblegame.vcxproj
HASHLINKPATH=~/deps/hashlink
MSBuild.exe marblegame.sln -m -nologo -p:Configuration=Release -p:Platform=x64 -p:PlatformToolset=v142 -p:HASHLINK=$HASHLINKPATH
MSBuild.exe -m -nologo -p:Configuration=Release -p:Platform=x64 -p:PlatformToolset=v142 -p:MultiProcessorCompilation=true -p:HASHLINK=$HASHLINKPATH marblegame.sln
- run:
name: Package app bundle
command: |
@ -398,6 +435,7 @@ jobs:
cp ~/deps/hashlink/x64/Release/openal.hdll .
cp ~/deps/hashlink/x64/Release/sdl.hdll .
cp ~/deps/hashlink/x64/Release/ssl.hdll .
cp ~/deps/hashlink/x64/Release/datachannel.hdll .
cp ~/deps/hashlink/x64/Release/uv.hdll .
cp ~/deps/hashlink/include/sdl/lib/x64/SDL2.dll .
cp ~/deps/hashlink/include/openal/bin/Win64/soft_oal.dll ./OpenAL32.dll
@ -424,10 +462,14 @@ workflows:
filters:
tags:
only: /^\d+.\d+.\d+$/
branches:
ignore: /.*/
build-windows:
jobs:
- build-win:
filters:
tags:
only: /^\d+.\d+.\d+$/
only: /^\d+.\d+.\d+$/
branches:
ignore: /.*/

1
.github/FUNDING.yml vendored Normal file
View file

@ -0,0 +1 @@
ko_fi: randomityguy

4
.gitignore vendored
View file

@ -16,6 +16,10 @@ node_modules
fonts
package.json
package-lock.json
leaderboards
out
server
mpcustom
macos-dist/MarbleBlast Platinum.app/
macos-dist/data/

View file

@ -1,3 +1,102 @@
# 1.7.3
Hotfix time!
- Fixed chat messages being escaped a bit too much.
# 1.7.2
This update brings the following bugfixes:
- Added Import and Export Progress to Options menu to transfer game progress between devices.
- Added momentum based scrolling on touch devices for menus.
- Added TURN server support for multiplayer. Players behind strict NATs should now be able to play multiplayer without issues.
- Made the game files to be case insensitive to allow running the game on case sensitive filesystems without issues.
- Escaped all user input to prevent HTML injection in the UI.
- Fixed various race condition issues.
- Improved camera sensitivity on touch devices.
- Implemented camera centering for touch controls when free look is disabled.
- Various performance improvements and crash fixes.
- Implemented console cheat commands. DefaultMarble.attribute = value; to change marble attributes.
- Fixed a bug with the timer when playing a replay.
- Fixed a crash that could happen in multiplayer.
- Fixed not being able to load textures in certain custom levels.
- Fixed softlock when playing a user installed custom level.
- Fixed gravity changes not rewinding properly.
- Fixed skies not rendering correctly at times in the web version.
# 1.7.1
This update brings the following bugfixes:
- Fixed a crash when the marble goes out of bounds.
- Fixed the FPS limiter not limiting rendered frames per second.
- Fixed scores not being sent in certain cases.
# 1.7.0
It's the fabled Leaderboards update!
Leaderboards have been implemented for all the levels with automatic replay uploading for official levels as well as watching top replays. Additionally, segregation has been made to allow switching between rewind and non-rewind scores on the leaderboards.
Changes:
- Added an FPS limiter in the settings.
- Added custom friction support as well as custom marble attributes. Now levels can modify the marble's physics parameters to their liking.
- Improved level select persistence. Now your last chosen level will be displayed on quitting or finishing a level instead of last level in a category.
- Improved the Gem Hunt algorithm to match closer to PlatinumQuest's.
- Trigger detection now matches with the original game.
- Camera is now smoothened.
- Fixed camera not pointing at gems after respawn in Multiplayer.
- Fixed Superspeed powerup sometimes throwing you in the wrong direction in Multiplayer.
- Fixed the marble being wonky at times in replays.
- Fixed an interaction with Random powerup giving Time Travels.
- Fixed some collision issues with moving platforms.
# 1.6.1
This update fixes the following bugs:
- Fixed a crash when there are more players than spawnpoints in multiplayer.
- Fixed minor UI bugs with kicking and player list.
- Prevent timing out of players who are still loading the level.
- Fixed sort order of two multiplayer levels.
- Attempted to improve performance when someone joins mid-game.
- Touch Controls: Pressing pause now releases the joystick.
# 1.6.0
A big update! Bringing in the cross platform multiplayer the way it was meant to be played!
Please note that it is always and always recommended to download the native client for unlocked FPS and higher performance.
- Added cross platform multiplayer, the Online button is now unlocked.
- Gem Hunt Free-for-all only, no other game modes are present.
- Server authoritative marble physics and rollback netcode for all gameplay elements - including moving platforms.
- Up to 8 players due to platform technical limitations.
- Seamless multiplayer custom levels integration through Marbleland.
- Spectator mode is implemented but lasts until the end of match.
- Four PlatinumQuest levels that were present in MBP multiplayer have been added along with their shaders.
- Added the Ability to toggle between old spawns and new spawns for certain multiplayer maps.
- Added Competitor Mode:
- A new gem spawn will happen automatically after a certain duration depending on number of gems picked up.
- Reduced Mega Marble duration.
- Only Ultra Blasts can affect marbles.
- Fixed starting point.
- Touch controls improvements:
- Configure visibility of On-Screen Controls
- Configure behavior of buttons acting as camera joystick by altering Button Camera Factor
- Configure your camera sensitivity and swipe extent.
- Improved touch camera sensitivity a bit.
- Added Dynamic Joystick for Touch Controls.
- Added support for iOS for the web version.
- Improved Controller support for Android.
- Optimized the game to run at much higher framerates.
- Improved marble shadow.
- Fixed certain customs missing interiors/textures.
- Fixed marble collision at varying radii.
- Fixed Super Speed throwing you in the wrong direction.
# 1.5.4
This update fixes the following bugs:
- Updated Marbleland support. New levels will now automatically show up.
- Implement "Latest" and "Alphabetical" sorting for Marbleland customs.
- Optimized rewind to use memory better.
- Fixed a handful of memory leaks.
- Match with MBG Collision code.
# 1.5.3
This update fixes the following bugs:
- Slightly improved marble cubemaps.
- Fixed camera movement for varying FPS and sensitivities.
- Fixed rolling sound bug.
# 1.5.2
- Updated Marbleland integration link to the new site.

View file

@ -1,27 +1,47 @@
# MBHaxe
A Haxe port of Marble Blast Gold and Platinum, name subject to change.
A Haxe port of Marble Blast Gold, Ultra and Platinum, name subject to change.
The marble physics code was taken from [OpenMBU](https://github.com/MBU-Team/OpenMBU) along with my own collision detection code, game logic was partially from scratch and taken with permission from [Marble Blast Web Port](https://github.com/Vanilagy/MarbleBlast).
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/H2H5FRTTL)
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/H2H5FRTTL)
Support Discord: https://discord.gg/GsmTVQQAhG
# Play
## Web Browser
The browser port supports touch controls, meaning it can be played on mobile devices.
### Marble Blast Gold: [Play](https://marbleblastgold.randomityguy.me/)
### Marble Blast Platinum: [Play](https://marbleblast.randomityguy.me/)
### Marble Blast Ultra: [Play](https://marbleblastultra.randomityguy.me/)
## Windows and Mac
### Marble Blast Gold: [Download](https://github.com/RandomityGuy/MBHaxe/releases/tag/1.1.9)
### Marble Blast Platinum: [Download](https://github.com/RandomityGuy/MBHaxe/releases/tag/1.5.2)
### Marble Blast Gold: [Download](https://github.com/RandomityGuy/MBHaxe/releases/tag/1.1.13)
### Marble Blast Platinum: [Download](https://github.com/RandomityGuy/MBHaxe/releases/tag/1.7.3)
### Marble Blast Ultra: [Download](https://github.com/RandomityGuy/MBHaxe/releases/tag/1.2.5-mbu)
## Mac Instructions - Important
Put the .app file in either /Applications or ~/Applications in order to run it properly.
You will also have to bypass Gatekeeper since the .app is not signed.
## Android
### Marble Blast Gold: [Download](https://github.com/RandomityGuy/MBHaxe/releases/download/1.1.9/MBHaxe-Gold.apk)
### Marble Blast Platinum: [Download](https://github.com/RandomityGuy/MBHaxe/releases/download/1.5.2/MBHaxe-Platinum.apk)
### Marble Blast Gold: [Download](https://github.com/RandomityGuy/MBHaxe/releases/download/1.1.13/MBHaxe-Gold.apk)
### Marble Blast Platinum: [Download](https://github.com/RandomityGuy/MBHaxe/releases/download/1.7.3/MBHaxe-Platinum.apk)
### Marble Blast Ultra: [Download](https://github.com/RandomityGuy/MBHaxe/releases/download/1.2.5-mbu/MBHaxe-Ultra.apk)
# Why Haxe?
I chose Haxe because its a good language that can target other languages, meaning any Haxe code can be converted and used in Python, C++, Java very easily so that nobody has to take effort in porting the code to different languages, atleast thats what my mindset was when I started it, but unfortunately because of the 3d engine I used, it only compiles to C and Javascript. You will have to isolate the engine specific features yourself if you want to use this for other programming languages.
## Xbox (NEW!)
### Marble Blast Ultra: [Download](https://github.com/RandomityGuy/MBHaxe/releases/download/1.2.5-mbu/MBHaxe-Ultra-UWP-Xbox.msix)
Ported to Xbox via UWP by [Daniel Worley](https://github.com/worleydl).
You will need to enable Developer Mode on your Xbox in order to sideload the app. The walkthrough can be found at https://www.youtube.com/watch?v=2Ly9TIdu9uw.
## Additional Features
- Cross Platform Multiplayer: Available in Ultra and Platinum. You can host and join multiplayer matches in any of these platforms: Windows, Mac, Web, Android.
- Replay System: You can record your run using the built in replay system and watch it later.
- Rewind: You can rewind your marble by enabling rewind in the Options and holding down the rewind key (defaults to R).
- Controller Support: Full controller support is added to Marble Blast Ultra, with incomplete support for the rest.
- Touch Controls: Available in the web (mobile) and android versions.
# Screenshots
<img src="https://imgur.com/Ncb4atl.png" width="640">
<img src="https://imgur.com/KQKUk0Y.png" width="640">
<img src="https://imgur.com/VnnrIt2.png" width="640">
<img src="https://imgur.com/lfLBKqO.png" width="640">
<img src="https://imgur.com/DN1A2Mf.png" width="640">
<img src="https://imgur.com/2UngOAy.png" width="640">
<img src="https://imgur.com/Jvfip72.png" width="640">
<img src="https://imgur.com/CS693zi.png" width="640">
<img src="https://imgur.com/iryo0AL.png" width="640">
<img src="https://imgur.com/vsuNqUi.png" width="640">
@ -34,14 +54,19 @@ I chose Haxe because its a good language that can target other languages, meanin
<img src="https://imgur.com/eEfU2we.png" width="640">
<img src="https://imgur.com/7OSISYJ.png" width="640">
# Why Haxe?
I chose Haxe because its a good language that can target other languages, meaning any Haxe code can be converted and used in Python, C++, Java very easily so that nobody has to take effort in porting the code to different languages, atleast thats what my mindset was when I started it, but unfortunately because of the 3d engine I used, it only compiles to C and Javascript. You will have to isolate the engine specific features yourself if you want to use this for other programming languages.
# Build
The `master` branch is currently for Marble Blast Platinum.
If you want to build Marble Blast Gold, go to the [mbg](https://github.com/RandomityGuy/MBHaxe/tree/mbg) tag
If you want to build Marble Blast Ultra, go to the [mbu-port](https://github.com/RandomityGuy/MBHaxe/tree/mbu-port) branch.
If you want to build Marble Blast Gold, go to the [mbg](https://github.com/RandomityGuy/MBHaxe/tree/mbg) branch.
Requires Haxe 4.2.2 or above
Requires Haxe 4.3.0 or above
You require the following Haxe libraries:
- heaps: The specific version located [here](https://github.com/RandomityGuy/heaps)
- hlsdl (Obtain the haxelib version of hlsdl, then patch it with these files [here](https://github.com/RandomityGuy/hashlink/tree/master/libs/sdl)) (Hashlink/C native target)
- datachannel: obtained from [here](https://github.com/RandomityGuy/hxDatachannel)
- stb_ogg_sound (JS/Browser target)
- zip 1.1.0 (JS/Browser target)
@ -56,6 +81,13 @@ If the build dependencies are fullfilled, compile with `haxe compile-js.hxml` an
## MacOS
See [here](README-macOS.md)
## Android
The branches used for Android builds are `mbg-android`, `mbp-android-new` or `mbu-android`.
Clone [this repository](https://github.com/RandomityGuy/MBHaxeAndroidLibs) containing the necessary libraries for the build and merge its src folder with that of Export/android/app/src folder.
Android NDK version 18.1.5063045 and platform SDK version 31 is needed.
Install zyheaps haxelib as well.
Finally run `gradlew` in Export/android folder and run `gradlew assembleRelease`
This will build the apk file at Export/android/app/build/outputs/apk/release/app-release-unsigned.apk which you can sign yourself and install on your device.
# FAQ
@ -63,9 +95,6 @@ See [here](README-macOS.md)
If you are on browser, please send the browser console log to me
If you are on native, please run marbleblast-debug.bat and reproduce the crash, send the resulting stacktrace that occurs during the crash to me.
## Help it shows a black screen when playing a level!
Your PC does not support the game, please upgrade it, there is nothing I can do about it to fix it.
## How accurate are the marble physics?
Very accurate with up to 1% deviation from the original physics. The deviations are due to traplaunches being slightly different and occassional internal edge collisions, and the lower delta t values for physics simulations.
@ -74,12 +103,14 @@ In browser, you can just resize your window. You can use the browser zoom featur
In native version, you can just resize the window if windowed or use the resolution options in the menu or just directly modify settings.json
## How do I change my FOV?
Edit settings.json for native version, edit the MBHaxeSettings key in LocalStorage in browser.
In the platinum version, there is an FOV slider.
There is an FOV slider in the options menu.
## How do I unlock/lock FPS?
You cannot unlock fps in the browser, it is forever set to vsync.
In the native version, edit settings.json or the options menu in the platinum.
In the native version, use the options menu to unlock/lock fps.
## Hey can you please add this new feature?
If this new feature of yours already exists in MBG but not in this port, then I will try to add it, if I get time to do so, otherwise chances are, I won't add it since I have other things to do and would rather not waste my time on this any further. You are free to do pull requests if you have already implemented said feature.
If this new feature of yours already exists in MBG but not in this port, then I will try to add it, if I get time to do so, otherwise chances are, I won't add it since I have other things to do and would rather not waste my time on this any further. You are free to do pull requests if you have already implemented said feature.
# Notes
This project is tested with BrowserStack.

View file

@ -1,6 +1,8 @@
-cp src
-lib heaps
-lib hlsdl
-lib datachannel
-lib colyseus-websocket
-D highDPI
-D flow_border
-D hlgen.makefile=vs2019

View file

@ -2,6 +2,8 @@
-lib heaps
-lib stb_ogg_sound
-lib zip
-lib datachannel
-lib colyseus-websocket
-lib uglifyjs
--js marblegame.js
-D windowSize=1280x720

View file

@ -2,6 +2,8 @@
-lib heaps
-lib stb_ogg_sound
-lib zip
-lib datachannel
-lib colyseus-websocket
--js marblegame.js
-D windowSize=1280x720
-D js-es=6

View file

@ -1,6 +1,8 @@
-cp src
-lib heaps
-lib hlsdl
-lib datachannel
-lib colyseus-websocket
-D highDPI
-D flow_border
-hl native/marblegame.c

View file

@ -1 +1 @@
cl native\marblegame.c /Fe:marblegame.exe /Od -I "D:\C Projects\Haxe\hl-1.11.0-win\include" -I native "D:\repos\Hashlink\hashlink\x64\Release\libhl.lib" "D:\repos\Hashlink\hashlink\x64\Release\fmt.lib" "D:\repos\Hashlink\hashlink\x64\Release\ui.lib" "D:\repos\Hashlink\hashlink\x64\Release\openal.lib" "D:\repos\Hashlink\hashlink\x64\Release\sdl.lib" "D:\repos\Hashlink\hashlink\x64\Release\uv.lib" "D:\repos\Hashlink\hashlink\x64\Release\ssl.lib"
cl native\marblegame.c /Fe:marblegame.exe /O2 -I "D:\C Projects\Haxe\hl-1.11.0-win\include" -I native "D:\repos\Hashlink\hashlink\x64\Release\libhl.lib" "D:\repos\Hashlink\hashlink\x64\Release\fmt.lib" "D:\repos\Hashlink\hashlink\x64\Release\ui.lib" "D:\repos\Hashlink\hashlink\x64\Release\openal.lib" "D:\repos\Hashlink\hashlink\x64\Release\sdl.lib" "D:\repos\Hashlink\hashlink\x64\Release\uv.lib" "D:\repos\Hashlink\hashlink\x64\Release\ssl.lib" "D:\repos\Hashlink\hashlink\x64\Release\datachannel-static.lib" "D:\repos\Hashlink\hashlink\x64\Release\MbedTLS.lib" "D:\repos\Hashlink\hashlink\x64\Release\datachannel.lib"

View file

@ -1,6 +1,8 @@
-cp src
-lib heaps
-lib hlsdl
-lib datachannel
-lib colyseus-websocket
-hl marblegame.hl
-D windowSize=1280x720
-D keep-inline-positions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 224 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View file

@ -1,7 +1,7 @@
{
"name": "Marble Blast Gold Haxe Port",
"short_name": "Marble Blast Gold",
"description": "A reimplementation of Marble Blast Gold in Haxe",
"name": "Marble Blast Platinum Haxe Port",
"short_name": "Marble Blast Platinum",
"description": "A reimplementation of Marble Blast Platinum in Haxe",
"dir": "ltr",
"start_url": "/index.html?app=true",
"scope": "/",

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

View file

@ -0,0 +1,706 @@
//--- OBJECT WRITE BEGIN ---
new SimGroup(MissionGroup) {
new ScriptObject(MissionInfo) {
desc = "Use the tornado to your advantage!";
artist = "Alex Swanson";
type = "Advanced";
level = "7";
name = "Eye of the Storm";
music = "Beach Party.ogg";
startHelpText = "Move back and forth to escape the tornado\'s pull!";
time = "240000";
Gamemode = "Hunt";
game = "Gold";
MaxGemsPerSpawn = "6";
RadiusFromGem = "15";
score[0] = "15";
score[1] = "35";
platinumScore[0] = "35";
platinumScore[1] = "60";
ultimateScore[0] = "85";
ultimateScore[1] = "125";
alarmStartTime = "20";
overviewHeight = "15";
glassCenter = "Glassy";
};
new MissionArea(MissionArea) {
area = "-360 -648 720 1296";
flightCeiling = "300";
flightCeilingRange = "20";
locked = "true";
};
new Sky(Sky) {
position = "336 136 0";
rotation = "1 0 0 0";
scale = "1 1 1";
cloudHeightPer[0] = "0";
cloudHeightPer[1] = "0";
cloudHeightPer[2] = "0";
cloudSpeed1 = "0.0001";
cloudSpeed2 = "0.0002";
cloudSpeed3 = "0.0003";
visibleDistance = "10000";
useSkyTextures = "1";
renderBottomTexture = "1";
SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
fogDistance = "300";
fogColor = "0.600000 0.600000 0.600000 1.000000";
fogVolume1 = "-1 7.45949e-031 1.3684e-038";
fogVolume2 = "-1 1.07208e-014 8.756e-014";
fogVolume3 = "-1 5.1012e-010 2.05098e-008";
materialList = "~/data/skies/Cloudy/cloudy.dml";
windVelocity = "1 0 0";
windEffectPrecipitation = "0";
noRenderBans = "1";
fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
};
new Sun() {
direction = "0.638261 0.459006 -0.61801";
color = "1.400000 1.200000 0.400000 1.000000";
ambient = "0.300000 0.300000 0.400000 1.000000";
};
new StaticShape() {
position = "0 0 0";
rotation = "1 0 0 0";
scale = "10000 10000 10000";
dataBlock = "Dusk";
};
new InteriorInstance() {
position = "0 0 0";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/eyeofthestorm.dif";
showTerrainInside = "0";
};
new Trigger(Bounds) {
position = "-25 22 -5";
rotation = "1 0 0 0";
scale = "50 40 500";
dataBlock = "InBoundsTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
};
new StaticShape() {
position = "0.06875 3.62188 0.4125";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "Tornado";
};
new SimGroup(OldVersion) {
new Item() {
position = "0.43 -6.1 5.7";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "7.2 -7.6 9.35";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "4.9 7.45 1.8";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-1.9 -6.9 1.8";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "10.29 11.25 8.47";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "2.5 17.1 14.6";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-0.9 10.6 4.25";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-3 -10.8 11.85";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-15.2 -5.2 13.7";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "7.9 10.4 7.4";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "14.8 8.3 11.85";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "1.4 13.8 6.85";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-5.9 11.3 5.95";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-7.2 7.5 2.76";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-11 2.3 3.19";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-11 -1.66 5.49";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-7.6 -5 5.8";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-4.73 -2.2 1.7";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-5.4 1 1.12";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-1.25 6.34 0.43";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "2.64 0.93 0.43";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "0.5 -2 2.65";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "9.75 -2.26 5.8";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "12.8 -2.18 8.8";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "12.3 -7.4 10.05";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "13.2 4.7 4.84367";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "8.2 2.4 4.1";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "7.24 -0.12 3.17";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "9.64 8.1 5.47";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-4.3 6.25 0.7";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-1.67 6.51 20.1";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "2.88985 6.30134 21";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemBlue";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-7.03 9.5 17.35";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
};
new SimGroup(NewVersion) {
new Item() {
position = "0.43 -6.1 5.7";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "7.2 -7.6 9.35";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "4.9 7.45 1.8";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-1.9 -6.9 1.8";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "10.29 11.25 8.47";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-4.3 6.25 0.7";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-0.9 10.6 4.25";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "7.24 -0.12 3.17";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "8.2 2.4 4.1";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "4.75 13.25 8.23988";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "9.64 8.1 5.47";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "1.4 13.8 6.85";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-5.9 11.3 5.95";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-7.2 7.5 2.76";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-11 3.55 3.10058";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-11 -1.66 5.49";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-7.6 -5 5.8";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-4.73 -2.2 1.7";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-5.4 1 1.12";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-1.25 6.34 0.43";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "2.64 0.93 0.43";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "0.5 -2 2.65";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "9.75 -2.26 5.8";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "12.8 -2.18 8.8";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "13.5 -6.25 10.05";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "13.2 4.7 4.12109";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
};
new SimGroup(SpawnPoints) {
new Trigger() {
position = "-2.5 4 2";
rotation = "0 0 1 90";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "1 0 2";
rotation = "0 0 1 180";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "3 3.1 2";
rotation = "0 0 -1 90";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "0 7 2";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "3.4 6.7 2";
rotation = "0 0 1 45";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "4 1 2";
rotation = "0 0 1 125";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "-2.5 6 2";
rotation = "0 0 -1 45";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "-3 0.5 2";
rotation = "0 0 1 225";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
};
new Marker(Glassy) {
position = "0 0 0";
rotation = "1 0 0 0";
scale = "1 1 1";
};
new AudioProfile(MusicProfile) {
fileName = "~/data/sound/music/Pianoforte.ogg";
description = "AudioMusic";
preload = "0";
};
};
//--- OBJECT WRITE END ---

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View file

@ -0,0 +1,502 @@
//--- OBJECT WRITE BEGIN ---
new SimGroup(MissionGroup) {
new ScriptObject(MissionInfo) {
name = "Ramps Reloaded";
type = "Advanced";
level = "1";
desc = "We need gems. Lots of gems.";
startHelpText = "Be careful when crossing between platforms.";
artist = "Alex Swanson";
music = "Classic Vibe.ogg";
Gamemode = "Hunt";
game = "Gold";
time = "270000";
MaxGemsPerSpawn = "5";
RadiusFromGem = "25";
score[0] = "30";
score[1] = "50";
platinumScore[0] = "70";
platinumScore[1] = "100";
ultimateScore[0] = "105";
ultimateScore[1] = "150";
alarmStartTime = "20";
overviewHeight = "10";
glassCenter = "Glassy";
};
new MissionArea(MissionArea) {
area = "-360 -648 720 1296";
flightCeiling = "300";
flightCeilingRange = "20";
locked = "true";
};
new Sky(Sky) {
position = "336 136 0";
rotation = "1 0 0 0";
scale = "1 1 1";
cloudHeightPer[0] = "0";
cloudHeightPer[1] = "0";
cloudHeightPer[2] = "0";
cloudSpeed1 = "0.0001";
cloudSpeed2 = "0.0002";
cloudSpeed3 = "0.0003";
visibleDistance = "10000";
useSkyTextures = "1";
renderBottomTexture = "1";
SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
fogDistance = "300";
fogColor = "0.600000 0.600000 0.600000 1.000000";
fogVolume1 = "-1 7.45949e-031 1.3684e-038";
fogVolume2 = "-1 1.07208e-014 8.756e-014";
fogVolume3 = "-1 5.1012e-010 2.05098e-008";
materialList = "~/data/skies/Cloudy/cloudy.dml";
windVelocity = "1 0 0";
windEffectPrecipitation = "0";
noRenderBans = "1";
fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
};
new Sun() {
direction = "0.638261 0.459006 -0.61801";
color = "1.400000 1.200000 0.400000 1.000000";
ambient = "0.300000 0.300000 0.400000 1.000000";
};
new StaticShape() {
position = "0 0 0";
rotation = "1 0 0 0";
scale = "10000 10000 10000";
dataBlock = "Clear";
};
new InteriorInstance() {
position = "0 0 0";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/reloaded.dif";
showTerrainInside = "0";
};
new Trigger(Bounds) {
position = "-31 27 -9.5";
rotation = "1 0 0 0";
scale = "70 54 34.5";
dataBlock = "InBoundsTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
};
new Trigger() {
position = "-26 2 5";
rotation = "0 0 1 90";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "-14 14 -3";
rotation = "0 0 1 90";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "-26 -6 5";
rotation = "0 0 1 90";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "-6 6 5";
rotation = "0 0 1 90";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "22 14 5";
rotation = "0 0 -1 90";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "26 14 5";
rotation = "0 0 -1 90";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "22 -22 3";
rotation = "0 0 -1 90";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "22 -14 -3";
rotation = "0 0 -1 90";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Item() {
position = "2 14 0.2";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperJumpItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "6 -14 0.2";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperJumpItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "26 -14 -3.8";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperJumpItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-18 14 -3.8";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperJumpItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-10 2 -1.8";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperJumpItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "18 -2 -1.8";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperJumpItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "22 -2 6.187";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperSpeedItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-14 2 6.187";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperSpeedItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "18 -22 -4";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "BlastItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-10 22 -4";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "BlastItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-18 -14 4";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "MegaMarbleItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "14 6 0";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "MegaMarbleItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "14 14 2";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "2 6 2";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-6 -14 2";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-6 -6 0";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-14 6 6";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-22 22 0";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-6 22 0";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "14 -2 2";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "26 -2 0";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "22 -6 6";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "34 -2 4";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "14 -22 0";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "26 -22 -2";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "30 -14 2";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-22 14 2";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-18 -6 2";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "22 10 4";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "30 -22 0";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "34 6 4";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-6 14 6";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-14 -2 6";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-18 2 0";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "14 -14 6";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-18 22 -2";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-10 14 -6";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemBlue";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "18 -14 -6";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemBlue";
collideable = "0";
static = "1";
rotate = "1";
};
new Marker(Glassy) {
position = "4 0 0";
rotation = "1 0 0 0";
scale = "1 1 1";
};
new AudioProfile(MusicProfile) {
fileName = "~/data/sound/music/Comforting Mystery.ogg";
description = "AudioMusic";
preload = "0";
};
};
//--- OBJECT WRITE END ---

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

View file

@ -0,0 +1,379 @@
//--- OBJECT WRITE BEGIN ---
new SimGroup(MissionGroup) {
new ScriptObject(MissionInfo) {
name = "King of the Marble";
type = "Beginner";
level = "1";
desc = "With little room to escape, show your opponents why you are the King.";
artist = "Tim Aste & Matan";
music = "Tim Trance.ogg";
Gamemode = "Hunt";
game = "Ultra";
glassCenter = "glassCenter";
time = "180000";
MaxGemsPerSpawn = "4";
RadiusFromGem = "15";
score[0] = "30";
score[1] = "60";
platinumScore[0] = "60";
platinumScore[1] = "110";
ultimateScore[0] = "120";
ultimateScore[1] = "155";
alarmStartTime = "15";
};
new MissionArea(MissionArea) {
area = "-360 -648 720 1296";
flightCeiling = "300";
flightCeilingRange = "20";
locked = "true";
};
new Sky(Sky) {
position = "336 136 0";
rotation = "1 0 0 0";
scale = "1 1 1";
cloudHeightPer[0] = "0";
cloudHeightPer[1] = "0";
cloudHeightPer[2] = "0";
cloudSpeed1 = "0.0001";
cloudSpeed2 = "0.0002";
cloudSpeed3 = "0.0003";
visibleDistance = "10000";
useSkyTextures = "1";
renderBottomTexture = "1";
SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
fogDistance = "300";
fogColor = "0.600000 0.600000 0.600000 1.000000";
fogVolume1 = "-1 7.45949e-031 1.3684e-038";
fogVolume2 = "-1 1.07208e-014 8.756e-014";
fogVolume3 = "-1 5.1012e-010 2.05098e-008";
materialList = "~/data/skies/Cloudy/cloudy.dml";
windVelocity = "1 0 0";
windEffectPrecipitation = "0";
noRenderBans = "1";
fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
};
new Sun() {
direction = "0.573201 0.275357 -0.771764";
color = "1.080000 1.030000 0.900000 1.000000";
ambient = "0.400000 0.400000 0.500000 1.000000";
};
new StaticShape() {
position = "0 0 0";
rotation = "1 0 0 0";
scale = "10000 10000 10000";
dataBlock = "Clear";
};
new InteriorInstance() {
position = "-28.2 0 20.4";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/multiplayer/interiors/mbu/KingOfTheMarble.dif";
showTerrainInside = "0";
};
new Trigger(stayhere) {
position = "-62 52 16";
rotation = "1 0 0 0";
scale = "75 75 75";
dataBlock = "InBoundsTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
};
new Trigger() {
position = "-13 35.25 23";
rotation = "0 0 1 180";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "-25 35.25 23";
rotation = "0 0 1 180";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "-37 35.25 23";
rotation = "0 0 1 180";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "-45.25 27 23";
rotation = "0 0 1 90";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "-45.25 15 23";
rotation = "0 0 1 90";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "-45.25 3 23";
rotation = "0 0 1 90";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "-37.25 -5 23";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "-25.25 -5 23";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "-13.25 -5 23";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "-5.25 27 23";
rotation = "0 0 -1 90";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "-5.25 15 23";
rotation = "0 0 -1 90";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "-5.25 3 23";
rotation = "0 0 -1 90";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Item() {
position = "-27.2 17 20.7";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-23.2 13 20.7";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-23.2 17 20.7";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-27.2 13 20.7";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-13.2 15 20.7";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-25.2 27 20.7";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-37.2 15 20.7";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-25.2 3 20.7";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-13.2 3 20.7";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-37.2 27 20.7";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-13.2 27 20.7";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-37.2 3 20.7";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-37.2 9 20.85";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperJumpItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-19.2 3 20.85";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperJumpItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-13.2 21 20.85";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperJumpItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-37.2 21 20.837";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperSpeedItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-31.2 3 20.837";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperSpeedItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-19.2 27 20.837";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperSpeedItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-13.2 9.2 20.7";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "BlastItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-31.2 27 20.7";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "BlastItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-25.2 15 21.1";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "MegaMarbleItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Marker(glassCenter) {
position = "-25.2 15 0";
rotation = "1 0 0 0";
scale = "1 1 1";
};
new AudioProfile(MusicProfile) {
fileName = "~/data/sound/music/Pianoforte.ogg";
description = "AudioMusic";
preload = "0";
};
};
//--- OBJECT WRITE END ---

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

View file

@ -0,0 +1,542 @@
//--- OBJECT WRITE BEGIN ---
new SimGroup(MissionGroup) {
new ScriptObject(MissionInfo) {
name = "King of the Ring";
type = "Beginner";
level = "2";
desc = "Round and Round...";
artist = "Kurt";
music = "Tim Trance.ogg";
Gamemode = "Hunt";
game = "Platinum";
time = "180000";
MaxGemsPerSpawn = "5";
RadiusFromGem = "15";
score[0] = "20";
score[1] = "30";
platinumScore[0] = "40";
platinumScore[1] = "60";
ultimateScore[0] = "65";
ultimateScore[1] = "90";
alarmStartTime = "15";
overviewHeight = "-6";
glassCenter = "Glassy";
};
new MissionArea(MissionArea) {
area = "-360 -648 720 1296";
flightCeiling = "300";
flightCeilingRange = "20";
locked = "true";
};
new Sky(Sky) {
position = "336 136 0";
rotation = "1 0 0 0";
scale = "1 1 1";
cloudHeightPer[0] = "0";
cloudHeightPer[1] = "0";
cloudHeightPer[2] = "0";
cloudSpeed1 = "0.0001";
cloudSpeed2 = "0.0002";
cloudSpeed3 = "0.0003";
visibleDistance = "500";
useSkyTextures = "1";
renderBottomTexture = "1";
SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
fogDistance = "300";
fogColor = "0.600000 0.600000 0.600000 1.000000";
fogVolume1 = "-1 7.45949e-31 1.3684e-38";
fogVolume2 = "-1 1.07208e-14 8.756e-14";
fogVolume3 = "-1 5.1012e-10 2.05098e-08";
materialList = "~/data/skies/Intermediate/Intermediate_Sky.dml";
windVelocity = "1 0 0";
windEffectPrecipitation = "0";
noRenderBans = "1";
fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
};
new Sun() {
direction = "0.573201 0.275357 -0.771764";
color = "1.080000 1.030000 0.900000 1.000000";
ambient = "0.400000 0.400000 0.500000 1.000000";
};
new InteriorInstance() {
position = "-0.5 -1 0";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/multiplayer/interiors/mbu/KingOfTheRing.dif";
showTerrainInside = "0";
};
new StaticShape() {
position = "0 0 0";
rotation = "1 0 0 0";
scale = "500 500 500";
dataBlock = "clear";
};
new Trigger() {
position = "-0.5 -7.5 1";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
center = "1";
};
new Item() {
position = "4 4 0.9842213";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "BlastItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "0 0 -0.4994973";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "MegaMarbleItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "0 0 2.55";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemBlue";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "4 -4 1.2";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperJumpItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-4 -4 1.187";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperSpeedItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-4 4 0.768644";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "HelicopterItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Trigger() {
position = "-0.5 8.5 1";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
center = "1";
};
new Trigger() {
position = "-8.5 0.5 1";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
center = "1";
};
new Trigger() {
position = "7.5 0.5 0.9999998";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
center = "1";
};
new Item() {
position = "20 0 4.658161";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "0 20 4.65816";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-20 0 4.658127";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "0 14 2.247848";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "0 -20 4.658127";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new TSStatic() {
position = "10.07219 5.009139 1.05";
rotation = "0 1 0 22.00001";
scale = "1 1 0.01";
shapeName = "~/data/custom_marbles/MBUltra/marble06.dts";
};
new Item() {
position = "0 -14 2.247838";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "14 0 2.247849";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-14 0 2.247839";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-14 14 4.577429";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "14 -14 4.577416";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "14 14 4.57743";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-14 -14 4.577416";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-10 10 2.3";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-10 -10 2.304946";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "10 10 2.304945";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "10 -10 2.304946";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-14 8 3.101237";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-8 14 3.101239";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "8 14 3.101242";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "14 8 3.101239";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "8 -14 3.101242";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-8 -14 3.101239";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "14 -8 3.101242";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-14 -8 3.101232";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-18 6 4.232153";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-18 -6 4.232141";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "6 18 4.232151";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-6 18 4.232089";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "18 -6 4.23215";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "18 6 4.232091";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-6 -18 4.232153";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "6 -18 4.232094";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "4 -12 1.696009";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-4 -12 1.692367";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "4 12 1.696017";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-12 -4 1.69236";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-12 4 1.696022";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-4 12 1.696008";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "12 -4 1.696015";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "12 4 1.69601";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Trigger(Bounds) {
position = "-29.79376 31.04235 -0.250042";
rotation = "1 0 0 0";
scale = "60 60 60";
dataBlock = "InBoundsTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
};
new AudioProfile(MusicProfile) {
fileName = "~/data/sound/music/Pianoforte.ogg";
description = "AudioMusic";
preload = "0";
};
};
//--- OBJECT WRITE END ---

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

View file

@ -0,0 +1,699 @@
//--- OBJECT WRITE BEGIN ---
new SimGroup(MissionGroup) {
new ScriptObject(MissionInfo) {
name = "Ramp Matrix";
type = "Beginner";
level = "3";
desc = "Woah! I know marble-fu!";
artist = "Alex Swanson";
music = "Classic Vibe.ogg";
Gamemode = "Hunt";
game = "Gold";
time = "210000";
MaxGemsPerSpawn = "6";
RadiusFromGem = "10";
score[0] = "20";
score[1] = "35";
platinumScore[0] = "50";
platinumScore[1] = "70";
ultimateScore[0] = "90";
ultimateScore[1] = "115";
alarmStartTime = "20";
overviewHeight = "2";
glassCenter = "Glassy";
};
new MissionArea(MissionArea) {
area = "-360 -648 720 1296";
flightCeiling = "300";
flightCeilingRange = "20";
locked = "true";
};
new Sky(Sky) {
position = "336 136 0";
rotation = "1 0 0 0";
scale = "1 1 1";
cloudHeightPer[0] = "0";
cloudHeightPer[1] = "0";
cloudHeightPer[2] = "0";
cloudSpeed1 = "0.0001";
cloudSpeed2 = "0.0002";
cloudSpeed3 = "0.0003";
visibleDistance = "10000";
useSkyTextures = "1";
renderBottomTexture = "1";
SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
fogDistance = "300";
fogColor = "0.600000 0.600000 0.600000 1.000000";
fogVolume1 = "-1 7.45949e-031 1.3684e-038";
fogVolume2 = "-1 1.07208e-014 8.756e-014";
fogVolume3 = "-1 5.1012e-010 2.05098e-008";
materialList = "~/data/skies/Cloudy/cloudy.dml";
windVelocity = "1 0 0";
windEffectPrecipitation = "0";
noRenderBans = "1";
fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
};
new Sun() {
direction = "0.638261 0.459006 -0.61801";
color = "1.400000 1.200000 0.400000 1.000000";
ambient = "0.300000 0.300000 0.400000 1.000000";
};
new StaticShape() {
position = "0 0 0";
rotation = "1 0 0 0";
scale = "10000 10000 10000";
dataBlock = "Clear";
};
new InteriorInstance() {
position = "0 0 0";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/intermediate/rampmatrix.dif";
showTerrainInside = "0";
};
new Trigger(Bounds) {
position = "-43 35 -19";
rotation = "1 0 0 0";
scale = "86 70 90";
dataBlock = "InBoundsTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
};
new Trigger() {
position = "-32 -16 -6";
rotation = "0 0 1 90";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "-32 -8 -6";
rotation = "0 0 1 90";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "-32 8 -6";
rotation = "0 0 1 90";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "-32 16 -6";
rotation = "0 0 1 90";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "32 16 -6";
rotation = "0 0 -1 90";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "32 8 -6";
rotation = "0 0 -1 90";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "32 -8 -6";
rotation = "0 0 -1 90";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Trigger() {
position = "32 -16 -6";
rotation = "0 0 -1 90";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
add = "0 0 1";
};
new Item() {
position = "16 -14 -5.8";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperJumpItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-18 26 -8.8";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperJumpItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "18 -26 -8.8";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperJumpItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-14 -24 -8.8";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperJumpItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "0 8 -14.8";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperJumpItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "14 24 -8.8";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperJumpItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "0 -8 -14.8";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperJumpItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-16 14 -5.8";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperJumpItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-16 0 -3";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "MegaMarbleItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "16 0 -3";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "MegaMarbleItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "0 16 -3";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "BlastItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "0 -16 -3";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "BlastItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "14 0 -3";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-0.46 -20.53 -12";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "16 -24 -9";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-16 -24 -9";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-16 24 -9";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "16 24 -9";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "0.28 18.53 -3";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "1.42 -3.27 0";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-5.68 2.04 -0.61";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-2.46 -9.77 -2.14";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "9.14 3.03 -1.9";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-18.75 4.88 -3.32";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-18.92 -10.82 -5.54";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-9.45 -13.78 -5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-5.09 13.73 -3.38";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "6.49 17.73 -3.9";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-14 0.1 -3";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "18.84 7.88 -4.43";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "19.03 -15.78 -10.55";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "7.7 26.26 -10.6";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-10.45 22.43 -9.55";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-0.07 17.68 -12.84";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "17.06 17.56 -9.9";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-17.24 14.45 -11.05";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-14.92 -18.5 -9.53";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-6.56 -21.48 -11.02";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "11.05 -27.06 -9.35";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-1.57 9.5 -15";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-2.45 -9.94 -15";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "1.32 -5.25 -15";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "18.72 -10.05 -12";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "15.13 9.34 -12";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-19.11 4.91 -12";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-13.99 -7.87 -12";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-16 0 -12";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "16 16 -6";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-16 -16 -6";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "16 0 -12";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "0.8 8.74 -1.76";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "14.5 -18 -6";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-18 18 -6";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "3.56 -18.08 -3";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "5 -10 -14.6";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-3 5.75 -15";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "0 24 -12";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "0 -24 -12";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "0 0 0";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemBlue";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "0 0 -15";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemBlue";
collideable = "0";
static = "1";
rotate = "1";
};
new Marker(Glassy) {
position = "0 0 0";
rotation = "1 0 0 0";
scale = "1 1 1";
};
new AudioProfile(MusicProfile) {
fileName = "~/data/sound/music/Pianoforte.ogg";
description = "AudioMusic";
preload = "0";
};
};
//--- OBJECT WRITE END ---

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

View file

@ -0,0 +1,854 @@
//--- OBJECT WRITE BEGIN ---
new SimGroup(MissionGroup) {
new ScriptObject(MissionInfo) {
level = "4";
name = "Daedalus";
desc = "Find the gems and escape this labyrinth!";
music = "Classic Vibe.ogg";
artist = "Alex Swanson";
game = "Gold";
gameMode = "hunt";
radiusFromGem = "15";
time = "240000";
maxGemsPerSpawn = "5";
alarmStartTime = "20";
type = "Advanced";
overviewHeight = "5";
score[0] = "15";
score[1] = "40";
platinumScore[0] = "40";
platinumScore[1] = "90";
ultimateScore[0] = "70";
ultimateScore[1] = "125";
};
new Item() {
position = "-1 27 12";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new InteriorInstance() {
position = "31.5 39.5 20";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/arch_blue.dif";
showTerrainInside = "0";
};
new MissionArea(MissionArea) {
area = "-360 -648 720 1296";
flightCeiling = "300";
flightCeilingRange = "20";
locked = "true";
};
new Sky(Sky) {
position = "336 136 0";
rotation = "1 0 0 0";
scale = "1 1 1";
cloudHeightPer[0] = "0";
cloudHeightPer[1] = "0";
cloudHeightPer[2] = "0";
cloudSpeed1 = "0.0001";
cloudSpeed2 = "0.0002";
cloudSpeed3 = "0.0003";
visibleDistance = "10000";
useSkyTextures = "1";
renderBottomTexture = "1";
SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
fogDistance = "300";
fogColor = "0.600000 0.600000 0.600000 1.000000";
fogVolume1 = "-1 7.45949e-031 1.3684e-038";
fogVolume2 = "-1 1.07208e-014 8.756e-014";
fogVolume3 = "-1 5.1012e-010 2.05098e-008";
materialList = "~/data/skies/Cloudy/cloudy.dml";
windVelocity = "1 0 0";
windEffectPrecipitation = "0";
noRenderBans = "1";
fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
};
new Sun() {
direction = "0.638261 0.459006 -0.61801";
color = "1.400000 1.200000 0.400000 1.000000";
ambient = "0.300000 0.300000 0.400000 1.000000";
};
new StaticShape() {
position = "0 0 0";
rotation = "1 0 0 0";
scale = "10000 10000 10000";
dataBlock = "Clear";
};
new InteriorInstance() {
position = "0 0 0";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/daedalus1.dif";
showTerrainInside = "0";
};
new Trigger() {
position = "6.5 19.5 12";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
center = "1";
};
new InteriorInstance() {
position = "-4.5 22.5 20";
rotation = "0 0 1 90";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/arch_blue.dif";
showTerrainInside = "0";
};
new Item() {
position = "7 17 12";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-17 37 18";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-13 11 16";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "5 1 18";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new InteriorInstance() {
position = "5.5 18.5 12";
rotation = "0 0 1 90";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/arch_blue.dif";
showTerrainInside = "0";
};
new Item() {
position = "-2.93406 7.18739 16.2059";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperJumpItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "19 41 16";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new InteriorInstance() {
position = "31.5 31.5 20";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/arch_blue.dif";
showTerrainInside = "0";
};
new InteriorInstance() {
position = "30 35.5 20";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/arch_blue.dif";
showTerrainInside = "0";
};
new Trigger(Bounds) {
position = "-46.5 70.5 5.5";
rotation = "1 0 0 0";
scale = "101 91.0625 1000";
dataBlock = "InBoundsTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
};
new InteriorInstance() {
position = "0 0 0";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/daedalus2.dif";
showTerrainInside = "0";
};
new InteriorInstance() {
position = "-4.5 20 20";
rotation = "0 0 1 90";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/arch_blue.dif";
showTerrainInside = "0";
};
new Trigger() {
position = "-1.5 1.5 18";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
center = "1";
};
new Trigger() {
position = "26.5 17.5 16";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
center = "1";
};
new InteriorInstance() {
position = "15.5 14.5 14";
rotation = "0 0 1 90";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/arch_blue.dif";
showTerrainInside = "0";
};
new InteriorInstance() {
position = "15.5 4 14";
rotation = "0 0 1 90";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/arch_blue.dif";
showTerrainInside = "0";
};
new InteriorInstance() {
position = "-14.5 24.5 16";
rotation = "0 0 1 90";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/arch_blue.dif";
showTerrainInside = "0";
};
new InteriorInstance() {
position = "-14.5 30 16";
rotation = "0 0 1 90";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/arch_blue.dif";
showTerrainInside = "0";
};
new Trigger() {
position = "-25.5 11.5 20";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
center = "1";
};
new InteriorInstance() {
position = "-12.5 4 18";
rotation = "0 0 1 90";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/arch_blue.dif";
showTerrainInside = "0";
};
new InteriorInstance() {
position = "9.5 40 16";
rotation = "0 0 1 90";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/arch_blue.dif";
showTerrainInside = "0";
};
new InteriorInstance() {
position = "15.5 40 16";
rotation = "0 0 1 90";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/arch_blue.dif";
showTerrainInside = "0";
};
new Item() {
position = "-1 7 16";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new InteriorInstance() {
position = "5.5 44.5 6";
rotation = "0 0 1 90";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/arch_green.dif";
showTerrainInside = "0";
};
new InteriorInstance() {
position = "-10.5 29.5 24";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/arch_blue.dif";
showTerrainInside = "0";
};
new InteriorInstance() {
position = "-24 9.5 20";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/arch_blue.dif";
showTerrainInside = "0";
};
new InteriorInstance() {
position = "-24 15.5 20";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/arch_blue.dif";
showTerrainInside = "0";
};
new InteriorInstance() {
position = "0 -0.5 18";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/arch_red.dif";
showTerrainInside = "0";
};
new InteriorInstance() {
position = "3.5 -0.5 18";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/arch_red.dif";
showTerrainInside = "0";
};
new InteriorInstance() {
position = "3.5 35.5 28";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/arch_red.dif";
showTerrainInside = "0";
};
new InteriorInstance() {
position = "0 35.5 28";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/arch_red.dif";
showTerrainInside = "0";
};
new Item() {
position = "16.9536 1.06171 13.7973";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "HelicopterItem";
collideable = "0";
static = "1";
rotate = "1";
};
new InteriorInstance() {
position = "-10.5 35.5 24";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/arch_blue.dif";
showTerrainInside = "0";
};
new InteriorInstance() {
position = "20 35.5 24";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/arch_blue.dif";
showTerrainInside = "0";
};
new InteriorInstance() {
position = "5.5 36.5 8";
rotation = "0 0 1 90";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/arch_green.dif";
showTerrainInside = "0";
};
new InteriorInstance() {
position = "15.5 25.5 12";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/arch_blue.dif";
showTerrainInside = "0";
};
new InteriorInstance() {
position = "-2 25.5 12";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/lbinteriors_mbg/addon/arch_blue.dif";
showTerrainInside = "0";
};
new Trigger() {
position = "9.5 48.5 6";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
center = "1";
};
new Trigger() {
position = "10.5 41.5 16";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
center = "1";
};
new Trigger() {
position = "32.5 41.5 20";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
center = "1";
};
new Item() {
position = "-1 37 28";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemBlue";
collideable = "0";
static = "1";
rotate = "1";
};
new Trigger() {
position = "-3.5 31.5 22";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
center = "1";
};
new Item() {
position = "-12 27 20";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemBlue";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-13 31 24";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-13 37 24";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "11 37 28";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "21 37 24";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "33 37 20";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "33 33 20";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "27 33 20";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "27 25 18";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "25 17 16";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "17 27 12";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "17 9 12";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemBlue";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-9 21 20";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-4 1 18";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-11 1 18";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemBlue";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-11 9 16";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-11 11 16";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-25 14 20";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemBlue";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-17 17 18";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-13 17 18";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-13 25 16";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-11 27 16";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-13 29 16";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-13 37 18";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Trigger() {
position = "-15.5 37.5 18";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
center = "1";
};
new Item() {
position = "-17 27 20";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "17 17 14";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-3 21 20";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-3 9 16";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "7 7 14";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "7 9 14";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "5 37 28";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "29 41 20";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "14 41 16";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "11 39 16";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "11 31 18";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "9 31 18";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "11 33 18";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-1 31 22";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-3 29 22";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "15 1 14";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "7 27 10";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "7 37 8";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "7 45 6";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "7 49 6";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "11 49 6";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "11 47 6";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new AudioProfile(MusicProfile) {
fileName = "~/data/sound/music/Comforting Mystery.ogg";
description = "AudioMusic";
preload = "0";
};
};
//--- OBJECT WRITE END ---

View file

@ -0,0 +1,524 @@
//--- OBJECT WRITE BEGIN ---
new SimGroup(MissionGroup) {
new ScriptObject(MissionInfo) {
level = "1";
type = "Custom";
gameMode = "Hunt";
game = "Custom";
time = "180000";
ultimatescore0 = "0";
maxGemsPerSpawn = "6";
startHelpText = "Press F11 to open the level editor. Select any item to read notes on how to use it.";
platinumscore0 = "0";
alarmStartTime = "15";
music = "Tim Trance.ogg";
score0 = "0";
overviewHeight = "5";
radiusFromGem = "20";
score1 = "0";
desc = "An example level which includes notes on all the ingame elements added in MultiPlayer.";
ultimatescore1 = "0";
name = "Example Mission";
platinumscore1 = "0";
artist = "Threefolder / Notes by HiGuy";
};
new AudioProfile(MusicProfile) {
fileName = "~/data/sound/music/Comforting Mystery.ogg";
description = "AudioMusic";
preload = "0";
};
new Item() {
position = "25 5 5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new Item() {
position = "1 -5 9";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new Item() {
position = "5 -7 9";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new SimGroup(Skies) {
note = "These SimGroups are not required, I just added them to create a nice level hierarchy tree.";
};
new MissionArea(MissionArea) {
area = "-360 -648 720 1296";
flightCeiling = "300";
flightCeilingRange = "20";
locked = "true";
};
new Sky(Sky) {
position = "336 136 0";
rotation = "1 0 0 0";
scale = "1 1 1";
cloudHeightPer[0] = "0";
cloudHeightPer[1] = "0";
cloudHeightPer[2] = "0";
cloudSpeed1 = "0.0001";
cloudSpeed2 = "0.0002";
cloudSpeed3 = "0.0003";
visibleDistance = "10000";
useSkyTextures = "1";
renderBottomTexture = "1";
SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
fogDistance = "300";
fogColor = "0.600000 0.600000 0.600000 1.000000";
fogVolume1 = "-1 7.45949e-031 1.3684e-038";
fogVolume2 = "-1 1.07208e-014 8.756e-014";
fogVolume3 = "-1 5.1012e-010 2.05098e-008";
materialList = "~/data/skies/Cloudy/cloudy.dml";
windVelocity = "1 0 0";
windEffectPrecipitation = "0";
noRenderBans = "1";
fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
};
new Sun(Sun) {
direction = "0.638261 0.459006 -0.61801";
color = "1.400000 1.200000 0.400000 1.000000";
ambient = "0.300000 0.300000 0.400000 1.000000";
};
new StaticShape(ExampleSky) {
position = "0 0 0";
rotation = "1 0 0 0";
scale = "1000 1000 1000";
dataBlock = "clear";
note = "These example SkySpheres are the three official skies you can choose from. Simply place one at the origin with a scale of \\\"1000 1000 1000\\\" to make it your SkySphere.";
};
new Trigger(stayHere) {
position = "-38 59.5 2.5";
rotation = "1 0 0 0";
scale = "100 100 1000";
dataBlock = "InBoundsTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
note = "Bounds triggers generally have a height of 1000 (virtually unlimited) to replicate MBUltra\'s bounds triggers.";
};
new SimGroup(SpawnTriggers) {
note = "These SimGroups are not required, I just added them to create a nice level hierarchy tree.";
new Trigger(BasicSpawnTrigger) {
position = "-9 25 8.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
note = "For a spawn point, just place a basic spawn trigger. Players will spawn 3 units above the trigger\'s (+x, -y, -z) corner.";
};
new Trigger(CenterSpawnTrigger) {
position = "-1.5 -12.5 8.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
center = "1";
note = "Defining the \"center\" field as 1 will spawn the player in the trigger\'s wiremesh center, rather than in the corner.";
};
new Trigger(AddSpawnTrigger) {
position = "29 -1 4.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
note = "The \"add\" parameter allows you to customize where the player will spawn in relation to the triggers (+x, -y, -z) corner";
add = "0 0 3";
};
};
new InteriorInstance() {
position = "0 0 0";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/multiplayer/interiors/custom/exampleMission.dif";
showTerrainInside = "0";
};
new Item() {
position = "23 31 13.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
note = "For a yellow (2 point) gem, use GemItemYellow instead of GemItemRed.";
};
new Trigger(CenterSpawnTrigger) {
position = "18.5 37.5 12.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
center = "1";
note = "Defining the \"center\" field as 1 will spawn the player in the trigger\'s wiremesh center, rather than in the corner.";
};
new Item() {
position = "19 20 6.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "MegaMarbleItem";
collideable = "0";
static = "1";
rotate = "1";
note = "Mega marbles are just simple PowerUp items like any other.";
};
new Item() {
position = "4 8 6.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "BlastItem";
collideable = "0";
static = "1";
rotate = "1";
note = "Blast items are basic PowerUps and can be placed like any other PowerUp.";
};
new Item() {
position = "12 -8 6.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "BlastItem";
collideable = "0";
static = "1";
rotate = "1";
note = "Blast items are basic PowerUps and can be placed like any other PowerUp.";
};
new Item() {
position = "18 0 4.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "MegaMarbleItem";
collideable = "0";
static = "1";
rotate = "1";
note = "Mega marbles are just simple PowerUp items like any other.";
};
new Item() {
position = "28 36 12.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "BlastItem";
collideable = "0";
static = "1";
rotate = "1";
note = "Blast items are basic PowerUps and can be placed like any other PowerUp.";
};
new Item() {
position = "10 14 6.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemBlue";
collideable = "0";
static = "1";
rotate = "1";
note = "Blue gems (5 points) are placed in the same way as a yellow gem, but with GemItemBlue instead of GemItemYellow.";
};
new Item() {
position = "1 -9 9";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new Item() {
position = "3 -7 9.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new Item() {
position = "3 -9 9.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
note = "For a yellow (2 point) gem, use GemItemYellow instead of GemItemRed.";
};
new Item() {
position = "3 -11 9";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new Item() {
position = "23 1 5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new Item() {
position = "-7 17 9";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new Item() {
position = "-7 19 9";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new Item() {
position = "-7 21 9.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new Item() {
position = "-5 21 9";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new Item() {
position = "-5 23 9";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new Item() {
position = "-5 19 9.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new Item() {
position = "23 33 13.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new Item() {
position = "21 33 13";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new Item() {
position = "21 31 13";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new Item() {
position = "23 29 13";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new Item() {
position = "25 29 13";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new Item() {
position = "25 31 13";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new Item() {
position = "13 23 7.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
note = "For a yellow (2 point) gem, use GemItemYellow instead of GemItemRed.";
};
new Item() {
position = "11 21 7";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new Item() {
position = "13 21 7";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new Item() {
position = "13 25 7";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new Item() {
position = "11 23 7";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new Item() {
position = "9 23 7.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new Item() {
position = "23 7 5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new Item() {
position = "21 7 5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new Item() {
position = "21 5 5.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new Item() {
position = "23 5 5.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new Item() {
position = "21 3 5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
new Item() {
position = "23 3 5.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
note = "To place a red gem spawnpoint, simply place a GemItemRed where you want the gem to spawn. Spawns are randomly generated.";
};
};
//--- OBJECT WRITE END ---

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View file

@ -0,0 +1,292 @@
//--- OBJECT WRITE BEGIN ---
new SimGroup(MissionGroup) {
new ScriptObject(MissionInfo) {
desc = "Hikaru\'s requested mission with shit quarking by Matan (good level editing).";
gameMode = "hunt";
gemGroupRadius = "30";
goldTime = "0";
level = "8";
maxGemsPerGroup = "4";
name = "Hikaru\'s V Shape";
numgems = "1";
time = "300000";
type = "Intermediate";
artist = "Hikaru";
};
new MissionArea(MissionArea) {
Area = "-360 -648 720 1296";
flightCeiling = "300";
flightCeilingRange = "20";
locked = "true";
};
new Sky(Sky) {
position = "336 136 0";
rotation = "1 0 0 0";
scale = "1 1 1";
cloudHeightPer[0] = "0";
cloudHeightPer[1] = "0";
cloudHeightPer[2] = "0";
cloudSpeed1 = "0.0001";
cloudSpeed2 = "0.0002";
cloudSpeed3 = "0.0003";
visibleDistance = "1000";
useSkyTextures = "1";
renderBottomTexture = "1";
SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
fogDistance = "300";
fogColor = "0.600000 0.600000 0.600000 1.000000";
fogVolume1 = "-1 7.45949e-031 1.3684e-038";
fogVolume2 = "-1 1.07208e-014 8.756e-014";
fogVolume3 = "-1 5.1012e-010 2.05098e-008";
materialList = "~/data/skies/Cloudy/cloudy.dml";
windVelocity = "1 0 0";
windEffectPrecipitation = "0";
noRenderBans = "1";
fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
};
new Sun(Sun) {
direction = "0.5732009 0.2753569 -0.7717638";
color = "1.000000 1.000000 0.900000 1.000000";
ambient = "0.400000 0.400000 0.500000 1.000000";
};
new StaticShape(SkySphere) {
position = "0 0 0";
rotation = "1 0 0 0";
scale = "1000 1000 1000";
dataBlock = "Clear";
};
new InteriorInstance() {
position = "0 0 0";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/multiplayer/interiors/custom/mbu/VShape.dif";
showTerrainInside = "0";
};
new Trigger(Bounds) {
position = "-41.3023 43.7973 7.1459";
rotation = "1 0 0 0";
scale = "68.925 37.7473 33.3361";
dataBlock = "InBoundsTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
};
new SimGroup(GemSpawns) {
new Item() {
position = "-22.7096 26.0589 16.6281";
rotation = "1 0 0 0";
scale = "1 1 1";
datablock = "GemItemRed";
rotate = "1";
static = "1";
collideable = "0";
};
new Item() {
position = "-24.293 23.6833 16.4703";
rotation = "1 0 0 0";
scale = "1 1 1";
datablock = "GemItemYellow";
rotate = "1";
static = "1";
collideable = "0";
};
new Item() {
position = "-12.905 16.981 12.1696";
rotation = "1 0 0 0";
scale = "1 1 1";
datablock = "GemItemRed";
rotate = "1";
static = "1";
collideable = "0";
};
new Item() {
position = "-7.82642 14.0246 10.9526";
rotation = "1 0 0 0";
scale = "1 1 1";
datablock = "GemItemRed";
rotate = "1";
static = "1";
collideable = "0";
};
new Item() {
position = "-17.7852 18.4793 13.7399";
rotation = "1 0 0 0";
scale = "1 1 1";
datablock = "GemItemRed";
rotate = "1";
static = "1";
collideable = "0";
};
new Item() {
position = "-27.0342 29.649 18.4265";
rotation = "1 0 0 0";
scale = "1 1 1";
datablock = "GemItemYellow";
rotate = "1";
static = "1";
collideable = "0";
};
new Item() {
position = "-36.8498 39.762 23.2814";
rotation = "1 0 0 0";
scale = "1 1 1";
datablock = "GemItemBlue";
rotate = "1";
static = "1";
collideable = "0";
};
new Item() {
position = "-1.73613 14.4699 11.8777";
rotation = "1 0 0 0";
scale = "1 1 1";
datablock = "GemItemYellow";
rotate = "1";
static = "1";
collideable = "0";
};
new Item() {
position = "5.53063 18.7909 14.6495";
rotation = "1 0 0 0";
scale = "1 1 1";
datablock = "GemItemRed";
rotate = "1";
static = "1";
collideable = "0";
};
new Item() {
position = "4.03459 21.4152 14.9927";
rotation = "1 0 0 0";
scale = "1 1 1";
datablock = "GemItemRed";
rotate = "1";
static = "1";
collideable = "0";
};
new Item() {
position = "13.4732 25.4567 18.322";
rotation = "1 0 0 0";
scale = "1 1 1";
datablock = "GemItemYellow";
rotate = "1";
static = "1";
collideable = "0";
};
new Item() {
position = "13.7174 28.3771 18.7549";
rotation = "1 0 0 0";
scale = "1 1 1";
datablock = "GemItemRed";
rotate = "1";
static = "1";
collideable = "0";
};
new Item() {
position = "24.5569 37.8522 23.482";
rotation = "1 0 0 0";
scale = "1 1 1";
datablock = "GemItemBlue";
rotate = "1";
static = "1";
collideable = "0";
};
};
new SimGroup(SpawnPoints) {
new Trigger() {
position = "-10 11 14.1";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
};
new Trigger() {
position = "-8 11 14.1";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
};
new Trigger() {
position = "-6 11 14.1";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
};
};
new StaticShape() {
position = "-11.7647 15.3986 11.4091";
rotation = "-0.721511 -0.691263 0.0397232 25.4742";
scale = "1 1 1";
dataBlock = "RoundBumper";
};
new StaticShape() {
position = "-17.3289 17.7765 13.3";
rotation = "-0.825907 -0.557047 0.0870404 21.4263";
scale = "1 1 1";
dataBlock = "RoundBumper";
};
new StaticShape() {
position = "-23.2389 22.6717 15.8";
rotation = "-0.825907 -0.557047 0.0870404 21.4263";
scale = "1 1 1";
dataBlock = "RoundBumper";
};
new StaticShape() {
position = "-36.1312 39.0096 22.6718";
rotation = "-0.721385 -0.688348 0.0760252 17.409";
scale = "1 1 1";
dataBlock = "RoundBumper";
};
new StaticShape() {
position = "-24.021 27.2722 17.05";
rotation = "-0.825907 -0.557047 0.0870404 21.4263";
scale = "1 1 1";
dataBlock = "RoundBumper";
};
new StaticShape() {
position = "-25.2505 26.2772 17.08";
rotation = "-0.825907 -0.557047 0.0870404 21.4263";
scale = "1 1 1";
dataBlock = "RoundBumper";
};
new StaticShape() {
position = "-1.09001 14.8137 12.0374";
rotation = "-0.574424 0.714778 -0.398909 21.0594";
scale = "1 1 1";
dataBlock = "RoundBumper";
};
new StaticShape() {
position = "4.69876 17.7235 14.05";
rotation = "-0.620488 0.736034 -0.270645 25.9615";
scale = "1 1 1";
dataBlock = "RoundBumper";
};
new StaticShape() {
position = "5.09267 19.7178 14.65";
rotation = "-0.613468 0.730574 -0.299866 22.3664";
scale = "1 1 1";
dataBlock = "RoundBumper";
};
new StaticShape() {
position = "12.6723 26.4924 17.9777";
rotation = "-0.613468 0.730574 -0.299866 22.3664";
scale = "1 1 1";
dataBlock = "RoundBumper";
};
new StaticShape() {
position = "22.99 36.3711 22.7056";
rotation = "-0.5961 0.669711 -0.44289 20.0079";
scale = "1 1 1";
dataBlock = "RoundBumper";
};
new StaticShape() {
position = "15.1458 29.847 19.3517";
rotation = "-0.623573 0.596785 -0.504981 18.7582";
scale = "1 1 1";
dataBlock = "RoundBumper";
};
};
//--- OBJECT WRITE END ---

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 KiB

View file

@ -0,0 +1,640 @@
//--- OBJECT WRITE BEGIN ---
new SimGroup(MissionGroup) {
new ScriptObject(MissionInfo) {
name = "Meltdown";
type = "Custom";
level = "10";
desc = "Fierce competition is heard from within the meltdown arena...can you handle the pressure?";
startHelpText = "When in doubt, camp the blue.";
artist = "Aayrl";
music = "The Race.ogg";
Gamemode = "hunt";
game = "Custom";
time = "180000";
maxGemsPerSpawn = "6";
radiusFromGem = "15";
score[0] = "20";
score[1] = "40";
platinumScore[0] = "45";
platinumScore[1] = "75";
ultimateScore[0] = "90";
ultimateScore[1] = "130";
alarmStartTime = "25";
overviewHeight = "15";
};
new MissionArea(MissionArea) {
area = "-360 -648 720 1296";
flightCeiling = "300";
flightCeilingRange = "20";
locked = "true";
};
new Sky(Sky) {
position = "336 136 0";
rotation = "1 0 0 0";
scale = "1 1 1";
cloudHeightPer[0] = "0";
cloudHeightPer[1] = "0";
cloudHeightPer[2] = "0";
cloudSpeed1 = "0.0001";
cloudSpeed2 = "0.0002";
cloudSpeed3 = "0.0003";
visibleDistance = "1000";
useSkyTextures = "1";
renderBottomTexture = "1";
SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
fogDistance = "300";
fogColor = "0.600000 0.600000 0.600000 1.000000";
fogVolume1 = "-1 7.45949e-031 1.3684e-038";
fogVolume2 = "-1 1.07208e-014 8.756e-014";
fogVolume3 = "-1 5.1012e-010 2.05098e-008";
materialList = "~/data/skies/Cloudy/cloudy.dml";
windVelocity = "1 0 0";
windEffectPrecipitation = "0";
noRenderBans = "1";
fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
};
new Sun(Sun) {
direction = "0.638261 0.459006 -0.61801";
color = "1.400000 1.200000 0.400000 1.000000";
ambient = "0.300000 0.300000 0.400000 1.000000";
};
new StaticShape(SkySphere) {
position = "0 0 0";
rotation = "1 0 0 0";
scale = "1000 1000 1000";
dataBlock = "Dusk";
};
new Trigger(Bounds) {
position = "-51 51 -3";
rotation = "1 0 0 0";
scale = "102 102 1000";
dataBlock = "InBoundsTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
};
new SimGroup(Interiors) {
new InteriorInstance() {
position = "0 0 0";
rotation = "1 0 0 0";
scale = "1 1 1";
interiorFile = "~/data/multiplayer/interiors/custom/meltdown.dif";
showTerrainInside = "0";
};
};
new SimGroup(SpawnTriggers) {
new Trigger(BasicSpawnTrigger) {
position = "25 0 4.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
};
new Trigger(BasicSpawnTrigger) {
position = "-25 0 4.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
};
new Trigger(BasicSpawnTrigger) {
position = "0 25 4.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
};
new Trigger(BasicSpawnTrigger) {
position = "0 -25 4.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SpawnTrigger";
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
};
};
new SimGroup(Gems) {
new Item() {
position = "-9 0 8.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-17 0 6.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "17 0 6.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "0 17 6.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "0 -17 6.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-40 -31 4.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-31 -40 4.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "31 -40 4.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "31 -31 4.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "31 31 4.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "40 31 4.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "31 40 4.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "40 -31 4.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-40 -40 6.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-40 40 6.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "40 40 6.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "40 -40 6.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-31 -31 4.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-24 -41 0.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-41 -24 0.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-41 24 0.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-24 41 0.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "24 41 0.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-9 9 8.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "0 9 8.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "0 0 10.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemBlue";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "9 9 8.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "9 0 8.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "9 -9 8.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "0 -9 8.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-9 -9 8.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemYellow";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "41 24 0.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "41 -24 0.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "24 -41 0.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-31 31 4.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-31 40 4.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-40 31 4.5";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "GemItemRed";
collideable = "0";
static = "1";
rotate = "1";
};
};
new SimGroup(PowerUps) {
new Item() {
position = "0 -41 0.75";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperSpeedItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "41 0 0.75";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperSpeedItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-41 0 0.75";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperSpeedItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "0 41 0.75";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperSpeedItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-25 25 4.75";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperSpeedItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "25 25 4.75";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperSpeedItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "25 -25 4.75";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperSpeedItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-25 -25 4.75";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "SuperSpeedItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-17 -33 2.75";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "BlastItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-33 -17 2.75";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "BlastItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "33 -17 2.75";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "BlastItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "33 17 2.75";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "BlastItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-33 17 2.75";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "BlastItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-17 33 2.75";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "BlastItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "17 33 2.75";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "BlastItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-42 -42 6.75";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "MegaMarbleItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "42 -42 6.75";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "MegaMarbleItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "42 42 6.75";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "MegaMarbleItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "-42 42 6.75";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "MegaMarbleItem";
collideable = "0";
static = "1";
rotate = "1";
};
new Item() {
position = "17 -33 2.75";
rotation = "1 0 0 0";
scale = "1 1 1";
dataBlock = "BlastItem";
collideable = "0";
static = "1";
rotate = "1";
};
};
};
//--- OBJECT WRITE END ---

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

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