#1 28-08-2009 07:43

Gyr
From: Серпухов
Registered: 03-02-2009
Posts: 246
Website

Цвет маркера

Как можно изменить цвет маркера (стрелки) над актером? Желательно через write mem c hex параметрами.


Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!

Offline

#2 28-08-2009 07:57

PIT
Registered: 08-09-2008
Posts: 224

Re: Цвет маркера

Gyr wrote:

Как можно изменить цвет маркера (стрелки) над актером? Желательно через write mem c hex параметрами.

А стандартные опкоды? хотя мне тоже интересно это.


100 постов - 27 августа;

Offline

#3 28-08-2009 10:41

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

Re: Цвет маркера

Не всё же время пользоваться стандартными опкодами...

EDIT:
ё-маё... нужно в базе листенера искать.

Offline

#4 28-08-2009 10:44

PIT
Registered: 08-09-2008
Posts: 224

Re: Цвет маркера

Sw[ee]t wrote:

EDIT:
ё-маё... нужно в базе листенера искать.

А это долго?


100 постов - 27 августа;

Offline

#5 28-08-2009 11:25

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

Re: Цвет маркера

нууу.... довольно-таки долго (для меня, для листенера - 5и минутное дело наверное) smile

Offline

#6 28-08-2009 11:31

PIT
Registered: 08-09-2008
Posts: 224

Re: Цвет маркера

Sw[ee]t wrote:

нууу.... довольно-таки долго (для меня, для листенера - 5и минутное дело наверное) smile

Листенер тут появляется раз в три дня или реже smile к тому же он пишет гта 4 скрипт комплиер, так что можно его не ждать smile
на гта моддинг я искал, но чето ниче нет, то ли смотрел плохо, толи цвета маркеров вообще н***р никому не нужны lol


100 постов - 27 августа;

Offline

#7 28-08-2009 11:36

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

Re: Цвет маркера

Тогда будем сами искать smile

EDIT:
мда.. я ничего найти не смог. надежда на Алиена или листенера.

Last edited by Sw[ee]t (28-08-2009 11:48)

Offline

#8 28-08-2009 11:55

PIT
Registered: 08-09-2008
Posts: 224

Re: Цвет маркера

тогда мы пропали smile


100 постов - 27 августа;

Offline

#9 28-08-2009 15:11

Alien
Registered: 12-10-2008
Posts: 564

Re: Цвет маркера

@Sw[ee]t - как это ты так искал, что ничего не нашел?

0AA5: call 0x583AB0 num_params 2 pop 2 marker 0@ color 1@

Полный аналог операции

0165: set_marker 0@ color_to 1@

Только зачем это надо? Gyr, ты asi пишешь что ли? Или зачем тебе через память понадобилось?

Offline

#10 28-08-2009 20:25

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

Re: Цвет маркера

Ну уж извиняйте. Я всех тонкостей работы с идой не знаю smile

EDIT:
И кстати. Находил, только совсем не то, но там тоже было обращение к маркеру. А функция называлась примерно "MarkerGangWars". Вот и думаю теперь... rolleyes

Last edited by Sw[ee]t (28-08-2009 20:26)

Offline

#11 29-08-2009 08:57

Gyr
From: Серпухов
Registered: 03-02-2009
Posts: 246
Website

Re: Цвет маркера

Alien wrote:

Только зачем это надо? Gyr, ты asi пишешь что ли? Или зачем тебе через память понадобилось?

Нет, asi я писать пока не собираюсь, просто мне нужно изменить цвет маркера в HEX. То есть цвет присвоить в HEX. Ибо стандартных цветов маловато , а покоды на такое не способны. Я думаю что здесь цвета, так же как в случае с автомобилями, хранятся в массиве. Вот адрес именно этого массива мне и надо узнать.

Last edited by Gyr (29-08-2009 08:58)


Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!

Offline

#12 29-08-2009 09:12

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: Цвет маркера

Массив цветов находится по адресу 0x00BAB22C

Насколько я знаю, он общий для всего интерфейса, включая цвета маркеров.

Offline

#13 29-08-2009 10:47

PIT
Registered: 08-09-2008
Posts: 224

Re: Цвет маркера

