Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Модификации ядра > Запросы

Важная информация

Запросы Запросы

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.04.2010, 16:14   #1
Hantet
Ученый
 
Аватар для Hantet
 
Регистрация: 07.03.2010
Адрес: Санкт-Петербург
Сообщений: 163
Сказал(а) спасибо: 124
Поблагодарили 111 раз(а) в 52 сообщениях
Hantet Скоро придёт к известностиHantet Скоро придёт к известности
Отправить сообщение для Hantet с помощью ICQ
Сообщение [Mod] Anti-Farm

Мод для MaNGOS: AntiFarm.

Данный мод не позволяет "сливать" хонор с помощью игрока-болванки (ч/р второе окно).
В случае обнаружения потенциального "сливера" - обнуляет ему весь хонор и выкидывает из игры (эти же действия происходят с игроком-болванкой).

Система реагирует в том случае, если игрок убивает подряд одну и ту же цель более 9 раз за 10 минут. В случае, если превышается время реагирования - все счётчики обнуляются и сканирование начинается заного.

Патч подогнан под последнюю ревизию чистого MaNGOS (rev. 9851).
Вложения
Тип файла: rar AntiFarm.rar (1.3 Кб, 54 просмотров)
__________________
Галя: Вот почему когда я пуск делаю и по ярлыку две то запускается, а если вот мне к примеру надо не из пуска её то ничего и в красном показывает, а надо ведь чтобы квадратик жёлтенький открывал и там 3 кнопки должно быть?
admin: О Боже!
admin: Кто-нибудь, пришлите ко мне уборщицу, пусть мой мозг со стен и потолка отмоет

Последний раз редактировалось Hantet; 09.05.2010 в 17:48.
Hantet вне форума   Ответить с цитированием
7 пользователя(ей) сказали cпасибо:
Feel the Power (22.06.2010), Lawliet (01.05.2010), Mr.Grom (14.05.2010), Wish (09.05.2010)
Старый 29.04.2010, 17:36   #2
Insider42
Ученый
 
Регистрация: 15.03.2010
Сообщений: 261
Сказал(а) спасибо: 84
Поблагодарили 257 раз(а) в 96 сообщениях
Insider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от Hantet Посмотреть сообщение
P.s. Время ожидание у спирит хилера у меня снято.
Тогда зачем изобретать велосипед?
Insider42 вне форума   Ответить с цитированием
Старый 29.04.2010, 17:58   #3
zergtmn
MaNGOS Dev
 
Аватар для zergtmn
 
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
zergtmn Обладатель прекрасной аурыzergtmn Обладатель прекрасной ауры
По умолчанию

Можно кастовать на игрока http://ru.wowhead.com/spell=2479 после реса (везде, за исключением бг и инстов)
zergtmn вне форума   Ответить с цитированием
Старый 29.04.2010, 21:35   #4
Insider42
Ученый
 
Регистрация: 15.03.2010
Сообщений: 261
Сказал(а) спасибо: 84
Поблагодарили 257 раз(а) в 96 сообщениях
Insider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от zergtmn Посмотреть сообщение
Можно кастовать на игрока http://ru.wowhead.com/spell=2479 после реса (везде, за исключением бг и инстов)
Обходится "право-кликом" на баф. Просто будет больше геммора двухоконщикам
Insider42 вне форума   Ответить с цитированием
Старый 29.04.2010, 22:21   #5
zergtmn
MaNGOS Dev
 
Аватар для zergtmn
 
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
zergtmn Обладатель прекрасной аурыzergtmn Обладатель прекрасной ауры
По умолчанию

Цитата:
Сообщение от Insider42 Посмотреть сообщение
Обходится "право-кликом" на баф. Просто будет больше геммора двухоконщикам
Можно сделать, чтобы он считался дебафом
zergtmn вне форума   Ответить с цитированием
Старый 30.04.2010, 02:13   #6
Hantet
Ученый
 
Аватар для Hantet
 
Регистрация: 07.03.2010
Адрес: Санкт-Петербург
Сообщений: 163
Сказал(а) спасибо: 124
Поблагодарили 111 раз(а) в 52 сообщениях
Hantet Скоро придёт к известностиHantet Скоро придёт к известности
Отправить сообщение для Hantet с помощью ICQ
По умолчанию

Спасибо за идеи всем, но перед о мной стоит конкретная задача. Я пытаюсь сделать так, чтобы метод слива хонора не просто не работал, а чтобы за него ещё и наказание давалось (например бан).

