Пятница, 26.04.2024, 18:41
Качественные скрипты, моды и дополнения для GTA без регистрации
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 10
  • «
  • 1
  • 2
  • 3
  • 4
  • 9
  • 10
  • »
Форум » Игры серии ГТА » Скриптинг » Математические и механические задачи в GTA (Применение знаний математики и механики в моддинге)
Математические и механические задачи в GTA
DK22PacДата: Понедельник, 11.04.2011, 01:54 | Сообщение # 16
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Можно и так.
Посмотри пожалуйста тот код, может где-то я ошибку допустил... Просто не получается так угол просчитать.
 
Den_spbДата: Понедельник, 11.04.2011, 01:58 | Сообщение # 17
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Z-угол объекта отсчитывается от вектора Y, а не X.
UPD:
Это у тебя учтено в знаках sin и cos. Других ошибок не вижу.
Может угол в опкоде поворота объекта должен быть в радианах? Попробуй использовать 0177 - там точно используются градусы.
 
DK22PacДата: Воскресенье, 24.04.2011, 12:23 | Сообщение # 18
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Den_spb, код рабочий)
Я его просто поставил до того, как перемещал обьект на свою позицию (первоначально обьект создавался где-то в небе)

Добавлено (24.04.2011, 12:23)
---------------------------------------------
Кстати, санни неверно компилирует

Code
for 0@ = 0.0 to 190.0 step 27@

Даже если я обьявлю 0@ и 27@ как float, оно всё равно подставляет 005A (005A: 0@ += 27@ // int)
 
Den_spbДата: Воскресенье, 24.04.2011, 15:06 | Сообщение # 19
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (DK22Pac)
Даже если я обьявлю 0@ и 27@ как float, оно всё равно подставляет 005A (005A: 0@ += 27@ // int)
Да, у меня аналогично. Если же счётчик является числом, а не переменной, то опкод выбирается правильно.
 
d88Дата: Воскресенье, 24.04.2011, 16:57 | Сообщение # 20
Группа: Проверенные
Сообщений: 113
Статус: Offline
Den_spb, а есть опкоды для вычисления процентов? Типа 0@ = 17% от 1@.
 
DK22PacДата: Воскресенье, 24.04.2011, 17:22 | Сообщение # 21
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
d88, множь число на процент, дальше раздели на 100.
Code
0087: 0@ = 1@ // float
0@ *= 17.0
0@ /= 100.0

Или проще:
Code
0087: 0@ = 1@ // float
0@ *= 0.17


Сообщение отредактировал DK22Pac - Воскресенье, 24.04.2011, 17:23
 
d88Дата: Понедельник, 25.04.2011, 10:55 | Сообщение # 22
Группа: Проверенные
Сообщений: 113
Статус: Offline
DK22Pac, можно и так, просто подумал что со специальными кодами было бы удобнее.
 
VitalДата: Понедельник, 25.04.2011, 18:07 | Сообщение # 23
Группа: Проверенные
Сообщений: 206
Статус: Offline
Кстати, вопрос знающим людям, можно ли создавать новые опкоды из обычных ? Например, как в этой ситуации. Например вместо того, чтоб писать
Code

0087: 0@ = 1@ // float
0@ *= 0.17

Сделать что-то типа
Code

AAAA: 0@ = 17.0 percents of 1@
?


SCRIPTER
 
DK22PacДата: Понедельник, 25.04.2011, 21:16 | Сообщение # 24
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Можно, но для этого надо уметь программировать.
 
Den_spbДата: Понедельник, 25.04.2011, 21:42 | Сообщение # 25
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Точнее говоря, надо знать один из языков, на котором можно написать клео-плагин. Ведь написание клео-скриптов - это тоже программирование.
При создании новых опкодов используются не стандартные опкоды, а функции exe.
 
VitalДата: Вторник, 26.04.2011, 18:04 | Сообщение # 26
Группа: Проверенные
Сообщений: 206
Статус: Offline
Было бы здорово хотя бы заменять несколько опкодов одной конструкцией, которую можно было бы использовать в скрипта.
Ну, задам вопрос по теме. Что означают параметры в опкоде
Code
  
object.throw(1@,?,?,?)?  

Меня интересуют последние три. От чего они зависят, и как получить точное направление (например, перед игроком)?


SCRIPTER

Сообщение отредактировал Vital - Вторник, 26.04.2011, 18:05
 
Den_spbДата: Вторник, 26.04.2011, 20:33 | Сообщение # 27
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (Vital)
Меня интересуют последние три. От чего они зависят, и как получить точное направление (например, перед игроком)?
Насколько помню, это проекции вектора скорости объекта на оси глобальной системы координат. Чтобы найти проекции скорости для движения объекта вперёд от игрока, надо предполагаемое значение скорости объекта умножить на синус или косинус Z-угла игрока.
 
DK22PacДата: Среда, 27.04.2011, 01:25 | Сообщение # 28
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Quote (Vital)
Было бы здорово хотя бы заменять несколько опкодов одной конструкцией, которую можно было бы использовать в скрипта.

SCM-функции! Их даже можно записать в отдельный txt, а потом просто его "включать" в скрипт:
Code
{$CLEO .cs}
{$INCLUDE functions.txt}

0@ = 50.0
0AB1: call_scm_func @percent 2 get 17.0 percents of 0@ to 1@ // 0AB1: @percent 2 ( 17.0 0@ 1@ )
0AD0: show_formatted_text_lowpriority "%f" time 5000 1@
0A93:

Quote (functions.txt)
goto @end_of_functions

:percent
006B: 1@ *= 0@
1@ /= 100.0
0AB2: ret 1 1@

:end_of_functions



Сообщение отредактировал DK22Pac - Среда, 27.04.2011, 10:40
 
Den_spbДата: Среда, 27.04.2011, 13:44 | Сообщение # 29
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
У scm-функций есть недостаток - высокая ресурсоёмкость. Если в скрипте scm-функция вызывается несколько раз подряд, то, возможно, придётся добавлять дополнительные wait-ы. Gosub лишён этого недостатка.
 
DK22PacДата: Среда, 27.04.2011, 15:12 | Сообщение # 30
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Да, но в них используется свой набор локальных переменных.
А если делать через госаб, то тут как на асме хД
Записываешь значения в переменные и делаешь gosub
biggrin
 
Форум » Игры серии ГТА » Скриптинг » Математические и механические задачи в GTA (Применение знаний математики и механики в моддинге)
  • Страница 2 из 10
  • «
  • 1
  • 2
  • 3
  • 4
  • 9
  • 10
  • »
Поиск: