Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Скрипт-школа (Задачи для начинающих скриптописателей) | страница 2
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 2 из 10
На страницу: Пред.  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  След. | Все страницы
Поиск в этой теме:
Канал X3: Reunion » Модовый и скриптовый отсек X3: Reunion: «Скрипт-школа (Задачи для начинающих скриптописателей)»
Нужна ли школа скриптописателей
Да. чем нас больше, тем игра веселее
95%
 95%  [ 65 ]
Нет, развелось вас.
4%
 4%  [ 3 ]
Всего проголосовало : 68
Bob_Koh
 61 EGP


Рейтинг канала: 3(31)
Репутация: 4
Сообщения: 125
Откуда: Хмельник
Зарегистрирован: 15.10.2007
Andrei [<>Ace] :

AlexYar если развить тему можно неплохой скрипт сделать в рамках ШКОЛЫ Улыбка
Допустим история:
В скоплениях и на отдельных астероидах завелись некие биомеханические существа, целые колонии. Замечено нападение данных существ на корабли приближающиеся к астероидам менее чем на 1000 м или 2000 м. Атакованный ими корабль получает повреждения корпуса и оборудования до прохождения корантина на Верфи или Доке оборудования.

А может лучше рендомно раскидать по карте теми же скриптами радиоактивные участки или создать объект - радиоактивное облако (причем облака сделать с центрами плотности степень поедания увеличить к центру) и сделать апдэйт-жопс или апдэйт-карту!
    Добавлено: 15:45 24-11-2007   
Proteus
 88 EGP


Рейтинг канала: 5(113)
Репутация: 35
Сообщения: 443
Откуда: Латвия
Зарегистрирован: 17.03.2007
Andrei [<>Ace] :
А если применить нормальные команды:

Я эти команды незаметил попробую исправится.
Andrei [<>Ace] :
$hull.percent = $hull * 10 / 100

А ты на словах можеш описать что твоя строка делает а то у меня фигня получается.
_________________
На пыльных тропинках далёких планет останутся наши мозги.

Последний раз редактировалось: Proteus (16:12 24-11-2007), всего редактировалось 2 раз(а)
    Добавлено: 15:53 24-11-2007   
Lars
 440 EGP


Суровый помор
Рейтинг канала: 1(5)
Репутация: 77
Сообщения: 2450
Откуда: Архангельск
Зарегистрирован: 28.03.2007
Andrei [<>Ace] :
AlexYar если развить тему можно неплохой скрипт сделать в рамках ШКОЛЫ

Допустим история:

Давайте вначале закончим текущий скрипт, а то превратим тему в сплошную кашу, из непонятно к какому заданию принадлежащих постов.
Andrei [<>Ace] :
Допустим история:
В скоплениях и на отдельных астероидах завелись некие биомеханические существа, целые колонии. Замечено нападение данных существ на корабли приближающиеся к астероидам менее чем на 1000 м или 2000 м. Атакованный ими корабль получает повреждения корпуса и оборудования до прохождения корантина на Верфи или Доке оборудования.

А эт историю можно использовать как следующее задание
_________________
"Мозги... нам нужны мозги!"(с) "Живые мертвецы"
    Добавлено: 16:04 24-11-2007   
AlexYar
 1851 EGP


Рейтинг канала: 13(2096)
Репутация: 324
Сообщения: 31640

Зарегистрирован: 26.10.2003
Lars :
Давайте вначале закончим текущий скрипт, а то превратим тему в сплошную кашу, из непонятно к какому заданию принадлежащих постов.


Поддерживаю. Сперва нужно доделать простое, а уж потом усложнять. К тому же тема для обучения, а не создания новых суперскриптов Улыбка

При создании чего-либо в первую очередь нужно приучить себя доводить дело до конца. Даже если на горизонте появилось что-то более интересное Улыбка
    Добавлено: 16:21 24-11-2007   
Andrei [<>Ace]
 303 EGP


Рейтинг канала: 6(416)
Репутация: 108
Сообщения: 766
Откуда: Беларусь, Салiгорск
Зарегистрирован: 29.03.2006
Bob_Koh :
А может лучше рендомно раскидать по карте теми же скриптами радиоактивные участки или создать объект - радиоактивное облако (причем облака сделать с центрами плотности степень поедания увеличить к центру) и сделать апдэйт-жопс или апдэйт-карту!

Ерунда получиться. В Х2 такая туманность была. Может она и в Х3 работала бы?

