Search results for query: *

  1. BladeofWar's

    [SP]Medieval Dawn : warriors of faith

    Başarılar diliyorum mod ekibine güzel bir mod olacak umarım
  2. BladeofWar's

    Xiognu Scenario (İPTAL)

    Umarım sadece OSP'lerle dolu bir birini takip eden modlar listesinde yer almaz, moda özgün özellikler de eklersin kolay gelsin
  3. BladeofWar's

    Trophies and gold after battle

    if you can't find any code, you can write a new script and you can add to common_battle_tab_press in module_mission_templates.py.

    common_battle_tab_press = ( ti_tab_pressed, 0, 0, [], [ (try_begin), (eq, "$g_battle_won", 1), (call_script, "script_count_mission_casualties_from_agents"),
    You can add your new script just below that.
  4. BladeofWar's

    Stuck on a Menu Screen (Mod Help)

    The solution is simple, use 1.2 and add a simple exit option to this specific menu implement the below solution.

    If you cannot grasp the basics of modding, just leave it alone then because you will end up frustrated when doing it. If you want to keep going, make sure to read tutorials on syntax (there are many of them, so it is impossible to not have stumbled upon them). Experience does not have anything to do with it; I had no experience when I started out but through careful examination of scripts I became a proficient coder. I advise you to do the same.

    If you know how to, you will not mess up the Steam directory of the game.

    I think you should try removing the following from continue submenu to see what happens next: (store_faction_of_troop, ":executer_faction", "$g_notification_menu_var2"), (neg|faction_slot_eq, ":executer_faction", slot_faction_leader, "trp_player"), because the rest of it looks fine.
    I agree with valedentella. in this code, if the player is not the owner of :executioner_faction, it enables the continue button to open, you should delete it and try again
  5. BladeofWar's

    [WB][SP]BannerWar V2

    geliştirmeye devam ediyor musunuz?
    evet ediyoruz bir ay ara verdik şimdi yeniden başladık kaldıgımız yerden
  6. BladeofWar's

    OSP Code Combat Hardcore fighting AI - Blocking, better positioning, feinting...etc

    Updated this for the "Battle for NA" mod. AI now fights like a proper competitive player, here is the source code. A lot of changes and improvements.

    You can take a peek at the AI in this trailer here:


    module_mission_templates.py
    Code:
    advanced_ai = (
    0, 0, 0, [
    
    (eq, "$advanced_ai_open", 1),
    # (neg|main_hero_fallen),
    (neg|all_enemies_defeated),
    
    ], [
     
        (get_player_agent_no, ":player"),
        (agent_is_active, ":player"),
        (agent_is_alive, ":player"),
     
        # (store_mission_timer_a, ":timer"),
        (store_mission_timer_b, ":timer_b"),
        # (store_mission_timer_c, ":timer_c"),
        # (store_mission_timer_a_msec, ":timer_mili"),
     
       (try_for_agents, ":agents"),
            # SOURCE CHECK
            (neq, ":agents", ":player"),    # Source Agent is not player
            (agent_is_active, ":agents"),   # Source Agent is present
            (agent_is_alive, ":agents"),    # Source Agent is alive
            (agent_is_human, ":agents"),    # Source Agent is not horse
            (agent_slot_eq, ":agents", slot_agent_is_running_away, 0), # Source Agent is not fleeing
       
            (agent_get_troop_id, ":troop_no", ":agents"),   # Get troop reference of the source agent
       
            (troop_get_slot, ":is_AI", ":troop_no", player_knows_how_to_play), # Source troop has AI
            (eq, ":is_AI", 1), # Source troop has AI
            (troop_get_slot, ":chance_AI", ":troop_no", player_skill_level), # # Source troop skill level
     
            (agent_get_team, ":agent_team", ":agents"),  # Get source team
            (team_get_movement_order, ":cur_team_order", ":agent_team"),
            (eq, ":cur_team_order", mordr_charge, grc_everyone),
       
            (agent_ai_get_look_target, ":target", ":agents"),   # Get the current enemy of the source agent
            (gt, ":target", 0),   # If there is a target
       
            # TARGET CHECK
            (agent_is_active, ":target"),
            (agent_is_alive, ":target"),
            (agent_is_human, ":target"),
       
            (agent_get_team, ":target_team", ":target"),
            (neq, ":target_team", ":agent_team"), #unfriendly teams
       
            # WEAPONS
            (try_begin),
                (agent_get_wielded_item, ":left_item_source", ":agents", 1),
                (gt, ":left_item_source", 0),
                # (item_get_type, ":left_item_type_source", ":left_item_source"),
            (try_end),
       
            (try_begin),
                (agent_get_wielded_item, ":right_item_source", ":agents", 0),
                (gt, ":right_item_source", 0),
                # (item_get_type, ":right_item_type_source", ":right_item_source"),
                # (item_get_weapon_length, ":weapon_length_right_source", ":right_item_source"),
            (try_end),
            # HORSE
            (agent_get_horse, ":horse", ":agents"),
            (eq, ":horse", -1), # no horse
       
            # (agent_get_animation, ":source_animation", ":agents"),
            (agent_get_animation, ":target_animation", ":target"),
       
            (agent_get_bone_position, pos55, ":agents", hb_foot_l, 1),
            (agent_get_bone_position, pos56, ":agents", hb_head, 1),
       
            # POSITION
            (agent_get_position, pos11, ":target"),
            (agent_get_position, pos12, ":agents"),
            (neg|position_is_behind_position, pos11, pos12), #agents are not behind each other
            (get_distance_between_positions, ":dist", pos11, pos12),
       
            # COMBAT INFO
            (agent_get_defend_action, ":pos_def", ":target"), #attack action
            (agent_get_action_dir, ":pos_atkdir", ":target"),
            (agent_get_attack_action, ":pos_atk", ":target"), #attack action
            # (agent_get_combat_state, ":pos_state", ":target"),
     
            # (agent_get_combat_state, ":source_state", ":agents"),
            # (agent_get_defend_action, ":source_defend_action", ":agents"), #defend action
            (agent_get_action_dir, ":source_attack_dir", ":agents"), # attack/block direction
            (agent_get_attack_action, ":source_attack_action", ":agents"), #attack action
       
            # (assign, reg5, ":source_attack_dir"),
            # (display_message, "@{reg5}"),
       
            (assign, ":continue", 0),
            (try_begin),
                (ge, ":chance_AI", 1),
                (assign, ":continue", 1),
            (else_try),
                (store_random_in_range, ":chance_strength", 0, ":chance_AI"), #chance is based on troop
                (eq, ":chance_strength", 0),
                (assign, ":continue", 1),
            (try_end),
            (eq, ":continue", 1),
       
            # switch between passive / agressive
            # (try_begin),
                # (eq, ":timer_b", 10),
                # (try_begin),
                    # (agent_slot_eq, ":agents", play_passive, 0),
                    # (agent_set_slot, ":agents", play_passive, 1),
                    # (agent_ai_set_aggressiveness, ":agents", 30),
                    # (display_message, "@I am passive now."),
                # (else_try),
                    # (agent_slot_eq, ":agents", play_passive, 1),
                    # (agent_set_slot, ":agents", play_passive, 0),
                    # (agent_ai_set_aggressiveness, ":agents", 100),
                    # (display_message, "@I am agressive now."),
                # (try_end),
                # (reset_mission_timer_b),
            # (try_end),
           
            # (store_random_in_range, ":decision", 1, 10),
       
            # (agent_set_slot, ":agents", run_block, 1),
            # (agent_set_slot, ":agents", run_feint, 1),
            # (agent_set_slot, ":agents", run_footwork, 1),
            # (agent_set_slot, ":agents", run_attack, 1),
            # (agent_set_slot, ":agents", run_counter_attack, 1),
            # (agent_set_slot, ":agents", run_chamber, 1),
       
            # (try_begin),
                # (troop_slot_ge, ":troop_no", this_guy_only_blocks, 1),
                # (agent_set_slot, ":agents", run_feint, -1),
                # (agent_set_slot, ":agents", run_footwork, -1),
                # (agent_set_slot, ":agents", run_attack, -1),
                # (agent_set_slot, ":agents", run_counter_attack, -1),
                # (agent_set_slot, ":agents", run_chamber, -1),
            # (try_end),
         
            # (try_begin),
                # (troop_slot_ge, ":troop_no", this_guy_only_s, 1),
                # (agent_set_slot, ":agents", run_feint, -1),
                # (agent_set_slot, ":agents", run_block, -1),
                # (agent_set_slot, ":agents", run_footwork, -1),
                # (agent_set_slot, ":agents", run_counter_attack, -1),
                # (agent_set_slot, ":agents", run_chamber, -1),
            # (try_end),
       
    
       
            # make ai block more when their hp is low
       
            # Chambering
            (try_begin),
                (store_random_in_range, ":dice_chamber", 0, 500),
                (eq, ":dice_chamber", 250),
                # (eq, ":source_attack_action", 0), # if free
                # (agent_slot_ge, ":agents", run_chamber, 1), # troop constraints
                (le, ":dist", 200), # IF close enough
                (eq, ":pos_atk", 2), # release attack
                # (eq, ":decision", 5), # decided to chamber
                (try_begin),              
                    (eq, ":pos_atkdir", 0), # enemy is attackin down
                    (agent_set_attack_action, ":agents", 0, 0), # attack down
                (else_try),
                    (eq, ":pos_atkdir", 1), # enemy is attackin right
                    (agent_set_attack_action,":agents", 2, 0),  # attack left
                (else_try),
                    (eq, ":pos_atkdir", 2), # enemy is attackin left
                    (agent_set_attack_action, ":agents", 1, 0), # attack right
                (else_try),
                    (eq, ":pos_atkdir", 3), # enemy is attacking up
                    (agent_set_attack_action, ":agents", 3, 0), # attack up
                (try_end),
            (try_end),
       
            # Release swing if he is readying
            (try_begin),
                (store_random_in_range, ":dice_to_release", 0, 5),
                (eq, ":dice_to_release", 3),
                (eq, ":source_attack_action", 1),
                (this_or_next|eq, ":pos_def", 1),
                (this_or_next|eq, ":pos_def", 2),
                (eq, ":pos_def", 0),
           
                (this_or_next|eq, ":pos_atk", 3),
                (this_or_next|eq, ":pos_atk", 4),
                (this_or_next|eq, ":pos_atk", 6),
                (this_or_next|eq, ":pos_atk", 7),
                (eq, ":pos_atk", 0),
                (agent_set_attack_action, ":agents", ":source_attack_dir", 0),
                # (display_message, "@Release"),
            (try_end),
       
       
       
       
            # Make holds
            (try_begin),
                (eq, ":timer_b", 15),
                (store_random_in_range, ":random_dir", 1, 3),
                (agent_set_attack_action, ":agents", ":random_dir", 1),
                (agent_set_slot, ":agents", agent_cur_action, action_hold),
            (try_end),
           
            (try_begin),
                (agent_slot_eq, ":agents", agent_cur_action, action_hold),
                (eq, ":timer_b", 16),
                (agent_set_attack_action, ":agents", ":source_attack_dir", 0),
                (agent_set_slot, ":agents", agent_cur_action, action_feint),
                (reset_mission_timer_b),
            (try_end),
       
       
            #Counter-attack
            (try_begin),
                # (agent_slot_ge, ":agents", run_counter_attack, 1),
                (le, ":dist", 200),
                (store_random_in_range, ":dice_counter", 0, 20),
                (eq, ":dice_counter", 15),
                (this_or_next|eq, ":pos_def", 1),
                (this_or_next|eq, ":pos_def", 2),
                (eq, ":pos_def", 0),
           
                (this_or_next|eq, ":pos_atk", 3),
                (this_or_next|eq, ":pos_atk", 4),
                (this_or_next|eq, ":pos_atk", 6),
                (this_or_next|eq, ":pos_atk", 7),
                (eq, ":pos_atk", 0),
                (store_random_in_range, ":random_dir", 1, 3),
                (store_random_in_range, ":random_action", 0, 1),
                (agent_set_attack_action, ":agents", ":random_dir", ":random_action"),
                # (display_message, "@Counter-attack"),
            (try_end),
       
            #Feinting
            (try_begin),
                # (ge, ":timer", 10), # ai starts feinting after 10 seconds into duel
           
                # (neg|agent_slot_eq, ":agents", agent_cur_action, action_hold),
                # (agent_slot_ge, ":agents", run_feint, 1),
                    # dice
                # (is_between, ":decision", 6, 8),
                # if distance is close enough
                # (eq, ":pos_def", 2),
                (le, ":dist", 225),
           
                (this_or_next|eq, ":pos_def", 1),
                (this_or_next|eq, ":pos_def", 2),
                (eq, ":pos_def", 0),
           
                (this_or_next|eq, ":pos_atk", 3),
                (this_or_next|eq, ":pos_atk", 4),
                (this_or_next|eq, ":pos_atk", 6),
                (this_or_next|eq, ":pos_atk", 7),
                (eq, ":pos_atk", 0),
           
                # (display_message, "@Feinting."),
                (store_random_in_range, ":feint_times", 3, 12),
                (store_div, ":start_releasing", ":feint_times", 3),
                # Feint to different directions
                (try_for_range, ":feinting_amount", 0, ":feint_times"),
               
                    # (eq, ":pos_atkdir", ":source_attack_dir"),
                    (store_random_in_range, ":random_dir", 0, 4), # store direction
                    (neq, ":random_dir", "$last_direction"), # if it is not equal to last direction
               
                    # (assign, ":continue", 1),
                    # (try_begin),
                        # (eq, ":random_dir", 0),
                        # (le, ":dist", 100),
                        # (assign, ":continue", 0),
                        # (agent_force_rethink, ":agents"),
                    # (try_end),
                    # (eq, ":continue", 1),
               
                    # (agent_set_speed_modifier, ":agents", 50),
               
                    # (neq, ":pos_atkdir", ":source_attack_dir"),
                    (agent_force_rethink, ":agents"),
                    (try_begin),
                        (ge, ":feinting_amount", ":start_releasing"),
                        (agent_set_attack_action, ":agents", ":random_dir", 0), # attack
                    (else_try),
                        (agent_set_attack_action, ":agents", ":random_dir", 1),
                    (try_end),
               
                    (assign, "$last_direction", ":random_dir"), # store the last used direction
                    # (assign, ":feint_times", -1),
                    # (display_message, "@Feint"),
                    (eq, ":feinting_amount", ":feint_times"),
                    (assign, ":feinting_amount", -1),
                (try_end),
            (try_end),
       
       
            # Track how many feints player do in a second and if its above 3, %100 hit
    
       
            # Footwork
            (try_begin),
                # (agent_slot_ge, ":agents", run_footwork, 1),
                # When distance is too far, come closer to target
                (try_begin),
                    # (try_begin),
                        # (troop_slot_ge, ":troop_no", this_guy_only_s, 1),
                        # (val_mul, pos11, -1),
                    # (else_try),
                        (ge, ":dist", 225),
                    # (try_end),
               
                    (agent_force_rethink, ":agents"),
                    (agent_set_scripted_destination, ":agents", pos11, 0, 1),
                # When close enough,
                (else_try),
                    (store_random_in_range, ":right", -150, -450),
                    (store_random_in_range, ":left", 150, 350),
                    # (store_random_in_range, ":up", 25, 75),
                    (store_random_in_range, ":forward", 50, 150),
                    # (store_random_in_range, ":up_down", 150, -150),
                    # (store_random_in_range, ":blocking", -500, 500),
                    (agent_force_rethink, ":agents"),
                    # (copy_position, pos13, pos12),
                    # (store_random_in_range, ":dice_for_footwork", 0, 3),
                    # (eq, ":dice_for_footwork", 2),
                    (agent_clear_scripted_mode, ":agents"),
                    # ATTACKING / BLOCKING
                    (try_begin),
                        # # WITH SHIELD
                        # # ONLY BLOCK
                        # (gt, ":left_item_source", 0), # if he has item on left hand
                        # (eq, ":left_item_type_source", itp_type_shield), # if the item is shield
                        # (eq, ":source_animation", "anim_defend_shield"),
                        # # (eq, ":source_attack_action", 2), # guarding
                        # (position_move_x, pos12, ":shield"),
                        # (display_message, "@I have shield."),
                    # (else_try),
                        # NO SHIELD
                        # BY SOURCE POS
                        # ATTACK
                        (try_begin),
                            (eq, ":source_attack_dir", 0), #down
                            (position_move_x, pos12, ":right"),
                       
                            # (try_begin),
                                # (store_random_in_range, ":dice_forward", 0, 6),
                                # (eq, ":dice_forward", 5),
                                (position_move_y, pos12, ":forward"),
                            # (try_end),
                        (else_try),
                            (eq, ":source_attack_dir", 1), #slashright
                            (position_move_x, pos12, ":right"),
                       
                            # (try_begin),
                                # (store_random_in_range, ":dice_forward", 0, 6),
                                # (eq, ":dice_forward", 5),
                                (position_move_y, pos12, ":forward"),
                            # (try_end),
                        (else_try),
                            (eq, ":source_attack_dir", 2), #slashleft
                            (position_move_x, pos12, ":left"),
                       
                             # (try_begin),
                                # (store_random_in_range, ":dice_forward", 0, 6),
                                # (eq, ":dice_forward", 5),
                                (position_move_y, pos12, ":forward"),
                            # (try_end),
                        (else_try),
                            (eq, ":source_attack_dir", 3), #overswing
                            (position_move_x, pos12, ":left"),
                       
                            # (try_begin),
                                # (store_random_in_range, ":dice_forward", 0, 6),
                                # (eq, ":dice_forward", 5),
                                (position_move_y, pos12, ":forward"),
                            # (try_end),
                        (try_end),
                        # BY TARGET POS
                          # ATTACK
                        # (try_begin),
                            # (eq, ":source_attack_dir", 0), #down
                            # (position_move_x, pos11, ":right"),
                       
                            # (try_begin),
                                # (store_random_in_range, ":dice_forward", 0, 10),
                                # (eq, ":dice_forward", 5),
                                # (position_move_y, pos11, ":forward"),
                            # (try_end),
                       
                        # (else_try),
                            # (eq, ":source_attack_dir", 1), #slashright
                            # (position_move_x, pos11, ":right"),
                       
                            # (try_begin),
                                # (store_random_in_range, ":dice_forward", 0, 10),
                                # (eq, ":dice_forward", 5),
                                # (position_move_y, pos11, ":forward"),
                            # (try_end),
                            # (position_move_y, pos11, ":up_down"),
                       
                        # (else_try),
                            # (eq, ":source_attack_dir", 2), #slashleft
                            # (position_move_x, pos11, ":left"),
                       
                            # (try_begin),
                                # (store_random_in_range, ":dice_forward", 0, 10),
                                # (eq, ":dice_forward", 5),
                                # (position_move_y, pos11, ":forward"),
                            # (try_end),
                            # (position_move_y, pos11, ":up_down"),
                       
                        # (else_try),
                            # (eq, ":source_attack_dir", 3), #overswing
                            # (position_move_x, pos11, ":left"),
                       
                            # (try_begin),
                                # (store_random_in_range, ":dice_forward", 0, 10),
                                # (eq, ":dice_forward", 5),
                                # (position_move_y, pos11, ":forward"),
                            # (try_end),
                            # (position_move_y, pos11, ":forward"),
                        # (try_end),
                        # (display_message, "@I have no shield."),
                    (try_end),
                    # (try_begin),
                        # (troop_slot_ge, ":troop_no", this_guy_only_s, 1),
                        # (agent_set_scripted_destination, ":agents", pos13, 0, 1),
                    # (else_try),
                        # (agent_set_speed_modifier, ":agents", 100),
                        # (agent_clear_scripted_mode, ":agents"),
                        (try_begin),
                            # (store_random_in_range, ":move_by_player", 0, 2),
                            # (try_begin),
                                # (eq, ":move_by_player", 0),
                                (agent_set_scripted_destination, ":agents", pos12, 0, 1),
                            # (else_try),
                                # (agent_set_scripted_destination, ":agents", pos11, 0, 1),
                            # (try_end),
                        (try_end),
               
                (try_end),
            (try_end),
       
            # Move agent back after completing a release
            # (try_begin),
                # (this_or_next|eq, ":source_attack_action", 6),
                # (eq, ":source_attack_action", 3),
                # (position_move_y, pos12, -600),
                # (agent_set_scripted_destination, ":agents", pos12, 0, 1),
            # (try_end),
            # make footwork inverse for allowed players
       
            # Target Switching
       
       
            # Make head of the source move up and down when is attacking
            # (try_begin),
           
                # (store_random_in_range, ":look", 0, 2),
                # (try_begin),
                    # (eq, ":look", 0),
                    # (agent_set_look_target_position, ":agents", pos55),
                    # # (display_message, "@look at foot"),
                # (else_try),
                     # (agent_set_look_target_position, ":agents", pos56),
                     # # (display_message, "@look at head"),
                 # (try_end),
            # (try_end),
       
            # Cavalry
            # Bump-lance
       
            # Archers
            # Leg shot
       
            # AI kick
            # (try_begin),
                # (neq, ":source_animation", "anim_prepare_kick_0"),
                # (store_random_in_range, ":dice_kick", 0, 100),
                # (eq, ":dice_kick", 50),
                # (le, ":dist", 80),
                # (eq, ":timer", 30),
                # (agent_set_attack_action, ":agents", -2, -2),
                # (agent_set_attack_action, ":target", -2, -2),
                # (agent_set_defend_action, ":agents", -2, -2),
                # (agent_set_defend_action, ":target", -2, -2),
                # (agent_set_animation, ":agents", "anim_prepare_kick_0"),
                # (agent_deliver_damage_to_agent, ":agents", ":target", 3),
                # (agent_set_animation, ":target", -1),
                # (agent_set_animation, ":target", "anim_strike3_abdomen_front"), # Get Kicked
                # (store_random_in_range, ":random_dir", 0, 3), # store direction
                # (agent_set_attack_action, ":agents", ":random_dir", 0), # attack
                # (display_message, "@Agent kicks."),
            # (try_end),
            # AI kicks over jumps
            (try_begin),
                (le, ":dist", 200),
                (eq, ":target_animation", "anim_prepare_kick_0"),
                (agent_set_attack_action, ":agents", -2, -2),
                (agent_set_attack_action, ":target", -2, -2),
                (agent_set_defend_action, ":agents", -2, -2),
                (agent_set_defend_action, ":target", -2, -2),
                (agent_set_animation, ":agents", "anim_jump"),
                (display_message, "@Agent avoids kicks."),
            (try_end),
       
       
    
       
            #Blocking
            (try_begin),
                # (agent_slot_ge, ":agents", run_block, 1),
                # (try_begin),
                    # (troop_slot_ge, ":troop_no", this_guy_only_blocks, 1),
                # (else_try),
                    # (this_or_next|eq, ":pos_atk", 3), # completing attack after hit
                # (assign, ":continue", 0),
                # (try_begin),
                    # (agent_slot_eq, ":agents", play_passive, 1),
                    # (assign, ":continue", 1),
                # (else_try),
                    # (agent_slot_eq, ":agents", play_passive, 0),
                    # (store_random_in_range, ":dice_block", 0, 15),
                    # (try_begin),
                        # (eq, ":dice_block", 12),
                        (eq, ":pos_atk", 2), # releasing attack
                    # (else_try),
                        # (eq, ":pos_atk", 2), # readying attack
                    # (try_end),
                    # (eq, ":pos_def", 0),
                    # (assign, ":continue", 1),
                # (try_end),
                # (eq, ":continue", 1),
           
                 (le, ":dist", 400), # close enough
                    # (le, ":decision", 4), # decision made
                # (try_end),
                (agent_force_rethink, ":agents"),
                #(store_random_in_range, ":random_chance", 1, 150),
                (try_begin),
                    (eq, ":pos_atkdir", 0),
                    (agent_set_defend_action, ":agents", 0, 0),
                (else_try),
                    (eq, ":pos_atkdir", 1),
                    (agent_set_defend_action, ":agents", 1, 0),
                (else_try),
                    (eq, ":pos_atkdir", 2),
                    (agent_set_defend_action, ":agents", 2, 0),
                (else_try),
                    (eq, ":pos_atkdir", 3),
                    (agent_set_defend_action, ":agents", 3, 0),
                (try_end),
            (try_end),
        (try_end),
     
     
        ])


    This is needed for this to work with orders.

    Code:
    ai_order = (
    ti_on_order_issued, 0, 0, [],
    [
        (store_trigger_param_1, ":order"),
     
        # Run AI only when order is charge
        (try_begin),
            (eq, ":order", mordr_charge),
            (assign, "$advanced_ai_open", 1),
            (display_message, "@On"),
        (else_try),
            (assign, "$advanced_ai_open", 0),
            (display_message, "@Off"),
        (try_end),
     
        # Restart the AI or default AI
        (try_for_agents, ":agents"),
            (agent_is_human, ":agents"),
            (agent_is_alive, ":agents"),
            (agent_clear_scripted_mode, ":agents"),
            (agent_force_rethink, ":agents"),
        (try_end),
    
    ])

    Hope you like it!

    Thanks for this. Awesome
  7. BladeofWar's

    [WB][SP]BannerWar V2

    Yeni modellerden sadece bir kaçı;
    Adsz-2.jpg

    unknown.png

    Adsz-1.jpg
  8. BladeofWar's

    [WB] Oyuna Yoldaş Eklemek

    Merhaba , oyuna Morgh's üzerinden bir karakter ekledim ve ben bu karakteri mesela drihim hanına veye Tulga hanında bi yere koymak istiyorum nasıl yapabilirim ?
    module system kullanmalısın
  9. BladeofWar's

    [WB][SP]BannerWar V2

    Mod çıkacak ama mp olurmu bilmiyorum İbrahim Pasha ile konuşmam lazım sunucu için
    Bu modu çıkartabilir ve online hale getirebilirsen gerçekten çok hoş olur
  10. BladeofWar's

    [WB]Modül Sistem Platformu [Krallık ekleme dersi yenilendi!]

    bende factions renk kodu gözükmüyor onun yerine mb warband editorden renk değiştirdim birşey olurmu?
    Morghs editorden yaptığın değişiklikler module systemde ki bat dosyasını çalıştırınca gider.
  11. BladeofWar's

    [WB][SP]BannerWar V2

    warband bannerWar v2 modu ne zaman hızmete sunulcak arkadaşalr bilgisi olan varmı
    Ceyxiong'un da dediği gibi herhangi bir aksilik olmazsa eğer Temmuz 2021 gibi çıkabilir.

    Bu süreye kadar sizleri habersiz bırakmayacağız tabiki, developer blog kuşatma savaş sahnesi vs.. gibi videolar göndereceğiz. Takipte kalın!
  12. BladeofWar's

    İlkbahar Lakırtısı

    neden profil fotoğraflarımız ve isimlerimiz çizgi film karakteri oluyor? bilen var mı
    bari güzel bir barbie bebek resmi koysaydınız bana :smile:
  13. BladeofWar's

    Bir mod isteğim var, duruma göre Taleworlds'te yapabilir!

    Ben mod yapmayı bilmem anlamam ve bu biraz kişisel bir istek olarak algılanabilir ama oyunda olmasını istediğim bir özellik var. Eskiden Gta San Andreas'ta radyoda user files seçeneği ile arabadayken kendi yüklediğimiz şarkıları oyunda dinleyebilirdik. Buna benzer bir sistemin Bannerlord'da da olmasını şu anda ciddi anlamda arzuluyorum. Biliyorsunuz Oyunda yoğunca bir savaş temposuna girebiliyoruz ve sürekli aynı şarkıları dinlemek bazen bıktırabiliyor. Yanlış Anlaşılma olmasın Taleworlds müzik işinde gerçekten harika bir işe imza atmış her birini severek dinliyorum ama oyunu gün içinde 4 saat oynadıktan sonra aynı şarkıları dinlemek yorucu geliyor. Bir mod olsa kendi yüklediğim şarkıları savaş veya sefer haritası üzerinde dinleyebilsem hatta bu şarkıları kategorize edebilsem (örneğin Batanya ile savaşıyorsam yüklediğim Kelt müziği, Kuzait ile savaşıyorsam yüklediğim gırtlak müziği çalsa) benim için deneyim başka bir yere ulaşırdı. Böyle bir eklenti yapılabilir mi ya da ben kendim yapabilir miyim böyle bir şeyi eğer çok zor değilse? Ya da bunu gönüllülük esaslı birileri mod olarak yapar mı? Şimdiden İyi Forumlar...
    Selamlar, ben mod yapımcısıyım (warband için) bu dediğinizi kendi modumda yapmaya çalışacağım. Kendi müziğini ekleme ve savaş içinde çalma
    iyi forumlar...
  14. BladeofWar's

    Diplomasiyi ayarlama

    peki barış için nasıl bir kod ekleyeceğim
    ayrıca bu kodu module_triggers'ın en altına ekliyorum değil mi?
    üstte yazılan kod sürekli savaş halinde olmalarını sağlar (bir kere savaşta olmaları için 0.1 yerine ti_once yazarsın), module_triggers'da müsait bir yere ekleyebilirsin. barış içinde :
    Code:
    (ti_once, 0, 0.0, [],
      [
            (set_relation, "fac_kingdom_1", "fac_kingdom_2", 1),
            (set_relation, "fac_kingdom_2", "fac_kingdom_1", 1),
            ]),
    bu kodu ekleyebilirsin, koda assign ve eq operationları ile belli bir olay gerçekleşmişse barış yapmalarını sağlayabilirsin
  15. BladeofWar's

    Is there an Asset usage permit?

    Also, you can ask the creators of Warlord for permission to use their own works.

    I agree. Warband is fun to modify, but its time is over if one wants to create a project for it. The playerbase has greatly diminished recently, so not many people would get to see one's shiny new modification. It is better, in my opinion, to stick to existing projects which still attract players and enjoy moderate success despite the shrinking playerbase of Warband.

    Not many would go back to Warband with Bannerlord assets, because it would prove to be a step backwards into boredom after a decade of playing only the former game and its reincarnations/ different modules with the same mechanics core. But porting Bannerlord items to Warband is clearly executable in a way MadVader described. The appeal for such a modification might turn out to be scarce, as the nucleus of Warband playerbase that stay with said game cannot move on due to their gear which cannot handle Bannerlord. That being said, they might see no reason to buy Bannerlord only to have a game they cannot run for the sake of playing a mod with Bannerlord assets.

    A Moderator and a Community Manager pointed out to a principle of the company which had made both games. It stays true, because one cannot use Bannerlord assets in Warband. Reiterating my previous post, you may create the items from scratch and use Bannerlord assets as a point of reference, which are available to behold, but not to port to Warband.
    We are making armors from scratch
  16. BladeofWar's

    Is there an Asset usage permit?

    @BladeofWar's , just creating your assets on your own, it's less complicated for you than to achieve what MadVader is suggesting here.
    Yeah we are going to make bannerlord models from scratch, BTW sorry for two message i couldnt reply
  17. BladeofWar's

    Is there an Asset usage permit?

    You can use Bannerlord models in Warband on your PC at home. You are just not allowed to give these Bannerlord models to others, it doesn't matter if they are converted or original versions.
    To be technically legal, you need to make a conversion program that will convert and transfer the assets on the player's PC, as part of your mod installation. It is legal because these are player's assets that the player bought with his copy of Bannerlord and is now using your conversion program to put them somewhere else on his PC.
    Taleworlds' legal concern is that you may be giving Bannerlord models to people who don't own Bannerlord, that's why your players must own Bannerlord.
    I do not understand now, it says bannerlord models cannot be used in Comm.Manager and moderator warband models, it says you need to do it from scratch (Dejan, Earendil), but you say it is available
  18. BladeofWar's

    Is there an Asset usage permit?

    You would be better off creating a Warband-themed armory for Bannerlord. At this time it's pointless to mod Warband as barely anyone would see your armors.
    Using Warband armors in Bannerlord is also forbidden, and ugly too, so you only take the inspiration from Warband.
    You could then go on to create a full conversion Bannerlord mod that recreates Warband with the glorious new engine.

    If you insist on making a Warband mod with Bannerlord assets, it's possible to do this in a technically legal way. You simply don't ship any Bannerlord assets with your mod, but instruct the players (who should own Bannerlord for this to work) how to transfer the Bannerlord assets to your Warband mod folders themselves.
    Dejan said "you are not use bannerlord models in warband how is it legal?, if it is legal we can convert A-Pose -> T-Pose and High poly -> Low poly
  19. BladeofWar's

    Is there an Asset usage permit?

    Thanks to all, we are going to continue make armors from scratch
Back
Top Bottom