#26 21-05-2011 00:09

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

Re: Сборки CLEO-скриптов для GTA III, VC, SA

Точно, забыл, так наверное только в CLEO4 можно)
PS Так как ты написал работать не будет)


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

Offline

#27 21-05-2011 05:13

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

Re: Сборки CLEO-скриптов для GTA III, VC, SA

В КЛЕО4 размер чтения/записи по-прежнему составляет 1,2,4 байта. Если бы была возможность записывать 6 байт, то в опкод следовало подставлять число 0x909090909090, т.к. при записи 0x90 оставшиеся 5 байтов заполнятся нулями, что неправильно - надо записать 0x90 по каждому байту команды.
Правильный вариант приведён в сообщении 23.

Offline

#28 21-05-2011 05:52

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Сборки CLEO-скриптов для GTA III, VC, SA

DK22Pac wrote:

Точно, забыл, так наверное только в CLEO4 можно)
PS Так как ты написал работать не будет)

Будет, я ж всё тестирую досконально перед тем как выложить.
Пришлось даже недавно отказаться от SAAP 1.1 из за пропадания игровых звуков, поставил таки 1.8, пофиксил код квиксейва и автосейва, теперь не вылетают, и работают точно также.

Offline

#29 21-05-2011 08:02

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

Re: Сборки CLEO-скриптов для GTA III, VC, SA

@Den_Spb:
Оставшиеся байты заполнятся числом опкодом-нопом 0x90


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

Offline

#30 21-05-2011 08:23

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Сборки CLEO-скриптов для GTA III, VC, SA

Провёл небольшой эксперимент:

0A8C: write_memory 0x400000 size 6 value 0x90 virtual_protect 1

8c9e0b87bb18303e635f38b7e1a75540.jpg
--

0A8C: write_memory 0x400000 size 6 value 0x909090909090 virtual_protect 1

ef6ffb13f0236619ce58ce4243ca6f7c.jpg

Offline

#31 21-05-2011 12:17

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Сборки CLEO-скриптов для GTA III, VC, SA

А вот ещё один адрес - 0x6A70B8
NOP 6 байт и когда здоровье машины уйдёт в минус, она не загорится и не взорвётся. Тоже самое с переворачиванием.

Last edited by Sergey81 (22-05-2011 10:56)

Offline

#32 21-05-2011 16:26

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

Re: Сборки CLEO-скриптов для GTA III, VC, SA

DK22Pac wrote:

@Den_Spb:
Оставшиеся байты заполнятся числом опкодом-нопом 0x90

Запись

0A8C: write_memory 0xC0BC15 size 4 value 0x90 virtual_protect 0

равносильна

0A8C: write_memory 0xC0BC15 size 4 value 0x00000090 virtual_protect 0

т.к. в опкоде указывается размер записываемого числа, а не количество копирований одного и того же числа по разным адресам.

Last edited by Den_spb (21-05-2011 16:29)

Offline

#33 21-05-2011 17:11

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

Re: Сборки CLEO-скриптов для GTA III, VC, SA

@Den_Spb
Если заполняемый размер - больше 4 байт, то происходит "автозаполнение", так сказать.
Это же "фишка" CLEO4))
@Sergey81 - компилил на CLEO4??

когда здоровье машины уйдёт в минус, она не загорится и не взорвётся.

Если бы не загоралась, когда перевернулась, было бы круто. А просто отключать взрыв - не вижу смысла.

Last edited by DK22Pac (21-05-2011 17:20)


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

Offline

#34 21-05-2011 17:43

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Сборки CLEO-скриптов для GTA III, VC, SA

@DK22Pac - CLEO3 конечно.

Если бы не загоралась, когда перевернулась, было бы круто. А просто отключать взрыв - не вижу смысла.

Так она и не загорается. Правда там и без этого косяки появляются.

Offline

#35 22-05-2011 10:58

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Сборки CLEO-скриптов для GTA III, VC, SA

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

