PDA

Просмотр полной версии : Опять выебываюсь


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

SR_team
23.02.2021, 03:50
Хидер:






// в классе FogDist
SAMP
::
Input
::
CommandEx

cmd
{
"fogdist"
}
;
void
command
(
float
d
)
;
void
command
(
SAMP
::
Input
::
CmdFail fail
,
size_t
/* unused */
)
;




Сурс:






cmd
.
install
(
this
,
&
FogDist
::
command
)
;
cmd
.
redirectFail
(
this
,
&
FogDist
::
command
)
;
// ...
void
FogDist
::
command
(
float
d
)
{
// ...
}
void
FogDist
::
command
(
SAMP
::
Input
::
CmdFail fail
,
size_t
)
{
// ...
}

Majunti
23.02.2021, 14:16
Зачем

SR_team
23.02.2021, 14:35
Зачем





Поймут лишь те, кто писал чат-команды на C++

RatinovPlay
23.02.2021, 15:25
А нахуя тебе столько неймпспейсов?

Receiver
23.02.2021, 15:57
Зачем


Регает команды и упрощает с ними работу. Можно сразу указать с какими типами данных должны быть аргументы команды и получить их значения.

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



А нахуя тебе столько неймпспейсов?


Для прикола

atizoff
23.02.2021, 20:09
А нахуя тебе столько неймпспейсов?


красиво выглядит при вызове

1614096547579.pngatizoff · 23 Фев 2021 в 19:09' data-fancybox="lb-post-677193" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="https://www.blast.hk/attachments/87403/" style="cursor: pointer;" title="1614096547579.png">
https://forum.antichat.xyz/attachments/27677193/

https://forum.antichat.xyz/attachments/27677193/

да и каждый дрочет как он хочет, поэтому вот так вот

Majunti
23.02.2021, 20:18
Регает команды и упрощает с ними работу. Можно сразу указать с какими типами данных должны быть аргументы команды и получить их значения.
Есть обработчик "ошибок", в случае отстуствия одного или нескольких аргументов можно выполнять разные действия.


Я думал скрипт для взлома серверов😕