Голосование

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












Оформление



Пользователей
Сейчас на форуме
Пользователи: 0
Гостей: 455
Всего: 455

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

Тема: Продолжение игры после гибели игрока  (Прочитано 3625 раз)

  • Сообщений: 199
  • ЗАБАНЕН!
    Skype - Утред Беббанбурский
    • Просмотр профиля
я не знаю рабочий ли он
вот кусок кода из mision_teplate
а точнее "lead_charge"
      (1, 4, ti_once, [(main_hero_fallen)],
          [
 
(team_give_order, 0, grc_everyone, mordr_charge),
(team_give_order, 1, grc_everyone, mordr_charge),
(team_give_order, 2, grc_everyone, mordr_charge),
(team_give_order, 3, grc_everyone, mordr_charge),
            (assign, "$pin_player_fallen", 1),
(assign, ":num_player_alive", 0),
  (try_for_agents,":cur_agent"),
(agent_is_human, ":cur_agent"),
         (agent_get_party_id, ":agent_party", ":cur_agent"),
(try_begin),
(eq, ":agent_party", "p_main_party"),
(try_begin),
(agent_is_alive, ":cur_agent"),
(eq, ":num_player_alive", 0),
(str_store_string, s5, "str_retreat"),
                 (call_script, "script_simulate_retreat", 10, 20, 1),
                 (assign, "$g_battle_result", -1),
                 (set_mission_result,-1),
                 (call_script, "script_count_mission_casualties_from_agents"),
                 (finish_mission,0)
(else_try),
(agent_is_alive, ":cur_agent"),
(ge, ":num_player_alive", 1),
(player_is_active, ":player_no"),    
     (player_get_team_no, ":player_team", ":player_no"),
             (assign, ":is_found", 0),
             (try_for_agents, ":cur_agent"),
               (eq, ":is_found", 0),
               (agent_is_alive, ":cur_agent"),
               (agent_is_human, ":cur_agent"),
               (agent_is_non_player, ":cur_agent"),
               (agent_get_team ,":cur_team", ":cur_agent"),
               (eq, ":cur_team", ":player_team"),
               (assign, ":is_found", 1),
             (try_end),
             (try_begin),
               (eq, ":is_found", 1),
               (call_script, "single_player_find_most_suitable_bot_to_control", ":player_no"),
               (player_control_agent, ":player_no", reg0),
             (try_end), 
(try_end),
(try_end),
 (try_end),
  ]),