Я сейчас соберу ядро в этом варианте и гляну что выйдет. Примерно я представляю будущие проблемы, но хочу это видеть в деле.
__________________
Галя: Вот почему когда я пуск делаю и по ярлыку две то запускается, а если вот мне к примеру надо не из пуска её то ничего и в красном показывает, а надо ведь чтобы квадратик жёлтенький открывал и там 3 кнопки должно быть?
admin: О Боже!
admin: Кто-нибудь, пришлите ко мне уборщицу, пусть мой мозг со стен и потолка отмоет
Hantet вне форума   Ответить с цитированием
Старый 30.04.2010, 09:09   #7
Null
Гость
 
Сообщений: n/a
По умолчанию

Тоже поступила такая жалоба. Выдача бана/кика-это неправильно.
Надо, чтобы при убийстве одной и той же цели (читайте-игрока) 2ой раз давало в 2 раза меньше хонора, в 3ий- в 4 раза, более 3х- вообще не давало, и чтобы всё это действовало в течение 30 минут
Пытался реализовать через получение гуид игрока и помещением его в массив, ничего не получилось.
  Ответить с цитированием
Старый 30.04.2010, 09:40   #8
Insider42
Ученый
 
Регистрация: 15.03.2010
Сообщений: 261
Сказал(а) спасибо: 84
Поблагодарили 257 раз(а) в 96 сообщениях
Insider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от Null Посмотреть сообщение
Надо, чтобы при убийстве одной и той же цели (читайте-игрока) 2ой раз давало в 2 раза меньше хонора, в 3ий- в 4 раза, более 3х- вообще не давало, и чтобы всё это действовало в течение 30 минут
Так это уже было в одном из патчей близов и работало в мангосе, копайте исходники старых ревизий.
Insider42 вне форума   Ответить с цитированием
Старый 30.04.2010, 10:59   #9
Null
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от Insider42 Посмотреть сообщение
Так это уже было в одном из патчей близов и работало в мангосе, копайте исходники старых ревизий.
Насколько старых?
  Ответить с цитированием
Старый 30.04.2010, 12:12   #10
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Null,
Кстати говоря, на офе эта система и сейчас присутствует, но начинает работать только после определенного количества убийств. А на ОЛО вообще за убийство цели в течении 3 минут после ее первого убийства не дается хонор.

P.S. Null, ревизия 5711. Если сильно надо - могу отобрать у одного хорошего человека аналогичный патч к последним ревизиям.
LordJZ вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
Hantet (30.04.2010)
Старый 30.04.2010, 12:28   #11
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию

Цитата:
Сообщение от LordJZ Посмотреть сообщение
А на ОЛО вообще за убийство цели в течении 3 минут после ее первого убийства не дается хонор.
Может используется какая-то аура/спелл для этого?
KiriX вне форума   Ответить с цитированием
Старый 30.04.2010, 13:00   #12
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от KiriX Посмотреть сообщение
Может используется какая-то аура/спелл для этого?
Да, используется, но номер спелла не дам. Потом сбегаю на озеро и посмотрю...
LordJZ вне форума   Ответить с цитированием
Старый 30.04.2010, 13:30   #13
Hantet
Ученый
 
Аватар для Hantet
 
Регистрация: 07.03.2010
Адрес: Санкт-Петербург
Сообщений: 163
Сказал(а) спасибо: 124
Поблагодарили 111 раз(а) в 52 сообщениях
Hantet Скоро придёт к известностиHantet Скоро придёт к известности
Отправить сообщение для Hantet с помощью ICQ
По умолчанию

Цитата:
Сообщение от LordJZ Посмотреть сообщение
Null,
Кстати говоря, на офе эта система и сейчас присутствует, но начинает работать только после определенного количества убийств. А на ОЛО вообще за убийство цели в течении 3 минут после ее первого убийства не дается хонор.

P.S. Null, ревизия 5711. Если сильно надо - могу отобрать у одного хорошего человека аналогичный патч к последним ревизиям.
LordJZ, отбери пожалуйста .
Я вот порылся сейчас в исходниках 5711 (привет, SVN). Нашёл в Player.cpp какие-то зачатки этого мода (всего одну переменную). Продолжу только вечером.
__________________
Галя: Вот почему когда я пуск делаю и по ярлыку две то запускается, а если вот мне к примеру надо не из пуска её то ничего и в красном показывает, а надо ведь чтобы квадратик жёлтенький открывал и там 3 кнопки должно быть?
admin: О Боже!
admin: Кто-нибудь, пришлите ко мне уборщицу, пусть мой мозг со стен и потолка отмоет

Последний раз редактировалось Hantet; 30.04.2010 в 14:38.
Hantet вне форума   Ответить с цитированием
Старый 30.04.2010, 21:21   #14
selector
Пользователь
 
Аватар для selector
 
Регистрация: 12.03.2010
Сообщений: 64
Сказал(а) спасибо: 23
Поблагодарили 10 раз(а) в 5 сообщениях
selector На верном пути
По умолчанию

