You are not logged in.

Sergey81, я чё-то не пойму, почему бы не изменить имя потока на более короткое?
Это мэйн от Great Theft Car, во первых он не компилируется, во вторых если даже и скомпилился бы, сейвы старые не подойдут. Оно того не стоит.
Кстати, плагин для возврата аэро я написал, спс за наводки.
Offline

Sergey81, 0459: end_thread_named 'SPEEDOM' работает или нет?
Неа, пробовал по всякому, не получилось.
Offline
А как убрать блокады на мостах в начале оригинальной игры? Они - это объекты, которые надо удалить? или как
Offline

В аттаче результат маленького эксперимента с аэро.
dll загружается через cleo, включает аэро, выгружается и скрипт завершается. Теперь, если свернуть SA, аэро будет работать. А вобще мне больше интересно было посмотреть, получится сделать или нет. 
Offline

разработчик ГТК по поводу твоей проблемы со спидометром:
кул
Кул то, что проблема решаема хотя бы отключением одного спидометра:cool:
Offline
offtop ololo
@3Вщщьук - а зачем такой большой юб ставить в подпись? Достаточно ссылки наверное.
Offline
Они - это объекты, которые надо удалить?
Да. Переменные этих объектов можно найти в мэйне.
Неа, пробовал по всякому, не получилось.
Возможно, дело в регистре букв названия потока. Можно попробовать декомпилировать тот мэйн, выставив регистр "Как есть" в опциях СБ. Первые 7 символов полученного названия скопировать в 0459
Offline

Возможно, дело в регистре букв названия потока. Можно попробовать декомпилировать тот мэйн, выставив регистр "Как есть" в опциях СБ. Первые 7 символов полученного названия скопировать в 0459
Стоит и так "как есть", так что наверно не в этом дело.
Заюзал Memory Hacker.
Им тред прекрасно отключается, оставляя за собой только ноль в углу: 
  
Название кстати содержит 8 символов.
P.S.
0459: end_thread_named 'SPEEDOME' не срабатывает тоже.
Last edited by Sergey81 (23-12-2010 04:58)
Offline

@Sergey81 - давай для начала разберемся с 0AAA. При каких значениях этот опкод "находит" запущенный поток?
0AAA: 0@ = thread "SPEEDOME" pointer
0@ <> 0 ?
Если ты найдешь указатель на этот поток, то ты можешь либо вручную выставить флаг "неактивности", либо "скормить" указатель в метод CScriptThread::endThread.
Offline
А есть у клео скриптов какое-то ограничение на память или что-то вроде того? 
Ато есть у меня один скрипт, выбирает случайные авто. так вот после нескольких выборов, примерно гдето на 6-7 раз, игра вылетает. Хотя RemoveReferences использую. С загрузкой и выгрузкой моделей создавемых объектов тоже все нормально... непонимаю почему так.
Может есть какие-нибудь опкоды, забивающие память? Или может дело вовсе не в памяти.
Last edited by Ruzel (23-12-2010 17:26)
Offline
выбирает случайные авто
Можно поточнЕе?
Offline
Какой опкод ты используешь для поиска? Некоторые опкоды не изменяют значение флага Ref, и машина может в любой момент исчезнуть (например, после wait 1000), может, из-за этого?
[small][/small]
Offline

@Sergey81 - давай для начала разберемся с 0AAA. При каких значениях этот опкод "находит" запущенный поток?
0AAA: 0@ = thread "SPEEDOME" pointer0@ <> 0 ?
Если ты найдешь указатель на этот поток, то ты можешь либо вручную выставить флаг "неактивности", либо "скормить" указатель в метод CScriptThread::endThread.
Сейчас у меня такой код:
{$CLEO}
0000:
0AAA: 0@ = thread "SPEEDOMETR_BYHARD_V2" pointer
if
0@ <> 0
then
wait 100
0ABA: end_custom_thread_named 'speed'
0459: end_thread_named 'NJOY'
else
0a93:
end
0a93:Т.е. "SPEEDOMETR_BYHARD_V2" находится, тред 'NJOY' отключается, как и 'speed'(клео-спидометр).
--
А вот за CScriptThread::endThread спасибо, так работает, не оставляя за собой никаких следов.
{$CLEO}
0000:
0AAA: 0@ = thread "SPEEDOMETR_BYHARD_V2" pointer
if
0@ <> 0
then
wait 100
0AA6: call_method 0x465AA0 struct 0@ num_params 0 pop 0 
0459: end_thread_named 'NJOY'
else
0a93:
end
0a93: 
   
  
Надо будет куда-нить в неочевидные возможности запостить.
Last edited by Sergey81 (24-12-2010 05:40)
Offline
помогите пожалуйста, всю голову сломал уже. модели не выгружаются по моему
{$CLEO .cs}
//-------------MAIN---------------
thread "folt"
wait 1000
:folt
if
player.defined($Player_char)
jf @folt
marker.CreateIconAndSphere($Mark,23,274.1831, 2505.5039, 16.4844)
:folt1
wait 0
if  
0101: actor $PLAYER_ACTOR stopped_near_point 274.2205 2505.5354 16.4844 radius 1.5 1.5 1.5 sphere 0
jf @folt1
marker.Disable($Mark)
wait 0
00C0: set_current_time_to 00 minutes_to 00
wait 0
model.Load(1@ 5713)
model.Load(2@ 5714)
model.Load(3@ 5715)
038B: load_requested_models
Jump @folt1_2 
 end_thread
 
