Next rebus:
GML
dc=list_read(cnt[day],1); //ilosc lekcji w tym dniu
var cl,od;
cl=666;
od=1;
if get_day_start(day)="08:55" od+=1; //jezeli jest dzis na 8:55 to ma zaczac od drugiej lekcji
for(i=od; i<=dc; i+=1) //przelatuje wszystkie lekcje
{
cls=get_lesson_start(i); //poczatek lekcji (godzina)
cle=get_lesson_end(i); //koniec lekcji (godzina)
if compare_time(h,m,cls)=1 && compare_time(h,m,cle)=-1 //jezeli czas (h,m) miesci sie miedzy poczatkiem i koncem to przypisz id
{
cl=i;
break;
}
}
if cl=666 //jezeli zadnej lekcji nie przypisalo
{
if compare_time(h,m,get_day_end(day))=-1 && compare_time(h,m,get_day_start(day))=1 //i jezeli miesci sie w czasie od poczatku wszystkich lekcji do konca wszystkich lekcji (np. 8:00 - 13:30)
{
cl=-1; //cl=-1
}
}
if cl=666 //jezeli nawet nie miesci sie w tym powyzej
{
draw_text(0,140,"Obecnie: Wolne :)");
}
else //elz
{
if cl=-1 //jezeli jest przerwa :P
{
bef=get_bef_les(day,h,m-15); //skrypt zwracajacy id lekcji ktora byla przed przerwa
if bef>0 //jezeli znalazlo lekcje ktora byla wczesniej
{
draw_text(0,120,"Poprzednio: "+string(get_lesson_name(bef)));
}
draw_text(0,140,"Obecnie: Przerwa");
}
else //jezeli natomiast nie ma przerwy, jest jakas lekcja
{
if !(cl=od) {draw_text(0,120,"Poprzednio: "+string(get_lesson_name(day,cl-1)));}
draw_text(0,140,"Obecnie: "+string(get_lesson_name(day,cl)));
}
}
Cały problem leży w tym, że nigdy nie ma sytuacji żeby cl=-1. Zawsze 666, mimo to że sie miesci w przedziale wszystkich lekcji :(
Wazzap? a compare_time przypominam:
compare_time(12,15,"13:15") --> return -1
compare_time(12,15,"12:15") --> return 0
compare_time(12,15,"11:15") --> return 1