Популярные страницы сайта: скачать GTA: San Andreas на Андроид, iPhone, iPad, ПК, читы и коды.

Перейти к содержимому


Фото

Обсуждение и публикация Cleo-скриптов


  • Авторизуйтесь для ответа в теме
2746 ответов в этой теме

#2701 svyatogor2007

svyatogor2007

    Уважаемый

  • Members
  • 292 сообщений
  • Регистрация 29.01.2008

Отправлено 16 Январь 2018 - 22:09

В общем разобрался я, что за фигня с сохранением потока, вопрос возник, можно как то задать проверку, создан буфер памяти или нет? Походу вылет из-за того, что скрипт пытается обратиться к несуществующей памяти. 



#2702 kenking

kenking

    Скриптер

  • Modmakers
  • 1 967 сообщений
  • Регистрация 19.02.2009
  • Страна:

Отправлено 17 Январь 2018 - 06:40

Буфер создаётся при запуске скрипта. Скрипт запускается после старта игры. Буфер в сохранение не записывается. При другом старте игры создаётся другой буфер и он будет пустым пока не запишешь туда данные. Тебе надо использовать либо локальные переменные (как это было сделано в моём скрипте), но их количество ограничено, либо использовать глобальные переменные var (как в том примере, что ты изначально показывал), либо записывать данные в ini файл (подобный скрипт в сети тоже был), а при старте другой игры считывать данные оттуда в переменные и дальше записывать в буфер.


Понравился скрипт - отсыпь поинтов

0_12e0d6_afb2eb5e_orig.png


#2703 svyatogor2007

svyatogor2007

    Уважаемый

  • Members
  • 292 сообщений
  • Регистрация 29.01.2008

Отправлено 17 Январь 2018 - 15:27

Буфер создаётся при запуске скрипта. Скрипт запускается после старта игры. Буфер в сохранение не записывается. При другом старте игры создаётся другой буфер и он будет пустым пока не запишешь туда данные. 

 

В том то и дело. Не создается буфер при другом старте. Поток стартует там, где закончился и проскакивает метку создания буфера, даже если ее поставить до старта потока. То что буфер будет пустой при старте я понимаю, просто думал, что бы при старте скрипта скидывать данные из ini файла в буфер, а потом уже пользоваться им, ибо он работает быстрее, да и лишних строк кода нет. Если постоянно ini файл записывать/читать, скрит тут же вдвое разростется, плюс глюки если что-то не успеет записаться, прочитаться. В общем вариант так себе, уже проверил. Вот поэтому и думал, дать скрипту понять, что он только что стартовал и ему надо пересоздать буфер. Глобальные переменные тоже не хочу использовать, по сути мне в буфере хранить только номера деталей тюнинга, тогда можно некоторые настройки прикрутить через тот-же ini, и переменных остается как раз, что бы сохранить прицеп.



#2704 kenking

kenking

    Скриптер

  • Modmakers
  • 1 967 сообщений
  • Регистрация 19.02.2009
  • Страна:

Отправлено 17 Январь 2018 - 15:36

Я имел ввиду не загрузку другого (или этого же) сохранения повторно или начало новой игры, а выход из игры полностью и запуск игры опять. Тогда буфер создастся заново. 
 


Понравился скрипт - отсыпь поинтов

0_12e0d6_afb2eb5e_orig.png


#2705 svyatogor2007

svyatogor2007

    Уважаемый

  • Members
  • 292 сообщений
  • Регистрация 29.01.2008

Отправлено 17 Январь 2018 - 16:33

Я имел ввиду не загрузку другого (или этого же) сохранения повторно или начало новой игры, а выход из игры полностью и запуск игры опять. Тогда буфер создастся заново. 
 

 

Только что проверил. Если в скрипте стоит  0A95: enable_thread_saving , то поток сохраняется там где он был на момент сохранения. Т.е. команды

 0AC6: 0@ = label @label offset или 0AC8: 0@ = allocate_memory_size 260 не отрабатываются. Причем не важно где они стоят. Чтобы создать буфер, надо что бы поток прошелся по этим опкодам, тогда буфер создастся. Такие дела. 

Причем попытка записать данные в несуществующий буфер проскакивает, а попытка прочитать приводит к вылету. Сначала думал если перезапустить игру, переменная буфера принимает нулевое значение, но нифига, проверка 

if

0@ == 0

then

0AC6: 0@ = label @label offset не прокатила. 

В общем думаю придется отказаться от сохранения прицепов, или делать для них отдельный скрипт и потом как то пытаться прицепить прицеп из одного скрипта к машине из другого.



#2706 kenking

kenking

    Скриптер

  • Modmakers
  • 1 967 сообщений
  • Регистрация 19.02.2009
  • Страна:

Отправлено 17 Январь 2018 - 16:52

А зачем тебе ставить опкод 0A95 в этом скрипте? Повторяю - буфер и его данные в сохранение не записываются. Тебе надо записать данные в ini файл. При старте скрипта считывать из ini данные в буфер и потом спокойно с этими данными работать.


Понравился скрипт - отсыпь поинтов

0_12e0d6_afb2eb5e_orig.png


#2707 svyatogor2007

svyatogor2007

    Уважаемый

  • Members
  • 292 сообщений
  • Регистрация 29.01.2008

Отправлено 17 Январь 2018 - 18:01

А зачем тебе ставить опкод 0A95 в этом скрипте? Повторяю - буфер и его данные в сохранение не записываются. Тебе надо записать данные в ini файл. При старте скрипта считывать из ini данные в буфер и потом спокойно с этими данными работать.

 

Я хотел все основные данные хранить просто в переменных, а второстепенную информацию скидывать в ini. Тогда будет меньше строк кода, и не будет глюков, например игрок сохранил авто, потом сохранил игру, потом сел в авто и через сколько-то времени вылетел, ибо gta частенько этим страдает. Загрузился, а машины то и нету. Да и как выше писал, меньше циклов перезаписи, мотоциклам например вообще данные о тюнинге не нужны, лодкам и самолетам тоже. 

В общем фиг с ним с буфером, если можно как то положительно решить другое: я рядом с машиной спавню прицеп. Можно его как то захватить и прицепить к машине? В смысле, что скрипт не знает о прицепе, прицеп как бы отдельно создался.


Сообщение изменено: svyatogor2007 (17 Январь 2018 - 18:02)


#2708 kenking

kenking

    Скриптер

  • Modmakers
  • 1 967 сообщений
  • Регистрация 19.02.2009
  • Страна:

Отправлено 18 Январь 2018 - 07:10

Если ты создаёшь прицеп в этом же скрипте, то можно сразу после создания прицепа прицепить его к тягачу. В моём скрипте для сохранения авто есть это, посмотри. Если ты создаёшь прицеп в другом скрипте, то надо "захватить" прицеп в переменную. Для этого есть несколько опкодов. Здесь почитай.


Понравился скрипт - отсыпь поинтов

0_12e0d6_afb2eb5e_orig.png


#2709 svyatogor2007

svyatogor2007

    Уважаемый

  • Members
  • 292 сообщений
  • Регистрация 29.01.2008

Отправлено 18 Январь 2018 - 12:05

Если ты создаёшь прицеп в этом же скрипте, то можно сразу после создания прицепа прицепить его к тягачу. В моём скрипте для сохранения авто есть это, посмотри. Если ты создаёшь прицеп в другом скрипте, то надо "захватить" прицеп в переменную. Для этого есть несколько опкодов. Здесь почитай.

 

Спасиб, только уже разобрался. Мне только под вечер вчера мысля пришла, что на грузовики все равно тюнинг не поставишь, соответственно можно переменные тюнинга использовать для прицепа. В общем буфер удалил, скрипт переделал, теперь с сохранением проблем нет, правда скрипт потолстел, уже за 30кб весит  :facepalm:

------- Добавлено:

