Исходник SA-MP API 0.3 (BETA) (Last update: 30.01.2021)

_raz0r

t.me/sssecretway | ТГК: t.me/razor_code
Автор темы
Модератор
1,889
3,050
Всем привет. Хоть я и не разработчик данной библиотеки, я решил обновить ее и добавил туда несколько функций для SA:MP 0.3.DL. Если @LUCHARE будет против этого, я удалю тему.

Новые функции в 0.3 версии:

Lua:
dl.isChatOpen() -- проверяет открыт ли чат, возвращает true/false
dl.setLocalUsername(pLocalPlayerName) -- устанавливает визуально ник локальному игроку, принимает pLocalPlayerName (string)
dl.isScoreboardOpen() -- проверяет открыт ли Scoreboard, возвращает true/false
dl.getServerWeather() -- возвращает номер погоды установленной сервером
dl.isDialogOnScreen(pDialogId) -- проверяет находится ли диалог с определенным ID на экране, принимает pDialogId (int)
dl.isAnyDialogOnScreen() -- проверяет находится ли любой диалог на экране, возвращает true/false
dl.getDialogId() -- возвращает ID диалога который находится на экране (использовать в связке с isAnyDialogOnScreen)
dl.getDialogStyle() -- возвращает номера стиля диалога который находится на экране
dl.getDialogCaption() -- возвращает заголовок диалога который находится на экране
dl.getDialogText() -- возвращает текст диалога который находится на экране
dl.isPlayerConnected(playerId) -- проверяет, подключен ли игрок с определенным ID на сервер, возвращает true/false (на ID локального игрока выдает false)
Подключение библиотеки:
Lua:
local dl = require "SA-MP API.init"
В файле "demo SAMP-API 0.2.lua" есть применение всех этих функций
Так же в теме вы можете предложить улучшения для библиотеки и идеи по добавлению новых функций в нее!
Автор модуля: @LUCHARE . Автор доработки: @S E V E N
Lua:
dl.GetIsAvailable() -- проверка на загруженность SA:MP
dl.Get() -- загружает струкруты SA:MP 0.3.DL с которыми можно будет работать
dl.SendChat(text) -- отправляет текст в чат (если это в text будет команда, он отправит команду)
dl.ToggleCursor(toggle) -- включение/выключение рендера курсора
dl.RegisterClientCommand(cmd, func, replaceOld) -- регистрирует команду для SA:MP 0.3.DL (всего может быть 144 клиентских команд)
dl.DeleteClientCommand(cmd) -- удаляет команду по ее названию
dl._RegisterClientCommand(cmd, func) -- регистрирует команду, в отличии от RegisterClientCommand, данная функция не может заменять команды
dl.TakeScreenshot() -- делает скриншот
dl.RequestSpawn() -- отправляет RPC о спавне игрока
dl.Spawn() -- спавнит игрока
dl.SetInputMode(mode, disable_cursor) -- открытие/закрытие строки ввода текста SAMP
dl.UnlockActorCam() -- возвращает управление персонажем (использовать если скрыт курсор)
dl.AddMessageToChat(msgType, msg, prefix, msgColor, prefixColor) -- отправляет сообщение в чат
dl.UpdateScoreboardData()-- отправляет RPC UpdateScoreboardData
dl.Say(msg) -- отправляет текст в чат
dl.SendCommand(cmd) -- отправляет команду на сервер
dl.SendInteriorChange(intID) -- отправляет RPC о смене интерьера
dl.RequestClass(classID) -- отправляет RPC о смене класса
dl.DisableScoreboard(enable) -- отключает Tab
dl.SetSpecialAction(actionId) -- выдает игроку специальное действие
dl.getLocalUsername() -- возвращает ник локального игрока
dl.getLocalPlayerId() -- возвращает ID локального игрока
dl.getLocalPlayerPing() -- возвращает пинг локального игрока
dl.getLocalPlayerScore() -- возвращает уровень локального игрока
dl.getMaxPlayerId() -- возвращает максимальный ID на сервере
dl.getServerIp() -- возвращает IP сервера к которому подключен игрок
dl.getServerHostname() -- возвращает название сервера к которому подключен игрок
dl.getServerPort() -- возвращает порт сервера к которому подключен игрок
dl.getGameState() -- возвращает текущее состоянии SAMP (отключен, ожидает подключения и т.д)
dl.isChatOpen() -- проверяет открыт ли чат, возвращает true/false
dl.setLocalUsername(pLocalPlayerName) -- устанавливает визуально ник локальному игроку, принимает pLocalPlayerName (string)
dl.isScoreboardOpen() -- проверяет открыт ли Scoreboard, возвращает true/false
dl.getServerWeather() -- возвращает номер погоды установленной сервером
dl.isDialogOnScreen(pDialogId) -- проверяет находится ли диалог с определенным ID на экране, принимает pDialogId (int)
dl.isAnyDialogOnScreen() -- проверяет находится ли любой диалог на экране, возвращает true/false
dl.getDialogId() -- возвращает ID диалога который находится на экране (использовать в связке с isAnyDialogOnScreen)
dl.getDialogStyle() -- возвращает номера стиля диалога который находится на экране
dl.getDialogCaption() -- возвращает заголовок диалога который находится на экране
dl.getDialogText() -- возвращает текст диалога который находится на экране
dl.isPlayerConnected(playerId) -- проверяет, подключен ли игрок с определенным ID на сервер, возвращает true/false (на ID локального игрока выдает false)
 

