[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » Игры серии GTA » GTA San Andreas » Вопросы по скриптингу Sanny Builder (Вы можете получить ответы на вопросы по SB)
Вопросы по скриптингу Sanny Builder
wmysterio
Администраторы
Скриптер
22.11.11 21:52
Offline
Если у вас возник вопрос по скриптингу Sanny Builder, обращайтесь! Мы постараемся решить вашу проблему wink Это ещё не значит, что все прям бросятся решать во чтобы то не стало, но ответ вы сможете вы получить как вариант решения или как невозможность или сложность решения.
УВАЖАЕМЫЕ ПОЛЬЗОВАТЕЛИ! ПРОСЬБА КОД СКРИПТОВ ПОМЕЩАТЬ В КОНСТРУКЦИЮ КОДА:

или

Также указывайте полный код скрипта, иначе причина ошибок может быть и не выявлена.
Прикрепления: 0248203.png(0.9 Kb) · 9085525.png(0.2 Kb)

SanKing
Друзья
04.11.15 15:05
Offline
Мейн. Разве есть какие-либо различия?

mfisto
Друзья
04.11.15 21:55
Offline
Ну в Клео коде глобальные переменные никак не учитываются, а в main индексируются.

SanKing
Друзья
06.11.15 11:16
Offline
Выяснил кое-что по моей проблеме.
Оказалось, что значение $DRUGAN_Y[0] меняется на значение $DRUGAN_X[2], а $DRUGAN_Z[0] - на $DRUGAN_Y[2]. Тут уже совсем для меня непонятное.

etwnp
Пользователи
06.11.15 16:05
Offline
Сталкивался недавно с этим (пишу скрипт изначально под мейн), если где-то выход за границы массива, может быть что угодно.

mfisto
Друзья
06.11.15 16:11
Offline
Короче смотри, у тебя это получилось из-за того, что компилятор не знает сколько места резервировать под каждый массив, то бишь индексы начинаются друг за другом, переменная $DRUGAN_X  превращается допустим в $1000 а вот $DRUGAN_Y в $1004, то есть ты понял смысл надеюсь. Это недоработка компилятора. Обратись с данной проблемой на сайт sannybuilder.com в форум и там в раздел связанной с программой, лучше это сделать поскорее так как релиз проги возможно будет в ближ. время. Смотри главное уточнить, что ошибка возникает именно при своих переменных. Это подвох на самом деле, ты нашел баг... реальный багище, так что его надо устранить)

wmysterio
Администраторы
Скриптер
08.11.15 21:13
Offline
SanKing, у меня была похожая проблема в "GTA SA - Карьерист", когда делал карту для базы главаря Балласов. Возможно поможет такое: не используй локальные переменные в качестве индекса для глобальных массивов. То есть, используй скажем:
Код
for $INDEX = 0 to 2 step 1
    018A: $DRUGAN_PM[$INDEX] = create_checkpoint_at $DRUGAN_X[$INDEX] $DRUGAN_Y[$INDEX] $DRUGAN_Z[$INDEX]
end

SanKing
Друзья
10.11.15 13:56
Offline
mysterio, благодарю. Как вернусь за комп, попробую.

Добавлено (10.11.15, 12:56)
---------------------------------------------
Нет, не помогло. Можно и без массивов, но будет долго и муторно переписывать.


wmysterio
Администраторы
Скриптер
10.11.15 14:34
Offline
Цитата SanKing ()
Нет, не помогло. Можно и без массивов, но будет долго и муторно переписывать.
Ну тогда стучи на форум СБ, там уже разберутся с этим багом.

LEX
Пользователи
24.11.15 19:31
Offline
Парни, вообщем я занимаюсь в основном скриптами вайса и возник такой вопрос на досуге. Вот есть игровое событие - когда игрок сажает в тачку проститутку, то через некоторое время тачка начинает покачиваться(ну вы понели кароч). Есть возможность замутить аналогичное действие, но уже не в игроком, а со сторонним актёром и авто? В ЛСС есть такая миссия у Джейди, там аналогичный эффект используется, миссию проглядел, но вот опкода что-то не обнаружил(либо не понял как там реализовано).

etwnp
Пользователи
05.02.16 15:47
Offline
Можно как-то в ini файл записывать чтоб не вводить названия строк вручную? Как в других языках, поставил счетчик и все. Нужно собрать много координат. Что делать?

Добавлено (05.02.16, 14:47)
---------------------------------------------
и еще как узнать количество актеров в памяти?


SINGER
Проверенные
07.02.16 03:53
Offline
Ребята, а можете сделать мод, который запретит гаражам ремонтировать авто. А то автосервис вообще не нужен...
Отредактировал SINGER - Воскресенье, 07.02.16, 03:54

wmysterio
Администраторы
Скриптер
09.02.16 14:35
Offline
Цитата SINGER ()
Ребята, а можете сделать мод, который запретит гаражам ремонтировать авто. А то автосервис вообще не нужен...
Как вариант, можно запретить всем гаражам открываться

SINGER
Проверенные
10.02.16 00:46
Offline
Цитата wmysterio ()
Как вариант, можно запретить всем гаражам открываться
И куда тогда тачку ставить?

wmysterio
Администраторы
Скриптер
10.02.16 15:18
Offline
Цитата SINGER ()
И куда тогда тачку ставить?
Ну так ты уже сам выбирай, какой гараж нужно оставить открытым. В справке есть список гаражей. Деактивируй те, что не нужны.

kubensk0019
Пользователи
14.02.16 13:04
Offline
Всем привет.
Такой вопрос:
Вот у меня в переменной 1@ хранится указатель на актера. Как можно проверить, какой тип у актера? Полицейский и т.д.

wmysterio
Администраторы
Скриптер
14.02.16 21:40
Offline
Цитата kubensk0019 ()
Вот у меня в переменной 1@ хранится указатель на актера. Как можно проверить, какой тип у актера? Полицейский и т.д.
Получаешь сначала тип актёра, затем проверяешь какой он:
Код
089F: get_actor 1@ pedtype_to 2@
if
2@ == 6 // cop
then
// bla-bla
end

kubensk0019
Пользователи
14.02.16 21:59
Offline
Ребят есть ещё такой вопрос:
Вот я созда машину, в ней актера и т.д.
Скажите плиз, как сделать так, что бы актер в машине следовал за cj, и если cj атакуют, что бы он палил из машины.
Я вот создал машину, актера, в группу не добавлял. Да и не поможет. Но надо что бы машина ехала за cj постоянно.
Заранее благодарен.

Добавлено (14.02.16, 20:43)
---------------------------------------------
спс большое за пояснение насчёт типов

Добавлено (14.02.16, 20:59)
---------------------------------------------
По поводу типов не скрипт не работает. В чём может быть пробла?

Код
// 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
wait 0

:NONAME_6
wait 0
if
   Player.Defined($PLAYER_CHAR)
else_jump @NONAME_6

:NONAME_26
wait 0
Actor.StorePos($PLAYER_ACTOR, 2@, 3@, 4@)
0AE1: 1@ = random_actor_near_point 2@ 3@ 4@ in_radius 100.0 find_next 1 pass_deads 1 //IF and SET
089F: get_actor 1@ pedtype_to 5@
if
056D:   actor 1@ defined
else_jump @NONAME_153
if or
051A:   actor $PLAYER_ACTOR damaged_by_actor 1@
  5@ == 6
  5@ == 7
  5@ == 17
  5@ == 20
  5@ == 22
else_jump @NONAME_153
05E2: AS_actor $PLAYER_ACTOR kill_actor 1@

:NONAME_153
jump @NONAME_26

etwnp
Пользователи
15.02.16 02:50
Offline
Цитата kubensk0019 ()
По поводу типов не скрипт не работает. В чём может быть пробла?

У тебя ошибка, сначала проверь существует ли актер, а потом его педтип.

kubensk0019
Пользователи
16.02.16 11:56
Offline
Понял спасибо попробую

Добавлено (16.02.16, 10:56)
---------------------------------------------
Всем привет.
Ребят вот у меня есть мой рабочий скрипт. Вопрос: Как в скрипте можно сделать чит на диактивацию скрипта?

Код
// 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
wait 0

:NONAME_6
wait 0
if
   Player.Defined($PLAYER_CHAR)
else_jump @NONAME_6

:NONAME_26
wait 0
if
0ADC:   test_cheat "AIM"
else_jump @NONAME_26
jump @NONAME_55

:NONAME_55
wait 0
Actor.StorePos($PLAYER_ACTOR, 2@, 3@, 4@)
0AE1: 1@ = random_actor_near_point 2@ 3@ 4@ in_radius 100.0 find_next 1 pass_deads 1 //IF and SET
if
056D:   actor 1@ defined
else_jump @NONAME_189
089F: get_actor 1@ pedtype_to 5@
if or
051A:   actor $PLAYER_ACTOR damaged_by_actor 1@
  5@ == 6
  5@ == 7
  5@ == 17
  5@ == 20
  5@ == 22
else_jump @NONAME_189
05E2: AS_actor $PLAYER_ACTOR kill_actor 1@
jump @NONAME_189

:NONAME_189
jump @NONAME_55

etwnp
Пользователи
16.02.16 16:00
Offline
Цитата kubensk0019 ()
Всем привет.
Ребят вот у меня есть мой рабочий скрипт. Вопрос: Как в скрипте можно сделать чит на диактивацию скрипта?

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

Код
// 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
wait 0

:NONAME_6
wait 0
if
   Player.Defined($PLAYER_CHAR)
else_jump @NONAME_6

:NONAME_26
wait 0
if
0ADC:   test_cheat "AIM"
else_jump @NONAME_26
jump @NONAME_55

:NONAME_55
wait 0
Actor.StorePos($PLAYER_ACTOR, 2@, 3@, 4@)
0AE1: 1@ = random_actor_near_point 2@ 3@ 4@ in_radius 100.0 find_next 1 pass_deads 1 //IF and SET
if
056D:   actor 1@ defined
else_jump @NONAME_189
089F: get_actor 1@ pedtype_to 5@
if or
051A:   actor $PLAYER_ACTOR damaged_by_actor 1@
  5@ == 6
  5@ == 7
  5@ == 17
  5@ == 20
  5@ == 22
else_jump @NONAME_189
05E2: AS_actor $PLAYER_ACTOR kill_actor 1@

if
0ADC:   test_cheat "AIM"
then
05E2: AS_actor $PLAYER_ACTOR kill_actor -1 //для сброса
jump @NONAME_26
end

jump @NONAME_189

:NONAME_189
jump @NONAME_55

Форум » Игры серии GTA » GTA San Andreas » Вопросы по скриптингу Sanny Builder (Вы можете получить ответы на вопросы по SB)
Поиск: