• ↓
  • ↑
  • ⇑
 
Записи пользователя: Reflendey (список заголовков)
18:01 

Лис как пример создания юнита или некоторые принципы устройства Веснота

Reflendey
Собственно заголовок весьма информативен, однако сначала небольшое отсупление от темы. Не знаю, буду ли я говорить сейчас совершенно очевидные вещи или же информация окажется полезной и новой, по-видимому, что считать очевидным, а что нет станет ясно только путём непосредственного сбора мнений членов сообщества, количество которых, надеюсь, в скором времени возрастёт.

Почему лис, почему юнит, а не сценарий и почему так долго тут ничего не было? Это естественные вопросы и ответ на них прост - творчество у нас коллективное, а потому за время отсутствие создателя сообщества делать мне было одному делать особо нечего, точнее неясно что. Но сейчас всё вернулось на круги своя и деятельность сообщества возобновлена.
Почему лис, вопрос не ко мне, однако если учесть, что oborotem_104 сделал пиксельные картинки для анимации лиса как и портрет, часть которого можно видеть на аватарке сообщества.. Ну а раз есть картинки, то надо делать юнит. Собственно картинки я получил в обмен на обещание расписать тут подробно "как это делать", хотя можно было попросить и без условий.

Я думаю, что все тут знают что такое wml и даже представляют себе его возможности, однако на некоторых моментах хотелось бы сперва остановиться. Есть такие понятия как "математическая культура", или "программистская культура", уверен, что нечто подобное существует и в других отраслях человеческой деятельности. В Весноте тоже подразумевается своя культура, коя учит, что есть веснот, а всё остальное это аддоны. Фактически юнит будет доступен в игре не зависимо от того суну ли я его в неё туда же где и остальные, или оформлю в виде аддона, это же касается и всего остально, но есть нюансы.
Кампания она кампания и есть, куда ни сунь а разницы не видно, что аддноном её оформь, что сунь в папку с кампаниями, а вот с юнитом сложнее. Почему? Потому что сам по себе он хранится в разных местах я говорю о костяке, а не об уникальных героях из фракций, конечно в кампании он тоже раскидан, но там всё это содержится в папке объемлющей папки самой кампании уже. Хочу я передать кампанию? Легко - что аддоном, что так распакуй архив куда надо и готово! А если речь об юните? Получатель должен сам совать куски юнита куда надо, вообще занятие не слишом утомительное, однако удобней таки аддоном. Особенно если получатель во всем этом ни бум-бум

Но вот как оформлять отдельного юнита аддоном я не знаю, думаю, проще всего как эру, но в любом случае, хотя надо через аддон тестировать проще неграмотным методом, ибо если что-то не так, то с юнитом, а не с прикреплением аддона ну вообще дело довольно элементарное, однако лишний источник ошибок.

Вступление получилось длинным, если кто-то подобное трепание языком не любит - можно сказать, учтём на кого стоит косо смотреть.
Ну и сразу отмечу, что я изучаю это дело в основном индуктивным путём, суть которого довольная проста - хочешь сделать сценарий? Глянь несколько готовых и по образу и подобию, для юнитов аналогично. Общие концепции вырисовываются довольно быстро, ибо wml - очень "естественный" язык с интуитивно понятным ситнаксисом, конечно, иногда стоит заглянуть и в мануалы, однако в случае веснота это часто оказывается менее эффективным путём. Минус индуктивного подхода тоже понятен, пока я не попробую - кое-где не могу быть уверен, что трактую в наибольшой общности, что приводит к лишним ограничиям порой.
Итак сначала структура "что где"
wesnoth/data/core/images/units - тут хранятся картинки юнитов для анимации, соответсвенно картинки с лисом суём сюда Понятное дело в папку с нужной расой. Вообще деление по папкам довольно условное, ибо для рас отдельное, новую расу длеать не пробовал, ибо лиса показалось естественным посчитать волком.
wesnoth/data/core/images/portraits - тут портреты для юнитов, думаю понятно что под этим понимается.
wesnoth/data/core/units - наконец тут сами юниты, то есть и фактические данные.