Вложения

  • SA-MP API.7z
    10.5 KB · Просмотры: 8,338
Последнее редактирование:

_raz0r

t.me/sssecretway | ТГК: t.me/razor_code
Автор темы
Модератор
1,889
3,050
зочем, на дл никто не играет 😭
по теме - годно.
Читы никто не отменял под эту версию + у меня в планах перенести SAMP.lua под 0.3.DL и добавить больше функции которые были доступны в SAMPFUNCS
 
  • Нравится
Реакции: H1n9

Carrentine

Потрачен
569
460
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

Carrentine

Потрачен
569
460
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
  • Нравится
Реакции: Arabian_Mouse

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,961
Читы никто не отменял под эту версию + у меня в планах перенести SAMP.lua под 0.3.DL и добавить больше функции которые были доступны в SAMPFUNCS


Ну и бог тогда с ней, все равно читы/модификации надо продвигать и в 0.3.DL


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

Flect

Известный
30
10
адаптация под 0.3 dl актуальна, после того, как арз написали в своем посте о переходе в будущем на эту версию сампа, вероятно другие крупные проекты после этого также перейдут
 

#Northn

Police Helper «Reborn» — уже ШЕСТЬ лет!
Всефорумный модератор
2,634
2,482
адаптация под 0.3 dl актуальна, после того, как арз написали в своем посте о переходе в будущем на эту версию сампа, вероятно другие крупные проекты после этого также перейдут
Другие крупные проекты зависимы от аризоны? Пфф, это обычный крах для проекта, поскольку на эти версии сампа нет нормальных скриптов и плагинов
 

Sargon

Известный
Проверенный
163
358
адаптация под 0.3 dl актуальна, после того, как арз написали в своем посте о переходе в будущем на эту версию сампа, вероятно другие крупные проекты после этого также перейдут
Они не писали о переходе на 0.3.DL, это всего лишь предположения, которые уже опровергнуты, будет 0.3.7.
 
Последнее редактирование:

_raz0r

t.me/sssecretway | ТГК: t.me/razor_code
Автор темы
Модератор
1,889
3,050
Добавил несколько новых функций:
(обновил потому, что просили добавить isPlayerConnected и работу с диалогами)
Lua:
dl.isChatOpen() -- проверяет открыт ли чат, возвращает true/false
dl.setLocalUsername(pLocalPlayerName) -- устанавливает визуально ник локальному игроку, принимает pLocalPlayerName (string)
dl.isScoreboardOpen() -- проверяет открыт ли Scoreboard, возвращает true/false
dl.getServerWeather() -- возвращает номер погоды установленной сервером
dl.isDialogOnScreen(pDialogId) -- проверяет находится ли диалог с определенным ID на экране, принимает pDialogId (int)
dl.isAnyDialogOnScreen() -- проверяет находится ли любой диалог на экране, возвращает true/false
dl.getDialogId() -- возвращает ID диалога который находится на экране (использовать в связке с isAnyDialogOnScreen)
dl.getDialogStyle() -- возвращает номера стиля диалога который находится на экране
dl.getDialogCaption() -- возвращает заголовок диалога который находится на экране
dl.getDialogText() -- возвращает текст диалога который находится на экране
dl.isPlayerConnected(playerId) -- проверяет, подключен ли игрок с определенным ID на сервер, возвращает true/false (на ID локального игрока выдает false)
 
  • Нравится
Реакции: tgm4z и GrezeeBal

RTD

Нестандартное звание
Модератор
391
414
А почему ты так делаешь?
Lua:
if tostring(this.iIsEnabled) == "0" then
    return false
elseif tostring(this.iIsEnabled) == "1" then
    return true
end
Просто
Lua:
return this.iIsEnabled == 1
не работает?
И
Lua:
if tostring(this.iIsActive) == "1" then
    if tonumber(this.uiDialogID) == tonumber(pDialogId) then
        return true
    end
end
Lua:
return this.iIsActive == 1 and this.uiDialogID == pDialogId
 
  • Нравится
Реакции: Carrentine и imring

_raz0r

t.me/sssecretway | ТГК: t.me/razor_code
Автор темы
Модератор
1,889
3,050
А почему ты так делаешь?
Lua:
if tostring(this.iIsEnabled) == "0" then
    return false
elseif tostring(this.iIsEnabled) == "1" then
    return true
end
Просто
Lua:
return this.iIsEnabled == 1
не работает?
И
Lua:
if tostring(this.iIsActive) == "1" then
    if tonumber(this.uiDialogID) == tonumber(pDialogId) then
        return true
    end
end
Lua:
return this.iIsActive == 1 and this.uiDialogID == pDialogId
Делаю как мне нравится и как мне удобно