#1 08-12-2010 13:24

Ruzel
Registered: 03-06-2010
Posts: 61

Транспорт пропадает в далеке)

Если использовать опкоды выбора случайного транспорта возле определенной точки (такие как 0AE2 и 0AB5), то этот транспорт пропадает в далеке, как обычный трафик. Хотя removeReferences не использовались!) пока тачка находится в поле видимости, с ней можно хоть что делать. но стоит ей уехать далеко - и она исчезает.

Как решить проблему? может есть какой-нибудь способ записи машины в память?

Offline

#2 08-12-2010 15:41

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

Re: Транспорт пропадает в далеке)

Ну, тут в соседней теме обсуждалось про "флаг уникальности" для пешеходов. Для машины должен быть такой же.

Offline

#3 08-12-2010 16:57

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

Re: Транспорт пропадает в далеке)

Хотя removeReferences не использовались!

У рандомного транспорта (как и у рандомных педов) флаг уникальности изначально выключен. Включить флаг уникальности можно любым из двух способов:
1. Стандартный опкод поиска транспорта 0327 включает флаг уникальности у найденного транспорта. Минус: опкод не находит транспорт с уже включённым флагом уникальности (подробнее тут: http://sannybuilder.com/forums/viewtopi … 453#p9453)
2. Если известен хэндл или указатель на структуру транспорта, то можно включить флаг уникальности, вызвав метод:

0A97: 0@ = car 0@ struct
0AA6: call_method 0x6D5D70 struct 0@ num_params 1 pop 0 2

Offline

#4 08-12-2010 17:40

Ruzel
Registered: 03-06-2010
Posts: 61

Re: Транспорт пропадает в далеке)

Хм, чето сложновато получилось. А после этих двух опкодов хэндл машинки останется?
допустим, я выбрал случайный транспорт, присвоил ему хэндл 1@ . Я должен вот так написать? :

0A97: 1@ = car 1@ struct
0AA6: call_method 0x6D5D70 struct 1@ num_params 1 pop 0 2

После этого я смогу обращаться к моей машинке по хендлу 1@ ?

Offline

#5 08-12-2010 17:44

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

Re: Транспорт пропадает в далеке)

Замени переменную - делов-то:

//хэндл записан в 0@
0A97: 1@ = car 0@ struct
0AA6: call_method 0x6D5D70 struct 1@ num_params 1 pop 0 2
//хэндл по-прежнему записан в 0@

Last edited by Den_spb (08-12-2010 17:44)

Offline

#6 08-12-2010 17:51

~AquaZ~
Registered: 01-03-2010
Posts: 726

Re: Транспорт пропадает в далеке)

Ruzel, если происходит команда вроде

store_to 0@

или

= 0@

, то в переменную записывается новое значение.

Offline

#7 08-12-2010 18:05

Ruzel
Registered: 03-06-2010
Posts: 61

Re: Транспорт пропадает в далеке)

Супер. спасибо всем)

Offline

#8 09-12-2010 09:50

Ruzel
Registered: 03-06-2010
Posts: 61

Re: Транспорт пропадает в далеке)

а кстати, этот опкод 0AA6: call_method 0x6D5D70 подойдет для педов? или нет?

Offline

#9 09-12-2010 13:17

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

Re: Транспорт пропадает в далеке)

Не подойдёт. Этот "опкод" - вызов опр. функции в памяти игры, которая в данном случае по данному адресу включает флаг уникальности опр. машине. Нужен другой адрес.

Offline

#10 09-12-2010 14:30

Ruzel
Registered: 03-06-2010
Posts: 61

Re: Транспорт пропадает в далеке)

Дайте пожалуйста адрес, люди добрые.

Last edited by Ruzel (09-12-2010 14:31)

Offline

#11 10-12-2010 02:34

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

Re: Транспорт пропадает в далеке)

Вроде так:

0A96: 1@ = actor 0@ struct
0AA6: call_method 0x5E47E0 struct 1@ num_params 1 pop 0 2

Offline

Board footer

Powered by FluxBB