:folt1_2
wait 0
if and
model.Available(1@ 5713)
model.Available(2@ 5714)
model.Available(3@ 5715)
jf @folt1_2
object.Create(1@,5713, 325.7908, 2506.9893, 14.5)
object.Angle(1@) = 270.0
object.Create(1@,5713, 412.2807, 2506.9893, 14.5)
object.Angle(1@) = 270.0
object.Create(2@,5714, 385.6027, 2506.9893, 14.5)
object.Angle(2@) = 270.0
object.Create(3@,5715, 350.7908, 2506.9893, 14.5)
object.Angle(3@) = 270.0
Jump @folt1_3
end_thread
:folt1_3
wait 0
model.Load(4@ 9833)
038B: load_requested_models
if
player.defined($Player_char)
jf @folt1_3
Jump @folt1_4 
 end_thread
 
 :folt1_4
 wait 0
if and
model.Available(4@ 9833)
jf @folt1_4
object.Create(4@,9833, 415.5789, 2506.9893, 14.5)
object.Angle(4@) = 270.0
Jump @folt2 
:folt2
wait 0
model.load(258) 
model.load(253)
model.load(260)
038B: load_requested_models
 :folt2_1
 wait 0
if and
model.available(258)
model.available(253)
model.available(260)
jf @folt2_1
Jump @folt2_2
:folt2_2
 wait 0
if and
actor.Create(5@,4,258,323.0516, 2508.1335, 16.5039)
actor.Create(6@,4,253,322.8822, 2503.0637, 16.4844)
actor.Create(7@,4,260,323.1521, 2491.134, 16.4844)
actor.Create(8@,4,258,315.3968, 2493.405, 16.4844)
actor.Create(9@,4,253,315.1443, 2500.6709, 16.4844)
actor.Create(10@,4,260,315.0663, 2505.6206, 16.4844)
actor.Create(11@,4,258,315.0244, 2511.3728, 16.5594)
actor.Create(12@,4,253,314.6855, 2522.022, 16.7265)
actor.Create(13@,4,260,314.357, 2526.8503, 16.7849)
jf @folt2_2
Jump @folt2_3
 
