Skip to content

Commit

Permalink
v.1.0b14
Browse files Browse the repository at this point in the history
  • Loading branch information
danilvalov committed Mar 28, 2016
1 parent d3eb6f4 commit 2d4de63
Show file tree
Hide file tree
Showing 14 changed files with 292 additions and 624 deletions.
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@
## 1.0b14

Добавлено:
- Плагин `BanIP`. Расширены команды `/offban`, `/ioffban`, `/ban`, `/sban` и `/iban`. Теперь если ввести: `/offban [Nick_Name] [Причина] 1` ("1" последним параметром) - то после бана аккаунта игрок будет забанен и по IP. Также работают остальные команды: `/ioffban [Nick_Name] [Причина] 1`, `/ban [ID] [Причина] 1`, `/sban [ID] [Причина] 1` и `/iban [ID] [Причина] 1`.
- Модуль `IgnoreList`. Добавлены команды `/ignore [Nick_Name]` и `/unignore [Nick_Name]` для временного добавления и удаления игроков из ИгнорЛиста.

Исправлено:
- Исправлена проблема, когда после сохранения настроек при выставленной раскладке клавиатуры не по-умолчанию вылетала ошибка "... is not a valid key name".
- Плагин `TakeNearby`. Исправлена проблема, когда скрипт зацикливался на одном игроке, если тот отходил. Также теперь оружие забирается за 1 раз, а не по 2 раза, как раньше.
- Улучшена работа скрипта автоматического обновления AdminHelper'а.
- Из плагина `AutoConnect` удалена опция "Имеются проблемы с подключением к 10-15 серверам" в связи с уходом проблемы.

## 1.0b13

Добавлено:
Expand Down
24 changes: 19 additions & 5 deletions GUI.ahk
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

#Include scripts\ConfigReader.ahk

DetectHiddenWindows, On


class AdminHelperGui
{
Expand Down Expand Up @@ -276,14 +278,26 @@ class AdminHelperGui
Return
}

changeKeyboardLayoutToDefault()
{
RegRead, DefaultKeyboardLayout , HKEY_CURRENT_USER, Keyboard Layout\Preload, 1
DefaultKeyboardLayout := DllCall("LoadKeyboardLayout", "Str", DefaultKeyboardLayout , "Int", 1)
PostMessage, 0x50, 0, %DefaultKeyboardLayout%, , ahk_id %A_ScriptHWND%
SendMessage, 0x50,, %DefaultKeyboardLayout%, , ahk_id %A_ScriptHWND%

Return
}

