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

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

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

   Страница 4 из 136
На страницу: Пред.  1, 2, 3, 4, 5 ... 134, 135, 136  След.    Перейти:   Все страницы
Поиск в этой теме:
Канал X3: Reunion » Модовый и скриптовый отсек X3: Reunion: «Скриптописание - делимся опытом, задаем вопросы»
Grey Wolf
 500 EGP


Репутация: 115
Сообщения: 1677
Откуда: Ростов-на-Дону
Зарегистрирован: 31.03.2003
2 sergej4341: я бы тоже через локальную переменную сделал.
Не уверен, что будет работать - так сделай тестовые скрипты да проверь! (это, кстати, касается всех, кто только начинает писать скрипты)
А как ты думаешь, другие скриптописатели узнают, как работает та или другая команда, особенно раньше, пока не было никаких учебников и руководств? Улыбка
_________________
Быстро выпитая рюмка не считается налитой
    Добавлено: 14:06 01-03-2006   
sergej4341
 460 EGP


Рейтинг канала: 5(139)
Репутация: 148
Сообщения: 1593
Откуда: Химки/Брест
Зарегистрирован: 16.01.2004
Grey Wolf :
Не уверен, что будет работать - так сделай тестовые скрипты да проверь!

это да! это я знаю! от этого извернуться не получиться Хы...
локальная значиться?

<RefObj>set local variable: name=<Var/String> value=<Value>
Устанавливает значение локальной переменной объекта <Var/String> равным <Value>. Локальные переменные привязаны к определенному объекту и используются для обмена данными между скриптами запущенными на одном объекте.

между скриптами запущенными на одном объекте - вот это то меня и смущает
я так понимаю, глобальные переменные совсе не подходят, т.е. остается или эксперименты с локальными или первый вариант, т.е. путем передачи значения переменной в виде параметра и организовывать запуск скрипта-пустышки на втором объекте предназначенного только для получения значения этой самой переменной?
_________________
нажал клав. и затаил дыхание
    Добавлено: 14:49 01-03-2006   
Krom
 455 EGP


Рейтинг канала: 1(3)
Репутация: 159
Сообщения: 1988
Откуда: Горы Урала
Зарегистрирован: 19.07.2005
sergej4341 :
Локальные переменные привязаны к определенному объекту и используются для обмена данными между скриптами запущенными на одном объекте.

что не мешает посторонним скриптам создавать локальные переменные где угодно. Я бы объяснил это на примере очереди сообщений в Виндах - один объект генерит мессагу (это твой параметр $value), ставит её в очередь другому объекту (т.е. очередь в данном случае - его локальная переменная $LOCAL). Второй объект исполняет что ему написано в мессаге, очищает очередь сообщений, после чего постоянно сканит её, пока та пуста. Не пуста - значит, пришла новая команда, значит, бежим исполнять. Всё просто Улыбка
P.S> Не смущайся Подмигиваю
_________________
Не спешите меня.
    Добавлено: 15:05 01-03-2006   
Grey Wolf
 500 EGP


Репутация: 115
Сообщения: 1677
Откуда: Ростов-на-Дону
Зарегистрирован: 31.03.2003
Вообще у меня от локальных переменных неоднозначное впечатление.
В Х2 (не помню уже, какой тогда был патч), вроде нельзя было получить переменную с другого объекта. Действительно, могли обмениваться только скрипты, запущенные на одном объекте. Может к финальному патчу это и изменили, но невозможно отследить все изменения в каждом патче.
В Х3 вроде уже можно Улыбка но надо бы поточнее проверить.
_________________
Быстро выпитая рюмка не считается налитой
    Добавлено: 15:11 01-03-2006   
Krom
 455 EGP


Рейтинг канала: 1(3)
Репутация: 159
Сообщения: 1988
Откуда: Горы Урала
Зарегистрирован: 19.07.2005
Grey Wolf :
Может к финальному патчу это и изменили

Да, если я верно помню, в Х2 1.4 локалки читать и писать извне уже получалось. Если в Х3 1.3 ничего не изменилось...

Другой вопрос - как узнать, из какого минерала сделан астероид? Улыбка
_________________
Не спешите меня.
    Добавлено: 15:19 01-03-2006   