Данный мод не распространяется на БГ?
Например на том-же ВСГ можно убить явно больше 9раз за 10мин одного и того же чара(все мы знаем, что иногда бывают ПРО с одной стороны и нубы с другой).

Если игрок создал пати(в 3,5,10 окок). Эти несколько "нехороших" человек качают хонор убивая одного по очереди. Проверку стоит сделать.
selector вне форума   Ответить с цитированием
Старый 30.04.2010, 21:31   #15
Lawliet
Новичок
 
Аватар для Lawliet
 
Регистрация: 16.03.2010
Адрес: Россия/г.Ижевск
Сообщений: 14
Сказал(а) спасибо: 4
Поблагодарили 3 раз(а) в 3 сообщениях
Lawliet На верном пути
Отправить сообщение для Lawliet с помощью ICQ
Лампочка

Цитата:
Сообщение от Hantet Посмотреть сообщение
Реализовать у меня почти получилось, проблема в том, что нужно реализовать таймер (на примере ScriptDev2 скриптов у меня не получилось).
Кусок кода взятый с Relaxed Anticheat:

PHP код:
+    uint32 Anti_TeleTimeDiff=plMover time(NULL) - plMover->Anti__GetLastTeleTime() : time(NULL);
+    static const 
uint32 Anti_TeleTimeIgnoreDiff=sWorld.GetMvAnticheatIgnoreAfterTeleport();
+    if (
plMover && (plMover->m_transport == 0) && sWorld.GetMvAnticheatEnable() &&
+        
GetPlayer()->GetSession()->GetSecurity() <= sWorld.GetMvAnticheatGmLevel() &&
+        
GetPlayer()->GetMotionMaster()->GetCurrentMovementGeneratorType()!=FLIGHT_MOTION_TYPE &&
+        
Anti_TeleTimeDiff>Anti_TeleTimeIgnoreDiff)
+    {
+        const 
uint32 CurTime=getMSTime();
+        if(
getMSTimeDiff(GetPlayer()->m_anti_lastalarmtime,CurTime) > sWorld.GetMvAnticheatAlarmPeriod())
+        {
+            
GetPlayer()->m_anti_alarmcount 0;
+        } 
Описание с конфига: Reset alarm-count after this milliseconds. (default 5000)

Думаю должно помочь, во вложении положил этот самый античит, реализация их таймера вполне подходит под ваши требования

Не обессудьте, если не так понял, в чем вам именно требовалась помощь...
Вложения
Тип файла: rar Relaxed Anti-Cheat.rar (8.1 Кб, 19 просмотров)
Lawliet вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Hantet (30.04.2010)
Старый 30.04.2010, 21:34   #16
Lawliet
Новичок
 
Аватар для Lawliet
 
Регистрация: 16.03.2010
Адрес: Россия/г.Ижевск
Сообщений: 14
Сказал(а) спасибо: 4
Поблагодарили 3 раз(а) в 3 сообщениях
Lawliet На верном пути
Отправить сообщение для Lawliet с помощью ICQ
По умолчанию

Я имел ввиду обнуление счетчика через нн"ое кол-во времени

if(getMSTimeDiff(GetPlayer()->m_anti_lastalarmtime,CurTime) > sWorld.GetMvAnticheatAlarmPeriod())
Lawliet вне форума   Ответить с цитированием
Старый 30.04.2010, 23:25   #17
Hantet
Ученый
 
Аватар для Hantet
 
Регистрация: 07.03.2010
Адрес: Санкт-Петербург
Сообщений: 163
Сказал(а) спасибо: 124
Поблагодарили 111 раз(а) в 52 сообщениях
Hantet Скоро придёт к известностиHantet Скоро придёт к известности
Отправить сообщение для Hantet с помощью ICQ
По умолчанию

Цитата:
Сообщение от selector Посмотреть сообщение
Данный мод не распространяется на БГ?
Например на том-же ВСГ можно убить явно больше 9раз за 10мин одного и того же чара(все мы знаем, что иногда бывают ПРО с одной стороны и нубы с другой).

Если игрок создал пати(в 3,5,10 окок). Эти несколько "нехороших" человек качают хонор убивая одного по очереди. Проверку стоит сделать.
Тут идёт подсчёт не "сколько раз одного и того же игрока убили за 10 минут", а "сколько раз одного и того же игрока убили подряд без убийств других целей"
__________________
Галя: Вот почему когда я пуск делаю и по ярлыку две то запускается, а если вот мне к примеру надо не из пуска её то ничего и в красном показывает, а надо ведь чтобы квадратик жёлтенький открывал и там 3 кнопки должно быть?
admin: О Боже!
admin: Кто-нибудь, пришлите ко мне уборщицу, пусть мой мозг со стен и потолка отмоет
Hantet вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
selector (01.05.2010)
Старый 01.05.2010, 00:39   #18
Lawliet
Новичок
 
Аватар для Lawliet
 
Регистрация: 16.03.2010
Адрес: Россия/г.Ижевск
Сообщений: 14
Сказал(а) спасибо: 4
Поблагодарили 3 раз(а) в 3 сообщениях
Lawliet На верном пути
Отправить сообщение для Lawliet с помощью ICQ
Радость Test-Patch

Player.cpp

PHP код:
        m_hasnosavekill 0;
    }
-    if(
m_haslimitkillonly 9)
-    
//if(m_haslimitkillonly > 9 && timer < 600) вот как-то так, наверное.
+    const uint32 CurTime getMSTime();
+    if(
m_haslimitkillonly 9)
+        
killer->antifarm_lastkilltime CurTime;
+
+    if(
getMSTimeDiff(killer->antifarm_lastkilltime,CurTime) < 600)
    {
        
ChatHandler(killer->GetSession()).PSendSysMessage("%s, you a fool! bye-bye!"killer->GetName());
        
killer->RemoveFromWorld();
        
dier->RemoveFromWorld();
    }

//-**-//

     ////////////////////Rest System/////////////////////
 
+    //- Anti-Farm System
+    antifarm_lastkilltime 0;   //last kill time 
Player.h

PHP код:
         ////////////////////Rest System/////////////////////
 
+        //- Anti-Farm System
+        uint32 antifarm_lastkilltime;     //last kill time 
Обещать, что это на 100% работоспособный вариант не могу
Проверить тоже к сожалению не могу, вариант, не вариант, но хоть что то...
Lawliet вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Hantet (01.05.2010)
Старый 01.05.2010, 00:41   #19
Hantet
Ученый
 
Аватар для Hantet
 
Регистрация: 07.03.2010
Адрес: Санкт-Петербург
Сообщений: 163
Сказал(а) спасибо: 124
Поблагодарили 111 раз(а) в 52 сообщениях
Hantet Скоро придёт к известностиHantet Скоро придёт к известности
Отправить сообщение для Hantet с помощью ICQ
По умолчанию

Цитата:
Сообщение от Lawliet Посмотреть сообщение
Player.cpp

PHP код:
        m_hasnosavekill 0;
    }
-    if(
m_haslimitkillonly 9)
-    
//if(m_haslimitkillonly > 9 && timer < 600) вот как-то так, наверное.
+    const uint32 CurTime getMSTime();
+    if(
m_haslimitkillonly 9)
+        
killer->antifarm_lastkilltime CurTime;
+
+    if(
getMSTimeDiff(killer->antifarm_lastkilltime,CurTime) < 600)
    {
        
ChatHandler(killer->GetSession()).PSendSysMessage("%s, you a fool! bye-bye!"killer->GetName());
        
killer->RemoveFromWorld();
        
dier->RemoveFromWorld();
    }

//-**-//

     ////////////////////Rest System/////////////////////
 
+    //- Anti-Farm System
+    antifarm_lastkilltime 0;   //last kill time 
Player.h

PHP код:
         ////////////////////Rest System/////////////////////
 
+        //- Anti-Farm System
+        uint32 antifarm_lastkilltime;     //last kill time 
Обещать, что это на 100% работоспособный вариант не могу
Проверить тоже к сожалению не могу, вариант, не вариант, но хоть что то...
Еее, вот он, заветный таймер!
Спасибо большущее, вроде собирается. Пойду проверю.
__________________
Галя: Вот почему когда я пуск делаю и по ярлыку две то запускается, а если вот мне к примеру надо не из пуска её то ничего и в красном показывает, а надо ведь чтобы квадратик жёлтенький открывал и там 3 кнопки должно быть?
admin: О Боже!
admin: Кто-нибудь, пришлите ко мне уборщицу, пусть мой мозг со стен и потолка отмоет
Hantet вне форума   Ответить с цитированием
Старый 01.05.2010, 00:43   #20
Lawliet
Новичок
 
Аватар для Lawliet
 
Регистрация: 16.03.2010
Адрес: Россия/г.Ижевск
Сообщений: 14
Сказал(а) спасибо: 4
Поблагодарили 3 раз(а) в 3 сообщениях
Lawliet На верном пути
Отправить сообщение для Lawliet с помощью ICQ
По умолчанию

Еще предлагаю немного локализировать сис сообщение, меняем кодировку на utf-8 без BOM и:

PHP код:
-        ChatHandler(killer->GetSession()).PSendSysMessage("%s, you a fool! bye-bye!"killer->GetName());

+        
ChatHandler(killer->GetSession()).PSendSysMessage("%s, Дурачье! Всего хорошего..."killer->GetName()); 
Lawliet вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Hantet (01.05.2010)
Старый 01.05.2010, 00:45   #21
Lawliet
Новичок
 
