Перейти к содержимому


Самый Популярный Контент


#14552 Underground

Написано cj2000 09 July 2018 - 12:25

Версия 3.3 здесь, а первый пач к ней здесь.




#13959 Обсуждение

Написано Lego 09 February 2014 - 12:07

если ссылку ручками поправить, то можно оживить.

Chipsman, подними лимит сообщений в ЛС, ну хоть до 500. Если потом будет какая-то нагрузка, то можно и обратно вернуть будет.

кстати, непонятно зачем есть возможность нажать "нравится" на собственном сообщении.


#7320 [GTA IV | Alice | Delphi] Езда по стенам и подствольный гранатомёт.

Написано VcSaJen 21 January 2011 - 14:11

Вот порт на Alice моих скриптов для езды по стенам и подствольный гранатомёт.
Управление:
Подствольный гранатомёт:
Выбрать AK-47 или M-4 и нажать E для пуска гранат. Если у вас гранаты, то будет стрелять гранатами, а если коктейль Молотова, то будет стрелять горючими бутылками. Правда, из-за особенностей физики GTA4 и большого сопротивления воздуха гранаты не летят далеко.
Езда по стенам:
J - подпрыгнуть
Shift - ускориться
Из-за особенностей физики GTA4 мотоциклы будут уходить вбок при повороте.
Из-за особенностей работы скрипта машина если перевернётся то будет подпрыгивать.
Если у вас другой FPS чем у меня, то настройте UpperForce под себя.
Другое:
I - Скопировать в буфер обмена текущие координаты
U - Переместиться в координаты из буфера обмена
N -
K - Получить санчез
J - получить Mule

library StickyAndGrenade; {$R *.res} {$E ext}

uses
  Windows,
  SysUtils,
  Clipbrd,
  ScriptNatives,
  ScriptTypes,
  ScriptUseful;

const
  Rus	   ='АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя';
  EncodedRus='ЋЏђ‘’””•–—˜™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМН';

function EncodeRus(const text: string): string;
var I,p: Integer;
begin
  Result:=Text;
  for I:=1 to Length(Result) do
  begin
	if Result[i]='ё' then Result[i]:='е';
	if Result[i]='Ё' then Result[i]:='Е';
	p:=pos(Result[i], Rus);
	if p>0 then Result[i]:=EncodedRus[p];
  end;
end;

function DecodeRus(const text: string): string;
var I,p: Integer;
begin
  Result:=Text;
  for I:=1 to Length(Result) do
  begin
	p:=pos(Result[i], EncodedRus);
	if p>0 then Result[i]:=Rus[p];
  end;
end;

procedure ShowText(text: string; time: integer = 5000);
begin
  PrintStringWithLiteralStringNow('string', PChar(EncodeRus(text)), time, 1);
end;

function Round(X: Extended): Int64;
begin
  Result:=System.Round(X);
end;

function FTS(Value: Extended): string;
begin
  DecimalSeparator:='.';
  Result:=FloatToStrF(Value,ffFixed,10,3);
end;

function ReadNum(S: string; var I: Integer): Single;
var ts: string;
begin
  while not (S[I] in ['0'..'9', '-', '.']) and (I<=Length(S)) do Inc(I);
  ts:='';
  while (S[I] in ['0'..'9', '-', '.']) and (I<=Length(S)) do
  begin
	ts:=ts+S[I];
	Inc(I);
  end;
  //ShowText(ts,2000);
  //Wait(2000);
  Result:=StrToFloat(ts);
end;

procedure SpawnCar(Name : PChar);
var
  PlayerId : Player;
  PlayerChar : Ped;
  Car : Vehicle;
  Hash : Cardinal;
  X, Y, Z : f32;
