PDA

Просмотр полной версии : [Plugin] Добавление новых возможностей для SAMP



L0ndl3m
08.07.2014, 23:06
Прежде всего, я хочу сказать, что данный плагин находится в пре-альфа версии. Основа сделана, но до стабильной версии ещё долгий путь.

Особенности:

Используется SA:MP плагин SDK вместе с sampGDK для синхронизации с SA:MP


Функции:

1.
Показать / скрыть компонент HUD'а игрока ( или все компоненты ).

native ToggleHUDComponentForPlayer(playerid, componentid, bool: toggle);

ID'ы компонентов:


HUD_COMPONENT_ALL // Все компоненты HUD'а
HUD_COMPONENT_AMMO // Компонент кол-во патронов
HUD_COMPONENT_WEAPON // Компонент оружия
HUD_COMPONENT_HEALTH // Компонент здоровья
HUD_COMPONENT_BREATH // Компонент кислорода
HUD_COMPONENT_ARMOUR // Компонент брони
HUD_COMPONENT_MINIMAP // Компонент миникарты ( радар )
HUD_COMPONENT_CROSSHAIR // Компонент прицела
HUD_COMPONENT_MONEY // Компонент денег


2.
Меняет игроку текущую радио станцию ( работает только тогда, когда игрок находится в транспорте ):

native SetRadioStationForPlayer(playerid, stationid);

ID'ы станций:


RADIO_PLAYBACKFM
RADIO_KROSE
RADIO_KDST
RADIO_BOUNCEFM
RADIO_SFUR
RADIO_LOSSANTOS
RADIO_RADIOX
RADIO_CSR
RADIO_KJAHWEST
RADIO_MASTERSOUNDS
RADIO_WCTR
RADIO_UTP
RADIO_OFF


3.
Установить высоту волны для игрока ( рекомендуемые значения от 0 до 5 ):

native SetWaveHeightForPlayer(playerid, Float: height);

4.
Установить высоту волны для всех ( рекомендуемые значения от 0 до 5 ):

native SetWaveHeightForAll(Float: height);

5.
Включить / отключить возможность входить игроку в меню паузы:

native TogglePauseMenuAbility(playerid, bool: toggle);

6.
Проверяет, находится ли игрок в меню паузы.

native IsPlayerInPauseMenu(playerid);

7.
Установить игроку цвет компонента HUD'а.

native SetPlayerHUDComponentColour(playerid, componentid, colour);

ID'ы компонентов цветов:


HUD_COLOUR_MONEY_POSITIVE
HUD_COLOUR_MONEY_NEGATIVE
HUD_COLOUR_ARMOUR
HUD_COLOUR_HEALTH
HUD_COLOUR_BREATH
HUD_COLOUR_AMMO
HUD_COLOUR_WANTED_LEVEL
HUD_COLOUR_RADIO_TUNED
HUD_COLOUR_RADIO_UNTUNED


8.
Включить / отключить возможность выполнять определённые действия.

native TogglePlayerAction(playerid, actionid, bool: toggle);

ID'ы действий:


PLAYER_ACTION_ALL // Действие: Все
PLAYER_ACTION_SPRINT // Действие: Бег
PLAYER_ACTION_ENTER_CAR // Действие: Вход в транспорт
PLAYER_ACTION_CROUCH // Действие: Гудок
PLAYER_ACTION_FIRE_WEAPON // Действие: Стрельба из оружия
PLAYER_ACTION_UNKNOWN // Действие: Неизвестно
PLAYER_ACTION_SWITCH_WEAPON // Действие: Менять оружие
PLAYER_ACTION_JUMP // Действие: Прыжок


9.
Включить / отключить возможность перезаряжать игроку оружие.

native SetPlayerNoReload(playerid, bool: toggle);

10.
Получить текущее разрешение экрана игрока.

native GetPlayerResolution(playerid, &width, &height);

Автовызываемые функции ( Колбэки ):

1.
Вызывается, когда игрок открыл меню паузы.

public OnPlayerOpenPauseMenu(playerid)

2.
Вызывается, когда игрок закрыл меню паузы.

public OnPlayerClosePauseMenu(playerid)

3.
Вызывается, когда игрок открыл подменю ( откуда - куда )

public OnPlayerEnterPauseSubmenu(playerid, from, to)

Типы подменю:


PAUSE_ID_STATS // ID подменю: Статистика
PAUSE_ID_STARTGAME // ID подменю: Начать игру
PAUSE_ID_BRIEF // ID подменю: Недавняя история
PAUSE_ID_AUDIOSETTINGS // ID подменю: Настройки аудио
PAUSE_ID_DISPLAYSETTINGS // ID подменю: Настройка дисплея
PAUSE_ID_MAP // ID подменю: Карта
PAUSE_ID_DEFAULTSETTINGS // ID подменю: Настройки по умолчанию
PAUSE_ID_AUDIODEFAULTSETTINGS // ID подменю: Настройки по умолчанию для аудио
PAUSE_ID_CONTROLLERDEFAULTSETTINGS // ID подменю: Настройки по умолчанию для управления
PAUSE_ID_USERTRACKOPTIONS // ID подменю: Настройка пользовательских треков
PAUSE_ID_LANGUAGE // ID подменю: Язык
PAUSE_ID_OPTIONS // ID подменю: Опции
PAUSE_ID_QUITGAME // ID подменю: Выход из игры
PAUSE_ID_CONTROLLERSETUP // ID подменю: Настройки контроллера
PAUSE_ID_REDEFINECONTROLS // ID подменю: Настройки ( ? )
PAUSE_ID_FOOTVEHICLECONTROLS // ID подменю: Настройки клавиш при ходьбе и в транспорте
PAUSE_ID_MOUSESETTINGS // ID подменю: Настройка мыши
PAUSE_ID_JOYPADSETTINGS // ID подменю: Настройка джойпада
PAUSE_ID_MAIN // ID подменю: Главное меню


4.
Вызывается, когда игрок стреляет с водительского места.

public OnDriverDriveByShot(playerid)

5.
Вызывается, когда игрок выполняет трюк в транспорте.

public OnPlayerStunt(playerid, stunttype, money, details[])

Типы стантов:


STUNT_TYPE_TWO_WHEELS // Тип станта: Езда на двух колёсах
STUNT_TYPE_INSANE // Тип станта: Прыжок
STUNT_TYPE_WHEELIE // Тип станта: Езда на одном колесе ( велосипед, байк, ... )
STUNT_TYPE_STOPPIE // Тип станта: Остановка на переднем колесе ( велосипед, байк, ...)


6.
Вызывается, когда игрок меняет разрешение экрана.

public OnPlayerResolutionChange(playerid, width, height)

Экспериментальные функции:

1.
Установить игроку чекпоинт ( по сравнению с прошлым можно устанавливать цвета )

native SetPlayerCheckpoint(playerid, Float: x, Float: y, Float: z, Float: size, inner_colour = 0xFF0000FF, middle_colour = 0xFF0000FF, outer_colour = 0xFF0000FF);

2.
Установить игроку гоночный чекпоинт ( по сравнению с прошлым можно устанавливать цвет )

native SetPlayerRaceCheckpoint(playerid, type, Float: x, Float: y, Float: z, Float: nextx, Float: nexty, Float: nextz, Float: size, colour = 0xFF0000FF);

3.
Установить игроку цвет чекпоинта.

native SetPlayerCheckpointColour(playerid, inner, middle, outer);

4.
Установить игроку цвет гоночного чекпоинта.

native SetPlayerRaceCheckpointColour(playerid, colour);

Скриншоты:

http://puu.sh/9L418/3b00c6fe49.png
http://puu.sh/9FiI0/bc0562b9a0.jpg
http://puu.sh/9F6ar/6cbf28b830.jpg


Предстоящие характеристики:

Поддержка плагина на linux сервере
Функции для работы с экраном игрока (например: GetScreenResolution, OnPlayerClickPoint)
Автовызываемые функции и функции с работой по получению информации о паузе игрока (например: OnPlayerPause, OnPlayerSelectMenu, IsPlayerPaused)
Множество радио функций (например: GetPlayerRadioStation)
Дополнительные опции в файле сервера: server.cfg
Ограничение параметра функции SetWaveHeight до разумных пределов
Установщик
Поддержка версий плагина
Проверка CRC
Механизм запросов
Механизм обновления
Браузер сервера
Множество шрифтов
Множество других функций, неограниченные возможности!


"Разработчики":

Команда SA:MP - ( SA:MP, SA:MP плагин SDK )
Kevin Jenkins - RakNet
Zeex (xeeZ) - sampGDK
Whitetiger - сотрудничество


Ссылки:
Всё размещено на репозитории GitHub'а:

Файлы клиента: Скачать (https://github.com/KingHual/SA-MP-Plus/tree/master/Output/Client)
Плагин для сервера: Скачать (https://github.com/KingHual/SA-MP-Plus/blob/master/Output/Server/sampp.dll)
Инклюд: Скачать (https://github.com/KingHual/SA-MP-Plus/blob/master/Output/Server/sampp.inc)
Готовый исходный код: Скачать (https://github.com/KingHual/SA-MP-Plus/)


Примечание: Возможно потребуется перекомпилировать файл Loader.exe с вашими собственными настройками, пока не добавлена "инъекция".

Установка:

Клиент: В настоящее время, на стороне клиента установка не прямая, а с помощью установщика.
Сервер: Закиньте файл sampp.dll в вашу папку с плагинами и добавьте строку sampp ко всем плагинам.


Примечание: Возможно потребуется сменить порт на сервере. Допустим ваш порт был: 7777, вы должны поменять его на 7778.


Автор: KingHual
Перевод и дополнение: L0ndl3m (http://pro-pawn.ru/member.php?2057-L0ndl3m)
Оригинал: http://forum.sa-mp.com/showthread.php?t=520666 (http://forum.sa-mp.com/showthread.php?t=520666)

Специально для: Pro-Pawn.Ru (http://pro-pawn.ru)

Копирование данной статьи без разрешения автора запрещено!

OKStyle
09.07.2014, 07:58
Если б клиентская часть была не нужна - было бы ещё лучше. Но цветные чекпоинты они пока без этого сделать не смогли.

Kevin_Patterson
09.07.2014, 12:21
Вау....Не ожидал такого :)


6.
Вызывается, когда игрок меняет разрешение игрока.

Исправь

6.
Вызывается, когда игрок меняет разрешение экрана.

Можно же сис-му афк в 2 строчки запилить :)

wAx
09.07.2014, 13:37
Предстоящие характеристики:
Почему бы сразу не сделать хотя-бы минимум (поддержка Linux)? Надеюсь что не забросят раньше времени.

Spectrum
09.07.2014, 20:52
ноормально, но не было бы клиентской части...

Seregamil
12.07.2014, 08:13
Если б клиентская часть была не нужна - было бы ещё лучше. Но цветные чекпоинты они пока без этого сделать не смогли.


ноормально, но не было бы клиентской части...

Чем вам не угодила клиентская часть? Всем давно понятно, что нормальных обновлений со стороны команды сампа мы доооолго не дождемся, а тут пара файлов в директорию и проблем нет.

DeimoS
12.07.2014, 09:53
Чем вам не угодила клиентская часть? Всем давно понятно, что нормальных обновлений со стороны команды сампа мы доооолго не дождемся, а тут пара файлов в директорию и проблем нет.

Если плагин будет распространён - проблем не будет. А так, кто будет качать клиентскую часть то, если она только на твоём сервере? Только завсегдатаи. И ты потеряешь большую часть случайно зашедших игроков

Seregamil
12.07.2014, 16:14
Если плагин будет распространён - проблем не будет. А так, кто будет качать клиентскую часть то, если она только на твоём сервере? Только завсегдатаи. И ты потеряешь большую часть случайно зашедших игроков

Игроки на брутале всегда скачивали дополнение, рано или поздно, но скачивали.

Spectrum
12.07.2014, 20:02
Чем вам не угодила клиентская часть? Всем давно понятно, что нормальных обновлений со стороны команды сампа мы доооолго не дождемся, а тут пара файлов в директорию и проблем нет.

для игроков большая проблема скачать пятикилобайтовый файл

- - - Добавлено - - -


Игроки на брутале всегда скачивали дополнение, рано или поздно, но скачивали.

у них вначале не было этого дополнения

DeimoS
13.07.2014, 00:39
Вы не поняли меня. Я говорю о тех игроках, которые зашли на сервер через вкладку Hosts или Internet. Тех, кто о сервере толком ничего не знает. Не многие из них согласятся блуждать по сайтам в поисках нужного файла

Seregamil
13.07.2014, 09:02
Вы не поняли меня. Я говорю о тех игроках, которые зашли на сервер через вкладку Hosts или Internet. Тех, кто о сервере толком ничего не знает. Не многие из них согласятся блуждать по сайтам в поисках нужного файла

Файл один для ВСЕХ серверов же.

Spectrum
13.07.2014, 09:48
Файл один для ВСЕХ серверов же.

ты думаешь что все его ставить будут?

DeimoS
13.07.2014, 11:31
Файл один для ВСЕХ серверов же.

А теперь перечитай мои сообщения

Seregamil
13.07.2014, 15:01
ты думаешь что все его ставить будут?

Захотят играть - поставят.

OKStyle
13.07.2014, 15:19
Чем вам не угодила клиентская часть? Всем давно понятно, что нормальных обновлений со стороны команды сампа мы доооолго не дождемся, а тут пара файлов в директорию и проблем нет.
Я не хочу ставить дополнительного сотфа ради какого-то сервера. Закинуть модпак - это одно, а сомнительный exe - другое.

Seregamil
13.07.2014, 15:40
Я не хочу ставить дополнительного сотфа ради какого-то сервера. Закинуть модпак - это одно, а сомнительный exe - другое.

Сомнительный exe с открытым исходным кодом.

Spectrum
13.07.2014, 16:22
Сомнительный exe с открытым исходным кодом.

ну и что? кто этот код читать будет?

DeimoS
13.07.2014, 22:00
Сомнительный exe с открытым исходным кодом.

Ты это скажи десятилетнему школьнику, который будет играть на твоём сервере. Или 18-летнему не школьнику, который не разбирается в программировании.

Seregamil
14.07.2014, 06:04
Ты это скажи десятилетнему школьнику, который будет играть на твоём сервере. Или 18-летнему не школьнику, который не разбирается в программировании.

Это их проблемы. Скачать левые файлы с левых файлообменников и запустить на компе они не боятся, а потом визжат как сучки, почему пропало то, почему не работает это. А тут пара файлов от проверенного источника. Никто и никого не заставляет, это их право.

DeimoS
14.07.2014, 09:40
Это их проблемы. Скачать левые файлы с левых файлообменников и запустить на компе они не боятся, а потом визжат как сучки, почему пропало то, почему не работает это. А тут пара файлов от проверенного источника. Никто и никого не заставляет, это их право.

С таким отношениям к игрокам онлайна тебе точно не набрать хорошего.
Ладно, хорошо. Пойдём другим путём. Вот ты решил посмотреть на сервера во вкладке Hosts и начал по ним "гулять". Зайдя на один сервер, тебе сказали "Скачай вот этот вот файлик для игры на нашем сервере или уходи.". Ты станешь качать его, если не факт, что сервер тебе этот понравится вообще? Только сейчас свой опыт в программировании и в SA-MP в целом засунь куда-нибудь подальше и рассуждай трезво, как среднестатистический игрок

Spectrum
14.07.2014, 11:00
Это их проблемы. Скачать левые файлы с левых файлообменников и запустить на компе они не боятся, а потом визжат как сучки, почему пропало то, почему не работает это. А тут пара файлов от проверенного источника. Никто и никого не заставляет, это их право.

Я так думаю что статус "проверенного источника" тот или иной "проект" (ненавижу это слово) получает как минимум за пол года, а если он только открылся я бы например зассал скачивать какой-нибудь там лаунчер или плагин, мало ли что
Основная масса юзеров скачивают из интернетов файлы игнорируя предупреждения антивирусов, просто потому что этот файл им нужен (читы для кс, бруты и т.д.). Умные люди вшивают туда троянчики-стиллеры дабы заполучить данные от аккаунтов соц.сетей (например вк и порассылать друзьям всякое говно с целью поржать например) или от игровых аккаунтов чтобы продать.

Seregamil
14.07.2014, 11:07
С таким отношениям к игрокам онлайна тебе точно не набрать хорошего.
Ладно, хорошо. Пойдём другим путём. Вот ты решил посмотреть на сервера во вкладке Hosts и начал по ним "гулять". Зайдя на один сервер, тебе сказали "Скачай вот этот вот файлик для игры на нашем сервере или уходи.". Ты станешь качать его, если не факт, что сервер тебе этот понравится вообще? Только сейчас свой опыт в программировании и в SA-MP в целом засунь куда-нибудь подальше и рассуждай трезво, как среднестатистический игрок
Еще раз, это дополнение идет НА ВСЕ сервера.
Качать я стану в том случае, если сервер мне понравится, как например было несколько лет назад на брутале. Поиграл с закрытыми функциями, понравилось - качай файл, нет - сиди дальше с закрытыми функциями. Или же в том случае, если это дополнение например античит, так как меня, как обычного игрока, заебывают читеры на сервере.

DeimoS
14.07.2014, 12:14
Еще раз, это дополнение идет НА ВСЕ сервера.
Качать я стану в том случае, если сервер мне понравится, как например было несколько лет назад на брутале. Поиграл с закрытыми функциями, понравилось - качай файл, нет - сиди дальше с закрытыми функциями. Или же в том случае, если это дополнение например античит, так как меня, как обычного игрока, заебывают читеры на сервере.

Но далеко не ВСЕ его будут ставить.
И как ты определишь, нравится тебе сервер или нет, если для игры на нём тебе надо скачать какой-то файл?

Seregamil
14.07.2014, 13:06
Но далеко не ВСЕ его будут ставить.
И как ты определишь, нравится тебе сервер или нет, если для игры на нём тебе надо скачать какой-то файл?

Ты на брутале играл?

P.S. Проще скачать один межсерверный файл и потом не ебать никому мозги.

DeimoS
14.07.2014, 14:02
Ты на брутале играл?

P.S. Проще скачать один межсерверный файл и потом не ебать никому мозги.

Нет.
Только если этот файл будет распространён на серверах.

Seregamil
14.07.2014, 14:09
Нет.
Только если этот файл будет распространён на серверах.

А он будет распространен, т.к. у создателей появится больше возможностей для программирования.

Spectrum
14.07.2014, 14:42
А он будет распространен, т.к. у создателей появится больше возможностей для программирования.

кому то эти возможности нафиг не сдались

Daniel_Cortez
14.07.2014, 19:31
А он будет распространен, т.к. у создателей появится больше возможностей для программирования.

Плагин работает лишь за счёт хакинга. По сути из-за одного плагина весь проект будет привязан к одной версии SA:MP, а с выходом новой версии придётся ждать, пока разработчик плагина найдёт изменившиеся адреса (причём не факт, что он вообще станет в очередной раз это делать) и обновит плагин. Linux-версия и вовсе не готова, а если её и допилят - будет ещё вдвое больше работы при портировании на новую версию сервера. А пока плагин будут переводить, владельцам серверов придётся выжидать и быть подверженными различным атакам (в последнее время обновления серверной версии SA:MP сводятся лишь к исправлению уязвимостей).

В такой ситуации любому будет очевидно, что слишком рано говорить об установке такого плагина на всех серверах, да и вообще о том, что он будет как-то распространён. Нововведения в нём хорошие, но не стоит забывать, какой ценой даются эти возможности и чем они могут обернуться для сервера при выходе очередного обновления SA:MP.

Vasiliy
03.04.2016, 23:02
У меня одного не хочет нормально работать клиентская часть? При компилировании пишет что нет lib библиотек, скачал нужные - либо краш при запуске сампа, либо не приходит информация из сервера клиенту..

Saibot
03.06.2021, 00:03
Понимаю, что тема 2014 года, но спрошу, "Предстоящие характеристики" так и остались предстоящими?

Nexius_Tailer
03.06.2021, 01:35
Понимаю, что тема 2014 года, но спрошу, "Предстоящие характеристики" так и остались предстоящими?
Гитхаб репо уже давно помечен как "archived" и его разработка заброшена.