Скрипт на добавление и убирание деталей
|
|
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; Ну вот и все. Всем удачи.
|
|
| |
Erlan10 | Дата: Четверг, 15.09.2011, 13:23 | Сообщение # 2 |
Группа: Техники
Сообщений: 167
Репутация: 18
Статус: Offline
| Урааа dim-dim, Большое спасибо тебе за такую важную статью
|
|
| |
dim-dim | Дата: Четверг, 15.09.2011, 13:33 | Сообщение # 3 |
Главный инженер
Группа: Администраторы
Сообщений: 233
Репутация: 100
Статус: Offline
| Не за что, с вас модели. Статью подредактировал.
|
|
| |
MAC | Дата: Четверг, 15.09.2011, 15:36 | Сообщение # 4 |
Группа: Мастера
Сообщений: 61
Репутация: 1
Статус: Offline
| dim-dim, огромное спасибо, мы тоже смогли решить свою проблему с помощью этой замечательной статейке. Побольше бы таких статей. Спасибо!
|
|
| |
Erlan10 | Дата: Пятница, 16.09.2011, 16:43 | Сообщение # 5 |
Группа: Техники
Сообщений: 167
Репутация: 18
Статус: Offline
| Quote (dim-dim) Не за что, с вас модели. dim-dim, Конеш Теперь смогу реализовать свет в Кировце в кабине чтоб включался и выключался на отдельную кнопку
|
|
| |
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, Спасибоньки
|
|
| |
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 от клондайк который вышел плиз помогите а?и чтоб он работал
|
|
| |
traxtorist | Дата: Вторник, 08.11.2011, 20:10 | Сообщение # 13 |
Группа: Экскурсанты
Сообщений: 11
Репутация: 0
Статус: Offline
| вот
|
|
| |
Nikitos12 | Дата: Пятница, 29.06.2012, 08:44 | Сообщение # 14 |
Группа: Экскурсанты
Сообщений: 5
Репутация: 0
Статус: Offline
| А как сделать что бы он именно колеса убирал?
|
|
| |
}I{EKA | Дата: Суббота, 30.06.2012, 00:44 | Сообщение # 15 |
Группа: Мастера
Сообщений: 108
Репутация: 15
Статус: Offline
| Nikitos12, Научится читать, ибо я вообще таких вопросов не понимаю, человек же написал все в этой статье, разобрал скрипт по буквам. А тут такие вопросы... Я уже ничему не удивляюсь...
Не люблю немецкие короткометражки, в них всегда все заканчивается одним и тем-же... ©
|
|
| |