{$CLEO}
0000:
//0A8C: write_memory 0x859F80 size 4 value 100.0 virtual_protect 1
{0AB1: call_scm_func @__VarToOffset 1 varnumber 15 result 20@
15@ = 100.0
0A8C: write_memory 0x6A70C0 size 4 value 20@ virtual_protect 0	 }
0A8C: write_memory 0x6A70C0 size 4 value 0x288685 virtual_protect 1
while true
wait 0

  if
  00DF:   actor $PLAYER_ACTOR driving 
  then
  0811: 0@ = actor $PLAYER_ACTOR car
  0227: 4@ = car 0@ health 

	  if
	  4@ <= 249
	  then
		 if and
		 84A7:   not actor $PLAYER_ACTOR driving_boat 
		 89AE:   not actor $PLAYER_ACTOR driving_train 
		 84C8:   not actor $PLAYER_ACTOR driving_flying_vehicle
		 then
		 02D4: car 0@ turn_off_engine
		 10@ = true 
		 end
		 
		 
		 
		if or
		04A7:   actor $PLAYER_ACTOR driving_boat 
		09AE:   actor $PLAYER_ACTOR driving_train 
		04C8:   actor $PLAYER_ACTOR driving_flying_vehicle 
		then									 
		0A8C: write_memory 0x6A70C0 size 4 value 0x809F85 virtual_protect 1
		//15@ = 250.0
		else
		0A8C: write_memory 0x6A70C0 size 4 value 0x288685 virtual_protect 1
		//15@ = 100.0
		end
		
		
	  end   
	  

  end 
  
  if and
  10@ == true
  056E:   car 0@ defined 
  then
  03ED: set_car 0@ disable_flipped_explosion_when_empty true
  10@ = false
  end
  
// 03F0: enable_text_draw 1 
//045B: draw_text_2numbers 320.0 390.0 GXT 'msefct' numbers 4@ 4@
 

end  

//0A93: end_custom_thread 

{
:__VarToOffset
0A9F: 23@ = current_thread_pointer
23@ += 0x3C
0@ *= 4
005A: 23@ += 0@ // address of the local variable 
0AB2: ret 1 23@
}

Last edited by Sergey81 (25-05-2011 11:18)

Offline

#36 22-05-2011 16:47

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

Re: Сборки CLEO-скриптов для GTA III, VC, SA

В строчке

4@ <= 245

ошибка, там должно быть 245.0.


I know everything and nothing...

Offline

#37 22-05-2011 17:30

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Сборки CLEO-скриптов для GTA III, VC, SA

@mfisto - Работает и так, смысл что-то менять?

Offline

#38 22-05-2011 17:42

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

Re: Сборки CLEO-скриптов для GTA III, VC, SA

Ошибки там нет. В структуре машины значение здоровья представлено дробным числом, но опкод 0227 возвращает значение здоровья в виде целого числа (переводит дробное в целое).

Last edited by Den_spb (22-05-2011 17:42)

Offline

#39 22-05-2011 18:21

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

Re: Сборки CLEO-скриптов для GTA III, VC, SA