begin
  PlayerId := GetPlayerId();
  if PlayerId >= 0 then
  if IsPlayerPlaying(PlayerId) then
  if PlayerHasChar(PlayerId) then
  begin
	GetPlayerChar(PlayerId, @PlayerChar);
	if PlayerChar > 0 then
	begin
	  Hash := GetHashKey(Name);
	  RequestModel(Hash);
	  while not HasModelLoaded(Hash) do Wait(10);
	  GetOffsetFromCharInWorldCoords(PlayerChar, 0, 5, 0, @X, @Y, @Z);
	  CreateCar(Hash, X, Y, Z, @Car, True);
	  MarkModelAsNoLongerNeeded(Hash);
	  MarkCarAsNoLongerNeeded(@Car);
	  PrintStringWithLiteralStringNow('string', PChar(Name + ' spawned !'), 5000, 1);
	end;  
  end;
end;

var
  MemInfo: TMemoryBasicInformation;
  ModName: array[0..MAX_PATH] of Char;
  S: string;

//Если что не понятно, спрашивайте в темке.
procedure main(); export;
const
  MaxObjs=16; // Максимальное кол-во летящих одновременно гранат
  ReloadTime=500;// Время перезарядки в мс
var
  Objs: array [0..MaxObjs-1] of LongWord;
  ObjsStartTimes: array [0..MaxObjs-1] of Integer;

  procedure CheckObjs;
  var
	I: Integer;
	CurTime: Integer;
	Model: LongWord;
	X,Y,Z: Single;
  begin
	GetGameTimer(@CurTime);
	for I:=0 to MaxObjs-1 do
	begin
	  if DoesObjectExist(Objs[I]) and (Objs[I]>0) then
	  begin
		if HasObjectCollidedWithAnything(Objs[I])
					   or IsObjectInWater(Objs[I])
					   or (CurTime-ObjsStartTimes[I] = 5000) then
		begin
		  GetObjectCoordinates(Objs[I], @X, @Y, @Z);
		  GetObjectModel(Objs[I], @Model);
		  if Model=GetHashKey('w_grenade') then
			AddExplosion(X,Y,Z, 0, 5.5, 1, 0, 1.0);
		  if Model=GetHashKey('w_molotov') then
			AddExplosion(X,Y,Z, 1, 5.5, 1, 0, 1.0);
		  DeleteObject(@Objs[I]);
		end;
	  end;
	end;
  end;

  function GetFreeObjIndex: Integer;
  var I: Integer;
  begin
	Result:=-1;
	for I:=0 to MaxObjs-1 do
	  if not DoesObjectExist(Objs[I]) then
	  begin
		Result:=I;
		ShowText('OK', 1000);
		Exit;
	  end;
	ShowText('~r~Fail', 1000);
  end;

var
  PlayerId : Player;
  PlayerChar : Ped;
  PlayerCar: Vehicle;
  UpperForce: Single;
  //S: string;
  X,Y,Z: Single;
  I,N: Integer;
  LastTime, CurTime: Integer;
  SLastTime, SCurTime: Integer;
  Cam, Weap, Ammo, WeapModel: Cardinal;
  RotX,RotY,RotZ,Vx,Vy,Vz: Single;
  BonePos: Vector3;
  //---------------
  ptfx: Cardinal;
