Этот ASI "скрепт" позволит вам писать моды для GTA SA на Pawn. Вы копируете все содержимое архива в папку с игрой, там ASI LOADER + ASI GTA PAWN + компилятор Pawn от Zeex + пример кода на Pawn.
Примечание: скрипт скипает загрузочный экран игры (потому что в рокстар очень умные люди и очень часто игру из-за видоса лога в начале крашит), поэтому SA-MP может не запускаться (т.к. самп тоже скипает этот экран). В следующей версии появится настройка для этого. Сейчас - поигрались - удалили скрипт. И Pawn скрипт может называться только main.amx и тоже в следующей версии появится настройка для того, чтобы грузить много пувн скриптов.
Доступные функции:
//Game native CheckKey(keyid); // нажата ли клавиша native MessageErrorBox(message[]); // вывести окно native FindPlayerID(); // найти ид локального игрока (сидоджи) native GiveMoney(money); // дать денег (т.к. только основному игроку можно давать деньги тут ид игрока не требуется) native GiveWantedLevel(level); // дать розыск native SetMaxWantedLevel(level); // задать максимальный розыск native SetBlurLevel(level); // установить эффект размытия при движении на машине native SetRadiostation(id); // установить радиостанцию native SetGravity(Float:gravity); // установить гравитацию native SetGameSpeed(Float:speed); // установить скорость игры в процентах native SetTime(h, m); // установить время native SetWeather(weatherid); // установить погоду native SetNextWeather(weatherid); // установить следующую погоду (для плавной анимации смены) native LockWeather(lock); // заблокировать погоду native GetMoney(); // узнать кол-во денег native GetWantedLevel(); // узнать розыск native GetMaxWantedLevel(); // узнать максимальный розыск native GetBlurLevel(); // узнать размытие native GetRadiostation(); // узнать радиостанцию native Float:GetGravity(); // узнать гравитацию native Float:GetGameSpeed(); // узнать скорость игры native GetTime(&h, &m); // узнать время native GetWeather(); // узнать погоду native GetNextWeather(); // узнать следующую погоду native GetLockStatusWeather(); // заблокирована ли погода native SetText(str[], time); // установить игроку текст как при катсценах (работает как-то криво, я знаю) //Player native SetPlayerPos(playerped, Float:x, Float:y, Float:z); // установить игроку позицию (вот тут как раз уже FindPlayerID нужно, потому что в следующей версии появится функция для создания актеров) native GetPlayerPos(playerped, &Float:x, &Float:y, &Float:z); // узнать позицию игрока native PutPlayerInVehicle(playerped, vehicleid, seatid, time = 0); // посадить игрока в автомобиль native GetPlayerVehicleID(playerped); // узнать ид машины в которой игрок //Vehicle native CreateVehicle(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, color1, color2, color3 = 0, color4 = 0, type = PERMANENT_VEHICLE); // создать машину (в игре есть несколько типов машин - которые удаляются когда игрок выйдет из зоны стримнга и нет см. в gta_pawn.inc) native SetVehiclePos(vehicleid, Float:x, Float:y, Float:z); // установить позицию машины native GetVehiclePos(vehicleid, &Float:x, &Float:y, &Float:z); // узнать позицию машины native SetVehicleRot(vehicleid, Float:rx, Float:ry, Float:rz); // установить ротацию (хз можно так сказать) машины native GetVehicleZAngle(vehicleid, &Float:a); // узнать угол поворота машины native AttachVehicleToVehicle(vehicleid1, vehicleid2, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz); // приаттачить машину к машине native GetPlayerpedInVehicle(vehicleid, seatid); // узнать ид игрока в машине //Checkpoints native CreateRaceCehckpoint(type, Float:x, Float:y, Float:z, Float:x_to, Float:y_to, Float:z_to, Float:radius); // создать гоночный чекопинт (типы можно посмотреть на вики сампа) native DestroyCheckpoint(); // удалить чекпоинт native IsInCheckpoint(); // находится ли локальный игрок в чекпоинте //Object native CreateObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz); // создать объект native DestroyObject(objectid); // удалить объект native SetObjectPos(objectid, Float:x, Float:y, Float:z); // установить позицию объекта native SetObjectRot(objectid, Float:x, Float:y, Float:z); // установить ротацию объекта native AttachObjectToObject(objectid, attachobjectid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz); // приаттачить объект к объекту native AttachObjectToVehicle(objectid, attachvehicleid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz); // приаттачить объект к машине native EnableObjectCollision(objectid, enable); // включить/выключить коллизию объекта native MoveObject(objectid, Float:x, Float:y, Float:z, Float:speed_x, Float:speed_y, Float:speed_z, check_collision); // двигать объект native StopObject(objectid); // остановить объект native SetObjectScale(objectid, Float:scale); // установить размер объекта (коллизия при этом размер не меняет)
Калбеки:
forward OnGameInit(playerped); // игра запустилась (уже загрузился мир), playerped не работает пока что (аналог FindPlayerID) forward OnGameUpdate(); // вызывается каждый такт игры forward OnPlayerEnterCheckpoint(); // локальный игрок вошел в чекопинт forward OnPlayerExitCheckpoint(); // вышел из чекпоинта
Некоторые функции были взяты из

https://github.com/DK22Pac/plugin-sdk
Скачать: https://**.**/7LfTnb // сейчас бы VK ссылки замазывать - https://drive.google...5hto0fcpNatgbD7 (это только первая версия, сырая)
Установка: перекинуть все файлы из архива в игру
Сообщение отредактировал GAWESOME: 26 февраля 2018 - 09:24