|
|
|
Канал X3: Reunion »
Модовый и скриптовый отсек X3: Reunion: «Скриптописание - делимся опытом, задаем вопросы» |
|
|
Mixa
80 EGP
  Рейтинг канала: 3(31) Репутация: 19 Сообщения: 302 Откуда: Оттуда Зарегистрирован: 06.03.2007
 |
|
Все, нашел сам, спасибо, просто перерыл весь форум-не нашел, оказывается в факе.. )
_________________ Лучшая отвертка-это молоток.. |
|
|
Proteus
88 EGP
  Рейтинг канала: 5(113) Репутация: 35 Сообщения: 443 Откуда: Латвия Зарегистрирован: 17.03.2007
 |
|
AlexYar :
001 $gvarname = 'test001.setup'
002 if not get global variable: name=$gvarname
003 set global variable: name=$gvarname value=1
004 @ START $null -> call script 'test001.control' :
005 end
006 return null
Возник вопрос по поводу этого примера для школьников. Я все 3 файла облазил и никак немогу понять сколько раз сработает программа в целом. Запустится один и отключиться или при каждой загрузке будет запукатся и заного срабатывать?
Если после того как скрипт отработает, я установлю глобальную переменную в 0 то скрипт запустится вновь, или мне в конце скрипта нужно глобальную переменную "убить" чтоб setup запустил весь цикл заного? Если "убить" то как это лучше зделать? Я надеюсь я внятно объяснил что я имею в виду, а то мой русский язык оставляет желать лучшего.
_________________ На пыльных тропинках далёких планет останутся наши мозги. |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 13(2096) Репутация: 325 Сообщения: 32761
Зарегистрирован: 26.10.2003
 |
|
Proteus : |
немогу понять сколько раз сработает программа в целом. Запустится один и отключиться или при каждой загрузке будет запукатся и заного срабатывать?
|
Сработает всего один раз. После чего значение глоб.переменной станет равной 1 и она не даст в следующий раз повторно запустить скрипт:
004 @ START $null -> call script 'test001.control' :
Proteus : |
Если после того как скрипт отработает, я установлю глобальную переменную в 0
|
Зачем? Эту переменную больше трогать нельзя. Она для того и создана, чтобы не допустить повторного срабатывания
|
|
|
Lars
440 EGP
    Рейтинг канала: 1(5) Репутация: 77 Сообщения: 2450 Откуда: Архангельск Зарегистрирован: 28.03.2007
 |
|
Можно ли как нибудь сменить расу владельца какого-либо объекта (напр. станции, корабля)?
_________________ "Мозги... нам нужны мозги!"(с) "Живые мертвецы" |
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
Lars : |
Можно ли как нибудь сменить расу владельца какого-либо объекта (напр. станции, корабля)?
|
Попробуй эту:
Код: |
<RefObj> set owner race to <Var/Race>
· Команда позволяет назначить объекту <RefObj> владельцем расу <Var/Race>. Объектом может быть станция, корабль все что имеет расовую принадлежность.
· По-идее можно использовать для эмуляции захвата. Однако если таким образом захватывать станцию, следует позаботиться о приписанных к станции кораблях, т.к. после изменения расы владельца, приписанные корабли по прежнему будут считать эту станцию базой приписки, несмотря на то, что база принадлежит теперь другой расе. |
|
|
|
AKRAFT
55 EGP
 Рейтинг канала: 3(33) Репутация: -6 Сообщения: 154 Откуда: Россия, Новороссийск Зарегистрирован: 14.08.2007
 |
|
Expert : |
Andrei [<>Ace] : |
Ну тогда можешь найти в установочном скрипте глобальную переменную, котора прикравает твои хоткеи от размножения, и в null ее загнать.
|
Тоже выход
Главное, после экспериментов с русификацией не забыть всё вернуть на место
|
Я нашел выход и проще сделал. Без всяких переустановок.
Просто посмотрел файл 7333.xml, на который дают ссылку Рид-тексты. Ведь они под номерами(**333-1, **333-2 и т.д.). Сопоставил их номера с описанием в файле, узнал какой команде каждый из них соответствует и задал их себе так, как мне нравится. И не парюсь... Во как!
И деньги целы и время сэкономлено.
_________________ Тщеславие - это один из наиболее любимых мной Грехов!
Последний раз редактировалось: AKRAFT (13:16 29-11-2007), всего редактировалось 1 раз |
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
Код: |
<RefObj> set owner race to <Var/Race>
• Команда позволяет назначить объекту <RefObj> владельцем расу <Var/Race>. Объектом может быть станция, корабль все что имеет расовую принадлежность.
· По-идее можно использовать для эмуляции захвата. |
Я вот что подумал. Эмуляция эмуляцией если раса меняется не на расу игрока.
Корабли после создания подключаются к расовой логике. Логика всех рас, для однотипных кораблей, примерно одинаковая, но никак не совпадает с логикой игрока (надеюсь ).
Наверно после смены расы на расу игрока, следует отключать корабль от расовой логики, чтобы избежать проблем?
Эксперемент:
Создавал два истребителя разных рас, но не давал им никокого задания. Через n-ое количество мс. карабли самостоятельно приходили в движение.
Если тем же скриптом создавал корабли и отключал их от расовой логики, они оставались неподвижными.
При смене расы на расу игрока этой командой - чьей логики будет он подчиняться?
|
|
|
Bob_Koh
61 EGP
 Рейтинг канала: 3(31) Репутация: 4 Сообщения: 125 Откуда: Хмельник Зарегистрирован: 15.10.2007
 |
|
Andrei [<>Ace] : |
Код: |
<RefObj> set owner race to <Var/Race>
• Команда позволяет назначить объекту <RefObj> владельцем расу <Var/Race>. Объектом может быть станция, корабль все что имеет расовую принадлежность.
· По-идее можно использовать для эмуляции захвата. |
Я вот что подумал. Эмуляция эмуляцией если раса меняется не на расу игрока.
Корабли после создания подключаются к расовой логике. Логика всех рас, для однотипных кораблей, примерно одинаковая, но никак не совпадает с логикой игрока (надеюсь ).
Наверно после смены расы на расу игрока, следует отключать корабль от расовой логики, чтобы избежать проблем?
Эксперемент:
Создавал два истребителя разных рас, но не давал им никокого задания. Через n-ое количество мс. карабли самостоятельно приходили в движение.
Если тем же скриптом создавал корабли и отключал их от расовой логики, они оставались неподвижными.
При смене расы на расу игрока этой командой - чьей логики будет он подчиняться?
|
А у каких рас есть расовая логика? И можно об этом поподробнее, то есть ее составляющие!
|
|
|
Proteus
88 EGP
  Рейтинг канала: 5(113) Репутация: 35 Сообщения: 443 Откуда: Латвия Зарегистрирован: 17.03.2007
 |
|
новый вопрос
001 $A=$B
002 $A=$B+1
003 return null
Какими способами я могу передать изменившееся значение переменной $A из строки 002 в строку 001? Если я правильно понимаю то можно $A зделать глобальной переменной и присвоить ей числовое значение, в начале скрипта считать это значение прибавить 1 и присвоить глобальной переменной новое значение, при новом запуске скрипта считается новое значение? Или есть другие способы передать изменившееся значение?
_________________ На пыльных тропинках далёких планет останутся наши мозги. |
|
|
Xenon J
1007 EGP
       Рейтинг канала: 11(1675) Репутация: 160 Сообщения: 3390 Откуда: Ксенонский сектор 472 Зарегистрирован: 30.03.2007
 |
|
Вот такой вопрос: как лучше отправить игроку сообщение: сформировать его строковой командой sprintf или же путем простого сложения переменных и текста(пробелов), особенно когда переменных больше десятка ?
_________________ Последний раз редактировалось: Xenon J (23:23 23-03-2023), всего редактировалось 16 раз |
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
Xenon J : |
или же путем простого сложения переменных и текста(пробелов), особенно когда переменных больше десятка ?
|
Если не надоест - складывай. Или разбивай на строки sprintf и опять складывай но уже меньше .
|
|
|
Мечтатель
75 EGP
 Рейтинг канала: 5(188) Репутация: 39 Сообщения: 357 Откуда: Киев Зарегистрирован: 08.06.2007
 |
|
Уважаемые знатоки внимание вопрос.
Можно ли изменить цвет корабля не прибегая к моддингу. В ШК есть такая команда. Можно ли ее перехватить или запустить выполнение не в ШК. Кто знаком с физикой этого процесса поделитесь.
_________________ Наука движется настолько быстро, что самые оптимистические прогнозы могут оказаться устаревшими! |
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
Мечтатель : |
Можно ли изменить цвет корабля не прибегая к моддингу.
|
Нет.
Извини. Раз за разом перечитываю вопрос и не понимаю о чем ты спрашиваешь. Подождал - кто другой ответит.
Может попробуешь яснее иззложить суть вопроса?
Bob_Koh : |
А у каких рас есть расовая логика? И можно об этом поподробнее, то есть ее составляющие!
|
"Каждый созданный в игре объект не принадлежащий игроку, подключается ко встроенной логике расы владельца, которая и берет дальнейшее управление объектом в свои руки." - DragonP
Последний раз редактировалось: Andrei [<>Ace] (14:42 30-11-2007), всего редактировалось 1 раз |
|
|
WhiteWolf
55 EGP
 Рейтинг канала: 2(13) Репутация: 0 Сообщения: 53
Зарегистрирован: 24.10.2007
 |
|
Интересно, если глобальная/локальная переменная является массивом
то команды set global variable: name=<Var/String> value=<Value> и <RetVar/IF><RefObj> get local variable: name=<Var/String> вернут также ссылку на массив как $Array1 = $Array2 или же создадут копию массива?
И еще как получить максимальные индексы в массиве типа Array [X][Y] или размер массива по Х и размер массива по Y?
|
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
WhiteWolf : |
вернут также ссылку на массив как $Array1 = $Array2 или же создадут копию массива?
И еще как получить максимальные индексы в массиве типа Array [X][Y] или размер массива по Х и размер массива по Y?
|
Читать здесь обзац "Дополнения по массивам". Внимательно читать.
WhiteWolf : |
вернут также ссылку на массив как $Array1 = $Array2 или же создадут копию массива?
|
Вернет ссылку, массив нужно копировать в другую переменную, если хочешь сохранить старый.
Последний раз редактировалось: Andrei [<>Ace] (14:53 30-11-2007), всего редактировалось 3 раз(а) |
|
|
Мечтатель
75 EGP
 Рейтинг канала: 5(188) Репутация: 39 Сообщения: 357 Откуда: Киев Зарегистрирован: 08.06.2007
 |
|
Нет, это потому что ты такой команды не нашел в скрипт редакторе. Правильно?
Но иногда можно попытаться найти какие то изощрения. Например понадобилось мне в одном скрипте сделать горящую станцию. Такой команды ведь нету в скрипт редакторе. Правильно? Как я вышел из этой ситуации. Очень просто создал такую же станцию, по тем же координатам и сразу же
<RefObj> destruct: show no explosion=FALSE
Загоняешь в цикл на 8 секунд повторения и, вуаля горящая и взрывающаяся станция.
Ты бы объяснил как в ШК происходит процесс перекраски, это чисто екзешник надо править или что то еще захватывает. Ато так демонстративно. Нет и все.
AlexYar : |
Обычная ф-ия в обже. В оригинальной игре недоступна. Если не забуду - сделаю такую скрипткоманду в 2.0.02ext_b8 патче
|
Вау, супер будем ждатьмс...
_________________ Наука движется настолько быстро, что самые оптимистические прогнозы могут оказаться устаревшими!
Последний раз редактировалось: Мечтатель (16:45 30-11-2007), всего редактировалось 2 раз(а) |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 13(2096) Репутация: 325 Сообщения: 32761
Зарегистрирован: 26.10.2003
 |
|
Andrei [<>Ace] : |
"Каждый созданный в игре объект не принадлежащий игроку, подключается ко встроенной логике расы владельца, которая и берет дальнейшее управление объектом в свои руки." - DragonP
|
Для х3 ситуация совершенно иная, нежели была в х2.
Но сходятся они в одном - при создании корабля скриптом, если у него раса не "игрок", и если расовая логика не отключена - игра через небольшой промежуток времени запустит на нём команду по-умолчанию (start task).
В х2 команды были все известны. Например TS без приписки полетит на ближайшую верфь своей расы и будет там сидеть, TS с припиской полетит на станцию приписки, TS с припиской и созданный на станции приписки будет через какое-то время подхвачен станцией для снабжения, если нет других кораблей такого класса в списке "приписанных". Боевые истребители и бигшипы получат команду "убивать всех врагов". И т.д.
В х3 всё совершенно по-другому и собственноручное создание новых кораблей с неотключенной расовой логикой приведёт только к багам, так как старая расовая логика (х2-шная) доломана не до конца. В х3 корабли добавляются не скриптами, а с помощью файла Jobs.txt.
Т.е. любой корабль, который создаётся скриптом, обязательно должен быть отключён от расовой логики, иначе его действия предсказать будет невозможно.
Мечтатель : |
Ты бы объяснил как в ШК происходит процесс перекраски
|
Обычная ф-ия в обже. В оригинальной игре недоступна. Если не забуду - сделаю такую скрипткоманду в 2.0.02ext_b8 патче
|
|
|
WhiteWolf
55 EGP
 Рейтинг канала: 2(13) Репутация: 0 Сообщения: 53
Зарегистрирован: 24.10.2007
 |
|
Andrei [<>Ace] : |
Вернет ссылку, массив нужно копировать в другую переменную, если хочешь сохранить старый.
|
Т.е. получается оптимально даже для того, чтобы сохранить единственное значение в глобальную/локальную переменную достаточно будет создать массив из одного элемента. Тогда не потребуется непосредственной перезаписи значения глобальной/локальной переменной, а также после изменений размера массива?
|
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
WhiteWolf : |
Тогда не потребуется непосредственной перезаписи значения глобальной/локальной переменной, а также после изменений размера массива?
|
Смотри сам. Лучше презапиши. Стремно это работает. Я и массивы перезаписываю.
|
|
|
WhiteWolf
55 EGP
 Рейтинг канала: 2(13) Репутация: 0 Сообщения: 53
Зарегистрирован: 24.10.2007
 |
|
Andrei [<>Ace] : |
WhiteWolf : |
Тогда не потребуется непосредственной перезаписи значения глобальной/локальной переменной, а также после изменений размера массива?
|
Смотри сам. Лучше презапиши. Стремно это работает. Я и массивы перезаписываю.
|
Может есть конкретные моменты когда Стремно это работает,и собрать статистику чтобы выявить баги? Учитывая, что движок Х3 использует невытесняющую многозадачность, то и коллизий одновременного доступа к ресурсам не должно быть, или я не прав? И заблудился в трех березах (может стеки в Х3 относительно друг друга работают всетаки в режиме вытесняющей многозадачности)?
AlexYar : |
Т.е. любой корабль, который создаётся скриптом, обязательно должен быть отключён от расовой логики, иначе его действия предсказать будет невозможно.
|
Ну вот лично я не уверен, что при скриптовом создании объекта какой-либо рассы в каком-нибудь стеке X этого объекта не запускается какая-нибудь гадость не вычещаемая отключением расовой логики Об этом можно спросить только у тех, кто обжи глубоко копает, например у тебя
Последний раз редактировалось: WhiteWolf (20:29 30-11-2007), всего редактировалось 2 раз(а) |
|
|
|
|
|
Канал X3: Reunion ->
Модовый и скриптовый отсек X3: Reunion: «Скриптописание - делимся опытом, задаем вопросы» |
|