You are not logged in.
GTA III - 300 метров. Правда на украинском) -- http://www.ex.ua/view/666042
Я нашел 80E9: not player $PLAYER_CHAR 0 $CRIMINAL_FOR_VIGILANTE radius 100.0 100.0 - это вроде бы он.
Вот я уже 3-ий день мучаюсь со скриптом зомби.
Сделал как бы но после того как убиваешь 5-ого (второй круг создания) то игра виснет.
Я уже все перепробывал: нифига...
0001: wait 0 ms
:AK_4
03A4: name_thread 'AK'
0001: wait 0 ms
0004: $ONMISSION = 1 // integer values
00D6: if
0256: player $PLAYER_ACTOR defined
004D: jump_if_false @AK_4
0247: request_model #AK47
0247: request_model #GANG03
038B: load_requested_models
:AK_62
00D6: if or
8248: not model #AK47 available
8248: not model #GANG03 available
004D: jump_if_false @AK_103
0001: wait 0 ms
0002: jump @AK_62
:AK_103
0001: wait 0 ms
01B6: set_weather 3
01EB: set_car_density_to 0.0
03DE: set_pedestrians_density_multiplier_to 0.0
0054: store_player $PLAYER_CHAR position_to 1@ 2@ 3@
01B1: give_player $PLAYER_CHAR weapon 5 ammo 7000
:AK_145
0009: 1@ += 10.5 // floating-point values
0009: 2@ += 10.5 // floating-point values
0009: 3@ += 2.5 // floating-point values
009A: 12@ = create_actor 21 #GANG03 at 1@ 2@ 3@
00A0: store_actor 12@ position_to 1@ 2@ 3@
01CC: actor 12@ kill_player $PLAYER_CHAR
0009: 1@ += 13.5 // floating-point values
0009: 2@ += 13.5 // floating-point values
0009: 3@ += 2.5 // floating-point values
009A: 13@ = create_actor 21 #GANG03 at 1@ 2@ 3@
00A0: store_actor 13@ position_to 1@ 2@ 3@
01CC: actor 13@ kill_player $PLAYER_CHAR
0009: 1@ += -10.5 // floating-point values
0009: 2@ += -10.5 // floating-point values
0009: 3@ += 2.5 // floating-point values
009A: 14@ = create_actor 21 #GANG03 at 1@ 2@ 3@
00A0: store_actor 14@ position_to 1@ 2@ 3@
01CC: actor 14@ kill_player $PLAYER_CHAR
0009: 1@ += -13.5 // floating-point values
0009: 2@ += -13.5 // floating-point values
0009: 3@ += 2.5 // floating-point values
009A: 15@ = create_actor 21 #GANG03 at 1@ 2@ 3@
00A0: store_actor 15@ position_to 1@ 2@ 3@
01CC: actor 15@ kill_player $PLAYER_CHAR
:AK_401
0001: wait 0 ms
0050: gosub @AK_640
0001: wait 0 ms
0050: gosub @AK_738
0001: wait 0 ms
0050: gosub @AK_832
0001: wait 0 ms
0050: gosub @AK_926
0001: wait 0 ms
00D6: if
0118: actor 12@ dead
004D: jump_if_false @AK_401
0001: wait 0 ms
00D6: if
0118: actor 13@ dead
004D: jump_if_false @AK_401
0001: wait 0 ms
00D6: if
0118: actor 14@ dead
004D: jump_if_false @AK_401
0001: wait 0 ms
00D6: if
0118: actor 15@ dead
004D: jump_if_false @AK_401
0001: wait 0 ms
0001: wait 0 ms
00D6: if
0118: actor 12@ dead
004D: jump_if_false @AK_401
0001: wait 0 ms
00D6: if
0118: actor 13@ dead
004D: jump_if_false @AK_401
0001: wait 0 ms
00D6: if
0118: actor 14@ dead
004D: jump_if_false @AK_401
0001: wait 0 ms
00D6: if
0118: actor 15@ dead
004D: jump_if_false @AK_401
0001: wait 0 ms
00D6: if
0118: actor $PLAYER_ACTOR dead
004D: jump_if_false @AK_401
0001: wait 0 ms
0002: jump @AK_1024
:AK_640
00D6: if
0118: actor 12@ dead
004D: jump_if_false @AK_736
034F: destroy_actor_with_fade 12@ // The actor fades away like a ghost
0009: 1@ += 10.5 // floating-point values
0009: 2@ += 10.5 // floating-point values
0009: 3@ += 2.5 // floating-point values
009A: 12@ = create_actor 21 #GANG03 at 1@ 2@ 3@
00A0: store_actor 12@ position_to 1@ 2@ 3@
01CC: actor 12@ kill_player $PLAYER_CHAR
0001: wait 0 ms
0002: jump @AK_401
:AK_736
0051: return
:AK_738
00D6: if
0118: actor 13@ dead
004D: jump_if_false @AK_830
034F: destroy_actor_with_fade 13@ // The actor fades away like a ghost
0009: 1@ += 13.5 // floating-point values
0009: 2@ += 13.5 // floating-point values
0009: 3@ += 2.5 // floating-point values
009A: 13@ = create_actor 21 #GANG03 at 1@ 2@ 3@
00A0: store_actor 13@ position_to 1@ 2@ 3@
01CC: actor 13@ kill_player $PLAYER_CHAR
0002: jump @AK_401
:AK_830
0051: return
:AK_832
00D6: if
0118: actor 14@ dead
004D: jump_if_false @AK_924
034F: destroy_actor_with_fade 14@ // The actor fades away like a ghost
0009: 1@ += -10.5 // floating-point values
0009: 2@ += -10.5 // floating-point values
0009: 3@ += 2.5 // floating-point values
009A: 14@ = create_actor 21 #GANG03 at 1@ 2@ 3@
00A0: store_actor 14@ position_to 1@ 2@ 3@
01CC: actor 14@ kill_player $PLAYER_CHAR
0002: jump @AK_401
:AK_924
0051: return
:AK_926
0001: wait 0 ms
00D6: if
0118: actor 15@ dead
004D: jump_if_false @AK_1022
034F: destroy_actor_with_fade 15@ // The actor fades away like a ghost
0009: 1@ += -13.5 // floating-point values
0009: 2@ += -13.5 // floating-point values
0009: 3@ += 2.5 // floating-point values
009A: 15@ = create_actor 21 #GANG03 at 1@ 2@ 3@
00A0: store_actor 15@ position_to 1@ 2@ 3@
01CC: actor 15@ kill_player $PLAYER_CHAR
0002: jump @AK_401
:AK_1022
0051: return
:AK_1024
0001: wait 0 ms
0002: jump @AK_145
Записан в AK.cm - тоесть это как бы миссия
Нужен бесконечный цикл создания.Актер умер - тут же появился опять.
Offline
{$CLEO .cm} 03A4: name_thread 'AK' if $ONMISSION == 0 then $ONMISSION = 1 else 05DC: end_custom_thread end 0247: request_model #AK47 0247: request_model #GANG03 038B: load_requested_models while true if and model.Available(#AK47) model.Available(#GANG03) then break end end repeat wait 0 until player.Defined($PLAYER_CHAR) 01B6: set_weather 3 01EB: set_car_density_to 0.0 03DE: set_pedestrians_density_multiplier_to 0.0 0054: store_player $PLAYER_CHAR position_to 1@ 2@ 3@ 01B1: give_player $PLAYER_CHAR weapon 5 ammo 7000 model.Destroy(#AK47) 0009: 1@ += 10.5 // floating-point values 0009: 2@ += 10.5 // floating-point values 009A: 12@ = create_actor 21 #GANG03 at 1@ 2@ -200.0 00A0: store_actor 12@ position_to 1@ 2@ 3@ 01CC: actor 12@ kill_player $PLAYER_CHAR 0009: 1@ += 13.5 // floating-point values 0009: 2@ += 13.5 // floating-point values 009A: 13@ = create_actor 21 #GANG03 at 1@ 2@ -200.0 00A0: store_actor 13@ position_to 1@ 2@ 3@ 01CC: actor 13@ kill_player $PLAYER_CHAR 0009: 1@ += -10.5 // floating-point values 0009: 2@ += -10.5 // floating-point values 009A: 14@ = create_actor 21 #GANG03 at 1@ 2@ -200.0 00A0: store_actor 14@ position_to 1@ 2@ 3@ 01CC: actor 14@ kill_player $PLAYER_CHAR 0009: 1@ += -13.5 // floating-point values 0009: 2@ += -13.5 // floating-point values 0009: 3@ += 2.5 // floating-point values 009A: 15@ = create_actor 21 #GANG03 at 1@ 2@ -200.0 01CC: actor 15@ kill_player $PLAYER_CHAR ///main loop while true wait 0 if not player.Defined($PLAYER_CHAR) then continue end 05F5: call_scm_func @CheckActorDeadAndRecreate params_count 1 12@ 12@ 05F5: call_scm_func @CheckActorDeadAndRecreate params_count 1 13@ 13@ 05F5: call_scm_func @CheckActorDeadAndRecreate params_count 1 14@ 14@ 05F5: call_scm_func @CheckActorDeadAndRecreate params_count 1 15@ 15@ if actor.Dead($PLAYER_ACTOR) then break end end actor.DestroyWithFade(12@) actor.DestroyWithFade(13@) actor.DestroyWithFade(14@) actor.DestroyWithFade(15@) $ONMISSION = 0 model.Destroy(#GANG03) 05DC: end_custom_thread :CheckActorDeadAndRecreate if actor.Dead(0@) then actor.DestroyWithFade(0@) 0054: store_player $PLAYER_CHAR position_to 1@ 2@ 3@ 0009: 1@ += 10.5 // floating-point values 0009: 2@ += 10.5 // floating-point values 009A: 0@ = create_actor 21 #GANG03 at 1@ 2@ -200.0 01CC: actor 0@ kill_player $PLAYER_CHAR end 05F6: ret 1 0@
Offline
Еще раз ОГРОМНОЕ СПАСИБО !
Все работает.
А теперь если не сложно можешь обьяснить, ты применил своё нововведение ( 05F5: call_scm_func @AK_504 1 12@ 12@ ) а как именно оно работает в этом скрипте ? (я прочитал описание клео на первой странице - но если честно ничего не понял) Обьясни пожалуйста,и желательно более "простым языком"
И вот еще что интересно:
:AK_504
00D6: if
0118: actor 0@ dead
004D: jump_if_false @AK_581
034F: destroy_actor_with_fade 0@ // The actor fades away like a ghost
0054: store_player $PLAYER_CHAR position_to 1@ 2@ 3@
0009: 1@ += 10.5 // floating-point values
0009: 2@ += 10.5 // floating-point values
009A: 0@ = create_actor 21 #GANG03 at 1@ 2@ -200.0
01CC: actor 0@ kill_player $PLAYER_CHAR
Как может работать эта проверка на смерть - если актер даже не создан (он создаеться ниже проверки)
и что это за актер? Я так понял это и есть те последующие актеры.
А актеры 12 - 13 - 14 - 15 --- создаються только в первом ?
Скрипт работает отлично. Мне просто интересно что вот это.Помоги разобраться пожалуйста.
Offline
Innocent, спасибо, но на украинском не надо. Ведь если ставить рус, это опять замена ехе и возможные проблемы со вторым диском. Лучше дайте, пожалуйста, ссылки на gta3 рус или англ, главное, чтобы второй диск не просило. Извините за флуд.
Offline
Лучше дайте, пожалуйста, ссылки на gta3 рус или англ, главное, чтобы второй диск не просило. Извините за флуд.
Ну вряд-ли кто-то будет постить ссылки на варез (об этом уже упоминалось ранее).
Как может работать эта проверка на смерть - если актер даже не создан (он создаеться ниже проверки)
и что это за актер? Я так понял это и есть те последующие актеры.
А актеры 12 - 13 - 14 - 15 --- создаються только в первом ?
Идёт обыкновенная проверка переменной. Если у переменной значение нуль - возвращается false и идёт переход на метку 'AK_581'. Если я не так понял - скажи.
Offline
GTASA,какая замена ехе?! Русификатор задевает файлы - Fonts и American.gxt - всё. Никаких замен ехе что за бред...
Почему не устраивает украинский? Если всеравно для моддинга а не для полноценной игры...ну не нравиться ищи сам.Но гта 3 - за 300 метров это редкость.Вообщем чем смог-помог.
Sw[ee]t, если честно то ты меня еще больше запутал.
Там не проверка переменной - там проверка на смерть актера,который создаеться тлько после проверки...
Нужно ждать Aliena - надеюсь он прольёт свет на этот вопрос.
Offline
Еще раз ОГРОМНОЕ СПАСИБО !
Все работает.
А теперь если не сложно можешь обьяснить, ты применил своё нововведение ( 05F5: call_scm_func @AK_504 1 12@ 12@ ) а как именно оно работает в этом скрипте ? (я прочитал описание клео на первой странице - но если честно ничего не понял) Обьясни пожалуйста,и желательно более "простым языком"И вот еще что интересно:
:AK_504
00D6: if
0118: actor 0@ dead
004D: jump_if_false @AK_581
034F: destroy_actor_with_fade 0@ // The actor fades away like a ghost
0054: store_player $PLAYER_CHAR position_to 1@ 2@ 3@
0009: 1@ += 10.5 // floating-point values
0009: 2@ += 10.5 // floating-point values
009A: 0@ = create_actor 21 #GANG03 at 1@ 2@ -200.0
01CC: actor 0@ kill_player $PLAYER_CHARКак может работать эта проверка на смерть - если актер даже не создан (он создаеться ниже проверки)
и что это за актер? Я так понял это и есть те последующие актеры.
А актеры 12 - 13 - 14 - 15 --- создаються только в первом ?Скрипт работает отлично. Мне просто интересно что вот это.Помоги разобраться пожалуйста.
call_scm_func - это не мое нововведение. Подробное описание есть в справке по CLEO 3.
По поводу конкретно этой функции. Она проверяет, умер ли актер, если это так, актер пересоздается и возвращается хэндл нового актера. Если актер не умирал, ничего не происходит, возвращается то же самое, что и на входе.
t]Ну вряд-ли кто-то будет постить ссылки на варез (об этом уже упоминалось ранее)
no-cd для gta 3 - это не варез. Там нет никакой защиты. Просто на диске лежит папка audio, используемая игрой. В CLEO я просто подменяю путь к этой папке.
Offline
call_scm_func - это не мое нововведение. Подробное описание есть в справке по CLEO 3
Даже так? Незнал что это есть в мануале.Прочитал, все равно ничего не понятно.Единственное что я понял что он действует как "госуб" в коде выше.
Если я сделаю вот так,то игра виснет.
AK_504
00D6: if or
0118: actor 0@ dead
00F2: actor $PLAYER_ACTOR near_actor 0@ radius 40.0 40.0 100.0
004D: jump_if_false @AK_581
Пытался создать еще один такой "госуб" но только вместо проверки смерти - вставил вот эту проверку на расстояние - игра снова виснет.
Так же пытался вставить их после всех этих "госубов" - результат тот же.
Можете мне ответить куда вставить эту проверку на отдаленность актеров ???
Offline
Суть scm-функции проста - на нужную метку передаётся определённое число параметров, отрабатывается код, расположенный после этой метки, затем осуществляется возврат параметров в то место, откуда был осуществлён вызов (внимательно прочитай описание в справке СБ).
Если при использовании gosub или scm_func зависает игра, то, возможно, следует применить ожидание (wait)
Last edited by Den_spb (02-04-2010 19:02)
Offline
scm-функцию можно сравнить с gosub, но есть отличие. Каждому gosub-у должен соответствовать свой return, т.е. gosub на определённую метку можно использовать в коде один раз.
Почему один? Я использовал несколько раз. Не только в циклах, но и в разных участках ставил госуб на одну и ту же метку. Или я что-то не так понял, что имел в виду?
Offline
Прошу прощения, это я не до конца разобрался с gosub (часто пользоваться им не приходилось). Можно делать gosub на одну и ту же метку из разных мест кода, при этом return следует написать один раз. Предыдущее сообщение исправил.
Offline
I've added the III CLEO and VC CLEO opcodes to the Opcode Database. There is still a little work to be done before you can download vcscm.ini etc.
Unfortunately it isn't too organized at the moment. I never designed the opcode database to expect CLEO for III or VC and due to SA owning most of those opcodes, I couldn't add all the opcode info. Still, you'll soon be able to get updated .ini's for those games, which will be automatically updated all the same.
Offline
Вот я добился того что бы актеры появлялись по всюду за мной.Но как только они появляються то сразу исчезают. Сразу же.
{$CLEO .cm} // This file was decompiled using scm.ini published by GtaForums.com on 25.11.05 {$VERSION 1.1.0000} {$CLEO .cs} //-------------MAIN--------------- 0001: wait 0 ms 03A4: name_thread 'AK' 0004: $ONMISSION = 1 // integer values 0002: jump @AK_28 :AK_28 0247: request_model #AK47 0247: request_model #SENTINEL 038B: load_requested_models :AK_39 00D6: if and 0248: model #AK47 available 0248: model #SENTINEL available 004D: jump_if_false @AK_66 0002: jump @AK_73 :AK_66 0002: jump @AK_39 :AK_73 0001: wait 0 ms 0256: player $PLAYER_CHAR defined 004D: jump_if_false @AK_73 01B6: set_weather 3 016A: fade 1 0 ms 01EB: set_car_density_to 0.0 01F0: set_max_wanted_level_to 0 03DE: set_pedestrians_density_multiplier_to 0.0 0054: store_player $PLAYER_CHAR position_to 1@ 2@ 3@ 01B1: give_player $PLAYER_CHAR weapon 5 ammo 750 00A5: 6@ = create_car #SENTINEL at 815.3125 -326.375 8.0625 0249: release_model #AK47 0009: 1@ += -15.5 // floating-point values 0009: 2@ += 15.5 // floating-point values 0376: 9@ = create_random_actor 1@ 2@ -200.0 00A0: store_actor 9@ position_to 1@ 2@ 3@ 01CC: actor 9@ kill_player $PLAYER_CHAR 0009: 1@ += -15.5 // floating-point values 0009: 2@ += -15.5 // floating-point values 0376: 10@ = create_random_actor 1@ 2@ -200.0 00A0: store_actor 10@ position_to 1@ 2@ 3@ 01CC: actor 10@ kill_player $PLAYER_CHAR 0009: 1@ += 15.5 // floating-point values 0009: 2@ += -15.5 // floating-point values 0376: 11@ = create_random_actor 1@ 2@ -200.0 00A0: store_actor 11@ position_to 1@ 2@ 3@ 01CC: actor 11@ kill_player $PLAYER_CHAR 0009: 1@ += 15.5 // floating-point values 0009: 2@ += 15.5 // floating-point values 0376: 12@ = create_random_actor 1@ 2@ -200.0 00A0: store_actor 12@ position_to 1@ 2@ 3@ 01CC: actor 12@ kill_player $PLAYER_CHAR 0009: 1@ += -10.5 // floating-point values 0009: 2@ += -10.5 // floating-point values 0376: 13@ = create_random_actor 1@ 2@ -200.0 00A0: store_actor 13@ position_to 1@ 2@ 3@ 01CC: actor 13@ kill_player $PLAYER_CHAR 0009: 1@ += -10.5 // floating-point values 0009: 2@ += 10.5 // floating-point values 0376: 14@ = create_random_actor 1@ 2@ -200.0 00A0: store_actor 14@ position_to 1@ 2@ 3@ 01CC: actor 14@ kill_player $PLAYER_CHAR 0009: 1@ += 10.5 // floating-point values 0009: 2@ += -10.5 // floating-point values 0376: 15@ = create_random_actor 1@ 2@ -200.0 00A0: store_actor 15@ position_to 1@ 2@ 3@ 01CC: actor 15@ kill_player $PLAYER_CHAR 0009: 1@ += 15.5 // floating-point values 0009: 2@ += 10.5 // floating-point values 0376: 16@ = create_random_actor 1@ 2@ -200.0 00A0: store_actor 16@ position_to 1@ 2@ 3@ 01CC: actor 16@ kill_player $PLAYER_CHAR :AK_574 0001: wait 0 ms 00D6: if 8256: not player $PLAYER_CHAR defined 004D: jump_if_false @AK_601 0002: jump @AK_867 :AK_601 0050: gosub @AK_729 0050: gosub @AK_775 0050: gosub @AK_821 05F5: call_scm_func @AK_923 1 9@ 9@ 05F5: call_scm_func @AK_923 1 10@ 10@ 05F5: call_scm_func @AK_923 1 11@ 11@ 05F5: call_scm_func @AK_923 1 12@ 12@ 05F5: call_scm_func @AK_923 1 13@ 13@ 0001: wait 0 ms 00D6: if 0118: actor $PLAYER_ACTOR dead 004D: jump_if_false @AK_867 0002: jump @AK_874 :AK_729 00D6: if 00F2: actor $PLAYER_ACTOR near_actor 9@ radius 40.0 40.0 40.0 004D: jump_if_false @AK_773 034F: destroy_actor_with_fade 9@ // The actor fades away like a ghost 0001: wait 0 ms 0002: jump @AK_773 :AK_773 0051: return :AK_775 00D6: if 00F2: actor $PLAYER_ACTOR near_actor 10@ radius 40.0 40.0 40.0 004D: jump_if_false @AK_819 034F: destroy_actor_with_fade 10@ // The actor fades away like a ghost 0001: wait 0 ms 0002: jump @AK_819 :AK_819 0051: return :AK_821 00D6: if 00F2: actor $PLAYER_ACTOR near_actor 11@ radius 40.0 40.0 40.0 004D: jump_if_false @AK_865 034F: destroy_actor_with_fade 11@ // The actor fades away like a ghost 0001: wait 0 ms 0002: jump @AK_865 :AK_865 0051: return :AK_867 0002: jump @AK_574 :AK_874 01C2: remove_references_to_actor 9@ // Like turning an actor into a random pedestrian 01C2: remove_references_to_actor 10@ // Like turning an actor into a random pedestrian 01C2: remove_references_to_actor 11@ // Like turning an actor into a random pedestrian 01C2: remove_references_to_actor 12@ // Like turning an actor into a random pedestrian 01C2: remove_references_to_actor 13@ // Like turning an actor into a random pedestrian 01C2: remove_references_to_actor 14@ // Like turning an actor into a random pedestrian 01C2: remove_references_to_actor 15@ // Like turning an actor into a random pedestrian 01C2: remove_references_to_actor 16@ // Like turning an actor into a random pedestrian 0004: $ONMISSION = 0 // integer values 05DC: end_custom_thread :AK_923 0001: wait 0 ms 00D6: if 0118: actor 0@ dead 004D: jump_if_false @AK_1000 01C2: remove_references_to_actor 0@ // Like turning an actor into a random pedestrian 0054: store_player $PLAYER_CHAR position_to 1@ 2@ 3@ 0009: 1@ += 10.5 // floating-point values 0009: 2@ += 15.5 // floating-point values 0376: 0@ = create_random_actor 1@ 2@ -200.0 01CC: actor 0@ kill_player $PLAYER_CHAR :AK_1000 05F6: ret 1 0@
Может мне кто нибудь обьяснить как сделать что бы:
Если актер в дали от меня, то он удалялся и создовался заново возле меня,и никуда не исчезал до того времени пока я его не убью или не буду на расстоянии (хотя бы 40 метров)
И что бы эта проверка была постоянной.
И задевала эта проверка не одного а всех ( тоесть 0@ )
Last edited by Innocent (03-04-2010 01:45)
Offline
:AK_39 00D6: if and 0248: model #AK47 available 0248: model #SENTINEL available 004D: jump_if_false @AK_66 0002: jump @AK_73 :AK_66 0002: jump @AK_39 :AK_73 0001: wait 0 ms
К чему такие сложности с метками? И опять же, не забывай про 'wait'.
Offline
Вот я добился того что бы актеры появлялись по всюду за мной.Но как только они появляються то сразу исчезают. Сразу же.
Правильно, ты же сам создаёшь актёра на расстоянии от 10 до 15.5 метров от игрока, а потом делвешь проверку
:AK_729
00D6: if
00F2: actor $PLAYER_ACTOR near_actor 9@ radius 40.0 40.0 40.0
004D: jump_if_false @AK_773
034F: destroy_actor_with_fade 9@
Надо переделать так
:AK_729
00D6: if
80F2: not actor $PLAYER_ACTOR near_actor 9@ radius 40.0 40.0 40.0
004D: jump_if_false @AK_773
034F: destroy_actor_with_fade 9@
Offline
Поступил еще проще.И все работает.Спасибо d88.
Всё ясно больше не буду засорять тему
Last edited by Innocent (03-04-2010 13:33)
Offline
Прошу не засорять тему вопросами, напрямую не относящимися к CLEO. Для решения скриптовых задач есть отдельный форум.
Offline
Извините что немного не в тему.
[You must login to view hidden text.]
Last edited by XotaBi4b (16-04-2010 21:24)
GTA SA CrashKiller by MadniX , Virtual_Key_Codes for opcode 0AB0
Offline
Да-а, наконец, решил заняться Клео:
Для начала решил записать в отдельный скрипт код карспунера, работающего у меня в чистом мейне - с основным мейном игра не пошла.
{$CLEO} while true :MAIN_138 wait 50 if and 0256: player $PLAYER_CHAR defined 80E0: not player $PLAYER_CHAR driving then if and //0AB0: key_pressed 0x65 //NumPad 5 00E1: key_pressed 0 16 80E1: not key_pressed 0 6 80E1: not key_pressed 0 8 80E1: not key_pressed 0 9 80E1: not key_pressed 0 10 80E1: not key_pressed 0 11 then 005A: 6@ += 4@ if 6@ > 158 then 6@ = 90 end if 6@ < 90 then 6@ = 156 end if or 6@ == 124 6@ == 125 6@ == 140 6@ == 141 6@ == 147 then 0002: jump @MAIN_138 //Continue end 02FD: text_2numbers 'CO_ONE' 6@ 4@ 1500 ms 1 // id ~1~ st ~1~ 0054: store_player $PLAYER_CHAR position_to 0@ 1@ 2@ 0172: 3@ = actor $PLAYER_ACTOR z_angle 02F6: 7@ = cosine 3@ 02F7: 8@ = sinus 3@ 7@ *= -3.0 // floating-point values 8@ *= 3.0 // floating-point values 005B: 0@ += 7@ // floating-point values 005B: 1@ += 8@ // floating-point values 2@ -= 0.8125 3@ -= 270.0 0247: request_model 6@ 038B: load_requested_models while 8248: not model 6@ available wait 10 end wait 100 00A5: 5@ = create_car 6@ at 0@ 1@ 2@ 0175: set_car 5@ z_angle_to 3@ 020A: set_car 5@ door_status_to 1 041E: set_radio_station 9 0 0249: release_model 6@ 01C3: remove_references_to_car 5@ end if and 00E1: key_pressed 0 16 00E1: key_pressed 0 6 then 4@ += 1 // integer values 018C: play_sound 94 at 0.0 0.0 0.0 wait 10 if 4@ > 1 // integer values then 4@ = -1 // integer values 018C: play_sound 94 at 0.0 0.0 0.0 end 02FD: text_2numbers 'CO_ONE' 6@ 4@ 1500 ms 1 end end end
Ладно решил сделать простейший скрипт: нажимаешь на клавишу - машина перекрашивается в случайные цвета, звучит сигнал
{$CLEO} while true wait 50 if 0256: player $PLAYER_CHAR defined then if and 05EE: key_pressed 0x65 //NumPad 5 00E0: player $PLAYER_CHAR driving then 0099: 1@ = random_integer_0-to-130 0099: 2@ = random_integer_0-to-130 //0229: set_car $EIGHT_CAR color_to 1@ 2@ //0185: car $EIGHT_CAR health = 1000 018C: play_sound 94 at 0.0 0.0 0.0 end end end
- с основным мейном игра не пошла, но с чистым мейном(и строчки с car $EIGHT_CAR закоментил), содержащий карспаунер, запустилась, но ... с двумя Томми! Томми, которым я управляю (он первый появился и получил М16!), не может прицелиться через правую кнопку, стреляет в двойника и не попадает, двойник тоже начинает двигаться как и мой ГГ, но в другом направлении, когда сажусь в машину, двойник некоторе время двигается (особенно когда я вперед трогаюсь), но когда я теряю его из вида, а потом возвращаюсь - недалеко уходит. Когда своими движениями я заставляю двойника упасть/прыгнуть в воду - он гибнет, с моим ГГ всё нормально - вот такой мультиплеер-кооператив!
Last edited by reute70 (14-04-2010 08:11)
Offline
Да, забыл, Томми в Вайсе, но от этого суть не меняется, что не так в скрипте, мож, какие NOPы нужны?
Offline
@reute70 - а если так:
{$CLEO} 0000: while true
Offline
XotaBi4b, что-то ссылка не работает.
Offline