Grey Wolf
 500 EGP


Репутация: 115
Сообщения: 1677
Откуда: Ростов-на-Дону
Зарегистрирован: 31.03.2003
Krom :
Другой вопрос - как узнать, из какого минерала сделан астероид?

Делаешь перебор секторов, в каждом используешь функцию поиска find asteroid с флагом find multiple и указанием типа ресурса 1 (оре - это 0, нивидиум - 2), получваешь массив силиконовых астероидов в каждом секторе, если конечно они там есть Улыбка
_________________
Быстро выпитая рюмка не считается налитой
    Добавлено: 15:39 01-03-2006   
DragonP
 281 EGP


Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
sergej4341 :
между скриптами запущенными на одном объекте - вот это то меня и смущает

Ошибка в учебнике (Исправленна месяца три назад) Подмигиваю

Цитата:
<RefObj>set local variable: name=<Var/String> value=<Value>
Устанавливает значение локальной переменной объекта <Var/String> равным <Value>. Локальные переменные привязаны к определенному объекту и используются для обмена данными между скриптами. Локальные переменные доступны любому скрипту и имеют привязку только к конкретному объекту, но любой скрипт может использовать и изменять это значение независимо от того где он запущен, достаточно сослаться на нужный объект. Отменить установку переменной можно задав её значение в null. Подробно работа со всеми видами переменных рассмотрена в главе «Введение в скриптописание».

_________________
Звезды зовут...
    Добавлено: 15:43 01-03-2006   
Krom
 455 EGP


Рейтинг канала: 1(3)
Репутация: 159
Сообщения: 1988
Откуда: Горы Урала
Зарегистрирован: 19.07.2005
Grey Wolf :
Делаешь перебор секторов, в каждом используешь функцию поиска find asteroid с флагом find multiple и указанием типа ресурса 1 (оре - это 0, нивидиум - 2), получваешь массив силиконовых астероидов в каждом секторе, если конечно они там есть

В том и дело, что не работает! Я раньше минерал конкретной каменюки знаешь как определял? Искал ближайший к данному астеру астер, перебирая типы минералов. Сейчас повторил всё в точности - не работает, в полудюжине других вариаций с типами - тоже фиг... Вот и пришёл весь такой растерянный - то ли в баги, то ли снова учиться... Совсем запутался...
_________________
Не спешите меня.
    Добавлено: 23:38 01-03-2006   
Пассажир
 

Пассажир




При создании корабля командой create ship вопервых невозможно задать рассу которой он будет принадлежать такое впечатление что расса выбирается случайным образом получается то паранид то сплит деметер например. Второе окрабль самоуничтожается через несколько секунд???? Чего не так?
    Добавлено: 00:06 02-03-2006   
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
    Добавлено: 08:58 02-03-2006   
sly
 135 EGP


Репутация: 31
Сообщения: 466
Откуда: Иркутск
Зарегистрирован: 06.12.2003
Проверь сохранен ли у тебя текстовый файл в кодировке UTF-8 Улыбка
в блокноте делаеш сохранить как и в самом нижнем списке ставиш кодировку UTF-8

адд
какое название скрипта ... где пишет ? что у тебя английским написано то и будет отображаться потому что ему пофигу кодировки ... а вот киррилицу х3 распознает только в UTF-8
Ламер

2адд
читер Блюэ-э-э...
Ой, не могу!..
    Добавлено: 09:02 02-03-2006   
STRANNIK
 55 EGP


Репутация: -22
Сообщения: 110
Откуда: г.Ростов-на-Дону
Зарегистрирован: 27.01.2005
А почему пишет название скрипта?
Может дело в самом скрипте с отображением названия, что то не совпадает в совместимости Х2 с Х3? Хотя скрипт работает, только нет названия!
Спасибо сегодня вечером сделаю у своей новы скорость 750 Супер!
_________________
STRANNIK
    Добавлено: 09:16 02-03-2006   
Grey Wolf
 500 EGP


Репутация: 115
Сообщения: 1677
Откуда: Ростов-на-Дону
Зарегистрирован: 31.03.2003
Krom :
В том и дело, что не работает!

Ну хрен знает, попробую вечером. Я функцию поиска астеров не пробовал в Х3, а другие функции поиска (станции, корабля) работают нормально, никаких багов не заметил.

