Не за что, это вам спасибо. У меня еще есть кое-какие идеи
по доработке скрипта. Если руки дойдут - пришлю еще патчи.
Кстати, я бы вообще все переменные, кроме инициализируемых
в двойные кавычки бы поставил. Так, мне кажется более правильно,
плюс защитит от подобных недочетов.
Ну в скриптах я не очень - vcmibuilder это наверно самый большой скрипт, который я писал. Так что любые предложения принимаются.
Я тоже не сильный скриптописатель. Еще немного поправил скрипт, теперь:
- Все переменные в кавычках
- Пути, где скрипт сохраняет загружаемые файлы, изменен с текущей директории
на домашнюю, то есть $HOME/core.zip. Я считаю, что не надо гадить в системе, надо
сохранять в домашнюю директорию пользователя. Поскольку --amend в svn нету, следующее исправление надо накладывать на предыдущее
--- vcmibuilder.old 2013-01-31 11:12:19.000000000 +0400
+++ vcmibuilder 2013-01-31 11:50:52.000000000 +0400
@@ -149,22 +149,22 @@
# start installation
-dest_dir="./vcmi"
-mkdir -p $dest_dir
+dest_dir="$HOME/vcmi"
+mkdir -p "$dest_dir"
if -n "$gog_file" ]]
then
- data_dir="./app"
+ data_dir="$HOME/app"
# innoextract always reports error (iconv 84 error). Just test file for presence
- test -f $gog_file || fail "Error: gog.com executable was not found!"
- innoextract -s -p 1 $gog_file
+ test -f "$gog_file" || fail "Error: gog.com executable was not found!"
+ innoextract -s -p 1 "$gog_file"
fi
if -n "$cd1_dir" ]]
then
data_dir="./cddir"
mkdir -p "$data_dir"
- unshield -d "$data_dir" x $cd1_dir/_setup/data1.cab || fail "Error: failed to extract from Install Shield installer!" "rm -rf ./cddir"
+ unshield -d "$data_dir" x "$cd1_dir"/_setup/data1.cab || fail "Error: failed to extract from Install Shield installer!" "rm -rf ./cddir"
# a bit tricky - different releases have different root directory. Move extracted files to data_dir
if -d "$data_dir"/"Heroes3" ]
@@ -184,30 +184,30 @@
if -n "$cd2_dir" ]]
then
- mkdir -p $dest_dir/Data
+ mkdir -p "$dest_dir"/Data
- if -d $cd2_dir/heroes3 ]
+ if -d "$cd2_dir"/heroes3 ]
then
- cp $cd2_dir/heroes3/Data/Heroes3.vid $dest_dir/Data/VIDEO.VID
- cp $cd2_dir/heroes3/Data/Heroes3.snd $dest_dir/Data/Heroes3-cd2.snd
+ cp "$cd2_dir"/heroes3/Data/Heroes3.vid "$dest_dir"/Data/VIDEO.VID
+ cp "$cd2_dir"/heroes3/Data/Heroes3.snd "$dest_dir"/Data/Heroes3-cd2.snd
else
- cp $cd2_dir/Heroes3/Data/Heroes3.vid $dest_dir/Data/VIDEO.VID
- cp $cd2_dir/Heroes3/Data/Heroes3.snd $dest_dir/Data/Heroes3-cd2.snd
+ cp "$cd2_dir"/Heroes3/Data/Heroes3.vid "$dest_dir"/Data/VIDEO.VID
+ cp "$cd2_dir"/Heroes3/Data/Heroes3.snd "$dest_dir"/Data/Heroes3-cd2.snd
fi
fi
if -n "$data_dir" ]]
then
- cp -r "$data_dir"/Data $dest_dir
- cp -r "$data_dir"/Maps $dest_dir
+ cp -r "$data_dir"/Data "$dest_dir"
+ cp -r "$data_dir"/Maps "$dest_dir"
# this folder is named differently from time to time
# vcmi can handle any case but script can't
if -d "$data_dir"/MP3 ]
then
- cp -r "$data_dir"/MP3 $dest_dir
+ cp -r "$data_dir"/MP3 "$dest_dir"
else
- cp -r "$data_dir"/Mp3 $dest_dir
+ cp -r "$data_dir"/Mp3 "$dest_dir"
fi
fi
@@ -215,21 +215,21 @@
then
if -z "$wog_archive" ]]
then
- wget "http://download.vcmi.eu/WoG/wog.zip" -O wog.zip || fail "Error: failed to download WoG archive!" "rm -f wog.zip"
- wog_archive="./wog.zip"
+ wget "http://download.vcmi.eu/WoG/wog.zip" -O wog.zip || fail "Error: failed to download WoG archive!" "rm -f $HOME/wog.zip"
+ wog_archive="$HOME/wog.zip"
fi
if -z "$vcmi_archive" ]]
then
- wget "http://download.vcmi.eu/core.zip" -O core.zip || fail "Error: failed to download VCMI archive!" "rm -f core.zip"
- vcmi_archive="./core.zip"
+ wget "http://download.vcmi.eu/core.zip" -O core.zip || fail "Error: failed to download VCMI archive!" "rm -f $HOME/core.zip"
+ vcmi_archive="$HOME/core.zip"
fi
fi
if -n "$wog_archive" ]]
then
echo "decompressing $wog_archive"
- unzip -qo $wog_archive -d $dest_dir || fail "Error: failed to extract WoG archive!"
+ unzip -qo "$wog_archive" -d "$dest_dir" || fail "Error: failed to extract WoG archive!"
fi
if -n "$vcmi_archive" ]]
@@ -238,23 +238,23 @@
# exlude *json - temporary solution for autotools -> cmake transition period
# 0.90 packages made by autotools do not have .json files available in svn
# cmake however can install them correctly so they should not be extracted from .zip in case of cmake package
- unzip -qo $vcmi_archive -d $dest_dir -x "*.json" "*.txt" "*.PAL" || fail "Error: failed to extract VCMI archive!"
+ unzip -qo "$vcmi_archive" -d "$dest_dir" -x "*.json" "*.txt" "*.PAL" || fail "Error: failed to extract VCMI archive!"
fi
if -n "$validate" ]]
then
- test -f $dest_dir/Data/H3bitmap.lod || fail "Error: Heroes 3 data files are missing!"
- test -f $dest_dir/Data/H3sprite.lod || fail "Error: Heroes 3 data files are missing!"
- test -f $dest_dir/Data/VIDEO.VID || fail "Error: Heroes 3 data files (CD2) are missing!"
- test -d $dest_dir/Mods/WoG/Data || fail "Error: WoG data files are missing!"
- test -d $dest_dir/Mods/vcmi/Data || fail "Error: VCMI data files are missing!"
+ test -f "$dest_dir"/Data/H3bitmap.lod || fail "Error: Heroes 3 data files are missing!"
+ test -f "$dest_dir"/Data/H3sprite.lod || fail "Error: Heroes 3 data files are missing!"
+ test -f "$dest_dir"/Data/VIDEO.VID || fail "Error: Heroes 3 data files (CD2) are missing!"
+ test -d "$dest_dir"/Mods/WoG/Data || fail "Error: WoG data files are missing!"
+ test -d "$dest_dir"/Mods/vcmi/Data || fail "Error: VCMI data files are missing!"
fi
#TODO: Cleanup? How?
echo
echo "vcmibuilder finished succesfully"
-echo "resulting data was placed into $PWD/vcmi"
+echo "resulting data was placed into $HOME/vcmi"
echo "any other files in current directory can be removed"
echo
Как по мне, так если гадить то хотя бы там, где есть дворник. Например в /tmp
Хотя по-хорошему тут нужно удалять все перед завершением. Как вариант - создавать папку в том же tmp, все в нее складывать а потом удалять. Архивы все равно каждый раз скачиваются.
Здравствуйте, Иван.
Установил VCMI 0.91. После установки игра вылетает при атаке на любой замок. Лог здесь: hedgedict.com/data/vcmiLog02-02-13.zip
В папке игры ничего не менял (все было от предыдущей) добавил только английскую версию в Data, получилась англо-русская версия, но там, где раньше кирилица не читалась стал английский.
Надеюсь, что лог будет чем-то полезен для устранения бага.
Кажется нашел. Завел баг: bugs.vcmi.eu/view.php?id=1197
wog который на download.vcmi.eu английский (поэтому кириллицы не видно). Русификацию для желающих я держу тут:
dl.dropbox.com/u/22372764/vcmi/ … %20Rus.zip
Ребята,я скомпилил 0.9.2 под убунтой на arm7.Всё замечательно идёт,но не могу включить fullscreen.Когда ставлю галку,экран смещается примерно на половину вниз.В 0.9.1 так-же было.Не подскажете куда копать?
Что-то новенькое. Подозреваю перезапуском vcmi проблема не решается?
Не думаю что проблема с нашей стороны - скорее что-то не так со стороны системы. В vcmi тут все сделано системными средствами (библиотека SDL если быть точным).
не решается. пробовали использовать на дебиане,тоже самое.
Тогда другой вопрос.Можно ли запустить в нестандартном разрешении.Скажем не 1280х800, а 1280х760?
Между дебианом и убунтой отличий почти 0. Так что неудивительно.
Добавить разрешение можно - все имеющиеся описаны в файле config/resolutions.json. Если лень разбираться, то могу добавить какое-то определенное (1280х760?).
Сам пробовал.И спрайты перерисовывал.Ничерта не получилось.Если сделаешь 1280х760,буду очень признателен.
Сделал. Распаковать, скажем, в корень игры (/usr/share/vcmi) или в домашней папке (~/.vcmi)
1280x760.zip (78.8 KB)
Благодарю!
Иван,на днях погонял под убунтой разные игрушки,в любой идёт смещение в фулскрине.Очевидно дело действительно не в вашем проэкте.Спасибо за помощь
У меня вопрос по способностям существ.
Допустим, я сделал боевую машину, которая атакует всех на поле
{ “type”:“SPELL_LIKE_ATTACK”,
“subtype”:“spell.armageddon”,
“additional info”:3}
Можно как-то использовать Bonus range types (ONLY_ENEMY_ARMY)?
И как это сделать? В faq не нашел примеров и т.п.
Я с системой бонусов не особо знаком. Вообще область действия задается как “effectRange” : “ONLY_ENEMY_ARMY”, работает ли это со SPELL_LIKE_ATTACK - не знаю.
Еще такой баг/фича:
Есть новый город, в котором нет некоторых зданий, например, верфи, таверны.
Есть карта, где поставлен “рэндомный” замок, и в редакторе указано, что в нем есть таверна и верфь.
Когда я выбираю играть за этот город, при загрузке карты отсутствующие здания “как ьы строятся”, даже если их нет в “buildings.json” (или в buildings.json" они есть, а в faction.json они убраны), и при заходе на экран города игра вылетает (потому что нет анимации или они не прописаны в structures.json).
По идее, необходимо исправить - при загрузке карты проверять здания, сверяясь с faction.json, и если здания там нет, убирать его из существующих.
Поздравляю с новым релизом 0.93. Это действительно важный шаг, что теперь возможна установка VCMI на чистый SoD. Только из текста анонса не понятно, будут ли при установке на чистый SoD в VCMI присутствовать фишки из WoG?
Не будут. Для фишек вога нужны некоторые файлы вога. Например опыт отрядов описывается в текстовике вога которого в соде нет.
Возможно что-то где-то от вога и осталось но все крупные фичи вога отключены.
Приветствую
у меня тож была проблема с Adv 1920
а теперь другая
filebeam.com/b4b8dd0d93de2b24501 … 8dd7bf.jpg
нет иконок самих героев собственно.
и я своими глазами видел как катапульта пыталась "ходить " по полю!!!
у меня Hota поверх Sod поставлена. может в этом проблема?
отсюда - mm-games.ru
ну и очень частые турбо-вылеты
pastebin.com/SfkGWA5q
server.log
pastebin.com/AKdFnHu4
наверное комп слабый)
игра падает с Segmentation Failed в консоли.
Komputer
Ubuntu + MATE desktop 13.04 64bit
AMD 4100@4000Mhz/8Gb ram/60gb ssd/570GTX
ЗЫ JSON то откуда в игре ? в ней теперь Javascript есть и аякс ?