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

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


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

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

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

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

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

 

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

какие именно?
Опубликовано

Kenking:

 

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

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

Опубликовано

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

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

Опубликовано
Опкоды создания парковки работают только для транспорта, установленного на стандартные 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 назад начинающий скриптер. Сам я "неумека". :(

 

Раскрывающийся текст

// 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
Опубликовано

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

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

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

 

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

 

Что делать?

Опубликовано

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

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

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

 

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

 

Что делать?

Ну во-первых: зачем создавать для этого тему? :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 эмодзи.

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

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

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

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