Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Закрытая тема
Старый 04.02.2014, 18:53
ivaniyses вне форума Посмотреть профиль Отправить личное сообщение для ivaniyses Найти все сообщения от ivaniyses
  № 1  
ivaniyses
[+1.4 08.02.14]
 
Аватар для ivaniyses

Регистрация: Dec 2013
Адрес: Барабинск
Сообщений: 137
Отправить сообщение для ivaniyses с помощью Skype™
По умолчанию Опять таймер...

Проблема в том, что когда приложение нормально работает, всё идёт отлично, и работает так как надо.
Но когда я ускоряю процесс игры сторонним П.О. функция таймера выполняется максимальное количество раз.
p/s: Когда таймер доходит до определённого времени, он выполняет определённую функцию (добавляет +1 к переменной), но когда я запускаю чит, и ускоряю флешку он выполняет функцию до максимального колличества...(таймер не ускоряется, но функция работает неправельно)
Если кто понял в чём проблема помогите.

Код:
Код AS3:
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.events.MouseEvent;
 
var money:Number = 50;
benzin_txt1.text = String(money);
 
var primer6:Timer = new Timer(100);//создаем экземпляр класса Timer
primer6.start();
//запускаем Timer;
 
primer6.addEventListener(TimerEvent.TIMER, tymerF);
 
function tymerF(event:TimerEvent):void
{
 
	var time:Date = new Date();//создаем экземпляр класса Date, чтобы можно было пользоваться методами класса
 
	var second:Number = time.getSeconds();//переменной second присваиваем значение текущей секунды
 
 
 
	time_txt.text = String(second);//в текстовое поле вывести секунды
	if (money <= 49)
	{
		if (second == 0)
		{
			money += 1;
			benzin_txt1.text = String(money);
		}
	}
}
 
 
 
 
 
 
 
 
 
btn1.addEventListener(MouseEvent.CLICK, fun2);
 
function fun2(e:MouseEvent):void
{
	if (money >= 10)
	{
		money -=  10;
		benzin_txt1.text = String(money);
	}
}

Старый 04.02.2014, 19:44
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Что именно работает не правильно? Тут не телепаты

п.с. Могу сразу сказать, что вот это условие
Код AS3:
if (second == 0)
вряд ли будет срабатывать (ну по крайней мере глючить будет точно)

Старый 04.02.2014, 20:14
BAXTER вне форума Посмотреть профиль Отправить личное сообщение для BAXTER Найти все сообщения от BAXTER
  № 3  
BAXTER
 
Аватар для BAXTER

Регистрация: Dec 2013
Сообщений: 19
Согласен с caseyryan.
таймер срабатывает каждые 100 мс, тем самым 10 раз в секунду вызывает функцию tymerF, в которой меняет значение second;
но при ускорении игры таймер не может "поймать" значение second чтобы равнялось 0;

Не знаю зачем вызывать функцию 600 раз в минуту, чтобы всего один раз изменить значение money;

Я бы сделал примерно:

Код AS3:
var money:Number = 50;
var second:Number = 0;
benzin_txt1.text = String(money);
 
//изменим немного таймер
//поставим на одну секунду
var primer6:Timer = new Timer(1000,60);
primer6.start();
 
primer6.addEventListener(TimerEvent.TIMER, tymerF);
primer6.addEventListener(TimerEvent.TIMER_COMPLETE, onComplete);
 
function tymerF(e:TimerEvent):void
{
	second++;
	time_txt.text = String(second);
}
 
function onComplete(e:TimerEvent):void
{
	if (money <= 49)
	{
		money++;
		benzin_txt1.text = String(money);
	}
	second = 0;
	primer6.start();
}


Последний раз редактировалось BAXTER; 04.02.2014 в 20:30.
Старый 04.02.2014, 20:37
ivaniyses вне форума Посмотреть профиль Отправить личное сообщение для ivaniyses Найти все сообщения от ivaniyses
  № 4  
ivaniyses
[+1.4 08.02.14]
 
Аватар для ivaniyses

Регистрация: Dec 2013
Адрес: Барабинск
Сообщений: 137
Отправить сообщение для ivaniyses с помощью Skype™
А теперь скомпилируй приложение и ускорь его...
P/S: Мне нужно сделать таймер который нельзя будет взломать!
То, что ты мне предложил я использовал до того как понял что приложение уязвимо на ст.П.О...

Добавлено через 1 минуту
Так вот я и спрашиваю как в моём случае сделать не глючный таймер, но при этом чтобы он серялся к временем на компьютере, как впрочем у меня

Старый 04.02.2014, 21:00
Rzer вне форума Посмотреть профиль Отправить личное сообщение для Rzer Посетить домашнюю страницу Rzer Найти все сообщения от Rzer
  № 5  
Rzer
 
Аватар для Rzer

блогер
Регистрация: Feb 2007
Адрес: Spb
Сообщений: 613
Записей в блоге: 8
Отправить сообщение для Rzer с помощью ICQ
Проверяй в условии дату
Код AS3:
var curTime:Number = new Date().getTime();
if (curTime-lastTime > SECONDS_PER_GOLD*1000){
lastTime  =curTime;
money++;
}

Старый 04.02.2014, 22:01
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 6  
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Название темы не отражает сути вопроса.
__________________
Поймай яблоко 2!

Создать новую тему Закрытая тема Часовой пояс GMT +4, время: 11:16.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 11:16.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.