1
Мозговой штурм / Re: Идеи для модов
« : 22 Февраля, 2010, 07:13 »
А каким образом реализовать захват деревень?
В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.
Караваны деревня (рудник) - замок (город). Доставка продуктов и товаров из деревень в замки и города к которым они приписаны - караванами, которые можно "грабить" или "не пускать" в замок во время осады. Состоят из крестьян, ополченцев и т.п. Естесственно, на этих караванах пытаются пастись мелкие разбойники. Деревни таким образом платят оброк натурой и денег в деревне не прибавляется (или очень мало).Т.е., когда я только становлюсь вассалом и Великий Князь мне выдаёт, допустим, Торопец, который приписан к Новгороду, мои крестьяне будут оброк Александру Ярославичу таскать? А я?! А мне?!!
в целом я не против чтобы села приносили большую прибыль, но только если закрутить гайки на всем кроме торговли товарами народного потреблениях
какую дружину? 10/100/1000 человек? 10-15 селян реально содержать с 1 села и еще запас останется...Кто ж селян с села содержит... 10-15 селян я без всякого села, на трофеях с одной битвы против каких-нибудь слабеньких бандюков, прокормлю. А вот защищать это самое село, то бишь тащиться иной раз через пол карты да терять далеко не 10-15 селян, да не ведая, какое войско его грабит (и, соответственно, не будучи на 100% уверенным в победе), мне зачем? А мельницы всякие строить? Голубятни? Чтобы 10-15 селян можно было содержать? Ну блин... хочу 20 панцирных копьеносцев кормить с оной деревни (это при благосостоянии "бедная", а с "очень богатой" деревни хочу 80 тех самых копьеносцев содержать), а иначе - пущай пропадает пропадом со всем населением!

Как то не понял про мораль - в 0.4 версии работала вроде с самого начала,в 0.5 тока в конце сражения говорят вы убили 2 - зависит от навыка тактика?Та же фигня, и то в очень редких случаях вообще что-то говорят даже после боя, тактика 5.
Наконец, в NAC имеются адекватные конструкции IF/ELSE и FOR, в будущем планирую добавить SWITCH/CASE и еще что-нибудь. К сожалению, BREAK, хоть и имеется, но не прерывает текущую итерацию. Пока без понятия, как безболезненно это исправить.BREAK силами модульной системы можно изобразить как
(try_for_range, ":i", ":a", ":b"),
(assign, ":b", ":a"), #exit loop
(neq, ":b", ":a"),#break current iteration
(try_end),
Если, конечно, в этом дело...
(try_for_range, ":i", ":a", ":b"),
(try_begin),
<проверка некоего условия>
(assign, ":b", ":a"),
(neq, ":b", ":a"),
(try_end),
<куча операций>
(try_end),
(neq, ":b", ":a"),
(try_for_range, ":i", ":a", ":b"),
(try_begin),
<проверка некоего условия>
(try_begin),
<проверка другого условия>
(assign, ":b", ":a"),
(neq, ":b", ":a"), #проверка 1
(try_end),
(neq, ":b", ":a"), #проверка 2
<куча операций>
(try_end),
(neq, ":b", ":a"),#проверка 3
<куча операций>
(try_end),
Попробую такой вариант, пожалуй. Т.к после BREAK остаток блока не должен исполняться в любом случае, можно после (assign,":b",":a") дополнительной проверки на их неравенство (т.е. первую проверку в вышеуказанном коде) не проводить (а, если после BREAK все-таки еще код имеется, вывести ошибку либо предупреждение).
Не хватало еще в Mount&Blade экономики и дерева технологий, как в Europa UniversalisУ игр должна быть специализация!
class Troop(Class):
def getSlot( self, slot_num ):
return TroopGetSlot( self, slot_num )
def getFather( self ):
return Troop( self.getSlot(slot_troop_father) )
scripts = [
("my_dummy_script", [NAC([
DECLARE("troop",Troop(":troop")),
Assign(troop, "trp_some_lord"),
Assign(reg5, troop.getFather().getSlot(slot_troop_son)),
DisplayMessage( "@the id of the son of his father is {reg5}" )
])])
]
(troop_get_slot, ":temp_variable", "trp_daddy", some_slot),
(val_mul,":temp_variable",2),
(val_add,":temp_variable",1),
(troop_set_slot, "trp_kid", some_other_slot, ":temp_variable")
TroopSetSlot( "trp_kid", some_other_slot, TroopGetSlot("trp_daddy", some_slot)*2+1 )Итого получаем одну строчку вместо четырёх.
. Скобки, разумеется, реализованы.(обычный код),
(обычный код),
NAC([
<код на NAC>
]),
(обычный код),
...
Операции в NAC отделяются запятыми, как и стандартные операции модульной системыStoreRandomInRange( ":target", 0, ":a"*10 )
будет(store_mul, ":target", ":a", 10),
(store_random_in_range, ":target", 0, ":target")
А результатомStoreRandomInRange(":target", 0, PEVAL(":a"*10))
будет(store_random_in_range,":target", 0, ":a:a:a:a:a:a:a:a:a:a")
Разница, согласитесь, приципиальна 
Agrippa Смысле нет таких флагов в module_music.py, или нет подходящих музыкальных композиций?Да, таких флагов нет. Композиции-то есть как раз.
AgrippaЦитатаПонимаю, что у мододелов других хлопот хватает, но хотелось бы все-таки более тонкого разделения треков.Я так понял, что ты сам можешь это сделать. Или нет?
Если можешь, то почему сам не хочешь сделать?
Более того - в нативе (и Р13) почти так и есть. Когда средний уровень бойцов ГГ больше уровня бойцов противника играет музыка фракции ГГ. Когда наоборот - играет особая музыка фракции противников (ambushed_by_х).Ну ambushed - это все-таки немного другое. Она вроде играет с начала битвы, и целью её является скорее ввести в, так сказать, боевой настрой. У меня там где-то с пол-минуты тревожная, но еще не "боевая" тема (типа враг приближается на своих тяжелых лошадках), потом уже (обычно аккурат под начало рубилова) переходит в более яростную и энергичную. Тут еще не понятно, хорошо складываются дела, или не очень. Так что, имхо, этот вариант не совсем подходит. Понимаю, что у мододелов других хлопот хватает, но хотелось бы все-таки более тонкого разделения треков. Вроде:
Сделайте ambushed-мелодии мрачными и трагическими и вы получите желаемое.
Agrippa да Но какое это имеет отношение к смешным случаямНу, я лично поржал. Когда отматерился
Сохранение при выходе, последний бекап делал несколько дней (реальных) назад...