begin
  Wait(2000);
  try
  DecimalSeparator:='.';
  LastTime:=0;
  SLastTime:=0;
  //ShowText('Липучка (123456.654321)');
  UpperForce:=0.65;
  while True do
  begin
	PlayerId := GetPlayerId();
	if PlayerId >= 0 then
	if IsPlayerPlaying(PlayerId) then
	if PlayerHasChar(PlayerId) then
	begin
	  GetPlayerChar(PlayerId, @PlayerChar);
	  if PlayerChar > 0 then
	  begin
		if KeyPressed(Ord('U')) then
		begin
		  S:=Clipboard.AsText;
		  I:=1;
		  try
			X:=ReadNum(S,I);
			Y:=ReadNum(S,I);
			Z:=ReadNum(S,I);
			SetCharCoordinates(PlayerChar, X, Y, Z);
			ShowText('Выполнен переход на ~n~'+FTS(X)+', '+FTS(Y)+', '+FTS(Z));
		  except
			on EConvertError do ShowText('~r~Неверный формат координат телетортации!');
		  end;
		end;
		if KeyPressed(Ord('I')) then
		begin
		  GetCharCoordinates(PlayerChar, @X, @Y, @Z);
		  ShowText('Скопировано '+FTS(X)+', '+FTS(Y)+', '+FTS(Z));
		  Clipboard.AsText:=fts(X)+', '+fts(Y)+', '+fts(Z);
		end;

		CheckObjs;

		GetCurrentCharWeapon(PlayerChar, @Weap);
		GetGameTimer(@CurTime);

		if KeyPressed(Ord('E')) and
		   KeyPressed(VK_RBUTTON) and
		   (Weap in [14,15]) and
		   (CurTime-LastTime>ReloadTime) then
		begin
		  PlaySound(-1, 'ball_returned');
		  GetPedBonePosition(PlayerChar,1232,0.42,0.05,-0.15,@BonePos);
		  GetCharCoordinates(PlayerChar,@X,@Y,@Z);
		  GetDistanceBetweenCoords3D(BonePos.X,BonePos.Y,BonePos.Z,X,Y,Z,@X);
		  N:=GetFreeObjIndex;
		  GetCharWeaponInSlot(PlayerChar, 8, @Weap, @Ammo, @WeapModel);//04B8
		  if Ammo<=0 then ShowText('Нет гранат!');

		  if (X<2.0) and (N<>-1) and (Ammo>0) then
		  begin

			CreateObject(WeapModel,BonePos.X,BonePos.Y,BonePos.Z,@Objs[N],True);
			Dec(Ammo);
			SetCharAmmo(PlayerChar, Weap, Ammo);

			SetObjectVisible(Objs[N],False);
			SetActivateObjectPhysicsAsSoonAsItIsUnfrozen(Objs[N], true);

			GetGameCam(@Cam);
			GetCamRot(Cam,@rotX,@rotY,@rotZ);
			RotZ:=RotZ+90.0;
			Vx:=ScriptNatives.Cos(rotZ)*50.0;
			Vy:=ScriptNatives.Sin(rotZ)*50.0;
			Vz:=ScriptNatives.Sin(rotX)*50.0;

			ApplyForceToObject(Objs[N],1,Vx,Vy,Vz,0.0,0.0,0.0,0,1,1,1);// Эта конструкция может показаться странной: мол, зачем повторять 2 раза и делать задержку?
			Wait(0);											   // На самом деле при одинарном вызывании без задержки объект вообще не будет двигаться.
			ApplyForceToObject(Objs[N],1,Vx,Vy,Vz,0.0,0.0,0.0,0,1,1,1);//
			SetObjectVisible(Objs[N],True);
			SetObjectRecordsCollisions(Objs[N],True);
			
			GetGameTimer(@ObjsStartTimes[N]);
			GetGameTimer(@LastTime);

		  end;
		end;
		//SetPlayerInvincible(PlayerId, True);
		//SetPlayerNeverGetsTired(PlayerId, True);
		//SetPoliceIgnorePlayer(PlayerId, True);

		if KeyPressed(Ord('N')) then
		begin
		  ptfx:=StartPtfxOnPedBone('exp_trespass_mid', PlayerChar, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1205, 1065353216);
		  Wait(5000);
		  StopPtfx(ptfx);
		end;

		if KeyPressed(Ord('K')) then
		begin
		  SpawnCar('sanchez');
		end;
		if KeyPressed(Ord('J')) then
		begin
		  SpawnCar('mule');
		end;
		{if KeyPressed(Ord('M')) then
		begin
		  GetPedBonePosition(PlayerChar,1232,0.42,0.05,-0.15,@BonePos);
		  CreateObject(GetHashKey('w_grenade'),BonePos.X,BonePos.Y,BonePos.Z,@Obj,True);
		  ShowText(fts(X));
		  SetObjectCollision(Obj,False);
		end;}

		if IsCharInAnyCar(PlayerChar) then
		begin
		  StoreCarCharIsInNoSave(PlayerChar, @PlayerCar);
		  while IsPlayerPlaying(PlayerId) and IsCharInCar(PlayerChar, PlayerCar) do
		  begin
			if KeyPressed(Ord('J')) and (SCurTime-SLastTime<200) then
			begin
			  ApplyForceToCar(PlayerCar,1,0.0,0.0,1.0,0.0,2.0,0.0,1,1,1,1);
			  //Wait(90);
			  //ApplyForceToCar(PlayerCar,1,0.0,0.0,1.0,0.0,1.0,0.0,1,1,1,1);
			end;
			if KeyPressed(VK_SHIFT) and (SCurTime-SLastTime<200) then
			begin
			  ApplyForceToCar(PlayerCar,1,0.0,1.0,0.0,0.0,0.0,0.0,1,1,1,1);
			  //Wait(90);
			  //ApplyForceToCar(PlayerCar,1,0.0,0.0,1.0,0.0,1.0,0.0,1,1,1,1);
			end;

			//ShowText(FTS(UpperForce),100);
			{TODO:Сделать мод езденья по стенам и узнать назначение остальных параметров}
			GetGameTimer(@SCurTime);
			if not IsCarInAirProper(PlayerCar) then
			begin
			  GetGameTimer(@SLastTime);
			end;
			ShowText(IntToStr(SCurTime-SLastTime),100);
			if SCurTime-SLastTime<500 then
			begin
			  ApplyForceToCar(PlayerCar,1,0.0,0.0,UpperForce,0.0,0.0,0.0,1,0,1,1);
			  ApplyForceToCar(PlayerCar,1,0.0,0.0,-UpperForce,0.0,0.0,0.0,1,1,1,1);
			end;
			Wait(25);
		  end;
		end;
	  end;
	end;
	Wait(50);
  end;
  except
	on E: Exception do
	begin

	  Windows.Beep(100, 100);
	  Windows.Beep(1600, 100);
	  Windows.Beep(100, 100);
	  Windows.Beep(1600, 100);
	  Windows.Beep(100, 100);
	  Windows.Beep(1600, 100);

	  ShowText('-------------------------------',0);
	  ShowText('или в крайнем случае на ящик VcSaJen@ya.ru',0);
	  ShowText('Пожалуйста сообщите эти данные автору в темке RaCon на [url="http://forums.gtamodding.ru/',0);"]http://forums.gtamodding.ru/',0);[/url]

	  ShowText('Адрес: '+IntToHex(Integer(ExceptAddr),8),0);
	  ShowText('Адрес Main: '+IntToHex(Integer(@main),8),0);

	  VirtualQuery(ExceptAddr, MemInfo, SizeOf(MemInfo));
	  if (MemInfo.State = MEM_COMMIT) and
		 (GetModuleFileName(THandle(MemInfo.AllocationBase), ModName, SizeOf(ModName)) <> 0) then
	  begin
		S:=ModName;
		Delete(S, Pos(GetCurrentDir,S), Length(GetCurrentDir)+1);
		//ShowText('Локальный адрес Base: '+IntToHex(Integer(ExceptAddr)-Integer(MemInfo.BaseAddress),8),0);
		ShowText('Локальный адрес: '+IntToHex(Integer(ExceptAddr)-(Integer(MemInfo.AllocationBase)+$1000),8),0);
		//ShowText('Base: '+IntToHex(Integer(MemInfo.BaseAddress),8),0);
		ShowText('Allocation base: '+IntToHex(Integer(MemInfo.AllocationBase),8),0);
		ShowText('Модуль: '+S,0);
	  end
	  else begin

	  end;

	  ShowText(E.Message,0);
	  ShowText('Класс: '+E.ClassName,0);
	  ShowText('-------------------------------',0);
	  ShowText('  Информация об ошибке:',0);
	  ShowText('-------------------------------',0);

	  AddNextMessageToPreviousBriefs(False);
	  ShowText('В RaCon возникла ошибка. Перепишите информацию об ошибке и перезагрузите игру.',5000);

	  Wait(5000);
	  {'~r~'+E.ClassName+': '+E.Message}
	  AddNextMessageToPreviousBriefs(False);
	  ShowText('Информацию об ошибке смотрите в "Истории" (Briefs) в меню (2-й пункт, сразу после "Карты").',60000);
	  //Clipboard.AsText:=E.Message;
	  Exit;
	end;
  end;
end;

exports main;

end.

Прикрепленные файлы




#14529 [REL] OpenIV (GTA V, GTA IV & Max Payne 3)

Написано GooD-NTS 01 October 2017 - 20:28

OpenIV 2.9.1



Сегодня мы выпускаем OpenIV 2.9.1.

Изменения в OpenIV 2.9.1
Открыть папку: Теперь вы можете открыть папки таким же образом, как и архивы. Используйте меню "Файл > Открыть папку…" и выберите папку которую вы хотите открыть. Выбранная папка появится в конце списка в левой панели навигации.
Диалог подтверждения удаления: OpenIV теперь будет спрашивать вас подтверждения об удалении файлов, это поможет избежать случайных удалений игровых файлов. Вы можете отключить этот диалог в настройках OpenIV.

Grand Theft Auto V
  • Добавлена поддержка файла carvariations.ymt
  • Добавлена поддержка файла vfxvehicleinfo.ymt
Вы можете редактировать эти файлы во встроенном текстовом редакторе OpenIV или экспортировать их в META/XML формат.

Grand Theft Auto IV
  • Исправлена ошибка, которая приводила к генерации неправильного кода во время просмотра SCO файлов.
Общие изменения, улучшения и исправления
  • Исправлена ошибка, которая не позволяла использовать контекстное меню у навигационных кнопок (Назад/Вперёд) когда история посещений содержала много элементов.
  • Исправлена ошибка, из-за которой некоторые пользователи могли увидеть “Unable to initialize Windows DirectX subsystem” сообщение об ошибке.
  • Добавлена возможность использовать клавиши клавиатуры для перемещения между элементами списка с информацией о шейдерах в просмотрщике моделей.
  • Были сделаны незначительные визуальные изменения в диалоге "Больше информации" в просмотрщике моделей.
  • Исправлена ошибка, которая приводила к показу диалога "Переход в режим редактирования" во время создания архива уже находясь в режиме редактирования.
  • Было изменено сочетание клавиш для создания нового архив с "Ctrl + N" на "Ctrl + Shift + N".
  • Добавлена возможность создать новый архив в текущем месте используя сочетание клавиш "Ctrl + N" (По аналогии с "Ctrl + D"для создания папки).
  • Исправлена ошибка, из-за которой строка состояния не обновлялась во время добавления или удаления элементов.
  • Исправлена ошибка, которая приводила к неожиданному поведению во время двойного клика на заголовке группы в списке файлов.
  • Вы можете использовать сочетание клавиш "Shift + Delete" что бы удалить файл минуя корзину если она используется (Это работает только для файлов на диске, но не в архивах).
  • Исправлена ошибка, из-за которой кнопка режима редактирования становилась недоступной в определённых сценариях.
  • Улучшена поддержка символических ссылок. Теперь вы можете использовать функции поиска, которая ваша папка с игрой является символической ссылкой.
  • Был изменён способ отображения размера файлов. Теперь размер показывается как в Проводнике Windows.
  • Так же были сделаны другие более мелкие изменения
Вы можете найти список изменения на нашем баг-трекере здесь.

Локализация интерфейса
Доступна инструкция по локализации интерфейса OpenIV на другие языки. Вы можете найти эти инструкцию на GitHub. Что касается существующих локализаций – полный список различий между 2.9 и 2.9.1 доступен здесь.
 

downloadOIV_RU.png




#14474 Команда OpenIV представляет Liberty City в GTA V

Написано cj2000 16 February 2017 - 13:19

04.png

Я понимаю, что даже сами рокстары не особо с географией дружат, но перенести LC немного на север было бы не плохо.




#14455 Команда OpenIV представляет Liberty City в GTA V

Написано GooD-NTS 26 January 2017 - 20:02

Команда OpenIV представляет Liberty City в GTA V

Скриншоты

lciv_s01.png lciv_s02.png

lciv_s03.png lciv_s04.png

lciv_s05.png lciv_s06.png

lciv_s07.png lciv_s08.png

lciv_s09.png lciv_s10.png

lciv_s11.png lciv_s12.png

lciv_s13.png

Liberty City в V выходит Весной 2017




#14438 [REL] OpenIV (GTA V, GTA IV & Max Payne 3)

Написано cj2000 18 January 2017 - 11:24

Антивирус? Фаервол? Кто-то блокирует доступ к сайту.

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

