You are not logged in.
Как можно изменить цвет маркера (стрелки) над актером? Желательно через write mem c hex параметрами.
Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!
Offline
Как можно изменить цвет маркера (стрелки) над актером? Желательно через write mem c hex параметрами.
А стандартные опкоды? хотя мне тоже интересно это.
100 постов - 27 августа;
Offline
Не всё же время пользоваться стандартными опкодами...
EDIT:
ё-маё... нужно в базе листенера искать.
Offline
EDIT:
ё-маё... нужно в базе листенера искать.
А это долго?
100 постов - 27 августа;
Offline
нууу.... довольно-таки долго (для меня, для листенера - 5и минутное дело наверное)
Offline
нууу.... довольно-таки долго (для меня, для листенера - 5и минутное дело наверное)
Листенер тут появляется раз в три дня или реже к тому же он пишет гта 4 скрипт комплиер, так что можно его не ждать
на гта моддинг я искал, но чето ниче нет, то ли смотрел плохо, толи цвета маркеров вообще н***р никому не нужны
100 постов - 27 августа;
Offline
Тогда будем сами искать
EDIT:
мда.. я ничего найти не смог. надежда на Алиена или листенера.
Last edited by Sw[ee]t (28-08-2009 11:48)
Offline
тогда мы пропали
100 постов - 27 августа;
Offline
@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
Ну уж извиняйте. Я всех тонкостей работы с идой не знаю
EDIT:
И кстати. Находил, только совсем не то, но там тоже было обращение к маркеру. А функция называлась примерно "MarkerGangWars". Вот и думаю теперь...
Last edited by Sw[ee]t (28-08-2009 20:26)
Offline
Только зачем это надо? Gyr, ты asi пишешь что ли? Или зачем тебе через память понадобилось?
Нет, asi я писать пока не собираюсь, просто мне нужно изменить цвет маркера в HEX. То есть цвет присвоить в HEX. Ибо стандартных цветов маловато , а покоды на такое не способны. Я думаю что здесь цвета, так же как в случае с автомобилями, хранятся в массиве. Вот адрес именно этого массива мне и надо узнать.
Last edited by Gyr (29-08-2009 08:58)
Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!
Offline
Массив цветов находится по адресу 0x00BAB22C
Насколько я знаю, он общий для всего интерфейса, включая цвета маркеров.
Offline
Массив цветов находится по адресу 0x00BAB22C
Насколько я знаю, он общий для всего интерфейса, включая цвета маркеров.
Это красный текст, при его изменении измениться цвет здоровья, красный цвет текста.
100 постов - 27 августа;
Offline
Это красный текст, при его изменении измениться цвет здоровья, красный цвет текста.
Вот именно. Если точнее, то мне нужен адрес цвета маркера, который создан над актером\машиной. Может этот адрес хранится в структуре актера\машины?
Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!
Offline
Я же говорю - массив. Он начинается в 0x00BAB22C. Первый цвет красный для здоровья, следующий 0x00BAB22C + 4 , 0x00BAB22C + 8 и т.д.
Offline
Я же говорю - массив. Он начинается в 0x00BAB22C. Первый цвет красный для здоровья, следующий 0x00BAB22C + 4 , 0x00BAB22C + 8 и т.д.
для меня массив - понятие неизвестное, да и неиспользуемое.
100 постов - 27 августа;
Offline
@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
Seemann wrote:Я же говорю - массив. Он начинается в 0x00BAB22C. Первый цвет красный для здоровья, следующий 0x00BAB22C + 4 , 0x00BAB22C + 8 и т.д.
для меня массив - понятие неизвестное, да и неиспользуемое.
Массив это совокупность нескольких одной переменной с разными значениями.
То есть после переменной приписывается её индекс начиная от нуля.
Типа:
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.
Не храниться, а хранится.
Очень частая афыпка на форумах
Last edited by Sw[ee]t (29-08-2009 18:08)
Offline
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
тоесть несколько объектов на одной переменной?
дело не в переменной. Массив - это совокупность значений одного типа, следующих друг за другом в строго определенном порядке.
кстати, а 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
И кстати, Sw[ee]t, не афыпка, а ОШИБка...
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
дело не в переменной. Массив - это совокупность значений одного типа, следующих друг за другом в строго определенном порядке.
После такого обьяснения все стало понятно. Тоесть можно создать 10 одинаковых актеров без затрат переменных? если да то вещь хорошая имхо.
100 постов - 27 августа;
Offline
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
@Alien - Ну это если ты используешь переменные как индексы. А если пользоваться конструкцией
var $FloatArray: array 10 of Float end
то никаких переменных заниматься не будет.
Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!
Offline
будут конечно. Ведь $FloatArray ставится в соответствие числовая переменная, например $10. Тогда будут заняты переменные $10 - $19. При прямом обращении
$10[5]
Они будут при компиляции заменяться на свой эквивалент ($15). А если индекс - это переменная
$20 = 5 $10[$20]
, то на это:
$20 = 5 $10($20,10f)
Offline