| ФОРВАРД писал(а):... 012 inst.shild: 013 $max.type=$cur.ship -> get max. shield type that can be installed 014 $num.slot=$cur.ship -> get number of shield bays 015 $slot=0 016 while$num.slot 017 |dec $num.slot= 018 |$day.type=$cur.ship -> get shield type in bay $slot 019 |if$day.type == $max.type 020 ||inc $slot= 021 |else if$day.type == null 022 ||=$cur.ship -> add 1 units of $max.type 023 |else 024 ||=$cur.ship -> add 1 units of $max.type 025 ||inc $slot= 026 |end 027 end ... |
| |
3 Слота для щитов, щитов в слотах нет 1ая итерация цикла: Обрабатывается слот №0, щита нет, поставлен новый щит, счетчик слотов не переведен. 2ая итерация цикла: Обрабатывается слот №0, щит соответствует условиям (мы его и поставили), ничего не ставим, счетчик слотов переведен. 3я итерация цикла: Обрабатывается слот №1, щита нет, поставлен новый щит, счетчик слотов не переведен.
Итого - после 22ой строки добавить "||inc $slot=", для перевода счетчика слотов. Еще можно использовать комманду "write to player logbook <Value>", очень помогает при отладке.
А, и кусок кода можно поменять на следующий, это то что ты хотел, только компактно:
| 012 inst.shild: 013 $max.type=$cur.ship -> get max. shield type that can be installed 014 $num.slot=$cur.ship -> get number of shield bays 015 $i=0 016 while $i<=$num.slot-1 017 |$day.type=$cur.ship -> get shield type in bay $i 019 |if $day.type != $max.type 020 ||=$cur.ship -> install 1 units of $max.type 021 |inc $i= 022 end
|
| |
Нет, я его не запускал, но должно работать.
Или совсем простой скрипт:
| 012 inst.shild: 013 $max.type=$cur.ship -> get max. shield type that can be installed 014 $num.slot=$cur.ship -> get number of shield bays 015 $num.cargo = $cur.ship->get amount of ware $max.type in cargo bay 016 $tmp=$num.slot-$num.cargo 017 if $tmp>0 018 |=$cur.ship -> install $tmp units of $max.type
|
| |
|