Proteus :
А ты на словах можеш описать что твоя строка делает а то у меня фигня получается.

Десять процентов от переменной $hull Улыбка

Lars :
Давайте вначале закончим текущий скрипт,

А я разве говорил не заканчивать Улыбка ?

AlexYar :
Сперва нужно доделать простое, а уж потом усложнять.

Делать заново всегда проще чем переделывать старое!

AlexYar :
При создании чего-либо в первую очередь нужно приучить себя доводить дело до конца.

И в первую очередь нужно довести до конца задание, придать ему смысл. Заинтересовать. Правильно поставленная задача это уже 70% работы.
    Добавлено: 17:23 24-11-2007   
Proteus
 88 EGP


Рейтинг канала: 5(113)
Репутация: 35
Сообщения: 443
Откуда: Латвия
Зарегистрирован: 17.03.2007
Andrei [<>Ace] :
Создавать одним скриптфайлом корабль и тут же выполнять алгоритм задания - просто неправильно.

А можно пример попроще, как из одного скрипта запустить другой. А то какой командой это делается я вроде нашел а описание всех необходимых параметров в справочниках мне не по зубам. Мозг пухнет.Улыбка
Все остальные недочеты вроде устранил.
_________________
На пыльных тропинках далёких планет останутся наши мозги.
    Добавлено: 18:35 24-11-2007   
Andrei [<>Ace]
 303 EGP


Рейтинг канала: 6(416)
Репутация: 108
Сообщения: 766
Откуда: Беларусь, Салiгорск
Зарегистрирован: 29.03.2006
Proteus :
А можно пример попроще, как из одного скрипта запустить другой.

Ща попробуем Улыбка

Для этого нужны два скрипта минимум:
1. Создает корабль и запускает скрипт повреждения - create.ship
2. скрипт повреждения - damage

Начнем со второго - damage.
В нем нужно создать:
1. аргумент - 1: ship , Var/Ship , 'ship' - сюда пеервый скрипт передаст указатель на созданный им корабль.
2. сам алгоритм повреждения.

Первый скрипт - create.ship - создает корабль:
$ship = create ship: type .....
В переменной $ship содержиться "указатель" на этот корабль.

Далее запускаешь, в нашем случае, глобальный скрипт, предварительно создав переменную - к примеру:
$global.script =null

и собственно команда на запуск глобального скрипта -
@ START $global.script -> call script 'damage': ship=$ship


Понятно? Улыбка

Последний раз редактировалось: Andrei [<>Ace] (19:18 24-11-2007), всего редактировалось 2 раз(а)
    Добавлено: 19:15 24-11-2007   
AlexYar
 1851 EGP


Рейтинг канала: 13(2096)
Репутация: 324
Сообщения: 31640

Зарегистрирован: 26.10.2003
Andrei [<>Ace] :
Далее запускаешь, в нашем случае, глобальный скрипт, предварительно создав переменную - к примеру:


А глобальный скрипт откуда узнает, что корабль дезинфицировали? Улыбка

В глобальном скрипте в цикл повреждения после while нужно так же вставить проверку глобальной (в данном случае можно локальной) переменной. Например:

skif if get global variable 'test001.infected'
break


А перед запуском скрипта повреждения эту переменную выставить в 1.

set global variable 'test001.infected' to 1
@ START $global.script -> call script 'damage': ship=$ship



Впоследствии, когда корабль вылечится, эта переменная будет выставлена в 0, и скрипт повреждения сам вывалится из памяти, прекратив свою работу.
    Добавлено: 19:34 24-11-2007   
Proteus
 88 EGP


Рейтинг канала: 5(113)
Репутация: 35
Сообщения: 443
Откуда: Латвия
Зарегистрирован: 17.03.2007
Andrei [<>Ace] :
Понятно?

Да с заданием всю получилось. Только мне надо было 2 указателя во второй скрипт передать, вроде удалось.
А вот про то что пишет AlexYar совсем непонятно, как это делать я понял а вот зачем неочень(может он боится что мы вырастем и отправим его на пенсию вот и сыпет непонятными терминами Улыбка ).
_________________
На пыльных тропинках далёких планет останутся наши мозги.
    Добавлено: 20:17 24-11-2007   
Andrei [<>Ace]
 303 EGP


Рейтинг канала: 6(416)
Репутация: 108
Сообщения: 766
Откуда: Беларусь, Салiгорск
Зарегистрирован: 29.03.2006
AlexYar :
А глобальный скрипт откуда узнает, что корабль дезинфицировали?

