[Помощь] - Ограничение по рангу. - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Sanoxxx, Alowir, Phoenixxx_Czar  
[Помощь] - Ограничение по рангу.
Logins007 Дата: Среда, 01.08.2018, 22:26 | Сообщение # 1
Новичок
Сообщений: 14
Статус: Offline
Доброй ночи посетители данного раздела, возник вопрос. Как реализовать ограничение по рангу, в GUI к примеру мы выбираем в GUI должность "Колумнист" и он сможет может дать выговор, а если "Директор" тогда, сможет зайти в раздел "Собеседование" и занять/освободить новостную волну. Заранее огромное спасибо.
Код

Menu, Tray, add,
Gui, Show, w300 h300, Rang
Gui, Add, DropDownList, w150  h150 vRang Choose%Rangs%, Стажер|Помощник Редакции|Колумнист|Журналист|Репортёр|Ведущий|Режисёр|Редактор|Главный Редактор|Директор|
Gui, Add, Button, x100  w100 h20 gSave, Сохранить

Save:
Gui, Submit, NoHide
Rang:

F7::
ShowDialog(2, "*", "Собеседование`nВыдать выговор", "Закрыть")
Result := LineResult()
if (!Result)
   return
gosub, Cons%Result%
return

Cons2:
SendChat("/me дал выговор")
sleep 1000
return

Cons1:
ShowDialog(2, "Собеседования", "Занять новостную волную`nОсвободить новостную волну", "Закрыть")
Result := LineResult()
if (!Result)
   return
gosub, Consi%Result%
return

Consi1:
SendChat("Занял волну")
sleep 1000
return

Consi2:
SendChat("Освободил волну")
sleep 1000
return

LineResult()
{
    if (!isDialogOpen() || getDialogStyle() = 0 || getDialogStyle() = 1 || getDialogStyle() = 3)
        return false
    while isDialogOpen()
        continue
    if GetKeyState("Esc", "P")
        return false
    return getDialogLineNumber()
}
MrGPro Дата: Четверг, 02.08.2018, 00:03 | Сообщение # 2
Боец
Сообщений: 202
Статус: Offline
Logins007, Можно так как ниже в коде можно создать label:return с фильтрами ShowDialog и if gui которые будут кидать на нужные labels
Код
Menu, Tray, add,
Gui, Show, w300 h300, Rang
Gui, Add, DropDownList, w150  h150 vRang Choose%Rangs%, Стажер|Помощник Редакции|Колумнист|Журналист|Репортёр|Ведущий|Режисёр|Редактор|Главный Редактор|Директор|
Gui, Add, Button, x100  w100 h20 vName gSave, Сохранить

Save:
Gui, Submit, NoHide
return

F7::
ShowDialog(2, "*", "Собеседование`nВыдать выговор", "Закрыть")
Result := LineResult()
if (!Result)
   return
gosub, % "Cons" . Result .  Rang
return

Cons2Колумнист:
MsgBox,, Ass
SendChat("/me дал выговор")
sleep 1000
return

Cons1Директор:
ShowDialog(2, "Собеседования", "Занять новостную волную`nОсвободить новостную волну", "Закрыть")
Result := LineResult()
if (!Result)
   return
gosub, % "Consi" . Result .  Rang
return

Consi1Директор:
SendChat("Занял волну")
sleep 1000
return

Consi2Директор:
SendChat("Освободил волну")
sleep 1000
return

LineResult()
{
    if (!isDialogOpen() || getDialogStyle() = 0 || getDialogStyle() = 1 || getDialogStyle() = 3)
        return false
    while isDialogOpen()
        continue
    if GetKeyState("Esc", "P")
        return false
    return getDialogLineNumber()
}


можно Consi2Директор сделать eng но нужно создать массив переменных для замены через if или брать не имя с gui а index выбранной строки со списка


Тебе помогли не забывай про благодарность >> тыкни репутацию
---------------------------------------͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏ -----------------------------------------------------
Зам.Администратора на проекте "DayZ Epoсh SPN" сервер Arma 2OA DayZ Epoch пиратка и лицензия


