Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Cleoss on January 01, 2018, 02:13:56 AM
-
Версия кликера 4,13,007 -- скрипт никак не хочет единожды выполнять условие на строке 85 и многожды штампует в свой чат строку "First!", пытаясь сравнить число с числом.
// 31-Dec-2017 nd: arrDedup
#name "CMS-files' Varz"
logclear
logshow(1,1,1)
//#logfile "_MyVarz.txt"
$pathx="E:\port\PortableApps\~~clickermann_last\Clickermann4.13b3\projects\"
//if(strcut2($pathx,strlen($pathx-1),strlen($pathx))="\")
// print("1")
//else
// $pathx=strconcat($pathx,"\")
//end_if
//print($pathx)
//getfilelist($cmsz,"*.cms")
getfilelist($cmsz,strconcat($pathx,"*.cms"))
//for($i=0,$i<arrsize($cmsz))
// print($cmsz[$i])
//end_cyc
print("Totally: ",arrsize($cmsz)," scripts")
//for($j=0,$j<arrsize($cmsz))
for($j=0,$j<arrsize($cmsz))
print("Processing file # ",$j," of ",1+arrsize($cmsz),", ",$cmsz[$j])
waitms(700)
TFReadArr(strconcat($pathx,$cmsz[$j]),$linez)
define($vars,0)
for($k=0,$k<arrsize($linez))
$dollar=strpos($linez[$k],"$")
if($dollar=0)
else
//inc($vars)
$symz=strconcat(",=<> -+*/()!:\.",char(34)) // $[]
for($l=0,$l<strlen($symz))
$sym=strcut($symz,$l+1,1)
//print($sym)
$cutlim=strpos(strcut2($linez[$k],$dollar+1,strlen($linez[$k])),$sym)
if($cutlim>0)
//else
arrpush($min,$cutlim)
//print(" ",$cutlim)
end_if
end_cyc
//arrsort($min)
$minml=$min[0] ///////////////// Array sorting
for($m=0,$m<arrsize($min))
if($minml>$min[$m])
$minml=$min[$m]
end_if
end_cyc
//$linez[$k]=strcut2($linez[$k],$dollar,$min[0])
//print("Min= ",$min[0])
//print(" Min= ",$minml)
//print($dollar," ",$min[0])
//$myvar=strcut($linez[$k],$dollar,$min[0]-1)
$myvar=strcut($linez[$k],$dollar+1,$minml-1)
undefine($min)
//print(" ",strcut($linez[$k],$dollar,strlen($linez[$k])))
if(strlen($myvar)>1)
//print(" ",$myvar) ///////////////////////////////// Varz output
inc($vars)
arrpush($curvarz,$myvar)
end_if
end_if
end_cyc
undefine($linez)
/////// Array deduplication
print("CurrVarz= ",arrsize($curvarz))
for($n=0,$n<arrsize($curvarz))
$curr=arrpop($curvarz)
//$currunix=0
//////////////////////////////////////////////////////////////// err
// if(arrsize($uniqz)=0)
// $uniqz[0]=$curr
// print("First!")
// end_if
if(arrsize($uniqz)>0)
print("Not else!")
else
$uniqz[0]=$curr
print("First!")
end_if
for($o=0,$o<arrsize($uniqz))
if($curr = $uniqz[$o])
//print("1")
else
arrpush($uniqz,$curr)
//inc($currunix)
end_if
end_cyc
//print($currunix)
print("UniqVarz= ",arrsize($uniqz))
undefine($uniqz)
//$curvarz[$n]
end_cyc
//print("Unix= ",arrsize($uniqz))
end_cyc
print($vars," varz from ",arrsize($cmsz)," scripts")
halt
-
Погонял от безысходности скрипт и в старом кликере и наконец понял, что гоню именно я, а не кликер. По ходу, я пытался загнать значение в массив одним оператором равенства. Ладно, оставлю это здеся. Но всё же иф нерабоч (http://crapware.aidf.org/forum/index.php?topic=356.msg25250#msg25250) в некоторых кондишенах. Меняем $uniqz[0]=$curr на arrpush и с выдохом возвращаемся в свежую версию кликера.
ПС. Поменял, толку 0. Как и в 4.13.13, странно.
Разве нельзя присваивать так: $curr=arrpop($curvarz)?
-
Ошибка очевидна же. На часах 2 часа дня, на календаре 1 января!
У вас там и Новый год отменили? Ну изверги.
-
Очевидна, но не для мну(( Вроде всё верно, может гдет описка вкралась, потому что накануне код работал как часики.
-
Оператор if в твоем примере отрабатывает правильно. Ошибка здесь именно в твоем коде, а конкретнее в цикле, который начинается на 91 строке и выполняется всего 1 раз, так как неправильно задано условие остановки цикла.
Также не вижу смысла в проверке размера массива uniqz на 85 строке. Это ведь по идее должен быть изначально пустой массив, в который будут помещены уникальные строки из массива curvarz. Следовательно, проверка его размера не имеет смысла. Имеет смысл перенести undefine($uniqz) в начало тела цикла, чтобы быть уверенным, что массив уникальных строк изначально будет пустым.