You are not logged in.
Pages: 1
Можно в клео сриптах задать пути, по которым ездили бы авто?
А чтобы регистрировало именно каждую нажатую клавишу? Как например поле ввода обычное.
у меня только 2 вагона постоянно + сам тягач по умолчанию. За ссылку спасибо!
Классный скрипт по задумке, но у меня как тока загрузилось (полоса загрузки прошла и начался звук улицы) то игра просто вылетает.
Кто подскажет, как в скриптах некоторых сделано так, что после набора на клавиатуре слова (например в скрипте сохранения SAVE), выполянется код. Т.е. нету (я не могу найти) проверки на нажатие клавиши.
Как это создаётся и как создать свой, кто может подсказать. скрипт-пример могу выложить (качал не помню где, ссылку не найти)
И ещё, есть возможность ввода текстовой строки непосредственно в игре? например как в SA-MP.
Мои примеры понятны? Могу ещё кучу привести, логику тоже объяснить могу, всё просто, тут конструкция вида IF ELSE THEN. я так понимаю вы знаете паскаль и от знаний, полученных при его изучении собираетесь отталкиваться? По хорошему для понимания нужно как минимум 2 языка выучить (например паскаль и с++). По поводу END как такового тут нет, здесь есть потоки и метки. Метки как и в паскале используются, а поток, по идее, это 1 файл (в main.scm потоков несколько), поэтому делая логическое END, ты по сути закрываешь весь поток (соответственно проверка на то, взорвана ли тачка не будет).
Закрыть поток можно так (в CLEO скриптах)
0A93: end_custom_thread
Про опкоды - взорвана ли машина вот тебе:
1)Пример
2)Использование
3)Объяснение
02BF: car @51 sunk 02BF: car $машина sunk Авто тонет, т.е. упало в воду (проверка). 0119: car @0 wrecked 0119: car $машина wrecked Машина разбита/взорвана/уничтожена (проверка). 03C9: car @73 damaged 03C9: car $машина damaged Авто повреждено (проверка).
1) Условия формируются так:
if and //if and-команда начала условия,все подусловия которого выполняются. 80E1: NOT key_pressed 0 19 // Подусловие 0256: player $PLAYER_ACTOR defined // Подусловие 00DF: actor $PLAYER_ACTOR driving // Подусловие jf @Test_2 // Аналог ELSE - то есть если 3 условия не выполнены, то переходим на метку ЗДЕСЬ уже будет располагаться код, который должен быть выполнен в случае, когда все 3 условия верны
Если условие одно, можно писать просто "if" или если нужно выполение одного из условий, то вместо AND пишешь OR. Вообще почитай справку по основам скриптинга для main.scm
То что ты описал сделать просто, логически так:
В начале скрипта (например по нажатию клавиши, сохраняешь в переменную, и потом проверяешь, пока не взорвана тачка) а там хоть денги, хоть что делай!
{$CLEO .cs} :DEMO 03A4: name_thread "DEMO" wait 1000 :DEMO_1 wait 0 if and 80E1: key_pressed 0 19 0256: player $PLAYER_ACTOR defined jf @DEMO_1 // запоминаем в переменную тачку 0811: $10932 = actor $PLAYER_ACTOR car // переходим на проверку не уничтожена ли тачка Jump @DEMO_2 :DEMO_2 if ТУТ ОПКОД, возвращающий не разрушена ли тачка, вот его я не помню jf @DEMO_2 //тут уже что хочешь дальше пиши, что делать после того, как тачка взорвана
да у меня версия библиотеки клео 4, с офф сайта качал. в сани билдере в последнем, строки
//0ACA: show_text_box "Проигрывается звук!" 0ACA: show_text_box "€ўyk ak¦њўњpoўa®!"
Когда первую раскоменчиваю, там тупо пусто (один воскрицательый знак видно) а во втором кракозябвы в таком же виде (кракозябры получил путём перевода той прогой, что посоветовали)
Sergey81, спасибо!
Про поезда тоже интересно. Если найду сам, обязательно отпишусь
Как изменить текущую строку имен миссии (используется для названия сохранения). И вообще делается ли это через редактирование памяти или есть опкод? (не нашёл оного)
+для самообучения:
А есть ли где список участков памяти, которые можно редактировать под свои нужды (т.е. какой участок памяти за что отвечает), например изменить цвет звёздочек уровня преступности (это я нашёл), изменить стандартный текст мисии и т.д.? (ещё был мод, которые изменял количество поездов, но тогда просто патчился ЕХЕ, а в памяти же абсолютно другие области по идее, хотя можно было бы найти значения, но вот знать бы что искать).
Den_spb, спасибо!
Апкод и правда простой
0ACA: show_text_box "Hello, world!"
Вот только если ввожу Русски буквы, то не работает (хотя я подразумевал, что не будет работать). Нужно как то по особому задавать строку или из скрипта нет возможности русские символы выводить?
Раньше писал скрипты для 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
Цель - вывести текст, находящийся непосредственно в скрипте. а не в файле *.гфх
Pages: 1