dataUpdate()
{
Global Config

this.changeKeyboardLayoutToDefault()

For ModuleName, ModuleVariableObject in Config["modules"] {
For ModuleVariableName, ModuleVariableData in ModuleVariableObject {
ModuleVariableInputName = GuiModule%ModuleName%%ModuleVariableName%Input
GuiControlGet, %ModuleVariableInputName%
GuiControlGet, %ModuleVariableInputName%, Settings:
ModuleVariableInputValue := %ModuleVariableInputName%

if (SubStr(ModuleVariableName, -3) <> "File") {
Expand All @@ -295,15 +309,15 @@ class AdminHelperGui
}

For PluginName, PluginVariableObject in this.plugins {
GuiControlGet, GuiPlugin%PluginName%Status
GuiControlGet, GuiPlugin%PluginName%Status, Settings:

this.plugins[PluginName]["Status"] := GuiPlugin%PluginName%Status
}

For PluginName, PluginVariableObject in Config["plugins"] {
For PluginVariableName, PluginVariableData in PluginVariableObject {
PluginVariableInputName = GuiPlugin%PluginName%%PluginVariableName%Input
GuiControlGet, %PluginVariableInputName%
GuiControlGet, %PluginVariableInputName%, Settings:
PluginVariableInputValue := %PluginVariableInputName%

if (SubStr(PluginVariableName, -3) <> "File") {
Expand All @@ -314,7 +328,7 @@ class AdminHelperGui
}
}

GuiControlGet, GuiAdminLVLInput
GuiControlGet, GuiAdminLVLInput, Settings:
Config["AdminLVL"] := GuiAdminLVLInput

this.pluginsStatusesSave()
Expand Down Expand Up @@ -405,7 +419,7 @@ class AdminHelperGui
{
FileDelete, .cache\UserBinds.ahk.tmp

GuiControlGet, GuiUserBindsInput
GuiControlGet, GuiUserBindsInput, Settings:
FileAppend, %GuiUserBindsInput%, .cache\UserBinds.ahk.tmp
FileCopy, .cache\UserBinds.ahk.tmp, UserBinds.ahk, 1
FileDelete, .cache\UserBinds.ahk.tmp
Expand Down
6 changes: 3 additions & 3 deletions Meta.ini
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
Name=AdminHelper
Description=AHK-ñêðèïò äëÿ Àäìèíèñòðàòîðîâ SAMP-RP
Author=Danil Valov <[email protected]>
Version=1.0b13
LastUpdate=Mar 28, 2016
Version=1.0b14
LastUpdate=Mar 29, 2016

[Options]
AdminLVL=5|LVL Àäìèíèñòðàòîðà (âñå ôóíêöèè, íå ñîîòâåòñòâóþùèå lvl'ó, îòêëþ÷àòñÿ àâòîìàòè÷åñêè)
EnabledPlugins=AutoHP,BanIP,Connect,GetIP,GiveGuns,Hbj,LastPM,LastSMS,PMToLastMuteOrDM,ReconLastPM,ReconLastWarning,ReconViewer,SetHPs,TagName,TakeNearby,TP,Uninvites|Âêëþ÷¸ííûå ïëàãèíû
EnabledPlugins=AutoHP,BanIP,Connect,GetIP,GiveGuns,Hbj,LastPM,LastSMS,PMToLastMuteOrDM,ReconLastPM,ReconLastWarning,ReconViewer,SetHPs,TakeNearby,TP,Uninvites|Âêëþ÷¸ííûå ïëàãèíû
RepositoryUrl=https://api.github.com/repos/danilvalov/adminhelper-for-samp-rp/releases/latest|Ïóñòü äî ðåïîçèòîðèÿ ñ îáíîâëåíèÿìè
28 changes: 25 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,14 @@

* **IgnoreList** - модуль исключает в плагинах игроков, которые не должны добавляться в список телепортации, у которых не должно изыматься оружие через `/giveguns`, `/hbjs` и т.д., т.е. "список неприкасамых" - в него по-умолчанию входят все Администраторы SAMP-RP (список игроков в игнор-листе можно посмотреть/изменить в Настройках скрипта (двойной клик по иконке AHK в трее)).

Добавляет также поддержку следующих команд:

- `/ignore [Nick_Name]` - временно добавить игрока в ИгнорЛист.

- `/unignore [Nick_Name]` - временно удалить игрока из ИгнорЛиста.

Бывают ситуации, когда на МП нужно пропускать при выдаче оружия/объектов/хп какого-то игрока (например, если он - организатор). Или наоборот, нужно временно убрать Администратора из ИгнорЛиста. Эти команды добавляют/удаляют из ИгнорЛиста игроков до перезапуска AdminHelper'а. Если вы хотите добавить какого-то игрока в ИгнорЛист на постоянной основе - воспользуйтесь окном Настроек AdminHelper'а и вкладкой "ИгнорЛист".


* **JSON** - добавление поддержки обработки JSON-файлов в скрипте (требуется для получения информации о местоположении игрока по его IP).

Expand Down Expand Up @@ -151,9 +159,19 @@
- Забанить по IP последнего забаненного игрока + автоматическая проверка на наличие игроков с таким же IP онлайн (с 4-го лвла).
По-умолчанию, работает на сочетании "Alt+Numpad9" - можно поменять в Настройках скрипта (двойной клик по иконке AHK в трее).

- `/banipn [nick]` - забанить по IP игрока с указанным ником.
- `/banipn [Nick_Name]` - забанить по IP игрока с указанным ником.

- `/unbanipn [Nick_Name]` - разбанить IP игрока с указанным ником.

- `/offban [Nick_Name] [Причина] 1` - игрок будет забанен в оффе на месяц сразу с баном по IP.

- `/ioffban [Nick_Name] [Причина] 1` - игрок будет забанен в оффе до 2038 года сразу с баном по IP.

- `/unbanipn [nick]` - разбанить IP игрока с указанным ником.
- `/ban [ID] [Причина] 1` - игрок будет забанен на месяц сразу с баном по IP.

- `/sban [ID] [Причина] 1` - игрок будет тихо забанен на месяц сразу с баном по IP.

- `/iban [ID] [Причина] 1` - игрок будет забанен до 2038 года сразу с баном по IP.


* **GetIP** - плагин для работы с IP-адресами игроков.
Expand Down Expand Up @@ -240,11 +258,16 @@
### Мероприятия

* **День Z** - в штат попал вирус, превращающий людей в зомби. Цель людей - спастись. Цель зомби - убивать живых. Цель гос.служб - ловить зомби и привозить их в больницы. Главная цель гос.служб - найти нулевого пациента (который заражает людей).

После запуска МП - нулевой пациент, за которым мы следим, при приближении к живых людям - заражает их, после чего они тоже прекращаются в Зомби.

Активация: `/event dayz [id_нулевого_пациента]`.


* **Парашюты** - автоматически телепортирует игроков, присылающих смс, к себе, при этом выдавая парашют.

Взлетаем повыше (например, над площадью у Мэрии), запускаем МП и объявляем: "/o Желающие попрыгать с парашютом на площадь у Мэрии - кидаем '+' в смс" (пример).

Активация: `/event parachute`.


Expand Down Expand Up @@ -272,4 +295,3 @@
* `CheckerID` - плагин, полностью заменяющий собейтовский чекер (данная возможность уже находится уже реализована и находится в тестировании).
* `ChatID` - плагин, отображающий автоматически иды игроков рядом с их никами в чате и в килллисте (данная возможность уже находится уже реализована и находится в тестировании).
* `AirBrake` - плагин, позволяющий летать (данная возможность уже реализована и находится в тестировании).
* `TakeNearby` - плагин, позволяющий отображать оружие/нарко у всех игроков, находящихся поблизости.
22 changes: 22 additions & 0 deletions Updater.ahk
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,26 @@ class Updater
Return
}

RemoveOldVersion() {
Loop, Files, % UpdateDirPath "\*.*", FD
{
if A_LoopFileAttrib contains D
{
if A_LoopFileName not contains .cache
{
FileRemoveDir, %A_LoopFileName%, 1
}
} else {
if A_LoopFileName not contains UserBinds.ahk,UninvitesList.ini
{
FileDelete, %A_LoopFileName%
}
}
}

Return
}

Update() {
FullPathToProjectDir := SubStr(A_ScriptFullPath, 1, -StrLen(".cache\Updater.ahk"))

Expand All @@ -60,6 +80,8 @@ class Updater

UrlDownloadToFile, % Repository_Data["zipball_url"], .cache\update.zip

this.RemoveOldVersion()

Unz(FullPathToProjectDir ".cache\update.zip", FullPathToProjectDir ".cache\updateDir")

this.UpdateDir(FullPathToProjectDir)
Expand Down
9 changes: 9 additions & 0 deletions events/DayZ/Funcs.ahk
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,15 @@ class DayZEvent
Return
}

if (NearestPlayer.ID != this.__zero) {
this.__zero := NearestPlayer.ID
this.__step := 1

addMessageToChatWindow("{FF0000} Íóëåâîé ïàöèåíò èçìåí¸í íà " NearestPlayer.NAME "[" this.__zero "].")

Return
}

if (NearestPlayer.HP <= 0) {
this.__nearestPlayer := {}
this.__nearestPlayer["ID"] := -1
Expand Down
Loading

0 comments on commit 2d4de63

Please sign in to comment.