Русское сообщество по скриптингу

Хук функции движка

Все вопросы по скриптингу для Metamod, помощь в редактировании плагинов.
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для
Metamod.


Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [pawn], в противном случае, если тег [pawn] не отображает ваш код, можно использовать тег [code].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник плагина.

Хук функции движка

Сообщение Polarhigh » 18 дек 2013, 19:59

Не могу разобраться, как нужно это делать
Смотрел исходники dproto, mmtimer, orpheu, но общая картина так и не сложилась -_-
Если кто занимался этим подскажите пожалуйста

имею в виду вызов своей функции, вместо оригинальной'
ps конкретно NET_SendLong нужно хукнуть
Последний раз редактировалось Polarhigh 18 дек 2013, 22:49, всего редактировалось 1 раз.
Аватара пользователя
Polarhigh
 
Сообщения: 1006
Зарегистрирован: 04 май 2010, 17:41
Благодарил (а): 131 раз.
Поблагодарили: 388 раз.
Опыт программирования: Больше трех лет

Re: Хук функции движка

Сообщение Chuvi » 18 дек 2013, 22:39

Попробуй исходники flood_blocker-a почитать. Там, вроде, всё более чем понятно.
Плагинами на заказ не занимаюсь.
Своих дел хватает.
Аватара пользователя
Chuvi
Модератор
 
Сообщения: 2253
Зарегистрирован: 24 ноя 2011, 08:03
Благодарил (а): 127 раз.
Поблагодарили: 562 раз.

Re: Хук функции движка

Сообщение Polarhigh » 18 дек 2013, 23:05

Chuvi, спасибо
эх, надеялся что не придётся разбираться в подобных штуках)
Код: Выделить всё
      mov eax, sv_connect_client.address
      mov eax, dword ptr [eax+18]
      mov net_from, eax

      call IsConnectionAllowed
      test eax, eax
      jnz good

      retn

good:   push ebp
      mov ebp, esp
      sub esp, 0E90h

      mov ecx, sv_connect_client.address
      add ecx, 9
      jmp ecx
Аватара пользователя
Polarhigh
 
Сообщения: 1006
Зарегистрирован: 04 май 2010, 17:41
Благодарил (а): 131 раз.
Поблагодарили: 388 раз.
Опыт программирования: Больше трех лет

Re: Хук функции движка

Сообщение Chuvi » 19 дек 2013, 09:03

trofian, можешь подробнее объяснить, что ты хочешь сделать. Не исключено, что в ассемблер лезть тебе вообще не придётся.
Плагинами на заказ не занимаюсь.
Своих дел хватает.
Аватара пользователя
Chuvi
Модератор
 
Сообщения: 2253
Зарегистрирован: 24 ноя 2011, 08:03
Благодарил (а): 127 раз.
Поблагодарили: 562 раз.

Re: Хук функции движка

Сообщение Polarhigh » 19 дек 2013, 14:02

Chuvi, хочу менять ответ (ну там карта, название сервера, кол-во игроков, мб что-то своё добавить) на запрос SourceEngineQuery в зависимости от кого пришёл запрос, т.е. фильтр по ip

мне тут бос посоветовал эту вещь и помог уже с кодом
Вы должны зарегистрироваться, чтобы видеть ссылки. ... /chooker.h
Аватара пользователя
Polarhigh
 
Сообщения: 1006
Зарегистрирован: 04 май 2010, 17:41
Благодарил (а): 131 раз.
Поблагодарили: 388 раз.
Опыт программирования: Больше трех лет

Re: Хук функции движка

Сообщение Asmodai » 19 дек 2013, 15:12

Нехорошо пользователей мониторингов обманывать. Да и NET_SendLong тут не при чем, этот запрос вообще не движок обрабатывает.
Аватара пользователя
Asmodai
Адмирал
 
Сообщения: 466
Зарегистрирован: 24 фев 2011, 20:48
Благодарил (а): 0 раз.
Поблагодарили: 393 раз.
Языки программирования: Counter-Strike 1.6

Re: Хук функции движка

Сообщение Polarhigh » 19 дек 2013, 15:43

Asmodai, я так и предположил, когда в движке нашел функцию a2s_info (или как там, сервер инфо, не помню уже), которая нигде не вызывается
я хотел бы все же не обманывать мониторинги, а написать фикс, который будет отображать не стим игроков на новых билдах и добавить доп информацию в ответе для своего мониторинга

так же можно писать забаненым пользователям в названии сервера, когда бан истекает, хотя может это и не совсем хорошая идея
Аватара пользователя
Polarhigh
 
Сообщения: 1006
Зарегистрирован: 04 май 2010, 17:41
Благодарил (а): 131 раз.
Поблагодарили: 388 раз.
Опыт программирования: Больше трех лет

Re: Хук функции движка

Сообщение 6a6kin » 19 дек 2013, 22:19

Можно без ассемблера. Там ниже для линукса код сишный, который можно так же использовать для винды.
На заказ не пишу.
Аватара пользователя
6a6kin
Скриптер
 
Сообщения: 332
Зарегистрирован: 09 мар 2010, 16:40
Благодарил (а): 38 раз.
Поблагодарили: 278 раз.

Re: Хук функции движка

Сообщение Asmodai » 20 дек 2013, 09:53

Непросто для первого раза. Для своего мониторинга регай модовую pfnConnectionlessPacket и добавь туда свою команду. Только учти, что часть первых символов типа 'T' занята движком и туда не дойдет. Показ времени бана для стимид не сделаешь, толку мало. А фикс ща погляжу, его можно вообще заинлайнить.
Аватара пользователя
Asmodai
Адмирал
 
Сообщения: 466
Зарегистрирован: 24 фев 2011, 20:48
Благодарил (а): 0 раз.
Поблагодарили: 393 раз.
Языки программирования: Counter-Strike 1.6


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4