Доступ к готовым решениям

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Мануал FakePing с помощью Pawn.RakNet

KatranLife

Изучающий
Пользователь
Регистрация
15 Июл 2014
Сообщения
900
Лучшие ответы
0
Репутация
284
Описание: выставляем любой пинг, определенным игрокам. (В данном случае только 0 иду)

Зависимости:

Немного предыстории: пытался перезаписать данные в пакете, но почему-то не сработал данный метод, пришлось заново полностью заполнять пакет.

Код:
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
 
Последнее редактирование:
Сверху Снизу