Как создать свой мод для samp - Мои статьи - Каталог статей - [UA]GTA SA Официальный сайт|клана [AGSS]

 

Меню сайта
Категории раздела
Мини-чат
200
Наш опрос
Оцените мой сайт
Всего ответов: 261
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа

Главная » Статьи » Мои статьи

Как создать свой мод для samp
Как создать деатматч
Нет ничего проще. Открываем Pawno и нажимаем New. Вот он, Ваш первый скрипт. Чтобы запустить его, надо сначала его сохранить (большинство людей сохраняют в директорию "/samp/gamemodes/src/", но будет проще (для локального тестирования) сохранить его в "/samp/gamemodes/"). Затем кликните по кнопке с изображением синей стрелочки. Это действие компилирует Ваш файл .pwn в файл .amx, который появится в том же каталоге, однако чтобы запустить его в игре, этот файл должен лежать в "/samp/gamemodes/" (теперь понятно, зачем было сохранять Ваш скрипт в этом каталоге - теперь не придется ничего никуда переносить в ручную, все уже на своих местах после компиляции). Теперь, чтобы опробовать свой новый мод, Вы должны настроить локальный сервер и сменить игровой режим (наберите "changemode " в окне сервера).

Если все прошло удачно, когда подключитесь к своему серверу через клиент sa-mp, в игре Вы окажетесь снаружи казино в Las Venturas. К сожалению Вы не сможете выбрать себе персонажа, так как на данный момент доступен только один, но это можно будет легко исправить в будущем. Кроме того это не очень уж и интересный ДМ – из оружия у Вас только кулаки а вокруг ни души. Но это локальный сервер и по поводу второй проблемы на данный момент ничего нельзя поделать.

Следующим шагом, который Вы скорее всего захотите сделать, будет добавление в игровой режим оружия (контролируется на основе «каждому классу свое»). Каждый игрок, которого Вы выберете в начале игры (или позже в случае замены) будет принимать значение "класса". У классов может быть одинаковое оружие, или у всех разное, или комбинация. Вы назначаете оружие для каждого класса отдельно. Поэтому, чтобы дать всем классам одинаковое оружие, Вам просто нужно скопировать информацию об оружии и добавить ее к описанию каждого из существующих в Вашем игровом режиме классов. Это действие обеспечит сбалансированную игру, хотя играть будет не так интересно, если все будут бегать с одинаковым оружием. Однако выбор остается за Вами. В редакторе найдите следующую строку:

AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);

Это описание класса, параметры в том же порядке:
AddPlayerClass(Player model, X, Y, Z, A, Weapon 0, Ammo 0, Weapon 1, Ammo 1, Weapon 2, Ammo 2);

Модель персонажа можно взять из файла "peds.ide". "X", "Y" и "Z" – это координаты места появления игрока в игре, после выбора персонажа. "A" – это угол, под которым игрок будет развернут (направление камеры). Есть только одна точка появления для каждого класса, однако это можно обойти с помощью других средств, которые будут рассмотрены позже. Номера оружия можно узнать здесь. А цифры рядом с ammo – это точное количество патронов к каждому оружию, которым будет располагать игрок (у оружия ближнего боя количество патронов всегда 0).

Теперь скопируйте эту строку:
AddPlayerClass(102, 1958.3783, 1343.1572, 15.3746, 269.1425, 5, 0, 22, 100, 32, 50);

И поместите ее под той, что Вы нашли в Вашем скрипте. Теперь в игре у Вас будет выбор между CJ (без оружия) и Balla (с бейсбольной битой, пистолетом и Tec9). Если хотите, можете сами дать оружие для CJ или добавить больше других классов с другим оружием.

Примечание: некоторое оружие, которое перечислено на странице по ссылке выше, рядом с которым есть пометка "(crashes if you try to fire)" или "(Unusable)" не работает в данной версии SA-MP. В список оружия, которое нельзя использовать, входят и гранаты, однако эта досадность будет исправлена в будущем.

Узнаём координаты, углы и ID моделей

Вам, возможно, захочется изменить координаты появления игроков, чтобы они все не появлялись в одном и том же месте. Если оставить как есть, то ДМ выйдет не самый интересный, а так же это идеальная возможность для кемперства. В этом деле нам поможет Режим Отладки. Запустите "samp_debug.exe" в основном каталоге с игрой и когда бы Вам ни потребовалось, напишите "/save" прямо в игре (для этого нажмите "t" или тильду, чтобы вызвать строку чата). Это действие сохранит Ваше текущее положение в игре (в координатах), угол и ID игрока в файл "savedpositions.txt" в основном каталоге игры SA. Чтобы изменить персонажа в Режиме Отладки нажимайте F11 и F12, переключаясь по кругу между доступными в данном моде моделями.

Знакомство с функциями и callbacks

Прежде, чем мы продолжим, Вы должны узнать, что такое callbacks, или callback`и. Это – массивы кода, внутри Вашего игрового режима, представляющие из себя нечто похожее на следующее:

public OnPlayerDisconnect(playerid)
{
printf("OnPlayerDisconnect(%d)", playerid);
return 1;
}
Это - OnPlayerDisconnect callback, который означает, что эта секция кода будет запускаться при отключении игрока от сервера. Если Вы захотите, чтобы появлялось большое сообщение о том, что тот или иной игрок покидает сервер, то Вы добавляете для этого код именно в этот массив. Все callback`и, которые использует игра (кроме 2, они используются в filterscripts, а не в gamemodes. О них мы рассказывать не будем), находятся в Вашем файле. Вы не сможете сделать другие. Большинство из них появляется так же, как и та, что выше. Но некоторые из них ("OnPlayerCommandText", "OnPlayerRequestClass", "OnGameModeInit" и "main" (который является не совсем callback`ом и нигде больше не фигурирует, кроме как на титульном экране вашего игрового режима)) призваны заставлять игровой режим работать или показать игрокам, что нужно делать. Вы так же можете использовать и другие, похожие блоки (на те, о которых ниже), которые выглядят так же, но являются вызываемыми функциями. Они должны быть вызваны Вами самим. Вот функция "IMadeThis" (обратите внимание на полное отсутствие пробелов).

public IMadeThis()
{
// Это однострочный комментарий, он будет проигнорирован

/* Это
многострочный
комментарий */

print("This will be printed to the server window");
return 0;
}
Вы, должно быть, обратили внимание на небольшое описание комментариев. Все, что находится в строке за "//" будет игнорироваться. То же будет происходить и с текстом между "/*" и "*/". Так как функция не вызывается игрой, мы должны вызвать ее сами с помощью callback, это смертельно просто, совсем так же, как вы вызываете большинство команд в своем коде. Итак, если вы добавите строку:

IMadeThis();
В Ваш OnPlayerDisconnect callback (она должно находиться между "{" и "}", а так же перед "return 1;")
она должна запускаться как функция и печатать сообщение в окне сервера, когда Вы покидаете сервер во время игры (помните, что другие вещи, описанные там, будут игнорироваться). Мы не хотели, чтобы что-либо печаталось в окне сервера и все "print" и "printf" функции, что были в файле, удалены скриптером. Только строки, заключенные между фигурными скобками находятся в функции/callback`е (функция относится к callback`ам так же, как будто они - специальный случай функции), строка выше - имя функции. "public" подразумевает, что функция может быть выполнена любым другим кусочком кода, это в основном означает, что ваш код может быть выполнен, когда Вы вызываете функцию по имени. Мы не волнуемся о частных функциях, поскольку они вообще не используются в SA-MP. Скобки после имени функции включают список параметров, мы не охватили их все, но Вы можете увидеть пример их использования в некоторых из callback`ов в вашем чистом скрипте. Отметим, что эти параметры автоматически передаются, когда игра вызывает функцию. Если мы используем сторонние функции (то есть не callback`и), и мы хотим использовать некоторые параметры, мы должны будем передать их непосредственно. Одна крошечная вещь, которая должна быть упомянута, - то, что все строки, кроме строк с фигурными скобками (и даже они при определенных обстоятельствах, но они будут охвачены позже), и строки непосредственно перед открытой скобкой (фигурные скобки могут быть в конце той строки или, как показано здесь, на новой строке), требуют постановки в своем конце точки с запятой, чтобы обозначить конец процесса.

Категория: Мои статьи | Добавил: [AGSS]Aligator (24.10.2010)
Просмотров: 9343 | Комментарии: 29 | Рейтинг: 4.6/5
Всего комментариев: 121 2 »
12 Егор   (04.02.2013 05:05)
___ Онлайн постоянный 10-90 человек___

___Ждём всех игроков SA-MP___

Контакты сервера

HostName: [RPG] РОССИЯ «Империя» [0.3d]
Address: ___ Онлайн постоянный 150-200 человек___

___Ждём всех игроков SA-MP___

Контакты сервера

HostName: [RPG] РОССИЯ «Империя» [0.3d]
Address: ___ Онлайн постоянный 150-200 человек___

___Ждём всех игроков SA-MP___

Контакты сервера

HostName:Classic World-Rp|3lvl 5kk Client:0.3x
Address: 93.189.41.40:7935
Players: 95 / 250
Ping: 80
Mode: [RU]ImperiaL: RPG
Map: РОССИЯ

Players: 144 / 250
Ping: 106
Mode: World-Rp [v0.2]
Map: РОССИЯ

Players: 144 / 250
Ping: 106
Mode: [RU]ImperiaL: RPG
Map: РОССИЯ

11 sfasf   (12.08.2012 11:59)
HostName: « Excellent Life [5lvl] [5kk] »
Address: 109.95.211.27:7821
Players: 19 / 80
Ping: 31
Mode: EL{RP}
Map: Russian

10 fdf   (17.03.2012 17:00)
Дорогие игроки и любитель игры San Andreas Multiplayer!!!!
С 25/05/2011 Открылся новый RPG сервер 176.32.37.94:7777 !!!
У нас для вас есть всё чтоб вы смогли играть и наслаждаться игрой так как на небесах!!!
"""Описание Сервера"""
Я думаю всем вам уже надоели обычные ДМ серверы!И поэтому я предлагаю к вашему вниманию совершенно новый сервер
|RUS/UA| Vida Virtual [RPG] на нём играет много очень хороших и общительных людей,На сервере стоит RPG мод,который и делает весь игровой процесс реальной жизни!

"""Начало игры на сервере"""

На данном сервере вы должны вести себя как в жизни,например,ваши первые шаги-это поехать в местную
Автошколу и получить Водительские права,Позже,когда вы освоитесь у вас возникнет вопрос,а как мне заработать денег?
Ответ простой:вам просто нужно найти работу из представленных нами на нашем сервере.
Когда вы сможете встать на ноги вы сможете вступить в какую либо Преступную банду или мафию,или вообще играть за закон(Копы)
Игра на сервере даст вам много не Забываемых впечатлений и мы ждём всех к нам!
В моде 21 фракция.

ЛСПД - Полиция штата
ФБР
Национальная Гвардия
Министерство Здравоохранения
Мэрия
Лицензиары
Хитманы
Репортеры
Таксисты

банды/мафии

Grove Street
Ballas
El Coronos Gang
Los Santos Vagos Gang
San Fiero Rifa Gang
Русская Mафия
Yakuza
La Cosa Nostra
Стритрейсеры
Колхоз
ЗАО Воcхождение
"""Информация о сервере"""
HostName: |RUS/UA| Vida Virual [RPG]

Address: 176.32.37.94:7777

Mode: VV-|RPG|
Map: San Andreas

"""Форум сервера"""
www.vida-virtual.ru

9 ROma   (04.03.2012 14:54)
HostName: MPRP|5lvl 5kk Liderka
Address: 82.146.40.134:7825
Players: 6 / 30
Ping: 55
Mode: •MP•[RP] v3.4 beta
Map: LS/SF/LVHostName: MPRP|5lvl 5kk Liderka
Address: 82.146.40.134:7825
Players: 6 / 30
Ping: 55
Mode: •MP•[RP] v3.4 beta
Map: LS/SF/LVHostName: MPRP|5lvl 5kk Liderka
Address: 82.146.40.134:7825
Players: 6 / 30
Ping: 55
Mode: •MP•[RP] v3.4 beta
Map: LS/SF/LVHostName: MPRP|5lvl 5kk Liderka
Address: 82.146.40.134:7825
Players: 6 / 30
Ping: 55
Mode: •MP•[RP] v3.4 beta
Map: LS/SF/LVHostName: MPRP|5lvl 5kk Liderka
Address: 82.146.40.134:7825
Players: 6 / 30
Ping: 55
Mode: •MP•[RP] v3.4 beta
Map: LS/SF/LVHostName: MPRP|5lvl 5kk Liderka
Address: 82.146.40.134:7825
Players: 6 / 30
Ping: 55
Mode: •MP•[RP] v3.4 beta
Map: LS/SF/LVHostName: MPRP|5lvl 5kk Liderka
Address: 82.146.40.134:7825
Players: 6 / 30
Ping: 55
Mode: •MP•[RP] v3.4 beta
Map: LS/SF/LVHostName: MPRP|5lvl 5kk Liderka
Address: 82.146.40.134:7825
Players: 6 / 30
Ping: 55
Mode: •MP•[RP] v3.4 beta
Map: LS/SF/LVHostName: MPRP|5lvl 5kk Liderka
Address: 82.146.40.134:7825
Players: 6 / 30
Ping: 55
Mode: •MP•[RP] v3.4 beta
Map: LS/SF/LVHostName: MPRP|5lvl 5kk Liderka
Address: 82.146.40.134:7825
Players: 6 / 30
Ping: 55
Mode: •MP•[RP] v3.4 beta
Map: LS/SF/LVHostName: MPRP|5lvl 5kk Liderka
Address: 82.146.40.134:7825
Players: 6 / 30
Ping: 55
Mode: •MP•[RP] v3.4 beta
Map: LS/SF/LV

8 dsa   (29.02.2012 13:08)
HostName: ••[RPG]•Wonderful•Real•Play•Server•[0.3d]••
Address: 77.220.180.251:7777
Players: 180 / 200
Ping: 29
Mode: The GodFather
Map: San Andreas

7 Архангел   (08.12.2011 23:56)
Люди не знающие С++ воще не беритесь!!!!!

6 Архангел   (08.12.2011 23:53)
[AGSS]Aligator :: Не чего сложного нет!!!Учи алгоритмы и языки програмирования нуб!!!

5 sanek   (20.11.2011 20:18)
ку всем здесь кто нить есть?

4 petrooha8143   (27.08.2011 23:10)
Люди кто понял как создать мод помогите пожалуйста пешите в скайп: vadika93

3 Petrooha   (22.08.2011 00:29)
Как сменить название мода?????

1-10 11-12
Имя *:
Email *:
Код *:
Поиск
Мы Вконтакте
Друзья сайта