Sama podmiana części skryptu nic nie daje, sprawdziłem. Owszem, to zapewne naiwne, ale kto nie próbuje..no.
local places = {
[“exit_as”] = { sid = 9803, lv = 28719, gv = 1758, pos = {-317.23675537109,-26.327833175659,55.278633117676}, view = {0.0,0.0,0.0}, lvl = “l07_military”},
[“exit_as2”] = { sid = 9814, lv = 66343, gv = 1786, pos = {-274.62121582031,-27.297189712524,239.00979614258}, view = {0.0,0.0,0.0}, lvl = “l07_military”},
[“exit_as3”] = { sid = 9815, lv = 273147, gv = 1821, pos = {-33.368682861328,-20.897382736206,379.58074951172}, view = {0.0,0.0,0.0}, lvl = “l07_military”},
[“exit_as4”] = { sid = 9816, lv = 83694, gv = 1852, pos = {-243.89454650879,-0.28634393215179,435.28894042969}, view = {0.0,0.0,0.0}, lvl = “l07_military”},
[“exit_bunker”] = { sid = 9801, lv = 7807, gv = 2773, pos = {8.3457946777344,-23.525426864624,19.003190994263}, view = {0.0,0.0,0.0}, lvl = “l10u_bunker”},
[“exit_svalka”] = { sid = 9802, lv = 127101, gv = 351, pos = {-77.325019836426,-3.660080909729,195.34251403809}, view = {0.0,0.0,0.0}, lvl = “l02_garbage”},
[“exit_svalka2”] = { sid = 9822, lv = 1201, gv = 260, pos = {-289.04534912109,-6.6783475875854,-178.82406616211}, view = {0.0,0.0,0.0}, lvl = “l02_garbage”},
[“exit_svalka3”] = { sid = 9823, lv = 344517, gv = 401, pos = {200.77691650391,-0.638019323349,-145.20561218262}, view = {0.0,0.0,0.0}, lvl = “l02_garbage”},
[“exit_svalka4”] = { sid = 9861, lv = 284570, gv = 374, pos = {122.61166381836,-4.2376079559326,153.47959899902}, view = {0.0,0.0,0.0}, lvl = “l02_garbage”},
[“exit_svalka5”] = { sid = 9862, lv = 324917, gv = 384, pos = {173.82795715332,-0.30577194690704,51.149074554443}, view = {0.0,0.0,0.0}, lvl = “l02_garbage”},
[“exit_svalka6”] = { sid = 9863, lv = 311456, gv = 385, pos = {97.819366455078,15.575645446777,31.107891082764}, view = {0.0,0.0,0.0}, lvl = “l02_garbage”},
[“exit_svalka7”] = { sid = 9864, lv = 166216, gv = 332, pos = {-49.738338470459,20.034204483032,115.88290405273}, view = {0.0,0.0,0.0}, lvl = “l02_garbage”},
[“exit_svalka8”] = { sid = 9865, lv = 2848, gv = 314, pos = {-277.18438720703,0.42264106869698,26.608871459961}, view = {0.0,0.0,0.0}, lvl = “l02_garbage”},
[“exit_svalka9”] = { sid = 9866, lv = 27161, gv = 308, pos = {-204.31503295898,0.77477610111237,-14.08620929718}, view = {0.0,0.0,0.0}, lvl = “l02_garbage”},
[“exit_svalka10”] = { sid = 9867, lv = 117566, gv = 299, pos = {-43.285057067871,22.38338470459,-109.06379699707}, view = {0.0,0.0,0.0}, lvl = “l02_garbage”},
[“exit_svalka11”] = { sid = 9868, lv = 123627, gv = 268, pos = {-82.571281433105,-2.6017231941223,-208.38046264648}, view = {0.0,0.0,0.0}, lvl = “l02_garbage”},
[“exit_svalka12”] = { sid = 9869, lv = 272734, gv = 263, pos = {108.47253417969,-2.2334003448486,-264.66119384766}, view = {0.0,0.0,0.0}, lvl = “l02_garbage”},
[“exit_pripyat”] = { sid = 9804, lv = 260478, gv = 2219, pos = {190.84159851074,2.8052725791931,212.05661010742}, view = {0.0,0.0,0.0}, lvl = “l11_pripyat”},
[“exit_pripyat2”] = { sid = 9820, lv = 7817, gv = 2216, pos = {-112.93630981445,2.8031325340271,97.108512878418}, view = {0.0,0.0,0.0}, lvl = “l11_pripyat”},
[“exit_x18”] = { sid = 9805, lv = 4086, gv = 1155, pos = {5.0796270370483,-12.429841995239,15.65408706665}, view = {0.0,0.0,0.0}, lvl = “l04u_labx18”},
[“exit_td”] = { sid = 9824, lv = 212105, gv = 1025, pos = {31.025503158569,-2.9186296463013,-18.474792480469}, view = {0.0,0.0,0.0}, lvl = “l04_darkvalley”},
[“exit_td2”] = { sid = 9825, lv = 377579, gv = 938, pos = {177.20614624023,6.6501698493958,-368.2509765625}, view = {0.0,0.0,0.0}, lvl = “l04_darkvalley”},
[“exit_kordon”] = { sid = 9826, lv = 557888, gv = 245, pos = {288.75579833984,6.6381821632385,334.9274597168}, view = {0.0,0.0,0.0}, lvl = “l01_escape”},
[“exit_kordon2”] = { sid = 9827, lv = 220208, gv = 16, pos = {-56.72008895874,-29.649417877197,-352.75286865234}, view = {0.0,0.0,0.0}, lvl = “l01_escape”},
[“exit_kordon3”] = { sid = 9848, lv = 314641, gv = 198, pos = {33.526428222656,4.8442959785461,406.35510253906}, view = {0.0,0.0,0.0}, lvl = “l01_escape”},
[“exit_kordon4”] = { sid = 9849, lv = 326234, gv = 97, pos = {43.707790374756,1.604367017746,157.83784484863}, view = {0.0,0.0,0.0}, lvl = “l01_escape”},
[“exit_kordon5”] = { sid = 9850, lv = 346954, gv = 97, pos = {59.635650634766,19.672622680664,156.50126647949}, view = {0.0,0.0,0.0}, lvl = “l01_escape”},
[“exit_kordon6”] = { sid = 9851, lv = 479316, gv = 242, pos = {176.90881347656,6.2265067100525,274.12582397461}, view = {0.0,0.0,0.0}, lvl = “l01_escape”},
[“exit_kordon7”] = { sid = 9852, lv = 418761, gv = 115, pos = {116.21976470947,-7.5939545631409,-16.879535675049}, view = {0.0,0.0,0.0}, lvl = “l01_escape”},
[“exit_kordon8”] = { sid = 9853, lv = 71846, gv = 30, pos = {-178.17098999023,-29.790063858032,-355.4208984375}, view = {0.0,0.0,0.0}, lvl = “l01_escape”},
[“exit_kordon9”] = { sid = 9854, lv = 116591, gv = 19, pos = {-138.1682434082,-25.440311431885,-356.09561157227}, view = {0.0,0.0,0.0}, lvl = “l01_escape”},
[“exit_kordon10”] = { sid = 9855, lv = 46406, gv = 38, pos = {-206.31811523438,-36.486312866211,-275.36505126953}, view = {0.0,0.0,0.0}, lvl = “l01_escape”},
[“exit_kordon11”] = { sid = 9856, lv = 34087, gv = 47, pos = {-218.33445739746,-19.930738449097,-167.60050964355}, view = {0.0,0.0,0.0}, lvl = “l01_escape”},
[“exit_kordon12”] = { sid = 9857, lv = 45951, gv = 58, pos = {-207.27334594727,-22.535316467285,-128.54507446289}, view = {0.0,0.0,0.0}, lvl = “l01_escape”},
[“exit_kordon13”] = { sid = 9858, lv = 11502, gv = 67, pos = {-246.82745361328,-14.313711166382,-17.025833129883}, view = {0.0,0.0,0.0}, lvl = “l01_escape”},
[“exit_kordon14”] = { sid = 9859, lv = 143574, gv = 73, pos = {-112.90689849854,-8.191520690918,7.4986095428467}, view = {0.0,0.0,0.0}, lvl = “l01_escape”},
[“exit_kordon15”] = { sid = 9860, lv = 274973, gv = 108, pos = {-1.5780007839203,-17.687986373901,-152.26568603516}, view = {0.0,0.0,0.0}, lvl = “l01_escape”},
[“exit_radar”] = { sid = 9806, lv = 93230, gv = 2081, pos = {351.03564453125,-45.688995361328,-201.36804199219}, view = {0.0,0.0,0.0}, lvl = “l10_radar”},
[“exit_radar2”] = { sid = 9811, lv = 67978, gv = 1930, pos = {304.68270874023,-39.390411376953,-25.789834976196}, view = {0.0,0.0,0.0}, lvl = “l10_radar”},
[“exit_radar3”] = { sid = 9812, lv = 14611, gv = 2013, pos = {14.053562164307,-1.2424700260162,41.381050109863}, view = {0.0,0.0,0.0}, lvl = “l10_radar”},
[“exit_radar4”] = { sid = 9813, lv = 6439, gv = 1960, pos = {-12.000325202942,0.37741497159004,-67.812171936035}, view = {0.0,0.0,0.0}, lvl = “l10_radar”},
[“exit_undergraund”] = { sid = 9810, lv = 2505, gv = 745, pos = {-84.987205505371,-16.462963104248,-60.738975524902}, view = {0.0,0.0,0.0}, lvl = “l03_agr_underground”},
[“exit_bar”] = { sid = 9821, lv = 45474, gv = 1188, pos = {193.61143493652,0.097166806459427,71.526657104492}, view = {0.0,0.0,0.0}, lvl = “l05_bar”},
[“exit_bar2”] = { sid = 9842, lv = 39883, gv = 1204, pos = {175.31533813477,-0.0002819299697876,145.91943359375}, view = {0.0,0.0,0.0}, lvl = “l05_bar”},
[“exit_bar3”] = { sid = 9843, lv = 47206, gv = 1270, pos = {198.24176025391,3.271665096283,-77.252685546875}, view = {0.0,0.0,0.0}, lvl = “l05_bar”},
[“exit_bar4”] = { sid = 9844, lv = 59366, gv = 1277, pos = {232.64491271973,5.1447978019714,-113.61502838135}, view = {0.0,0.0,0.0}, lvl = “l05_bar”},
[“exit_bar5”] = { sid = 9845, lv = 68763, gv = 1274, pos = {276.64755249023,0.055086404085159,-66.742523193359}, view = {0.0,0.0,0.0}, lvl = “l05_bar”},
[“exit_bar6”] = { sid = 9846, lv = 35860, gv = 1238, pos = {128.80438232422,-4.8249382972717,16.76756477356}, view = {0.0,0.0,0.0}, lvl = “l05_bar”},
[“exit_bar7”] = { sid = 9847, lv = 33903, gv = 1239, pos = {116.09830474854,-5.3052234649658,12.649393081665}, view = {0.0,0.0,0.0}, lvl = “l05_bar”},
[“exit_agroprom”] = { sid = 9828, lv = 428448, gv = 498, pos = {253.95002746582,-0.20055566728115,76.619018554688}, view = {0.0,0.0,0.0}, lvl = “l03_agroprom”},
[“exit_agroprom2”] = { sid = 9829, lv = 117939, gv = 523, pos = {-122.60626983643,10.350003242493,164.23361206055}, view = {0.0,0.0,0.0}, lvl = “l03_agroprom”},
[“exit_agroprom3”] = { sid = 9830, lv = 103987, gv = 621, pos = {-135.0357208252,4.9933753013611,-196.9232635498}, view = {0.0,0.0,0.0}, lvl = “l03_agroprom”},
[“exit_yantar1”] = { sid = 9831, lv = 6635, gv = 1486, pos = {-98.555587768555,-12.03422164917,-263.20428466797}, view = {0.0,0.0,0.0}, lvl = “l08_yantar”},
[“exit_yantar2”] = { sid = 9832, lv = 22009, gv = 1454, pos = {-49.516319274902,-12.687213897705,-263.55654907227}, view = {0.0,0.0,0.0}, lvl = “l08_yantar”},
[“exit_yantar3”] = { sid = 9833, lv = 85543, gv = 1440, pos = {87.165092468262,1.5326626300812,-137.15473937988}, view = {0.0,0.0,0.0}, lvl = “l08_yantar”},
[“exit_yantar4”] = { sid = 9834, lv = 98895, gv = 1520, pos = {110.79859924316,0.51710104942322,67.085777282715}, view = {0.0,0.0,0.0}, lvl = “l08_yantar”},
[“exit_yantar5”] = { sid = 9835, lv = 93237, gv = 1515, pos = {102.05886077881,-0.055661827325821,-38.264953613281}, view = {0.0,0.0,0.0}, lvl = “l08_yantar”},
[“exit_yantar6”] = { sid = 9836, lv = 50739, gv = 1505, pos = {23.551870346069,-3.417268037796,-50.092147827148}, view = {0.0,0.0,0.0}, lvl = “l08_yantar”},
[“exit_yantar7”] = { sid = 9837, lv = 57034, gv = 1445, pos = {35.566432952881,0.036594957113266,19.930288314819}, view = {0.0,0.0,0.0}, lvl = “l08_yantar”},
[“exit_yantar8”] = { sid = 9838, lv = 87168, gv = 1514, pos = {90.726051330566,0.028770864009857,-2.0428421497345}, view = {0.0,0.0,0.0}, lvl = “l08_yantar”},
[“exit_yantar9”] = { sid = 9839, lv = 38250, gv = 1525, pos = {-2.272828578949,0.31553617119789,-12.611492156982}, view = {0.0,0.0,0.0}, lvl = “l08_yantar”},
[“exit_yantar10”] = { sid = 9840, lv = 39736, gv = 1525, pos = {0.41521853208542,20.732145309448,-11.2778673172}, view = {0.0,0.0,0.0}, lvl = “l08_yantar”},
[“exit_yantar11”] = { sid = 9841, lv = 53157, gv = 1480, pos = {28.687835693359,-5.943422794342,-272.9033203125}, view = {0.0,0.0,0.0}, lvl = “l08_yantar”},
[“exit_dt1”] = { sid = 9870, lv = 15216, gv = 1391, pos = {-236.99816894531,9.3585262298584,56.257476806641}, view = {0.0,0.0,0.0}, lvl = “l06_rostok”},
[“exit_dt2”] = { sid = 9871, lv = 8119, gv = 1382, pos = {-254.47462463379,-5.8917918205261,88.748420715332}, view = {0.0,0.0,0.0}, lvl = “l06_rostok”},
[“exit_dt3”] = { sid = 9872, lv = 4658, gv = 1379, pos = {-268.44509887695,-6.0012273788452,106.45835113525}, view = {0.0,0.0,0.0}, lvl = “l06_rostok”},
[“exit_dt4”] = { sid = 9873, lv = 7269, gv = 1338, pos = {-282.68493652344,-0.0055593848228455,203.75721740723}, view = {0.0,0.0,0.0}, lvl = “l06_rostok”},
[“exit_dt5”] = { sid = 9874, lv = 32043, gv = 1329, pos = {-173.43870544434,-0.0011672079563141,192.25354003906}, view = {0.0,0.0,0.0}, lvl = “l06_rostok”},
[“exit_dt6”] = { sid = 9875, lv = 38957, gv = 1328, pos = {-149.55770874023,0.096051603555679,179.93653869629}, view = {0.0,0.0,0.0}, lvl = “l06_rostok”},
[“exit_dt7”] = { sid = 9876, lv = 22437, gv = 1370, pos = {-217.82315063477,1.935809969902,88.06103515625}, view = {0.0,0.0,0.0}, lvl = “l06_rostok”},
[“exit_dt8”] = { sid = 9877, lv = 32382, gv = 1322, pos = {-169.39688110352,-0.0033434927463531,82.040466308594}, view = {0.0,0.0,0.0}, lvl = “l06_rostok”},
[“exit_dt9”] = { sid = 9878, lv = 36070, gv = 1321, pos = {-159.36485290527,-0.0026704967021942,99.839752197266}, view = {0.0,0.0,0.0}, lvl = “l06_rostok”},
[“exit_dt10”] = { sid = 9879, lv = 27318, gv = 1326, pos = {-192.9693145752,-0.0026823878288269,119.04988098145}, view = {0.0,0.0,0.0}, lvl = “l06_rostok”},
[“exit_dt11”] = { sid = 9880, lv = 46578, gv = 1421, pos = {-89.581573486328,3.1074571609497,148.33610534668}, view = {0.0,0.0,0.0}, lvl = “l06_rostok”},
[“exit_peshera”] = { sid = 17005, lv = 32280, gv = 2880, pos = {-0.06784837692976,-2.0694215297699,-12.294366836548}, view = {0.0,0.0,0.0}, lvl = “peshera”},
[“exit_peshera1”] = { sid = 17006, lv = 18736, gv = 47, pos = {-241.71829223633,-16.903062820435,-155.92127990723}, view = {0.0,0.0,0.0}, lvl = “l01_escape”},
[“exit_to_stancia21”] = { sid = 8955, lv = 76262, gv = 2573, pos = {210.38436889648,79.390335083008,120.03535461426}, view = {0.0,0.0,0.0}, lvl = “l12_stancia_2”},
– [“exit_to_sarcofag”] = { sid = 8377, lv = 6321, gv = 2417, pos = {69.901214599609,67.818977355957,19.644428253174}, view = {0.0,0.0,0.0}, lvl = “l12u_sarcofag”},
– [“exit_to_red”] = { sid = 1111111, lv = 15246, gv = 3248, pos = {-80.638557434082,0.884406089782715,-18.9518051147461}, view = {0.0,0.0,0.0}, lvl = “red_forest”},
– [“exit_to_brinlab”] = { sid = 1111112, lv = 7244, gv = 1543, pos = {-42.9353294372559,27.1337795257568,-10.4652757644653}, view = {0.0,0.0,0.0}, lvl = “l08u_brainlab”},
– [“exit_to_war”] = { sid = 1111113, lv = 51, gv = 3153, pos = {-37.473274230957,-11.9826965332031,-66.3354949951172}, view = {0.0,0.0,0.0}, lvl = “warlab”},
– [“exit_to_lima”] = { sid = 1111114, lv = 3243, gv = 2993, pos = {-50.2578582763672,-4.99607086181641,-144.46696472168}, view = {0.0,0.0,0.0}, lvl = “limansk”},
– [“exit_to_gener”] = { sid = 1111115, lv = 202321, gv = 3096, pos = {-115.161407470703,36.7281799316406,-468.661712646484}, view = {0.0,0.0,0.0}, lvl = “generators”},
– [“exit_to_village”] = { sid = 1111116, lv = 35619, gv = 3332, pos = {72.7787322998047,2.49272060394287,15.3722648620605}, view = {0.0,0.0,0.0}, lvl = “lost_village”},
– [“exit_to_control_monolith”] = { sid = 1111117, lv = 1068, gv = 2469, pos = {-18.212703704834,-34.5734100341797,-4.92962646484375}, view = {0.0,0.0,0.0}, lvl = “l12u_control_monolith”},
– [“exit_to_nz”] = { sid = 1111118, lv = 688407, gv = 2894, pos = {-106.036903381348,20.9334182739258,-64.2270278930664}, view = {0.0,0.0,0.0}, lvl = “aver”},
– [“exit_to_dsity”] = { sid = 1111119, lv = 102132, gv = 3593, pos = {-237.70208740234,-2.0887701511383,298.48266601563}, view = {0.0,0.0,0.0}, lvl = “aver”},
– [“exit_to_jupiter”] = { sid = 1111120, lv = 1231404, gv = 3719, pos = {360.924835205078,35.4087448120117,338.788482666016}, view = {0.0,0.0,0.0}, lvl = “jupiter”},
– [“exit_to_zaton”] = { sid = 1111121, lv = 293223, gv = 3679, pos = {116.028877258301,-3.37270927429199,205.186187744141}, view = {0.0,0.0,0.0}, lvl = “zaton”},
– [“exit_to_atp_for_test22”] = { sid = 1111122, lv = 290400, gv = 2812, pos = {-61.2345123291016,-0.64409214258194,226.151702880859}, view = {0.0,0.0,0.0}, lvl = “atp_for_test22”},
– [“exit_to_newpripyat”] = { sid = 1111123, lv = 403978, gv = 3767, pos = {149.885040283203,2.29333591461182,-27.7810745239258}, view = {0.0,0.0,0.0}, lvl = “pripyat”},
– [“exit_to_jupit_under”] = { sid = 1111124, lv = 1235, gv = 3771, pos = {68.4412994384766,2.45057511329651,116.808052062988}, view = {0.0,0.0,0.0}, lvl = “jupiter_underground”},
– [“exit_to_labx8”] = { sid = 1111125, lv = 974, gv = 3830, pos = {-80.1116943359375,10.4784479141235,101.760429382324}, view = {0.0,0.0,0.0}, lvl = “labx8”},
[“exit_as21”] = { sid = 17007, lv = 66343, gv = 1786, pos = {-274.62121582031,-27.297189712524,239.00979614258}, view = {0.0,0.0,0.0}, lvl = “l07_military”}
}
function create_level_changer(
p_story_id, – STORY_ID íîâîăî level_changer (ďîíŕäîáčňń˙ íŕě ďîçćĺ)
p_position, – âĺęňîđ, ęîîđäčíŕňű ňî÷ęč, â ęîňîđîé áóäĺň đŕńďîëŕăŕňüń˙ öĺíňđ íîâîăî level_changer
p_lvertex_id, – level_vertext_id - čäĺíňčôčöčđóţň óđîâĺíü, íŕ ęîňîđîě áóäĺň ńîçäŕí level_changer
p_gvertex_id, – game_vertext_id
p_dest_lv, – level_vertex_id - čäĺíňčôčöčđóţň óđîâĺíü, íŕ ęîňîđűé level_changer áóäĺň ďĺđĺáđŕńűâŕňü čăđîęŕ
p_dest_gv, – game_vertex_id
p_dest_pos, – ęîîđäčíŕňű ňî÷ęč, â ęîňîđîé íŕ íîâîě óđîâíĺ îęŕćĺňń˙ čăđîę
p_dest_dir, – íŕďđŕâđĺíčĺ âçăë˙äŕ čăđîęŕ
p_dest_level, – íŕçâŕíčĺ óđîâí˙, íŕďđčěĺđ “L11_Pripyat”
p_silent – ńëĺäóĺň çŕäŕňü 1, ÷ňîáű ďîäŕâčňü âîďđîń î ńěĺíĺ óđîâí˙ (ŕâňîěŕňč÷ĺńęčé ďĺđĺőîä)
)
local sim = alife()
local obj = sim:create(“level_changer”, p_position, p_lvertex_id, p_gvertex_id)
level.map_add_object_spot(obj.id, “level_changer”, “”)
local packet = net_packet()
obj:STATE_Write(packet)
– ńâîéńňâŕ cse_alife_object
local game_vertex_id = packet:r_u16()
local cse_alife_object__unk1_f32 = packet:r_float()
local cse_alife_object__unk2_u32 = packet:r_u32()
local level_vertex_id = packet:r_u32()
local object_flags = packet:r_u32()
local custom_data = packet:r_stringZ()
local story_id = packet:r_u32()
local spawn_story_id = packet:r_u32()
– ńâîéńňâŕ cse_shape
local shape_count = packet:r_u8()
for i=1,shape_count do
local shape_type = packet:r_u8()
if shape_type == 0 then
– sphere
local center = packet:r_vec3()
local radius = packet:r_float()
else
– box
local axis_x_x = packet:r_float()
local axis_x_y = packet:r_float()
local axis_x_z = packet:r_float()
local axis_y_x = packet:r_float()
local axis_y_y = packet:r_float()
local axis_y_z = packet:r_float()
local axis_z_x = packet:r_float()
local axis_z_y = packet:r_float()
local axis_z_z = packet:r_float()
local offset_x = packet:r_float()
local offset_y = packet:r_float()
local offset_z = packet:r_float()
end
end
– ńâîéńňâŕ cse_alife_space_restrictor
local restrictor_type = packet:r_u8()
– ńâîéńňâŕ cse_level_changer
local dest_game_vertex_id = packet:r_u16()
local dest_level_vertex_id = packet:r_u32()
local dest_position = packet:r_vec3()
local dest_direction = packet:r_vec3()
local dest_level_name = packet:r_stringZ()
local dest_graph_point = packet:r_stringZ()
local silent_mode = packet:r_u8()
packet:w_begin(game_vertex_id) – game_vertex_id
packet:w_float(cse_alife_object__unk1_f32)
packet:w_u32(cse_alife_object__unk2_u32)
packet:w_u32(level_vertex_id) – level_vertex_id
packet:w_u32( bit_not(193) ) – object_flags = -193 = 0xFFFFFF3E
packet:w_stringZ(custom_data)
packet:w_u32(p_story_id) – story_id
packet:w_u32(spawn_story_id)
packet:w_u8(1) – ęîëč÷ĺńňâî ôčăóđ
– packet:w_u8(0) – ňčď ôčăóđű: ńôĺđŕ
– packet:w_vec3(vector():set(0, 0, 0)) – sphere_center
– packet:w_float(3.0)
packet:w_u8(1) – ňčď ôčăóđű: box
packet:w_float(2) – axis_x_x
packet:w_float(0) – axis_x_y
packet:w_float(0) – axis_x_z
packet:w_float(0) – axis_y_x
packet:w_float(4) – axis_y_y
packet:w_float(0) – axis_y_z
packet:w_float(0) – axis_z_x
packet:w_float(0) – axis_z_y
packet:w_float(4) – axis_z_z
packet:w_float(0) – offset_x
packet:w_float(0) – offset_y
packet:w_float(0) – offset_z
packet:w_u8(3) – restrictor_type
packet:w_u16(p_dest_gv) – destination game_vertex_id
packet:w_s32(p_dest_lv) – destination level_vertex_id
packet:w_vec3(p_dest_pos) – destination position
packet:w_vec3(p_dest_dir) – destination direction (íŕďđŕâëĺíčĺ âçăë˙äŕ)
packet:w_stringZ(p_dest_level) – destination level name
packet:w_stringZ(“start_actor_02”) – some string, always const
packet:w_u8(p_silent) – 1 for silent level changing
packet:r_seek(0)
obj:STATE_Read(packet, packet:w_tell())
level.add_pp_effector (“teleport.ppe”, 2006, false)
end
function jumpTo(where)
local actor = db.actor
local place = places[where]
create_level_changer(place.sid, actor:position(), actor:level_vertex_id(), actor:game_vertex_id(),
place.lv,
place.gv,
vector():set(place.pos[1],place.pos[2],place.pos[3]),
vector():set(place.view[1],place.view[2],place.view[3]),
place.lvl,
end
– ňŕáëčöŕ ňĺëĺďîđňîâ
– art - ňđĺáóĺěűé ŕđň äë˙ ňĺëĺďîđňŕöčč (ĺńëč çŕäŕí - îňáĺđ¸ňń˙ ó ĂĂ)
– keep - îńňŕâë˙ňü ëč ňĺëĺďîđň
– goto_func - ńďčńîę âŕđčŕíňîâ çŕáđîńęč ňĺëĺďîđňîě
local teleports = {
[“device_teleport”] = {
art = “af_electra_moonlight”,
sjedobniy = true,
goto_func = {
“exit_agroprom”,
“exit_agroprom2”,
“exit_agroprom3”,
“exit_as”,
“exit_as2”,
“exit_as3”,
“exit_as4”,
“exit_bar”,
“exit_bar2”,
“exit_bar3”,
“exit_bar4”,
“exit_bar5”,
“exit_bar6”,
“exit_bar7”,
“exit_bunker”,
“exit_dt1”,
“exit_dt2”,
“exit_dt3”,
“exit_dt4”,
“exit_dt5”,
“exit_dt6”,
“exit_dt7”,
“exit_dt8”,
“exit_dt9”,
“exit_dt10”,
“exit_dt11”,
“exit_kordon”,
“exit_kordon2”,
“exit_kordon3”,
“exit_kordon4”,
“exit_kordon5”,
“exit_kordon6”,
“exit_kordon7”,
“exit_kordon8”,
“exit_kordon9”,
“exit_kordon10”,
“exit_kordon11”,
“exit_kordon12”,
“exit_kordon13”,
“exit_kordon14”,
“exit_kordon15”,
“exit_pripyat”,
“exit_pripyat2”,
“exit_radar”,
“exit_radar2”,
“exit_radar3”,
“exit_radar4”,
“exit_svalka”,
“exit_svalka2”,
“exit_svalka3”,
“exit_svalka4”,
“exit_svalka5”,
“exit_svalka6”,
“exit_svalka7”,
“exit_svalka8”,
“exit_svalka9”,
“exit_svalka10”,
“exit_svalka11”,
“exit_svalka12”,
“exit_td”,
“exit_td2”,
“exit_undergraund”,
“exit_x18”,
“exit_yantar1”,
“exit_yantar2”,
“exit_yantar3”,
“exit_yantar4”,
“exit_yantar5”,
“exit_yantar6”,
“exit_yantar7”,
“exit_yantar8”,
“exit_yantar9”,
“exit_yantar10”,
“exit_yantar11”
}
},
[“science_teleport3”] = {
art = “af_electra_moonlight”,
sjedobniy = true,
goto_func = {
“exit_yantar1”,
“exit_yantar2”,
“exit_yantar3”,
“exit_yantar4”,
“exit_yantar5”,
“exit_yantar6”,
“exit_yantar7”,
“exit_yantar8”,
“exit_yantar9”,
“exit_yantar10”,
“exit_yantar11”
}
},
[“science_teleport2”] = {
art = “af_electra_moonlight”,
sjedobniy = true,
goto_func = {
“exit_bar”,
“exit_bar2”,
“exit_bar3”,
“exit_bar4”,
“exit_bar5”,
“exit_bar6”,
“exit_bar7”
}
},
[“science_teleport”] = {
art = “af_electra_moonlight”,
sjedobniy = true,
goto_func = {
“exit_kordon”,
“exit_kordon2”,
“exit_kordon3”,
“exit_kordon4”,
“exit_kordon5”,
“exit_kordon6”,
“exit_kordon7”,
“exit_kordon8”,
“exit_kordon9”,
“exit_kordon10”,
“exit_kordon11”,
“exit_kordon12”,
“exit_kordon13”,
“exit_kordon14”,
“exit_kordon15”
}
},
[“arhara_tele”] = {
–keep = true,
sjedobniy = true,
goto_func = {
“exit_to_stancia21”
}
},
[“snotvornoe_tele”] = {
–keep = true,
sjedobniy = true,
goto_func = {
“exit_peshera”
}
},
[“shaxter_tele”] = {
–keep = true,
sjedobniy = true,
goto_func = {
“exit_peshera1”
}
},
[“arhara_obman”] = {
keep = true,
sjedobniy = true,
goto_func = {
“exit_as21”
}
}
}
function checking_droped_obj(obj)
local actor = db.actor
local obj_sect = obj:section()
if not teleports[obj_sect] then return end – íĺ íŕř “ęëčĺíň”
– ĺńëč ŕđň íĺ íóćĺí čëč îí ĺńňü ó ĂĂ
if not teleports[obj_sect].art or actor:object(teleports[obj_sect].art) then
– îňďđŕâë˙ĺě ňĺëĺďîđň íŕ ýęńďĺđňčçó
– óçíŕĺě íĺ ńúĺëč ëč ĺăî čëč âűëîćčëč â íű÷ęó
local tbl = {}
tbl.obj_id = obj:id()
tbl.obj_sect = obj_sect
– amk.start_timer(“timer_drop_obj_teleport”, 0.2, amk.pack_array_to_string(tbl))
amk.start_timer(“timer_drop_obj_teleport”, 0.2, tbl)
end
end
function teleport_start(obj_sect, obj_id, sjeli)
local sim = alife()
local actor = db.actor
if sjeli and teleports[obj_sect].sjedobniy or
not sjeli and not teleports[obj_sect].sjedobniy then
– âűçűâŕĺě ńëó÷ŕéíóţ ôóíęöčţ äë˙ äŕííîăî ňĺëĺďîđňŕ
– teleports[obj_sect].goto_funcmath.random(#(teleports[obj_sect].goto_func))
jumpTo(teleports[obj_sect].goto_func[math.random(#(teleports[obj_sect].goto_func))])
– îňáčđŕĺě ŕđň ó ĂĂ, ĺńëč íóćíî îňîáđŕňü
if teleports[obj_sect].art then
local art = actor:object(teleports[obj_sect].art)
if art then
local se_art = sim:object(art:id())
if se_art then
sim:release(se_art)
end
end
end
– óáčđŕĺě ňĺëĺďîđň, ĺńëč íĺ ńęŕçŕíî îńňŕâčňü čëč ĺăî óćĺ íĺ ńúĺëč/čńďîëüçîâŕëč
if not teleports[obj_sect].keep and not teleports[obj_sect].sjedobniy then
sim:release(sim:object(obj_id))
elseif teleports[obj_sect].keep and teleports[obj_sect].sjedobniy then – âĺđíóňü ňĺëĺďîđň â đţęçŕę
amk.spawn_item_in_inv(obj_sect)
end
end
end
function remove_old_teleport()
local sim = alife()
for nam,tbl in pairs(places) do
local se_obj = sim:story_object(tbl.sid)
if se_obj then
sim:release(se_obj, true)
end
end
end
function checking_droped_item10(obj)
if obj:section() == “bread” then
–exit_x18()
– exit_radar4()
– exit_dt1()
– exit_kordon5()
– exit_kordon2()
– exit_yantar2()
–exit_td2()
– exit_td()
–exit_bar2()
– exit_as2()
–exit_pripyat2()
–exit_agroprom()
–exit_to_stancia21()
–exit_to_sarcofag()
– exit_dt7()
–exit_bunker()
–exit_to_red()
–exit_to_brinlab()
–exit_to_war()
–exit_to_lima()
–exit_to_gener()
–exit_to_village()
–exit_to_control_monolith()
–exit_to_nz()
–exit_to_dsity() --1111119
–exit_to_jupiter() --1111120
–exit_to_zaton() --1111121
–exit_to_atp_for_test22() --1111122
–exit_to_newpripyat() --1111123
– exit_to_labx8() --1111125
–exit_to_jupit_under() --1111124
end
end
Czy przypadkiem ruskie znaki nie robią gdzieś tu zamieszania..