А он сам это проверить не может? Улыбка
Мы с тобой ща все сами сделаем, друг перед другом чет доказывая.

Я только пример показаваю, как кому идею реализовать пусть сам решает.

Proteus :
А вот про то что пишет AlexYar совсем непонятно, как это делать я понял а вот зачем неочень(может он боится что мы вырастем и отправим его на пенсию вот и сыпет непонятными терминами ).

Все понятно Улыбка , только способов решить задачу много.
AlexYar предлагает создать глобальную переменную - переключатель со значениями 0- корабль инфецирован и 1- дизинфецирован. Отвечать за это будет еще один глобальный скрипт, а скрипт разрушения бедет ждать изменения этой переменной в 1- для положительного завершения.

И вообще предлагаю вопросы как, подскажите - сюда: Скриптописание - делимся опытом, задаем вопросы

А здесь готовые примеры и их обсуждение!
    Добавлено: 20:27 24-11-2007   
AlexYar
 1851 EGP


Рейтинг канала: 13(2096)
Репутация: 324
Сообщения: 31640

Зарегистрирован: 26.10.2003
Andrei [<>Ace] :
А он сам это проверить не может?


Дык я и предлагаю в него самого (скрипт повреждения корпуса) добавить эту проверку Улыбка

Andrei [<>Ace] :
Мы с тобой ща все сами сделаем


Ну и ладно, зато в данном случае быстрее люди поймут, как правильнее сделать, чем мы будем ждать, пока сами все всё поймут Улыбка

Andrei [<>Ace] :
AlexYar предлагает создать глобальную переменную - переключатель со значениями 0- корабль инфецирован и 1- дизинфецирован. Отвечать за это будет еще один глобальный скрипт


Нет, не еще один, а тот же самый, что запустил скрипт-разрушитель Улыбка

1. Первый скрипт:
а) посылает сообщение (прилетите сюда)
б) ждёт, пока игрок прилетит.
в) запускает скрипт разрушения.
г) посылает сообщение - "лечитесь там".
д) ждёт игрока на станции лечения.
е) ставит глоб.переменную в 0, отключая скрипт разрушения.
ж) Посылает сообщение игроку "вы вылечены" и завершается.

2. Второй скрипт:
а) Разрушает корпус, пока глоб.переменная равна 1.
б) Завершается, если глоб.переменная равна 0.

Собственно и всё. Надеюсь, я понятно изъяснил свой способ решения задачи Улыбка

Proteus :
может он боится что мы вырастем и отправим его на пенсию


Я буду только рад, если на ЕГе будет больше скриптеров и моддеров. Мне меньше работы будет по добавлению в игру чего-нить интересного, можно пользоваться трудами других пилотов Гы-гы
    Добавлено: 20:49 24-11-2007   
Proteus
 88 EGP


Рейтинг канала: 5(113)
Репутация: 35
Сообщения: 443
Откуда: Латвия
Зарегистрирован: 17.03.2007
Старый вариант удалил вот новый по заданию предложенному пилотом Else с исправлениями тех моментов на которые указали опытные скриптописатели.
скрипт ааcreateship
001 $Ship= create ship: type=Деметра owner=Player addto=Свет Надежды x=0 y=0 z=0
002 $Ship -> add default items to ship
003 $Ware= create flying ware: maintype=14 subtype=2 count=20 sector=Свет Надежды x=0 y=0 z=200 selfdestruct=0
004 $global.script=null
005 @ START$global.script -> call script 'aadamage' : Ship=$Ship Ware=$Ware
006 return null
скрипт aadamage
001 @ =wait 20000 ms
002 =$Ship -> catch ware object $Ware
003 @ =wait 20000 ms
004 send incoming message 'Обнаружена аномалия в трюме' to player: display it=[TRUE]
005 @ =wait 5000 ms
006 $hull=$Ship -> get hull
007 $hullperc=$hull * 10 / 100
008 while$hull > $hullperc
009 $hull=$hull - $hullperc / 10
010 $Ship -> set hull to $hull
011 @ =wait 1000 ms
012 end
013 send incoming message 'Аномалия устранена' to player: display it=[TRUE]
014 return null
_________________
На пыльных тропинках далёких планет останутся наши мозги.

Последний раз редактировалось: Proteus (20:57 24-11-2007), всего редактировалось 1 раз
    Добавлено: 20:50 24-11-2007   
Andrei [<>Ace]
 303 EGP


