SEGAMEGA |
Отправлено: 21 Февраля, 2014 - 14:29:35
|
Прохожий
Покинул форум
Сообщений всего: 10
Дата рег-ции: Февр. 2014
Репутация: 0
|
Здравствуйте.
Сначала опишу проблему и сам принцип скрипта:
Во время игры появляются картинки с вещью и персонажем, который её приобрел.
Необходимо посчитать количество определенной вещи, приобретенной за игру каждым персонажем. Image_200 - 30ая минута матча, при которой скрипт должен заканчивать работу, но к сожалению, скрипт не останавливается и до 31ой минуты, приходится нажимать SHIFT+CTRL+Z. Я понимаю, что код тяжелый, посоветуйте как его упростить.
Пытался пробовать ситуацию, когда никто ничего не покупает (т.е. скрипт не должен входить в циклы, а просто должен ждать 30ой минуты), но все равно не дожидается,
пробовал создавать отдельный скрипт на ожидание 30ой минуты (в новой программе), он работает.
Собственно весь код разместить не вышло (ограничения 2кб), выведу примерно:
CODE://Загрузка
Здесь загружаются 44 изображения [150][50]
//
int Hero[110];
for (int n=1; n<111; n++)
{
Hero[n]=0;
}
int kol_obs;
int k10;
wards:
kol_obs=findimage(-1, #Image_ObsWard[0][0], 0, #PosX_ObsWard[0], #PosY_ObsWard[0], 0, 0, 1600, 1200, 10, 10, 10, 10, 10, 10, 90, 1, w);
k10=findimage(-1, #Image_200[0][0], 0, #PosX_200[0], #PosY_200[0], 0, 0, 815, 50, 10, 10, 10, 10, 10, 10, 60, 1, w);
if (k10<1)
{
if(kol_obs>0)
{
for (int n=0; n<kol_obs; n++)
{
Hero[5]=findimage(-1, #Image_CM[0][0], 0, #PosX_CM[0], #PosY_CM[0], 0, PosY_ObsWard[n], 1600, PosY_ObsWard[n]+55, 10, 10, 10, 10, 10, 10, 75, 1, w);
и т.д 44 изображения
}
}
goto wards;
}
else
{
fopen ("C:\Users\Nats\Documents\heroes.txt", "w");
for (int n=1; n<111; n++)
{
if (Hero[n]!=0)
{
fwrite (n);
fwrite (":");
fwrite (Hero[n]);
}
}
} (Отредактировано автором: 21 Февраля, 2014 - 14:29:55) |
|
|
SEGAMEGA |
Отправлено: 21 Февраля, 2014 - 15:30:56
|
Прохожий
Покинул форум
Сообщений всего: 10
Дата рег-ции: Февр. 2014
Репутация: 0
|
Nexur пишет: Я лично по этому клочку кода непонял где у тебя идет проверка времени. Есть функция gettime() с помощью нее легко 30 минут отслеживается.
k10=findimage(-1, #Image_200[0][0], 0, #PosX_200[0], #PosY_200[0], 0, 0, 815, 50, 10, 10, 10, 10, 10, 10, 60, 1, w); - В игре есть часы, эта функция ждет появления 30ти минут на этих часах.
Спасибо за функцию gettime(), не знал, пригодится. |
|
|
Nexur |
Отправлено: 21 Февраля, 2014 - 15:55:37
|
Наблюдатель
Покинул форум
Сообщений всего: 25
Дата рег-ции: Янв. 2014
Репутация: 1
|
k10=findimage(-1, #Image_200[0][0], 0, #PosX_200[0], #PosY_200[0], 0, 0, 815, 50, 10, 10, 10, 10, 10, 10, 60, 1, w);
Картинка меняется? Так мож будет работать
k10=findimage(1, #Image_200[0][0], 0, #PosX_200[0], #PosY_200[0], 0, 0, Размеры окна, w); Поиск 1 изображения в заданных координатах |
|
|
SEGAMEGA |
Отправлено: 21 Февраля, 2014 - 16:05:18
|
Прохожий
Покинул форум
Сообщений всего: 10
Дата рег-ции: Февр. 2014
Репутация: 0
|
Nexur пишет: k10=findimage(-1, #Image_200[0][0], 0, #PosX_200[0], #PosY_200[0], 0, 0, 815, 50, 10, 10, 10, 10, 10, 10, 60, 1, w);
Картинка меняется? Так мож будет работать
k10=findimage(1, #Image_200[0][0], 0, #PosX_200[0], #PosY_200[0], 0, 0, Размеры окна, w); Поиск 1 изображения в заданных координатах
Ты не совсем понял )
Функция работает, но когда она не в программе которую я описал выше, а отдельно (в новой), но в программе что-то происходит из-за чего эта функция не срабатывает. |
|
|
|