о боже, действительно целое, заПАМЯТОВАЛ я что-то с этой памятью. Эти переходы туда сюда не доведут меня до добра.=(


I know everything and nothing...

Offline

#40 28-05-2011 16:20

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Сборки CLEO-скриптов для GTA III, VC, SA

Адаптировал clever_trams.cs и star_for_red_3.cs от Den_spb под клео 3.
Если кому нужно, код здесь:
clever_trams.cs - http://pastebin.com/zEXZrUVm
star_for_red_3.cs - http://pastebin.com/b8HrtaLy

Offline

#41 17-06-2011 12:24

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Сборки CLEO-скриптов для GTA III, VC, SA

Очередная полезность, дополнение к коду из поста 35:

0A8C: write_memory 0x570E14 size 2 value 0x1DEB virtual_protect 1

Теперь у перевёрнутой машины здоровье не будет сбрасываться на ноль, чтобы можно её было перевернуть и ехать дальше.

Offline

#42 18-06-2011 03:45

Dr_Emmett_Brown_2011
Registered: 28-04-2011
Posts: 80

Re: Сборки CLEO-скриптов для GTA III, VC, SA

О, классный опкод! smile

Offline

#43 18-06-2011 03:56

444andrei444
Registered: 29-03-2011
Posts: 317
Website

Re: Сборки CLEO-скриптов для GTA III, VC, SA

Не опкод, а адрес памяти.

Offline

#44 18-06-2011 06:45

Dr_Emmett_Brown_2011
Registered: 28-04-2011
Posts: 80

Re: Сборки CLEO-скриптов для GTA III, VC, SA

Ну и опкод тоже, столько полезных функций открывает... smile

Offline

#45 18-06-2011 07:20

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Сборки CLEO-скриптов для GTA III, VC, SA

А сейчас кое-что получше:
3161358587e058f076bc10846f344435.jpeg  5db987411910d68e71fcbe871ab6d92e.jpeg 

{$CLEO}
0000:
0A8C: write_memory 0x00732926 size 4 value 0x00858FD8 virtual_protect 1      //[(float)300.0000]  Vehicle LOD threshold, default: 70.0f
0A8C: write_memory 0x00732978 size 4 value 0x00858FD8 virtual_protect 1      //[(float)300.0000]   Vehicle LOD threshold, default: 70.0f
0A8C: write_memory 0x004250F0 size 4 value 0x0085AB00 virtual_protect 1      //[(float)1500.0000]  onscreen spawn range for vehicles, default: 110.0f
//0A8C: write_memory 0x00431A24 size 4 value 0x0085AB00 virtual_protect 1      //[(float)1500.0000]  unknown
//0A8C: write_memory 0x00431A7C size 4 value 0x0085AB00 virtual_protect 1      //[(float)1500.0000]  unknown
0A8C: write_memory 0x004253E3 size 4 value 0x00858EDC virtual_protect 1      //[(float)600.0000]    DespawnOffscr?
0A8C: write_memory 0x00431A24 size 4 value 0x00858B40 virtual_protect 1      //unknown 50.0

0A8C: write_memory 0x0073295E size 4 value 0x00863994 virtual_protect 1      //[(float)220.0000]   pedsDrawDistanceInstall
0A8C: write_memory 0x006120FF size 4 value 0x00858EDC virtual_protect 1      //[(float)600.0000]   ?absMaxDespawnOnscrInstall
0A8C: write_memory 0x00612128 size 4 value 0x00863994 virtual_protect 1      //[(float)220.0000]   unknown  absMaxDespawnOnscrInstall
0A8C: write_memory 0x00612142 size 4 value 0x00B6F11C virtual_protect 1      //[(float)0.9563]    unknown     
0A8C: write_memory 0x86D284 size 4 value 600.0 virtual_protect 1            // ped spawn distance
0A8C: write_memory 0x871008 size 4 value 500.0 virtual_protect 1            // spawnOffscrRingSizeInstall
0A93:

Я изучил VC.Traffic и решил поискать аналогичные адреса для SA. Вроде как что-то получилось, но надо тестить. Увеличена дистанция прорисовки машин и педов, соответственно и их лодов тоже.
PS. Скрины сделаны с немного другими значениями.

Last edited by Sergey81 (18-06-2011 10:03)

Offline

#46 01-08-2011 14:32

IlyaLion
Registered: 11-07-2011
Posts: 7

Re: Сборки CLEO-скриптов для GTA III, VC, SA

А можете увеличить дистанцию прорисовки в 2,5 раза, относительно этих значений?

Offline

#47 02-11-2011 12:12

little_idiot
Registered: 11-10-2011
Posts: 12

Re: Сборки CLEO-скриптов для GTA III, VC, SA

Позвольте спросить, в 19 посте Sergey81 давал ссылку на канал UT - там спидометр, с названиями ТС (маленьким, аккуратным шрифтом). Никто не подскажет, где можно найти такой?
Извине за флуд. В PM написал, но не знаю, будет ли ответ.

Offline

#48 05-11-2011 12:41

El Sanchez
From: Пермь
Registered: 25-08-2010
Posts: 20

Re: Сборки CLEO-скриптов для GTA III, VC, SA

Sergey81 wrote:
{$CLEO}
0000:
0A8C: write_memory 0x60B4FA size 4 value 0x90909090 virtual_protect 1
0A8C: write_memory 0x60B4FE size 2 value 0x9090 virtual_protect 1
0A93: end_custom_thread

А вот это круто. Проверил, работает как часы. Осталось только отключить перезарядку оружия при подбирании патронов к нему. Есть у кого мысли по этому поводу?

Offline

#49 12-11-2011 21:59

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

Re: Сборки CLEO-скриптов для GTA III, VC, SA

Наверняка, всё зарыто в processPickup (0x457410)


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

Offline

#50 13-11-2011 12:43

El Sanchez
From: Пермь
Registered: 25-08-2010
Posts: 20

Re: Сборки CLEO-скриптов для GTA III, VC, SA

DK22Pac wrote:

Наверняка, всё зарыто в processPickup (0x457410)

В таком случае я бы мог как-нибудь разобраться с этим, но, увы, в скриптинге знаю так - основы - куда уж мне операции с памятью проводить smile

Offline

Board footer

Powered by FluxBB