Рейтинг канала: 6(416)
Репутация: 108
Сообщения: 766
Откуда: Беларусь, Салiгорск
Зарегистрирован: 29.03.2006
Ну наверно какое задание такое и решение Улыбка - никакой эстетики.

1.
Proteus :
001 $Ship= create ship: type=Деметра owner=Player addto=Свет Надежды x=0 y=0 z=0
...
003 $Ware= create flying ware: maintype=14 subtype=2 count=20 sector=Свет Надежды x=0 y=0 z=200 selfdestruct=0

sector=Свет Надежды - так делать не стоит. Для сектора еще проходит, но с объектами уже нет. Лучше сектор или объект получить в скрипт, а не указать. В данном случае добавит выше команду $sector=get sector from universe index: x=1, y=4 и соответственно:
001 $Ship= create ship: type=Деметра owner=Player addto=$sector x=0 y=0 z=0
003 $Ware= create flying ware: maintype=14 subtype=2 count=20 sector=$sector x=0 y=0 z=200 selfdestruct=0

2.
Proteus :
009 $hull=$hull - $hullperc / 10

Зачем делить на 10?

3. В цикле не учтены возможные повреждения от столкновения или боя.
4.
Proteus :
001 @ =wait 20000 ms
002 =$Ship -> catch ware object $Ware

Для приличия подлететь к контейнеру стоит - 200м как никак.
    Добавлено: 21:14 24-11-2007   
Proteus
 88 EGP


Рейтинг канала: 5(113)
Репутация: 35
Сообщения: 443
Откуда: Латвия
Зарегистрирован: 17.03.2007
Andrei [<>Ace] :
Зачем делить на 10?

Чтоб убирался 1% от первоначального хулла в секунду а не 10%.
Andrei [<>Ace] :
В цикле не учтены возможные повреждения от столкновения или боя.

Как это делается незнаю и идей нет, может кто из из начинающих скриптеров идеи подаст а то списывая у старшекласников ничему ненаучимся у нас ведь начальная Школа.
Все остальные замечания постараюсь учесть.
_________________
На пыльных тропинках далёких планет останутся наши мозги.
    Добавлено: 21:33 24-11-2007   
Expert
 423 EGP


Рейтинг канала: 9(1073)
Репутация: 154
Сообщения: 533
Откуда: Златоуст, Южный Урал
Зарегистрирован: 15.08.2004
Proteus :
Как это делается незнаю и идей нет, может кто из из начинающих скриптеров идеи подаст а то списывая у старшекласников ничему ненаучимся у нас ведь начальная Школа.

Прежде чем обновлять значение хулла нужно перечитать его текущее состояние.

$Hull = $Ship -> get hull

А уже потом отнимать проценты от этого текущего состояния и вписывать обновленное значение.

$Hull = $Hull - $damage
$Ship -> set hull to $Hull


Последний раз редактировалось: Expert (22:08 24-11-2007), всего редактировалось 1 раз
    Добавлено: 22:06 24-11-2007   
AlexYar
 1851 EGP


Рейтинг канала: 13(2096)
Репутация: 324
Сообщения: 31640

Зарегистрирован: 26.10.2003
Andrei [<>Ace] :
Ну наверно какое задание такое и решение - никакой эстетики.


Вот. Ты давай тогда рули здесь пока (только не пропадай), а я другими делами займусь, коих тоже немало Улыбка
    Добавлено: 01:26 25-11-2007   
KAlex
 





Предлагаю немного усложнить задачу...
Оценка 5+++
1) Есть свой корабль (корабль игрока), есть контейнер (созданный скриптом)... Выполняем скрипт на корабле - аналог "Подобрать контейнер"
2) При подборе контейнера звуковое предупреждение: "Внимание: в грузовом отсеке обнаружено увеличение уровня радиации." {17,250101} (перевод от НД)
3) Сначала происходит вот что:
- корабль теряет управление, его начинает кидать из стороны в сторону все время выполнения скрипта (команда - лететь в точку уклоняясь от врага)
- начинает, мелкими частями, вываливаться груз из грузового отсека (процентов до 40-30)
- корабль начинает "терять" установленные компоненты: оружие, щиты, модули расширения (например ТМП-1 и т.п.) - от 15% до 25% но не все
- начинает повреждаться корпус до 20%
4) Далее должно быть 3 варианта окончания сюжета:
- корабль разрушается полностью - взрыв, на 5%-10% корпуса происходит катапультирование пилота (пилот сбежал от чужого)
- чужой захватывает пилота и управляет им (корабль становится враждебным - смена расы пилота на хаака/ксенона)
- с корабля вылетает контейнер с чужим (пилот справился с чужим) - еще пилот может расстрелять контейнер (отомститьУлыбка

PS Вот это будет действительно интересно... полюбоваться на то, как будут развиваться события Улыбка
PPS Можно еще добавить звуков и т.п. - типа сообщений от того пилота: "Помогите, с кораблем творится что-то неладное"
PPPS Много думал... это вполне реально сделать - если кто сделает, то я у него скриптик скачаю 100% (отпишитесь плизУлыбка
PPPPS Если никто не возьмется - сам напишу
    Добавлено: 13:41 25-11-2007   
Lars
 440 EGP


Суровый помор
Рейтинг канала: 1(5)
Репутация: 77
Сообщения: 2450
Откуда: Архангельск
Зарегистрирован: 28.03.2007
Скрипт "поедания" хула, запускающий его скрипт сделал, а скрипт редактор его грохнул (с ним какая-то проблема, скрипты не сохраняет Расстроен )
Код:
Arguments
1: ship , Перем/Корабль , 'player.ship'

Source Text
001   $t=get global variable: name=$mode
002   $hull=$ship -> get hull
003   while$t != 0
004    while$hull > 0
005 @   =wait 1000 ms
006     dec $hull=
007     $ship -> set hull to $hull
008     $hull=$ship -> get hull
009    end
010    if$hull == 0
011     $ship -> destruct: show no explosion=[TRUE]
012    end
013    $t=get global variable: name=$mode
014   end
015   return null

глобальная переменная mode: если mode=1, значит чужой еще на корабле, если mode=0, значит чужого "обезвредили"
_________________
"Мозги... нам нужны мозги!"(с) "Живые мертвецы"
    Добавлено: 14:02 25-11-2007   
Andrei [<>Ace]
 303 EGP


Рейтинг канала: 6(416)
Репутация: 108
Сообщения: 766
Откуда: Беларусь, Салiгорск
Зарегистрирован: 29.03.2006
AlexYar :
Вот. Ты давай тогда рули здесь пока (только не пропадай), а я другими делами займусь, коих тоже немало

Автор темы Else - ему бы и рулить.

Да и учиников то - один Proteus отметился и тот сам думать лениться.
Интересно кто те 20 , что в голосовании да сказали.
Я то буду за темой присматривать. Но и последней инстанцией быть не хочу.
Вообщето есть тема - К скриптерам просьба - идеи для заданий можно брать оттуда.

KAlex :
Предлагаю немного усложнить задачу...
Оценка 5+++ ...
PPPS Много думал... это вполне реально сделать - если кто сделает, то я у него скриптик скачаю 100% (отпишитесь плизУлыбка

Эт ты хорошо придумал Улыбка , Чужими руками себе скриптик написать.

Lars :
Скрипт "поедания" хула

Не - ты действительно програмированием часто занимаешься?
Зачем такие сложности?
Ты посты других участников темы читаешь?

Теперь по коду:
1. 001 $t=get global variable: name=$mode
ГДЕ переменная - $mode?
ГДЕ, хотябы $t участвует?
2. Понимаешь, за время ожидания 005 @ =wait 1000 ms множество скриптов может с хуллом корабля сделать что угодно и 008 $hull=$ship -> get hull - уже будет не верным.
3. 010 if$hull == 0 - а если после выполнения цикла 004 while$hull > 0 - значение $hull будет меньше 0 - уничтожение не произойдет.
4.
Lars :
запускающий его скрипт сделал, а скрипт редактор его грохнул

Наверно тоже сектор или объекты указал, а не получил коммандами.
5.
Lars :
глобальная переменная mode: если mode=1, значит чужой еще на корабле, если mode=0, значит чужого "обезвредили"

Не сработает она в твоем варианте. Не переменную ставить нужно , а имя ее - текстовое значение.

Последний раз редактировалось: Andrei [<>Ace] (14:36 25-11-2007), всего редактировалось 4 раз(а)
    Добавлено: 14:28 25-11-2007   
AlexYar
 1851 EGP


Рейтинг канала: 13(2096)
Репутация: 324
Сообщения: 31640

Зарегистрирован: 26.10.2003
Andrei [<>Ace] :
Автор темы Else - ему бы и рулить.


Рулить нужно тому, кто разбирается в скриптописании, а он, насколько я понял, создал тему для того, чтобы научиться самому и другие тоже бы научились. Идея хорошая на мой взгляд, так как на примерах проще учиться, да еще если кто-то может объяснить, почему написано так, а не иначе.

Andrei [<>Ace] :
Я то буду за темой присматривать. Но и последней инстанцией быть не хочу.


Главное - чтобы было кому отвечать на вопросы новичков Улыбка

Andrei [<>Ace] :
ГДЕ, хотябы $t участвует?


В цикле (строка 003).

Andrei [<>Ace] :
3. 010 if$hull == 0 - а если после выполнения цикла 004 while$hull > 0 - значение $hull будет меньше 0


Не может оно стать меньше нуля Улыбка

Andrei [<>Ace] :
Не переменную ставить нужно , а имя ее - текстовое значение.


...и запрашивать её нужно на каждом витке цикла, а не один раз в начале скрипта.

Вот так бы сделал я:

Код:

Arguments

1: ship , Var/Ship , 'ship'

Source Text

001   $gvarname = 'test001.infected'   (задаём имя глобальной переменной)
002   $damage = $ship -> get max hull  (узнаём макс.значение корпуса)
003   $damage = $damage / 100          (определяем, на какое значение будем "повреждать", 1%)
004   set global variable: name=$gvarname value=1  (устанавливаем глоб.переменную в 1 перед работой цикла)

*Далее работа повреждалки.

005   while $ship -> get hull   (пока корпус "есть", т.е. не равен нулю, начало цикла)

006    skip if get global variable: name=$gvarname  (пропускать следующую строку, пока глоб.переменная не равна нулю)
007     return null                       (выход из скрипта)

008    $hull = $ship -> get hull   (узнаём текущее значение корпуса)
009    $hull = $hull - $damage   (рассчитываем новое значение)
010    skip if $hull > 0        (пропустить следующую строку, если новое значение больше нуля)
011     break                    (выйти из цикла на строку 015)
012    $ship -> set hull to $hull   (устанавливаем корпусу новое значение)
013 @  = wait 10000 ms             (ждём 10 секунд)

014   end                           (конец цикла)



015   $ship -> destruct: show no explosion=[FALSE]    (уничтожить корабль)
016   
017   return null                (завершение скрипта)



Пояснения:

1. Имя глоб.переменной воизбежания совпадения с скриптами других пилотов лучше делать уникальным. В данном примере в начале имени стоит название тестового "устройства", а потом через точку - за что переменная отвечает. И понятно, и вероятность совпадения мала. Роль глобальной переменной - триггер, т.е. переключатель.
Если она станет равной нулю, то скрипт будет принудительно завершён.

2. Почему во второй и третье строке одна и та же переменная используется? Просто для экономии памяти Улыбка Так как значение в итоге нам нужно всего одно, то и переменная для этого тоже может использоваться одна. В строке 003 сперва выполняется правая часть выражения, а затем результат присваивается переменной $damage. Если, к примеру, в строке 002 переменная имела значение 1000, то в строке 003 значение будет равно 10.

3. Зачем глобальную переменную устанавливать в скрипте повреждения в 1. Просто для того, чтобы этого не делать в запускающем скрипте Улыбка Операция эта проводится всего один раз, поэтому я её и вынес из большого скрипта в маленький. Т.е. чтобы разгрузить большой скрипт от лишних строк и команд.

4. Строка 005 - цикл, он будет работать до тех пор, пока значение корпуса корабля больше нуля (меньше нуля оно быть не может в игре).

5. Строки 006 и 007 как раз и являются переключателем, они завершат работу скрипта, если значение глоб.переменной станет равным нулю или null.

6. Строки 010 и 011 - завершат работу цикла (цикл начинается на строке 005 и заканчивается строкой 014), приведя к уничтожению корабля командой Destruct. Значение FALSE в команде нужно для того, чтобы корабль взорвался как положено, т.е. с анимацией взрыва и звуком. Если значение будет TRUE, то корабль просто исчезнет.

Последний раз редактировалось: AlexYar (16:44 25-11-2007), всего редактировалось 2 раз(а)
    Добавлено: 16:34 25-11-2007   
Канал X3: Reunion -> Модовый и скриптовый отсек X3: Reunion: «Скрипт-школа (Задачи для начинающих скриптописателей)»
На страницу: Пред.  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  След. | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Если исключение будет вести себя хорошо, его могут принять в число правил.

  » Скрипт-школа (Задачи для начинающих скриптописателей) | страница 2
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18