Всадники Кальрадии

Модификации => Обмен опытом (в помощь мододелу) => OSP ресурсы: модели, текстуры, скрипты => Тема начата: Acharon от 01 Июля, 2010, 05:30

Название: Делимся скриптами для МС
Отправлено: Acharon от 01 Июля, 2010, 05:30
Народ вот такое дело! у кого есть какие исходники или собственные наработки!
бросаем скрипты все сюда! Заранее большое спасибо!
Название: Re: делимся скриптами Phyton
Отправлено: GreyB от 01 Июля, 2010, 06:53
 Доберусь до дома скину скриптик для анимы ;) хотя я так понимаю, все кто занималется анимацией такой скрипт и без меня напишут, но... вдруг все-таки пригодится кому :-\
Название: Re: делимся скриптами Phyton
Отправлено: секатор от 01 Июля, 2010, 21:22
хорошая тема!
Название: Re: делимся скриптами Phyton
Отправлено: GreyB от 01 Июля, 2010, 21:33
вот маааленький кусочек из мишинс темплейтз

Делает он следующие: при нажатой клавише w (вариант для отладки) проверяет есть ли у ГГ крылья (ангельские либо демонические) и если есть задает для него анимацию полета, потом "отвязывает" от ГГ камеру и переносит её на позицию ГГ, только немного выше (мы же летаем, помните?) вот и все.
 Предметы крылья есно уже должны быть прописанны в итемс_кайндз, а анимация в модуль_аниматионз.
 ЗЫ сорри за названия на русском, кому надо тот поймет ;)
Название: Re: делимся скриптами Phyton
Отправлено: Андреус Ас от 02 Июля, 2010, 08:16
(Дрожащим голосом) Это работает? Это правда работает? И надо ли что-то менять в скриптах или триггерах? Только миссион_темплэйтс?
Название: Re: делимся скриптами Phyton
Отправлено: GreyB от 02 Июля, 2010, 08:22
*плачущим голосом*
Вам бы все съмеяться... А вот еслибы мне кто-то написал этот скрипт готовеньким, в свое время... Эх, да чего уж..

А вообще все говорят какая хорошая тема, но никто не спешит наработки выкладывать :( Я вот выложил, то что можно в отрыве от контекста рассматривать.

Добавлено: 02 Июля, 2010, 08:26
(Дрожащим голосом) Это работает? Это правда работает? И надо ли что-то менять в скриптах или триггерах? Только миссион_темплэйтс?
В мишин_темплейтз надо в конце кажной миссии (там где тригеры перечисляются) указать тригер new_anim_start.
Т.е. все в одном файле правим. Ну не считая самой анимы и предметов.
Вообще ИМХО модулька - довольно простая и удобная вещь, убивает только отсутствие нормальной документации и не вполне понятная работа некоторых функций.
 Например со школы все знаем, что синус угла, деленный на косинус тогоже угла равен тангенсу этого угла :) а вот в модульке не равен. Почему? Х.з. наверное угол не в градусах, или радианах а в каких-то таинственных единицах измеряется.
Название: Re: делимся скриптами Phyton
Отправлено: Андреус Ас от 02 Июля, 2010, 12:14
Спасибо! Ты ещё раз меня выручил=) Этот вот скрипт просто золотой, спасибо ещё раз!
Название: Re: делимся скриптами Phyton
Отправлено: Acharon от 03 Июля, 2010, 22:49
Спасибо паны браты за тёплые отзывы! Отдельное спасибо тем кто уже выложил скрипты!!!
А вот кому нравится безудержный сарказм и бочька стёба, тут вы не по адресу, идите в таверну или на чат какой и там стебайтесь!!!!!!!
Название: Re: делимся скриптами Phyton
Отправлено: GreyB от 03 Июля, 2010, 23:28
Вот еще для анимации, только для оружия. В примере пушка, но можно тем же макаром и например супернавороченныйтерхручныймеч прописать, или новый стиль фехтования - не принципиально ;)
Как и в прошлом примере это добро вставляем в module_mission_templates в конце каждой миссии.

ЗЫ к сожалению в последнее время нет времени заниматься модингом :( так что подвел много хороших людей, надеюсь никто на меня зла не держит, помогу хоть так...
Название: Re: делимся скриптами Phyton
Отправлено: Acharon от 04 Июля, 2010, 00:33
GreyB скажи ка уважаемый, есть такой предмет Факел(Torch) вот как от него огонь и дым на стрелы присабачить? Известно ли тебе решение этой проблемы
Название: Re: делимся скриптами Phyton
Отправлено: GreyB от 04 Июля, 2010, 13:05
 Не знаю :(
 Но знаю кто знает ;) Знает Марк7 писал об этом тут http://rusmnb.ru/forum/index.php?topic=3549.0 (http://rusmnb.ru/forum/index.php?topic=3549.0) это для МБ, но думаю и под ВБ многое пойдет.
Название: Re: делимся скриптами Phyton
Отправлено: Acharon от 09 Июля, 2010, 01:19
а на кой ляд нужен тип animals в modulr_item.py
Название: Re: делимся скриптами Phyton
Отправлено: Dark_XSM от 10 Июля, 2010, 13:35
Быть может лошади...
Название: Re: делимся скриптами Phyton
Отправлено: Acharon от 11 Июля, 2010, 01:28
нет не лошади! торговать ими можно! а вот в слот какой нить не лезут!

Добавлено: 11 Июля, 2010, 01:33
У лошдок другой тип : horse !
Название: Re: делимся скриптами Phyton
Отправлено: GreyB от 13 Июля, 2010, 09:07
 Темка заглохла? Вроде никто скрипты не пишет\не вставляет, или и впрямь всем жалко?
Название: Re: делимся скриптами Phyton
Отправлено: Лемрант от 13 Июля, 2010, 12:07
Кхе, кажись большинство "кодопишущих" о теме просто не знают.
Название: Re: делимся скриптами Phyton
Отправлено: GreyB от 13 Июля, 2010, 16:48
 Ну если учесть, что большинство "кодеров" буржуи наши иностранные коллеги, то да - не знают. А вот русскоязычные ИМХО знают, если не все, то по крайней мере большинство.
 Абыдно :(
Название: Re: делимся скриптами Phyton
Отправлено: секатор от 13 Июля, 2010, 18:36
абыдно это точно,исчо абыдно что я не знаю англицкого и нерозбераюсь в мс,
на тв есть похожая темка,довольно неплохие там идейки
Название: Re: делимся скриптами Phyton
Отправлено: Acharon от 15 Июля, 2010, 00:35
Да очень жаль! Вероятно скриптеры думают что ежели я до всего сам доходил и мне никто ничего готового не дал, то и ты доходи! хотя время покажет!
Название: Re: делимся скриптами Phyton
Отправлено: Acharon от 30 Июля, 2010, 00:15
Специально для тех кто на дух не переносит модульку >:(
брутальный арбалет, один выстрел один труп

 itm_smert_crossbow Smert_Crossbow Smert_Crossbow 1  heavy_crossbow 0  73465865 5637160960 40000 131082 3.750000 100 0 0 0 0 0 37 100 0 1 488 0
0

брутальные стрелы, бонус против щитов
 itm_death_arrows Death_Arrows Death_Arrows 3  piercing_arrow 0  flying_missile 2305843009213693952  quiver_c 3458764513820540928  67174405 1610612736 1500 4398046511112 3.000000 100 0 0 0 0 0 0 0 91 100 300 0
0

брутальные дротики
 itm_sovnya Sovnya Sovnya 2  jarid_new 0  jarid_quiver 3458764513820540928  71368714 36507484160 5000 4398046781448 4.000000 100 0 0 0 0 0 89 27 65 50 300 0
0

брутальные болты
 itm_death_bolts Death_Bolts Death_Bolts 3  bolt 0  flying_missile 2305843009213693952  bolt_bag_c 3458764513820540928  67174406 1879048192 1000 4398046511112 2.500000 200 0 0 0 0 0 0 0 55 100 500 0
0

это вот брутальный топор
 itm_death_topor Death_Topor Death_Topor 1  dblhead_ax 0  73728003 9223635923965575392 6000 270356 6.500000 100 0 0 0 12 44032 85 0 95 0 256 43
0

брутальный молот
 itm_sledgehammer Sledgehammer Sledgehammer 1  sledgehammer 0  71630850 9223388532775583758 20000 270356 1.500000 100 0 0 0 0 40960 99 0 62 0 256 744
0

мисюрка, шлем такой
 itm_misur_helmet Misur_Helmet Misur_Helmet 1  helmet_cm_a 0  12 0 200 0 2.000000 100 30 0 0 0 0 0 0 0 0 0 0
0

ещё шлемак
 itm_pikei Pikei Pikei 3  bascinet_avt 0  bascinet_avt 132  bascinet_avt 251658240  65548 0 479 704643238 2.250000 100 45 0 0 0 0 0 0 0 0 0 0
0

ещё шлем
 itm_barbate Barbate Barbate 3  barbutte 0  barbutte 132  barbutte 251658240  65548 0 479 704643238 2.250000 100 45 0 0 0 0 0 0 0 0 0 0
0

брутальный рыцарский коняга
 itm_knight_horse Knigt_Horse Knigt_Horse 1  charger 0  65537 0 10000 110595670016 0.000000 200 0 80 0 0 1350 45 60 0 0 180 1
0

ещё одна брутальная лошадка
 itm_warlock_horse Warlock_Horse Warlock_Horse 1  warhorse 0  65537 0 10000 110595670016 0.000000 200 0 80 0 0 1350 45 80 0 0 44 1
0

Название: Re: делимся скриптами Phyton
Отправлено: Toxic от 31 Июля, 2010, 08:19
брутальный рыцарский коняга
 itm_knight_horse Knigt_Horse Knigt_Horse 1  charger 0  65537 0 10000 110595670016 0.000000 200 0 80 0 0 1350 45 60 0 0 180 1
0

Вопрос, в чём заключается его брутальность? :)
Название: Re: делимся скриптами Phyton
Отправлено: секатор от 31 Июля, 2010, 13:53
Цитировать (выделенное)
Специально для тех кто на дух не переносит модульку
надо в доработку напильником,все же не соответствие с названием темы.
Название: Re: делимся скриптами Phyton
Отправлено: Unknown от 03 Августа, 2010, 21:35
Давно пробовал сочинить простенький скрипт ловушки какой-нибудь, в голову пришла идея с кольями из-под земли. Испытания прошли успешно, но вот фантазии применить это где-то у меня не хватило. Не в курсе, есть ли что-то подобное, но выложу всё равно, авось кому пригодится.  ;)

Проверял на предварительно подготовленной  карте "Руины"(в мульте). Поместил точки(entry point) с номерами 88 и 89 так, что бы координаты Х и Y точки 89 были больше, чем у точки 88. Между ними воткнул колья(spike). В mission_templates в код детматча после триггера ti_after_mission_start поместил следующее:


Результат: при прохождении кем-либо этой зоны из земли выскакивали эти колья и лишали несчастного всех хитов :)
В код можно задать любое время срабатывания триггера(красная цифра); изменить способ ограничивания зоны на круговую, а не прямоугольную(если нужно).
ЗЫ. координаты кольев проверяются затем, чтобы сразу было видно, какие из них точно входят в описываемую зону.
Название: Re: делимся скриптами Phyton
Отправлено: Acharon от 05 Августа, 2010, 23:02

