*FS 2013 Farming Simulator 2013 моды скачать бесплатно Euro Truck Simulator|ls2013mods.ru
dimanix | Дата: Пятница, 26.10.2012, 11:06 | Сообщение # 1 |
Полковник
Группа: Администраторы
Сообщений: 180
Репутация: 67
Статус: Offline
| [size=15]Скрипт на добавление и убирание деталей и колес, работает с 2х компонентными моделями. Пример приведу на Кировце, появление колес (при покупке модели деталей не будет видно) с возможностью передние и задние отдельно. Скрипт в Прикрепления внизу темы.
В modDesc в строке <specializations> добавляем Code <specialization name="visibility" className="visibility" filename="visibility.lua"/>
в строке <vehicleTypes> Code <specialization name="visibility" />
Больше modDesc нам не нужен, закрываем.
Открываем XML файл модели и в любом месте вставляем Code
<parts count="2"> <part1 index="3|0" /> <part2 index="4|0" /> </parts>
<parts2 count="2"> <part1 index="1>2|0" /> <part2 index="1>3|0" /> </parts2>
<parts count="2"> отвечает за передние калеса, <parts2 count="2"> за задние калеса. В группы можно добавлять детали (для каждой группы отдельная кнопка) но не забываем менять количество деталей в группе (красное) и порядковый номер (синий), также добавлять группы но меняем номер (оранжевый) также группу и удалить можно. <parts count="2"> <part1 index="3|0" /> <part2 index="4|0" /> </parts>
<parts2 count="2"> <part1 index="1>2|0" /> <part2 index="1>3|0" /> </parts2>
В XML файл модели тоже все сделано. Разберем сам скрипт. Здесь правим если добавили или удалили группу. если удалили группу то удаляем numparts2 и все к нему относящееся (выделено красным). Если добавили то копируем numparts2 ниже и меняем 2 (все) на номер группы. Надеюсь понятно. Если нужно чтобы деталь была видна при покупке меняем false (синий) на true Quote
function visibility:load(xmlFile)
numparts = Utils.getNoNil(getXMLInt(xmlFile, "vehicle.parts#count"), 0); self.parts = {}; for i=1, numparts do local partnamei = string.format("vehicle.parts.part%d", i); self.parts[i] = Utils.indexToObject(self.components, getXMLString(xmlFile, partnamei .. "#index")); setVisibility(self.parts[i], false); end; self.partsActive = false;
numparts2 = Utils.getNoNil(getXMLInt(xmlFile, "vehicle.parts2#count"), 0); self.parts2 = {}; for i=1, numparts2 do local partnamei = string.format("vehicle.parts2.part%d", i); self.parts2[i] = Utils.indexToObject(self.components, getXMLString(xmlFile, partnamei .. "#index")); setVisibility(self.parts2[i], false); end; self.parts2Active = false;
end;
Далее меняем кнопки, в маём примере K и L. Все также как описано выше не нужное удаляем нужное добавляем. Следим за цифрами. Quote
function visibility:keyEvent(unicode, sym, modifier, isDown)
if isDown and sym == Input.KEY_k then self.partsActive = not self.partsActive; end; if isDown and sym == Input.KEY_l then self.parts2Active = not self.parts2Active; end;
end;
И последнее все тоже самое если добавили группу добавляем и здесь (следим за цифрами) если удалили тоже удаляем. Quote
function visibility:update(dt)
if self.partsActive then for i=1, numparts do setVisibility(self.parts[i], self.partsActive); end; else for i=1, numparts do setVisibility(self.parts[i], self.partsActive, false); end; end; if self.parts2Active then for i=1, numparts2 do setVisibility(self.parts2[i], self.parts2Active); end; else for i=1, numparts2 do setVisibility(self.parts2[i], self.parts2Active, false); end; end; end;
Ну вот и все. Всем удачи.
Прикрепления: visibility.lua(2Kb)
|
|
|
|
*FS 2013 Farming Simulator 2013 моды скачать бесплатно Euro Truck Simulator|ls2013mods.ru
Ярик | Дата: Воскресенье, 23.06.2013, 18:47 | Сообщение # 2 |
Сержант
Группа: Заблокированные
Сообщений: 39
Репутация: 2
Статус: Offline
| Клаааааасссснааааяяяяяя темка
|
|
|
|