Seemann wrote:

Массив цветов находится по адресу 0x00BAB22C

Насколько я знаю, он общий для всего интерфейса, включая цвета маркеров.

Это красный текст, при его изменении измениться цвет здоровья, красный цвет текста.


100 постов - 27 августа;

Offline

#14 29-08-2009 13:17

Gyr
From: Серпухов
Registered: 03-02-2009
Posts: 246
Website

Re: Цвет маркера

Это красный текст, при его изменении измениться цвет здоровья, красный цвет текста.

Вот именно. Если точнее, то мне нужен адрес цвета маркера, который создан над актером\машиной. Может этот адрес хранится в структуре актера\машины?


Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!

Offline

#15 29-08-2009 14:29

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: Цвет маркера

Я же говорю - массив. Он начинается в 0x00BAB22C. Первый цвет красный для здоровья, следующий 0x00BAB22C + 4 , 0x00BAB22C + 8 и т.д.

Offline

#16 29-08-2009 14:37

PIT
Registered: 08-09-2008
Posts: 224

Re: Цвет маркера

Seemann wrote:

Я же говорю - массив. Он начинается в 0x00BAB22C. Первый цвет красный для здоровья, следующий 0x00BAB22C + 4 , 0x00BAB22C + 8 и т.д.

для меня массив - понятие неизвестное, да и неиспользуемое. smile


100 постов - 27 августа;

Offline

#17 29-08-2009 15:42

Gyr
From: Серпухов
Registered: 03-02-2009
Posts: 246
Website

Re: Цвет маркера

@Seemann - Совсем недавно я пробовал писать скрипты читдевайса для Vice City Stories на PSP. Ну так вот, там ,например, Есть такой чит "Car Color Shows Car Health" и он прописывает значение цвета прямо в структуру автомобиля, используя смещение. Вот :

health = getfloat(pcar+0x027c);
if (health >= 990)
    setchar(pcar+0x224,  0,  180,  0);
else if (health >= 650)
    setchar(pcar+0x224,  255 * (1000 - health) / 350,  255,  0);
else if (health >= 300)
    setchar(pcar+0x224,  255,  255 * (health - 300) / 350,  0);
else if (health >= 280)
    setchar(pcar+0x224,  128,  0,  0);
else
    setchar(pcar+0x224,  0,  0,  0);

Здесь pcar+0x224 - это адрес по которому храниться цвет автомобиля.
pcar - то же самое что CVehicle
0x224 - смещение.
Вот я и думаю, может есть такой адрес структуры, в котором храниться цвет созданного над машиной маркера?


Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!

Offline

#18 29-08-2009 18:06

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

Re: Цвет маркера

PIT wrote:
Seemann wrote:

Я же говорю - массив. Он начинается в 0x00BAB22C. Первый цвет красный для здоровья, следующий 0x00BAB22C + 4 , 0x00BAB22C + 8 и т.д.

для меня массив - понятие неизвестное, да и неиспользуемое. smile

Массив это совокупность нескольких одной переменной с разными значениями.
То есть после переменной приписывается её индекс начиная от нуля.
Типа:

var
  $BOXES: Array 5 of Object // вроде так