LM :
При создании корабля командой create ship вопервых невозможно задать рассу которой он будет принадлежать такое впечатление что расса выбирается случайным образом получается то паранид то сплит деметер например. Второе окрабль самоуничтожается через несколько секунд???? Чего не так?


Ты бы написал добуквенно, как ты именно команду пишешь, ну и заодно вкратце какие команды до нее и после. А то хз, что тебе ответить на вопрос "чего не так". У меня эта команда отлично работает, и расы задаются и корабль не уничтожается.
    Добавлено: 10:18 02-03-2006   
Пассажир
 

Пассажир




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 Разъясните плиз.
    Добавлено: 11:57 02-03-2006   
Grey Wolf
 500 EGP


Репутация: 115
Сообщения: 1677
Откуда: Ростов-на-Дону
Зарегистрирован: 31.03.2003
2 LM:
Я, не знаю уж почему, всегда вместо переменной [SECTOR] пишу строчку $sector=[PLAYERSHIP]->get sector. И дальше использую переменную $sector. Причину объяснить не могу Хы... чисто интуитивно или по привычке. Но все работает Улыбка Попробуй, может в этом причина.
И еще. Я всегда после создания корабля какой-то расы, кроме игрока, пишу строчку, отключающую расовую логику. Может это она заставляет корабль взрываться?
    Добавлено: 12:42 02-03-2006   
Пассажир
 

Пассажир




2 Grey wolf
У меня тоже подозрение что это из за рассовой логики. Вчера весь вечер просматривал стандартные скрипты пытался найти что нибудь. Кстати где она эта рассовая логика зашита? А какой командой она отключается?
    Добавлено: 14:04 02-03-2006   
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 запрещены! Используйте пожалуйста другие, более нормальные хостинги./ очень полезно почитать Улыбка
_________________
Быстро выпитая рюмка не считается налитой
    Добавлено: 17:34 02-03-2006   
Grey Wolf
 500 EGP


Репутация: 115
Сообщения: 1677
Откуда: Ростов-на-Дону
Зарегистрирован: 31.03.2003
Krom :
В том и дело, что не работает!


Поковырялся с функцией поиска астероидов и обнаружил неприятный баг.
По первому впечатлению все ОК. По такому случаю собрался я сделать табличку по секторам, где какие астероиды находятся. Сделал, все гут, начал смотреть, самому интересно, где жирные астероиды. И обнарудил, что в некоторых секторах, в основном это неизвестные сектора но не только, в таблице присутствуют астероиды в "тройном размере". Т.е. один и тот же астероид с одними и теми же координатами прописывается в 3-х строчках Совсем запутался...
Взял к примеру неизвестный сектор с координатами 20,5. Там по таблице 18 астеров. Прилетел туда лично, там их действительно 18, но ессно координаты у всех разные. При личном присутствии в секторе, функция дает массив астероидов правильный. А если сектор удаленный, то почти везде правильно, а в некоторых секторах дурит Расстроен Пробовал обе функции, и find asteroid и get asteroids array from sector, обе в этих секторах глючат.
Подробно баг не исследовал, написал, как есть.
_________________
Быстро выпитая рюмка не считается налитой
    Добавлено: 22:05 04-03-2006   
AlexYar
 1852 EGP


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

Зарегистрирован: 26.10.2003
Как по двум пройденным точкам (x1,y1,z1 и x2,y2,z2) при прямолинейном движении вычислить следующую точку на пути следования, находящуюся от последней пройденной точки на расстоянии $Dist ?

Разница между первой и второй контрольной точкой будет незначительная, т.к. данные будут сниматься через короткий промежуток времени (больше скорость - больше разница).
    Добавлено: 00:27 05-03-2006   
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
    Добавлено: 01:02 05-03-2006   
Канал X3: Reunion -> Модовый и скриптовый отсек X3: Reunion: «Скриптописание - делимся опытом, задаем вопросы»
На страницу: Пред.  1, 2, 3, 4, 5 ... 134, 135, 136  След.    Перейти:   Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Пойду удавлю кого-нить в КТВ.. (Pinocchio)

  » Скриптописание - делимся опытом, задаем вопросы | страница 4
Каналы: Новости | 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