Чет я поторопился, не сработала моя идея
$GPSD = INIREAD("zzz.ini", "GPSD")
$GBU=RNDFROM(0,1,2)
$GBL=RNDFROM(0,1,2)
//Переменные, начинающиеся на $G внешние(глобальные), их изменения сохраняются постоянно, и их могут менять другие скрипты не зависимо работает этот скрипт или нет. В рамках языка кликера можно сказать что они находятся во внешнего файле. C GBU / GBL я не стал заморачиваться чтоб не писать руками в файл каждый раз новые данные, будем считать, что они получены из файла..
//zzz.ini
//[default]
//GPSD=50
//Проверки $GBU/$GBL на содержимое выполняются разными операторами, потому в кликере это можно описать только как двойная проверка.
IF($GBU ! 0) //Если не 0, то что-то другое
IF($GBU ! 1) //Если не 1, то 2 видимо
$BUX=10 //если 2
END_IF
$BUX=(0-$BUX) //если 1
ELSE
$BUX=20 //если 0
END_IF
IF($GBL ! 0) //Если не 0, то что-то другое
IF($GBL ! 1) //Если не 1, то 2 видимо
$BLX=1 //если 2
END_IF
$BLX=(0-$BLX) //если 1
ELSE
$BLX=2 //если 0
END_IF
//$BLX/$BUX бонусы я поставил такие только для наглядности в логе чтоб удобней проверять. Числа не важны в примере, суть чтоб отличались при значениях 0 и 2, а при значении 1 бонус убирался
//ModVal PSD
$PSD=$PSD+$BUX
$PSD=$PSD+$BLX
$GPSD = $PSD
INIWRITE("zzz.ini", "GPSD", $PSD)
LogWrite ("$GBU= ",$GBU, " $GBL= ",$GBL)
LogWrite ("$GPSD= ",$GPSD, " $BLX= ",$BLX," $BUX= ",$BUX)
Wait(3)
//HALT
GPSD не должна наращиваться после каждого цикла, только изменятся на количество бонуса в зависимости от GBU / GBL
если GBU / GBL равно 0 или 2 добавляется бонус, если 1 - то отнимается ранее добавленный
Например если у нас постоянно GBU = 2, то в каждом цикле GPSD будет 60 (при начальном GPSD=50)
если GBU становится = 0, GPSD должно стать 70
если GBU становится = 2, GPSD должно стать 60
если GBU становится = 1, GPSD должно стать 50 (точнее минус 10, на случай если GPSD была изменена другим скриптом, т.к предыдущей прибавкой был 10)
В работе можно добавлять локальные и глобальные ($G - в рамках кликера должны записываться в файл) переменные
GBU / GBL можно один раз принудительно сбросить в 0, для инициализации например.