end
$BOXES = object.create(#BOX,0.0,-51.521,13.445)
$BOXES[1] = object.create(#BOX,0.0,-51.958,13.445)
...

Если что - поправьте

И кстати, Gyr.
Не храниться, а хранится.
Очень частая афыпка на форумах smile

Last edited by Sw[ee]t (29-08-2009 18:08)

Offline

#19 29-08-2009 18:25

PIT
Registered: 08-09-2008
Posts: 224

Re: Цвет маркера

Sw[ee]t wrote:
var
  $BOXES: Array 5 of Object // вроде так
end
$BOXES = object.create(#BOX,0.0,-51.521,13.445)
$BOXES[1] = object.create(#BOX,0.0,-51.958,13.445)
...

тоесть несколько объектов на одной переменной?
кстати, а R использовали jump tables ? (опять же мной не испоьзуемое)


100 постов - 27 августа;

Offline

#20 29-08-2009 18:35

Alien
Registered: 12-10-2008
Posts: 564

Re: Цвет маркера

PIT wrote:

тоесть несколько объектов на одной переменной?

дело не в переменной. Массив - это совокупность значений одного типа, следующих друг за другом в строго определенном порядке.

PIT wrote:

кстати, а R использовали jump tables ? (опять же мной не испоьзуемое)

нет, не использовали. Они писали на более продивнутом языке, нежели мы в СБ. Вместо нынешних таблиц переходов использовались переключатели. Ну типа вот этого в C-шных традициях:

switch (peremennaya){
    case 0: 
        //blah-blah #1
        break;
    case 1:
    case 2:
        //blah-blah #2
        break;
    default:
        //blah-blah #3
}

Offline

#21 29-08-2009 18:35

Gyr
From: Серпухов
Registered: 03-02-2009
Posts: 246
Website

Re: Цвет маркера

И кстати, Sw[ee]t, не афыпка, а ОШИБка... wink
P.S. А тебе не пох?

Если что - поправьте

Поправлю:
$BOXES: Array 5 of Object - не есть правильно. После of должен писаться тип значений, которые будут записываться в массив, integer(целые), float(дробные), string(строки в 8 байтов) или longstring(строки в 16 байтов).
Поэтому  Object здесь не к месту. При создании машин, объектов, актеров через массив, можно использовать или integer или float типы. Я использовал и те и другие, и ничего не вылетало и не глючило.
И еще. Надо писать не

$BOXES = object.create(#BOX,0.0,-51.521,13.445)

а

$BOXES[0] = object.create(#BOX,0.0,-51.521,13.445)

Массивы - отличная вещь. Особенно в клео скриптах. Сразу отпадает такая фигня, как нехватка переменных.
P.S.: Между прочим это всё есть в справке билдера. Seemann зря старался, что ли?


Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!

Offline

#22 29-08-2009 18:45

PIT
Registered: 08-09-2008
Posts: 224

Re: Цвет маркера

Alien wrote:

дело не в переменной. Массив - это совокупность значений одного типа, следующих друг за другом в строго определенном порядке.

После такого обьяснения все стало понятно. Тоесть можно создать 10 одинаковых актеров без затрат переменных? если да то вещь хорошая имхо.


100 постов - 27 августа;

Offline

#23 29-08-2009 18:54

Alien
Registered: 12-10-2008
Posts: 564

Re: Цвет маркера

PIT wrote:
Alien wrote:

дело не в переменной. Массив - это совокупность значений одного типа, следующих друг за другом в строго определенном порядке.

После такого обьяснения все стало понятно. Тоесть можно создать 10 одинаковых актеров без затрат переменных? если да то вещь хорошая имхо.

В каком это смысле без затрат? Если ты читал справку, то там написано, что

10@ =1
0@(10@,10i) = 50

Это то же самое, что и

1@ = 50

То есть в данном случае, 0@(10@,10i) говорит нам, что начиная с переменной 0@ идет массив в 10 переменных типа integer (то есть будут заняты 10 переменных 0@ - 9@), индексом на элемент массива будет значение в переменной 10@. Просто такую запись бывает удобно использовать для управления теми же актерами в цикле с индексом

for 10@ = 0 to 9
actor.destroy(0@(10@,10i))
end

Вот такой простой записью будут уничтожены все десять актеров с хэндлами в переменных 0@ - 9@.

Offline

#24 30-08-2009 05:12

Gyr
From: Серпухов
Registered: 03-02-2009
Posts: 246
Website

Re: Цвет маркера

@Alien - Ну это если ты используешь переменные как индексы. А если пользоваться конструкцией

var
$FloatArray: array 10 of Float
end

то никаких переменных заниматься не будет.


Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!

Offline

#25 30-08-2009 05:43

Alien
Registered: 12-10-2008
Posts: 564

Re: Цвет маркера

будут конечно. Ведь $FloatArray  ставится в соответствие числовая переменная, например $10. Тогда будут заняты переменные $10 - $19. При прямом обращении

$10[5]

Они будут при компиляции заменяться на свой эквивалент ($15). А если индекс - это переменная

$20 = 5
$10[$20]

, то на это:

$20 = 5
$10($20,10f)

Offline

Board footer

Powered by FluxBB