спасибо са скрипт! :) :) :)

Добавлено: [time]05 Август, 2010, 23:16:06 [/time]
брутальный рыцарский коняга
 itm_knight_horse Knigt_Horse Knigt_Horse 1  charger 0  65537 0 10000 110595670016 0.000000 200 0 80 0 0 1350 45 60 0 0 180 1
0

Вопрос, в чём заключается его брутальность? :)

большая скорость, большой урон, проехавшись по строю противника с разгону можно до трёх человек вырубить :thumbup:

Добавлено: 05 Августа, 2010, 23:17
Unknown спасибо за скрипт 8-)
Название: Re: делимся скриптами Phyton
Отправлено: Unknown от 17 Августа, 2010, 16:51
Специально для сценоделов: изменение времени на карте в мультиплеере.

находим в файле module_mission_templates.py строчку типа multiplayer_dm или ищем строчку #deathmatch mode(для каждого типа игры в мульте).
Далее ищем триггер ti_before_mission_start. В этом триггере видим строчку (scene_set_day_time, 15). Это выставляется время дня для всех карт.
Для изменения времени на конкретной сцене нужно знать её идентификатор. После вышеприведённой строчки строчки вставляем:

   (try_begin),
 (store_current_scene, ":cur_scene"), - запоминаем загрузившуюся сцену
 (eq, ":cur_scene", "scn_multi_scene_1"), - scn_multi_scene_1 есть идентификатор сцены(карта "Руины" в данном случае)
   (scene_set_day_time, 1), - ставим время суток
   (try_end),

Всё.
Название: Re: делимся скриптами Phyton
Отправлено: Dargor от 17 Августа, 2010, 17:15
Unknown, а насколько сложно создать скрипт, который при загрузке сцены (например таверны или замка) убирал бы какой-нибудь из объектов (определённый)?
Название: Re: делимся скриптами Phyton
Отправлено: Unknown от 17 Августа, 2010, 22:50
Unknown, а насколько сложно создать скрипт, который при загрузке сцены (например таверны или замка) убирал бы какой-нибудь из объектов (определённый)?
объектов сцены? Да несложно, на самом деле. Варианты: заменить на другой, переместить, вроде можно сделать невидимым.
взяли инстанцию этого предмета через scene_prop_get_instance, взяли позицию, ну и, например, поставили координату z много ниже 0.
Название: Re: делимся скриптами Phyton
Отправлено: секатор от 18 Августа, 2010, 01:21
Unknown, не против если я у себя буду использовать твои коды с ловушками?
Название: Re: делимся скриптами Phyton
Отправлено: Unknown от 18 Августа, 2010, 07:47
Unknown, не против если я у себя буду использовать твои коды с ловушками?
А зачем я их выложил? :) Если не работает - скажи, тем более, что код можно несколько изменить.
Название: Re: делимся скриптами Phyton
Отправлено: Baltijec от 06 Сентября, 2010, 22:35
GreyB, Хотелось бы попробовать вставить пушки в КЛБ.В анимациях добавил то,что необходимо. В module_mission_templates хотелось бы воткнуть по Вашему рецепту.Посмотрите и подправьте.ОК?
Название: Re: делимся скриптами Phyton
Отправлено: GreyB от 06 Сентября, 2010, 23:22
 А что такое КЛБ?
 Вставляйте, конечно, если поможет - будет здорово!

 
Цитировать (выделенное)
КАК прописать только для штурмов?
тригер прописывается в начале module_mission_templates, а потом добавляется в конец нужной миссии в данном случае какой-то из
mst_castle_attack_walls_defenders_sally
mst_castle_attack_walls_belfry
mst_castle_attack_walls_ladder
а скорее всего всех трех.

Цитировать (выделенное)
цикл перебирающий всех юнитов на сцене-ну и что?Искать будет по предмету=itm_coulivrine или "пушкарей"как-то прописывать?
ищем по предмету да, но чтобы узнать какой предмет в руках надо сперва узнать у кого он в руках, а потом этому (и не какому другому) товарищу прописать аниму.
Можно искать и "пушкарей". Так даже проще, но тогда анимой обладать будут только они, а например НПЦ или ГГ с пушкой нет.

Цитировать (выделенное)
перебираем возможные действия и выставляем соответсвующие анимы-какие и для кого?
анимы:
 прицеливание
 выстрел
 перезарядка

для того самого ":agent_no", которого мы получили в строке (try_for_agents,":agent_no") и проверили, чтобы у него была пушка в строках
this_or_next|agent_has_item_equipped,":agent_no",itm_lafet_bombard), # cannon 1
               (this_or_next|agent_has_item_equipped,":agent_no",itm_Santa_Croce), # cannon 2
              .........
               (this_or_next|agent_has_item_equipped,":agent_no",itm_gunn1460_murder), # cannon 6

Цитировать (выделенное)
(agent_set_animation, ":agent_no", "anim_ready_cannon"),"),
скобка и запятая лишние :)

Цитировать (выделенное)
добро вставляем в module_mission_templates в конце каждой миссии(поясните нубу:где искать эти концы миссий?)

 Элементарно, ^______^ конец нужной миссии ищем непосредственно перед началом следующей!
 Списом миссий и их порядок записан в файлике ID_mission_templates там выбираем нужную нам (штурм, так штурм, а вообще можно хоть в таверне прописать), смотрим какая идет следом, автопоиском в module_mission_templates находим искомую и вставляем название тригера перед
 ],
  ),

А вообще полистайте-посмотрите там тригеры сразу видно. вставлять не обязательно в конец, можно и между уже прописанными тригерами.

Ах да. Еще момент. Мне сегодня камрад Unknown подсказал. Чтобы небыло багов с анимацией надо предмету "пушка" прописать пустой флаг itc_ иначе параллельно с вашей анимой игра будет пытаться проиграть стандартную. А так получается мы стандартную "обнуляем" и игре остается только нашу юзать.

 :) Удачи, надеюсь по-скорее в ваш мод поиграть!

PS и не надо ко мне на вы, плиз неудобно как-то...
Название: Re: делимся скриптами Phyton
Отправлено: Unknown от 07 Сентября, 2010, 08:38
Ненене. Что бы проверить, что пушка именно в руках игрока/бота, а не в инвентаре/слотах, надо не agent_has_item_equipped, а agent_get_wielded_item!!!
Название: Re: делимся скриптами Phyton
Отправлено: GreyB от 07 Сентября, 2010, 08:41
Ненене. Что бы проверить, что пушка именно в руках игрока/бота, а не в инвентаре/слотах, надо не agent_has_item_equipped, а agent_get_wielded_item!!!
Сорри, совсем забыл :)
Название: Re: делимся скриптами Phyton
Отправлено: Maxim Suvorov от 14 Октября, 2010, 11:03
Давно пробовал сочинить простенький скрипт ловушки какой-нибудь, в голову пришла идея с кольями из-под земли. Испытания прошли успешно, но вот фантазии применить это где-то у меня не хватило. Не в курсе, есть ли что-то подобное, но выложу всё равно, авось кому пригодится.  ;)

Проверял на предварительно подготовленной  карте "Руины"(в мульте). Поместил точки(entry point) с номерами 88 и 89 так, что бы координаты Х и Y точки 89 были больше, чем у точки 88. Между ними воткнул колья(spike). В mission_templates в код детматча после триггера ti_after_mission_start поместил следующее:


Если код будет использован для мультиплеера то в нём есть критическая бага - все операции по изменению состояния айтемов/партиклов/агентов нужно делать на стороне сервера, операнд:
(multiplayer_is_server),
Иначе будет крашить через раз.
Название: Re: делимся скриптами Phyton
Отправлено: NightHawkreal от 14 Октября, 2010, 18:26
А давайте такие штучке в Invasion засунем :)
Название: Re: делимся скриптами Phyton
Отправлено: Unknown от 16 Октября, 2010, 18:01
Maxim Suvorov, да, вы правы, данная команда необходима. К сожалению тогда, когда писался код, я ей значения не придал.
Название: Re: делимся скриптами Phyton
Отправлено: FATALERROR от 03 Ноября, 2010, 12:50
Unknown, твой скрипт ловушки нам очень пригодится! Спасибо! Ведь в моде MiF будут сундуки, ловушки и т.п.
(в готике было полно мест, где из земли высовывались колья)
Название: Re: делимся скриптами Phyton
Отправлено: Mark7 от 06 Ноября, 2010, 14:25
Acharon, Вы интересовались этим?

Вот немного моих работ по практиклам.Тоесть сам эффект огня и летающих стрел, модель факела из Hunt Mod.


Video
http://www.youtube.com/watch?v=bCNukfXlLN8&feature=player_embedded
http://www.youtube.com/watch?v=4mBqQmZJNeI&feature=player_embedded
Название: Re: делимся скриптами Phyton
Отправлено: Unknown от 06 Ноября, 2010, 14:47
Mark7, по огню на стрелах - можешь рассказать, как делается? не огонь, а привязка его к стрелам?
Название: Re: делимся скриптами Phyton
Отправлено: Mark7 от 06 Ноября, 2010, 15:48
Unknown,

Всё это делаеться с помошью тригеров, тригеров для итемов только трое:

ti_on_init_item        = -50.0 # тоесть когда инициялизируеться итем
ti_on_weapon_attack      = -51.0 # когда атакует
ti_on_missile_hit        = -52.0 # когда попадает так сказать

Проблема в том что у факела стоит ti_on_init_item плюс приписка разных эффектов.

["torch",         "Torch", [("club",0)], itp_type_one_handed_wpn|itp_primary, itc_scimitar, 11 , weight(2.5)|difficulty(0)|spd_rtng(95) | weapon_length(95)|swing_damage(11 , blunt) | thrust_damage(0 ,  pierce),imodbits_none,
 [(ti_on_init_item, [(set_position_delta,0,60,0),(particle_system_add_new, "psys_torch_fire"),(particle_system_add_new, "psys_torch_smoke"),(set_current_color,150, 130, 70),(add_point_light, 10, 30),
])]],

Но когда стрелам прописуешь этот же триггер, он не работает. Работает только ti_on_weapon_attack и ti_on_missile_hit . Так как вы заметили на видео, эффект воспроизводиться только при попадании в цель,потому как стрелы у меня прописанны с тригером ti_on_missile_hit.
Я шяс хочю разобраться с тригером и попробовать прописать вечно горяшюю стрелу.

Название: Re: делимся скриптами Phyton
Отправлено: секатор от 06 Ноября, 2010, 16:53
брацы,а вот запихнуть факел в место щита ,и чтоб при блоке срабатывал блок оружием а не щитом факелом.Новая анимация (для держания факела) надо ,это ясно чтоб было красиво,и это можно сделать свободно,трудней в модульке сделать факел чтоб не блочил.Что скажете,это можно осуществить?
Марк скажи,а эти горящие стрелы когда переключаешь на обычные,они такиеже красные? или обычные как всегда?
Название: Re: делимся скриптами Phyton
Отправлено: Mark7 от 06 Ноября, 2010, 22:31
смертник, у каждой стрелы есть модель, летяшей стрелы,

["tutorial_arrows","Arrows", [("arrow",0),("flying_missile",ixmesh_flying_ammo),("quiver", ixmesh_carry)], itp_type_arrows, itcf_carry_quiver_back, 0,weight(3)|abundance(160)|weapon_length(95)|thrust_damage(0,pierce)|max_ammo(20),imodbits_missile],

Берёшь эту модель (или создаёшь новую), и добавляешь ей текстуру, чтоб было зрелешьней рекомендую вместо ддс, тга формат. Вот собственно всё. Получяеться у каждого типа стрел своя модель так сказать.



Название: Re: делимся скриптами Phyton
Отправлено: секатор от 06 Ноября, 2010, 23:11
Mark7,спасибо ,но я это уже давно знаю=)
я имею виду что при режиме горящей стрелы она красная как на видео ,она постояно такая? даже если я стреляю без огня? или с выключенным огнем она как обычно чорная?
Название: Re: делимся скриптами Phyton
Отправлено: Mark7 от 06 Ноября, 2010, 23:23
смертник, даже без огня красная.Это зависит как хочешь настроить, можно и так и сяк.
Название: Re: делимся скриптами Phyton
Отправлено: Ghost от 07 Ноября, 2010, 12:46
Acharon, Вы интересовались этим?

Вот немного моих работ по практиклам.Тоесть сам эффект огня и летающих стрел, модель факела из Hunt Mod.


Video
[url]http://www.youtube.com/watch?v=bCNukfXlLN8&feature=player_embedded[/url]
[url]http://www.youtube.com/watch?v=4mBqQmZJNeI&feature=player_embedded[/url]



Отлично, если бы вы написали подробней, как вставить это в игру - цены б этому скрипту не было)) У меня вопрос, есть ли где-нить в интернете уроки по питону (всмысле не модульке, а самому языку)

Заранне благодарен !
Название: Re: делимся скриптами Phyton
Отправлено: секатор от 07 Ноября, 2010, 13:43
смертник, даже без огня красная.Это зависит как хочешь настроить, можно и так и сяк.
это плохо ,также как в моде про горящие стрелы.
а что думаешь про факел в руке вместо щита?(я там выше писал)
Название: Re: делимся скриптами Phyton
Отправлено: Mark7 от 07 Ноября, 2010, 15:24
смертник, Если прописать как шит и убрать блок то вроде как должно получиться.Но по идеи и аниму надо будет менять.
Название: Re: делимся скриптами Phyton
Отправлено: Acharon от 10 Ноября, 2010, 01:49
Acharon, Вы интересовались этим?

Вот немного моих работ по практиклам.Тоесть сам эффект огня и летающих стрел, модель факела из Hunt Mod.


Video
[url]http://www.youtube.com/watch?v=bCNukfXlLN8&feature=player_embedded[/url]
[url]http://www.youtube.com/watch?v=4mBqQmZJNeI&feature=player_embedded[/url]



Отлично, если бы вы написали подробней, как вставить это в игру - цены б этому скрипту не было)) У меня вопрос, есть ли где-нить в интернете уроки по питону (всмысле не модульке, а самому языку)

Заранне благодарен !


о чём здесь идёт речь я не понял,ну совсем непонял.
можно ли описать по яснее, и картинки поменьше вставить а то грузятся по полчаса
Название: Re: делимся скриптами Phyton
Отправлено: Ghost от 11 Ноября, 2010, 12:50
о чём здесь идёт речь я не понял,ну совсем непонял.
можно ли описать по яснее, и картинки поменьше вставить а то грузятся по полчаса

Что тут можно не понять? Всё просто, Марк7 вставил в игру огненные стрелы и факелы, которые при ударе "зажигают" противника, я попросил дать урок, как такое сделать.

А во второй части поста я спросил, есть ли где-нибудь подробные уроки по питону, как языку програмирования, чтобы лучше разобратся со всеми фишками модульки.
Название: Re: делимся скриптами Phyton
Отправлено: Acharon от 12 Ноября, 2010, 00:00
теперь понятно :p
Название: Re: делимся скриптами Phyton
Отправлено: Unknown от 13 Ноября, 2010, 08:35
Тэкс... небольшая, немного глючная разработочка для "магии" в мульте. Суть: игрок выбирает в презентации(кнопка m) заклинание(призыв бота, лечение союзника, огненный шар, вампиризм, отравление, прямой контроль бота), затем зажимает среднюю клавишу мыши и "заклинание" срабатывает. Ниже приведены файлы, в которые надобно вставить строчки. Точно не знаю, всё ли я перекинул правильно, работать должно. Ищу заинтересованных людей, желающих протестировать всё это и помочь в усовершенствовании. ;)

В header_common.py в низ списка #server events вставить:


в module_constants в список AGENT SLOTS :



в список PLAYER SLOTS:

в список SCENE PROP SLOTS:


В файл module_mission_templates вставляем триггеры:
как вставить триггер в режимы игры - надо объяснить?

в файл module_presentation:


В файл module_scripts:
   
затем после строчек

(eq, ":event_type", multiplayer_event_use_item),
          (store_script_param, ":value", 3),
          (store_script_param, ":value_2", 4),
          (call_script, "script_use_item", ":value", ":value_2"),

вставляем:


В файл module_scene_props:

бот:
   ["sum_agent","Alive Armor","Alive Armor",tf_guarantee_all,0,0,fac_neutral,
   [itm_heraldic_mail_with_surcoat_for_tableau, itm_strange_boots, itm_great_sword,itm_kettle_hat_for_bot, itm_leather_gloves],
   def_attrib_multiplayer|level(25),wpe(150,90,60,110),knows_ironflesh_10|knows_power_strike_8, tf_randomize_face],

шлем:
["kettle_hat_for_bot", "Kettle Hat", [("kettle_hat_new",0)], itp_merchandise| itp_type_head_armor|itp_covers_head,0,
240 , weight(1.75)|abundance(100)|head_armor(35)|body_armor(0)|leg_armor(0)|difficulty(7) ,imodbits_plate ],

Добавлено: [time]13 Ноябрь, 2010, 08:41:20 [/time]
системы частиц для заклов. просто так.
Название: Re: делимся скриптами Phyton
Отправлено: Mark7 от 13 Ноября, 2010, 15:37
empty_, Извиняюсь, что не могу выложить код, покамисть,так как сижу без своего компа а просто на нотбуке.

Unknown,  :thumbup:
Название: Re: делимся скриптами Phyton
Отправлено: Unknown от 13 Ноября, 2010, 18:10
Mark7, это аплодисменты коду или я где-то нечаянно пошутил? =/
Название: Re: делимся скриптами Phyton
Отправлено: Mark7 от 15 Ноября, 2010, 21:20
И тeбе и коду :D
Название: Re: делимся скриптами Phyton
Отправлено: Unknown от 16 Ноября, 2010, 10:08
И тeбе и коду :D
Спасибо :)
Название: Re: делимся скриптами Phyton
Отправлено: Unknown от 23 Ноября, 2010, 06:33
Ещё одна хреновина для мультиплеерных модов - перенос и движение лестниц(и стен, и прочих объектов сцены, по желанию можно добавить хоть что, скрипт универсальный). Для этого нужно создать "оружие"-лестницу, выдать его классам в мульте(это понятно). Суть: игрок покупает лестницу, несёт её к месту и там жмёт е - ставит уже объект сцены, затем снова е - и можно двигать и вращать лестницу с помощью стрелок и  зажимая клавиши z и x. Нечто подобное есть в црпг моде. Отличия: в данном скрипте можно вращать лестницу как угодно, и передвигать её с места на место; нельзя сменить лестницу на другое оружие, нельзя кататься с ней на лошади.

например, у меня в модуле_итемс прописано так:

в файле сцене_пропс прописаны объекты сцены, на которые заменяются "оружия":



файл header_common, в список server events:

в файл module_constants, в список SCENE PROP SLOTS(перед scene_prop_slots_end, увеличив его значение):

триггеры в файл mission_templates:


в файл скриптов:

конечно, скрипт далеко не идеален, но работает :) возможно, даже кому-нибудь понадобиться...

Добавлено: [time]23 Ноябрь, 2010, 06:51:41 [/time]
ну и так, вдогонку, триггер утопления:
Название: Re: делимся скриптами Phyton
Отправлено: Dargor от 23 Ноября, 2010, 16:23
Unknown, а в сингплеерный мод кто-нибудь переностные лестницы запихивал? Это вообще насколько просто/сложно реализуется?
Название: Re: делимся скриптами Phyton
Отправлено: Лемрант от 23 Ноября, 2010, 22:49
Unknown, спасибо! Особенно порадовало утопление - достали уже подводные прогулки. Ещё бы и плавание...

Кстати, можно ли "брать" такие лестницы после использования?
Название: Re: делимся скриптами Phyton
Отправлено: Unknown от 27 Ноября, 2010, 09:06
Unknown, а в сингплеерный мод кто-нибудь переностные лестницы запихивал? Это вообще насколько просто/сложно реализуется?
Да без разницы, какой режим. Рулят тут триггеры из миссион_темплатес, так что если запихнуть их в сингловые режимы осады, например, а перед этим в магазины добавить лестницы или респаунить их прямо на карте, то можно двигать и в сингле.
Unknown, спасибо! Особенно порадовало утопление - достали уже подводные прогулки. Ещё бы и плавание...

Кстати, можно ли "брать" такие лестницы после использования?
брать нельзя, но можно модернизировать код и это будет можно.
для триггера утопления нужно ещё добавить в module_constants слот slot_agent_underwater в список агентов.

А вообще меня интересует, получилось ли заставить работать эти скрипты у кого-то?
Название: Re: делимся скриптами Phyton
Отправлено: секатор от 25 Марта, 2011, 22:50

ну и так, вдогонку, триггер утопления:
Unknown ,скажи это надо вписывать в module_triggers.py ? и где именно ? или не имеет разницы=)


Добавлено: [time]25 Март, 2011, 22:54:06 [/time]
человек  сможет  зайти  к примеру на карту где используется этот тригер? ,или это уже относится к разряду " новый мод"
Название: Re: делимся скриптами Phyton
Отправлено: Unknown от 26 Марта, 2011, 07:57
смертник, это надо вписывать в mission_templates и потом в нужном триггере режима игры дать на него ссылку. Посмотри триггер дезматча - там стоит ссылка на server_check_polls. ну, ещё надо добавить в module_constants слот slot_agent_underwater в список AGENT SLOTS.
Название: Re: делимся скриптами Phyton
Отправлено: sponge82 от 01 Апреля, 2011, 01:47
Всем спасибо за скрипты, особенно Unknown, Добавлю в свой МП мод лестницы, отпишусь о результатах.  :)
Название: Re: делимся скриптами Phyton
Отправлено: Mark7 от 01 Апреля, 2011, 23:01
Ункловнычь, я тут просмотрел твой код, ты наверное забыл в туторе про магию, стрингс добавить.  :)
Код:


