Карта также осталась консольная, метки вместо того, чтобы подсвечиваться при наведении, подсвечиваются только при перетаскивании гигантского "перекрестия", которое на ПК вообще не нужно.
- Форумы GTAModding.ru
- → Просмотр профиля: Нравится: VcSaJen
Статистика
- Группа: Пользователи
- Сообщений: 270
- Просмотров: 59264
- Статус: Активный участник
- Возраст: Неизвестен
- День рождения: Неизвестен
-
Пол
Мужчина
-
Интересы
GTA, скриптинг в GTA.
Старые поля
-
Флаг (Flag)
Не выбран (None)
-
Любимая игра серии
Я бoт и не умею заполнять поля (меня можно удалять)
#14208 Grand Theft Auto V
Написано VcSaJen
14 April 2015 - 00:42
edit: окей, ошибка исчезла. Я смотрю, меню всё ещё консольное. Управлять меню мышкой неудобно.
Карта также осталась консольная, метки вместо того, чтобы подсвечиваться при наведении, подсвечиваются только при перетаскивании гигантского "перекрестия", которое на ПК вообще не нужно.
Карта также осталась консольная, метки вместо того, чтобы подсвечиваться при наведении, подсвечиваются только при перетаскивании гигантского "перекрестия", которое на ПК вообще не нужно.
#13927 Оформление вики-статей
Написано VcSaJen
06 December 2013 - 21:23
сорри за вопрос, но как в статью добавлять скриншоты? появлятся код
}}[[Файл:Example.jpg]]просто пока есть время хотел бы оформить некоторые "Требуемые статьи"
Загружаешь картинки сюда (если одна) или сюда (если много). Разметку можно просмотреть тут.
Если кратко:
[[Изображение:Example.jpg|120px|описание]]
- где 120px (или thumb) - размер картинки, описание - описание.
Чтобы вставить в оригинальном размере:
[[Изображение:Example.jpg]]
#9050 [GTA IV | EFLC | C++SH] Езда по стенам
Написано VcSaJen
05 July 2011 - 06:41
Т.к. новая Алиса находится только в стране чудес, я планирую перенести все свои скрипты на C++ Script Hook.
Первым я перенёс скрипт для езды по стенам.
Управление:
Включить/выключить - клавиша "Э"
Подпрыгнуть - клавиша "Ж"
Ускориться - клавиша Shift
Этот скрипт поддерживает GTAIV 1.0.7.0 и EFLC 1.1.2.0.
Установка:
Просто скопируйте содержимое архива в папку игры. (XLiveLess (рекомендуется) или ASILoader должен быть установлен)
Скриншоты:

Вот кусок исходника:
SourceSticky.rar 300.42К
7 загрузок)
Скрипт находится в аттаче:
Sticky.rar 147.82К
5 загрузок
Первым я перенёс скрипт для езды по стенам.
Управление:
Включить/выключить - клавиша "Э"
Подпрыгнуть - клавиша "Ж"
Ускориться - клавиша Shift
Этот скрипт поддерживает GTAIV 1.0.7.0 и EFLC 1.1.2.0.
Установка:
Просто скопируйте содержимое архива в папку игры. (XLiveLess (рекомендуется) или ASILoader должен быть установлен)
Скриншоты:
Вот кусок исходника:
#include "CustomFiberThread.h"
#include "../Sticky/Scripting.h"
#include "../ScriptHook/Log.h"
#include <windows.h>
// Pull in all our scripting functions/types
using namespace Scripting;
CustomFiberThread::CustomFiberThread()
{
// Give your own name here!
SetName("Sticky");
}
// Some helper functions
/*...*/
bool CustomFiberThread::KeyPressed(int key)
{
return (GetKeyState(key) & 0x80000000) != 0;
}
// The real script
void CustomFiberThread::RunScript()
{
// This is a fiber thread, so we use an loop to run the contents of this script.
// The thread will terminate when we return from this function.
int PlayerId;
Scripting::Ped PlayerChar;
Scripting::Vehicle PlayerCar;
unsigned int SCurTime, SLastTime;
float UpperForce=0.65f;
bool on=false;
SLastTime=0;
while(IsThreadAlive())
{
PlayerId = GetPlayerId();
if (PlayerId >= 0)
if (IsPlayerPlaying(PlayerId))
if (PlayerHasChar(PlayerId))
{
GetPlayerChar(PlayerId, &PlayerChar);
if (*((int*)(&PlayerChar))>0)
{
if (IsCharInAnyCar(PlayerChar))
{
StoreCarCharIsInNoSave(PlayerChar, &PlayerCar);
while (IsThreadAlive() && IsPlayerPlaying(PlayerId) && IsCharInCar(PlayerChar, PlayerCar))
{
if (on)
{
GetGameTimer(&SCurTime);
if (!IsCarInAirProper(PlayerCar))
{
GetGameTimer(&SLastTime);
}
if (KeyPressed(VK_OEM_1) && (SCurTime-SLastTime<400))
{
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);
}
if (KeyPressed(VK_SHIFT) && (SCurTime-SLastTime<400))
{
if (KeyPressed('S'))
ApplyForceToCar(PlayerCar,1,0.0,-1.0,0.0,0.0,0.0,0.0,1,1,1,1);
else
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);
}
//ShowText(IntToStr(SCurTime-SLastTime),100);
if (SCurTime-SLastTime<500)
{
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);
}
}
if (KeyPressed(VK_OEM_7))
{
on=!on;
if (on) PrintStringWithLiteralStringNow("string", "Sticky activated", 1500, 1);
else PrintStringWithLiteralStringNow("string", "Sticky deactivated", 1500, 1);
while (IsThreadAlive() && KeyPressed(VK_OEM_7)) Wait(100);
}
Wait(25);
}
if (on) PrintStringWithLiteralStringNow("string", "Sticky deactivated", 1500, 1);
on=false;
}
}
}
// Call Wait() so we can process other scripts/game code
// You must call Wait(...) in your loop code for a fiber thread!
Wait(100);
}
}
(Весь исходник можно скачать здесь:
SourceSticky.rar 300.42К
7 загрузок)Скрипт находится в аттаче:
Sticky.rar 147.82К
5 загрузок
#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
Управление:
Подствольный гранатомёт:
Выбрать 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.Прикрепленные файлы
-
StickyAndGrenade.ext.rar 160.87К
9 загрузок
#3311 Native Search Tool
Написано VcSaJen
27 September 2009 - 06:16
Native Search Tool - это поисковик скриптовых функций для GTA IV, наподобие Opcode Search Tool (OST). OST уже устарел (он разрабатывался для ViceCity) и не может нормально искать функции для GTA IV.
Возможности:
* Поиск функций по файлам Natives.txt (полный список функций GTA IV) и NativesPlus.txt (описание функций);
* Возможность уточнить поиск с помощью различных операторов и использовать скобки (как в продвинутых интернет-поисковиках);
* Поиск ведётся только по названиям функций, а не по всей строке;
* Возможность поиска по названиям параметров функции и по типам параметров;
* Почти полная совместимость с Opcode Search Tool по возможностям, сочетаниям клавиш и виду интерфейса;
* Более дружелюбный интерфейс: все настройки можно изменить через программу.
Программа так похожа на Opcode Serch Tool, что большинство юзеров даже не заметят подмены
Можно составлять сложные запросы, например: (Actor | Char) & (Car | Vehicle) или ((Max & Health) | (Min & Armor)) & Char & -Player
Также можно искать текст параметров (!слово) и типов (#слово) функций, например: Char !x !y !z #f32 #f32 #f32 - искать слово Char в названии функции, xyz в параметрах функции и три дробных параметра (будет найдено например:
procedure ClearAreaOfChars(x : f32; y : f32; z : f32; radius : f32);
procedure GetCharVelocity(pedestrian : Ped; pX : Pf32; pY : Pf32; pZ : Pf32);
и т.д.)
Все ошибки и пожелания пишите здесь. Надеюсь, программа будет востребована. Хорошо бы выложить для этого её на SannyBuilder.com как и выложили fxt editor.
NST.rar 395.74К
26 загрузок
Возможности:
* Поиск функций по файлам Natives.txt (полный список функций GTA IV) и NativesPlus.txt (описание функций);
* Возможность уточнить поиск с помощью различных операторов и использовать скобки (как в продвинутых интернет-поисковиках);
* Поиск ведётся только по названиям функций, а не по всей строке;
* Возможность поиска по названиям параметров функции и по типам параметров;
* Почти полная совместимость с Opcode Search Tool по возможностям, сочетаниям клавиш и виду интерфейса;
* Более дружелюбный интерфейс: все настройки можно изменить через программу.
Программа так похожа на Opcode Serch Tool, что большинство юзеров даже не заметят подмены
Можно составлять сложные запросы, например: (Actor | Char) & (Car | Vehicle) или ((Max & Health) | (Min & Armor)) & Char & -Player
Также можно искать текст параметров (!слово) и типов (#слово) функций, например: Char !x !y !z #f32 #f32 #f32 - искать слово Char в названии функции, xyz в параметрах функции и три дробных параметра (будет найдено например:
procedure ClearAreaOfChars(x : f32; y : f32; z : f32; radius : f32);
procedure GetCharVelocity(pedestrian : Ped; pX : Pf32; pY : Pf32; pZ : Pf32);
и т.д.)
Все ошибки и пожелания пишите здесь. Надеюсь, программа будет востребована. Хорошо бы выложить для этого её на SannyBuilder.com как и выложили fxt editor.
NST.rar 395.74К
26 загрузок
- Форумы GTAModding.ru
- → Просмотр профиля: Нравится: VcSaJen
- Политика Конфиденциальности
- Общие правила форумов ·



Публикации

