SP Tutorial Module System Creating a dungeon! (Script)

Users who are viewing this thread

Korcow

Recruit
Hello Guys! Today I Create Bandit's Dungeon.
It's made of Scene,Entry points,Scripts.

How can we get there make?

First. module_scenes
  ("bandit",sf_generate,"none", "none", (0,0),(100,100),-100,"0x00000000b00562e200040900000063f40000679f00006cda",
    [],[],"sea_outer_terrain_1"),
Pasting it

Second. module_game_menus
    (
        "bandit",0,
        "You arrive at a Bandit Camp...",
        "none",
        [
            ],
        [
            ("enter",[],"Approach.",
            [ 
                  (set_jump_mission,"mt_bandit"),
      (modify_visitors_at_site,"scn_bandit"),
                  (reset_visitors),
      (shuffle_range,0,4),
      (set_visitor,1,"trp_bandit"),
      (set_visitor,2,"trp_bandit"),
      (set_visitor,3,"trp_bandit"),
      (set_visitor,4,"trp_bandit"),
  (set_visitor,5,"trp_bandit"),
  (set_visitor,6,"trp_bandit"),
  (set_visitor,7,"trp_bandit"),
  (set_visitor,8,"trp_bandit"),
  (set_visitor,9,"trp_bandit"),
  (set_visitor,10,"trp_bandit"),
  (set_visitor,11,"trp_looter"),
  (set_visitor,12,"trp_looter"),
  (set_visitor,13,"trp_looter"),
  (set_visitor,14,"trp_looter"),
  (set_visitor,15,"trp_looter"),
  (set_visitor,16,"trp_looter"),
  (set_visitor,17,"trp_looter"),
  (set_visitor,18,"trp_looter"),
  (set_visitor,19,"trp_looter"),
  (set_visitor,20,"trp_looter"),
      (set_visitor,21,"trp_looter"),
      (set_visitor,22,"trp_looter"),
      (set_visitor,23,"trp_looter"),
      (set_visitor,24,"trp_looter"),
  (set_visitor,25,"trp_looter"),
  (set_visitor,26,"trp_looter"),
  (set_visitor,27,"trp_looter"),
  (set_visitor,28,"trp_looter"),
  (set_visitor,29,"trp_looter"),
  (set_visitor,30,"trp_looter"),
  (set_visitor,31,"trp_looter"),
  (set_visitor,32,"trp_looter"),
  (set_visitor,33,"trp_looter"),
  (set_visitor,34,"trp_looter"),
  (set_visitor,35,"trp_looter"),
  (set_visitor,36,"trp_looter"),
  (set_visitor,37,"trp_looter"),
  (set_visitor,38,"trp_looter"),
  (set_visitor,39,"trp_looter"),
  (set_visitor,40,"trp_looter"),
      (set_jump_entry, 0),
  (scene_set_slot, "scn_bandit", slot_scene_visited, 1),

                (jump_to_scene,"scn_bandit"),
              (change_screen_mission),
              ]),
                ("leave",[],"Leave...",
      [(change_screen_map),
        ]),
    ],
  ),
By pasting it on the last line
Third. Module_scripts
Find the           
(eq, "$g_encountered_party", "p_test_scene"),
          (jump_to_menu, "mnu_test_scene"),
        (else_try),
and Pasted below it         
(eq, "$g_encountered_party", "p_bandit"),
          (jump_to_menu, "mnu_bandit"),
      (else_try),
Fourth. mission_template
  (
    "bandit",0,-1,
    "dungeon",
    [(0,mtef_scene_source|mtef_team_0,af_override_horse,0,1,[]),# 0is our team 1is netural 2is enemies
    (1,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(2,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(3,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(4,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
    (5,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(6,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(7,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
    (8,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(9,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(10,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(11,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(12,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(13,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(14,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(15,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(16,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(17,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(18,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(19,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(20,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
    (21,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(22,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(23,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(24,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
    (25,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(26,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(27,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
    (28,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(29,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(30,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(31,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(32,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(33,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(34,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(35,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(36,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(37,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(38,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(39,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(40,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
(41,mtef_visitor_source|mtef_team_2,af_override_horse,0,1,[]),
    ],
    [
 
##      (ti_on_agent_spawn, 0, 0, [],
##      [ (store_trigger_param_1, ":agent_no"),
## (agent_get_troop_id,":troop_id",":agent_no"),
## (try_begin),
## (is_between,":troop_id",dungeon_prisoners_begin,dungeon_prisoners_end),
## (agent_set_slot,":agent_no",slot_agent_tournament_point,0),#using slot to store if agent has been talked to or not in dialogs.py
## (try_end),
##        ]),

      (ti_before_mission_start, 0, 0, [],
      [
(assign,"$g_battle_result",0),
(team_set_relation, 0, 2, -1), # -1 for enemy, 1 for friend, 0 for neutral
(team_set_relation,1,2,0),
(team_set_relation,0,1,0),
        ]),

(0, 0, ti_once,
[
(assign, "$defender_team_2", 2),
], []
),

(0, 0, ti_once,
[
(set_show_messages, 0),
(team_give_order, "$defender_team_2", grc_infantry, mordr_stand_ground),
(team_give_order, "$defender_team_2", grc_archers, mordr_stand_ground),
(team_give_order, "$defender_team_2", grc_cavalry, mordr_stand_ground),
(set_show_messages, 1),
], []
),

                        (0.1, 0, ti_once, [
            (store_skill_level,":player_sneaking_skill","skl_athletics","trp_player"),

                     
                      (try_begin),
                      (eq,":player_sneaking_skill",10),
                (assign,":sneak_distance",200),
            (else_try),
                (eq,":player_sneaking_skill",9),
                (assign,":sneak_distance",400),
            (else_try),
                (eq,":player_sneaking_skill",:cool:,
                (assign,":sneak_distance",500),
            (else_try),
                (eq,":player_sneaking_skill",7),
                (assign,":sneak_distance",600),
            (else_try),
                (eq,":player_sneaking_skill",6),
                (assign,":sneak_distance",700),
            (else_try),
                (eq,":player_sneaking_skill",5),
                (assign,":sneak_distance",800),
            (else_try),
                (eq,":player_sneaking_skill",4),
                (assign,":sneak_distance",900),
            (else_try),
                (eq,":player_sneaking_skill",3),
                (assign,":sneak_distance",1000),
            (else_try),
                (eq,":player_sneaking_skill",2),
                (assign,":sneak_distance",1100),
            (else_try),
                (eq,":player_sneaking_skill",1),
                (assign,":sneak_distance",1200),
            (else_try),
                (assign,":sneak_distance",1500),
          (try_end),
        (get_player_agent_no,":player_agent"),
(agent_get_position,pos1,":player_agent"),
(assign,":continue",0),
(try_for_agents, ":cur_agent"),
(agent_get_troop_id, ":cur_agent_troop", ":cur_agent"),
(this_or_next|eq, ":cur_agent_troop", "trp_bandit"),
(this_or_next|eq, ":cur_agent_troop", "trp_looter"),
(eq, ":cur_agent_troop", "trp_manhunter"),
(agent_get_position,pos2,":cur_agent"),
(get_distance_between_positions,":distance",pos1,pos2),
(lt,":distance",":sneak_distance"),
(assign,":continue",1),
(try_end),
(eq,":continue",1),
            ],
          [(set_party_battle_mode),
            (try_for_agents, ":cur_agent"),
              (agent_get_troop_id, ":cur_agent_troop", ":cur_agent"),
              (eq, ":cur_agent_troop", "trp_bandit"),
              (agent_set_team, ":cur_agent", 2),
            (try_end),
            ]),



#TEMPERED    CHECK FOR VICTORY OVER GUARDS
  ( 1, 1, ti_once,
  [
(num_active_teams_le, 2),
(neg|main_hero_fallen),
    ],
        [
(assign, "$g_battle_result", 1),
(assign,"$g_encountered_party",-1),
(display_message,"@ ****ing Bandits! Kill Them!"),
]),
#TEMPERED    CHECK FOR TAB PRESS
##      (ti_tab_pressed, 0, 0, [],
##   [
## (display_message,"@There is no turning back now!!"),
## ]),
      (ti_inventory_key_pressed, 0, 0, [(set_trigger_result,1)], []),
      (ti_tab_pressed, 0, 0, [(set_trigger_result,1)], []),
  ###


 

    ],
  ),
(By Brytenwalda)
and Last. Module Parties
  ("bandit", "Bandit Camp", icon_castle_a|pf_castle, no_menu, pt_none, fac_neutral, 0, ai_bhvr_hold, 0, (7.5,40.0), [], 260.0),
Attach the end it
###Screenshot and Build Scene Tutorial###
Build Module and go to in game
DYc1iOA.jpg

mJLE1UO.jpg

qWbLxUc.jpg

Build a Scene
Z5vH3uO.jpg

Place Entry points
kR8MXRE.jpg

Just Like it
Thanks for reading ^오^
 
Nice and simple and idiot-proof (important for me, in particular). Really helped me wrap my head around mission templates. Cheers! :smile:

ps: ****ing bandits
 
Back
Top Bottom