Авг 30
Кусочек [кода] [юмора] (censored version)
Ожидаете сенсаций? Видимо опять таки придется вас обломать, ибо их не будет, как бы это печально не звучало
Но, тем не менее, кое о чем все таки хочу написать, собственно, читайте ниже
Уж не знаю кто-кто, но наверное таки черт дернул посмотреть однажды меня исходники дозорных js-ява-скриптов. Скажу наперед кодеру — огромное спасибо!
Я, воистину, получил тонну и еще маленькую тележку позитива, от чтения некоторых перлов, которыми, собственно, хочу поделиться. Возможно и баян, для кого-то, но юмор тонкий:
Взято тут — http://st.dozory.ru/js/doz_prototype.js:
intersect: function(range) {
//Нужно ещё exclusive учитывать для корректности, но пока не будем (у нас он false).
if (this.end < range.start || this.start > range.end) return false;
return true;
//}
},
Действительно, зачем его учитывать? Пусть будет!
Взято тут — http://st.dozory.ru/js/events.js:
//Возможно не нужно глубокое клонирование, чтобы работало быстрее, нужно поэксперементировать
Try.these(
function() {
new ActiveXObject(‘Msxml2.DOMDocument’);
Try.these(
Так вот как делаются апдейты, хотя, возможно, и не так ![]()
Взято тут — http://st.dozory.ru/js/wm.js:
//Нужно ещё добавить чтобы скролл был
main_div.appendChild(div);
Думаю его будут добавлять годика два-три![]()
//Здесь бы было бы правильно не первой ноде а всем, потом пофиксить
setAttributeValue: function(block_id,xpath,name,value) {
Было бы, если бы. Потом пофиксят, пока поживем с багами ![]()
}
var xpathResult = xmlDoc.evaluate(path,contextNode,null, 0, null);
var result = [];//Не совсем компатибл с ИЕШНОЙ версий, но пока функциональности массив вполне достаточно
var node;
while (node = xpathResult.iterateNext()) {
result.push(node);
}
Пока этого достаточно, без комментариев. ![]()
// Какая-то проверка ошибок должна быть
alert(‘Ошибка загрузки «‘+this.xsls[block_name]);
return null;
} */
![]()
![]()
![]()
Долго плакал над формулировкой «какая-то», это просто жесть какая-то. ![]()
//Достаём js и вычисляем его
var js_object = XML.findNode(xml,’/window-core/js-object’);
if (js_object) eval(js_object.firstChild.nodeValue); //Вывод ошибок из eval надо позырить как делаеца
var html = XML.findNode(xml,’/window-core/html-skeleton’);
Тоже жесть, кодер красавчик ![]()
openPopup: function(name,params) {
alert(‘Ещё не реализовано‘);
//this.wm.makeRequest({methog: ‘post’{‘show-popup’: name+’-'+params},’bg’);
return undefined;
Отдельная тема, наверное, универсальный ответ. Загружаете допустим вкладку «новая магия», а вам такой алерт — Ещё не реализовано. Примеров использования — куча. ![]()
//Скрывает окно
Element.hide(this.window_id);
//Попапы все закрыть
this.popupsManager.clear();
//Почистить нах все блоки
![]()
![]()
![]()
Валялся, это что-то с чем-то. Доставайте из под стола.![]()
//Выполним все destroy дейстия
Block.applyDestroyActions(dblock);
//Формируем новый докумнет, из пришедшего XML
if (this.activeWindow != null) {
//params['wupdate'] = 1;
// Наверное нужно, чтобы они параметры блоков чистились при каждом update, надо подумать
Пятерка! Наверное, все таки нужно, кодеру видней ![]()
} else {
//Не передаётся в запросе блоков, пока х.з. баг это или нет, посчитаем это за баг
alert(«Ошибка формирования запроса, нет блоков для обновления. Сообщите пожалуйста о баге«);
return undefined;
![]()
Красава!!! Я не знаю что можно писать про формулировку «пока х.з. баг это или нет», и логический вывод — «посчитаем это за баг». ![]()
мини — ps.И кстати это не баг, или не всегда баг, у меня когда инет вырубается в аякс локах такое начинает выбрасывать, и, в особенности, при переходе в лабе и диссконтекте в момент нужной подгрузки локации. ![]()
Далее. Взято тут — http://st.dozory.ru/js/pm.js:
//Внешний попап глючит сильно, поэтому его не юзаем, если когда-нить будет время надо доделать
var ExtPopup = Class.create();
Object.extend(ExtPopup.prototype,SimplePopup);
Object.extend(ExtPopup.prototype,{
Какая правда жизни…Глючит, не юзаем, но, возможно, потом доделаем, хотя сомневаюсь что будет время ![]()
http://st.dozory.ru/js/gobjects.js?1187360397
if (handlers != undefined) {
// Установка каких-то обработчиков событий после показа
for (var h in handlers) {
//
![]()
![]()
Плакал и бился об стол, стену и все попавшееся в тот момент под голову. Все больше кажется, что так писана вся МС и вообще Дозоры — «как то, что то, туда то» ![]()
// Нужно где-то хранить текст с этими тултипами //
///////////////////////////////////////////////////
Важная задача. ![]()
Взято тут — http://st.dozory.ru/js/tooltips-1.2.3.js:
reload: function(blocks) {
if (blocks[0] == 0) {//Это значит нужно обновить таб
Этот кусок кода, в отличии от остальных, писал, видимо, Капитан Очевидность ![]()
if (actions[i][7] == 128) alt = ‘на локацию‘;
Я так и не понял какое действие в игре можно применить на локацию, это, видимо, из некро, где зубы и искажки доступны в быту ![]()
//3,ph,768664,xuntaka,loc_labyrinth*trloose,,0,1,0,0,0
Палево ![]()
Взято тут — http://st.dozory.ru/js/iface/game.js:
function write_combat_message(type){
var txt = »;
if(type == ‘combatd_delay’){
txt = ‘Ваш запрос ещё обрабатывается.
Подождите пожалуйста 10 секунд.’;
Тоже непонятно — такая задержка после победы или поражения в лабе исчезает если до истечения 10 секунду обновить страницу, зачем это делать искусственно?
Взято еще откуда-то, не записывал:
function sVis2(n) { //используется только в талерленде кажется
e = document.getElementById(n);
if (e==null) return;
with(e.style) {
Несите зачотку, ребята![]()
Мне мама говорила когда кажется надо крестится ![]()
parent.objsel = false;
parent.actsel = false;
//кнопачки перерисовать (((
Кодеры тоже умеют выражать свои эмоции ![]()
И, на закуску, маленькая эпическая зарисовка, порожденная больным воображением автора:
Где-то вдалеке, никому неизвестный офис. Ничего не предвещало беды, трое запухших геймдизайнеров рьяно тыкали в клавиши и мучали мышку. Вдруг из-за дверей послышалось пьяное улюлюканье, шум, грохот, потом резкая команда: «Поднимай!! Заносим». В следующую минуту дверь была агрессивно снесена открыта тремя шатающимися телами, за которыми стояла группа из четырех человек. Этот акт вандализма остался незамеченным геймерами, поэтому пришлось еще полюлюкать, и тогда три играющих тела таки обратили внимание на пришедшую компанию.
- Вы кто блин?
- Ээээ, нуууууу, мы того, как его…, ну вы поняли… — алкаши откровенно тупили и умудрялись еще делать обиженный вид.
- Аааа, программисты что-ли наши? — блондинку с пирсингом в левой брови осенило.
Радости пьяных субъектов не было предела, их таки поняли!
- В общем — мы по делу! — по слогах промлял самый трезвый.
- О_о — было первой реакцией сидящих за компами. — ничегоссе! Движок Дозоров алермовский решили переписать что-ли?
- Неееее, ну что за чушь вы несете! — Не движок конечно. Мы это… Ну в общем сами смотрите. — группа людей сзади что-то несла. Этим что-то был человек. — Мы Ясона с цб принесли! ![]()
На лицах прогеров сразу же застыло такое эйфорическое ожидание, что сейчас их похвалят. В ту же секунду тело с грохотом опустили на землю. Геймастера явно не оценили прикола, и дальше уткнулись лицами в мониторы. Прогеры не одобрили, и собирались уже уйти бухать в серверную, но не тут то было!
- Эй, вы куда! — Ну-ка быстренько подстелили Ясеню, чтобы мягко было спать!
- Дык, а что мы ему подстелим?
- Действительно… — глаза геймастера быстро забегали по офису. — Аааа, вот, нашел! — с этими словами в прогеров полетела тоненькая пачка бумажек формата а4.
- Листочки?
- Какие кчерту листочки? Это концепт зверей, кубов ну и кого-то там еще, стелите быстрей. — Подстилка с листиков смотрелась весьма убого, но помощь была засчитана, да и концепт собственно был никому не нужен и безнадежно покрылся пылью.
Прогеры ушли бухать в серверную. Вдруг один отделился от компании, подошел к геймдизайнерам и шепотом спросил:
- Ребят, так в туалет охота, можно бумажек взять?
- Фигня вопрос,бери любые.
Прогер быстренько осмотрел подходящие цели, и взгляд его пал на корзину с кучей вяло исписанных помятых листиков.
- А это можно, ненужное что-то?
- Бери конечно, это концепт вампиров, мы его тоже обычно в парашу берем, спецом помяли так удобней, реально!
- Спасибо ребята, вы чудо! — Лицо прогера было просто таки сияющим, и он быстро направился в комнатушку с табличкой «Туалет», под которой кто-то маркером написал «Ввод правок МС».
Равномерно-жесткое клоцанье мышки и клавиш ничего не нарушало, разве что трески и громкий шум у серверов, но это уже традиционно все не замечали. Внезапно один из сидящих резко бахнул по клавиатуре и бросил ее об стол.
- Все! Задолбало! Я не могу больше маятся ничегонеделанием!
Двое других странно на него посмотрели, блондинка подошла и приложила руку к лбу:
- Температуры вроде нет, может вчера лишнего перебрал, или последняя дурь для придумывания НМС была лишней?
- Да реально! — подхватил второй. — Что ты за бред несешь — мы всегда этим маемся, не втянулся еще что-ли?
- Не, ну блин, давайте что-то креативить, в конце концов надо же что-то впарить игрокам! — админ явно был «зеленым» в делах «тру-админства».
- Ты далбанулся что-ли? Как всегда за день до ввода в игру что-то наваяем под сальвией или после абсента и впарим! Пипл схавает!
- Ладно, пошли покурим, задолбался работать.
Геймастера возвращались с перекура.
- Таакс, ну что, го арена посливаем друг другу, мне перчи надо помодней!
- Ты обдолбался? У меня пве задрот-шмот! — блондинка не одобряла. — Пошли лучше с гилдой выбивать вторую иллюху бомжу!
- Ну не знаю….
- Да черт тебя подери, надоел! Дуни что-ли!
- А вдруг придет он….-дальше голос перешел на шепот. — Ооооооон!
- Кто он, че ты млямлишь?
- Ну оооон…Сенсееей.
- Да говори ты нормально! Сенсея никто не боится нынче, все равно все делают что хотят .
- Тоесть не делают ничего. — Все одобрили бородатую шутку и начали гыгыкать. — Так что никакого шепота!
- Да туплю я! Все кепа вспоминаю, и сразу дрож…- При упоминании слова «Кеп» у блондинки застыло мечтательное выражение лица, которое, впрочем, быстро пропало.
- Забей, короче! Ну если так уж боишься что придет сенсей, включи админку на альт-табе, типа такой приходит сенсей — а мы такие альт+таб + умные выражения лица = все довольны, работа с понтом идет.
- Не, у меня круче идея. — Давайте откроем нашу любимую контролку — «Ввод новых платных услуг». Сенсей как увидит — он нас расцелует и выпишет премию сразу.
- Респект.
- Плюсую. Блонда рулит, отвечаю.
В одной из закрытых комнат офиса что-то грохнуло и услышался аццкий крик — «моооооонстер киллл!!!!!!!». Впрочем ни одна бровь сидящих не дрогнула, даже бровь блондинки с пирсингом:
- Опять Максимка кого-то банит.
- Да Визю. На полтора года эконом.бан влепил.
- Не забывайте, нам безразлично.
- Ога, я даж не притворяюсь и мне безразлично.
- Зачот. Го в пати, не майтесь ерундовиной.
Две молчаливых минуты задроты пытались залогиниться в клиенте, но не тут то было.
- ЧТО ЗА ЛАГИ! Прогеры что-то с каналом мутят, лаги.
- НЕРВЫ!!!!
- Бесит, однозначно, пошли вломим.
Компания прошла в серверную, и застала вполне обычную картину — компания прогеров при свечках (!!!) в серверной играла в карты на раздевание.
- Ооо, новые лица. Раздавай и на них, только с вас штрафная вещь как новичкам! — сразу же закомандовал самый трезвый.
- Не, поиграем потом. Вы что с инетом сделали, не работает ничего!
- Ну это… Да вроде ничего, позавчера пролили пиво, 404 not found никого не удивил ведь как всегда?
- Да это фигня, вопрос в том — что вы сделали с инетом?
- Я со злости лупил битой по серверу с Базой Данных, у вас разве нету негра какого-то чтобы пропажей вещей и предметов занимался после этого?
- Черт побери! Что с инетом?
- Ааааа, это тот рубильник который мы опустили вниз? Мы не знали….Врубите а?
Все рады, все довольны. Игра продолжается. Приятной игры, и отсутствия лагов!
зы. текст ни на что не претендует и является выдумкой автора на более чем 100%![]()

Comments are off for this post