Собственно ощущение такое, что в такой трактовке файлы с самими юнитами понимают то что вложенно в директорию wesnoth/data/core/, возможно это и не так, но факт, что при ссылке на портреты и картинки составляющая до core опускается говорит в пользу этой гипотезы, впрочем на самом, деле это не слишком важно, ибо в любом случае пихать всё надо туда, где ему место, а не куда попало, чтобы был беспорядок, ибо я не думаю, что существенно то что где лежит (с учётом того что в сore), а куча разных папок - вопрос удобства, и не более того.

Но мы хотим лиса сделать, индуктивный подход подсказывает глянуть волка, что естественно по двум причинам, во-первых, зверюги похожи, а во вторых, лис рисовался с волка. Открываем и начинаем творить

«#textdomain wesnoth-units
[unit_type]
id=Fox
name= _ "Fox"
race=wolf

image="units/monsters/fox.png"»

Тут всё довольно понятно, на всякий случай скажу, что потом на лиса мы ссылаемся по id, то есть, например, в списках доступных для найма бойцов мы будет писать Fov, а не fox Что важно, ибо например сам файл с лисовм у меня с маленькой буквы

«[standing_anim]
start_time=-50
[frame]
image="units/monsters/fox.png"
duration=50
[/frame]

[/standing_anim]»

На цифорки тут и далее не смотрим, ибо это всего лишь вопросы скорости смены пиксельных картинок и тому подобное. Они зависят от собсвенно количества этих картинок, а так же глубины их проработки. Что ставить - вопрос сложный и без опыта на него ответитть сложно, тут просто взяты волчьи параметры.
Далее все куски про анимацию, я тут не привожу, кому интересно - смотрите волка, а так - ничего содержательного.


« hitpoints=28
movement_type=orcishfoot
movement=11
experience=150
{AMLA_DEFAULT}
level=1
alignment=neutral
advances_to=null
undead_variation=mounted
cost=17
usage=scout
description=_ "Тут ваше описание юнита"
die_sound=wolf-die.wave
»

А вот это следует разобрать подобно, что такое movement_type? Очень просто, чтобы не писать какие штрафы по какому типу территории для каждого юнита отдельно, а так же какие параметры защиты там - делается шаблон, со стандартными варинтами. А потом уже отдельно правятся нужные параметры, тупо вопрос удобства, в данном случае у нас "орочий" тип юнита. Но теоретически, можно ничего не присваивать попробовать вбить всё руками. Интересен вариант, что будет если вбыть не всё. Если кто поэкперементирует и доложит - буду признателен, ибо самому лень.

Следующеее что может вызвать шок это АМЛА, так в фигурных скобках обозначаются макросы(очевидно искать их надо в папке с макросами, можно и свои туда пихать). Собственно АМЛА - After Max Level Advancement то что DEFAULT говорит о том, что всё как обычно, то есть +3 хп, излечение и т.д. Вообще часто бывает что если макросы стандартные не указывать, оно автоматом так будет, но опять же эксперементировать лень, а лишняя строчка ничему не мешает.
Остальное в общем, очевидно, адвенсед=нулл, говторит что апаться некуда, а юсэйдж нужно для ИИ, чтобы он знал за кого считать юнита.


« [defense]
village=50
[/defense]
[abilities]
{ABILITY_TEST}
[/abilities]

[attack]
name=fangs
description=_"fangs"
icon=attacks/fangs-animal.png
type=blade
range=melee
damage=8
number=3
[specials]
{WEAPON_SPECIAL_POISON}
[/specials]
[/attack]»


Собственно изменение защиты в деревне - отличие от шаблона, с атакой всё очевидно(макром означает яд) про {ABILITY_TEST} чуть ниже. Остальное же очевидно.

А теперь собственно последнее, как раз {ABILITY_TEST}. Это новая способность, как видно из названия тестовая, к лису она никак не относится. Хранятся макросы со способностями в wesnoth/data/core/macros/abilities.cfg . Следует заметить, что часть из них не более чем тавтология, то есть фактически сам эффект определён в другом месте Похоже это и есть тот момент, когда начинается уже более низкий уровень, до которого через wml не доберёшься.
Собственно я взял лечение и обратил его, выставил работающим на врагов и поставил отрицательное значение. Честно говоря, ожидал, что не сработает, как бы лечение подразумевает положительныые константы, но ошибся, однако. Всё уже сделанно как раз наболее низком уровне, то есть внезампно обнаружилась анимация отравления для этого дела, а так же тот факт, что на уже отравленных не действует. Если второе можно поправить ещё, то вот с анимацией скорее всего придётся смирится с такой ну или заменить для всех ядов на новую.

