|
|
|
Канал X3: Reunion »
Модовый и скриптовый отсек X3: Reunion: «Скриптописание - делимся опытом, задаем вопросы» |
|
|
Grey Wolf 500 EGP
Репутация: 115 Сообщения: 1677 Откуда: Ростов-на-Дону Зарегистрирован: 31.03.2003 |
|
2 sergej4341: я бы тоже через локальную переменную сделал.
Не уверен, что будет работать - так сделай тестовые скрипты да проверь! (это, кстати, касается всех, кто только начинает писать скрипты)
А как ты думаешь, другие скриптописатели узнают, как работает та или другая команда, особенно раньше, пока не было никаких учебников и руководств?
_________________ Быстро выпитая рюмка не считается налитой |
|
|
sergej4341 460 EGP
Рейтинг канала: 5(139) Репутация: 148 Сообщения: 1593 Откуда: Химки/Брест Зарегистрирован: 16.01.2004 |
|
Grey Wolf : |
Не уверен, что будет работать - так сделай тестовые скрипты да проверь!
|
это да! это я знаю! от этого извернуться не получиться
локальная значиться?
<RefObj>set local variable: name=<Var/String> value=<Value>
Устанавливает значение локальной переменной объекта <Var/String> равным <Value>. Локальные переменные привязаны к определенному объекту и используются для обмена данными между скриптами запущенными на одном объекте.
между скриптами запущенными на одном объекте - вот это то меня и смущает
я так понимаю, глобальные переменные совсе не подходят, т.е. остается или эксперименты с локальными или первый вариант, т.е. путем передачи значения переменной в виде параметра и организовывать запуск скрипта-пустышки на втором объекте предназначенного только для получения значения этой самой переменной?
_________________ нажал клав. и затаил дыхание |
|
|
Krom 455 EGP
Рейтинг канала: 1(3) Репутация: 159 Сообщения: 1988 Откуда: Горы Урала Зарегистрирован: 19.07.2005 |
|
sergej4341 : |
Локальные переменные привязаны к определенному объекту и используются для обмена данными между скриптами запущенными на одном объекте.
|
что не мешает посторонним скриптам создавать локальные переменные где угодно. Я бы объяснил это на примере очереди сообщений в Виндах - один объект генерит мессагу (это твой параметр $value), ставит её в очередь другому объекту (т.е. очередь в данном случае - его локальная переменная $LOCAL). Второй объект исполняет что ему написано в мессаге, очищает очередь сообщений, после чего постоянно сканит её, пока та пуста. Не пуста - значит, пришла новая команда, значит, бежим исполнять. Всё просто
P.S> Не смущайся
_________________ Не спешите меня. |
|
|
Grey Wolf 500 EGP
Репутация: 115 Сообщения: 1677 Откуда: Ростов-на-Дону Зарегистрирован: 31.03.2003 |
|
Вообще у меня от локальных переменных неоднозначное впечатление.
В Х2 (не помню уже, какой тогда был патч), вроде нельзя было получить переменную с другого объекта. Действительно, могли обмениваться только скрипты, запущенные на одном объекте. Может к финальному патчу это и изменили, но невозможно отследить все изменения в каждом патче.
В Х3 вроде уже можно но надо бы поточнее проверить.
_________________ Быстро выпитая рюмка не считается налитой |
|
|
Krom 455 EGP
Рейтинг канала: 1(3) Репутация: 159 Сообщения: 1988 Откуда: Горы Урала Зарегистрирован: 19.07.2005 |
|
Grey Wolf : |
Может к финальному патчу это и изменили
|
Да, если я верно помню, в Х2 1.4 локалки читать и писать извне уже получалось. Если в Х3 1.3 ничего не изменилось...
Другой вопрос - как узнать, из какого минерала сделан астероид?
_________________ Не спешите меня. |
|
|
Grey Wolf 500 EGP
Репутация: 115 Сообщения: 1677 Откуда: Ростов-на-Дону Зарегистрирован: 31.03.2003 |
|
Krom : |
Другой вопрос - как узнать, из какого минерала сделан астероид?
|
Делаешь перебор секторов, в каждом используешь функцию поиска find asteroid с флагом find multiple и указанием типа ресурса 1 (оре - это 0, нивидиум - 2), получваешь массив силиконовых астероидов в каждом секторе, если конечно они там есть
_________________ Быстро выпитая рюмка не считается налитой |
|
|
DragonP 281 EGP
Репутация: 108 Сообщения: 527 Откуда: Новосибирск Зарегистрирован: 18.12.2004 |
|
sergej4341 : |
между скриптами запущенными на одном объекте - вот это то меня и смущает
|
Ошибка в учебнике (Исправленна месяца три назад)
Цитата: |
<RefObj>set local variable: name=<Var/String> value=<Value>
Устанавливает значение локальной переменной объекта <Var/String> равным <Value>. Локальные переменные привязаны к определенному объекту и используются для обмена данными между скриптами. Локальные переменные доступны любому скрипту и имеют привязку только к конкретному объекту, но любой скрипт может использовать и изменять это значение независимо от того где он запущен, достаточно сослаться на нужный объект. Отменить установку переменной можно задав её значение в null. Подробно работа со всеми видами переменных рассмотрена в главе «Введение в скриптописание».
|
_________________ Звезды зовут... |
|
|
Krom 455 EGP
Рейтинг канала: 1(3) Репутация: 159 Сообщения: 1988 Откуда: Горы Урала Зарегистрирован: 19.07.2005 |
|
Grey Wolf : |
Делаешь перебор секторов, в каждом используешь функцию поиска find asteroid с флагом find multiple и указанием типа ресурса 1 (оре - это 0, нивидиум - 2), получваешь массив силиконовых астероидов в каждом секторе, если конечно они там есть
|
В том и дело, что не работает! Я раньше минерал конкретной каменюки знаешь как определял? Искал ближайший к данному астеру астер, перебирая типы минералов. Сейчас повторил всё в точности - не работает, в полудюжине других вариаций с типами - тоже фиг... Вот и пришёл весь такой растерянный - то ли в баги, то ли снова учиться...
_________________ Не спешите меня. |
|
|
Пассажир
|
|
При создании корабля командой create ship вопервых невозможно задать рассу которой он будет принадлежать такое впечатление что расса выбирается случайным образом получается то паранид то сплит деметер например. Второе окрабль самоуничтожается через несколько секунд???? Чего не так?
|
|
|
STRANNIK 55 EGP
Репутация: -22 Сообщения: 110 Откуда: г.Ростов-на-Дону Зарегистрирован: 27.01.2005 |
|
Переделываю крипт из Х2 по тюнингу двигателя и почему то пропало название команды в чем дело, хелп ми! А скрипт действует Скока хочешь стока и скорость, но хочется видет надпись, есть только описание, названия команды нет
<?xml version="1.0" encoding="UTF-8" ?>
<language id="7">
<page id="2010" title="Script Cmd Names" descr="Long version of commandos. These are the commandos assigned to ships using the commandconsole. Page 2010 and 2011 belong together and hold short and long versions of the same commands">
<t id="508">Увеличение скорости судна</t> ------ этой надписи нет
<t id="509">Увеличение оптимизации руля судна</t> ----- и этой
</page>
<page id="2011" title="Script Cmd Shorts" descr="Short version of commandos. These are the commandos assigned to ships using the commandconsole. Page 2010 and 2011 belong together and hold short and long versions of the same commands">
<t id="508">ADD.Remove.ET.</t> а эти надписи есть
<t id="509">ADD.Remove.RT.</t>
</page>
</language>
Подскажите в чем дело?
_________________ STRANNIK |
|
|
sly 135 EGP
Репутация: 31 Сообщения: 466 Откуда: Иркутск Зарегистрирован: 06.12.2003 |
|
Проверь сохранен ли у тебя текстовый файл в кодировке UTF-8
в блокноте делаеш сохранить как и в самом нижнем списке ставиш кодировку UTF-8
адд
какое название скрипта ... где пишет ? что у тебя английским написано то и будет отображаться потому что ему пофигу кодировки ... а вот киррилицу х3 распознает только в UTF-8
2адд
читер
|
|
|
STRANNIK 55 EGP
Репутация: -22 Сообщения: 110 Откуда: г.Ростов-на-Дону Зарегистрирован: 27.01.2005 |
|
А почему пишет название скрипта?
Может дело в самом скрипте с отображением названия, что то не совпадает в совместимости Х2 с Х3? Хотя скрипт работает, только нет названия!
Спасибо сегодня вечером сделаю у своей новы скорость 750
_________________ STRANNIK |
|
|
Grey Wolf 500 EGP
Репутация: 115 Сообщения: 1677 Откуда: Ростов-на-Дону Зарегистрирован: 31.03.2003 |
|
Krom : |
В том и дело, что не работает!
|
Ну хрен знает, попробую вечером. Я функцию поиска астеров не пробовал в Х3, а другие функции поиска (станции, корабля) работают нормально, никаких багов не заметил.
LM : |
При создании корабля командой create ship вопервых невозможно задать рассу которой он будет принадлежать такое впечатление что расса выбирается случайным образом получается то паранид то сплит деметер например. Второе окрабль самоуничтожается через несколько секунд???? Чего не так?
|
Ты бы написал добуквенно, как ты именно команду пишешь, ну и заодно вкратце какие команды до нее и после. А то хз, что тебе ответить на вопрос "чего не так". У меня эта команда отлично работает, и расы задаются и корабль не уничтожается.
|
|
|
Пассажир
|
|
2 GreyWolf
Пока делаю тупо просто хотел проверить как работает
10 $ship = create ship: type=Express owner=Paranid addto=[SECTOR] x=40000 y=0 z=0
20 skip if $ship
30 write message to logbook 'Error!!!'
40 $ship->add default items to ship
50 return null
Корабль создается в нужной точке. На счет рассовой принадлежности я заметил что если расса совпадает с владельцем сектора где пытаешься создать ship то нет проблем если пытаешься создать например пирата у теллади то получается или борон или аргон или паранид. Далее окрабль висит некоторе время без движения и потом взрывается сам по себе. При чем самоуничтожение происходит как я заметил только с ТS или TP. М5,М4 и прочие М отправляются благополучно по своим паранидским или теладийским делам. Видимо рассовый интеллект берет их в оборот. А транспортники взрываются. А мне для моих целей именно транспортник и нужен. Версия игры Х3 1.3 Разъясните плиз.
|
|
|
Grey Wolf 500 EGP
Репутация: 115 Сообщения: 1677 Откуда: Ростов-на-Дону Зарегистрирован: 31.03.2003 |
|
2 LM:
Я, не знаю уж почему, всегда вместо переменной [SECTOR] пишу строчку $sector=[PLAYERSHIP]->get sector. И дальше использую переменную $sector. Причину объяснить не могу чисто интуитивно или по привычке. Но все работает Попробуй, может в этом причина.
И еще. Я всегда после создания корабля какой-то расы, кроме игрока, пишу строчку, отключающую расовую логику. Может это она заставляет корабль взрываться?
|
|
|
Пассажир
|
|
2 Grey wolf
У меня тоже подозрение что это из за рассовой логики. Вчера весь вечер просматривал стандартные скрипты пытался найти что нибудь. Кстати где она эта рассовая логика зашита? А какой командой она отключается?
|
|
|
Grey Wolf 500 EGP
Репутация: 115 Сообщения: 1677 Откуда: Ростов-на-Дону Зарегистрирован: 31.03.2003 |
|
LM : |
А какой командой она отключается?
|
В разделе Fly Commands,
Refogj -> Set race logic control (0/1)
0 - логика выключена.
Вообще есть отличное руководство по скриптам Х2 http://www.Ссылки на narod.ru запрещены! Используйте пожалуйста другие, более нормальные хостинги./ очень полезно почитать
_________________ Быстро выпитая рюмка не считается налитой |
|
|
Grey Wolf 500 EGP
Репутация: 115 Сообщения: 1677 Откуда: Ростов-на-Дону Зарегистрирован: 31.03.2003 |
|
Krom : |
В том и дело, что не работает!
|
Поковырялся с функцией поиска астероидов и обнаружил неприятный баг.
По первому впечатлению все ОК. По такому случаю собрался я сделать табличку по секторам, где какие астероиды находятся. Сделал, все гут, начал смотреть, самому интересно, где жирные астероиды. И обнарудил, что в некоторых секторах, в основном это неизвестные сектора но не только, в таблице присутствуют астероиды в "тройном размере". Т.е. один и тот же астероид с одними и теми же координатами прописывается в 3-х строчках
Взял к примеру неизвестный сектор с координатами 20,5. Там по таблице 18 астеров. Прилетел туда лично, там их действительно 18, но ессно координаты у всех разные. При личном присутствии в секторе, функция дает массив астероидов правильный. А если сектор удаленный, то почти везде правильно, а в некоторых секторах дурит Пробовал обе функции, и find asteroid и get asteroids array from sector, обе в этих секторах глючат.
Подробно баг не исследовал, написал, как есть.
_________________ Быстро выпитая рюмка не считается налитой |
|
|
AlexYar 1852 EGP
Рейтинг канала: 13(2096) Репутация: 324 Сообщения: 31640
Зарегистрирован: 26.10.2003 |
|
Как по двум пройденным точкам (x1,y1,z1 и x2,y2,z2) при прямолинейном движении вычислить следующую точку на пути следования, находящуюся от последней пройденной точки на расстоянии $Dist ?
Разница между первой и второй контрольной точкой будет незначительная, т.к. данные будут сниматься через короткий промежуток времени (больше скорость - больше разница).
|
|
|
Gward 310 EGP
Рейтинг канала: 1(3) Репутация: 75 Сообщения: 1307 Откуда: Ставрополь Зарегистрирован: 11.06.2004 |
|
AlexYar
Нафига тебе эти танки?
Ну на, бери.
Дано {x1,y1,z1}, {x2,y2,z2}, dist в метрах, ДельтаВремя - время съема замеров.
ДельтаРасстояние= <object> -> get distance: position array1={x1,y1,z1} position array2={x2,y2,z2}
ДельтаСкорость = ДельтаРасстояние / Дельта время
Время = dist / ДельтаСкорость.
ДельтаХ = (x2-x1) / Дельта время * Время
ДельтаY = (z2-z1) / Дельта время * Время
ДельтаZ = (z2-z1) / Дельта время * Время
x3 = x2 + ДельтаX
y3 = y2 + ДельтаY
z3 = z2 + ДельтаZ
|
|
|
|
|
|
Канал X3: Reunion ->
Модовый и скриптовый отсек X3: Reunion: «Скриптописание - делимся опытом, задаем вопросы» |
|