Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • 0
Sign in to follow this  
ka3ant1p

объединение серверо

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

Вот думаю по другому можно. Делается запрос из базы в базу на получение всего кроме координат по уиду игрока.

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

В иделе было бы сделать этот переход без выхода в лобби а типо скрипт в игре на реконект к другому адрессу

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

Пишу с телефона потому н совсем удобно более детально и подробно смысл передать задумки.

Ну надеюсь суть уловили. Это игрокам ласт больше разнообразия и фактически объедиит онлайны нескольких серверов.

Share this post


Link to post
Share on other sites

20 answers to this question

Recommended Posts

  • 0

Тут как бэ понимаеешь, - на серверах должны быть правила одинаковые и предметы и одинаковый процент лута, - ибо на одном есть в луте винтовка А, а на другом нету, на одном процент лута винтовки Б - 50%, а на другом 1%.....

Ну ты понял_)))

Share this post


Link to post
Share on other sites



  • 0

ну это уже мелочи, понятное дело что на серверах это должно быть одинаково, в идеале и скрипты тоже должны одинковые стоять, но вот к примеру сейчас на сервере которым я занимаюсь планируется открытие еще и сервера напф вот и подумал что было бы неплохо организовать такой себе переход.
Чисто теорретичски это возможно, только нужно учесть много нюансов.
Вот есть разные игроки которые отдают предпочтение в какой то карте, можно просто конечно открывать 2-3 сервера но так онлайн везде падает, а при возможности перехода это будет более интересно, т.к. 100% игроки будут переходить с 1 сервака на другой т.к. не придется на каждом по отдельности все наживать.
Позаимствовал идею из сталкера =)

Share this post


Link to post
Share on other sites
  • 0

Ну на вскидку -

По сути переписать ~3 файла(или 2, точно не помню) сетап, логин, и дисконнект на сервере.

В БД добавить поля last_pos_chernorus, last_pos_napf и last_map

Когда юзер конектится, и получает данные - плеер логин вроде файл, -

Пишем кусок кода, который идет в БД, и проверяет карту - last_map

Если она сходится с текущей - все норм, и как обычно.

Если нет - читаем last_pos_... координаты, и заменяем ими полученные из стандартного поля БД.

 

Забыл - при дисконнекте, ессесно координаты писать в поле last_pos_имякарты и last_map обновлять

Share this post


Link to post
Share on other sites
  • 0
 

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

Share this post


Link to post
Share on other sites
  • 0

P.S.  И получается, поставить аномалию и при заходе в аномалию телепортируются на другой сервер

 

- Скрипты такого не умеют.

Edited by NoNameUltima (see edit history)

Share this post


Link to post
Share on other sites
  • 0

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

Значит в каждый сервер добавляется переменная Server_map = Chernorus | Napf

База делается для каждого сервера отдельная, в таблицу с игроком добавляются столбцы:
current_map, last_map
При входе на сервер выполняются проверки:

Проверка 1:
Если  current_map пустая тогда current_map = Server_map  ну и естественно это заносится в базу.

Проверка 2.0:
Если current_map = Server_map  тогда все ок и можно переходить к следующей проверке:

Проверка 2.1

Если last_map = 0 тогда просто присваивается значения current_map 
Проверка 2.2
Если last_map != 0 и !=current_map  тогда идет копирование из базы другого сервера параметров инвентаря, хуманити, состояния здоровья.

Else для проверки 2.0:
Если current_map != Server_map тогда вызов скрипта на редирект ну или просто дисконект

Функция перехода:
Приходит в обозначеное место для перехода и там задействуем скрипт скажем change_server:
Если change_server тогда
присвоить значению current_map значение отличное от Server_map  то бишь если чернорусь то присваиваем напф и наоборот.
Далее следует вызов скрипта перехода или дисконект.
Так же думаю значения current_map и last_map нужно обнулять при смерти игрока

Таким образом игрок единажды зайдя на какой то из сервер уже не сможет выбрать другой, сможет перейти только внутри игры. 
Получается заходим мы к примеру в черно кепкой после обновы, получили значения current_map = чернорусь, last_map = чернорусь. 
Выходим с сервера пытаемся зайти на другой - нас либо реконектит на другой сервак (если кто то умный напишет такой скрипт) или дисконектит а точнее выкидывает наверное в лобби и там игрок получит сообщение типо твой герой не на том сервере дружок.
Заходим обратно в чернорусь, прошли проверку все гуд, бежим в локацию активируем скрипт перехода, нам меняется значение current_map и теперь на чернорусь мы зайти не можем, только на напф.
Ну заходим мы на напф сервер видет не совпадения значений last_map и current_map и заменяет нам наш инвентарь скин итд с базы чернорусии, ну и после этого меняет значение last_map на текущее.
При переходе обратно, произойдет то же самое и я повялюсь в тех координатах где перед этим делал переход.
Единственный нюанс это сделать еще проверку что если у игрока при заходе координаты отсутсвуют а значения last_map  и current_map не пустые то тогда выставляются координаты заданные в скрипте. Иначе получится так что человек который бегал по чернорусии при первом переходе на напф пофвится не в точке перехода а там где кепки появляются.
Ну типо как то так.
Тут и не обязателен скрипт на редирект, игроков будет дисконектить и они могут в ручную перезайти на другой сервер, но богемнее было бы что бы это происходило автоматически =)

 

Share this post


Link to post
Share on other sites
  • 0

Что бы написать такой код и без глюков надо безбашенно умные мозги, и где их взять?

 

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


Значит в каждый сервер добавляется переменная Server_map = Chernorus | Napf

База делается для каждого сервера отдельная, в таблицу с игроком добавляются столбцы:
current_map, last_map
При входе на сервер выполняются проверки:

Проверка 1:
Если  current_map пустая тогда current_map = Server_map  ну и естественно это заносится в базу.

Проверка 2.0:
Если current_map = Server_map  тогда все ок и можно переходить к следующей проверке:

Проверка 2.1

Если last_map = 0 тогда просто присваивается значения current_map 
Проверка 2.2
Если last_map != 0 и !=current_map  тогда идет копирование из базы другого сервера параметров инвентаря, хуманити, состояния здоровья.

Else для проверки 2.0:
Если current_map != Server_map тогда вызов скрипта на редирект ну или просто дисконект

Функция перехода:
Приходит в обозначеное место для перехода и там задействуем скрипт скажем change_server:
Если change_server тогда
присвоить значению current_map значение отличное от Server_map  то бишь если чернорусь то присваиваем напф и наоборот.
Далее следует вызов скрипта перехода или дисконект.
Так же думаю значения current_map и last_map нужно обнулять при смерти игрока

Таким образом игрок единажды зайдя на какой то из сервер уже не сможет выбрать другой, сможет перейти только внутри игры. 
Получается заходим мы к примеру в черно кепкой после обновы, получили значения current_map = чернорусь, last_map = чернорусь. 
Выходим с сервера пытаемся зайти на другой - нас либо реконектит на другой сервак (если кто то умный напишет такой скрипт) или дисконектит а точнее выкидывает наверное в лобби и там игрок получит сообщение типо твой герой не на том сервере дружок.
Заходим обратно в чернорусь, прошли проверку все гуд, бежим в локацию активируем скрипт перехода, нам меняется значение current_map и теперь на чернорусь мы зайти не можем, только на напф.
Ну заходим мы на напф сервер видет не совпадения значений last_map и current_map и заменяет нам наш инвентарь скин итд с базы чернорусии, ну и после этого меняет значение last_map на текущее.
При переходе обратно, произойдет то же самое и я повялюсь в тех координатах где перед этим делал переход.
Единственный нюанс это сделать еще проверку что если у игрока при заходе координаты отсутсвуют а значения last_map  и current_map не пустые то тогда выставляются координаты заданные в скрипте. Иначе получится так что человек который бегал по чернорусии при первом переходе на напф пофвится не в точке перехода а там где кепки появляются.
Ну типо как то так.
Тут и не обязателен скрипт на редирект, игроков будет дисконектить и они могут в ручную перезайти на другой сервер, но богемнее было бы что бы это происходило автоматически =)

 

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

Edited by Alex39 (see edit history)

Share this post


Link to post
Share on other sites
  • 0

Ну так посмотри скрипт на кик игрока с сервера.

 

Ну а реально сделать автоматизированный реконнект к другому серверу, в смысле минуя стадию выбора сервера и лобби

Share this post


Link to post
Share on other sites
  • 0

Что бы написать такой код и без глюков надо безбашенно умные мозги, и где их взять?

 

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

 

Можно конечно общей сделать таблицу черектер дата, и просто обновлять позиции, просто всего лишь пару тройку действий нужно будет в скрипт добавить

Edited by ka3ant1p (see edit history)

Share this post


Link to post
Share on other sites
  • 0

 

Что бы написать такой код и без глюков надо безбашенно умные мозги, и где их взять?

 

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

Ну к примеру вот так:

 

host=192.168.0.100
port=2306
 
 
 
 
// The interval at which the online player are checked (in milliseconds, 1 second = 1000)
interval=1000
 
// MYSQL info:
sqlHost=localhost
sqlPort=3306
sqlDatabase=napf
sqlTable=Нужная таблица для лута
sqlUser=napf
sqlPassword=123456
 
 
 
 
 
 
 
// MYSQL info:
sqlHost=localhost
sqlPort=3306
sqlDatabase=Chernarus
sqlTable=Нужная таблица
sqlUser=Chernarus
sqlPassword=123456
Edited by Alex39 (see edit history)

Share this post


Link to post
Share on other sites
  • 0

Вот примерно так из рабочего сервера

 

sqlTable=Нужная таблица пишем сюда таблицу где сохраняется лут

 

[Time]
Type = Local
Offset = 0

[Database]
Host = localhost
Type = MySQL
Port = 3306
Database = napf
Username = napf
Password = 123456

CleanupPlacedAfterDays = 14

[ObjectDB]
Type = MySQL
Host = localhost
Port = 3306
Database = dayz
sqlTable=Нужная таблица
Username = root
Password = dayz
Edited by Alex39 (see edit history)

Share this post


Link to post
Share on other sites
  • 0

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

Чисто теорретичски это возможно, только нужно учесть много нюансов.

Вот есть разные игроки которые отдают предпочтение в какой то карте, можно просто конечно открывать 2-3 сервера но так онлайн везде падает, а при возможности перехода это будет более интересно, т.к. 100% игроки будут переходить с 1 сервака на другой т.к. не придется на каждом по отдельности все наживать.

Позаимствовал идею из сталкера =)

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

Причина - серверная часть игры одного хоста не пускает больше 60ти человек, пишет вы находитесь не рядом с горой чтобы добывать руду или типо того после чего  зависает. И в игре начинает творится магия, плавают дороги и игроки аидят клонов

Пример реализованных: WoW пиратки все русские. У них много хостов а игроки все в одном игроков мире находятся

Share this post


Link to post
Share on other sites
  • 0

В hiveext.ini есть настройка на 2 сервера, Тут уже писали пример. Даже задумывался сделать напф+чернарусь, разобралс как настроить, но возник вопрос - выходит игрок на краю карты напф из игры и потом заходит в игру на чернарусь-где  он окажется? Будет барахтаться километров пять в воде? Не вариант. А вот как на офсерверах дэйза - один перс, разные сервера

 -  уже можно сделать.

Share this post


Link to post
Share on other sites
  • 0

 

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

Чисто теорретичски это возможно, только нужно учесть много нюансов.

Вот есть разные игроки которые отдают предпочтение в какой то карте, можно просто конечно открывать 2-3 сервера но так онлайн везде падает, а при возможности перехода это будет более интересно, т.к. 100% игроки будут переходить с 1 сервака на другой т.к. не придется на каждом по отдельности все наживать.

Позаимствовал идею из сталкера =)

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

Причина - серверная часть игры одного хоста не пускает больше 60ти человек, пишет вы находитесь не рядом с горой чтобы добывать руду или типо того после чего  зависает. И в игре начинает творится магия, плавают дороги и игроки аидят клонов

Пример реализованных: WoW пиратки все русские. У них много хостов а игроки все в одном игроков мире находятся

А можешь подробней описать как настроить?

Share this post


Link to post
Share on other sites
  • 0

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

Share this post


Link to post
Share on other sites
  • 0

В hiveext.ini есть настройка на 2 сервера, Тут уже писали пример. Даже задумывался сделать напф+чернарусь, разобралс как настроить, но возник вопрос - выходит игрок на краю карты напф из игры и потом заходит в игру на чернарусь-где  он окажется? Будет барахтаться километров пять в воде? Не вариант. А вот как на офсерверах дэйза - один перс, разные сервера

 -  уже можно сделать.

И такой еще вопрос, сколько вообще сама игра может потянуть игроков с одного хоста? Есть ли точные цифры?

Share this post


Link to post
Share on other sites
  • 0

 

 

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

Чисто теорретичски это возможно, только нужно учесть много нюансов.

Вот есть разные игроки которые отдают предпочтение в какой то карте, можно просто конечно открывать 2-3 сервера но так онлайн везде падает, а при возможности перехода это будет более интересно, т.к. 100% игроки будут переходить с 1 сервака на другой т.к. не придется на каждом по отдельности все наживать.

Позаимствовал идею из сталкера =)

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

Причина - серверная часть игры одного хоста не пускает больше 60ти человек, пишет вы находитесь не рядом с горой чтобы добывать руду или типо того после чего  зависает. И в игре начинает творится магия, плавают дороги и игроки аидят клонов

Пример реализованных: WoW пиратки все русские. У них много хостов а игроки все в одном игроков мире находятся

А можешь подробней описать как настроить?

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

Edited by Frost (see edit history)

Share this post


Link to post
Share on other sites
  • 0

нет в арме такой возможности нет, нужно не просто лаунчер, там долго обїяснять, ну корочее в таком клише нужно что бі в игру заходил сам лаунчер и между серверами прігал, и игроку именно лаунчер відавал загрузочній єкран

Share this post


Link to post
Share on other sites
  • 0

 

 

 

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

Чисто теорретичски это возможно, только нужно учесть много нюансов.

Вот есть разные игроки которые отдают предпочтение в какой то карте, можно просто конечно открывать 2-3 сервера но так онлайн везде падает, а при возможности перехода это будет более интересно, т.к. 100% игроки будут переходить с 1 сервака на другой т.к. не придется на каждом по отдельности все наживать.

Позаимствовал идею из сталкера =)

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

Причина - серверная часть игры одного хоста не пускает больше 60ти человек, пишет вы находитесь не рядом с горой чтобы добывать руду или типо того после чего  зависает. И в игре начинает творится магия, плавают дороги и игроки аидят клонов

Пример реализованных: WoW пиратки все русские. У них много хостов а игроки все в одном игроков мире находятся

А можешь подробней описать как настроить?

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

Но даже при таком расскладе я смутно представляю, чтобы игроки были в одном игровом мире... На это нужно охеренное оборудование) да и мне кажется всё равно не факт что  получится, но спасибо за идею) Поробовать то можно)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.