├── README.md ├── [examples] ├── not-enough-palm │ ├── __resource.lua │ └── nep.xml ├── stunt-afterburner │ ├── __resource.lua │ └── map.xml ├── stunt-canyon-crossing │ ├── __resource.lua │ └── map.xml ├── stunt-chiliad │ ├── __resource.lua │ └── map.xml ├── stunt-city-air │ ├── __resource.lua │ └── map.xml ├── stunt-double-loop │ ├── __resource.lua │ └── map.xml ├── stunt-downtown-loop │ ├── __resource.lua │ └── map.xml ├── stunt-duel │ ├── __resource.lua │ └── map.xml ├── stunt-east-coast │ ├── __resource.lua │ └── map.xml ├── stunt-forest │ ├── __resource.lua │ └── map.xml ├── stunt-h200 │ ├── __resource.lua │ └── map.xml ├── stunt-high-flier │ ├── __resource.lua │ └── map.xml ├── stunt-maze-bank-ascent │ ├── __resource.lua │ └── map.xml ├── stunt-nightlife │ ├── __resource.lua │ └── map.xml ├── stunt-over-and-under │ ├── __resource.lua │ └── map.xml ├── stunt-over-the-bridge │ ├── __resource.lua │ └── map.xml ├── stunt-plummet │ ├── __resource.lua │ └── map.xml ├── stunt-racing-alley │ ├── __resource.lua │ └── map.xml ├── stunt-rally │ ├── __resource.lua │ └── map.xml ├── stunt-splits │ ├── __resource.lua │ └── map.xml ├── stunt-the-wave │ ├── __resource.lua │ └── map.xml ├── stunt-threading-the-needle │ ├── __resource.lua │ └── map.xml ├── stunt-trench-1 │ ├── __resource.lua │ └── map.xml ├── stunt-trench-2 │ ├── __resource.lua │ └── map.xml ├── stunt-turbine │ ├── __resource.lua │ └── map.xml ├── stunt-vespucci │ ├── __resource.lua │ └── map.xml ├── stunt-vinewood-downhill │ ├── __resource.lua │ └── map.xml └── stunt-zebra │ ├── __resource.lua │ └── map.xml ├── object-loader ├── __resource.lua ├── object_loader.lua └── xml.lua └── object-teleports ├── __resource.lua ├── client.lua └── server.lua /README.md: -------------------------------------------------------------------------------- 1 | # ObjectLoader 2 | 3 | This is a resource for [FiveReborn](http://www.fivereborn.com/) that loads object files from [Map 4 | Editor](https://www.gta5-mods.com/scripts/map-editor) (and some "Spooner" format) on clients. 5 | 6 | It also comes with a teleport handler (use **/mtp** in the chat to view teleports) and has some API calls. 7 | 8 | Some example maps are included in the **[examples]** folder. 9 | 10 | To use, start the `object-loader` resource, an object resource (like `stunt-chiliad`) and optionally the `object-teleports` 11 | resource. 12 | 13 | ## Screenshot 14 | 15 | ![screenshot](http://i.imgur.com/LJLGVRB.jpg) 16 | -------------------------------------------------------------------------------- /[examples]/not-enough-palm/__resource.lua: -------------------------------------------------------------------------------- 1 | local function object_entry(data) 2 | dependency 'object-loader' 3 | 4 | files(data) 5 | object_file(data) 6 | end 7 | 8 | object_entry 'nep.xml' -------------------------------------------------------------------------------- /[examples]/stunt-afterburner/__resource.lua: -------------------------------------------------------------------------------- 1 | local function object_entry(data) 2 | dependency 'object-loader' 3 | 4 | files(data) 5 | object_file(data) 6 | end 7 | 8 | object_entry 'map.xml' -------------------------------------------------------------------------------- /[examples]/stunt-canyon-crossing/__resource.lua: -------------------------------------------------------------------------------- 1 | local function object_entry(data) 2 | dependency 'object-loader' 3 | 4 | files(data) 5 | object_file(data) 6 | end 7 | 8 | object_entry 'map.xml' -------------------------------------------------------------------------------- /[examples]/stunt-chiliad/__resource.lua: -------------------------------------------------------------------------------- 1 | local function object_entry(data) 2 | dependency 'object-loader' 3 | 4 | files(data) 5 | object_file(data) 6 | end 7 | 8 | object_entry 'map.xml' -------------------------------------------------------------------------------- /[examples]/stunt-city-air/__resource.lua: -------------------------------------------------------------------------------- 1 | local function object_entry(data) 2 | dependency 'object-loader' 3 | 4 | files(data) 5 | object_file(data) 6 | end 7 | 8 | object_entry 'map.xml' -------------------------------------------------------------------------------- /[examples]/stunt-double-loop/__resource.lua: -------------------------------------------------------------------------------- 1 | local function object_entry(data) 2 | dependency 'object-loader' 3 | 4 | files(data) 5 | object_file(data) 6 | end 7 | 8 | object_entry 'map.xml' -------------------------------------------------------------------------------- /[examples]/stunt-downtown-loop/__resource.lua: -------------------------------------------------------------------------------- 1 | local function object_entry(data) 2 | dependency 'object-loader' 3 | 4 | files(data) 5 | object_file(data) 6 | end 7 | 8 | object_entry 'map.xml' -------------------------------------------------------------------------------- /[examples]/stunt-duel/__resource.lua: -------------------------------------------------------------------------------- 1 | local function object_entry(data) 2 | dependency 'object-loader' 3 | 4 | files(data) 5 | object_file(data) 6 | end 7 | 8 | object_entry 'map.xml' -------------------------------------------------------------------------------- /[examples]/stunt-east-coast/__resource.lua: -------------------------------------------------------------------------------- 1 | local function object_entry(data) 2 | dependency 'object-loader' 3 | 4 | files(data) 5 | object_file(data) 6 | end 7 | 8 | object_entry 'map.xml' -------------------------------------------------------------------------------- /[examples]/stunt-forest/__resource.lua: -------------------------------------------------------------------------------- 1 | local function object_entry(data) 2 | dependency 'object-loader' 3 | 4 | files(data) 5 | object_file(data) 6 | end 7 | 8 | object_entry 'map.xml' -------------------------------------------------------------------------------- /[examples]/stunt-h200/__resource.lua: -------------------------------------------------------------------------------- 1 | local function object_entry(data) 2 | dependency 'object-loader' 3 | 4 | files(data) 5 | object_file(data) 6 | end 7 | 8 | object_entry 'map.xml' -------------------------------------------------------------------------------- /[examples]/stunt-h200/map.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Prop 6 | 7 | 241.351 8 | 7504.008 9 | 4.843 10 | 11 | 12 | 0 13 | -4 14 | -78 15 | 16 | 172434341 17 | false 18 | false 19 | 20 | 21 | Prop 22 | 23 | 249.798 24 | 7443.68 25 | 11.453 26 | 27 | 28 | 0 29 | -6 30 | -77 31 | 32 | -2106551578 33 | false 34 | false 35 | 36 | 37 | Prop 38 | 39 | 259.655 40 | 7394.326 41 | 30.999 42 | 43 | 44 | 0 45 | -5.2 46 | -78.4 47 | 48 | 2081936690 49 | false 50 | false 51 | 52 | 53 | Prop 54 | 55 | 273.678 56 | 7325.887 57 | 22.703 58 | 59 | 60 | 0 61 | 0 62 | -78.4 63 | 64 | -544198516 65 | false 66 | false 67 | 68 | 69 | Prop 70 | 71 | 284.338 72 | 7273.959 73 | 22.703 74 | 75 | 76 | 0 77 | 0 78 | -78.4 79 | 80 | -544198516 81 | false 82 | false 83 | 84 | 85 | Prop 86 | 87 | 314.054 88 | 7220.021 89 | 28.472 90 | 91 | 92 | -0.8 93 | -173.2 94 | 9.999 95 | 96 | -779638860 97 | false 98 | false 99 | 100 | 101 | Prop 102 | 103 | 72.05 104 | 7372.515 105 | 4.634 106 | 107 | 108 | 0 109 | 0 110 | 102.599 111 | 112 | 370845653 113 | false 114 | false 115 | 116 | 117 | Prop 118 | 119 | 171.626 120 | 7762.41 121 | 4.16 122 | 123 | 124 | 0 125 | 0 126 | 101.4 127 | 128 | 370845653 129 | false 130 | false 131 | 132 | 133 | Prop 134 | 135 | 193.566 136 | 7713.131 137 | 4.14 138 | 139 | 140 | 0 141 | 0 142 | 101.4 143 | 144 | -544198516 145 | false 146 | false 147 | 148 | 149 | Prop 150 | 151 | 214.711 152 | 7610.969 153 | 4.14 154 | 155 | 156 | 0 157 | 0 158 | 101.8 159 | 160 | -780495775 161 | false 162 | false 163 | 164 | 165 | Prop 166 | 167 | -11.116 168 | 7741.497 169 | 2.222 170 | 171 | 172 | 0 173 | 7 174 | 18.299 175 | 176 | 1515979145 177 | false 178 | false 179 | 180 | 181 | Prop 182 | 183 | -37.54 184 | 7737.124 185 | 3.772 186 | 187 | 188 | 0 189 | 0 190 | 18.398 191 | 192 | -544198516 193 | false 194 | false 195 | 196 | 197 | Prop 198 | 199 | -15.712 200 | 7749.076 201 | 3.017 202 | 203 | 204 | 0 205 | 3 206 | 17.2 207 | 208 | 1515979145 209 | false 210 | false 211 | 212 | 213 | Prop 214 | 215 | 83.507 216 | 7772.727 217 | 10.07 218 | 219 | 220 | -30 221 | 180 222 | -168.8 223 | 224 | 600369530 225 | false 226 | false 227 | 228 | 229 | Prop 230 | 231 | 37.343 232 | 7379.546 233 | 4.666 234 | 235 | 236 | 0 237 | 0 238 | -167.403 239 | 240 | -1383314327 241 | false 242 | false 243 | 244 | 245 | Prop 246 | 247 | -31.539 248 | 7364.999 249 | 6.468 250 | 251 | 252 | 0 253 | 0 254 | -168.001 255 | 256 | -544198516 257 | false 258 | false 259 | 260 | 261 | Prop 262 | 263 | -57.513 264 | 7356.484 265 | 4.699 266 | 267 | 268 | 0 269 | 8 270 | -168.403 271 | 272 | 1515979145 273 | false 274 | false 275 | 276 | 277 | Prop 278 | 279 | -59.113 280 | 7364.284 281 | 4.699 282 | 283 | 284 | 0 285 | 8 286 | -168.403 287 | 288 | 1515979145 289 | false 290 | false 291 | 292 | 293 | Prop 294 | 295 | -125.938 296 | 7344.979 297 | 4.898 298 | 299 | 300 | 0 301 | 0 302 | -168.001 303 | 304 | -544198516 305 | false 306 | false 307 | 308 | 309 | Prop 310 | 311 | -152.135 312 | 7336.284 313 | 3.138 314 | 315 | 316 | 0 317 | 8 318 | -168.5 319 | 320 | 1515979145 321 | false 322 | false 323 | 324 | 325 | Prop 326 | 327 | -153.726 328 | 7344.108 329 | 3.138 330 | 331 | 332 | 0 333 | 8 334 | -168.5 335 | 336 | 1515979145 337 | false 338 | false 339 | 340 | 341 | Prop 342 | 343 | -226.154 344 | 7323.136 345 | 3.148 346 | 347 | 348 | 0 349 | 0 350 | -168.401 351 | 352 | -1383314327 353 | false 354 | false 355 | 356 | 357 | Prop 358 | 359 | -175.183 360 | 7271.308 361 | 4.857 362 | 363 | 364 | 0 365 | 0 366 | 102.099 367 | 368 | -544198516 369 | false 370 | false 371 | 372 | 373 | Prop 374 | 375 | -175.819 376 | 7057.303 377 | 6.678 378 | 379 | 380 | 0 381 | 0 382 | -168 383 | 384 | 430430733 385 | false 386 | false 387 | 388 | 389 | Prop 390 | 391 | -258.085 392 | 7304.564 393 | 3.098 394 | 395 | 396 | 0 397 | 0 398 | -168.401 399 | 400 | 370845653 401 | false 402 | false 403 | 404 | 405 | Prop 406 | 407 | -262.174 408 | 7252.687 409 | 3.074 410 | 411 | 412 | 0 413 | 0 414 | -78.4 415 | 416 | -544198516 417 | false 418 | false 419 | 420 | 421 | Prop 422 | 423 | -251.533 424 | 7200.794 425 | 1.674 426 | 427 | 428 | 0 429 | -3 430 | 101.599 431 | 432 | -544198516 433 | false 434 | false 435 | 436 | 437 | Prop 438 | 439 | -208.844 440 | 7326.689 441 | 3.148 442 | 443 | 444 | 0 445 | 0 446 | -168.401 447 | 448 | -1383314327 449 | false 450 | false 451 | 452 | 453 | Prop 454 | 455 | -240.883 456 | 7148.96 457 | 1.664 458 | 459 | 460 | 0 461 | 3 462 | 101.599 463 | 464 | -544198516 465 | false 466 | false 467 | 468 | 469 | Prop 470 | 471 | -254.062 472 | 7198.26 473 | 2.911 474 | 475 | 476 | 7 477 | 0 478 | -168.401 479 | 480 | -1586270756 481 | false 482 | false 483 | 484 | 485 | Prop 486 | 487 | -183.959 488 | 7297.222 489 | 3.09 490 | 491 | 492 | 0 493 | 8 494 | 101.799 495 | 496 | 1515979145 497 | false 498 | false 499 | 500 | 501 | Prop 502 | 503 | -176.138 504 | 7298.856 505 | 3.09 506 | 507 | 508 | 0 509 | 8 510 | 101.799 511 | 512 | 1515979145 513 | false 514 | false 515 | 516 | 517 | Prop 518 | 519 | -198.063 520 | 7384.253 521 | 3.538 522 | 523 | 524 | 0 525 | 0 526 | -78.2 527 | 528 | -544198516 529 | false 530 | false 531 | 532 | 533 | Prop 534 | 535 | -205.264 536 | 7418.767 537 | 3.588 538 | 539 | 540 | 0 541 | 0 542 | -78.2 543 | 544 | -1383314327 545 | false 546 | false 547 | 548 | 549 | Prop 550 | 551 | -197.627 552 | 7453.258 553 | 3.546 554 | 555 | 556 | 0 557 | 0 558 | -168.4 559 | 560 | 370845653 561 | false 562 | false 563 | 564 | 565 | Prop 566 | 567 | -190.836 568 | 7349.66 569 | 3.593 570 | 571 | 572 | 0 573 | 0 574 | -78.2 575 | 576 | -1383314327 577 | false 578 | false 579 | 580 | 581 | Prop 582 | 583 | -148.445 584 | 7475.377 585 | 3.532 586 | 587 | 588 | 0 589 | 0 590 | -168.4 591 | 592 | -544198516 593 | false 594 | false 595 | 596 | 597 | Prop 598 | 599 | -127.598 600 | 7479.621 601 | 4.387 602 | 603 | 604 | 0 605 | 10 606 | -168.4 607 | 608 | -2102185892 609 | false 610 | false 611 | 612 | 613 | Prop 614 | 615 | -73.102 616 | 7490.81 617 | 16.647 618 | 619 | 620 | 0 621 | -3 622 | 12.4 623 | 624 | 1124049486 625 | false 626 | false 627 | 628 | 629 | Prop 630 | 631 | -2.69 632 | 7506.388 633 | 17.767 634 | 635 | 636 | 0 637 | -3 638 | 13 639 | 640 | 1124049486 641 | false 642 | false 643 | 644 | 645 | Prop 646 | 647 | 65.886 648 | 7522.04 649 | 13.644 650 | 651 | 652 | 0 653 | 3 654 | 12.4 655 | 656 | 1124049486 657 | false 658 | false 659 | 660 | 661 | Prop 662 | 663 | 118.424 664 | 7553.67 665 | 11.431 666 | 667 | 668 | 0 669 | 1.5 670 | 12.4 671 | 672 | -779638860 673 | false 674 | false 675 | 676 | 677 | Prop 678 | 679 | 103.903 680 | 7611.304 681 | 11.461 682 | 683 | 684 | 1.8 685 | 0 686 | 105.999 687 | 688 | -779638860 689 | false 690 | false 691 | 692 | 693 | Prop 694 | 695 | 44.642 696 | 7614.202 697 | 15.044 698 | 699 | 700 | 0 701 | -6 702 | -162.801 703 | 704 | 1124049486 705 | false 706 | false 707 | 708 | 709 | Prop 710 | 711 | -291.447 712 | 7522.66 713 | 3.245 714 | 715 | 716 | 0 717 | 0 718 | -71.401 719 | 720 | 370845653 721 | false 722 | false 723 | 724 | 725 | Prop 726 | 727 | -313.34 728 | 7550.777 729 | 3.589 730 | 731 | 732 | 0 733 | 2 734 | -71.401 735 | 736 | -1383314327 737 | false 738 | false 739 | 740 | 741 | Prop 742 | 743 | -323.84 744 | 7584.447 745 | 11.99 746 | 747 | 748 | 0 749 | 0 750 | -71.4 751 | 752 | 1124049486 753 | false 754 | false 755 | 756 | 757 | Prop 758 | 759 | -340.821 760 | 7634.94 761 | 13.3 762 | 763 | 764 | 0 765 | 3 766 | -71.401 767 | 768 | 1124049486 769 | false 770 | false 771 | 772 | 773 | Prop 774 | 775 | -358.201 776 | 7685.548 777 | 4.177 778 | 779 | 780 | 0 781 | 2 782 | -70.2 783 | 784 | -544198516 785 | false 786 | false 787 | 788 | 789 | Prop 790 | 791 | -361.548 792 | 7737.474 793 | 5.109 794 | 795 | 796 | 0 797 | 0 798 | -160.2 799 | 800 | 370845653 801 | false 802 | false 803 | 804 | 805 | Prop 806 | 807 | -314.182 808 | 7751.601 809 | 5.096 810 | 811 | 812 | 0 813 | 0 814 | 109.6 815 | 816 | 370845653 817 | false 818 | false 819 | 820 | 821 | Prop 822 | 823 | -291.342 824 | 7722.607 825 | 5.121 826 | 827 | 828 | 0 829 | 0 830 | 109.6 831 | 832 | -1383314327 833 | false 834 | false 835 | 836 | 837 | Prop 838 | 839 | -285.441 840 | 7705.969 841 | 5.121 842 | 843 | 844 | 0 845 | 0 846 | 109.6 847 | 848 | -1383314327 849 | false 850 | false 851 | 852 | 853 | Prop 854 | 855 | -262.54 856 | 7677.055 857 | 5.074 858 | 859 | 860 | 0 861 | 0 862 | -70.201 863 | 864 | 370845653 865 | false 866 | false 867 | 868 | 869 | Prop 870 | 871 | -210.636 872 | 7680.055 873 | 5.052 874 | 875 | 876 | 0 877 | 0 878 | -160.901 879 | 880 | -544198516 881 | false 882 | false 883 | 884 | 885 | Prop 886 | 887 | -183.886 888 | 7688.875 889 | 5.464 890 | 891 | 892 | 0 893 | 5 894 | -161.802 895 | 896 | -2102185892 897 | false 898 | false 899 | 900 | 901 | Prop 902 | 903 | -138.141 904 | 7703.661 905 | 3.772 906 | 907 | 908 | 0 909 | 0 910 | 18.398 911 | 912 | -544198516 913 | false 914 | false 915 | 916 | 917 | Prop 918 | 919 | -87.841 920 | 7720.392 921 | 3.772 922 | 923 | 924 | 0 925 | 0 926 | 18.398 927 | 928 | -544198516 929 | false 930 | false 931 | 932 | 933 | Prop 934 | 935 | 357.416 936 | 7207.64 937 | 23.913 938 | 939 | 940 | 0 941 | -7 942 | -170.2 943 | 944 | 1125864094 945 | false 946 | false 947 | 948 | 949 | Prop 950 | 951 | 392.828 952 | 7213.757 953 | 19.501 954 | 955 | 956 | 0 957 | -7 958 | -170.2 959 | 960 | 1124049486 961 | false 962 | false 963 | 964 | 965 | Prop 966 | 967 | -37.348 968 | 7587.503 969 | 3.277 970 | 971 | 972 | 0 973 | 0 974 | -162.9 975 | 976 | -544198516 977 | false 978 | false 979 | 980 | 981 | Prop 982 | 983 | 10.244 984 | 7603.555 985 | 18.829 986 | 987 | 988 | 0 989 | 6 990 | 17.199 991 | 992 | 1125864094 993 | false 994 | false 995 | 996 | 997 | Prop 998 | 999 | -88.017 1000 | 7571.988 1001 | 3.277 1002 | 1003 | 1004 | 0 1005 | 0 1006 | -163 1007 | 1008 | -544198516 1009 | false 1010 | false 1011 | 1012 | 1013 | Prop 1014 | 1015 | -138.636 1016 | 7556.503 1017 | 1.884 1018 | 1019 | 1020 | 0 1021 | -3 1022 | 17 1023 | 1024 | -544198516 1025 | false 1026 | false 1027 | 1028 | 1029 | Prop 1030 | 1031 | -189.249 1032 | 7541.037 1033 | 1.874 1034 | 1035 | 1036 | 0 1037 | 3 1038 | 17 1039 | 1040 | -544198516 1041 | false 1042 | false 1043 | 1044 | 1045 | Prop 1046 | 1047 | -239.463 1048 | 7524.92 1049 | 3.231 1050 | 1051 | 1052 | 0 1053 | 0 1054 | -161.4 1055 | 1056 | -544198516 1057 | false 1058 | false 1059 | 1060 | 1061 | Prop 1062 | 1063 | -135.11 1064 | 7560.726 1065 | 3.467 1066 | 1067 | 1068 | -7 1069 | 0 1070 | -72.601 1071 | 1072 | -1586270756 1073 | false 1074 | false 1075 | 1076 | 1077 | Prop 1078 | 1079 | 92.557 1080 | 7309.337 1081 | 4.516 1082 | 1083 | 1084 | 0 1085 | 0 1086 | 12.6 1087 | 1088 | -278438319 1089 | false 1090 | false 1091 | 1092 | 1093 | Prop 1094 | 1095 | 103.147 1096 | 7311.699 1097 | 4.516 1098 | 1099 | 1100 | 0 1101 | 0 1102 | 12.6 1103 | 1104 | -278438319 1105 | false 1106 | false 1107 | 1108 | 1109 | Prop 1110 | 1111 | 88.717 1112 | 7326.416 1113 | 4.526 1114 | 1115 | 1116 | 0 1117 | 0 1118 | -167.401 1119 | 1120 | -278438319 1121 | false 1122 | false 1123 | 1124 | 1125 | Prop 1126 | 1127 | 99.307 1128 | 7328.789 1129 | 4.526 1130 | 1131 | 1132 | 0 1133 | 0 1134 | -167.401 1135 | 1136 | -278438319 1137 | false 1138 | false 1139 | 1140 | 1141 | Prop 1142 | 1143 | 85.167 1144 | 7342.387 1145 | 4.526 1146 | 1147 | 1148 | 0 1149 | 0 1150 | -167.401 1151 | 1152 | 1317858860 1153 | false 1154 | false 1155 | 1156 | 1157 | Prop 1158 | 1159 | 95.737 1160 | 7344.758 1161 | 4.526 1162 | 1163 | 1164 | 0 1165 | 0 1166 | -167.401 1167 | 1168 | 1317858860 1169 | false 1170 | false 1171 | 1172 | 1173 | Prop 1174 | 1175 | -233.777 1176 | 7114.387 1177 | 3.407 1178 | 1179 | 1180 | 0 1181 | -2 1182 | -78.4 1183 | 1184 | -1383314327 1185 | false 1186 | false 1187 | 1188 | 1189 | Prop 1190 | 1191 | -140.292 1192 | 7107.169 1193 | 4.961 1194 | 1195 | 1196 | 0 1197 | 0 1198 | 101.999 1199 | 1200 | -1425829439 1201 | false 1202 | false 1203 | 1204 | 1205 | Prop 1206 | 1207 | -149.455 1208 | 7150.366 1209 | 4.878 1210 | 1211 | 1212 | 0 1213 | 0 1214 | -78.001 1215 | 1216 | -544198516 1217 | false 1218 | false 1219 | 1220 | 1221 | Prop 1222 | 1223 | -160.436 1224 | 7202.199 1225 | 4.878 1226 | 1227 | 1228 | 0 1229 | 0 1230 | -78.1 1231 | 1232 | -544198516 1233 | false 1234 | false 1235 | 1236 | 1237 | Prop 1238 | 1239 | -167.775 1240 | 7236.752 1241 | 4.912 1242 | 1243 | 1244 | 0 1245 | 0 1246 | 102.099 1247 | 1248 | -1383314327 1249 | false 1250 | false 1251 | 1252 | 1253 | Prop 1254 | 1255 | 151.741 1256 | 7769.584 1257 | 4.196 1258 | 1259 | 1260 | 0 1261 | 0 1262 | 11.4 1263 | 1264 | -2102185892 1265 | false 1266 | false 1267 | 1268 | 1269 | Prop 1270 | 1271 | 161.942 1272 | 7771.687 1273 | 4.196 1274 | 1275 | 1276 | 0 1277 | 0 1278 | 11.4 1279 | 1280 | -2102185892 1281 | false 1282 | false 1283 | 1284 | 1285 | Prop 1286 | 1287 | 170.813 1288 | 7773.486 1289 | 4.196 1290 | 1291 | 1292 | 0 1293 | 0 1294 | 11.4 1295 | 1296 | -1586270756 1297 | false 1298 | false 1299 | 1300 | 1301 | Prop 1302 | 1303 | 176.28 1304 | 7773.714 1305 | 4.204 1306 | 1307 | 1308 | 0 1309 | 0 1310 | 11.4 1311 | 1312 | -2141728307 1313 | false 1314 | false 1315 | 1316 | 1317 | Prop 1318 | 1319 | 180.435 1320 | 7771.333 1321 | 4.21 1322 | 1323 | 1324 | 0 1325 | 0 1326 | 11.4 1327 | 1328 | 670120870 1329 | false 1330 | false 1331 | 1332 | 1333 | Prop 1334 | 1335 | 141.1 1336 | 7767.436 1337 | 4.196 1338 | 1339 | 1340 | 0 1341 | 0 1342 | 11.4 1343 | 1344 | -2102185892 1345 | false 1346 | false 1347 | 1348 | 1349 | Prop 1350 | 1351 | 118.01 1352 | 7220.319 1353 | 4.568 1354 | 1355 | 1356 | 0 1357 | 0 1358 | -77.6 1359 | 1360 | -544198516 1361 | false 1362 | false 1363 | 1364 | 1365 | Prop 1366 | 1367 | 106.626 1368 | 7272.093 1369 | 4.568 1370 | 1371 | 1372 | 0 1373 | 0 1374 | -77.6 1375 | 1376 | -544198516 1377 | false 1378 | false 1379 | 1380 | 1381 | Prop 1382 | 1383 | 17.554 1384 | 7369.794 1385 | 5.192 1386 | 1387 | 1388 | -3 1389 | 0 1390 | -77.4 1391 | 1392 | -278438319 1393 | false 1394 | false 1395 | 1396 | 1397 | Prop 1398 | 1399 | 2.694 1400 | 7366.499 1401 | 5.992 1402 | 1403 | 1404 | -3.3 1405 | 0 1406 | -78.1 1407 | 1408 | 1317858860 1409 | false 1410 | false 1411 | 1412 | 1413 | Prop 1414 | 1415 | 15.194 1416 | 7380.368 1417 | 5.192 1418 | 1419 | 1420 | -3 1421 | 0 1422 | -77.4 1423 | 1424 | -278438319 1425 | false 1426 | false 1427 | 1428 | 1429 | Prop 1430 | 1431 | 0.454 1432 | 7377.101 1433 | 5.982 1434 | 1435 | 1436 | -3.3 1437 | 0 1438 | -78 1439 | 1440 | 1317858860 1441 | false 1442 | false 1443 | 1444 | 1445 | Prop 1446 | 1447 | 267.304 1448 | 7075.88 1449 | 4.587 1450 | 1451 | 1452 | 0 1453 | 0 1454 | 12.4 1455 | 1456 | -780495775 1457 | false 1458 | false 1459 | 1460 | 1461 | Prop 1462 | 1463 | 396.738 1464 | 7104.339 1465 | 4.637 1466 | 1467 | 1468 | 0 1469 | 0 1470 | 12.4 1471 | 1472 | 711357200 1473 | false 1474 | false 1475 | 1476 | 1477 | Prop 1478 | 1479 | 506.03 1480 | 7140.432 1481 | 4.625 1482 | 1483 | 1484 | 0 1485 | 0 1486 | 12.4 1487 | 1488 | 370845653 1489 | false 1490 | false 1491 | 1492 | 1493 | Prop 1494 | 1495 | 457.141 1496 | 7117.62 1497 | 4.653 1498 | 1499 | 1500 | 0 1501 | 0 1502 | 12.4 1503 | 1504 | -1383314327 1505 | false 1506 | false 1507 | 1508 | 1509 | Prop 1510 | 1511 | 474.399 1512 | 7121.415 1513 | 4.663 1514 | 1515 | 1516 | 0 1517 | 0 1518 | 12.4 1519 | 1520 | -1383314327 1521 | false 1522 | false 1523 | 1524 | 1525 | Prop 1526 | 1527 | 513.179 1528 | 7175.115 1529 | 4.672 1530 | 1531 | 1532 | 0 1533 | 0 1534 | -77.6 1535 | 1536 | -1383314327 1537 | false 1538 | false 1539 | 1540 | 1541 | Prop 1542 | 1543 | 510.414 1544 | 7187.769 1545 | 4.682 1546 | 1547 | 1548 | 0 1549 | 0 1550 | -77.6 1551 | 1552 | -1629331537 1553 | false 1554 | false 1555 | 1556 | 1557 | Prop 1558 | 1559 | 491.397 1560 | 7219.418 1561 | 4.644 1562 | 1563 | 1564 | 0 1565 | 0 1566 | 102.4 1567 | 1568 | 370845653 1569 | false 1570 | false 1571 | 1572 | 1573 | Prop 1574 | 1575 | 439.457 1576 | 7222.774 1577 | 4.636 1578 | 1579 | 1580 | 0 1581 | 0 1582 | 12.4 1583 | 1584 | -544198516 1585 | false 1586 | false 1587 | 1588 | 1589 | Prop 1590 | 1591 | 163.589 1592 | 7067.853 1593 | 4.585 1594 | 1595 | 1596 | 0 1597 | 0 1598 | -77.6 1599 | 1600 | 370845653 1601 | false 1602 | false 1603 | 1604 | 1605 | Prop 1606 | 1607 | 135.085 1608 | 7142.658 1609 | 4.623 1610 | 1611 | 1612 | 0 1613 | 0 1614 | -77.6 1615 | 1616 | -248283675 1617 | false 1618 | false 1619 | 1620 | 1621 | Prop 1622 | 1623 | -228.352 1624 | 7088.502 1625 | 4.354 1626 | 1627 | 1628 | 0 1629 | 2 1630 | 101.999 1631 | 1632 | -1425829439 1633 | false 1634 | false 1635 | 1636 | 1637 | Prop 1638 | 1639 | 229.231 1640 | 7446.764 1641 | 20.472 1642 | 1643 | 1644 | 0 1645 | 0 1646 | 143.399 1647 | 1648 | -1682808593 1649 | false 1650 | false 1651 | 1652 | 1653 | Prop 1654 | 1655 | 232.778 1656 | 7524.484 1657 | 4.185 1658 | 1659 | 1660 | 0 1661 | 0 1662 | 101.8 1663 | 1664 | -1383314327 1665 | false 1666 | false 1667 | 1668 | 1669 | Prop 1670 | 1671 | 520.663 1672 | 7192.741 1673 | 4.736 1674 | 1675 | 1676 | 0 1677 | 0 1678 | -77.401 1679 | 1680 | 642437269 1681 | false 1682 | false 1683 | 1684 | 1685 | Prop 1686 | 1687 | 127.387 1688 | 7128.725 1689 | 4.703 1690 | 1691 | 1692 | 0 1693 | 0 1694 | 0 1695 | 1696 | -1118757580 1697 | false 1698 | false 1699 | 1700 | 1701 | Prop 1702 | 1703 | 148.315 1704 | 7132.883 1705 | 4.706 1706 | 1707 | 1708 | 0 1709 | 0 1710 | 0 1711 | 1712 | -1118757580 1713 | false 1714 | false 1715 | 1716 | 1717 | Prop 1718 | 1719 | -37.222 1720 | 7577.374 1721 | 3.445 1722 | 1723 | 1724 | 0 1725 | 0 1726 | 0 1727 | 1728 | -1118757580 1729 | false 1730 | false 1731 | 1732 | 1733 | Prop 1734 | 1735 | -42.805 1736 | 7595.856 1737 | 3.452 1738 | 1739 | 1740 | 0 1741 | 0 1742 | 0 1743 | 1744 | -1118757580 1745 | false 1746 | false 1747 | 1748 | 1749 | Prop 1750 | 1751 | 263.305 1752 | 7442.372 1753 | 17.504 1754 | 1755 | 1756 | 0 1757 | 0 1758 | 0 1759 | 1760 | -1118757580 1761 | false 1762 | false 1763 | 1764 | 1765 | Prop 1766 | 1767 | 238.336 1768 | 7437.019 1769 | 18.213 1770 | 1771 | 1772 | 0 1773 | 0 1774 | 0 1775 | 1776 | -1118757580 1777 | false 1778 | false 1779 | 1780 | 1781 | Prop 1782 | 1783 | 233.532 1784 | 7502.352 1785 | 4.842 1786 | 1787 | 1788 | 0 1789 | -4 1790 | -78 1791 | 1792 | 172434341 1793 | false 1794 | false 1795 | 1796 | 1797 | Prop 1798 | 1799 | 240.014 1800 | 7058.092 1801 | 4.657 1802 | 1803 | 1804 | 0 1805 | 0 1806 | -167.602 1807 | 1808 | -1774725196 1809 | false 1810 | false 1811 | 1812 | 1813 | Prop 1814 | 1815 | 379.116 1816 | 7100.107 1817 | -19.458 1818 | 1819 | 1820 | 0 1821 | 0 1822 | -77.401 1823 | 1824 | -227156169 1825 | false 1826 | false 1827 | 1828 | 1829 | Prop 1830 | 1831 | 447.201 1832 | 7103.771 1833 | 4.653 1834 | 1835 | 1836 | 0 1837 | 0 1838 | -167.801 1839 | 1840 | 2135774782 1841 | false 1842 | false 1843 | 1844 | 1845 | Prop 1846 | 1847 | 307.99 1848 | 7096.652 1849 | 4.648 1850 | 1851 | 1852 | 0 1853 | 0 1854 | 12.398 1855 | 1856 | -255991917 1857 | false 1858 | false 1859 | 1860 | 1861 | Prop 1862 | 1863 | -156.921 1864 | 7185.597 1865 | 4.97 1866 | 1867 | 1868 | 0 1869 | 0 1870 | -78 1871 | 1872 | -1813095810 1873 | false 1874 | false 1875 | 1876 | 1877 | Prop 1878 | 1879 | 198.784 1880 | 7630.616 1881 | 4.217 1882 | 1883 | 1884 | 0 1885 | 0 1886 | 101.999 1887 | 1888 | -24413394 1889 | false 1890 | false 1891 | 1892 | 1893 | Prop 1894 | 1895 | 203.27 1896 | 7723.843 1897 | 4.219 1898 | 1899 | 1900 | 0 1901 | 0 1902 | -79.002 1903 | 1904 | 1539280675 1905 | false 1906 | false 1907 | 1908 | 1909 | Prop 1910 | 1911 | 235.048 1912 | 7569.865 1913 | 4.2 1914 | 1915 | 1916 | 0 1917 | 0 1918 | -78.202 1919 | 1920 | 1439248273 1921 | false 1922 | false 1923 | 1924 | 1925 | Prop 1926 | 1927 | -98.268 1928 | 7350.819 1929 | 4.811 1930 | 1931 | 1932 | 0 1933 | 0 1934 | 12.2 1935 | 1936 | 1457805491 1937 | false 1938 | false 1939 | 1940 | 1941 | Prop 1942 | 1943 | -198.424 1944 | 7328.809 1945 | 3.018 1946 | 1947 | 1948 | 0 1949 | 0 1950 | 11.6 1951 | 1952 | 1457805491 1953 | false 1954 | false 1955 | 1956 | 1957 | Prop 1958 | 1959 | -188.691 1960 | 7339.284 1961 | 3.454 1962 | 1963 | 1964 | 0 1965 | 0 1966 | -78 1967 | 1968 | 1457805491 1969 | false 1970 | false 1971 | 1972 | 1973 | Prop 1974 | 1975 | 247.602 1976 | 7452.367 1977 | 15.246 1978 | 1979 | 1980 | 0 1981 | 5 1982 | 102.548 1983 | 1984 | 1457805491 1985 | false 1986 | false 1987 | 1988 | 1989 | 1990 | 1991 | 1992 | Zorg93 / drp4lyf 1993 | Stunt - H200 1994 | The H200 race track from the Cunning Stunts DLC 1995 | 1996 | 1997 | 125.79 1998 | 7184.461 1999 | 4.677 2000 | 12.6 2001 | 2002 | 2003 | -------------------------------------------------------------------------------- /[examples]/stunt-high-flier/__resource.lua: -------------------------------------------------------------------------------- 1 | local function object_entry(data) 2 | dependency 'object-loader' 3 | 4 | files(data) 5 | object_file(data) 6 | end 7 | 8 | object_entry 'map.xml' -------------------------------------------------------------------------------- /[examples]/stunt-maze-bank-ascent/__resource.lua: -------------------------------------------------------------------------------- 1 | local function object_entry(data) 2 | dependency 'object-loader' 3 | 4 | files(data) 5 | object_file(data) 6 | end 7 | 8 | object_entry 'map.xml' -------------------------------------------------------------------------------- /[examples]/stunt-nightlife/__resource.lua: -------------------------------------------------------------------------------- 1 | local function object_entry(data) 2 | dependency 'object-loader' 3 | 4 | files(data) 5 | object_file(data) 6 | end 7 | 8 | object_entry 'map.xml' -------------------------------------------------------------------------------- /[examples]/stunt-nightlife/map.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Prop 6 | 7 | -454.521 8 | -1028.431 9 | 20.465 10 | 11 | 12 | 0 13 | 0 14 | -109.2 15 | 16 | 658306424 17 | false 18 | false 19 | 20 | 21 | Prop 22 | 23 | -319.983 24 | -1075.325 25 | 20.385 26 | 27 | 28 | 0 29 | 0 30 | -109.28 31 | 32 | 1152255454 33 | false 34 | false 35 | 36 | 37 | Prop 38 | 39 | -239.208 40 | -1101.272 41 | 20.456 42 | 43 | 44 | 0 45 | 0 46 | -109.6 47 | 48 | 702363064 49 | false 50 | false 51 | 52 | 53 | Prop 54 | 55 | -185.183 56 | -1093.83 57 | 20.375 58 | 59 | 60 | 0 61 | 0 62 | -80.601 63 | 64 | 1152255454 65 | false 66 | false 67 | 68 | 69 | Prop 70 | 71 | 23.574 72 | -1051.302 73 | 25.877 74 | 75 | 76 | 0 77 | 0 78 | -68.002 79 | 80 | -777780829 81 | false 82 | false 83 | 84 | 85 | Prop 86 | 87 | 6.987 88 | -1063.133 89 | 25.877 90 | 91 | 92 | 0 93 | 0 94 | -83.7 95 | 96 | -1002529683 97 | false 98 | false 99 | 100 | 101 | Prop 102 | 103 | -265.798 104 | -1094.286 105 | 20.459 106 | 107 | 108 | 0 109 | 0 110 | -109.601 111 | 112 | 167558631 113 | false 114 | false 115 | 116 | 117 | Prop 118 | 119 | -45.13 120 | -1071.347 121 | 25.883 122 | 123 | 124 | -0.1 125 | 0 126 | -81.808 127 | 128 | 1152255454 129 | false 130 | false 131 | 132 | 133 | Prop 134 | 135 | 33.608 136 | -1027.579 137 | 25.87 138 | 139 | 140 | 0 141 | 0 142 | -20.901 143 | 144 | 167558631 145 | false 146 | false 147 | 148 | 149 | Prop 150 | 151 | 43.236 152 | -990.037 153 | 25.862 154 | 155 | 156 | 0 157 | 0 158 | -23.403 159 | 160 | -777780829 161 | false 162 | false 163 | 164 | 165 | Prop 166 | 167 | 35.814 168 | -969.505 169 | 25.856 170 | 171 | 172 | 0 173 | 0 174 | 158.633 175 | 176 | -777780829 177 | false 178 | false 179 | 180 | 181 | Prop 182 | 183 | 41.213 184 | -941.168 185 | 25.858 186 | 187 | 188 | 0 189 | 0 190 | -21.303 191 | 192 | 167558631 193 | false 194 | false 195 | 196 | 197 | Prop 198 | 199 | 55.837 200 | -900.895 201 | 18.089 202 | 203 | 204 | 0 205 | 0 206 | -21.4 207 | 208 | -1968824367 209 | false 210 | false 211 | 212 | 213 | Prop 214 | 215 | 78.196 216 | -842.486 217 | 1.761 218 | 219 | 220 | 0 221 | 0 222 | -20.101 223 | 224 | 1109266474 225 | false 226 | false 227 | 228 | 229 | Prop 230 | 231 | 88.458 232 | -771.914 233 | -3.88 234 | 235 | 236 | 0 237 | 0 238 | 16.632 239 | 240 | 120611315 241 | false 242 | false 243 | 244 | 245 | Prop 246 | 247 | 91.805 248 | -788.671 249 | -3.882 250 | 251 | 252 | 0 253 | 0 254 | -12.968 255 | 256 | 702363064 257 | false 258 | false 259 | 260 | 261 | Prop 262 | 263 | 90.319 264 | -806.716 265 | -3.886 266 | 267 | 268 | 0 269 | 0 270 | -20.468 271 | 272 | -1002529683 273 | false 274 | false 275 | 276 | 277 | Prop 278 | 279 | 85.427 280 | -758.208 281 | 45.894 282 | 283 | 284 | 0 285 | 0 286 | 10.999 287 | 288 | 1568508953 289 | false 290 | false 291 | 292 | 293 | Prop 294 | 295 | 83.973 296 | -747.419 297 | 45.893 298 | 299 | 300 | 0 301 | 0 302 | 1.599 303 | 304 | 364582714 305 | false 306 | false 307 | 308 | 309 | Prop 310 | 311 | 85.765 312 | -737.321 313 | 45.889 314 | 315 | 316 | 0 317 | 0 318 | -16.201 319 | 320 | 1568508953 321 | false 322 | false 323 | 324 | 325 | Prop 326 | 327 | 88.758 328 | -727.836 329 | 45.891 330 | 331 | 332 | 0 333 | 0 334 | -19.4 335 | 336 | 364582714 337 | false 338 | false 339 | 340 | 341 | Prop 342 | 343 | 176.827 344 | -760.433 345 | 43.839 346 | 347 | 348 | 0 349 | 9.5 350 | -100.101 351 | 352 | 1515979145 353 | false 354 | false 355 | 356 | 357 | Prop 358 | 359 | 167.369 360 | -806.375 361 | -16.709 362 | 363 | 364 | -2.5 365 | 0 366 | 165.198 367 | 368 | 77593408 369 | false 370 | false 371 | 372 | 373 | Prop 374 | 375 | 231.036 376 | -955.685 377 | -20.285 378 | 379 | 380 | 0 381 | 0 382 | -136.201 383 | 384 | -777780829 385 | false 386 | false 387 | 388 | 389 | Prop 390 | 391 | 162.52 392 | -913.921 393 | -20.208 394 | 395 | 396 | 0 397 | 0 398 | -157.1 399 | 400 | -777780829 401 | false 402 | false 403 | 404 | 405 | Prop 406 | 407 | 148.742 408 | -894.688 409 | -20.018 410 | 411 | 412 | -0.3 413 | 0 414 | 162.198 415 | 416 | -777780829 417 | false 418 | false 419 | 420 | 421 | Prop 422 | 423 | 152.057 424 | -864.333 425 | -19.252 426 | 427 | 428 | -2.5 429 | 0 430 | 165.198 431 | 432 | 167558631 433 | false 434 | false 435 | 436 | 437 | Prop 438 | 439 | 183.736 440 | -925.943 441 | -20.216 442 | 443 | 444 | 0 445 | 0 446 | -124.001 447 | 448 | 167558631 449 | false 450 | false 451 | 452 | 453 | Prop 454 | 455 | 208.451 456 | -942.806 457 | -20.216 458 | 459 | 460 | 0 461 | 0 462 | 55.3 463 | 464 | 167558631 465 | false 466 | false 467 | 468 | 469 | Prop 470 | 471 | 237.383 472 | -950.732 473 | 29.686 474 | 475 | 476 | 0 477 | 0 478 | -136.801 479 | 480 | 812376260 481 | false 482 | false 483 | 484 | 485 | Prop 486 | 487 | 143.054 488 | -869.149 489 | 31.099 490 | 491 | 492 | 0 493 | 90.1 494 | 165.798 495 | 496 | 644172892 497 | false 498 | false 499 | 500 | 501 | Prop 502 | 503 | 140.851 504 | -885.107 505 | 31.67 506 | 507 | 508 | 0 509 | 90 510 | -177.301 511 | 512 | -2141728307 513 | false 514 | false 515 | 516 | 517 | Prop 518 | 519 | 143.481 520 | -899.339 521 | 31.289 522 | 523 | 524 | 0 525 | 90 526 | -161.801 527 | 528 | -2141728307 529 | false 530 | false 531 | 532 | 533 | Prop 534 | 535 | 254.984 536 | -951.251 537 | -20.29 538 | 539 | 540 | 0 541 | 0 542 | -89.87 543 | 544 | -777780829 545 | false 546 | false 547 | 548 | 549 | Prop 550 | 551 | 274.978 552 | -936.508 553 | 29.378 554 | 555 | 556 | 0 557 | 0 558 | -37.809 559 | 560 | 812376260 561 | false 562 | false 563 | 564 | 565 | Prop 566 | 567 | 274.505 568 | -918.259 569 | -20.31 570 | 571 | 572 | 0 573 | 0 574 | -19.809 575 | 576 | 167558631 577 | false 578 | false 579 | 580 | 581 | Prop 582 | 583 | 284.194 584 | -890.306 585 | -20.323 586 | 587 | 588 | 0 589 | 0 590 | 161.509 591 | 592 | 167558631 593 | false 594 | false 595 | 596 | 597 | Prop 598 | 599 | 313.792 600 | -801.201 601 | 33.882 602 | 603 | 604 | 0 605 | 0 606 | -18.201 607 | 608 | -982167178 609 | false 610 | false 611 | 612 | 613 | Prop 614 | 615 | 291.243 616 | -869.424 617 | -20.32 618 | 619 | 620 | 0 621 | 0 622 | -19.001 623 | 624 | 120611315 625 | false 626 | false 627 | 628 | 629 | Prop 630 | 631 | 337.065 632 | -730.245 633 | 36.222 634 | 635 | 636 | -0.3 637 | 0 638 | -18.001 639 | 640 | 167558631 641 | false 642 | false 643 | 644 | 645 | Prop 646 | 647 | 346.302 648 | -702.059 649 | 36.149 650 | 651 | 652 | 0 653 | 0 654 | -18.301 655 | 656 | 167558631 657 | false 658 | false 659 | 660 | 661 | Prop 662 | 663 | 333.919 664 | -642.643 665 | 77.154 666 | 667 | 668 | 0 669 | 0 670 | -18.201 671 | 672 | -841899029 673 | false 674 | false 675 | 676 | 677 | Prop 678 | 679 | 262.572 680 | -619.215 681 | 77.147 682 | 683 | 684 | 0 685 | 0 686 | 72.4 687 | 688 | -841899029 689 | false 690 | false 691 | 692 | 693 | Prop 694 | 695 | 180.393 696 | -670.618 697 | 77.137 698 | 699 | 700 | 0 701 | 0 702 | -109.802 703 | 704 | -841899029 705 | false 706 | false 707 | 708 | 709 | Prop 710 | 711 | 120.316 712 | -681.041 713 | 36.101 714 | 715 | 716 | 0 717 | 0 718 | -110.402 719 | 720 | 167558631 721 | false 722 | false 723 | 724 | 725 | Prop 726 | 727 | 42.655 728 | -651.891 729 | 51.165 730 | 731 | 732 | 0 733 | 0 734 | 69.398 735 | 736 | 456296435 737 | false 738 | false 739 | 740 | 741 | Prop 742 | 743 | -24.724 744 | -626.605 745 | 63.106 746 | 747 | 748 | 0 749 | 0 750 | 69.498 751 | 752 | 167558631 753 | false 754 | false 755 | 756 | 757 | Prop 758 | 759 | -60.334 760 | -580.727 761 | 104.113 762 | 763 | 764 | 0 765 | 0 766 | 159.798 767 | 768 | -841899029 769 | false 770 | false 771 | 772 | 773 | Prop 774 | 775 | -33.173 776 | -511.295 777 | 104.105 778 | 779 | 780 | 0 781 | 0 782 | 67.997 783 | 784 | -841899029 785 | false 786 | false 787 | 788 | 789 | Prop 790 | 791 | 8.562 792 | -569.052 793 | 129.871 794 | 795 | 796 | 6.8 797 | 0 798 | 158.374 799 | 800 | 430430733 801 | false 802 | false 803 | 804 | 805 | Prop 806 | 807 | -7.702 808 | -489.643 809 | 75.426 810 | 811 | 812 | 0 813 | 0 814 | 157.499 815 | 816 | -212594584 817 | false 818 | false 819 | 820 | 821 | Prop 822 | 823 | 64.234 824 | -549.933 825 | 118.993 826 | 827 | 828 | 0 829 | 0 830 | -110.47 831 | 832 | 142505733 833 | false 834 | false 835 | 836 | 837 | Prop 838 | 839 | 70.122 840 | -534.322 841 | 63.411 842 | 843 | 844 | 0 845 | 0 846 | 157.551 847 | 848 | 167558631 849 | false 850 | false 851 | 852 | 853 | Prop 854 | 855 | 266.74 856 | -937.534 857 | -20.298 858 | 859 | 860 | 0 861 | 0 862 | -37.301 863 | 864 | -1002529683 865 | false 866 | false 867 | 868 | 869 | Prop 870 | 871 | 80.716 872 | -510.693 873 | 63.416 874 | 875 | 876 | 0 877 | 0 878 | 111.252 879 | 880 | -777780829 881 | false 882 | false 883 | 884 | 885 | Prop 886 | 887 | 130.155 888 | -498.744 889 | 63.418 890 | 891 | 892 | 0 893 | 0 894 | -114.27 895 | 896 | -777780829 897 | false 898 | false 899 | 900 | 901 | Prop 902 | 903 | 151.277 904 | -485.69 905 | 63.415 906 | 907 | 908 | 0 909 | 0 910 | -69.601 911 | 912 | -777780829 913 | false 914 | false 915 | 916 | 917 | Prop 918 | 919 | 157.254 920 | -461.695 921 | 63.419 922 | 923 | 924 | 0 925 | 0 926 | -25.501 927 | 928 | -777780829 929 | false 930 | false 931 | 932 | 933 | Prop 934 | 935 | 144.7 936 | -440.328 937 | 63.418 938 | 939 | 940 | 0 941 | 0 942 | 19.299 943 | 944 | -777780829 945 | false 946 | false 947 | 948 | 949 | Prop 950 | 951 | 120.667 952 | -434.073 953 | 63.415 954 | 955 | 956 | 0 957 | 0 958 | 64.399 959 | 960 | -777780829 961 | false 962 | false 963 | 964 | 965 | Prop 966 | 967 | 27.697 968 | -497.548 969 | 63.094 970 | 971 | 972 | 0 973 | 0 974 | -112.103 975 | 976 | -777780829 977 | false 978 | false 979 | 980 | 981 | Prop 982 | 983 | 99.327 984 | -446.678 985 | 63.421 986 | 987 | 988 | 0 989 | 0 990 | 109.499 991 | 992 | -777780829 993 | false 994 | false 995 | 996 | 997 | Prop 998 | 999 | 88.882 1000 | -465.922 1001 | 63.436 1002 | 1003 | 1004 | 0 1005 | 0 1006 | -71.2 1007 | 1008 | -777780829 1009 | false 1010 | false 1011 | 1012 | 1013 | Prop 1014 | 1015 | 51.884 1016 | -487.894 1017 | 63.094 1018 | 1019 | 1020 | 0 1021 | 0 1022 | -67.103 1023 | 1024 | 167558631 1025 | false 1026 | false 1027 | 1028 | 1029 | Prop 1030 | 1031 | 71.578 1032 | -478.682 1033 | 112.963 1034 | 1035 | 1036 | 1.4 1037 | 0 1038 | -64.442 1039 | 1040 | -2102185892 1041 | false 1042 | false 1043 | 1044 | 1045 | Prop 1046 | 1047 | -5.599 1048 | -402.001 1049 | 116.513 1050 | 1051 | 1052 | 0 1053 | 0 1054 | -20.549 1055 | 1056 | -841899029 1057 | false 1058 | false 1059 | 1060 | 1061 | Prop 1062 | 1063 | -44.424 1064 | -360.309 1065 | 75.508 1066 | 1067 | 1068 | 0 1069 | 0 1070 | 69.239 1071 | 1072 | -777780829 1073 | false 1074 | false 1075 | 1076 | 1077 | Prop 1078 | 1079 | -64.846 1080 | -371.972 1081 | 75.503 1082 | 1083 | 1084 | 0 1085 | 0 1086 | 116.029 1087 | 1088 | 702363064 1089 | false 1090 | false 1091 | 1092 | 1093 | Prop 1094 | 1095 | -79.736 1096 | -391.251 1097 | 75.49 1098 | 1099 | 1100 | 0 1101 | 0 1102 | 146.329 1103 | 1104 | 167558631 1105 | false 1106 | false 1107 | 1108 | 1109 | Prop 1110 | 1111 | -91.965 1112 | -410.729 1113 | 75.483 1114 | 1115 | 1116 | 0 1117 | 0 1118 | 143.731 1119 | 1120 | -1002529683 1121 | false 1122 | false 1123 | 1124 | 1125 | Prop 1126 | 1127 | -126.179 1128 | -491.55 1129 | 88.163 1130 | 1131 | 1132 | 0 1133 | 23.6 1134 | -112.145 1135 | 1136 | 600369530 1137 | false 1138 | false 1139 | 1140 | 1141 | Prop 1142 | 1143 | -125.163 1144 | -488.929 1145 | 97.009 1146 | 1147 | 1148 | 0 1149 | 23.641 1150 | -112.293 1151 | 1152 | 237402445 1153 | false 1154 | false 1155 | 1156 | 1157 | Prop 1158 | 1159 | -285.296 1160 | -899.651 1161 | 93.718 1162 | 1163 | 1164 | 0 1165 | 0 1166 | 161.929 1167 | 1168 | -777780829 1169 | false 1170 | false 1171 | 1172 | 1173 | Prop 1174 | 1175 | -269.294 1176 | -934.8 1177 | 93.674 1178 | 1179 | 1180 | 0 1181 | 0 1182 | -19.569 1183 | 1184 | -777780829 1185 | false 1186 | false 1187 | 1188 | 1189 | Prop 1190 | 1191 | -277.805 1192 | -916.033 1193 | 143.438 1194 | 1195 | 1196 | 0 1197 | 0 1198 | -154.071 1199 | 1200 | -278438319 1201 | false 1202 | false 1203 | 1204 | 1205 | Prop 1206 | 1207 | -275.406 1208 | -948.652 1209 | 143.769 1210 | 1211 | 1212 | 0 1213 | 0 1214 | -155.048 1215 | 1216 | 812376260 1217 | false 1218 | false 1219 | 1220 | 1221 | Prop 1222 | 1223 | -281.167 1224 | -871.192 1225 | 93.723 1226 | 1227 | 1228 | 0 1229 | 0 1230 | 161.929 1231 | 1232 | 167558631 1233 | false 1234 | false 1235 | 1236 | 1237 | Prop 1238 | 1239 | -315.823 1240 | -1073.395 1241 | 40.063 1242 | 1243 | 1244 | 0 1245 | 0 1246 | 159.729 1247 | 1248 | -212594584 1249 | false 1250 | false 1251 | 1252 | 1253 | Prop 1254 | 1255 | -313.911 1256 | -1068.772 1257 | 89.862 1258 | 1259 | 1260 | 0 1261 | 0 1262 | 159.799 1263 | 1264 | -1151630586 1265 | false 1266 | false 1267 | 1268 | 1269 | Prop 1270 | 1271 | -372.811 1272 | -1139.97 1273 | 81.146 1274 | 1275 | 1276 | 0 1277 | 0 1278 | -110.15 1279 | 1280 | -841899029 1281 | false 1282 | false 1283 | 1284 | 1285 | Prop 1286 | 1287 | -591.758 1288 | -1012.19 1289 | 61.498 1290 | 1291 | 1292 | 0 1293 | 0 1294 | 70.031 1295 | 1296 | -841899029 1297 | false 1298 | false 1299 | 1300 | 1301 | Prop 1302 | 1303 | -635.765 1304 | -1049.838 1305 | 20.486 1306 | 1307 | 1308 | 0 1309 | 0 1310 | 159.231 1311 | 1312 | 702363064 1313 | false 1314 | false 1315 | 1316 | 1317 | Prop 1318 | 1319 | -631.208 1320 | -1071.579 1321 | 20.488 1322 | 1323 | 1324 | 0 1325 | 0 1326 | -169.369 1327 | 1328 | 702363064 1329 | false 1330 | false 1331 | 1332 | 1333 | Prop 1334 | 1335 | -616.141 1336 | -1087.936 1337 | 20.486 1338 | 1339 | 1340 | 0 1341 | 0 1342 | -138.969 1343 | 1344 | 702363064 1345 | false 1346 | false 1347 | 1348 | 1349 | Prop 1350 | 1351 | -594.802 1352 | -1094.717 1353 | 20.491 1354 | 1355 | 1356 | 0 1357 | 0 1358 | -109.871 1359 | 1360 | 702363064 1361 | false 1362 | false 1363 | 1364 | 1365 | Prop 1366 | 1367 | -574.258 1368 | -1093.538 1369 | 20.498 1370 | 1371 | 1372 | 0 1373 | 0 1374 | 53.631 1375 | 1376 | -777780829 1377 | false 1378 | false 1379 | 1380 | 1381 | Prop 1382 | 1383 | -491.204 1384 | -1125.813 1385 | 78.246 1386 | 1387 | 1388 | 0 1389 | 5.8 1390 | 157.597 1391 | 1392 | 600369530 1393 | false 1394 | false 1395 | 1396 | 1397 | Prop 1398 | 1399 | -158.574 1400 | -571.33 1401 | 46.468 1402 | 1403 | 1404 | -0.664 1405 | 23.591 1406 | -113.664 1407 | 1408 | 172434341 1409 | false 1410 | false 1411 | 1412 | 1413 | Prop 1414 | 1415 | -184.339 1416 | -628.851 1417 | 56.389 1418 | 1419 | 1420 | 0 1421 | 0 1422 | -112.864 1423 | 1424 | -1765141602 1425 | false 1426 | false 1427 | 1428 | 1429 | Prop 1430 | 1431 | 44.254 1432 | -954.606 1433 | 77.324 1434 | 1435 | 1436 | 0 1437 | 85.49 1438 | -111.067 1439 | 1440 | 670120870 1441 | false 1442 | false 1443 | 1444 | 1445 | Prop 1446 | 1447 | 41.918 1448 | -957.745 1449 | 76.16 1450 | 1451 | 1452 | 0 1453 | 90.02 1454 | 176.934 1455 | 1456 | -2141728307 1457 | false 1458 | false 1459 | 1460 | 1461 | Prop 1462 | 1463 | 43.946 1464 | -971.908 1465 | 77.164 1466 | 1467 | 1468 | 0.407 1469 | -89.986 1470 | -160.687 1471 | 1472 | -2141728307 1473 | false 1474 | false 1475 | 1476 | 1477 | Prop 1478 | 1479 | 49.817 1480 | -999.537 1481 | 77.58 1482 | 1483 | 1484 | 0 1485 | 90.04 1486 | 178.734 1487 | 1488 | -2141728307 1489 | false 1490 | false 1491 | 1492 | 1493 | Prop 1494 | 1495 | 47.974 1496 | -985.462 1497 | 77.616 1498 | 1499 | 1500 | 0 1501 | 90.01 1502 | -165.966 1503 | 1504 | 1457805491 1505 | false 1506 | false 1507 | 1508 | 1509 | Prop 1510 | 1511 | 48.661 1512 | -899.414 1513 | 61.959 1514 | 1515 | 1516 | 0 1517 | 90 1518 | 158.534 1519 | 1520 | 287515096 1521 | false 1522 | false 1523 | 1524 | 1525 | Prop 1526 | 1527 | 55.962 1528 | -880.54 1529 | 61.921 1530 | 1531 | 1532 | 0 1533 | 90.02 1534 | 159.134 1535 | 1536 | 287515096 1537 | false 1538 | false 1539 | 1540 | 1541 | Prop 1542 | 1543 | 71.884 1544 | -837.834 1545 | 47.751 1546 | 1547 | 1548 | 0 1549 | 89.98 1550 | 70.334 1551 | 1552 | 670120870 1553 | false 1554 | false 1555 | 1556 | 1557 | Prop 1558 | 1559 | 181.287 1560 | -732.216 1561 | 46.436 1562 | 1563 | 1564 | 0 1565 | 90 1566 | 25.934 1567 | 1568 | 670120870 1569 | false 1570 | false 1571 | 1572 | 1573 | Prop 1574 | 1575 | 233.862 1576 | -963.118 1577 | 29.612 1578 | 1579 | 1580 | 0 1581 | 0 1582 | 90.633 1583 | 1584 | 812376260 1585 | false 1586 | false 1587 | 1588 | 1589 | Prop 1590 | 1591 | 240.628 1592 | -962.828 1593 | 30.005 1594 | 1595 | 1596 | 0 1597 | 89.98 1598 | 93.233 1599 | 1600 | -2141728307 1601 | false 1602 | false 1603 | 1604 | 1605 | Prop 1606 | 1607 | 252.416 1608 | -959.887 1609 | 30.077 1610 | 1611 | 1612 | 0 1613 | 89.99 1614 | 114.032 1615 | 1616 | -2141728307 1617 | false 1618 | false 1619 | 1620 | 1621 | Prop 1622 | 1623 | 262.651 1624 | -953.232 1625 | 30.073 1626 | 1627 | 1628 | 0 1629 | 90 1630 | 131.832 1631 | 1632 | -2141728307 1633 | false 1634 | false 1635 | 1636 | 1637 | Prop 1638 | 1639 | 270.54 1640 | -943.948 1641 | 29.724 1642 | 1643 | 1644 | 0 1645 | 89.96 1646 | 147.232 1647 | 1648 | -2141728307 1649 | false 1650 | false 1651 | 1652 | 1653 | Prop 1654 | 1655 | -305.397 1656 | -1044.633 1657 | 93.469 1658 | 1659 | 1660 | -0.284 1661 | 44.998 1662 | -109.883 1663 | 1664 | -1765141602 1665 | false 1666 | false 1667 | 1668 | 1669 | Prop 1670 | 1671 | -329.28 1672 | -1110.333 1673 | 89.832 1674 | 1675 | 1676 | 0 1677 | 0 1678 | 159.629 1679 | 1680 | -1151630586 1681 | false 1682 | false 1683 | 1684 | 1685 | Prop 1686 | 1687 | -278.531 1688 | -969.432 1689 | 93.694 1690 | 1691 | 1692 | 0 1693 | 0 1694 | 160.232 1695 | 1696 | 120611315 1697 | false 1698 | false 1699 | 1700 | 1701 | Prop 1702 | 1703 | -301.179 1704 | -1033.009 1705 | 88.746 1706 | 1707 | 1708 | 0 1709 | 0 1710 | -19.603 1711 | 1712 | -1055601003 1713 | false 1714 | false 1715 | 1716 | 1717 | Prop 1718 | 1719 | -135.888 1720 | -1085.355 1721 | 73.232 1722 | 1723 | 1724 | 0 1725 | -9.4 1726 | 10.732 1727 | 1728 | -1425829439 1729 | false 1730 | false 1731 | 1732 | 1733 | Prop 1734 | 1735 | -548.598 1736 | -1102.093 1737 | 80.65 1738 | 1739 | 1740 | 0 1741 | -5.8 1742 | -22.709 1743 | 1744 | 1688773919 1745 | false 1746 | false 1747 | 1748 | 1749 | Prop 1750 | 1751 | -491.358 1752 | -1125.769 1753 | 86.922 1754 | 1755 | 1756 | 0 1757 | -5.8 1758 | -22.408 1759 | 1760 | 2081936690 1761 | false 1762 | false 1763 | 1764 | 1765 | Prop 1766 | 1767 | -442.018 1768 | -1146.079 1769 | 92.345 1770 | 1771 | 1772 | 0 1773 | -5.8 1774 | -22.109 1775 | 1776 | 1125864094 1777 | false 1778 | false 1779 | 1780 | 1781 | Prop 1782 | 1783 | -272.161 1784 | -843.138 1785 | 93.731 1786 | 1787 | 1788 | 0 1789 | 0 1790 | 161.929 1791 | 1792 | 167558631 1793 | false 1794 | false 1795 | 1796 | 1797 | Prop 1798 | 1799 | -291.736 1800 | -1008.796 1801 | 89.822 1802 | 1803 | 1804 | 0 1805 | 0 1806 | 159.65 1807 | 1808 | 568446997 1809 | false 1810 | false 1811 | 1812 | 1813 | Prop 1814 | 1815 | -274.161 1816 | -850.33 1817 | 143.365 1818 | 1819 | 1820 | 0 1821 | 0 1822 | 162.229 1823 | 1824 | -1151630586 1825 | false 1826 | false 1827 | 1828 | 1829 | Prop 1830 | 1831 | -255.66 1832 | -792.895 1833 | 125.577 1834 | 1835 | 1836 | 25 1837 | 0 1838 | 162.099 1839 | 1840 | 568446997 1841 | false 1842 | false 1843 | 1844 | 1845 | Prop 1846 | 1847 | -231.88 1848 | -720.366 1849 | 90.047 1850 | 1851 | 1852 | 25 1853 | 0 1854 | 161.599 1855 | 1856 | 568446997 1857 | false 1858 | false 1859 | 1860 | 1861 | Prop 1862 | 1863 | -207.725 1864 | -647.956 1865 | 54.444 1866 | 1867 | 1868 | 25 1869 | 0 1870 | 161.499 1871 | 1872 | 568446997 1873 | false 1874 | false 1875 | 1876 | 1877 | Prop 1878 | 1879 | 64.491 1880 | -858.765 1881 | 53.669 1882 | 1883 | 1884 | 24.997 1885 | 91.348 1886 | 159.392 1887 | 1888 | 287515096 1889 | false 1890 | false 1891 | 1892 | 1893 | Prop 1894 | 1895 | 96.666 1896 | -706.252 1897 | 45.945 1898 | 1899 | 1900 | 0 1901 | -89.85 1902 | 131.836 1903 | 1904 | 670120870 1905 | false 1906 | false 1907 | 1908 | 1909 | Prop 1910 | 1911 | 110.608 1912 | -699.535 1913 | 45.656 1914 | 1915 | 1916 | 0 1917 | 90.13 1918 | 98.235 1919 | 1920 | 670120870 1921 | false 1922 | false 1923 | 1924 | 1925 | Prop 1926 | 1927 | 276.309 1928 | -890.102 1929 | 15.919 1930 | 1931 | 1932 | 0 1933 | 89.98 1934 | -19.2 1935 | 1936 | 568446997 1937 | false 1938 | false 1939 | 1940 | 1941 | Prop 1942 | 1943 | -166.782 1944 | -592.117 1945 | 47.497 1946 | 1947 | 1948 | -3.8 1949 | 0 1950 | -21 1951 | 1952 | 1568508953 1953 | false 1954 | false 1955 | 1956 | 1957 | Prop 1958 | 1959 | -359.114 1960 | -1061.667 1961 | 70.148 1962 | 1963 | 1964 | 0 1965 | 0 1966 | 69.999 1967 | 1968 | 690751374 1969 | false 1970 | false 1971 | 1972 | 1973 | Prop 1974 | 1975 | -237.816 1976 | -738.61 1977 | 99.28 1978 | 1979 | 1980 | 0 1981 | -25.4 1982 | -108.3 1983 | 1984 | -388593496 1985 | false 1986 | false 1987 | 1988 | 1989 | Prop 1990 | 1991 | -221.057 1992 | -686.995 1993 | 73.939 1994 | 1995 | 1996 | 0 1997 | -24.8 1998 | -108.2 1999 | 2000 | -388593496 2001 | false 2002 | false 2003 | 2004 | 2005 | Prop 2006 | 2007 | 143.162 2008 | -705.445 2009 | 46.036 2010 | 2011 | 2012 | 0 2013 | 89.8 2014 | 70.2 2015 | 2016 | -2141728307 2017 | false 2018 | false 2019 | 2020 | 2021 | Prop 2022 | 2023 | 167.119 2024 | -715.739 2025 | 45.956 2026 | 2027 | 2028 | 0 2029 | 91.47 2030 | 55.4 2031 | 2032 | -2141728307 2033 | false 2034 | false 2035 | 2036 | 2037 | Prop 2038 | 2039 | 154.247 2040 | -709.307 2041 | 47.076 2042 | 2043 | 2044 | 0 2045 | 89.97 2046 | 71.22 2047 | 2048 | -2141728307 2049 | false 2050 | false 2051 | 2052 | 2053 | Prop 2054 | 2055 | -170.922 2056 | -602.787 2057 | 47.967 2058 | 2059 | 2060 | 0.1 2061 | 0 2062 | -21.7 2063 | 2064 | 364582714 2065 | false 2066 | false 2067 | 2068 | 2069 | Prop 2070 | 2071 | -244.926 2072 | -760.416 2073 | 110.066 2074 | 2075 | 2076 | -0.042 2077 | 25 2078 | 72.008 2079 | 2080 | 600369530 2081 | false 2082 | false 2083 | 2084 | 2085 | Prop 2086 | 2087 | -215.345 2088 | -669.396 2089 | 65.423 2090 | 2091 | 2092 | 0 2093 | -24.999 2094 | -107.956 2095 | 2096 | 1670637843 2097 | false 2098 | false 2099 | 2100 | 2101 | Prop 2102 | 2103 | -189.994 2104 | -642.353 2105 | 66.197 2106 | 2107 | 2108 | -35 2109 | -0.026 2110 | -22.91 2111 | 2112 | 1261306399 2113 | false 2114 | false 2115 | 2116 | 2117 | Prop 2118 | 2119 | 39.51 2120 | -1009.142 2121 | 75.581 2122 | 2123 | 2124 | 0 2125 | 0 2126 | 69.151 2127 | 2128 | -1151630586 2129 | false 2130 | false 2131 | 2132 | 2133 | Prop 2134 | 2135 | -283.962 2136 | -881.481 2137 | 143.368 2138 | 2139 | 2140 | 0 2141 | 0 2142 | 162.749 2143 | 2144 | -1151630586 2145 | false 2146 | false 2147 | 2148 | 2149 | Prop 2150 | 2151 | -160.944 2152 | -577.688 2153 | 52.258 2154 | 2155 | 2156 | 0 2157 | 0 2158 | 69.552 2159 | 2160 | -1734671262 2161 | false 2162 | false 2163 | 2164 | 2165 | Prop 2166 | 2167 | 74.047 2168 | -839.925 2169 | 46.307 2170 | 2171 | 2172 | 0 2173 | 0 2174 | -64.848 2175 | 2176 | -1734671262 2177 | false 2178 | false 2179 | 2180 | 2181 | Prop 2182 | 2183 | -104.51 2184 | -1079.948 2185 | 26.063 2186 | 2187 | 2188 | -0.1 2189 | 0 2190 | -81.808 2191 | 2192 | -1319394604 2193 | false 2194 | false 2195 | 2196 | 2197 | Prop 2198 | 2199 | -96.499 2200 | -419.85 2201 | 121.967 2202 | 2203 | 2204 | -0.2 2205 | 23.5 2206 | -112.809 2207 | 2208 | -278438319 2209 | false 2210 | false 2211 | 2212 | 2213 | Prop 2214 | 2215 | 154.365 2216 | -906.407 2217 | 29.619 2218 | 2219 | 2220 | 0.2 2221 | 1.9 2222 | -62.201 2223 | 2224 | 670120870 2225 | false 2226 | false 2227 | 2228 | 2229 | Prop 2230 | 2231 | 222.113 2232 | -952.244 2233 | 29.479 2234 | 2235 | 2236 | 0 2237 | 1.2 2238 | -33.601 2239 | 2240 | 670120870 2241 | false 2242 | false 2243 | 2244 | 2245 | Prop 2246 | 2247 | 153.783 2248 | -914.299 2249 | 28.135 2250 | 2251 | 2252 | 0 2253 | 0 2254 | 136.999 2255 | 2256 | -1483897126 2257 | false 2258 | false 2259 | 2260 | 2261 | Prop 2262 | 2263 | 225.33 2264 | -960.085 2265 | 28.088 2266 | 2267 | 2268 | 0 2269 | 0 2270 | 159.998 2271 | 2272 | -1483897126 2273 | false 2274 | false 2275 | 2276 | 2277 | Prop 2278 | 2279 | 101.534 2280 | -497.506 2281 | 63.418 2282 | 2283 | 2284 | 0 2285 | 0 2286 | 66.13 2287 | 2288 | -777780829 2289 | false 2290 | false 2291 | 2292 | 2293 | 2294 | 2295 | 2296 | Zorg93 / drp4lyf 2297 | Stunt - NightLife 2298 | The NightLife race track from the Cunning Stunts DLC 2299 | 2300 | 2301 | -366.494 2302 | -1058.647 2303 | 70.399 2304 | -109.001 2305 | 2306 | 2307 | -------------------------------------------------------------------------------- /[examples]/stunt-over-and-under/__resource.lua: -------------------------------------------------------------------------------- 1 | local function object_entry(data) 2 | dependency 'object-loader' 3 | 4 | files(data) 5 | object_file(data) 6 | end 7 | 8 | object_entry 'map.xml' -------------------------------------------------------------------------------- /[examples]/stunt-over-the-bridge/__resource.lua: -------------------------------------------------------------------------------- 1 | local function object_entry(data) 2 | dependency 'object-loader' 3 | 4 | files(data) 5 | object_file(data) 6 | end 7 | 8 | object_entry 'map.xml' -------------------------------------------------------------------------------- /[examples]/stunt-plummet/__resource.lua: -------------------------------------------------------------------------------- 1 | local function object_entry(data) 2 | dependency 'object-loader' 3 | 4 | files(data) 5 | object_file(data) 6 | end 7 | 8 | object_entry 'map.xml' -------------------------------------------------------------------------------- /[examples]/stunt-racing-alley/__resource.lua: -------------------------------------------------------------------------------- 1 | local function object_entry(data) 2 | dependency 'object-loader' 3 | 4 | files(data) 5 | object_file(data) 6 | end 7 | 8 | object_entry 'map.xml' -------------------------------------------------------------------------------- /[examples]/stunt-rally/__resource.lua: -------------------------------------------------------------------------------- 1 | local function object_entry(data) 2 | dependency 'object-loader' 3 | 4 | files(data) 5 | object_file(data) 6 | end 7 | 8 | object_entry 'map.xml' -------------------------------------------------------------------------------- /[examples]/stunt-splits/__resource.lua: -------------------------------------------------------------------------------- 1 | local function object_entry(data) 2 | dependency 'object-loader' 3 | 4 | files(data) 5 | object_file(data) 6 | end 7 | 8 | object_entry 'map.xml' -------------------------------------------------------------------------------- /[examples]/stunt-the-wave/__resource.lua: -------------------------------------------------------------------------------- 1 | local function object_entry(data) 2 | dependency 'object-loader' 3 | 4 | files(data) 5 | object_file(data) 6 | end 7 | 8 | object_entry 'map.xml' -------------------------------------------------------------------------------- /[examples]/stunt-threading-the-needle/__resource.lua: -------------------------------------------------------------------------------- 1 | local function object_entry(data) 2 | dependency 'object-loader' 3 | 4 | files(data) 5 | object_file(data) 6 | end 7 | 8 | object_entry 'map.xml' -------------------------------------------------------------------------------- /[examples]/stunt-trench-1/__resource.lua: -------------------------------------------------------------------------------- 1 | local function object_entry(data) 2 | dependency 'object-loader' 3 | 4 | files(data) 5 | object_file(data) 6 | end 7 | 8 | object_entry 'map.xml' -------------------------------------------------------------------------------- /[examples]/stunt-trench-2/__resource.lua: -------------------------------------------------------------------------------- 1 | local function object_entry(data) 2 | dependency 'object-loader' 3 | 4 | files(data) 5 | object_file(data) 6 | end 7 | 8 | object_entry 'map.xml' -------------------------------------------------------------------------------- /[examples]/stunt-turbine/__resource.lua: -------------------------------------------------------------------------------- 1 | local function object_entry(data) 2 | dependency 'object-loader' 3 | 4 | files(data) 5 | object_file(data) 6 | end 7 | 8 | object_entry 'map.xml' -------------------------------------------------------------------------------- /[examples]/stunt-vespucci/__resource.lua: -------------------------------------------------------------------------------- 1 | local function object_entry(data) 2 | dependency 'object-loader' 3 | 4 | files(data) 5 | object_file(data) 6 | end 7 | 8 | object_entry 'map.xml' -------------------------------------------------------------------------------- /[examples]/stunt-vespucci/map.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Prop 6 | 7 | -1098.869 8 | -1162.794 9 | 0.167 10 | 11 | 12 | 0 13 | 0 14 | 120.198 15 | 16 | 600369530 17 | false 18 | false 19 | 20 | 21 | Prop 22 | 23 | -1196.722 24 | -1083.507 25 | 5.931 26 | 27 | 28 | 0.8 29 | 0 30 | 30.4 31 | 32 | 430430733 33 | false 34 | false 35 | 36 | 37 | Prop 38 | 39 | -1151.92 40 | -1071.097 41 | 0.148 42 | 43 | 44 | 0 45 | 0 46 | -60.001 47 | 48 | 1670637843 49 | false 50 | false 51 | 52 | 53 | Prop 54 | 55 | -1178.014 56 | -1025.508 57 | 0.148 58 | 59 | 60 | 0 61 | 0 62 | 120.399 63 | 64 | 1670637843 65 | false 66 | false 67 | 68 | 69 | Prop 70 | 71 | -1161.001 72 | -1044.891 73 | 0.33 74 | 75 | 76 | 0 77 | 0 78 | 120.399 79 | 80 | 812376260 81 | false 82 | false 83 | 84 | 85 | Prop 86 | 87 | -1162.125 88 | -1045.212 89 | 0.33 90 | 91 | 92 | 0 93 | 0 94 | 120.399 95 | 96 | 812376260 97 | false 98 | false 99 | 100 | 101 | Prop 102 | 103 | -959.455 104 | -1401.749 105 | -49.71 106 | 107 | 108 | 0 109 | 0 110 | -149.502 111 | 112 | -1272895592 113 | false 114 | false 115 | 116 | 117 | Prop 118 | 119 | -900.859 120 | -1502.298 121 | 28.582 122 | 123 | 124 | 0 125 | 0 126 | 119.898 127 | 128 | -1557794353 129 | false 130 | false 131 | 132 | 133 | Prop 134 | 135 | -860.178 136 | -1548.599 137 | 28.635 138 | 139 | 140 | 0 141 | 0 142 | -58.903 143 | 144 | 370845653 145 | false 146 | false 147 | 148 | 149 | Prop 150 | 151 | -1074.91 152 | -1222.76 153 | 1.154 154 | 155 | 156 | 0 157 | 0 158 | 120.198 159 | 160 | 631705629 161 | false 162 | false 163 | 164 | 165 | Prop 166 | 167 | -1225.737 168 | -1161.455 169 | 6.577 170 | 171 | 172 | 0 173 | -0.3 174 | 104.479 175 | 176 | 1905998566 177 | false 178 | false 179 | 180 | 181 | Prop 182 | 183 | -1196.836 184 | -1209.862 185 | 6.407 186 | 187 | 188 | 0 189 | 0 190 | -81.021 191 | 192 | -1483897126 193 | false 194 | false 195 | 196 | 197 | Prop 198 | 199 | -1229.677 200 | -1749.202 201 | 2.115 202 | 203 | 204 | 3.934 205 | -2.899 206 | 26.298 207 | 208 | 509852852 209 | false 210 | false 211 | 212 | 213 | Prop 214 | 215 | -1332.478 216 | -1566.048 217 | 3.118 218 | 219 | 220 | 0 221 | 0 222 | 30.797 223 | 224 | -666143389 225 | false 226 | false 227 | 228 | 229 | Prop 230 | 231 | -1323.328 232 | -1561.771 233 | 3.109 234 | 235 | 236 | 0 237 | 0 238 | 16.597 239 | 240 | -905357089 241 | false 242 | false 243 | 244 | 245 | Prop 246 | 247 | -1316.977 248 | -1563.197 249 | 3.12 250 | 251 | 252 | 0 253 | 0 254 | -39.603 255 | 256 | -905357089 257 | false 258 | false 259 | 260 | 261 | Prop 262 | 263 | -1175.797 264 | -1830.067 265 | -22.317 266 | 267 | 268 | 2.8 269 | 0 270 | -140.705 271 | 272 | 234083239 273 | false 274 | false 275 | 276 | 277 | Prop 278 | 279 | -1049.919 280 | -1556.599 281 | -19.579 282 | 283 | 284 | 0 285 | 0 286 | -149.6 287 | 288 | -944087079 289 | false 290 | false 291 | 292 | 293 | Prop 294 | 295 | -1213.65 296 | -1524.972 297 | -19.631 298 | 299 | 300 | 0 301 | 0 302 | -61 303 | 304 | 100090969 305 | false 306 | false 307 | 308 | 309 | Prop 310 | 311 | -1401.412 312 | -1619.269 313 | -42.348 314 | 315 | 316 | 0 317 | 0 318 | 113.498 319 | 320 | 456296435 321 | false 322 | false 323 | 324 | 325 | Prop 326 | 327 | -1138.73 328 | -1514.307 329 | -19.619 330 | 331 | 332 | 0 333 | 0 334 | 30.4 335 | 336 | -944087079 337 | false 338 | false 339 | 340 | 341 | Prop 342 | 343 | -1562.136 344 | -1407.366 345 | 16.827 346 | 347 | 348 | 0 349 | -0.1 350 | -52.2 351 | 352 | 1670637843 353 | false 354 | false 355 | 356 | 357 | Prop 358 | 359 | -1594.435 360 | -1365.771 361 | 16.621 362 | 363 | 364 | 0 365 | 0 366 | -52.2 367 | 368 | 286284409 369 | false 370 | false 371 | 372 | 373 | Prop 374 | 375 | -1715.476 376 | -1460.049 377 | -21.581 378 | 379 | 380 | -0.1 381 | 0 382 | 39.197 383 | 384 | -2005550974 385 | false 386 | false 387 | 388 | 389 | Prop 390 | 391 | -1716.069 392 | -1459.198 393 | -21.465 394 | 395 | 396 | 0 397 | 0 398 | -51.802 399 | 400 | -2005550974 401 | false 402 | false 403 | 404 | 405 | Prop 406 | 407 | -1636.12 408 | -1397.938 409 | 18.285 410 | 411 | 412 | 0 413 | -178.062 414 | 36.865 415 | 416 | -248283675 417 | false 418 | false 419 | 420 | 421 | Prop 422 | 423 | -1639.362 424 | -1552.703 425 | -33.177 426 | 427 | 428 | 0 429 | 0 430 | -140.602 431 | 432 | 77593408 433 | false 434 | false 435 | 436 | 437 | Prop 438 | 439 | -1630.061 440 | -1634.534 441 | 18.516 442 | 443 | 444 | 0 445 | 0 446 | -140.002 447 | 448 | 430430733 449 | false 450 | false 451 | 452 | 453 | Prop 454 | 455 | -1856.877 456 | -1608.467 457 | 7.992 458 | 459 | 460 | 0 461 | 0 462 | 128.198 463 | 464 | -841899029 465 | false 466 | false 467 | 468 | 469 | Prop 470 | 471 | -1724.971 472 | -1638.627 473 | 7.934 474 | 475 | 476 | 0 477 | 0 478 | 39.998 479 | 480 | -841899029 481 | false 482 | false 483 | 484 | 485 | Prop 486 | 487 | -1832.655 488 | -1669.742 489 | 16.815 490 | 491 | 492 | 0 493 | 0 494 | -51.102 495 | 496 | 370845653 497 | false 498 | false 499 | 500 | 501 | Prop 502 | 503 | -1247.452 504 | -1764.836 505 | 17.821 506 | 507 | 508 | 0 509 | 0 510 | -50.2 511 | 512 | 370845653 513 | false 514 | false 515 | 516 | 517 | Prop 518 | 519 | -1192.902 520 | -1756.985 521 | 17.823 522 | 523 | 524 | 0 525 | 0 526 | 129.797 527 | 528 | 370845653 529 | false 530 | false 531 | 532 | 533 | Prop 534 | 535 | -1599.106 536 | -1493.454 537 | -22.817 538 | 539 | 540 | 0 541 | 0 542 | 66.699 543 | 544 | 234083239 545 | false 546 | false 547 | 548 | 549 | Prop 550 | 551 | -1002.06 552 | -1328.142 553 | 0.332 554 | 555 | 556 | 0 557 | 0 558 | 121.098 559 | 560 | -8801519 561 | false 562 | false 563 | 564 | 565 | Prop 566 | 567 | -1055.859 568 | -1236.964 569 | 0.244 570 | 571 | 572 | 0 573 | -0.1 574 | -60 575 | 576 | -922033000 577 | false 578 | false 579 | 580 | 581 | Prop 582 | 583 | -1102.551 584 | -1148.295 585 | 0.054 586 | 587 | 588 | 0 589 | 0 590 | 83.399 591 | 592 | 631705629 593 | false 594 | false 595 | 596 | 597 | Prop 598 | 599 | -1089.243 600 | -1190.516 601 | 0.154 602 | 603 | 604 | 0 605 | 0 606 | 151.398 607 | 608 | 631705629 609 | false 610 | false 611 | 612 | 613 | Prop 614 | 615 | -1135.144 616 | -1399.9 617 | 4.179 618 | 619 | 620 | 0 621 | 0 622 | -128.805 623 | 624 | 631705629 625 | false 626 | false 627 | 628 | 629 | Prop 630 | 631 | -1131.793 632 | -1394.576 633 | 4.211 634 | 635 | 636 | 0 637 | 0 638 | -114.205 639 | 640 | 631705629 641 | false 642 | false 643 | 644 | 645 | Prop 646 | 647 | -1130.102 648 | -1388.336 649 | 4.168 650 | 651 | 652 | 0 653 | 0 654 | -98.206 655 | 656 | 631705629 657 | false 658 | false 659 | 660 | 661 | Prop 662 | 663 | -1130.567 664 | -1381.893 665 | 4.053 666 | 667 | 668 | 0 669 | 0 670 | -71.206 671 | 672 | 631705629 673 | false 674 | false 675 | 676 | 677 | Prop 678 | 679 | -1149.458 680 | -1408.107 681 | 4.051 682 | 683 | 684 | 0 685 | 0 686 | -54.844 687 | 688 | 1560354582 689 | false 690 | false 691 | 692 | 693 | Prop 694 | 695 | -1170.489 696 | -1427.353 697 | 3.389 698 | 699 | 700 | 0 701 | 0 702 | -54.844 703 | 704 | 1560354582 705 | false 706 | false 707 | 708 | 709 | Prop 710 | 711 | -1159.083 712 | -1417.468 713 | 3.703 714 | 715 | 716 | 0 717 | 0 718 | -54.844 719 | 720 | 1560354582 721 | false 722 | false 723 | 724 | 725 | Prop 726 | 727 | -1160.272 728 | -1399.355 729 | 3.988 730 | 731 | 732 | 0 733 | 0 734 | -21.044 735 | 736 | 812376260 737 | false 738 | false 739 | 740 | 741 | Prop 742 | 743 | -1154.246 744 | -1395.142 745 | 4.109 746 | 747 | 748 | 0 749 | 0 750 | -21.044 751 | 752 | 812376260 753 | false 754 | false 755 | 756 | 757 | Prop 758 | 759 | -1148.072 760 | -1390.913 761 | 4.328 762 | 763 | 764 | 0 765 | 0 766 | -21.044 767 | 768 | 812376260 769 | false 770 | false 771 | 772 | 773 | Prop 774 | 775 | -1315.689 776 | -1579.218 777 | -31.559 778 | 779 | 780 | 0 781 | 0 782 | -62.382 783 | 784 | 456296435 785 | false 786 | false 787 | 788 | 789 | Prop 790 | 791 | -1397.205 792 | -1617.186 793 | -44.257 794 | 795 | 796 | -0.2 797 | 0 798 | -68.204 799 | 800 | 77593408 801 | false 802 | false 803 | 804 | 805 | Prop 806 | 807 | -1654.647 808 | -1534.247 809 | 17.71 810 | 811 | 812 | 0.37 813 | -179 814 | -51 815 | 816 | -248283675 817 | false 818 | false 819 | 820 | 821 | Prop 822 | 823 | -1131.058 824 | -1399.256 825 | 7.295 826 | 827 | 828 | -88.9 829 | -87.716 830 | -58.9 831 | 832 | 371888173 833 | false 834 | false 835 | 836 | 837 | Prop 838 | 839 | -1237.771 840 | -1472.923 841 | 12.688 842 | 843 | 844 | -9.981 845 | 14.447 846 | 1.268 847 | 848 | 812376260 849 | false 850 | false 851 | 852 | 853 | Prop 854 | 855 | -1244.411 856 | -1463.272 857 | 12.682 858 | 859 | 860 | -9.981 861 | 14.447 862 | 1.268 863 | 864 | 812376260 865 | false 866 | false 867 | 868 | 869 | Prop 870 | 871 | -1810.326 872 | -1533.466 873 | -33.09 874 | 875 | 876 | 0 877 | 0 878 | -52.001 879 | 880 | 1152255454 881 | false 882 | false 883 | 884 | 885 | Prop 886 | 887 | -816.331 888 | -1525.453 889 | 28.623 890 | 891 | 892 | 0 893 | 0 894 | 30.749 895 | 896 | 370845653 897 | false 898 | false 899 | 900 | 901 | Prop 902 | 903 | -839.009 904 | -1482.216 905 | 28.61 906 | 907 | 908 | 0 909 | 0 910 | 120.848 911 | 912 | 370845653 913 | false 914 | false 915 | 916 | 917 | Prop 918 | 919 | -875.168 920 | -1487.343 921 | 28.574 922 | 923 | 924 | 0 925 | 0 926 | 30.199 927 | 928 | -278438319 929 | false 930 | false 931 | 932 | 933 | Prop 934 | 935 | -885.868 936 | -1528.201 937 | 28.519 938 | 939 | 940 | 0 941 | 0 942 | -59.201 943 | 944 | -278438319 945 | false 946 | false 947 | 948 | 949 | Prop 950 | 951 | -1139.751 952 | -1092.088 953 | 1.893 954 | 955 | 956 | 8.3 957 | 0 958 | 30.2 959 | 960 | -278438319 961 | false 962 | false 963 | 964 | 965 | Prop 966 | 967 | -1236.305 968 | -1104.563 969 | 7.239 970 | 971 | 972 | 0 973 | -5.3 974 | 116.599 975 | 976 | 1568508953 977 | false 978 | false 979 | 980 | 981 | Prop 982 | 983 | -1231.787 984 | -1111.198 985 | 6.874 986 | 987 | 988 | 0 989 | -1.4 990 | 116.999 991 | 992 | -1813095810 993 | false 994 | false 995 | 996 | 997 | Prop 998 | 999 | -1216.258 1000 | -1113.872 1001 | 6.808 1002 | 1003 | 1004 | 0 1005 | 0 1006 | -64.401 1007 | 1008 | -544246051 1009 | false 1010 | false 1011 | 1012 | 1013 | Prop 1014 | 1015 | -921.447 1016 | -1466.697 1017 | -21.138 1018 | 1019 | 1020 | 0 1021 | 0 1022 | 30.098 1023 | 1024 | -1319394604 1025 | false 1026 | false 1027 | 1028 | 1029 | Prop 1030 | 1031 | -936.581 1032 | -1440.79 1033 | -21.138 1034 | 1035 | 1036 | 0 1037 | 0 1038 | 30.298 1039 | 1040 | 167558631 1041 | false 1042 | false 1043 | 1044 | 1045 | Prop 1046 | 1047 | -951.59 1048 | -1415.167 1049 | -21.138 1050 | 1051 | 1052 | 0 1053 | 0 1054 | 30.398 1055 | 1056 | 167558631 1057 | false 1058 | false 1059 | 1060 | 1061 | Prop 1062 | 1063 | -950.533 1064 | -1531.229 1065 | -20.231 1066 | 1067 | 1068 | 1.7 1069 | 0 1070 | 120 1071 | 1072 | 779917859 1073 | false 1074 | false 1075 | 1076 | 1077 | Prop 1078 | 1079 | -988.022 1080 | -1552.707 1081 | -19.53 1082 | 1083 | 1084 | 0 1085 | 0 1086 | 120.4 1087 | 1088 | 121220643 1089 | false 1090 | false 1091 | 1092 | 1093 | Prop 1094 | 1095 | -1252.916 1096 | -1546.348 1097 | -19.631 1098 | 1099 | 1100 | 0 1101 | 0 1102 | 117.8 1103 | 1104 | 167558631 1105 | false 1106 | false 1107 | 1108 | 1109 | Prop 1110 | 1111 | -1475.974 1112 | -1651.544 1113 | 19.37 1114 | 1115 | 1116 | 0 1117 | 0 1118 | -156.603 1119 | 1120 | -544198516 1121 | false 1122 | false 1123 | 1124 | 1125 | Prop 1126 | 1127 | -1508.413 1128 | -1665.552 1129 | 19.41 1130 | 1131 | 1132 | 0 1133 | 0 1134 | 23.298 1135 | 1136 | -1383314327 1137 | false 1138 | false 1139 | 1140 | 1141 | Prop 1142 | 1143 | -1543.533 1144 | -1664.58 1145 | 19.367 1146 | 1147 | 1148 | 0 1149 | 0 1150 | -67.603 1151 | 1152 | 370845653 1153 | false 1154 | false 1155 | 1156 | 1157 | Prop 1158 | 1159 | -1568.075 1160 | -1633.57 1161 | 19.36 1162 | 1163 | 1164 | 0 1165 | 0 1166 | -112.6 1167 | 1168 | 1034319592 1169 | false 1170 | false 1171 | 1172 | 1173 | Prop 1174 | 1175 | -1562.017 1176 | -1607.793 1177 | 19.37 1178 | 1179 | 1180 | 0 1181 | 0 1182 | 67.4 1183 | 1184 | -1383314327 1185 | false 1186 | false 1187 | 1188 | 1189 | Prop 1190 | 1191 | -1555.96 1192 | -1582.016 1193 | 19.31 1194 | 1195 | 1196 | 0 1197 | 0 1198 | 67.4 1199 | 1200 | 1034319592 1201 | false 1202 | false 1203 | 1204 | 1205 | Prop 1206 | 1207 | -1570.189 1208 | -1556.407 1209 | 19.375 1210 | 1211 | 1212 | 0 1213 | -0.2 1214 | 112.297 1215 | 1216 | 1034319592 1217 | false 1218 | false 1219 | 1220 | 1221 | Prop 1222 | 1223 | -1536.369 1224 | -1471.575 1225 | -30.636 1226 | 1227 | 1228 | 0 1229 | 0 1230 | 66.498 1231 | 1232 | 121220643 1233 | false 1234 | false 1235 | 1236 | 1237 | Prop 1238 | 1239 | -1519.649 1240 | -1479.1 1241 | -30.664 1242 | 1243 | 1244 | 0 1245 | 0 1246 | 49.698 1247 | 1248 | 1010190776 1249 | false 1250 | false 1251 | 1252 | 1253 | Prop 1254 | 1255 | -1301.2 1256 | -1750.117 1257 | 16.875 1258 | 1259 | 1260 | 0 1261 | 0 1262 | 129.797 1263 | 1264 | 1670637843 1265 | false 1266 | false 1267 | 1268 | 1269 | Prop 1270 | 1271 | -1467.203 1272 | -1543.917 1273 | 16.885 1274 | 1275 | 1276 | 0 1277 | 0 1278 | -51.6 1279 | 1280 | 600369530 1281 | false 1282 | false 1283 | 1284 | 1285 | Prop 1286 | 1287 | -1367.983 1288 | -1667.998 1289 | 16.885 1290 | 1291 | 1292 | 0 1293 | 0 1294 | 128.897 1295 | 1296 | 600369530 1297 | false 1298 | false 1299 | 1300 | 1301 | Prop 1302 | 1303 | -1252.814 1304 | -1807.685 1305 | -32.199 1306 | 1307 | 1308 | 1.4 1309 | 0 1310 | -139.766 1311 | 1312 | 779917859 1313 | false 1314 | false 1315 | 1316 | 1317 | Prop 1318 | 1319 | -1278.636 1320 | -1777.212 1321 | 16.922 1322 | 1323 | 1324 | 0 1325 | 0 1326 | 129.697 1327 | 1328 | -1425829439 1329 | false 1330 | false 1331 | 1332 | 1333 | Prop 1334 | 1335 | -1324.785 1336 | -1690.059 1337 | 16.9 1338 | 1339 | 1340 | 0 1341 | 0 1342 | -51.101 1343 | 1344 | 600369530 1345 | false 1346 | false 1347 | 1348 | 1349 | Prop 1350 | 1351 | -1429.275 1352 | -1559.304 1353 | 16.946 1354 | 1355 | 1356 | 0 1357 | 0 1358 | -51.601 1359 | 1360 | -8801519 1361 | false 1362 | false 1363 | 1364 | 1365 | Prop 1366 | 1367 | -1526.256 1368 | -1445.111 1369 | 16.929 1370 | 1371 | 1372 | 0 1373 | 0 1374 | -52.201 1375 | 1376 | 2077585881 1377 | false 1378 | false 1379 | 1380 | 1381 | Prop 1382 | 1383 | -1498.338 1384 | -1461.639 1385 | 16.89 1386 | 1387 | 1388 | 0 1389 | 0 1390 | 112.799 1391 | 1392 | -1989580080 1393 | false 1394 | false 1395 | 1396 | 1397 | Prop 1398 | 1399 | -1474.423 1400 | -1498.332 1401 | 16.939 1402 | 1403 | 1404 | 0 1405 | 0 1406 | -66.201 1407 | 1408 | -439356460 1409 | false 1410 | false 1411 | 1412 | 1413 | Prop 1414 | 1415 | -1390.86 1416 | -1607.772 1417 | 16.946 1418 | 1419 | 1420 | 0 1421 | 0 1422 | -51.601 1423 | 1424 | -1629331537 1425 | false 1426 | false 1427 | 1428 | 1429 | Prop 1430 | 1431 | -1379.884 1432 | -1621.62 1433 | 16.946 1434 | 1435 | 1436 | 0 1437 | 0 1438 | -51.601 1439 | 1440 | -1629331537 1441 | false 1442 | false 1443 | 1444 | 1445 | Prop 1446 | 1447 | -1629.131 1448 | -1322.03 1449 | -33.224 1450 | 1451 | 1452 | 0 1453 | 0 1454 | 39.779 1455 | 1456 | 779917859 1457 | false 1458 | false 1459 | 1460 | 1461 | Prop 1462 | 1463 | -1781.799 1464 | -1378.702 1465 | -33.316 1466 | 1467 | 1468 | -0.1 1469 | 0 1470 | 39.197 1471 | 1472 | 100090969 1473 | false 1474 | false 1475 | 1476 | 1477 | Prop 1478 | 1479 | -1804.581 1480 | -1306.518 1481 | -33.467 1482 | 1483 | 1484 | 0 1485 | 0.1 1486 | 129.197 1487 | 1488 | -944087079 1489 | false 1490 | false 1491 | 1492 | 1493 | Prop 1494 | 1495 | -1778.819 1496 | -1249.915 1497 | -33.467 1498 | 1499 | 1500 | 0 1501 | 0.1 1502 | 129.197 1503 | 1504 | 121220643 1505 | false 1506 | false 1507 | 1508 | 1509 | Prop 1510 | 1511 | -1718.201 1512 | -1236.658 1513 | -33.456 1514 | 1515 | 1516 | -0.1 1517 | 0 1518 | 39.197 1519 | 1520 | -944087079 1521 | false 1522 | false 1523 | 1524 | 1525 | Prop 1526 | 1527 | -1667.881 1528 | -1254.872 1529 | -33.329 1530 | 1531 | 1532 | -0.097 1533 | -0.026 1534 | 24.197 1535 | 1536 | 1010190776 1537 | false 1538 | false 1539 | 1540 | 1541 | Prop 1542 | 1543 | -1661.694 1544 | -1266.909 1545 | -33.288 1546 | 1547 | 1548 | -0.087 1549 | -0.05 1550 | 9.197 1551 | 1552 | 1010190776 1553 | false 1554 | false 1555 | 1556 | 1557 | Prop 1558 | 1559 | -1657.503 1560 | -1283.12 1561 | -33.261 1562 | 1563 | 1564 | 0.087 1565 | 0.05 1566 | -170.803 1567 | 1568 | 1010190776 1569 | false 1570 | false 1571 | 1572 | 1573 | Prop 1574 | 1575 | -1651.315 1576 | -1295.157 1577 | -33.256 1578 | 1579 | 1580 | 0.097 1581 | 0.026 1582 | -155.803 1583 | 1584 | 1010190776 1585 | false 1586 | false 1587 | 1588 | 1589 | Prop 1590 | 1591 | -1784.923 1592 | -1649.041 1593 | -33.077 1594 | 1595 | 1596 | 0 1597 | 0 1598 | -49.702 1599 | 1600 | -1319394604 1601 | false 1602 | false 1603 | 1604 | 1605 | Prop 1606 | 1607 | -1795.53 1608 | -1658.066 1609 | 16.64 1610 | 1611 | 1612 | -0.4 1613 | 0 1614 | -51.94 1615 | 1616 | -278438319 1617 | false 1618 | false 1619 | 1620 | 1621 | Prop 1622 | 1623 | -1338.939 1624 | -1536.487 1625 | -2.198 1626 | 1627 | 1628 | 17.5 1629 | 0 1630 | 125.098 1631 | 1632 | 1152255454 1633 | false 1634 | false 1635 | 1636 | 1637 | Prop 1638 | 1639 | -1445.224 1640 | -1588.261 1641 | 100.632 1642 | 1643 | 1644 | -18.2 1645 | -1 1646 | -54.8 1647 | 1648 | -779638860 1649 | false 1650 | false 1651 | 1652 | 1653 | Prop 1654 | 1655 | -1534.475 1656 | -1465.899 1657 | 94.867 1658 | 1659 | 1660 | 0.95 1661 | -28.803 1662 | -144.488 1663 | 1664 | -779638860 1665 | false 1666 | false 1667 | 1668 | 1669 | Prop 1670 | 1671 | -1503.978 1672 | -1420.36 1673 | 66.366 1674 | 1675 | 1676 | -1.024 1677 | 28.804 1678 | 36.053 1679 | 1680 | 1124049486 1681 | false 1682 | false 1683 | 1684 | 1685 | Prop 1686 | 1687 | -1511.983 1688 | -1326.338 1689 | 28.755 1690 | 1691 | 1692 | 0 1693 | 0 1694 | 127.8 1695 | 1696 | -779638860 1697 | false 1698 | false 1699 | 1700 | 1701 | Prop 1702 | 1703 | -1560.958 1704 | -1339.77 1705 | 28.716 1706 | 1707 | 1708 | 0 1709 | 0 1710 | 37.8 1711 | 1712 | -1585415771 1713 | false 1714 | false 1715 | 1716 | 1717 | Prop 1718 | 1719 | -1473.408 1720 | -1374.673 1721 | 38.207 1722 | 1723 | 1724 | -0.074 1725 | 28.798 1726 | 35.031 1727 | 1728 | -779638860 1729 | false 1730 | false 1731 | 1732 | 1733 | Prop 1734 | 1735 | -1268.714 1736 | -1487.129 1737 | -29.261 1738 | 1739 | 1740 | 17.5 1741 | 0 1742 | 125.098 1743 | 1744 | 1152255454 1745 | false 1746 | false 1747 | 1748 | 1749 | Prop 1750 | 1751 | -1504.518 1752 | -1537.191 1753 | 105.513 1754 | 1755 | 1756 | 29.2 1757 | 1 1758 | 125.098 1759 | 1760 | 2081936690 1761 | false 1762 | false 1763 | 1764 | 1765 | Prop 1766 | 1767 | -1220.149 1768 | -1452.961 1769 | 4.24 1770 | 1771 | 1772 | 0.21 1773 | -17.499 1774 | -145.569 1775 | 1776 | -2141728307 1777 | false 1778 | false 1779 | 1780 | 1781 | Prop 1782 | 1783 | -1217.343 1784 | -1451.032 1785 | 3.555 1786 | 1787 | 1788 | 0.2 1789 | -5.6 1790 | -145.602 1791 | 1792 | -2141728307 1793 | false 1794 | false 1795 | 1796 | 1797 | Prop 1798 | 1799 | -1226.871 1800 | -1102.794 1801 | 6.822 1802 | 1803 | 1804 | 0 1805 | 1.7 1806 | -33.221 1807 | 1808 | -255991917 1809 | false 1810 | false 1811 | 1812 | 1813 | Prop 1814 | 1815 | -1038.361 1816 | -1589.686 1817 | 30.198 1818 | 1819 | 1820 | 0 1821 | 0 1822 | -175.622 1823 | 1824 | 1539280675 1825 | false 1826 | false 1827 | 1828 | 1829 | Prop 1830 | 1831 | -1045.259 1832 | -1589.916 1833 | 30.248 1834 | 1835 | 1836 | 0 1837 | 0 1838 | 177.577 1839 | 1840 | 1074725917 1841 | false 1842 | false 1843 | 1844 | 1845 | Prop 1846 | 1847 | -1052.057 1848 | -1589.281 1849 | 30.22 1850 | 1851 | 1852 | 0 1853 | 0 1854 | 171.377 1855 | 1856 | 1323038052 1857 | false 1858 | false 1859 | 1860 | 1861 | Prop 1862 | 1863 | -1136.958 1864 | -1481.619 1865 | 30.215 1866 | 1867 | 1868 | 0 1869 | 0 1870 | -8.423 1871 | 1872 | -1784337804 1873 | false 1874 | false 1875 | 1876 | 1877 | Prop 1878 | 1879 | -1143.616 1880 | -1481.026 1881 | 30.234 1882 | 1883 | 1884 | 0 1885 | 0 1886 | -2.423 1887 | 1888 | -255991917 1889 | false 1890 | false 1891 | 1892 | 1893 | Prop 1894 | 1895 | -1150.564 1896 | -1481.267 1897 | 30.256 1898 | 1899 | 1900 | 0 1901 | 0 1902 | 5.077 1903 | 1904 | 1679589353 1905 | false 1906 | false 1907 | 1908 | 1909 | Prop 1910 | 1911 | -1396.043 1912 | -1607.421 1913 | 4.141 1914 | 1915 | 1916 | 0 1917 | 0 1918 | 52.8 1919 | 1920 | 381216035 1921 | false 1922 | false 1923 | 1924 | 1925 | Prop 1926 | 1927 | -1389.139 1928 | -1623.324 1929 | 4.17 1930 | 1931 | 1932 | 0 1933 | 0 1934 | 172.6 1935 | 1936 | 1439248273 1937 | false 1938 | false 1939 | 1940 | 1941 | Prop 1942 | 1943 | -950.527 1944 | -1531.115 1945 | -20.277 1946 | 1947 | 1948 | 1.6 1949 | 0 1950 | 119.7 1951 | 1952 | 100090969 1953 | false 1954 | false 1955 | 1956 | 1957 | Prop 1958 | 1959 | -1254.335 1960 | -1805.831 1961 | -32.312 1962 | 1963 | 1964 | 1.2 1965 | 0 1966 | -139.701 1967 | 1968 | 100090969 1969 | false 1970 | false 1971 | 1972 | 1973 | Prop 1974 | 1975 | -1629.049 1976 | -1322.077 1977 | -33.096 1978 | 1979 | 1980 | 0 1981 | 0 1982 | 39.299 1983 | 1984 | 100090969 1985 | false 1986 | false 1987 | 1988 | 1989 | Prop 1990 | 1991 | -1388.42 1992 | -1572.214 1993 | 82.69 1994 | 1995 | 1996 | -0.95 1997 | 18.203 1998 | 35.512 1999 | 2000 | 1124049486 2001 | false 2002 | false 2003 | 2004 | 2005 | Prop 2006 | 2007 | -1346.73 2008 | -1542.804 2009 | 65.916 2010 | 2011 | 2012 | -0.95 2013 | 18.203 2014 | 35.512 2015 | 2016 | 1124049486 2017 | false 2018 | false 2019 | 2020 | 2021 | Prop 2022 | 2023 | -1724.553 2024 | -1448.296 2025 | 39.434 2026 | 2027 | 2028 | 0 2029 | 0 2030 | -53.2 2031 | 2032 | -1734671262 2033 | false 2034 | false 2035 | 2036 | 2037 | Prop 2038 | 2039 | -869.399 2040 | -1483.972 2041 | 28.561 2042 | 2043 | 2044 | 0 2045 | 0 2046 | 30.399 2047 | 2048 | 644172892 2049 | false 2050 | false 2051 | 2052 | 2053 | 2054 | 2055 | 2056 | Zorg93 / drp4lyf 2057 | Stunt - Vespucci 2058 | The Vespucci race track from the Cunning Stunts DLC 2059 | 2060 | 2061 | -1191.495 2062 | -1264.73 2063 | 5.809 2064 | -336.2 2065 | 2066 | 2067 | -------------------------------------------------------------------------------- /[examples]/stunt-vinewood-downhill/__resource.lua: -------------------------------------------------------------------------------- 1 | local function object_entry(data) 2 | dependency 'object-loader' 3 | 4 | files(data) 5 | object_file(data) 6 | end 7 | 8 | object_entry 'map.xml' -------------------------------------------------------------------------------- /[examples]/stunt-zebra/__resource.lua: -------------------------------------------------------------------------------- 1 | local function object_entry(data) 2 | dependency 'object-loader' 3 | 4 | files(data) 5 | object_file(data) 6 | end 7 | 8 | object_entry 'map.xml' -------------------------------------------------------------------------------- /object-loader/__resource.lua: -------------------------------------------------------------------------------- 1 | client_script { 2 | 'object_loader.lua', 3 | 'xml.lua', 4 | } 5 | 6 | export 'getSpawns' -------------------------------------------------------------------------------- /object-loader/object_loader.lua: -------------------------------------------------------------------------------- 1 | local objectSets = {} 2 | local spawns = {} 3 | local currentParseName, currentParseResource 4 | 5 | function DeleteObject(object) 6 | return Citizen.InvokeNative(0x539E0AE3E6634B9F, Citizen.PointerValueIntInitialized(object)) 7 | end 8 | 9 | local function getSetLoader(sets) 10 | return function() 11 | -- request all the models 12 | for _,obj in ipairs(sets) do 13 | RequestModel(obj.hash) 14 | end 15 | 16 | -- make sure all the models are loaded 17 | while true do 18 | local loaded = true 19 | 20 | Citizen.Wait(0) 21 | 22 | for _,obj in ipairs(sets) do 23 | if not HasModelLoaded(obj.hash) then 24 | loaded = false 25 | break 26 | end 27 | end 28 | 29 | if loaded then 30 | break 31 | end 32 | end 33 | end 34 | end 35 | 36 | local function clearObjectSet(set) 37 | for _, obj in ipairs(set) do 38 | if obj.object then 39 | DeleteObject(obj.object) 40 | end 41 | 42 | SetModelAsNoLongerNeeded(obj.hash) 43 | end 44 | end 45 | 46 | -- object streamer 47 | local function isNearObject(p1, obj) 48 | local diff = obj.pos - p1 49 | local dist = (diff.x * diff.x) + (diff.y * diff.y) 50 | 51 | return (dist < (400 * 400)) 52 | end 53 | 54 | Citizen.CreateThread(function() 55 | while true do 56 | Citizen.Wait(100) 57 | 58 | -- spawn objects 59 | local pos = GetEntityCoords(GetPlayerPed(-1)) 60 | 61 | for k, sets in pairs(objectSets) do 62 | for i, obj in ipairs(sets) do 63 | local shouldHave = isNearObject(pos, obj) 64 | 65 | if shouldHave and not obj.object then 66 | local o = CreateObjectNoOffset(obj.hash, obj.pos, false --[[ create netobj? ]], false, false) 67 | 68 | if o then 69 | SetEntityRotation(o, obj.rot, 2, true) 70 | FreezeEntityPosition(o, true) 71 | 72 | obj.object = o 73 | end 74 | elseif not shouldHave and obj.object then 75 | DeleteObject(obj.object) 76 | obj.object = nil 77 | end 78 | 79 | if (i % 75) == 0 then 80 | Citizen.Wait(15) 81 | end 82 | end 83 | end 84 | end 85 | end) 86 | 87 | local function registerObjectSpawn(name, pos, heading) 88 | local t = { 89 | name = name, 90 | filename = currentParseName, 91 | owner = currentParseResource, 92 | spawnPos = { pos.x, pos.y, pos.z }, 93 | heading = heading 94 | } 95 | 96 | table.insert(spawns, t) 97 | 98 | TriggerEvent('objectLoader:onSpawnLoaded', t) 99 | end 100 | 101 | function getSpawns() 102 | return spawns 103 | end 104 | 105 | local function createObject(data) 106 | -- a no-op 107 | return data 108 | end 109 | 110 | local function parseIniObjectSet(data) 111 | local i = parseIni(data) 112 | local a = {} 113 | 114 | for k, v in pairs(i) do 115 | if v.Model then 116 | table.insert(a, createObject({ 117 | pos = vector3(tonumber(v.x), tonumber(v.y), tonumber(v.z) + tonumber(v.h)), 118 | rot = quat(tonumber(v.qx), tonumber(v.qy), tonumber(v.qz), tonumber(v.qw)), 119 | hash = tonumber(v.Model) 120 | })) 121 | end 122 | end 123 | 124 | registerObjectSpawn(currentParseName, vector3( 125 | tonumber(i.Player.x), 126 | tonumber(i.Player.y), 127 | tonumber(i.Player.z)), 128 | 0.0) 129 | 130 | return a 131 | end 132 | 133 | local function parseMapEditorXml(xml) 134 | local a = {} 135 | 136 | for _,obj in ipairs(xml.Objects[1].MapObject) do 137 | if obj.Type[1] == 'Prop' then 138 | table.insert(a, createObject({ 139 | pos = vector3(tonumber(obj.Position[1].X[1]), tonumber(obj.Position[1].Y[1]), tonumber(obj.Position[1].Z[1])), 140 | rot = vector3(tonumber(obj.Rotation[1].X[1]), tonumber(obj.Rotation[1].Y[1]), tonumber(obj.Rotation[1].Z[1])), 141 | hash = tonumber(obj.Hash[1]) 142 | })) 143 | end 144 | end 145 | 146 | if xml.Metadata then 147 | registerObjectSpawn(xml.Metadata[1].Name[1], vector3( 148 | tonumber(xml.Metadata[1].TeleportPoint[1].X[1]), 149 | tonumber(xml.Metadata[1].TeleportPoint[1].Y[1]), 150 | tonumber(xml.Metadata[1].TeleportPoint[1].Z[1])), 151 | tonumber(xml.Metadata[1].TeleportPoint[1].Heading[1])) 152 | end 153 | 154 | return a 155 | end 156 | 157 | local function parseSpoonerXml(xml) 158 | local a = {} 159 | 160 | for _,obj in ipairs(xml.Placement) do 161 | if obj.Type[1] == '3' then 162 | table.insert(a, createObject({ 163 | pos = vector3(tonumber(obj.PositionRotation[1].X[1]), tonumber(obj.PositionRotation[1].Y[1]), tonumber(obj.PositionRotation[1].Z[1])), 164 | rot = vector3(tonumber(obj.PositionRotation[1].Pitch[1]), tonumber(obj.PositionRotation[1].Roll[1]), tonumber(obj.PositionRotation[1].Yaw[1])), 165 | hash = tonumber(obj.ModelHash[1]) 166 | })) 167 | end 168 | end 169 | 170 | if xml.ReferenceCoords then 171 | registerObjectSpawn(currentParseName, vector3( 172 | tonumber(xml.ReferenceCoords[1].X[1]), 173 | tonumber(xml.ReferenceCoords[1].Y[1]), 174 | tonumber(xml.ReferenceCoords[1].Z[1])), 175 | 0.0) 176 | end 177 | 178 | return a 179 | end 180 | 181 | local function processXml(el) 182 | local v = {} 183 | local text 184 | 185 | for _,kid in ipairs(el.kids) do 186 | if kid.type == 'text' then 187 | text = kid.value 188 | elseif kid.type == 'element' then 189 | if not v[kid.name] then 190 | v[kid.name] = {} 191 | end 192 | 193 | table.insert(v[kid.name], processXml(kid)) 194 | end 195 | end 196 | 197 | v._ = el.attr 198 | 199 | if #el.attr == 0 and #el.el == 0 then 200 | v = text 201 | end 202 | 203 | return v 204 | end 205 | 206 | local function parseObjectSet(data) 207 | local xml = SLAXML:dom(data) 208 | 209 | if xml and xml.root then 210 | Citizen.Trace("parsed as xml\n") 211 | 212 | if xml.root.name == 'Map' then 213 | return parseMapEditorXml(processXml(xml.root)) 214 | elseif xml.root.name == 'SpoonerPlacements' then 215 | return parseSpoonerXml(processXml(xml.root)) 216 | end 217 | else 218 | -- ini maps don't work due to quaternions being weird 219 | --return parseIniObjectSet(data) 220 | return {} 221 | end 222 | end 223 | 224 | AddEventHandler('onClientResourceStart', function(name) 225 | local metaEntries = GetNumResourceMetadata(name, 'object_file') 226 | 227 | if not metaEntries then 228 | return 229 | end 230 | 231 | currentParseResource = name 232 | 233 | local sets = {} 234 | 235 | for i = 0, metaEntries - 1 do 236 | local fileName = GetResourceMetadata(name, 'object_file', i) 237 | local data = LoadResourceFile(name, fileName) 238 | 239 | currentParseName = fileName 240 | 241 | if data then 242 | table.merge(sets, parseObjectSet(data)) 243 | end 244 | end 245 | 246 | objectSets[name] = sets 247 | 248 | Citizen.CreateThread(getSetLoader(sets)) 249 | end) 250 | 251 | AddEventHandler('onClientResourceStop', function(name) 252 | if objectSets[name] then 253 | clearObjectSet(objectSets[name]) 254 | end 255 | end) 256 | 257 | -- mapmanager support 258 | local mapObjectSets = {} 259 | local mapObjectSet = 1 260 | 261 | AddEventHandler('getMapDirectives', function(add, resource) 262 | local function addMap(state, data) 263 | local set = parseObjectSet(data) 264 | 265 | Citizen.CreateThread(getSetLoader(set)) 266 | 267 | mapObjectSets[mapObjectSet] = set 268 | state.set = mapObjectSet 269 | 270 | mapObjectSet = mapObjectSet + 1 271 | end 272 | 273 | local function undoMap(state, arg) 274 | clearObjectSet(mapObjectSets[state.set]) 275 | mapObjectSets[state.set] = nil 276 | end 277 | 278 | add('object_data', addMap, undoMap) 279 | 280 | if not resource then 281 | return 282 | end 283 | 284 | -- if no owning resource was specified, don't add the object_file directive 285 | add('object_file', function(state, name) 286 | local data = LoadResourceFile(resource, name) 287 | 288 | addMap(state, data) 289 | end, undoMap) 290 | end) 291 | 292 | function table.merge(t1, t2) 293 | for k,v in ipairs(t2) do 294 | table.insert(t1, v) 295 | end 296 | end 297 | 298 | -- ini parser 299 | --[[ 300 | Copyright (c) 2012 Carreras Nicolas 301 | 302 | Permission is hereby granted, free of charge, to any person obtaining a copy 303 | of this software and associated documentation files (the "Software"), to deal 304 | in the Software without restriction, including without limitation the rights 305 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 306 | copies of the Software, and to permit persons to whom the Software is 307 | furnished to do so, subject to the following conditions: 308 | 309 | The above copyright notice and this permission notice shall be included in all 310 | copies or substantial portions of the Software. 311 | 312 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 313 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 314 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 315 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 316 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 317 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 318 | SOFTWARE. 319 | --]] 320 | --- Lua INI Parser. 321 | -- It has never been that simple to use INI files with Lua. 322 | --@author Dynodzzo 323 | 324 | --- Returns a table containing all the data from the INI file. 325 | --@param fileName The name of the INI file to parse. [string] 326 | --@return The table containing all data from the INI file. [table] 327 | function parseIni(fileData) 328 | local function lines(str) 329 | local t = {} 330 | local function helper(line) table.insert(t, line) return "" end 331 | helper((str:gsub("(.-)\r?\n", helper))) 332 | return t 333 | end 334 | 335 | local data = {}; 336 | local section; 337 | for _, line in ipairs(lines(fileData)) do 338 | local tempSection = line:match('^%[([^%[%]]+)%]$'); 339 | if(tempSection)then 340 | section = tonumber(tempSection) and tonumber(tempSection) or tempSection; 341 | data[section] = data[section] or {}; 342 | end 343 | local param, value = line:match('^([%w|_]+)%s-=%s-(.+)$'); 344 | if(param and value ~= nil)then 345 | if(tonumber(value))then 346 | value = tonumber(value); 347 | elseif(value == 'true')then 348 | value = true; 349 | elseif(value == 'false')then 350 | value = false; 351 | end 352 | if(tonumber(param))then 353 | param = tonumber(param); 354 | end 355 | data[section][param] = value; 356 | end 357 | end 358 | return data; 359 | end 360 | -------------------------------------------------------------------------------- /object-loader/xml.lua: -------------------------------------------------------------------------------- 1 | -- Optional parser that creates a flat DOM from parsing 2 | --[=====================================================================[ 3 | v0.7 Copyright © 2013-2014 Gavin Kistner ; MIT Licensed 4 | See http://github.com/Phrogz/SLAXML for details. 5 | --]=====================================================================] 6 | SLAXML = { 7 | VERSION = "0.7", 8 | _call = { 9 | pi = function(target,content) 10 | print(string.format("",target,content)) 11 | end, 12 | comment = function(content) 13 | print(string.format("",content)) 14 | end, 15 | startElement = function(name,nsURI,nsPrefix) 16 | io.write("<") 17 | if nsPrefix then io.write(nsPrefix,":") end 18 | io.write(name) 19 | if nsURI then io.write(" (ns='",nsURI,"')") end 20 | print(">") 21 | end, 22 | attribute = function(name,value,nsURI,nsPrefix) 23 | io.write(' ') 24 | if nsPrefix then io.write(nsPrefix,":") end 25 | io.write(name,'=',string.format('%q',value)) 26 | if nsURI then io.write(" (ns='",nsURI,"')") end 27 | io.write("\n") 28 | end, 29 | text = function(text) 30 | print(string.format(" text: %q",text)) 31 | end, 32 | closeElement = function(name,nsURI,nsPrefix) 33 | print(string.format("",name)) 34 | end, 35 | } 36 | } 37 | 38 | function SLAXML:parser(callbacks) 39 | return { _call=callbacks or self._call, parse=SLAXML.parse } 40 | end 41 | 42 | function SLAXML:parse(xml,options) 43 | if not options then options = { stripWhitespace=false } end 44 | 45 | -- Cache references for maximum speed 46 | local find, sub, gsub, char, push, pop, concat = string.find, string.sub, string.gsub, string.char, table.insert, table.remove, table.concat 47 | local first, last, match1, match2, match3, pos2, nsURI 48 | local unpack = unpack or table.unpack 49 | local pos = 1 50 | local state = "text" 51 | local textStart = 1 52 | local currentElement={} 53 | local currentAttributes={} 54 | local currentAttributeCt -- manually track length since the table is re-used 55 | local nsStack = {} 56 | local anyElement = false 57 | 58 | local utf8markers = { {0x7FF,192}, {0xFFFF,224}, {0x1FFFFF,240} } 59 | local function utf8(decimal) -- convert unicode code point to utf-8 encoded character string 60 | if decimal<128 then return char(decimal) end 61 | local charbytes = {} 62 | for bytes,vals in ipairs(utf8markers) do 63 | if decimal<=vals[1] then 64 | for b=bytes+1,2,-1 do 65 | local mod = decimal%64 66 | decimal = (decimal-mod)/64 67 | charbytes[b] = char(128+mod) 68 | end 69 | charbytes[1] = char(vals[2]+decimal) 70 | return concat(charbytes) 71 | end 72 | end 73 | end 74 | local entityMap = { ["lt"]="<", ["gt"]=">", ["amp"]="&", ["quot"]='"', ["apos"]="'" } 75 | local entitySwap = function(orig,n,s) return entityMap[s] or n=="#" and utf8(tonumber('0'..s)) or orig end 76 | local function unescape(str) return gsub( str, '(&(#?)([%d%a]+);)', entitySwap ) end 77 | 78 | local function finishText() 79 | if first>textStart and self._call.text then 80 | local text = sub(xml,textStart,first-1) 81 | if options.stripWhitespace then 82 | text = gsub(text,'^%s+','') 83 | text = gsub(text,'%s+$','') 84 | if #text==0 then text=nil end 85 | end 86 | if text then self._call.text(unescape(text)) end 87 | end 88 | end 89 | 90 | local function findPI() 91 | first, last, match1, match2 = find( xml, '^<%?([:%a_][:%w_.-]*) ?(.-)%?>', pos ) 92 | if first then 93 | finishText() 94 | if self._call.pi then self._call.pi(match1,match2) end 95 | pos = last+1 96 | textStart = pos 97 | return true 98 | end 99 | end 100 | 101 | local function findComment() 102 | first, last, match1 = find( xml, '^', pos ) 103 | if first then 104 | finishText() 105 | if self._call.comment then self._call.comment(match1) end 106 | pos = last+1 107 | textStart = pos 108 | return true 109 | end 110 | end 111 | 112 | local function nsForPrefix(prefix) 113 | if prefix=='xml' then return 'http://www.w3.org/XML/1998/namespace' end -- http://www.w3.org/TR/xml-names/#ns-decl 114 | for i=#nsStack,1,-1 do if nsStack[i][prefix] then return nsStack[i][prefix] end end 115 | error(("Cannot find namespace for prefix %s"):format(prefix)) 116 | end 117 | 118 | local function startElement() 119 | anyElement = true 120 | first, last, match1 = find( xml, '^<([%a_][%w_.-]*)', pos ) 121 | if first then 122 | currentElement[2] = nil -- reset the nsURI, since this table is re-used 123 | currentElement[3] = nil -- reset the nsPrefix, since this table is re-used 124 | finishText() 125 | pos = last+1 126 | first,last,match2 = find(xml, '^:([%a_][%w_.-]*)', pos ) 127 | if first then 128 | currentElement[1] = match2 129 | currentElement[3] = match1 -- Save the prefix for later resolution 130 | match1 = match2 131 | pos = last+1 132 | else 133 | currentElement[1] = match1 134 | for i=#nsStack,1,-1 do if nsStack[i]['!'] then currentElement[2] = nsStack[i]['!']; break end end 135 | end 136 | currentAttributeCt = 0 137 | push(nsStack,{}) 138 | return true 139 | end 140 | end 141 | 142 | local function findAttribute() 143 | first, last, match1 = find( xml, '^%s+([:%a_][:%w_.-]*)%s*=%s*', pos ) 144 | if first then 145 | pos2 = last+1 146 | first, last, match2 = find( xml, '^"([^<"]*)"', pos2 ) -- FIXME: disallow non-entity ampersands 147 | if first then 148 | pos = last+1 149 | match2 = unescape(match2) 150 | else 151 | first, last, match2 = find( xml, "^'([^<']*)'", pos2 ) -- FIXME: disallow non-entity ampersands 152 | if first then 153 | pos = last+1 154 | match2 = unescape(match2) 155 | end 156 | end 157 | end 158 | if match1 and match2 then 159 | local currentAttribute = {match1,match2} 160 | local prefix,name = string.match(match1,'^([^:]+):([^:]+)$') 161 | if prefix then 162 | if prefix=='xmlns' then 163 | nsStack[#nsStack][name] = match2 164 | else 165 | currentAttribute[1] = name 166 | currentAttribute[4] = prefix 167 | end 168 | else 169 | if match1=='xmlns' then 170 | nsStack[#nsStack]['!'] = match2 171 | currentElement[2] = match2 172 | end 173 | end 174 | currentAttributeCt = currentAttributeCt + 1 175 | currentAttributes[currentAttributeCt] = currentAttribute 176 | return true 177 | end 178 | end 179 | 180 | local function findCDATA() 181 | first, last, match1 = find( xml, '^', pos ) 182 | if first then 183 | finishText() 184 | if self._call.text then self._call.text(match1) end 185 | pos = last+1 186 | textStart = pos 187 | return true 188 | end 189 | end 190 | 191 | local function closeElement() 192 | first, last, match1 = find( xml, '^%s*(/?)>', pos ) 193 | if first then 194 | state = "text" 195 | pos = last+1 196 | textStart = pos 197 | 198 | -- Resolve namespace prefixes AFTER all new/redefined prefixes have been parsed 199 | if currentElement[3] then currentElement[2] = nsForPrefix(currentElement[3]) end 200 | if self._call.startElement then self._call.startElement(unpack(currentElement)) end 201 | if self._call.attribute then 202 | for i=1,currentAttributeCt do 203 | if currentAttributes[i][4] then currentAttributes[i][3] = nsForPrefix(currentAttributes[i][4]) end 204 | self._call.attribute(unpack(currentAttributes[i])) 205 | end 206 | end 207 | 208 | if match1=="/" then 209 | pop(nsStack) 210 | if self._call.closeElement then self._call.closeElement(unpack(currentElement)) end 211 | end 212 | return true 213 | end 214 | end 215 | 216 | local function findElementClose() 217 | first, last, match1, match2 = find( xml, '^', pos ) 218 | if first then 219 | nsURI = nil 220 | for i=#nsStack,1,-1 do if nsStack[i]['!'] then nsURI = nsStack[i]['!']; break end end 221 | else 222 | first, last, match2, match1 = find( xml, '^', pos ) 223 | if first then nsURI = nsForPrefix(match2) end 224 | end 225 | if first then 226 | finishText() 227 | if self._call.closeElement then self._call.closeElement(match1,nsURI) end 228 | pos = last+1 229 | textStart = pos 230 | pop(nsStack) 231 | return true 232 | end 233 | end 234 | 235 | while pos<#xml do 236 | if state=="text" then 237 | if not (findPI() or findComment() or findCDATA() or findElementClose()) then 238 | if startElement() then 239 | state = "attributes" 240 | else 241 | first, last = find( xml, '^[^<]+', pos ) 242 | pos = (first and last or pos) + 1 243 | end 244 | end 245 | elseif state=="attributes" then 246 | if not findAttribute() then 247 | if not closeElement() then 248 | error("Was in an element and couldn't find attributes or the close.") 249 | end 250 | end 251 | end 252 | end 253 | 254 | if not anyElement then error("Parsing did not discover any elements") end 255 | if #nsStack > 0 then error("Parsing ended with unclosed elements") end 256 | end 257 | 258 | function SLAXML:dom(xml,opts) 259 | if not opts then opts={} end 260 | local rich = not opts.simple 261 | local push, pop = table.insert, table.remove 262 | local stack = {} 263 | local doc = { type="document", name="#doc", kids={} } 264 | local current = doc 265 | local builder = SLAXML:parser{ 266 | startElement = function(name,nsURI) 267 | local el = { type="element", name=name, kids={}, el=rich and {} or nil, attr={}, nsURI=nsURI, parent=rich and current or nil } 268 | if current==doc then 269 | if doc.root then error(("Encountered element '%s' when the document already has a root '%s' element"):format(name,doc.root.name)) end 270 | doc.root = el 271 | end 272 | push(current.kids,el) 273 | if current.el then push(current.el,el) end 274 | current = el 275 | push(stack,el) 276 | end, 277 | attribute = function(name,value,nsURI) 278 | if not current or current.type~="element" then error(("Encountered an attribute %s=%s but I wasn't inside an element"):format(name,value)) end 279 | local attr = {type='attribute',name=name,nsURI=nsURI,value=value,parent=rich and current or nil} 280 | if rich then current.attr[name] = value end 281 | push(current.attr,attr) 282 | end, 283 | closeElement = function(name) 284 | if current.name~=name or current.type~="element" then error(("Received a close element notification for '%s' but was inside a '%s' %s"):format(name,current.name,current.type)) end 285 | pop(stack) 286 | current = stack[#stack] 287 | end, 288 | text = function(value) 289 | if current.type~='document' then 290 | if current.type~="element" then error(("Received a text notification '%s' but was inside a %s"):format(value,current.type)) end 291 | push(current.kids,{type='text',name='#text',value=value,parent=rich and current or nil}) 292 | end 293 | end, 294 | comment = function(value) 295 | push(current.kids,{type='comment',name='#comment',value=value,parent=rich and current or nil}) 296 | end, 297 | pi = function(name,value) 298 | push(current.kids,{type='pi',name=name,value=value,parent=rich and current or nil}) 299 | end 300 | } 301 | builder:parse(xml,opts) 302 | return doc 303 | end 304 | return SLAXML -------------------------------------------------------------------------------- /object-teleports/__resource.lua: -------------------------------------------------------------------------------- 1 | client_script 'client.lua' 2 | server_script 'server.lua' 3 | 4 | dependency 'object-loader' -------------------------------------------------------------------------------- /object-teleports/client.lua: -------------------------------------------------------------------------------- 1 | local spawns = {} 2 | 3 | local function chatMessage(msg) 4 | TriggerEvent('chatMessage', '', {0, 0, 0}, msg) 5 | end 6 | 7 | local function chatMessageYou(msg) 8 | TriggerEvent('chatMessage', 'You', {0, 250, 120}, msg) 9 | end 10 | 11 | local cancelFlag = false 12 | 13 | RegisterNetEvent('objectTeleports:handleTeleportCommand') 14 | 15 | AddEventHandler('objectTeleports:handleTeleportCommand', function(command) 16 | if #spawns == 0 then 17 | spawns = exports['object-loader']:getSpawns() 18 | end 19 | 20 | chatMessageYou('/mtp ' .. command) 21 | 22 | if command:len() == 0 then 23 | cancelFlag = false 24 | 25 | Citizen.CreateThread(function() 26 | if #spawns == 0 then 27 | chatMessage('^1No Object Loader Teleports are ^6loaded :(') 28 | return 29 | end 30 | 31 | chatMessage('^1Object Loader Teleports') 32 | 33 | for i, spawn in ipairs(spawns) do 34 | Citizen.Wait(750) 35 | 36 | if cancelFlag then 37 | cancelFlag = false 38 | break 39 | end 40 | 41 | chatMessage('^3/mtp ' .. i .. ': ^2' .. spawn.name) 42 | end 43 | end) 44 | else 45 | local idx = tonumber(command) 46 | 47 | if spawns[idx] then 48 | SetEntityCoords(GetPlayerPed(-1), spawns[idx].spawnPos[1], spawns[idx].spawnPos[2], spawns[idx].spawnPos[3]) 49 | SetEntityHeading(GetPlayerPed(-1), spawns[idx].heading) 50 | 51 | chatMessage('Teleported to ^3' .. spawns[idx].name) 52 | 53 | cancelFlag = true 54 | else 55 | chatMessage('Invalid teleport: ' .. tostring(idx)) 56 | end 57 | end 58 | end) 59 | 60 | AddEventHandler('objectLoader:onSpawnLoaded', function(data) 61 | if #spawns == 0 then 62 | spawns = exports['object-loader']:getSpawns() 63 | end 64 | 65 | table.insert(spawns, data) 66 | end) -------------------------------------------------------------------------------- /object-teleports/server.lua: -------------------------------------------------------------------------------- 1 | AddEventHandler('chatMessage', function(source, name, message) 2 | if message:sub(1, 4) == '/mtp' then 3 | TriggerClientEvent('objectTeleports:handleTeleportCommand', source, message:sub(5)) 4 | CancelEvent() 5 | end 6 | end) --------------------------------------------------------------------------------