konokrad666
Новичок
- Сообщения
- 22
- Репутация
- 0
Функция принимает набор числовых параметров и согласно правилам, заданным пользователем возвращает массив - строку с именем категории и айди категории.
На данный момент функция работает некорректно - всегда возвращает категорию, которая обозначает что ни одно из правил не сработало. Не могу понять где ошибка.
Ини файл с правилами и именами категорий:
Вот сама функция:
Заранее спасибо.
На данный момент функция работает некорректно - всегда возвращает категорию, которая обозначает что ни одно из правил не сработало. Не могу понять где ошибка.
Ини файл с правилами и именами категорий:
Код:
[rules]
Blocking=(count=0)
normal=(itm<49)(count>100)
Zero=(itm<=53)(itm>=49)(Money>1000)
Registered=(itm<=56)(itm<=53)(count>100)
warrior=(Ability>77)(count>100)
Lowcount=(count<100)
[labels]
Lowcount=10
normal=1
Zero=8
Registered=6
warrior=9
Blocking=14
unlocked=11
Вот сама функция:
Код:
Func GetPlayerCategory ($count, $itm, $ABI, $Ability, $Money)
Local $category[2]
Local $assigned = False
$rules = IniReadSection ( "rules.ini", "rules" )
for $i = 1 to Ubound($rules, 1)
$rules[$i][1] = StringTrimRight( StringTrimLeft( $rules[$i][1], 1 ), 1 )
$expressions = StringSplit ( $rules[$i][1], ")(" , 1 )
$Number_true = 0
for $a = 1 to UBound ($expressions)
if Execute ("$" & $expressions[$a]) == True Then
$Number_true = $Number_true + 1
EndIf
Next
if $Number_true == UBound ($expressions) Then
$category[0] = $rules[$i][0]
$category[1] = IniRead("rules.ini", "labels", $category[0], -1)
$assigned = True
ExitLoop
EndIf
Next
If $assigned == True Then
Return $category
Else
$category[0] = 'Out of rules'
$category[1] = 666
Return $category
EndIf
EndFunc
Заранее спасибо.