У меня уже реально мозги кипят, но я не понимаю что можно сделать. В общем разобрался со всем, прицепы сделал, сохранения сделал, вылеты победил... А нифига не победил, при попытке сохранить тягач без прицепа, игра вылетат, так как пытается узнать у него детали тюнинха. Весь вечер бьюсь, но никак не соображу, как указать скрипту, что тюнинга тут быть не может, или придется все модели указывать в скрипте?


Сообщение изменено: svyatogor2007 (19 Январь 2018 - 00:22)


#2710 kenking

kenking

    Скриптер

  • Modmakers
  • 1 967 сообщений
  • Регистрация 19.02.2009
  • Страна:

Отправлено 19 Январь 2018 - 09:16

А нифига не победил, при попытке сохранить тягач без прицепа, игра вылетат, так как пытается узнать у него детали тюнинха.

Ну так а я о чём писал изначально? troll.png  Помню, что там была какая-то проблема, поэтому и сделал сохранение с тюнингом и без на разные клавиши.

 

Можно попробовать перед опкодами считывания деталей тюнинга сделать проверку считывания первого адреса для записи номеров ID деталей тюнинга в структуре транспорта. В случае нулевого значения, пропускать запись тюнинга.


Понравился скрипт - отсыпь поинтов

0_12e0d6_afb2eb5e_orig.png


#2711 Constantines

Constantines

    Наемник

  • Members
  • 44 сообщений
  • Регистрация 29.05.2017

Отправлено 19 Январь 2018 - 13:09

Всем привет. А есть какой скрипт на добавление новых полицейских машин. коп+ не предлагать. нужно что бы менты катались на новых, а не я. Мои поиске в яндексе пока ни к чему не привели. Нашел DLC BigCop ща потестим. Ну и потестить его тоже не удалось. Начало новой игры и сражу же вылет.


Сообщение изменено: Constantines (19 Январь 2018 - 13:42)


#2712 PairDuck

PairDuck

    Гадкий утёнок

  • Members
  • 436 сообщений
  • Регистрация 04.08.2015
  • Страна:

Отправлено 19 Январь 2018 - 15:09

DLC BigCop

По моим наблюдениям в игре, просто на добавленных позициях машины типа полицейских, и педы типа копы. По факту никак не полезны и ничего не дают.


ШОК-СЕНСАЦИЯ! Утки научились читать DVD!


#2713 spacemarine

spacemarine

    Наемник

  • Members
  • 29 сообщений
  • Регистрация 27.10.2017

Отправлено 19 Январь 2018 - 17:28

Всем привет. А есть какой скрипт на добавление новых полицейских машин. коп+ не предлагать. нужно что бы менты катались на новых, а не я. Мои поиске в яндексе пока ни к чему не привели. Нашел DLC BigCop ща потестим. Ну и потестить его тоже не удалось. Начало новой игры и сражу же вылет.

Здесь на форуме кто-то советовал Wanted Level Editor. http://www.mediafire...Editor_1.08.rar Там относительно непросто настроить (все через ini, инструкций нет, но если чуток владеть аглицким, по названиям параметров все понятно). Машины, мотоциклы и новых копов добавлять получалось, но относительно безглючности и отказоустойчивости не было времени протестировать.



#2714 svyatogor2007

svyatogor2007

    Уважаемый

  • Members
  • 292 сообщений
  • Регистрация 29.01.2008

Отправлено 20 Январь 2018 - 03:31

Ну так а я о чём писал изначально? troll.png  Помню, что там была какая-то проблема, поэтому и сделал сохранение с тюнингом и без на разные клавиши.

 

Можно попробовать перед опкодами считывания деталей тюнинга сделать проверку считывания первого адреса для записи номеров ID деталей тюнинга в структуре транспорта. В случае нулевого значения, пропускать запись тюнинга.

 

Все, получилось. Если брать данные о тюнинге из структуры проблем не возникает, можно сохранять что угодно, хоть трактор.

Я у себя предохранитель поставил, в случае успеха он работает, но меня больше волнует, сработает ли в случае провала. Вот код:

предохранитель

if
not 17@ == 65535
then
06E9: load_car_component 17@
13@ = 0
gosub @SVRSAVE_117
end

jump 14@

:SVRSAVE_117
wait 13@
gosub @SVRSAVE_133
if and
13@ < 200
not 14@ == @SVRSAVE_105
then
if
06EA: car_component 17@ available
then
06E7: 15@ = add_car_component 17@ to_car 1@
06EB: release_car_component 17@
else
jump @SVRSAVE_117
end
end
return

:SVRSAVE_133
13@ += 10
if
056E: car 1@ defined
then
14@ = @SVRSAVE_108
else
14@ = @SVRSAVE_105
13@ = 201
end
return

 

В данном случае: если компонент не загрузился сразу, мы даем время подумать 20 проходов с ожиданием увеличивающимся на 10 миллисекунд, если так и не загрузился, значит просто его игнорируем и переходим на метку _108. После каждого wait проверяем наличие транспорта, если транспорт пропал, значит сразу уходим на метку _105. 



#2715 svyatogor2007

svyatogor2007

    Уважаемый

  • Members
  • 292 сообщений
  • Регистрация 29.01.2008

Отправлено 21 Январь 2018 - 01:50

Ну в общем он вылупился и стал бабочкой.

Пару дней потестировал, проблем вроде не наблюдается. 

 

Что изменилось по сравнению с первой бета версией:

1)Теперь можно сохранять до десяти машин, добавлено сохранение прицепов и маркеры на карте. Весь транспорт сохраняется между игровыми сессиями. Так что можно смело брать Икарус с гармошкой и ехать на миссию  :wink:

 

2)Немного изменил поведение скрипта, теперь транспорт не перезагружается если зайти в помещение или далеко уехать, игра сама определяет когда можно удалить автомобиль, а скрипт загружает модель только при необходимости.

 

3)Настройки кнопок вынес в ini файл и добавил время удерживания кнопки для сохранения. По умолчанию сохранение происходит по принципу GTA4, просто нажали F, персонаж вышел из машины, нажали и удерживаем F 0.3 с, персонаж глушит мотор, автомобиль сохраняется. Еще 9 машин сохраняются кнопками 1-9 на доп клавиатуре с задержкой 0.

 

От сохранения номеров отказался в пользу иконок, все равно сохранялся только один номер и только на не поврежденной детали, но если кому надо, могу выложить версию с номерами. Если к авто прицеплен прицеп, то тюнинг не сохраняется, возможно решу в следующих версиях. Так-же надо понимать, что при спавне авто с прицепом, угол прицепа не сохраняется, поэтому не стоит парковать тягач с прицепом в тесных местах, транспорт может куда нибудь ускакать или застрять в стене. :troll: . Ну и осталась задержка в наложении цвета под покрасочную работу, в зависимости от обстоятельств цвет может примениться только через несколько секунд, тут опять же ограничение игры, без написания дополнительных библиотек от этого не уйти. 

 

В общем кого заинтересовало, прошу: https://yadi.sk/d/DwkgP0uZ3Rdhqd 

ЗЫ. Если у кого-то возникнут проблемы, убедительная просьба сообщить мне, дабы сразу поправить, ибо пока нет возможности протестировать скрипт на разных конфигах и системах. 



#2716 Constantines

Constantines

    Наемник

  • Members
  • 44 сообщений
  • Регистрация 29.05.2017

Отправлено 29 Январь 2018 - 17:32

Всем привет. И так вопрос. Как привязать новую иконку к объекту на карте? То что надо пихнуть иконки в hud.txt, прописать их в gtasa_radarBlipSpriteFilenames.dat и добавить лимит в FLA. Тут понятно. Идея в том, чтобы к устрицам на карте привязать одну и ту же иконку. Но, чтобы после взятия устрицы иконка на карте пропадала. Этот же вопрос задал в разделе  FLA, пока тишина.



#2717 Constantines

Constantines

    Наемник

  • Members
  • 44 сообщений
  • Регистрация 29.05.2017

Отправлено 06 Февраль 2018 - 19:28

Всем привет. и так удалось добавить иконку на карту в указанную точку с помощью Icons_adderа и небольшого скрипта с местоположением иконки. Теперь вопрос как сделать так, чтобы иконка пропадала при взятии ракушки? 

Скрины
0022983846.jpg

0012983847.jpg



#2718 Racer

Racer

    Любитель GTA

  • Activists
  • 573 сообщений
  • Регистрация 03.12.2013
  • Страна:

Отправлено 07 Февраль 2018 - 14:04

Всем привет. и так удалось добавить иконку на карту в указанную точку с помощью Icons_adderа и небольшого скрипта с местоположением иконки. Теперь вопрос как сделать так, чтобы иконка пропадала при взятии ракушки? 

Скрины
0022983846.jpg

0012983847.jpg

А,сам скрипт можешь выложить?



#2719 Constantines

Constantines

    Наемник

  • Members
  • 44 сообщений
  • Регистрация 29.05.2017

Отправлено 07 Февраль 2018 - 18:47

А,сам скрипт можешь выложить?

Скрипт
{$CLEO .cs}

//-------------MAIN---------------
thread 'ADDON_FOR_ICONS'
wait 0
0A95: enable_thread_saving
0@ = Marker.CreateIconWithoutSphere(22, 2032.642, -1411.018, 16.9986)
1@ = Marker.CreateIconWithoutSphere(22, 1178.483, -1322.602, 14.1223)
2@ = Marker.CreateIconWithoutSphere(30, 1552.463, -1675.474, 16.1953)
3@ = Marker.CreateIconWithoutSphere(20, 1753.736, -1457.757, 13.5469)
4@ = Marker.CreateIconWithoutSphere(22, -2666.912, 632.8978, 14.4531)
5@ = Marker.CreateIconWithoutSphere(30, -1605.792, 716.8598, 12.028)
6@ = Marker.CreateIconWithoutSphere(20, -2025.462, 82.1209, 28.2495)
7@ = Marker.CreateIconWithoutSphere(22, 1579.752, 1769.011, 10.8203)
8@ = Marker.CreateIconWithoutSphere(30, 2337.151, 2455.799, 14.9687)
9@ = Marker.CreateIconWithoutSphere(22, 629.3868, -571.8307, 16.7559)
10@ = Marker.CreateIconWithoutSphere(22, -1514.731, 2526.364, 55.7585)
11@ = Marker.CreateIconWithoutSphere(22, 1242.502, 328.2486, 19.7555)
12@ = Marker.CreateIconWithoutSphere(22, -319.9307, 1054.889, 19.7422)
13@ = Marker.CreateIconWithoutSphere(30, -217.718, 979.1064, 19.5033)
14@ = Marker.CreateIconWithoutSphere(49, 2309.416, -1644.109, 18.5078)
15@ = Marker.CreateIconWithoutSphere(48, 1834.752, -1681.689, 13.4184)
16@ = Marker.CreateIconWithoutSphere(48, -2553.875, 193.371, 6.1625)
17@ = Marker.CreateIconWithoutSphere(49, -2244.323, -88.1736, 35.3203)
18@ = Marker.CreateIconWithoutSphere(49, 2441.229, 2063.527, 10.8203)
19@ = Marker.CreateIconWithoutSphere(48, 2507.519, 1244.969, 10.8203)
20@ = Marker.CreateIconWithoutSphere(7, -1449.655, 2593.723, 55.8359)
21@ = Marker.CreateIconWithoutSphere(29, 1364.994, 249.687, 19.5669)
22@ = Marker.CreateIconWithoutSphere(77, 1966.454, -1203.6244, 17.45)
23@ = Marker.CreateIconWithoutSphere(9, 154.253, -1946.623, 5.3902)
24@ = Marker.CreateIconWithoutSphere(9, -2385, 6042, 2216)


:ADDON_FOR_ICONS_569
wait 0
jf @ADDON_FOR_ICONS_569
wait 5000
Marker.Disable(0@)
Marker.Disable(1@)
Marker.Disable(2@)
Marker.Disable(3@)
Marker.Disable(4@)
Marker.Disable(5@)
Marker.Disable(6@)
Marker.Disable(7@)
Marker.Disable(8@)
Marker.Disable(9@)
Marker.Disable(10@)
Marker.Disable(11@)
Marker.Disable(12@)
Marker.Disable(13@)
Marker.Disable(14@)
Marker.Disable(15@)
Marker.Disable(16@)
Marker.Disable(17@)
Marker.Disable(18@)
Marker.Disable(19@)
Marker.Disable(20@)
Marker.Disable(21@)
Marker.Disable(22@)
Marker.Disable(23@)
Marker.Disable(24@)
0A93: end_custom_thread

Взято где то с просторов  интернета, и изменена одна строка, а именно @22. Сам в скриптинге дуб дерево.


Сообщение изменено: Constantines (07 Февраль 2018 - 18:49)


#2720 Racer

Racer

    Любитель GTA

  • Activists
  • 573 сообщений
  • Регистрация 03.12.2013
  • Страна:

Отправлено 07 Февраль 2018 - 18:55

Попробуй так
{$CLEO .cs}

//-------------MAIN---------------
thread 'ADDON_FOR_ICONS'
wait 0
0A95: enable_thread_saving
0@ = Marker.CreateIconWithoutSphere(22, 2032.642, -1411.018, 16.9986)
1@ = Marker.CreateIconWithoutSphere(22, 1178.483, -1322.602, 14.1223)
2@ = Marker.CreateIconWithoutSphere(30, 1552.463, -1675.474, 16.1953)
3@ = Marker.CreateIconWithoutSphere(20, 1753.736, -1457.757, 13.5469)
4@ = Marker.CreateIconWithoutSphere(22, -2666.912, 632.8978, 14.4531)
5@ = Marker.CreateIconWithoutSphere(30, -1605.792, 716.8598, 12.028)
6@ = Marker.CreateIconWithoutSphere(20, -2025.462, 82.1209, 28.2495)
7@ = Marker.CreateIconWithoutSphere(22, 1579.752, 1769.011, 10.8203)
8@ = Marker.CreateIconWithoutSphere(30, 2337.151, 2455.799, 14.9687)
9@ = Marker.CreateIconWithoutSphere(22, 629.3868, -571.8307, 16.7559)
10@ = Marker.CreateIconWithoutSphere(22, -1514.731, 2526.364, 55.7585)
11@ = Marker.CreateIconWithoutSphere(22, 1242.502, 328.2486, 19.7555)
12@ = Marker.CreateIconWithoutSphere(22, -319.9307, 1054.889, 19.7422)
13@ = Marker.CreateIconWithoutSphere(30, -217.718, 979.1064, 19.5033)
14@ = Marker.CreateIconWithoutSphere(49, 2309.416, -1644.109, 18.5078)
15@ = Marker.CreateIconWithoutSphere(48, 1834.752, -1681.689, 13.4184)
16@ = Marker.CreateIconWithoutSphere(48, -2553.875, 193.371, 6.1625)
17@ = Marker.CreateIconWithoutSphere(49, -2244.323, -88.1736, 35.3203)
18@ = Marker.CreateIconWithoutSphere(49, 2441.229, 2063.527, 10.8203)
19@ = Marker.CreateIconWithoutSphere(48, 2507.519, 1244.969, 10.8203)
20@ = Marker.CreateIconWithoutSphere(7, -1449.655, 2593.723, 55.8359)
21@ = Marker.CreateIconWithoutSphere(29, 1364.994, 249.687, 19.5669)
22@ = Marker.CreateIconWithoutSphere(77, 1966.454, -1203.6244, 17.45)
23@ = Marker.CreateIconWithoutSphere(9, 154.253, -1946.623, 5.3902)
24@ = Marker.CreateIconWithoutSphere(9, -2385, 6042, 2216)


:ADDON_FOR_ICONS_569
wait 0
jf @ADDON_FOR_ICONS_569
wait 5000

0A93: end_custom_thread






0 посетителей читают эту тему

0 пользователей, 0 гостей, 0 скрытых