Голосование

Как вы оцениваете Смуту?












Оформление



Пользователей
  • Всего: 28882
  • Последний: Gewa95
Сейчас на форуме
Пользователи: 4
Гостей: 701
Всего: 705

0 Пользователей и 1 Гость просматривают эту тему.

Тема: Делимся скриптами для МС  (Прочитано 79700 раз)

  • Сообщений: 317
    • Просмотр профиля
0
« Ответ #125 : 28 Июня, 2011, 21:40 »
Dargor, Я же говорю, как раз вот так и писал "(str_store_string, s50, ":prosperity")", но в игре просто пусто там, где должно было быть написано это.
Ну не знаю какими извращениями  :D Я просто прописал все без лишней мороки. Зато это работает!
Leon473, Не вышло. Вместо уровня вообще название деревни пишет и сразу ошибка красная в логе вылезает.
« Последнее редактирование: 28 Июня, 2011, 22:02 от Arantir »
Багов в чужих скриптах не исправляю! Скриптов по просьбе не пишу и на заказ не делаю! Я всего лишь любитель поиграть в M&B, и ничего более.
  • Сообщений: 3008
  • За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов
    • Просмотр профиля
0
« Ответ #126 : 28 Июня, 2011, 22:15 »
Leon473, тогда уж так:

(party_get_slot,reg1, ":center_no", slot_town_prosperity),
(str_store_string, s50, "@ {reg1}%)"),

должно писать число и знак процента, но мне больше нравится, когда со словами, поэтому предлагаю совместить в универсальном варианте:
("get_prosperity_text_to_s50",
    [(store_script_param, ":center_no", 1),
     (party_get_slot,":prosperity", ":center_no", slot_town_prosperity),
     (val_div, ":prosperity", 20),
     (try_begin),
       (eq, ":prosperity", 0), #0..19
     (party_get_slot,reg1, ":center_no", slot_town_prosperity),(str_store_string, s50, "@Very Poor ({reg1}%)"),
     (else_try),
       (eq, ":prosperity", 1), #20..39
     (party_get_slot,reg1, ":center_no", slot_town_prosperity),(str_store_string, s50, "@Poor ({reg1}%)"),
     (else_try),
       (eq, ":prosperity", 2), #40..59
     (party_get_slot,reg1, ":center_no", slot_town_prosperity),(str_store_string, s50, "@Average ({reg1}%)"),
     (else_try),
       (eq, ":prosperity", 3), #60..79
     (party_get_slot,reg1, ":center_no", slot_town_prosperity),(str_store_string, s50, "@Rich ({reg1}%)"),
     (else_try),
     (party_get_slot,reg1, ":center_no", slot_town_prosperity),(str_store_string, s50, "@Very Rich ({reg1}%)"), #80..99
     (try_end),
     ]),

PS  если бы это была не основная презентация, где многие переменные "колхозные", то reg1 можно было бы извлекать только один раз
  • Сообщений: 870
    • Просмотр профиля
0
« Ответ #127 : 28 Июня, 2011, 22:27 »
Dargor, а еще лучше так: :)
("get_prosperity_text_to_s50",
    [(store_script_param, ":center_no", 1),
     (party_get_slot,":prosperity", ":center_no", slot_town_prosperity),
     (val_div, ":prosperity", 20),
     (assign, reg1, ":prosperity"),
     (try_begin),
       (eq, ":prosperity", 0), #0..19
       (str_store_string, s50, "@Very Poor ({reg1}%)"),
     (else_try),
       (eq, ":prosperity", 1), #20..39
       (str_store_string, s50, "@Poor ({reg1}%)"),
     (else_try),
       (eq, ":prosperity", 2), #40..59
       (str_store_string, s50, "@Average ({reg1}%)"),
     (else_try),
       (eq, ":prosperity", 3), #60..79
       (str_store_string, s50, "@Rich ({reg1}%)"),
     (else_try),
       (str_store_string, s50, "@Very Rich ({reg1}%)"), #80..99
     (try_end),
     ]),

Что ты имеешь ввиду под извлеканием? :-\ Да и reg1 обычный регистр, с ним можно творить все что хочешь и сколько хочешь (в пределах возможного), независимо от того где его используешь.
  • Сообщений: 3008
  • За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов
    • Просмотр профиля
0
« Ответ #128 : 28 Июня, 2011, 22:30 »
Так было бы лучше, но что-то мне подсказывает (ковыряние с другой презентацией), что презентация запомнит этот регистр и будет применять для всех деревень, в итоге процент и у богатых и у нищих будет один и тот же. Ты пробовал в игре свой вариант?
  • Сообщений: 317
    • Просмотр профиля
0
« Ответ #129 : 28 Июня, 2011, 22:36 »
Dargor, Ошибку выдает. Жалуется на скрипт get_prosperity_text_to_s50.
Как и раньше, сейчас вместо благополучия написано имя надела.
Leon473, точно такая же проблема и с твоим вариантом.
« Последнее редактирование: 28 Июня, 2011, 22:42 от Arantir »
Багов в чужих скриптах не исправляю! Скриптов по просьбе не пишу и на заказ не делаю! Я всего лишь любитель поиграть в M&B, и ничего более.
  • Сообщений: 3008
  • За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов
    • Просмотр профиля
0
« Ответ #130 : 28 Июня, 2011, 22:39 »
Не может быть. Ты, надеюсь, написал reg1, а не regl  ?
Я проверил, работает. Компилировал дважды (второй раз скобки добавлял).





« Последнее редактирование: 28 Июня, 2011, 22:43 от Dargor »
  • Сообщений: 317
    • Просмотр профиля
0
« Ответ #131 : 28 Июня, 2011, 22:43 »
Не может быть. Ты, надеюсь, написал reg1, а не regl  ?
Я проверил, работает. Компилировал дважды (второй раз скобки добавлял).
Я не писал, я вообще скопировал... Ну сейчас попробую еще раз...
« Последнее редактирование: 28 Июня, 2011, 22:49 от Arantir »
Багов в чужих скриптах не исправляю! Скриптов по просьбе не пишу и на заказ не делаю! Я всего лишь любитель поиграть в M&B, и ничего более.
  • Сообщений: 3008
  • За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов
    • Просмотр профиля
0
« Ответ #132 : 28 Июня, 2011, 22:46 »
Что значит, "жалуется на скрипт" ?  Может, у тебя синтакс еррор была, уточняй в следующий раз. Добавил скрины с результатами, так сказать.
  • Сообщений: 317
    • Просмотр профиля
0
« Ответ #133 : 28 Июня, 2011, 22:49 »
Хм... Вот в тестовом модуле работает. Что-то я коряво перенес это в натив. Хотя со своим вариантом такого ни разу не было.
Перенес циферки скрипта из scripts.txt. Добавил пару строк в quick_strings.txt. Число строк поменял.
Что я упустил? До этого получалось  :-\

Все. Сделал. Надо было еще используемые переменные в другом модуле обновить... Все работает теперь.
« Последнее редактирование: 28 Июня, 2011, 23:17 от Arantir »
Багов в чужих скриптах не исправляю! Скриптов по просьбе не пишу и на заказ не делаю! Я всего лишь любитель поиграть в M&B, и ничего более.
  • Сообщений: 870
    • Просмотр профиля
0
« Ответ #134 : 29 Июня, 2011, 00:01 »
Так было бы лучше, но что-то мне подсказывает (ковыряние с другой презентацией), что презентация запомнит этот регистр и будет применять для всех деревень, в итоге процент и у богатых и у нищих будет один и тот же. Ты пробовал в игре свой вариант?
В игре не пробовал, но этой проблемы быть не должно, ибо скрипт обрабатывает только одну партию, и записывает ее благосостояние в reg1. Для другой партии, этот скрипт опять выполнится сначала, и опять запишет в reg1 уровень благосостояния партии.
  • Сообщений: 3008
  • За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов
    • Просмотр профиля
0
« Ответ #135 : 29 Июня, 2011, 11:47 »
Быть не должно, но она была, reg1 заполненный для первой партии, использовался и для всех последующих. Я же не зря написал, что можно было бы сделать проще, если бы скрипт вызывался не из презентации.
  • Сообщений: 870
    • Просмотр профиля
0
« Ответ #136 : 29 Июня, 2011, 12:34 »
Только что проверил, как я и говорил, то этой проблемы нет, скрины:
Проблема была в том, что оно отображалось разделенное на 20, из-за невнимательности, не досмотрел саму цель того деления. Вот нормально работающий код:
("get_prosperity_text_to_s50",
    [(store_script_param, ":center_no", 1),
     (party_get_slot,":prosperity", ":center_no", slot_town_prosperity),
     (assign, reg1, ":prosperity"),
     (val_div, ":prosperity", 20),
     (try_begin),
       (eq, ":prosperity", 0), #0..19
       (str_store_string, s50, "@Very Poor ({reg1}%)"),
     (else_try),
       (eq, ":prosperity", 1), #20..39
       (str_store_string, s50, "@Poor ({reg1}%)"),
     (else_try),
       (eq, ":prosperity", 2), #40..59
       (str_store_string, s50, "@Average ({reg1}%)"),
     (else_try),
       (eq, ":prosperity", 3), #60..79
       (str_store_string, s50, "@Rich ({reg1}%)"),
     (else_try),
       (str_store_string, s50, "@Very Rich ({reg1}%)"), #80..99
     (try_end),
     ]), 
Проверено на деле:
  • Сообщений: 3008
  • За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов
    • Просмотр профиля
0
« Ответ #137 : 29 Июня, 2011, 13:39 »
Да, пожалуй так или для максимального сжатия

(party_get_slot,reg1, ":center_no", slot_town_prosperity),
(store_div, ":prosperity", reg1, 20),

PS низзя скриптами в три ночи заниматься, низзя.
  • Сообщений: 317
    • Просмотр профиля
0
« Ответ #138 : 29 Июня, 2011, 14:02 »
А не подскажите какой-то словарь или справочник по питону? Не обязательно для чайников. С программированием знаком, но в питоне ноль. Мои познания позволяют создавать разве что всякие извращения (несколько постов раньше XD)...

И еще важный вопрос:
Питон переводит файлы со скриптами в файлы с циферками... А как сделать обратный процесс?? Это вообще возможно?
« Последнее редактирование: 29 Июня, 2011, 14:07 от Arantir »
Багов в чужих скриптах не исправляю! Скриптов по просьбе не пишу и на заказ не делаю! Я всего лишь любитель поиграть в M&B, и ничего более.
  • Сообщений: 983
  • За наиболее важные для развития сайта идеи Выдается модераторам, достигнувшим значимых успехов на своем посту За активный вклад в развитие сайта
    • Просмотр профиля
0
« Ответ #139 : 29 Июня, 2011, 14:50 »
По Питону учебников куча. По модульной системе - фактически ни одного. Мне почему-то кажется, что ты спрашивал именно о МС. Учебник по Питону же легко можно найти в Гугле.

Нет.Обратный процесс, в принципе, невозможен. То есть, имея готовый мод, полностью извлечь его исходники невозможно. Однако, вроде, где-то в Обмене опытом SithLord, кажется, писал о рубиновских скриптах, с помощью которых можно извлечь troops и items. Поищи, если хочешь.
  • Сообщений: 317
    • Просмотр профиля
0
« Ответ #140 : 29 Июня, 2011, 15:42 »
Romitas, нет, я спрашивал именно по питону. Просто ничего хорошего не нашел. Я просто подумал, что если сначала понять питон, то с модульной системой будет куда проще. Исходник не закодирован ведь, а в открытом виде. Значит понять что там чего делает очень просто.

Жаль конечно, что нельзя обратно конвертировать... Рубиновские скрипты нашел. Но всего-то на 3 файла...
Игра ведь как-то понимает эти файлы  :-\ Она же тоже какими-то скриптами должна воспроизводится. Или циферки напрямую в процессор отправляются  :laught:

Кажется нашел альтернативу. Фича, позволяющая ставить моды без внедрения в родные файлы. Мне просто хотелось сохранить все изменения в моих файлах, а модулька все поверх старого пишет. Вот и спросил, как открыть в ней свои файлы. Но похоже нашлось другое решение.
« Последнее редактирование: 29 Июня, 2011, 15:56 от Arantir »
Багов в чужих скриптах не исправляю! Скриптов по просьбе не пишу и на заказ не делаю! Я всего лишь любитель поиграть в M&B, и ничего более.
  • Сообщений: 3508
  • За создание крупных модов и других особо сложных проектов За активную деятельность, связанную с публикациями и помощью другим посетителям За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов
    • Просмотр профиля
0
« Ответ #141 : 29 Июня, 2011, 16:17 »
Нет.Обратный процесс, в принципе, невозможен. То есть, имея готовый мод, полностью извлечь его исходники невозможно.
Процесс возможен. Это несложно при должном уровне понимания питона. Когда-то даже для .903 Инвиктус извратился и сделал бэктранслятор для scripts. Проблема в том, что это всё крайне муторно, и для некоторых файлов неэффективно (для mission_templates например).

Я просто подумал, что если сначала понять питон, то с модульной системой будет куда проще. Исходник не закодирован ведь, а в открытом виде. Значит понять что там чего делает очень просто.
Это заблуждение. Питон используется для трансляции МС. МС — написана на самостоятельном предметно-ориентированный язык программирования. Хорошее знание питон лишь позволит делать некоторые дополнительные трюки, несколько сокращающие объём кода. 

  • Сообщений: 317
    • Просмотр профиля
0
« Ответ #142 : 29 Июня, 2011, 17:24 »
Цитировать (выделенное)
МС — написана на самостоятельном предметно-ориентированный язык программирования.
Ну теперь все стало понятно...

Кстати. Подскажите, как добавить к значению reg1 единицу. Ну в смысле "{reg1}+1" как написать грамотно, что бы работало?
Просто в скриптах reg1 = [0;99], а в игре удобнее, когда [1;100].
Покопавшись в скриптах, мне кажется что это делается с помощью "val_add", да?

Добавил позже:
Да, "val_add" работает.
Для себя сделал еще проще:
Мне как раз это и нужно было.
Спасибо Leon473 и Dargor за помощь со скриптами.

И еще вопрос:
Где находятся скрипты, которые командуют выводом строк из strings.txt?
Просто в scripts.txt нашел только для quick_strings.txt.
« Последнее редактирование: 29 Июня, 2011, 21:31 от Arantir »
Багов в чужих скриптах не исправляю! Скриптов по просьбе не пишу и на заказ не делаю! Я всего лишь любитель поиграть в M&B, и ничего более.
  • Сообщений: 3508
  • За создание крупных модов и других особо сложных проектов За активную деятельность, связанную с публикациями и помощью другим посетителям За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов
    • Просмотр профиля
0
« Ответ #143 : 29 Июня, 2011, 22:43 »
И еще вопрос:
Где находятся скрипты, которые командуют выводом строк из strings.txt?
Просто в scripts.txt нашел только для quick_strings.txt.
Повсюду. Ищи "str_". Может быть по-разному. Но обычно схема следующая, вызвать скрипт, взять str_, запихнуть в s0, вернуться из скрипта, использовать s0.
  • Сообщений: 2740
  • За создание крупных модов и других особо сложных проектов
    • Просмотр профиля
0
« Ответ #144 : 13 Июля, 2011, 21:14 »
Сделал мини скриптик.  :embarrassed: Суть его работы, это рандомное время на мультеплеерских картах.

Ищем Строку в скриптах
Цитировать (выделенное)
(scene_set_day_time, 15),

И заменяем её на вот это
Цитировать (выделенное)
(store_random_in_range, "$day_time", 7,22),
(scene_set_day_time, "$day_time"),


То что в красном это часы, между которыми будут браться рамдомные числа. Собственно всё просто.
  • Ник в M&B: DRZ_Mark7
  • Фракция: Вегиры
  • Сообщений: 22
    • Просмотр профиля
0
« Ответ #145 : 19 Ноября, 2011, 15:02 »
Не знаю, как кого, а меня всегда (и в нативе, и в модах) смущал состав армий лордов. Лорды воевали с теми же войсками, с которыми гоняли разбойников и собирали дань. И потому предлагается вниманию мододелов группа скриптов и триггеров,  обеспечивающих появление и присоединение к армиям лордов на время похода отрядов ополчения из их владений.

Скрипты. module_scripts.py

Необходимый PS: на исходной нативовской модульке не проверялось. В текстах начичествуют обращения к некоторым переменным из дипломатии (те, что заметил - отметил комментариями)

PPS: Scarecrow, спрятал.
 
Отлично. Пугало.

Добавлено: 19 Ноября, 2011, 18:42

Из мелких доработок. Лут после боя с бандитами в деревне. Ищем в module_game_menus.py меню "village_infest_bandits_result"
и добавляем выделенное:

Scarvy (Семеновец)Прячь коды под спойлер, плз
« Последнее редактирование: 20 Ноября, 2011, 14:33 от Scarecrow »
  • Сообщений: 22
    • Просмотр профиля
0
« Ответ #146 : 20 Ноября, 2011, 20:40 »
В каком смысле - пугало? Есть решение принципиально короче?
 

Добавлено: 20 Ноября, 2011, 22:41

Рад, что кому-то пригодилось.
В глубокой задумчивости.
То, что достигнуто в борьбе с "бескончными патронами" в сундуке. Одна стрела или болт всё равно болтается (иначе сам колчан норовит сгинуть).


PS: испытывалось, опять-же, не на нативской модульке, а на основе "Дипломатии", включавшей в себя "автолут". Если её нет - то правок больше.
Scarvy (Семеновец)Лол. Пугало - мой ник. В твоём посте он выполняет роль подписи, чтоб знал, что это я написал. А скрипт отличный, спасибо.
« Последнее редактирование: 20 Ноября, 2011, 22:56 от tehnik »
  • Сообщений: 8
    • Просмотр профиля
0
« Ответ #147 : 18 Декабря, 2011, 00:01 »
Ребят может кто то напишет скрипт на казнь пленника?Буду ОЧЕНЬ благодарен...
Рви чувак....Рви всех.....
  • Сообщений: 980
  • За особо выдающиеся авторские тексты
    • Просмотр профиля
    • АТОЛЛ
0
« Ответ #148 : 02 Февраля, 2012, 16:35 »
Попытаюсь вникнуть.
Честь имею и Родину люблю.
  • Сообщений: 7578
  • За наиболее важные для развития сайта идеи За особо выдающиеся авторские тексты За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов И создали они сайт... Призер конкурса Футболка по версии Всадников
    • Просмотр профиля
+2
« Ответ #149 : 01 Сентября, 2012, 17:33 »
Кое что от Фингала:
От себя могу предложить увеличение ренты с городов и замков при наличии в них пленных. (Типо, припахать бедолаг).
Нужно всего-то добавить в module_presentations:
Как видно, с каждого пленного рандомно получаем от 1 до 50 дин. в неделю.
Всё таки, труд подневольный.

В дальнейшем хорошо бы добавить смертность среди пленных, чтобы постоянно требовалось их пополнение.
Моя конфигурация:
Нормальная, мне хватает.

СиЧЪ Total War СиЧЪ Total War
Сайт "Всадники Кальрадии" не является СМИ. Администрация не несет ответственность за высказывания и публикацию каких-либо материалов, сделанные любыми пользователями форума, в том числе посредством личных и публичных сообщений. Материалы, размещенные на ресурсе третьими лицами, могут содержать информацию, не предназначенную для лиц, не достигнувших совершеннолетия. При обнаружении на ресурсе материалов, нарушающих законодательство Российской Федерации, необходимо обращаться к администрации.
Сайт работает на быстром VPS/VDS хостинге от FASTVPS


Powered by SMF 2.0 | SMF © Simple Machines LLC