Попробовал, понравилось, есть желание усовершенствовать. :)
Ману добавить, менюшку красивую слепить, партиклы поменять, а сам ты как что-то хотел менять?
Название: Re: делимся скриптами Phyton
Отправлено: Unknown от 02 Апреля, 2011, 12:21
Mark7, ну, вообще у меня были задумки похлеще персистенс ворлда: прокачка на поле боя, классы - вот они-то и отвечали за навыки, то есть было, например, развитие от класса знахаря в тёмного мага, у которого был бонус к вампиризму и отраве(отсюда и закомментированные строчки в презентации), ну и так далее, включая алхимию, ковку, постройку поселений, древорубство и случайные глобальные события. Конкретно к магии хотел попробовать сделать менюшку, в ячейках который были бы анимированные частицы + при наведении инфа про закл, и новые заклинания. Ещё были посохи, при взмахе и в зависимости от направления удара был эффект по площади, как то: спаун барьеров вокруг мага, огненная волна и массовое лечение.
Сей код тестировали с Хоком, последняя версия, приведённая здесь, должна правильно работать в мульте у всех желающих, поскольку раньше были некоторые глюки и тормоза.
Да, ещё ждал правку команды на пересечение одного объекта сцены с другим, но не дождался. :) Хотя она сейчас робит как нужно.

Добавлено: [time]02 Апрель, 2011, 12:22:42 [/time]
Ункловнычь, я тут просмотрел твой код, ты наверное забыл в туторе про магию, стрингс добавить.  :)
да, а ещё забыл добавить константу в триггер утопления. Я посчитал, что если кто-то код вставить сможет, то и такую мелочь сам наверняка сделает. :)
Название: Re: делимся скриптами Phyton
Отправлено: sponge82 от 03 Апреля, 2011, 07:39
Получилось вставить лестницы  :), спасибо, менять почти ничего не пришлось, вставил и запустил
Проблемы:
Почему то не работает  эта проверка:
(neg|scene_prop_has_agent_on_it,":wall_instance",":agent"),т.е. игрок может встать на лестницу и летать на ней двигая ее по карте, движение происходит вертикально.

И еще, не нашел 3д моделек лестниц, siege_ladder_move_Xmm, может кто подскажет в каком BRF они лежат, вроде все пересмотрел  :-\ пока заменил обычной короткой лестницей.

Название: Re: делимся скриптами Phyton
Отправлено: Unknown от 03 Апреля, 2011, 09:02
sponge82, этих моделек нет, я просто дублировал обычные лестницы для осады.

эта проверка работает в одном случае из 10-ти... Пробовал делать привязку лестниц к уровню земли, но и в этом случае они взлетают...
Название: Re: делимся скриптами Phyton
Отправлено: Acharon от 24 Мая, 2011, 02:55
мужики! такая проблема! создал скелет гарпии! воарос вот в чёмкак сделать чоб гарпия летала а после того как её убьют или подстрелят она падала вниз на землю а не зависала в воздухе
Название: Re: делимся скриптами Phyton
Отправлено: Демосфен от 02 Июня, 2011, 16:50
Unknown, можешь пожалуйста  чуть поподробней мне нубу о скрипте утопления обьяснить? В mission_templates и в module_constants все вроде прописал, а где находится триггер режима игры? Тоже в темплэйтс? Как его прописать?
Название: Re: делимся скриптами Phyton
Отправлено: Unknown от 02 Июня, 2011, 17:02
Rhevan, угу, в mission_templates. Для сингла не скажу, а в мульте это, например

    "multiplayer_dm",mtf_battle_mode,-1, #deathmatch mode
    "You lead your men to battle.",

для дезматча. ищи battle mode, siege mode и т.п.
после этого ниже ищешь     

      multiplayer_server_check_polls,

и пишешь название триггера утопления, в нашем случае - underwater..
Название: Re: делимся скриптами Phyton
Отправлено: Демосфен от 02 Июня, 2011, 19:01
Все получилось, спасибо огромное :)



Добавлено: 02 Июня, 2011, 19:10
Кстати, а как сделать, и возможно ли чтобы это ещё зависило от глубины?
Название: Re: делимся скриптами Phyton
Отправлено: Unknown от 03 Июня, 2011, 06:10
Rhevan, в триггере как раз и идёт проверка от глубины. Берём координату z игрока - если она меньше определённого значения - триггер работает.
Название: Re: делимся скриптами Phyton
Отправлено: Демосфен от 03 Июня, 2011, 10:39
Спасибо, поэксперементирую)
Название: Re: делимся скриптами Phyton
Отправлено: Artem_Ghost от 05 Июня, 2011, 20:28
а можно ли сделать что бы в сцене было ну очень очень темно? :-\ Чтобы факел наконец то пригодился, кроме поджигания домов в Vikingr...
И засунуть этакое в Hunt Mod... и тогда бы одни игроки в штаны наделали а другие Ха-ха давили :D
Возможно такое? :-\
Название: Re: делимся скриптами Phyton
Отправлено: Mark7 от 06 Июня, 2011, 16:34
Чтож тут невозможного. Просто надо добавить туман и увеличить его плотность на сцене. Если конечно ты туман имеешь ввиду.
Название: Re: делимся скриптами Phyton
Отправлено: proVIDec от 06 Июня, 2011, 17:00
Mark7
А если все источники освещения вырубить?
Название: Re: делимся скриптами Phyton
Отправлено: Unknown от 06 Июня, 2011, 17:16
все источники освещения - это вряд ли... Луна ночью вылазит, хотя её можно скрыть специально созданным скайбоксом, но свет на сцене будет.
Ещё можно, в качестве особого извращения, попробовать накладывать полупрозрачную чёрную меш по типу презентации...
Название: Re: делимся скриптами Phyton
Отправлено: Демосфен от 06 Июня, 2011, 20:27
Кстати, а существует ли гайд, или что-то подобное, где разбирается файл mission_templates, все его значения и команды? Хотяб на англиском...
Название: Re: делимся скриптами Phyton
Отправлено: Unknown от 07 Июня, 2011, 10:09
Rhevan, все команды находятся в файле header_operation.py
где-то в этом разделе есть разбор некоторых из них.
Название: Re: делимся скриптами Phyton
Отправлено: proVIDec от 07 Июня, 2011, 14:13
Rhevan
http://rusmnb.ru/forum/index.php?topic=3629.0
Название: Re: делимся скриптами Phyton
Отправлено: Демосфен от 07 Июня, 2011, 16:35
Спасибо :)
Название: Re: делимся скриптами Phyton
Отправлено: Rongar от 07 Июня, 2011, 16:39
а можно ли сделать что бы в сцене было ну очень очень темно? :-\ Чтобы факел наконец то пригодился, кроме поджигания домов в Vikingr...
Факел не свети, по крайне мере тот, что в руках. Поэтому он не пригождается.
Название: Re: делимся скриптами Phyton
Отправлено: Демосфен от 08 Июня, 2011, 12:32
Unknown, попробовал немного изменить твой скрипт утопления, чтобы когда начинаешь тонуть вылезало сообщение, получилось так:
Цитировать (выделенное)
underwater = (1, 0, 0, [],[ # underwater
            (multiplayer_is_server),
       (try_for_agents,":agent"),   
      (agent_get_position,pos1,":agent"),
             (position_get_z, ":z", pos1),
         (try_begin),
              (le, ":z", -150),
             (agent_get_slot, ":time",":agent", slot_agent_underwater),
             (display_message, "str_underwater"),
              (store_add, ":down", ":time", 1),
             (agent_set_slot, ":agent",  slot_agent_underwater, ":down"),
             (agent_get_slot, ":time_is_up",":agent", slot_agent_underwater),
             (ge, ":time_is_up", 10),
             (agent_deliver_damage_to_agent, ":agent",":agent"),
         (else_try),
         (gt, ":z", -200),
         (agent_set_slot, ":agent",  slot_agent_underwater, 0),
         (try_end),     
         (try_end),     
             ])     

Как ты думаешь, что нужно сделать, чтобы это сообщение показывалось только тому кто тонет?
Кстати, обьясни пожалуйста, зачем даются два значения z? Я так понял первое должно быть обязательно больше второго, но в чем тогда заключается функция второго? Или для того чтобы задать условие должно быть именно два значения?
Название: Re: делимся скриптами Phyton
Отправлено: Rongar от 08 Июня, 2011, 14:54
Я тут отпишу, пока Неизвестный втыкает в то, что я ему в Кузне понаписал.
Цитировать (выделенное)
Как ты думаешь, что нужно сделать, чтобы это сообщение показывалось только тому кто тонет?
Вариант первый. послать сообщение игроку типа multiplayer_send_string_to_player и обработать его в script_game_receive_network_message
Второй сделать два триггера — один серверный, как сейчас и другой на клиенте
underwater_client = (1, 0, 0, [],[ # underwater
       (multiplayer_get_my_player, ":player"),
       (this_or_next|gt, ":player", 0),
       (neg|multiplayer_is_dedicated_server),
       (ge, ":player", 0),
       (player_get_agent_id, ":agent", ":player"),
       (ge, ":agent", 0),
       (agent_is_active, ":agent"),
       (agent_is_alive,":agent"),
       (agent_get_position,pos1,":agent"),
       (position_get_z, ":z", pos1),
       (try_begin),
             (le, ":z", -150),
             (display_message, "str_underwater"),     
        (try_end),     
             ])     


Цитировать (выделенное)
Кстати, обьясни пожалуйста, зачем даются два значения z? Я так понял первое должно быть обязательно больше второго, но в чем тогда заключается функция второго? Или для того чтобы задать условие должно быть именно два значения?
Первое определяет, когда игрок оказался под водой. Второе, когда он вылез из воды. Хотя я бы значения переставил и зазор поуменьшил бы.
Название: Re: делимся скриптами Phyton
Отправлено: Демосфен от 08 Июня, 2011, 17:04
Rongar, спасибо большое :)
Вот кстати, получилось подобрать подходящие числа:
underwater = (1, 0, 0, [],[ # underwater
            (multiplayer_is_server),
       (try_for_agents,":agent"),   
      (agent_get_position,pos1,":agent"),
             (position_get_z, ":z", pos1),
         (try_begin),
              (le, ":z", -200),
             (agent_get_slot, ":time",":agent", slot_agent_underwater),
              (store_add, ":down", ":time", 1),
             (agent_set_slot, ":agent",  slot_agent_underwater, ":down"),
             (agent_get_slot, ":time_is_up",":agent", slot_agent_underwater),
             (ge, ":time_is_up", 5),
             (agent_deliver_damage_to_agent, ":agent",":agent"),
         (else_try),
         (gt, ":z", -185),
         (agent_set_slot, ":agent",  slot_agent_underwater, 0),
         (try_end),     
         (try_end),     
             ])     

Добавлено: 09 Июня, 2011, 16:36
Да, вот еще, скрипт, почему то работает через раз: иногда хп отнимаются, даже когда просто стоишь в воде, а обычно когда все нормально работает, на некторой глубине.
С чем это может быть связано? Подскажите пожалуйста!
Название: Re: делимся скриптами Phyton
Отправлено: Acharon от 10 Июня, 2011, 01:40
А кто знает как гранату сделать?
Название: Re: делимся скриптами Phyton
Отправлено: Демосфен от 10 Июня, 2011, 14:02
Acharon, В этой теме что-то подобное сейчас обсуждают
http://rusmnb.ru/forum/index.php?topic=180.msg403837#msg403837 (http://rusmnb.ru/forum/index.php?topic=180.msg403837#msg403837)

Добавлено:
Кстати вот, решил тут заняться скриптом для приседания, благодаря советам форумчан наконец составил такой вот скрипт:
(из мишн_темплэйтс)
#Crouch Down
new_anim_start = (0, 0, 0, [(key_is_down, key_z)],[
   (get_player_agent_no,":agent_no"),
   (agent_get_animation, ":cur_anim", ":agent_no", 0),
   (try_begin),
      (eq, ":cur_anim", "anim_crouch_down"),
      (agent_set_animation, ":agent_no", "anim_stand_from_crouch"),
   (else_try),
      (agent_set_animation, ":agent_no", "anim_crouch_down"),
   (try_end),
   ])
Подскажите пожалуйста, как правильно прописать условие не позволяющее приседать верхом на коне.
Я видел примеры в других скриптах, но правильно все прописать не получается... Разъясните кто может, как добавлять условие с одной частью.
Зарание благодарен.

Название: Re: делимся скриптами Phyton
Отправлено: Rongar от 10 Июня, 2011, 15:05
Цитировать (выделенное)
условие не позволяющее приседать верхом на коне
(get_player_agent_no,":agent_no"),
(agent_get_horse,":horse",":agent_no"),
(lt,":horse",0),
Цитировать (выделенное)
добавлять условие с одной частью
Что есть часть условия?
Название: Re: делимся скриптами Phyton
Отправлено: Демосфен от 10 Июня, 2011, 15:50
Спасибо  :)
Что есть часть условия?
Прости за невнятную формулировку, я имел ввиду примерно это: во всех скриптах которые я видел раньше было по нескольку условий например так:
   (try_begin),
      (this_or_next|agent_has_item_equipped,":agent_no",itm_angel_wings),
      (agent_has_item_equipped,":agent_no",itm_daemon_wings),
      (agent_set_animation, ":agent_no", "anim_angel_fly"),
а как сделать одно условие до меня не дошло :(
Но сейчас вроде разобрался, спасибо тебе.
Кстати еще один вопросик, если бы код выглядел так:
Цитировать (выделенное)
(get_player_agent_no,":agent_no"),
(agent_get_horse,":horse",":agent_no"),
(lt,":horse",1),
то предположим приседание можно было бы использовать только находясь в седле?
Название: Re: делимся скриптами Phyton
Отправлено: Rongar от 10 Июня, 2011, 16:10
Кстати еще один вопросик, если бы код выглядел так:
Цитировать (выделенное)
(get_player_agent_no,":agent_no"),
(agent_get_horse,":horse",":agent_no"),
(lt,":horse",1),
то предположим приседание можно было бы использовать только находясь в седле?
Не совсем.
agent_get_horse — возвратит номер агент лошади игрока
Агенты (в том числе лошади) нумеруются  с 0.
Если лошади нет, то в ":horse" будет -1.
lt это <.
Если поставить < 1, то приседать можно будет без лошади или на лошади, у которой номер агента 0 (в теории такое может быть, на практике хз).
Чтобы приседать можно было только на лошади, нужно
(ge,":horse",0), #>= 0
или
(gt,":horse",-1), # > -1
 
ЗЫ ну да, либо ещё
(neq,":horse",-1),
Собственно, вместо
(lt,":horse",0),
можно было бы написать
(eq,":horse",-1),
скорей всего.
Но интуиция диктует избегать точных условий при отсутствие спецификации.
Название: Re: делимся скриптами Phyton
Отправлено: Демосфен от 10 Июня, 2011, 17:53
Спасибо большое)
Кстати, а как назначить "агентов"  сразу для всех игроков и ботов (причем из той же команды) на каком-то расстоянии от "агента" который например играет на флейте или издает боевой клич?
А как выглядят команды изменяющие характеристики?
И еще один вопрос: как правильно задать таймер, и чтоб от него зависили вышеуказанные действия?
Вот, написал скриптик для боевого клича:
#Warcry
new_anim_start = (0, 0, 0, [(key_clicked, key_c)],[
   (get_player_agent_no,":agent_no"),
   (play_sound,"snd_warcry"),
      (agent_set_animation, ":agent_no", "anim_cheer"),

])
Подскажите пожалуйста как его усовершенствовать :)
Название: Re: делимся скриптами Phyton
Отправлено: Rongar от 10 Июня, 2011, 21:32
Цитировать (выделенное)
Кстати, а как назначить "агентов"  сразу для всех игроков и ботов (причем из той же команды) на каком-то расстоянии от "агента" который например играет на флейте или издает боевой клич?
Что значит "назначить"?

Цитировать (выделенное)
А как выглядят команды изменяющие характеристики?
Характеристики чего? Статы агентов? Никак. Статы можно менять только у troops. Ну и ботов можно замедлять.

Цитировать (выделенное)
И еще один вопрос: как правильно задать таймер, и чтоб от него зависили вышеуказанные действия?
По аналогии с утоплением. Раз в секунду слот увеличивать/уменьшать на единичку, проверять не перешло ли допустимый порог.

Цитировать (выделенное)
Подскажите пожалуйста как его усовершенствовать
Вместо
 (play_sound,"snd_warcry"),
поставить
 (agent_play_sound, ":agent_no", "snd_warcry"),
Название: Re: делимся скриптами Phyton
Отправлено: Демосфен от 10 Июня, 2011, 21:46
Вобщем я хотел бы сделать скрипт в котором после издания боевого клича у дружественных войнов в некотором радиусе от командира появлялся какой нибудь бонус (есть ли другие способы кроме повышения статов?)
а таймер ограничивал бы время через которое снова можно будет использовать боевой клич.

Добавлено:
Цитировать (выделенное)
Вместо
 (play_sound,"snd_warcry"),
поставить
 (agent_play_sound, ":agent_no", "snd_warcry"),
А в чем будет разница? У меня вроде и так работал..
Название: Re: делимся скриптами Phyton
Отправлено: Rongar от 10 Июня, 2011, 22:49
А в чем будет разница? У меня вроде и так работал..
Естественно работало. Это усовершенствование, в результате которого источником звука будет агент трубящий.
Разные игроки будут слышать горн с разной громкостью в зависимости от удаления. 3d sound есть в игре? Я чего-то уже забыл. Есть есть, то на нём тоже скажется. 

Вобщем я хотел бы сделать скрипт в котором после издания боевого клича у дружественных войнов в некотором радиусе от командира появлялся какой нибудь бонус (есть ли другие способы кроме повышения статов?)
Выбор агентов в радиусе
(agent_get_position,pos0,":agent_no"), #трубящий
(agent_get_team,":based_team",":agent_no"),
(try_for_agents,":effected_agent"),
   (agent_is_active,":effected_agent"),
   (agent_is_alive,":effected_agent"),
   (agent_is_human,":effected_agent"), #не лошадь.
   (agent_get_team,":effected_agent_team",":effected_agent"),
   (eq,":effected_agent_team", ":based_team"), # или  (neq,":effected_agent_team", ":based_team") для отрицательных эффектов на врагов
   (agent_get_position,pos1,":effected_agen"), #трубящий
   (get_distance_between_positions_in_meters,":dist",pos1,pos0),
   (le,":dist",25), #25 метров
место для эффекта
(try_end),
код писал на коленках. Так что могут быть ашипки.

Чё можно делать

Лечить /Повреждать  (heal/damage overtime)
store_agent_hit_points 
agent_set_hit_points

Повреждать
agent_deliver_damage_to_agent

Замедлять/ускорять  его лошадь
agent_set_horse_speed_factor

Напрямую влиять на золотовалютные резервы
player_get_gold                     
player_set_gold

Косвенно на поступление золота (e.g. для временного увеличения/уменьшения золота за убийство), через
script_money_management_after_agent_death

Восстанавливать патроны
agent_refill_ammo

Менять экипировку (сделать дубли для предметов, подменять временно на модифицированные). Не спрашивайте меня как.
Название: Re: делимся скриптами Phyton
Отправлено: Unknown от 11 Июня, 2011, 11:14
Менять экипировку (сделать дубли для предметов, подменять временно на модифицированные). Не спрашивайте меня как.
да, код, который писал я для этого, получился шестоким. С кучей пересылок инфы на агентов и сервер...

А ещё можно, в качестве эффектов, менять у дружественных агентов навыки точности, т.е. придавать им меньший разброс прицела при метании или лукострелянии. Прочие параметры не пробовал менять, так как, скорее всего, они не будут оказывать влияния. А прицел - презентация, поэтому его можно "разбрасывать" и "собирать" отдельно взятому игроку.
Название: Re: делимся скриптами Phyton
Отправлено: Демосфен от 11 Июня, 2011, 20:05
Цитировать (выделенное)
Менять экипировку (сделать дубли для предметов, подменять временно на модифицированные). Не спрашивайте меня как.
А нельзя ли сделать что то подобное сделать со статами персанажа? То есть на какое-то время заменять профиль обычного мультиплеерного, на например enspired_warrior у которого статы будут в любом случае лучше чем у любого обычного мультиплеерного солдата?
Существуют ли команды которые позволили бы осуществить это?
Название: Re: делимся скриптами Phyton
Отправлено: Unknown от 11 Июня, 2011, 20:07
Rhevan, можно. agent_set_troop. как-то так.
Название: Граната 20 век
Отправлено: joker7by от 13 Июня, 2011, 08:02
для модульной системы

