Другое С/С++ Вопрос - Ответ

SR_team

like pancake
BH Team
4,720
6,369
RakSAMP не подключается к серверу, пока я не открою SAMP и не нажму на этот сервер в списке серверов, тогда RakSAMP сразу подключается. Из-за чего такое происходит? Может перед тем, как подключаться, нужно отправить какой-то запрос на количество игроков?
это нубозащита СРП. Я писал реконнект, который ее обходит. Можешь взять код из него (Цпп)
 
  • Нравится
Реакции: winrare

Mr.Jonathan

Новичок
2
0
Как узнать ид игрока на которого ты навелся?
SF->getSAMP()->getPlayers()->pLocalPlayer->sTargetPlayerID
Выдает 4рех значное число
 

Jack_Savage

Участник
150
17
Решил я тут сделать что то типу миссий для одиночки.
Посмотрел на модели пикапов и понял что агтунг (они все с SAMP.ide)
Вопрос такой: Как через C++ (asi) заставить игру грузить еще архив моделей ?
Типу как в сампе реализована загрузка SAMP.ide
 

Dark_Knight

Me, me and me.
Друг
4,062
2,077
Решил я тут сделать что то типу миссий для одиночки.
Посмотрел на модели пикапов и понял что агтунг (они все с 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
 

Jack_Savage

Участник
150
17
Код:
# 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
Там англичани. И они не очень отвечают
 

winrare

Новичок
75
1
Когда сервер устанавливает игроку анимацию, он посылает RPC ApplyAnimation в котором есть animLib и animName. Игрок в свою очередь сообщает серверу о своей анимации посылая пакет PlayerSyncData и указывая в нем CurrentAnimationID.
Вопрос: как связаны эти 2 вида анимаций? Клиент как-то преобразует текстовые animLib и animName в численный CurrentAnimationID? Или это вообще разные анимации, которые не связаны друг с другом?
 

winrare

Новичок
75
1
Как получить все данные из пакета 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, а потом его разобрать по битам, но это неудобно. Может есть вариант проще или я что-то не правильно делаю?
 

Dark_Knight

Me, me and me.
Друг
4,062
2,077
Удали чтения ида. Все входящие РПЦ только для тебя будут работать.
 

winrare

Новичок
75
1
Удали чтения ида. Все входящие РПЦ только для тебя будут работать.
PlayerSync это не РПЦ, это просто пакет. Сервер посылает мне только пакеты других игроков, тех которые находятся рядом со мной. Пакеты с моей синхронизацией сервер мне не посылает, да и зачем ему посылать мне обратно тот пакет, который я ему только что отправил.
 

Dark_Knight

Me, me and me.
Друг
4,062
2,077
Йобанный врот билять. PlayerSync только есть ид анимации и её флаг. Ни названия анимки, ни библиотеки, где эта анимация хранится.
 

winrare

Новичок
75
1
Йобанный врот билять. PlayerSync только есть ид анимации и её флаг. Ни названия анимки, ни библиотеки, где эта анимация хранится.
Я знаю, что есть в PlayerSync. Я же говорю, я не могу получить свой PlayerSync. Я его должен САМ заполнить и отправить серверу. И отправлять примерно раз в 40мс. Единственный способ узнать какую анимацию мне присвоил сервер, это получить РПЦ.