... 012 inst.shild: 013 $max.type=$cur.ship -> get max. shield type...
X3 Terran Conflict / X3 Земной конфликт
 
X3 Terran conflict  
 

На сайте онлайн (человек): 53



 



... 012 inst.shild: 013 $max.type=$cur.ship -> get max. shield type...

Terran Conflict (X3TC) / Форум / Скрипты и моды для X3 Terran Conflict / Все мелкие вопросы по скриптам и модам задаем тут! (Не загрязняйте форум мелкими темами)

Все мелкие вопросы по скриптам и модам задаем тут! (Не загрязняйте форум мелкими темами)
(http://x3tc.net/x3_forum/?tid=234)
Автор: Kallak
(30.07.2011 11:54:59)

 ФОРВАРД писал(а):
...
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
 

дерево темы → Все мелкие вопросы по скриптам и модам задаем тут! (Не загрязняйте форум мелкими темами) Все мелкие вопросы по скриптам и модам задаем тут! (Не загрязняйте форум мелкими темами) »
Список игр