module_items.py
где ["sg24" название гранаты в items и ("sg24",0) в grenades.brf,  и т.д. (всё есть в уроках)

эффекты:
module_particle_systems.py

В версии 1.113 не очень смотрится, а в 1.132 и 1.134 вполне похоже на взрыв!
Звуки сами, если не получится, то могу и выложить.  :thumbup:

P.S. Только пока не знаю как сделать, чтобы гранаты пропадали с поля боя и ограничить их дальность броска, а то на пол карты бросить можно, прям миномет  :embarrassed:
Название: Re: делимся скриптами Phyton
Отправлено: Андреус Ас от 14 Июня, 2011, 13:26
Спасибо за гранаты. Ограничить дальность, полагаю, можно понизив параметр Shot Speed.
Название: Re: делимся скриптами Phyton
Отправлено: joker7by от 14 Июня, 2011, 14:32
Спасибо за гранаты. Ограничить дальность, полагаю, можно понизив параметр Shot Speed.
spd_rtng(50) можно поменять на spd_rtng(35), меньше не стоит, уж больно долго идёт замах.
Я сделал шаг конём, добавил точность броска гранатам и стало полегче с ботами играть  :D
max_ammo(2)|accuracy(5)|weapon_length(5),imodbits_none,
Название: Re: делимся скриптами Phyton
Отправлено: Romitas от 14 Июня, 2011, 14:45
Господа, прошу прощения, существует ли команда модульной, которая переносит agent'a, конкретно, игрока, в другую координату? Например, для сценовых объектов такая команда выглядит так: (prop_instance_animate_to_position, <scene_prop_id>, position, <time>), есть ли что-то похожее для агентов?
Название: Re: делимся скриптами Phyton
Отправлено: Leon473 от 14 Июня, 2011, 15:00
Господа, прошу прощения, существует ли команда модульной, которая переносит agent'a, конкретно, игрока, в другую координату? Например, для сценовых объектов такая команда выглядит так: (prop_instance_animate_to_position, <scene_prop_id>, position, <time>), есть ли что-то похожее для агентов?
(agent_set_position,<agent_id>,<position_no>),Переносит его на другую позицию, но не анимированно.
Название: Re: делимся скриптами Phyton
Отправлено: Romitas от 14 Июня, 2011, 15:12
Leon473, спасибо.
Цитировать (выделенное)
но не анимированно.
Это означает, что перемещение агента  будет зрительно не заметно? То есть анимированного перемещения для агентов не существует?
Название: Re: делимся скриптами Phyton
Отправлено: Leon473 от 14 Июня, 2011, 15:18
Это означает, что перемещение агента  будет зрительно не заметно? То есть анимированного перемещения для агентов не существует?
Да. Агент просто моментально окажется на заданной позиции, без визуального перемещения. Какой то команды, которая будет визуально перемещать агента нет, но Хайлендер в своем моде (http://rusmnb.ru/forum/index.php?topic=10837.0) показал, что возможно агента анимированно перемещать, только такой скрипт сделать сложно. =/
Название: Re: делимся скриптами Phyton
Отправлено: Rongar от 14 Июня, 2011, 17:49
Leon473, спасибо.
Цитировать (выделенное)
но не анимированно.
Это означает, что перемещение агента  будет зрительно не заметно? То есть анимированного перемещения для агентов не существует?
Оторвать камеру.
Переместить камеру анимированно.
Телепортировать агента.

Или нужно, чтобы было заметно для других игроков? Тогда хз.
Название: Re: делимся скриптами Phyton
Отправлено: Unknown от 14 Июня, 2011, 17:54
Ну, ещё можно извратиться с помощью командам, меняющих глобальную систему координат в локальную и наоборот, и просто прибавлять координаты каждые 0.05 секунды...
Название: Re: делимся скриптами Phyton
Отправлено: Rongar от 14 Июня, 2011, 18:24
Ну, ещё можно извратиться с помощью командам, меняющих глобальную систему координат в локальную и наоборот, и просто прибавлять координаты каждые 0.05 секунды...
А игрок будет бежать в обратную сторону усиленно сопротивляясь перемещению =)
Название: Re: делимся скриптами Phyton
Отправлено: Romitas от 14 Июня, 2011, 18:47
Да ладно вам.  :) Мне просто хотелось узнать, существует ли такая команда. Она бы сильно упростила жизнь. Но да ладно, коли ее нет, попытаюсь сам разобраться. Leon473, Rongar, Unknown, спасибо за помощь.  :)
Название: Re: делимся скриптами Phyton
Отправлено: proVIDec от 14 Июня, 2011, 21:18
Что есть анимированное перемещение?  :blink:
Может сначала задать анимацию, там заклинание какое-нибудь, а потом бац и агент в другом месте. Или вся проблема в камере?
Вот у меня давно назрел вопрос по поводу камеры. Как привязать камеру к агенту? Самый первый скрипт, что дал GreyB некорректный, так как камера перемещается, но "отвязывается" от персонажа.
Название: Re: делимся скриптами Phyton
Отправлено: Pavel))) от 17 Июня, 2011, 02:05
мне б магию добавить как в моде Magic World или The Horde Lands на МБ..... кто нибудь знает как можно такое устроить??? хотя скорее всего нет...
Название: Re: делимся скриптами Phyton
Отправлено: proVIDec от 17 Июня, 2011, 09:03
Pavel)))
Тему сложно почитать?

http://rusmnb.ru/forum/index.php?topic=6857.msg301193#msg301193
Название: Re: делимся скриптами Phyton
Отправлено: Pavel))) от 17 Июня, 2011, 09:49
я уже прочел про магию но мнеб хотелось шоб мана была развиваить магию можно было....
Название: Re: делимся скриптами Phyton
Отправлено: Rongar от 17 Июня, 2011, 12:29
я уже прочел про магию но мнеб хотелось шоб мана была развиваить магию можно было....
Мана с точки зрения игры --- это число. Развитие магии --- набор условий.
Название: Re: делимся скриптами Phyton
Отправлено: Pavel))) от 17 Июня, 2011, 14:10
это то да, короче это оооочень сложно нужно на инглишь сайтах искать....
Название: Re: делимся скриптами Phyton
Отправлено: Mark7 от 18 Июня, 2011, 19:24
Та вроде ничего сложного нет потому как модулька магик ворлд открыта.
Название: Re: делимся скриптами Phyton
Отправлено: Pavel))) от 19 Июня, 2011, 09:48
и где её ну модульку магик ворда взять?
Название: Re: делимся скриптами Phyton
Отправлено: Dargor от 19 Июня, 2011, 10:18
Pavel))) (http://rusmnb.ru/index.php?action=profile;u=18585), начни с форума мода.
Название: Re: делимся скриптами Phyton
Отправлено: Демосфен от 21 Июня, 2011, 12:45
Подскажите пожалуйста! Как добавить новую анимацию удара, в моем случае, для копья со щитом не заменяя при этом старую? Я так понял, анимации определяются в метках itcf_. Возможно ли создать новую метку с новой анимацией? В конце концов это как-то осуществили в викингире! Каким образом можно это прописать?
Название: Re: делимся скриптами Phyton
Отправлено: Демосфен от 21 Июня, 2011, 13:33
З.Ы А какой командой в mission_templates задается проверка класса войск? То есть как поставить условие, что-бы оно выполнялось только если игрок в мультиплеере игпает за кокой-либо определенный "трупс"?
Название: Re: делимся скриптами Phyton
Отправлено: Rongar от 21 Июня, 2011, 13:37
З.Ы А какой командой в mission_templates задается проверка класса войск? То есть как поставить условие, что-бы оно выполнялось только если игрок в мультиплеере игпает за кокой-либо определенный "трупс"?
(player_get_troop_id,":troop",":player"),
(eq,":troop",trp_...),
Название: Re: делимся скриптами Phyton
Отправлено: Демосфен от 21 Июня, 2011, 14:48
Спасибо), все прописал, но взникает следующая ошибка:
ERROR: Usage of unassigned local variable: :player
ERROR: Usage of unassigned local variable: :player
Как её исправить?
Название: Re: делимся скриптами Phyton
Отправлено: Rongar от 21 Июня, 2011, 15:25
Демосфен (http://rusmnb.ru/index.php?action=profile;u=14492), в переменную :player нужно записать того игрока, которого ты проверяешь.
Название: Re: делимся скриптами Phyton
Отправлено: Демосфен от 21 Июня, 2011, 17:21
Спасибо большое, получилось  когда переписал на "агента": (agent_get_troop_id,":troop",":agent_no"),
(eq,":troop",trp_...),
Название: Re: Обмен Phyton скриптами
Отправлено: Arantir от 28 Июня, 2011, 20:20
Придумал прикольную фичу. Уровень благосостояния наделов будет показываться не в "низкий", "высокий" и т.д., а по шкале 0-100 (т.е. так, как есть на самом деле).
С помощью модульки в scripts.txt в скрипте "script_get_prosperity_text_to_s50" надо вместо 5 значений благополучия поставить 100. И не забыть делитель вместо 20 на 1 поправить.
Компилируете и все, теперь благосостояние будет просто по шкале 0-100.

Кстати, пробовал сделать проще - просто прописать ":prosperity" вместо "@Very Poor", что бы оно сразу брало его значение, и тогда можно оставить всего 1 строчку. Но почему-то это не прокатило. Может более опытные люди подскажут, как вытянуть значение :prosperity прямо в текст?
Название: Re: Обмен Phyton скриптами
Отправлено: Dargor от 28 Июня, 2011, 20:53
Извращением каким-то отдаёт  :-\ :blink:  :laught: 
А вот это что ли не работает?

(party_get_slot, ":prosperity", ":center_no", slot_town_prosperity),
(str_store_string, s1, ":prosperity"),
Название: Re: Обмен Phyton скриптами
Отправлено: Leon473 от 28 Июня, 2011, 21:23
Можешь попробовать вот так:
(assign, reg1, ":proprosperity"),
(str_store_string, s50, "@{reg1}"),
Но я не уверен заработает ли.
Название: Re: Обмен Phyton скриптами
Отправлено: Arantir от 28 Июня, 2011, 21:40
Dargor (http://rusmnb.ru/index.php?action=profile;u=1507), Я же говорю, как раз вот так и писал "(str_store_string, s50, ":prosperity")", но в игре просто пусто там, где должно было быть написано это.
Ну не знаю какими извращениями  :D Я просто прописал все без лишней мороки. Зато это работает!
Leon473 (http://rusmnb.ru/index.php?action=profile;u=11405), Не вышло. Вместо уровня вообще название деревни пишет и сразу ошибка красная в логе вылезает.
Название: Re: Обмен Phyton скриптами
Отправлено: Dargor от 28 Июня, 2011, 22:15
Leon473 (http://rusmnb.ru/index.php?action=profile;u=11405), тогда уж так:

(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 можно было бы извлекать только один раз
Название: Re: Обмен Phyton скриптами
Отправлено: Leon473 от 28 Июня, 2011, 22:27
Dargor (http://rusmnb.ru/index.php?action=profile;u=1507), а еще лучше так: :)
("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 обычный регистр, с ним можно творить все что хочешь и сколько хочешь (в пределах возможного), независимо от того где его используешь.
Название: Re: Обмен Phyton скриптами
Отправлено: Dargor от 28 Июня, 2011, 22:30
Так было бы лучше, но что-то мне подсказывает (ковыряние с другой презентацией), что презентация запомнит этот регистр и будет применять для всех деревень, в итоге процент и у богатых и у нищих будет один и тот же. Ты пробовал в игре свой вариант?
Название: Re: Обмен Phyton скриптами
Отправлено: Arantir от 28 Июня, 2011, 22:36
Dargor (http://rusmnb.ru/index.php?action=profile;u=1507), Ошибку выдает. Жалуется на скрипт get_prosperity_text_to_s50.
Как и раньше, сейчас вместо благополучия написано имя надела.
Leon473 (http://rusmnb.ru/index.php?action=profile;u=11405), точно такая же проблема и с твоим вариантом.
Название: Re: Обмен Phyton скриптами
Отправлено: Dargor от 28 Июня, 2011, 22:39
Не может быть. Ты, надеюсь, написал reg1, а не regl  ?
Я проверил, работает. Компилировал дважды (второй раз скобки добавлял).

(http://oorfin.net/mb2.jpg)

(http://oorfin.net/mb3.jpg)

Название: Re: Обмен Phyton скриптами
Отправлено: Arantir от 28 Июня, 2011, 22:43
Не может быть. Ты, надеюсь, написал reg1, а не regl  ?
Я проверил, работает. Компилировал дважды (второй раз скобки добавлял).
Я не писал, я вообще скопировал... Ну сейчас попробую еще раз...
Название: Re: Обмен Phyton скриптами
Отправлено: Dargor от 28 Июня, 2011, 22:46
Что значит, "жалуется на скрипт" ?  Может, у тебя синтакс еррор была, уточняй в следующий раз. Добавил скрины с результатами, так сказать.
Название: Re: Обмен Phyton скриптами
Отправлено: Arantir от 28 Июня, 2011, 22:49
Хм... Вот в тестовом модуле работает. Что-то я коряво перенес это в натив. Хотя со своим вариантом такого ни разу не было.
Перенес циферки скрипта из scripts.txt. Добавил пару строк в quick_strings.txt. Число строк поменял.
Что я упустил? До этого получалось  :-\

Все. Сделал. Надо было еще используемые переменные в другом модуле обновить... Все работает теперь.
Название: Re: Обмен Phyton скриптами
Отправлено: Leon473 от 29 Июня, 2011, 00:01
Так было бы лучше, но что-то мне подсказывает (ковыряние с другой презентацией), что презентация запомнит этот регистр и будет применять для всех деревень, в итоге процент и у богатых и у нищих будет один и тот же. Ты пробовал в игре свой вариант?
В игре не пробовал, но этой проблемы быть не должно, ибо скрипт обрабатывает только одну партию, и записывает ее благосостояние в reg1. Для другой партии, этот скрипт опять выполнится сначала, и опять запишет в reg1 уровень благосостояния партии.
Название: Re: Делимся скриптами для МС
Отправлено: Dargor от 29 Июня, 2011, 11:47
Быть не должно, но она была, reg1 заполненный для первой партии, использовался и для всех последующих. Я же не зря написал, что можно было бы сделать проще, если бы скрипт вызывался не из презентации.
Название: Re: Делимся скриптами для МС
Отправлено: Leon473 от 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),
     ]), 
Проверено на деле:
Название: Re: Делимся скриптами для МС
Отправлено: Dargor от 29 Июня, 2011, 13:39
Да, пожалуй так или для максимального сжатия

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

PS низзя скриптами в три ночи заниматься, низзя.
Название: Re: Делимся скриптами для МС
Отправлено: Arantir от 29 Июня, 2011, 14:02
А не подскажите какой-то словарь или справочник по питону? Не обязательно для чайников. С программированием знаком, но в питоне ноль. Мои познания позволяют создавать разве что всякие извращения (несколько постов раньше XD)...

И еще важный вопрос:
Питон переводит файлы со скриптами в файлы с циферками... А как сделать обратный процесс?? Это вообще возможно?
Название: Re: Делимся скриптами для МС
Отправлено: Romitas от 29 Июня, 2011, 14:50
По Питону учебников куча. По модульной системе - фактически ни одного. Мне почему-то кажется, что ты спрашивал именно о МС. Учебник по Питону же легко можно найти в Гугле.

Нет.Обратный процесс, в принципе, невозможен. То есть, имея готовый мод, полностью извлечь его исходники невозможно. Однако, вроде, где-то в Обмене опытом SithLord, кажется, писал о рубиновских скриптах, с помощью которых можно извлечь troops и items. Поищи, если хочешь.
Название: Re: Делимся скриптами для МС
Отправлено: Arantir от 29 Июня, 2011, 15:42
Romitas (http://rusmnb.ru/index.php?action=profile;u=16551), нет, я спрашивал именно по питону. Просто ничего хорошего не нашел. Я просто подумал, что если сначала понять питон, то с модульной системой будет куда проще. Исходник не закодирован ведь, а в открытом виде. Значит понять что там чего делает очень просто.

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

Кажется нашел альтернативу. Фича, позволяющая ставить моды без внедрения в родные файлы. Мне просто хотелось сохранить все изменения в моих файлах, а модулька все поверх старого пишет. Вот и спросил, как открыть в ней свои файлы. Но похоже нашлось другое решение.
Название: Re: Делимся скриптами для МС
Отправлено: Rongar от 29 Июня, 2011, 16:17
Нет.Обратный процесс, в принципе, невозможен. То есть, имея готовый мод, полностью извлечь его исходники невозможно.
Процесс возможен. Это несложно при должном уровне понимания питона. Когда-то даже для .903 Инвиктус извратился и сделал бэктранслятор для scripts. Проблема в том, что это всё крайне муторно, и для некоторых файлов неэффективно (для mission_templates например).

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

Название: Re: Делимся скриптами для МС
Отправлено: Arantir от 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.
Название: Re: Делимся скриптами для МС
Отправлено: Rongar от 29 Июня, 2011, 22:43
И еще вопрос:
Где находятся скрипты, которые командуют выводом строк из strings.txt?
Просто в scripts.txt нашел только для quick_strings.txt.
Повсюду. Ищи "str_". Может быть по-разному. Но обычно схема следующая, вызвать скрипт, взять str_, запихнуть в s0, вернуться из скрипта, использовать s0.
Название: Re: Делимся скриптами для МС
Отправлено: Mark7 от 13 Июля, 2011, 21:14
Сделал мини скриптик.  :embarrassed: Суть его работы, это рандомное время на мультеплеерских картах.

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

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


То что в красном это часы, между которыми будут браться рамдомные числа. Собственно всё просто.
Название: Re: Делимся скриптами для МС
Отправлено: tehnik от 19 Ноября, 2011, 15:02
Не знаю, как кого, а меня всегда (и в нативе, и в модах) смущал состав армий лордов. Лорды воевали с теми же войсками, с которыми гоняли разбойников и собирали дань. И потому предлагается вниманию мододелов группа скриптов и триггеров,  обеспечивающих появление и присоединение к армиям лордов на время похода отрядов ополчения из их владений.

Скрипты. module_scripts.py

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

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

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

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

Название: Re: Делимся скриптами для МС
Отправлено: tehnik от 20 Ноября, 2011, 20:40
В каком смысле - пугало? Есть решение принципиально короче?
 

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

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


PS: испытывалось, опять-же, не на нативской модульке, а на основе "Дипломатии", включавшей в себя "автолут". Если её нет - то правок больше.
Название: Re: Делимся скриптами для МС
Отправлено: KoSeMiR от 18 Декабря, 2011, 00:01
Ребят может кто то напишет скрипт на казнь пленника?Буду ОЧЕНЬ благодарен...
Название: Re: Делимся скриптами для МС
Отправлено: IGOR SLAVIANIN от 02 Февраля, 2012, 16:35
Попытаюсь вникнуть.
Название: Re: Делимся скриптами для МС
Отправлено: HunterWolf от 01 Сентября, 2012, 17:33
Кое что от Фингала:
От себя могу предложить увеличение ренты с городов и замков при наличии в них пленных. (Типо, припахать бедолаг).
Нужно всего-то добавить в module_presentations:
Как видно, с каждого пленного рандомно получаем от 1 до 50 дин. в неделю.
Всё таки, труд подневольный.

В дальнейшем хорошо бы добавить смертность среди пленных, чтобы постоянно требовалось их пополнение.
Название: Re: Делимся скриптами для МС
Отправлено: Elixio от 27 Ноября, 2012, 17:21
Дайте плиз аниму для Mount and Blade , что бы техника боя как в варбанд!
Название: Re: Делимся скриптами для МС
Отправлено: Strannuck от 04 Мая, 2013, 15:06
Всем доброго времени суток, вопрос вот в чем: мне нужно добавить новый отряд бандитов на глобальную карту, а точнее -  стаю волков, причем так, чтобы они обновлялись на карте.(Стаи волков будут ПОМИМО 6и стандартных бандитов!)
Вот что я прописал:
      (set_spawn_radius, 5),
      (try_for_range, "p_wolfs_spawn_point", villages_begin, villages_end),
        (store_random_in_range, ":random_value", 0, 5),               
        (eq, ":random_value", 0),
        (spawn_around_party, "p_wolfs_spawn_point", "pt_wolfs"),
      (try_end),
Все бы хорошо, но их появилось АЖ ЦЕЛЫХ 20 :blink:(+ -)! Так вот подскажите пожалуйста, как сделать так, чтобы их было в количестве от 5и до 10и?
Название: Re: Делимся скриптами для МС
Отправлено: HunterWolf от 04 Мая, 2013, 15:16
Я перенёс ваше сообщение, тут написано делимся скриптами для МС а не спрашивает как сделать скрипты для МС и почему ошибка. Спрашивает тут http://rusmnb.ru/index.php?topic=11317.msg697078#msg697078 (http://rusmnb.ru/index.php?topic=11317.msg697078#msg697078) для этого целый раздел плюс правила раздела не плохо бы прочитать
Название: Re: Делимся скриптами для МС
Отправлено: Strannuck от 04 Октября, 2013, 01:38
доброго времени суток всем!
Я думаю эти скрипты заинтересуют многих, а именно как сделать так, чтобы village_farmers  для каждой фракции были свои, а то нападаешь на саранидских фермеров, а там европейские крестьяне!
Я буду создавать на примере сарранидов.
Часть1:
Создаем party_templates для фракции:
Очень важно, чтобы party_template данной фракции была после "leaded_looters", потому-что мод считывает во время игры именно номер партии.
Часть2:
В module_scripts делаем скрипт, который будет создавать этих крестьян, а также даст им команду бежать в город и торговать:
Окрашенное зеленым, как бы ставит условие команде, чтобы она распростронялась только на фракцию допустим fac_kingdom_6.
Красное Это та party_template которую мы заранее создали.
(Очень важно!: между try_end и try_begin, должен быть обязательно именно один пропуск!)
Часть3:
В module_dialogs создаем для нашей новой party_template диалог:
Таким образом когда будем говорить с pt_sarranid_peasants будет такой же диалог как и с pt_village_farmers, хотя вы можете изменить его на свой вкус.
На самом деле (Часть3) очень важна! Потому как если не сделать ее, то вы нападая на pt_sarranid_peasants, не испортите отношения с их фракцией, как будто они ничейные!
(Также важно! между try_end и party_tpl должен быть один пропуск как в приведенном примере)
Впринципе все! Спасибо Finn_Gall за скрипты! :)
Название: Re: Делимся скриптами для МС
Отправлено: MongolMin от 12 Марта, 2014, 00:31
Классная тема, очень кстати.
Ребят, кто-то знает скрипт для сетевой игры, чтобы оружие, которые я кину на карту (для сервера), можно было поднимать?
Нужен скрипт, чтобы поднимались оружия, разбросанные на карте(скрипт для сервера).
Буду очень благодарен за помощь!
Название: Re: Делимся скриптами для МС
Отправлено: Smile от 02 Августа, 2014, 21:25
Скрипт улучшенного парирования для всех юнитов АИ на поле боя (отредактированный скрипт hachbachvotuong - OSP), более-менее удачная вариация:

module_mission_templates:


Вставить в нужные миссии common_better_blocking,  (например в lead_charge),

module_scripts:


Пусть будет и тут).
Название: Re: Делимся скриптами для МС
Отправлено: DRUGGG от 24 Августа, 2014, 13:30
тема замечательная токо ее мало пополняют :cry: :(
ладно я чуток скрипт для набора рекрутов дополню сей скрипт не мой а отсюдаhttp://forums.taleworlds.com/index.php/topic,62538.0.html (http://forums.taleworlds.com/index.php/topic,62538.0.html)



module_game_menus
- Это город/замок опции меню. Я положил ее под "town_leave", но вы можете поместить его в любом месте в меню. В town_leave приведен ниже, чтобы показать вам, как она должна выглядеть. Используйте ваш текстовый редактор функцией поиска, чтобы найти правильное место.










для заметки повторяю код немой
он отсюда
http://forums.taleworlds.com/index.php/topic,62538.0.html (http://forums.taleworlds.com/index.php/topic,62538.0.html)
и еще копилирует нормально токо со второго раза :blink:
если проблемы с кодом то по ссылке выше
я может чего напутал так што необижайтесь :embarrassed: :)
Название: Re: Делимся скриптами для МС
Отправлено: Кавир от 12 Ноября, 2014, 14:07
Доброго времени суток. Буду очень признателен, если поможете вот с чем: в скриптах и триггерах я разбираюсь плохо, но есть необходимость сделать вызов анимации по клавише. Чтобы работало в мультиплеере на выделенном сервере.


some_anim= (1, 0, 0, [(key_is_down,key_q)],[
                        #(multiplayer_is_dedicated_server),/(multiplayer_is_server),
                                (get_player_agent_no,":agent_no"),
                                (agent_set_animation,":agent_no","anim_some_anim"),
]),


То что # взаимозаменяемо.
В общем, для простого(локального, не выделенного,не знаю, как точно) сервера вызов анимации по клавише работает, а вот для выделенного - нет. Помогите решить проблему. :)
Название: Re: Делимся скриптами для МС
Отправлено: AndyYa от 19 Ноября, 2014, 13:30
   Скрипт для отображения игрового времени, к году, месяцу, числу добавляет день недели и время в 12 часовом формате.

   Сначала в  module_scripts.py ищем строку "game_get_date_text" затем добавляем код после   (assign, reg2, ":cur_year"), код выделен закомментированными строками.


   Затем вносим изменения в  module_strings.py . Ищем строки


   и заменяем их на следующие


И в самом низу module_strings.py добавляем строки:


Можно дни недели прописать и полностью, но в сокращенном варианте выглядит аккуратней.

и скрин


Надергано с форума тэйлворлдс
Название: Re: Делимся скриптами для МС
Отправлено: Опцион от 30 Ноября, 2014, 02:11
AndyYa (http://rusmnb.ru/index.php?action=profile;u=37097), Спасибо за идею. У меня вот так получилось(http://s011.radikal.ru/i318/1411/09/8c2108fe04b7.png)
Название: Re: Делимся скриптами для МС
Отправлено: AndyYa от 04 Декабря, 2014, 12:27
Отлично получилось.
Кстати вдогонку. Для русификации необходимо подкорректировать game_strings.csv.






Название: Re: Делимся скриптами для МС
Отправлено: AndyYa от 08 Декабря, 2014, 16:07
Добавляем в меню улучшений/строительства  деревни - церковь.

Церковь - увеличиваeт лояльность селян на +2 в месяц. Отряд может получить благословение (+3  к морали за 3 денара за одного бойца) за небольшое пожертвование раз в 12 часов.

Итак, начнем.

module_constants.py - здесь пожалуй самое сложное, главное не накосячить. Находим деревенские слоты, поиск например по slot_center_has_fish_pond  :D
Теперь нужно правильно вставить нашу "постоянную" - slot_center_has_kosciol . Я использовал новую нумерацию для деревенских зданий, так как в старой все уже было забито.

Если у вас установлена дипломатия то добавляем в module_dialogs.py. Ищем диалог строительства и вставляем выделенное курсивом.


В module_game_menus.py добавляем цервушку в меню посещения деревни и меню строительства.

в меню посещения деревни ищем строку "Door to the village center."),  и вставляем выделенное курсивом ниже.


Далее там же в module_game_menus.py ищем строку "center_build_manor" и вставляем выделенное курсивом.


в module_scripts.py ищем скрипт "get_improvement_details" и и вставляем выделенное курсивом.


И наконец в module_simple_triggers.py добавляем два тригеррочка
на +2 лояльности

и на проверку благословления


Ну и скриншоты



Добавлено: 08 Декабря, 2014, 23:51

И ещё немножко.

В module_constants.py  добавляем, но уже в конце.
Номер слота любой не занятый

slot_vc_blessing           = 483 # or any not used
slot_last_vc_bless_time    = 484 # or any not used

Название: Re: Делимся скриптами для МС
Отправлено: NightHawkreal от 07 Июня, 2015, 23:36
Не у кого не завалялся скрипт яда ил кровотечения, в общем, чтобы объект под его воздействием терял определенное количество здоровья в течение определенного периода времени?
Название: Re: Делимся скриптами для МС
Отправлено: world_silmarillion@bk.ru от 12 Июня, 2015, 22:07
Цитировать (выделенное)
Не у кого не завалялся скрипт яда ил кровотечения, в общем, чтобы объект под его воздействием терял определенное количество здоровья в течение определенного периода времени?

NightHawkreal всё чем могу  :)
триггер утопления
http://rusmnb.ru/index.php?topic=6857.msg305535#msg305535
рост HP
http://rusmnb.ru/index.php?topic=12386.msg471649#msg471649
Скрипт потери сил в бою (blood loss)
http://rusmnb.ru/index.php?topic=14987.msg579893#msg579893


Много полезных изменений
https://docs.google.com/document/d/1Z1wqRLHSZpul-JfWUSb0Sx7EPswfY7b3m0XhWD4jobk/edit?pli=1
Материал как я понял принадлежит Oltopeteeh, взято отсюда  http://rusmnb.ru/index.php?topic=3649.msg647629#msg647629

Текстуры огня кому нужны!
https://yadi.sk/d/GKWSUaLnrJzs3
https://yadi.sk/d/RXt_Beu8rJzrr
https://yadi.sk/d/IiLIT3tFrJzsH
https://yadi.sk/d/53RKplbBrJzs9

Название: Re: Делимся скриптами для МС
Отправлено: NightHawkreal от 13 Июня, 2015, 19:42
Вроде последний то, что нужно, спасибо.
Название: Re: Делимся скриптами для МС
Отправлено: MaxRiper1 от 05 Августа, 2016, 11:27

пфф.. И что это ты написал? Это же не скрипт вообще. Это предмет  ;).
Название: Re: Делимся скриптами для МС
Отправлено: секатор от 05 Августа, 2016, 12:18
где ты прочел что это скрипты? автор ясно дал знать что это .
к тому же 2010 давно канул в лету , также как и афтор поста спустя год.
не думаю что он ответит на твой вопрос.
Название: Re: Делимся скриптами для МС
Отправлено: praefectus от 05 Августа, 2016, 13:12
Я не понимаю, зачем поднимать покрытые трухой (5-6 лет) топики, давным давно потерявшие свою актуальность и писать в них абсолютно бессмысленные комментарии  ;)
Название: Re: Делимся скриптами для МС
Отправлено: Rekruttt от 05 Августа, 2016, 20:13
MaxRiper1 (http://rusmnb.ru/index.php?action=profile;u=44379), и добавлю от себя: не цитируйте, пожалуйста, такие простыни текста. Всегда можно выделить ключевой фрагмент мышью и нажать "Цитировать (выделенное)". Если уж нужна вся простыня, то прячьте её под спойлер - именно так я исправил ваше сообщение.
Название: Re: Делимся скриптами для МС
Отправлено: MaxRiper1 от 06 Августа, 2016, 14:46
Хорошо. Слушаюсь.
Название: Re: Делимся скриптами для МС
Отправлено: Valerian60 от 21 Октября, 2016, 19:43
Скрипт в mission templates для восполнения ХП лошади когда она приближается к стогам сена, расположенным на карте.  :)

Название: Re: Делимся скриптами для МС
Отправлено: Ordinary от 30 Октября, 2016, 18:59
Скрипт в mission templates для восполнения ХП лошади когда она приближается к стогам сена, расположенным на карте.  :)


Посмотрел твой скрипт, вот менее корявая версия (WB 1.165+):
Название: Re: Делимся скриптами для МС
Отправлено: Зюзя от 13 Ноября, 2016, 03:39
Скрипт группы "нонкомбатантов". Проще говоря, решение проблемы того, как защитить часть отряда от столкновения с противником - скрипт убирает со сцены всех агентов, которые помещены в 8 группу (последняя в списке), если в отряде игрока более 30 человек. То есть нужно, чтобы кто-то не появился на поле боя - назначаешь ему восьмую группу и он не участвует в сражении. Правда, в статистике боя все "нонкомбатанты" будут отмечены как убитые (но останутся в отряде игрока).
В принципе, можно удалить проверку команд, но я, на всякий случай, решил оставить. Мало ли, вдруг будут дезертиры из одной команды в другую))
P.S. На всякий случай - группа это то, что называется пехотой, конницей, лучниками и так далее.
Название: Re: Делимся скриптами для МС
Отправлено: Andromaster от 29 Ноября, 2016, 17:51
Пытался сделать отряды для лордов на нативе как показал tehnik. Итого-модулька ругается на то, что "Global variable never used: че-то там" и так 100500 раз. При запуске игра вылетает и говорит, что не удалось прочитать simple triggres
Название: Re: Делимся скриптами для МС
Отправлено: Зюзя от 30 Ноября, 2016, 15:30
Пытался сделать отряды для лордов на нативе как показал tehnik.

Здорово было бы, если бы вы вставили цитату кода - его трудно найти (а значит, никто не захочет помочь).
Код, о котором вы говорите, обладает вставками из Дипломатии и не совместим с Нэтивом без адаптации.
Название: Re: Делимся скриптами для МС
Отправлено: Valerian60 от 11 Января, 2017, 08:59
Ребят, кто-то знает скрипт для сетевой игры, чтобы оружие, которые я кину на карту (для сервера), можно было поднимать?
Нужен скрипт, чтобы поднимались оружия, разбросанные на карте(скрипт для сервера).
Буду очень благодарен за помощь!

Может проще использовать спавны оружия?  :)
Название: Re: Делимся скриптами для МС
Отправлено: Valerian60 от 10 Апреля, 2018, 15:32
Вот один из таких скриптов для того чтобы можно было подбирать оружие на карте, если это еще кому-то нужно  8-)