Tiva
Известный
- 76
- 1
Все равно не работаетЩа бы взять SAMP UDF для 0.3z, когда ща юзают клиент 0.3.7
Все равно не работаетЩа бы взять SAMP UDF для 0.3z, когда ща юзают клиент 0.3.7
CMD.Register("/rank",giveRank)
giveRank( id, lvl ) {
static lvlNames = ["Рядового", "Сержанта", "", "", "", "", "", "Мл.Лейтенанта"]
sendChat("/me передал погоны " lvlNames[lvl] "."
sleep 1000
sendChat("/giverank id lvl")
}
А можешь что-бы не 1 строка в диалоге включала 1 клавишу, а например сразу 5?МАГИЯ!
А можешь что-бы не 1 строка в диалоге включала 1 клавишу, а например сразу 5?
active := Object("keys1", false, "vk32", false)
F1::
array := ["Группа клавиш №1`t" (active.keys1 ? "{32CD32}Активны":"{dd0000}Не активны"), "Клавиша 2`t" (active.vk32 ? "{32CD32}Активна":"{dd0000}Не активна")]] ;Группа клавиш №1 к примеру 1 и 3
showDialog(2, "Управление клавишами", ArrayToTextDialog(array), "Ок")
result := LineResult()
if (!result)
Return
for i, e in active
if (A_Index = result)
active[i] := !e
Return
~vk31::
if (!active.keys1)
return
addChatMessage("Группа клавиш №1 работает")
Return
~vk33::
if (!active.keys1)
return
addChatMessage("Группа клавиш №1 работает")
Return
~vk32::
if (!active.vk32)
Return
addChatMessage("2 работает")
Return
Чёт не смог найти, можешь помочь?Подключаешь ком.проц. (на СМе можешь найти). Регистрируешь команду.
Такая штука универсальна и подходит для любого ранга. И не нужно дублировать данные, как в примере выше.Код:CMD.Register("/rank",giveRank) giveRank( id, lvl ) { static lvlNames = ["Рядового", "Сержанта", "", "", "", "", "", "Мл.Лейтенанта"] sendChat("/me передал погоны " lvlNames[lvl] "." sleep 1000 sendChat("/giverank id lvl") }
http://rebres.ru/AutoHotKey/SAMP-UDF-Developer.ahk[/QUOTE
Спасибо не знаешь как сделать чтобы ты пишешь диалог пример на F2 и после этого в чате писало что-то одно вримерно.
Чёт не смог найти, можешь помочь?
#If WinActive("GTA:SA:MP")
#If
CMD.SwitchOn()
Class CMD {
Static Status := 0
Static List := {}
; CMD.Register("command","testFunc") - The second parameter is a function
; CMD.Register("command","testFunc",testObject) - The second parameter is a method
Register(Command,Function, Object := "") {
If ( IsObject(Object) ) {
Function := ObjBindMethod(Object,Function)
CMD.List[Command] := Function
return 0
} else if ( IsFunc(Function) ) {
CMD.List[Command] := Function
return 0
} else return 1
}
SwitchOn() {
If ( !CMD.Status ) {
Static Function := ObjBindMethod(CMD,"Check")
Hotkey, If, WinActive("GTA:SA:MP")
Hotkey, ~Enter,% Function, On, UseErrorLevel
CMD.Status := ( ErrorLevel == 0 ) ? "1" : "0"
return ErrorLevel
} else return 1
}
SwitchOff() {
If ( CMD.Status != 0 ) {
Hotkey, If, WinActive("GTA:SA:MP")
Hotkey, ~Enter, Off, UseErrorLevel
CMD.Status := ( ErrorLevel == 0 ) ? "0" : "1"
return ErrorLevel
} else return 1
}
Check() {
If ( isInChat() ) {
KeyWait, Enter
sleep 150
Input := readString(hGTA, dwSAMP + 0x12D8F8, 256)
If ( SubStr(Input,1,1) == "/" && RegExMatch(Input,"(\w+)", Command, 2) && CMD.List[Command] ) {
writeString(hGTA, dwSAMP + 0x12D8F8, "")
Function := CMD.List[Command], Arguments := StrSplit(SubStr(Input,3+StrLen(Command),StrLen(Input)-2-StrLen(Command))," ")
While ( Arguments.Length() < IsFunc(Function) )
Arguments.Push("")
%Function%(Arguments*)
}
}
}
}
#Include samp.ahk
F2::
Showdialog("1", "{FFFAFA}Выберите пункт", "{FFFAFA}[1] - RolePlay`n[2] - Лекции`n[3] - Наказание", "Ok")
input, text, V, {Enter}
Keywait, Enter, D
sleep 300
if (text = 1) {
Showdialog("1", "{FFFAFA}Выберите пункт", "[1]RolePlay`n[2]RolePlay`n[3]RolePlay`n[4]RolePlay`n[5]RolePlay`n[6]RolePlay`n[7]RolePlay`n[8]RolePlay`n[9]RolePlay", "Ok")
} else if (text = 2) {
addchatmessage("{FFFAFA}Привет")
sleep 1100
addchatmessage("Добрый день")
sleep 1100 }
addchatmessage ("/invite")
} else if (text = 3) {
addchatmessage ("/invite")
} else {
addChatMessage("[AHK]: Ошибка. Выберите пункт с помощью цифр 1-3"
}
return
Вот тебе на SCM код. Разбирайся в своём AHK сам.Как сделать чтобы нажимаешь кнопку и у тебя выводится команда и id ближнего человека, только не свой
{$CLEO}
0000:
WHILE 8AFA: NOT SAMP_Loaded
0001: 0
END
WHILE TRUE
0001: 0
IF 0256: player $PLAYER_CHAR defined
THEN
IF 0ADC: test_cheat "N"
THEN
FOR 0@ = TO {MAX_PLAYERS}1004 | STEP = 1 |
IF 0B23: samp is_player_connected 0@
THEN
IF 0B20: samp 1@ = actor_handle_by_samp_player_id 0@
THEN
IF 0104: actor $PLAYER_ACTOR near_actor 1@ radius 15.0 15.0 15.0 sphere FALSE
THEN
0AF9: samp say_msg "Игрок %d, рядом с вами." | {ID}0@ |
BREAK
END
END
END
END
END
END
END