На сей раз прокси тоже сразу всё решил. Без проблем через прокси скачал. Спасибо за подсказку.




#14425 [REL] OpenIV (GTA V, GTA IV & Max Payne 3)

Написано cj2000 10 January 2017 - 16:55

 

А где я писал, что хочу делать моды для ГТА 5? Я просто хочу загрузить модели из Max Payne 3 в макс.

Ну, с этим особых проблем быть не должно.

 

Так XP твоя прога вроде бы не поддерживает, а так же с моей версией макса может быть проблема, у меня там макс 9, не путать с 2009.




#14381 [GTA V | REL]DWS system for ScriptHook V

Написано Kordal 31 May 2016 - 10:54

21022.jpg

 

Данный плагин является расширением для GTA 5 ScriptHook V, который позволит модмейкерам использовать возможности языка программирования Delphi для написания скриптов. В основе модификации лежит библиотека DWS(Delphi Web Script) и ScriptHook V for Delphi SDK . Проект только набирает обороты, поэтому реализовано совсем не много.

 

Требования:
  • ScriptHook V

Основные возможности:

  • Написание скриптов с возможностью использования синтаксиса языка DELPHI / PASCAL.
  • Нет необходимости использовать компилятор и среду разработки, таскать сторонние библиотеки.
  • Скрипты можно писать прямо в текстовом редакторе.
  • Скрипты выполняются в режиме реального времени интерпретатором Delphi Web Script.
  • Скрипты можно писать в режиме реального времени, свернув игру в Taskbar.
  • Перекомпиляция скриптов доступна по нажатию системной клавиши F9 непосредственно в игре.
  • Ведение логов (запись ошибок компиляции в файл с указанием строки, колонки и имени исполняемого скрипта).

Недостатки:

  • Большой размер плагина ~10 Мб.
  • Отсутствует пользовательский интерфейс.
  • Плагин находится на ранней стадии разработки, поэтому возможности его применения минимальны.

Установка:

  • Обновить версию ScriptHook V до последней. Распаковать содержимое архива (dxinput8.dllScriptHookV.dll) в директорию с игрой.
  • Поместить содержимое архива с данной модификацией в корневую директорию с игрой.

Настройка и использование:

В папке Data находятся: файл конфигурации DelphiWebScript.ini и директория Scripts со скриптами. 
DelphiWebScript.ini содержит два параметра:
  • ScriptDir - путь к скриптам, указывает системе где искать файлы со скриптами.
  • RunScript - название основного (ведущего) скрипт файла, которое будет запускать система, например Main.dws.
В директории Scripts (сюда помещаем файлы со скриптами):
  • Hashes.dws - константы с хеш кодами, для определения скриптовых функций в игре (полный список констант можно посмотреть в оригинальном SDK).
  • Scripting.dws - скриптовые функции игры, полный список функций см. в оригинальном SDK.
  • Test.dws, TurnSignals.dws -  примеры скриптов.
После редактирования всех скриптов, запускаем игру в одиночном режиме. Если все сделано правильно, вы увидите результат выполнения скрипта в игре, а DelphiWebScript.log информацию о состоянии ваших скриптов. По нажатию системной клавиши F9 происходит перезагрузка и повторная компиляция ведущего скрипта, указанного в параметре RunScript файла DelphiWebScript.ini. Таким образом, можно редактировать скрипты не завершая игру.
 

История версий:

  • 0.12 - Добавлены примеры скриптов.
  • 0.10 - Начальная версия, первый релиз.
Благодарности:
I express thanks:
- Alexander Blade

- Brink, Danie (South Africa)
- Darling, Jeremy
- Egorov, Nikita (Russia)
- Fuchs, Manfred (Germany)
- Grange, Eric (France)
- Hariseno, Jagad (Hungary)
- Hernler, Hannes (Austria)
- Krenn, Willibald (Austria)
- Lind, Martin (Denmark)
- Listac, John
- Luleich, Andreas (Germany)
- Rheinheimer, Danilo Luiz (Brazil)
- Riepp, Michael (Germany)
- Ronzano, Juan Luis (Portugal)
- Tosik
- Waldenburg, Martin (Germany) 
 
and to team of the site Modgames.net. Thank you very much!
 
Скрытый текст



#14365 Underground

Написано cj2000 28 January 2016 - 12:53

Новая версия здесь.




#14297 Underground

Написано cj2000 22 June 2015 - 12:32

 

Сюжет тоже будет, над ним тоже несколько человек из команды работают.


Ну и как Вы собираетесь сюжетно объединять ВС 1986 года, СА 1993 и ЛС 2001? Рокстары показывали Америку 80-х, 90-х и 2000-х в трёх отдельных играх, Вы же спихали всё в одно, не привнеся ничего нового. В прогрессе видны лишь изображения того, что мы уже давным давно видели (для приличия хотя бы города переприлайтили под нормы СА или взяли бы города из Х-гроб версий гта3 и ВС с картами теней и более качественными текстурами), а то сейчас у моддеров сплошной copy-paste наблюдается, деградация одним словом.

 

Просто тупо объединять сюжеты из этих 3 игр мы не собираемся. У мода будет свой сюжет, и свой новый главный герой, а точней герои (ну по типу ГТА 5). Время сюжета должно быть где то 2003 год, из чего следуют не большие измененя для карты СА и значительные изменения для карты ВС. Прилайты должны тоже быть переделаны под нормы СА. Карты которые показаны в видео не обязательно будут выглядеть так же в окончательной версии. Главная задача этих видео была, показать возможность добавления новых карт, без замены существующей.




#14283 Интерьер

Написано Lego 14 June 2015 - 11:04

Это тема для обсуждения статьи: Интерьер

Интересно, что в San Andreas "интерьер" - это не просто число, а набор флагов, из которых номер интерьера занимает только младший байт.
Например, 1024 это вовсе не внутреннее помещение, а внешний мир с дополнительным флагом для рендера.
Я думаю, это известная инфа, но в статьях об этом ни слова.


#14205 Интересный скрипт миссии "BusMod" by rooft0p, разбор полётов.

Написано НикИТОС 13 April 2015 - 19:17

Ок, гляну, но мне кажется там что-то другое, нежели SET_TIME_SCALE, ибо всё вокруг не затормаживается, а принудительно останавливается только игрок, остальной мир живёт своей жизнью (так, например, пока мы копаемся в консоли, в авто игрока может въехать какой-нибудь неуклюжий водитель :D и коллизии обоих транспортных средств при этом будут обработаны корректно и в реальном времени).

Думаю, SET_PLAYER_CONTROL тебе подойдёт.


#14182 Интересный скрипт миссии "BusMod" by rooft0p, разбор полётов.

Написано НикИТОС 08 April 2015 - 15:43

Я хочу разобраться в основах скриптинга GTA, дабы понимать как всё работает, поэтому и ковыряюсь )

Тогда советую скачать GTA IV SCOCL, дабы приблизить процесс написания скриптов к стилю R*

Вот кстати столкнулся с ещё одной непонятностью:
В Net ScriptHook v1.7.1.7b by HazardX есть функция "Player.Character.Invincible" - неуязвимость персонажа.
Если повесить её на кнопку, то она прекрасно работает:
А вот если её поставить просто в запуск при загрузке скрипта, то она нефурычит...
Результат, как и описан выше. Как думаешь, в чём подвох?

Думаю, что задержки не хватает, и скрипт пытается сделать игрока неуязвимым ещё до его инициализации. Попробуй сделать десятисекундный обратный отсчёт перед Player.Character.Invincible = True. Вот и посмотришь, с какой секунды пойдёт отсчёт после старта игры и заодно узнаешь, в этом ли причина.

Кстати, раз уж нейтивами балуешься, советую для игрока всё-таки юзать SET_PLAYER_INVINCIBLE(pid, TRUE).


#14094 Ментовский Беспредел

Написано XEPOMAHT007 24 February 2015 - 22:09

То, что "окрашено красненьким" в шаблоне, то и на очереди: http://gtamodding.ru.../Шаблон:VC-navi

Те модификации, которые мне чем-то интересным запомнились 10 лет спустя, о тех и не жалко статью-некролог написать (помним, любим, скорбим и всё такое...).


#14061 Моддинг LCS и VCS (PSP/PS2)

Написано Lego 21 August 2014 - 19:47

P.S.Скоро выложу листинги VCS/LCS PSP версий на асме и c++.С последним проблемы,т.к. pspdecompiler надо скомпилировать в рабочий декомпилятор,а Dev-cpp меня с бубном заставляет танцевать.Никто не хочет помочь скомпилить?


Прикрепленный файл  pspdecompiler.zip   240.69К   105 загрузок
собирал компилятором 2008-й студии (т.е. для работы нужена msvcr90.dll) из вот этого репо, exe запускается, но на работоспособность не проверял.


#14006 Моддинг LCS и VCS (PSP/PS2)

Написано majestic 21 May 2014 - 20:54

Это 8битная текстура 512х256 (при большем размере возникают проблемы с палитрой) с мипмапами вместо оригинальной 64х64 4bpp

Добавлена путем компенсирования размера файла уменьшением разрешения других текстур, если не компенсировать - таблица смещений ресурсов выходит за границы LVZ и игра просто виснет при загрузке.




#13943 LCS PC Edition

Написано Lego 28 December 2013 - 18:34

Интересно, а под андроид запилить реально? хотя бы частично?


#13914 Reverse engineering и IDA Pro

Написано listener 28 October 2013 - 08:44

Так в том-то и фокус, что переименовывать нужно не просто так, а проверять, что этот метод занимает тот же слот в VMT потомков (и больше не используется нигде). у меня уже есть safe_rename, который переименовывет методы, которые используются только в одном классе. В теории, пройтись по потомкам, можно и с помощью .idc, но проще, все-таки сделать это внешним скриптом.

Виртуальные методы pgBase раньше использовались при дефрагментации памяти (предположительно, как остаток от экспортера ресурсов). Сейчас они точно не используются (если посмотреть на pgDictionary<grcTexture>, там _m8 вообще выпадает в отладчик).


#13878 Моддинг LCS и VCS (PSP/PS2)

Написано XEPOMAHT007 05 October 2013 - 19:13

Кто подскажет запихнуть ли эту некислую таблицу(64 радара) в статью про DTZ или же создать отдельную.


Эта таблица есть в Data Zlib ВСС. Соответственно, попасть в неё можно из заголовка. Поэтому в вики, вместо того, чтобы городить огород из кучи адресов ресурсов DTZ, вполне достаточно указать ОДИН адрес в структуре заголовка (который в статье по какой-то причине отсутствует, хотя разбирался многими людьми).