Приветствую Вас Гость!
Среда, 24.04.2024, 15:24
Главная | Регистрация | Вход | RSS

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
FS Форум » Моделирование » Скриптинг » Скрипт на добавление и убирание деталей (Работает с 2х компонентными моделями)
Скрипт на добавление и убирание деталей
dim-dimДата: Четверг, 15.09.2011, 13:13 | Сообщение # 1
Главный инженер
Группа: Администраторы
Сообщений: 233
Репутация: 100
Статус: Offline
Скрипт на добавление и убирание деталей и колес, работает с 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 (1.9 Kb)
 
Erlan10Дата: Четверг, 15.09.2011, 13:23 | Сообщение # 2
Группа: Техники
Сообщений: 167
Репутация: 18
Статус: Offline
Урааа smile dim-dim, Большое спасибо тебе за такую важную статью smile

 
dim-dimДата: Четверг, 15.09.2011, 13:33 | Сообщение # 3
Главный инженер
Группа: Администраторы
Сообщений: 233
Репутация: 100
Статус: Offline
Не за что, с вас модели. biggrin
Статью подредактировал.
 
MACДата: Четверг, 15.09.2011, 15:36 | Сообщение # 4
Группа: Мастера
Сообщений: 61
Репутация: 1
Статус: Offline
dim-dim, огромное спасибо, мы тоже смогли решить свою проблему с помощью этой замечательной статейке. Побольше бы таких статей. Спасибо! smile
 
Erlan10Дата: Пятница, 16.09.2011, 16:43 | Сообщение # 5
Группа: Техники
Сообщений: 167
Репутация: 18
Статус: Offline
Quote (dim-dim)
Не за что, с вас модели.

dim-dim, Конеш smile Теперь смогу реализовать свет в Кировце в кабине чтоб включался и выключался на отдельную кнопку smile


 
Yahoo_goДата: Суббота, 17.09.2011, 12:56 | Сообщение # 6
Группа: Экскурсанты
Сообщений: 25
Репутация: 0
Статус: Offline
dim-dim, огромное спасибо, очень нужный скрипт
 
VVPutinДата: Суббота, 17.09.2011, 18:15 | Сообщение # 7
Ударник- Модокопатель
Группа: Администраторы
Сообщений: 578
Репутация: 90
Статус: Offline
dim-dim, Спасибоньки biggrin
 
Yahoo_goДата: Воскресенье, 18.09.2011, 17:33 | Сообщение # 8
Группа: Экскурсанты
Сообщений: 25
Репутация: 0
Статус: Offline
Ещё вопросик, можно ли как переделать этот скрипт, чтобы не 2 функции мог выполнять, а 4. Ну в смысле не передние и задние колёса добавлял, а каждое колесо по отдельности.
 
dim-dimДата: Воскресенье, 18.09.2011, 18:01 | Сообщение # 9
Главный инженер
Группа: Администраторы
Сообщений: 233
Репутация: 100
Статус: Offline
Yahoo_go, Дополняй группы и присваивай кнопки, можно добавить столько, сколько кнопок на клаве и каждая кнопка будет убирать деталь.
 
Yahoo_goДата: Воскресенье, 18.09.2011, 18:28 | Сообщение # 10
Группа: Экскурсанты
Сообщений: 25
Репутация: 0
Статус: Offline
dim-dim, а где группы добавлять?? В самом скрипте?? Я что-то добавлял, но ничего не поменялось

Добавлено (18.09.2011, 18:28)
---------------------------------------------
Вопрос решён.

 
AGRONOMДата: Суббота, 01.10.2011, 21:48 | Сообщение # 11
Группа: Экскурсанты
Сообщений: 36
Репутация: 1
Статус: Offline
Скажите пожалуйста что я делаю не правильно , а в игре не покупается ( до этого покупался )
 
traxtoristДата: Вторник, 08.11.2011, 20:09 | Сообщение # 12
Группа: Экскурсанты
Сообщений: 11
Репутация: 0
Статус: Offline
ребят помогите мне как вот этот кун с этого трактора снять и поставить на трактор мтз-80 от клондайк который вышел плиз помогите а?и чтоб он работал
Прикрепления: 7883793.png (52.1 Kb)
 
traxtoristДата: Вторник, 08.11.2011, 20:10 | Сообщение # 13
Группа: Экскурсанты
Сообщений: 11
Репутация: 0
Статус: Offline
вот
Прикрепления: 6124550.png (86.5 Kb)
 
Nikitos12Дата: Пятница, 29.06.2012, 08:44 | Сообщение # 14
Группа: Экскурсанты
Сообщений: 5
Репутация: 0
Статус: Offline
А как сделать что бы он именно колеса убирал?
 
}I{EKAДата: Суббота, 30.06.2012, 00:44 | Сообщение # 15
Группа: Мастера
Сообщений: 108
Репутация: 15
Статус: Offline
Nikitos12, Научится читать, ибо я вообще таких вопросов не понимаю, человек же написал все в этой статье, разобрал скрипт по буквам. А тут такие вопросы... Я уже ничему не удивляюсь...

Не люблю немецкие короткометражки, в них всегда все заканчивается одним и тем-же... ©
 
FS Форум » Моделирование » Скриптинг » Скрипт на добавление и убирание деталей (Работает с 2х компонентными моделями)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Для добавления необходима авторизация