Сообщение от DeeJex
Какие нафиг хендлы
|
оО, ты чё, Хендлы сила, если умееш пользоватся командами After,Type, New, Before, First, Last, Each, Insert, Delete,Handle и Object (позволяет сразу-же перейти типу с заданным хендлом)...
В его случае надо создать глобалку в которой будет хранится последний хендл и тот на котором он закончил поиск и далее спомощью пары манипуляций начинать перебор сразу с того места где он его закончил. Вот представь что у него в типе 2 000 объектов, добавилось 2, и изза этих 2-х перебирать все 2 002 объекта и проводить сравнение не разумно!
в его случае надо чёт типо такого:
Graphics 800,600,32,2
Global HdlTec,HdlMax,Ft=CreateTimer(10)
Type Buliga
Field HP
End Type
CrBuligs(5)
For OoO.Buliga = Each Buliga
HdlTec=Handle(OoO)
OoO\HP=Rand(1,100)
Next
Repeat
WaitTimer(Ft)
If HdlTec<HdlMax
While Not HdlTec=HdlMax
jjj.Buliga=Object.Buliga(HdlTec)
jjj = After jjj
If Handle(jjj)
HdlTec=Handle(jjj)
jjj\HP=Rand(1,100)
EndIf
Wend
Else
CrBuligs(2)
Print HdlMax
Print HdlTec
EndIf
If KeyHit(1) Then Quit=True
Until Quit
Function CrBuligs(Count%)
Local bbb
For bbb=1 To Count%
NewBulg.Buliga=New Buliga
HdlMax=Handle(NewBulg)
NewBulg\HP=100
Next
End Function
Перебор не с первого элемента находится в цикле
Repeat>Until.
Сообщение от CRASHER
Такое ощущение что это просто и часто используется.
|
Ну как бы сказать, это используется часто, особенно если делаеш сервер)))(ну в моем случае), но там если допускаеш ошибку то долго ее искать, поэтому иногда это сложно)