 |
|

05.03.2016, 13:16
|
|
Познающий
Регистрация: 10.01.2016
Сообщений: 98
С нами:
5442178
Репутация:
18
|
|
Сообщение от legend2360
Их нужно составлять по примеру ввода.
/coord [Буква] [цифра]
C++:
Код:
void
CALLBACK
cmd_get_player_square
(
std
::
string param
)
{
char
buf
[
128
]
;
std
::
string buk
;
int
chisl
;
int
bukn
;
int
square
;
FLOAT FxPos
;
FLOAT FyPos
;
if
(
param
.
empty
(
)
)
{
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
"[COORDINATOR]\t\tВы не указали квадрат поиска! (( /coord [Буква] [число] ))"
)
;
return
;
}
int
i
=
std
::
stoi
(
param
)
;
//sscanf(param.c_str(), "%d %d", &buk, &chisl);
if
(
buk
==
"А"
)
bukn
=
1
;
if
(
buk
==
"Б"
)
bukn
=
2
;
if
(
buk
==
"В"
)
bukn
=
3
;
if
(
buk
==
"Г"
)
bukn
=
4
;
if
(
buk
==
"Д"
)
bukn
=
5
;
if
(
buk
==
"Ж"
)
bukn
=
6
;
if
(
buk
==
"З"
)
bukn
=
7
;
if
(
buk
==
"И"
)
bukn
=
8
;
if
(
buk
==
"К"
)
bukn
=
9
;
if
(
buk
==
"Л"
)
bukn
=
10
;
if
(
buk
==
"М"
)
bukn
=
11
;
if
(
buk
==
"Н"
)
bukn
=
12
;
if
(
buk
==
"О"
)
bukn
=
13
;
if
(
buk
==
"П"
)
bukn
=
14
;
if
(
buk
==
"Р"
)
bukn
=
15
;
if
(
buk
==
"С"
)
bukn
=
16
;
if
(
buk
==
"Т"
)
bukn
=
17
;
if
(
buk
==
"У"
)
bukn
=
18
;
if
(
buk
==
"Ф"
)
bukn
=
19
;
if
(
buk
==
"Х"
)
bukn
=
20
;
if
(
buk
==
"Ц"
)
bukn
=
21
;
if
(
buk
==
"Ч"
)
bukn
=
22
;
if
(
buk
==
"Ш"
)
bukn
=
23
;
if
(
buk
==
"Я"
)
bukn
=
24
;
switch
(
bukn
)
{
case
1
:
FyPos
=
200.0
;
break
;
case
2
:
FyPos
=
400.0
;
break
;
case
3
:
FyPos
=
600.0
;
break
;
case
4
:
FyPos
=
800.0
;
break
;
case
5
:
FyPos
=
1000.0
;
break
;
case
6
:
FyPos
=
1200.0
;
break
;
case
7
:
FyPos
=
1400.0
;
break
;
case
8
:
FyPos
=
1600.0
;
break
;
case
9
:
FyPos
=
1800.0
;
break
;
case
10
:
FyPos
=
2000.0
;
break
;
case
11
:
FyPos
=
2200.0
;
break
;
case
12
:
FyPos
=
2400.0
;
break
;
case
13
:
FyPos
=
2600.0
;
break
;
case
14
:
FyPos
=
2800.0
;
break
;
case
15
:
FyPos
=
3000.0
;
break
;
case
16
:
FyPos
=
3200.0
;
break
;
case
17
:
FyPos
=
3400.0
;
break
;
case
18
:
FyPos
=
3600.0
;
break
;
case
19
:
FyPos
=
3800.0
;
break
;
case
20
:
FyPos
=
4000.0
;
break
;
case
21
:
FyPos
=
4200.0
;
break
;
case
22
:
FyPos
=
4400.0
;
break
;
case
23
:
FyPos
=
4600.0
;
break
;
case
24
:
FyPos
=
4800.0
;
break
;
default
:
FyPos
=
0.0
;
}
switch
(
chisl
)
{
case
1
:
FxPos
=
200.0
;
break
;
case
2
:
FxPos
=
400.0
;
break
;
case
3
:
FxPos
=
600.0
;
break
;
case
4
:
FxPos
=
800.0
;
break
;
case
5
:
FxPos
=
1000.0
;
break
;
case
6
:
FxPos
=
1200.0
;
break
;
case
7
:
FxPos
=
1400.0
;
break
;
case
8
:
FxPos
=
1600.0
;
break
;
case
9
:
FxPos
=
1800.0
;
break
;
case
10
:
FxPos
=
2000.0
;
break
;
case
11
:
FxPos
=
2200.0
;
break
;
case
12
:
FxPos
=
2400.0
;
break
;
case
13
:
FxPos
=
2600.0
;
break
;
case
14
:
FxPos
=
2800.0
;
break
;
case
15
:
FxPos
=
3000.0
;
break
;
case
16
:
FxPos
=
3200.0
;
break
;
case
17
:
FxPos
=
3400.0
;
break
;
case
18
:
FxPos
=
3600.0
;
break
;
case
19
:
FxPos
=
3800.0
;
break
;
case
20
:
FxPos
=
4000.0
;
break
;
case
21
:
FxPos
=
4200.0
;
break
;
case
22
:
FxPos
=
4400.0
;
break
;
case
23
:
FxPos
=
4600.0
;
break
;
case
24
:
FxPos
=
4800.0
;
break
;
default
:
FxPos
=
0.0
;
}
if
(
FxPos
!=
0.0
||
FyPos
!=
0.0
)
{
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
"[COORDINATOR]\t\tКвадрат поиска [%d-%d] указан на вашем GPS"
,
buk
,
chisl
)
;
CVector fPos
=
{
FxPos
,
FyPos
,
0.0
}
;
GAME
->
Get3DMarkers
(
)
->
CreateMarker
(
square
,
MARKER3D_TUBE
,
&
fPos
,
40.0
,
1.0
,
3
,
52
,
227
,
255
)
;
}
else
{
sprintf
(
buf
,
"[COORDINATOR]\t\tКвадрат поиска [%s-%d] не находится в базе"
,
buk
,
chisl
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
buf
)
;
}
}
|
|
|

05.03.2016, 14:21
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Сообщение от McFree
Можешь пример получения данных написать?
std::smatch res;
if(std::regex_match(param, res, std::regex(R"(^\w \d$)"))
|
|
|

05.03.2016, 14:50
|
|
Участник форума
Регистрация: 09.03.2015
Сообщений: 218
С нами:
5884065
Репутация:
0
|
|
как называется рпц которые показывает от кого пришел дамаг и по кому я нанес
|
|
|

05.03.2016, 14:53
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Сообщение от Tray228
как называется рпц которые показывает от кого пришел дамаг и по кому я нанес
GiveTakeDamage. Он входящий и исходящий. Не на всех серверах он юзается
|
|
|

05.03.2016, 14:59
|
|
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами:
6603505
Репутация:
183
|
|
Сообщение от Dark_Knight
GiveTakeDamage. Он входящий и исходящий. Не на всех серверах он юзается
как это не на всех?
|
|
|

05.03.2016, 15:36
|
|
Участник форума
Регистрация: 09.03.2015
Сообщений: 218
С нами:
5884065
Репутация:
0
|
|
Как удалить перезарядку у shotgun'a
|
|
|

05.03.2016, 16:20
|
|
Постоянный
Регистрация: 23.06.2015
Сообщений: 411
С нами:
5731627
Репутация:
108
|
|
Сообщение от legend2360
Обойтись без цикла.
Как обойтись ?? Как ты себе это представляешь ???
|
|
|

05.03.2016, 17:02
|
|
Познающий
Регистрация: 10.01.2016
Сообщений: 98
С нами:
5442178
Репутация:
18
|
|
Сообщение от Dark_Knight
std::smatch res;
if(std::regex_match(param, res, std::regex(R"(^\w \d$)"))
Ошибка: std не содержит члена smatch, regex_mach и regex
|
|
|

05.03.2016, 17:23
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
#include и почитай уроки по регуляркам. http://regexr.com довольно удобный сайт для тестирования регулярок. Так же советую по началу регулярки брать в try catch. По началу будешь часто ловить ошибки.
|
|
|

05.03.2016, 18:13
|
|
Постоянный
Регистрация: 23.06.2015
Сообщений: 411
С нами:
5731627
Репутация:
108
|
|
Ребят сделал функцию которая делает задержку. И из-за нее игра жутко виснет.
Код:
[CODE]
void wait(unsigned int ms)
{
unsigned int time = GetTickCount();
time += ms;
while (GetTickCount()
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|