Аватар для Lawliet
 
Регистрация: 16.03.2010
Адрес: Россия/г.Ижевск
Сообщений: 14
Сказал(а) спасибо: 4
Поблагодарили 3 раз(а) в 3 сообщениях
Lawliet На верном пути
Отправить сообщение для Lawliet с помощью ICQ
По умолчанию

Да не за что, хочу помочь чем умею мне ведь и самому не помешает эта система, в рабочем виде, отпишите пожалуйста о результате, буду ждать
Lawliet вне форума   Ответить с цитированием
Старый 01.05.2010, 00:47   #22
Hantet
Ученый
 
Аватар для Hantet
 
Регистрация: 07.03.2010
Адрес: Санкт-Петербург
Сообщений: 163
Сказал(а) спасибо: 124
Поблагодарили 111 раз(а) в 52 сообщениях
Hantet Скоро придёт к известностиHantet Скоро придёт к известности
Отправить сообщение для Hantet с помощью ICQ
По умолчанию

Цитата:
Сообщение от Lawliet Посмотреть сообщение
Да не за что, хочу помочь чем умею мне ведь и самому не помешает эта система, в рабочем виде, отпишите пожалуйста о результате, буду ждать
Обязательно!

Возможно, даже сегодня смогу это сделать.
__________________
Галя: Вот почему когда я пуск делаю и по ярлыку две то запускается, а если вот мне к примеру надо не из пуска её то ничего и в красном показывает, а надо ведь чтобы квадратик жёлтенький открывал и там 3 кнопки должно быть?
admin: О Боже!
admin: Кто-нибудь, пришлите ко мне уборщицу, пусть мой мозг со стен и потолка отмоет
Hantet вне форума   Ответить с цитированием
Старый 01.05.2010, 01:13   #23
Lawliet
Новичок
 
Аватар для Lawliet
 
Регистрация: 16.03.2010
Адрес: Россия/г.Ижевск
Сообщений: 14
Сказал(а) спасибо: 4
Поблагодарили 3 раз(а) в 3 сообщениях
Lawliet На верном пути
Отправить сообщение для Lawliet с помощью ICQ
Подмигивание Идея

Цитата:
Сообщение от Lawliet Посмотреть сообщение
Еще предлагаю немного локализировать сис сообщение, меняем кодировку на utf-8 без BOM и:

PHP код:
-        ChatHandler(killer->GetSession()).PSendSysMessage("%s, you a fool! bye-bye!"killer->GetName());

+        
ChatHandler(killer->GetSession()).PSendSysMessage("%s, Дурачье! Всего хорошего..."killer->GetName()); 
Не корректно написал, правильно:
"Еще предлагаю немного локализировать сис сообщение, преобразуем кодировку у Player.cpp на utf-8 без BOM"

Еще предлагаю, если вариант рабочий, вынести временной коэффициент в конфиг:

if(getMSTimeDiff(killer->antifarm_lastkilltime,CurTime) < sWorld.GetFarmsTimerPeriod())

Возможно некоторые решат подстроить патч под себя, а менять всякий раз в исходниках и компилить не каждый захочет... Конечно возможно, что я ошибаюсь...

Последний раз редактировалось Lawliet; 01.05.2010 в 01:21. Причина: Дописывал мысль
Lawliet вне форума   Ответить с цитированием
Старый 01.05.2010, 14:35   #24
Hantet
Ученый
 
Аватар для Hantet
 
Регистрация: 07.03.2010
Адрес: Санкт-Петербург
Сообщений: 163
Сказал(а) спасибо: 124
Поблагодарили 111 раз(а) в 52 сообщениях
Hantet Скоро придёт к известностиHantet Скоро придёт к известности
Отправить сообщение для Hantet с помощью ICQ
Смех

Цитата:
Сообщение от Lawliet Посмотреть сообщение
Не корректно написал, правильно:
"Еще предлагаю немного локализировать сис сообщение, преобразуем кодировку у Player.cpp на utf-8 без BOM"

Еще предлагаю, если вариант рабочий, вынести временной коэффициент в конфиг:

if(getMSTimeDiff(killer->antifarm_lastkilltime,CurTime) < sWorld.GetFarmsTimerPeriod())

Возможно некоторые решат подстроить патч под себя, а менять всякий раз в исходниках и компилить не каждый захочет... Конечно возможно, что я ошибаюсь...
"А слона то мы и не заметили"...
Что писать в аргументах функции при её вызове?
Я нашёл там класс Victim, но что он точно значит и нужен ли именно он - вопрос.

Сейчас пойду рыться, может найду что. Вообщем, отпишусь.


Add:
Так, я включил голову и понял единственную истину.
Victim - это тот, кого убили.
Victim->GetOwner() - это тот, кто убил.
По моему так. Сейчас пойду пересоберу.

-----
Add2:
Lawliet, я решил время держать не в константе. Переменную определять в начале функции а уже изменять ей значение только при обнулённых счётчиках.
Кода я поудалял много, добавил таймер. Собрал...Вы не поверите, работает!
Я зашёл в 2 окна и начал сливать хонор (бонально - коммандой die), после 10 смертей, мне, как и было запланированно, написалось в чат сообщение мол я такой-сякой сливер паршивый, выкинуло и меня и мою жертву. Когда я зашёл - хонор обнулился и я был мёртв. Идеально! После чего попробывал убивать жертву с большим промежутком времени (более 1 минуты за одно убийство) - всё опять гладко, меня не выкинуло при 15 убийств.

Завтра весь день буду занят, вечером соберу код в один патч-файл и выложу.
__________________
Галя: Вот почему когда я пуск делаю и по ярлыку две то запускается, а если вот мне к примеру надо не из пуска её то ничего и в красном показывает, а надо ведь чтобы квадратик жёлтенький открывал и там 3 кнопки должно быть?
admin: О Боже!
admin: Кто-нибудь, пришлите ко мне уборщицу, пусть мой мозг со стен и потолка отмоет

Последний раз редактировалось Hantet; 02.05.2010 в 00:26.
Hantet вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Старый 02.05.2010, 14:05   #25
Lawliet
Новичок
 
Аватар для Lawliet
 
Регистрация: 16.03.2010
Адрес: Россия/г.Ижевск
Сообщений: 14
Сказал(а) спасибо: 4
Поблагодарили 3 раз(а) в 3 сообщениях
Lawliet На верном пути
Отправить сообщение для Lawliet с помощью ICQ
По умолчанию

Цитата:
Сообщение от Hantet Посмотреть сообщение
"Lawliet, я решил время держать не в константе. Переменную определять в начале функции а уже изменять ей значение только при обнулённых счётчиках.
Кода я поудалял много, добавил таймер. Собрал...Вы не поверите, работает!
Я зашёл в 2 окна и начал сливать хонор (бонально - коммандой die), после 10 смертей, мне, как и было запланированно, написалось в чат сообщение мол я такой-сякой сливер паршивый, выкинуло и меня и мою жертву. Когда я зашёл - хонор обнулился и я был мёртв. Идеально! После чего попробывал убивать жертву с большим промежутком времени (более 1 минуты за одно убийство) - всё опять гладко, меня не выкинуло при 15 убийств.

Завтра весь день буду занят, вечером соберу код в один патч-файл и выложу.
Это очень радует, жду не дождусь кода
Lawliet вне форума   Ответить с цитированием
Старый 03.05.2010, 22:58   #26
Dragon
Новичок
 
Регистрация: 07.03.2010
Сообщений: 22
Сказал(а) спасибо: 33
Поблагодарили 2 раз(а) в 2 сообщениях
Dragon На верном пути
По умолчанию

Цитата:
Сообщение от Hantet Посмотреть сообщение
После чего попробывал убивать жертву с большим промежутком времени (более 1 минуты за одно убийство) - всё опять гладко, меня не выкинуло при 15 убийств.
Что-то мне подсказывает, что делать временные промежутки смогут и фармеры... Всего минуту. Или я чего-то не понял?
И что будет, если убить 9 раз подряд жертву, потом сделать паузу больше минуты (глотнуть чая/сходить в туалет/etc) и снова вернуться к своему "бравому" делу?

Последний раз редактировалось Dragon; 03.05.2010 в 23:00.
Dragon вне форума   Ответить с цитированием
Старый 04.05.2010, 00:13   #27
Hantet
Ученый
 
Аватар для Hantet
 
Регистрация: 07.03.2010
Адрес: Санкт-Петербург
Сообщений: 163
Сказал(а) спасибо: 124
Поблагодарили 111 раз(а) в 52 сообщениях
Hantet Скоро придёт к известностиHantet Скоро придёт к известности
Отправить сообщение для Hantet с помощью ICQ
По умолчанию

Цитата:
Сообщение от Dragon Посмотреть сообщение
Что-то мне подсказывает, что делать временные промежутки смогут и фармеры... Всего минуту. Или я чего-то не понял?
И что будет, если убить 9 раз подряд жертву, потом сделать паузу больше минуты (глотнуть чая/сходить в туалет/etc) и снова вернуться к своему "бравому" делу?
Предыдущие убийства сохраняются не минуту, а 10 минут.
Обойти можно будет если убить 9 раз подряд жертву (в принципе, минуты за 3 спокойно) и после этого 7+ минут отдыхать.

Система не реагирует если убивать подряд одну и ту же цель с промежутком чуть более 1 минуты (А такой расклад очень не продуктивен, т.к. 1 килл/мин это очень долго и практически не отличается от БГ. Следовательно смысла сливерам не будет подвергать себя опасности наказания (как минимум - обнуления хонора)).

Так же есть задумка создать таблицу в БД и каждый раз при обнаружении потенциального сливера заносить туда его аккаунт. При дальнейшей активности слива (скажем, от 3 раз) с этого аккаунта - давать бан.
__________________
Галя: Вот почему когда я пуск делаю и по ярлыку две то запускается, а если вот мне к примеру надо не из пуска её то ничего и в красном показывает, а надо ведь чтобы квадратик жёлтенький открывал и там 3 кнопки должно быть?
admin: О Боже!
admin: Кто-нибудь, пришлите ко мне уборщицу, пусть мой мозг со стен и потолка отмоет
Hantet вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Старый 08.05.2010, 23:24   #28
Hantet
Ученый
 
Аватар для Hantet
 
Регистрация: 07.03.2010
Адрес: Санкт-Петербург
Сообщений: 163
Сказал(а) спасибо: 124
Поблагодарили 111 раз(а) в 52 сообщениях
Hantet Скоро придёт к известностиHantet Скоро придёт к известности
Отправить сообщение для Hantet с помощью ICQ
По умолчанию

Всё доделал, проверил, почистил.
Подогнан под последнюю ревизию чистого мангоса (rev. 9851).

Вложения
Тип файла: rar AntiFarm.rar (1.3 Кб, 29 просмотров)
__________________
Галя: Вот почему когда я пуск делаю и по ярлыку две то запускается, а если вот мне к примеру надо не из пуска её то ничего и в красном показывает, а надо ведь чтобы квадратик жёлтенький открывал и там 3 кнопки должно быть?
admin: О Боже!
admin: Кто-нибудь, пришлите ко мне уборщицу, пусть мой мозг со стен и потолка отмоет

Последний раз редактировалось Hantet; 09.05.2010 в 17:49.
Hantet вне форума   Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
Lawliet (09.05.2010), Wish (09.05.2010), xex (10.05.2010)
Старый 09.05.2010, 15:37   #29
Morphau
Гость
 
Сообщений: n/a
По умолчанию

Здравствуйте, спасибо за патч, но когда и как вызов функции?
Спасибо и простите за мой язык, но я французский, я использую Google клевета.
  Ответить с цитированием
Старый 09.05.2010, 16:28   #30
Hantet
Ученый
 
Аватар для Hantet
 
Регистрация: 07.03.2010
Адрес: Санкт-Петербург
Сообщений: 163
Сказал(а) спасибо: 124
Поблагодарили 111 раз(а) в 52 сообщениях
Hantet Скоро придёт к известностиHantet Скоро придёт к известности
Отправить сообщение для Hantet с помощью ICQ
По умолчанию

Прошу прощения
Файл изменил.

Так и знал, что что-нибудь, да забуду!
__________________
Галя: Вот почему когда я пуск делаю и по ярлыку две то запускается, а если вот мне к примеру надо не из пуска её то ничего и в красном показывает, а надо ведь чтобы квадратик жёлтенький открывал и там 3 кнопки должно быть?
admin: О Боже!
admin: Кто-нибудь, пришлите ко мне уборщицу, пусть мой мозг со стен и потолка отмоет

Последний раз редактировалось Hantet; 09.05.2010 в 16:34.
Hantet вне форума   Ответить с цитированием
Старый 10.05.2010, 00:55   #31
xex
Пользователь
 
Регистрация: 08.03.2010
Сообщений: 47
Сказал(а) спасибо: 45
Поблагодарили 29 раз(а) в 13 сообщениях
xex На верном пути
По умолчанию

Цитата:
Сообщение от Hantet Посмотреть сообщение
Всё доделал, проверил, почистил.
Подогнан под последнюю ревизию чистого мангоса (rev. 9851).
Спасибо большое за патч!

Получил два краша, поэтому:
PHP код:
-   if(GetTypeId() == TYPEID_PLAYER && uVictim->GetTypeId() == TYPEID_PLAYER)
+   if (!
InBattleGround() && GetTypeId() == TYPEID_PLAYER && (uVictim) && uVictim->GetTypeId() == TYPEID_PLAYER)
       
HandleHasOneTargetForKill(uVictim->GetGUID(), GetGUID()); 
На всякий случай в void Player::HandleHasOneTargetForKill(uint64 pdier, uint64 pkiller):
PHP код:
   Player *killer sObjectMgr.GetPlayer(pkiller);
   
Player *dier sObjectMgr.GetPlayer(pdier);

+   if (!
killer || !dier)
+       return; 

Последний раз редактировалось xex; 10.05.2010 в 04:12.
xex вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Hantet (10.05.2010)
Старый 14.05.2010, 10:37   #32
Mr.Grom
Пользователь
 
Аватар для Mr.Grom
 
Регистрация: 08.03.2010
Сообщений: 43
Сказал(а) спасибо: 1
Поблагодарили 1 раз в 1 сообщении
Mr.Grom На верном пути
По умолчанию

Если после 8 киллов будет релог, killer и dier таймер обнулится?
Mr.Grom вне форума   Ответить с цитированием
Старый 21.06.2010, 23:36   #33
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

А почему не пойти по пути меньшего сопротивления?
Взять из базы с акками Ип и сравнить ИП того кто убил и того кого убили . Если одинаковые то бан.
Lordronn вне форума   Ответить с цитированием
Старый 22.06.2010, 00:04   #34
Feel the Power
Пользователь
 
Аватар для Feel the Power
 
Регистрация: 07.03.2010
Адрес: Беларусь, Минск
Сообщений: 58
Сказал(а) спасибо: 92
Поблагодарили 40 раз(а) в 17 сообщениях
Feel the Power Скоро придёт к известности
Отправить сообщение для Feel the Power с помощью ICQ
По умолчанию

А как же люди, играющие с одного ип? Братья/сестры или люди с одного модема?
Feel the Power вне форума   Ответить с цитированием
Старый 22.06.2010, 15:06   #35
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Тогда нужно брать ИП адреса убитого и убившего , и делать таймер , если в течении 10 минут они убили другого более 15 раз , и если они не на БГ , и если они не в рейдах(если рейд на столицу тогда реально убить одного и того же более 15 раз) то тогда бан
Lordronn вне форума   Ответить с цитированием
Старый 22.06.2010, 15:17   #36
NeatElves
YTDB Dev
 
Аватар для NeatElves
 
Регистрация: 06.03.2010
Сообщений: 259
Сказал(а) спасибо: 28
Поблагодарили 280 раз(а) в 136 сообщениях
NeatElves Как самоцвет среди гранитаNeatElves Как самоцвет среди гранитаNeatElves Как самоцвет среди гранита
По умолчанию

Чего вы к ип привязались, перечитайте свой пост вдумчиво, если разные - то убивайте на здоровье что-ли ? Просто без первой части(часть поста до первой запятой не имеет смысла)..))

Последний раз редактировалось NeatElves; 22.06.2010 в 15:19.
NeatElves вне форума   Ответить с цитированием
Старый 08.09.2010, 04:10   #37
blackmanos
Новичок
 
Регистрация: 22.03.2010
Сообщений: 11
Сказал(а) спасибо: 19
Поблагодарили 0 раз(а) в 0 сообщениях
blackmanos На верном пути
По умолчанию

Цитата:
Сообщение от Hantet Посмотреть сообщение
LordJZ, отбери пожалуйста .
Я вот порылся сейчас в исходниках 5711 (привет, SVN). Нашёл в Player.cpp какие-то зачатки этого мода (всего одну переменную). Продолжу только вечером.
Вообще-то в реве 5711 как раз таки систему ограничения на получение хонора удалили, она была по началу совестная с системой подсчета количество убитых игроков, и в 5711 ее снесли, а оставили только подсчет.
Появилась она в ядре гораздо раньше еще до 2864 ревы точно.
blackmanos вне форума   Ответить с цитированием
Старый 08.09.2010, 08:57   #38
MaS0n
Модератор
 
Регистрация: 09.03.2010
Адрес: dev/null
Сообщений: 126
Сказал(а) спасибо: 44
Поблагодарили 111 раз(а) в 47 сообщениях
MaS0n Скоро придёт к известностиMaS0n Скоро придёт к известности
Отправить сообщение для MaS0n с помощью ICQ
По умолчанию

До 2.4.0 на оффе была система под названием Honor Diminishing, принцип работы такой же как и у других диминишингов. А в 2.4.0 ее дропнули, близы заявили в блу посте, мол, мы научились отслеживать сливщиков и эта система более не нужна => дропнули в мангосе. А для некоторых случаев а-ля диминишинг были созданы ауры

Система эта чистый сервер-сайд, так что при желании можно восстановить
MaS0n вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MaNGOS под Cataclysm (разработка) KiriX Корзина 578 19.02.2013 18:38
[10821] Restore anti-cheating check work at buy item newsbot CMaNGOS Commits 0 04.12.2010 01:15
[git] Командная разработка Hantet Новичкам 3 06.07.2010 09:01
[patch/dev] Anti-Magic zone (Зона антимагии) Insider42 Патчи 5 23.06.2010 14:40
Глобальный FAQ (разработка) Konctantin Новичкам 6 14.03.2010 10:46


Текущее время: 04:55. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot