Баттхерта статья.
sasha238
Или бугурта, или хрен знает чего.
Небольшие технические подробности вначале для тех, кто интересуется.
С точки зрения пользователя.
Предположим, мы идем воевать в какой-нибудь битве. Покупаем оружие, булки, голд, заправляемся на полную катушку. Выползаем на страничку битвы. Нам представляют противника. Мы жмем кнопку "Fight". Здоровье у нас и противника потихоньку уменьшается. Как только мы его грохнем, наша иконка выскакивает в районе стены вместе с иконками других бойцов. Все принимают участие, все счастливы.
С точки зрения программиста.
У нас есть что-то в инвентаре. Что неважно совершенно. При переходе на поле боя, мы выбираем сторону (восставшие или оккупанты) либо не выбираем (если одна страна атакует регион другой страны). Далее переходим на страницу боя. При нажатии на "Fight" автоматически формируется запрос, в котором содержится информация о том, где мы ударили (какое поле боя), и использовали ли мы голдовый бустер. Еще там есть токен, который говорит серверу, что наш аккаунт – это наш аккаунт. Все это счастье отправляется на сервер. В ответ приходит пачка информации, в которой говорится, грохнули ли мы противника, какой урон мы ему нанесли, есть ли у нас еще пухи, какое наше здоровье после удара, какой инфлуенс (те самые цифры-проценты, за которые мы боремся) мы заработали для нашей стороны. Все это счастье отрабатывается скриптами уже в нашем браузере и нам рисуется та или иная картинка. В том числе, то, как пользователь попадает в верхнюю бегущую строку ударов. С периодичностью раз в 30 секунд (может больше, может меньше), автоматически посылается на сервер запрос о том, какие удары и кем были нанесены, какие есть герои битвы, и прочая техническая информация. Все это позволяет сделать бегущую стенку для пользователя.
В оппоненты выбирается произвольный игрок и противоположного лагеря с произвольным уровнем здоровья. Даже, если он не принимает участие в битве, то он все равно может попасть на экран.
Ключевой момент: Все основные расчеты идут исключительно на стороне сервера.
О том, что вчера было. (Длинно)
Не только на ДВ, но и вообще.
Итак, берем абстрактного бойца, который только что зарегистрировался в рудминии и хочет повоевать. Поел покачался и прочее. Допустим, он хочет повоевать против врагов, которые атаковали его любимый рудминистан. Например, Венгрии. Идет на поле боя и видит полудохлых врагов низкого уровня, которых убивать-то одно удовольствие. За удар снимает по двадцатке, даже борясь в рукопашную. Врагов укладывает пачками и все такое. И его деятельность видят другие бойцы по обе стороны фронта. Молодец боец! Далеко пойдет!
Окрыленный успехом, он решил попробовать свои силы в подавлении восстания на одной из оккупированных территорий. И что этим варварам не хочется жить в нашем прекрасном рудминистане. Лезем туда и наблюдаем аналогичную картину. Кладем полудохлых врагов пачками и все такое. Зарабатываем инфлуенс для своей страны и все такое.
Возьмем нашего новорожденного, который внезапно обнаружил себя на оккупированной территории, и видит, что его страна, совсем не его. Отработав и получив свои кровные он пытается принимать участие в восстании. Что он видит на поле боя. Правильно, одних хайлевелов со полным здоровьем и с топовым вооружением. Странно, думает он. Но все-таки решает попробовать что-нибудь сделать полезное для восстания. Израсходовал все и влез в долги. С оружием он сносит ну по 5 по 10 урона. Но все-таки наносит Грохнул из последних сил этого хайлевела. Заработал сколько там инфлуенса. А восставшие с другой стороны не видят его вклада. Его просто нет. Сервер его не учитывает.
О том, что вчера было. (Кратко)
При битве на стороне рудминистана инфлуенс, нанесенный бойцами учитывается весь и без остатка. И виден всем остальным игрокам (то есть он есть). Плюс бойцы подбираются соответствующие левелу.
При битве против рудминистана инфлуенс учитывается через раз, если вообще учитывается. Про подбор оппонентов я вообще не говорю. То есть ответ от сервера приходит, картинка у тебя любимого рисуется, но твои цифры не вкладываются в общую копилку. Тебя не видно на поле боя для других. Мы как бы бьем в воздух. Естественно, при достижении определенного левела, количество ударов в воздух уменьшается, но не исчезает.
Вот я вчера пол ночи замеры делал, но так и не смог определить зависимость. Так же не проверял все это в лольше.
Я понимаю, что рудмины бьются с нечестными методами игры. Это их прямая и непосредственная обязанность. Но как-то они в одну сторону только бьются.
Вот так и живем.
Всегда Ваш, Многоцифр.
P.S. Ладно, переходим к плану Б.
Comments
oh shi~
отсюда мораль - силы надо прикладывать не к Всемирной Российской Империи, что в принципе недостижимо, если в воздух стрелять, а к максимально быстрой победе едена и сокращению числа стран.
Скандалы, рудмины, интриги, расследования!
Ничё, в Украине твои собратья по разуму пошли еще дальше и увенены, что рудмины воруют их дамедж и забирают на свою сторону, делать им больше нечего, ага.
Армагеддон то обещанный когда?
Ты же сам себе противоречишь. Если я увидел свой дамаг залившийся к повстанцам(в виде своего авика с циферками проехавшегося под полосой стенки), это значит, что сервер УЖЕ посчитал и отправил мне инфу.
Вот если бы большая часть расчетов велась на стороне клиента с помощью флеша/джскрипта, а ПОТОМ только отправлялась на сервер, тогда можно было бы списать на потери коннекта и т.п. Но, думаю, до такого даже рудмины не дошли, иначе у нас тут уже были люди с милионным инфлюенсом.
блин, с орги запостил. но не суть
ксенончик, объясняю на пальцах, то что тебе сервер ответил и ты увидел со своего, что твоя ава попала в верхний поток - это все фигня. Твой урон должны видеть как минимум с других акков.
Тут мне интересные скрины присылают, что рудминские боты ща вообще с нулем инфлуенса бились. В общем у них что-то опять сломалось в одну сторону. И эта сторона как обычно наша.
араши, армаггедон он должен быть незаментым, ты посмотри на статистику в рудминистане
По идее все должно выглядеть так:
1. Сервер получает параметры $КтоУдарил, $ГдеУдарил, $ЮзалЛиБустер.
2. Сервер выдирает из базы параметры $ПоКомуУдарил, $КакимОружием.
(чтоб не заморачиваться с разветвлениями, считаем, что удар фатальный для соперника)
3. На основе 5ти указаных параметров сервер по хитрой формуле считает инфлюенс.
4. Сервер производит что-то вроде $ПовстанческаяСтенка😳ПовстанческаяСтенка+$ИнфлюенсЭтогоЧудака.
5. Сервер отвечает клиенту, посылая ему параметры для визуализации.
Все эти пункты должны выполнятся в строгой последовательности. То есть без третьего пункта нет четвертого, без четвертого нет пятого.
И еще такой момент. Вполне логично, что отображение того, кто бил, будет для каждого игрока разным. Особенно в последние минуты когда бьют десятки людей. Чтобы человек видел, что его дамаг не зря ушел.Потому и установлен приоритет в демонстрируемых авиках.
sasha238
>Твой урон должны видеть как минимум с других акков.
а конкретный противник на поле боя разве не видит урон?
>Но как-то они в одну сторону только бьются.
На одной стороне всех победят, примутся за другую.
Сомнительные факты.
Пойду куплю ку5 попкорн.
Почему-то я не удивлен, но буду следить за ходом расследования.
ПОСОНЫ , САШУ ЗАБАНИЛИ , У МЕНЯ ЖЁСТКИЙ БУРГУТ
Sasha239 на подходе
*Бугурт
>>> Ничё, в Украине твои собратья по разуму пошли еще дальше и увенены, что рудмины воруют их дамедж и забирают на свою сторону, делать им больше нечего, ага.
Вот только ЕДЕН в начале мая сего года тоже жаловался, что их дамаг уходит Фениксу. Такие дела...
>>> При битве против рудминистана инфлуенс учитывается через раз, если вообще учитывается.
Саш, один вопрос: а как ты это определил? У тебя что, доступ к серваку есть?
предлагаю план БП
продолжаем разговор
ксенончик, та последовательность, которую дал ты, такая и должна быть, но к сожалению на индивидуализацию ударов есть отдельный скрипт, который сразу показывает, что ты бьешь и участвуешь в войнушке
ратибор, понимаешь, когда есть некий регион, в котором РВ, и который пустой, бьешь несколько раз с одной стороны - тишина, бьешь несколько раз с другой стороны - все ок, и так несколько раз, разными акками, разного уровня. Я хз что и как там.
> одних хайлевелов со полным здоровьем и с топовым вооружением
Воевал, в основном, против игроков со скиллом 10-11, иногда попадались 8,9,12. И "полудохлые" тоже были. А как у других?
> Сервер его не учитывает.
У тебя есть какие-нибудь аргументы кроме:
> восставшие с другой стороны не видят его вклада
?
Получается, что за последние секунды боя я должен получить информацию о 100500 игроках (их аватарки, например), которые нажали на кнопку? Я же там ничего различить не смогу. Причем, не только я, но и 2*100500 наблюдающих игроков/орг, которым все эти данные необходимо отправить.
помолимся по усопшему....
>> тишина, бьешь несколько раз с другой стороны - все ок
Предлагаю проверить. Есть желающие?
лукс, я к тому, что в пылу битвы оно может и не показываться, в этом никаких замечаний нет, а вот когда все спят и какой-нить одинокий хрен бьет, то в одну сторону видно результат его действий, а в другую невидно
собственно здеся и даже живой
да я предсказатель, лол
ох
У меня тут скриншотик есть: http://img198.imageshack.us/img198/8572/bugwlr.jpg
Суть такова: с какого-то определённого момента нажатие кнопки "fight" стало приводить только к потере моего велнесса, а у соперника стало сниматься 0. Т.е. убить его невозможно, инфлуенс не учитывался, очки опыта не набирались. Таким образом я по своей невнимательности 50 велнесса угробил. Да и бустер купить тоже было нельзя.
Накатал тикет, жду ответа "всё ок".
На Волге тишина. Ударил на стороне восставших. 331
После обновления страницы вижу себя только когда захожу за Румынию.
дукс, а ты заходишь под собой же или под чем-то другим?
можете почитать вот тут еще : 3
http://www.erepublik.com/en/article/-1-1551385/1/20
>>> бьешь несколько раз с другой стороны - все ок, и так несколько раз, разными акками, разного уровня.
Если так, то всё ок. Согласен с твоей статьёй.
>>> Накатал тикет, жду ответа "всё ок".
Axithe, я тебе отвечу и без рудминов. Суть в том, что убить противника, начиная с определённого военного скилла (возможно, что и с 12-го), без оружия (голыми руками) невозможно (естественно, это моё предположение). Но! Стоит взять оружие, и ты, после "уничтожения" врага увидишь весь свой урон. Я таким образом угробил +100 велла на одного румына. И получил за него +3к прибавки к званию.
И с орги видно. Зайди туда и посмотри.
Ратибор, он 12-го скилла. Я 12-тиуровневых до этого убивал с 3-4 ударов. Кроме того, эта теория не объясняет неработоспособности бустера "instant defeat".
Лукс. Хммм, а сейчас работает. "Все ок". Что я еще могу сказать.
"ксенончик, та последовательность, которую дал ты, такая и должна быть, но к сожалению на индивидуализацию ударов есть отдельный скрипт, который сразу показывает, что ты бьешь и участвуешь в войнушке"
Да, но есть одна штука, которая не делается без сервера - это значение инфлюенса. Оно считается на сервере и только потом передается скрипту. И я не верю, что сначала происходит визуализация, а потом только значение инфлюенса добавляется к стенке.
И по поводу индивидуального отображения. Не помню, где точно, кажется в битве за Москву, мы, сидя в чяти ЕМС ударили кажется впятером одновременно. Минуты за 4 до конца боя. Каждому из нас в итоге отобразился собственный авик, плюс несколько хорватов/поляков. Авиков других украинцев не было. И это естественно, так как било много людей и вероятность что я из тех десятков людей увижу именно ЕМСшников нащих невелика. Но СЕБЯ каждый видит постоянно. Это сделано для мотивации игроков.
сила Кореолиса,
она такая,
односторонняя...
правый берег подмывает, а левый не
северное полушарие).
> а сейчас работает
Это больше похоже на "кривые руки", чем на ангажированный сервер.
> Но СЕБЯ каждый видит постоянно.
Я себя вижу только после убийства противника до обновления страницы.
Karolina Jesieniecka
я сомневаюсь что цыгане начнут воевать себя
Karolina Jesieniecka
sasha permanently banned
ты в очередной раз показал своё истинное нутро
интересно...
Каро, там картинку Трактор запостил.
Тебя в профиль узнал
по разному бывает, бывает и 12-лвл ку5 танк бывают и полудохлые 7-лвльные
"На одной стороне всех победят, примутся за другую"
Каро, ты умеешь смешно шутить, ржал)