You are not logged in.
Скажите, плиз, как через память дать команду актёру (или игроку) перезарядить оружие, то есть выполнить анимацию перезарядки? Где-то это было в редакторе памяти Rysok'а, но там все комменты на японском, а мне как-то лень язык Страны восходящего солнца учить, чтоб этот адрес выковернуть.
если нужно только выполнить анимацию, в память лезть не нужно. читай помощь
GIMS developer
Offline
Скажите, плиз, как через память дать команду актёру (или игроку) перезарядить оружие, то есть выполнить анимацию перезарядки? Где-то это было в редакторе памяти Rysok'а, но там все комменты на японском, а мне как-то лень язык Страны восходящего солнца учить, чтоб этот адрес выковернуть.
Offline
Блин, с перезарядкой меня опередили... Но идея у меня возникла раньше, чем у них
Хотя наверняка она давно эта мысль будоражила умы, особенно просвещённых.
Offline
Появился вопрос.
Можно ли изменить окрас какой-либо конкретной территории под контролем банды? Можно, или возможно только цвет всех территорий заданной банды разом?
Offline
Как задать координаты XYZ педу через память?
Offline
Возникла такая проблема, а вместе с ней и вопрос.
Когда мы узнаём макс. кол-во жизней игрока через стат (в данном случае float_stat 24), то получаем занебесное значение, что-то вроде 1148846080 (и это ещё maked abs.int.)!
Можно ли как-то узнать макс. запас жизней с нормальными цифрами? Чтобы, например, можно было сравнить с кол-вом жизней $player_actor'а.
Offline
Возникла такая проблема, а вместе с ней и вопрос.
Когда мы узнаём макс. кол-во жизней игрока через стат (в данном случае float_stat 24), то получаем занебесное значение, что-то вроде 1148846080 (и это ещё maked abs.int.)!
Можно ли как-то узнать макс. запас жизней с нормальными цифрами? Чтобы, например, можно было сравнить с кол-вом жизней $player_actor'а.
1148846080 = 447A0000h.
Знак - 0
Мантисса - (1.)F4h = (1.)111101b
Экспонента - 88h
1.111101b * 2 ^ (88h - 7Fh) = 11 1110 1000b = 1000.0
IEEE-754 (помнится, когда-то listener меня по этой ссылке отправлял:crazy:)
Offline
(помнится, когда-то listener меня по этой ссылке отправлял:crazy:)
Из уст в уста, их браузера в браузер, из рук в руки, не а вот это уже газета
Ща почитаю статейку, только она на английском. Но ничего, не помеха, наоборот, иногда даже лучше, особенно в данной сфере.
The current version is IEEE 754-2008, which was published in August 2008
Интересно, а какого года версия в Сане использовалась?
Ссылочка, во куда аж из статьи попасть можно )
(−1)s × c × bq
(где s= a sign (zero or one), c= a significand (or 'coefficient'), q= an exponent.)
@Alien, объясни неучу (пока что неучу, пойму, - буду учем)) как расчитывать по использованной тобой формуле в твоём предыдущем посте и что за формулу ты применил?
__
Дальше не оффтоп)
= 1000.0
Так это что получается, всегда в макс хэлф тысяча будет? А как же зависимость от стата?
Я тут подумал, может стат стамины использовать и с ним сравнивать вместо "обычных" жизней актёра. Или стамина это выносливость? О_о
Offline
@Alien, объясни неучу (пока что неучу, пойму, - буду учем)) как расчитывать по использованной тобой формуле в твоём предыдущем посте и что за формулу ты применил?
там так-то просто все. Погугли, есть русские статьи. Вот, например, наглядная картинка по 4-байтовому float'у:
Программка для тестов:
#include <iostream> using namespace std; int main() { static union { float fValue; unsigned __int32 dwValue; } x; cin >> x.dwValue; printf("rounded to %g; integer: 0x%.8X.\n", x.fValue, x.dwValue); printf("sign: %d; exponenta: 0x%.2X; mantissa: 0x%X", (x.dwValue >> 31) & 1, (x.dwValue >> 23) & 0xFF, (x.dwValue << 1) & 0xFFFFFF); cin.get(); return 0; }
С мантиссой я схитрил (с 23 битами работать неудобно - проще сдвинуть на 1 влево и работать с 24 битами).
Так это что получается, всегда в макс хэлф тысяча будет? А как же зависимость от стата?
Я тут подумал, может стат стамины использовать и с ним сравнивать вместо "обычных" жизней актёра. Или стамина это выносливость? О_о
stamina - это выносливость, макс здоровье можно сделать больше 1000 (красная полоска будет дальше расти).
Offline
ALien, где-то здесь ты писал про имитацию двойного нажатия. Но так и не дал пример. Так вот, как имитировать двойное нажатие?
И как имитировать нажатие любых кнопок (не только 00e1, а еще и 0ab0)?
Offline
Проверка обязательна, если был wait после аналогичной проверки перед этим, если до этого была уже проверка и после этого не было wait, то ее использовать не нужно.
Сама команда removereference может вызвать последствия неприятные только после wait, но это уже не относится к проверке.
I know everything and nothing...
Offline
Кто-нибудь подскажет, как сделать, чтобы если к транспорту (грузовик, трактор, аэропорт-мобиль и т.д.) прикреплен прицеп, то он не смог ни при каких обстоятельствах оторваться? Может какой-то адрес памяти?
Offline
Давно меня тут не было, но вернулся не один, а с вопросом.
Постараюсь объяснить понятно: допустим есть игрок и в некотором радиусе от него, необходимо найти любой другой объект (машина, человек, динамичный объект и пр.) и затем выстроить от игрока и до найденного объекта/человека/машины цепочку из particle-эффектов (будет типа ровный луч). Я сделал такой код, но не уверен в его правильности, посмотрите:
thread "BEAMS" :BEAMS_00 wait 0 ms if 0AB0: key_pressed 0x104 jf @BEAMS_00 :BEAMS_01 0AB5: store_actor $PLAYER_ACTOR closest_vehicle_to 0@ closest_ped_to 1@ if and not 0@ == 0 not 1@ == 0 jf @BEAMS_01 00A0: store_actor $PLAYER_ACTOR position_to 2@ 3@ 4@ 00A0: store_actor $PLAYER_ACTOR position_to 5@ 6@ 7@ 050A: 15@ = distance_between_XYZ 2@ 3@ 4@ and_XYZ 5@ 6@ 7@ {.math_teh_distance_between_thiat.} for 17@ = 15@ downto 0 gosub @BEAMS_01_00 end :BEAMS_01_00 Dec(5@,4) Dec(6@,4) Dec(7@,4) 064B: 16@ = create_particle "flame" at 5@ 6@ 7@ 1 064C: make_particle 16@ visible return
Offline
Замечания: 1. в цикле for..end счетчик должен быть целым числом. В данном случае я бы предложил завести для счетчика дополнительную переменную, куда следует записать округленное значение расстояния между точками, помноженное на какое-то число, например - 10 (тогда эффекты будут создаваться не через каждый метр, а через 10 см)
2.
17@ = 15@
Если оба операнда - переменные, то необходимо предварительно назначить переменным тип - с помощью var..end, либо использовать спец. опкоды, например:
0085: 13@ = 12@ // (int)
3.
Dec(5@,4)
Эту команду здесь применять нельзя - она подходит только для целых чисел. Нельзя также оперировать с разными типами данных, как здесь - вычитать из дробного числа целое, ведь координаты и расстояния в игре - дробные числа. Что касается числа, на которое будет изменяться координата при каждом шаге цикла, то оно не будет постоянным. Для нахождения этих чисел необходимо поделить разницы соответствующих координат на число повторений цикла.
4. Если выполнение кода начинается с какой-то метки, а потом возвращается наверх - на эту же метку, то эа это время должен быть выполнен хотя бы один wait. Здесь wait отсутствует, поэтому игра зависнет.
5.
:BEAMS_01 0AB5: store_actor $PLAYER_ACTOR closest_vehicle_to 0@ closest_ped_to 1@ if and not 0@ == 0 not 1@ == 0 jf @BEAMS_01
Если игрок/машина не найден, то в переменную будет записан -1. Также необходимо добавить вайт (см. п. 4). Можно переделать так:
:BEAMS_01 wait 0 0AB5: store_actor $PLAYER_ACTOR closest_vehicle_to 0@ closest_ped_to 1@ if or 0@ <> -1 1@ <> -1 jf @BEAMS_01
6. Координаты надо снимать у игрока и найденного актёра(машины), а ты дважды снимаешь у игрока (ну это видимо сделано для примера).
Last edited by Den_spb (11-02-2010 20:09)
Offline
Ворота открываются скриптом, идет проверка на модель тачки. Смотри main.scm.
В мэйне вообще нет кода на проверку что игрок в полицейской машине.
Мне нужно открыть ворота той базы в Лас-Вентурасе, откуда нужно было угнать вертолёт с магнитом. А ворота там поставлены не через мэйн. Можно конечно попробовать записать их в переменную как объект и сдвинуть, но я думал что можно как-то проще.
Offline
В мэйне вообще нет кода на проверку что игрок в полицейской машине.
Если для опкода предусмотрена форма записи через классы, то в декомпилированном коде он отображается в этой форме. В данном случае при поиске в мэйне фразы Actor.DrivingPoliceVehicle положительный результат будет.
Offline
Как можно проверить: удалён ли актёр на какое-либо расстояние от друго актёра по заданной оси?
Например, что некий актёр удалён влево (-X) или вперёд(+Y) от какого-то актёра на конкретное расстояние.
Я уже подумывал о всяческих математически-арифметических конструкциях вроде работы с rectangle'ами, но как-то это слишком муторно. Нет ли чего-нибудь попроще? Ведь гениальное должно быть просто!
Хаха! Совершенно случайно нашёл одну интересную вещь jump'ами (у меня это проделалось с jf), наверное теоретически все знают, но навряд ли кто-то пробовал).
Если в каком-нибудь из jump'ов за единственный параметр выдать 0, то игра, независимо ни от чего окружающего, начнётся заново! Вам снова дают стандартный набор жителей Восточного Побережья - джинсы и майку, а так же телепортируют вас в точку старта игры. Приэтом, все статы останутся теми же, как были в сохранённой игре до проделование такой фишки, а вот вся сюжетная линия начнётся заново!
Offline