
18.05.2017, 07:37
|
|
Познающий
Регистрация: 24.02.2017
Сообщений: 75
С нами:
4849680
Репутация:
0
|
|
RakSAMP не подключается к серверу, пока я не открою SAMP и не нажму на этот сервер в списке серверов, тогда RakSAMP сразу подключается. Из-за чего такое происходит? Может перед тем, как подключаться, нужно отправить какой-то запрос на количество игроков?
|
|
|

18.05.2017, 11:09
|
|
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами:
6603505
Репутация:
183
|
|
Сообщение от winrare
RakSAMP не подключается к серверу, пока я не открою SAMP и не нажму на этот сервер в списке серверов, тогда RakSAMP сразу подключается. Из-за чего такое происходит? Может перед тем, как подключаться, нужно отправить какой-то запрос на количество игроков?
это нубозащита СРП. Я писал реконнект, который ее обходит. Можешь взять код из него (Цпп)
|
|
|

18.05.2017, 14:26
|
|
Новичок
Регистрация: 14.12.2015
Сообщений: 2
С нами:
5480339
Репутация:
0
|
|
Как узнать ид игрока на которого ты навелся?
SF->getSAMP()->getPlayers()->pLocalPlayer->sTargetPlayerID
Выдает 4рех значное число
|
|
|

21.05.2017, 16:14
|
|
Участник форума
Регистрация: 06.11.2016
Сообщений: 150
С нами:
5008255
Репутация:
18
|
|
Решил я тут сделать что то типу миссий для одиночки.
Посмотрел на модели пикапов и понял что агтунг (они все с SAMP.ide)
Вопрос такой: Как через C++ (asi) заставить игру грузить еще архив моделей ?
Типу как в сампе реализована загрузка SAMP.ide
|
|
|

21.05.2017, 16:54
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Сообщение от Jack_Savage
Решил я тут сделать что то типу миссий для одиночки.
Посмотрел на модели пикапов и понял что агтунг (они все с SAMP.ide)
Вопрос такой: Как через C++ (asi) заставить игру грузить еще архив моделей ?
Типу как в сампе реализована загрузка SAMP.ide
Код:
Код:
# Usable object IDs are:
# * 18631 to 19999 (1369 total) reserved for SAMP.IDE
# * 11682 to 12799 (1118 total) reserved for SAMP.IDE
# * 15065 to 15999 (935 total) reserved for CUSTOM.IDE
Все иды до 15064 используются игрой. Советую идти на gtaforums.com
|
|
|

21.05.2017, 17:17
|
|
Участник форума
Регистрация: 06.11.2016
Сообщений: 150
С нами:
5008255
Репутация:
18
|
|
Сообщение от Dark_Knight
Код:
Код:
# Usable object IDs are:
# * 18631 to 19999 (1369 total) reserved for SAMP.IDE
# * 11682 to 12799 (1118 total) reserved for SAMP.IDE
# * 15065 to 15999 (935 total) reserved for CUSTOM.IDE
Все иды до 15064 используются игрой. Советую идти на gtaforums.com
Там англичани. И они не очень отвечают
|
|
|

21.05.2017, 17:50
|
|
Участник форума
Регистрация: 06.11.2016
Сообщений: 150
С нами:
5008255
Репутация:
18
|
|
Ошибся не SAMP.idl а SAMP.img
|
|
|

21.05.2017, 19:56
|
|
Познающий
Регистрация: 24.02.2017
Сообщений: 75
С нами:
4849680
Репутация:
0
|
|
Когда сервер устанавливает игроку анимацию, он посылает RPC ApplyAnimation в котором есть animLib и animName. Игрок в свою очередь сообщает серверу о своей анимации посылая пакет PlayerSyncData и указывая в нем CurrentAnimationID.
Вопрос: как связаны эти 2 вида анимаций? Клиент как-то преобразует текстовые animLib и animName в численный CurrentAnimationID? Или это вообще разные анимации, которые не связаны друг с другом?
|
|
|

21.05.2017, 20:29
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Это одно и тоже. У каждой анимации есть имя и айди.
|
|
|

22.05.2017, 18:27
|
|
Познающий
Регистрация: 24.02.2017
Сообщений: 75
С нами:
4849680
Репутация:
0
|
|
Как получить все данные из пакета ApplyAnimation? В RakSAMP,е функции обработки этого пакета нет. Попробовал сделать порядок считывания данных как в events.lua.
C++:
Код:
WORD playerId
;
BYTE animLibLenght
;
char
animLib
[
257
]
;
BYTE animNameLenght
;
char
animName
[
257
]
;
float
delta
;
bool
loop
,
lockX
,
lockY
,
freeze
;
WORD time
;
bsData
.
Read
(
playerId
)
;
bsData
.
Read
(
animLibLenght
)
;
bsData
.
Read
(
animLib
,
animLibLenght
)
;
animLib
[
animLibLenght
]
=
'\0'
;
bsData
.
Read
(
animNameLenght
)
;
bsData
.
Read
(
animName
,
animNameLenght
)
;
animName
[
animNameLenght
]
=
'\0'
;
bsData
.
Read
(
delta
)
;
bsData
.
Read
(
loop
)
;
bsData
.
Read
(
lockX
)
;
bsData
.
Read
(
lockY
)
;
bsData
.
Read
(
freeze
)
;
bsData
.
Read
(
time
)
;
В итоге все нормально считывается, кроме четырех булевых значений: loop, lockX, lockY, freeze. Они считываются неправильно, причем они все одновременно либо true, либо false. Если вместо четырех считываний bool сделать одно BYTE, то по первым 4 битам этого байта можно определить значения, но тогда неправильно считывается time. По идее можно все четыре булевых значения и время записать в один int, а потом его разобрать по битам, но это неудобно. Может есть вариант проще или я что-то не правильно делаю?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|