www.open-tager.ru

открытый лазертаг форум
Текущее время: 23 ноя 2024, 15:59

Часовой пояс: UTC + 3 часа [ Летнее время ]


Реклама

Правила форума


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



Начать новую тему Ответить на тему  [ Сообщений: 5319 ]  На страницу Пред.  1 ... 502, 503, 504, 505, 506, 507, 508 ... 532  След.
Автор Сообщение
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 24 май 2018, 20:11 
Не в сети
Старожил

Зарегистрирован: 02 фев 2012, 17:24
Сообщений: 820
Откуда: Украина,Киев
С командой убить игрока я так и не розобрался ,при компиляции куча ошибок .... Как там те дужки розтавлять???


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 24 май 2018, 20:25 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Ну раз пошла такая пьянка...
Код:
 if((reload_state!=nothing_to_do)||(simples_in_queue!=0)||(curr_sound.simples_in_queue!=0)||(eeprom_is_open)||(curr_sound.play_now)) break;

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 24 май 2018, 20:28 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
maksim писал(а):
С командой убить игрока я так и не розобрался ,при компиляции куча ошибок .... Как там те дужки розтавлять???

Я сам то запутаюсь.
Давайте сначала со стартом баги исправим.

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 24 май 2018, 21:15 
Не в сети
Старожил

Зарегистрирован: 02 фев 2012, 17:24
Сообщений: 820
Откуда: Украина,Киев
if((reload_state!=nothing_to_do)||(simples_in_queue!=0)||(curr_sound.simples_in_queue!=0)||(eeprom_is_open)||(curr_sound.play_now)) break;

ну тут на новую игру реагирует только после смерти .......


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 24 май 2018, 21:17 
Не в сети
Старожил

Зарегистрирован: 02 фев 2012, 17:24
Сообщений: 820
Откуда: Украина,Киев
тут уже не получается довести до пропадания звука.....


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 25 май 2018, 06:10 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Смотрите - у нас же прилёт пули во время перезарядки не приводит к проблемам?
Как то же всё разруливатся.
Надо посмотреть как обработчик прилёта пули отрабатывает.

Давно Аскетом не занимался, нужно погружаться в тему.
И пульта такого у меня нет, не смогу воспроизвести частые нажатия.

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 25 май 2018, 06:33 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
maksim писал(а):
if((reload_state!=nothing_to_do)||(simples_in_queue!=0)||(curr_sound.simples_in_queue!=0)||(eeprom_is_open)||(curr_sound.play_now)) break;

ну тут на новую игру реагирует только после смерти .......

maksim писал(а):
if((reload_state!=nothing_to_do)||(simples_in_queue!=0)||(curr_sound.simples_in_queue!=0)||(eeprom_is_open)||(curr_sound.play_now)) break;

ну тут на новую игру реагирует только после смерти .......



Тогда уберите |(curr_sound.play_now)
так

if((reload_state!=nothing_to_do)||(simples_in_queue!=0)||(curr_sound.simples_in_queue!=0)||(eeprom_is_open)) break;

Извините, замучил Вас.
Попробую тут у себя все вспомнить и настроить, тогда отстану.... :)

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 25 май 2018, 06:49 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Открыл какие то исходники у себя, и там функция game_over() уже есть!
Код:
void game_over(bool illumination){
   
         life = 0;
         life_in_percent=0;
         WOUND_LED_ON;
         beep(1000, 3, 128);
//         WOUND_LED_OFF;
         display_life(life);//отобразим уровень жизни на диодах
         display_life_update();//отобразим уровень жизни на ЖКИ
         volatile uint8_t keypress_cntr; //счетчик циклов, в течении которых курок был нажат
         keypress_cntr = 0;
   
   if (curr_sound.simples_in_queue>1) //если звук уже воспроизводится
   {
      curr_sound.simples_in_queue=1;//закроем eeprom
      while (eeprom_is_open);//дождемся, пока eerom закроется
   }
            
//         while (eeprom_is_open);//дождемся, пока eerom закроется
         if(illumination) playgameoversound();
         if ((eeprom_read_byte(&eeprom_tm_serial_num.device_code)!=0)&&(eeprom_read_byte(&eeprom_tm_serial_num.device_code)!=0xFF))

                              /*если ТМ ключ уже занесён в память*/
         {

            joystick_event=no_pressing;
            keyboard_event=no_key_pressing;
            tm_event=no_tm_event;
            uint8_t tm_valide;
            tm_valide=0;
            lcd_bl_off();
                                 
                                 
            while (!tm_valide)
            {//[while]
               lcd_clrscr();
               lcd_home();
               lcd_puts("Для активации");
               lcd_gotoxy(0, 1);
               lcd_puts("приложите ключ");
               while (tm_event == no_tm_event)
               {
                  if(illumination)
                  {
                     WOUND_LED_INVERT;
                     USART_PutChar('1');
                     timer2 = 0;
                     while (timer2 < 1000);
                     WOUND_LED_INVERT;
                     timer2 = 0;
                     while (timer2 < 1000);   
                  }

                                    
               };
               switch(tm_event)
               {//[switch]
                  case no_tm_event:
                  {                                 
                  }
                  break;
               
                  case tm_crc_error:
                  {
                     lcd_clrscr();
                     lcd_home();
                     lcd_puts("Ошибка CRC");
                     timer2 = 0;
                     while (timer2 < 6000){};
                     tm_event=no_tm_event;
                  }
                  break;

                  case tm_crc_ok:
                  {
                     if (tm_verification())    
                     {    tm_valide=1;
                        lcd_clrscr();
                        lcd_home();
                        lcd_puts("Удачи!");
                        timer2 = 0;
                        while (timer2 < 6000){};
                        tm_event=no_tm_event;
                        break;
                     }   
                     lcd_clrscr();
                     lcd_home();
                     lcd_puts("Не тот ключ");
                     timer2 = 0;
                     while (timer2 < 6000){};
                     /*
                     lcd_clrscr();
                     lcd_home();
                     lcd_puts("Для активации");
                     lcd_gotoxy(0, 1);
                     lcd_puts("приложи ключ");
                     */
                     tm_event=no_tm_event;
                                          
                                                      
                  }

                  break;
            
               }//[/switch]
            }//[while]
                              
         }//end if
                           
         else //тач мемори не записан в память
         {//[else]                      
            lcd_bl_off();
            display_status();
            rx_event = rx_event = NOT_EVENT;
            ir_message.control_byte = 0;
            volatile uint8_t pyr_on_counter=4*3;//на 3 секунды включим реле перотехники
            volatile uint8_t siren_on_counter=4*60;//на 60 секунд включим реле перотехники
            PYROTECHNICS_ON;
            BULLETS_OUT_LED_ON;         
            while(!(((ir_message.control_byte ==Valid_value)&&(ir_message.ID==Command)&&(ir_message.param==0x05))||(joystick_event == key_central_pressing)))//пока не получим команду "старт"
            {//[while]
               rx_event = NOT_EVENT;
               while((rxCount==0)&&(rx_event != RX_MESSAGE_COMPLITE)&&(joystick_event == no_pressing))//пока нет никаких команд пульта
               {//[while]
                  if(illumination)
                  {                                       
                     WOUND_LED_INVERT;
                     USART_PutChar('1');
                     timer2 = 0;
                     while (timer2 < 1000);
                     WOUND_LED_INVERT;
                     timer2 = 0;
                     while (timer2 < 1000);
                     if ( pyr_on_counter >0)
                     {
                        pyr_on_counter--;
                        if ( pyr_on_counter ==0) PYROTECHNICS_OFF;
                     }
                     if ( siren_on_counter >0)
                     {
                        siren_on_counter--;
                        if ( siren_on_counter ==0) BULLETS_OUT_LED_OFF;
                     }                     
                  }

               }//[while]
               
               if(joystick_event!=key_central_pressing)joystick_event = no_key_pressing;
               if (rx_event == RX_MESSAGE_COMPLITE) ir_message = get_ir_message_from_buffer();//пришла команда пульта, выдергиваем значения команды из буфера ИК приемника   
               else //[else]
               {                     
                  if (rxCount>0) finde_message_in_bt_buffer();                     
               }//[else]                                 
            }//[while]
            /*
            while(keypress_cntr < 20)
            {
               WOUND_LED_INVERT;
               USART_PutChar('1');
               timer2 = 0;
               while (timer2 < 1000);
               WOUND_LED_INVERT;
               timer2 = 0;
               while (timer2 < 1000);
               switch (FIRE_KEY_IN&FIRE_KEY_PIN) //проверяем, нажат ли курок
               {
                  case 0:  keypress_cntr++ ; break;
                  case FIRE_KEY_PIN: keypress_cntr = 0; break;
                  default: keypress_cntr = 0;   
               }
                  
            }
            */
         }   //end else //тач мемори не записан в память
         //"оживаем" - начинаем новую игру
         PYROTECHNICS_OFF;   
         BULLETS_OUT_LED_OFF;                     
         if (simples_in_queue>1) //если звук выстрла воспроизводится
         {//[if]
            simples_in_queue=1;//закроем eeprom
            while (eeprom_is_open);//дождемся, пока eerom закроется
         }//[if]
         init_var(); //инициализируем переменные
         joystick_event=no_pressing; //очищаем события джойстика
         keyboard_event=no_key_pressing;//очищаем события триггера
         reload_key_event=no_key_pressing;//очищаем события перезарядки
         rx_event = NOT_EVENT;   //очищаем события ИК приемника
         display_status();//обновляем информацию на дисплее
         //         display_life(life);//отобразим уровень жизни на диодах
         WOUND_LED_ON;
         playstartsound();
         //код обработки дополнительной команды
            WOUND_LED_OFF;
         /*   
         WOUND_LED_OFF;
         init_var();//"оживаем" - начинаем новую игру
         joystick_event=no_pressing;
         keyboard_event=no_key_pressing;
         tm_event=no_tm_event;
         */
         //   display_status();   
   
}

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 25 май 2018, 07:13 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Получилось воспроизвести ситуацию у себя!
Буду искать...

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 25 май 2018, 08:11 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Вот с такой комбинацией
if((reload_state!=nothing_to_do)||(simples_in_queue!=0)||(curr_sound.simples_in_queue!=0)||(eeprom_is_open)) break;


Дрючил как мог - все нормально.
https://www.youtube.com/watch?v=G0HJ3sj ... e=youtu.be

На пульте кнопка хреновая, так что жать "как ветер" не получается.

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 5319 ]  На страницу Пред.  1 ... 502, 503, 504, 505, 506, 507, 508 ... 532  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB