Танзанит — камень, открытый совсем недавно. О нем не успели сложить мифов и легенд. У него нет захватывающей истории, похожей на авантюрный роман. Однако это не помешало кристаллу покорить сердца множества ювелиров и любителей драгоценных самоцветов.
О драгоценном камне танзанит стало известно в 1967 году. Его первооткрыватель, португальский геолог Мануэль де Соузо, искал рубины в Танзании, крупном государстве на юго-востоке Африки. Помогали ему проводники из местного народа масаев.
Многонедельные поиски не увенчались успехом, пока экспедиция де Соузо не наткнулась на залежи синих кристаллов. Это произошло у подножия Килиманджаро, высочайшей из африканских гор. В трещинах породы образовались уникальные камни, не похожие ни на что, известное ранее.
Итак.. Давненько не писАл [показать]..
Горячее лето 2010 очень способствовало развитию всякой неудобной для спиннингуя водной растительности, некоторые жабовники заросли насквозь, а сама вода напоминала густой суп из самой разнообразной полудохлой микробионики. Не смотря на все природные катаклизмы, оставшиеся в живых хищные обитатели водоемов, все же, кое-как жили и даже немного питались. Но как до них добраться? Джерк уже не отпускает, а все, что предлагает индустрия оченно "многожальное" и на первых секундах проводки любая приманка превращается в совершенно нерабочий ком биохни, даже явные топвотеры и подповерхностники не спасали, даже попперы.. Нужна была КРУПНАЯ (мы ведь хотим достойного противника?) незацепляющаяся приманка - т.е оснастка на основе крупного офсетника. "Силиконовое" литье которым завалены магазины было явно мелковато, к тому же, не хотелось возвращаться к приманкам имеющим собственную игру - твистерам и виброхвостам - "идиотбейтс" не катит.. И я начал креативить..
Я взял деревяшку и выстругал из нее модель будущей приманки. Так как приманка в конечном виде должна была быть изготовлена из мягкого пластика, деревянная поверхность модели была покрыта несколькими слоями лака (с промежуточной сушкой и шлифовкой). Такая форма мягкой приманки также называется jerkbait, т.к. она не имеет собственной игры и "вдохнуть жизнь" в этот кусок силикона можно лишь ручками..
Как видите, мельчить особо я не стал :)
Теперь снимаем с модели форму. Форма укреплена фанерными вставками. Также, форма имеет прорезь для формирования внутренней полости под крючек.
Как видно по фотографиям, стык полуформ не ровный а "волнистый" - это первый опыт. Сказать что так плохо - нельзя. Так делать можно, но можно и иначе...
Итак, форма есть!
Осталось всего ничего - залить мягкий пластик. И тут вдруг "засада" - надо выбрать КАК и ЧТО лить... А вариантов то и не много особо :(
Первый - перплавить всякие остатки, объедки... кароч вторсырье! Причем вторсырье бывает разным, на фото - мягкий пластик "на переплавку", как видно, "донор"(твистер) был не маленький :))
Зато есть запас таких обрубков :)
Второй - купить через специализированный интернет-магазин специальные литейные составы.
Я остановился на третьем варианте - я нашел мягкий пластик в России! Если честно, то это просто настоящий прорыв для меня.. По крайней мере, теперь, можно только заморачиваться с формами.
Продолжение следует..
Сколько ж ограничений в UnrealScript!
Вот, оказывается свой итератор нельзя объявить. Функция-итератор должна быть нативной. Нативную функцию можно объявить только в нативном классе. А нативный класс просто нельзя объявлять...
Но я это обошел.
Создаем функцию, подобную итератору, например:
function RPGInvActor(class<Inventory> BaseClass, out Inventory Inv)
Она подобна итератору:
native final iterator function InventoryActors( class<Inventory> BaseClass, out Inventory Inv );
из класса InventoryManager. Единственное условие - в Inv должна вернуть None, если не нашла.
Теперь вместо foreach используем:
do
{
...
} until( Inv != None);
Естестсвенно RPGInvActor должна при каждом вызове возвращать следующее значение. Этого можно достичь введя переменную в классе, которая сохраняет предыдущее найденное значение:
var Inventory InvCash; //Для итератора
И использовать ее для нахождения следующего айтема в списке для поиска...
Для чего мне все это понадобилось? Для своей реализации инвентаря.
Инвентарь у Эпиков представляет собой обычный односвязный список. Естественно поиск в нем не быстр, естественно Инвентаря в нем много хранить нельзя (Эпики об этом прямо пишут). Более того, хоть это и возможно принципиально, но у Эпиков в инвентарь нельзя добавлять одинаковые предметы.
Ну а в ролевых играх в рюкзаке у героя очень много предметов, очень много одинаковых...
Как это реализовать? - сделать свою структуру для инвентаря. Я сделал комбинированную.
Есть динамический массив, элементы которого - первые элементы в связанных списках. Тип элемента в массиве повторяться не может. А вот в списке, на который указывает элемент массива как раз наоборот - все элементы одного типа.
Сделал тултипсы к объектам. Появляются, когда ГГ смотрит на объект. Работают на всех типах объектов.
Работы еще много - главное на данный момент вывести его не где попало а чуть выше объекта. К сожалению разные типы имеют разные переменные высоты. К тому же у скелеталмешей почему-то боундинг в одном измерении значительно больше самого предмета... Вроде я алгорите придумал не зависящий от всего этого,
но нужно проверять еще...