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

_razor

t.me/sssecretway | ТГК: t.me/razor_code
Автор темы
Всефорумный модератор
1,948
3,211
Всем привет. Хоть я и не разработчик данной библиотеки, я решил обновить ее и добавил туда несколько функций для 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 · Просмотры: 9,483
Последнее редактирование:

_razor

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

Carrentine

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

Carrentine

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

DarkP1xel

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


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


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

Flect

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

#Northn

Pears Project — уже запущен!
Всефорумный модератор
2,652
2,535
адаптация под 0.3 dl актуальна, после того, как арз написали в своем посте о переходе в будущем на эту версию сампа, вероятно другие крупные проекты после этого также перейдут
Другие крупные проекты зависимы от аризоны? Пфф, это обычный крах для проекта, поскольку на эти версии сампа нет нормальных скриптов и плагинов
 

Sargon

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

_razor

t.me/sssecretway | ТГК: t.me/razor_code
Автор темы
Всефорумный модератор
1,948
3,211
Добавил несколько новых функций:
(обновил потому, что просили добавить 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

Потужно
Модератор
399
470
А почему ты так делаешь?
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

_razor

t.me/sssecretway | ТГК: t.me/razor_code
Автор темы
Всефорумный модератор
1,948
3,211
А почему ты так делаешь?
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
Делаю как мне нравится и как мне удобно