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

или

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

Внимание! От этого момента тема предназначена ещё и для заказов скриптов и миссий. Я это сделал по одной причине - пользователи постоянно путают/или не ищут темы и приводят заказ здесь. Теперь этой путаницы не будет. Здесь можно проводить заказы, но Вы должны указать в начале поста текст "НА ЗАКАЗ". Постарайтесь как можно детальнее объяснить суть скрипта.
Прикрепления: 0248203.png(1Kb) · 9085525.png(0Kb)

Slivkin-Sergey
Модераторы
03.04.14 15:16
Offline
Зачем ты ещё раз выложил код? Ты выполняешь всё это в цикле while true (постоянное выполнение) без дополнительных задержек и проверок, вот тебе наводка.

Добавлено (03.04.14, 13:16)
---------------------------------------------
И у 03C0 нет функции IF and SET.


BoPoH
Друзья
03.04.14 16:48
Offline
Во-первых, научись грамотно и красиво писать код, если хочешь, чтобы тебе помогали. К примеру, твой код должен выглядеть так:
Код
{$CLEO}   
0000:

while true   
wait 0     
      if     
      Player.Defined(0)     
      then
          if and     
          not actor.Dead($PLAYER_ACTOR)   
          0ADC: test_cheat "AVTOPILOT"     
          then     
              03C0: 4@ = actor $PLAYER_ACTOR car     
              0AB6: store_targer_marker_coords_to 0@ 1@ 2@     
              car.DriveTo(4@, 1@, 2@, 3@)     
          end   
      end
end
Нельзя забывать, что глобальные переменные нельзя использовать в CLEO-скриптах.
Во-вторых, опкод car.DriveTo явно следует заменить на какой-нибудь другой. Например, на опкод 05D1. Можно поэкспериментировать с опкодами - подобных штук 5 в опкоднике найти можно. Учись, прежде всего, проводить собственные эксперименты, учиться самому и только если совсем не видишь выхода - обращаться к более опытным скриптерам. Никто за тебя скрипты писать не собирается.
Отредактировал BoPoH - Четверг, 03.04.14, 16:48

wmysterio
Администраторы
Скриптер
03.04.14 17:05
Offline
Цитата BoPoH ()
проводить собственные эксперименты
Да какие там эксперименты... Мне лучше промолчать. Желаю ему только разобраться со своим планшетом и научится самому находить уроки в нужном порядке.

Cool_T
Пользователи
05.04.14 21:14
Offline
Wmysterio а есть уроки где описываеться как сделать так чтобы гг курил,пил,отливал жидкость?

Slivkin-Sergey
Модераторы
05.04.14 22:08
Offline
Cool_T, учись пользоваться хотя бы БАНАЛЬНЫМ логическим мышлением. Курение = скрипт: анимация + аттач объекта, питьё - то же самое, отливание - анимация + партикл эффект.

Cool_T
Пользователи
06.04.14 11:08
Offline
Вот я и говорю есть уроки про анимации и эти эфыекты?

Добавлено (06.04.14, 09:08)
---------------------------------------------
Ты просто не понял вопрос


Slivkin-Sergey
Модераторы
06.04.14 21:09
Offline
Цитата Cool_T ()
Ты просто не понял вопрос

Я всё прекрасно понял. Ты спросил, есть ли уроки, как написать скрипт такой-то.
Цитата Cool_T ()
Вот я и говорю есть уроки про анимации и эти эфыекты?

Может, хотя бы поискать попробуете?

Добавлено (06.04.14, 19:09)
---------------------------------------------
Кстати, тут возник небольшой вопрос по панелям (список товаров). Создал я, значит, панельку:

Код
08D4: 8@ = create_panel_with_title 'HEADER' position 29.0 170.0 width 180.0 columns 2 interactive 1 background 1 alignment 0  
08DB: set_panel 8@ column 0 header 'HEADER' data v$CS_BRIBE_MRSECRET_STRINGS_ARRAY[0] v$CS_BRIBE_MRSECRET_STRINGS_ARRAY[1] v$CS_BRIBE_MRSECRET_STRINGS_ARRAY[2] v$CS_BRIBE_MRSECRET_STRINGS_ARRAY[3] v$CS_BRIBE_MRSECRET_STRINGS_ARRAY[4] v$CS_BRIBE_MRSECRET_STRINGS_ARRAY[5] v$CS_BRIBE_MRSECRET_STRINGS_ARRAY[6] 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY'
08DB: set_panel 8@ column 1 header 'HEADER2' data v$CS_BRIBE_MRSECRET_STRINGS_ARRAY_PRICES[0] v$CS_BRIBE_MRSECRET_STRINGS_ARRAY_PRICES[1] v$CS_BRIBE_MRSECRET_STRINGS_ARRAY_PRICES[2] v$CS_BRIBE_MRSECRET_STRINGS_ARRAY_PRICES[3] v$CS_BRIBE_MRSECRET_STRINGS_ARRAY_PRICES[4] v$CS_BRIBE_MRSECRET_STRINGS_ARRAY_PRICES[5] v$CS_BRIBE_MRSECRET_STRINGS_ARRAY_PRICES[6] 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY'