:folt2_3
wait 0
if and 
Actor.SetImmunities(5@, 1, 1, 1, 1, 1)
Actor.SetImmunities(6@, 1, 1, 1, 1, 0)
Actor.SetImmunities(7@, 1, 1, 1, 1, 0)
Actor.SetImmunities(8@, 1, 1, 1, 1, 1)
Actor.SetImmunities(9@, 1, 1, 1, 1, 0)
Actor.SetImmunities(10@, 1, 1, 1, 1, 0)
Actor.SetImmunities(11@, 1, 1, 1, 1, 1)
Actor.SetImmunities(12@, 1, 1, 1, 1, 0)
Actor.SetImmunities(13@, 1, 1, 1, 1, 0)
jf @folt2_3
Actor.Health(5@) = 1000
Actor.Health(6@) = 1000
Actor.Health(7@) = 1000
Actor.Health(8@) = 1000
Actor.Health(9@) = 1000
Actor.Health(10@) = 1000
Actor.Health(11@) = 1000
Actor.Health(12@) = 1000
Actor.Health(13@) = 1000
if and
0245: set_actor 5@ walk_style_to "BLINDMAN" 
0245: set_actor 6@ walk_style_to "BLINDMAN" 
0245: set_actor 7@ walk_style_to "BLINDMAN"
0245: set_actor 8@ walk_style_to "BLINDMAN" 
0245: set_actor 9@ walk_style_to "BLINDMAN" 
0245: set_actor 10@ walk_style_to "BLINDMAN"
0245: set_actor 11@ walk_style_to "BLINDMAN" 
0245: set_actor 12@ walk_style_to "BLINDMAN" 
0245: set_actor 13@ walk_style_to "BLINDMAN"
jf @folt2_3
Jump @folt2_4
:folt2_4
wait 0
if
player.defined($Player_char)
jf @folt
05D6: clear_scmpath 
05D7: add_point_to_scmpath(1) 413.2871 2506.7603 16.4844
05D8: AS_assign_scmpath to_actor 5@ flags 4 0
05D8: AS_assign_scmpath to_actor 6@ flags 4 0
05D8: AS_assign_scmpath to_actor 7@ flags 4 0
05D8: AS_assign_scmpath to_actor 8@ flags 4 0
05D8: AS_assign_scmpath to_actor 9@ flags 4 0
05D8: AS_assign_scmpath to_actor 10@ flags 4 0
05D8: AS_assign_scmpath to_actor 11@ flags 4 0
05D8: AS_assign_scmpath to_actor 12@ flags 4 0
05D8: AS_assign_scmpath to_actor 13@ flags 4 0
Jump @folt2_5
end_thread
:folt2_5
wait 0
if or
00E1: key_pressed 0 17
00E1: key_pressed 0 6  
jf @folt2_5
Jump @folt2_6
:folt2_6
wait 1000
if and
actor.DestroyInstantly(5@)
actor.DestroyInstantly(6@)
actor.DestroyInstantly(7@)
actor.DestroyInstantly(8@)
actor.DestroyInstantly(9@)
actor.DestroyInstantly(10@)
actor.DestroyInstantly(11@)
actor.DestroyInstantly(12@)
actor.DestroyInstantly(13@) 
jf @folt2_6
Jump @folt2_7
:folt2_7
wait 0
if 
player.defined($Player_char)
jf @folt2_7
wait 0
model.load(258) 
model.load(253)
model.load(260)
038B: load_requested_models
:folt2_8
wait 0
if and
05D6: clear_scmpath 
00C0: set_current_time_to 00 minutes_to 00
01b6: set_weather 19
model.available(258)
model.available(253)
model.available(260)
jf @folt2_8
wait 0   
04C4: create_coordinate $X1 $Y1 $Z1 from_actor $PLAYER_ACTOR offset 0.0 5.0 0.0
actor.Create(5@,4,258,$X1,$Y1,$Z1)
wait 0
04C4: create_coordinate $X1 $Y1 $Z1 from_actor $PLAYER_ACTOR offset 0.0 5.5 0.0
actor.Create(6@,4,253,$X1,$Y1,$Z1)
wait 0
04C4: create_coordinate $X1 $Y1 $Z1 from_actor $PLAYER_ACTOR offset 0.0 6.0 0.0
actor.Create(7@,4,260,$X1,$Y1,$Z1)
Actor.SetImmunities(5@, 1, 1, 1, 1, 0)
Actor.SetImmunities(6@, 1, 1, 1, 1, 0)
Actor.SetImmunities(7@, 1, 1, 1, 1, 0)
Actor.Health(5@) = 500
Actor.Health(6@) = 500
Actor.Health(7@) = 500
0850: AS_actor 5@ follow_actor $PLAYER_ACTOR 
05E2: AS_actor 5@ kill_actor $PLAYER_ACTOR 
0850: AS_actor 6@ follow_actor $PLAYER_ACTOR 
05E2: AS_actor 6@ kill_actor $PLAYER_ACTOR 
0850: AS_actor 7@ follow_actor $PLAYER_ACTOR 
05E2: AS_actor 7@ kill_actor $PLAYER_ACTOR
Jump @folt2_9
:folt2_9_1
wait 0
04C4: create_coordinate $X1 $Y1 $Z1 from_actor $PLAYER_ACTOR offset 0.0 6.5 0.0
actor.Create(8@,4,258,$X1,$Y1,$Z1)
wait 0
04C4: create_coordinate $X1 $Y1 $Z1 from_actor $PLAYER_ACTOR offset 0.0 7.0 0.0
actor.Create(9@,4,253,$X1,$Y1,$Z1)
wait 0
04C4: create_coordinate $X1 $Y1 $Z1 from_actor $PLAYER_ACTOR offset 0.0 7.5 0.0
actor.Create(10@,4,260,$X1,$Y1,$Z1)
Actor.SetImmunities(8@, 1, 1, 1, 1, 0)
Actor.SetImmunities(9@, 1, 1, 1, 1, 0)
Actor.SetImmunities(10@, 1, 1, 1, 1, 0)
Actor.Health(8@) = 500
Actor.Health(9@) = 500
Actor.Health(10@) = 500
0850: AS_actor 8@ follow_actor $PLAYER_ACTOR 
05E2: AS_actor 8@ kill_actor $PLAYER_ACTOR 
0850: AS_actor 9@ follow_actor $PLAYER_ACTOR 
05E2: AS_actor 9@ kill_actor $PLAYER_ACTOR 
0850: AS_actor 10@ follow_actor $PLAYER_ACTOR 
05E2: AS_actor 10@ kill_actor $PLAYER_ACTOR
jump @folt3
:folt2_9_2
wait 0
04C4: create_coordinate $X1 $Y1 $Z1 from_actor $PLAYER_ACTOR offset 0.0 8.0 0.0
actor.Create(11@,4,258,$X1,$Y1,$Z1)
wait 0
04C4: create_coordinate $X1 $Y1 $Z1 from_actor $PLAYER_ACTOR offset 0.0 8.5 0.0
actor.Create(12@,4,253,$X1,$Y1,$Z1)
wait 0
04C4: create_coordinate $X1 $Y1 $Z1 from_actor $PLAYER_ACTOR offset 0.0 9.0 0.0
actor.Create(13@,4,260,$X1,$Y1,$Z1)
Actor.SetImmunities(11@, 1, 1, 1, 1, 0)
Actor.SetImmunities(12@, 1, 1, 1, 1, 0)
Actor.SetImmunities(13@, 1, 1, 1, 1, 0)
Actor.Health(11@) = 500
Actor.Health(12@) = 500
Actor.Health(13@) = 500
0850: AS_actor 11@ follow_actor $PLAYER_ACTOR 
05E2: AS_actor 11@ kill_actor $PLAYER_ACTOR 
0850: AS_actor 12@ follow_actor $PLAYER_ACTOR 
05E2: AS_actor 12@ kill_actor $PLAYER_ACTOR 
0850: AS_actor 13@ follow_actor $PLAYER_ACTOR 
05E2: AS_actor 13@ kill_actor $PLAYER_ACTOR
jump @folt3_1
end_thread
:folt2_9
wait 0 
if and
Actor.Dead(5@)
Actor.Dead(6@)
Actor.Dead(7@)
jf @folt2_9
actor.DestroyInstantly(5@)
actor.DestroyInstantly(6@)
actor.DestroyInstantly(7@)
jump @folt2_9_1
:folt3
wait 0 
if and
Actor.Dead(8@)
Actor.Dead(9@)
Actor.Dead(10@)
jf @folt3
actor.DestroyInstantly(8@)
actor.DestroyInstantly(9@)
actor.DestroyInstantly(10@)
jump @folt2_9_2
:folt3_1
wait 0
if and
Actor.Dead(11@)
Actor.Dead(12@)
Actor.Dead(13@)
jf @folt3_1
actor.DestroyInstantly(11@)
actor.DestroyInstantly(12@)
actor.DestroyInstantly(13@)  
jump @folt4
end_thread
:folt4
wait 0 
if or
player.defined($Player_char)
wasted_or_busted
jf @folt4
 wait 2000
0394: play_music 2
01b6: set_weather 18
jump @folt4_1
:folt4_1
wait 5000
if and
model.destroy(258)
model.destroy(253)
model.destroy(260)
jf @folt4_1
jump @folt4_2
:folt4_2
wait 1000
if and 
Object.Destroy(1@ 5713) 
Object.Destroy(2@ 5714) 
Object.Destroy(3@ 5715) 
Object.Destroy(4@ 9833) 
jf @folt4_2
jump @folt
					Offline
Выираю опкодом 0AE1. То, что может исчезнуть, учел. Стоит проверка на not Actor.defined . Вопщем, выложу скрипт в разделе модификации. Скрипт называется "Личная Зона"
Last edited by Ruzel (24-12-2010 10:29)
Offline

@ilyha - я бы для начала поменял thread "folt" на thread "FACEPALM.JPG"
@Ruzel - почему бы не воспользоваться сначала scmlog и лимит аджастером, а потом выложить их логи вылета вместе со скриптом?
Offline
@ilyha - я бы для начала поменял thread "folt" на thread "FACEPALM.JPG"
к сожалению это ничего не дало
Offline
но ведь моя конструкция работает. просто в конце не исчезает одна из моделей, не пойму какая (1@? 2@? или 3@) и в конце когда встаеш на маркер игра вылетает. mfisto а как бы ты сделал на моем месте? помоги пожалуйста а то я новичек в скриптинге, по мануалу сб делал. но ведь там для маина а не клео
Offline
Раньше писал скрипты для SA, но когда всё было в одном файле main.scm, однако как появилось Cleo, заинтересовался, начал писать, кое что получается, но вот с редактированием памяти и т.д. не всегда. Так вот, нашёл в скрипте сохранения следующий кусок (вроде он выводит на экран текст):
thread 'SAVE_ANYWHERE' wait 5000 0AB1: call_scm_func @SAVE_ANYWHERE_389 1 -454 wait 5000 0AB1: call_scm_func @SAVE_ANYWHERE_389 1 -509 jump @SAVE_ANYWHERE_142 0662: NOP "SAVE_ANYWHERE_MOD" 0662: NOP "VERSION_1.1" 0662: NOP "COPYRIGHT_2008-2009_ANDERSON_BRESSAN" ... :SAVE_ANYWHERE_337 wait 0 if 03D9: save_done jf @SAVE_ANYWHERE_337 fade 1 500 gosub @SAVE_ANYWHERE_578 Actor.LockInCurrentPosition($PLAYER_ACTOR) = False Player.CanMove($PLAYER_CHAR) = True jump @SAVE_ANYWHERE_142 :SAVE_ANYWHERE_389 0A9F: 1@ = current_thread_pointer 1@ += 16 0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0 0062: 1@ -= 0@ // (int) 1@ += 4 0AA5: call 5802976 4 pop 4 0 0 0 1@ 0AB2: ret 0 0900: unknown_set_object "Welcome to ~h~SAVE ANYWHERE MOD~w~ by ~h~Rapier~w~." 0900: unknown_set_object "Type ~h~SAVE~w~ in your keyboard to display the save game menu." 0000: NOP :SAVE_ANYWHERE_578 wait 0 if not fading jf @SAVE_ANYWHERE_578 return
Но это у меня не работает (игра вылетает сразу). А впихнул я его в свой пробный код так:
{$CLEO .cs}
:SETSTATS
03A4: name_thread "SETSTATS"
wait 1000
0@ = 304531
0004: $BEEFYBARON_SCORE = 'TEXT'
:SETSTATS_1
wait 0
&0(0@,1i) == 0x00FF0000
jf @SETSTATS_1
wait  0
jump @SETSTATS_2
:SETSTATS_2
0@ = 362041
&0(0@,1i) = 0xFFFF0000
0627: change_stat 24 to 1000.0
Actor.Health($PLAYER_ACTOR) = 1000
02AB: set_actor $PLAYER_ACTOR immunities  1  1  1  1  1
if and
Actor.Driving($PLAYER_ACTOR)
jf @SETSTATS_1
0811: $10932 = actor $PLAYER_ACTOR car
02AC: set_car $10932 immunities  1  1  1  1  1
//0384: show_text_1string GXT 'AREA_1' Set  ~h~ACTOR AND CAR~w~ STATS to ~h~MAX~w~. 'IE16' time 5000 1
//wait 6000
//03C4: set_status_text $BEEFYBARON_SCORE type 0 GXT 'ZER2_43' 
0AB1: call_scm_func @SETSTATS_3 1 -454 
wait 5000 
0AB1: call_scm_func @SETSTATS_3 1 -509 
jump @SETSTATS_1
:SETSTATS_3
0A9F: 1@ = current_thread_pointer 
1@ += 16 
0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0 
0062: 1@ -= 0@ // (int) 
1@ += 4 
0AA5: call 5802976 4 pop 4 0 0 0 1@ 
0AB2: ret 0 
0900: unknown_set_object "WWelcome to ~h~SAVE ANYWHERE MOD~w~ by ~h~Rapier~w~." 
0900: unknown_set_object "Type ~h~SAVE~w~ in your keyboard to display the save game menu." 
0000: NOP 
:SETSTATS_4
wait 0
returnЦель - вывести текст, находящийся непосредственно в скрипте. а не в файле *.гфх
WinHex,
Offline
@ilyha, если ты новичок, то попробуй для начала написать более простой, но стабильно работающий скрипт. Что касается твоего кода: wasted or busted надо убрать, т.к. эта проверка применяется только в миссиях. Вместо глобальных переменных ($1, $2 ...) в клео надо применять локальные (0@, 1@ ...). Также в клео-скриптах не применяется опкод end thread - вместо него надо использовать 0A93: end_custom_thread. Ещё заметил, что ты не различаешь условия и команды - внимательно изучи соответствующие разделы в справке.
Цель - вывести текст, находящийся непосредственно в скрипте. а не в файле *.гфх
В клео4 есть опкоды, позволяющие выводить на экран любой текст одной командой без использования каких-либо файлов и плагинов. Сам текст указывается в опкоде. Подробности в справке к КЛЕО4.
Last edited by Den_spb (25-12-2010 01:40)
Offline
@ilyha, если ты новичок, то попробуй для начала написать более простой, но стабильно работающий скрипт. Что касается твоего кода: wasted or busted надо убрать, т.к. эта проверка применяется только в миссиях. Вместо глобальных переменных ($1, $2 ...) в клео надо применять локальные (0@, 1@ ...). Также в клео-скриптах не применяется опкод end thread - вместо него надо использовать 0A93: end_custom_thread. Ещё заметил, что ты не различаешь условия и команды - внимательно изучи соответствующие разделы в справке
спасибо за подсказку. разобрался сам. начудил с одной из переменных в конце. теперь все работает отлично. и еще вопрос: мне интересно как бы этот скрипт выглядел в руках опытного скриптера
вот пепределаный скрипт
{$CLEO .cs}
//-------------MAIN---------------
thread "FACEPALM.JPG"
wait 1000
:folt
if
player.defined($Player_char)
jf @folt
marker.CreateIconAndSphere($Mark,23,274.1831, 2505.5039, 16.4844)
:folt1
wait 0
if  
0101: actor $PLAYER_ACTOR stopped_near_point 274.2205 2505.5354 16.4844 radius 1.5 1.5 1.5 sphere 0
jf @folt1
marker.Disable($Mark)
wait 0
00C0: set_current_time_to 00 minutes_to 00
wait 0
model.Load(5713)
model.Load(5714)
model.Load(5715)
model.Load(9833)
038B: load_requested_models
Jump @folt1_2 
 end_thread
 
:folt1_2
wait 0
if and
model.Available(5713)
model.Available(5714)
model.Available(5715)
model.Available(9833)
jf @folt1_2
object.Create(1@,5713, 325.7908, 2506.9893, 14.5)
object.Angle(1@) = 270.0
object.Create(2@,5713, 412.2807, 2506.9893, 14.5)
object.Angle(2@) = 270.0
object.Create(3@,5714, 385.6027, 2506.9893, 14.5)
object.Angle(3@) = 270.0
object.Create(4@,5715, 350.7908, 2506.9893, 14.5)
object.Angle(4@) = 270.0
object.Create(5@,9833, 415.5789, 2506.9893, 14.5)
object.Angle(5@) = 270.0
Jump @folt1_3
:folt1_3
wait 0
if
player.defined($Player_char)
jf @folt1_3
Jump @folt2 
:folt2
wait 0
model.load(258) 
model.load(253)
model.load(260)
038B: load_requested_models
 :folt2_1
 wait 0
if and
model.available(258)
model.available(253)
model.available(260)
jf @folt2_1
Jump @folt2_2
:folt2_2
 wait 0
if and
actor.Create(6@,4,253,322.8822, 2503.0637, 16.4844)
actor.Create(7@,4,260,323.1521, 2491.134, 16.4844)
actor.Create(8@,4,258,315.3968, 2493.405, 16.4844)
actor.Create(9@,4,253,315.1443, 2500.6709, 16.4844)
actor.Create(10@,4,260,315.0663, 2505.6206, 16.4844)
actor.Create(11@,4,258,315.0244, 2511.3728, 16.5594)
actor.Create(12@,4,253,314.6855, 2522.022, 16.7265)
actor.Create(13@,4,260,314.357, 2526.8503, 16.7849)
actor.Create(14@,4,258,323.0516, 2508.1335, 16.5039)
jf @folt2_2
Jump @folt2_3
 
:folt2_3
wait 0
if and 
Actor.SetImmunities(6@, 1, 1, 1, 1, 0)
Actor.SetImmunities(7@, 1, 1, 1, 1, 0)
Actor.SetImmunities(8@, 1, 1, 1, 1, 1)
Actor.SetImmunities(9@, 1, 1, 1, 1, 0)
Actor.SetImmunities(10@, 1, 1, 1, 1, 0)
Actor.SetImmunities(11@, 1, 1, 1, 1, 1)
Actor.SetImmunities(12@, 1, 1, 1, 1, 0)
Actor.SetImmunities(13@, 1, 1, 1, 1, 0)
Actor.SetImmunities(14@, 1, 1, 1, 1, 1)
jf @folt2_3
Actor.Health(6@) = 1000
Actor.Health(7@) = 1000
Actor.Health(8@) = 1000
Actor.Health(9@) = 1000
Actor.Health(10@) = 1000
Actor.Health(11@) = 1000
Actor.Health(12@) = 1000
Actor.Health(13@) = 1000
Actor.Health(14@) = 1000
if and
0245: set_actor 6@ walk_style_to "BLINDMAN" 
0245: set_actor 7@ walk_style_to "BLINDMAN"
0245: set_actor 8@ walk_style_to "BLINDMAN" 
0245: set_actor 9@ walk_style_to "BLINDMAN" 
0245: set_actor 10@ walk_style_to "BLINDMAN"
0245: set_actor 11@ walk_style_to "BLINDMAN" 
0245: set_actor 12@ walk_style_to "BLINDMAN" 
0245: set_actor 13@ walk_style_to "BLINDMAN"
0245: set_actor 14@ walk_style_to "BLINDMAN" 
jf @folt2_3
Jump @folt2_4
:folt2_4
wait 0
if
player.defined($Player_char)
jf @folt
05D6: clear_scmpath 
05D7: add_point_to_scmpath(1) 413.2871 2506.7603 16.4844
05D8: AS_assign_scmpath to_actor 6@ flags 4 0
05D8: AS_assign_scmpath to_actor 7@ flags 4 0
05D8: AS_assign_scmpath to_actor 8@ flags 4 0
05D8: AS_assign_scmpath to_actor 9@ flags 4 0
05D8: AS_assign_scmpath to_actor 10@ flags 4 0
05D8: AS_assign_scmpath to_actor 11@ flags 4 0
05D8: AS_assign_scmpath to_actor 12@ flags 4 0
05D8: AS_assign_scmpath to_actor 13@ flags 4 0
05D8: AS_assign_scmpath to_actor 14@ flags 4 0
Jump @folt2_5
end_thread
:folt2_5
wait 0
if or
00E1: key_pressed 0 17
00E1: key_pressed 0 6  
jf @folt2_5
Jump @folt2_6
:folt2_6
wait 1000
if and
actor.DestroyInstantly(6@)
actor.DestroyInstantly(7@)
actor.DestroyInstantly(8@)
actor.DestroyInstantly(9@)
actor.DestroyInstantly(10@)
actor.DestroyInstantly(11@)
actor.DestroyInstantly(12@)
actor.DestroyInstantly(13@)
actor.DestroyInstantly(14@)
jf @folt2_6
Jump @folt2_7
:folt2_7
wait 0
if 
player.defined($Player_char)
jf @folt2_7
wait 0
model.load(258) 
model.load(253)
model.load(260)
038B: load_requested_models
Jump @folt2_8
:folt2_8
wait 0
if and
05D6: clear_scmpath 
00C0: set_current_time_to 00 minutes_to 00
01b6: set_weather 19
model.available(258)
model.available(253)
model.available(260)
jf @folt2_8
wait 0
04C4: create_coordinate $X1 $Y1 $Z1 from_actor $PLAYER_ACTOR offset 0.0 -5.5 0.0
actor.Create(6@,4,253,$X1,$Y1,$Z1)
wait 0
04C4: create_coordinate $X1 $Y1 $Z1 from_actor $PLAYER_ACTOR offset 0.0 -6.0 0.0
actor.Create(7@,4,260,$X1,$Y1,$Z1)
wait 0
04C4: create_coordinate $X1 $Y1 $Z1 from_actor $PLAYER_ACTOR offset 0.0 -6.5 0.0
actor.Create(8@,4,258,$X1,$Y1,$Z1)
Actor.SetImmunities(6@, 1, 1, 1, 1, 0)
Actor.SetImmunities(7@, 1, 1, 1, 1, 0)
Actor.SetImmunities(8@, 1, 1, 1, 1, 0)
Actor.Health(6@) = 500
Actor.Health(7@) = 500
Actor.Health(8@) = 500 
0850: AS_actor 6@ follow_actor $PLAYER_ACTOR 
05E2: AS_actor 6@ kill_actor $PLAYER_ACTOR 
0850: AS_actor 7@ follow_actor $PLAYER_ACTOR 
05E2: AS_actor 7@ kill_actor $PLAYER_ACTOR
0850: AS_actor 8@ follow_actor $PLAYER_ACTOR 
05E2: AS_actor 8@ kill_actor $PLAYER_ACTOR
Jump @folt2_9
:folt2_9_1
wait 0
04C4: create_coordinate $X1 $Y1 $Z1 from_actor $PLAYER_ACTOR offset 0.0 -5.0 0.0
actor.Create(9@,4,253,$X1,$Y1,$Z1)
wait 0
04C4: create_coordinate $X1 $Y1 $Z1 from_actor $PLAYER_ACTOR offset 0.0 -6.5 0.0
actor.Create(10@,4,260,$X1,$Y1,$Z1)
wait 0
04C4: create_coordinate $X1 $Y1 $Z1 from_actor $PLAYER_ACTOR offset 0.0 -7.0 0.0
actor.Create(11@,4,258,$X1,$Y1,$Z1) 
Actor.SetImmunities(9@, 1, 1, 1, 1, 0)
Actor.SetImmunities(10@, 1, 1, 1, 1, 0)
Actor.SetImmunities(11@, 1, 1, 1, 1, 0)
Actor.Health(9@) = 500
Actor.Health(10@) = 500
Actor.Health(11@) = 500 
0850: AS_actor 9@ follow_actor $PLAYER_ACTOR 
05E2: AS_actor 9@ kill_actor $PLAYER_ACTOR 
0850: AS_actor 10@ follow_actor $PLAYER_ACTOR 
05E2: AS_actor 10@ kill_actor $PLAYER_ACTOR
0850: AS_actor 11@ follow_actor $PLAYER_ACTOR 
05E2: AS_actor 11@ kill_actor $PLAYER_ACTOR 
jump @folt3
:folt2_9_2
wait 0
04C4: create_coordinate $X1 $Y1 $Z1 from_actor $PLAYER_ACTOR offset 0.0 -5.5 0.0
actor.Create(12@,4,253,$X1,$Y1,$Z1)
wait 0
04C4: create_coordinate $X1 $Y1 $Z1 from_actor $PLAYER_ACTOR offset 0.0 -6.0 0.0
actor.Create(13@,4,260,$X1,$Y1,$Z1)
wait 0
04C4: create_coordinate $X1 $Y1 $Z1 from_actor $PLAYER_ACTOR offset 0.0 -6.5 0.0
actor.Create(14@,4,258,$X1,$Y1,$Z1)
Actor.SetImmunities(12@, 1, 1, 1, 1, 0)
Actor.SetImmunities(13@, 1, 1, 1, 1, 0)
Actor.SetImmunities(14@, 1, 1, 1, 1, 0)
Actor.Health(12@) = 500
Actor.Health(13@) = 500
Actor.Health(14@) = 500
0850: AS_actor 12@ follow_actor $PLAYER_ACTOR 
05E2: AS_actor 12@ kill_actor $PLAYER_ACTOR 
0850: AS_actor 13@ follow_actor $PLAYER_ACTOR 
05E2: AS_actor 13@ kill_actor $PLAYER_ACTOR
0850: AS_actor 14@ follow_actor $PLAYER_ACTOR
05E2: AS_actor 14@ kill_actor $PLAYER_ACTOR
jump @folt3_1
end_thread
:folt2_9
wait 0 
if and
Actor.Dead(6@)
Actor.Dead(7@)
Actor.Dead(8@)
jf @folt2_9
actor.DestroyInstantly(6@)
actor.DestroyInstantly(7@)
actor.DestroyInstantly(8@)
jump @folt2_9_1
:folt3
wait 0 
if and
Actor.Dead(9@)
Actor.Dead(10@)
Actor.Dead(11@)
jf @folt3
actor.DestroyInstantly(9@)
actor.DestroyInstantly(10@)
actor.DestroyInstantly(11@)
jump @folt2_9_2
:folt3_1
wait 0
if and
Actor.Dead(12@)
Actor.Dead(13@)
Actor.Dead(14@)
jf @folt3_1
actor.DestroyInstantly(12@)
actor.DestroyInstantly(13@)
actor.DestroyInstantly(14@)  
jump @folt4
end_thread
:folt4
wait 0 
if 
player.defined($Player_char)
jf @folt4
 wait 2000
0394: play_music 2
01b6: set_weather 18
jump @folt4_1
:folt4_1
wait 5000
if and
model.destroy(258)
model.destroy(253)
model.destroy(260)
jf @folt4_1
jump @folt4_2
:folt4_2
wait 1000
if and
Object.Destroy(1@ 5713) 
Object.Destroy(2@ 5713) 
Object.Destroy(3@ 5714) 
Object.Destroy(4@ 5715) 
Object.Destroy(5@ 9833)
jf @folt4_2
jump @folt
					Offline