Крэшат сервер путем создания несуществующих объектов -
T.S - 08.03.2012
Здрасьте всем!
Такая вот проблемка нарисовалась: всё чаще стали заходить на сервер ламеры и крэшить игроков путем создания несуществующих объектов через какую-то программу.
Вопрос такой: как установить проверку на то, существует-ли объект?
Пробовал сделать так:
pawn Код:
public OnPlayerUpdate(playerid)
{
if(IsValidObject(objectid)) DestroyObject(objectid);
return 1;
}
Но тут же и ошибка: паблик не знает, что такое objectid
Да и вообще, будет-ли это работать?
Re: Крэшат сервер путем создания несуществующих объектов -
[Saint] - 08.03.2012
с чего вы взяли что крашит игроков из-за того, что "ламеры" создают не существующие объекты?
Re: Крэшат сервер путем создания несуществующих объектов -
TriskeliS - 08.03.2012
Сервер на 0.3с?
Re: Крэшат сервер путем создания несуществующих объектов -
Stepashka - 08.03.2012
Начнем с того что вообще принцип создания несуществующего объекта одним игроком у другого игрока невозможен.
Резонный вопрос почему, отвечаю: у sa-mp нет функций по созданию клиентских объектов, если игрок создаст у себя объект серверу будет глубоко на это посрать, нет такой команды создай на сервере объект который есть у меня, а если учесть, что синхронизацией игроков занимается сервер, то создание объекта у одного игрока никак не передаст этот объект другим игрокам. Так что в вашей проблеме есть один изъян, проблема не в объектах.
Re: Крэшат сервер путем создания несуществующих объектов -
T.S - 08.03.2012
Один из них сам сказал, что у них 2 способа: создание несуществующих компонентов на транспорт и создание несуществующих объектов. Пишет, что сам создал программу. Антикрэш путем создания несуществующих компонентов я установил, однако он продолжает создавать несуществующие объекты. Мотивов у него нет, использует прокси, поэтому решить проблему баном невозможно.
Re: Крэшат сервер путем создания несуществующих объектов -
Stepashka - 08.03.2012
Решите проблему мордобоем)))
Кстати про компоненты более реально, тут есть обратная связь. А вот про объекты чушь, тут направление только сервер -> клиент.
Re: Крэшат сервер путем создания несуществующих объектов -
T.S - 08.03.2012
Quote:
Originally Posted by Stepashka
Начнем с того что вообще принцип создания несуществующего объекта одним игроком у другого игрока невозможен.
Резонный вопрос почему, отвечаю: у sa-mp нет функций по созданию клиентских объектов, если игрок создаст у себя объект серверу будет глубоко на это посрать, нет такой команды создай на сервере объект который есть у меня, а если учесть, что синхронизацией игроков занимается сервер, то создание объекта у одного игрока никак не передаст этот объект другим игрокам. Так что в вашей проблеме есть один изъян, проблема не в объектах.
|
Логично. Спасибо за ответ.
Re: Крэшат сервер путем создания несуществующих объектов -
jhonyxakep - 08.03.2012
Quote:
Один из них сам сказал, что у них 2 способа: создание несуществующих компонентов на транспорт и создание несуществующих объектов. Пишет, что сам создал программу. Антикрэш путем создания несуществующих компонентов я установил, однако он продолжает создавать несуществующие объекты. Мотивов у него нет, использует прокси, поэтому решить проблему баном невозможно.
|
Серверу глобоко какать на все это. Он оперирует только id объектов, которые являются тупыми числами.
Я думаю он
1. либо скачал какую-то программку и сказал "ямегасуперкулхацкер написал программу"
2. Либо он нашел изъян только в вашем сервере.
Сейчас найти достаточно быстрый SOCKS прокси практически нереально, его по хорошему можно только самому развернуть. Не думаю, что у всех ума хватит на такое. Поэтому баньте его, пока у него тупо не закончатся проксики... Либо найдите общий язык, и под каким-либо предлогом спросите как он это делает.
Re: Крэшат сервер путем создания несуществующих объектов -
OKStyle - 09.03.2012
Quote:
Originally Posted by Stepashka
А вот про объекты чушь, тут направление только сервер -> клиент.
|
В САМПе есть некоторые ID объектов, которые без опкодов сразу вырубают сервак (мгновенно). Хоть общий объект, хоть для игрока. Воможно используется такой подход.
IsValidObject проверяет на существование объекта на сервере, поэтому если его поставил читер, то он уже присутствует на сервере, разве нет? Поправьте меня, если не так.
Но всё же я думаю, что можно попробовать сделать так:
В
OnGameModeInit:
pawn Код:
SetTimer("CheckObjects", 50, 1);
И в
низ мода:
pawn Код:
forward CheckObjects();
public CheckObjects()
{
for(new i; i < MAX_OBJECTS; i++)
{
if(!IsValidObject(i)) DestroyObject(i);
}
}
Т.к. если в OnPlayerUpdate ставить, будет грубо говоря MAX_PLAYERS потоков проверки.
Re: Крэшат сервер путем создания несуществующих объектов -
Stepashka - 09.03.2012
Quote:
Originally Posted by OKStyle
IsValidObject проверяет на существование объекта на сервере, поэтому если его поставил читер, то он уже присутствует на сервере, разве нет? Поправьте меня, если не так.
|
прочитай мой пост, нельзя создать объект на сервере со стороны клиента.