MrGPro |
Дата: Пятница, 03.08.2018, 19:31 | Сообщение # 1
|
Боец
Сообщений: 202
Статус: Offline
|
Код так себе может кому пригодиться более-менее удобный.Моно было еще короче =D
Код #SingleInstance force #Persistent #Include SAMPUDF.ahk #IfWinActive GTA:SA:MP
global nw:=0 ; ключ против спама в чат одного текста несколько раз global w ; ключ оружия global sex := getsexbyskin(getPlayerSkinId()) ;global sex := 0 ; для тестировния без udf global sex_index := 0 ; ключ загрузки переменных в масив (1-3) global SexKey := ( " povesel|повесел|повесела| ubral|убрал|убралa| dostal|достал|достала| poloshil|положил|положила| snjal|снял|сняла| " ) ; текстовый массив слов формат переменная|муж|жен|
sex := getsexbyskin(getPlayerSkinId()) ; получаем пол по скину Load_Tag_OfSex() ; загружаем в переменные нужные слова для жен или муж пола
; запуск в фоновом режиме (задержка 1сек) SetTimer, RPChat_Gun, 1000 ; или на выбор ; запуск через колесико мышки $~WheelDown:: $~WheelUp:: gosub, RPChat_Gun return
; лабел отыгровки в чат через функцию RPChat_Gun: if (getPlayerWeaponId()) Weapon_RP_LOAD(getPlayerWeaponId()) else Weapon_RP_unLOAD(getPlayerWeaponId()) return
; функция загружает переменные значения полов Load_Tag_OfSex() { global loop, parse, SexKey, |, `n { sex_index+=1 if (sex_index=1) key1 := A_LoopField If (sex=1 and sex_index = 2) %key1% := A_LoopField If (sex=2 and sex_index = 3) %key1% := A_LoopField If (sex_index=3) sex_index:=0 } }
; Отыгровка доставания оружия Weapon_RP_LOAD(ByRef w) { global if (w == 24) and (nw != 1) SendChat("/me быстрым движением руки " dostal " Desert Eagle из кобуры") & nw := 1 if (w == 25) and (nw != 2) SendChat("/me быстрым движением руки " snajl " дробовик с правого плеча") & nw := 2 if (w == 34) and (nw != 3) SendChat("/me быстрым движением руки " snjal " снайперскую винтовку с левого плеча") & nw := 3 if (w == 30) and (nw != 4) SendChat("/me быстрым движением руки " snjal " автомат AK-47 с плеча") & nw := 4 if (w == 31) and (nw != 5) SendChat("/me быстрым движением руки " snjal " карабин М4А1 с плеча") & nw := 5 if (w == 29) and (nw != 6) SendChat("/me быстрым движением руки " snjal " пистолет-пулемет MP5 с правого плеча") & nw := 6 if (w == 23) and (nw != 7) SendChat("/me быстрым движением руки " dostal " пистолет с глушителем из кобуры") & nw := 7 }
; Отыгровка спрятать оружие Weapon_RP_unLOAD(ByRef w) { global if (w != 24) and (nw = 1) SendChat("/me аккуратным движением руки " poloshil " Desert Eagle в кобуру") if (w != 25) and (nw = 2) SendChat("/me аккуратным движением руки " povesel " дробовик на правое плечо") if (w != 34) and (nw = 3) SendChat("/me аккуратным движением руки " povesel " снайперскую винтовку на левое плечо") if (w != 30) and (nw = 4) SendChat("/me аккуратным движением руки " povesel " автомат AK-47 на плечо") if (w != 31) and (nw = 5) SendChat("/me аккуратным движением руки " povesel " карабин М4А1 на плечо") if (w != 29) and (nw = 6) SendChat("/me аккуратным движением руки " povesel " пистолет-пулемет MP5 на правое плечо") if (w != 23) and (nw = 7) SendChat("/me аккуратным движением руки " ubral " пистолет с глушителем в кобуру") nw := 0 }
Метод #2
Код #SingleInstance force #Persistent #Include SAMPUDF.ahk #IfWinActive GTA:SA:MP global sex := getsexbyskin(getPlayerSkinId()) ; ключ загрузки переменных из массива 0 / "" ошибка ; 1 муж; 2 жен; ;global sex := 0 ; для тестировния без udf из массива 0 / "" ошибка ; 1 муж; 2 жен; global SexTag := {povesel: "повесел|повесела", ubral: "убрал|убралa", dostal: "достал|достала", poloshil: "положил|положила", snjal: "снял|сняла"} ; массив ключей и значений муж|жен TestKey := [] ; массив для наглядного тестирования функции (не обязательно можно удалить) ############ 1
; пример загрузки скинов с успехом или ошибкой if (Load_Tag_OfSex2()) MsgBox,,, Ok все загружено else MsgBox,,, Плохо скин не известен
; наглядный пример загрузки ключа жен или муж слова через global sex := 0,1,2 на выбор (можно удалить) for i, test in TestKey { s:= % %test% MsgBox,,, % "Ключ: " test " = " s }
; запуск в фоновом режиме (задержка 1сек) SetTimer, RPChat_Gun, 1000 ; или на выбор ; запуск через колесико мышки $~WheelDown:: $~WheelUp:: gosub, RPChat_Gun return
; лабел отыгровки в чат через функцию RPChat_Gun: if (getPlayerWeaponId()) Weapon_RP_LOAD(getPlayerWeaponId()) else Weapon_RP_unLOAD(getPlayerWeaponId()) return
Load_Tag_OfSex2() { global For key, sexTags in SexTag { stats := 0 If RegExMatch(SexTag[key], "((?<men>.*)[|](?<woman>.*))", tag_) { If (sex > 0) { if (sex=1) { %key% := tag_men TestKey[A_index] := key ; для наглядной загрузки (не обязательно можно удалить) ############ 1 } if (sex=2) { %key% := tag_woman TestKey[A_index] := key ; для наглядной загрузки (не обязательно можно удалить) ############ 1 } stats := true } else stats := false } } return stats }
; Отыгровка доставания оружия Weapon_RP_LOAD(ByRef w) { global if (w == 24) and (nw != 1) SendChat("/me быстрым движением руки " dostal " Desert Eagle из кобуры") & nw := 1 if (w == 25) and (nw != 2) SendChat("/me быстрым движением руки " snajl " дробовик с правого плеча") & nw := 2 if (w == 34) and (nw != 3) SendChat("/me быстрым движением руки " snjal " снайперскую винтовку с левого плеча") & nw := 3 if (w == 30) and (nw != 4) SendChat("/me быстрым движением руки " snjal " автомат AK-47 с плеча") & nw := 4 if (w == 31) and (nw != 5) SendChat("/me быстрым движением руки " snjal " карабин М4А1 с плеча") & nw := 5 if (w == 29) and (nw != 6) SendChat("/me быстрым движением руки " snjal " пистолет-пулемет MP5 с правого плеча") & nw := 6 if (w == 23) and (nw != 7) SendChat("/me быстрым движением руки " dostal " пистолет с глушителем из кобуры") & nw := 7 }
; Отыгровка спрятать оружие Weapon_RP_unLOAD(ByRef w) { global if (w != 24) and (nw = 1) SendChat("/me аккуратным движением руки " poloshil " Desert Eagle в кобуру") if (w != 25) and (nw = 2) SendChat("/me аккуратным движением руки " povesel " дробовик на правое плечо") if (w != 34) and (nw = 3) SendChat("/me аккуратным движением руки " povesel " снайперскую винтовку на левое плечо") if (w != 30) and (nw = 4) SendChat("/me аккуратным движением руки " povesel " автомат AK-47 на плечо") if (w != 31) and (nw = 5) SendChat("/me аккуратным движением руки " povesel " карабин М4А1 на плечо") if (w != 29) and (nw = 6) SendChat("/me аккуратным движением руки " povesel " пистолет-пулемет MP5 на правое плечо") if (w != 23) and (nw = 7) SendChat("/me аккуратным движением руки " ubral " пистолет с глушителем в кобуру") nw := 0 }
ПРИМЕР: ПОСТРОЕНИЯ МУЛЬТИ-ДИАЛОГОВ С УПРАВЛЕНИЕ by MrGPro (реализовано пока для style 2 и 0) * Управление мульти-комбо через клавиатуру, мышку, диалог. * Возможность вернуться на все диалоги назад и на выход * Переходы и возвраты через диалог
Код #Include SAMPUDF.ahk global sub_History := [] ; загружаем историю открытых диалогов global Dialog := [2, "Нубчик(Dialog)", "Какуля(subMenu1)|Какаха(subMenu2)", "x", "close"] ; Нубчик(Dialog) - имя диалога ссылка на (Dialog) global subMenu1 := [2, "Нубчик2(subMenu1)", "Какуля #2(subMenu)", "ok", "x"] global subMenu := [0, "Нубчик3(subMenu)", "Какуля #3|Какаха #3", "x", ""]
F1:: DialogControl(Dialog) return
subMenu2: addChatMessage("Вы выбрали 2 пункт и вас кинуло на label: subMenu2") return
DialogControl(theDialog) { global new_theText := null press_theKey := null for index, Key in theDialog { if (index=1) theStyle := Key if (index=2) theCaption := Key if (index=3) theText := Key if (index=4) theButtonOne := Key if (index=5) theButtonTwo := Key } StringSplit, LineCode, theText, |, RegExMatch(theCaption, "(?<text>.*)\((?<cmd>.*)\)", CAPandCMD_) Loop, %LineCode0% { if (RegExMatch(LineCode%A_Index%, "(?<text>.*)\((?<cmd>.*)\)")) RegExMatch(LineCode%A_Index%, "(?<text>.*)\((?<cmd>.*)\)", TXTandCMD_) else RegExMatch(LineCode%A_Index%, "(?<text>.*)", TXTandCMD_) line_%A_Index% := % TXTandCMD_cmd if (new_theText) new_theText := % new_theText TXTandCMD_text "`n" else new_theText := % TXTandCMD_text "`n" } if (theButtonOne) and !(theButtonTwo) ShowDialog(theStyle, CAPandCMD_text, new_theText, theButtonOne) else if (theButtonOne) and (theButtonTwo) ShowDialog(theStyle, CAPandCMD_text, new_theText, theButtonOne, theButtonTwo) while (isDialogOpen() and Time < 500) { if (A_TickCount - Time > 500) { Return } While((GetKeyState("Enter", "P") or GetKeyState("LButton", "P") or (isDialogButtonSelected() = 1 and GetKeyState("LButton", "P")))) { if (theStyle!=0) { Sleep 100 selLine := % getDialogLineNumber() theCheckCMD := % line_%selLine% sub_History[%theCheckCMD%[2]] := CAPandCMD_cmd if (%theCheckCMD%.MinIndex() = 1 and (%theCheckCMD%.MaxIndex() = 5 or %theCheckCMD%.MaxIndex() = 4)) DialogControl(%theCheckCMD%) else { try { gosub, %theCheckCMD% } catch { return 0 } } } } While(GetKeyState("Esc", "P")) { For key, value in sub_History { if (key == theCaption) { if (%value%.MinIndex() = 1 and (%value%.MaxIndex() = 5 or %value%.MaxIndex() = 4)) DialogControl(%value%) else { try { gosub, %value% } catch { return 0 } } } } } } }
Тебе помогли не забывай про благодарность >> тыкни репутацию ---------------------------------------͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏ ----------------------------------------------------- Зам.Администратора на проекте "DayZ Epoсh SPN" сервер Arma 2OA DayZ Epoch пиратка и лицензия
Сообщение отредактировал MrGPro - Четверг, 16.08.2018, 14:07 |
|
|
|
Andreyringo1 |
Дата: Пятница, 03.08.2018, 22:27 | Сообщение # 2
|
Новичок
Сообщений: 25
Статус: Offline
|
Когда в руках оружие, просто идёт флуд.
Сообщение отредактировал Andreyringo1 - Пятница, 03.08.2018, 22:35 |
|
|
|
MrGPro |
Дата: Пятница, 03.08.2018, 22:36 | Сообщение # 3
|
Боец
Сообщений: 202
Статус: Offline
|
Andreyringo1, исправил забыл убрать nw := 0 при копировании одой функции
Тебе помогли не забывай про благодарность >> тыкни репутацию ---------------------------------------͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏ ----------------------------------------------------- Зам.Администратора на проекте "DayZ Epoсh SPN" сервер Arma 2OA DayZ Epoch пиратка и лицензия
|
|
|
|
CZAR |
Дата: Суббота, 04.08.2018, 00:42 | Сообщение # 4
|
Czar Of Scripts
Сообщений: 1373
Статус: Offline
|
MrGPro, что это за бред?
Код global SexKey := ( " povesel|повесел|повесела| ubral|убрал|убралa| dostal|достал|достала| poloshil|положил|положила| snjal|снял|сняла| " ) В курсе что у некоторых может не работать такой вариант записи?
А это что за прикольчик? Зачем два таймера?
Код SetTimer, RPChat_Gun, 1000 SetTimer, RPChat_Gun, On
Я в ВК Ушел в веб.
• Ничего не покупаю. • Способы не проверяю.
У меня теперь новый домен, если ссылка не работает - напишите.
Гарант 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
|
|
|
|
MrGPro |
Дата: Суббота, 04.08.2018, 11:40 | Сообщение # 5
|
Боец
Сообщений: 202
Статус: Offline
|
Phoenixxx_Czar, Код global SexKey := ( " povesel|повесел|повесела| ubral|убрал|убралa| dostal|достал|достала| poloshil|положил|положила| snjal|снял|сняла| " )
это набросок код для визуального редактирования и быстрого добавления в код без создания лишних строк в коде с переменными (минимизировать код), с таймеров тупанул из-за того что еще С# изучаю а там в таймере задается с начало интервал где нужно, а следом активация.
И почему же не будет работать?
Код В курсе что у некоторых может не работать такой вариант записи?
Метод 2 реализован через массив с ним что не так будет ?
Тебе помогли не забывай про благодарность >> тыкни репутацию ---------------------------------------͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏ ----------------------------------------------------- Зам.Администратора на проекте "DayZ Epoсh SPN" сервер Arma 2OA DayZ Epoch пиратка и лицензия
|
|
|
|
|
JayscoreINC |
Дата: Воскресенье, 07.10.2018, 20:04 | Сообщение # 7
|
Любитель
Сообщений: 30
Статус: Offline
|
Не выходит из диалога по кнопке. (переходит на след. пункт)
Некоторые люди наслаждаются дождём, другие просто промокают.
|
|
|
|