Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Тяжелый скрипт.

Страниц (1): [1]
 

1. SEGAMEGA - 21 Февраля, 2014 - 06:29:35 - перейти к сообщению
Здравствуйте.
Сначала опишу проблему и сам принцип скрипта:
Во время игры появляются картинки с вещью и персонажем, который её приобрел.
Необходимо посчитать количество определенной вещи, приобретенной за игру каждым персонажем. 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]);
}
}
}
2. Nexur - 21 Февраля, 2014 - 07:28:25 - перейти к сообщению
Есть функция gettime() с помощью нее легко 30 минут отслеживается. В чем причина поиска картинки 30 минуты?
3. SEGAMEGA - 21 Февраля, 2014 - 07:30:56 - перейти к сообщению
 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(), не знал, пригодится.
4. Nexur - 21 Февраля, 2014 - 07:33:08 - перейти к сообщению
Увидел да позно Радость почитай все фунции в какой то теме все перечислены мож еще что пригодиться.
5. SEGAMEGA - 21 Февраля, 2014 - 07:44:07 - перейти к сообщению
 Nexur пишет:
Увидел да позно Радость почитай все фунции в какой то теме все перечислены мож еще что пригодиться.

Читал, эту наверно не заметил )
Есть предположения почему не работает ?
6. Nexur - 21 Февраля, 2014 - 07:55:37 - перейти к сообщению
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 изображения в заданных координатах
7. SEGAMEGA - 21 Февраля, 2014 - 08:05:18 - перейти к сообщению
 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 изображения в заданных координатах


Ты не совсем понял )
Функция работает, но когда она не в программе которую я описал выше, а отдельно (в новой), но в программе что-то происходит из-за чего эта функция не срабатывает.
8. Nexur - 21 Февраля, 2014 - 08:26:46 - перейти к сообщению
Тогда не знаю Не понял Могу предположить только , что гдето ошибка синтаксиса. Не там скобка открыта/закрыта и т.д. и т.п всякое бывает. Я недавно писал код небольшой, все работало перенес его в другую программу. в одной работает в другой нет Радость Так и непонял почему.
9. SemEMP - 08 Марта, 2014 - 02:00:50 - перейти к сообщению
 Nexur пишет:
ошибка синтаксиса

90% обычно ошибка в нём бывает, особенно если где-то забыта ";"
Сам как-то промучился из-за этого

Powered by ExBB FM 1.0 Final