 |
|

10.03.2016, 21:35
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Сообщение от Woofing Giraffe
Код:
Код:
bool CALLBACK incomingRPC(stRakNetHookParams *params)
{
if (params->packetId == ScriptRPCEnumeration::RPC_ScrSetPlayerColor)
{
WORD i;
DWORD Color;
params->bitStream->ResetReadPointer();
params->bitStream->Read(i);
params->bitStream->Read(Color);
params->bitStream->ResetReadPointer();
if (Color == 0xFFFFFF01)
{
params->bitStream->ResetWritePointer();
params->bitStream->Write(i);
params->bitStream->Write(0xFF000001);
}
};
return true;
};
Проблема в том что цвет ника меняет только в табе, а в игре цвет остается тем же.
Ты не передаешь серверу данные о цвете, только он тебе.
|
|
|

10.03.2016, 21:55
|
|
Участник форума
Регистрация: 13.07.2014
Сообщений: 164
С нами:
6227977
Репутация:
83
|
|
сделал какую-то парашу, при попытке отправить ID_WEAPONS_UPDATE игра вылетает. Не совсем понимаю почему, объясните.
Код:
Код:
actor_info *self = SF->getGame()->actorInfoGet(-1, ACTOR_ALIVE);
weapon gun = self->weapon[self->weapon_slot];
stWeaponsUpdate weapUpd;
memset(&weapUpd, 0, sizeof(stWeaponsUpdate));
weapUpd.iTargetID = std::stoi(param);
weapUpd.slot = self->weapon_slot;
weapUpd.weapon = gun.id;
weapUpd.ammo = gun.ammo;
BitStream bsWeapUpd;
bsWeapUpd.Write((BYTE)ID_WEAPONS_UPDATE);
bsWeapUpd.Write((PCHAR)&weapUpd, sizeof(stWeaponsUpdate));
SF->getRakNet()->SendPacket(&bsWeapUpd);
|
|
|

10.03.2016, 22:13
|
|
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами:
6603505
Репутация:
183
|
|
Сообщение от Tray228
Помогите ребят, поставил на ноутбук Visual Studio 2013, а тут выдает 2 ошибки

тебе необходимо установить microsoft visual c++ redistributable 2015
|
|
|

10.03.2016, 22:13
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
weapUpd.iTargetID = std::stoi(param);
Вполне тут может быть краш.
|
|
|

10.03.2016, 22:16
|
|
Постоянный
Регистрация: 14.06.2015
Сообщений: 402
С нами:
5744580
Репутация:
28
|
|
Сообщение от Dark_Knight
Ты не передаешь серверу данные о цвете, только он тебе.
В смысле я должен эмулировать принятие пакета?
|
|
|

10.03.2016, 22:18
|
|
Участник форума
Регистрация: 13.07.2014
Сообщений: 164
С нами:
6227977
Репутация:
83
|
|
Сообщение от Dark_Knight
weapUpd.iTargetID = std::stoi(param);
Вполне тут может быть краш.
Привел к uint16_t ничего не поменялось, не понимат.
Структуру ID_WEAPONS_UPDATE вроде правильно переписал. Вот если что.
Код:
Код:
struct stWeaponsUpdate
{
uint16_t iTargetID;
uint8_t slot;
uint8_t weapon;
int16_t ammo;
};
UPD: Я короче в другом месте где-то обосрался, хотя до этого тестил онли ID_WEAPONS_UPDATE и вылетало. Жопой ошибки правлю походу.
|
|
|

10.03.2016, 22:32
|
|
Участник форума
Регистрация: 09.03.2015
Сообщений: 218
С нами:
5884065
Репутация:
0
|
|
Сообщение от SR_team
тебе необходимо установить microsoft visual c++ redistributable 2015

|
|
|

10.03.2016, 23:59
|
|
Познавший АНТИЧАТ
Регистрация: 06.09.2014
Сообщений: 1,317
С нами:
6148765
Репутация:
168
|
|
|
|
|

11.03.2016, 00:22
|
|
Постоянный
Регистрация: 10.07.2015
Сообщений: 642
С нами:
5706781
Репутация:
43
|
|
Сообщение от SR_team
хех. Помню проснулся в понедельник, потому что мне снилось, что ты вокруг меня ходил и заебывал этой проблемой, и я решил проверить ее и если что пофиксить, написал код, и он оказался рабочим. Понимаешь, из-за того, что ты тут флудишь не существующей проблемой ты заебал меня даже во сне!
Вот кусок кода, он полностью рабочий, но себе ты его все равно не прикрутишь, ибо ему нужна последняя версия !MenuManager, которая еще не залита, и потому что это не весь код плагина.
C++:
Код:
struct
stConnectInfo
{
DWORD dwTimer
=
0
;
//TODO: прикрутить список серверов
}
ConnectInfo
;
void
RejTimer
(
)
{
if
(
ConnectInfo
.
dwTimer
==
0
)
return
;
if
(
ConnectInfo
.
dwTimer
>
GetTickCount
(
)
)
return
;
SF
->
getSAMP
(
)
->
getInfo
(
)
->
RestartGame
(
)
;
SF
->
getSAMP
(
)
->
getInfo
(
)
->
iGameState
=
GAMESTATE_WAIT_CONNECT
;
ConnectInfo
.
dwTimer
=
0
;
}
void
CALLBACK
Reconnect
(
int
KeyClicked
)
{
std
::
string nick
=
MENU
.
connects
->
InputBoxes
->
GetInputBoxText
(
0
)
;
if
(
nick
.
length
(
)
>
3
&&
nick
.
length
(
)
getSAMP
(
)
->
getPlayers
(
)
->
SetLocalPlayerName
(
nick
.
c_str
(
)
)
;
SF
->
getSAMP
(
)
->
disconnect
(
100
)
;
ConnectInfo
.
dwTimer
=
atoi
(
MENU
.
connects
->
InputBoxes
->
GetInputBoxText
(
1
)
.
c_str
(
)
)
*
1000
+
GetTickCount
(
)
;
}
void
ConnectsInit
(
)
{
MENU
.
connects
=
new
Menu
(
"Подключения"
,
-
1
,
-
1
,
500
,
200
,
0xDD202040
,
-
1
,
false
)
;
MENU
.
connects
->
Elements
->
AddElement
(
"Ник:"
,
5
,
5
,
NULL
)
;
MENU
.
connects
->
InputBoxes
->
AddInputBox
(
45
,
5
,
450
)
;
//MENU.connects->InputBoxes->SetInputBoxText(0, SF->getSAMP()->getPlayers()->pszLocalPlayerName);
MENU
.
connects
->
Elements
->
AddElement
(
"Задержка:"
,
5
,
25
,
NULL
)
;
MENU
.
connects
->
InputBoxes
->
AddInputBox
(
95
,
25
,
400
)
;
MENU
.
connects
->
InputBoxes
->
SetInputBoxText
(
1
,
"15"
)
;
MENU
.
connects
->
Elements
->
AddElement
(
"{0080FF}Реконнект"
,
5
,
40
,
Reconnect
)
;
}
C++:
Код:
struct
stConnectInfo
{
DWORD dwTimer
=
0
;
//TODO: прикрутить список серверов
}
ConnectInfo
;
// Для чего тут ConnecInfo? Это объявление структуры stConnectInfo?
|
|
|

11.03.2016, 10:09
|
|
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами:
6603505
Репутация:
183
|
|
Сообщение от AWRage
Для чего тут ConnecInfo? Это объявление структуры stConnectInfo?
да
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|