[AHK]: Сохранение данных - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Sanoxxx, Alowir, Phoenixxx_Czar  
[AHK]: Сохранение данных
Danny_Angelos Дата: Четверг, 08.08.2019, 01:19 | Сообщение # 1
Новичок
Сообщений: 6
Статус: Offline
Приветствую. Недавно начал заниматься простеньким скриптом и столкнулся с проблемой... В основном скрипт работает на переменной, в которую нужно указать имя персонажа в родительном падеже. Но я хотел-бы сделать так, что-бы при перезапуске скрипта не приходилось вводить имя заново. Примерно такое-же можно заметить и в биндере того-же Кваса. Я поискал ещё пару тем на форуме и нашёл тему с похожей функцией в .ini файле. Но в .ini файле, который лежит в папке биндера - ничего подобного нет (я про текст). Ещё хочу спросить, возможно ли такое: один раз ввести имя персонажа в gui, но последующие разы гуи открываться не будет, но если нажать на бинд - то появится возможность изменить имя персонажа.



И ещё хотел-бы попросить: Если всё-таки найдётся человек, который исправит это какими-то строками - попрошу объяснить за что отвечают новые строки.

Благодарю за внимание и помощь.


Ламер c:

Сообщение отредактировал Danny_Angelos - Четверг, 08.08.2019, 01:20
[CM]James17 Дата: Четверг, 08.08.2019, 14:19 | Сообщение # 2
Новичок
Сообщений: 22
Статус: Offline
Danny_Angelos,
1) Подключаешь UDF
2) Подключаешь командный процессор - *тык*
3) Используешь код =)
Код даже не проверял, просто наброски. Надеюсь, разберешься.
Можешь добавить "помощь" в трей и в диалог в самой игре.
Код
#SingleInstance Force
#Include UDF.ahk ; здесь введи название UDF
#Include Cmdproc.ahk ; здесь введи название командного процессора
if !(FileExist("settings.ini") {               ; это проверка на существование .ini файла. Если его нет - скрипт создаст файл.
    FileAppend, [Settings]`nNick=, settings.ini
    return
}
CMD.Register("rf", "Bind") ; Регистрируем команды
CMD.Register("rfnick", "ChangeNick")
IniRead, nick, settings.ini, Settings, Nick
global nick ; объявляем переменную глобальной для вывоза перменной внутри функции
exit

Bind(msg) {
    if (!msg || !nick) ; Если после команды /rf пустота, или в файле .ini отсутствует ник - выдает ошибку.
  addChatMessage("Error")
  return
    
    SendChat("/do На ухе " nick " закреплена bluetooth гарнитура")
    sleep 1000                    
    SendChat("/me зажал кнопку на гарнитуре.")
    sleep 1000                    
    SendChat("/todo " msg " *зажав кнопку.")   
    sleep 1000                  
    SendChat("/r " msg)  
    sleep 1000
    SendChat("/me отпустил кнопку на гарнитуре.")
}

ChangeNick(chnick) {
    if (!chname) ; Если после команды /rfnick пустота - выдает ошибку.
  addChatMessage("Error")
  return
  
  IniWrite, % chnick, Settings.ini, Nick ; смена имени в .ini файле
  addChatMessage("Done")
}


Есть предположения, что вторую функцию придется изменить, ибо, скорее всего, там будет отсутствовать нижний дефис "_", то есть /rfnick Nick Name. В этом случае придется использовать: (иначе в переменную chnick мы получим только Nick)
Код
ChangeNick(*Words) {
    Loop % Words.Length()
    chnick .= Words[A_Index] " "
    if !(RegExMatch(chnick, "[A-z]+") || RegExMatch(chnick, "[А-я]+") || RegExMatch(chnick, "[0-9]+")) { ; Если после команды /rfnick пустота - выдает ошибку.
  addChatMessage("Error")
  return
    }
    IniWrite, % chnick, Settings.ini, Nick ; смена имени в .ini файле
    addChatMessage("Done")
}

Совет: все строки из командного процессора просто перенеси в самый конец UDF файла, тогда придется подключать только один файл.
Пытайтесь найти рациональный способ. Ради таких целей делать GUI окна или того более диалоговые окна - бред. Удачного использования.


Сообщение отредактировал [CM]James17 - Четверг, 08.08.2019, 15:00
CZAR Дата: Четверг, 08.08.2019, 15:30 | Сообщение # 3
Czar Of Scripts
Сообщений: 1373
Статус: Offline
Цитата [CM]James17 ()
Ради таких целей делать GUI окна или того более диалоговые окна - бред

А ради такого не бред подключать целый удф + кмд процессор? + Скрипт для крмп.
Цитата [CM]James17 ()
 if (!msg || !nick) ; Если после команды /rf пустота, или в файле .ini отсутствует ник - выдает ошибку.
  addChatMessage("Error")
  return

Из-за того что вы опускаете блоки - вы делаете очень много ошибок.

Юзать иники для этого? А зачем? Не проще просто тогда текстовик с ником держать?
Окей, допустим мы юзаем удф, а зачем тогда эта вся ... с командами, когда есть GetUserName()?





Я в ВК
Ушел в веб.

• Ничего не покупаю.
• Способы не проверяю.


У меня теперь новый домен, если ссылка не работает - напишите.

Гарант Cheat-Master:
*тема*

AHK
[S-RP] House Finder / House Teleporter
[SAMP] Online Counter
[S-RP] [For Event] Show Star
[S-RP] AntiCasino
[S-RP] [BOT] Auto Fisher + Auto Find Worm + Auto Cook
[S-RP] [BOT] /dance
Winner | Делаем розыгрыши среди участников темы.
SAMP-UDF
[AHK Урок] Выбор в диалогах мышкой и enter`ом
[SAMP] Быстрый ответ на СМС
[ERP] Помощник для адвоката
[DRP] FakeTime

Достижения:
- 26.02.2017
- 03.01.2018
- 26.05.2018
- 22.09.2018
- 04.04.2019
Danny_Angelos Дата: Четверг, 08.08.2019, 16:17 | Сообщение # 4
Новичок
Сообщений: 6
Статус: Offline
Цитата CZAR ()
когда есть GetUserName()?

Если-бы я знал, как эту команду юзать... Мне просто нужно, что-бы после ввода в inputbox или в строку "edit" (из гуи) введённые данные сохранялись в каком-то файле, допустим тот-же .ini или .txt, а потом при использовании скрипта оно считывало введённые данные, даже после перезапуска.


Ламер c:
FForest Дата: Пятница, 09.08.2019, 01:17 | Сообщение # 5
Местный Дурачок
Сообщений: 129
Статус: Offline
Danny_Angelos, alt + 1 открывается инпут куда вводишь ник. На alt + 2 выводится все введённые ники. Так же они сохраняются рядом со cкриптом в файле Nick.txt
Код

!1::
InputBox, varNick, Ввод ника, Введите ник в поле ниже.
if (!ErrorLevel)
  FileAppend, % "`n" varNick, Nick.txt
        MsgBox, Вы ввели ник: %varNick%
Return

!2::
FileRead, nick, Nick.txt
MsgBox, % nick
Return




Сообщение отредактировал FForest - Пятница, 09.08.2019, 01:18
Danny_Angelos Дата: Пятница, 09.08.2019, 12:34 | Сообщение # 6
Новичок
Сообщений: 6
Статус: Offline
FForest
Да, работает именно так, как мне нужно (вроде-бы). Но я ещё хотел бы узнать за что отвечают строки в первом бинде, так как буду юзать на будущее, а понять за что отвечают эти строки будет сложно. Надеюсь напишешь smile
А, и ещё какие переменные нужно менять? Ну допустим я хочу сделать переменную "character_name", что мне нужно менять в коде? Я только что изменил все слова "nick" на "character_name". Эксперимент вышел неудачный, да.


Ламер c:

Сообщение отредактировал Danny_Angelos - Пятница, 09.08.2019, 12:38
FForest Дата: Пятница, 09.08.2019, 17:24 | Сообщение # 7
Местный Дурачок
Сообщений: 129
Статус: Offline
Danny_Angelos, Надеюсь хоть на пиво заработал

Код

!1:: ; Бинд на сочетания кнопок альт + 1
InputBox, varNick, Ввод ника, Введите ник в поле ниже. ; inputBotx - функция которая делает инпут. varNick - переменная куда будет сохранятся данные после ввода в инпут. После заголовок инпута, и описания инпута.
if (!ErrorLevel) ; Проверка на валидность. Тут стоит условие если было нажата кнопка отмана, или зарыто то данные не сохраняются.
    FileAppend, % "`n" varNick, Nick.txt ; fileAppened - Функция которая добавляет данные или создаёт файл. `n значит что данные будут перенесенны  на новую строку, varNick переменная с данными которые брались с инпута, Nick.txt = Путь к файлу где буду сохраняться данные.
    MsgBox, Вы ввели ник: %varNick% ; MsgBox - Функция которая выводит всплывающие окно. Далее текст который будет содиржать окно.
Return ; Функция которая останавливает работа скрипта.

!2:: ; Бинд на сочитания кнопок альт + 2
FileRead, nick, Nick.txt ; FileRead - Функция чтения файла. nick переменная куда будут сохранятся данные. Путь к файлу с которого будут доставаться данные в переменную.
MsgBox, % nick ; MsgBox - Функция которая выводит всплывающие окно. Далее текст который будет содержать окно.
Return ; Функция которая останавливает работа скрипта.



Danny_Angelos Дата: Пятница, 09.08.2019, 18:20 | Сообщение # 8
Новичок
Сообщений: 6
Статус: Offline
Цитата FForest ()
Надеюсь хоть на пиво заработал

+баночка чешского пивасяндра. Если мне захочется сменить название переменных, то мне просто нужно будет написать что угодно вместо "nick", верно?


Ламер c:
FForest Дата: Пятница, 09.08.2019, 19:46 | Сообщение # 9
Местный Дурачок
Сообщений: 129
Статус: Offline
Danny_Angelos,
varNick - данные с инпута
nick - хранит данные которые взял с файла Nick.txt
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума