Интересно - кто как боролся с такой проблемой ? И вообще - какие способы борьбы с этим траблом существуют ?
balrog
Oct 18 2004, 14:24
Поесни зелёному, как етот чит работает, мне тоже в будущем, возможно надо буднт с ним боротся
Клемент Астилон
Oct 18 2004, 15:40
В простонародье называеться "Альтануться".
Когда в сложной ситуации игрок быстро выходит из игры.
Ну не совсем... можно альтануться во время стычки с сильным монстром или игроком, чтобы избежать смерти.. Я говорю за случаи, когда игрок умер или практически умер и он выходит из игры, а когда заходит - то, чудесным образом, у него восстанавливаются хелы.. Таким образом можно также снять эффекты заклинаний, восстановить кол-во заклинаний, кастуемых за день и тд...
aleVandal
Oct 18 2004, 18:20
Хиты и количество кастов в день можно сохранять в бд в OnClientLeave а при заходе чара восстанавливать.
Пасиб за наводку, уже сделал , только мелкая проблема - когда игрок заходит первый раз - у него нет в записи в БД по поводу его хелов и прочего и когда игрок начинает играть - он заходит на серв мертвым

Что самое интересное - сделал условие, что если игрок находится в стартовой локации при входе на серв - проверка по БД не осуществляется, а оно какого-то рожна выдает 1 хел, если начинаешь играть
QUOTE (Raven @ Oct 19 2004, 10:01) |
Пасиб за наводку, уже сделал , только мелкая проблема - когда игрок заходит первый раз - у него нет в записи в БД по поводу его хелов и прочего и когда игрок начинает играть - он заходит на серв мертвым Что самое интересное - сделал условие, что если игрок находится в стартовой локации при входе на серв - проверка по БД не осуществляется, а оно какого-то рожна выдает 1 хел, если начинаешь играть |
Если нет записи в ДБ - значение равно 0. А 0 хитов у персонажа не бывает, бывает 1 или -1. Так что проверяй - если 0, то просто ничего не делать.
По поводу альтования - надо писать "интелектуальную" систему. Если часто выходит\заходит - на 3-5 раз делать с ним что-то нехорошее.
Но самый "признаный" вариант - по аналогу с другими MMORG - оставлять игрока в игре еще секунд 30 после выхода. Это чтобы из боя не убегали. В НВН можно сделать copy объекта - игрока, кто-то вроде даже делал.
Хм.. это каК ? Создать при выходе NPC с именем чара и потом зафикисировать его хелы через 30 секунд?
Движок - он "тупой". Он идентифицирует игрока по акку и имени. К примеру он не отличает игрока от ДМ-а с того-же акка и с таким-же именем.
Но хитпоинты и состояние спеллов записывается прямо в .bic файл игрока и почему вместо восстановления до сих пор просто игнорируется - загадка.
QUOTE (Raven @ Oct 20 2004, 14:01) |
Хм.. это каК ? Создать при выходе NPC с именем чара и потом зафикисировать его хелы через 30 секунд? |
Все проще. Сделать CopyObject на игрока и появится копия. (Правда надо проверить, будет ли это работать на таком глючном событии как onClientLeave). Если копию убили (т.е. игрок выбегал из боя) - запомнить это и при входе игрока отправить куда надо.
virusman
Oct 22 2004, 13:58
Кстати, копия игрока действует по тем же AI-скриптам, как все мобы или у них все скрипты отстутсвуют?
Ночной зверек
Oct 22 2004, 16:21
по тем же
Не все так просто - я когда реализовывал на Сиале такую систему, столкнулся с большим количеством трудностей. Где-то на форуме Кормира местные "отцы" говорили, что все можно сделать гораздо проще: как на Темпларе - каким-то образом (внешней программой) удерживать игрока на сервере еще 30 сек, но я не владею такой технологией.
По поводу создания куклы я могу вкратце обрисовать трудности:
1 Надо периодически запоминать положение игрока, т.к. во время выхода положение уже неопределенное
2 Необходимо в какой-то переменной запоминать аккаунт игрока при входе в игру, т.к. при выходе он уже недоступен.
3 Необходимо придусмотреть защиту от обворовывания куклы и ее дисарма.
4 АИ у куклы нет - лично я обходил эту проблему создавая невидимый плэйсэйбл, который и управлял куклой.
5 Будут проблемы с фракциями куклы - т.к. она НПС, то если присвоить ей стандартную фракцию, то после нападения на нее, вся фракция становится враждебной к игроку.
6 Проблема с НоПВП - если на игрока в этой зоне напасть нельзя, то на куклу - можно.
Да... игроки вам спасибо не скажут.

Это точно, ибо лаги еще никто не отменял.
Вариант "простой"

Считаем сколько раз игрок выходит из игры во время боя (для игрока есть ID, статус боя можно получить - только надо проверить что он работает на onLeave)
Если за определенный промежуток времене число выходов превысило Н - убиваем
А если у игрока лаги или что-то с коннектом? Или винда подвисла? Да мало ли... Чтобы я потом выслушивал "У меня лаги были, я пытался играть, а потом когда зашел - левел понизился"... неее, лучше
Можно не убивать, а переносить куда-нить далеко-далеко. Где нет мобов и никто не убивает
И так чтобы до мобов было идти долго-долго
QUOTE (_kaa_ @ Oct 25 2004, 12:50) |
Можно не убивать, а переносить куда-нить далеко-далеко. Где нет мобов и никто не убивает И так чтобы до мобов было идти долго-долго  |
Это место называется фуга

Нет... это не простой вариант, это топорный вариант
Lazy Ranma
Oct 26 2004, 12:31
Можно сложно: если за прошлый и этот раунды нанесено дамаджа в 2 раза больше, чем осталось хитов, то киляем альтера при следующем входе. =)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.