Четверг, 28.03.2024, 13:58
Качественные скрипты, моды и дополнения для GTA без регистрации
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » Игры серии ГТА » Скриптинг » Вопросы по созданию КЛЕО-скриптов 2
Вопросы по созданию КЛЕО-скриптов 2
Den_spbДата: Четверг, 07.11.2013, 01:28 | Сообщение # 376
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: 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
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: 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
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: 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
Группа: Пользователи
Сообщений: 77
Статус: 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
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: 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
Группа: Пользователи
Сообщений: 77
Статус: 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
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: 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
Группа: Пользователи
Сообщений: 77
Статус: 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
Прикрепления: whee_buffer_ifa.txt (2.0 Kb)


Сообщение отредактировал Recoil - Четверг, 30.09.2021, 20:10
 
Форум » Игры серии ГТА » Скриптинг » Вопросы по созданию КЛЕО-скриптов 2
Поиск: