Вопросы по созданию КЛЕО-скриптов 2
|
|
Den_spb | Дата: Четверг, 07.11.2013, 01:28 | Сообщение # 376 |
Создатель сайта
Группа: Администраторы
Сообщений: 1603
Статус: Offline
| Цитата d88 ( ) А через скрипт это можно сделать? Как это сделать скриптом - на данный момент не знаю. Надо разбираться, как в памяти игры хранятся точки остановок.
Цитата d88 ( ) Если использовать второй способ, то созданные скриптом поезда будут ехать без остановок? Поезд, созданный скриптом и приведённый в движение, сам по себе нигде не останавливается (исключение - преграды перед недоступными городами).
|
|
| |
yarkylz(1) | Дата: Вторник, 10.12.2013, 20:06 | Сообщение # 377 |
Группа: Пользователи
Сообщений: 1
Статус: Offline
| Мой первый опыт в CLEO скриптинге,сделано при помощи sampfuncs {$CLEO .cs} 0000: NOP //-------------MAIN--------------- wait 0 :PROVERKAID if and wait 0 0AB0: key_pressed 48 wait 0 then 0B2B: samp 2@ = get_player_id_by_actor_handle 2@ 0ACB: show_styled_text 2@v time 500 style 2@ 0ACD: show_text_highpriority 2@ time 500 0ACA: show_text_box 2@v jump @PROVERKAID wait 0 end 0A93: end_custom_thread
Почему не показывает пинг игрока?
|
|
| |
Den_spb | Дата: Среда, 11.12.2013, 20:50 | Сообщение # 378 |
Создатель сайта
Группа: Администраторы
Сообщений: 1603
Статус: Offline
| Маловероятно, что здесь кто-то сможет помочь со скриптами для SAMP - этот сайт посвящен клео-скриптингу в одиночной игре.
|
|
| |
d13m1 | Дата: Четверг, 12.12.2013, 19:27 | Сообщение # 379 |
Группа: Пользователи
Сообщений: 1
Статус: Offline
| Цитата yarkylz(1) ( ) Почему не показывает пинг игрока? наверное потому, что скрипт не зациклен и заканчивает свою работу (0а93) после неудачной проверки на нажатие клавиши
|
|
| |
ILYALION | Дата: Суббота, 26.04.2014, 10:38 | Сообщение # 380 |
Группа: Проверенные
Сообщений: 325
Статус: Offline
| Возможно ли отключить внешний скрипт из main.scm через CLEO?
|
|
| |
Den_spb | Дата: Суббота, 26.04.2014, 17:21 | Сообщение # 381 |
Создатель сайта
Группа: Администраторы
Сообщений: 1603
Статус: Offline
| Попробуй опкод завершения потока: Код 0459: end_thread_named 'INT'
|
|
| |
ILYALION | Дата: Суббота, 26.04.2014, 20:35 | Сообщение # 382 |
Группа: Проверенные
Сообщений: 325
Статус: Offline
| Спасибо, сработало.
|
|
| |
AsT | Дата: Суббота, 16.08.2014, 02:13 | Сообщение # 383 |
Группа: Пользователи
Сообщений: 1
Статус: Offline
| Код http://rghost.ru/private/57491766/43314eff0474de0993407839418638b8 Что не так?(
|
|
| |
pro12 | Дата: Вторник, 06.01.2015, 19:18 | Сообщение # 384 |
Группа: Пользователи
Сообщений: 1
Статус: Offline
| Код {$CLEO .cs} thread 'Actor' :Actor wait 0 if player.Defined(0) jf @Actor if and not actor.Dead($PLAYER_ACTOR) not actor.Driving($PLAYER_ACTOR) 0AB0: key_pressed 57 jf @Actor :Actor2 repeat wait 100 until player.Defined(0) model.Load(#micro_uzi) Model.Load(#FAM2) 038B: load_requested_models if Model.Available(#micro_uzi) Model.Available(#FAM2) 04C4: create_coordinate 4@ 5@ 6@ from_actor $PLAYER_ACTOR offset 0.0 1.2 0.0 3@ = Actor.Create(Gang2,#FAM2, 4@, 5@, 6@) 7@ = Marker.CreateAboveActor(3@) 0631: put_actor 3@ in_group $PLAYER_GROUP 02E2: set_actor 3@ weapon_accuracy_to 100
0631: put_actor 3@ in_group $PLAYER_GROUP 0709: set_decision_maker 3@ on_event 9 task 413 respect 0.0 hate 100.0 like 0.0 dislike 0.0 in_car 0 on_foot 1 0709: set_decision_maker 3@ on_event 41 task 413 respect 0.0 hate 100.0 like 0.0 dislike 0.0 in_car 0 on_foot 1 01B2: give_actor 3@ weapon 28 ammo 6090 // Load the weapon model before using this 0713: actor 3@ driveby_actor -1 car -1 point 952.92 -1102.99 22.85 radius 100.0 4 1 firing_rate 90 if and Model.Destroy(#micro_uzi) Model.Destroy(#FAM2) jf @Actor2 actor.Health(3@)= 1000 04F7: status_text $HLT 0 line 1 'TEXT4' while true wait 0 $HLT = actor.Health(3@) if or not player.Defined(0) 8104: actor $PLAYER_ACTOR near_actor 3@ radius 500.0 500.0 50.0 sphere 0 then 3@ = @Actor break else if actor.Dead(3@) then break end end end 0151: remove_status_text $HLT wait 1 actor.RemoveReferences(3@) jump @Actor2 end_thread Создал чела из grove на охрану CJ,как можно его заставить стрелять по машине преступника как в миссии полиции ?
Сообщение отредактировал pro12 - Четверг, 08.01.2015, 23:49 |
|
| |
laggth | Дата: Вторник, 09.01.2018, 21:44 | Сообщение # 385 |
Группа: Пользователи
Сообщений: 84
Статус: Offline
| Почему,когда актёр сидит в машине и его арестовывают,игра закрывается с ошибкой? ,когда машина тонет без актёра,тоже бывает ошибка.
{$CLEO .CS}
0000: NOP
:NONAME_2 wait 0 if Player.Defined($PLAYER_CHAR) jf @NONAME_2
:non_3 wait 0 if and 03C0: 0@ = actor $PLAYER_ACTOR car 056E: car 0@ defined 00DB: actor $PLAYER_ACTOR in_car 0@ jf @non_3 //02AC: set_car 0@ immunities BP 1 FP 1 EP 1 CP 1 MP 1 Car.SetImmunities(0@, 1, 1, 1, 1, 1) 01EC: make_car 0@ very_heavy 1 jump @non_4
:non_4 wait 0 if or //00D9: 0@ = actor $PLAYER_ACTOR car // add to mission cleanup 00DB: actor $PLAYER_ACTOR in_car 0@ ///0202: actor $PLAYER_ACTOR near_car 0@ radius 200.0 200.0 sphere 0 82BF: not car 0@ sunk 81F4: not car 0@ flipped not Actor.Dead($PLAYER_ACTOR) jf @destr jump @basted
:basted wait 0 if or 0112: wasted_or_busted // mission only 0119: car 0@ wrecked jf @non_4 jump @destr
:destr wait 0 01C3: remove_references_to_car 0@ jump @NONAME_2Добавлено (09.01.2018, 21:44) --------------------------------------------- ...Понял-immunities не удалил.Но если ставлю - удалить их в :destr,то они вообще не работают. Напишите пожжалуста скрипт,чтобы он снимал и записывал в файл координаты актёра - по нажатию кнопки "K",например.Очень нужно сделать кучу тракс файлов,а игру при сборе координат сворачивать лень. Добавлено (28.09.2021, 14:42) --------------------------------------------- Как прописать в скрипте такую вещь,чтобы не прописывать при создании поезда: model load 1000,1001,1002... ,model destroy 1000,1001,1002.,чтобы всё это считывалось из памяти,и игра бы работала с одним и тем же скриптом при смене id вагонов в составах через SATL3. (что бы не пришлось переписывать скрипт при замене вагонов в составах)? Добавлено (28.09.2021, 14:42) --------------------------------------------- Как прописать в скрипте такую вещь,чтобы не прописывать при создании поезда: model load 1000,1001,1002... ,model destroy 1000,1001,1002.,чтобы всё это считывалось из памяти,и игра бы работала с одним и тем же скриптом при смене id вагонов в составах через SATL3. (что бы не пришлось переписывать скрипт при замене вагонов в составах)?
Сообщение отредактировал laggth - Четверг, 01.09.2016, 17:52 |
|
| |
Den_spb | Дата: Среда, 29.09.2021, 13:36 | Сообщение # 386 |
Создатель сайта
Группа: Администраторы
Сообщений: 1603
Статус: Offline
| Такой код применяется в "Новом алгоритме". Чтение номеров моделей из памяти и загрузка моделей:Код 0209: 21@ = random_int_in_ranges 0 16 // выбираем тип поезда (1-15) 7@ = -382234 // начало блока адресов памяти, в которых записаны ИД модели вагонов всех поездов 21@ *= 16 // номер типа * максимальное количество вагонов в типе 005A: 7@ += 21@ // (int) - находим начало выбранного типа поезда 0016: 21@ /= 16 while &0(7@,1i) <> 0 // пока ИД вагона ненулевой wait 0 Model.Load(&0(7@,1i)) // загружаем необходимые модели 7@ += 1 end
Проверка загрузки всех моделей:Код 7@ = -382234 21@ *= 16 005A: 7@ += 21@ // (int) 0016: 21@ /= 16 while &0(7@,1i) <> 0 // последовательно проверяем, загружены ли модели repeat wait 0 until Model.Available(&0(7@,1i)) 7@ += 1 end
Если все модели загружены в память, то после этого можно создавать поезд. Возможно загрузить все модели немедленно, добавив после загрузки моделей команду 038B: load_requested_models. Но это делать не рекомендуется, так как игра подвиснет на какое-то время - до тех пор, пока не будут загружены модели. Подробнее об этом коде написано тут: https://sannybuilder.com/forums/viewtopic.php?id=18
|
|
| |
laggth | Дата: Среда, 29.09.2021, 14:46 | Сообщение # 387 |
Группа: Пользователи
Сообщений: 84
Статус: Offline
| Так что ли: Код//-------------MAIN--------------- :noname_30 wait 0 7@ = -382234 21@ *= 16 005A: 7@ += 21@ // (int) 21@ /= 16 jump @noname_32
:NONAME_32 wait 0 not &0(7@,1i) == 0 jf@NONAME_84 jump @noname_50
:NONAME_50 wait 0 Model.Available(&0(7@,1i)) else_jump @NONAME_50 7@ += 1 jump @NONAME_32
:NONAME_84 // Note: a jump to this label will crash the game
:zagrv3 // Note: a jump to this label will crash the game -Это что даёт,эта метка ,-?
Буит ли работать если формировать составы с помощью FLA (gtasa_trainTypeCarriages.dat) -?
Напиши пожалуста в типе с нонэймами джампами и джээфами. я Не понимаю с крипты с циклами. (Раскомпилировался он примерно в таком виде.)
Сообщение отредактировал laggth - Среда, 29.09.2021, 14:48 |
|
| |
Den_spb | Дата: Среда, 29.09.2021, 20:53 | Сообщение # 388 |
Создатель сайта
Группа: Администраторы
Сообщений: 1603
Статус: Offline
| Код {$CLEO} wait 0
:METKA_1 wait 0 if player.Defined($PLAYER_CHAR) jf @METKA_1
00A1: put_actor $PLAYER_ACTOR at -119.7774 -1028.0487 12.0812
21@ = 0 // tip poezda
7@ = -382234 21@ *= 16 005A: 7@ += 21@ // (int) 21@ /= 16
:ZAGRUZKA_MODELEI
if &0(7@,1i) <> 0 jf @KONEC_ZAGRUZKI Model.Load(&0(7@,1i)) 7@ += 1 jump @ZAGRUZKA_MODELEI
:KONEC_ZAGRUZKI
7@ = -382234 21@ *= 16 005A: 7@ += 21@ // (int) 21@ /= 16
:PROVERKA_ZAGRUZKI if &0(7@,1i) <> 0 jf @SOZDANIE_POEZDA
:ZHDAT_ZAGRUZKU wait 0 if Model.Available(&0(7@,1i)) jf @ZHDAT_ZAGRUZKU 7@ += 1 jump @PROVERKA_ZAGRUZKI
:SOZDANIE_POEZDA 06D8: 0@ = create_train_at -119.7774 -1028.0487 12.0812 type 21@ direction 1
:VYGRUZKA_MODELEI
if &0(7@,1i) <> 0 jf @KONEC_SKRIPTA Model.Destroy(&0(7@,1i)) 7@ += 1 jump @VYGRUZKA_MODELEI
:KONEC_SKRIPTA 0A93:
Вот с метками. Каким образом меняются типы поездов - думаю не важно. Всё равно при создании поезда движок берет информацию из игровой памяти, оттуда же информацию берет и этот скрипт.
|
|
| |
laggth | Дата: Четверг, 30.09.2021, 12:09 | Сообщение # 389 |
Группа: Пользователи
Сообщений: 84
Статус: Offline
| Когда актёр появляется у рельс,игра сразу закрывается с ошибкой.
Game crashed unfortunately, here's a crash log: Current process ID: 12124 Current thread ID: 28608 Last file to be loaded: K:\GTA San Andreas - SAxVCxLCBuild0.6a Ring Railway Trains img FLA ot 0.8 American trains trams metro\audio/sfx/genrl Last library loaded: NOT SET Exception address: 0x004C9691 ("gta_sa.exe"+0xC9691) Exception code: 0xC0000005 Exception name: EXCEPTION_ACCESS_VIOLATION Inaccessible memory address: 0x30C
C:\WINDOWS\SYSTEM32\mfperfhelper.dll 1075528 0x58380000 0x00106000 0x5846C3B0 C:\WINDOWS\system32\mlang.dll 198656 0x79370000 0x00034000 0x79380580 Game terminated.
Но после того как я отключил train carriage loader,поезд появился.
#Enable train type carriages loader = 1
; Train carriage loader, max number of vehicles (15) #Train type carriage loader, max number of vehicles for type = 30
; Train carriage loader, number of type IDs (16) #Train type carriage loader, number of type IDs = 18
------------------------------------------------------------------- Сделал так,и поезд из лоадера появился: Enable train type carriages loader = 1
; Train carriage loader, max number of vehicles (15) Train type carriage loader, max number of vehicles for type = 15
; Train carriage loader, number of type IDs (16) Train type carriage loader, number of type IDs = 16 ....................................................................................................................
значит максимально: -вагонов в поезде можно прописывать 15(включая локмотив). -типов поездов всего 16(стандартно). Интересно,можно ли увеличить число типов поездов,и насколько число вагонов(с алгоритмом должно быть стандартно,наверно(15).,без алгоритма - всего carriages =19) ??
|
|
| |
Recoil | Дата: Четверг, 30.09.2021, 20:00 | Сообщение # 390 |
Группа: Проверенные
Сообщений: 12
Статус: Offline
| Такой вопрос, вот скрипт whee_buffer_ifand (во вложении и прекрасно работает), ини файл configuration2.ini [CFG]cfg1 = 0.4 // большой и малый шкив инъекция на ходу 0.5 0x6AC2CD cfg2 = 0.2 // большой шкив бандито на ходу 0.5 0x6ACBA0 cfg3 = 2.5 // малый шкив инъекции на х.х. 1.5 0x6AC2FA cfg4 = 0.1 // большой шкив инъекции на х.х. 0.3 0x6AC2D5 cfg5 = 0.1 // большой шкив бандито на х.х. 0.3 0x6ACBA8 Пробуем сокращенный и упрощенный вриант скрипта через мемори аллокейт, не работает, почему? {$CLEO} 0000:
:READ thread 'READ' wait 0 if 0AAB: file_exists "CLEO\configuration2.ini" jf @END2
:READ_1 wait 0 0AC8: 0@ = allocate_memory_size 16 0AF2: 2@ = get_float_from_ini_file "CLEO\configuration2.ini" section "CFG" key "cfg1" 0A8C: write_memory 0@ size 4 value 2@ virtual_protect 0
0085: 1@ = 0@ 1@ += 4 0AF2: 2@ = get_float_from_ini_file "CLEO\configuration2.ini" section "CFG" key "cfg2" 0A8C: write_memory 1@ size 4 value 2@ virtual_protect 0
1@ += 4 0AF2: 2@ = get_float_from_ini_file "CLEO\configuration2.ini" section "CFG" key "cfg3" 0A8C: write_memory 1@ size 4 value 2@ virtual_protect 0
1@ += 4 0AF2: 2@ = get_float_from_ini_file "CLEO\configuration2.ini" section "CFG" key "cfg4" 0A8C: write_memory 1@ size 4 value 2@ virtual_protect 0
:WRITE wait 0 0085: 1@ = 0@
0A8C: write_memory 0x6AC2CD size 4 value 0@ virtual_protect 1 1@ += 4 0A8C: write_memory 0x6ACBA0 size 4 value 1@ virtual_protect 1 1@ += 4 0A8C: write_memory 0x6AC2FA size 4 value 1@ virtual_protect 1 1@ += 4 0A8C: write_memory 0x6AC2D5 size 4 value 1@ virtual_protect 1
:END 0AC9: free_allocated_memory 0@
:END2 0A93: end_custom_thread
Сообщение отредактировал Recoil - Четверг, 30.09.2021, 20:10 |
|
| |