#4201 06-11-2012 09:22

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

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

Как можно В СА выйти из RC mode не потеряв RC машину, т.е. чтоб та не исчезла.


I know everything and nothing...

Offline

#4202 16-12-2012 12:49

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

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

Другой вопрос.

Где в функции __drawHud находится вызов показа зоны игрока? Я искал в базе Листенера, но не нашел, есть на вывод авто, а на вывод зоны что-то не пойму.


I know everything and nothing...

Offline

#4203 23-12-2012 21:03

DK22Pac
From: Ukraine
Registered: 26-03-2010
Posts: 447
Website

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

mfisto, на тебе всё, что есть в базе wink
Класс (Расположение - 0xBA18F4)

class CPlaceName
{
public:
    CZone *m_pZone; // 0xBA18F4
    short  m_AdditionalTimer; // 0xBA18F8
// Из методов в игре используюся только GetZoneNameForXY() и Process()
    void Remove(); // 0x571D80
    char * GetZoneNameForXY(float x, float y); // 0x571D90 , это для карты в меню
    void Init(); // 0x571E40
    void Update(); // 0x571E60
    void Process(); // 0x571F20
};

Методы CHud

void SetZoneName(char *name, char bDisplay); // 0x588BB0, bDisplay: 0 - показать только если текст не показан, 1 - показать, даже если текст уже показан
void DrawZoneName(); // 0x58AA50

Переменные CHud

char *m_ZoneToPrint; // 0xBAB1D0
char *m_pLastZoneName; // 0xBAB1D4
char *m_pZoneName; // 0xBAB1D8
int  m_ZoneState // 0xBAA930
int  m_ZoneFadeTimer; // 0xBAA934 
int  m_ZoneNameTimer; // 0xBAA938

Перечисления

enum eNameState
{
    NAME_DONT_SHOW   = 0,
    NAME_SHOW        = 1,
    NAME_FADE_IN     = 2,
    NAME_FADE_OUT    = 3,
    NAME_SWITCH      = 4
};

Last edited by DK22Pac (23-12-2012 21:04)


Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv

Offline

#4204 24-12-2012 21:25

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

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

Я к чему спросил про зоны, так как хотел отключить показ зон и авто на экране, а то больно жирно много места занимают, а сделать тупо вывод зон у радара; такой скрипт есть конечно уже, я просто еще хотел и отключить вывод стандартных надписей.


I know everything and nothing...

Offline

#4205 27-12-2012 19:11

DK22Pac
From: Ukraine
Registered: 26-03-2010
Posts: 447
Website

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

mfisto, так как это __stdcall, можно просто вставить return в начало функции.

void DrawZoneName()
{
    return;
    // код функции
}
0A8C: write_memory 0x58AA50 size 1 value 0xC3 protect 1 // 0x58AA50 - начало процедуры, 0xC3 - команда "retn" (return)

Last edited by DK22Pac (27-12-2012 19:13)


Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv

Offline

#4206 12-01-2013 22:18

JuSskeee*
From: Мариуполь
Registered: 25-11-2011
Posts: 51

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

Здарова, ребят. Как сделать, что бы актер в scm пути ходил бесконечно? Две координаты: Начало и конец пути, и он по ним ходит и ходит.. Патрулирование что-ли.


Your Banny Wrote

Offline

#4207 16-01-2013 20:32

Voron295
From: Каушаны
Registered: 06-12-2010
Posts: 425
Website

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

JuSskeee* wrote:

Здарова, ребят. Как сделать, что бы актер в scm пути ходил бесконечно? Две координаты: Начало и конец пути, и он по ним ходит и ходит.. Патрулирование что-ли.

Первое, что приходит на ум - проверять, находится ли актёр в конечной точке, если да, то по новой ставить его на путь.


Добро всегда побеждает зло. Кто победил, тот и добрый!
userbar.png

Offline

#4208 17-01-2013 13:44

Jack Daniel's
Registered: 05-07-2011
Posts: 211

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

И все это в беск. цикле.

Offline

#4209 28-02-2013 13:26

_Luft_
Registered: 01-06-2009
Posts: 25

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

Дорогие скриптеры и знатоки! Возникла необходимость синхронизировать cleo скрипт через интернет -протоколы (http или ftp), но опкоды для работы с файлами работают только с каталогом игры (на пример "CLEO\settings.txt". Есть ли возможность осуществить это при помощи дополнительных библиотек или редактированием памяти, или прочими способами?
Проще говоря, есть ли возможность открыть скриптом текстовый файл из интернета для чтения?

Last edited by _Luft_ (28-02-2013 14:28)

Offline

#4210 07-06-2013 12:40

IlyaLion
Registered: 11-07-2011
Posts: 7

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

Столкнулся с проблемой, что опкоды
02C1: store_to 7@ 8@ 9@ car_path_coords_closest_to 5@ 6@ 7@
04D3: get_nearest_car_path_coords_from 5@ 6@ 7@ type 0 store_to 7@ 8@ 9@
работают некорректно. Кто-нибудь знает принцип их работы?
Скрин: жёлтая метка - 5@ 6@ 7@ 
голубая -  7@ 8@ 9@.

Last edited by IlyaLion (07-06-2013 12:43)

Offline

#4211 07-06-2013 16:20

Sergey81
Registered: 19-12-2008
Posts: 654

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

Я в скрипте такси использовал так:

04D3: get_nearest_car_path_coords_from 7@ 8@ 10.0 type 2 store_to 11@ 12@ 13@

и все работало.
У тебя же желтая метка - нулевые координаты. Почему так, не знаю.

Last edited by Sergey81 (07-06-2013 19:18)

Offline

#4212 07-06-2013 16:37

IlyaLion
Registered: 11-07-2011
Posts: 7

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

Это просто так совпало.
Другой пример:

Offline

#4213 07-06-2013 19:23

Sergey81
Registered: 19-12-2008
Posts: 654

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

А, я вспомнил, у меня ж тоже так было, пришлось сначала машину телепортировать в нужные координаты, ждать загрузки карты немного, потом уже находить координаты на путях и туда перемещать машину. При этом не всегда срабатывало, и я находил рандомную машину в этих координатах и помещал свою вместо неё:

if
00E1:   key_pressed 0 17
then
33@ = 0
04E4: refresh_game_renderer_at 7@ 8@
while 33@ < 3000
00AB: put_car 0@ at 7@ 8@ 100.0
03F0: enable_text_draw 1 
03E3: set_texture_to_be_drawn_antialiased 1 
038D: draw_texture 127 position 320.0 225.0 size 640.0 450.0 RGBA 255 255 255 255 
wait 0
04D3: get_nearest_car_path_coords_from 7@ 8@ 10.0 type 2 store_to 11@ 12@ 13@
073E: get_car_in_sphere 11@ 12@ 13@ radius 10.0 model -1 handle_as 19@
if
056E:   car 19@ defined
then
Car.StorePos(19@, 11@, 12@, 13@)
23@ = Car.Angle(19@)
Car.Destroy(19@)
break
end
end
//04D3: get_nearest_car_path_coords_from 7@ 8@ 100.0 type 2 store_to 11@ 12@ 13@  
00AB: put_car 0@ at 11@ 12@ 13@
Car.Angle(0@) = 23@
04BA: set_car 0@ speed_instantly 30.0 
0509: 3@ = distance between point 7@ 8@ and point 11@ 12@
008C: 3@ = float_to_integer 3@
3@ *= -10
0109: player $PLAYER_CHAR money += 3@
while 00DB:  actor $PLAYER_ACTOR in_car 0@
wait 200
end
00AD: set_car 0@ max_speed_to 10.0
00A7: car 0@ drive_to 0.0 0.0 0.0
00A9: set_car 0@ to_normal_driver
00AF: set_car 0@ driver_behaviour_to 13 
01C3: remove_references_to_car 0@ // Like turning a car into any random car      
0391: release_textures
break
end

А вот в вайсе и гта 3 таких заморочек вроде не было.

Offline

#4214 22-06-2013 14:44

Vital
From: Москва
Registered: 07-11-2010
Posts: 64
Website

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

Хотелось бы кое-что уточнить по поводу флага уникальности. Есть, как я понимаю, два вида опкодов поиска случайных объектов/машин/людей: те, что не меняют флаг уникальности и те, что включают его. Я пробовал использовать поиск с последующим .removereferences для актёров. Я заметил, что актёры, созданные скриптом, становятся наполовину обычными людьми: начали ходить по дорогам, снова (я отключал это) начали реагировать на прицеливание, бояться игрока, но особые функции у них также сохранились, я мог выполнять с ними те же действия, что и всегда. Хотел как раз уточнить, если я буду использовать, например, опкод 0AB5, не выгружая из памяти актёров и машины, то, понятное дело, они удалятся по мере необходимости, но меня волнует следующее: с ними ничего не случится, то есть, не изменится ли их поведение, если оно было изменено другим скриптом? Не удалятся ли они после того, как уйдут из поля зрения, или будут ждать .removereferences из другого скрипта?
Это меня волнует по той причине, что некоторые скрипты, которые я делаю, используют поиск случайных людей, среди которых могут оказаться и те, что созданы в .scm файлах или других скриптах, и мне хочется, чтобы их уникальные свойства точно не пропали.
Буду благодарен за объяснение!

Offline

#4215 22-06-2013 15:33

DK22Pac
From: Ukraine
Registered: 26-03-2010
Posts: 447
Website

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

Если не ошибаюсь, флаг уникальности не позволяет удалить педа?
Ты можешь делать любые действия со всеми педами, не обязательно, чтобы у них был флаг уникальности.
Хотя, опкоды с припиской AS я не советую использовать для педов без флага уникальности. Это может привести к вылету игры.

Last edited by DK22Pac (22-06-2013 15:34)


Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv

Offline

#4216 22-06-2013 15:50

Vital
From: Москва
Registered: 07-11-2010
Posts: 64
Website

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

@DK22Pac - да, многие стандартные опкоды поиска актёров (02DD, например) не удаляют актёра никогда, он так и будет оставаться в памяти, если взять много актёров, то они могут вообще перестать появляться. Но cleo опкоды не ставят этот флаг, что позволяет игре убирать актёров, которые были "пойманы". У меня лишь опасения по поводу того, что поиск может как-либо влиять на актёра. Так ли это, или всё же актёры никаким образом не смогут изменить своих свойств при действии на них опкодов поиска (который НЕ ставит флаг уникальности)?
Параллельно хотел бы задать вопрос относительно памяти. У каждого элемента игры есть свой адрес (структура + какие-либо смещения), которые, как я понимаю, хранятся независимо от флага уникальности, то есть имеются у всех. Если я найду актёра и установлю ему какое-либо значение в памяти, то он сохранит эти изменения после .removereferences? И есть ли пустые адреса памяти, которые не влияют на элементы игры? (я знаю лишь, что у машины можно поставить в адрес бомб поставить значение 3, которое не даст бомбы, то есть, оно пустое) Так как я с памятью пока что на низком уровне работаю, то мне здесь пока всё интересно.

Offline

#4217 23-06-2013 01:49

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

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

Так ли это, или всё же актёры никаким образом не смогут изменить своих свойств при действии на них опкодов поиска (который НЕ ставит флаг уникальности)?

Опкоды поиска КЛЕО не меняют никаких свойств объектов и актёров, они занимаются только поиском этих объектов и актёров.

У каждого элемента игры есть свой адрес (структура + какие-либо смещения), которые, как я понимаю, хранятся независимо от флага уникальности, то есть имеются у всех. Если я найду актёра и установлю ему какое-либо значение в памяти, то он сохранит эти изменения после .removereferences?

Размер структуры и её адрес после removereferences не меняются. Изменяются только значения, записанные по некоторым смещениям.

Хотя, опкоды с припиской AS я не советую использовать для педов без флага уникальности. Это может привести к вылету игры.

Возможно причина ошибки была в чём-то другом? У меня AS опкоды с обычными педами работали нормально.

Last edited by Den_spb (23-06-2013 01:52)

Offline

#4218 23-06-2013 11:15

DK22Pac
From: Ukraine
Registered: 26-03-2010
Posts: 447
Website

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

Den_spb, попробуй ко всем педам применить 05E2, а потом намеренно удали кого-то из них.
Vital, я посмотрел к этому опкоду. В случае с педами, там вызываются CTheScripts::CleanUpThisPed и CMissionCleanup::RemoveEntityFromList.
Вот первая из этих функций, можно сказать, "ресетит" педа.
Сложно судить по базе СА, там много функций не разобрано. В Вайс Сити, из этой функции вызываются:
CPed::ClearObjective
CPed::ClearLeader
CPed::SetWanderPath
CPed::SetMoveState
CPed::SetObjective
CPed::ClearFollowPath
CCarCtrl::JoinCarWithRoadSystem


Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv

Offline

#4219 23-06-2013 11:56

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

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

Den_spb, попробуй ко всем педам применить 05E2, а потом намеренно удали кого-то из них.

Да, вылетает через несколько минут игры. Только не из-за удалений, а из-за 05E2 - он в логе всегда последний. Причину пока не понял.

Offline

#4220 24-06-2013 06:52

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

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

Вот такой вопрос: Как поставить флаг на машину, что ею уже пользовались, т.е. чтоб не давали звезд.


I know everything and nothing...

Offline

#4221 25-06-2013 09:06

kenking
From: Казахстан
Registered: 28-06-2010
Posts: 253

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

Подскажите пожалуйста. Что-то не разберусь. Надо передать три параметра в функцию:
первый параметр - хендл авто (как я понимаю, в функции этот первый переданный параметр будет в переменной 0@)
второй параметр - название компонента (например, "detal")
третий параметр - число

В функции надо проверить есть ли компонент с таким названием и если есть, то произвести над ним действия (например, переместить).
В функции при нахождении компонента по названию
0AA7: call_function 0x4C5400 num_params 2 pop 2 _nodename "name" _rwObject 31@ _store_to 30@
вместо "name" какую переменную писать (куда копируется значение "detal", переданное в функцию и как правильно этот параметр передать?)
и далее третий передаваемый параметр в какую переменную будет скопирован?   

....
0AB1: call_scm_func @metka 3 1@ "detal" 300.0
//0AB1: call_scm_func @metka 3 2@ "detal_new" 0.0
....
:metka
0A97: 31@ = car 0@ struct 
31@ += 0x18
0A8D: 31@ = read_memory 31@ size 4 virtual_protect 0
0AA7: call_function 0x4C5400 num_params 2 pop 2 _nodename ВТОРОЙ ПЕРЕДАННЫЙ ПАРАМЕТР _rwObject 31@ _store_to 30@
if
  30@ > 0
then
      // действия над компонентом
      30@ + = 72
      0A8C: write_memory 30@ size 4 value ТРЕТИЙ ПЕРЕДАННЫЙ ПАРАМЕТР virtual_protect 0
end
0AB2: ret 0 
....

Last edited by kenking (25-06-2013 09:08)

Offline

#4222 25-06-2013 12:36

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

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

Передавать напрямую строки в scm функцию нельзя, нужно либо передать переменную строки, разбив ее соответственно, либо указатель на строку, например:

2@s = 'detal' //в данном случае строка будет в 2 переменных 2@ и 3@
0AB1: call_scm_func @metka 4 1@ 2@ 3@ 300.0
'

или

2@v = "detal" //в данном случае строка будет в 4 переменных 2@ 3@ 4@ 5@
0AB1: call_scm_func @metka 4 1@ 2@ 3@ 4@ 5@ 300.0
'

или

05F7: 2@ = label @label offset
0AB1: call_scm_func @metka 3 1@ 2@ 300.0
...
:label
hex
"detal" 00
end

I know everything and nothing...

Offline

#4223 25-06-2013 13:09

kenking
From: Казахстан
Registered: 28-06-2010
Posts: 253

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

Большое спасибо, то, что надо.:D
Что-то я невнимателен, grin оказывается лучше смотреть по форуму надо было. Уже был подобный вопрос и ответ на него.

Last edited by kenking (26-06-2013 05:30)

Offline

#4224 01-07-2013 16:55

CraZZZy-GameRRR
From: Москва
Registered: 11-08-2009
Posts: 97
Website

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

Очищаю экран опкодом 0826: enable_hud 0, а карта остаётся. Как её убрать?

Offline

#4225 01-07-2013 19:54

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

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

@CraZZZy-GameRRR

0581: enable_radar 0

I know everything and nothing...

Offline

Board footer

Powered by FluxBB