N - уменьшать выбранную координату (регулируется переменной 19@ )
19@ - Значение приращения/уменьшения координат за один раз (ACCURACY)
next weapon - увеличить значение приращения/уменьшения (на величину переменной 26@ )
previous weapon - уменьшить значение приращения/уменьшения (на величину переменной 26@ )
25@ - Точность вывода значений координат (в данном случае 3 знака после запятой)
26@ - Сколько плюсовать/вычитать при изменении переменной приращения/уменьшения координат
Далее следует добавить следующие записи в файл american.gxt
'MP_010' - это ID текста.
Добавлять следует в таблицу MAIN, либо добавить в скрипт опкод загрузки вашей таблицы.
'MP_020' - X: ~n~Y: ~n~Z:
'MP_021' - POINT
'MP_022' - CAMERA
'MP_023' - ~1~.~1~
'MP_024' - ACCURACY
ВАЖНО!!!
Теперь самая главная косячная загигулина от R*...
При выводе текстов отображаются только целые числа, соответственно отбрасываются все нули спереди.
Дробная часть (у меня по умолчанию - три знака после запятой) отображается аналогичным образом.
Поэтому число после запятой следует читать как тысячные доли...
Пример:
Реальное число - 2098.045
Отображается - 2098.45
Т.е. читаем как 45 тысячных...
Реальное число - 1033.007
Отображается - 1033.7
Т.е. читаем как 7 тысячных...
p.s.
И в игре аналогичная лажа - я смотрел оригинальные скрипты...
Так что хорошо, что всякие показатели при прохождении даром не нужны, иначе проходить было бы проблематично...
p.p.s. Координаты естественно записываем на бумажку, а потом вставляем в скрипты... ;)
repeat
wait 0
Player.CanMove($PLAYER_CHAR) = false
if 7@ == 0
then
Pickup.Destroy(9@)
Camera.SetPosition(0@, 1@, 2@, 0.0, 0.0, 0.0)
Camera.PointAt(3@, 4@, 5@, 2)
9@ = Pickup.Create(#BRIBE, 15, 3@, 4@, 5@)
7@ = 1
end // if
if 10@ > 0
then
if 00E1: key_pressed 0 11
then
if 8@ == 0
then
3@ += 19@
else
if 8@ == 1
then
4@ += 19@
else
5@ += 19@
end // if
end // if
7@ = 0
end // if
if 00E1: key_pressed 0 10
then
if 8@ == 0
then
3@ -= 19@
else
if 8@ == 1
then
4@ -= 19@
else
5@ -= 19@
end // if
end // if
7@ = 0
end // if
else
if 00E1: key_pressed 0 11
then
if 8@ == 0
then
0@ += 19@
else
if 8@ == 1
then
1@ += 19@
else
2@ += 19@
end // if
end // if
7@ = 0
end // if
if 00E1: key_pressed 0 10
then
if 8@ == 0
then
0@ -= 19@
else
if 8@ == 1
then
1@ -= 19@
else
2@ -= 19@
end // if
end // if
7@ = 0
end // if
end
if 00E1: key_pressed 0 1 // Вверх/вниз - выбор редактируемой координаты
then
if 17@ == 0
then
if 8@ == 2
then
8@ = 0
else
8@ += 1
end
17@ = 1
end
else
17@ = 0
end // if
if 00E1: key_pressed 0 0 // Вправо/влево - переключить на изменение положения камеры
then
if 18@ == 0
then
10@ *= -1
18@ = 1
end
else
18@ = 0
end // if
if 00E1: key_pressed 0 7
then
19@ += 26@
end // if
if 00E1: key_pressed 0 5
then
19@ -= 26@
end // if