Сообщение отредактировал MrGPro - Четверг, 02.08.2018, 00:05
Logins007 Дата: Четверг, 02.08.2018, 08:20 | Сообщение # 3
Новичок
Сообщений: 14
Статус: Offline
Выдаёт ошибку.
Прикрепления: 1642012.jpg (29.7 Kb)
MrGPro Дата: Четверг, 02.08.2018, 15:52 | Сообщение # 4
Боец
Сообщений: 202
Статус: Offline
Logins007, хм как же вы так копируете в коде же есть % а у вас нет
Код
gosub, % "Cons" . Result .  Rang

gosub, - направляет на Label:return.
% - указывает что все значения который не заключен в "..." являются переменными.
"Cons" - указывает что это не переменная, а статичный текст.
. - разделяет переменные и статичные тексты.
метод выше более гуманный чем код ниже.
Код
gosub, Cons%Result%%Rang%


Тебе помогли не забывай про благодарность >> тыкни репутацию
---------------------------------------͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏ -----------------------------------------------------
Зам.Администратора на проекте "DayZ Epoсh SPN" сервер Arma 2OA DayZ Epoch пиратка и лицензия


Сообщение отредактировал MrGPro - Четверг, 02.08.2018, 16:03
Andreyringo1 Дата: Четверг, 02.08.2018, 17:20 | Сообщение # 5
Новичок
Сообщений: 25
Статус: Offline
У меня тоже выводит ошибку но тем не менее в коде есть строчка
Код

gosub, % "Cons" . Result .  Rang


Сообщение отредактировал Andreyringo1 - Четверг, 02.08.2018, 17:21
Logins007 Дата: Четверг, 02.08.2018, 18:22 | Сообщение # 6
Новичок
Сообщений: 14
Статус: Offline
Тоже самое.
MrGPro Дата: Четверг, 02.08.2018, 18:49 | Сообщение # 7
Боец
Сообщений: 202
Статус: Offline
Ошибочка вышла код который указан выше требует слишком много классов (кол классов = кол участников и кол-списков в пункте меню) этого я не учел из-за Result переменной вот ниже код более оптимальный

Код
global Result

Menu, Tray, add,
Gui, Show, w300 h300, Rang
Gui, Add, DropDownList, w150  h150 vRang Choose%Rangs%, Стажер|Помощник Редакции|Колумнист|Журналист|Репортёр|Ведущий|Режисёр|Редактор|Главный Редактор|Директор|
Gui, Add, Button, x100  w100 h20 vName gSave, Сохранить

Save:
Gui, Submit, NoHide
return

F7::
Result:=0
ShowDialog(2, "*", "Собеседование`nВыдать выговор", "Закрыть")
Result := LineResult()
if (!Result)
   return
gosub, % "Cons" . Rang
return

ConsКолумнист:
if (Result = 2)
    SendChat("/me дал выговор")
sleep 1000
return

ConsДиректор:
ShowDialog(2, "Собеседования", "Занять новостную волную`nОсвободить новостную волну", "Закрыть")
Result := LineResult()
if (!Result)
   return
gosub, % "Consi" . Rang
return

ConsiДиректор:
if (Result = 1)
    SendChat("Занял волну")
if (Result = 2)
    SendChat("Освободил волну")
sleep 1000
return

LineResult()
{
    if (!isDialogOpen() || getDialogStyle() = 0 || getDialogStyle() = 1 || getDialogStyle() = 3)
        return false
    while isDialogOpen()
        continue
    if GetKeyState("Esc", "P")
        return false
    return getDialogLineNumber()
}


Тебе помогли не забывай про благодарность >> тыкни репутацию
---------------------------------------͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏ -----------------------------------------------------
Зам.Администратора на проекте "DayZ Epoсh SPN" сервер Arma 2OA DayZ Epoch пиратка и лицензия


Сообщение отредактировал MrGPro - Четверг, 02.08.2018, 18:50
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума