#1851 30-01-2010 12:43

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 941
Website

Re: Один вопрос

Да, согласен - это лучший вариант. Молодец что нашел.

Last edited by Den_spb (30-01-2010 12:54)

Offline

#1852 30-01-2010 12:48

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: Один вопрос

Daeman wrote:

Скажите, плиз, как через память дать команду актёру (или игроку) перезарядить оружие, то есть выполнить анимацию перезарядки? Где-то это было в редакторе памяти Rysok'а, но там все комменты на японском, а мне как-то лень язык Страны восходящего солнца учить, чтоб этот адрес выковернуть. crazy

если нужно только выполнить анимацию, в память лезть не нужно. читай помощь


GIMS developer

Offline

#1853 30-01-2010 13:12

Alien
Registered: 12-10-2008
Posts: 564

Re: Один вопрос

Daeman wrote:

Скажите, плиз, как через память дать команду актёру (или игроку) перезарядить оружие, то есть выполнить анимацию перезарядки? Где-то это было в редакторе памяти Rysok'а, но там все комменты на японском, а мне как-то лень язык Страны восходящего солнца учить, чтоб этот адрес выковернуть. crazy

[SA] Reloading

Offline

#1854 30-01-2010 18:06

Daeman
From: }{абаровск
Registered: 08-05-2009
Posts: 70

Re: Один вопрос

Блин, с перезарядкой меня опередили... Но идея у меня возникла раньше, чем у них  smile
Хотя наверняка она давно эта мысль будоражила умы, особенно просвещённых.

Offline

#1855 31-01-2010 15:01

Daeman
From: }{абаровск
Registered: 08-05-2009
Posts: 70

Re: Один вопрос

Появился вопрос.
Можно ли изменить окрас какой-либо конкретной территории под контролем банды? Можно, или возможно только цвет всех территорий заданной банды разом?

Offline

#1856 01-02-2010 08:07

GTASA
Registered: 13-09-2008
Posts: 476

Re: Один вопрос

Как задать координаты XYZ педу через память?

Offline

#1857 01-02-2010 15:59

Daeman
From: }{абаровск
Registered: 08-05-2009
Posts: 70

Re: Один вопрос

Возникла такая проблема, а вместе с ней и вопрос.

Когда мы узнаём макс. кол-во жизней игрока через стат (в данном случае float_stat 24), то получаем занебесное значение, что-то вроде 1148846080 (и это ещё maked abs.int.)!
Можно ли как-то узнать макс. запас жизней с нормальными цифрами? Чтобы, например, можно было сравнить с кол-вом жизней $player_actor'а.

Offline

#1858 01-02-2010 16:25

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: Один вопрос

это значение float, потому и получаешь int такой огромный


GIMS developer

Offline

#1859 01-02-2010 19:53

Alien
Registered: 12-10-2008
Posts: 564

Re: Один вопрос

Daeman wrote:

Возникла такая проблема, а вместе с ней и вопрос.

Когда мы узнаём макс. кол-во жизней игрока через стат (в данном случае 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

#1860 02-02-2010 11:02

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: Один вопрос

а я на этом долбаном коротком формате сессию завалил!!!!!!!!!!!((((((((((((


GIMS developer

Offline

#1861 02-02-2010 15:57

Daeman
From: }{абаровск
Registered: 08-05-2009
Posts: 70

Re: Один вопрос

Alien wrote:

(помнится, когда-то listener меня по этой ссылке отправлял:crazy:)

Из уст в уста, их браузера в браузер, из рук в руки, не а вот это уже газета smile

Ща почитаю статейку, только она на английском. Но ничего, не помеха, наоборот, иногда даже лучше, особенно в данной сфере.

Из вики wrote:

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, объясни неучу (пока что неучу, пойму, - буду учем)) как расчитывать по использованной тобой формуле в твоём предыдущем посте и что за формулу ты применил?

__

Дальше не оффтоп)

Alien wrote:

= 1000.0

Так это что получается, всегда в макс хэлф тысяча будет? А как же зависимость от стата?
Я тут подумал, может стат стамины использовать и с ним сравнивать вместо "обычных" жизней актёра. Или стамина это выносливость? О_о

Offline

#1862 02-02-2010 16:30

Alien
Registered: 12-10-2008
Posts: 564

Re: Один вопрос

Daeman wrote:

@Alien, объясни неучу (пока что неучу, пойму, - буду учем)) как расчитывать по использованной тобой формуле в твоём предыдущем посте и что за формулу ты применил?

там так-то просто все. Погугли, есть русские статьи. Вот, например, наглядная картинка по 4-байтовому float'у:
ieee754_2.gif
Программка для тестов:

#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 битами).

Daeman wrote:

Так это что получается, всегда в макс хэлф тысяча будет? А как же зависимость от стата?
Я тут подумал, может стат стамины использовать и с ним сравнивать вместо "обычных" жизней актёра. Или стамина это выносливость? О_о

stamina - это выносливость, макс здоровье можно сделать больше 1000 (красная полоска будет дальше расти).

Offline

#1863 02-02-2010 22:02

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: Один вопрос

если кому надо, могу в личку дать скан методички)))))всё равно отчислили...))


GIMS developer

Offline

#1864 03-02-2010 07:25

GTASA
Registered: 13-09-2008
Posts: 476

Re: Один вопрос

ALien, где-то здесь ты писал про имитацию двойного нажатия. Но так и не дал пример. Так вот, как имитировать двойное нажатие?

И как имитировать нажатие любых кнопок (не только 00e1, а еще и 0ab0)?

Offline

#1865 05-02-2010 13:41

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 941
Website

Re: Один вопрос

"Безобидна" ли команда removeReferences (нужно ли производить предварительную проверку на существование того, к чему применяем команду)?

Offline

#1866 05-02-2010 14:38

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: Один вопрос

проверка не будет лишней...


GIMS developer

Offline

#1867 05-02-2010 17:55

mfisto
From: Russia Perm
Registered: 01-02-2008
Posts: 558
Website

Re: Один вопрос

Проверка обязательна, если был wait после аналогичной проверки перед этим, если до этого была уже проверка и после этого не было wait,  то ее использовать не нужно.
Сама команда removereference может вызвать последствия неприятные только после wait, но это уже не относится к проверке.


I know everything and nothing...

Offline

#1868 06-02-2010 13:16

GTASA
Registered: 13-09-2008
Posts: 476

Re: Один вопрос

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

Offline

#1869 10-02-2010 08:54

d88
Registered: 15-12-2009
Posts: 254
Website

Re: Один вопрос

Можно ли машине присвоить такой параметр типа она коповская. Чтобы перед ней открывались ворота которые открываются только полицейской машине.

Offline

#1870 10-02-2010 12:23

mfisto
From: Russia Perm
Registered: 01-02-2008
Posts: 558
Website

Re: Один вопрос

Ворота открываются скриптом, идет проверка на модель тачки. Смотри main.scm.


I know everything and nothing...

Offline

#1871 11-02-2010 18:39

Sw[ee]t
From: Нижний Новгород
Registered: 16-02-2009
Posts: 686
Website

Re: Один вопрос

Давно меня тут не было, но вернулся не один, а с вопросом.
Постараюсь объяснить понятно: допустим есть игрок и в некотором радиусе от него, необходимо найти любой другой объект (машина, человек, динамичный объект и пр.) и затем выстроить от игрока и до найденного объекта/человека/машины цепочку из 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

#1872 11-02-2010 19:43

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 941
Website

Re: Один вопрос

Замечания: 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

#1873 13-02-2010 07:04

d88
Registered: 15-12-2009
Posts: 254
Website

Re: Один вопрос

mfisto wrote:

Ворота открываются скриптом, идет проверка на модель тачки. Смотри main.scm.

В мэйне вообще нет кода на проверку что игрок в полицейской машине.
Мне нужно открыть ворота той базы в Лас-Вентурасе, откуда нужно было угнать вертолёт с магнитом. А ворота там поставлены не через мэйн. Можно конечно попробовать записать их в переменную как объект и сдвинуть, но я думал что можно как-то проще.

Offline

#1874 14-02-2010 14:52

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 941
Website

Re: Один вопрос

В мэйне вообще нет кода на проверку что игрок в полицейской машине.

Если для опкода предусмотрена форма записи через классы, то в декомпилированном коде он отображается в этой форме. В данном случае при поиске в мэйне фразы Actor.DrivingPoliceVehicle положительный результат будет.

Offline

#1875 14-02-2010 18:26

Daeman
From: }{абаровск
Registered: 08-05-2009
Posts: 70

Re: Один вопрос

Как можно проверить: удалён ли актёр на какое-либо расстояние от друго актёра по заданной оси?
Например, что некий актёр удалён влево (-X) или вперёд(+Y) от какого-то актёра на конкретное расстояние.
Я уже подумывал о всяческих математически-арифметических конструкциях вроде работы с rectangle'ами, но как-то это слишком муторно. rolleyes Нет ли чего-нибудь попроще? Ведь гениальное должно быть просто!

Хаха! Совершенно случайно нашёл одну интересную вещь jump'ами (у меня это проделалось с jf), наверное теоретически все знают, но навряд ли кто-то пробовал).
Если в каком-нибудь из jump'ов за единственный параметр выдать 0, то игра, независимо ни от чего окружающего, начнётся заново! Вам снова дают стандартный набор жителей Восточного Побережья - джинсы и майку, а так же телепортируют вас в точку старта игры. Приэтом, все статы останутся теми же, как были в сохранённой игре до проделование такой фишки, а вот вся сюжетная линия начнётся заново!

Offline

Board footer

Powered by FluxBB