Пожалуй это всё, вопросы можно в комменты, пожелания тоже. Особенно хорошо, если пожелания - порисовать анимацию)

@темы: Разработка, Wml

20:17 

Сценарий для Мультиплеера

Reflendey
Все полусырые наработки необходимо куда-нибудь выкладывать. Куда вопрос довольно хороший, потому что чем удобнее скачать тем меньше времени будет храниться и больше ограничений, но последнее в нашем случае, к счастью несущественно.
Ниже ссылка на мультиплеерный сценарий. На самом деле, все стандартные мультиплеерные карты являются сценариями, хотя, конечно, можно играть и на "пустой" карте.
В нашем случае смысл сценария в том, чтобы у каждой стороны был фиксированный герой и фракция, это дело не зависит от эры и можно в список доступных для найма юнитов напихать кого угодно. В дальнейшем, возможно, я как раз и изменю стандартные доступные для найма наборы, пока же они соотвествуют default эре.
Чтобы всё было как запланировано необходимо включать опцию настройки карты, иначе будет жуткая смесь. Хотя это и можно поправить, как это сделано в 5p_The_Wilderlands, но особого смысла в этом нет.
По-хорошему, надо и изменить цели сценария, сделав их более гибкими, так как смысл карты в борьбе за центр, что символизирует число деревень там, поэтому игрок в центре заметно усилен, учитывая, что ему грозит война на несколько фронтов. В силу различных начальных условий, возможно усилить надо и кого-то ещё. В общем, пробуйте и пишите свои предложения по улучшению баланса.

zalil.ru/30279160
Чтобы обнаружить карту в мультиплеере необходимо распаковать архив в C:\Users\1\Documents\My Games\Wesnoth1.9\data\add-ons (понятное дело, что адрес может быть немного другим)
P.S.
Чуть не забыл, список кто где:
1 игрок - центр, лоялисты
2 игрок - юго-запад - эльфы
3 игрок - север (северо-запад)- орки
4 игрок - северо-восток, гномы
5 игрок - юг(юго-восток), нежить
6 игрок - юг- рандом! Можно было сунуть туда и дрейков конечно, но место вышло географически нейтральным, поэтому на выбор игрока. В силу малого количества деревень рядом и опасными соседями имеет удвоенную норму золота. Возможно это слишком много

@темы: Разработка, Карты

22:26 

Jabber конференция

Reflendey
Есть определённый смысл в наличии некоего чата сообщества, разумеется, есть само сообщество, есть и u-mail, однако в ряде случаев их использование не слишком целесообразно. В самом деле, U-mail подразумевает диалог 1 на 1, что не всегда удобно, а сообщество может быть просто захламленно множеством содержательных, но быстро устаревающих сообщений.
Конечно, чат можно реализовать массой способов, тот который выбрали мы обусловлен исключительно субъективными представлениями об удобстве. Если кто-то считает наш вариант неудобным, то можно рассказать о своём, впрочем, скорее всего такой необходимости не будет. Jabber конференция - самый простой выход!
Скорее всего вам практически ничего делать даже не надо, потому что
а) Человек, состоящий в сообществе, очевидно, имеет аккаунт на diary, а значит и жаббер (впрочем ничто не мешает брать его из другого места).
б) ICQ у большинства тоже, наверняка есть. Если при этом используется не родной клиент от аськи, то скорее всего в нём уже есть поддержка необходимого протокола,
а значит надо сделать не многим больше чем просто войти.
К счастью, необходимости расписывать всё тут нету, Администрация дневников написала вполне доходчивый мануал
Так что, достаточно сказать от том как присоединиться к нашей конференции. Конкретные действия могут различаться для разных клиентов, однако общая схема довольно простая. Находим кнопку службы, а далее войти/создать чат, т.к. наш создан непосредственно на diary, его можно отыскать и через соседнюю кнопку обзор комнат
Ну а так Wesnoth@conference.diary.ru

Разумеется, всё это дело добровольное и никакой необходимости в нём нет. Разве что для владельцев и модераторов сообщества, но это уже загтовка на будущее.
Ссылка на этот пост будет помещена в эпиграф.

@темы: Административное

wesnoth

главная