Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка. Проверка IF или что-то другое, не могу отловить ошибку. 15 строчек 
:(
    Опции темы
godsgame
Дата 12.4.2006, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 29.8.2005

Репутация: нет
Всего: нет



Вобщем у меня в игре когда переходишь из города в какое-нить здание пишется: "Осуществляется переход, еще: ххх секунд"
Дело в том, что у некоторых игроков - это время уходит далеко в минус! (несмотся на проверку: if ( parseFloat(k) <= 0 ) { )
Извесные, но не проверенные факты:
1) Перед тем как уйти в минус, у одного игрокак время тормозмуло на "2", произошло типа небольшое зависание и потом время сразу переключилось на "-1"
2) Второй игрок писал, в строке статуса все-таки пишется "shopMain.php" (постоянно мигает), но почему-то фрейм с городом не обновляется (location.href='shopMain.php';)

И еще интересно, что у тех игроков у которых время уходит в минус - у них все таки переходит в данноые сдание,но иногда на "-1000", иногда на "-30" и т.д.. конкретного времени нету.

Очень интересно в чем тут дело.


Код

<head>
<script language="JavaScript" type="text/javascript">
    <!--starts        
        var k = 0;
        var lol = false;
        
        if (!parent.fchat) window.close();
                
        function t1( a ) {    
            if ( !lol ) {                            
                k = Math.round(Math.random() * 9) + 1;
                document.getElementById('i_pereh').innerHTML = "Осуществляется переход, еще: "+k+" сек.";
                lol = true;
                goTim( a );            
                return false;
            }
        } 
        
        function goTim( c ) {            
            document.getElementById('i_pereh').innerHTML = "Осуществляется переход, еще: "+k+" сек.";
            if ( parseFloat(k) <= 0 ) {
                if ( c == "Магазин" ) location.href='shopMain.php';
                if ( c == "Замок" ) location.href='komMain.php';                
                if ( c == "Телепорт" ) location.href='teleport.php';                
            }            
            k--;
            setTimeout("goTim('"+c+"')", 1000 );
        }                
    -->
    </script>
</head>

PM MAIL   Вверх
12345c
Дата 12.4.2006, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Где-то в другом месте есть вывод такой же фразы? Потому что этот участок не даёт ошибок и не может давать по логике. Возьмём, например:

Код
<script>i=1000;while(--i>0)
document.write((Math.round(Math.random() * 9) + 1)+'  ');</script>

PM WWW   Вверх
godsgame
Дата 12.4.2006, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 29.8.2005

Репутация: нет
Всего: нет



12345c,
больше такой фразы нигде нету!

я так понимаю тут проблема в:
Код

if ( parseFloat(k) <= 0 ) {


или в:

Код

if ( c == "Магазин" ) location.href='shopMain.php';


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

Вопрос остается открытым.
PM MAIL   Вверх
12345c
Дата 12.4.2006, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Я не посмотрел продолжение - если параметр функции tl(a) не будет 1 из 3 значений, время, конечно, будет уходить в минус.

Вызовите tl(" "), а через 10 секунд или меньше время станет в минусе. Если выполните goTim() напрямую, не через tl(), но с правильным параметром, переход будет. Ищите, где неправильный параметр, а лучше исключите эту возможность из функций.

Или tl() с правильным, оно посчитает с плюсами не более 10 с и перейдёт куда надо.
PM WWW   Вверх
godsgame
Дата 13.4.2006, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 29.8.2005

Репутация: нет
Всего: нет



12345c,
ну до такого простого я бы и сам догадался.
Название здания указывается правильно, иначе не работало бы у всех! Лично у меня всегда работало! никогда не было никаких минусов.

Может тут с бровзером у них что-то? Отрублено что-нить...?
PM MAIL   Вверх
12345c
Дата 13.4.2006, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Название в другой кодировке. Но потом каким-то образом вводится правильное.
Добавлено @ 14:11
Допишите контроль названий.

....Иначе бы не было ошибки.
PM WWW   Вверх
godsgame
Дата 13.4.2006, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 29.8.2005

Репутация: нет
Всего: нет



12345c,
Цитата

Допишите контроль названий.


на счет этого можно поподробней?
Добавлено @ 14:21
вот кусочек, чтобы не было сомнений:
Код

                <table align="center">                
                <tr>
                    <td><IMG SRC="img/gorod.jpg" WIDTH=700 HEIGHT=350 BORDER=0 ALT="" USEMAP="#end_Map"></td>
                </tr>
                <tr><td>
                    <MAP NAME="end_Map">
                    <AREA SHAPE="poly" onmouseover="sh2('Выход');" COORDS="396,351, 395,334, 403,326, 416,326, 420,332, 422,334, 421,346">
                    <AREA SHAPE="poly" onmouseover="sh2('Замок');"  COORDS="247,196, 284,218, 319,213, 349,221, 391,218, 414,218, 468,190, 487,95, 455,83, 437,101, 437,128, 419,121, 426,44, 407,13, 361,14, 364,57, 348,59, 337,13, 290,16, 302,131, 291,130, 290,109, 262,95, 239,110" onclick="t1('Замок');">
                    <AREA SHAPE="poly" onmouseover="sh2('Телепорт');"  COORDS="252,230, 269,237, 273,252, 257,277, 232,284, 204,275, 197,256, 208,243" onclick="t1('Телепорт');">            
                    <AREA SHAPE="poly" onmouseover="sh2('Магазин');"  COORDS="427,241, 449,263, 481,247, 534,292, 561,282, 564,247, 485,191, 446,209, 432,219" onclick="t1('Магазин');">
                    <AREA SHAPE="poly" onmouseover="sh2('Больница');"  COORDS="323,270, 342,259, 345,245, 346,238, 338,225, 333,228, 320,218, 317,236, 308,242, 307,260">
                    <AREA SHAPE="poly" onmouseover="sh2('Кузница');"  COORDS="263,287, 288,266, 293,274, 315,290, 296,311, 284,303, 275,303, 261,298">
                    </MAP>
                </td></tr>                
                </table>

Добавлено @ 14:22
onclick="t1('Телепорт');">
432,219" onclick="t1('Магазин');">

- это как я вызываю
PM MAIL   Вверх
12345c
Дата 13.4.2006, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



к примеру,
Код

if ( parseFloat(k) <= 0 ) {
if ( c == "Магазин" ) location.href='shopMain.php';
else if ( c == "Замок" ) location.href='komMain.php';                
else if ( c == "Телепорт" ) location.href='teleport.php';                
else сделать что_то, отмечающее ошибку, 
например, отправить имя "с" в спец.файл с запросом для отладки;
} 

PM WWW   Вверх
godsgame
Дата 13.4.2006, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 29.8.2005

Репутация: нет
Всего: нет



кодировка указана в самом начале:
Код

<html>
<head>            
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

Добавлено @ 14:23
12345c,
ага ясн, вечерком проверю спасибо
PM MAIL   Вверх
godsgame
Дата 13.4.2006, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 29.8.2005

Репутация: нет
Всего: нет



12345c,
Написал Алерт как ты советовал, но тот человек который проверял говорил, что даже если время идет в минус никакого Алерта нету! Я прогрейдил процедуро до такой (см. ниже), и тот человек сказал что больше время в минус не уходило, но если чесно я сомневаюсь, что я закрыл этот лаг. Буду ждать другого тестера.

Код

        function goTim( c ) {            
            document.getElementById('i_pereh').innerHTML = "Осуществляется переход, еще: "+k+" сек.";
            if ( parseFloat(k) <= 0 ) {
                if ( c == "Магазин" ) {
                    document.location = 'shopMain.php';
                    clearTimeout( id );
                    return false;
                }
                else if ( c == "Замок" ) {
                    document.location = 'komMain.php';                
                    clearTimeout( id );
                    return false;
                }
                else if ( c == "Телепорт" ) {
                    document.location = 'teleport.php';
                    clearTimeout( id );
                    return false;
                }
                else alert('Если вы это читаете, значит произошла ошибка, просьба сообщить администрации на почту: [email protected] след. данные: \n к='+k+' c= '+c);
            }            
            k--;
            id = setTimeout("goTim('"+c+"')", 1000 );
        } 



т.е я дописал:
Код

clearTimeout( id );
return false;


могло ли это исправить баг? лично я сомневаюсь
PM MAIL   Вверх
12345c
Дата 13.4.2006, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Могло. Если страница скачивается не сразу, то, пока новая грузится, прежняя будет работать и обращать счётчик в минус. На локальных файлах и при хорошем доступе это не будет наблюдаться. Если пакет запроса на обовление по пути теряется, то через 1-2 мин. браузер отказывается от обновления страницы.
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0654 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.