Эрендир, TRam - одно могу сказать, вы правы! И спасибо!) У меня получилось то, что я планировал!
Эрендир, TRam - одно могу сказать, вы правы! И спасибо!) У меня получилось то, что я планировал!
Вопрос по системе сообщений:
В доках написано, что система позволяет отправлять сообщения в том числе и другим скриптам, а вот как? Не могу найти примера, где сообщение отправляется другому скрипту, везде тому же. Если мне нужно из скрипта Б отправить в скрипт А сообщение для объекта sync, как указать адресата? Если пишу вот так просто:
PostMessage(sync, "Test", "123", 0);
Скрипт не хочет компилироваться, не знает он что за объект sync, ну конечно, в скрипте Б этот объект не объявлен, он находится в скрипте А. Как же это сделать?
В скрипте А объект sync описан так:
Сам класс:
class Synchronizer isclass GameObject {
void SynHandler(Message msg){
Interface.Print(msg.major + " - " + msg.minor);
}
public void Init(void){
inherited();
AddHandler(me,"","","SynHandler");
}
};
И в классе скрипта с точкой входа его объявление и инициализация:
Класс с точкой входа {
Synchronizer sync;
public void Init(){
inherited();
sync = new Synchronizer();
sync.Init();
}
}
Последний раз редактировалось Volaner; 02.05.2017 в 16:47.
GameObject не может создаваться скриптом. Он может создаваться игрой только тогда, когда он прописан в конфиге в теге "class" некого куида (а в теге script указан файл скрипта, где этот класс определён) и этот куид установлен на карту/добавлен как правило/добавлен как команда и т.п.
Создавать же можно только наследник GSObject, или вовсе класс, не наследующий никого.
Последний раз редактировалось TRam_; 03.05.2017 в 11:33.
Как получить имя персонажа (DriverCharacter) и можно ли задать ему другое имя путем создания команды для смены прямо в режиме машиниста?
Уроки по Trainz: https://www.youtube.com/c/TeamoftheTrainz
А если я достучусь до локомотива через GetMyTrain, я могу получить доступ к объектам из его класса (скрипта)? Понятно, что у объекта класса train есть стандартные методы для получения скорости, направления и ещё там чего то, а вот можно прямо в его класс залезть? Для примера: возможно из скрипта вагона получить скажем положение рукоятки тормоза локомотива?
И ещё вопрос, если можно А если у состава два локомотива, что вернёт GetMyTrain? Массив из двух объектов класса train? А как тогда понять, кто из них главный?
из скрипта вагона нельзя получить положение рукоятки. Из скрипта локомотива тоже. Это можно сделать только и исключительно из скрипта кабины. Объект кабины получить ни из локомотива, ни из вагона нельзя.
---------- Сообщение добавлено в 10:33 ---------- Предыдущее сообщение размещено в 10:30 ----------
GetMyTrain выдаёт объект "состав", у которого можно получить массив вагонов через GetVehicles(). Для преобразования вагона в локомотив можно использовать преобразование типов (cast<Locomotive>vehicle). Но сам состав имеет свои, не зависящие от вагонов, параметры (например, "приоритет", "сидящий в составе машинист" и т.д.).
---------- Сообщение добавлено в 10:52 ---------- Предыдущее сообщение размещено в 10:33 ----------
никак не понять. Все локомотивы одинаково главные. Можно запросить "ближайший к голове" локомотив. Можно ещё по глобальным мессеждам отследить, в какой локомотив пересел игрок.
Последний раз редактировалось TRam_; 04.05.2017 в 11:35.
А зечем тогда этот раздел форума существует? Можно прикрутить тогда сюда робота, чтоб он на каждый вопрос отвечал - учите API.
---------- Сообщение добавлено в 03:58 ---------- Предыдущее сообщение размещено в 03:56 ----------
Спасибо за ответ. Буду лучше понимать возможности.
---------- Сообщение добавлено в 04:10 ---------- Предыдущее сообщение размещено в 03:58 ----------
Посоветуйте пожалуйста, скрипт тепловоза с реализованными сохранением и загрузкой, как пример посмотреть. Я где то видел, советовали хороший скрипт новичкам для примера, не могу найти :(
Что бы помогать разбираться с вопросами, которые не понятны, а не говорить что возвращает функция. Как можно вообще начинать где-то что-то писать не разобравшись с платформой, мне не понятно. Одно дело когда человек приходит и спрашивает: "Подскажите, как мне узнать объект состава для своей подвижной единицы". Пример упрощён, потому как это тоже в Api находится за 10 секунд. И отвечают человеку: "Функция Vehicle::GetMyTrain()". Человек взял, заглянул в API и нашёл нужную функцию, чего она возвращает и т.д. Другое дело, когда смотреть в API никто не хочет, а хочет что бы это сделали за него.