и есть скрипт
   SCRITT    
   #script_find_most_suitable_bot_to_control
  # INPUT: arg1 = value
  ("single_player_find_most_suitable_bot_to_control",
   [
      (set_fixed_point_multiplier, 100),
      (store_script_param, ":player_no", 1),
      (player_get_team_no, ":player_team", ":player_no"),

      (player_get_slot, ":x_coor", ":player_no", slot_player_death_pos_x),
      (player_get_slot, ":y_coor", ":player_no", slot_player_death_pos_y),
      (player_get_slot, ":z_coor", ":player_no", slot_player_death_pos_z),

      (init_position, pos0),
      (position_set_x, pos0, ":x_coor"),
      (position_set_y, pos0, ":y_coor"),
      (position_set_z, pos0, ":z_coor"),

      (assign, ":most_suitable_bot", -1),
      (assign, ":max_bot_score", -1),

      (try_for_agents, ":cur_agent"),
        (agent_is_alive, ":cur_agent"),
        (agent_is_human, ":cur_agent"),
        (agent_is_non_player, ":cur_agent"),
        (agent_get_team ,":cur_team", ":cur_agent"),
        (eq, ":cur_team", ":player_team"),
        (agent_get_position, pos1, ":cur_agent"),

        #getting score for distance of agent to death point (0..3000)
        (get_distance_between_positions_in_meters, ":dist", pos0, pos1),

        (try_begin),
          (lt, ":dist", 500),
          (store_sub, ":bot_score", 500, ":dist"),
        (else_try),
          (assign, ":bot_score", 0),
        (try_end),
        (val_mul, ":bot_score", 6),

        #getting score for distance of agent to enemy & friend agents (0..300 x agents)
        (try_for_agents, ":cur_agent_2"),
          (agent_is_alive, ":cur_agent_2"),
          (agent_is_human, ":cur_agent_2"),
          (neq, ":cur_agent", ":cur_agent_2"),     
          (agent_get_team ,":cur_team_2", ":cur_agent_2"),
          (try_begin),
            (neq, ":cur_team_2", ":player_team"),
            (agent_get_position, pos1, ":cur_agent_2"),
            (get_distance_between_positions, ":dist_2", pos0, pos1),
            (try_begin),
              (lt, ":dist_2", 300),
              (assign, ":enemy_near_score", ":dist_2"),
            (else_try),
              (assign, ":enemy_near_score", 300),
            (try_end),
            (val_add, ":bot_score", ":enemy_near_score"),
          (else_try),
            (agent_get_position, pos1, ":cur_agent_2"),
            (get_distance_between_positions, ":dist_2", pos0, pos1),
            (try_begin),
              (lt, ":dist_2", 300),
              (assign, ":friend_near_score", 300, ":dist_2"),
            (else_try),
              (assign, ":friend_near_score", 0),
            (try_end),
            (val_add, ":bot_score", ":friend_near_score"),
          (try_end),
        (try_end),

        #getting score for health (0..200)
        (store_agent_hit_points, ":agent_hit_points", ":cur_agent"),
        (val_mul, ":agent_hit_points", 2),
        (val_add, ":bot_score", ":agent_hit_points"),

        (ge, ":bot_score", ":max_bot_score"),
        (assign, ":max_bot_score", ":bot_score"),
        (assign, ":most_suitable_bot", ":cur_agent"),
      (try_end),

      (assign, reg0, ":most_suitable_bot"),
    ]),

вот по сути оно должно работать следущим образом
например во время битвы если игрок убит(оглушен), то этот кусок кода считывает если в живых союзников на поле битвы равно нулю то происходит конец битвы, если равно или больше одного, то игрок переключается сразу на любого бота союзника, и так до тех пор пока на поле боя не останется живых союзников

Я сам если честно не умею программировать, это взято из путем сплава их мультиплеера из режима разружение объектов и мини карты с отображением живых союзников
  • Ник в M&B: Утред Беббанбурский
  • Ник в Minecraft: Утред Беббанбурский
  • Фракция: Вегиры
  • Сообщений: 563
    • Просмотр профиля
0
« Ответ #1 : 13 Марта, 2015, 00:20 »
Если кто ещё помнит! поясните как сделать что бы после оглушения отряд продолжал битву.
а то против 200 моих 50 противника и вариант только сдаться.
если можно подробнее что откуда взять и  куда поставить.
  • Сообщений: 138
    • Просмотр профиля
0
« Ответ #2 : 13 Марта, 2015, 21:14 »
выдает ошибку
NameError:name "player_get_team_no" is not definet
  • Сообщений: 563
    • Просмотр профиля
0
« Ответ #3 : 13 Марта, 2015, 22:23 »
скрипт не рабочий...

во всех модах есть продолжение битвы. как вы его сделали facepalm ?
  • Сообщений: 138
    • Просмотр профиля
0
« Ответ #4 : 13 Марта, 2015, 23:44 »
как вы его сделали  ?
скрипт не рабочий...

во всех модах есть продолжение битвы. как вы его сделали facepalm ?

прописал в скрипты и mision_teplate как написано выше
  • Сообщений: 1697
  • За особо выдающиеся авторские тексты За активную деятельность, связанную с публикациями и помощью другим посетителям
    • Просмотр профиля
0
« Ответ #5 : 14 Марта, 2015, 12:02 »
Если кто ещё помнит! поясните как сделать что бы после оглушения отряд продолжал битву.

В "Дипломатии" это всё сделано.

Можно ещё здесь посмотреть:
http://rusmnb.ru/index.php?topic=14483.0;topicseen
  • Ник в M&B: Fin___Gall

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


Powered by SMF 2.0 | SMF © Simple Machines LLC