И всё в ней замечательно отображается... Кроме строк в столбцах. Т.е. название самой панели есть, имена столбцов есть, а строк (элементов строкового массива) нету...

SanKing
Друзья
07.04.14 11:08
Offline
Цитата Slivkin-Sergey ()
И всё в ней замечательно отображается... Кроме строк в столбцах.
По-моему, глобальные стринговые переменные начинаются с s$, а не с v$.

Slivkin-Sergey
Модераторы
07.04.14 11:56
Offline
Цитата SanKing ()
По-моему, глобальные стринговые переменные начинаются с s$, а не с v$.

s$ - это char'овые 'STRING', а v$ - непосредственно стринговые "STRING".

Кстати, когда я подставил туда обыкновенные имена записей, всё сработало, но всё же интересно, разве нельзя заполнять таблицу подстановкой хэндлов строк?

BoPoH
Друзья
07.04.14 16:58
Offline
Цитата Slivkin-Sergey ()
Кстати, когда я подставил туда обыкновенные имена записей, всё сработало, но всё же интересно, разве нельзя заполнять таблицу подстановкой хэндлов строк?
Можно. Вопрос в том, есть ли в этих переменных те самые записи?

Цитата SanKing ()
По-моему, глобальные стринговые переменные начинаются с s$, а не с v$.
Цитата Slivkin-Sergey ()
s$ - это char'овые 'STRING', а v$ - непосредственно стринговые "STRING".
Спасибо, посмеялся. Как локальные, так и глобальные переменные могут быть s и v. Разница между ними в том, что s-переменная рассчитана на 7 символов (8 байт с учётом завершающего нуля в конце), а v - на 15 символов (16 байт, с учётом завершающего нуля).
Отредактировал BoPoH - Понедельник, 07.04.14, 16:58

Slivkin-Sergey
Модераторы
07.04.14 17:22
Offline
Цитата BoPoH ()
Разница между ними в том, что s-переменная рассчитана на 7 символов (8 байт с учётом завершающего нуля в конце), а v - на 15 символов

Какой ужас. Я подбирал префикс именно по этим признакам, а прилагательного, более подходящего в данном случае, чем "char'овая", я не нашёл. И да, почему все считают меня за дурачка?
Цитата BoPoH ()
Можно. Вопрос в том, есть ли в этих переменных те самые записи?

Код
0ADF: add_dynamic_GXT_entry '1DAY' text "1 љe®©"
0ADF: add_dynamic_GXT_entry '2DAY' text "2 љ®¬"
0ADF: add_dynamic_GXT_entry '3DAY' text "3 љ®¬"
0ADF: add_dynamic_GXT_entry '4DAY' text "4 љ®¬"
0ADF: add_dynamic_GXT_entry '5DAY' text "5 љ®eќ"
0ADF: add_dynamic_GXT_entry '6DAY' text "6 љ®eќ"
0ADF: add_dynamic_GXT_entry '7DAY' text "7 љ®eќ"
0ADF: add_dynamic_GXT_entry 'HEADER' text "Koћ-ўo љ®eќ"
0ADF: add_dynamic_GXT_entry 'HEADER2' text '‰e®a'

Только вместо названий были элементы массива.

wmysterio
Администраторы
Скриптер
07.04.14 18:55
Offline
Цитата Slivkin-Sergey ()
Только вместо названий были элементы массива.
Да-да. Столкнулся тоже с этой проблемой, опкод 0ADF не воспринимает любые строковые массивы.

BoPoH
Друзья
08.04.14 08:45
Offline
Цитата Slivkin-Sergey ()
Только вместо названий были элементы массива.
Я так и не смог понять, была ли запись в строковый массив или нет? Ну, т.е. содержит ли строковый массив нужные тебе имена GXT-записей?

Цитата Slivkin-Sergey ()
И да, почему все считают меня за дурачка?
Почему ты так решил? Если я тебя поправил, это не значит, что я считаю тебя дураком. Все когда-то учились, и ты научишься.
Отредактировал BoPoH - Вторник, 08.04.14, 08:45

Slivkin-Sergey
Модераторы
08.04.14 11:30
Offline
Цитата BoPoH ()
Все когда-то учились, и ты научишься.

