Перейти к содержанию
Авторизация  
MyPaBeu

Телепорт На Время

Рекомендуемые сообщения

добрый день уважаемые форумчане ...

можно ли осуществить такое ?

например , вы подходите к телепорту , он вас за определенный предмет портует на время ( скажем на 1 час ) , когда пройдет 1 час , вас обратно возвращает на определенный город ?

и если возможно , объясните пожалуйста как это можно сделать ? заранее спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, если ты "бог кода" и конечно есть исходники. Без этих 2х критериев - нет

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вариант первый - новый метод телепорта и возврат по проходу времени (плохой вариант). Ищешь класс телепорта в своей сборке (точнее исходном коде), делаешь проверку на время с момента телепортации.

Второй вариант (хороший) - новая зона из которой автоматом выкидывает через час.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно. Делаем скрипт для нпс при разговоре с которым он тебе тп на в нужные координаты при этоп запускаем таймер

Вариант первый - новый метод телепорта и возврат по проходу времени (плохой вариант). Ищешь класс телепорта в своей сборке (точнее исходном коде), делаешь проверку на время с момента телепортации.

Второй вариант (хороший) - новая зона из которой автоматом выкидывает через час.

 

В чем плохость варианта перового? Точнее если ты хочешь делать выкид из зоны, то у тебя при энтерзона будет стартовать таймер, тоже самое что ты будешь этот таймер запускать после телепорта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

что то похоже на: Камалоку\Пайлаку\ Зал Илюзий (если есть исходник можно поглядеть как сделано).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

что то похоже на: Камалоку\Пайлаку\ Зал Илюзий (если есть исходник можно поглядеть как сделано).

А исходы и не нужны, по крайней мере у лыжи инстансы вынесены в дп

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вот я и написал (я Мысли не читаю, я хз какая там сборка).

Изменено пользователем MaJr

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Первый метод плох тем, что игрок может и не находиться в зоне в момент конца таймера. А делая проверки получим нагромождения и туже самую зону как во втором методе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Принцип такой: чар зашёл в зону, чару записывается (обновляется) в базу данных значение текущего времени на серваке. Дальше чар фармит и фармит мобов в этой зоне. На серваке выполяется расписание по типо "ThreadPoolManager...", которое каждые 5 минут сравнивает из таблицы БД те записанные значения времени игроков при заходах в зону. Если время отличается от текущего на серваке больше, чем на 1 час, то игрока тпшит в город. Таким способом даже если релогнется в зоне игрок, то "ThreadPoolManager" всё равно его выкинет из зоны. Но ещё нужна проверка - находится ли игрок в данной зоне, чтобы постоянно каждый час не тпшило игрока в 1 точку(город) :)

Вообщем, да, тут нужно уметь кодить ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Принцип такой: чар зашёл в зону, чару записывается (обновляется) в базу данных значение текущего времени на серваке. Дальше чар фармит и фармит мобов в этой зоне. На серваке выполяется расписание по типо "ThreadPoolManager...", которое каждые 5 минут сравнивает из таблицы БД те записанные значения времени игроков при заходах в зону. Если время отличается от текущего на серваке больше, чем на 1 час, то игрока тпшит в город. Таким способом даже если релогнется в зоне игрок, то "ThreadPoolManager" всё равно его выкинет из зоны. Но ещё нужна проверка - находится ли игрок в данной зоне, чтобы постоянно каждый час не тпшило игрока в 1 точку(город) :)

Вообщем, да, тут нужно уметь кодить ;)

 

Зачем делать обновления каждый 5 минут, пересапись и так далее, если есть установка таймера?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

путей как обычно несколько:

 

1. конечная локация в инстансе с лимитом времени

2. если не хочется возиться с инстансами, то при телепорте запускается таск, срабатывающий через заданное время и возвращающий в нужные координаты + сохранять в таблице переменных персонажа время когда был произведен телепорт в локу, для того чтобы обрабатывать ситуации типа выхода из игры и захода обратно уже после истечения времени - в данных случаях сразу же возвращать в нужные координаты при заходе в игру.

 

наиболее простым и глюкоустойчивым является первый вариант, т.к. во втором еще дополнительно кучу разных условий придется обрабатывать, ну например что делать еслси игрок до истечения времени свалил сам из этой локи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все действия нужно всегда сводить к минимуму в плане запроса до базы. А если у тебя каждый скрипт будет коннектиться к базе и тем более на каждого персонажа, перестань.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Зачем делать обновления каждый 5 минут, пересапись и так далее, если есть установка таймера?

 

Чтобы сравнивать время текущего и записанного.

А что таймер? Игрок релогнулся и дальше?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ничего страшного не произойдёт, если дёргать базу каждые 5 минут.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а зачем вобще базу использовать?

что мешает тупо в памяти хранить банальный хэшмап типа <ид_чара, время входа> (или вообще двухмерный массив) и пользоваться данными из него?

Изменено пользователем Gaikotsu
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чтобы сравнивать время текущего и записанного.

А что таймер? Игрок релогнулся и дальше?

А в чем проблема делать запрет релога во время работы таймера?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

А в чем проблема делать запрет релога во время работы таймера?

обходящийся на раз плюнуть - принудительное закрытие клиента через диспетчер задач или например заход на тот же акк другим персом (в большинстве сборок при этом обычно кикает имеющегося на том же акке персонажа в онлайне).
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

добрый день уважаемые форумчане ...

можно ли осуществить такое ?

например , вы подходите к телепорту , он вас за определенный предмет портует на время ( скажем на 1 час ) , когда пройдет 1 час , вас обратно возвращает на определенный город ?

и если возможно , объясните пожалуйста как это можно сделать ? заранее спасибо

 

В общем сделать можно все, если захотеть.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

т.е. без исходников тоже можно ? просто исходников нету , сборка l2jfatum (acis)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вспомните про рифт, там при заходе с вас берут оплату в определённом колличестве

вы находитесь в комнате определённое время.

 

всё в Ваших руках))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Можно сделать чтоб при релоге выкидывало с зоны. Т.е релогнулся и тебя заспавнило в городе и не важно сколько еще времени оставалось фармить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...