Imperia Online България  
Април 16, 2024, 15:37:04 *
Добре дошъл/дошла, Гост. Моля, въведи своето потребителско име или се регистрирай.
Изгуби ли регистрационния е-мейл?

Влез с потребителско име, парола и продължителност на сесията
 
   Начало   Помощ Търси Вход Регистрация  
Страници: [1]   Надолу
  Изпечатай  
Автор Тема: Скрити мечове, атака стелт!  (Прочетена 1786 пъти)
0 Членове и 1 Гост преглежда(т) тази тема.
Daniel
Полковник
******

Karma: +278/-261
Неактивен Неактивен

Публикации: 1269


Nato е организация за военно сътрудничество.


Профил
« -: Ноември 11, 2016, 12:20:30 »

В играта е заложено, че минималното време за атака между играчите е 10 минутки. Джиткам си аз цял ден и по едно време по навик ли, по неволя натиснах F5 и гледам мечове към мен. Едно, че има мечове, друго че времето ми за реагиране е 3 минутки. Нападнаха ме от военен пост, но най-интересното е, че играта си прави през определено време опреснение с пост заявка xjxfun=refreshUI и мечове няма. Значи играта си рефрешва нонстоп и няма нужда да има моя намеса, за да ми покаже мечовете обикновено, но в някой случаи кода не се зарежда от ajax. Спасих си армията, но въпроса ми е, защо когато играта си прави рефреш мечовете не се появяват? От кеширането на браузъра ли се получава този проблем? Идва момент, в който атака пътуваща към теб става инкогнито и ти не я виждаш, докато не ти се проведе битката. Това означава, че има проблем с визуализирането на мечовете от браузърите. Определено компа или браузъра, или флаша не ми бяха забили.  
« Последна редакция: Ноември 11, 2016, 13:57:27 от Daniel » Активен


Човек трябва да бъде достатъчно голям, за да признае грешките си, достатъчно умен, за да спечели от тях, и достатъчно силен, за да ги поправи. (Джон Максуел)
Vania
Community Manager
*

Karma: +251/-431
Неактивен Неактивен

Публикации: 4239


Профил
« Отговор #1 -: Ноември 14, 2016, 15:07:41 »

Необходимо е да се рефрешва ръчно. Играта не рефрешва автоматично.
Прочетох на няколко места, че сте ни пратили имейл, който не сме "отразили". Бихте ли ми писали лично за коя дата става въпрос и от коя поща е пратено писмото, за да проверим. Отговаря се на всички писма, постъпили на пощата в рамките на деня, в който са постъпили, при голяма натовареност -  на следващия ден, а в най-лошия случай, какъвто бе последният проблем с армиите и последвалия бекъп - може да има и още ден забавяне, ако въпросът не е от голяма важност.
Активен


Vania
Bulgarian Community Manager
Daniel
Полковник
******

Karma: +278/-261
Неактивен Неактивен

Публикации: 1269


Nato е организация за военно сътрудничество.


Профил
« Отговор #2 -: Ноември 14, 2016, 16:50:12 »

Необходимо е да се рефрешва ръчно. Играта не рефрешва автоматично.
Прочетох на няколко места, че сте ни пратили имейл, който не сме "отразили". Бихте ли ми писали лично за коя дата става въпрос и от коя поща е пратено писмото, за да проверим. Отговаря се на всички писма, постъпили на пощата в рамките на деня, в който са постъпили, при голяма натовареност -  на следващия ден, а в най-лошия случай, какъвто бе последният проблем с армиите и последвалия бекъп - може да има и още ден забавяне, ако въпросът не е от голяма важност.
В играта е заложено при промяна (провеждане на битка върнала се армия) да се рефрешва автоматично. Подава си се пост заявка за рефреш. Заложени са така наречените event listener функции, които следят за някаква промяна. Дали ще е натиснат бутон, промяна на някаква стойност или поле, няма значение, чрез ajax технология се подава заявка към сървърният език, който връща резултат и примерно JS показва броя нови съобщения без реално да съм направил някакъв рефреш с F5. Ако не знаете какво е аjax може да се запознаете  тук (http://www.w3schools.com/xml/ajax_intro.asp). Когато някой изпрати атака към играч, мечовете изкачат самички, не е нужно да натискаме F5. Проблема идва от това, че не всеки път мечовете излизат самички и от това следват редица интересни последици. Стелт атаки, поради не визуализирана информация. Нямам възможността да тествам дали при появяването на мечовете се прави пост заявка за рефреш от играта, но ако не се прави то това е голяма глупост. Ако някой ме нападне е хубаво играта да рефрешва и при мен за да се появяват мечовете, но няма как да проверя дали се праща заявка, освен ако някой не ми прати атака само за теста. Ако има подадена пост заявка за рефреш при визуализиране на мечовете освен при нападащият и при защитника (не само да се очаква от ajax отговор) няма да има такъв проблем. Не съм тествал дали има рефреш, но ако има при подаването на мечове такъв рефреш от играта значи трябва да се търси друго решение. Например в момента на атаката браузъра е кечнал страницата без мечовете, то те НЕ се визуализират, освен ако директно не сме им задали рефреш с F5. По принцип е сложен таймер отброяващ времето до провеждане на битката, който по неволя би трябвало да се справи с този проблем, но явно в някой случаи браузърите не визуализират информацията. Ето една тема в която се разисква такъв проблем:
(http://stackoverflow.com/questions/367786/prevent-browser-caching-of-jquery-ajax-call-result)
Проблема не е масов, просто защото се разчита на динамиката на потребителя. Тоест, когато потребителя извършва някакво действие и то е свързано с рефреш да се прави автоматичен такъв. Но както си бях оставил лаптопа за 10 минутки да си текът атаките и хоп по навик натиснах F5 и атаката си тече към мен и то с оставащи 3 минутки до битката. Не може да получаваш съобщения от различните дейности или играчи в ИО и на следващият момент да ти рефрешне играта с червено писънце (бяхте набит). 
Активен


Човек трябва да бъде достатъчно голям, за да признае грешките си, достатъчно умен, за да спечели от тях, и достатъчно силен, за да ги поправи. (Джон Максуел)
Vania
Community Manager
*

Karma: +251/-431
Неактивен Неактивен

Публикации: 4239


Профил
« Отговор #3 -: Ноември 14, 2016, 18:04:50 »

В играта е заложено при промяна (провеждане на битка върнала се армия) да се рефрешва автоматично. Подава си се пост заявка за рефреш. Заложени са така наречените event listener функции, които следят за някаква промяна. Дали ще е натиснат бутон, промяна на някаква стойност или поле, няма значение, чрез ajax технология се подава заявка към сървърният език, който връща резултат и примерно JS показва броя нови съобщения без реално да съм направил някакъв рефреш с F5. Ако не знаете какво е аjax може да се запознаете  тук (http://www.w3schools.com/xml/ajax_intro.asp). Когато някой изпрати атака към играч, мечовете изкачат самички, не е нужно да натискаме F5. Проблема идва от това, че не всеки път мечовете излизат самички и от това следват редица интересни последици. Стелт атаки, поради не визуализирана информация. Нямам възможността да тествам дали при появяването на мечовете се прави пост заявка за рефреш от играта, но ако не се прави то това е голяма глупост. Ако някой ме нападне е хубаво играта да рефрешва и при мен за да се появяват мечовете, но няма как да проверя дали се праща заявка, освен ако някой не ми прати атака само за теста. Ако има подадена пост заявка за рефреш при визуализиране на мечовете освен при нападащият и при защитника (не само да се очаква от ajax отговор) няма да има такъв проблем. Не съм тествал дали има рефреш, но ако има при подаването на мечове такъв рефреш от играта значи трябва да се търси друго решение. Например в момента на атаката браузъра е кечнал страницата без мечовете, то те НЕ се визуализират, освен ако директно не сме им задали рефреш с F5. По принцип е сложен таймер отброяващ времето до провеждане на битката, който по неволя би трябвало да се справи с този проблем, но явно в някой случаи браузърите не визуализират информацията. Ето една тема в която се разисква такъв проблем:
(http://stackoverflow.com/questions/367786/prevent-browser-caching-of-jquery-ajax-call-result)
Проблема не е масов, просто защото се разчита на динамиката на потребителя. Тоест, когато потребителя извършва някакво действие и то е свързано с рефреш да се прави автоматичен такъв. Но както си бях оставил лаптопа за 10 минутки да си текът атаките и хоп по навик натиснах F5 и атаката си тече към мен и то с оставащи 3 минутки до битката. Не може да получаваш съобщения от различните дейности или играчи в ИО и на следващият момент да ти рефрешне играта с червено писънце (бяхте набит). 

Аз не съм програмист и не е необходимо да съм запозната с цялата тази информация. Благодаря Ви все пак за професионалното обяснение. Разбирам, че Вие знаете много неща за програмирането и говорите със специфична терминология от тази сфера, че можете да пишете ботове, чекъри, скриптове, да бъркате в кода на играта и т.н., но тук не е подходящо място за парадиране с тези така полезни умения.
Аз пък от своя страна с думи прости Ви казах, че играта не се рефрешва автоматично по време на атака, и Вие трябва да рефрешвате, за да следите времето до удара. Това съм обяснявала доста пъти на играчи, които по точно същия начин са пропуснали да видят иконата за атака. Целта е именно да следите, да следите постоянно акаунта си за евентуални идващи атаки.

Активен


Vania
Bulgarian Community Manager
mahimus
DavidBruffAJ
Майор
*****

Karma: +150/-132
Неактивен Неактивен

Публикации: 631



Профил
« Отговор #4 -: Ноември 14, 2016, 22:54:07 »

мен ме удариха докато съм на линия и говорих по тел. със съотборник  Grin Grin Grin стоя си на компа говря си по телефона няма на екрана червени мечове и изведнъж виждам че вдигам ниво на акунта и учуден викам на съотборника аааааа нещо стана  Grin Grin Grin рефрешвам и какво да видя набили ме  *hahaha* *hahaha* *hahaha* *hahaha* явно не правиш ли нещо  по играта а само си гледаш монитора няма видиш червените мечове

интересно ми е да разбера така ли трябва да е или да си търся обезщетението

ето и битката: http://prntscr.com/d7a2ah
« Последна редакция: Ноември 14, 2016, 23:05:37 от mahimus » Активен

Daniel
Полковник
******

Karma: +278/-261
Неактивен Неактивен

Публикации: 1269


Nato е организация за военно сътрудничество.


Профил
« Отговор #5 -: Ноември 15, 2016, 00:49:27 »

Аз не съм програмист и не е необходимо да съм запозната с цялата тази информация. Благодаря Ви все пак за професионалното обяснение. Разбирам, че Вие знаете много неща за програмирането и говорите със специфична терминология от тази сфера, че можете да пишете ботове, чекъри, скриптове, да бъркате в кода на играта и т.н., но тук не е подходящо място за парадиране с тези така полезни умения.
Аз пък от своя страна с думи прости Ви казах, че играта не се рефрешва автоматично по време на атака, и Вие трябва да рефрешвате, за да следите времето до удара. Това съм обяснявала доста пъти на играчи, които по точно същия начин са пропуснали да видят иконата за атака. Целта е именно да следите, да следите постоянно акаунта си за евентуални идващи атаки.
Аз не парадирам с нищо, а казвам, че го мога. За да създадеш пък бот са нужни минимални познания, за cURL и доста опити за да стане. Да ровя се в изходният код на играта, защото ми е любопитно как е създадена, но някъде да сте видяли да поствам код по темата? Отностно мечовете, обяснете ми защо не се появяват автоматично? Да, да знам трябва да извършвам някаква дейност и да рефрешвам, но тогава идва най-простият за мен въпрос, защо когато си оставя машината и получавам съобщения те биват отчитани от играта и се рефрешват а мечовете не излизат (понякога)? Значи, идеята е точно такава, пращат ми атака и веднага трябва да излезнат мечовете, но понякога заради кечнатото инфо от браузъра не излизат. Има варянти това да се избегне, най-просто ще стане с вече готовият пост рефреш метод, който ползвате при провеждане на битка през определен период от време. Ако се въведе пък този тип цялостен авто рефреш, ще доведе до проблеми с отчитането на активността на потребителите, като лесно може да се добави в кода брояч и да не отчита в общата статистика, че този рефреш е направен от играч. Така ще се избегне проблема с постоянното (на линия). Но това е само един начин за разрешаване на проблема. Просто нямам време да тествам за да дам повече обяснения по темата. Да ако си рефрешваме от време на време няма да се получава този проблем, но то самата игра ни подтиква да не правим такива рефреши. Например повечето неща се зареждат в изкачащи прозорчета, мисии и прочие, от които не се знае, кои бутони водят до рефреш в играта. За теста пуснах глобалната карта през live http headers  и никъде нямаше рефреш на заден план на играта с пост заявка xjxfun=refreshUI към xajax_loader. Тоест дори да се ровя по глобалната карта е напълно възможно отново да не видя мечовете.  *pardon* За сметка на това, при провеждане на битка или връщане на армията, веднага се прави такава заявка от играта (което е супер). Както казах нямам възможността да тествам в момента дали при показване на мечовете има заявка xjxfun=refreshUI, но ако я имаше нямаше да го има този проблем (а ако я има и този проблем се превръща в доста по-сериозен за разрешаване). По спомен просто ми изкачаха мечовете без да имам такъв рефреш, което е мноого, много лошо. Вие повтаряте да рефрешваме и да следим акаунтите си, но то как да го правим, когато самата игра понякога ни отнася и докато си се ровим по картата или някъде из трибуната се оказва, че получаваме рефреш за проведена битка и червено писънце, че сме изяли боя. Та аз имам навика от време на време да натискам F5, така и се спасих, но доста хора ще изгорят, само защото не е сложено едно условие:
Код:
if ($underAttack == true) {
// Функция, която праща пост заявка xjxfun=refreshUI към xajax_loader за да извърши рефреш на страницата.
doRefresh();
}
Така каквото браузъра си е кечнал, се обновява изцяло и мечовете се показват. Ще се сложи една променлива вътре по дефаут да е false и ще се избегне и цикличният рефреш:
Код:

if ($underAttack == true) {
// Функция, която праща пост заявка xjxfun=refreshUI към xajax_loader за да извърши рефреш на страницата.
if ($isShowedSwords == false) {
doRefresh();
$isShowedSwords = true;
}
}

Е тук може малко да се поспори във вторият пример дали ще се реши цикличният проблем, нооо да кажем, че ще стане с малко проба грешка тестове. Та както и да е само илюстрирам набързо без да тествам код. Та има решения на проблема и не са нещо сложно за екипа от програмисти да го опише като логика. Все пак вероятно играта си има собствена работна рамка и всякакви отделни обектно ориентирани кодове под формата на класове. Вече имате готов код просто трябва да се опише правилната логика за рефреш при отправена атака и ще се избегне доста мрънкане по темата, а и ще е по-добре за геймплея.  *gamer*

« Последна редакция: Ноември 15, 2016, 00:53:24 от Daniel » Активен


Човек трябва да бъде достатъчно голям, за да признае грешките си, достатъчно умен, за да спечели от тях, и достатъчно силен, за да ги поправи. (Джон Максуел)
Daniel
Полковник
******

Karma: +278/-261
Неактивен Неактивен

Публикации: 1269


Nato е организация за военно сътрудничество.


Профил
« Отговор #6 -: Ноември 24, 2016, 15:51:04 »

Днес имах възможността да проверя теорията си за скритите мечове. Оказа се напълно вярна. При появяване на мечовете не се подава пост заявка за рефреш на акаунта който е под атака. Това означава, че атаката на стан или играч, може да бъде напълно скрита дори да си играем спокойно. Ако не се рефрешват "Моите мисии", няма как да се види че сме под атака. Най-основното нещо в играта не бива рефрешвано, но когато армия се прибере в империята веднага се поства рефреш заявка към сървъра. Това трябва да се поправи, а не да се разчита играча да транспортира ресурс между провките си на всеки 10 минутки или да пуска някъде атака през 10 минутки и да отваря нонстоп моите мисии за да се търсят атаки.  ;D  ;D  ;D
Активен


Човек трябва да бъде достатъчно голям, за да признае грешките си, достатъчно умен, за да спечели от тях, и достатъчно силен, за да ги поправи. (Джон Максуел)
Daniel
Полковник
******

Karma: +278/-261
Неактивен Неактивен

Публикации: 1269


Nato е организация за военно сътрудничество.


Профил
« Отговор #7 -: Ноември 24, 2016, 16:41:32 »

Пуснаха ми атака и я оставих да и изтече времето, тя беше върната от нападателя и бе пуснал нова, но нищо не се рефрешна докато не изтече времето на битката и не рефрешна защото таймера беше на 00 00 през което време се появи друга атака към мен със 6 минутно закъснение. През това време си ровех по глобалната карта с отворено меню мисии и какво да се види и както установихме връщането и изпращането на атака от някого към нас не се рефрешва от играта и остава скритоо от нас. Това е огромен бъг и заради това много армии ще изгърмят и войни ще се загубят ако не се оправи проблема. Нужно е при тукощо изпратена атака при защитника да се прави рефреш иначе мечовете ще си останат скрити при определени условия.  *sos* *PUNISH* *REDX*
Активен


Човек трябва да бъде достатъчно голям, за да признае грешките си, достатъчно умен, за да спечели от тях, и достатъчно силен, за да ги поправи. (Джон Максуел)
Страници: [1]   Нагоре
  Изпечатай  
 
Отиди на:  

Powered by PHP Powered by PHP Powered by SMF 1.1.12 | SMF © 2006-2009, Simple Machines LLC Валиден XHTML 1.0! Валиден CSS!