Что из того, что ты мне объяснил, я не знаю? Нет, я не пытаюсь казаться профи, я многого не понимаю, но банальную и основную информацию хотя бы об особенностях переменных-строк и размеров, занимаемых в памяти переменными определённого типа (sizeof) я всё же закрепил.
Цитата BoPoH ()
Я так и не смог понять, была ли запись в строковый массив или нет? Ну, т.е. содержит ли строковый массив нужные тебе имена GXT-записей?

Вместо названий, например, '1DAY', был v$ИМЯ_ЯМАССИВА[индекс].
Отредактировал Slivkin-Sergey - Вторник, 08.04.14, 11:31

BoPoH
Друзья
08.04.14 16:49
Offline
Цитата Slivkin-Sergey ()
Вместо названий, например, '1DAY', был v$ИМЯ_ЯМАССИВА[индекс].
Ну вот, ты опять меня не понял. В твоём массиве должны быть имена GXT записей. Т.е. где-то в твоём скрипте (или же в main.scm) этот массив нужно заполнить необходимыми строками - именами GXT записей. Я и спрашиваю, к тому моменту, когда ты используешь свой массив, в нём уже записаны строки с именами GXT записей?

Slivkin-Sergey
Модераторы
08.04.14 18:54
Offline
Цитата BoPoH ()
Я и спрашиваю, к тому моменту, когда ты используешь свой массив, в нём уже записаны строки с именами GXT записей?

Эм-м, да ладно, это не важно уже, хотя их названиями были хэндлы (я потому и написал v$, чтобы хранить сами записи). Тут новая проблема:
Код
for 17@ = 0 to 13@ step 1
wait 1440000
end
0ACE: show_formatted_text_box "‹peЇ¬ љeќc¦ўњ¬ ‹aҐeќ ўџ¬¦kњ ®a¤aћ©®њky Јoћњ њњ њc¦ekћo!"

После окончания задержки ничего не происходит, а если "измельчить" задержку при помощи вложенного в этот фор ещё одного фор и выводить счётчик на экран (он должен достигнуть 10000, за одну итерацию ожидание - 144), то после этого вылетает с ошибкой когда счётчик достигает ~2148.
Отредактировал Slivkin-Sergey - Вторник, 08.04.14, 18:55

wmysterio
Администраторы
Скриптер
08.04.14 19:16
Offline
Цитата Slivkin-Sergey ()
то после этого вылетает с ошибкой когда счётчик достигает ~2148.
Диапазон значений выходит за диапазон типа integer. Вот, посмотри первую часть этой статьи. Эффект действует и на переменные gta-скриптинга. Скорее всего цикл становится бесконечным, так как условие выполняется всегда. Если значение переменной больше 2147483647, то это будет уже не integer, так как размер будет больше 4-й байт.

Slivkin-Sergey
Модераторы
08.04.14 20:27
Offline
Цитата wmysterio ()
2147483647

У меня в разы меньше: 1 440 000
Цитата wmysterio ()
Скорее всего цикл становится бесконечным, так как условие выполняется всегда

Выполняется 10 000 раз, в каждой итерации ждёт 144 секунды.

BoPoH
Друзья
09.04.14 00:24
Offline
Цитата Slivkin-Sergey ()
Эм-м, да ладно, это не важно уже, хотя их названиями были хэндлы (я потому и написал v$, чтобы хранить сами записи).
Сами записи хранить в массиве строк не имеет смысла, если ты собираешься их применять для создания панелей. Там принимается имя GXT записи, а не сама запись.
Цитата Slivkin-Sergey ()
После окончания задержки ничего не происходит
Как ты определяешь, что задержка уже окончилась?

Slivkin-Sergey
Модераторы
13.04.14 21:27
Offline
Цитата BoPoH ()
Там принимается имя GXT записи, а не сама запись.

Хм-м... Здесь мне не очень ясно. С одной стороны, это и есть имя строки, а с другой, в переменной строка и хранится.
Цитата BoPoH ()
Как ты определяешь, что задержка уже окончилась?

Жду 1 игровые сутки (с ускорением времени х10, разумеется).

Добавлено (13.04.14, 19:27)
---------------------------------------------
Иными словами: равен ли этот код
Код
0ADF: add_dynamic_GXT_entry v$STRING text "Test string"
00BC: show_text_highpriority GXT v$STRING time 1000 flag 1

этому
Код
0ADF: add_dynamic_GXT_entry 'STR' text "Test string"
v$STRING = 'STR'
00BC: show_text_highpriority GXT v$STRING time 1000 flag 1

?
Отредактировал Slivkin-Sergey - Воскресенье, 13.04.14, 21:30

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