71. Как прописать скрипт полу-автоматического тюкоподборщика. Всем доброго времени суток и поздравляю всех с третьем днем весны. Сейчас я расскажу как установить скрипт полу-автоматической подборки тюков на прицеп, мое творение ориентировано как всегда на новичка, так что знающие люди могут просто взять скрипт и не читать все эти извращения, которыми я пытаюсь донести как можно съедобней для простого смертного пользователя весь процесс установки этого скрипта. Итак что-же нам понадобиться: 1. Giants Editor 2. Блокнот или его собратья по мощнее. 3. Сам скрипт. 4. Модели самих тюков, можно и без текстур, они находятся по адресу: C:\Program Files\Farming Simulator 2011\data\maps\models\objects\roundbales\roundbaleStraw.i3d Это модель круглого тюка, а это стандартного, прямоугольного C:\Program Files\Farming Simulator 2011\data\maps\models\objects\strawbale\strawbaleBaler.i3d , есть еще и тюкопрессы, которые вяжут большие прямоугольные тюки, и модели этих тюков должны идти непосредственно с самим тюкопрессом, который их вяжет. 5. Ну и монитор что-бы видеть что мы делаем, я думаю с монитором будет проще...
Итак, начнем. 1. Открываем прицеп гигантом, создаем 6 трансформ групп (3 для точек выгрузки тюков и 3 для групп аттачеров тюков, если Вам три типа тюков не нужны - можете создать одну или две) и запихиваем их в компонент с самим кузовом, значения Translate X,Z можно оставить нулевыми, а вот по оси Y нужно его поместить на дно прицепа (Ну это так для удобства, что-бы не искать в случае чего пивот всей группы хрен знает где), теперь опять же таки для удобства обзываем наши группы, я свои обозвал не долго думая (так-же как и они звались на прицепе, с которого я этот скрипт выдрал ) точки выгрузки я назвал unloadLeft, unloadRight и unloadBack Ну и группы аттачеров были названы так baleAttachersBig(большие тюки), baleAttachersRound(круглые тюки) и baleAttachersNormal(обычные, прямоугольные).
2. Сейчас я расскажу как поставить точно аттачеры тюков и увидеть как это все хозяйство будет выглядеть "не выходя из гиганта". Идем по вышеуказанному адресу к желаемому тюку, открываем его, выделяем сам тюк (нам его коллизия не нужна) и жмем "File-->Export Selection...", экспортируем его куда вам угодно, главное что-бы по пути к нему не было русских бакаф. Импортируем тюк, я буду объяснять на примере прямоугольного, помещаем его в группу baleAttachersNormal (Копировать Ctrl+C, Вставить Ctrl+V). Ставим его на место, затем выделяем его и копируем в ту-же группу (что-бы не приглядываться с лупой советую воспользоваться X, Y, Z и выставить сверхточно). Загружаем сколько надо тюков и если Вас устраивает такая раскладка их на прицепе - сохраняем.
3. Теперь открываем наш .i3d прицепа блокнотом и если вы не меняли название тюка то ищем его под таким именем "strawbaleBaler_vis". Мы видим примерно следующее:
<Shape name="haybaleBaler_vis" translation="0.588309 2.44434 0.87217" rotation="6.78236 18.2251 -8.95287" nodeId="241" materialIds="38" shapeId="28" castsShadows="true" receiveShadows="true"/> Все что выделенно красным удаляеться, а то что синим меняется на TransformGroup name="Attacher01" Имя "Attacher01" чисто для удобства, советую пронумеровать каждый тюк. И так с каждой строкой (тюком), затем по окончании сохраняем, открываем опять в гиганте, тюки должны исчезнуть, а на их месте должны остаться только аттачеры, если все норм - сохраняем и идем дальше.
4. Теперь переходим к прописке аттачеров, точек разгрузки и собстно самого скрипта. Открываем .xml и где-нить перед закрывающим тегом </vehicle> пишем:
Итак что-же здесь за что отвечает: unloadLeft index="15" - Это индекс левой точки разгрузки. 16, 17 это правая и задняя точки разгрузки. count="2" - Это количество аттачеров для тюков данного типа. index="14" - Это индекс группы аттачеров тюков данного типа. type="normal" - Это тип аттачеров. objectAttacher1 index="14|0" Это индекс аттачера тюка. Строки с индексами аттачеров смело создаем и не забываем их нумеровать и так прописываем все тюки. Теперь же нам остается всего-лишь подключить скрипт в ModDesk`е: Для этого пишем эти строки в этих блоках: Эту пишем в этом блоке: <specializations>
Дата: Понедельник, 09.07.2012, 07:49 | Сообщение # 50
¯\_(ツ)_/¯
Группа: Постоянный
Сообщений: 1573
72. Как поставить Ploughing Mod на трактор? Часть 1. Всем доброго времени суток. По многочисленным просьбам решил обьяснить как же ставить небезызвестный Ploughing Mod. Конечно комплекте поставки так-же присутствует Инструкция по установке(может за бугром ее и читают но нам она не совсем понятна и без метода тыка тут не обойтись) и 2 трактора, это: Deutz Agrotron X720 и Ursus 1224 (по всей видимости последний попал в комплект в качестве примера для 2-х и более компонентных моделей). Итак сам скрипт надеюсь мы уже скачали, имеется и подопытный трактор, на котором и будем проводить опыты. Начнем: 1. Открываем modDesc.xml, в блоке <specializations> смело пишем строку:
Обратите внимание на значение выделенное красным, это и есть путь к скрипту то есть скрипт должен лежать в корне архива и никак иначе, если желаете положить скрипт в папку например Script - соответственно дописываем перед названием Script/PloughingSpec.lua. 2. Немного ниже имееться блок <vehicleTypes>, туда мы добавим строку:
Quote
<specialization name="PloughingSpec" />
3. На этом наши приключения с modDesc.xml закончились, можем закрывать его, предварительно сохранив внесенные изменения и смело открывать modname.i3d. скажу сразу что здесь прийдеться немного поработать руками или же головой для большей точности, кому как удобней. Итак в архиве с плугмодом(далее просто ПМ) есть файлик components.i3d, в котором находяться коллизии колес и аттачеры, которыми эти коллизии вместе с колесами и будут цепляться к модели трактора, извлекаем тот самый файлик куда Вам удобней, главное что-бы по пути не было пробелов и русских букаф. Затем открываем .i3d модель самого трактора, на который будем ставить ПМ, жмем в верхнем левом углу GE на выпадающую менюшку "File"(Файл), затем "Import..."(Импорт), находим файлик components.i3d и импортируем его в модель трактора, очень часто в моделях различной техники модострои оставляют помимо самих компонентов еще и всякие лампочки, камеры, а что-бы не запутаться и не лечь костьми возле своих мониторов мы возьмем и поднимем коллизии наших колес к самим компонентам моделей, первая коллизия должна называться так "Wheel_front_right"(Колесо Переднее Правое), вот жмем на нее ПКМ(Правая Кнопка Мыши) и в выпавшей менюшке жмем на "Move Up"(Передвинуть Вверх), ну и передвигаем все коллизии под самый компонент модели, что-бы коллизии стояли сразу-же после компонентов модели. Ну а теперь у Вас есть 2 варианта: 1) Взять колеса, скопировать их, повставлять куда нужно(в предназначенные для них коллизии) и в полях "Translate" написать нули, Ну а потом выделить всю коллизию и визуально поставить на место. 2) В поле каждого колеса повыписовать координаты позиционирования в полях "Translate" куда-нить на бумажку или же в блокнот, да куда вам угодно, главное что-бы они были, прибавить к ним координаты позиционирования главных коллизий, в которых они находятся(конечно нужно учитывать минусовые значения) и написать результаты в поля "Translate" коллизий колес, затем скопировать сами колеса и распихать их каждое в свою коллизию, затем в полях "Translate" самих колес (не коллизий) написать нули и колеса должны стать точно по своим старым местам, если же у Вас не получается - стукните кулаком по столу и сделайте по способу №1. На всякий случай сохраняем изменения, но не закрываем GE т к он нам еще пригодиться.
Дата: Понедельник, 09.07.2012, 07:49 | Сообщение # 51
¯\_(ツ)_/¯
Группа: Постоянный
Сообщений: 1573
Часть 2. 3. Открываем modname.xml, находим блок <wheels> (обычно он почти в самом верху и называется примерно так <wheels autoRotateBackSpeed="2.5">), здесь уже как хотите, можете подписывать каждое колесо так как это сделал Burner(он это сделал для Вашего же удобства),а можете тупо переписать индексы и забыть за этот блок, как Вам угодно. Обычно у трактора 4 колеса, 2 из них передние и должны поворачиваться, отличить их от задных можно по ряду параметров, Это: rotSpeed="70"(Скорость поворота) если же здесь стоит какое-то значение то это значит что колесо поворачиваеться, а значит оно поворотное, что говорит о том что это переднее колесо, коллизию которого Burner подписал как Wheel_front_right хотя колесо может быть и left, смотрите по индексу. Находим в строке колеса параметр repr="X>X" У переднего колеса это должна быть ступица колеса, она крутиться не должна, она должна только поворачиваться при повороте рулевого колеса, соответственно находим ступицу колеса и вписываем вместо красного икса номер компонента-коллизии, в которой находиться нужное колесо, а вместо синего икса вписываем индекс самой ступицы (в заднем колесе индекс уже самого колеса). В параметре driveNode="X>1|0" вместо красного икса вписываем так-же индекс компонента-коллизии того-же колеса, а вместо синего икса вписываем индекс самого колеса, которое вложено в ступицу. Идентичным способом переписываем индекс второго переднего колеса и переходим к задним колесам, тут все намного проще, параметра driveNode здесь нет (если же у трактора всего 2 направляющих колеса, например у Claas 3800 все 4 могут быть направляющими), в параметре repr прописываем идентичным способом, как и прописывали передние колеса, индекс уже самого колеса и идем дальше. Спустившись немного ниже мы могем наблюдать блок <components> (точнее <components count="1"> Это колличество компонентов, если же у Вас до внесения изменений на тракторе не было всяких болтающихся брызговиков, мостов, елечек т е был всего один компонент и вы добавили еще 4 компонента-коллизии - то вместо единички пишем 5 опять же таки в зависимости сколько у Вас компонентов). Теперь в тот самы блок и вставляем этот код:
Quote
<!-- front right wheel component --> <component2 centerOfMass="0 -0.8 0" solverIterationCount="190" /> <!-- front left wheel component --> <component3 centerOfMass="0 -0.8 0" solverIterationCount="190" /> <!-- back right wheel component --> <component4 centerOfMass="0 -0.8 0" solverIterationCount="190" /> <!-- back left wheel component --> <component5 centerOfMass="0 -0.8 0" solverIterationCount="190" />
<!-- front right wheel joint (componentJointIndex = 1) --> <joint component1="0" component2="1" index="1>0" rotLimit="0 0 0" transLimit="0 0 0" breakable="false"/> <!-- front left wheel joint (componentJointIndex = 2) --> <joint component1="0" component2="2" index="2>0" rotLimit="0 0 0" transLimit="0 0 0" breakable="false"/> <!-- back right wheel joint (componentJointIndex = 3) --> <joint component1="0" component2="3" index="3>0" rotLimit="0 0 0" transLimit="0 0 0" breakable="false"/> <!-- back left wheel joint (componentJointIndex = 4) --> <joint component1="0" component2="4" index="4>0" rotLimit="0 0 0" transLimit="0 0 0" breakable="false"/>
Как видите Burner опять подписал строки, итак нас интересуют следующие параметры: component2 (это тот что над ним написанно front right wheel component) это номер компонента, если же у Вас однокомпонентная модель то сразу-же после 1-го(главного) как правило должен идти 2-й(колесо), а за ним 3-й(колесо) и т д. думаю здесь все понятно. Теперь немного про параметры аттачеров. component1="0" - это номер компонента к которому колесо будет цепляться. component2="1" - это номер компонента-коллизии, где находиться само колесо. index="1>0" Красный - это номер компонента, в котором находиться аттачер, который будет цеплять этот компонент. Синий - это индекс аттачера, который будет цеплять этот компонент. rotLimit, transLimit - это лимиты вращения, перемещения компонента, но думаю что их стоит оставить по нулям, мы же не хотим что-бы наши колеса болтались как у розвалюхи... Чуть ниже имеется параметр: component1="0" component2="1" Ну здесь все ясно, пишем тоже-самое что и у параметров аттачеров. Теперь можно сразу после блока <components> написать этот код:
Code
<!-- main ploughing mod code --> <frontRightWheel wheelIndex="1" componentJointIndex="1" furrowDepth="0.3" fallSpeed="0.25" tireWidth="0.4" /> <frontLeftWheel wheelIndex="2" componentJointIndex="2" furrowDepth="0.3" fallSpeed="0.25" tireWidth="0.4" /> <backRightWheel wheelIndex="3" componentJointIndex="3" furrowDepth="0.3" fallSpeed="0.25" tireWidth="0.45" /> <backLeftWheel wheelIndex="4" componentJointIndex="4" furrowDepth="0.3" fallSpeed="0.25" tireWidth="0.45" /> <!-- end main ploughing mod code -->
<increaseRpmDuringPloughing value="true" /> <!-- end optional ploughing mod code -->
Опять же-таки описываю параметры этого кода: wheelIndex="1" - Номер компонента, в котором находиться колесо. componentJointIndex="1" - Номер компонента, в котором находиться аттачер колеса. furrowDepth="0.3" - Глубина на которую колесо будет проваливаться, заезжая на вспаханную землю. Про остальные 2 параметра незнаю. Минуточку внимания! Попрошу заранее не кидать в меня камнями, не материться, не злиться на меня, ибо я так поступил для вашего же развития. прикол в том что люди которые хотят поставить этот скрипт на однокомпонентную модель могли не читать все эти обьяснения значений ну кроме колес естстно, их хочешь не хочешь а переписывать надо было, а вот про компоненты могли и не читать, а тупо влепить код и изменить единичку на пятерку там где указывалось количество компонентов и все, т к этот код был взять с однокомпонентной модели. Ладно, утомил я вас, ну еще 2 каких-то параметра, и все. Это:
Первый из них партикл, который увеличивает дым из выхлопной трубы при пахоте, если он Вам нужен - создайте трансформ-группу в главном компоненте, поставьте его к выхлопной трубе и впишите вместо 25-ти индекс трансформ-группы. Если не нужен то можете закомментировать его и все, примерно так:
73. "как анимацию открытия борта у кузова прописать и где???????????"
По StarТ: Анимация пишется в i3d блокнотом, в самом низу файла будет блок <Animation> вот там надо добавить анимацию для борта, продублировать один из кусков кода и заменить значения на те которые будут у борта, будет примерно такое написано -
это типа кузов - его копируете и снизу вставляете, это вы добавили и цифры rotation=" надо свои ставить - их узнаете подвигав борт в гиганте. <Keyframe time="0" старт анимации - закрытый борт, <Keyframe time="2000" финиш анимации - открытый на сколько нужно борт. Сюда надо вписать Id который реальный у борта. И не вздумайте анимацию скопировать отсюда и вписать в свою модельку - кирдык модельки будет, дублируйте то что в вашей модельке написано!
Это анимация кузова, имя анимации и имя клипа ни в коем случае трогать-изменять НЕЛЬЗЯ!
это надо добавить, среднюю строчку можно убрать. Id борта можно и в гиганте посмотреть, но лучше всего найти вручную блокнотом в i3d - гигант иногда его не правильно показывает. Вот пример -
на скрине видно выделеный борт и его nodeId, но лучше запомнить название борта - в данном примере он так и называется bort и найти его блокнотом в блоке <Scene> - это чуть выше анимации -
у меня nodeId совпадает с тем что показывает гигант, вот его и надо вписать сюда. На скрине синим углы ротации при полностью открытом борту - их вписать сюда. Это пример для борта который вращается в верхних петлях. Если борт вращается в нижних петлях и должен открыватся быстро - то можно написать так -
74. Со временем игра стала долго запускаться, даже на пустой папке mods. Что делать и как быть? Хотите верьте, хотите нет, а во всех Ваших бедах виноваты Вы сами, ибо ставите все моды в подряд, которые в свою очередь не стесняясь загружают конфигурационные файлы самой игры, некоторые из них синхронизируются и обновляются, такие как vehicles.xml, который находиться в каждом сейве, а некоторые к сожалению нет, именно по-этому они со временем забиваются лишними функциями, которыми пользовались давно удаленные моды. Итак встречайте, виновник торжества - inputBinding.xml, живет он здесь My Documents\My Games\FarmingSimulator2011, именно в нем прописываются все клавиши управления игры. Есть 2 способа решения проблемы: 1. Удалить его. При следующем запуске игры - автоматически создастся новый, в котором будут прописаны клавиши управления стандартной техники, чуть позже, по мере добавления новых модов будут появляться все новые и новые функции, которыми пользуются добавленные в игру моды. Однако часто часто случаеться такая весщ что могут не работать определенные клавиши, так что их придется прописать заново или выдернуть из старого inputBinding.xml. 2. Собственноручно удалить ненужные функции удаленных модов. Я лично пользуюсь первым способом, дабы не напрягать мозги. Это обусловлено тем, что мне не безразлична судьба Нашей с Вами планеты, ведь чем больше моя мозговая активность - тем больше я потребляю пищи, а чем больше я потребляю пищи - тем больше возрастает на нее спрос, соответственно чем больше возрастает спрос - тем больше приходиться заготавливать сырья и тратить энергию на его обработку, что в свою очередь вызывает природный дисбаланс и значительно приближает нас к глобальному потеплению. Ладно, если честно - мне тупо лень этим заниматься, да и Вам не советую.
77. Что такое лог (log), консоль разработчика, для чего они нужны и как их включить и извлечь из них нужную мне информацию? В связи с тем, что к опытным игрокам новички часто обращаются за помощью в решении проблем с теми или иными неполадками, ошибками в модах, а опытные чаще всего не имеют поблизости знакомого телепата и не могут оказать помощь в решении проблемы - я решил рассказать все - что я знаю о такой полезной штуке как лог (с консолью разработчика я не заморачивался, я в ней только просматриваю в игре лог и смотрю мониторинг FPS).
Википедия - Файл регистрации, протокол, журнал или лог (англ. log) — файл с записями о событиях в хронологическом порядке. Различают регистрацию внешних событий и протоколирование работы самой программы - источника записей (хотя часто всё записывается в единый файл).
Из-за отсутствия телепатически-одаренных сотрудников в GIANTS Software - им пришлось реализовать протоколирование всех хороших и плохих событий в тот самый лог, который в большинстве случаев покажет корень зла, однако докопаться до правды не всегда получается. За это говорим спасибо разработчикам, которые закрыли доступ к движку игры со всеми его скриптами.
Вообщем я до сих пор не понял почему у некоторых он по умолчанию - включен, а у некоторых - выключен. Причем как на семерке так и на ХР. Для считывания лога (если он включен) нужно перейти в директорию C:\Documents and Settings\Admin\My Documents\My Games\FarmingSimulator2011 и найти в ней файл log.txt, если же такового нет или он есть но в нем ничего не записано - значит он выключен. Так-же следует обратить внимание на мой путь, заметьте Имя пользователя и папка Мои Документы подписаны по английски, игра попросту нипанимает кириллицу, что может стать еще одной причиной неработающего лога. Ниже написано как сменить имя папки Мои Документы.
Картинки кликабельны. 1. Нажимаем правой кнопкой мыши на значок "Мои Документы", затем в выпавшем меню - "Свойства".
2. Открывается окно со свойствами, в котором в поле "Назначение конечной папки" мы видим примерно следующее:
3. В конце полного пути изменяем Мои Документы, к примеру, на My Documents, после того, как переписали - жмем кнопку "Применить", получиться примерно так:
4. Далее система уходит в затуп т.к. нету по указанному пути папки My Documents но все-же не унывает и предлагает нам создать ее, на что мы отвечаем - Да!
Все, папка создалась и теперь система опять нас спрашивает, будем ли мы перемещать файлы из старой папки в новую. Т.к. после проведения всех манипуляций со сменой пути к папке - все программы будут пользоваться новой папкой, в которой при ответе - Нет не будет нужных конфигов и файлов для правильной работы других программ, да и самой фермы в целом. По-этому жмем - Да!
5. После успешного копирования всех файлов в новую папку - нам остается всего-лишь нажать ОК и окно закроется и жить будем долго и счастливо! Все!
Так, с проблемами препятствующими работе лога мы разобрались, сейчас его нужно включить. Для этого идем сюда C:\Documents and Settings\Admin\My Documents\My Games\FarmingSimulator2011 и открываем файл game.xml
В этом файле есть еще несколько настроек, но пока опишу только эти:
<file enable="true" filename="log.txt" /> - true - это значит что лог включен, если же там вместо true стоит false - нужно изменить на true.
<console enable="true" /> - true - значит что консоль включена, если же там стоит false - следует изменить на true. В игре она вызывается клавишей «Тильда» (первое нажатие - режим просмотра, второй - режим ввода, третье - консоль исчезает).
<controls>true</controls> - инструменты разработчика, true - Включен, false - Выключен. Как пользоваться этой панелью. Во время игры - нажмите клавишу F2 для мониторинга FPS. Об остальных функциях напишу немного позже...
Ну вот собственно после этих манипуляций лог должен протоколировать события, которые происходят в игре. Теперь Вы знаете как правильно обращаться за помощью. Всем добра!
78. Различные ошибки лога и способы их решения. (Что такое лог - написано постом выше) Этот пост со временем будет дополнятся, в нем буду обьяснять что значат ошибки, с которыми сталкивался и способы их исправления. Других пользователей тоже прошу не оставаться в тени и присылать мне способы решения тех или иных ошибок с которыми сталкивались для дополнения этой статьи. Если что-то не понятно - просьба обращаться в ЛС за более детальными пояснениями непосредственно к автору решения ошибки.
PhysX warning: Static actor moved (f:\p4sw\sw\legacy\physx\experimental\PhysX_2.8.3\novodex\SDKs\Physics\src\NpActor.cpp:818
Это касается карты но это не ошибка. Это скорее предупреждение. Причина его появления в логе - это когда у обьекта или трансформ-группы в строках Scale по трем осям стоят какие-либо другие значения кроме единиц, при условии что в этом обьекте или трансформ-группе находятся другие обьекты, в свойствах которых стоит галочка Rigid Body и в поле Rigid Body Type, которое находится на вкладке Rigid Body - стоит значение Static. Исправить это легко - если вы картостроитель и только начали делать карту, заметив этот недочет на ранних этапах, а вот если вы рядовой пользователь, который решил разобраться с этой ошибкой, имея полностью готовую карту, на которой уже установлены все обьекты, таким вот, неправильным образом - вам придется ставить в параметрах Scale единицы у всех обьектов или трансформ-групп, которые содержат в середине обьекты с вышеупомянутыми параметрами физики. Казалось бы, поставил единицы и забыл, а вот тут то и начинается самое интересное - ведь поля Scale отвечают за размер как самого обьекта, так и находящихся внутри него обьектов, которые в свою очередь уменьшатся или увеличатся и регулировать размеры придется уже всех обьектов отдельно, которые лежали внутри обьекта или трансформ-группы, в параметрах которой Вы поставили единицы. Вот так вот вообщем. Думаю картостроители учтут этот немаловажный аспект и в логе будет меньше ошибок. Кстати, чуть не забыл. PhysX warning: Static actor moved (f:\p4sw\sw\legacy\physx\experimental\PhysX_2.8.3\novodex\SDKs\Physics\src\NpActor.cpp:818 2 таких строки - это один обьект, который находится в обьекте или трансформ-группе с неправильными значениями Scale. Посчитав строки и разделив их на 2 - Вы сможете узнать сколько еще имеется на карте таких неправильных обьектов.
80. Параметры modDesc.xml Всем здравствуйте, здесь попытаюсь рассказать о файле modDesc.xml, который является неотъемлемой частью каждого мода. Объяснять буду на примере modDesc.xml из sampleMod 13-й фермы, ибо в нем больше параметров по сравнению с 11-м. В 11-й назначение параметров такое-же. Итак, погнали.
<?xml version="1.0" encoding="utf-8" standalone="no" ?> <modDesc descVersion="9"> — С этим параметром многие из вас уже знакомы. Это версия modDesc.xml <author>My Name</author> — Здесь пишем себя любимого, если конечно совесть позволяет. ____________________________________________________________________________ Эти параметры отображаются в настройках игры и при выборе модов для мультиплеера.
<version>1.0</version> — Это собстно версия Вашего мода. <title> <en>Sample Mod</en> — Это заголовок мода для английской версии игры. <de>Beispiel Mod</de> — Это заголовок на немецком языке для немецкой версии игры. <ru>Сэмпл Мод</ru> — Это уже плоды моей бурной фантазии но уже для русской версии игры. </title> <description> <en>Sample mod description</en> — Это описание мода для англ. версии игры <de>Beispiel Mod Beschreibung</de> — Это описание мода для немецкой версии игры. <ru>Описание сэмпл мода</ru> — Это описание мода для русской версии игры </description> <iconFilename>store_deutzAgrotronX720.png</iconFilename> — Это картинка.
Эти параметры отображаются в настройках игры и при выборе модов для мультиплеера. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
<multiplayer supported="true"/> — Это параметр, который разрешает (true) или запрещает (false) работать моду в мультиплеере.
____________________________________ Эти параметры отображаются в магазине.
<storeItems> <storeItem> <en> <name>Deutz Agrotron X720 Sample Mod</name> — Это заголовок мода для английской версии игры. <description> <![CDATA[This is the sample mod]]> — Это описание Вашего мода для английской версии игры. </description> </en> <de> <name>Deutz Agrotron X720 Sample Mod</name> — Это заголовок мода для немецкой версии игры. <description> <![CDATA[Dies ist der Beispielmod.]]> — Это описание Вашего мода для немецкой версии игры. </description> </de> <ru> <name>Deutz Agrotron X720 Сэмпл Мод</name> — Это заголовок мода для русской версии игры. <description> <![CDATA[Это сэмплмод! Всем лежать бояться!]]> — Это описание Вашего мода для русской версии игры. </description> </ru> <rotation>0</rotation> — По всей видимости, будет ли развернута модель при покупке и на какой градус. <image active="store_deutzAgrotronX720.png" brand="brand_deutz.png"/> — Это картинка с модом. Это логотип производителя (реального). <price>9995</price> — Цена мода. <dailyUpkeep>95</dailyUpkeep> — Сколько будет взиматься средств со счета в сутки за обслуживание. <xmlFilename>deutzAgrotronX720.xml</xmlFilename> — Путь к *.xml файлу мода. <brand>$l10n_shopItemBrand_deutz</brand> — Марка мода. <machineType>tractors</machineType> — Тип мода. </storeItem> </storeItems> Эти параметры отображаются в магазине. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ </modDesc> Здесь был приведен, такой себе, мелкий моддеск, который содержит в себе все необходимое для жизнеобеспечения мода, который работает на стд. скриптах. Если уж сильно хочется узнать назначение параметров "заряженного" моддеска — пишите в личку и я дополню статью.
Здравствуйте, видал вопрос как пронумеровать поля на карте, решил ответить. Но поскольку нумерация полей неразрывно связанна с покупкой полей — придется затронуть и ее. Итак поехали. Первое что мы сделаем это пойдем и откроем в GE стандартную карту, ибо, на мой взгляд, все нужно делать на ее примере. Пиратка: Program Files\Farming Simulator 2013\data\maps Steam версия: Program Files\Steam\SteamApps\common\Farming Simulator 2013\data\maps Открываем файл map01.i3d в программе GE. Справа в сценографе раскрываем TransformGroup "Fields" и видим TransformGroup`ы с названиями field01, field02, field03 и т. д. В общем мы видим TransformGroup`ы, которые отвечают за границы полей, триггера покупки и нумерацию всех полей.
Я хочу сразу акцентировать Ваше внимание на том, как у меня установлена камера persp, что-бы вы не путались, когда я буду показывать с какой стороны ставить родительскую TransformGroup`у. Камера persp у меня установлена четко сверху с такими координатами вращения -9000.
Я буду рассказывать на примере первого поля, ибо оно по форме одно из сложных. Итак, раскрыв группу field01 — первое, что мы видим — это триггер "fieldBuyTrigger", при попадании на который фермера в игре, высвечивается табличка, что-бы купить поле, внутри него находиться значок, который крутиться на поле, но двигать его внутри триггера я не рекомендую. После него, заковавшись в TransformGroup`е "fieldDimensions" — идут TransformGroup`ы, которые определяют границы продаваемого поля. Вот сейчас я расскажу как их правильно выставлять.
1. Покупка полей.
Выделяем TransformGroup`у "corner01_1" и ставим ее в левом верхнем углу поля.
Затем, когда мы ее выставили, раскрываем ее и видим внутри еще 2 TransformGroup`ы "corner01_2" и "corner01_3". Расставить их просто, нужно выделить TransformGroup`у "corner01_3" и оттащить ее по осям X и Z в противоположный угол поля по диагонали, затем скопировать получившиеся координаты по оси Z, выделить TransformGroup`у "corner01_2" и вставить эти координаты в поле оси Z, что бы у нас, у TransformGroup`ы "corner01_2" получились такие координаты: 00349.5, а у "corner01_3" такие: 2220349.5.
Теперь у нас получилась вот такие вот границы поля (выделено на скриншоте красным):
Но поскольку поле имеет на совсем симметричную форму у нас все-же остался кусок, который мы не охватили (выделено на скриншоте синим) — нужно создать еще одну родительскую TransformGroup`у "corner02_1" внутри, которой создать еще 2 TransformGroup`ы "corner02_2" и "corner02_3". Затем опять же-таки разместить родительскую TransformGroup`у в левом верхнем углу не охваченного куска поля, затем TransformGroup`у "corner02_3" разместить в противоположном углу поля по диагоняли, скопировать ее координаты по оси Z и вставить их в поле оси Z TransformGroup`ы "corner02_2", что-бы, как и тогда у нас, у TransformGroup`ы "corner02_2" получились координаты 00302, а у "corner02_3" — 221.50302.
Вот и все, теперь наше поле полностью защищено от халявщиков.
2. Отстройка площади и цены поля.
Первое, что нам нужно сделать — так это тыкнуть вверху GE "Window" —> "User Attributes" для того, что-бы GE вывел на экран окно с пользовательскими атрибутами. Затем выделить всю TransformGroup`у "field01" и в окне с пользовательскими атрибутами у нас отобразиться что-то подобное:
В поле "fieldArea" — вписываем площадь поля, как ее просчитать — расскажу немного ниже. В поле "fieldPrice" — вписываем цену поля (в долларах).
Просчитать площадь поля легко. Нужно просто нанять геодезиста, или-же развернуть TransformGroup`у, "fieldDimensions", внутри нее развернуть TransformGroup`у "corner01_1" и выделить TransformGroup`у "corner01_3" и умножить координаты оси X на координаты оси Z. К примеру, 222x349=77478. округляем до сотых и получаем 7,75 га.
О том, как просчитать цену всей площади, имея площадь и цену за гектар — Вам расскажет Ваш учитель арифметики. (На стандартной карте средняя арифметическая цена за гектар у меня получилась ~45000$).
Если же вы хотите сделать, что-бы поле при старте игры было сразу куплено, как 16-е на стандартной карте — нужно выделить TransformGroup`у "field01" или любую другую с нужным полем и в окне с пользовательскими атрибутами, в графе "Add new attribute", в поле "Name" вписать "ownedByPlayer", чуть ниже, в выпадающей менюшке "Type" выбрать тип "boolean" и нажать на кнопочку "Add". В появившемся параметре "ownedByPlayer" — поставить галочку.
3. Нумерция полей.
Итак, чтобы в PDA высвечивался номер поля в нужном месте — нужно взять триггер "fieldBuyTrigger" и поставить по центру поля, затем поставить курсор в одно из полей Transform и нажать комбинацию клавиш Ctrl+Shift+C, затем выделить TransformGroup`у "fieldMapIndicator", идентичным образом поставить курсор в одно из полей Transform и нажать комбинацию клавишь, теперь уже, Ctrl+Shift+V, ну или скопировать координаты руками.
Вот и все. Если остались вопросы — задавайте их на форуме. Удачи!
Дата: Воскресенье, 23.06.2013, 17:45 | Сообщение # 60
¯\_(ツ)_/¯
Группа: Постоянный
Сообщений: 1573
82. После редактирования стандартной карты, во время запуска игры появляется ошибка «Ошибка контрольной суммы. Файлы с данными изменены.» Что это значит и как от нее избавится?
Дело в том, что при каждом запуске — игра сверяет контрольные суммы всех системных файлов, которые участвуют в игровом процессе, и стандартная карта — не исключение.
Для чего это нужно?
Это нужно для того, что-бы не было ошибок или каких-то несоответствий у игроков в мультиплеере. К примеру, у одного игрока (1) где-то на карте стоит какой-то дом, который игрок поставил в GE. А у другого игрока (2), который не редактировал карту — на этом месте ничего нет и он захочет поставить туда, к примеру, культиватор. Он его туда поставит, но в это время игрок (1), который поставил на том месте дом — будет наблюдать, как второй игрок упирается в этот дом, либо он будет наблюдать фристайл, в результате соприкосновения коллизий, от чего возникнет, такая-себе рассинхронизация между игроками, соответственно нагрузка на сервер увеличиться и начнет передаваться в разы больше данных. Согласитесь, выглядит не совсем эстетично, правда? Вот потому разработчики попытались свести к минимуму такие причуды.
Как это исправить?
Начнем с того, что при редактировании чего-либо — нужно обязательно перед редактированием делать резервную копию редактируемых файлов, те, кто это сделал — я думаю уже поняли к чему я веду. Если Вы не делали резервных копий файлов — выход один — это переустановить игру.
Как можно редактировать стандартную карту, модели, избегая этой ошибки? Я думаю что рассказ об этом заслуживает отдельного поста в FAQ. Читайте ниже.