Меню
GTA 5
Red Dead Redemption 2 GTA San Andreas
GTA Online GTA 6 GTA 4 GTA Vice City GTA 3 GTA CTW GTA VC Stories GTA LC Stories Rockstar Classics Модмейкерам
Прочее
Топ коммент за вчера
zaxar-tapilin32002
вчера, 03:33
К файлу
Durman
Ну, Русланчик, опять порадовал.
Пусть это совсем не то. что ТСЛС, но проект в своем классе очень даже годный(т.е. среди шутанов с посредственным сюжетом, да и еще когда это породия).
Мне лично миссии понравились и зашли. Проходил на одном дыхании, и даже хотелось чуть больше - ну вот на 2-4 миссий больше бы сделал, и прям сок.
С другой стороны, были и лишние миссии.
Но об этом по-подробней.
Плюсы:
+Было пару моментов с шутками, причем годных. Но их тут не хватает. Если(теперь для ближайших 2-3 проекта в пример только твой ТСЛС брать ) в ТСЛС шуток было больше, хотя и в большинстве своем этот проект был серьезным, то тут их не хватает.
+ Хорошо прописанный жаргон некоторых персонажей.
+Очень понравилась миссия "Эвансы". По сути простая, но чем-то зацепила. Особенно радует по-этапность миссии.(т.е. нету толпы бомжей идущих на тебя). Да и постановка перестрелок (в геймплее) здесь была хорошей.
+Радует что для такого несерьезного шутана, ты выдаешь ГГ реалистичное кол-во патрон. Было 2 момента, когда у меня тупо патроны кончались, и приходилось снимать с трупов. Особенно радует, что и у противников патрон не так много.
+ Спрятанные нычки
+В мисии "Химикат 6000" порадовал момент с сейфом с Стенли. Наверно единственный момент с описанием личности персонажа. Как вариант для следующих проектов, сделать пару миссий про Стенли в обычной жизни.
+ В некоторых миссиях был маппинг - в хорошем качестве.
+ В миссии "Дурман" была офигенная погоня. Мне прям очень понравилось. Особенно интересует момент с вертолетом, который стреляет ракетами. Нигде раньше такого не видел, и вообще хрен знает как это сделать. Прям очень понравилось.
+В миссии "Полет Судьбы" Понравилась постановка видео(с дверью и стрельбой по самолету). Т.е. ты реально можешь ставить экшонистые сцены, так что пользуйся этим почаще. Ну и развивай это - уверен. лишним не будет.
+ Очень понравилась 3 Бонусная миссия - хорошая идея, которая хорошо реализована.
+ Ну и саундтрек. Музыка подобрана хорошо, и там где нужно. Все прям на высоте.
Минусы тоже есть, но более как к DYOMеру, чем к самой миссии:
-Кривые диалоги. Т.е. тупо букву не ту написал, и проч.
-Наличие сюжетных дыр. Да - они не большие, да - это больше по приколу миссия. Но все равно не приятно.
- Мисиию "Химикат 6000" считаю лишней. Сюжетные моменты можно было бы связать вместе с другими миссиями. А так получилось очень натянутая миссия. Тоже самое с Бонусной миссией 1. Да - показано как Вильмар получил ранение. Но сама миссия очень затянуто. Да и использование парковок для перестрелок - не самый лучший прием в шутерной миссии. К тому же у тебя он хромает, ибо весь потенциал парковки не использован.
- В некоторых миссиях выдавал очень много ХР. Портило хоть какую-то реальность, и избавляло от осторожности- а значит сильно упрощенный геймплей.
- Идея с противоядием ну очень натянута. Уж лучше бы он его мышьяком надоил и все. Да и идея с "Успей за 3 минуты" вообще не вписывается сюда. Да и это та еще банальщина.
- Кстати о времени. В дальнейшем веди расчет на то, что игровые минуты- это часы. Написать в диалогах - 3 часа - мелочь, а приятно.
- В Бонусной миссии 1, и особенно в Бонусной миссии 2 жирный косяк с выданным ГГ оружием - Раз уж на парковке участвуют разные персы, с разными стволами, то при переходе от Вильмара, к челу в рубашке(не помню имя) нужно было убрать у последнего снайперскую винтовку. И наоборот. А то ,опять таки, Геймплей портится и упрощается. Особенно, как я и сказал, в Бонусной миссии 2. Там у тебя вообще идея с 3-мя волнами, которые нужно пройти с разным оружием. И из-за этого минуса она дико испорчена. Да и вообще, советую тебе в дальнейшем использовать скрипт, выключающий выпадение оружия с трупов. Я вроде видел такой. И уже на этом скрипте делать перестрелки - т.е. гг выдать определенный ствол, и еще парочку спрятать.
Ну вот и все. Эх, помню как с слюнями ждал новую часть ТСЛС. Это действительно шедевр. И к сожалению, данный проект очень не дотягивает до твоего ур-ня. Но если взять то, что сюжет здесь посредственен, а все это пародия - то миссии очень даже не плохи.
Итоговая оценка - 7/10.
С нетерпение жду новых проектов от тебя)))

Мат. Предупреждение выдано, комментарий отредактирован.

CowBoy69 16.02.2019, 21:43:48
Подписывайся!

Уроки Pawno: инклуды Dini и mxINI


Уроки Pawno: инклуды Dini и mxINI    
Данный урок расскажет вам о функциях инклудов Dini и mxINI. Так-же вы научитесь пользоваться данными инклудами.

Приветствую дорогих читателей.

Задался вопросом, что почему-то долго не писал статейки сюда. Посмотрев категорию "Учебники" в файловом архиве GTA SA, я подумал - там что-то очень мало хороших качественных учебников, и я решил написать свой, как говорится продолжить начатую работу. Так как связь с BadMan'ом держать в скайпе не могу, пишу лично от себя.

Начну со слова Инклуд.

Include (Инклуд) - это система функций для скрипта. Основным инклудом является "a_samp" - он всегда должен быть в скриптах.

Сегодня мы изучим два простых инклуда - Dini и mxINI. Для тех, кто не знает, что это за инклуды - это простые файловые инклуды для SAMP сервера. То есть файловая система для SAMP. Данная файловая система не служит для связки сайта и сервера - этим занимается MySQL или даже SQLite, о которых я напишу чуть позже (в следующих уроках).

Как записать include?

#include IncName


# - подключение
include - обозначение подключения инклуда
IncName - как уже понятно - название инклуда.

В основном люди пишут название инклуда без формата файла (например #include a_samp), но и с форматом тоже правильно, и ошибкой не считается (например #include a_samp.inc). Мы будем подключать один из двух инклудов - Dini и mxINI (если они имеются в папке "Ваш_Сервер/pawno/includes")

#include mxINI
#include Dini


Итак - чем же всё-таки различаются данные системы?

Dini - Более функциональная файловая система в плане названий функций, но она медленно передаёт и получает значения.
mxINI - Менее функциональная файловая система в плане названий функций, но быстрей получает значения.

В прошлых уроках мы изучали функции вызова сообщений в чат или на экран (Send...Message, GameText...). Так вот тут они могут нам понадобится. Мы не проходили форматирование текста. Чтобы продолжить, нам понадобится функция форматирования.

format(name, sizeof(name), "Text", Text Strings);


format - название функции форматирования
name - название форматированного текста (должен быть определённый массив "New")
sizeof(name) - переменная от массива name
"Text" - текст внутри форматирования

Что он из себя представляет? Обычный текст, в который можно вставить определённые заданные значения/названия.

Собственно какие значения/названия:

%s - Текстовое значение (+ если имеется числовое)
%d - интегрированное числовое значение (например playerid)
%i - интегрированное значение (заданное определённым массивом "New")
%c - символ
%f - десятичное числовое значение (например расстояние до определённой точки)
%x - номер
%% - процент значения


И, наконец, Text Strings - значение текста (приведённого в CODE (%s, %d и т.д.))

Создадим простой текст:

new code[30]; // Создаём массив в 30 символов теперь нам доступно
new name[24]; // Создаём массив в 24 символа - максимальное количество символов в имени игрока (вместо name может быть любое другое слово, только если вы собрались менять его - меняйте все name массивы в коде)
GetPlayerName(playerid, name, 24); //Узнаём имя игрока (можно использовать ещё так: GetPlayerName(playerid, name, sizeof(name)); - sizeof(name) само определит, какое значение переменной у массива name)
format(code, 30, "Ваш ник %s, ваш ID - %d", name, playerid);//Проверяем ник игрока и его ID
SendClientMessage(playerid, -1, code);// Отправим отформатирование сообщение "code" в чат белым цветом (-1)


Довольно простенькая функция.

Итак. Теперь начнём изучение данных файловых систем. Начнём с проверки на имеющийся файл.

Dini:

dini_Exists("filename.fmt")


filename.fmt - название файла в кавычках (можно использовать отформатированный текст). В конце filename должен быть формат файла (например .txt, или .ini, или .cfg и т.д.)

mxINI:

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

fexist("filename.ini")


filename.ini - такой-же как на Dini, но для mxINI читается только .ini формат

Например сделаем проверку на существующий файл main.txt (сохраняется всё и читается всегда с папки scriptfiles) на Dini

if(dini_Exists("main.txt")) SendClientMessage(playerid, 0xFF0000FF, "Файл main.txt существует")


Или же на FSAMP (Стандартная файловая система, так как mxINI не имеет такой функции)

if(fexist(main.txt)) SendClientMessage(playerid, 0x00FF00FF, "Файл main.txt существует");


Следующей функцией будет создание файла.

Dini:

dini_Create("filename.fmt")


filename.fmt - как обычно

mxINI:

new file = ini_createFile("filename.ini")


new file - Создаём файл
filename.ini - как обычно, но формат .ini

Например создадим простой файл на Dini

dini_Create("Main.txt");
if(dini_Exists(Main.txt)) SendClientMessage(playerid, 0xFF00FFFF, "Файл Main.txt создан");


И на mxINI:

new PlayerFile = ini_createFile("Main.ini");
if(fexist(Main.ini)) SendClientMessage(playerid, 0xFF0000FF, "Файл Main.ini создан");


Следующей функцией будет открытие файла.

Dini:

Данной функции не имеется, но она и не нужна, так как dini_Exists("filename") сразу открывает файл.

mxINI:

new file = ini_openFile("filename.ini");


Например откроем файл на mxINI (так как пример с Dini - dini_Exists уже разобран)

new File = ini_openFile("Main.ini");


Следующей функцией будет закрытие файла.

Dini:

В Dini не понадобится данная функция, так как файл не открывается, а проверяется и сразу читается при установке значений (функции ниже)

mxINI:

ini_closeFile(file)


file - это созданный массив с переменной файла

Например откроем и закроем файл на mxINI:

new FileName = ini_createFile("Main.ini");
ini_closeFile(FileName);


Следующей функцией будет удаление файла.

Dini:

dini_Remove("filename.fmt")


mxINI:

Данной функции не имеется, но можно использовать стандартную файловую систему:
fremove("filename.ini")


Например создадим и удалим файл на Dini:

dini_Create("Main.ini");
dini_Remove("Main.ini");

и на mxINI
new ForFile = ini_createFile("Main.ini");
fremove("Main.ini");


Следующими функциями будут записи в файл.

Dini:

dini_Set("filename.fmt", "Line", "Text"); //Установка текстового значения
dini_IntSet("filename.fmt", "Line", value); //Установка числового значения
dini_FloatSet("filename.fmt", "Line", floatvalue); //Установка числового десятичного значения
dini_BoolSet("filename.fmt", "Line", boolsmb);//Установка правдивого/лживого значения


filename.fmt - Название файла с форматом
Line - Строка (название)
Text - Текст в строке
value - числовое значение
floatvalue - десятичное числовое значение
boolsmb - значения правдивое/лживое (тут только true или false)

mxINI:

ini_setString(File, "Line", "Text"); //Установка текстового значения
ini_SetInteger(File, "Line", value); //Установка числового или правдивого/лживого (1 или 0) значения
ini_setFloat(File, "Line", floatvalue); //Установка числового десятичного значения


File - созданный файл (new File = ini_...File("filename.ini");)
Line - строка
Text - текст
value - числовое значение (для лживого/правдивого используются 1 или 0)
floatvalue - десятичное значение

Например создадим файл с тестовыми (TEST) данными на Dini:

dini_Create("main.txt");
dini_Set("main.txt", "Тест", "Это строка обозначает тестовое значение"); // Допустим в строку Тест напишется текст "Это строка обозначает тестовое значение"
dini_IntSet("main.txt", "Значение", 5); //Допустим значение = 5
dini_FloatSet("main.txt", "Десятичное значение", 10.261); //Допустим запишем значение 10 целых, 261 тысячная.
dini_BoolSet("main.txt", "Этот файл есть в папке scriptfiles?", true); // Записано значение true к обычному, ничего не делающему тексту
dini_Remove("main.txt");


Дальше mxINI:

new Test = ini_createFile("Main.ini");
ini_setString(Test, "Строка", "Это действительно строка"); //Создадим строку "Строка", и запишем в неё текст "Это действительно строка"
ini_setInteger(Test, "Сейчас какой год?", 2013); //Создадим строку про год, и  запишем в неё информацию о данном году.
ini_setFloat(Test, "Максимально допустимое значение", 12.5); //В строку со значением запишем десятичное число
fremove("Main.ini");


Следующими функциями будут чтения файлов

Dini:

dini_Get("filename.fmt", "Line"); //Чтение текстового значения со строки
dini_Int("filename.fmt", "Line"); // Чтение числового значения со строки
dini_Float("filename.fmt", "Line"); // Чтение десятичного значения со строки. Проверка записывается через "new Float:NAME" (пример ниже)
dini_Bool("filename.fmt", "Line"); // Чтение булового (true/false) значения со строки. Проверка записывается через "new bool:NAME" (пример ниже)


mxINI:

ini_getString(File, "Line", returnSave); //Чтение текстового значение строки, и сохранение этого текста
ini_getInteger(File, "Line", returnSave); //Чтение числового/булового (true/false) значения строки, и сохранение этого значения
ini_getFloat(File, "Line", returnSave); //Чтение десятичного значения строки, и сохранение этого значения


File - созданный файл (new File = ini_...File("filename.ini");)
Line - Строка
returnSave - сохранение (объявлять через new)

Например прочитаем созданные выше значения через Dini:

if(dini_Exists("Main.txt"))
{
    SendClientMessage(playerid, 0xFF0000FF, dini_Get("Main.txt", "Тест")); //Определим строку с текстом, прочитаем, и сразу же выведем
    SendClientMessage(playerid, 0x00FF00FF, dini_Int("Main.txt", "Значение")); //Определим строку со значением, прочитаем, и сразу же выведем
    SendClientMessage(playerid, 0x0000FFFF, dini_Float("Main.txt", "Десятичное значение")); //Определим строку с десятичным значением, прочитаем, и сразу же выведем
    SendClientMessage(playerid, 0xFFFF00FF, dini_Bool("Main.txt", "Этот файл есть в папке scriptfiles?")); //Определим строку с буловым (true/false) значением, прочитаем, и сразу же выведем
}


И сделаем такое же действие на mxINI:

if(fexist("Main.ini")) //Если файл существует
{
    new Req = ini_openFile("Main.ini"); //То откроем его
    new returnStr[18], returnInt, returnFloat;
    ini_getString(Req, "Строка", returnStr); //Определим строку, и запишем её данные в returnStr
    ini_getInteger(Req, "Сейчас какой год?", returnInt); //Определим строку, и запишем её данные в returnInt
    ini_getFloat(Req, "Максимально допустимое значение", returnFloat); //Определим строку, и запишем её данные в returnFloat
    SendClientMessage(playerid, 0xFF0000FF, returnStr); //Выведем полученное из строки с текстом
    SendClientMessage(playerid, 0x00FF00FF, returnInt); //Выведем полученное из строки со значение
    SendClientMessage(playerid, 0x0000FFFF, returnFloat); //Выведем полученное из строки с десятичным значением
    ini_closeFile(Req); //А потом закроем открытый файл
}


Следующими функциями будут специальные файловых систем

Dini:

dini_Isset("filename.fmt", "Line"); // Проверка - имеет ли значение строка
dini_Unset("filename.fmt", "Line"); // Удаления значения одной любой строки (Srt, Float, Bool, Int)


mxINI:

ini_removeKey(File, "Line"); // Удаление значения со строки любого вида (String, Integer, Float)
ini_getErrorInfo("Error"); //Информация об ошибке в текстовом виде (про данную функцию ничего не известно, так как в инклуде нет stock'a с данной функцией)


Например сделаем простенькую функцию на Dini:

if(dini_Exists("Main.txt")) //Если существует файл
{
    if(!dini_Isset("Main.txt", "Тест")) //То проверяем, свободна ли строчка "Тест"
    {
        dini_Unset("Main.txt", "Тест"); //Если занята, то очищаем её
    }
    else if(dini_Isset("Main.txt", "Тест")) //Но если свободна
    {
        dini_Set("Main.txt", "Тест", "Просто строка с этими 9ю словами и одной цифрой"); //То устанавливаем ей значение
    }
}


На этом мой урок по функциям файловой системы закончен, удачи в скриптинге.
Понравилась статья?
, · Написать статью


Проголосовать за статью "Уроки Pawno: инклуды Dini и mxINI"
Голосов
 ПлохоПриемлемоСреднеХорошоОтлично 
Рейтинг
2943%

Cadillac Escalade 2007

9 июня 2008 GTA San Andreas
Cadillac Escalade 2007 для GTA San Andreas.Особенности:- Модель нормального качества.- Настроенная коллизия.- Своя тень.- 2 Покраски.

Патч 1.0.3.0 (EN)

21 марта 2009 GTA 4
Патч 1.0.3.0 для английской версии GTA 4 исправляет множество различных проблем, включая проблемы с графикой, мультиплеером и системой управления. Кроме того, увеличена производительность игры.Полный список изменений:GRAPHICS:Interior Lights for ATI ...

Shadow Mapper

15 апреля 2010 GTA 4
Редактор карт для GTA IV.В архиве имеются версии для x64 и x86 разрядных систем. Кроме всего, в архиве есть пакет .bat файлов.Требования- Установленная Java.- Установленный Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy File...

GTA San Andreas - Camera Hack v1.2 для windows 7

13 мая 2010 GTA San Andreas
GTA San Andreas - Camera Hack v1.2 для windows 7Наверное многие столкнулись с проблемой что, очень хорошая программа GTA San Andreas - Camera Hack, не работает под windows 7.Проблема в том что из 7-ки зачем то, по удаляли необходимые библиотеки.Но эт...

Phone Service

5 октября 2010 GTA San Andreas
С этим модом ваш телефон больше не будет пылиться у вас в кармане, а станет для вас самым незаменимым предметом в игровом процессе!!! Этот мод даёт возможность использовать различные телефонные сервисы! Сам скрипт состоит из двух частей - это телефон...

San Andreas HRT Pack (v1.3 SF)

29 ноября 2010 GTA San Andreas
San Andreas HRT Pack — глобальная модификация для GTA: San Andreas, которая существенно улучшает качество графики, заменяя большую часть старых текстур высококачественными аналогами в высоком разрешении. Тысячи текстур местности были переработаны и о...

Autumn Mod 2.0 HRT

2 декабря 2010 GTA San Andreas
Autumn Mod — осенняя модификация для GTA: San Andreas, которую можно устанавливать как поверх оригинальной игры, так и поверх глобального мода HRT Pack (в таком случае будет больше нововведений). Autumn Mod меняет спрайты травы, текстуры травы на нек...

Вторжение пришельцев

5 декабря 2010 GTA San Andreas
К Сан-Андреасу движутся огромные инопланетные корабли! ФОТО.Три гигантских неопознанных летающих объекта, длина которых составляет десятки километров, движутся по направлению к штату Сан-Андреас, сообщил журналистам некто Истина (The Truth), кашляя, ...


Информация
Чтобы оставлять комментарии, необходимо зарегистрироваться на сайте.

4
комментарий написан, 2 мая 2013, 16:17
#
rockstargames.com
Пользователь
Статус:
Комментариев:18
Друзей:2
Репутация: 0
Деньги: 0$
#
0
Урок достаточно хороший для начинающих. Может и мне на заметку когда-нибудь пригодится (если что-то забуду)

--------------------


--------------------

3
комментарий написан, 12 апреля 2013, 06:58
#
TheDuke
Пользователь
Статус:
Комментариев:92
Друзей:7
Репутация: 1
Деньги: 0$
Награды:: 1
#
0
Badman,
Спасибо.

--------------------


--------------------

2
комментарий написан, 12 апреля 2013, 02:00
#
Badman
Администратор
Статус:
Комментариев:862
Друзей:85
Репутация: 376
Деньги: 3$
Награды:: 6


Karma: 34026
#
0
TheDuke,
Забей, это местный тролль Дима. Я его уже в сотый раз баню.

--------------------

1
комментарий написан, 12 апреля 2013, 00:50
#
TheDuke
Пользователь
Статус:
Комментариев:92
Друзей:7
Репутация: 1
Деньги: 0$
Награды:: 1
#
0
IconGTA,
Я не могу понять - почему какое-то нубло-школоло обзывает простых людей. Ты хоть что-то сделал в жизни доброго?

--------------------


--------------------

Ad
Опрос
Играете ли вы в GTA Online?
Играю
Не играю совсем

Подсчет GTAшников

Рейтинг@Mail.ru





Change language


Помогите нам перевести LibertyCity на другой язык!



Ad