[ Новые сообщения · Участники · Правила форума · Поиск · 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)

Slivkin-Sergey
Модераторы
20.11.13 19:05
Offline
Да, отлично, теперь работает! Спасибо, есть ещё пара вопросов:

1) Как передать в функцию стринговое значение?
2) Как сделать из 3@v обычную float?

BoPoH
Друзья
20.11.13 22:45
Offline
Цитата Slivkin-Sergey ()
Как передать в функцию стринговое значение?

Используй так же 3@v, записывая в неё текст. Не забудь, что сама функция должна принимать указатель на текст (т.е. char*).
Цитата Slivkin-Sergey ()
Как сделать из 3@v обычную float?

Никак smile 3@ - и есть та переменная float. Ты передаёшь в функцию указатель на переменную 3@ при помощи записи в виде 3@v. Это значит, что твоя функция примет этот указатель и запишет по адресу, на который он указывает, нужное значение. В данном случае, 3@v указывает на 3@.
Довольно запутанно, конечно, если ты понятия не имеешь об указателях в программировании.

Slivkin-Sergey
Модераторы
21.11.13 18:44
Offline
Цитата BoPoH ()
3@ - и есть та переменная float. Ты передаёшь в функцию указатель на переменную 3@ при помощи записи в виде 3@v. Это значит, что твоя функция примет этот указатель и запишет по адресу, на который он указывает, нужное значение. В данном случае, 3@v указывает на 3@. Довольно запутанно, конечно, если ты понятия не имеешь об указателях в программировании.

Т.е. я могу вместо 3@v использовать 3@?
Цитата BoPoH ()
Используй так же 3@v, записывая в неё текст. Не забудь, что сама функция должна принимать указатель на текст (т.е. char*).

А почему *char, а не *string, или что нибудь в этом роде? И какой синтаксис? *charLocator?

Drs36
Проверенные
21.11.13 22:38
Offline
Здравствуйте,как сделать все школы доступными с самого начала игры и как можно чтобы в начале звонил телефон(Миссии)

BoPoH
Друзья
21.11.13 23:23
Offline
Цитата Slivkin-Sergey ()
Т.е. я могу вместо 3@v использовать 3@?

Смотря в какой ситуации. 3@v - это указатель на переменную 3@.

Цитата Slivkin-Sergey ()
А почему *char, а не *string, или что нибудь в этом роде? И какой синтаксис? *charLocator?

Во-первых, не *char, а char* (звёздочка после типа).
Во-вторых, я не знаю, как работает тип string, и что он из себя представляет. Обычно используют char* в случаях работы с текстом. Особенно, если это плагин для СА. Почитай про работу со строками в C++ (именно с char и char*). И про указатели, желательно, тоже почитать.

Я могу по-простому объяснить, что такое указатель.
Представь, что тебе нужно отправить письмо другу. Ты не хочешь сам идти к другу, чтобы передать ему письмо, но у тебя есть его адрес. Предположим, что дом твоего друга - это переменная. А адрес его дома - указатель. Ты даёшь письмо посыльному (предположим, что посыльный - твоя функция) и говоришь ему адрес дома друга (передаёшь указатель на переменную в функцию). Посыльный приходит к дому твоего друга и ложит в его ящик твоё письмо (функция записывает значение в переменную, зная указатель на эту переменную). Далее твой друг читает твоё письмо (после выполнения функции ты по прежнему используешь саму переменную, а не указатель на неё, но теперь в ней уже есть значение, так как функция записала в неё определённое значение).
Постарался объяснить как можно понятнее, но лучше ещё что-нибудь про указатели почитать/посмотреть.
Отредактировал BoPoH - Четверг, 21.11.13, 23:31

Drs36
Проверенные
21.11.13 23:29
Offline
А как сделать чтобы с начала была доступна автошкола ?

Slivkin-Sergey
Модераторы
23.11.13 21:44
Offline
Код
Text.ShowStyled('RACE5', 500, 4) // ~s~СТАРТ!
wait 500
create_thread @SHRANGE_TARMOV
7@ = 10000
03C3: set_timer_to 7@ type 1 GXT 'TIMER'
18@ = 0

:STEVEN3_1TARGET_CYCLE
wait 0
if
0366: object $SHRANGE_TARGET_BARREL[0] damaged
then
0723: break_object $SHRANGE_TARGET_BARREL[0] intensity 1
014F: stop_timer 7@
jump @STEVEN3_2TARGET_INIT
end
if
not 7@ == 0
jf @STEVEN3_1TARGET_INIT
jump @STEVEN3_1TARGET_CYCLE

Почему-то в процессе выполнения одной из этих команд (не пойму какой) игра просто "выходит из себя" happy , тобишь происходить вылет. Интересно, из-за чего?..

BoPoH
Друзья
23.11.13 22:17
Offline
Цитата Slivkin-Sergey ()
03C3: set_timer_to 7@ type 1 GXT 'TIMER'

Насколько я знаю, здесь можно использовать только глобальную переменную (там, где 7@).
И, вообще, это всё в майне?

Slivkin-Sergey
Модераторы
24.11.13 20:21
Offline
Ага, дело было в 0723:...

Ещё один занятный вопросик: как заставить двигаться несколько объектов одновременно, не create'я thread'ов?

Добавлено (24.11.13, 19:21)
---------------------------------------------

Цитата BoPoH ()
И, вообще, это всё в майне?

А что?

Drs36
Проверенные
24.11.13 20:27
Offline
А с моим вопросом как

BoPoH
Друзья
25.11.13 17:28
Offline
Цитата Slivkin-Sergey ()
как заставить двигаться несколько объектов одновременно, не create'я thread'ов?

Цикл, в котором ты обрабатываешь движение нескольких объектов.

Цитата Slivkin-Sergey ()
А что?

Клео не поддерживает create_thread

Slivkin-Sergey
Модераторы
25.11.13 17:43
Offline
Цитата BoPoH ()
Клео не поддерживает create_thread

Я знаю, есть опкод create_custom_thread.
Цитата BoPoH ()
Цикл, в котором ты обрабатываешь движение нескольких объектов.

Каким образом?
Код
repeat
if
хххх: двигать_объект 1@
then
0000:
end
until xxxx: двигать_объект 2@

?

BoPoH
Друзья
25.11.13 19:40
Offline
Slivkin-Sergey, ты не знаешь, как двигать несколько объектов одновременно, или не знаешь, как вообще двигать объекты?

Slivkin-Sergey
Модераторы
26.11.13 06:01
Offline
Я знаю, как двигать объекты. Я не знаю, как двигать несколько объектов.

wmysterio
Администраторы
Скриптер
26.11.13 06:25
Offline
Цитата Slivkin-Sergey ()
Я знаю, как двигать объекты. Я не знаю, как двигать несколько объектов.

Код
while true
wait 0
if
xxxx:    условия выхода
then
break
end
хххх: двигать_объект 1@
хххх: двигать_объект 2@
хххх: двигать_объект N

//...
end
//..

Slivkin-Sergey
Модераторы
26.11.13 15:59
Offline
wmysterio, дык опкод для движения объектов - это условие.

BoPoH
Друзья
26.11.13 18:41
Offline
Цитата Slivkin-Sergey ()
дык опкод для движения объектов - это условие.

Что за опкод такой?

DK22Pac
Модераторы
TOP Скриптер
30.11.13 15:49
Offline
Опкоды, которые делают какую-либо проверку, не обязательно использовать именно как проверку.

wmysterio
Администраторы
Скриптер
01.12.13 00:25
Offline
DK22Pac, может ты знаешь, как в C++ вызвать метод создания актёра? Искал в исходниках Cleo, но нашел только его структуру.

BoPoH
Друзья
01.12.13 19:53
Offline
Цитата wmysterio ()
DK22Pac, может ты знаешь, как в C++ вызвать метод создания актёра? Искал в исходниках Cleo, но нашел только его структуру.

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

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