Перейти к содержанию

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


Рекомендуемые сообщения

В обоих этих скриптах идёт работа с адресами памяти игры. В разных версиях игры некоторые адреса памяти отличаются. Эти скрипты написаны для версии игры 1.0 US. Судя по тому, что вылет происходит в местах обращения к адресам памяти игры, у тебя просто другая версия exe.
Ссылка на комментарий
Поделиться на другие сайты

В обоих этих скриптах идёт работа с адресами памяти игры. В разных версиях игры некоторые адреса памяти отличаются. Эти скрипты написаны для версии игры 1.0 US. Судя по тому, что вылет происходит в местах обращения к адресам памяти игры, у тебя просто другая версия exe.

C этим я разобрался. Вот ещё такой вопрос: в программе скриптов есть какие-то явные или "подразумеваемые" ограничения по числу включений скриптов или их оптимальному количеству? Я загрузил довольно много, но такое ощущение сложилось, что некоторые скрипты (судя по логам) начинают просто случайно сбоить в тех или иных ситуациях. Или просто игра зависает по неопределённой причине, или вообще начинаются какие-то весьма странные сбои в игровой механике, на первый взгляд мало имеющие отношения к работающим скриптам.
Ссылка на комментарий
Поделиться на другие сайты

Ограничений по числу скриптов нет. Просто при увеличении общего числа установленных скриптов соответственно увеличивается вероятность всяких багов, вылетов и зависаний игры. Связано это с конфликтованием некоторых скриптов по причине их не совсем верного написания (а часто совсем неверного). По моим наблюдениям лог не всегда показывает именно тот скрипт, что является причиной вылета. Хотя в большинстве случаев показывается всё верно.

 

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

какие именно?
Ссылка на комментарий
Поделиться на другие сайты

Kenking:

 

Один раз периодически переставало работать радио в любых машинах, без каких-то других проблем. При перезапуске игры проблема, естественно, исчезла.

Видимо я явно переборщил с числом скриптов, придётся зачищать от наименее полезных, хотя я и так ставил только самые-самые хорошие и существенные.

Ссылка на комментарий
Поделиться на другие сайты

Ну хорошие и существенные, ещё не значит правильно написанные. Может всё же идёт конфликт каких-либо скриптов. Хотя, что касается глюков с звуками игры, то такие глюки бывают и в игре без скриптов. Здесь на форуме про звуковые глюки и их исправление, где-то писали, поищи - может поможет. И, как я уже писал

при увеличении общего числа установленных скриптов соответственно увеличивается вероятность всяких багов, вылетов и зависаний игры

Ссылка на комментарий
Поделиться на другие сайты

Ссылка на комментарий
Поделиться на другие сайты

Спасибо, только ссылку поправьте, она не рабочая, скрипт скачал с gtagarage. Есть ли возможность не просто спавнить, а припарковать на карте добавленные авто?
Ссылка на комментарий
Поделиться на другие сайты

Опкоды создания парковки работают только для транспорта, установленного на стандартные ID. Можно сделать по другому - проверять находится ли игрок в определённом радиусе от предполагаемого места парковки и, если да, то создавать в нужных координатах транспорт.
Ссылка на комментарий
Поделиться на другие сайты

Спасибо. Значит, это единственно возможный вариант парковки добавленных авто. Кому нужно - забираем себе :smile:

 

{$CLEO .cs}
0005: 1@ = -1238.6271 // координаты X
0005: 2@ = -45.1333 // координаты Y
0005: 3@ = 14.1484 // координаты Z

:0
wait 0
if
00FE: actor $PLAYER_ACTOR sphere 0 in_sphere 1@ 2@ 3@ radius 80.0 80.0 80.0 // проверка нахождения актёра в определённых координатах
jf @0

model.Load(#RDTRAIN2) // прописываем своё добавленное авто
038B: load_requested_models

:1
if
model.Available(#RDTRAIN2)
jf @1

car.Create(0@, #RDTRAIN2, 1@, 2@, 3@)
car.Angle(0@) = 49.4386 // угол разворота авто
01C3: remove_references_to_car 0@ 
0A93: end_custom_thread
Ссылка на комментарий
Поделиться на другие сайты

Код не совсем верный, вот так будет лучше. Ещё можно проверку добавить, что модель является именно одним из видов транспорта (авто, прицеп, мото и т.д.). Но, если верно указан ID модели, то это лишнее.

{$CLEO .cs}
const
   X = 1@ // координата x
   Y = 2@ // координата y
   Z = 3@ // координата z
   ANGLE = 4@ // угол
   AVTO = 5@ // авто
   MODEL = 6@ // модель
end
X = -1238.6
Y = -45.1
Z = 14.1
ANGLE = 49.43
MODEL = 612 // ID модели

while true
wait 0
	if
	  Player.Defined($PLAYER_CHAR)
	then
		if 
		  00FE:  actor $PLAYER_ACTOR sphere 0 in_sphere X Y Z radius 90.0 90.0 90.0
		then
			Model.Load(MODEL)
			038B: load_requested_models
			0395: clear_area 1 at X Y Z radius 10.0
			Car.Create(AVTO, MODEL, X, Y, Z)
			Car.Angle(AVTO) = ANGLE
			Model.Destroy(MODEL)
			Car.RemoveReferences(AVTO)
		repeat
		  wait 0
		until 80FE: not actor $PLAYER_ACTOR sphere 0 in_sphere X Y Z radius 95.0 95.0 95.0
		end
	end
end
Изменено пользователем kenking
Ссылка на комментарий
Поделиться на другие сайты

Товарищи комрады, прошу помощи. В общем есть код, в нём телепорт из точки "А" в точку "Б" и обратно. Так же на нём расставлены два маркера. Проблема в этих маркерах. Они появляются белыми, а хотелось бы желтые, как и все остальные. Не мог бы кто-нибудь поправить?

ЗЫ: Скрипт этот написали мне лет 6 назад начинающий скриптер. Сам я "неумека". :(

 

style_images/icon_plus_1.gif Раскрывающийся текст

// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP 

:NONAME_2
wait 0 
if or
00FE:   actor $PLAYER_ACTOR sphere 0 in_sphere 2496.562 -1708.56 1018.33 radius 50.0 50.0 15.0 
00FE:   actor $PLAYER_ACTOR sphere 0 in_sphere 2502.996 -1693.554 17.9575 radius 50.0 50.0 15.0 
else_jump @NONAME_2 
0A41: destroy_entrance_marker 4@ 
0A41: destroy_entrance_marker 3@ 
0A40: 3@ = create_entrance_marker_at 2496.562 -1708.56 1019.1 color 14 
0A40: 4@ = create_entrance_marker_at 2505.1 -1704.35 25.53 color 14 
jump @NONAME_152 

:NONAME_152
wait 0 
0101:   actor $PLAYER_ACTOR in_sphere 2496.562 -1708.56 1018.33 radius 1.0 1.0 1.0 sphere 1 stopped 
else_jump @NONAME_236 
select_interior 0 
0860: link_actor $PLAYER_ACTOR to_interior 0 
Actor.PutAt($PLAYER_ACTOR, 2505.1, -1704.35, 25.13)
wait 3000 

:NONAME_236
wait 0 
0101:   actor $PLAYER_ACTOR in_sphere 2505.1 -1704.35 25.23 radius 1.0 1.0 1.0 sphere 1 stopped 
else_jump @NONAME_320 
select_interior 3 
0860: link_actor $PLAYER_ACTOR to_interior 3 
Actor.PutAt($PLAYER_ACTOR, 2496.562, -1708.56, 1018.33)
wait 3000 

:NONAME_320
wait 0 
if and
80FE:   not actor $PLAYER_ACTOR sphere 0 in_sphere 2496.562 -1708.56 1010.33 radius 60.0 60.0 10.0 
80FE:   not actor $PLAYER_ACTOR sphere 0 in_sphere 2502.996 -1693.554 17.9575 radius 60.0 60.0 10.0 
else_jump @NONAME_152 
0A41: destroy_entrance_marker 4@ 
0A41: destroy_entrance_marker 3@ 
wait 3000 
jump @NONAME_2
Ссылка на комментарий
Поделиться на другие сайты

0A40: 3@ = create_entrance_marker_at 2496.562 -1708.56 1019.1 color 14

 

слово "color" ничего не напоминает ?

а вот с нумером надо копаться(не предложешь же с 0 до 11 проверить ;), попробуй 2-5 :)

Ссылка на комментарий
Поделиться на другие сайты

Интересует возможность повреждать/чинить компоненты в добавленных дамми. Например, создать дамми new, компоненты new_ok и new_dam, есть ли опкод для их поломки и починки?
Ссылка на комментарий
Поделиться на другие сайты

Здравствуйте!

Помогите пожалуйста с этой проблемой:

При создании персонажа, он постоянно находится достаточно далеко от тех координат, которые я указал в коде!

 

Например, я написал код, который при загрузке создает персонажа возле дома Карла. Но в итоге этот персонаж стоит либо за домом Карла, либо далеко перед ним!

 

Что делать?

Ссылка на комментарий
Поделиться на другие сайты

Здравствуйте!

Помогите пожалуйста с этой проблемой:

При создании персонажа, он постоянно находится достаточно далеко от тех координат, которые я указал в коде!

 

Например, я написал код, который при загрузке создает персонажа возле дома Карла. Но в итоге этот персонаж стоит либо за домом Карла, либо далеко перед ним!

 

Что делать?

Ну во-первых: зачем создавать для этого тему? :acute: Есть же вот соответствующая тема.

Во-вторых: ты свой код покажи, наверняка там есть ошибки, просто так ничего не бывает, а тут экстрасенсов нет, чтобы угадывать, что ты там сделал неправильно. :unknw:

Ссылка на комментарий
Поделиться на другие сайты

Ну во-первых: зачем создавать для этого тему? :acute: Есть же вот соответствующая тема.

Во-вторых: ты свой код покажи, наверняка там есть ошибки, просто так ничего не бывает, а тут экстрасенсов нет, чтобы угадывать, что ты там сделал неправильно. :unknw:

Извиняюсь за открытие темы, которая уже была создана ранее. Просто мне очень срочно был нужен ответ, и все еще нужен, а времени на поиск темы не было. Код я проверял много раз, вроде бы без ошибок:

 

Actor.Create($Actor, 4, #MALE01, 0.0,0.0,0.0) - вместо нулей были мои координаты, которые я тоже много раз проверял разными способами.

 

На проверке оказывается, что персонаж постоянно смещен с заданного места!

 

Вот нашел сайт, где человек описывает проблему, точно как у меня:

http://gtamaps.net/forum/lofiversion/index...?t4134-200.html

 

Для быстрого перехода, на открывшейся странице используйте поиск слов "Координаты проверяла 100 раз"

Ссылка на комментарий
Поделиться на другие сайты

Кстати! Если использовать тот же код, но сделать его активным при нажатии на какую-нибудь клавишу, то тогда все нормально. Все координаты точные и персонаж появляется там где нужно. А вот если сделать так, чтобы эта команда срабатывала при запуске игры, то получается бардак с координатами, по поводу которого я и обратился...
Ссылка на комментарий
Поделиться на другие сайты

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

Вероятно это получается из-за того, что участок карты ещё не успел загрузиться, а пед уже спаунится в заданные координаты и проваливается в пустоту потом при загрузке карты спаунится уже куда попало в близлежащие координаты.

Как тогда лучше поступить в таком случае? Хотя я вроде и задержку в 5 секунд делал перед созданием персонажа...

Ссылка на комментарий
Поделиться на другие сайты

Попробуй сначала добавить проверку Player.Defined($PLAYER_CHAR). Эта проверка обязательна в любом скрипте, где, что-либо делается с игроком. После проверяй находится ли игрок в определённом радиусе (100-150) от координат спауна педа, если да, то спаунь педа. Ну и дальше я не знаю, что там у тебя по коду скрипта (в цикле это будет или скрипт завершится), но, если что теперь уже проверка на НЕ нахождение игрока в заданном радиусе (на 5 единиц больше радиус) от данных координат.
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...