Christopher_McMilan |
Дата: Суббота, 05.05.2018, 17:06 | Сообщение # 1
|
Новичок
Сообщений: 8
Статус: Offline
|
Как сделать счетчик зарплаты? нужно что бы выводилось в диалог, желательно за несколько дней можно было посмотреть. Как финка в бизнесе
.::Christopher::.
Сообщение отредактировал Christopher_McMilan - Суббота, 05.05.2018, 17:08 |
|
|
|
Rinat_Namazov |
Дата: Суббота, 05.05.2018, 22:20 | Сообщение # 2
|
Боец
Сообщений: 122
Статус: Offline
|
AHK в цикле ищет в чате строку с ЗП. Считывает кол-во зп, записывает его и сегодняшнее число в массив типа этого: {Data: Дата, Salary: ЗП}
И когда хочешь посмотреть их кол-во, открываешь диалог с пунктами "Всего", "За определенные дни". Если хотим всего зп, проходим по массиву через цикл for, и прибавляем кол-во зп за каждый день в общую сумму и после цикла выводим.
Если хотим за определенное время, выбираем с какого по какое число. И проходимся циклом for по массив и отбираем только зп в диапазоне даты.
|
|
|
|
Christopher_McMilan |
Дата: Суббота, 05.05.2018, 22:40 | Сообщение # 3
|
Новичок
Сообщений: 8
Статус: Offline
|
А можно код?
.::Christopher::.
|
|
|
|
Rinat_Namazov |
Дата: Воскресенье, 06.05.2018, 16:23 | Сообщение # 4
|
Боец
Сообщений: 122
Статус: Offline
|
Цитата Christopher_McMilan ( ) А можно код? Бесплатно мало кто сделает.
|
|
|
|
Wyareri |
Дата: Воскресенье, 06.05.2018, 22:48 | Сообщение # 5
|
Боец
Сообщений: 56
Статус: Offline
|
Цитата Christopher_McMilan ( ) А можно код? Бесплатный творог только подзал.... А вообще, можешь найти исходник биндера от КВАСа, там подобная фича была. P.S: Если не шаришь АХК хотя бы на базовом уровне, то проще сходить в стол заказов.
|
|
|
|
AHgPeU_XaKeP |
Дата: Понедельник, 07.05.2018, 02:20 | Сообщение # 6
|
Новичок
Сообщений: 6
Статус: Offline
|
Christopher_McMilan, сделал как умею... Активация: /ss
Код #ifWinActive GTA:SA:MP #Persistent #SingleInstance FORCE #Include SAMP.ahk
class CommandProcessor { StatusProcessor := false CommandArray := {}
TempText := "" TempCmd := ""
SetStatusProcessor(status) { this.StatusProcessor := status }
RegisterCommand(cmd, metka) { ObjRawSet(this.CommandArray, cmd, metka) }
DeleteCommand(cmd) { this.CommandArray.Delete(cmd) } }
CommandProcessor := new CommandProcessor() CommandProcessor.SetStatusProcessor(true) CommandProcessor.RegisterCommand("/ss", "kp") chat := A_MyDocuments "/GTA San Andreas User Files/SAMP/chatlog.txt" SetTimer, PayDay, 1 return
PayDay: Today := "" A_DD "." A_MM "." A_YYYY "" FileRead, chatlog, % chat if (RegExMatch(chatlog, "\]\s+Зарплата: (.*)\$", money)) { FileDelete, % chat IniRead, allmoney, %A_MyDocuments%\Gta San Andreas User Files\samp\Salary.ini, PayDay, %Today% if (allmoney == "ERROR") or (allmoney == "") { allmoney := 0 } a := allmoney + money1 IniWrite, %a%, %A_MyDocuments%\Gta San Andreas User Files\samp\Salary.ini, PayDay, %Today% } Return
~F6:: ~ESC:: IfWinNotActive, GTA:SA:MP return menu := 0 return
~LButton:: Time := A_TickCount while(isDialogOpen()) { if (A_TickCount - Time > 500) return } checkdialogMenu: if (isDialogButton1Selected() == 1) menu := 0 IfWinNotActive, GTA:SA:MP return if (menu == 1) { menu := 0 line_num := getDialogLineNumber()
if (line_num == 2) { FileRead, end, %A_MyDocuments%\Gta San Andreas User Files\samp\Salary.ini if (ErrorLevel == 0) { d1 := RegExReplace(end, "\[PayDay]\s\s", "") d2 := RegExReplace(d1, "=", "`t{00FF00}") d3 := RegExReplace(d2, "\n", "$`n{00FFFF}") d4 := RegExReplace(d3, ".{9}$", "") SS = ( {00FFFF}Date`t{00FF00}Money {00FFFF}%d4%
) showDialog(5, "{FFFFFF}Salary Statement", SS, "Закрыть") } else if (ErrorLevel == 1) { showDialog(0, "{FFFFFF}Salary Statement", " {00FF00}Отчёт пуст", "Закрыть") } } else if (line_num == 3) { ok = ( {FFFFFF}Вы действительно хотите очистить историю зарплат? {00FF00}Да, очистить. {FF0000}Нет, отмена.
) showDialog(5, "{FFFFFF}Salary Statement", ok, "Закрыть") menu := 2 } } else if (menu == 2) { menu := 0 line_num := getDialogLineNumber()
if (line_num == 1) { FileDelete, %A_MyDocuments%\Gta San Andreas User Files\samp\Salary.ini AddChatMessageEx("00FF00", "[Salary Statement] • {FFFFFF}История зарплат полностью удалена.") } } Return
~Enter:: if(CommandProcessor.StatusProcessor) { if(IsChatActive() == 1) { blockChatInput() while(IsChatActive() == 1) continue unBlockChatInput() TextChat := GetChatText() if(SubStr(TextChat, 1, 1) == "/") { InputCMD := StrSplit(TextChat, A_Space) InputCMD := InputCMD[1] CommandProcessor.TempCmd := InputCMD CommandProcessor.TempText := TextChat if(CommandProcessor.CommandArray.HasKey(InputCMD)) { ClearTextDialog() SetTimer, % CommandProcessor.CommandArray[InputCMD], -1 } else { SendChat(TextChat) ClearTextDialog() } } else { if(TextChat != "") { CommandProcessor.TempText := TextChat SendChat(TextChat) ClearTextDialog() } } } } goto, checkdialogMenu return
kp: chatInput := CommandProcessor.TempText if (RegExMatch(chatInput, "i)^/ss")) { menu := 1 IniRead, menumoney, %A_MyDocuments%\Gta San Andreas User Files\samp\Salary.ini, PayDay, %Today% if (menumoney == "ERROR") or (menumoney == "") { menumoney := 0 } gmenu = ( {00FF00}Зарплата за сегодня: %menumoney%$ {00FF00}Полный отчёт о зарплатах {00FF00}Очистить отчёт ) showDialog(4, "{FFFFFF}Salary Statement", gmenu, "Закрыть") } Return
Сообщение отредактировал AHgPeU_XaKeP - Понедельник, 07.05.2018, 15:02 |
|
|
|