SR_team
23.02.2021, 02:37
Поймут лишь те, кто писал чат-команды на C++:
C++:
static
SAMP
::
Input
::
CommandEx
test
(
"test"
,
[
]
(
int
a
,
float
b
)
{
// Тут целое число в `a` и дробное в `b`
}
)
;
test
.
redirectFail
(
[
]
(
SAMP
::
Input
::
CmdFail fail
,
int
arg
)
{
switch
(
fail
)
{
case
SAMP
::
Input
::
CmdFail
::
NOARGS
:
// Команда вызвана без аргументов. В `arg` записан 0
break
;
case
SAMP
::
Input
::
CmdFail
::
MANYARGS
:
// В команду передано слишком много аргументов. В `arg` количество аргументов
break
;
case
SAMP
::
Input
::
CmdFail
::
FEWARGS
:
// В команду передано слишком мало аргументов. В `arg` количество аргументов
break
;
case
SAMP
::
Input
::
CmdFail
::
INVALIDARGS
:
// В команду передан не верный аргумент, например строка вместо числа. В `arg` номер аргумента
break
;
}
}
)
;
if
(
!
test
.
isInstalled
(
)
)
test
.
install
(
)
;
// регистрация команды
Код класса, который позволяет создать конечный автомат на основе шаблона: https://gitlab.com/prime-hack/samp/plugins/templates/samp/-/blob/master/SAMP/Input.h#L256
C++:
static
SAMP
::
Input
::
CommandEx
test
(
"test"
,
[
]
(
int
a
,
float
b
)
{
// Тут целое число в `a` и дробное в `b`
}
)
;
test
.
redirectFail
(
[
]
(
SAMP
::
Input
::
CmdFail fail
,
int
arg
)
{
switch
(
fail
)
{
case
SAMP
::
Input
::
CmdFail
::
NOARGS
:
// Команда вызвана без аргументов. В `arg` записан 0
break
;
case
SAMP
::
Input
::
CmdFail
::
MANYARGS
:
// В команду передано слишком много аргументов. В `arg` количество аргументов
break
;
case
SAMP
::
Input
::
CmdFail
::
FEWARGS
:
// В команду передано слишком мало аргументов. В `arg` количество аргументов
break
;
case
SAMP
::
Input
::
CmdFail
::
INVALIDARGS
:
// В команду передан не верный аргумент, например строка вместо числа. В `arg` номер аргумента
break
;
}
}
)
;
if
(
!
test
.
isInstalled
(
)
)
test
.
install
(
)
;
// регистрация команды
Код класса, который позволяет создать конечный автомат на основе шаблона: https://gitlab.com/prime-hack/samp/plugins/templates/samp/-/blob/master/SAMP/Input.h#L256