- Регистрация
- 15 Июл 2014
- Сообщения
- 900
- Лучшие ответы
- 0
- Репутация
- 284
Описание: выставляем любой пинг, определенным игрокам. (В данном случае только 0 иду)
Зависимости:
Немного предыстории: пытался перезаписать данные в пакете, но почему-то не сработал данный метод, пришлось заново полностью заполнять пакет.
Код:
П.с Если есть идеи упросить код, или нью метод перезаписи пакета, оставляйте код в коментах. Но вышло реализовать это только так.
Спасибо за помощь urShadow
Зависимости:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Немного предыстории: пытался перезаписать данные в пакете, но почему-то не сработал данный метод, пришлось заново полностью заполнять пакет.
Код:
PHP:
#define RPC_UpdateScorePingIP (155)
new FakePing = 1;
new playerRakNetScore[MAX_PLAYERS];
new playerRakNetPing[MAX_PLAYERS];
ORPC:RPC_UpdateScorePingIP(playerid, BitStream:bs)
{
new bytes;
BS_GetNumberOfBytesUsed(bs, bytes);
for(new i = (bytes / 10) - 1; i >= 0; i--)
{
new otherid, score, ping;
BS_ReadValue(bs, PR_UINT16, otherid, PR_INT32, score, PR_UINT32, ping);
if(!IsPlayerConnected(otherid)) continue;
playerRakNetScore[otherid] = score;
playerRakNetPing[otherid] = ping;
}
new BitStream:stream = BS_New();
for(new otherid = GetPlayerPoolSize(); otherid >= 0; otherid--)
{
if(!IsPlayerConnected(otherid)) continue;
BS_WriteValue(stream, PR_UINT16, otherid, PR_INT32, playerRakNetScore[otherid], PR_UINT32, otherid ? playerRakNetPing[otherid] : FakePing);
}
BS_RPC(stream, playerid, 155, PR_LOW_PRIORITY, PR_RELIABLE_ORDERED);
BS_Delete(stream);
return 0;
}
Спасибо за помощь urShadow
Последнее редактирование: