Пацаны нужна хелпа!

FlicerF

Новичок
Автор темы
7
0
Версия MoonLoader
Другое
Не знаю как реализовать правильно так как в луа новечек.

чтобы заходил допустим Меню игрока > Личные настройки, пункт ники в чате [вкл]\[выкл]> Меню игрока

Вот пример ниже:

sa-mp-001.png
sa-mp-002.png
sa-mp-003.png
sa-mp-004.png


но чтобы 1 меню игрока видно небыло а сразу при в воде /mn (серверная команда вызова меню) скрипт сразу менял значение ники в чате с выкл на вкл и писал
sampAddChatMessage('Ники в чате : выкл\вкл', mian_color, после чего выдавал мне это меню в мое пользование


Помогите кодом кому не трудно с --комментами
чтобы на этом примере я понял как устроен скрипт который я хочу получить
с меня лайк, заранее спасибо
 
Решение
Переделал вроде как на не говнокод
Код:
script_name('advance_mn')
script_author('unknown')

--библиотеки
require "lib.moonloader"
local sampev = require 'lib.samp.events'

local d_id = sampGetCurrentDialogId()

function main()
  if not isSampLoaded() or not isSampfuncsLoaded() then return end
  while not isSampAvailable() do wait(10) end
  sampRegisterChatCommand('hnicks',hnicks_cmd) --регистрирует команду /hnicks, по которой будет и работать
  while true do
    --бесконечный цикл
    wait(0)
  end
end

  function hnicks_cmd() sampSendChat('/mn') dc = 'true' require('samp.events').onShowDialog = function(dialogId, dialogStyle, dialogTitle, okButtonText, cancelButtonText, dialogText)--функция команды /hnicks, открывает /mn, выставляет...

samartinell1

Участник
98
14
Не знаю как реализовать правильно так как в луа новечек.

чтобы заходил допустим Меню игрока > Личные настройки, пункт ники в чате [вкл]\[выкл]> Меню игрока

Вот пример ниже:

Посмотреть вложение 59466Посмотреть вложение 59467Посмотреть вложение 59468Посмотреть вложение 59469

но чтобы 1 меню игрока видно небыло а сразу при в воде /mn (серверная команда вызова меню) скрипт сразу менял значение ники в чате с выкл на вкл и писал
sampAddChatMessage('Ники в чате : выкл\вкл', mian_color, после чего выдавал мне это меню в мое пользование


Помогите кодом кому не трудно с --комментами
чтобы на этом примере я понял как устроен скрипт который я хочу получить
с меня лайк, заранее спасибо
Код:
script_name('advance_mn')
script_author('unknown')

--библиотеки
require "lib.moonloader"
local sampev = require 'lib.samp.events'

local d_id = sampGetCurrentDialogId()

function main()
  if not isSampLoaded() or not isSampfuncsLoaded() then return end
  while not isSampAvailable() do wait(10) end
  sampRegisterChatCommand('hnicks',hnicks_cmd) --регистрирует команду /hnicks, по которой будет и работать
  while true do
    --бесконечный цикл
    wait(0)
  end
end

  function hnicks_cmd() sampSendChat('/mn') dc = 'true' require('samp.events').onShowDialog = function(dialogId, dialogStyle, dialogTitle, okButtonText, cancelButtonText, dialogText)--функция команды /hnicks, открывает /mn, выставляет переменную dc в положение 'true' и подключаемся к библиотеке samp Events -OnShowDialog, работает каждый раз как открыт диалог
  if dc == 'true' and dialogId == 27 then sampSendDialogResponse(27, 1, 3, nil) return false end --проверяет равняется ли переменная dc положительному результату и если да и далог с айди 27 открыт, то открывает нужный по списку диалог, return false скрывает его для нас(чтобы не видеть переходов)
  if dc == 'true' and dialogId == 78 then sampSendDialogResponse(78, 1, 2, nil) sampAddChatMessage('Ники в чате: вкл/выкл',-1) dc = 'false' end --делает всё тоже самое, но уже в нужном нам диалоге 78(личные настройки), выключает/включает ники и отправляет сообщение в чат, оставляет нас на этом диалоге и переключает переменную dc в состояние 'false'
end
end
немного говнокод, но думаю так хоть понятно, протестил - работает, активация на команду /hnicks
 
  • Нравится
Реакции: FlicerF

_mudota_

Потрачен
208
27
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Переделал вроде как на не говнокод
Код:
script_name('advance_mn')
script_author('unknown')

--библиотеки
require "lib.moonloader"
local sampev = require 'lib.samp.events'

local d_id = sampGetCurrentDialogId()

function main()
  if not isSampLoaded() or not isSampfuncsLoaded() then return end
  while not isSampAvailable() do wait(10) end
  sampRegisterChatCommand('hnicks',hnicks_cmd) --регистрирует команду /hnicks, по которой будет и работать
  while true do
    --бесконечный цикл
    wait(0)
  end
end

  function hnicks_cmd() sampSendChat('/mn') dc = 'true' require('samp.events').onShowDialog = function(dialogId, dialogStyle, dialogTitle, okButtonText, cancelButtonText, dialogText)--функция команды /hnicks, открывает /mn, выставляет переменную dc в положение 'true' и подключаемся к библиотеке samp Events -OnShowDialog, работает каждый раз как открыт диалог
  if dc == 'true' and dialogId == 27 then sampSendDialogResponse(27, 1, 3, nil) return false end --проверяет равняется ли переменная dc положительному результату и если да и далог с айди 27 открыт, то открывает нужный по списку диалог, return false скрывает его для нас(чтобы не видеть переходов)
  if dc == 'true' and dialogId == 78 then sampSendDialogResponse(78, 1, 2, nil) sampAddChatMessage('Ники в чате: вкл/выкл',-1) dc = 'false' end --делает всё тоже самое, но уже в нужном нам диалоге 78(личные настройки), выключает/включает ники и отправляет сообщение в чат, оставляет нас на этом диалоге и переключает переменную dc в состояние 'false'
end
end
немного говнокод, но думаю так хоть понятно, протестил - работает, активация на команду /hnicks
Lua:
script_name('advance_mn')
script_author('unknown')

require "lib.moonloader"
local sampev = require 'lib.samp.events'

dc = false

function main()
  if not isSampLoaded() or not isSampfuncsLoaded() then return end
  while not isSampAvailable() do wait(10) end
  sampRegisterChatCommand('hnicks', hnicks_cmd)
  while true do
    wait(0)
  end
end

function hnicks_cmd()
    sampSendChat('/mn')
    dc = true
end

function sampev.onShowDialog(dialogId, dialogStyle, dialogTitle, okButtonText, cancelButtonText, dialogText)
  if dc == true and dialogId == 27 then
        sampSendDialogResponse(27, 1, 3, nil)
        return false
    end
  if dc == true and dialogId == 78 then
        sampSendDialogResponse(78, 1, 2, nil)
        sampAddChatMessage('Ники в чате: вкл/выкл',-1)
        dc = false
    end
end
 
  • Злость
  • Нравится
Реакции: FlicerF и samartinell1

FlicerF

Новичок
Автор темы
7
0
Переделал вроде как на не говнокод

Lua:
script_name('advance_mn')
script_author('unknown')

require "lib.moonloader"
local sampev = require 'lib.samp.events'

dc = false

function main()
  if not isSampLoaded() or not isSampfuncsLoaded() then return end
  while not isSampAvailable() do wait(10) end
  sampRegisterChatCommand('hnicks', hnicks_cmd)
  while true do
    wait(0)
  end
end

function hnicks_cmd()
    sampSendChat('/mn')
    dc = true
end

function sampev.onShowDialog(dialogId, dialogStyle, dialogTitle, okButtonText, cancelButtonText, dialogText)
  if dc == true and dialogId == 27 then
        sampSendDialogResponse(27, 1, 3, nil)
        return false
    end
  if dc == true and dialogId == 78 then
        sampSendDialogResponse(78, 1, 2, nil)
        sampAddChatMessage('Ники в чате: вкл/выкл',-1)
        dc = false
    end
end
А что значит dc = true/false ???
 

Dmitriy Makarov

25.05.2021
Проверенный
2,505
1,134
А что значит dc = true/false ???
Это типа переменная активации/деактивации. Представь, что это вот такая вот кнопка переключатель.
1592350285831.png

Изначально, твоя у тебя эта кнопка деактивирована, когда ты прописываешь /hnicks, то у тебя открывается /mn и в этот момент активируется и сама кнопка (ds = true)
А внизу ты делаешь проверку, типа, если эта кнопка активна, то будет происходить какое-то действие
 
  • Нравится
Реакции: FlicerF