diff --git a/.gitignore b/.gitignore
index 33f381a..e6bb10e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,3 +6,4 @@
*.kdev4
*.ods#
.~lock*
+/docu
diff --git a/class/astar.nut b/class/astar.nut
new file mode 100644
index 0000000..ced738a
--- /dev/null
+++ b/class/astar.nut
@@ -0,0 +1,822 @@
+/** @file astar.nut
+ * @brief Classes to help with route-searching.
+ */
+
+/**
+ * @brief astar.nut
+ * Classes to help with route-searching.
+ * Based on the A* algorithm.
+ */
+
+/**
+ * Nodes for A*
+ */
+class astar_node extends coord3d
+{
+ previous = null // previous node
+ cost = -1 // cost to reach this node
+ dist = -1 // distance to target
+ constructor(c, p, co, d)
+ {
+ x = c.x
+ y = c.y
+ z = c.z
+ previous = p
+ cost = co
+ dist = d
+ }
+ function is_straight_move(d)
+ {
+ return d == dir || (previous && previous.dir == d)
+ }
+}
+
+/**
+ * Class to perform A* searches.
+ *
+ * Derived classes have to implement:
+ * process_node(node): add nodes to open list reachable by node
+ *
+ * To use this:
+ * 1) call prepare_search
+ * 2) add tiles to target array
+ * 3) call compute_bounding_box
+ * 4) add start tiles to open list
+ * 5) call search()
+ * 6) use route
+ */
+class astar
+{
+ closed_list = null // table
+ nodes = null // array of astar_node
+ heap = null // binary heap
+ targets = null // array of coord3d's
+
+ boundingbox = null // box containing all the targets
+
+ route = null // route, reversed: target to start
+
+ // statistics
+ calls_open = 0
+ calls_closed = 0
+ calls_pop = 0
+
+ // costs - can be fine-tuned
+ cost_straight = 10
+ cost_curve = 14
+
+ constructor()
+ {
+ closed_list = {}
+ heap = simple_heap_x()
+ targets = []
+
+ }
+
+ function prepare_search()
+ {
+ closed_list = {}
+ nodes = []
+ route = []
+ heap.clear()
+ targets = []
+ calls_open = 0
+ calls_closed = 0
+ calls_pop = 0
+ }
+
+ // adds node c to closed list
+ function add_to_close(c)
+ {
+ closed_list[ coord3d_to_key(c) ] <- 1
+ calls_closed++
+ }
+
+ function test_and_close(c)
+ {
+ local key = coord3d_to_key(c)
+ if (key in closed_list) {
+ return false
+ }
+ else {
+ closed_list[ key ] <- 1
+ calls_closed++
+ return true
+ }
+ }
+
+ function is_closed(c)
+ {
+ local key = coord3d_to_key(c)
+ return (key in closed_list)
+ }
+
+ // add node c to open list with give weight
+ function add_to_open(c, weight)
+ {
+ local i = nodes.len()
+ nodes.append(c)
+ heap.insert(weight, i)
+ calls_open++
+ }
+
+ function search()
+ {
+ // compute bounding box of targets
+ compute_bounding_box()
+
+ local current_node = null
+ while (!heap.is_empty()) {
+ calls_pop++
+
+ local wi = heap.pop()
+ current_node = nodes[wi.value]
+ local dist = current_node.dist
+
+ // target reached
+ if (dist == 0) break;
+ // already visited previously
+ if (!test_and_close(current_node)) {
+ current_node = null
+ continue;
+ }
+ // investigate neighbours and put them into open list
+ process_node(current_node)
+
+ if ( current_node != null ) {
+ check_way_last_tile = current_node
+ }
+
+ current_node = null
+ }
+
+ route = []
+ if (current_node) {
+ // found route
+ route.append(current_node)
+
+ while (current_node.previous) {
+ current_node = current_node.previous
+ route.append(current_node)
+ }
+ }
+
+ print("Calls: pop = " + calls_pop + ", open = " + calls_open + ", close = " + calls_closed)
+ }
+
+ /**
+ * Computes bounding box of all targets to speed up distance computation.
+ */
+ function compute_bounding_box()
+ {
+ if (targets.len()>0) {
+ local first = targets[0]
+ boundingbox = { xmin = first.x, xmax = first.x, ymin = first.y, ymax = first.y }
+
+ for(local i=1; i < targets.len(); i++) {
+ local t = targets[i]
+ if (boundingbox.xmin > t.x) boundingbox.xmin = t.x;
+ if (boundingbox.xmax < t.x) boundingbox.xmax = t.x;
+ if (boundingbox.ymin > t.y) boundingbox.ymin = t.y;
+ if (boundingbox.ymax < t.y) boundingbox.ymax = t.y;
+ }
+ }
+ }
+
+ /**
+ * Estimates distance to target.
+ * Returns zero if and only if c is a target tile.
+ */
+ function estimate_distance(c)
+ {
+ local d = 0
+ local curved = 0
+
+ // distance to bounding box
+ local dx = boundingbox.xmin - c.x
+ if (dx <= 0) dx = c.x - boundingbox.xmax;
+ if (dx > 0) d += dx; else dx = 0;
+
+ local dy = boundingbox.ymin - c.y
+ if (dy <= 0) dy = c.y - boundingbox.ymax
+ if (dy > 0) d += dy; else dy = 0;
+
+ if (d > 0) {
+ // cost to bounding box
+ return cost_straight * d + (dx*dy > 0 ? cost_curve - cost_straight : 0);
+ }
+ else {
+ local t = targets[0]
+ d = abs(t.x-c.x) + abs(t.y-c.y)
+
+ // inside bounding box
+ for(local i=1; i < targets.len(); i++) {
+ local t = targets[i]
+ local dx = abs(t.x-c.x)
+ local dy = abs(t.y-c.y)
+ d = min(d, cost_straight * (dx+dy) + (dx*dy > 0 ? cost_curve - cost_straight : 0))
+ }
+ }
+ return d
+ }
+}
+
+/**
+ * Class to search a route along existing ways.
+ */
+class astar_route_finder extends astar
+{
+ wt = wt_all
+
+ constructor(wt_)
+ {
+ base.constructor()
+ wt = wt_
+ if ( [wt_all, wt_invalid, wt_water, wt_air].find(wt) ) {
+ throw("Using this waytype is going to be inefficient. Use at own risk.")
+ }
+ cost_curve = cost_straight
+ }
+
+ function process_node(cnode)
+ {
+ local from = tile_x(cnode.x, cnode.y, cnode.z)
+ local back = dir.backward(cnode.dir)
+ // allowed directions
+ local dirs = from.get_way_dirs_masked(wt)
+
+ for(local d = 1; d<16; d*=2) {
+ // do not go backwards, only along existing ways
+ if ( d == back || ( (dirs & d) == 0) ) {
+ continue
+ }
+
+ local to = from.get_neighbour(wt, d)
+ if (to) {
+ if (!is_closed(to)) {
+ // estimate moving cost
+ local move = cnode.is_straight_move(d) ? cost_straight : cost_curve
+ local dist = estimate_distance(to)
+ local cost = cnode.cost + move
+ local weight = cost //+ dist
+ local node = ab_node(to, cnode, cost, dist, d)
+
+ add_to_open(node, weight)
+ }
+ }
+ }
+ }
+
+ // start and end have to be arrays of objects with 3d-coordinates
+ function search_route(start, end)
+ {
+ prepare_search()
+ foreach (e in end) {
+ targets.append(e);
+ }
+ compute_bounding_box()
+
+ foreach (s in start)
+ {
+ local dist = estimate_distance(s)
+ add_to_open(ab_node(s, null, 1, dist+1, 0, 0), dist+1)
+ }
+
+ search()
+
+ if (route.len() > 0) {
+ return { start = route[route.len()-1], end = route[0], routes = route }
+ }
+ print("No route found")
+ return { err = "No route" }
+ }
+}
+
+/**
+ * Class to search a route along existing ways.
+ */
+class astar_route_finder extends astar
+{
+ wt = wt_all
+
+ constructor(wt_)
+ {
+ base.constructor()
+ wt = wt_
+ if ( [wt_all, wt_invalid, wt_water, wt_air].find(wt) ) {
+ throw("Using this waytype is going to be inefficient. Use at own risk.")
+ }
+ cost_curve = cost_straight
+ }
+
+ function process_node(cnode)
+ {
+ local from = tile_x(cnode.x, cnode.y, cnode.z)
+ local back = dir.backward(cnode.dir)
+ // allowed directions
+ local dirs = from.get_way_dirs_masked(wt)
+
+ for(local d = 1; d<16; d*=2) {
+ // do not go backwards, only along existing ways
+ if ( d == back || ( (dirs & d) == 0) ) {
+ continue
+ }
+
+ local to = from.get_neighbour(wt, d)
+ if (to) {
+ if (!is_closed(to)) {
+ // estimate moving cost
+ local move = cnode.is_straight_move(d) ? cost_straight : cost_curve
+ local dist = estimate_distance(to)
+ local cost = cnode.cost + move
+ local weight = cost //+ dist
+ local node = ab_node(to, cnode, cost, dist, d)
+
+ add_to_open(node, weight)
+ }
+ }
+ }
+ }
+
+ // start and end have to be arrays of objects with 3d-coordinates
+ function search_route(start, end)
+ {
+ prepare_search()
+ foreach (e in end) {
+ targets.append(e);
+ }
+ compute_bounding_box()
+
+ foreach (s in start)
+ {
+ local dist = estimate_distance(s)
+ add_to_open(ab_node(s, null, 1, dist+1, 0, 0), dist+1)
+ }
+
+ search()
+
+ if (route.len() > 0) {
+ return { start = route.top(), end = route[0], routes = route }
+ }
+ print("No route found")
+ return { err = "No route" }
+ }
+}
+
+class ab_node extends ::astar_node
+{
+ dir = 0 // direction to reach this node
+ flag = 0 // flag internal to the route searcher
+ constructor(c, p, co, d, di, fl=0)
+ {
+ base.constructor(c, p, co, d)
+ dir = di
+ flag = fl
+ }
+}
+
+/**
+ * Helper class to find bridges and spots to place them.
+ */
+class pontifex
+{
+ player = null
+ bridge = null
+
+ constructor(pl, way)
+ {
+ // print messages box
+ // 1 = erreg
+ // 2 = list bridges
+ local print_message_box = 0
+ local wt_name = ["", "road", "rail", "water"]
+
+ if ( print_message_box > 1 ) {
+ gui.add_message_at("____________ Search bridge ___________", world.get_time())
+ }
+ player = pl
+ local list = bridge_desc_x.get_available_bridges(way.get_waytype())
+ local len = list.len()
+ local way_speed = way.get_topspeed()
+ local bridge_min_len = 5
+
+ if (len>0) {
+ bridge = list[0]
+ if ( print_message_box == 2 ) {
+ gui.add_message_at(" ***** way : " + wt_name[way.get_waytype()], world.get_time())
+ gui.add_message_at(" ***** bridge : " + bridge.get_name(), world.get_time())
+ gui.add_message_at(" ***** get_max_length : " + bridge.get_max_length(), world.get_time())
+ }
+
+ for(local i=1; i
Scenario: {short_description}
Scenario: {short_description}
{scr}
{txtst_01}Schritt A - Über das Tutorial-Szenario
{txtst_02}Schritt B - Sich bewegen
{txtst_03}Schritt C - Die Details sehen
{txtst_04}Schritt D - Die Minikarte und andere Fenster
{scr}
{txtst_01}Schritt A - Über das Tutorial-Szenario
{txtst_02}Schritt B - Sich bewegen
{txtst_03}Schritt C - Die Details sehen
{txtst_04}Schritt D - Die Minikarte und andere Fenster
In diesem ersten Schritt werden wir einige grundlegende Aspekte des Tutorial-Szenarios erläutern.
", translate("Stop"), j+1, link)
+ }
+ else{
+ local link = c.href(" ("+c.tostring()+")")
+ local stop_tx = translate("Build Stop here:")
+ list_tx += format("
", translate("Stop"), j+1, stop_tx, link)
+ }
+ }
+ return list_tx
+}
+
+function create_schedule_list(coord_list) {
+ local list_tx = ""
+ local c_list = coord_list
+ for (local j = 0; j < coord_list.len(); j++) {
+ local c = coord(c_list[j].x, c_list[j].y)
+ local tile = my_tile(c)
+ local st_halt = tile.get_halt()
+ if(sch_cov_correct){
+ list_tx += format("%s %d: %s %s
", translate("Stop"), j+1, st_halt.get_name(), translate("OK"))
+ continue
+ }
+ if(tmpsw[j]==0){
+ list_tx += format("
", translate("Stop"), j+1, c.href(st_halt.get_name()+" ("+c.tostring()+")"))
+ }
+ else{
+ list_tx += format("%s %d: %s %s
", translate("Stop"), j+1, st_halt.get_name(), translate("OK"))
+ }
+ }
+ return list_tx
+}
+
+/**
+ * calculate station lenght
+ *
+ * veh1 = loco
+ * veh2 = wg
+ * veh2c = wg count
+ *
+ */
+function calc_station_lenght(veh1, veh2, veh2c) {
+ local list = vehicle_desc_x.get_available_vehicles(wt_rail)
+ local cnv_lenght = 0
+ foreach(veh in list) {
+ if ( veh.get_name() == veh1 ) {
+ cnv_lenght += veh.get_length()
+ }
+ if ( veh.get_name() == veh2 ) {
+ cnv_lenght += (veh.get_length() * veh2c)
+ }
+ }
+ local st_count = 0
+ do {
+ cnv_lenght -= 16
+ st_count += 1
+ } while(cnv_lenght > 0)
+ return st_count
+}
+
+/**
+ * create array stations tiles
+ *
+ * tile_a = tile_x
+ * tile_b = tile_x
+ * count
+ *
+ */
+function station_tiles(tile_a, tile_b, count) {
+ local st_tiles = []
+ st_tiles.append(tile_x(tile_a.x, tile_a.y, tile_a.z))
+
+ for ( local i = 1; i < count; i++ ) {
+ if ( tile_a.x > tile_b.x ) {
+ st_tiles.append(tile_x(tile_a.x-i, tile_a.y, tile_a.z))
+ }
+ if ( tile_a.x < tile_b.x ) {
+ st_tiles.append(tile_x(tile_a.x+i, tile_a.y, tile_a.z))
+ }
+ if ( tile_a.y > tile_b.y ) {
+ st_tiles.append(tile_x(tile_a.x, tile_a.y-i, tile_a.z))
+ }
+ if ( tile_a.y < tile_b.y ) {
+ st_tiles.append(tile_x(tile_a.x, tile_a.y+i, tile_a.z))
+ }
+ //gui.add_message("st_tiles "+st_tiles[i]+" - "+ i)
+ }
+
+ return st_tiles
+}
+
+/**
+ * check rail platform
+ *
+ * @param tile = tile_x halt pos
+ * @param rtype = 0 - check pos in platform
+ * 1 - return array platform
+ * @param pos = tile to click
+ *
+ *
+ * @return true (rtype = 0) or tiles_x array (rtype = 1)
+ */
+function check_rail_station(tile, rtype, pos = null) {
+ local halt_tiles = tile.get_halt().get_tile_list()
+ local d = tile.get_way_dirs(wt_rail)
+
+ local check_x = null
+ local check_y = null
+
+ local pl_tiles = []
+
+ if ( d == 1 || d == 4 || d == 5 ) {
+ // NS
+ check_x = tile.x
+ } else if ( d == 2 || d == 8 || d == 10 ) {
+ // EW
+ check_y = tile.y
+ }
+
+ for ( local i = 0; i < halt_tiles.len(); i++ ) {
+ if ( ( halt_tiles[i].x == check_x || halt_tiles[i].y == check_y ) ) {
+ pl_tiles.append(halt_tiles[i])
+ if ( rtype == 0 && halt_tiles[i].x == pos.x && halt_tiles[i].y == pos.y ) {
+ return true
+ }
+ }
+ }
+
+ if ( pl_tiles.len() > 0 && rtype == 1 ) {
+ return pl_tiles
+ }
+
+}
+
+/**
+ * test tile is empty
+ * removed objects for empty tiles: tree, ground_object, moving_object
+ *
+ * @param t_tile = tile_x
+ *
+ * @return true or false
+ *
+ */
+function test_tile_is_empty(t_tile) {
+ local tile = tile_x(t_tile.x, t_tile.y, t_tile.z)
+
+ local tile_tree = tile.find_object(mo_tree)
+ local tile_groundobj = tile.find_object(mo_groundobj)
+ local tile_moving_object = tile.find_object(mo_moving_object)
+
+ //gui.add_message(" ---=> test_tile " + coord3d_to_string(tile) + " | is_empty " + tile.is_empty() + " | tile_tree " + tile_tree + " | tile_groundobj " + tile_groundobj + " | tile_moving_object " + tile_moving_object)
+
+ if ( tile_tree != null || tile_groundobj != null || tile_moving_object != null ) {
+ local tool = command_x(tool_remover)
+ tool.work(player_x(1), tile, "")
+
+ return true
+ } else if ( tile.is_empty() ) {
+ return true
+ }
+
+ return false
+}
+
+/**
+ * check tile in tile array
+ *
+ * @param tiles = tile array
+ * @param coord = tile as coord
+ *
+ */
+function search_tile_in_tiles(tiles, coord) {
+
+ for ( local i = 0; i < tiles.len(); i++ ) {
+ if ( tiles[i].x == coord.x && tiles[i].y == coord.y ) {
+ return true
+ }
+ }
+
+ return false
+}
+
+/**
+ * check stations enables post / enables pax and post
+ * search free tile for post extension
+ * search road tile for post halt
+ * replace pass halt -> pass/post halt (not tested)
+ *
+ * @param halt_list = array[tiles_x, tile_x, .... ]
+ *
+ * @return array[ {a = build_tile, b = code}, .... ]
+ * code = 0 - build mail extension
+ * code = 1 - build mail halt
+ * code = 2 - replace pass halt to pass/mail halt (not tested)
+ * code = 3 - remove city building (not implemented)
+ *
+ */
+function check_post_extension(halt_list) {
+
+ local stations_list_mail = building_desc_x.get_available_stations(building_desc_x.station, wt_road, good_desc_x("Post"))
+ local build_list = []
+
+ local station_mail = null // halt accepts mail
+ local station_passmail = null // halt accepts passenger and mail
+ // search available halts
+ if ( stations_list_mail.len() > 0 ) {
+ for ( local i = 0; i < stations_list_mail.len(); i++ ) {
+ if ( stations_list_mail[i].enables_pax() && station_passmail == null ) {
+ station_passmail = stations_list_mail[i]
+ } else if ( station_mail == null ) {
+ station_mail = stations_list_mail[i]
+ }
+ }
+ }
+
+ if ( station_mail == null && station_passmail != null) {
+ station_mail = station_passmail
+ }
+
+
+ if ( station_passmail != null ) { gui.add_message("station_passmail " + station_passmail.get_name()) }
+ if ( station_mail != null ) { gui.add_message("station_mail " + station_mail.get_name()) }
+
+ for ( local i = 0; i < halt_list.len(); i++ ) {
+ local tiles = find_tiles_after_tile(my_tile(halt_list[i]))
+
+ local code_0 = null
+ local code_1 = null
+ local code_2 = null
+ local code_2_level = null
+ local code_3 = null
+
+ local b_types = ["city_res", "city_com", "city_ind"]
+
+ // check road direction
+ local halt_dir = my_tile(halt_list[i]).get_way_dirs(wt_road)
+
+ for ( local j = 0; j < tiles.len(); j++ ) {
+ if ( test_tile_is_empty(tiles[j]) ) {
+ local tile_ok = true
+ // not build end of road
+ if ( dir.is_single(halt_dir) ) {
+ if ( (halt_dir == 1 || halt_dir == 4) && halt_list[i].x == tiles[j].x ) {
+ tile_ok = false
+ }
+ if ( (halt_dir == 2 || halt_dir == 8) && halt_list[i].y == tiles[j].y ) {
+ tile_ok = false
+ }
+ }
+
+ // empty tile build mail extension
+ if ( tile_ok ) {
+ code_0 = { a = tiles[j], b = 0 }
+ break
+ }
+ }
+
+ if ( tiles[j].get_slope() == 0 && tiles[j].get_way(wt_road) != null && station_mail != null ) {
+ // tile has road and mail halt available
+ local w_dir = tiles[j].get_way_dirs(wt_road)
+ if ( dir.is_single(w_dir) || dir.is_straight(w_dir) ) {
+ code_1 = { a = tiles[j], b = 1 }
+ }
+ }
+
+ // replace pass halt to pass/mail halt
+ local tile_building = tiles[j].find_object(mo_building)
+ if ( tile_building != null ) {
+ local b_desc = tile_building.get_desc()
+ if ( b_types.find(b_desc.get_type()) ) {
+ if ( code_2 == null ) {
+ code_2 = { a = tiles[j], b = 2 }
+ code_2_level = tile_building.get_passenger_level()
+ } else if ( code_2_level < tile_building.get_passenger_level() ) {
+ code_2 = { a = tiles[j], b = 2 }
+ code_2_level = tile_building.get_passenger_level()
+ }
+
+ }
+ }
+ }
+
+ if ( code_0 != null ) {
+ build_list.append(code_0)
+ } else if ( code_1 != null ) {
+ build_list.append(code_1)
+ } else if ( code_2 != null ) {
+ build_list.append(code_2)
+ }
+
+ //if ( code_2 != null ) { gui.add_message("code_2 " + coord3d_to_string(code_2.a) ) }
+ }
+
+ for ( local i = 0; i < build_list.len(); i++ ) {
+ //gui.add_message("build_list[" + i + "] " + coord3d_to_string(build_list[i].a) + " code " + build_list[i].b )
+ //if ( build_list[i].b == 0 ) {
+ extensions_tiles.append({a = coord(build_list[i].a.x, build_list[i].a.y), b = build_list[i].b})
+ //}
+ }
+
+}
+
+/**
+ * @fn find_tiles_after_tile(tile)
+ *
+ * @param tile = tile_x
+ *
+ * @return tile_x array
+ * array[N, S, E, W, NE, SE, NW, SW]
+ */
+function find_tiles_after_tile(tile) {
+ local t_array = []
+
+ t_array.append( tile_x(tile.x, tile.y-1, tile.z) )
+ t_array.append( tile_x(tile.x, tile.y+1, tile.z) )
+ t_array.append( tile_x(tile.x+1, tile.y, tile.z) )
+ t_array.append( tile_x(tile.x-1, tile.y, tile.z) )
+ t_array.append( tile_x(tile.x+1, tile.y-1, tile.z) )
+ t_array.append( tile_x(tile.x+1, tile.y+1, tile.z) )
+ t_array.append( tile_x(tile.x-1, tile.y-1, tile.z) )
+ t_array.append( tile_x(tile.x-1, tile.y+1, tile.z) )
+
+ return t_array
+}
+
+
+/**
+ * find object tool
+ *
+ * @param obj = object type ( bridge, tunnel, way, catenary, station, extension, depot )
+ * @param wt = waytype
+ * @param speed = speed - null by station, extension, depot
+ * @param good = good
+ *
+ * @return object
+ */
+function find_object(obj, wt, speed = null, good = null) {
+
+ local list = []
+ switch ( obj ) {
+ case "bridge":
+ list = bridge_desc_x.get_available_bridges(wt)
+ break
+ case "tunnel":
+ list = tunnel_desc_x.get_available_tunnels(wt)
+ break
+ case "way":
+ list = way_desc_x.get_available_ways(wt, st_flat)
+ break
+ case "catenary":
+ local li = wayobj_desc_x.get_available_wayobjs(wt)
+ for (local j=0; j
+ * 1 hour = 88
+ *
+ * @param id
+ * @li id 1 - chapter 2 step 4 : bus city Pollingwick
+ * @li id 2 - chapter 2 step 6 : bus Pollingwick - Dock
+ * @li id 3 - chapter 2 step 7 : bus Pollingwick - Malliby
+ * @li id 4 - chapter 3 step 11 : city train
+ * @li id 5 - chapter 4 step 7 : good ship produser -> consumer
+ * @li id 6 - chapter 5 step 4 : road mail
+ * @li id 7 - chapter 5 step 4 : ship oil rig
+ * @li id 8 - chapter 6 step 2 : air city 1 - city 7
+ * @li id 9 - chapter 6 step 3 : bus city 1 - Airport
+ * @li id 10 - chapter 6 step 4 : bus city 7 - Airport
+ *
+ * @return integer waiting time
+ */
function set_waiting_time(id) {
switch (pak_name) {
@@ -1022,11 +1259,32 @@ function set_waiting_time(id) {
return 10571
break
case 2:
- return 10571
+ return 6343
break
case 3:
return 10571
break
+ case 4:
+ return 25369
+ break
+ case 5:
+ return 42282
+ break
+ case 6:
+ return 6343
+ break
+ case 7:
+ return 42282
+ break
+ case 8:
+ return 42282
+ break
+ case 9:
+ return 10571
+ break
+ case 10:
+ return 4230
+ break
}
break
case "pak64.german":
@@ -1040,6 +1298,27 @@ function set_waiting_time(id) {
case 3:
return 2555
break
+ case 4:
+ return 2115
+ break
+ case 5:
+ return 42282
+ break
+ case 6:
+ return 10571
+ break
+ case 7:
+ return 42282
+ break
+ case 8:
+ return 42282
+ break
+ case 9:
+ return 10571
+ break
+ case 10:
+ return 4230
+ break
}
break
case "pak128":
@@ -1048,27 +1327,52 @@ function set_waiting_time(id) {
return 10571
break
case 2:
- return 10571
+ return 6345
break
case 3:
return 10571
break
+ case 4:
+ return 25369
+ break
+ case 5:
+ return 42282
+ break
+ case 6:
+ return 10571
+ break
+ case 7:
+ return 42282
+ break
+ case 8:
+ return 42282
+ break
+ case 9:
+ return 10571
+ break
+ case 10:
+ return 4230
+ break
}
break
}
}
-/*
- * goods def
- *
- * id = good id
- * select = define return data
- * 1 = translate metric
- * 2 = raw good name
- * 3 = translate good name
- *
- */
+/**
+ * good data
+ *
+ * @param integer id = good id
+ * @param integer select = define return data
+ * @li select 1 = translate metric
+ * @li select 2 = raw good name
+ * @li select 3 = translate good name
+ *
+ * @return
+ * @li integer good metric (select 1)
+ * @li string good raw name (select2)
+ * @li string good translated name (select=3)
+ */
function get_good_data(id, select = null) {
local good_n = null
@@ -1089,6 +1393,9 @@ function get_good_data(id, select = null) {
case 5:
good_n = "Kohle"
break
+ case 6:
+ good_n = "Post"
+ break
}
local obj = good_desc_x(good_n)
@@ -1115,16 +1422,16 @@ function get_good_data(id, select = null) {
return output
}
-/*
- * factory prod and good data for textfiles
- *
- * tile = tile_x factory
- * g_id = good name
- * read = "in" / "out"
- *
- * return array[base_production, base_consumption, factor]
- */
- function read_prod_data(tile, g_id, read = null) {
+/**
+ * factory prod and good data for textfiles
+ *
+ * @param coord tile = tile_x factory
+ * @param integer g_id = good name
+ * @param string read = "in" / "out"
+ *
+ * @return array array[base_production, base_consumption, factor]
+ */
+function read_prod_data(tile, g_id, read = null) {
// actual not read good data
local t = square_x(tile.x, tile.y).get_ground_tile()
@@ -1175,8 +1482,18 @@ function get_good_data(id, select = null) {
return output
- }
+}
+/**
+ * files for more infos
+ *
+ * @param txt_file
+ * txt_file = bridge - bridge build
+ * txt_file = tunnel - tunnel build
+ * txt_file = info - more infos for pakset
+ *
+ * @return ttextfile(file)
+ */
function get_info_file(txt_file) {
//ttextfile("info/build_bridge.txt")
@@ -1223,3 +1540,249 @@ function get_info_file(txt_file) {
}
}
+
+/**
+ * halt id for waiting time in the halt list
+ *
+ * @param integer id
+ * @li id 1 = city1_halt_1[id] - halts city 1
+ * @li id 2 = city1_halt_2[id] - halts connect city 1 dock and station
+ * @li id 3 = city2_halt_1[id] - halts connect city 2 to city 1
+ * @li id 4 = ch3_rail_stations - city line
+ * @li id 5 = ch4_ship3_halts - passenger ship
+ * @li id 6 = city1_city7_air - airplane
+ * @li id 7 = city1_halt_airport - bus airport - city 1
+ * @li id 8 = city7_halt - bus airport - city 7
+ * @li id 9 = city1_post_halts - road halts for post
+ * @li id 10 = ch5_post_ship_halts - post passenger dock - factory 4 (Oil rigg)
+ *
+ * @return integer id for halt list
+ */
+function get_waiting_halt(id) {
+
+ switch (pak_name) {
+ case "pak64":
+ switch (id) {
+ case 1:
+ return 2
+ break
+ case 2:
+ return 4
+ break
+ case 3:
+ return 2
+ break
+ case 4:
+ return 2
+ break
+ case 5:
+ return 0
+ break
+ case 6:
+ return 0
+ break
+ case 7:
+ return 0
+ break
+ case 8:
+ return 0
+ break
+ case 9:
+ return 7
+ break
+ case 10:
+ return 0
+ break
+ }
+ break
+ case "pak64.german":
+ switch (id) {
+ case 1:
+ return 2
+ break
+ case 2:
+ return 3
+ break
+ case 3:
+ return 2
+ break
+ case 4:
+ return 0
+ break
+ case 5:
+ return 0
+ break
+ case 6:
+ return 0
+ break
+ case 7:
+ return 0
+ break
+ case 8:
+ return 0
+ break
+ case 9:
+ return 0
+ break
+ case 10:
+ return 0
+ break
+ }
+ break
+ case "pak128":
+ switch (id) {
+ case 1:
+ return 2
+ break
+ case 2:
+ return 4
+ break
+ case 3:
+ return 2
+ break
+ case 4:
+ return 0
+ break
+ case 5:
+ return 0
+ break
+ case 6:
+ return 0
+ break
+ case 7:
+ return 0
+ break
+ case 8:
+ return 0
+ break
+ case 9:
+ return 0
+ break
+ case 10:
+ return 0
+ break
+ }
+ break
+ }
+
+}
+
+/**
+ * set icon code to text by different icons in paksets
+ *
+ * The folder info_files/img-tools contains a scenario for displaying the icons with their IDs.
+ *
+ * @param string id = icon code
+ * The icon code are documented in the file info_files/img-tools.ods.
+ *
+ *
+ * @return string image code for icons in text
+ */
+function get_gui_img(id) {
+
+ switch (pak_name) {
+ case "pak64":
+ switch (id) {
+ case "road_menu":
+ return ""
+ break
+ case "rail_menu":
+ return "
"
+ break
+ case "grid":
+ return "
"
+ break
+ case "display":
+ return "
"
+ break
+ case "post_menu":
+ return "
"
+ break
+ case "road_halts":
+ return "
"
+ break
+ case 7:
+ return 0
+ break
+ case 8:
+ return 0
+ break
+ case 9:
+ return 0
+ break
+ case 10:
+ return 0
+ break
+ }
+ break
+ case "pak64.german":
+ switch (id) {
+ case "road_menu":
+ return "
"
+ break
+ case "rail_menu":
+ return "
"
+ break
+ case "grid":
+ return "
"
+ break
+ case "display":
+ return "
"
+ break
+ case "post_menu":
+ return "
"
+ break
+ case "road_halts":
+ return "
"
+ break
+ case 7:
+ return 0
+ break
+ case 8:
+ return 0
+ break
+ case 9:
+ return 0
+ break
+ case 10:
+ return 0
+ break
+ }
+ break
+ case "pak128":
+ switch (id) {
+ case "road_menu":
+ return "
"
+ break
+ case "rail_menu":
+ return "
"
+ break
+ case "grid":
+ return "
"
+ break
+ case "display":
+ return "
"
+ break
+ case "post_menu":
+ return "
"
+ break
+ case "road_halts":
+ return "
"
+ break
+ case 7:
+ return 0
+ break
+ case 8:
+ return 0
+ break
+ case 9:
+ return 0
+ break
+ case 10:
+ return 0
+ break
+ }
+ break
+ }
+
+}
diff --git a/class/class_basic_gui.nut b/class/class_basic_gui.nut
index d7caaf3..11f18a2 100644
--- a/class/class_basic_gui.nut
+++ b/class/class_basic_gui.nut
@@ -1,8 +1,10 @@
-/*
- * tool id list see ../info_files/tool_id_list.ods
- *
- *
- */
+/** @file class_basic_gui.nut
+ * @brief defines toolbars and tools
+ *
+ * tool id list see ../info_files/tool_id_list.ods
+ *
+ *
+ */
// placeholder for some menus icon
switch (pak_name) {
@@ -20,11 +22,12 @@
break
}
-/*
- * general disabled not used menu and tools
- *
- */
-function general_disabled_tools( pl ) {
+/**
+ * @fn general_disabled_tools ( pl )
+ * general disabled not used menu and tools
+ *
+ */
+function general_disabled_tools ( pl ) {
// reset rules
rules.clear()
@@ -45,13 +48,19 @@ function general_disabled_tools( pl ) {
tool_increase_industry,
tool_merge_stop,
dialog_enlarge_map,
- tool_raise_land,
- tool_lower_land,
- tool_restoreslope,
- 4143, //generate script
+ 4143, //generate script
4144 //pipette
]
+ // chapter 7 all slope tools allowed
+ if ( persistent.chapter < 7 ) {
+ local slope_tools = [ tool_raise_land,
+ tool_lower_land,
+ tool_restoreslope
+ ]
+ unused_tools.extend(slope_tools)
+ }
+
local pak64_tools = [ 0x8004, 0x8005, 0x4022, tool_set_climate ]
local pak64german_tools = [ 0x800b, 0x800c, 0x800d, 0x8013, 0x8014, 0x8015, 0x8023, 0x8025, 0x8027, 0x8007, 0x8006 ]
local pak128_tools = [0x8004, 0x8005, 0x8006, 0x800a, 0x4022, tool_set_climate ]
@@ -75,14 +84,12 @@ function general_disabled_tools( pl ) {
chapter_disabled_tools( pl )
}
-/*
- * disabled tools for chapter
- *
- *
- *
- *
- */
-function chapter_disabled_tools( pl ) {
+/**
+ * @fn chapter_disabled_tools( pl )
+ * disabled tools for chapter
+ *
+ */
+function chapter_disabled_tools ( pl ) {
/*
persistent.chapter <- 1 // stores chapter number
persistent.step <- 1 // stores step number of chapter
@@ -249,7 +256,6 @@ function chapter_disabled_tools( pl ) {
tool_remove_way,
tool_remover,
tool_make_stop_public,
- tool_build_station,
tool_build_bridge,
tool_build_tunnel,
tool_build_depot,
@@ -406,14 +412,15 @@ function chapter_disabled_tools( pl ) {
}
-/*
- * enabled tools for chapter step
- *
- * allowed tools for steps must be allowed in all subsequent steps of the chapter
- * allowed tools not persistent save in rules
- *
- */
-function chapter_step_enabled_tools( pl ) {
+/**
+ * @fn chapter_step_enabled_tools ( pl )
+ * enabled tools for chapter step
+ *
+ * allowed tools for steps must be allowed in all subsequent steps of the chapter
+ * allowed tools not persistent save in rules
+ *
+ */
+function chapter_step_enabled_tools ( pl ) {
/*
persistent.chapter <- 1 // stores chapter number
persistent.step <- 1 // stores step number of chapter
@@ -933,7 +940,7 @@ function chapter_step_enabled_tools( pl ) {
enabled_tools.extend(_enabled_tools)
local _pak64_tools = [ 0x8009 ]
- local _pak64german_tools = [ 0x8011 ]
+ local _pak64german_tools = [ 0x8002, 0x8011 ]
local _pak128_tools = [ 0x800b ]
enabled_tools_pak64.extend(_pak64_tools)
@@ -1088,7 +1095,7 @@ function chapter_step_enabled_tools( pl ) {
case 5:
rules.clear()
break
- }
+ }
break
@@ -1133,15 +1140,12 @@ function chapter_step_enabled_tools( pl ) {
rules.gui_needs_update()
}
-/*
- *
- *
- *
- *
- *
- *
- */
- function update_tools(list, id, wt_list, wt) {
+/**
+ * @fn update_tools ( list, id, wt_list, wt )
+ *
+ *
+ */
+ function update_tools ( list, id, wt_list, wt ) {
local res = {ok = false, result = false }
local wt_res = false
if(wt < 0){
diff --git a/class/class_chapter_00.nut b/class/class_chapter_00.nut
index 0cb512c..5aee1b4 100644
--- a/class/class_chapter_00.nut
+++ b/class/class_chapter_00.nut
@@ -1,11 +1,13 @@
-/*
- * class chapter_00
- *
- *
- * Can NOT be used in network game !
- */
-
-
+/** @file class_chapter_00.nut
+ * @brief error output for not compatible simutrans and pakset version
+ */
+
+/**
+ * @brief class_chapter_00.nut
+ * error output for not compatible simutrans and pakset version
+ *
+ * Can NOT be used in network game !
+ */
class tutorial.chapter_00 extends basic_chapter
{
chapter_name = "Checking Compatibility"
@@ -42,12 +44,7 @@ class tutorial.chapter_00 extends basic_chapter
}
function is_work_allowed_here(pl, tool_id, pos) {
- local label = tile_x(pos.x,pos.y,pos.z).find_object(mo_label)
- local result=null // null is equivalent to 'allowed'
-
- result = translate("Action not allowed")
-
- return result
+ return get_message(2) //translate("Action not allowed")
}
function is_tool_active(pl, tool_id, wt) {
diff --git a/class/class_chapter_01.nut b/class/class_chapter_01.nut
index 07d4c59..d090448 100644
--- a/class/class_chapter_01.nut
+++ b/class/class_chapter_01.nut
@@ -1,56 +1,55 @@
-/*
- * class chapter_01
- *
- *
- * Can NOT be used in network game !
- */
-
+/** @file class_chapter_01.nut
+ * @brief Basic information about Simutrans
+ */
+/**
+ * @class tutorial.chapter_01
+ * @brief class_chapter_01.nut
+ * Basic information about Simutrans
+ *
+ * Can NOT be used in network game !
+ *
+ */
class tutorial.chapter_01 extends basic_chapter
{
- chapter_name = "Getting Started"
- chapter_coord = coord(113,189)
+ chapter_name = ch1_name
+ chapter_coord = coord_chapter_1
startcash = 500000 // pl=0 startcash; 0=no reset
comm_script = false
- // Step 1 =====================================================================================
- c_fac = coord(149,200)
- c_st = coord(117,197)
- tx_cty = "This is a town centre"
- tx_fac = "This is a factory"
- tx_st = "This is a station"
- tx_link = "This is a link"
-
// Step 2 =====================================================================================
c_test = coord3d(0,0,1)
// Step 3 =====================================================================================
- c_buil1 = coord(113,189)
- c_buil2 = coord(113,185)
buil1_name = "" //auto started
buil2_name = "" //auto started
buil2_list = null //auto started
+ c_list_mon = null // tile list mon
+ c_list_cur = null // tile list cur
// Step 4 =====================================================================================
cit_list = null //auto started
- city_lim = {a = coord(109,181), b = coord(128,193)}
- cty1 = {c = coord(111,184), name = ""}
+ cty1 = {name = ""}
function start_chapter() //Inicia solo una vez por capitulo
{
- cty1.name = get_city_name(cty1.c)
- local t = my_tile(cty1.c)
+ cty1.name = get_city_name(city1_tow)
+ local t = my_tile(city1_tow)
local buil = t.find_object(mo_building)
cit_list = buil ? buil.get_tile_list() : null
- t = my_tile(c_buil1)
+ t = my_tile(city1_mon)
buil = t.find_object(mo_building)
buil1_name = buil ? translate(buil.get_name()):"No existe"
+ c_list_mon = buil.get_tile_list()
- t = my_tile(c_buil2)
+ t = my_tile(city1_cur)
buil = t.find_object(mo_building)
buil2_name = buil ? translate(buil.get_name()):"No existe"
+ c_list_cur = buil.get_tile_list()
+
+ //gui.add_message("city1_post_halts " + city1_post_halts.len())
return 0
}
@@ -58,97 +57,103 @@ class tutorial.chapter_01 extends basic_chapter
function set_goal_text(text){
switch (this.step) {
case 1:
- text.pos = cty1.c.href("("+cty1.c.tostring()+")")
- text.pos1 = cty1.c.href(""+translate(tx_cty)+" ("+cty1.c.tostring()+")")
- text.pos2 = c_fac.href(""+translate(tx_fac)+" ("+c_fac.tostring()+")")
- text.pos3 = c_st.href(""+translate(tx_st)+" ("+c_st.tostring()+")")
- text.link = ""+translate(tx_link)+" >>"
+ text.pos = city1_tow.href("("+city1_tow.tostring()+")")
+ text.pos1 = city1_tow.href(""+translate(ch1_text1)+" ("+city1_tow.tostring()+")")
+ text.pos2 = coord_fac_1.href(""+translate(ch1_text2)+" ("+coord_fac_1.tostring()+")")
+ text.pos3 = coord_st_1.href(""+translate(ch1_text3)+" ("+coord_st_1.tostring()+")")
+ text.link = ""+translate(ch1_text4)+" >>"
+ text.next_step = translate("Go to next step")
break;
case 3:
- text.pos = ""+buil1_name+" ("+c_buil1.tostring()+")"
- text.buld_name = ""+buil2_name+" ("+c_buil2.tostring()+")"
+ text.pos = ""+buil1_name+" ("+city1_mon.tostring()+")"
+ text.buld_name = ""+buil2_name+" ("+city1_cur.tostring()+")"
break;
case 4:
- text.pos2 = "" + translate("Town Centre")+" ("+cty1.c.tostring()+")"
+ text.pos2 = "" + translate(ch1_text5)+" ("+city1_tow.tostring()+")"
break;
}
+
+ // set image for buttons by different in paksets
+ text.img_grid = get_gui_img("grid")
+ text.img_display = get_gui_img("display")
+
text.town = cty1.name
text.tool1 = translate(tool_alias.inspe)
return text
}
function is_chapter_completed(pl) {
- local chapter_steps = 4
+ persistent.ch_max_steps = 4
local chapter_step = persistent.step
- local chapter_sub_steps = 0 // count all sub steps
- local chapter_sub_step = 0 // actual sub step
+ persistent.ch_max_sub_steps = 0 // count all sub steps
+ persistent.ch_sub_step = 0 // actual sub step
local txt=c_test.tostring()
switch (this.step) {
case 1:
- if (pot0 == 1) {
+ if (pot[0] == 1) {
this.next_step()
}
- //return chapter_percentage(chapter_steps, 1, 0, 0)
+ //return chapter_percentage(persistent.ch_max_steps, 1, 0, 0)
break
case 2:
- if (txt!="0,0,1" || pot0 == 1) {
+ if (txt!="0,0,1" || pot[0] == 1) {
//Creea un cuadro label
local opt = 0
local del = false
local text = "X"
- label_bord(city_lim.a, city_lim.b, opt, del, text)
+ label_bord(city1_limit1.a, city1_limit1.b, opt, del, text)
this.next_step()
}
- //return chapter_percentage(chapter_steps, 2, 0, 0)
+ //return chapter_percentage(persistent.ch_max_steps, 2, 0, 0)
break
case 3:
local next_mark = true
- local c_list1 = [my_tile(c_buil1)]
- local c_list2 = [my_tile(c_buil2)]
+ local c_list1 = [my_tile(city1_mon)]
+ local c_list2 = [my_tile(city1_cur)]
local stop_mark = true
- if (pot0==0) {
+ if (pot[0]==0) {
try {
- next_mark = delay_mark_tile(c_list1)
+ next_mark = delay_mark_tile(c_list_mon)
}
catch(ev) {
return 0
}
}
- else if (pot0==1 && pot1==0) {
+ else if (pot[0]==1 && pot[1]==0) {
try {
- next_mark = delay_mark_tile(c_list1, stop_mark)
+ next_mark = delay_mark_tile(c_list_mon, stop_mark)
}
catch(ev) {
return 0
}
- pot1=1
+ pot[1]=1
}
- if (pot1==1 && pot2==0) {
+ if (pot[1]==1 && pot[2]==0) {
try {
- next_mark = delay_mark_tile(c_list2)
+ next_mark = delay_mark_tile(c_list_cur)
}
catch(ev) {
return 0
}
}
- else if (pot2==1 && pot3==0) {
+ else if (pot[2]==1 && pot[3]==0) {
try {
- next_mark = delay_mark_tile(c_list2, stop_mark)
+ next_mark = delay_mark_tile(c_list_cur, stop_mark)
}
catch(ev) {
return 0
}
- pot3=1
+ pot[3]=1
}
- if (pot3==1 && pot4==0){
+ if (pot[3]==1 && pot[4]==0){
comm_script = false
this.next_step()
}
- //return chapter_percentage(chapter_steps, 3, 0, 0)
+ //return chapter_percentage(persistent.ch_max_steps, 3, 0, 0)
break
case 4:
local next_mark = true
@@ -161,7 +166,7 @@ class tutorial.chapter_01 extends basic_chapter
catch(ev) {
return 0
}
- if (pot0 == 1 && next_mark) {
+ if (pot[0] == 1 && next_mark) {
next_mark = delay_mark_tile(list, stop_mark)
comm_script = false
this.next_step()
@@ -174,7 +179,7 @@ class tutorial.chapter_01 extends basic_chapter
break
}
- local percentage = chapter_percentage(chapter_steps, chapter_step, chapter_sub_steps, chapter_sub_step)
+ local percentage = chapter_percentage(persistent.ch_max_steps, chapter_step, persistent.ch_max_sub_steps, persistent.ch_sub_step)
return percentage
}
@@ -182,7 +187,7 @@ class tutorial.chapter_01 extends basic_chapter
local label = tile_x(pos.x,pos.y,pos.z).find_object(mo_label)
local result=null // null is equivalent to 'allowed'
- result = translate("Action not allowed")
+ result = get_message(2)
switch (this.step) {
case 1:
@@ -191,15 +196,15 @@ class tutorial.chapter_01 extends basic_chapter
break
case 3:
if(tool_id == 4096) {
- if(pot0==0){
- if ((pos.x == c_buil1.x)&&(pos.y == c_buil1.y)){
- pot0 = 1
+ if(pot[0]==0){
+ if ( pos.x == city1_mon.x && pos.y == city1_mon.y ) {
+ pot[0] = 1
return null
}
}
- else if (pot1==1 && pot2==0){
- if ((pos.x == c_buil2.x)&&(pos.y == c_buil2.y)){
- pot2 = 1
+ else if ( pot[1] == 1 && pot[2] == 0 ) {
+ if ( search_tile_in_tiles(c_list_cur, pos) ) {
+ pot[2] = 1
return null
}
}
@@ -207,25 +212,24 @@ class tutorial.chapter_01 extends basic_chapter
break
case 4:
if (tool_id == 4096){
- local list = cit_list
- foreach(t in list){
- if(pos.x == t.x && pos.y == t.y) {
- pot0 = 1
- return null
- }
+ if ( search_tile_in_tiles(cit_list, pos) ) {
+ pot[0] = 1
+ return null
}
}
break
}
if (tool_id == 4096){
if (label && label.get_text()=="X")
- return translate("Indicates the limits for using construction tools")+" ("+pos.tostring()+")."
+ //local message = get_tile_message(5, pos.x, pos.y)
+ //return message
+ return get_tile_message(5, pos) //translate("Indicates the limits for using construction tools")+" ("+pos.tostring()+")."
else if (label)
return translate("Text label")+" ("+pos.tostring()+")."
result = null // Always allow query tool
}
if (label && label.get_text()=="X")
- return translate("Indicates the limits for using construction tools")+" ("+pos.tostring()+")."
+ return get_tile_message(5, pos) //translate("Indicates the limits for using construction tools")+" ("+pos.tostring()+")."
return result
}
@@ -243,10 +247,10 @@ class tutorial.chapter_01 extends basic_chapter
function script_text()
{
if (this.step==1){
- pot0=1
+ pot[0]=1
}
else if (this.step==2){
- pot0 = 1
+ pot[0] = 1
}
else if(this.step==3){
comm_script = true
@@ -254,13 +258,13 @@ class tutorial.chapter_01 extends basic_chapter
local opt = 0
local del = false
local text = "X"
- label_bord(city_lim.a, city_lim.b, opt, del, text)
- pot0=1
- pot2=1
+ label_bord(city1_limit1.a, city1_limit1.b, opt, del, text)
+ pot[0]=1
+ pot[2]=1
}
else if (this.step==4){
comm_script = true
- pot0 = 1
+ pot[0] = 1
}
return null
}
diff --git a/class/class_chapter_02.nut b/class/class_chapter_02.nut
index 8e669e1..0d8f4bb 100644
--- a/class/class_chapter_02.nut
+++ b/class/class_chapter_02.nut
@@ -1,14 +1,18 @@
-/*
- * class chapter_02
- *
- *
- * Can NOT be used in network game !
- */
-
+/** @file class_chapter_02.nut
+ * @brief Road traffic for bus and postal service
+ */
+
+/**
+ * @brief class_chapter_02.nut
+ * Road traffic for bus and postal service
+ *
+ * Can NOT be used in network game !
+ *
+ */
class tutorial.chapter_02 extends basic_chapter
{
- chapter_name = "Ruling the Roads"
- chapter_coord = coord(115,185)
+ chapter_name = ch2_name
+ chapter_coord = coord_chapter_2
startcash = 800000 // pl=0 startcash; 0=no reset
stop_mark = false
@@ -26,140 +30,106 @@ class tutorial.chapter_02 extends basic_chapter
// Step 7 =====================================================================================
ch2_cov_lim3 = {a = 0, b = 0}
- //Limites para las ciudades
- city1_lim = {a = coord(109,181), b = coord(128,193)}
- city2_lim = {a = coord(120,150), b = coord(138,159)}
- cty1 = {c = coord(111,184), name = ""}
+ cty1 = {name = ""}
// Step 1 =====================================================================================
//Carretera para el deposito
- dep_lim1 = {a = null, b = null}
- dep_lim2 = {a = null, b = null}
- coorda = coord(115,186)
- c_dep = coord(115,185) // depot
- coordb = coord(116,185)
- cursor_a = false
- cursor_b = false
+
+ build_list = [] // tile list for build
// Step 3 =====================================================================================
//Parasdas de autobus
- c_lock = [coord(99,28), coord(98,32), coord(99,32), coord(97,27), coord(97,26)]
sch_cov_correct = false
- //sch_list1 = [coord(111,183), coord(116,183), coord(120,183), coord(126,187), coord(121,189), coord(118,191), coord(113,190)]
// Step 4 =====================================================================================
//Primer autobus
- line1_name = "Test 1"
- veh1_obj = get_veh_ch2_st4()
- veh1_load = set_loading_capacity(1)
- veh1_wait = set_waiting_time(1)
+ line1_name = "ch2_l1"
+ veh_obj = get_veh_ch2_st4()
dep_cnr1 = null //auto started
// Step 5 =====================================================================================
// Primer puente
- brdg_lim = {a = coord(119,193), b = coord(128,201)}
- del_lim1 = {a = coord(119,193), b = coord(128,193)}
- brdg1 = coord(126,193)
- brdg2 = coord(126,195)
-
- c_brdg1 = {a = coord3d(126,193,-1), b = coord3d(126,196,0), dir = 3} //Inicio, Fin de la via y direccion(fullway)
- c_brdg_limi1 = {a = coord(126,192), b = coord(126,196)}
t_list_brd = []
// Step 6 =====================================================================================
// Conectando el muelle
- dock_lim = {a = coord(128,181), b = coord(135,193)}
- del_lim2 = {a = coord(128,181), b = coord(128,193)}
- //sch_list2 = [coord(132,189), coord(126,187), coord(121,189), coord(126,198), coord(120,196)]
- line2_name = "Test 2"
+ line2_name = "ch2_l2"
dep_cnr2 = null //auto started
cov_nr = 0
// Step 7 =====================================================================================
// Conectando las ciudades
- c_label1 = {a = coord(130,160), b = coord(130,185)}
- cty2 = {c = coord(129,154), name = ""}
- c_way_limi1 = {a = coord(127,159), b = coord(133,186)}
- c_way1 = {a = coord3d(130,160,0), b = coord3d(130,185,0), dir = 3} //Inicio, Fin de la via y direccion(fullway)
- c_st0 = coord(126,187)
+ cty2 = {name = ""}
- //sch_list3 = [coord(126,187), coord(121,155), coord(127,155), coord(132,155), coord(135,153)]
- line3_name = "Test 3"
+ line3_name = "ch2_l3"
dep_cnr3 = null //auto started
+ veh_load = 0
+ veh_wait = 0
// Step 8 =====================================================================================
- pub_st1 = coord(120,196)
- pub_st2 = coord(120,196)
price = 1200
- //Script
+ // define objects
//----------------------------------------------------------------------------------
- //obj_search = find_object("way", wt_road, 50)
- //gui.add_message("test")
-
- // sc_way_name = obj_search.get_name() //"asphalt_road"
- /*if ( obj_desc == null ) {.()get_desc
-
- } else {
- }
-
- /*obj_desc = find_object("bridge", wt_road, 50)
- sc_bridge_name = obj_desc.get_name() //"tb_classic_road"
- obj_desc = find_station(wt_road)
- sc_station_name = obj_desc.get_name() //"BusStop"*/
sc_way_name = get_obj_ch2(1)
sc_bridge_name = get_obj_ch2(2)
sc_station_name = get_obj_ch2(3)
- sc_dep_name = get_obj_ch2(4)
+ sc_dep_name = null // depot name
function start_chapter() //Inicia solo una vez por capitulo
{
- if ( pak_name == "pak128" ) {
- brdg1 = coord(126,192)
- brdg2 = coord(126,194)
- c_brdg1 = {a = coord3d(126,192,-1), b = coord3d(126,195,0), dir = 3} //Inicio, Fin de la via y direccion(fullway)
- c_brdg_limi1 = {a = coord(126,191), b = coord(126,195)}
- }
-
local lim_idx = cv_list[(persistent.chapter - 2)].idx
ch2_cov_lim1 = {a = cv_lim[lim_idx].a, b = cv_lim[lim_idx].b}
ch2_cov_lim2 = {a = cv_lim[lim_idx+1].a, b = cv_lim[lim_idx+1].b}
ch2_cov_lim3 = {a = cv_lim[lim_idx+2].a, b = cv_lim[lim_idx+2].b}
+ /// set depot name
+ sc_dep_name = find_object("depot", wt_road).get_name()
+
dep_cnr1 = get_dep_cov_nr(ch2_cov_lim1.a,ch2_cov_lim1.b)
dep_cnr2 = get_dep_cov_nr(ch2_cov_lim2.a,ch2_cov_lim2.b)
dep_cnr3 = get_dep_cov_nr(ch2_cov_lim3.a,ch2_cov_lim3.b)
- cty1.name = get_city_name(cty1.c)
- cty2.name = get_city_name(cty2.c)
-
- dep_lim1 = {a = c_dep, b = coorda}
- dep_lim2 = {a = c_dep, b = coordb}
+ cty1.name = get_city_name(city1_tow)
+ cty2.name = get_city_name(city2_tow)
+ line1_name = "City " + cty1.name
+ line2_name = line1_name + " dock/station"
+ line3_name = cty1.name + " - " + cty2.name
+
+ // look for streets next to the depot field
+ if(this.step == 1) {
+ local tile = my_tile(city1_road_depot)
+ if ( tile_x(tile.x-1, tile.y, tile.z).get_way(wt_road) != null ) { build_list.append(tile_x(tile.x-1, tile.y, tile.z)) }
+ if ( tile_x(tile.x+1, tile.y, tile.z).get_way(wt_road) != null ) { build_list.append(tile_x(tile.x+1, tile.y, tile.z)) }
+ if ( tile_x(tile.x, tile.y-1, tile.z).get_way(wt_road) != null ) { build_list.append(tile_x(tile.x, tile.y-1, tile.z)) }
+ if ( tile_x(tile.x, tile.y+1, tile.z).get_way(wt_road) != null ) { build_list.append(tile_x(tile.x, tile.y+1, tile.z)) }
+ build_list.append(tile)
+ }
local pl = 0
//Schedule list form current convoy
if(this.step == 4){
- local c_dep = this.my_tile(c_dep)
+ local c_dep = this.my_tile(city1_road_depot)
local c_list = city1_halt_1
- start_sch_tmpsw(pl,c_dep, c_list)
+ start_sch_tmpsw(pl, c_dep, c_list)
}
else if(this.step == 6){
- local c_dep = this.my_tile(c_dep)
+ local c_dep = this.my_tile(city1_road_depot)
local c_list = city1_halt_2
- start_sch_tmpsw(pl,c_dep, c_list)
+ start_sch_tmpsw(pl, c_dep, c_list)
}
else if(this.step == 7){
- local c_dep = this.my_tile(c_dep)
+ local c_dep = this.my_tile(city1_road_depot)
local c_list = city2_halt_1
- start_sch_tmpsw(pl,c_dep, c_list)
+ start_sch_tmpsw(pl, c_dep, c_list)
}
// Starting tile list for bridge
- for(local i = c_brdg1.a.y; i <= c_brdg1.b.y; i++){
- t_list_brd.push(my_tile(coord(c_brdg1.a.x, i)))
+ for(local i = bridge1_coords.a.y; i <= bridge1_coords.b.y; i++){
+ t_list_brd.push(my_tile(coord(bridge1_coords.a.x, i)))
}
}
@@ -177,79 +147,34 @@ class tutorial.chapter_02 extends basic_chapter
switch (this.step) {
case 1:
- text.t1 = c_dep.href("("+c_dep.tostring()+")")
- text.t2 = coorda.href("("+coorda.tostring()+")")
- text.t3 = coordb.href("("+coordb.tostring()+")")
break
case 2:
- text.pos = c_dep.href("("+c_dep.tostring()+")")
break
case 3:
- local list_tx = ""
- local c_list = city1_halt_1
- local siz = c_list.len()
- for (local j=0;j
", translate("Stop"), j+1, link)
- }
- else{
- local link = c.href(" ("+c.tostring()+")")
- local stop_tx = translate("Build Stop here:")
- list_tx += format("
", translate("Stop"), j+1, stop_tx, link)
- }
- }
- text.list = list_tx
+ veh_load = set_loading_capacity(1)
+ veh_wait = set_waiting_time(1)
+ text.list = create_halt_list(city1_halt_1)
break
case 4:
- local list_tx = ""
- local c_list = city1_halt_1
- local siz = c_list.len()
- for (local j=0;j
", translate("Stop"), j+1, st_halt.get_name(), translate("OK"))
- continue
- }
- if(tmpsw[j]==0){
- list_tx += format("
", translate("Stop"), j+1, c.href(st_halt.get_name()+" ("+c.tostring()+")"))
- }
- else{
- list_tx += format("%s %d: %s %s
", translate("Stop"), j+1, st_halt.get_name(), translate("OK"))
- }
- }
- local c = coord(c_list[0].x, c_list[0].y)
- local tile = my_tile(c)
- text.stnam = "1) "+tile.get_halt().get_name()+" ("+c.tostring()+")"
- text.list = list_tx
- text.nr = siz
+ local tile = my_tile(city1_halt_1[get_waiting_halt(1)])
+ text.stnam = (get_waiting_halt(1)+1) + ") "+tile.get_halt().get_name()+" ("+city1_halt_1[get_waiting_halt(1)].tostring()+")"
+
+ text.list = create_schedule_list(city1_halt_1)
+ text.nr = city1_halt_1.len()
break
case 5:
- text.bpos1 = brdg1.href("("+brdg1.tostring()+")")
- text.bpos2 = brdg2.href("("+brdg2.tostring()+")")
+ text.bpos1 = bridge1_coords.a.href("("+bridge1_coords.a.tostring()+")")
+ text.bpos2 = bridge1_coords.b.href("("+bridge1_coords.b.tostring()+")")
+ // load file info/build_bridge_xx.txt
text.bridge_info = get_info_file("bridge")
break
case 6:
- veh1_load = set_loading_capacity(2)
- veh1_wait = set_waiting_time(2)
+ veh_load = set_loading_capacity(2)
+ veh_wait = set_waiting_time(2)
- local stxt = array(10)
- local halt = my_tile(city1_halt_2[0]).get_halt()
-
- for (local j=0;j
", translate("Stop"), j+1, st_halt.get_name(), translate("OK"))
- continue
- }
- if(tmpsw[j]==0){
- list_tx += format("
", translate("Stop"), j+1, c.href(st_halt.get_name()+" ("+c.tostring()+")"))
- }
- else{
- list_tx += format("%s %d: %s %s
", translate("Stop"), j+1, st_halt.get_name(), translate("OK"))
- }
- }
- local c = coord(c_list[siz-1].x, c_list[siz-1].y)
- local tile = my_tile(c)
- text.stnam = ""+siz+") "+tile.get_halt().get_name()+" ("+c.tostring()+")"
+ veh_load = set_loading_capacity(3)
+ veh_wait = set_waiting_time(3)
+
+ if (!correct_cov){
+ text = ttextfile("chapter_02/07_3-4.txt")
+ text.tx = ttext("[3/4]")
- text.list = list_tx
- text.nr = siz
+ //local tile = my_tile(city2_halt_1[city2_halt_1.len()-1])
+ //text.stnam = ""+city2_halt_1.len()+") "+tile.get_halt().get_name()+" ("+coord_to_string(tile)+")"
+
+ //text.list = create_halt_list(city2_halt_1)
+ //text.nr = city2_halt_1.len()
}
- else if (pot0==0){
- local a = 1
- local b = 3
- text = ttextfile("chapter_02/07_"+a+"-"+b+".txt")
- text.tx = ttext("["+a+"/"+b+"]")
+ else if (pot[0]==0){
+ text = ttextfile("chapter_02/07_1-4.txt")
+ text.tx = ttext("[1/4]")
- local list_tx = ""
- local c_list = city2_halt_1
- local siz = c_list.len()
- for (local j=1;j
", translate("Stop"), j, link)
- }
- else{
- local link = c.href(" ("+c.tostring()+")")
- local stop_tx = translate("Build Stop here:")
- list_tx += format("
", translate("Stop"), j, stop_tx, link)
- }
- }
- text.list = list_tx
+ text.list = create_halt_list(city2_halt_1.slice(1))
}
- else if (pot2==0){
- local a = 2
- local b = 3
- text = ttextfile("chapter_02/07_"+a+"-"+b+".txt")
- text.tx = ttext("["+a+"/"+b+"]")
+ else if (pot[2]==0){
+ text = ttextfile("chapter_02/07_2-4.txt")
+ text.tx = ttext("[2/4]")
if (r_way.r)
text.cbor = ""+translate("Ok")+""
else
text.cbor = coord(r_way.c.x, r_way.c.y).href("("+r_way.c.tostring()+")")
}
- else if (pot3==0){
- local a = 3
- local b = 3
- text = ttextfile("chapter_02/07_"+a+"-"+b+".txt")
- text.tx = ttext("["+a+"/"+b+"]")
+ else if (pot[3]==0){
+ text = ttextfile("chapter_02/07_3-4.txt")
+ text.tx = ttext("[3/4]")
- local list_tx = ""
- local c_list = city2_halt_1
- local siz = c_list.len()
- for (local j=0;j
", translate("Stop"), j+1, st_halt.get_name(), translate("OK"))
- continue
- }
- if(tmpsw[j]==0){
- list_tx += format("
", translate("Stop"), j+1, c.href(st_halt.get_name()+" ("+c.tostring()+")"))
- }
- else{
- list_tx += format("%s %d: %s %s
", translate("Stop"), j+1, st_halt.get_name(), translate("OK"))
- }
- }
- local c = coord(c_list[siz-1].x, c_list[siz-1].y)
- local tile = my_tile(c)
- text.stnam = ""+siz+") "+tile.get_halt().get_name()+" ("+c.tostring()+")"
+ local tile = my_tile(city2_halt_1[get_waiting_halt(3)])
+ text.stnam = ""+tile.get_halt().get_name()+" ("+coord_to_string(tile)+")"
- text.list = list_tx
- text.nr = siz
+ text.list = create_schedule_list(city2_halt_1)
+ text.nr = city2_halt_1.len()
+ }
+ else if (pot[4]==0){
+ text = ttextfile("chapter_02/07_4-4.txt")
+ text.tx = ttext("[4/4]")
+
+ local conv = cov_save[current_cov-1]
+ if(is_cov_valid(conv)){
+ local pos = conv.get_pos()
+ text.covpos = pos.href(conv.get_name()+" ("+pos.tostring()+")")
+ }
+ else{
+ text.covpos = "null"
+ }
}
- text.n1 = cty1.c.href(cty1.name.tostring())
- text.n2 = cty2.c.href(cty2.name.tostring())
- text.pt1 = c_label1.a.href("("+c_label1.a.tostring()+")")
- text.pt2 = c_label1.b.href("("+c_label1.b.tostring()+")")
- text.dep = c_dep.href("("+c_dep.tostring()+")")
+ local t = coord(way1_coords.a.x, way1_coords.a.y)
+ text.pt1 = t.href("("+t.tostring()+")")
+ t = coord(way1_coords.b.x, way1_coords.b.y)
+ text.pt2 = t.href("("+t.tostring()+")")
break
case 8:
- local st_halt1 = my_tile(pub_st1).get_halt()
- local st_halt2 = my_tile(pub_st2).get_halt()
- text.st1 = pub_st1.href(st_halt1.get_name()+" ("+pub_st1.tostring()+")")
- //text.st2 = pub_st2.href(st_halt2.get_name()+" ("+pub_st2.tostring()+")")
- text.prce = money_to_string(price)
+ local st_halt1 = my_tile(city1_halt_2[city1_halt_2.len()-1]).get_halt()
+ text.st1 = city1_halt_2[city1_halt_2.len()-1].href(st_halt1.get_name()+" ("+city1_halt_2[city1_halt_2.len()-1].tostring()+")")
+ // toolbar icon make_stop_publuc tooltip
+ local factor = settings.get_make_public_months()
+ local tool_text = translate_objects_list.public_stop
+ local idx = tool_text.find("%i")
+ local t1 = tool_text.slice(0, idx)
+ local t2 = tool_text.slice(idx+2)
+ tool_text = t1 + factor + t2
+ text.public_stop = tool_text
break
}
- text.load = veh1_load
- text.wait = get_wait_time_text(veh1_wait)
- text.pos = c_dep.href("("+c_dep.tostring()+")")
- text.bus1 = translate(veh1_obj)
- text.name = cty1.c.href(cty1.name.tostring())
- text.name2 = cty2.c.href(cty2.name.tostring())
+
+ // road menu step 1, 2, 4, 5 and 7
+ local steps = [1, 2, 4, 5, 7]
+ if ( steps.find(this.step) != null ) {
+ // set image for button by different in paksets
+ text.img_road_menu = get_gui_img("road_menu")
+ text.toolbar_road = translate_objects_list.tools_road
+ }
+
+ steps.clear()
+ // road halt menu step 3 and 7
+ steps = [3, 7]
+ if ( steps.find(this.step) != null ) {
+ // set image for button by different in paksets
+ text.img_road_menu = get_gui_img("road_halts")
+ text.toolbar_halt = translate_objects_list.tools_road_stations
+ }
+
+ steps.clear()
+ // depot coord step 1, 2, 4, 6 and 7
+ steps = [1, 2, 4, 6, 7]
+ if ( steps.find(this.step) != null ) {
+ text.dep = city1_road_depot.href("("+city1_road_depot.tostring()+")")
+ }
+
+ steps.clear()
+ // veh load and wait time set to steps 4, 6 and 7
+ steps = [4, 6, 7]
+ if ( steps.find(this.step) != null ) {
+ text.load = veh_load
+ text.wait = get_wait_time_text(veh_wait)
+ text.bus1 = translate(veh_obj)
+ }
+
+ text.name = city1_tow.href(cty1.name.tostring())
+ text.name2 = city2_tow.href(cty2.name.tostring())
text.tool1 = translate_objects_list.inspec
- text.tool2 = translate_objects_list.tools_road
- text.tool3 = translate_objects_list.tools_special
return text
}
@@ -408,38 +315,35 @@ class tutorial.chapter_02 extends basic_chapter
save_glsw()
save_pot()
- local chapter_steps = 8
+ persistent.ch_max_steps = 8
local chapter_step = persistent.step
- local chapter_sub_steps = 0 // count all sub steps
- local chapter_sub_step = 0 // actual sub step
+ persistent.ch_max_sub_steps = 0 // count all sub steps
+ persistent.ch_sub_step = 0 // actual sub step
switch (this.step) {
case 1:
local next_mark = true
- local c_list = [my_tile(coordb), my_tile(coorda), my_tile(c_dep)]
+ local tile = my_tile(city1_road_depot)
try {
- next_mark = delay_mark_tile_list(c_list)
+ next_mark = delay_mark_tile_list(build_list)
}
catch(ev) {
return 0
}
- cursor_a = cursor_control(my_tile(coorda))
- cursor_b = cursor_control(my_tile(coordb))
-
//Para la carretera
- local tile = my_tile(c_dep)
+ //local tile = my_tile(city1_road_depot)
local way = tile.find_object(mo_way)
local label = tile.find_object(mo_label)
if (!way && !label){
local t1 = command_x(tool_remover)
- local err1 = t1.work(player_x(pl), my_tile(c_dep), "")
- label_x.create(c_dep, player_x(pl), translate("Place the Road here!."))
+ local err1 = t1.work(player_x(pl), tile, "")
+ label_x.create(city1_road_depot, pl_unown, translate("Place the Road here!."))
return 0
}
else if ((way)&&(way.get_owner().nr==pl)){
- if(next_mark ){
- next_mark = delay_mark_tile_list(c_list, true)
+ if(next_mark) {
+ next_mark = delay_mark_tile_list(build_list, true)
tile.remove_object(player_x(1), mo_label)
this.next_step()
}
@@ -449,7 +353,7 @@ class tutorial.chapter_02 extends basic_chapter
break;
case 2:
local next_mark = true
- local c_list1 = [my_tile(c_dep)]
+ local c_list1 = [my_tile(city1_road_depot)]
local stop_mark = true
try {
next_mark = delay_mark_tile(c_list1)
@@ -458,10 +362,10 @@ class tutorial.chapter_02 extends basic_chapter
return 0
}
//Para el deposito
- local tile = my_tile(c_dep)
+ local tile = my_tile(city1_road_depot)
local waydepo = tile.find_object(mo_way)
if (!tile.find_object(mo_depot_road)){
- label_x.create(c_dep, player_x(pl), translate("Build a Depot here!."))
+ label_x.create(city1_road_depot, pl_unown, translate("Build a Depot here!."))
}
else if (next_mark){
next_mark = delay_mark_tile(c_list1, stop_mark)
@@ -472,33 +376,31 @@ class tutorial.chapter_02 extends basic_chapter
//return 0
break;
case 3:
- if (pot0==0){
+ if (pot[0]==0){
//Marca tiles para evitar construccion de objetos
local del = false
local pl_nr = 1
local text = "X"
- lock_tile_list(c_lock, c_lock.len(), del, pl_nr, text)
- pot0=1
+ pot[0]=1
}
- local siz = city1_halt_1.len()
local c_list = city1_halt_1
local name = translate("Place Stop here!.")
local load = good_alias.passa
- local all_stop = is_stop_building(siz, c_list, name, load)
+ local all_stop = is_stop_building(c_list, name, load)
- if (all_stop && pot0==1){
+ if (all_stop && pot[0]==1){
this.next_step()
}
//return 10+percentage
break
case 4:
- local conv = cov_save[0]
+ local conv = current_cov > 0 ? cov_save[current_cov-1] : null
local cov_valid = is_cov_valid(conv)
if(cov_valid){
- pot0 = 1
+ pot[0] = 1
}
- local c_list1 = [my_tile(c_dep)]
- if (pot0 == 0){
+ local c_list1 = [my_tile(city1_road_depot)]
+ if (pot[0] == 0){
local next_mark = true
try {
next_mark = delay_mark_tile(c_list1)
@@ -507,7 +409,7 @@ class tutorial.chapter_02 extends basic_chapter
return 0
}
}
- else if (pot0 == 1 && pot1 ==0){
+ else if (pot[0] == 1 && pot[1] ==0){
local next_mark = true
local stop_mark = true
try {
@@ -516,11 +418,11 @@ class tutorial.chapter_02 extends basic_chapter
catch(ev) {
return 0
}
- pot1 = 1
+ pot[1] = 1
}
- if (pot1 == 1 ){
- local c_dep = this.my_tile(c_dep)
+ if (pot[1] == 1 ){
+ local c_dep = this.my_tile(city1_road_depot)
local line_name = line1_name //"Test 1"
set_convoy_schedule(pl, c_dep, gl_wt, line_name)
@@ -531,36 +433,38 @@ class tutorial.chapter_02 extends basic_chapter
convoy = cov_list[0]
}
local all_result = checks_convoy_schedule(convoy, pl)
-
sch_cov_correct = all_result.res == null ? true : false
+ if(!all_result.cov ){
+ reset_glsw()
+ }
+
}
+
if (cov_valid && current_cov == ch2_cov_lim1.b){
- if (conv.is_followed()) {
- pot2=1
- }
+ pot[2]=1
}
- if (pot2 == 1 ){
+
+ if (pot[2] == 1 ){
this.next_step()
//Crear cuadro label
local opt = 0
- label_bord(brdg_lim.a, brdg_lim.b, opt, false, "X")
+ label_bord(bridge1_limit.a, bridge1_limit.b, opt, false, "X")
//Elimina cuadro label
- label_bord(del_lim1.a, del_lim1.b, opt, true, "X")
- //label_bord(c_lock.a, c_lock.b, opt, true, "X")
- lock_tile_list(c_lock, c_lock.len(), true, 1)
+ label_bord(change1_city1_limit1.a, change1_city1_limit1.b, opt, true, "X")
}
//return 50
break
case 5:
- local t_label = my_tile(brdg1)
+ local t_label = my_tile(bridge1_coords.a)
local label = t_label.find_object(mo_label)
local next_mark = true
- if (pot0 == 0){
+ if (pot[0] == 0){
if(!label)
- label_x.create(brdg1, player_x(pl), translate("Build a Bridge here!."))
+ label_x.create(bridge1_coords.a, pl_unown, get_label_text(2))
+ label_x.create(bridge1_coords.b, pl_unown, "")
try {
next_mark = delay_mark_tile(t_list_brd)
}
@@ -568,7 +472,7 @@ class tutorial.chapter_02 extends basic_chapter
return 0
}
}
- else if (pot0 == 1 && pot1 ==0){
+ else if (pot[0] == 1 && pot[1] ==0){
stop_mark = true
try {
next_mark = delay_mark_tile(t_list_brd, stop_mark)
@@ -576,34 +480,41 @@ class tutorial.chapter_02 extends basic_chapter
catch(ev) {
return 0
}
- pot1 = 1
+ pot[1] = 1
}
- if (pot1==1) {
+ if (pot[1]==1) {
//Comprueba la conexion de la via
- local coora = coord3d(c_brdg1.a.x, c_brdg1.a.y, c_brdg1.a.z)
- local coorb = coord3d(c_brdg1.b.x, c_brdg1.b.y, c_brdg1.b.z)
- local dir = c_brdg1.dir
+ local tx = 0
+ local ty = 1
+ local tile = square_x(bridge1_coords.b.x+tx, bridge1_coords.b.y+ty).get_ground_tile()
+ // todo check bridge direction
+
+ local coora = coord3d(bridge1_coords.a.x, bridge1_coords.a.y, bridge1_coords.a.z)
+ local coorb = coord3d(tile.x, tile.y, tile.z)
+ local dir = bridge1_coords.dir
local obj = false
local r_way = get_fullway(coora, coorb, dir, obj)
if (r_way.r){
+ t_label.remove_object(player_x(1), mo_label)
+ t_label = my_tile(bridge1_coords.b)
t_label.remove_object(player_x(1), mo_label)
this.next_step()
//Crear cuadro label
local opt = 0
- label_bord(dock_lim.a, dock_lim.b, opt, false, "X")
+ label_bord(c_dock1_limit.a, c_dock1_limit.b, opt, false, "X")
//Elimina cuadro label
- label_bord(del_lim2.a, del_lim2.b, opt, true, "X")
+ label_bord(change2_city1_limit1.a, change2_city1_limit1.b, opt, true, "X")
}
}
//return 65
break
case 6:
- chapter_sub_steps = 2
+ persistent.ch_max_sub_steps = 2
- local c_dep = this.my_tile(c_dep)
+ local c_dep = this.my_tile(city1_road_depot)
local line_name = line2_name //"Test 2"
- set_convoy_schedule(pl,c_dep, gl_wt, line_name)
+ set_convoy_schedule(pl, c_dep, gl_wt, line_name)
local id_start = 1
local id_end = 3
@@ -611,70 +522,75 @@ class tutorial.chapter_02 extends basic_chapter
local convoy = convoy_x(gcov_id)
local all_result = checks_convoy_schedule(convoy, pl)
+ sch_cov_correct = all_result.res == null ? true : false
+
if(!all_result.cov ){
reset_glsw()
}
//gui.add_message("current_cov "+current_cov+" cov_nr "+cov_nr+" all_result "+all_result+" all_result.cov "+all_result.cov)
if ( cov_nr>=1 ) {
- chapter_sub_step = 1 // sub step finish
+ persistent.ch_sub_step = 1 // sub step finish
}
if (current_cov==ch2_cov_lim2.b){
this.next_step()
//Elimina cuadro label
local opt = 0
- label_bord(city1_lim.a, city1_lim.b, opt, true, "X")
- label_bord(brdg_lim.a, brdg_lim.b, opt, true, "X")
- label_bord(dock_lim.a, dock_lim.b, opt, true, "X")
+ label_bord(city1_limit1.a, city1_limit1.b, opt, true, "X")
+ label_bord(bridge1_limit.a, bridge1_limit.b, opt, true, "X")
+ label_bord(c_dock1_limit.a, c_dock1_limit.b, opt, true, "X")
//Creea un cuadro label
- label_bord(city2_lim.a, city2_lim.b, opt, false, "X")
+ label_bord(city2_limit1.a, city2_limit1.b, opt, false, "X")
}
//return 70
break
case 7:
- chapter_sub_steps = 3
+ persistent.ch_max_sub_steps = 3
- if (pot0==0){
+ if (pot[0]==0){
- local siz = city2_halt_1.len()
local c_list = city2_halt_1
- local name = translate("Place Stop here!.")
+ local name = get_label_text(1)
local load = good_alias.passa
- local all_stop = is_stop_building(siz, c_list, name, load)
+ local all_stop = is_stop_building(c_list, name, load)
if (all_stop) {
- pot0=1
+ pot[0]=1
reset_glsw()
}
}
- else if (pot0==1 && pot1==0){
+ else if (pot[0]==1 && pot[1]==0){
//Elimina cuadro label
local opt = 0
- label_bord(city2_lim.a, city2_lim.b, opt, true, "X")
+ label_bord(city2_limit1.a, city2_limit1.b, opt, true, "X")
//Creea un cuadro label
opt = 0
- label_bord(c_way_limi1.a, c_way_limi1.b, opt, false, "X")
+ label_bord(c_way_limit1.a, c_way_limit1.b, opt, false, "X")
//Limpia las carreteras
opt = 2
- label_bord(c_way_limi1.a, c_way_limi1.b, opt, true, "X", gl_wt)
+ label_bord(c_way_limit1.a, c_way_limit1.b, opt, true, "X", gl_wt)
- pot1=1
+ pot[1]=1
}
- else if (pot1==1 && pot2==0){
- chapter_sub_step = 1 // sub step finish
+ else if (pot[1]==1 && pot[2]==0){
+ persistent.ch_sub_step = 1 // sub step finish
//Comprueba la conexion de la via
- local coora = coord3d(c_way1.a.x,c_way1.a.y,c_way1.a.z)
- local coorb = coord3d(c_way1.b.x,c_way1.b.y,c_way1.b.z)
- local dir = c_way1.dir
+ local coora = coord3d(way1_coords.a.x,way1_coords.a.y,way1_coords.a.z)
+ local coorb = coord3d(way1_coords.b.x,way1_coords.b.y,way1_coords.b.z)
+ local dir = way1_coords.dir
local obj = false
local r_way = get_fullway(coora, coorb, dir, obj)
+ //check_way_last_tile
+ //test_select_way(my_tile(way1_coords.a), my_tile(way1_coords.b), wt_road)
+
+
//Para marcar inicio y fin de la via
local waya = tile_x(coora.x,coora.y,coora.z).find_object(mo_way)
local wayb = tile_x(coorb.x,coorb.y,coorb.z).find_object(mo_way)
@@ -686,26 +602,25 @@ class tutorial.chapter_02 extends basic_chapter
waya.unmark()
wayb.unmark()
- my_tile(c_label1.a).remove_object(player_x(1), mo_label)
- my_tile(c_label1.b).remove_object(player_x(1), mo_label)
+ //way1_coords.a.remove_object(player_x(1), mo_label)
+ //way1_coords.b.remove_object(player_x(1), mo_label)
//Elimina cuadro label
local opt = 0
- label_bord(c_way_limi1.a, c_way_limi1.b, opt, true, "X")
+ label_bord(c_way_limit1.a, c_way_limit1.b, opt, true, "X")
//Creea un cuadro label
- local opt = 0
- label_bord(city1_lim.a, city1_lim.b, opt, false, "X")
- label_bord(city2_lim.a, city2_lim.b, opt, false, "X")
+ label_bord(city1_limit1.a, city1_limit1.b, opt, false, "X")
+ label_bord(city2_limit1.a, city2_limit1.b, opt, false, "X")
- pot2=1
+ pot[2]=1
}
}
- else if (pot2==1 && pot3==0) {
- chapter_sub_step = 2 // sub step finish
- local c_dep = this.my_tile(c_dep)
- local line_name = line3_name //"Test 3"
+ else if (pot[2]==1) {
+ persistent.ch_sub_step = 2 // sub step finish
+ local c_dep = this.my_tile(city1_road_depot)
+ local line_name = line3_name //"Test 3"
set_convoy_schedule(pl, c_dep, gl_wt, line_name)
local depot = depot_x(c_dep.x, c_dep.y, c_dep.z)
@@ -717,34 +632,52 @@ class tutorial.chapter_02 extends basic_chapter
local all_result = checks_convoy_schedule(convoy, pl)
sch_cov_correct = all_result.res == null ? true : false
- if (current_cov == ch2_cov_lim3.b) {
- //Desmarca la via en la parada
- local way_mark = my_tile(c_st0).find_object(mo_way)
- way_mark.unmark()
+ if (current_cov == ch2_cov_lim3.b){
+ pot[3]=1
+ }
- //Elimina cuadro label
- local opt = 0
- //label_bord(city1_lim.a, city1_lim.b, opt, true, "X")
- label_bord(city2_lim.a, city2_lim.b, opt, true, "X")
- this.next_step()
+ if (pot[3]==1 && pot[4]==0) {
+ local conv = cov_save[current_cov-1]
+ local cov_valid = is_cov_valid(conv)
+
+ if (cov_valid && current_cov == ch2_cov_lim3.b){
+ if (conv.is_followed()) {
+ pot[4] = 1
+ }
+ }
+ else{
+ backward_pot(3)
+ break
+ }
+ }
+ else if (pot[4]==1 && pot[5]==0){
+ //Desmarca la via en la parada
+ local way_mark = my_tile(line_connect_halt).find_object(mo_way)
+ way_mark.unmark()
+
+ //Elimina cuadro label
+ local opt = 0
+ label_bord(city1_limit1.a, city1_limit1.b, opt, true, "X")
+ label_bord(city2_limit1.a, city2_limit1.b, opt, true, "X")
+
+ label_bord(bridge1_limit.a, bridge1_limit.b, opt, false, "X")
+ this.next_step()
}
}
//return 95
break
case 8:
- if (pot0==0){
- local halt1 = my_tile(pub_st1).get_halt()
- local halt2 = my_tile(pub_st2).get_halt()
- if (pl != halt1.get_owner().nr)
+ if (pot[0]==0){
+ local halt1 = my_tile(city1_halt_2[city1_halt_2.len()-1]).get_halt()
+ if (pl != halt1.get_owner().nr && glsw[0] == 0)
glsw[0]=1
- if (pl != halt2.get_owner().nr)
+ if (pl != halt1.get_owner().nr)
glsw[1]=1
if (glsw[0]==1 && glsw[1]==1){
local opt = 0
- label_bord(city1_lim.a, city1_lim.b, opt, true, "X")
- label_bord(city2_lim.a, city2_lim.b, opt, true, "X")
+ label_bord(bridge1_limit.a, bridge1_limit.b, opt, true, "X")
this.next_step()
}
}
@@ -759,52 +692,63 @@ class tutorial.chapter_02 extends basic_chapter
//return 100
break
}
- local percentage = chapter_percentage(chapter_steps, chapter_step, chapter_sub_steps, chapter_sub_step)
+ local percentage = chapter_percentage(persistent.ch_max_steps, chapter_step, persistent.ch_max_sub_steps, persistent.ch_sub_step)
return percentage
}
+
function is_work_allowed_here(pl, tool_id, name, pos, tool) {
local t = tile_x(pos.x, pos.y, pos.z)
- local ribi = 0
- local slope = t.get_slope()
- local way = t.find_object(mo_way)
- local bridge = t.find_object(mo_bridge)
- local build = t.find_object(mo_building)
+ //local slope = t.get_slope()
+ //local way = t.find_object(mo_way)
+ //local bridge = t.find_object(mo_bridge)
+ //local build = t.find_object(mo_building)
local label = t.find_object(mo_label)
- local car = t.find_object(mo_car)
- if (way){
- if (tool_id!=tool_build_bridge)
+ //local car = t.find_object(mo_car)
+ //local ribi = 0
+ /*if (way){
+ if ( tool_id != tool_build_bridge )
ribi = way.get_dirs()
- if (!t.has_way(gl_wt))
+ if ( !t.has_way(gl_wt) )
ribi = 0
- }
- local st_c = coord(pos.x,pos.y)
- local result=null // null is equivalent to 'allowed'
- result = translate("Action not allowed")+" ("+pos.tostring()+")."
+ }*/
+ //local st_c = coord(pos.x,pos.y)
+ local result = null // null is equivalent to 'allowed'
+ result = get_tile_message(1, pos) //translate("Action not allowed")+" ("+pos.tostring()+")."
gltool = tool_id
switch (this.step) {
//Construye un tramo de carretera
case 1:
- if (tool_id==tool_build_way){
- local way_desc = way_desc_x.get_available_ways(gl_wt, gl_st)
- foreach(desc in way_desc){
- if(desc.get_name() == name){
- if ((pos.x>=dep_lim1.a.x)&&(pos.y>=dep_lim1.a.y)&&(pos.x<=dep_lim1.b.x)&&(pos.y<=dep_lim1.b.y)){
- if(!cursor_b)
- return null
- }
- if ((pos.x>=dep_lim2.a.x)&&(pos.y>=dep_lim2.a.y)&&(pos.x<=dep_lim2.b.x)&&(pos.y<=dep_lim2.b.y)){
- if(!cursor_a)
- return null
+ if ( tool_id == tool_build_way ) {
+
+ // check selected way
+ local s = check_select_way(name, wt_road)
+ if ( s != null ) return s
+
+ //local way_desc = way_desc_x.get_available_ways(gl_wt, gl_st)
+ local str_c = tile_x(tool.start_pos.x, tool.start_pos.y, tool.start_pos.z)
+ //local str_way = str_c.is_valid () ? t.find_object(mo_way) : null
+ local str_way = world.is_coord_valid(str_c)? tile_x(str_c.x, str_c.y, str_c.z).find_object(mo_way) : null
+ //foreach ( desc in way_desc ) {
+ //if ( desc.get_name() == name ) {
+ for ( local i = 0; i < build_list.len()-1; i++ ) {
+ if ( ( pos.x == build_list[i].x && pos.y == build_list[i].y ) || ( pos.x == city1_road_depot.x && pos.y == city1_road_depot.y ) ) {
+ if(cursor_control(build_list[i])){
+ return null
+ }
+ if( !str_way ){
+ return null
+ }
+ }
}
- return translate("Connect the road here")+" ("+c_dep.tostring()+")."
- }
- }
+ return get_tile_message(2, city1_road_depot)//translate("Connect the road here")+" ("+city1_road_depot.tostring()+")."
+ //}
+ //}
}
break;
//Construye un deposito de carreteras
case 2:
- if ((pos.x==c_dep.x)&&(pos.y==c_dep.y)){
- if (my_tile(c_dep).find_object(mo_way)){
+ if ((pos.x==city1_road_depot.x)&&(pos.y==city1_road_depot.y)){
+ if (my_tile(city1_road_depot).find_object(mo_way)){
if (tool_id==tool_build_depot) return null
}
else {
@@ -813,51 +757,57 @@ class tutorial.chapter_02 extends basic_chapter
}
}
else if (tool_id==tool_build_depot)
- return result=translate("You must build the depot in")+" ("+c_dep.tostring()+")."
+ return result=translate("You must build the depot in")+" ("+city1_road_depot.tostring()+")."
break;
//Construye las paradas de autobus
case 3:
- if (pos.x == c_dep.x && pos.y == c_dep.y )
- return format(translate("You must build the %d stops first."),7)
- if (pos.x>city1_lim.a.x && pos.y>city1_lim.a.y && pos.x
", j+1, link, layer))
- text.lev =layer_lvl
+ text.lev = way3_tun_list[0].z
text.tunn = link
break
}
@@ -507,22 +328,22 @@ class tutorial.chapter_03 extends basic_chapter
c = coord3d(c.x, c.y, c_z)
local link = c.href("("+c.tostring()+")")
local tx_ok = translate("OK")
- local tx_coord = "("+coord(c_tun_list[j].x, c_tun_list[j].y).tostring()+","+c_z+")"
- local layer = translate("Layer level")+" = "+(layer_lvl)+""
+ local tx_coord = "("+coord(way3_tun_list[j].x, way3_tun_list[j].y).tostring()+","+c_z+")"
+ local layer = translate("Layer level")+" = "+(way3_tun_list[j].z)+""
tx_list += ttext(""+format("[%d] %s", j+1, tx_coord+" "+layer+" "+tx_ok+"
"))
- text.lev = layer_lvl
+ text.lev = way3_tun_list[0].z
text.tunn = link
}
}
- text.mx_lvl = end_lvl_z
+ text.mx_lvl = way3_tun_list[way3_tun_list.len()-1].z
text.list = tx_list
}
else{
text = ttextfile("chapter_03/08_5-5.txt")
text.tx = ttext("[5/5]")
- text.lev = end_lvl_z
- text.t1 = "("+ start_tunn.tostring()+")"
- text.t2 = "("+ c_end_tunn.tostring()+")"
+ text.lev = way3_tun_list[way3_tun_list.len()-1].z
+ text.t1 = "("+ way3_tun_coord[0].tostring()+")"
+ text.t2 = "("+ way3_tun_coord[way3_tun_coord.len()-1].tostring()+")"
}
}
text.plus = key_alias.plus_s
@@ -531,14 +352,14 @@ class tutorial.chapter_03 extends basic_chapter
case 9:
- if (pot0==0){
+ if (pot[0]==0){
local way_list = ""
text = ttextfile("chapter_03/09_1-2.txt")
text.tx = ttext("[1/2]")
local w_nr = 0
- for(local j=0;j
", translate("Stop"), j+1, c.href(st_halt.get_name()+" ("+c.tostring()+")"))
}
else{
tx_list += format("%s %d: %s %s
", translate("Stop"), j+1, st_halt.get_name(), translate("OK"))
+ delay_mark_tile(st_list, true)
+ mark_st++
}
}
- local c = coord(list[0].x, list[0].y)
- text.stnam = "1) "+my_tile(c).get_halt().get_name()+" ("+c.tostring()+")"
+ local c = coord(list[get_waiting_halt(4)].x, list[get_waiting_halt(4)].y)
+ text.stnam = (get_waiting_halt(4)+1) + ") " + my_tile(c).get_halt().get_name() + " ("+c.tostring()+")"
text.list = tx_list
- text.dep = c_dep3.href("("+c_dep3.tostring()+")")
+ text.dep = ch3_rail_depot3.b.href("("+ch3_rail_depot3.b.tostring()+")")
text.loc3 = translate(loc3_name_obj)
text.load = loc3_load
text.wait = get_wait_time_text(loc3_wait)
@@ -651,11 +481,11 @@ class tutorial.chapter_03 extends basic_chapter
stext.cy4=cy4.name
stext.cy5=cy5.name
- stext.co1=cy1.c.href("("+cy1.c.tostring()+")")
- stext.co2=cy2.c.href("("+cy2.c.tostring()+")")
- stext.co3=cy3.c.href("("+cy3.c.tostring()+")")
- stext.co4=cy4.c.href("("+cy4.c.tostring()+")")
- stext.co5=cy5.c.href("("+cy5.c.tostring()+")")
+ stext.co1=city1_tow.href("("+city1_tow.tostring()+")")
+ stext.co2=city3_tow.href("("+city3_tow.tostring()+")")
+ stext.co3=city4_tow.href("("+city4_tow.tostring()+")")
+ stext.co4=city5_tow.href("("+city5_tow.tostring()+")")
+ stext.co5=city6_tow.href("("+city6_tow.tostring()+")")
text.step_hinfo = stext
}
@@ -663,8 +493,8 @@ class tutorial.chapter_03 extends basic_chapter
text.f2 = fac_2.c.href(fac_2.name+" ("+fac_2.c.tostring()+")")
text.f3 = fac_3.c.href(fac_3.name+" ("+fac_3.c.tostring()+")")
- text.cdep=c_dep1.href("("+c_dep1.tostring()+")")
- text.way1=c_dep2.href("("+c_dep2.tostring()+")")
+ text.cdep=ch3_rail_depot1.b.href("("+ch3_rail_depot1.b.tostring()+")")
+ text.way1=ch3_rail_depot2.a.href("("+ch3_rail_depot2.a.tostring()+")")
text.cy1=cy1.name
text.cy2=cy2.name
@@ -672,16 +502,16 @@ class tutorial.chapter_03 extends basic_chapter
text.cy4=cy4.name
text.cy5=cy5.name
- text.co1=cy1.c.href("("+cy1.c.tostring()+")")
- text.co2=cy2.c.href("("+cy2.c.tostring()+")")
- text.co3=cy3.c.href("("+cy3.c.tostring()+")")
- text.co4=cy4.c.href("("+cy4.c.tostring()+")")
- text.co5=cy5.c.href("("+cy5.c.tostring()+")")
+ text.co1=city1_tow.href("("+city1_tow.tostring()+")")
+ text.co2=city3_tow.href("("+city3_tow.tostring()+")")
+ text.co3=city4_tow.href("("+city4_tow.tostring()+")")
+ text.co4=city5_tow.href("("+city5_tow.tostring()+")")
+ text.co5=city6_tow.href("("+city6_tow.tostring()+")")
text.cbor = ""
if (r_way.r)
text.cbor = "" + translate("Ok") + ""
else
- text.cbor = coord(r_way.c.x, r_way.c.y).href("("+r_way.c.tostring()+")")
+ text.cbor = coord(r_way.c.x, r_way.c.y).href("("+coord3d_to_string(r_way.c)+")")
text.tool1 = translate_objects_list.inspec
text.tool2 = translate_objects_list.tools_rail
@@ -709,10 +539,10 @@ class tutorial.chapter_03 extends basic_chapter
save_pot()
save_glsw()
- local chapter_steps = 11
+ persistent.ch_max_steps = 11
local chapter_step = persistent.step
- local chapter_sub_steps = 0 // count all sub steps
- local chapter_sub_step = 0 // actual sub step
+ persistent.ch_max_sub_steps = 0 // count all sub steps
+ persistent.ch_sub_step = 0 // actual sub step
local fac_1 = factory_data.rawget("1")
local fac_2 = factory_data.rawget("2")
@@ -720,9 +550,9 @@ class tutorial.chapter_03 extends basic_chapter
switch (this.step) {
case 1:
- chapter_sub_steps = 2
+ persistent.ch_max_sub_steps = 2
local next_mark = false
- if (pot0==0 || pot1 == 0) {
+ if (pot[0]==0 || pot[1] == 0) {
local list = fac_2.c_list
try {
next_mark = delay_mark_tile(list)
@@ -730,11 +560,11 @@ class tutorial.chapter_03 extends basic_chapter
catch(ev) {
return 0
}
- if(next_mark && pot0 == 1) {
- pot1=1
+ if(next_mark && pot[0] == 1) {
+ pot[1]=1
}
}
- else if (pot2==0 || pot3==0) {
+ else if (pot[2]==0 || pot[3]==0) {
local list = fac_1.c_list
try {
next_mark = delay_mark_tile(list)
@@ -742,55 +572,65 @@ class tutorial.chapter_03 extends basic_chapter
catch(ev) {
return 0
}
- if(next_mark && pot2 == 1) {
- pot3=1
+ if(next_mark && pot[2] == 1) {
+ pot[3]=1
}
- chapter_sub_step = 1
+ persistent.ch_sub_step = 1
}
- else if (pot3==1 && pot4==0) {
+ else if (pot[3]==1 && pot[4]==0) {
this.next_step()
}
//return 5
break;
case 2:
- chapter_sub_steps = 3
+ persistent.ch_max_sub_steps = 3
//Primer tramo de rieles
- if (pot0==0){
- local limi = label1_lim
- local tile1 = my_tile(st1_list[0])
+ if (pot[0]==0){
+ local limi = my_tile(way2_fac1_fac2[1])
+ local tile1 = my_tile(way2_fac1_fac2[0])
if (!tile1.find_object(mo_way)){
- label_x.create(st1_list[0], player_x(pl), translate("Build Rails form here"))
+ label_x.create(way2_fac1_fac2[0], pl_unown, translate("Build Rails form here"))
}
else
tile1.remove_object(player_x(1), mo_label)
local tile2 = my_tile(limi)
if (!tile2.find_object(mo_way)){
- label_x.create(limi, player_x(pl), translate("Build Rails form here"))
+ label_x.create(limi, pl_unown, translate("Build Rails form here"))
//elimina el cuadro label
- local opt = 0
+ /*local opt = 0
local del = true
local text = "X"
- label_bord(bord1_lim.a, bord1_lim.b, opt, del, text)
+ label_bord(bord1_lim.a, bord1_lim.b, opt, del, text)*/
}
- if (tile2.find_object(mo_label) && r_way.c.x<=limi.x){
- if (!tile_x(wayend.x, wayend.y, wayend.z).find_object(mo_way))
- label_x.create(wayend, player_x(pl), translate("Build Rails form here"))
+
+ if (tile2.find_object(mo_label) && r_way.c.x<=limi.x) {
+ if (!tile_x(wayend.x, wayend.y, wayend.z).find_object(mo_way)) {
+ label_x.create(wayend, pl_unown, translate("Build Rails form here"))
+
+ }
//Creea un cuadro label
- local opt = 0
- local del = false
- local text = "X"
- label_bord(bord1_lim.a, bord1_lim.b, opt, del, text)
- tile2.remove_object(player_x(1), mo_label)
+ local test_way = test_select_way(tile1, tile2, wt_rail)
+ if (test_way) {
+ local opt = 0
+ local del = false
+ local text = "X"
+ label_bord(limit_ch3_rail_line_1a.a, limit_ch3_rail_line_1a.b, opt, del, text)
+
+ tile2.remove_object(player_x(1), mo_label)
+
+ }
}
+
local opt = 0
- local coora = coord3d(c_way1.a.x, c_way1.a.y, c_way1.a.z)
- local coorb = coord3d(c_way1.b.x, c_way1.b.y, c_way1.b.z)
- local dir = c_way1.dir
+ local coora = tile_x(way2_fac1_fac2[0].x, way2_fac1_fac2[0].y, way2_fac1_fac2[0].z)
+ local coorb = tile_x(way2_fac1_fac2[2].x, way2_fac1_fac2[2].y, way2_fac1_fac2[2].z)
+ //gui.add_message("get_fullway_dir "+get_fullway_dir(way2_fac1_fac2[0], way2_fac1_fac2[1]))
+ local dir = get_fullway_dir(way2_fac1_fac2[0], way2_fac1_fac2[1])
local obj = false
local wt = wt_rail
@@ -798,47 +638,49 @@ class tutorial.chapter_03 extends basic_chapter
r_way = get_fullway(coora, coorb, dir, obj)
if (r_way.r) {
tile_x(coora.x, coora.y, coora.z).find_object(mo_way).unmark()
- tile_x(wayend.x, wayend.y, coorb.z).remove_object(player_x(1), mo_label)
+ tile_x(coorb.x, coorb.y, coorb.z).remove_object(player_x(1), mo_label)
tile1.remove_object(player_x(1), mo_label)
//elimina el cuadro label
local opt = 0
local del = true
local text = "X"
- label_bord(bord1_lim.a, bord1_lim.b, opt, del, text)
+ label_bord(limit_ch3_rail_line_1a.a, limit_ch3_rail_line_1a.b, opt, del, text)
- pot0=1
+ pot[0]=1
wayend=0
}
}
//Para el puente
- else if (pot0==1&&pot1==0) {
- chapter_sub_step = 1 // sub step finish
- local tile = my_tile(c_brge1.b)
+ else if (pot[0]==1&&pot[1]==0) {
+ persistent.ch_sub_step = 1 // sub step finish
+ local tile = my_tile(bridge2_coords.a)
if ((!tile.find_object(mo_bridge))){
- label_x.create(c_brge1.b, player_x(pl), translate("Build a Bridge here!."))
+ label_x.create(tile, pl_unown, translate("Build a Bridge here!."))
+ label_x.create(my_tile(bridge2_coords.b), pl_unown, translate("Build a Bridge here!."))
r_way.c = coord3d(tile.x, tile.y, tile.z)
}
else {
tile.remove_object(player_x(1), mo_label)
+ my_tile(bridge2_coords.b).remove_object(player_x(1), mo_label)
- if (my_tile(c_brge1.b).find_object(mo_bridge)){
- pot1=1
+ if (my_tile(bridge2_coords.a).find_object(mo_bridge)){
+ pot[1]=1
}
}
}
//Segundo tramo de rieles
- else if (pot1==1 && pot2==0){
- chapter_sub_step = 2 // sub step finish
- local limi = label2_lim
- local tile1 = my_tile(limi)
+ else if (pot[1]==1 && pot[2]==0){
+ persistent.ch_sub_step = 2 // sub step finish
+ local limi = my_tile(coord(way2_fac1_fac2[4].x, way2_fac1_fac2[4].y))
+ local tile1 = limi
if (r_way.c.y > limi.y){
- label_x.create(limi, player_x(pl), translate("Build Rails form here"))
+ label_x.create(limi, pl_unown, translate("Build Rails form here"))
//Creea un cuadro label
local opt = 0
local del = false
local text = "X"
- label_bord(bord2_lim.a, bord2_lim.b, opt, del, text)
+ label_bord(limit_ch3_rail_line_1b.a, limit_ch3_rail_line_1b.b, opt, del, text)
}
else {
tile1.remove_object(player_x(1), mo_label)
@@ -846,15 +688,15 @@ class tutorial.chapter_03 extends basic_chapter
local opt = 0
local del = true
local text = "X"
- label_bord(bord2_lim.a, bord2_lim.b, opt, del, text)
+ label_bord(limit_ch3_rail_line_1b.a, limit_ch3_rail_line_1b.b, opt, del, text)
if (!tile1.find_object(mo_label))
- label_x.create(st2_list[0], player_x(pl), translate("Build Rails form here"))
+ label_x.create(way2_fac1_fac2[5], pl_unown, translate("Build Rails form here"))
}
local opt = 0
- local coora = coord3d(c_way3.a.x, c_way3.a.y, c_way3.a.z)
- local coorb = coord3d(c_way3.b.x, c_way3.b.y, c_way3.b.z)
- local dir = c_way3.dir
+ local coora = my_tile(way2_fac1_fac2[3])
+ local coorb = my_tile(way2_fac1_fac2[5])
+ local dir = get_fullway_dir(way2_fac1_fac2[0], way2_fac1_fac2[1])//c_way3.dir
local obj = false
wayend = coorb
@@ -865,7 +707,7 @@ class tutorial.chapter_03 extends basic_chapter
local opt = 0
local del = true
local text = "X"
- label_bord(bord2_lim.a, bord2_lim.b, opt, del, text)
+ label_bord(limit_ch3_rail_line_1b.a, limit_ch3_rail_line_1b.b, opt, del, text)
tile_x(coorb.x, coorb.y, coorb.z).remove_object(player_x(1), mo_label)
tile1.remove_object(player_x(1), mo_label)
@@ -877,30 +719,30 @@ class tutorial.chapter_03 extends basic_chapter
case 3:
glresult = null
- chapter_sub_steps = 2
+ persistent.ch_max_sub_steps = 2
local passa = good_alias.passa
local mail = good_alias.mail
- if (pot1==0){
+ if (pot[1]==0){
//Estaciones de la Fabrica
local pl_nr = 1
- local c_list = st2_list
+ local c_list = station_tiles(way2_fac1_fac2[5], way2_fac1_fac2[4], loc1_tile)
local st_nr = c_list.len() //Numero de estaciones
local good = good_alias.goods
local result = is_stations_building(pl_nr, c_list, st_nr, good)
if(result){
- pot0=1
+ pot[0]=1
}
}
- if (pot0==1 && pot1==0){
- chapter_sub_step = 1 // sub step finish
+ if (pot[0]==1 && pot[1]==0){
+ persistent.ch_sub_step = 1 // sub step finish
//Estaciones de la Fabrica
local pl_nr = 1
- local c_list = st1_list
+ local c_list = station_tiles(way2_fac1_fac2[0], way2_fac1_fac2[1], loc1_tile)
local st_nr = c_list.len() //Numero de estaciones
local good = good_alias.goods
local result = is_stations_building(pl_nr, c_list, st_nr, good)
@@ -912,12 +754,10 @@ class tutorial.chapter_03 extends basic_chapter
//return 15
break
case 4:
- chapter_sub_steps = 3
- local tile = my_tile(c_dep1)
- if(pot0==0){
- local c_list = [my_tile(c_dep1_lim.a), my_tile(c_dep1_lim.b)]
- local siz = c_list.len()
-
+ persistent.ch_max_sub_steps = 3
+ local tile = my_tile(ch3_rail_depot1.b)
+ if(pot[0]==0){
+ local c_list = [my_tile(ch3_rail_depot1.b), my_tile(ch3_rail_depot1.a)]
local next_mark = true
try {
next_mark = delay_mark_tile(c_list)
@@ -926,7 +766,7 @@ class tutorial.chapter_03 extends basic_chapter
return 0
}
if(!tile.find_object(mo_way)){
- label_x.create(c_dep1, player_x(pl), translate("Build Rails form here"))
+ label_x.create(tile, pl_unown, translate("Build Rails form here"))
}
else{
local stop_mark = true
@@ -936,33 +776,33 @@ class tutorial.chapter_03 extends basic_chapter
catch(ev) {
return 0
}
- pot0=1
+ pot[0]=1
}
}
- else if(pot0==1 && pot1==0){
- chapter_sub_step = 1 // sub step finish
+ else if(pot[0]==1 && pot[1]==0){
+ persistent.ch_sub_step = 1 // sub step finish
local label = tile.find_object(mo_label)
if(!tile.find_object(mo_depot_rail)){
label.set_text(translate("Build Train Depot here!."))
}
else{
tile.remove_object(player_x(1), mo_label)
- pot1=1
+ pot[1]=1
}
}
- else if ( pot0==1 && pot1==1 && pot2==0 ) {
- chapter_sub_step = 2 // sub step finish
+ else if ( pot[0]==1 && pot[1]==1 && pot[2]==0 ) {
+ persistent.ch_sub_step = 2 // sub step finish
}
- else if(pot2==1){
+ else if(pot[2]==1){
this.next_step()
}
//return 16
break
case 5:
- if (!cov_sw)
+ if (!correct_cov)
return 0
local wt = wt_rail
@@ -970,18 +810,18 @@ class tutorial.chapter_03 extends basic_chapter
if (current_cov == ch3_cov_lim1.b){
reached = get_reached_target(fac_2.c, good_alias.wood )
if (reached>= f1_reached){
- pot1=1
+ pot[1]=1
}
}
- if (pot1==1 && pot0==0){
+ if (pot[1]==1 && pot[0]==0){
//Marca tiles para evitar construccion de objetos
- local c_list = c_lock
+ /*local c_list = c_lock
local siz = c_lock.len()
local del = false
local pl_nr = 1
local text = "X"
- lock_tile_list(c_list, siz, del, pl_nr, text)
+ lock_tile_list(c_list, siz, del, pl_nr, text)*/
this.next_step()
reset_stop_flag()
@@ -990,45 +830,45 @@ class tutorial.chapter_03 extends basic_chapter
//return 30
break
case 6:
- chapter_sub_steps = 5
+ persistent.ch_max_sub_steps = 5
//Primer tramo de rieles
- if (pot0==0){
+ if (pot[0]==0){
- local limi = label3_lim
- local tile1 = my_tile(st3_list[0])
+ local limi = way2_fac2_fac3[1]
+ local tile1 = my_tile(way2_fac2_fac3[0])
if (!tile1.find_object(mo_way)){
- label_x.create(st3_list[0], player_x(pl), translate("Build Rails form here"))
+ label_x.create(way2_fac2_fac3[0], pl_unown, translate("Build Rails form here"))
}
else
tile1.remove_object(player_x(1), mo_label)
local tile2 = my_tile(limi)
if (!tile2.find_object(mo_way)){
- label_x.create(limi, player_x(pl), translate("Build Rails form here"))
+ label_x.create(limi, pl_unown, translate("Build Rails form here"))
//elimina el cuadro label
local opt = 0
local del = true
local text = "X"
- label_bord(bord3_lim.a, bord3_lim.b, opt, del, text)
+ label_bord(limit_ch3_rail_line_2a.a, limit_ch3_rail_line_2a.b, opt, del, text)
}
if (tile_x(r_way.c.x, r_way.c.y, r_way.c.z).find_object(mo_way) && r_way.c.y>=limi.y){
tile2.remove_object(player_x(1), mo_label)
if (!tile_x(wayend.x, wayend.y, wayend.z).find_object(mo_way))
- label_x.create(wayend, player_x(pl), translate("Build Rails form here"))
+ label_x.create(wayend, pl_unown, translate("Build Rails form here"))
//Creea un cuadro label
local opt = 0
local del = false
local text = "X"
- label_bord(bord3_lim.a, bord3_lim.b, opt, del, text)
+ label_bord(limit_ch3_rail_line_2a.a, limit_ch3_rail_line_2a.b, opt, del, text)
}
local opt = 0
- local coora = coord3d(c_way4.a.x, c_way4.a.y, c_way4.a.z)
- local coorb = coord3d(c_way4.b.x, c_way4.b.y, c_way4.b.z)
+ local coora = coord3d(way2_fac2_fac3[0].x, way2_fac2_fac3[0].y, way2_fac2_fac3[0].z)
+ local coorb = coord3d(way2_fac2_fac3[2].x, way2_fac2_fac3[2].y, way2_fac2_fac3[2].z)
local obj = false
- local dir = c_way4.dir // 3
+ local dir = get_fullway_dir(way2_fac2_fac3[0], way2_fac2_fac3[1]) // 3
wayend = coorb
@@ -1041,52 +881,52 @@ class tutorial.chapter_03 extends basic_chapter
local opt = 0
local del = true
local text = "X"
- label_bord(bord3_lim.a, bord3_lim.b, opt, del, text)
+ label_bord(limit_ch3_rail_line_2a.a, limit_ch3_rail_line_2a.b, opt, del, text)
- pot0 = 1
+ pot[0] = 1
wayend = 0
}
}
//Para el tunel
- else if (pot0==1 && pot1==0){
- chapter_sub_step = 1 // sub step finish
- local tile = my_tile(c_tunn1.a)
+ else if (pot[0]==1 && pot[1]==0){
+ persistent.ch_sub_step = 1 // sub step finish
+ local tile = my_tile(way2_fac2_fac3[2])
if ((!tile.find_object(mo_tunnel))){
- label_x.create(c_tunn1.a, player_x(pl), translate("Place a Tunnel here!."))
+ label_x.create(way2_fac2_fac3[2], pl_unown, translate("Place a Tunnel here!."))
r_way.c = coord3d(tile.x, tile.y, tile.z)
}
else {
tile.remove_object(player_x(1), mo_label)
- if (my_tile(c_tunn1.b).find_object(mo_tunnel)){
+ if (my_tile(way2_fac2_fac3[3]).find_object(mo_tunnel)){
}
}
local opt = 0
- local coora = coord3d(c_tunn1.a.x, c_tunn1.a.y, c_tunn1.a.z)
- local coorb = coord3d(c_tunn1.b.x, c_tunn1.b.y, c_tunn1.b.z)
+ local coora = coord3d(way2_fac2_fac3[2].x, way2_fac2_fac3[2].y, way2_fac2_fac3[2].z)
+ local coorb = coord3d(way2_fac2_fac3[3].x, way2_fac2_fac3[3].y, way2_fac2_fac3[3].z)
local obj = false
local tunnel = true
- local dir = c_tunn1.dir // 5
+ local dir = get_fullway_dir(way2_fac2_fac3[2], way2_fac2_fac3[3]) // 5
wayend = coorb
r_way = get_fullway(coora, coorb, dir, obj, tunnel)
if (r_way.r){
- pot1=1
+ pot[1]=1
wayend = 0
}
}
//Segundo tramo de rieles
- else if (pot1==1 && pot2==0){
- chapter_sub_step = 2 // sub step finish
- local limi = label4_lim
+ else if (pot[1]==1 && pot[2]==0){
+ persistent.ch_sub_step = 2 // sub step finish
+ local limi = way2_fac2_fac3[4]
local tile1 = my_tile(limi)
- local tile2 = my_tile(st4_list[0])
+ local tile2 = my_tile(way2_fac2_fac3[5])
if (r_way.c.y < limi.y){
- label_x.create(limi, player_x(pl), translate("Build Rails form here"))
+ label_x.create(limi, pl_unown, translate("Build Rails form here"))
//Creea un cuadro label
local opt = 0
local del = false
local text = "X"
- label_bord(bord4_lim.a, bord4_lim.b, opt, del, text)
+ label_bord(limit_ch3_rail_line_2b.a, limit_ch3_rail_line_2b.b, opt, del, text)
}
else {
tile1.remove_object(player_x(1), mo_label)
@@ -1094,16 +934,16 @@ class tutorial.chapter_03 extends basic_chapter
local opt = 0
local del = true
local text = "X"
- label_bord(bord4_lim.a, bord4_lim.b, opt, del, text)
+ label_bord(limit_ch3_rail_line_2b.a, limit_ch3_rail_line_2b.b, opt, del, text)
if (!tile2.find_object(mo_way))
- label_x.create(st4_list[0], player_x(pl), translate("Build Rails form here"))
+ label_x.create(way2_fac2_fac3[5], pl_unown, translate("Build Rails form here"))
}
local opt = 0
- local coora = coord3d(c_way5.a.x, c_way5.a.y, c_way5.a.z)
- local coorb = coord3d(c_way5.b.x, c_way5.b.y, c_way5.b.z)
+ local coora = coord3d(way2_fac2_fac3[3].x, way2_fac2_fac3[3].y, way2_fac2_fac3[3].z)
+ local coorb = coord3d(way2_fac2_fac3[5].x, way2_fac2_fac3[5].y, way2_fac2_fac3[5].z)
local obj = false
- local dir = c_way5.dir
+ local dir = get_fullway_dir(way2_fac2_fac3[2], way2_fac2_fac3[3])
wayend = coorb
r_way = get_fullway(coora, coorb, dir, obj)
if (r_way.r){
@@ -1113,96 +953,111 @@ class tutorial.chapter_03 extends basic_chapter
local opt = 0
local del = true
local text = "X"
- label_bord(bord4_lim.a, bord4_lim.b, opt, del, text)
+ label_bord(limit_ch3_rail_line_2b.a, limit_ch3_rail_line_2b.b, opt, del, text)
- pot2=1
+ pot[2]=1
wayend = 0
}
}
//Text label para las estaciones
- else if (pot2==1 && pot3==0){
- chapter_sub_step = 3 // sub step finish
+ else if (pot[2]==1 && pot[3]==0){
+ persistent.ch_sub_step = 3 // sub step finish
glresult = null
local passa = good_alias.passa
local mail = good_alias.mail
//Estaciones de la Fabrica
local pl_nr = 1
- local c_list = st4_list
+ local c_list = station_tiles(way2_fac2_fac3[5], way2_fac2_fac3[4], loc2_tile)
local st_nr = c_list.len() //Numero de estaciones
local good = good_alias.goods
local result = is_stations_building(pl_nr, c_list, st_nr, good)
if(result){
- pot3 = 1
+ pot[3] = 1
}
}
- else if (pot3==1 && pot4==0){
- chapter_sub_step = 4 // sub step finish
+ else if (pot[3]==1 && pot[4]==0){
+ persistent.ch_sub_step = 4 // sub step finish
glresult = null
local passa = good_alias.passa
local mail = good_alias.mail
//Estaciones de la Fabrica
local pl_nr = 1
- local c_list = st3_list
+ local c_list = station_tiles(way2_fac2_fac3[0], way2_fac2_fac3[1], loc2_tile)
local st_nr = c_list.len() //Numero de estaciones
local good = good_alias.goods
local result = is_stations_building(pl_nr, c_list, st_nr, good)
if(result){
- pot4 = 1
+ pot[4] = 1
}
}
- else if (pot4==1 && pot5==0){
+ else if (pot[4]==1 && pot[5]==0){
//Elimina las Marcas de tiles
- local c_list = c_lock
+ /*local c_list = c_lock
local siz = c_lock.len()
local del = true
local pl_nr = 1
local text = "X"
- lock_tile_list(c_list, siz, del, pl_nr, text)
+ lock_tile_list(c_list, siz, del, pl_nr, text)*/
this.next_step()
}
//return 35
break
case 7:
- if (!cov_sw)
+ if (!correct_cov)
return 0
local opt = 2
local wt = gl_wt
- local tile = my_tile(c_dep2)
- if(pot0==0){
+ local tile = my_tile(ch3_rail_depot2.a)
+ if(pot[0]==0){
+ local c_list = [my_tile(ch3_rail_depot2.b), my_tile(ch3_rail_depot2.a)]
+ local next_mark = true
+ try {
+ next_mark = delay_mark_tile(c_list)
+ }
+ catch(ev) {
+ return 0
+ }
if(!tile.find_object(mo_way)){
- label_x.create(c_dep2, player_x(pl), translate("Build Rails form here"))
+ label_x.create(tile, pl_unown, translate("Build Rails form here"))
}
else{
- pot0=1
+ local stop_mark = true
+ try {
+ next_mark = delay_mark_tile(c_list, stop_mark)
+ }
+ catch(ev) {
+ return 0
+ }
+ pot[0]=1
}
}
- else if(pot0==1 && pot1==0){
+ else if(pot[0]==1 && pot[1]==0){
local label = tile.find_object(mo_label)
if(!tile.find_object(mo_depot_rail)){
label.set_text(translate("Build Train Depot here!."))
}
else{
tile.remove_object(player_x(1), mo_label)
- pot1=1
+ pot[1]=1
}
}
else if(current_cov == ch3_cov_lim2.b){
reached = get_reached_target(fac_3.c, good_alias.plan)
if (reached>=f3_reached){
- pot3=1
+ pot[3]=1
}
}
- if (pot3==1 && pot4==0){
+ if (pot[3]==1 && pot[4]==0){
this.next_step()
reset_stop_flag()
reached = 0
@@ -1211,43 +1066,45 @@ class tutorial.chapter_03 extends basic_chapter
//return 40
break
case 8:
- chapter_sub_steps = 5
+ persistent.ch_max_sub_steps = 5
//Para el tramo de via
- if (pot0==0){
- local coora = coord3d(c_way6.a.x, c_way6.a.y, c_way6.a.z)
- local coorb = coord3d(c_way6.b.x, c_way6.b.y, c_way6.b.z)
+ if (pot[0]==0){
+ local coora = coord3d(way3_cy1_cy3.a.x, way3_cy1_cy3.a.y, way3_cy1_cy3.a.z)
+ local coorb = coord3d(way3_cy1_cy3.b.x, way3_cy1_cy3.b.y, way3_cy1_cy3.b.z)
local obj = false
local tunnel = false
local dir = get_dir_start(coora)
r_way = get_fullway(coora, coorb, dir, obj, tunnel)
if (r_way.r){
- pot0=1
+ pot[0]=1
//return 45
}
}
//Para el puente
- else if (pot0==1 && pot1==0){
- chapter_sub_step = 1 // sub step finish
- local tile = my_tile(c_brge3.a)
+ else if (pot[0]==1 && pot[1]==0){
+ persistent.ch_sub_step = 1 // sub step finish
+ local tile = my_tile(bridge3_coords.a)
if ((!tile.find_object(mo_bridge))){
- label_x.create(c_brge3.a, player_x(pl), translate("Build a Bridge here!."))
+ label_x.create(bridge3_coords.a, pl_unown, translate("Build a Bridge here!."))
+ label_x.create(my_tile(bridge3_coords.b), pl_unown, translate("Build a Bridge here!."))
r_way.c = coord3d(tile.x, tile.y, tile.z)
}
else {
tile.remove_object(player_x(1), mo_label)
+ my_tile(bridge3_coords.b).remove_object(player_x(1), mo_label)
- if (my_tile(c_brge3.b).find_object(mo_bridge)){
- pot1=1
+ if (my_tile(bridge3_coords.b).find_object(mo_bridge)){
+ pot[1]=1
}
}
}
//Para la entrada del tunel
- else if (pot1==1 && pot2==0){
- chapter_sub_step = 2 // sub step finish
- local t_tunn = my_tile(start_tunn)
+ else if (pot[1]==1 && pot[2]==0){
+ persistent.ch_sub_step = 2 // sub step finish
+ local t_tunn = my_tile(way3_tun_coord[0])
if (!t_tunn.find_object(mo_tunnel)){
- local label_t = my_tile(start_tunn)
+ local label_t = my_tile(way3_tun_coord[0])
local lab = label_t.find_object(mo_label)
if(lab){
if(label_t.is_marked()){
@@ -1260,58 +1117,58 @@ class tutorial.chapter_03 extends basic_chapter
}
else{
gl_tool = 0
- lab.set_text("Place a Tunnel here!.")
+ lab.set_text(translate("Place a Tunnel here!."))
}
}
else{
- label_x.create(start_tunn, player_x(pl), translate("Place a Tunnel here!."))
+ label_x.create(way3_tun_coord[0], pl_unown, translate("Place a Tunnel here!."))
}
}
else{
- pot2=1
+ pot[2]=1
t_tunn.remove_object(player_x(1), mo_label)
}
}
//Para conectar las dos entradas del tunel
- else if (pot2==1 && pot3==0){
- chapter_sub_step = 3 // sub step finish
- local coora = coord3d(c_tunn2.a.x, c_tunn2.a.y, c_tunn2.a.z)
- local coorb = coord3d(c_tunn2.b.x, c_tunn2.b.y, c_tunn2.b.z)
+ else if (pot[2]==1 && pot[3]==0){
+ persistent.ch_sub_step = 3 // sub step finish
+ local coora = coord3d(way3_tun_coord[0].x, way3_tun_coord[0].y, way3_tun_coord[0].z)
+ local coorb = coord3d(way3_tun_coord[2].x, way3_tun_coord[2].y, way3_tun_coord[2].z)
local obj = false
local tunnel = true
local dir = get_dir_start(coora)
r_way = get_fullway(coora, coorb, dir, obj, tunnel)
//gui.add_message("plus "+r_way.p)
if (r_way.r){
- pot3=1
+ pot[3]=1
//return 45
}
- if(r_way.c.z
", translate("Stop"), j+1, st_halt.get_name(), translate("OK"))
}
}
- local c = coord(list[0].x, list[0].y)
- text.stnam = "1) "+my_tile(c).get_halt().get_name()+" ("+c.tostring()+")"
+ local c = coord(list[get_waiting_halt(5)].x, list[get_waiting_halt(5)].y)
+ text.stnam = (get_waiting_halt(5)+1) + ") "+my_tile(c).get_halt().get_name()+" ("+c.tostring()+")"
text.list = tx_list
text.ship = translate(ship2_name_obj)
text.load = ship2_load
@@ -228,13 +208,13 @@ class tutorial.chapter_04 extends basic_chapter
break
}
- text.dep1 = c_dep1.href("("+c_dep1.tostring()+")")+""
+ text.dep1 = ship_depot.href("("+ship_depot.tostring()+")")+""
text.sh = translate(ship1_name_obj)
text.cir = cov_cir
text.f1 = fac_1.c.href(""+fac_1.name+" ("+fac_1.c.tostring()+")")+""
text.f3 = fac_2.c.href(""+fac_2.name+" ("+fac_2.c.tostring()+")")+""
text.f4 = fac_3.c.href(""+fac_3.name+" ("+fac_3.c.tostring()+")")+""
- text.tur = tur.href(" ("+tur.tostring()+")")+""
+ text.tur = ch4_curiosity.href(" ("+ch4_curiosity.tostring()+")")+""
text.good1 = get_good_data(3, 3) //translate_objects_list.good_oil
//text.g1_metric = get_good_data(3, 1)
@@ -244,7 +224,6 @@ class tutorial.chapter_04 extends basic_chapter
}
function is_chapter_completed(pl) {
- local percentage=0
save_pot()
save_glsw()
@@ -252,11 +231,17 @@ class tutorial.chapter_04 extends basic_chapter
local fac_2 = factory_data.rawget("5")
local fac_3 = factory_data.rawget("6")
+ persistent.ch_max_steps = 8
+ local chapter_step = persistent.step
+ persistent.ch_max_sub_steps = 0 // count all sub steps
+ persistent.ch_sub_step = 0 // actual sub step
+
switch (this.step) {
case 1:
+ persistent.ch_max_sub_steps = 2
local next_mark = false
local stop_mark = true
- if(pot0==0 || pot1 == 0){
+ if(pot[0]==0 || pot[1] == 0){
local list = fac_2.c_list
try {
next_mark = delay_mark_tile(list)
@@ -264,11 +249,12 @@ class tutorial.chapter_04 extends basic_chapter
catch(ev) {
return 0
}
- if(next_mark && pot0 == 1){
- pot1=1
+ if(next_mark && pot[0] == 1){
+ pot[1]=1
}
}
- else if (pot2==0 || pot3==0){
+ else if (pot[2]==0 || pot[3]==0){
+ persistent.ch_sub_step = 1
local list = fac_1.c_list
try {
next_mark = delay_mark_tile(list)
@@ -276,66 +262,69 @@ class tutorial.chapter_04 extends basic_chapter
catch(ev) {
return 0
}
- if(next_mark && pot2 == 1){
- pot3=1
+ if(next_mark && pot[2] == 1){
+ pot[3]=1
}
}
- else if (pot3==1 && pot4==0){
+ else if (pot[3]==1 && pot[4]==0){
this.next_step()
}
- return 5
+ //return 5
break;
case 2:
+ persistent.ch_max_sub_steps = 0
//Para los Muelles
- local siz = dock_list1.len()
- local c_list = dock_list1
+ local c_list = ch4_ship1_halts
local name = translate("Build a Dock here!.")
local good = good_alias.goods
local label = true
- local all_stop = is_stop_building(siz, c_list, name, good, label)
+ local all_stop = is_stop_building(c_list, name, good, label)
if (all_stop) {
this.next_step()
}
- return 5
+ //return 5
break;
case 3:
//Para Astillero
- local t1 = my_tile(c_dep1)
+ local t1 = my_tile(ship_depot)
local depot = t1.find_object(mo_depot_water)
if (!depot){
- label_x.create(c_dep1, player_x(pl), translate("Build Shipyard here!."))
+ label_x.create(ship_depot, pl_unown, translate("Build Shipyard here!."))
}
else{
t1.remove_object(player_x(1), mo_label)
- pot0=1
+ pot[0]=1
}
- if (pot1==1){
+ if (pot[1]==1){
this.next_step()
}
- return 10+percentage
+ //return 10+percentage
break
case 4:
cov_cir = get_convoy_nr((ch4_cov_lim1.a), d1_cnr)
- if (cov_cir == d1_cnr){
+ if ( cov_cir == d1_cnr ){
reset_stop_flag()
this.next_step()
}
- return 50
+ //return 50
break
case 5:
+ persistent.ch_max_sub_steps = 3
+ persistent.ch_sub_step = 0
+
//Para el canal acuatico
- if (pot0==0){
+ if (pot[0]==0){
//Inicio del canal
- local c_start = coord(c1_way.a.x, c1_way.a.y)
+ local c_start = coord(way4_cannal[0].x, way4_cannal[0].y)
local t_start = my_tile(c_start)
local way_start = t_start.find_object(mo_way)
if (way_start && way_start.get_desc().get_topspeed()==0){
t_start.mark()
- label_x.create(c_start, player_x(1), translate("Build Canal here!."))
+ label_x.create(c_start, pl_unown, translate("Build Canal here!."))
}
else{
t_start.unmark()
@@ -343,20 +332,20 @@ class tutorial.chapter_04 extends basic_chapter
}
//Final del canal
- local c_end = coord(c1_way.b.x, c1_way.b.y)
+ local c_end = coord(way4_cannal[1].x, way4_cannal[1].y)
local t_end = my_tile(c_end)
local way_end = t_end.find_object(mo_way)
if (way_end && way_end.get_desc().get_topspeed()==0){
t_end.mark()
- label_x.create(c_end, player_x(1), translate("Build Canal here!."))
+ label_x.create(c_end, pl_unown, translate("Build Canal here!."))
}
else{
t_end.unmark()
t_end.remove_object(player_x(1), mo_label)
}
- local coora = {x = c1_way.a.x, y = c1_way.a.y, z = c1_way.a.z }
- local coorb = {x = c1_way.b.x, y = c1_way.b.y, z = c1_way.b.z }
+ local coora = {x = way4_cannal[0].x, y = way4_cannal[0].y, z = way4_cannal[0].z }
+ local coorb = {x = way4_cannal[1].x, y = way4_cannal[1].y, z = way4_cannal[1].z }
local obj = false
local dir = 6
@@ -366,266 +355,258 @@ class tutorial.chapter_04 extends basic_chapter
local fullway = update_way(coora, coorb, vel_min, wt) //test
if (fullway.result){
- pot0=1
+ pot[0]=1
}
else
c_way = fullway.c
}
//Para el cuarto muelle
- else if (pot0==1 && pot1==0){
- local t = my_tile(sch_list2[1])
+ else if (pot[0]==1 && pot[1]==0){
+ persistent.ch_sub_step = 2
+ local t = my_tile(ch4_ship2_halts[1]) //sch_list2
local dock4 = t.find_object(mo_building)
public_label(t, translate("Build a Dock here!."))
if(dock4){
- if(is_station_build(0, sch_list2[1], good_alias.goods)==null){
+ if(is_station_build(0, ch4_ship2_halts[1], good_alias.goods)==null){ //sch_list2
t.remove_object(player_x(1), mo_label)
- pot1=1
+ pot[1]=1
}
}
}
//Vehiculos en circulacion
- else if (pot1==1 && pot2==0){
+ else if (pot[1]==1 && pot[2]==0){
+ persistent.ch_sub_step = 1
cov_cir = get_convoy_nr((ch4_cov_lim2.a ), d2_cnr)
if (cov_cir==d2_cnr)
- pot2=1
+ pot[2]=1
}
- if (pot2==1 && pot3==0){
+ if (pot[2]==1 && pot[3]==0){
reset_stop_flag()
this.next_step()
}
- return 65
+ //return 65
break
case 6:
//Para los Muelles
- local siz = dock_list2.len()
- local c_list = dock_list2
+ local c_list = ch4_ship3_halts
local name = translate("Build a Dock here!.")
local good = good_alias.passa
local label = true
- local all_stop = is_stop_building(siz, c_list, name, good, label)
+ local all_stop = is_stop_building(c_list, name, good, label)
if (all_stop) {
this.next_step()
}
- return 0
+ //return 0
break
case 7:
- local c_dep = this.my_tile(c_dep1)
- local line_name = line1_name
- set_convoy_schedule(pl,c_dep, gl_wt, line_name)
+ local c_dep = this.my_tile(ship_depot)
+ local line_name = line1_name
+ set_convoy_schedule(pl, c_dep, gl_wt, line_name)
if(current_cov == ch4_cov_lim3.b){
this.next_step()
}
- return 0
+ //return 0
break
case 8:
reset_stop_flag()
this.next_step()
- return 0
+ //return 0
break
case 9:
this.step=1
persistent.step=1
persistent.status.step = 1
- return 100
+ //return 100
break
}
- percentage=(this.step-1)+1
+ local percentage = chapter_percentage(persistent.ch_max_steps, chapter_step, persistent.ch_max_sub_steps, persistent.ch_sub_step)
return percentage
}
function is_work_allowed_here(pl, tool_id, name, pos, tool) {
- glpos = coord3d(pos.x, pos.y, pos.z)
- local t = tile_x(pos.x, pos.y, pos.z)
- local ribi = 0
- local wt = 0
- local slope = t.get_slope()
- local way = t.find_object(mo_way)
- local bridge = t.find_object(mo_bridge)
- local label = t.find_object(mo_label)
- local building = t.find_object(mo_building)
- local sign = t.find_object(mo_signal)
- local roadsign = t.find_object(mo_roadsign)
+ glpos = pos
+ //local t = tile_x(pos.x, pos.y, pos.z)
+ //local ribi = 0
+ //local wt = 0
+ //local slope = t.get_slope()
+ //local way = t.find_object(mo_way)
+ //local bridge = t.find_object(mo_bridge)
+ //local building = t.find_object(mo_building)
+ //local sign = t.find_object(mo_signal)
+ //local roadsign = t.find_object(mo_roadsign)
local fac_1 = factory_data.rawget("4")
local fac_2 = factory_data.rawget("5")
local fac_3 = factory_data.rawget("6")
- if (way){
+ /*if (way){
wt = way.get_waytype()
if (tool_id!=4111)
ribi = way.get_dirs()
//if (!t.has_way(gl_wt))
//ribi = 0
- }
- local result = translate("Action not allowed") // null is equivalent to 'allowed'
+ }*/
+ local result = get_message(2) //translate("Action not allowed") // null is equivalent to 'allowed'
//glbpos = coord3d(pos.x,pos.y,pos.y)
gltool = tool_id
switch (this.step) {
case 1:
- if (tool_id == 4096){
- if (pot0==0){
- local list = fac_2.c_list
- foreach(t in list){
- if(pos.x == t.x && pos.y == t.y) {
- pot0 = 1
- return null
- }
+ if ( tool_id == 4096 ) {
+ if ( pot[0] == 0 ) {
+ if ( search_tile_in_tiles(fac_2.c_list, pos) ) {
+ pot[0] = 1
+ return null
}
}
- else if (pot1==1){
- local list = fac_1.c_list
- foreach(t in list){
- if(pos.x == t.x && pos.y == t.y) {
- pot2 = 1
- return null
- }
+ else if ( pot[1] == 1 ) {
+ if ( search_tile_in_tiles(fac_1.c_list, pos) ) {
+ pot[2] = 1
+ return null
}
}
}
else
- return translate("You must use the inspection tool")+" ("+pos.tostring()+")."
+ return tile_message(9, pos) //translate("You must use the inspection tool")+" ("+pos.tostring()+")."
break;
//Construyendo los Muelles
case 2:
- local c_list = dock_list1
- local good = good_alias.goods
- if((tool_id != 4096))
- return is_dock_build(pos, tool_id, c_list, good)
+ if ( tool_id == tool_build_station ) {
+ // check selected halt accept goods
+ local s = check_select_station(name, wt_water, good_alias.goods)
+ if ( s != null ) return s
+
+ return is_dock_build(pos, tool_id, ch4_ship1_halts, good_alias.goods)
+ } else if ( tool_id == 4096 ) {
+ return null
+ }
break
case 3:
//Primer Astillero
- if (pos.x==c_dep1.x && pos.y==c_dep1.y){
- if (pot0==0){
- if (tool_id == tool_build_depot){
- pot0=1
+ if ( pos.x == ship_depot.x && pos.y == ship_depot.y ) {
+ if ( pot[0] == 0) {
+ if (tool_id == tool_build_depot) {
+ pot[0]=1
return null
}
}
- else if (pot0==1 && pot1==0){
- if (tool_id == 4096){
- pot1=1
+ else if (pot[0] == 1 && pot[1] == 0) {
+ if (tool_id == 4096) {
+ pot[1]=1
return null
}
}
}
- else if (pot0==0)
- result = translate("Place the shipyard here")+" ("+c_dep1.tostring()+")."
+ else if (pot[0]==0)
+ result = get_tile_message(14, ship_depot) //translate("Place the shipyard here")+" ("+ship_depot.tostring()+")."
break
//Enrutar barcos
case 4:
- if (tool_id==4108){
- local c_list = sch_list1 //[sch_list1[1], sch_list1[0]] //Lista de todas las paradas de autobus
- local c_dep = c_dep1 //Coordeadas del deposito
- local siz = c_list.len() //Numero de paradas
- result = translate("The route is complete, now you may dispatch the vehicle from the depot")+" ("+c_dep.tostring()+")."
- return is_stop_allowed_ex(result, siz, c_list, pos, gl_wt)
+ if ( tool_id == 4108 ) {
+ local c_list = [coord_fac_4] //Lista de todas las paradas de autobus
+ c_list.append(ch4_ship1_halts[0])
+ return is_stop_allowed_ex(ship_depot, c_list, pos, gl_wt)
}
break
case 5:
- if (pot0==0){
- if(pos.x==c1_way.a.x && pos.y==c1_way.a.y){
- if(tool_id==tool_remove_way || tool_id==4097)
+ if (pot[0]==0){
+ if ( pos.x == way4_cannal[0].x && pos.y == way4_cannal[0].y ) {
+ if ( tool_id == tool_remove_way || tool_id == 4097 )
return result
- }
- if (pos.x>=c1_way_lim.a.x && pos.y>=c1_way_lim.a.y && pos.x<=c1_way_lim.b.x && pos.y<=c1_way_lim.b.y){
- if (tool_id == tool_build_way && way && wt == wt_water)
+ }
+ if (pos.x >= c_cannel_lim.a.x && pos.y >= c_cannel_lim.a.y && pos.x <= c_cannel_lim.b.x && pos.y <= c_cannel_lim.b.y) {
+ local way = tile_x(pos.x, pos.y, pos.z).find_object(mo_way)
+ if (tool_id == tool_build_way && way && way.get_waytype() == wt_water)
return null
}
}
//Cuarto muelle
- else if(pot0==1 && pot1==0){
- if(my_tile(sch_list2[1]).find_object(mo_building)){
+ else if(pot[0]==1 && pot[1]==0){
+ if ( my_tile(ch4_ship2_halts[1]).find_object(mo_building) ) {
if (tool_id==4097)
return null
- if (is_station_build(0, sch_list2[1], good_alias.goods)!=null)
- return format(translate("Dock No.%d must accept goods"),4)+" ("+sch_list2[1].tostring()+")."
+ if ( is_station_build(0, ch4_ship2_halts[1], good_alias.goods) != null )
+ return get_tiledata_message(4, 4, ch4_ship2_halts[1]) //format(translate("Dock No.%d must accept goods"),4)+" ("+ch4_ship2_halts[1].tostring()+")."
}
- if(pos.x==sch_list2[1].x && pos.y==sch_list2[1].y){
- if(tool_id==tool_build_station){
+ if ( pos.x == ch4_ship2_halts[1].x && pos.y == ch4_ship2_halts[1].y ) {
+ if ( tool_id == tool_build_station ) {
return null
}
}
}
//Enrutar Barcos
- else if (pot1==1 && pot2==0){
- if (tool_id==4108){
- local c_list = sch_list2 //Lista de todas las paradas de autobus
- local c_dep = c_dep1 //Coordeadas del deposito
- local siz = c_list.len() //Numero de paradas
- result = translate("The route is complete, now you may dispatch the vehicle from the depot")+" ("+c_dep.tostring()+")."
- return is_stop_allowed_ex(result, siz, c_list, pos, gl_wt)
+ else if ( pot[1] == 1 && pot[2] == 0 ) {
+ if ( tool_id == 4108 ) {
+ return is_stop_allowed_ex(ship_depot, ch4_ship2_halts, pos, gl_wt)
}
}
break
case 6:
- local c_list = dock_list2
- local good = good_alias.passa
- if((tool_id != 4096))
- return is_dock_build(pos, tool_id, c_list, good)
+ if( tool_id == tool_build_station ) {
+ // check selected halt accept passenger
+ local s = check_select_station(name, wt_water, good_alias.passa)
+ if ( s != null ) return s
+ return is_dock_build(pos, tool_id, ch4_ship3_halts, good_alias.passa)
+ } else if ( tool_id == 4096 ) {
+ return null
+ }
break
case 7:
- if (tool_id==4108){
- local c_list = sch_list3 //Lista de todas las paradas de autobus
- local c_dep = c_dep1 //Coordeadas del deposito
- local siz = c_list.len()//Numero de paradas
- result = translate("The route is complete, now you may dispatch the vehicle from the depot")+" ("+c_dep.tostring()+")."
- return is_stop_allowed_ex(result, siz, c_list, pos, gl_wt)
+ if ( tool_id == 4108 ) {
+ return is_stop_allowed_ex(ship_depot, ch4_schedule_line3, pos, gl_wt)
}
break
}
+
+ local label = tile_x(pos.x, pos.y, pos.z).find_object(mo_label)
if (tool_id == 4096){
- if (label && label.get_text()=="X")
- return translate("Indicates the limits for using construction tools")+" ("+pos.tostring()+")."
+ if ( label && label.get_text() == "X" )
+ return get_tile_message(5, pos) //translate("Indicates the limits for using construction tools")+" ("+pos.tostring()+")."
else if (label)
return translate("Text label")+" ("+pos.tostring()+")."
result = null // Always allow query tool
}
- if (label && label.get_text()=="X")
- return translate("Indicates the limits for using construction tools")+" ("+pos.tostring()+")."
+ if ( label && label.get_text() == "X" )
+ return get_tile_message(5, pos) //translate("Indicates the limits for using construction tools")+" ("+pos.tostring()+")."
return result
}
function is_schedule_allowed(pl, schedule) {
local result=null // null is equivalent to 'allowed'
- local nr = schedule.entries.len()
switch (this.step) {
case 4:
local selc = 0
local load = ship1_load
local time = ship1_wait
- local c_list = sch_list1 //[sch_list1[1], sch_list1[0]]
- local siz = c_list.len()
- return set_schedule_list(result, pl, schedule, nr, selc, load, time, c_list, siz)
+ local c_list = [coord_fac_4]
+ c_list.append(ch4_ship1_halts[0])
+ return compare_schedule(result, pl, schedule, selc, load, time, c_list, false)
break
case 5:
local selc = 0
local load = ship1_load
local time = ship1_wait
- local c_list = sch_list2
- local siz = c_list.len()
- return set_schedule_list(result, pl, schedule, nr, selc, load, time, c_list, siz)
+ local c_list = ch4_ship2_halts //sch_list2
+ return compare_schedule(result, pl, schedule, selc, load, time, c_list, false)
break
case 7:
- local selc = 0
+ local selc = get_waiting_halt(5)
local load = ship2_load
local time = ship2_wait
- local c_list = sch_list3
- local siz = c_list.len()
- local line = true
- result = set_schedule_list(result, pl, schedule, nr, selc, load, time, c_list, siz, line)
+ local c_list = ch4_schedule_line3 //sch_list3
+ return compare_schedule(result, pl, schedule, selc, load, time, c_list, true)
if(result == null){
local line_name = line1_name
update_convoy_schedule(pl, gl_wt, line_name, schedule)
@@ -633,7 +614,7 @@ class tutorial.chapter_04 extends basic_chapter
return result
break
}
- return translate("Action not allowed")
+ return get_message(2) //translate("Action not allowed")
}
function is_convoy_allowed(pl, convoy, depot)
@@ -642,8 +623,8 @@ class tutorial.chapter_04 extends basic_chapter
local wt = gl_wt
switch (this.step) {
case 4:
- if ((depot.x != c_dep1.x)||(depot.y != c_dep1.y))
- return translate("You must select the deposit located in")+" ("+c_dep1.tostring()+")."
+ if ((depot.x != ship_depot.x)||(depot.y != ship_depot.y))
+ return get_tile_message(15, ship_depot) //translate("You must select the deposit located in")+" ("+ship_depot.tostring()+")."
local cov = d1_cnr
local in_dep = true
local veh = 1
@@ -654,7 +635,7 @@ class tutorial.chapter_04 extends basic_chapter
//Para arracar varios vehiculos
local id_start = ch4_cov_lim1.a
local id_end = ch4_cov_lim1.b
- local cir_nr = get_convoy_number_exp(sch_list1[1], depot, id_start, id_end)
+ local cir_nr = get_convoy_number_exp(ch4_ship1_halts[0], depot, id_start, id_end)
cov -= cir_nr
result = is_convoy_correct(depot,cov,veh,good_list,name,st_tile)
@@ -668,15 +649,16 @@ class tutorial.chapter_04 extends basic_chapter
local selc = 0
local load = ship1_load
local time = ship1_wait
- local c_list = sch_list1
+ local c_list = [coord_fac_4]
+ c_list.append(ch4_ship1_halts[0])
local siz = c_list.len()
- return set_schedule_convoy(result, pl, cov, convoy, selc, load, time, c_list, siz)
+ return compare_schedule_convoy(result, pl, cov, convoy, selc, load, time, c_list, siz)
}
break
case 5:
- if ((depot.x != c_dep1.x)||(depot.y != c_dep1.y))
- return translate("You must select the deposit located in")+" ("+c_dep1.tostring()+")."
+ if ((depot.x != ship_depot.x)||(depot.y != ship_depot.y))
+ return get_tile_message(15, ship_depot) //translate("You must select the deposit located in")+" ("+ship_depot.tostring()+")."
local cov = d2_cnr
local in_dep = true
local veh = 1
@@ -687,7 +669,7 @@ class tutorial.chapter_04 extends basic_chapter
//Para arracar varios vehiculos
local id_start = ch4_cov_lim2.a
local id_end = ch4_cov_lim2.b
- local cir_nr = get_convoy_number_exp(sch_list2[1], depot, id_start, id_end)
+ local cir_nr = get_convoy_number_exp(ch4_ship2_halts[1], depot, id_start, id_end)
cov -= cir_nr
result = is_convoy_correct(depot,cov,veh,good_list,name,st_tile)
@@ -699,14 +681,14 @@ class tutorial.chapter_04 extends basic_chapter
local selc = 0
local load = ship1_load
local time = ship1_wait
- local c_list = sch_list2
+ local c_list = ch4_ship2_halts
local siz = c_list.len()
- return set_schedule_convoy(result, pl, cov, convoy, selc, load, time, c_list, siz)
+ return compare_schedule_convoy(result, pl, cov, convoy, selc, load, time, c_list, siz)
}
break
case 7:
- if ((depot.x != c_dep1.x)||(depot.y != c_dep1.y))
- return translate("You must select the deposit located in")+" ("+c_dep1.tostring()+")."
+ if ((depot.x != ship_depot.x)||(depot.y != ship_depot.y))
+ return get_tile_message(15, ship_depot) //translate("You must select the deposit located in")+" ("+ship_depot.tostring()+")."
local cov = 1
local veh = 1
local good_list = [good_desc_x(good_alias.passa).get_catg_index()] //Passengers
@@ -720,16 +702,16 @@ class tutorial.chapter_04 extends basic_chapter
return ship_result_message(result, translate(name), good, veh, cov)
}
if (current_cov>ch4_cov_lim3.a && current_cov
"
+ for(local j=0;j
"
}
else {
- tran_tx +=format("%s %d ",trf_name ,j+1)+"("+transf_list[j].tostring()+") "+ok_tx+"
"
+ tran_tx +=format("%s %d ",trf_name ,j+1)+"("+coord3d_to_string(way5_power[j])+") "+ok_tx+"
"
}
}
text.tran = tran_tx
}
- else if (pot0==1 && pot1==0){
+ else if (pot[0]==1 && pot[1]==0){
text = ttextfile("chapter_05/03_2-2.txt")
text.tx="[2/2]"
- text.powerline_tool = translate(get_obj_ch5(3)) // tool powerline
+ text.powerline_tool = translate(sc_power_name) // tool powerline
text.toolbar = toolbar
local tran_tx = ""
local f_list = fab_list
for(local j=0;j
"
}
else {
@@ -212,31 +193,42 @@ class tutorial.chapter_05 extends basic_chapter
}
break
case 4:
- if (pot0==1 && pot1==0){
+ if (pot[0]==1 && pot[1]==0){
text = ttextfile("chapter_05/04_1-3.txt")
text.tx="[1/3]"
- text.toolbar = toolbar
+
+ // set image for button by different in paksets
+ text.img_road_menu = get_gui_img("road_halts")
+ text.img_post_menu = get_gui_img("post_menu")
+
+ //check_post_extension(city1_post_halts)
+ text.toolbar_extension = translate_objects_list.tools_mail_extension
+ text.toolbar_halt = translate_objects_list.tools_road_stations
+
local st_tx = ""
- local list = obj_list1 //Lista de build
- local siz = list.len()
- for(local j=0;j
"
+ local list = city1_post_halts //extensions_tiles //Lista de build
+ for ( local j = 0; j < list.len(); j++ ) {
+ //local c = coord(c_list[j].x, c_list[j].y)
+ local tile = my_tile(list[j])
+ local st_halt = tile.get_halt()
+ //local name = list[j].name == ""? get_good_text(list[j].good) : translate(list[j].name)
+ local name = st_halt.get_name() //translate(get_obj_ch5(6))
+ if ( glsw[j] == 0 ) {
+ st_tx +=format("%s:
"
}
else {
- st_tx +=format("%d %s ", j+1, name)+"("+list[j].c.tostring()+")"+ok_tx+"
"
+ st_tx +=format("%s: %s ", translate("Stop"), name)+"("+list[j].tostring()+")"+ok_tx+"
"
}
}
text.st = st_tx
}
- else if (pot1==1 && pot2==0 || (current_cov> ch5_cov_lim2.a && current_cov< ch5_cov_lim2.b)){
+ else if (pot[1]==1 && pot[2]==0 || (current_cov> ch5_cov_lim2.a && current_cov< ch5_cov_lim2.b)){
text = ttextfile("chapter_05/04_2-3.txt")
text.tx = "[2/3]"
local list_tx = ""
- local c_list = sch_list2
- local siz = c_list.len()
- for (local j=0;j
", translate("Stop"), j+1, st_halt.get_name(), translate("OK"))
}
}
- local c = coord(c_list[0].x, c_list[0].y)
+
+ if ( pot[1]==1 ) {
+ new_set_waiting_halt(city1_post_halts)
+ }
+ local c = coord(c_list[veh2_waiting_halt].x, c_list[veh2_waiting_halt].y)
local tile = my_tile(c)
- text.stnam = "1) "+tile.get_halt().get_name()+" ("+c.tostring()+")"
+ text.stnam = (veh2_waiting_halt+1) + ") "+tile.get_halt().get_name()+" ("+c.tostring()+")"
text.list = list_tx
- text.dep = c_dep2.href("("+c_dep2.tostring()+")")
+ text.dep = city1_road_depot.href("("+city1_road_depot.tostring()+")")
text.veh = translate(veh2_obj)
text.all_cov = d2_cnr
text.cir = cov_cir
text.load = veh2_load
text.wait = get_wait_time_text(veh2_wait)
- text.nr = siz
+ text.nr = c_list.len()
}
- else if (pot2==1 && pot3==0 || (current_cov> ch5_cov_lim3.a && current_cov< ch5_cov_lim3.b)){
+ else if (pot[2]==1 && pot[3]==0 || (current_cov> ch5_cov_lim3.a && current_cov< ch5_cov_lim3.b)){
text = ttextfile("chapter_05/04_3-3.txt")
text.tx = "[3/3]"
local list_tx = ""
- local c_list = sch_list3
+ local c_list = ch5_post_ship_halts
local siz = c_list.len()
for (local j=0;j
", translate("Stop"), j+1, st_halt.get_name(), translate("OK"))
}
}
- local c = coord(c_list[0].x, c_list[0].y)
+ local c = coord(c_list[get_waiting_halt(10)].x, c_list[get_waiting_halt(10)].y)
local tile = my_tile(c)
- text.stnam = "1) "+tile.get_halt().get_name()+" ("+c.tostring()+")"
+ text.stnam = (get_waiting_halt(10)+1) + ") "+tile.get_halt().get_name()+" ("+c.tostring()+")"
text.list = list_tx
- text.dep = c_dep3.href("("+c_dep3.tostring()+")")
+ text.dep = ship_depot.href("("+ship_depot.tostring()+")")
text.ship = translate(veh3_obj)
text.load = veh3_load
text.wait = get_wait_time_text(veh3_wait)
text.nr = siz
}
break
- case 5:
-
- break
- case 6:
-
- break
- case 7:
- break
-
- case 8:
- break
-
- case 9:
- break
}
text.f1 = fab_list[0].c.href(""+fab_list[0].name+" ("+fab_list[0].c.tostring()+")")+""
@@ -326,7 +308,6 @@ class tutorial.chapter_05 extends basic_chapter
}
function is_chapter_completed(pl) {
- local percentage=0
save_glsw()
save_pot()
@@ -337,23 +318,28 @@ class tutorial.chapter_05 extends basic_chapter
factory_data.rawget("8")
]
+ persistent.ch_max_steps = 4
+ local chapter_step = persistent.step
+ persistent.ch_max_sub_steps = 0 // count all sub steps
+ persistent.ch_sub_step = 0 // actual sub step
+
switch (this.step) {
case 1:
- if(pot0==1){
+ if(pot[0]==1){
//Creea un cuadro label
local opt = 0
local del = false
local text = "X"
- label_bord(c_way_lim1.a, c_way_lim1.b, opt, del, text)
+ label_bord(way5_fac7_fac8_lim.a, way5_fac7_fac8_lim.b, opt, del, text)
this.next_step()
}
- return 0
- break;
+ //return 0
+ break;
case 2:
- if (pot0==0){
- local coora = coord3d(c_way1.a.x,c_way1.a.y,c_way1.a.z)
- local coorb = coord3d(c_way1.b.x,c_way1.b.y,c_way1.b.z)
+ if (pot[0]==0){
+ local coora = coord3d(way5_fac7_fac8[0].x,way5_fac7_fac8[0].y,way5_fac7_fac8[0].z)
+ local coorb = coord3d(way5_fac7_fac8[1].x,way5_fac7_fac8[1].y,way5_fac7_fac8[1].z)
local t_start = tile_x(coora.x,coora.y,coora.z)
local t_end = tile_x(coorb.x,coorb.y,coorb.z)
@@ -363,7 +349,7 @@ class tutorial.chapter_05 extends basic_chapter
if(label.get_text()== "X")
t_start.remove_object(player_x(1), mo_label)
- label_x.create(t_start, player_x(pl), translate("Place the Road here!."))
+ label_x.create(t_start, pl_unown, translate("Place the Road here!."))
}
else t_start.remove_object(player_x(1), mo_label)
@@ -372,42 +358,41 @@ class tutorial.chapter_05 extends basic_chapter
if(label.get_text()== "X")
t_end.remove_object(player_x(1), mo_label)
- label_x.create(t_end, player_x(pl), translate("Place the Road here!."))
+ label_x.create(t_end, pl_unown, translate("Place the Road here!."))
}
else t_end.remove_object(player_x(1), mo_label)
//Comprueba la conexion de la via
local obj = false
- local dir = c_way1.dir
+ local dir = 2//way5_fac7_fac8[0].dir
local r_way = get_fullway(coora, coorb, dir, obj)
- if (r_way.r){
+ if (test_select_way(way5_fac7_fac8[1], way5_fac7_fac8[0], wt_road)){
//elimina el cuadro label
local opt = 0
local del = true
local text = "X"
- label_bord(c_way_lim1.a, c_way_lim1.b, opt, del, text)
+ label_bord(way5_fac7_fac8_lim.a, way5_fac7_fac8_lim.b, opt, del, text)
- pot0=1
- return 10
+ pot[0]=1
+ //return 10
}
}
- else if (pot0==1 && pot1==0){
- local siz = sch_list1.len()
- local c_list = sch_list1
+ else if (pot[0]==1 && pot[1]==0){
+ local c_list = way5_fac7_fac8
local name = translate("Place Stop here!.")
local load = good_alias.goods
- local all_stop = is_stop_building(siz, c_list, name, load)
+ local all_stop = is_stop_building(c_list, name, load)
if (all_stop){
reset_glsw()
- pot1=1
+ pot[1]=1
}
}
- else if (pot1==1 && pot2==0){
- local tile = my_tile(c_dep1_lim.a)
+ else if (pot[1]==1 && pot[2]==0){
+ local tile = my_tile(ch5_road_depot.a)
if(!tile.find_object(mo_way)){
- label_x.create(c_dep1_lim.a, player_x(pl), translate("Place the Road here!."))
+ label_x.create(ch5_road_depot.a, pl_unown, translate("Place the Road here!."))
}
else {
if (!tile.find_object(mo_depot_road)){
@@ -416,23 +401,24 @@ class tutorial.chapter_05 extends basic_chapter
}
else{
tile.remove_object(player_x(1), mo_label)
- pot2=1
+ pot[2]=1
}
}
}
- else if (pot2==1 && pot3==0){
+ else if (pot[2]==1 && pot[3]==0){
cov_cir = get_convoy_nr((ch5_cov_lim1.a), d1_cnr)
if (cov_cir == d1_cnr){
this.next_step()
}
}
- return 0
- break;
+ //return 0
+ break;
case 3:
- if (pot0==0){
- for(local j=0;j
", translate("Stop"), j+1, st_halt.get_name(), translate("OK"))
+ continue
+ }
+ if(tmpsw[j]==0 ){
+ list_tx += format("
", translate("Stop"), j+1, c.href(st_halt.get_name()+" ("+c.tostring()+")"))
+ }
+ else{
+ list_tx += format("%s %d: %s %s
", translate("Stop"), j+1, st_halt.get_name(), translate("OK"))
+ }
+ }
+ local c = coord(c_list[get_waiting_halt(6)].x, c_list[get_waiting_halt(6)].y)
+ text.stnam = (get_waiting_halt(6)+1) + ") " + my_tile(c).get_halt().get_name()+" ("+c.tostring()+")"
+ text.list = list_tx
text.plane = translate(plane1_obj)
- text.load = plane1_load
- text.wait = get_wait_time_text(plane1_wait)
+ text.load = set_loading_capacity(5)
+ text.wait = get_wait_time_text(set_waiting_time(8))
text.cnr = d1_cnr
- break
+
+
+ break
case 3:
local list_tx = ""
- local c_list = sch_list2
+ local c_list = city1_halt_airport
local siz = c_list.len()
for (local j=0;j
", translate("Stop"), j+1, st_halt.get_name(), translate("OK"))
continue
@@ -168,24 +184,31 @@ class tutorial.chapter_06 extends basic_chapter
list_tx += format("%s %d: %s %s
", translate("Stop"), j+1, st_halt.get_name(), translate("OK"))
}
}
- local c = coord(c_list[0].x, c_list[0].y)
- text.stnam = "1) "+my_tile(c).get_halt().get_name()+" ("+c.tostring()+")"
+
+ local c = coord(c_list[get_waiting_halt(7)].x, c_list[get_waiting_halt(7)].y)
+ text.stnam = (get_waiting_halt(7)+1) + ") " + my_tile(c).get_halt().get_name()+" ("+c.tostring()+")"
text.stx = list_tx
- text.dep2 = " ("+c_dep2.tostring()+")"
- text.load = veh1_load
- text.wait = get_wait_time_text(veh1_wait)
+ text.dep2 = " ("+city1_road_depot.tostring()+")"
+ text.load = set_loading_capacity(6)
+ text.wait = get_wait_time_text(set_waiting_time(9))
text.cnr = d2_cnr
break
case 4:
local list_tx = ""
- local c_list = sch_list3
+ local c_list = city7_halt
local siz = c_list.len()
for (local j=0;j
", translate("Stop"), j+1, st_halt.get_name(), translate("OK"))
continue
@@ -197,44 +220,41 @@ class tutorial.chapter_06 extends basic_chapter
list_tx += format("%s %d: %s %s
", translate("Stop"), j+1, st_halt.get_name(), translate("OK"))
}
}
- local c = coord(c_list[0].x, c_list[0].y)
- text.stnam = "1) "+my_tile(c).get_halt().get_name()+" ("+c.tostring()+")"
+ local c = coord(c_list[get_waiting_halt(8)].x, c_list[get_waiting_halt(8)].y)
+ text.stnam = (get_waiting_halt(8)+1) + ") " + my_tile(c).get_halt().get_name()+" ("+c.tostring()+")"
text.stx = list_tx
- text.dep3 = " ("+c_dep3.tostring()+")"
+ text.dep3 = "("+city7_road_depot.tostring()+")"
- text.load = veh1_load
- text.wait = get_wait_time_text(veh1_wait)
+ text.load = set_loading_capacity(7)
+ text.wait = get_wait_time_text(set_waiting_time(10))
text.cnr = d3_cnr
break
- }
- local st1_halt = my_tile(sch_list1[0]).get_halt()
- local st2_halt = my_tile(sch_list1[1]).get_halt()
- if(st1_halt){
- text.sch1 = " "+st1_halt.get_name()+" ("+sch_list1[0].tostring()+")"
- text.sch2 = " "+st2_halt.get_name()+" ("+sch_list1[1].tostring()+")"
- }
+ }
+
text.w1name = translate(obj1_way_name)
text.w2name = translate(obj2_way_name)
text.bus1 = translate(veh1_obj)
text.bus2 = translate(veh2_obj)
- text.cit1 = cty1.c.href(cty1.name.tostring())
- text.cit2 = cty2.c.href(cty2.name.tostring())
- text.st1 = " ("+st1_pos.tostring()+")"
- text.st2 = " ("+st2_pos.tostring()+")"
- text.dep1 = " ("+c_dep1.tostring()+")"
+ text.cit1 = city1_tow.href(cty1.name.tostring())
+ text.cit2 = city7_tow.href(cty2.name.tostring())
+ text.dep1 = "("+ch6_air_depot.a.tostring()+")"
return text
}
function is_chapter_completed(pl) {
- local percentage=0
save_glsw()
save_pot()
+ persistent.ch_max_steps = 4
+ local chapter_step = persistent.step
+ persistent.ch_max_sub_steps = 0 // count all sub steps
+ persistent.ch_sub_step = 0 // actual sub step
+
switch (this.step) {
case 1:
- if (pot0==0){
+ if (pot[0]==0){
local tile = my_tile(c1_start)
c1_is_way = tile.find_object(mo_way)
@@ -246,15 +266,15 @@ class tutorial.chapter_06 extends basic_chapter
local fullway = check_way(ta, tb, wt, name_list, dir)
if (fullway.result){
c_way = coord(0,0)
- pot0=1
+ pot[0]=1
}
else
c_way = fullway.c
- return 5
+ //return 5
}
- else if (pot0==1 && pot1==0){
+ else if (pot[0]==1 && pot[1]==0){
local tile = my_tile(c2_start)
c2_is_way = tile.find_object(mo_way)
@@ -266,41 +286,41 @@ class tutorial.chapter_06 extends basic_chapter
local fullway = check_way(ta, tb, wt, name_list, dir)
if (fullway.result){
c_way = coord(0,0)
- pot1=1
+ pot[1]=1
}
else
c_way = fullway.c
- return 10
+ //return 10
}
- else if (pot1==1 && pot2==0){
- local tile = my_tile(st1_pos)
+ else if (pot[1]==1 && pot[2]==0){
+ local tile = my_tile(city1_city7_air[0])
local way = tile.find_object(mo_way)
local buil = tile.find_object(mo_building)
local name = translate("Build here")
public_label(tile, name)
if(way && buil){
tile.remove_object(player_x(1), mo_label)
- pot2 = 1
+ pot[2] = 1
}
- return 15
+ //return 15
}
- else if (pot2==1 && pot3==0){
- local tile = my_tile(st2_pos)
+ else if (pot[2]==1 && pot[3]==0){
+ local tile = my_tile(city1_halt_airport_extension[0])
local buil = tile.find_object(mo_building)
local name = translate("Build here")
public_label(tile, name)
if(buil){
tile.remove_object(player_x(1), mo_label)
- pot3 = 1
+ pot[3] = 1
}
- return 20
+ //return 20
}
- else if (pot3==1 && pot4==0){
- local tile = my_tile(c_dep1)
+ else if (pot[3]==1 && pot[4]==0){
+ local tile = my_tile(ch6_air_depot.a)
local way = tile.find_object(mo_way)
local depot = tile.find_object(mo_depot_air)
local name = translate("Build here")
@@ -308,19 +328,19 @@ class tutorial.chapter_06 extends basic_chapter
if(way && depot){
tile.remove_object(player_x(1), mo_label)
tile.remove_object(player_x(1), mo_label)
- pot4 = 1
+ pot[4] = 1
}
- return 25
+ //return 25
}
- else if (pot4==1 && pot5==0){
- local tile = my_tile(st1_pos)
+ else if (pot[4]==1 && pot[5]==0){
+ local tile = my_tile(city1_halt_airport[0])
local buil = tile.find_object(mo_building)
if(buil && buil.get_owner().nr == 1){
- pot5 = 1
+ pot[5] = 1
}
- return 30
+ //return 30
}
- else if (pot5==1 && pot6==0){
+ else if (pot[5]==1 && pot[6]==0){
this.next_step()
}
@@ -328,17 +348,31 @@ class tutorial.chapter_06 extends basic_chapter
case 2:
+ local c_dep = my_tile(ch6_air_depot.a)
+ local line_name = line1_name
+ set_convoy_schedule(pl, c_dep, wt_air, line_name)
+
+ local depot = depot_x(c_dep.x, c_dep.y, c_dep.z)
+ local cov_list = depot.get_convoy_list() //Lista de vehiculos en el deposito
+ local convoy = convoy_x(gcov_id)
+ if (cov_list.len()>=1){
+ convoy = cov_list[0]
+ }
+ local all_result = checks_convoy_schedule(convoy, pl)
+ sch_cov_correct = all_result.res == null ? true : false
+
if(current_cov == ch6_cov_lim1.b){
+ sch_cov_correct = false
this.next_step()
}
- return 50
+ //return 50
break;
case 3:
- local c_dep = this.my_tile(c_dep2)
- local line_name = line1_name
- set_convoy_schedule(pl, c_dep, wt_road, line_name)
+ local c_dep = my_tile(city1_road_depot)
+ local line_name = line2_name
+ set_convoy_schedule(pl, c_dep, wt_road, line_name)
local depot = depot_x(c_dep.x, c_dep.y, c_dep.z)
local cov_list = depot.get_convoy_list() //Lista de vehiculos en el deposito
@@ -351,25 +385,25 @@ class tutorial.chapter_06 extends basic_chapter
if(current_cov == ch6_cov_lim2.b){
sch_cov_correct = false
- this.next_step()
+ this.next_step()
}
- return 65
+ //return 65
break;
case 4:
- if (pot0==0){
- local tile = my_tile(c_dep3)
+ if (pot[0]==0){
+ local tile = my_tile(city7_road_depot)
local way = tile.find_object(mo_way)
local depot = tile.find_object(mo_depot_road)
if(way && depot){
- pot0 = 1
+ pot[0] = 1
}
- return 25
+ //return 25
}
- else if (pot0==1 && pot1==0){
- local c_dep = this.my_tile(c_dep3)
- local line_name = line2_name
- set_convoy_schedule(pl, c_dep, wt_road, line_name)
+ else if (pot[0]==1 && pot[1]==0){
+ local c_dep = my_tile(city7_road_depot)
+ local line_name = line3_name
+ set_convoy_schedule(pl, c_dep, wt_road, line_name)
local depot = depot_x(c_dep.x, c_dep.y, c_dep.z)
local cov_list = depot.get_convoy_list() //Lista de vehiculos en el deposito
@@ -385,24 +419,24 @@ class tutorial.chapter_06 extends basic_chapter
this.next_step()
}
}
- return 80
+ //return 80
break;
case 5:
this.step=1
persistent.step=1
persistent.status.step = 1
- return 100
+ //return 100
break;
- }
- percentage=(this.step-1)+1
- return percentage
+ }
+ local percentage = chapter_percentage(persistent.ch_max_steps, chapter_step, persistent.ch_max_sub_steps, persistent.ch_sub_step)
+ return percentage
}
function is_work_allowed_here(pl, tool_id, name, pos, tool) {
local result = null // null is equivalent to 'allowed'
- result = translate("Action not allowed")
+ result = get_message(2) //translate("Action not allowed")
local t = tile_x(pos.x, pos.y, pos.z)
local ribi = 0
local wt = 0
@@ -430,14 +464,20 @@ class tutorial.chapter_06 extends basic_chapter
if (tool_id==4096)
return null
+
switch (this.step) {
case 1:
local climate = square_x(pos.x, pos.y).get_climate()
//return climate
- if (pot0==0){
+ if (pot[0]==0){
if ((pos.x>=c1_track.a.x)&&(pos.y>=c1_track.a.y)&&(pos.x<=c1_track.b.x)&&(pos.y<=c1_track.b.y)){
- if (way && way.get_name() != obj1_way_name){
- if(tool_id == tool_remover || tool_id == tool_remove_way) return null
+
+ // check selected way
+ local s = check_select_way(name, wt_air, st_runway)
+ if ( s != null ) return s
+
+ if ( way && way.get_name() != obj1_way_name ) {
+ if ( tool_id == tool_remover || tool_id == tool_remove_way ) return null
result = format(translate("The track is not correct it must be: %s, use the 'Remove' tool"),translate(obj1_way_name)) + " ("+c1_start.tostring()+")."
@@ -447,15 +487,20 @@ class tutorial.chapter_06 extends basic_chapter
if(tool_id == tool_build_way) return null
}
- else return translate("Build here") + ": ("+c_way.tostring()+")!."
+ else return translate("Build here") + ": ("+coord3d_to_string(c_way)+")!."
}
- else if (pot0==1 && pot1==0){
+ else if (pot[0]==1 && pot[1]==0){
if (pos.x == c2_track.a.x && pos.y == c2_track.a.y){
if(tool_id == tool_remover || tool_id == tool_remove_way) return result
else if(tool_build_way) return null
}
if ((pos.x>=c2_track.a.x)&&(pos.y>=c2_track.a.y)&&(pos.x<=c2_track.b.x)&&(pos.y<=c2_track.b.y)){
+
+ // check selected way
+ local s = check_select_way(name, wt_air)
+ if ( s != null ) return s
+
if (way && way.get_name() != obj2_way_name){
if(tool_id == tool_remover || tool_id == tool_remove_way) return null
@@ -472,8 +517,8 @@ class tutorial.chapter_06 extends basic_chapter
else return translate("Build here") + ": ("+c_way.tostring()+")!."
}
- else if (pot1==1 && pot2==0){
- if(pos.x == st1_pos.x && pos.y == st1_pos.y){
+ else if (pot[1]==1 && pot[2]==0){
+ if(pos.x == city1_city7_air[0].x && pos.y == city1_city7_air[0].y){
if(tool_id == tool_build_way){
if (way){
return translate("The track is correct.")
@@ -487,11 +532,11 @@ class tutorial.chapter_06 extends basic_chapter
else return null
}
}
- else return translate("Build here") + ": ("+st1_pos.tostring()+")!."
+ else return translate("Build here") + ": ("+city1_halt_airport[0].tostring()+")!."
}
- else if (pot2==1 && pot3==0){
- if(pos.x == st2_pos.x && pos.y == st2_pos.y){
+ else if (pot[2]==1 && pot[3]==0){
+ if(pos.x == city1_halt_airport_extension[0].x && pos.y == city1_halt_airport_extension[0].y){
if(tool_id == tool_build_station){
if (buil){
return translate("There is already a station.")
@@ -499,11 +544,11 @@ class tutorial.chapter_06 extends basic_chapter
else return null
}
}
- else return translate("Build here") + ": ("+st2_pos.tostring()+")!."
+ else return translate("Build here") + ": ("+city1_halt_airport_extension[0].tostring()+")!."
}
- else if (pot3==1 && pot4==0){
- if((pos.x == c_dep_lim1.a.x && pos.y == c_dep_lim1.a.y) || (pos.x == c_dep_lim1.b.x && pos.y == c_dep_lim1.b.y)){
+ else if (pot[3]==1 && pot[4]==0){
+ if((pos.x == ch6_air_depot.b.x && pos.y == ch6_air_depot.b.y) || (pos.x == ch6_air_depot.a.x && pos.y == ch6_air_depot.a.y)){
if(tool_id == tool_build_way){
return null
}
@@ -514,10 +559,10 @@ class tutorial.chapter_06 extends basic_chapter
else return null
}
}
- else return translate("Build here") + ": ("+c_dep1.tostring()+")!."
+ else return translate("Build here") + ": ("+ch6_air_depot.a.tostring()+")!."
}
- else if (pot4==1 && pot5==0){
- if(pos.x == st1_pos.x && pos.y == st1_pos.y){
+ else if (pot[4]==1 && pot[5]==0){
+ if(pos.x == city1_halt_airport[0].x && pos.y == city1_halt_airport[0].y){
if(tool_id == tool_make_stop_public){
if(buil){
return null
@@ -525,7 +570,7 @@ class tutorial.chapter_06 extends basic_chapter
else return null
}
}
- else return translate("Click on the stop") + " ("+st1_pos.tostring()+")!."
+ else return translate("Click on the stop") + " ("+city1_halt_airport[0].tostring()+")!."
}
break;
@@ -533,37 +578,20 @@ class tutorial.chapter_06 extends basic_chapter
case 2:
if (tool_id==4108) {
- if (glsw[0]==0){
- if(pos.x == sch_list1[0].x && pos.y == sch_list1[0].y) {
- glsw[0]=1
- return null
- }
- else return translate("Click on the stop") + " ("+sch_list1[0].tostring()+")!."
- }
+ return is_stop_allowed(ch6_air_depot.a, city1_city7_air, pos)
- if (glsw[1]==0 && glsw[0]==1){
- if(pos.x == sch_list1[1].x && pos.y == sch_list1[1].y) {
- glsw[1]=1
- return null
- }
- else return translate("Click on the stop") + " ("+sch_list1[1].tostring()+")!."
- }
}
break;
case 3:
if (tool_id==4108) {
- local c_list = sch_list2 //Lista de todas las paradas de autobus
- local c_dep = c_dep2 //Coordeadas del deposito
- local siz = c_list.len() //Numero de paradas
- result = translate("The route is complete, now you may dispatch the vehicle from the depot")+" ("+c_dep.tostring()+")."
- return is_stop_allowed(result, siz, c_list, pos)
+ return is_stop_allowed(city1_road_depot, city1_halt_airport, pos)
}
break;
case 4:
- if (pot0==0){
- if(pos.x == c_dep3.x && pos.y == c_dep3.y){
+ if (pot[0]==0){
+ if(pos.x == city7_road_depot.x && pos.y == city7_road_depot.y){
if(tool_id == tool_build_depot){
if(depot){
return translate("The Depot is correct.")
@@ -571,15 +599,11 @@ class tutorial.chapter_06 extends basic_chapter
else return null
}
}
- else return translate("Build here") + ": ("+c_dep3.tostring()+")!."
+ else return translate("Build here") + ": ("+city7_road_depot.tostring()+")!."
}
- if (pot0==1 && pot1==0){
+ if (pot[0]==1 && pot[1]==0){
if (tool_id==4108) {
- local c_list = sch_list3 //Lista de todas las paradas de autobus
- local c_dep = c_dep3 //Coordeadas del deposito
- local siz = c_list.len() //Numero de paradas
- result = translate("The route is complete, now you may dispatch the vehicle from the depot")+" ("+c_dep.tostring()+")."
- return is_stop_allowed(result, siz, c_list, pos)
+ return is_stop_allowed(city7_road_depot, city7_halt, pos)
}
}
break;
@@ -592,52 +616,57 @@ class tutorial.chapter_06 extends basic_chapter
function is_schedule_allowed(pl, schedule) {
local result=null // null is equivalent to 'allowed'
- local nr = schedule.entries.len()
switch (this.step) {
case 2:
+ if ( schedule.waytype != wt_air )
+ result = translate("Only air schedules allowed")
+
reset_glsw()
- local selc = 0
- local load = plane1_load
- local time = plane1_wait
- local c_list = sch_list1
- local siz = c_list.len()
- return set_schedule_list(result, pl, schedule, nr, selc, load, time, c_list, siz)
+ local selc = get_waiting_halt(6)
+ local load = set_loading_capacity(5)
+ local time = set_waiting_time(8)
+ local c_list = city1_city7_air
+ result = compare_schedule(result, pl, schedule, selc, load, time, c_list, false)
+ if(result == null){
+ update_convoy_schedule(pl, wt_air, line1_name, schedule)
+ }
+ return result
break
case 3:
if ( schedule.waytype != wt_road )
result = translate("Only road schedules allowed")
- local selc = 0
- local load = veh1_load
- local time = veh1_wait
- local c_list = sch_list2
- local siz = c_list.len()
- local line = true
- result = set_schedule_list(result, pl, schedule, nr, selc, load, time, c_list, siz, line)
+
+ reset_glsw()
+
+ local selc = get_waiting_halt(7)
+ local load = set_loading_capacity(6)
+ local time = set_waiting_time(9)
+ local c_list = city1_halt_airport
+ result = compare_schedule(result, pl, schedule, selc, load, time, c_list, true)
if(result == null){
- local line_name = line1_name
- update_convoy_schedule(pl, wt_road, line_name, schedule)
+ update_convoy_schedule(pl, wt_road, line2_name, schedule)
}
return result
break
case 4:
if ( schedule.waytype != wt_road )
result = translate("Only road schedules allowed")
- local selc = 0
- local load = veh1_load
- local time = veh1_wait
- local c_list = sch_list3
- local siz = c_list.len()
- local line = true
- result = set_schedule_list(result, pl, schedule, nr, selc, load, time, c_list, siz, line)
+
+ reset_glsw()
+
+ local selc = get_waiting_halt(8)
+ local load = set_loading_capacity(7)
+ local time = set_waiting_time(10)
+ local c_list = city7_halt
+ result = compare_schedule(result, pl, schedule, selc, load, time, c_list, true)
if(result == null){
- local line_name = line2_name
- update_convoy_schedule(pl, wt_road, line_name, schedule)
+ update_convoy_schedule(pl, wt_road, line3_name, schedule)
}
return result
break
}
- return translate("Action not allowed")
+ return get_message(2) //translate("Action not allowed")
}
function is_convoy_allowed(pl, convoy, depot)
@@ -646,14 +675,15 @@ class tutorial.chapter_06 extends basic_chapter
switch (this.step) {
case 2:
local wt = gl_wt
- if ((depot.x != c_dep1.x)||(depot.y != c_dep1.y))
- return translate("You must select the deposit located in")+" ("+c_dep1.tostring()+")."
+ if ((depot.x != ch6_air_depot.a.x)||(depot.y != ch6_air_depot.a.y))
+ return get_tile_message(15, ch6_air_depot.a) //translate("You must select the deposit located in")+" ("+ch6_air_depot.a.tostring()+")."
if (current_cov>ch6_cov_lim1.a && current_cov
Version: {version}
Author: {author}
Übersetzung: {translation}
Version: {version}
Author: {author}
Übersetzung: {translation}
{step_01}
{step_02}
{step_03}
{step_04}
{step_01}
{step_02}
{step_03}
{step_04}
Warnfenster
Diese werden verwendet, um den Spieler zu warnen, wenn er etwas falsch macht. Beispielsweise das falsche Werkzeug verwendet. Die Ereignisse im Szenario, die Pop-ups anzeigen, sind:
1 - Werkzeugverwendung, wenn Sie mit dem falschen Werkzeug auf die Karte klicken.
2 - Fahrzeugroute, wenn der Fahrplan des Fahrzeugs falsch ist.
3 - Fahrzeuge starten, wenn der erforderliche Fahrzeugtyp falsch ist.
In diesem ersten Schritt werden wir einige grundlegende Aspekte des Tutorial-Szenarios erläutern.
Meldungen
Szenariomeldungen sind standardmäßig deaktiviert. Sie können sie auf folgende Weise aktivieren:
- Wählen Sie im Hauptmenü Meldungen und klicken Sie im sich öffnenden Fenster die Schaltfläche Optionen
- Jede Zeile steht für bestimmte Nachrichten. Ausführliche Erklärungen in der Hilfe (? im Fenstertitel).
Tipp: Für Szenario-Nachrichten wird empfohlen, nur das Temporäre Fenster zu aktivieren.
Wir empfehlen Ihnen, das Raster für dieses Tutorial durch Drücken der Taste # zu aktivieren. Darüber hinaus wird dringend empfohlen, die Bäume entweder über das Menü Einstellungen - Anzeige so zu konfigurieren, dass sie transparent oder minimiert sind. Das Umschalten zwischen Groß und Klein/Transparent ist durch Drücken der Taste % möglich.
Sie können die Kartenansicht mit dem Mausrad oder den Tasten Bild runter/Bild hoch vergrößern oder verkleinern.
Sie können sich auf der Karte bewegen, indem Sie die Maus mit gedrückter Maustaste (rechts/links) bewegen. Die Cursortasten oder die Tasten des Ziffernblocks (wenn aktiv) können ebenfalls verwendet werden.
Sie können die Karte drehen, indem Sie Umschalt+r (Großbuchstabe R) drücken oder das Werkzeug Karte drehen aus dem Hauptmenü auswählen.
Versuchen Sie, in die Kamera hinein- und heraus zu zoomen und sich auf der Karte zu bewegen.
{img_grid} Kartenraster
Wir empfehlen Ihnen, das Raster für dieses Tutorial durch Drücken der Taste # zu aktivieren.
{img_display} Einstellungen - Anzeige
Darüber hinaus wird dringend empfohlen, die Bäume entweder über das Menü Einstellungen - Anzeige so zu konfigurieren, dass sie transparent oder minimiert sind. Das Umschalten zwischen Groß und Klein/Transparent ist durch Drücken der Taste % möglich.
Sie können die Kartenansicht mit dem Mausrad oder den Tasten Bild runter/Bild hoch vergrößern oder verkleinern.
Sie können sich auf der Karte bewegen, indem Sie die Maus mit gedrückter Maustaste (rechts/links) bewegen. Die Cursortasten oder die Tasten des Ziffernblocks (wenn aktiv) können ebenfalls verwendet werden.
Karte drehen
Sie können die Karte drehen, indem Sie Umschalt+r (Großbuchstabe R) drücken oder das Werkzeug Karte drehen aus dem Hauptmenü auswählen.
Versuchen Sie, in die Kamera hinein- und heraus zu zoomen und sich auf der Karte zu bewegen.
Da Sie nun wissen, wie Sie sich auf der Karte bewegen, besteht der nächste Schritt darin, Informationen über Elemente auf der Karte zu erhalten.
Rechts in der Statuszeile werden die Koordinaten der Position (x,y,z) des Cursors angezeigt. Die Statuszeile befindet sich standardmäßig am unteren Rand.
Klicken Sie zunächst mit dem {tool1} auf {pos}. Nachdem Sie auf das Monument geklickt haben, müssen Sie das Informationsfenster schließen, indem Sie oben auf X klicken. Drücken Sie Esc, um das aktive geöffnete Fenster zu schließen oder indem Sie die Löschtaste drücken, um alle Fenster zu schließen.
Abschließend klicken Sie mit dem {tool1} auf die {buld_name} und schließen das Informationsfenster.
Tipp: Sie können im Informationsfenster auf das Bild des Objekts klicken und die Karte wird auf dessen Position zentriert.
\ No newline at end of file +Da Sie nun wissen, wie Sie sich auf der Karte bewegen, besteht der nächste Schritt darin, Informationen über Elemente auf der Karte zu erhalten.
Abfragewerkzeug
Dies ist das Hauptwerkzeug des Spiels. Es kann kostenlos verwendet werden und ermöglicht die Anzeige des Informationsfensters für jedes Element auf der Karte, sofern vorhanden und aktiviert. Es ist auch das standardmäßig ausgewählte Werkzwug. Ist dies nicht der Fall, kann es über das Hauptmenü (das Lupensymbol) oder durch drücken der Taste a aktiviert werden.
Rechts in der Statuszeile werden die Koordinaten der Position (x,y,z) des Cursors angezeigt. Die Statuszeile befindet sich standardmäßig am unteren Rand.
Klicken Sie zunächst mit dem {tool1} auf {pos}. Nachdem Sie auf das Monument geklickt haben, müssen Sie das Informationsfenster schließen, indem Sie oben auf X klicken. Drücken Sie Esc, um das aktive geöffnete Fenster zu schließen oder indem Sie die Löschtaste drücken, um alle Fenster zu schließen.
Abschließend klicken Sie mit dem {tool1} auf die {buld_name} und schließen das Informationsfenster.
Tipp: Sie können im Informationsfenster auf das Bild des Objekts klicken und die Karte wird auf dessen Position zentriert.
\ No newline at end of file diff --git a/de/chapter_01/goal_step_04.txt b/de/chapter_01/goal_step_04.txt index d45c793..bbf4c66 100644 --- a/de/chapter_01/goal_step_04.txt +++ b/de/chapter_01/goal_step_04.txt @@ -1 +1 @@ -Es gibt eine Reihe von Fenstern mit wichtigen Informationen.
Die Minikarte kann durch Drücken der Taste m angezeigt werden.
Das Fenster Finanzen kann durch Drücken der Taste f angezeigt werden.
Die Meldungen können durch drücken von Umschalt+b angezeigt werden.
Weitere Informationen über die Stadt erhalten Sie, indem Sie mit dem {tool1} auf das Rathaus klicken.
Es gibt eine Reihe von Fenstern mit wichtigen Informationen.
Minikarte
Die Minikarte kann durch Drücken der Taste m angezeigt werden.
Finanzen
Das Fenster Finanzen kann durch Drücken der Taste f angezeigt werden.
Meldungen
Die Meldungen können durch drücken von Umschalt+b angezeigt werden.
{tool1}
Weitere Informationen über die Stadt erhalten Sie, indem Sie mit dem {tool1} auf das Rathaus klicken.
Nachdem die Brücke nun repariert wurde, benötigt die Stadt {name} eine Linie mit 3 Bussen, die Touristen vom im Bau befindlichen Pier {st1} befördern.
{tx} Starten der Busse.
Nachdem die Brücke nun repariert wurde, benötigt die Stadt {name} eine Linie mit 3 Bussen, die Touristen zum im Bau befindlichen Pier {stnam} befördern.
{tx} Starten der Busse.
Nachdem die Brücke nun repariert wurde, benötigt die Stadt {name} eine Linie mit 3 Bussen, die Touristen vom im Bau befindlichen Pier {st1} befördern.
{tx} Mehrere Fahrzeuge auf der selben Route
[1] Kaufen Sie zuerst einen Bus {bus1}.
[2] Wenn die Linie korrekt erstellt wurde, können Sie bei Bedient Linie: klicken und dann die Zeile {line} auswählen.
[3] Klicken Sie abschließend auf Starten.
Busse im Umlauf:
Nachdem die Brücke nun repariert wurde, benötigt die Stadt {name} eine Linie mit 3 Bussen, die Touristen vom im Bau befindlichen Pier {stnam} befördern.
{tx} Mehrere Fahrzeuge auf der selben Route
[1] Kaufen Sie zuerst einen Bus {bus1}.
[2] Wenn die Linie korrekt erstellt wurde, können Sie bei Bedient Linie: klicken und dann die Zeile {line} auswählen.
[3] Klicken Sie abschließend auf Starten.
Busse im Umlauf:
Da die Brücke nun repariert ist, benötigt die Stadt {name} eine Buslinie mit Verbindung zur Nachbarstadt {name2}.
{tx} Sie müssen zuerst die Halte in {name2} bauen.
Liste der Haltestellen:
{list}
Da die Brücke nun repariert ist, benötigt die Stadt {name} eine Buslinie mit Verbindung zur Nachbarstadt {name2}.
{img_road_menu} {toolbar_halt}
{tx} Sie müssen zuerst die Halte in {name2} bauen.
Liste der Haltestellen:
{list}
Da die Brücke nun repariert ist, benötigt die Stadt {name} eine Buslinie mit Verbindung zur Nachbarstadt {name2}.
{tx} Öffnen Sie {tool2} und bauen Sie eine Straße von {pt1} nach {pt2}.
Tipp: Halten Sie Strg gedrückt, um gerade Abschnitte zu bauen.
Da die Brücke nun repariert ist, benötigt die Stadt {name} eine Buslinie mit Verbindung zur Nachbarstadt {name2}.
{tx} Öffnen Sie {toolbar_road} und bauen Sie eine Straße von {pt1} nach {pt2}.
Tipp: Halten Sie Strg gedrückt, um gerade Abschnitte zu bauen.
Da die Brücke nun repariert ist, benötigt die Stadt {name} eine Buslinie mit Verbindung zur Nachbarstadt {name2}.
{tx} Klicken Sie auf das Straßendepot{dep}, wählen Sie einen Bus {bus1} aus und klicken Sie auf Fahrplan.
Wählen Sie nun die Haltestellen aus:
{list}
- Nachdem Sie die {nr} Haltestellen hinzugefügt haben, wählen Sie die Haltestelle {stnam} aus der Liste und konfigurieren Sie sie wie folgt:
--> [a] Konfigurieren Sie Mindestladung auf {load}%.
--> [b] Setzen Sie maximale Wartezeit auf {wait}.
Da die Brücke nun repariert ist, benötigt die Stadt {name} eine Buslinie mit Verbindung zur Nachbarstadt {name2}.
{tx} Klicken Sie auf das Straßendepot {dep}, wählen Sie einen Bus {bus1} aus und klicken Sie auf Fahrplan.
Wählen Sie nun die Haltestellen aus:
{list}
- Nachdem Sie die {nr} Haltestellen hinzugefügt haben, wählen Sie die Haltestelle {stnam} aus der Liste und konfigurieren Sie sie wie folgt:
--> [a] Konfigurieren Sie Mindestladung auf {load}%.
--> [b] Setzen Sie maximale Wartezeit auf {wait}.
Da die Brücke nun repariert ist, benötigt die Stadt {name} eine Buslinie mit Verbindung zur Nachbarstadt {name2}.
{tx} Jetzt müssen Sie dem Konvoi folgen.
Klicken Sie auf das Fahrzeug, das bereits im Umlauf ist, um die Titelleiste des Fahrzeugfensters anzuzeigen und klicken Sie auf das Auge-Symbol, um dem Fahrzeug zu folgen
Das Fahrzeug befindet sich bei: {covpos}
{scr}
{txtst_01}Schritt A - Bau eines Straßenabschnitts
{step_01}
{txtst_02}Schritt B - Bau eines Straßendepots
{step_02}
{txtst_03}Schritt C - Platzierung von Bushaltestellen
{step_03}
{txtst_04}Schritt D - Erster Bus gestartet
{step_04}
{txtst_05}Schritt E - Eine Brücke bauen
{step_05}
{txtst_06}Schritt F - Verbindung des im Bau befindlichen Docks
{step_06}
{txtst_07}Schritt G - Verbindung der Städte
{step_07}
{txtst_08}Schritt H - Öffentliche Haltestellen erstellen
{step_08}
{scr}
{txtst_01}Schritt A - Bau eines Straßenabschnitts
{step_01}
{txtst_02}Schritt B - Bau eines Straßendepots
{step_02}
{txtst_03}Schritt C - Platzierung von Bushaltestellen
{step_03}
{txtst_04}Schritt D - Erster Bus gestartet
{step_04}
{txtst_05}Schritt E - Eine Brücke bauen
{step_05}
{txtst_06}Schritt F - Verbindung des im Bau befindlichen Docks
{step_06}
{txtst_07}Schritt G - Verbindung der Städte
{step_07}
{txtst_08}Schritt H - Öffentliche Haltestellen erstellen
{step_08}
Wir werden einen Busdienst in der Stadt {name} eröffnen.
Zuerst müssen Sie eine Sackgasse bauen, um darauf ein Depot zu errichten.
Öffnen Sie das Menü {tool2} und wählen Sie eine Straße. Jetzt können Sie eine Straße bauen, indem Sie einmal auf den Anfang und einmal auf das Ende klicken oder den Cursor mit gedrückter linken Maustaste zwischen diesen Punkten ziehen.
Wir werden einen Busdienst in der Stadt {name} eröffnen.
Zuerst müssen Sie ein Straßenende suchen oder bauen, um darauf ein Depot zu errichten.
{img_road_menu} {toolbar_road}
Öffnen Sie das Menü {toolbar_road} und wählen Sie eine Straße. Jetzt können Sie eine Straße bauen, indem Sie einmal auf den Anfang und einmal auf das Ende klicken oder den Cursor mit gedrückter linken Maustaste zwischen diesen Punkten ziehen.
Wir werden einen Busdienst in der Stadt {name} starten
Der erste Schritt zum Start des Dienstes ist der Bau eines Straßendepots auf das Feld {pos}. Sie finden dieses Tool im Menü {tool2}.
Wir werden einen Busdienst in der Stadt {name} starten
{img_road_menu} {toolbar_road}
Der erste Schritt zum Start des Dienstes ist der Bau eines Straßendepots auf das Feld {dep}. Sie finden dieses Tool im Menü {toolbar_road}.
Der nächste Schritt zum Starten Ihres Busdienstes für die Stadt {name}.
Es ist notwendig, auf jedem markierten Feld eine Bushaltestelle zu bauen:
{list}
Die Haltestellen finden Sie im Menü {tool2}.
Hinweis: Die Haltestellen haben eine Kartenabdeckung von meist 5x5 Feldern. Daher ist es ratsam, die Haltestellen so im Abstand zu platzieren, das ihre Abdeckungen sich nicht überlagern. Der Abdeckungsbereich kann durch Drücken der Taste v angezeigt werden.
Tipp: Drücken Sie die Taste ", um die städtischen Gebäude auszublenden.
Der nächste Schritt zum Starten Ihres Busdienstes für die Stadt {name}.
{img_road_menu} {toolbar_halt}
Es ist notwendig, auf jedem markierten Feld eine Bushaltestelle zu bauen.
Die Haltestellen finden Sie im Menü {toolbar_halt}.
{list}
Hinweis: Die Haltestellen haben eine Kartenabdeckung von meist 5x5 Feldern. Daher ist es ratsam, die Haltestellen so im Abstand zu platzieren, das ihre Abdeckungen sich nicht überlagern. Der Abdeckungsbereich kann durch Drücken der Taste v angezeigt werden.
Beachten Sie bei Haltestellen die Akzeptanz von Passagieren, Post und Waren. Diese steht am Ende des Tooltips, wenn sie mit der Maus auf dem Tool-Button verweilen. Sie kann auf dem Tool-Button auch mit einem kleinen Icon angezeigt werden.
Tipp: Drücken Sie die Taste ", um die städtischen Gebäude auszublenden.
Da nun die Haltestellen vorhanden sind, müssen Sie einen Bus kaufen, um den Service anbieten zu können.
[1] Klicken Sie mit dem {tool1} auf das Straßendepot {pos} und kaufen den Bus {bus1}.
[2] Um die Fahrzeugroute zu konfigurieren, müssen Sie zunächst auf die Schaltfläche Fahrplan klicken um das Fahrzeugfenster zu öffnen.
[3] Im Reiter Fahrplan müssen Sie nun alle Haltestellen in der Stadt auswählen, um sie zur Liste hinzuzufügen:
{list}
[4] Nachdem Sie die {nr} Haltestellen hinzugefügt haben, wählen Sie die Haltestelle {stnam} aus der Liste aus und konfigurieren Sie die Haltestelle wie folgt:
--> [a] Konfigurieren Sie Mindestladung auf {load} %.
--> [b] Setzen Sie maximale Wartezeit auf {wait}.
[5] Schließen Sie nun das Fahrzeugfenster und klicken Sie auf den Starten, damit das Fahrzeug das Depot verlässt.
Tipp: Drücken Sie die Taste ", um städtische Gebäude auszublenden.
Klicken Sie auf das Fahrzeug, das bereits im Umlauf ist, um die Titelleiste des Fahrzeugfensters anzuzeigen und klicken Sie auf das Auge-Symbol, um dem Fahrzeug zu folgen
Da nun die Haltestellen vorhanden sind, müssen Sie einen Bus kaufen, um den Service anbieten zu können.
[1] Klicken Sie mit dem {tool1} auf das Straßendepot {dep} und kaufen den Bus {bus1}.
[2] Um die Fahrzeugroute zu konfigurieren, müssen Sie zunächst auf die Schaltfläche Fahrplan klicken um das Fahrzeugfenster zu öffnen.
[3] Im Reiter Fahrplan müssen Sie nun alle Haltestellen in der Stadt auswählen, um sie zur Liste hinzuzufügen:
{list}
[4] Nachdem Sie die {nr} Haltestellen hinzugefügt haben, wählen Sie die Haltestelle {stnam} aus der Liste aus und konfigurieren Sie die Haltestelle wie folgt:
--> [a] Setzen Sie Mindestladung auf {load} %.
--> [b] Setzen Sie maximale Wartezeit auf {wait}.
[5] Schließen Sie nun das Fahrzeugfenster und klicken Sie auf Starten, damit das Fahrzeug das Depot verlässt.
Tipp: Drücken Sie die Taste ", um städtische Gebäude auszublenden.
Klicken Sie auf das Fahrzeug, das bereits im Umlauf ist, um die Titelleiste des Fahrzeugfensters anzuzeigen und klicken Sie auf das Auge-Symbol, um dem Fahrzeug zu folgen
Klicken Sie auf das bereits fahrende Fahrzeug, um das Konvoi-Fenster anzuzeigen. Suchen Sie in der Titelleiste des Konvoi-Fensters nach dem vierten Symbol (dem Augensymbol) und drücken Sie darauf, um dem Konvoi zu folgen.
Die Brücke zu einem der äußeren Vororte wurde kürzlich weggespült.
Die Stadt {name} möchte, dass Sie diesen Vorort durch den Bau einer Brücke zwischen {bpos1} und {bpos2} wieder verbinden.
Es gibt zwei Möglichkeiten, dies zu erreichen. Wählen Sie zuerst eine Brücke im Menü {tool2} aus und dann...
[1] Sie können die Brücke bauen, indem Sie auf eine der gegenüberliegenden geraden Hangfeldern klicken.
[2] Sie können die Brücke bauen, indem Sie den Cursor von Hang auf einer Seite zum gegenüberliegenden Hang mit gedrückter linken Maustaste ziehen.
Die Brücke zu einem der äußeren Vororte wurde kürzlich weggespült.
Die Stadt {name} möchte, dass Sie diesen Vorort durch den Bau einer Brücke zwischen {bpos1} und {bpos2} wieder verbinden.
{img_road_menu} {toolbar_road}
Es gibt zwei Möglichkeiten, dies zu erreichen. Wählen Sie zuerst eine Brücke im Menü {toolbar_road} aus und dann...
[1] Sie können die Brücke bauen, indem Sie nacheinander auf die gegenüberliegenden geraden Hangfeldern klicken.
[2] Sie können die Brücke bauen, indem Sie den Cursor vom Hang auf einer Seite zum gegenüberliegenden Hang mit gedrückter linken Maustaste ziehen.
Die Stadt {name} benötigt Sie, um die Buslinie mit der im Bau befindlichen Bahnlinie zu verbinden.
Wählen Sie in der Symbolleiste {tool3} und wählen Sie das Werkzeug In öffentliche Haltestelle umwande.
Wählen Sie das Werkzeug In öffentliche Haltestelle umwande und klicken Sie auf die Haltestelle {st1}. Sie werden feststellen, dass sich die Farbe des Stopps ändert.
Die Stadt {name} benötigt Sie, um die Buslinie mit der im Bau befindlichen Bahnlinie zu verbinden.
Durch die Einrichtung einer öffentlichen Haltestelle wird ermöglicht, das mehrere Spieler diesen Halt nutzen können. Dies ermöglicht das Verknüpfen von Teilnetzen für den gemeinsamen Passagier-, Post- und Warentransport. Aber Sie müssen vorsichtig sein, da diese Aktion nicht rückgängig gemacht werden kann, es sei denn, Sie wechseln zum Spieler für den öffentlichen Dienst.
Wählen Sie das Werkzeug zum öffentlich machen von Halten und klicken Sie auf die Haltestelle {st1}. Sie werden feststellen, dass sich die Farbe des Stopps ändert.
Um {good2} herzustellen, müssen Sie {good1} von {f1} nach {f2} transportieren.
{tx} Verwenden Sie {tool1} auf {f2}, um Details anzuzeigen
Um {good2} herzustellen, müssen Sie {good1} von {f1} nach {f2} transportieren.
{tx} Verwenden Sie {tool1} auf {f2}, um Details anzuzeigen
{tx} Die Details sind:
Maximale Produktion pro Monat:
Zeigt die Produktionskapazität an, über die die Fabrik verfügt. Die Produktion kann je nach Bedarf durch den Transport von Passagieren, Post oder Strom zur Fabrik gesteigert werden.
Produktion:
Zeigt, was die Fabrik produziert, wie viel auf Lager ist und wie viel sie aus einer Einheit Rohstoffe herstellt.
Beispiel: {f2} verbraucht {g1_factor}% von {good1} und produziert {g2_factor}% von {good2}. Die maximale Produktion beträgt {prod_out} Einheiten pro Monat. Das bedeutet, dass es bis zu {g1_consum} {g1_metric} {good1} pro Monat verbraucht und daraus {g2_prod} {g2_metric} {good2} produziert.
Verbrauch:
Zeigt die Rohstoffe an, die die Fabrik benötigt, die gelagerte oder unterwegs befindliche Menge und wie viel Rohstoff zur Herstellung einer Produkteinheit benötigt wird.
Verbraucher/Lieferanten:
Zeigt verbundene Fabriken an.
Arbeiter wohnen in:
Zeigt die Städte an, aus denen die Arbeiter kommen mit Passagier- und Postrate.
Hinweis: Der Transport von Passagieren und Post zur Fabrik ist für die Produktion der Fabrik nicht erforderlich. Ob der Transport von Passagieren und Post sowie die Versorgung mit Strom die Produktion erhöht wird im Reiter Produktionskennzahlen angezeigt.
{tx} Die Details sind:
Maximale Produktion pro Monat:
Zeigt die Produktionskapazität an, über die die Fabrik verfügt. Die Produktion kann je nach Bedarf durch den Transport von Passagieren, Post oder Strom zur Fabrik gesteigert werden.
Produktion:
Zeigt, was die Fabrik produziert, wie viel auf Lager ist und wie viel sie aus einer Einheit Rohstoffe herstellt.
Beispiel: {f2} verbraucht {g1_factor}% von {good1} und produziert {g2_factor}% von {good2}. Die maximale Produktion beträgt {prod_out} Einheiten pro Monat. Das bedeutet, dass es bis zu {g1_consum} {g1_metric} {good1} pro Monat verbraucht und daraus {g2_prod} {g2_metric} {good2} produziert.
Verbrauch:
Zeigt die Rohstoffe an, die die Fabrik benötigt, die gelagerte oder unterwegs befindliche Menge und wie viel Rohstoff zur Herstellung einer Produkteinheit benötigt wird.
Verbraucher/Lieferanten:
Zeigt verbundene Fabriken an.
Arbeiter wohnen in:
Zeigt die Städte an, aus denen die Arbeiter kommen mit Passagier- und Postrate.
Hinweis: Der Transport von Passagieren und Post zur Fabrik ist für die Produktion der Fabrik nicht erforderlich. Ob der Transport von Passagieren und Post sowie die Versorgung mit Strom die Produktion erhöht wird im Reiter Produktionskennzahlen angezeigt.
{tx} Wählen Sie {tool2} und bauen Sie eine Bahnstrecke, die die beiden Punkte {w1} und {w2} verbindet.
Bauen Sie das Bahngleis von {cbor} nach {w2}.
\ No newline at end of file +{step_hinfo}{tx} Wählen Sie {tool2} und bauen Sie eine Bahnstrecke, die die beiden Punkte {w1} und {w2} verbindet.
Bauen Sie das Bahngleis von {cbor} nach {w2}.
\ No newline at end of file diff --git a/de/chapter_03/02_2-3.txt b/de/chapter_03/02_2-3.txt index 4b6cfcc..6ea8902 100644 --- a/de/chapter_03/02_2-3.txt +++ b/de/chapter_03/02_2-3.txt @@ -1 +1 @@ -{step_hinfo}{tx} Wählen Sie {tool2} und bauen Sie eine Brücke zu {br}.
\ No newline at end of file +{step_hinfo}{tx} Wählen Sie {tool2} und bauen Sie eine Brücke zu {br}.
\ No newline at end of file diff --git a/de/chapter_03/02_3-3.txt b/de/chapter_03/02_3-3.txt index 66a8b75..dd2fecb 100644 --- a/de/chapter_03/02_3-3.txt +++ b/de/chapter_03/02_3-3.txt @@ -1 +1 @@ -{step_hinfo}{tx} Wählen Sie {tool2} und bauen Sie ein Bahngleis, das die beiden Punkte {cbor} und {w4} verbindet.
\ No newline at end of file +{step_hinfo}{tx} Wählen Sie {tool2} und bauen Sie ein Bahngleis, das die beiden Punkte {cbor} und {w4} verbindet.
\ No newline at end of file diff --git a/de/chapter_03/03_1-2.txt b/de/chapter_03/03_1-2.txt index 5197dbd..223bc9a 100644 --- a/de/chapter_03/03_1-2.txt +++ b/de/chapter_03/03_1-2.txt @@ -1 +1 @@ -{step_hinfo}
{tx} Wählen Sie {tool2} und bauen Sie eine Warenstation ({tile} Felder lang) in der Nähe von {f2}.
\ No newline at end of file +{step_hinfo}
{tx} Wählen Sie {tool2} und bauen Sie eine Warenstation ({tile} Felder lang) in der Nähe von {f2}.
\ No newline at end of file diff --git a/de/chapter_03/03_2-2.txt b/de/chapter_03/03_2-2.txt index c80e6d3..eea7b4e 100644 --- a/de/chapter_03/03_2-2.txt +++ b/de/chapter_03/03_2-2.txt @@ -1 +1 @@ -{step_hinfo}{tx} Wählen Sie {tool2} und bauen Sie eine Frachtstation ({tile} Felder lang) in der Nähe von {f1}.
\ No newline at end of file +{step_hinfo}{tx} Wählen Sie {tool2} und bauen Sie eine Frachtstation ({tile} Felder lang) in der Nähe von {f1}.
\ No newline at end of file diff --git a/de/chapter_03/04_1-3.txt b/de/chapter_03/04_1-3.txt index 6faae78..171e48e 100644 --- a/de/chapter_03/04_1-3.txt +++ b/de/chapter_03/04_1-3.txt @@ -1 +1 @@ -{step_hinfo}{tx} Wählen Sie {tool2} und bauen Sie ein Bahngleis von {w1} nach {w2}.
\ No newline at end of file +{step_hinfo}{tx} Wählen Sie {tool2} und bauen Sie ein Bahngleis von {w1} nach {w2}.
\ No newline at end of file diff --git a/de/chapter_03/04_2-3.txt b/de/chapter_03/04_2-3.txt index cc38ad3..28d1dcc 100644 --- a/de/chapter_03/04_2-3.txt +++ b/de/chapter_03/04_2-3.txt @@ -1 +1 @@ -{step_hinfo}{tx} Wählen Sie {tool2} und bauen Sie ein Bahndepot auf Feld {dep}.
\ No newline at end of file +{step_hinfo}{tx} Wählen Sie {tool2} und bauen Sie ein Bahndepot auf Feld {dep}.
\ No newline at end of file diff --git a/de/chapter_03/04_3-3.txt b/de/chapter_03/04_3-3.txt index 82e24f7..4d02bb1 100644 --- a/de/chapter_03/04_3-3.txt +++ b/de/chapter_03/04_3-3.txt @@ -1 +1 @@ -{step_hinfo}
{tx}
{tx}
Sie müssen {good2} von {f2} nach {f3} in {cy1} transportieren.
{tx} Wählen Sie {tool2} und bauen sie ein Bahngleis zwischen {w1} und {w2}.
\ No newline at end of file +Sie müssen {good2} von {f2} nach {f3} in {cy1} transportieren.
{tx} Wählen Sie {tool2} und bauen sie ein Bahngleis zwischen {w1} und {w2}.
\ No newline at end of file diff --git a/de/chapter_03/06_2-5.txt b/de/chapter_03/06_2-5.txt index b72c99f..553e08f 100644 --- a/de/chapter_03/06_2-5.txt +++ b/de/chapter_03/06_2-5.txt @@ -1 +1 @@ -Sie müssen {good2} von {f2} nach {f3} in {cy1} transportieren.
{tx} Wählen Sie {tool2} und bauen Sie einen Tunnel auf Feld {tu}.
\ No newline at end of file +Sie müssen {good2} von {f2} nach {f3} in {cy1} transportieren.
{tx} Wählen Sie {tool2} und bauen Sie einen Tunnel auf Feld {tu}.
\ No newline at end of file diff --git a/de/chapter_03/06_3-5.txt b/de/chapter_03/06_3-5.txt index 363b8e9..ce2d838 100644 --- a/de/chapter_03/06_3-5.txt +++ b/de/chapter_03/06_3-5.txt @@ -1 +1 @@ -Sie müssen {good2} von {f2} nach {f3} in {cy1} transportieren.
{tx} Wählen Sie {tool2} bauen eine Bahngleis zwischen {w3} und {w4}.
\ No newline at end of file +Sie müssen {good2} von {f2} nach {f3} in {cy1} transportieren.
{tx} Wählen Sie {tool2} bauen eine Bahngleis zwischen {w3} und {w4}.
\ No newline at end of file diff --git a/de/chapter_03/06_4-5.txt b/de/chapter_03/06_4-5.txt index 7dfcf6f..7221f37 100644 --- a/de/chapter_03/06_4-5.txt +++ b/de/chapter_03/06_4-5.txt @@ -1 +1 @@ -Sie müssen {good2} von {f2} nach {f3} in {cy1} transportieren.
{tx} Wählen Sie {tool2} und bauen Sie eine Frachtstation ({tile} Felder lang) in der Nähe von {f3}.
\ No newline at end of file +Sie müssen {good2} von {f2} nach {f3} in {cy1} transportieren.
{tx} Wählen Sie {tool2} und bauen Sie eine Frachtstation ({tile} Felder lang) in der Nähe von {f3}.
\ No newline at end of file diff --git a/de/chapter_03/06_5-5.txt b/de/chapter_03/06_5-5.txt index f9f9ece..ddb602c 100644 --- a/de/chapter_03/06_5-5.txt +++ b/de/chapter_03/06_5-5.txt @@ -1 +1 @@ -Sie müssen {good2} von {f2} nach {f3} in {cy1} transportieren.
{tx} Wählen Sie {tool2} und bauen Sie eine Frachtstation ({tile} Felder lang) in der Nähe von {f2}.
\ No newline at end of file +Sie müssen {good2} von {f2} nach {f3} in {cy1} transportieren.
{tx} Wählen Sie {tool2} und bauen Sie eine Frachtstation ({tile} Felder lang) in der Nähe von {f2}.
\ No newline at end of file diff --git a/de/chapter_03/08_1-5.txt b/de/chapter_03/08_1-5.txt index 82799f0..61aae3f 100644 --- a/de/chapter_03/08_1-5.txt +++ b/de/chapter_03/08_1-5.txt @@ -1 +1 @@ -
Der Öffentliche Dienst benötigt Sie, um das Eisenbahnnetz fertigzustellen, das durch die Städte führt:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Wählen Sie {tool2} und bauen sie ein Bahngleis von {w1} nach {w2}.
\ No newline at end of file +
Der Öffentliche Dienst benötigt Sie, um das Eisenbahnnetz fertigzustellen, das durch die Städte führt:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Wählen Sie {tool2} und bauen sie ein Bahngleis von {w1} nach {w2}.
\ No newline at end of file diff --git a/de/chapter_03/08_2-5.txt b/de/chapter_03/08_2-5.txt index 4cac6ff..ac7185f 100644 --- a/de/chapter_03/08_2-5.txt +++ b/de/chapter_03/08_2-5.txt @@ -1 +1 @@ -
Der Öffentliche Dienst benötigt Sie, um das Eisenbahnnetz fertigzustellen, das durch die Städte führt:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Wählen Sie {tool2} und bauen Sie eine Brücke auf Feld {br}.
\ No newline at end of file +
Der Öffentliche Dienst benötigt Sie, um das Eisenbahnnetz fertigzustellen, das durch die Städte führt:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Wählen Sie {tool2} und bauen Sie eine Brücke auf Feld {br}.
\ No newline at end of file diff --git a/de/chapter_03/08_3-5.txt b/de/chapter_03/08_3-5.txt index 53eb984..6a62aea 100644 --- a/de/chapter_03/08_3-5.txt +++ b/de/chapter_03/08_3-5.txt @@ -1 +1 @@ -
Der Öffentliche Dienst benötigt Sie, um das Eisenbahnnetz fertigzustellen, das durch die folgenden Städte verläuft:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
Für die Umschaltung der Ansichten können in den Menüs Buttons vorhanden sein.
{tx} Wählen Sie {tool2} und bauen Sie ein Tunnelportal auf das Feld {t1}, indem Sie die Taste Strg gedrückt halten beim klicken.
\ No newline at end of file +
Der Öffentliche Dienst benötigt Sie, um das Eisenbahnnetz fertigzustellen, das durch die folgenden Städte verläuft:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
Für die Umschaltung der Ansichten können in den Menüs Buttons vorhanden sein.
{tx} Wählen Sie {tool2} und bauen Sie ein Tunnelportal auf das Feld {t1}, indem Sie die Taste Strg gedrückt halten beim klicken.
\ No newline at end of file diff --git a/de/chapter_03/08_4-5.txt b/de/chapter_03/08_4-5.txt index 88e9e32..297d922 100644 --- a/de/chapter_03/08_4-5.txt +++ b/de/chapter_03/08_4-5.txt @@ -1 +1 @@ -
Der Öffentliche Dienst benötigt Sie, um das Eisenbahnnetz fertigzustellen, das durch die folgenden Städte verläuft:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Bau von Tunneln mit Höhenwechsel: [1] Aktivieren Sie die Untergrundansicht nach Ebenen und setzen Sie die angezeigte Ebene auf Höhe {lev}. [2] Bauen Sie nun ein Tunnelsegment nach {tunn}. [3] Erhöhen Sie das Gelände mit {tool3} auf Feld {tunn}.
Sie müssen diesen Vorgang wiederholen, bis Sie Höhe [Z = {mx_lvl}] erreichen:
Liste der Bauabschnitte:
{list}
Der Öffentliche Dienst benötigt Sie, um das Eisenbahnnetz fertigzustellen, das durch die folgenden Städte verläuft:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Bau von Tunneln mit Höhenwechsel: [1] Aktivieren Sie die Untergrundansicht nach Ebenen und setzen Sie die angezeigte Ebene auf Höhe {lev}. [2] Bauen Sie nun ein Tunnelsegment nach {tunn}. [3] Erhöhen Sie das Gelände mit {tool3} auf Feld {tunn}.
Sie müssen diesen Vorgang wiederholen, bis Sie Höhe [Z = {mx_lvl}] erreichen:
Liste der Bauabschnitte:
{list}
Der Öffentliche Dienst benötigt Sie, um das Eisenbahnnetz fertigzustellen, das durch die folgenden Städte verläuft:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Verbinden Sie die Tunnelenden der beiden Tunneleingänge auf Feld {t1} und Feld {t2} im Untergrund.
Tipp: Die Verbindung erfolgt auf Ebene 8.
\ No newline at end of file +
Der Öffentliche Dienst benötigt Sie, um das Eisenbahnnetz fertigzustellen, das durch die folgenden Städte verläuft:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Verbinden Sie die Tunnelenden der beiden Tunneleingänge auf Feld {t1} und Feld {t2} im Untergrund.
Tipp: Die Verbindung erfolgt auf Ebene 8.
\ No newline at end of file diff --git a/de/chapter_03/09_1-2.txt b/de/chapter_03/09_1-2.txt index cf2d78f..0506f53 100644 --- a/de/chapter_03/09_1-2.txt +++ b/de/chapter_03/09_1-2.txt @@ -1 +1 @@ -
Der Öffentliche Dienst benötigt Sie, um das Eisenbahnnetz fertigzustellen, das durch die folgenden Städte verläuft:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Wählen Sie {tool2} und bauen Sie ein Bahngleis zwischen {w2} und {w1}.
Liste der Verbindungen:
{list}
Tipp: Sie können sie einfach verbinden, indem Sie auf {w2} und {w1} klicken.
\ No newline at end of file +
Der Öffentliche Dienst benötigt Sie, um das Eisenbahnnetz fertigzustellen, das durch die folgenden Städte verläuft:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Wählen Sie {tool2} und bauen Sie ein Bahngleis zwischen {w2} und {w1}.
Liste der Verbindungen:
{list}
Tipp: Sie können sie einfach verbinden, indem Sie auf {w2} und {w1} klicken.
\ No newline at end of file diff --git a/de/chapter_03/09_2-2.txt b/de/chapter_03/09_2-2.txt index 410dc5c..49b919d 100644 --- a/de/chapter_03/09_2-2.txt +++ b/de/chapter_03/09_2-2.txt @@ -1 +1 @@ -
Der Öffentliche Dienst benötigt Sie, um das Eisenbahnnetz fertigzustellen, das durch die folgenden Städte verläuft:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Wählen Sie {tool2} und bauen Sie Signale auf den angegebenen Feldern.
Die Fahrtrichtung ist rechts, weswegen die Signale auf der in Fahrtrichtung rechten Seite stehen müssen.
{sig}
Hinweis: Klicken Sie mehrmals mit dem Signalwerkzeug auf das gleiche Feld, um die Richtung entsprechend festzulegen.
\ No newline at end of file +
Der Öffentliche Dienst benötigt Sie, um das Eisenbahnnetz fertigzustellen, das durch die folgenden Städte verläuft:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Wählen Sie {tool2} und bauen Sie Signale auf den angegebenen Feldern.
Die Fahrtrichtung ist rechts, weswegen die Signale auf der in Fahrtrichtung rechten Seite stehen müssen.
{sig}
Hinweis: Klicken Sie mehrmals mit dem Signalwerkzeug auf das gleiche Feld, um die Richtung entsprechend festzulegen.
\ No newline at end of file diff --git a/de/chapter_03/10_1-4.txt b/de/chapter_03/10_1-4.txt index 802263e..ce86b62 100644 --- a/de/chapter_03/10_1-4.txt +++ b/de/chapter_03/10_1-4.txt @@ -1 +1 @@ -
Der Öffentliche Dienst benötigt Sie, um das Eisenbahnnetz fertigzustellen, das durch die folgenden Städte verläuft:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Wählen Sie {tool2} und bauen Sie eine Oberleitung auf das Gleis vom Bahnhof {co2} in {cy2} zum Bahnhof in {cy5} {co5}.
Hinweis: Sie können längere Strecken elektrifizieren, indem Sie einen Startpunkt und einen Endpunkt anklicken. Zu beachten ist, das beim Bau von Oberleitungen die Richtung der Signale berücksichtigt wird.
{cbor}
Der Öffentliche Dienst benötigt Sie, um das Eisenbahnnetz fertigzustellen, das durch die folgenden Städte verläuft:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Wählen Sie {tool2} und bauen Sie eine Oberleitung auf das Gleis vom Bahnhof {co2} in {cy2} zum Bahnhof in {cy5} {co5}.
Hinweis: Sie können längere Strecken elektrifizieren, indem Sie einen Startpunkt und einen Endpunkt anklicken. Zu beachten ist, das beim Bau von Oberleitungen die Richtung der Signale berücksichtigt wird.
{cbor}
Der Öffentliche Dienst benötigt Sie, um das Eisenbahnnetz fertigzustellen, das durch die folgenden Städte verläuft:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Wählen Sie {tool2} und bauen Sie eine Oberleitung auf das Gleis vom Bahnhof {co5} in {cy5} zum Bahnhof in {cy2} {co2}.
Hinweis: Beim Bau von Oberleitungen wird die Richtung der Signale berücksichtigt.
{cbor}
Der Öffentliche Dienst benötigt Sie, um das Eisenbahnnetz fertigzustellen, das durch die folgenden Städte verläuft:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Wählen Sie {tool2} und bauen Sie eine Oberleitung auf das Gleis vom Bahnhof {co5} in {cy5} zum Bahnhof in {cy2} {co2}.
Hinweis: Beim Bau von Oberleitungen wird die Richtung der Signale berücksichtigt.
{cbor}
Der Öffentliche Dienst benötigt Sie, um das Eisenbahnnetz fertigzustellen, das durch die folgenden Städte verläuft:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Wählen Sie {tool2} und bauen Sie eine Oberleitung auf das Feld {dep} für das Bahndepot.
Der Öffentliche Dienst benötigt Sie, um das Eisenbahnnetz fertigzustellen, das durch die folgenden Städte verläuft:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Wählen Sie {tool2} und bauen Sie eine Oberleitung auf das Feld {dep} für das Bahndepot.
{tx} Wählen Sie {tool2} und bauen Sie ein Bahndepot auf Feld {dep}.
\ No newline at end of file +{step_hinfo}{tx} Wählen Sie {tool2} und bauen Sie ein Bahndepot auf Feld {dep}.
\ No newline at end of file diff --git a/de/chapter_03/goal.txt b/de/chapter_03/goal.txt index c4e724a..0b396ba 100644 --- a/de/chapter_03/goal.txt +++ b/de/chapter_03/goal.txt @@ -1 +1 @@ -In diesem Kapitel sind die Züge die Protagonisten und mit ihnen lernen wir, Güter und Passagiere zu transportieren.
{scr}
{txtst_01}Schritt A - Ein Blick auf die Fabriken
{step_01}
{txtst_02}Schritt B - Lieferanten verbinden
{step_02}
{txtst_03}Schritt C - Stationen bauen
{step_03}
{txtst_04}Schritt D - Bau eines Depots
{step_04}
{txtst_05}Schritt E - Der erste Zug
{step_05}
{txtst_06}Schritt F - Den Verbraucher verbinden
{step_06}
{txtst_07}Schritt G - Der zweite Zug
{step_07}
{txtst_08}Schritt H - Bauen im Untergrund
{step_08}
{txtst_09}Schritt I - Verbinden der Stationen
{step_09}
{txtst_10}Schritt J - Elektrifizierte Gleise
{step_10}
{txtst_11}Schritt K - elektrische Züge
{step_11}
In diesem Kapitel sind die Züge die Protagonisten und mit ihnen lernen wir, Güter und Passagiere zu transportieren.
{scr}
{txtst_01}Schritt A - Ein Blick auf die Fabriken
{step_01}
{txtst_02}Schritt B - Lieferanten verbinden
{step_02}
{txtst_03}Schritt C - Stationen bauen
{step_03}
{txtst_04}Schritt D - Bau eines Depots
{step_04}
{txtst_05}Schritt E - Der erste Zug
{step_05}
{txtst_06}Schritt F - Den Verbraucher verbinden
{step_06}
{txtst_07}Schritt G - Der zweite Zug
{step_07}
{txtst_08}Schritt H - Bauen im Untergrund
{step_08}
{txtst_09}Schritt I - Verbinden der Stationen
{step_09}
{txtst_10}Schritt J - Elektrifizierte Gleise
{step_10}
{txtst_11}Schritt K - elektrische Züge
{step_11}
Für die Produktion von {good2} müssen Sie {good1} von {f1} nach {f2} transportieren.
Sie müssen nun ein geeignetes Fahrzeug auswählen, um {good1} nach {f2} zu transportieren.
[1] Öffnen Sie das Zugdepot und wählen Sie eine Lokomotive {loc1} im Reiter Loks.
[2] Wählen Sie nun {wag} Waggons für {good1} aus.
[3] Wählen Sie bei Bedient Linie: den Eintrag Neue Linie erstellen und wählen Sie als ersten Halt den Bahnhof in der Nähe von {f1} aus.
--> Stellen Sie Mindestladung auf {load}% ein.
[4] Wählen Sie die Station in der Nähe von {f2} aus.
[5] Geben Sie der Linie einen passenden Namen und schließen Sie den Linienplan.
[6] Starten Sie den Zug mit Klick auf Starten.
Tipp: Sie können den Filter im unteren Bereich des Depotfensters verwenden, um nur Fahrzeuge anzuzeigen, die eine bestimmte Fracht transportieren können.
Tipp: Drücken Sie die Taste W (Umschalttaste+w), um den Schnellvorlauf zu aktivieren. Erneutes drücken deaktiviert den Schnellvorlauf wieder.
Geliefert:
Für die Produktion von {good2} müssen Sie {good1} von {f1} nach {f2} transportieren.
Sie müssen nun ein geeignetes Fahrzeug auswählen, um {good1} nach {f2} zu transportieren.
[1] Öffnen Sie das Zugdepot und wählen Sie eine Lokomotive {loc1} im Reiter Loks.
[2] Wählen Sie nun {wag} Waggons für {good1} aus.
[3] Wählen Sie bei Bedient Linie: den Eintrag Neue Linie erstellen und wählen Sie als ersten Halt den Bahnhof {stnam1} aus.
--> Stellen Sie Mindestladung auf {load}% ein.
[4] Wählen Sie als zweiten Halt den Bahnhof {stnam2} aus.
[5] Geben Sie der Linie einen passenden Namen und schließen Sie den Linienplan.
[6] Starten Sie den Zug mit Klick auf Starten.
Tipp: Sie können den Filter im unteren Bereich des Depotfensters verwenden, um nur Fahrzeuge anzuzeigen, die eine bestimmte Fracht transportieren können.
Tipp: Drücken Sie die Taste W (Umschalttaste+w), um den Schnellvorlauf zu aktivieren. Erneutes drücken deaktiviert den Schnellvorlauf wieder.
Geliefert:
Sie müssen {good2} von {f2} nach {f3} in {cy1} transportieren.
[1] Bauen Sie eine Bahnstrecke zwischen {w1} und {w2}.
[2] Platzieren Sie das Zugdepot auf Feld {way1}.
Sie müssen nun einen geeigneten Zug zusammen stellen, um {good2} nach {f3} zu transportieren.
[1] Öffnen Sie das Zugdepot und wählen Sie eine Lokomotive {loc2} im Reiter Loks.
[2] Wählen Sie nun {wag} Waggons für {good2} aus.
[3] Wählen Sie bei Bedient Linie: den Eintrag Neue Linie erstellen und wählen Sie als ersten Halt den Bahnhof in der Nähe von {f2} aus.
--> Stellen Sie Mindestladung auf {load}% ein.
[4] Wählen Sie die Station in der Nähe von {f3} aus.
[5] Geben Sie der Linie einen aussagekräftigen Namen und schließen Sie den Linienplan.
[6] Starten Sie den Zug mit Klick auf Starten.
Tipp: Sie können den Filter im unteren Bereich des Depotfensters verwenden, um nur Fahrzeuge anzuzeigen, die eine bestimmte Fracht transportieren können.
Tipp: Drücken Sie die Taste W ([Umschalt]+w), um den Schnellvorlauf zu aktivieren. Erneutes drücken deaktiviert den Schnellvorlauf wieder.
Geliefert:
Sie müssen {good2} von {f2} nach {f3} in {cy1} transportieren.
[1] Bauen Sie eine Bahnstrecke zwischen {w1} und {w2}.
[2] Platzieren Sie das Zugdepot auf Feld {way1}.
Sie müssen nun einen geeigneten Zug zusammen stellen, um {good2} nach {f3} zu transportieren.
[1] Öffnen Sie das Zugdepot und wählen Sie eine Lokomotive {loc2} im Reiter Loks.
[2] Wählen Sie nun {wag} Waggons für {good2} aus.
[3] Wählen Sie bei Bedient Linie: den Eintrag Neue Linie erstellen und wählen Sie als ersten Halt den Bahnhof {stnam1} aus.
--> Stellen Sie Mindestladung auf {load}% ein.
[4] Wählen Sie als zweiten Halt den Bahnhof {stnam2} aus.
[5] Geben Sie der Linie einen aussagekräftigen Namen und schließen Sie den Linienplan.
[6] Starten Sie den Zug mit Klick auf Starten.
Tipp: Sie können den Filter im unteren Bereich des Depotfensters verwenden, um nur Fahrzeuge anzuzeigen, die eine bestimmte Fracht transportieren können.
Tipp: Drücken Sie die Taste W ([Umschalt]+w), um den Schnellvorlauf zu aktivieren. Erneutes drücken deaktiviert den Schnellvorlauf wieder.
Geliefert:
Der Öffentliche Dienst benötigt Sie, um das Eisenbahnnetz fertigzustellen, das durch die Städte führt:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
Vorbereitung der elektrischen Züge.
Jetzt müssen Sie einen Personenzug zusammenstellen.
[1] Nachdem Sie das Depotfenster geöffnet haben, wählen Sie eine Lok {loc3} im Reiter Loks.
[2] Wählen Sie nun 6 Waggons für Passagiere im Reiter Passagierzüge
Tipp: Verwenden Sie den Filter, um nur Personenfahrzeuge anzuzeigen.
[3] Klicken Sie bei Bedient Linie: auf das Auswahlfeld und klicken Neue Linie erstellen an.
Fügen Sie folgende Halte in der angegebenen Reihenfolge zum Fahrplan hinzu:
{list}
[4] Nachdem Sie alle Stationen hinzugefügt haben, wählen Sie die Station {stnam} in der Liste aus und konfigurieren Sie sie wie folgt:
--> [a] Stellen Sie Mindestladung auf {load}%.
--> [b] Setzen Sie maximale Wartezeit auf {wait}.
[5] Geben Sie der Linie einen Namen und schließen den Linienplan.
- Klicken Sie so oft auf die Schaltfläche Kopieren, bis Sie {cnr} Züge haben.
Der Öffentliche Dienst benötigt Sie, um das Eisenbahnnetz fertigzustellen, das durch die Städte führt:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
Vorbereitung der elektrischen Züge.
Jetzt müssen Sie einen Personenzug zusammenstellen.
[1] Nachdem Sie das Depotfenster geöffnet haben, wählen Sie eine Lok {loc3} im Reiter Loks.
[2] Wählen Sie nun 6 Waggons für Passagiere im Reiter Passagierzüge
Tipp: Verwenden Sie den Filter, um nur Personenfahrzeuge anzuzeigen.
[3] Klicken Sie bei Bedient Linie: auf das Auswahlfeld und klicken Neue Linie erstellen an.
Fügen Sie folgende Halte in der angegebenen Reihenfolge zum Fahrplan hinzu:
{list}
[4] Nachdem Sie alle Stationen hinzugefügt haben, wählen Sie die Station {stnam} in der Liste aus und konfigurieren Sie sie wie folgt:
--> [a] Stellen Sie Mindestladung auf {load}%.
--> [b] Setzen Sie maximale Wartezeit auf {wait}.
[5] Geben Sie der Linie einen Namen und schließen den Linienplan.
- Klicken Sie so oft auf die Schaltfläche Kopieren, bis Sie {cnr} Züge haben.
Für die Produktion von {good2} müssen Sie {good1} von {f1} nach {f2} transportieren.
\ No newline at end of file +Für die Produktion von {good2} müssen Sie {good1} von {f1} nach {f2} transportieren.
\ No newline at end of file diff --git a/de/chapter_03/step_8-10_hinfo.txt b/de/chapter_03/step_8-10_hinfo.txt index 3a30868..be557fd 100644 --- a/de/chapter_03/step_8-10_hinfo.txt +++ b/de/chapter_03/step_8-10_hinfo.txt @@ -1 +1 @@ -
Der Öffentliche Dienst benötigt Sie, um das Eisenbahnnetz fertigzustellen, das durch die folgenden Städte verläuft:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
Der Öffentliche Dienst benötigt Sie, um das Eisenbahnnetz fertigzustellen, das durch die folgenden Städte verläuft:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
Um {good2} zu produzieren, muss {good1} von {f1} nach {f3} transportiert werden.
{tx} Die Beschreibung Details finden Sie in der Hilfe, die Sie über das ? in der Titelzeile des Fabrikfensters aufrufen können.
Hinweis: Der Transport von Passagieren und Post zur Fabrik ist für die Produktion der Fabrik nicht erforderlich. Ob der Transport von Passagieren und Post sowie die Versorgung mit Strom die Produktion erhöht wird im Reiter Produktionskennzahlen angezeigt.
Um {good2} zu produzieren, muss {good1} von {f1} nach {f3} transportiert werden.
{tx} Die Beschreibung Details finden Sie in der Hilfe, die Sie über das ? in der Titelzeile des Fabrikfensters aufrufen können.
Hinweis: Der Transport von Passagieren und Post zur Fabrik ist für die Produktion der Fabrik nicht erforderlich. Ob der Transport von Passagieren und Post sowie die Versorgung mit Strom die Produktion erhöht wird im Reiter Produktionskennzahlen angezeigt.
{good2} muss von {f3} nach {f4} transportiert werden.
{tx} Bauen sie den Fluss von {w1} nach {w2} mit einem Kanal aus.
\ No newline at end of file +{good2} muss von {f3} nach {f4} transportiert werden.
{tx} Bauen sie den Fluss von {w1} nach {w2} mit einem Kanal aus.
\ No newline at end of file diff --git a/de/chapter_04/05_2-3.txt b/de/chapter_04/05_2-3.txt index e95aa1f..a376160 100644 --- a/de/chapter_04/05_2-3.txt +++ b/de/chapter_04/05_2-3.txt @@ -1 +1 @@ -{good2} muss von {f3} nach {f4} transportiert werden.
{tx} Bauen Sie einen Binnenhafen für Waren auf Feld {dock}.
\ No newline at end of file +{good2} muss von {f3} nach {f4} transportiert werden.
{tx} Bauen Sie einen {cdock} für Waren auf Feld {dock}.
\ No newline at end of file diff --git a/de/chapter_04/05_3-3.txt b/de/chapter_04/05_3-3.txt index 5ce6e1e..e2fb3cd 100644 --- a/de/chapter_04/05_3-3.txt +++ b/de/chapter_04/05_3-3.txt @@ -1 +1 @@ -{tx} Verbindung zum Verbraucher {f4}
{all_cov} Schiffe werden benötigt, um {f4} mit {good2} zu versorgen.
[1] Klicken Sie im Fenster Schiffdepot {dep1} auf die Registerkarte Schiffe und wählen Sie dann das {sh} aus.
[2] Wählen Sie bei Bedient Linie: den Eintrag Neue Linie erstellen.
[3] Wählen Sie die Feder bei {f3} aus und stellen Sie die Mindestlast auf {load}%
[4] Wählen Sie das Dock bei {f4}.
[5] Geben Sie der Linie einen passenden Namen und schließen Sie den Linienplan.
[6] Drücken Sie auf Kopieren, bis alle {all_cov} Schiffe unterwegs sind.
[7] Klicken Sie abschließend Starten.
Tipp: Drücken Sie Strg beim klicken auf Starten, damit alle Fahrzeuge das Depot verlassen.
Schiffe im Umlauf:
{tx} Verbindung zum Verbraucher {f4}
{all_cov} Schiffe werden benötigt, um {f4} mit {good2} zu versorgen.
[1] Klicken Sie im Fenster Schiffdepot {dep1} auf die Registerkarte Schiffe und wählen Sie dann das {sh} aus.
[2] Wählen Sie bei Bedient Linie: den Eintrag Neue Linie erstellen.
[3] Wählen Sie ein Wasserfeld beim Hafen an der {f3} aus und stellen Sie die Mindestlast auf {load}%
[4] Wählen Sie den Binnenhafen bei {f4}.
[5] Geben Sie der Linie einen passenden Namen und schließen Sie den Linienplan.
[6] Drücken Sie auf Kopieren, bis sie {all_cov} Schiffe haben.
[7] Klicken Sie abschließend Starten.
Tipp: Drücken Sie Strg beim klicken auf Starten, damit alle Fahrzeuge das Depot verlassen.
Schiffe im Umlauf:
In diesem Kapitel sind die Schiffe die Protagonisten und mit ihnen werden wir Güter, Passagiere und Post transportieren.
{scr}
{txtst_01}Schritt A - Ein Blick auf die Fabriken
{step_01}
{txtst_02}Schritt B - Docks platzieren
{step_02}
{txtst_03}Schritt C - Werften platzieren
{step_03}
{txtst_04}Schritt D - Die Lieferanten verbinden
{step_04}
{txtst_05}Schritt E - Den Verbraucher verbinden
{step_05}
{txtst_06}Schritt F - Passagierpiers
{step_06}
{txtst_07}Schritt G - Verbindung von Touristenattraktionen
{step_07}
In diesem Kapitel sind die Schiffe die Protagonisten und mit ihnen werden wir Güter, Passagiere und Post transportieren.
{scr}
{txtst_01}Schritt A - Ein Blick auf die Fabriken
{step_01}
{txtst_02}Schritt B - Docks platzieren
{step_02}
{txtst_03}Schritt C - Werften platzieren
{step_03}
{txtst_04}Schritt D - Die Lieferanten verbinden
{step_04}
{txtst_05}Schritt E - Den Verbraucher verbinden
{step_05}
{txtst_06}Schritt F - Passagierpiers
{step_06}
{txtst_07}Schritt G - Verbindung von Touristenattraktionen
{step_07}
Um {good2} zu produzieren, muss {good1} von {f1} nach {f3} transportiert werden.
Werkzeuge für den Schiffsverkehr finden Sie im Menü Kanäle, Häfen und Werfeten.
Bauen Sie {nr} Hafen für Waren auf das angegebene Feld:
{dock}
Um {good2} zu produzieren, muss {good1} von {f1} nach {f3} transportiert werden.
Werkzeuge für den Schiffsverkehr finden Sie im Menü Kanäle, Häfen und Werfeten.
Bauen Sie {nr} Hafen für Waren auf das angegebene Feld:
{dock}
Um {good2} zu produzieren, muss {good1} von {f1} nach {f3} transportiert werden.
Bauen Sie ein Schiffdepot auf Feld {dep1}.
Um {good2} zu produzieren, muss {good1} von {f1} nach {f3} transportiert werden.
Bauen Sie ein Schiffdepot auf Feld {dep1}.
Um {good2} zu produzieren, muss {good1} von {f1} nach {f3} transportiert werden.
Verbindung zum Lieferanten herstellen {f1}
{all_cov} Schiffe werden benötigt, um {f3} mit {good1} zu versorgen.
Hinweis: Bei Häfen und Docks müssen Sie für den Fahrplanhalt auf die Wasserfläche davor in das Einzugsgebiet (Taste v) klicken. Bei Kanalhäfen hingegen müssen sie auf den Kanalhafen klicken. Bei Wasserindustrien reicht ebenfalls ein Klick in das Einzugsgebiet.
[1] Klicken Sie im Fenster Schiffdepot auf die Registerkarte Schiffe und wählen Sie dann das Symbol {sh} aus.
[2] Wählen Sie bei Bedient Linie: den Eintrag Neue Linie erstellen
[3] Wählen Sie die Bohrinsel {f1} aus und stellen Sie die Mindestladung auf {load}%
[4] Wählen Sie den Hafen bei {f3}
[5] Geben Sie der Linie einen passenden Namen und schließen Sie den Linienplan.
[6] Drücken Sie auf Kopieren, bis Sie {all_cov} Konvois/Schiffe erreichen.
[7] Drücken Sie abschließend die Schaltfläche Starten.
Tipp: Drücken Sie Strg beim klicken auf Starten, damit alle Fahrzeuge das Depot verlassen.
Schiffe im Umlauf:
Um {good2} zu produzieren, muss {good1} von {f1} nach {f3} transportiert werden.
Verbindung zum Lieferanten herstellen {f1}
{all_cov} Schiffe werden benötigt, um {f3} mit {good1} zu versorgen.
Hinweis: Bei Häfen und Docks müssen Sie für den Fahrplanhalt auf die Wasserfläche davor in das Einzugsgebiet (Taste v) klicken. Bei Kanalhäfen hingegen müssen sie auf den Kanalhafen klicken. Bei Wasserindustrien reicht ebenfalls ein Klick in das Einzugsgebiet.
[1] Klicken Sie im Fenster Schiffdepot auf die Registerkarte Schiffe und wählen Sie dann das Symbol {sh} aus.
[2] Wählen Sie bei Bedient Linie: den Eintrag Neue Linie erstellen
[3] Wählen Sie ein Wasserfeld bei der Bohrinsel {f1} aus und stellen Sie die Mindestladung auf {load}%
[4] Wählen Sie ein Wasserfeld am Hafen bei {f3}
[5] Geben Sie der Linie einen passenden Namen und schließen Sie den Linienplan.
[6] Drücken Sie auf Kopieren, bis Sie {all_cov} Konvois/Schiffe erreichen.
[7] Drücken Sie abschließend die Schaltfläche Starten.
Tipp: Drücken Sie Strg beim klicken auf Starten, damit alle Fahrzeuge das Depot verlassen.
Schiffe im Umlauf:
Es ist notwendig, Passagiere in touristische Gebiete {tur} zu transportieren.
Platzieren Sie {nr} Häfen für Passagiere auf den angegebenen Feldern:
{dock}
Es ist notwendig, Passagiere ins touristische Gebiete bei {tur} zu transportieren.
Platzieren Sie {nr} Häfen für Passagiere auf den angegebenen Feldern:
{dock}
Es ist notwendig, Passagiere in touristische Gebiete {tur} zu transportieren.
Klicken Sie mit dem Abfragewerkzeug auf das Schiffdepot {dep1}. Kaufen Sie im Reiter Fähren ein {ship}.
Wählen Sie bei Bedient Linie: den Eintrag Neue Linie erstellen und fügen sie folgende Haltestellen hinzu:
{list}
Nachdem Sie die Haltestellen hinzugefügt haben, wählen Sie die Haltestelle {stnam} aus und konfigurieren Sie wie folgt:
--> [a] Setzen Sie Mindestladung auf {load}% .
--> [b] Setzen Sie maximale Wartezeit auf {wait}.
Geben Sie der Linie einen passenden Namen und schließen Sie den Linienplan.
Klicken Sie abschließend auf Starten.
Es ist notwendig, Passagiere in touristische Gebiete {tur} zu transportieren.
Klicken Sie mit dem Abfragewerkzeug auf das Schiffdepot {dep1}. Kaufen Sie im Reiter Fähren ein {ship}.
Wählen Sie bei Bedient Linie: den Eintrag Neue Linie erstellen und fügen sie folgende Haltestellen hinzu:
{list}
Nachdem Sie die Haltestellen hinzugefügt haben, wählen Sie die Haltestelle {stnam} aus und konfigurieren Sie wie folgt:
--> [a] Setzen Sie Mindestladung auf {load}% .
--> [b] Setzen Sie maximale Wartezeit auf {wait}.
Geben Sie der Linie einen passenden Namen und schließen Sie den Linienplan.
Klicken Sie abschließend auf Starten.
{tx} Im Menü {toolbar} wählen Sie {trf_name} aus, um Umspannwerke an den Fabriken zu bauen:
{tran}
{tx} Im Menü {toolbar} wählen Sie {trf_name} aus, um Umspannwerke an den Fabriken zu bauen:
{tran}
{tx} Im Menü {toolbar} wählen Sie {powerline_tool}, um alle Fabriken an das Stromnetz anzuschließen:
{tran}
{tx} Im Menü {toolbar} wählen Sie {powerline_tool}, um alle Fabriken an das Stromnetz anzuschließen:
{tran}
{tx} Im Menü {toolbar} wählen Sie Erweiterungsgebäude für die Post aus und platzieren Sie eines an jedem der folgenden Orte:
{st}
{img_road_menu} {toolbar_halt}
{img_post_menu} {toolbar_extension}
Es gibt zwei Möglichkeiten Stationen für Post freizuschalten. Zum einen kann ein Post-Erweiterungsgebäude (Menü {toolbar_extension}) auf ein freies Feld neben dem Halt gebaut werden.
Zum anderen kann ein weiterer Halt (Menü {toolbar_halt}) auf einen geraden Weg angebaut werden, der Post akzeptiert.
{tx} Erweitern Sie die folgenden Halte, damit sie Post akzeptieren. {st}
{tx} Wählen Sie im Straßendepot {dep} einen {veh} aus.
Wählen Sie bei Bedient Linie: den Eintrag Neue Linie erstellen.
Wählen Sie nun die Haltestellen aus:
{list}
Nachdem Sie alle {nr} Haltestellen hinzugefügt haben, wählen Sie die Haltestelle {stnam} und konfigurieren Sie es wie folgt:
--> [a] Konfigurieren Sie Mindestlast auf {load} %.
--> [b] Setzen Sie Ausfahrt nach auf {wait}.
Geben Sie der Linie einen passenden Namen und schließen Sie den Linienplan.
Klicken Sie auf Kopieren, bis Sie {all_cov} Fahrzeuge haben.
Drücken Sie abschließend die Schaltfläche Starten
Konvois im Umlauf: {cir}/{all_cov}
\ No newline at end of file +
{tx} Wählen Sie im Straßendepot {dep} einen {veh} aus.
Wählen Sie bei Bedient Linie: den Eintrag Neue Linie erstellen.
Wählen Sie nun die Haltestellen aus:
{list}
Nachdem Sie alle {nr} Haltestellen hinzugefügt haben, wählen Sie die Haltestelle {stnam} und konfigurieren Sie es wie folgt:
--> [a] Konfigurieren Sie Mindestlast auf {load} %.
--> [b] Setzen Sie Ausfahrt nach auf {wait}.
Geben Sie der Linie einen passenden Namen und schließen Sie den Linienplan.
Klicken Sie auf Kopieren, bis Sie {all_cov} Fahrzeuge haben.
Drücken Sie abschließend die Schaltfläche Starten
Lkw im Umlauf: {cir}/{all_cov}
\ No newline at end of file diff --git a/de/chapter_05/04_3-3.txt b/de/chapter_05/04_3-3.txt index 4c6ac45..2f5dc89 100644 --- a/de/chapter_05/04_3-3.txt +++ b/de/chapter_05/04_3-3.txt @@ -1 +1 @@ -Klicken Sie mit dem Abfragewerkzeug auf das Schiffdepot {dep}. Kaufen Sie im Reiter Fähren ein {ship}.
Wählen Sie bei Bedient Linie: den Eintrag Neue Linie erstellen und fügen sie folgende Haltestellen hinzu:
{list}
Nachdem Sie die Haltestellen hinzugefügt haben, wählen Sie die Haltestelle {stnam} aus und konfigurieren Sie wie folgt:
--> [a] Setzen Sie Mindestladung auf {load}% .
--> [b] Setzen Sie maximale Wartezeit auf {wait}.
Geben Sie der Linie einen passenden Namen und schließen Sie den Linienplan.
Klicken Sie abschließend auf Starten.
Klicken Sie mit dem Abfragewerkzeug auf das Schiffdepot {dep}. Kaufen Sie im Reiter Fähren ein {ship}.
Wählen Sie bei Bedient Linie: den Eintrag Neue Linie erstellen und fügen sie folgende Haltestellen hinzu:
{list}
Nachdem Sie die Haltestellen hinzugefügt haben, wählen Sie die Haltestelle {stnam} aus und konfigurieren Sie wie folgt:
--> [a] Setzen Sie Mindestladung auf {load}% .
--> [b] Setzen Sie maximale Wartezeit auf {wait}.
Geben Sie der Linie einen passenden Namen und schließen Sie den Linienplan.
Klicken Sie abschließend auf Starten.
In diesem Kapitel werden wir die Effizienz unserer Industrieketten verbessern und Passagiere sowie Post transportieren sowie eine Stromversorung aufbauen.
{scr}
{txtst_01}Schritt A - Stromproduktion und -verbrauch
{step_01}
{txtst_02}Schritt B - Kohlelastwagen
{step_02}
{txtst_03}Schritt C - Anschließen des elektrischen Systems
{step_03}
{txtst_04}Schritt D - Zustellung der Post
{step_04}
In diesem Kapitel werden wir die Effizienz unserer Industrieketten verbessern und Passagiere sowie Post transportieren sowie eine Stromversorung aufbauen.
{scr}
{txtst_01}Schritt A - Stromproduktion und -verbrauch
{step_01}
{txtst_02}Schritt B - Kohlelastwagen
{step_02}
{txtst_03}Schritt C - Anschließen des elektrischen Systems
{step_03}
{txtst_04}Schritt D - Zustellung der Post
{step_04}
In diesem Kapitel werden wir die folgenden Fabriken elektrifizieren:
{f1}
{f2}
{f3}
Das Stromerzeugungskraftwerk muss ebenfalls angeschlossen sein:
{f4}
In diesem Kapitel werden wir die folgenden Fabriken elektrifizieren:
{f1}
{f2}
{f3}
Das Stromerzeugungskraftwerk muss ebenfalls angeschlossen sein:
{f4}
Sie müssen {good} transportieren, um das Stromerzeugungswerk {f4} zu betreiben.
[1] Die Straße verbinden:
Wählen Sie {tool2} und bauen Sie eine Straße zwischen Feld {w1} bei {f3} und Feld {w2} bei {f4}.
[2] LKW-Stationen:
Bauen Sie die Frachtstationen auf Feld {w1} und Feld {w2}.
[3] Das Straßendepot:
Bauen Sie eine Straße auf Feld {dep} und darauf ein Straßendepot.
[4] Vorbereitung der LKWs:
Sie müssen nun ein geeignetes Fahrzeug auswählen, um {good} nach {f4} zu transportieren.
[a] Öffnen Sie das Straßendepot und wählen Sie einen Lkw {veh} im Reiter LKW.
[b] Wählen Sie nun im Reiter Anhänger einen Anhänger für {good} aus.
[c] Wählen Sie bei Bedient Linie: den Eintrag Neue Linie erstellen und wählen Sie als ersten Halt den Lkw-Halt in der Nähe von {f3} aus.
--> Stellen Sie Mindestladung auf {load}% ein.
[d] Wählen Sie den Lkw-Halt in der Nähe von {f4} aus.
[e] Geben Sie der Linie einen passenden Namen und schließen Sie den Linienplan.
[f] Klicken Sie so oft auf Kopieren, bis Sie {all_cov} Lkws haben.
[g] Starten Sie die Lkw.
Fahrzeuge im Umlauf:
Sie müssen {good} transportieren, um das Stromerzeugungswerk {f4} zu betreiben.
[1] Die Straße verbinden:
Wählen Sie {tool2} und bauen Sie eine Straße zwischen Feld {w1} bei {f3} und Feld {w2} bei {f4}.
[2] LKW-Stationen:
Bauen Sie die Frachtstationen auf Feld {w1} und Feld {w2}.
[3] Das Straßendepot:
Bauen Sie eine Straße auf Feld {dep} und darauf ein Straßendepot.
[4] Vorbereitung der LKWs:
Sie müssen nun ein geeignetes Fahrzeug auswählen, um {good} nach {f4} zu transportieren.
[a] Öffnen Sie das Straßendepot und wählen Sie einen Lkw {veh} im Reiter LKW.
[b] Wählen Sie nun im Reiter Anhänger einen Anhänger für {good} aus.
[c] Wählen Sie bei Bedient Linie: den Eintrag Neue Linie erstellen und wählen Sie als ersten Halt den Lkw-Halt in der Nähe von {f3} aus.
--> Stellen Sie Mindestladung auf {load}% ein.
[d] Wählen Sie den Lkw-Halt in der Nähe von {f4} aus.
[e] Geben Sie der Linie einen passenden Namen und schließen Sie den Linienplan.
[f] Klicken Sie so oft auf Kopieren, bis Sie {all_cov} Lkws haben.
[g] Starten Sie die Lkw.
Fahrzeuge im Umlauf:
Der öffentliche Dienst benötigt Ihre Hilfe, um die Stadt {cit1} mit der Stadt {cit2} per Flugzeug zu verbinden.
Der öffentliche Dienst benötigt Ihre Hilfe, um die Stadt {cit1} mit der Stadt {cit2} per Flugzeug zu verbinden.
Der öffentliche Dienst benötigt Ihre Hilfe, um die Stadt {cit1} mit der Stadt {cit2} per Flugzeug zu verbinden.
Klicken Sie auf den Hangar {dep1} und wählen das Flugzeug {plane}
Wählen Sie bei Bedient Linie: den Eintrag Neue Linie erstellen.
[1] Wählen Sie den Halt {sch1} und konfigurieren Sie den Halt wie folgt:
--> [a] Konfigurieren Sie Mindestladung auf {load}%
--> [b] Setzen Sie maximale Wartezeit auf {wait}
[2] Wählen Sie den Halt {sch2}. Geben Sie der Linie einen passenden Namen und schließen Sie den Linienplan.
[3] Starten Sie das Flugzeug mit Klick auf Starten
Der öffentliche Dienst benötigt Ihre Hilfe, um die Stadt {cit1} mit der Stadt {cit2} per Flugzeug zu verbinden.
Klicken Sie auf den Hangar {dep1} und wählen das Flugzeug {plane}.
Wählen Sie bei Bedient Linie: den Eintrag Neue Linie erstellen.
Wählen Sie nun die Halte aus:
{list}
Nachdem Sie alle Halte hinzugefügt haben, wählen Sie den Halt {stnam} und konfigurieren Sie ihn wie folgt:
--> [a] Konfigurieren Sie Mindestlast auf {load} %.
--> [b] Setzen Sie Ausfahrt nach auf {wait}.
Geben Sie der Linie einen passenden Namen und schließen Sie den Linienplan.
Drücken Sie abschließend die Schaltfläche Starten
Verbindung der Stadt {cit1} mit dem Flughafen {sch1} mithilfe von {cnr} Bussen.
Klicken Sie auf das Straßendepot {dep2} und wählen Sie einen Bus {bus1}.
Wählen Sie bei Bedient Linie: den Eintrag Neue Linie erstellen
[1] Wählen Sie alle Haltestellen der Reihe nach aus:
{stx}
[2] Nachdem Sie die Haltestellen hinzugefügt haben, wählen Sie die Haltestelle {stnam} aus der Liste und konfigurieren Sie den Halt wie folgt:
--> [a] Konfigurieren Sie Mindestladung auf {load}% und maximale Wartezeit auf {wait}
[3] Geben Sie der Linie einen passenden Namen und schließen Sie den Linienplan.
[4] Verwenden Sie die Schaltfläche Kopieren, um die erforderlichen {cnr} Busse zu erhalten.
[5] Klicken Sie auf Starten, bis alle Fahrzeuge das Depot verlassen.
Verbindung der Stadt {cit1} mit dem Flughafen {sch1} mithilfe von {cnr} Bussen.
Klicken Sie auf das Straßendepot {dep2} und wählen Sie einen Bus {bus1}.
Wählen Sie bei Bedient Linie: den Eintrag Neue Linie erstellen
[1] Wählen Sie alle Haltestellen der Reihe nach aus:
{stx}
[2] Nachdem Sie die Haltestellen hinzugefügt haben, wählen Sie die Haltestelle {stnam} aus der Liste und konfigurieren Sie den Halt wie folgt:
--> [a] Konfigurieren Sie Mindestladung auf {load}% und maximale Wartezeit auf {wait}
[3] Geben Sie der Linie einen passenden Namen und schließen Sie den Linienplan.
[4] Verwenden Sie die Schaltfläche Kopieren, um die erforderlichen {cnr} Busse zu erhalten.
[5] Klicken Sie auf Starten, bis alle Fahrzeuge das Depot verlassen.
Verbindung der Stadt {cit1} mit dem Flughafen {sch2} mithilfe von {cnr} Bussen.
[1] Wählen Sie alle Haltestellen der Reihe nach aus:
{stx}
[2] Nachdem Sie die Haltestellen hinzugefügt haben, wählen Sie den Halt {stnam} aus der Liste und konfigurieren Sie den Halt wie folgt:
--> Konfigurieren Sie Mindestladung auf {load}% und maximale Wartezeit auf {wait}
[3] Geben Sie der Linie einen passenden Namen und schließen Sie den Linienplan.
[4] Verwenden Sie die Schaltfläche Kopieren, um die erforderlichen {cnr} Busse zu erhalten.
[5] Klicken Sie auf Starten, bis alle Fahrzeuge das Depot verlassen.
Verbindung der Stadt {cit1} mit dem Flughafen {sch2} mithilfe von {cnr} Bussen.
[1] Wählen Sie alle Haltestellen der Reihe nach aus:
{stx}
[2] Nachdem Sie die Haltestellen hinzugefügt haben, wählen Sie den Halt {stnam} aus der Liste und konfigurieren Sie den Halt wie folgt:
--> Konfigurieren Sie Mindestladung auf {load}% und maximale Wartezeit auf {wait}
[3] Geben Sie der Linie einen passenden Namen und schließen Sie den Linienplan.
[4] Verwenden Sie die Schaltfläche Kopieren, um die erforderlichen {cnr} Busse zu erhalten.
[5] Klicken Sie auf Starten, bis alle Fahrzeuge das Depot verlassen.
{txtst_01}Schritt A - Die Stadtbusse I
{step_01}
{txtst_02}Schritt B - Die Stadtbusse II
{step_02}
{txtst_03}Schritt C - Die Stadtbusse III
{step_03}
{txtst_04}Schritt D - Die Stadtbusse IV
{step_04}
{txtst_05}Schritt E - Ende des Szenarios
{step_05}
{txtst_01}Schritt A - Die Stadtbusse I
{step_01}
{txtst_02}Schritt B - Die Stadtbusse II
{step_02}
{txtst_03}Schritt C - Die Stadtbusse III
{step_03}
{txtst_04}Schritt D - Die Stadtbusse IV
{step_04}
Die Stadt {city} muss ein Busnetz erhalten, das es den Fahrgästen ermöglicht, zum Bahnhof {name} zu gelangen.
[1] Platzieren Sie eine Bushaltestelle auf Feld {stop}.
[2] Machen Sie die Haltestelle {stop} öffentlich.
[3] Richten Sie ein Busnetz in der Stadt {city} ein.
[4] Stellen Sie sicher, dass alle Busse mit der Haltestelle {name} verbunden sind..
Die Stadt {city} muss ein Busnetz erhalten, das es den Fahrgästen ermöglicht, zum Bahnhof {name} zu gelangen.
Bauen Sie in der Stadt so viele Bushaltestellen wie Sie benötigen, um die Stadt abzudecken. Stellen Sie sicher, dass auf Feld {stop} ein Bushalt ist, der mit dem Bahnhof {name} verbunden ist, damit die Fahrgäste gezählt werden.
Die Stadt {city} muss ein Busnetz erhalten, das es den Fahrgästen ermöglicht, zum Bahnhof {name} zu gelangen.
Bauen Sie in der Stadt so viele Bushaltestellen wie Sie benötigen, um die Stadt abzudecken. Stellen Sie sicher, dass ein Bushalt mit dem Bahnhof {name} verbunden ist, damit die Fahrgäste gezählt werden.
TIPP: Mit dem schnellen Vorlauf kann die Wartezeit verkürzt werden.
Die Stadt {city} muss ein Busnetz erhalten, das es den Fahrgästen ermöglicht, zum Bahnhof {name} zu gelangen.
[1] Platzieren Sie eine Bushaltestelle auf Feld {stop}.
[2] Machen Sie die Haltestelle {stop} öffentlich.
[3] Richten Sie ein Busnetz in der Stadt {city} ein.
[4] Stellen Sie sicher, dass alle Busse mit der Haltestelle {name} verbunden sind..
Die Stadt {city} muss ein Busnetz erhalten, das es den Fahrgästen ermöglicht, zum Bahnhof {name} zu gelangen.
[1] Platzieren Sie eine Bushaltestelle auf Feld {stop}.
[2] Machen Sie die Haltestelle {stop} öffentlich.
[3] Richten Sie ein Busnetz in der Stadt {city} ein.
[4] Stellen Sie sicher, dass alle Busse mit der Haltestelle {name} verbunden sind..
Die Stadt {city} muss ein Busnetz erhalten, das es den Fahrgästen ermöglicht, zum Bahnhof {name} zu gelangen.
[1] Platzieren Sie eine Bushaltestelle auf Feld {stop}.
[2] Machen Sie die Haltestelle {stop} öffentlich.
[3] Richten Sie ein Busnetz in der Stadt {city} ein.
[4] Stellen Sie sicher, dass alle Busse mit der Haltestelle {name} verbunden sind..
Das ist für den Moment alles, vielen Dank, dass Sie das mythische Simutrans spielen.
Sie können hier folgen: www.facebook.com/Simutrans
Bei Fragen helfen wir Ihnen gerne im internationalem Forum forum.simutrans.com oder im deutschen Forum simutrans-forum.de
Weitere Informationen finden sie auch unter wiki.simutrans.com
Dank an die gesamte Simutrans-Community und insbesondere an:
Dwachs
Prissi
ny911
HaydenRead
Tjoeker
gauthier
Andarix
Roboron
Grüße!! @Yona-TYT.
\ No newline at end of file +{title}Das ist für den Moment alles, vielen Dank, dass Sie das mythische Simutrans spielen.
Sie können hier folgen: www.facebook.com/Simutrans
Bei Fragen helfen wir Ihnen gerne im internationalem Forum forum.simutrans.com oder im deutschen Forum simutrans-forum.de
Weitere Informationen finden sie auch unter wiki.simutrans.com
Dank an die gesamte Simutrans-Community und insbesondere an:
Dwachs
Prissi
ny911
HaydenRead
Tjoeker
gauthier
Andarix
Roboron
Grüße!! @Yona-TYT.
\ No newline at end of file diff --git a/de/info.txt b/de/info.txt index 4160981..3799cb4 100644 --- a/de/info.txt +++ b/de/info.txt @@ -1 +1 @@ -
Das Tutorial besteht aus mehreren Kapiteln, in denen jeweils eine Reihe von Schritten zum Abschließen des Kapitels enthalten sind.
Wirtschaftliche Aspekte werden im Tutorial nur kurz behandelt.
{list_of_chapters}
Ausführlichere Hilfe erhalten Sie, indem Sie die Taste F1 drücken. In vielen Fenstern gibt es im Fenstertitel das ?, das beim anklicken direkt zum passenden Hilfetext springt.
{first_link}
Fenster {dialog} öffnen
Sollte dieses Fenster geschlossen werden, kann es mit diesem Button im Hauptmenü wieder geöffnet werden.
Das Tutorial besteht aus mehreren Kapiteln, in denen jeweils eine Reihe von Schritten zum Abschließen des Kapitels enthalten sind.
Wirtschaftliche Aspekte werden im Tutorial nur kurz behandelt.
{list_of_chapters}
Ausführlichere Hilfe erhalten Sie, indem Sie die Taste F1 drücken. In vielen Fenstern gibt es im Fenstertitel das ?, das beim anklicken direkt zum passenden Hilfetext springt.
{first_link}
Das pak64.german ist ein Grafikset was nur eine Höhe verwendet.
Im pak64.german gibt es auch keinen Bonus auf Geschwindigkeit. Diese ist aber trotzdem wichtig, weil Stationen nicht überfüllen dürfen. Überfüllen Stationen, dann bricht das Transportaufkommen ein.
Wenn Mindestladung benutzt wird, dann achten Sie darauf, das dann keine Stationen überfüllen.
Magnetbahn und die S-/U-Bahn sollten erst bei sehr hohem Passagieraufkommen genutzt werden.
\ No newline at end of file diff --git a/de/rule.txt b/de/rule.txt index 054bd06..2d68066 100644 --- a/de/rule.txt +++ b/de/rule.txt @@ -1 +1 @@ -Es werden nicht alle Werkzeuge angezeigt. Es stehen nur die für den aktuellen Schritt notwendigen Aktionen zur Verfügung.
· Regeln beschreiben
· Ratschläge geben
· Anleitungen zu bekannten Problemen
Es werden nicht alle Werkzeuge angezeigt. Es stehen nur die für den aktuellen Schritt notwendigen Aktionen zur Verfügung.
· Regeln beschreiben
· Ratschläge geben
· Anleitungen zu bekannten Problemen
In this first step we are going to explain some basic aspects of the Tutorial Scenario.
In this first step we are going to explain some basic aspects of the Tutorial Scenario.
Messages
Scenario messages are disabled by default, you can enable as follows:
- In the toolbar select the menu Message Center, in the press the button [Options]
- Below is a list of message types, each with 4 checkboxes.
- [Master Control] this control completely enables/disables the selected message.
- [News bar] this control enables/disables messages in the news bar.
- [Temporary Window] this control enables/disables messages in a popup window that disappears in a few seconds.
- [Alert Window] this control enables/disables messages in persistent popup
It is recommended to turn on the grid for this tutorial by using the "#" key. In addition, it is highly recommended that Trees are set to transparent, either through the settings menu, or by pressing the "%" key.
You can zoom in and out using either the Mouse wheel, or by using the "Page Up/Page Down Keys".
You can move about the map either by holding down the Right Mouse button and dragging, using the Arrow Keys or the number pad.
You can rotate the map by pressing "[Shift]+r" (Capital "R") or in from toolbar select Rotate Map tool.
Try zooming in and out and moving about the map.
{img_grid} grid
It is recommended to turn on the grid for this tutorial by using the "#" key.
{img_display} settings menu - display
In addition, it is highly recommended that Trees are set to transparent, either through the settings menu, or by pressing the "%" key.
You can zoom in and out using either the Mouse wheel, or by using the "Page Up/Page Down Keys".
You can move about the map either by holding down the Right Mouse button and dragging, using the Arrow Keys or the number pad.
rotate the map
You can rotate the map by pressing "[Shift]+r" (Capital "R") or in from toolbar select Rotate Map tool.
Try zooming in and out and moving about the map.
These windows help you to keep yourself updated about what is going on in the world.
The 'mini-map' can be displayed by pressing the "m" key.
The 'finances' window can be displayed by pressing the "f" key.
The 'message center' can be displayed by pressing "[Shift]+b".
Detailed information about cities can also be viewed by clicking on the Town hall with the '{tool1}'.
These windows help you to keep yourself updated about what is going on in the world.
mini-map
The 'mini-map' can be displayed by pressing the "m" key.
finances
The 'finances' window can be displayed by pressing the "f" key.
message
The 'message center' can be displayed by pressing "[Shift]+b".
{tool1}
Detailed information about cities can also be viewed by clicking on the Town hall with the '{tool1}'.
Now that the bridge has been repaired, the city {name} needs a line with [{cov}] buses in circulation to move tourism in from the dock under construction {st1}.
{tx} Starting the Buses.
Buses in circulation:
Now that the bridge has been repaired, the city {name} needs a line with [{cov}] buses in circulation to move tourism in from the dock under construction {stnam}.
{tx} Starting the Buses.
Buses in circulation:
Now that the bridge has been repaired, the city {name} needs a line with [3] buses in circulation to move tourism in from the dock under construction {st1}.
{tx} Starting the Buses.
[1] First buy a bus {bus1}.
[2] If the line was created correctly, you can click on the Serves line filter (by default it says: [no schedule set]) and then select the line "{line}".
[3] Finally click on the Start button.
Buses in circulation:
Now that the bridge has been repaired, the city {name} needs a line with [3] buses in circulation to move tourism in from the dock under construction {stnam}.
{tx} Starting the Buses.
[1] First buy a bus {bus1}.
[2] If the line was created correctly, you can click on the Serves line filter (by default it says: [no schedule set]) and then select the line "{line}".
[3] Finally click on the Start button.
Buses in circulation:
Now that the bridge is repaired, we should create a bus service from {name} to the neighbouring City of {name2}.
{tx} First you must build all stops in {name2}.
Stops list: {list}
Now that the bridge is repaired, we should create a bus service from {name} to the neighbouring City of {name2}.
{img_road_menu} {toolbar_halt}
{tx} First you must build all stops in {name2}.
Stops list: {list}
Now that the bridge is repaired, we should create a bus service from {name} to the neighbouring City of {name2}.
{tx} Open the '{tool2}' toolbar in the upper menu bar and select the road tool to connect the two points between {pt1} and {pt2}.
Tip: Hold down the [Ctrl] key to build straight sections of roads/rails.
Now that the bridge is repaired, we should create a bus service from {name} to the neighbouring City of {name2}.
{tx} Open the '{toolbar_road}' toolbar in the upper menu bar and select the road tool to connect the two points between {pt1} and {pt2}.
Tip: Hold down the [Ctrl] key to build straight sections of roads/rails.
Now that the bridge is repaired, we should create a bus service from {name} to the neighbouring City of {name2}.
{tx} Now you must follow the Convoy.
Click on the vehicle already in circulation so that the Convoy Window is displayed. Look for the fourth icon in the title bar of the Convoy Window (eye icon) and press it to follow the convoy.
The vehicle is located at: {covpos}
We are going to set up a Bus Service in the town of {name} .
First, you need to build a dead-end road so as to build the depot on it.
Open the '{tool2}' toolbar in the upper menu bar and select the 50 kmph road tool. Then, you can build a road either by clicking once the beginning and once on the end point or by dragging the mouse between these points.
We are going to set up a Bus Service in the town of {name} .
First, you need to build a dead-end road so as to build the depot on it.
{img_road_menu} {toolbar_road}
Open the '{toolbar_road}' toolbar in the upper menu bar and select the 50 kmph road tool. Then, you can build a road either by clicking once the beginning and once on the end point or by dragging the mouse between these points.
We are going to set up a Bus Service in the town of {name} .
The first step in setting up the service is building a Garage at {pos}. You will find the garage tool in the '{tool2}' toolbar too.
We are going to set up a Bus Service in the town of {name} .
{img_road_menu} {toolbar_road}
The first step in setting up the service is building a Garage at {dep}. You will find the garage tool in the '{toolbar_road}' toolbar too.
The next step in setting up your Bus Service for {name}.
It is necessary to build bus stops at each of the points marked in the city:
{list}
Stops are in the '{tool2}' toolbar too.
Note: The stops have a coverage area of 5x5 around them, therefore it is advised to place the stops at a distance of 4 tiles. Unlike buildings, streets do not need to be covered as they do not generate passengers.
Tip: Covered area can be displayed by pressing the "v" key.
The next step in setting up your Bus Service for {name}.
{img_road_menu} {toolbar_halt}
It is necessary to build bus stops at each of the points marked in the city.
Stops are in the '{toolbar_halt}' toolbar too.
{list}
Note: The stops have a coverage area of 5x5 around them, therefore it is advised to place the stops at a distance of 4 tiles. Unlike buildings, streets do not need to be covered as they do not generate passengers.
Tip: Covered area can be displayed by pressing the "v" key.
Now you need to purchase a {bus1} Bus to run the service.
[1] First click on the Garage {pos} using the '{tool1}' and buy a bus {bus1}.
[2] To configure the route of the vehicle, you must first click on the Schedule button.
[3] With the Schedule window open, you should now select all stops in the city to add them to the list:
{list}
[4] After adding the {nr} stops, select the stop {stnam} and configure it as follows:
--> [a] Set Minimum load to {load}%.
--> [b] Set Depart after to {wait}.
[5] Now you may eventually close the schedule window and click the Start button so that the vehicle leaves the depot.
Tip: Press the ["] key to hide the urban buildings.
Now you need to purchase a {bus1} Bus to run the service.
[1] First click on the Garage {dep} using the '{tool1}' and buy a bus {bus1}.
[2] To configure the route of the vehicle, you must first click on the Schedule button.
[3] With the Schedule window open, you should now select all stops in the city to add them to the list:
{list}
[4] After adding the {nr} stops, select the stop {stnam} and configure it as follows:
--> [a] Set Minimum load to {load}%.
--> [b] Set Depart after to {wait}.
[5] Now you may eventually close the schedule window and click the Start button so that the vehicle leaves the depot.
Tip: Press the ["] key to hide the urban buildings.
Click on the vehicle already in circulation so that the Convoy Window is displayed. Look for the fourth icon in the title bar of the Convoy Window (eye icon) and press it to follow the convoy.
The bridge to an outlying suburb was recently washed out,
and the City of {name} would like you to reconnect the suburb by building a brige between {bpos1} and {bpos2}.
Bridge are in the '{tool2}' toolbar too.
There are two ways this can be done, you must first select the 50 kmph bridge tool in the Road Tools toolbar, then...
[1] You can build the bridge by clicking on one of the facing slopes.
[2] You can place the bridge by dragging mouse from a slope on either side to the slope on the opposite side.
The bridge to an outlying suburb was recently washed out,
and the City of {name} would like you to reconnect the suburb by building a brige between {bpos1} and {bpos2}.
{img_road_menu} {toolbar_road}
Bridge are in the '{toolbar_road}' toolbar too.
There are two ways this can be done, you must first select the 50 kmph bridge tool in the Road Tools toolbar, then...
[1] You can build the bridge by clicking on one of the facing slopes.
[2] You can place the bridge by dragging mouse from a slope on either side to the slope on the opposite side.
The city {name} needs to connect the bus line with the train line under construction.
In the toolbar select '{tool3}' and choose the Make way or stop public tool.
Select the Make way or stop public tool and click on the stop {st1}. You will notice that its color will change.
The city {name} needs to connect the bus line with the train line under construction.
By making the stop public, the player frees himself from maintaining it and also allows sharing the transport network with other players. But be careful, since this can't be reversed unless you change to the Public Service player.
Select the Make way or stop public tool and click on the stop {st1}. You will notice that its color will change.
Now you may assemble a convoy that can transport {good1} to {f2}.
[1] After opening the train depot's window, select the locomotive {loc1} in the Locomotives tab.
[2] Now select {wag} Wagons for {good1} in the Cars tab
[3] In the field next to "Serves line", select create new line and select the station near {f1}.
--> Set Minimum load at {load}%."
[4] Select the station near {f2} and select Start.
Tip: You can set the Filter in the depot's window to only show vehicles that can transport {good1}.
It takes to the next step when the {f2} receive {t_reach}t of {good1}.
Tip: Press the "W" (capital letter) key to activate fast forward.
Received amount:
Now you may assemble a convoy that can transport {good1} to {f2}.
[1] After opening the train depot's window, select the locomotive {loc1} in the Locomotives tab.
[2] Now select {wag} Wagons for {good1} in the Cars tab
[3] In the field next to "Serves line", select create new line and select the station {stnam1}.
--> Set Minimum load at {load}%."
[4] Select the station {stnam2} and select Start.
Tip: You can set the Filter in the depot's window to only show vehicles that can transport {good1}.
It takes to the next step when the {f2} receive {t_reach} of {good1}.
Tip: Press the "W" (capital letter) key to activate fast forward.
Received amount:
You need to transport {good2} from {f2} to {f3} in {cy1}.
[1] Build a track section between {w1} and {w2}.
[2] Build a Train Depot at: {way1}.
Now you may buy a locomotive. Click on the Locomotives tab and select {loc2}, then add {wag} wagons that can transport {good2} in the Cars tab
Then, click on Schedule. First, select the station at {f2}.
--> Set Minimum load at {load}%."
Then select the station in {f3} and click on Start.
Tip: Use the filter to show only the {good2} wagons.
It takes to the next step when the {f3} receive {t_reach}{g1_metric} of {good2}.
Tip: Press the "W" (capital letter) key to activate fast forward.
Received amount:
You need to transport {good2} from {f2} to {f3} in {cy1}.
[1] Build a track section between {w1} and {w2}.
[2] Build a Train Depot at: {way1}.
Now you may buy a locomotive. Click on the Locomotives tab and select {loc2}, then add {wag} wagons that can transport {good2} in the Cars tab
Then, click on Schedule. First, select the station {stnam1}.
--> Set Minimum load at {load}%."
Then select the station {stnam2} and click on Start.
Tip: Use the filter to show only the {good2} wagons.
It takes to the next step when the {f3} receive {t_reach}{g1_metric} of {good2}.
Tip: Press the "W" (capital letter) key to activate fast forward.
Received amount:
It is required to transport {good2} from {f3} to the {f4} for the final consumer.
{tx} Build a Canal Quay of goods in {dock}.
\ No newline at end of file +It is required to transport {good2} from {f3} to the {f4} for the final consumer.
{tx} Build a {cdock} of goods in {dock}.
\ No newline at end of file diff --git a/en/chapter_05/04_1-3.txt b/en/chapter_05/04_1-3.txt index 4fe9913..8fcaf97 100644 --- a/en/chapter_05/04_1-3.txt +++ b/en/chapter_05/04_1-3.txt @@ -1 +1 @@ -{tx} In the {toolbar} menu, select one of the "Extension Buildings" for mail and place one in each of the following positions:
{st}
{img_road_menu} {toolbar_halt}
{img_post_menu} {toolbar_extension}
{tx} There are two ways to unlock stations for mail. Firstly, a mail extension building (Menu {toolbar_extension}) can be built on an empty space next to the stop.
Secondly, another stop (Menu {toolbar_halt}) that accepts mail can be built on a straight path.
{st}
The public service needs your help to connect the city {cit1} with the city {cit2} by air.
Click Hangar {dep1} and purchase an aircraft named '{plane}' and configure the route as follows:
[1] Select the Aero stop {sch1} and configure it this way:
--> [a] Set Minimum load to {load}%
--> [b] Set Depart after to {wait}.
[2] Select the Aero stop {sch2} and press Start.
The public service needs your help to connect the city {cit1} with the city {cit2} by air.
Click Hangar {dep1} and purchase an aircraft named '{plane}' and configure the route as follows:
[1] Select all stops in order:
{list}
[2] After adding the stops, select the stop {stnam} from the list and configure as follows:
--> [a] Set Minimum load to {load}%.
--> [b] Set Depart after to {wait}.
[3] Use the [Copy Convoy] button to get the {cnr} buses needed.
[4] Now click the [Start] button to make all vehicles leave the depot/garage.
Connected the city {cit2} with the Airport {sch2} using {cnr} buses.
[1] Select all stops in order:
{stx}
[2] After adding the stops, select the stop {stnam} from the list and configure as follows:
--> [a] Set Minimum load to {load}%.
--> [b] Set Depart after to {wait}.
[3] Use the [Copy Convoy] button to get the {cnr} buses needed.
[4] Now click the [Start] button to make all vehicles leave the depot/garage.
Connected the city {cit2} with the Airport {sch2} using {cnr} buses.
[1] Select all stops in order:
{stx}
[2] After adding the stops, select the stop {stnam} from the list and configure as follows:
--> [a] Set Minimum load to {load}%.
--> [b] Set Depart after to {wait}.
[3] Use the [Copy Convoy] button to get the {cnr} buses needed.
[4] Now click the [Start] button to make all vehicles leave the depot/garage.
{txtst_01}Step A - The buses of the city I
{step_01}
{txtst_02}Step B - The buses of the city II
{step_02}
{txtst_03}Step C - The buses of the city III
{step_03}
{txtst_04}Step D - The buses of the city IV
{step_04}
{txtst_05}Step E - End Scenario
{step_05}
{txtst_01}Step A - The buses of the city I
{step_01}
{txtst_02}Step B - The buses of the city II
{step_02}
{txtst_03}Step C - The buses of the city III
{step_03}
{txtst_04}Step D - The buses of the city IV
{step_04}
The city {city} needs to design a bus network that allows passengers to move to the train station: {name}.
[1] Place a bus stop in the position {stop}.
[2] Make the stop public in {stop}.
[3] Now you are free to build a bus network in the city {city}.
[4] Make sure all buses are connected to the station: {name}.
Progress is made to the next step, when more than {load} passengers are transported to {name} in a month.
The city {city} must get a bus network that allows passengers to get to the {name} station.
Build as many bus stops in the city as you need to cover the city. Make sure that there is a bus stop on field {stop} that is connected to the {name} station so that passengers are counted.
The city {city} must get a bus network that allows passengers to get to the {name} station.
Build as many bus stops in the city as you need to cover the city. Make sure there is a bus stop connected to {name} station so that passengers can be counted.
HINT: Using the fast forward too can shorten the waiting time to complete this step.
The city {city} needs to design a bus network that allows passengers to move to the train station: {name}.
[1] Place a bus stop in the position {stop}.
[2] Make the stop public in {stop}.
[3] Now you are free to build a bus network in the city {city}.
[4] Make sure all buses are connected to the station: {name}.
Progress is made to the next step, when more than {load} passengers are transported to {name} in a month.
The city {city} needs to design a bus network that allows passengers to move to the train station: {name}.
[1] Place a bus stop in the position {stop}.
[2] Make the stop public in {stop}.
[3] Now you are free to build a bus network in the city {city}.
[4] Make sure all buses are connected to the station: {name}.
Progress is made to the next step, when more than {load} passengers are transported to {name} in a month.
The city {city} needs to design a bus network that allows passengers to move to the train station: {name}.
[1] Place a bus stop in the position {stop}.
[2] Make the stop public in {stop}.
[3] Now you are free to build a bus network in the city {city}.
[4] Make sure all buses are connected to the station: {name}.
Progress is made to the next step, when more than {load} passengers are transported to {name} in a month.
This is all for the moment, thank you very much for playing the mythical Simutrans.
You can follow here: https://www.facebook.com/Simutrans
Any questions we are here to help in the forum: https://forum.simutrans.com/
Credits to the entire Simutrans community, and especially to:
Dwachs
Prissi
ny911
HaydenRead
Tjoeker
gauthier
Andarix
Roboron
Regards!! @Yona-TYT.
\ No newline at end of file +{title}This is all for the moment, thank you very much for playing the mythical Simutrans.
You can follow here: https://www.facebook.com/Simutrans
Any questions we are here to help in the forum: https://forum.simutrans.com/
Credits to the entire Simutrans community, and especially to:
Dwachs
Prissi
ny911
HaydenRead
Tjoeker
gauthier
Andarix
Roboron
Regards!! @Yona-TYT.
\ No newline at end of file diff --git a/en/info.txt b/en/info.txt index d17546e..9b9d2c2 100644 --- a/en/info.txt +++ b/en/info.txt @@ -1 +1 @@ -In this tutorial, the first steps in setting up your transportation empire in Simutrans are explained. The focus is on the necessary actions around transportation chains in Simutrans.
The tutorial consists of several Chapters each having a number of Steps included in order to complete the target chapter.
Economic concerns are only briefly covered in the Tutorial
{list_of_chapters}
Further help can be found by pressing the "F1" key in regards to the various tools, functions, and logic in Simutrans.
{first_link}
In this tutorial, the first steps in setting up your transportation empire in Simutrans are explained. The focus is on the necessary actions around transportation chains in Simutrans.
Open window {dialog}
If this window is closed, it can be reopened using this button in the main menu.
The tutorial consists of several Chapters each having a number of Steps included in order to complete the target chapter.
Economic concerns are only briefly covered in the Tutorial
{list_of_chapters}
Further help can be found by pressing the "F1" key in regards to the various tools, functions, and logic in Simutrans.
{first_link}
The pak64.german is a graphics set that only uses one height.
In the pak64.german there is no bonus for speed. But this is still important because stations must not be overcrowded. If stations are overcrowded, the transport volume collapses.
If minimum load is used, make sure that stations are not overcrowded.
Magnet railway and the S-Bahn/U-Bahn should only be used when passenger volumes are very high.
\ No newline at end of file diff --git a/en/rule.txt b/en/rule.txt index 23f1ba5..a2d4257 100644 --- a/en/rule.txt +++ b/en/rule.txt @@ -1 +1 @@ -Not every tool is displayed. Only actions necessary for the current step are available.
· Describe rules .
· Give hints .
· Known issues instructions .
Not every tool is displayed. Only actions necessary for the current step are available.
· Describe rules .
· Give hints .
· Known issues instructions .
Escenario: {short_description}
Versión: {version}
Autor: {author}
Traducciones: {translation}
Escenario: {short_description}
Versión: {version}
Autor: {author}
Traducciones: {translation}
Versión de Simutrans: v{current_stv} -> {stv}.
Nombre del Pakset: {current_pak} -> {pak}.
Versión de Simutrans: v{current_stv} -> {stv}.
Nombre del Pakset: {current_pak} -> {pak}.
{scr}
{txtst_01}Paso A - Sobre el Escenario Tutorial
{step_01}
{txtst_02}Paso B - Moviéndose alrededor
{step_02}
{txtst_03}Paso C - Viendo los detalles
{step_03}
{txtst_04}Paso D - El minimapa y otras ventanas
{step_04}
{scr}
{txtst_01}Paso A - Sobre el Escenario Tutorial
{step_01}
{txtst_02}Paso B - Moviéndose alrededor
{step_02}
{txtst_03}Paso C - Viendo los detalles
{step_03}
{txtst_04}Paso D - El minimapa y otras ventanas
{step_04}
En este primer paso vamos a explicar algunos aspectos básicos sobre el Escenario Tutorial.
En este primer paso vamos a explicar algunos aspectos básicos sobre el Escenario Tutorial.
Mensajes
Los mensajes de Escenario están desactivados por defecto, puedes activarlos de la siguiente forma:
-- En la barra de herramientas selecciona el menú Buzon, y ahà presione el botón de [Opciones]
-- A continuación se muestra un lista de los tipos de mensajes, cada uno con 4 casillas de verificación.
- [Control Maestro] este control activa/desactiva por completo el mensaje seleccionado.
- [Barra de noticias] este control activa/desactiva mensajes en la barra de noticias.
- [Ventana Temporal] este control activa/desactiva mensajes en ventana emergente que desaparece en unos segundos.
- [Ventana Alerta] este control activa/desactiva mensajes en en ventana emergente persistente
Te recomendamos activar la cuadrícula para este tutorial pulsando la tecla "#". Además, es muy recomendable que los Árboles hayan sido configurados para ser transparentes, ya sea a través del menú de opciones o presionando la tecla "%".
Puedes acercar o alejar la cámara usando la rueda del ratón, o las teclas [AvPág/RePág].
Puedes moverte alrededor del mapa usando el Botón Derecho del ratón y arrastrando, usando las teclas de dirección, o el teclado numérico (si no está bloqueado).
Puedes rotar el mapa pulsando "[Mayús]+r" ("R" mayúscula) o seleccionando la herramienta "Rotar Mapa" desde el menú de herramientas.
Intenta acercar y alejar la cámara y moverte por el mapa.
Para continuar al siguiente paso, rota el mapa.
\ No newline at end of file +
{img_grid} cuadrÃcula
Te recomendamos activar la cuadrÃcula para este tutorial pulsando la tecla "#".
{img_display} Menú de configuración - Pantalla
Además, es muy recomendable que los Ãrboles hayan sido configurados para ser transparentes, ya sea a través del menú de opciones o presionando la tecla "%".
Puedes acercar o alejar la cámara usando la rueda del ratón, o las teclas [AvPág/RePág].
Puedes moverte alrededor del mapa usando el Botón Derecho del ratón y arrastrando, usando las teclas de dirección, o el teclado numérico (si no está bloqueado).
rotar el mapa
Puedes rotar el mapa pulsando "[Mayús]+r" ("R" mayúscula) o seleccionando la herramienta "Rotar Mapa" desde el menú de herramientas.
Intenta acercar y alejar la cámara y moverte por el mapa.
Para continuar al siguiente paso, rota el mapa.
\ No newline at end of file diff --git a/es/chapter_01/goal_step_03.txt b/es/chapter_01/goal_step_03.txt index b957ae0..9be82d7 100644 --- a/es/chapter_01/goal_step_03.txt +++ b/es/chapter_01/goal_step_03.txt @@ -1 +1 @@ -Ahora que ya sabes cómo moverte por el mapa, el siguiente paso es obtener información de elementos en el mapa.
En la esquina inferior derecha de la pantalla se muestra las coordenadas o posición (x,y,z) del cursor.
Primero pulse sobre {pos} usando la '{tool1}'. Después de pulsar sobre la estatua, debes cerrar la ventana de información haciendo click en "[X]" en la parte superior, presionar "[Esc]" para cerrar la última ventana abierta o presionando "[Retroceso]" para cerrar todas las ventanas.
Por último use la '{tool1}' sobre {buld_name} y cierre la ventana de información.
Consejo: Puedes pulsar en la vista previa del objeto en la ventana emergente de información, y te llevará directamente a su ubicación en el mapa.
Nota: Presionando "[Retroceso]" se cerrarán todas las ventanas, incluyendo la ventana del tutorial.
\ No newline at end of file +Ahora que ya sabes cómo moverte por el mapa, el siguiente paso es obtener información de elementos en el mapa.
En la esquina inferior derecha de la pantalla se muestra las coordenadas o posición (x,y,z) del cursor.
Primero pulse sobre {pos} usando la '{tool1}'. Después de pulsar sobre la estatua, debes cerrar la ventana de información haciendo click en "[X]" en la parte superior, presionar "[Esc]" para cerrar la última ventana abierta o presionando "[Retroceso]" para cerrar todas las ventanas.
Por último use la '{tool1}' sobre {buld_name} y cierre la ventana de información.
Consejo: Puedes pulsar en la vista previa del objeto en la ventana emergente de información, y te llevará directamente a su ubicación en el mapa.
Nota: Presionando "[Retroceso]" se cerrarán todas las ventanas, incluyendo la ventana del tutorial.
\ No newline at end of file diff --git a/es/chapter_01/goal_step_04.txt b/es/chapter_01/goal_step_04.txt index 55f6f06..28904bb 100644 --- a/es/chapter_01/goal_step_04.txt +++ b/es/chapter_01/goal_step_04.txt @@ -1 +1 @@ -Hay una serie de ventanas contiene información esencial.
El 'Minimapa' se puede mostrar presionando la tecla "m".
La ventana de 'Finanzas' se puede mostrar presionando la tecla "f".
El 'Buzón' se puede mostrar pulsando "[Mayús]+b".
Más información sobre la ciudad está disponible pulsando sobre el 'Ayuntamiento' con la '{tool1}'.
Para avanzar al siguiente capítulo, pulsa en {pos2} de {town} usando la '{tool1}'.
\ No newline at end of file +Hay una serie de ventanas contiene información esencial.
Minimapa
El 'Minimapa' se puede mostrar presionando la tecla "m".
Finanzas
La ventana de 'Finanzas' se puede mostrar presionando la tecla "f".
Buzón
El 'Buzón' se puede mostrar pulsando "[Mayús]+b".
{tool1}
Más información sobre la ciudad está disponible pulsando sobre el 'Ayuntamiento' con la '{tool1}'.
Para avanzar al siguiente capÃtulo, pulsa en {pos2} de {town} usando la '{tool1}'.
\ No newline at end of file diff --git a/es/chapter_02/06_1-2.txt b/es/chapter_02/06_1-2.txt index e026037..d986a78 100644 --- a/es/chapter_02/06_1-2.txt +++ b/es/chapter_02/06_1-2.txt @@ -1 +1 @@ -Ahora que el puente fue reparado, la ciudad {name} necesita una línea con [{cov}] autobuses en circulación para mover turistas desde el muelle en construcción {st1}.
{tx} Arrancando los Autobuses.
Autobuses en circulación:
Ahora que el puente fue reparado, la ciudad {name} necesita una lÃnea con [{cov}] autobuses en circulación para mover turistas desde el muelle en construcción {stnam}.
{tx} Arrancando los Autobuses.
Autobuses en circulación:
Ahora que el puente ha sido reparado, la ciudad {name} necesita una línea con [3] autobuses en circulación para mover turistas desde el muelle en construcción {st1}.
{tx} Arrancando los Autobuses.
[1] Primero compra un Autobús {bus1}.
[2] Si la línea fue creada correctamente, puedes pulsar sobre el filtro Sirve en línea (por defecto el texto es: [sin itinerario]) y luego selecciona la línea "{line}".
[3] Finalmente pulsa sobre el botón Arrancar.
Autobuses en circulación:
Ahora que el puente ha sido reparado, la ciudad {name} necesita una lÃnea con [3] autobuses en circulación para mover turistas desde el muelle en construcción {stnam}.
{tx} Arrancando los Autobuses.
[1] Primero compra un Autobús {bus1}.
[2] Si la lÃnea fue creada correctamente, puedes pulsar sobre el filtro Sirve en lÃnea (por defecto el texto es: [sin itinerario]) y luego selecciona la lÃnea "{line}".
[3] Finalmente pulsa sobre el botón Arrancar.
Autobuses en circulación:
Ahora que el puente ha sido reparado, la ciudad {name} necesita una linea de autobús que conecte con la Ciudad vecina de {name2}.
{tx} Primero debes colocar las paradas en {name2}.
Lista de paradas:
{list}
Ahora que el puente ha sido reparado, la ciudad {name} necesita una linea de autobús que conecte con la Ciudad vecina de {name2}.
{img_road_menu} {toolbar_halt}
{tx} Primero debes colocar las paradas en {name2}.
Lista de paradas:
{list}
Ahora que el puente ha sido reparado, la ciudad {name} necesita una línea de autobús que conecte con la Ciudad vecina de {name2}.
{tx} Abre '{tool2}' en la barra de herramientas y construye una carretera para conectar los puntos entre {pt1} y {pt2}.
Conecta la carretera aquí: {cbor}
Consejo: Mantén presionada la tecla[Ctrl] para construir tramos rectos de carreteras/vías de tren.
Ahora que el puente ha sido reparado, la ciudad {name} necesita una lÃnea de autobús que conecte con la Ciudad vecina de {name2}.
{tx} Abre '{toolbar_road}' en la barra de herramientas y construye una carretera para conectar los puntos entre {pt1} y {pt2}.
Conecta la carretera aquÃ: {cbor}
Consejo: Mantén presionada la tecla[Ctrl] para construir tramos rectos de carreteras/vÃas de tren.
Ahora que el puente ha sido reparado, la ciudad {name} necesita una linea de autobús que conecte con la Ciudad vecina de {name2}.
{tx} Pulsa sobre el Depósito de Carretera{dep}, y selecciona un autobús {bus1} y pulse sobre 'Itinerario'.
Ahora seleccione las paradas:
{list}
- Después de añadir las {nr} paradas, seleccione la parada {stnam} de la lista y configure de la siguiente forma:
--> [a] Configura Carga mínima al {load}%.
--> [b] Configura Salir después de a {wait}.
Ahora que el puente ha sido reparado, la ciudad {name} necesita una linea de autobús que conecte con la Ciudad vecina de {name2}.
{tx} Pulsa sobre el Depósito de Carretera{dep}, y selecciona un autobús {bus1} y pulse sobre 'Itinerario'.
Ahora seleccione las paradas:
{list}
- Después de añadir las {nr} paradas, seleccione la parada {stnam} de la lista y configure de la siguiente forma:
--> [a] Configura Carga mÃnima al {load}%.
--> [b] Configura Salir después de a {wait}.
Ahora que el puente ha sido reparado, la ciudad {name} necesita una linea de autobús que conecte con la Ciudad vecina de {name2}.
{tx} Ahora debes seguir al Veh¨ªculo.
Haga clic en el veh¨ªculo que ya est¨¢ en circulaci¨®n para que se muestre la ventana Convoy. Busque el cuarto icono en la barra de t¨ªtulo de la ventana del convoy (icono de ojo) y presionar para seguir al convoy.
Localiza al Veh¨ªculo en: {covpos}
{scr}
{txtst_01}Paso A - Construyendo un Tramo de Carretera
{step_01}
{txtst_02}Paso B - Construyendo un Depósito de Carretera
{step_02}
{txtst_03}Paso C - Colocando Paradas de Autobuses
{step_03}
{txtst_04}Paso D - Arrancado el Primer Autobús
{step_04}
{txtst_05}Paso E - Construyendo un Puente
{step_05}
{txtst_06}Paso F - Conectando el Muelle en Construcción
{step_06}
{txtst_07}Paso G - Conectando las Ciudades
{step_07}
{txtst_08}Paso H - Creando Paradas Públicas
{step_08}
{scr}
{txtst_01}Paso A - Construyendo un Tramo de Carretera
{step_01}
{txtst_02}Paso B - Construyendo un Depósito de Carretera
{step_02}
{txtst_03}Paso C - Colocando Paradas de Autobuses
{step_03}
{txtst_04}Paso D - Arrancado el Primer Autobús
{step_04}
{txtst_05}Paso E - Construyendo un Puente
{step_05}
{txtst_06}Paso F - Conectando el Muelle en Construcción
{step_06}
{txtst_07}Paso G - Conectando las Ciudades
{step_07}
{txtst_08}Paso H - Creando Paradas Públicas
{step_08}
Vamos a poner en marcha un Servicio de Autobús en la ciudad de {name}
Primero, necesitas construir una carretera sin salida para construir un depósito en ella.
Abre '{tool2}' en el menú de herramientas y selecciona la carretera de 50 km/h. Ahora puedes construir una carretera pulsando una vez sobre el inicio y otra sobre el final, o arrastrando el cursor entre estos puntos.
Conecta los puntos entre {t1} y {t2} o {t1} y {t3} para
Vamos a poner en marcha un Servicio de Autobús en la ciudad de {name}
Primero, necesitas construir una carretera sin salida para construir un depósito en ella.
{img_road_menu} {toolbar_road}
'{toolbar_road}' en el menú de herramientas y selecciona la carretera de 50 km/h. Ahora puedes construir una carretera pulsando una vez sobre el inicio y otra sobre el final, o arrastrando el cursor entre estos puntos.
Conecta el campo {dep} a una calle adyacente para
Vamos a poner en marcha un Servicio de Autobús en la ciudad de {name}
El primer paso para poner en marcha el servicio es construir un Depósito de Carretera en {pos}. Puedes encontrar esta herramienta en '{tool2}' también.
Para avanzar al próximo paso, construye un Depósito de Carretera en {pos}.
\ No newline at end of file +Vamos a poner en marcha un Servicio de Autobús en la ciudad de {name}
{img_road_menu} {toolbar_road}
El primer paso para poner en marcha el servicio es construir un Depósito de Carretera en {dep}. Puedes encontrar esta herramienta en '{toolbar_road}' también.
Para avanzar al próximo paso, construye un Depósito de Carretera en {dep}.
\ No newline at end of file diff --git a/es/chapter_02/goal_step_03.txt b/es/chapter_02/goal_step_03.txt index 8c6562c..44698e3 100644 --- a/es/chapter_02/goal_step_03.txt +++ b/es/chapter_02/goal_step_03.txt @@ -1 +1 @@ -El próximo paso para poner en marcha tu Servicio de Autobús para la ciudad {name}.
Es necesario construir paradas de autobús en cada uno de los puntos marcados en la ciudad:
{list}
Las paradas se encuentran en la barra de herramientas '{tool2}' también.
Nota: Las paradas tienen una cobertura de 5x5, por lo tanto es recomendable colocar las paradas a una distancia de 4 casillas (cuadrados).Al contrario que con los edificios, las calles no necesitan estar dentro del área de cobertura ya que no generan pasajeros.
Consejo: El área de cobertura se puede mostrar presionando la tecla "v".
Consejo: Presiona la tecla " para ocultar los edificios urbanos.
El próximo paso para poner en marcha tu Servicio de Autobús para la ciudad {name}.
{img_road_menu} {toolbar_halt}
Es necesario construir paradas de autobús en cada uno de los puntos marcados en la ciudad.
Las paradas se encuentran en la barra de herramientas '{toolbar_halt}' también.
{list}
Nota: Las paradas tienen una cobertura de 5x5, por lo tanto es recomendable colocar las paradas a una distancia de 4 casillas (cuadrados).Al contrario que con los edificios, las calles no necesitan estar dentro del área de cobertura ya que no generan pasajeros.
Consejo: El área de cobertura se puede mostrar presionando la tecla "v".
Consejo: Presiona la tecla " para ocultar los edificios urbanos.
Ahora que las paradas están colocadas, necesitas comprar un Autobús para dar servicio.
[1] Usando la '{tool1}' pulse sobre el Depósito de Carretera{pos} y en la ventana del depósito elige el Autobús {bus1}.
[2] Para configurar la ruta del vehículo, primero debes pulsar sobre el botón Itinerario para abrir la ventana del vehículo.
[3] En la pestaña de Itinerario, ahora debes seleccionar en orden todas la paradas de la ciudad para añadirlas a la lista:
{list}
[4] Después de añadir las {nr} paradas, selecciona la parada {stnam} de la lista y configura la parada de la siguiente forma:
--> [a] Configura Carga mínima al {load}%.
--> [b] Configura Salir después de a {wait}.
[5] Ahora cierra la ventana del vehículo y pulsa sobre el botón Arrancar para que el vehículo salga del depósito.
Consejo: Presiona la tecla ["] para ocultar los edificios urbanos.
Ahora que las paradas están colocadas, necesitas comprar un Autobús para dar servicio.
[1] Usando la '{tool1}' pulse sobre el Depósito de Carretera {dep} y en la ventana del depósito elige el Autobús {bus1}.
[2] Para configurar la ruta del vehÃculo, primero debes pulsar sobre el botón Itinerario para abrir la ventana del vehÃculo.
[3] En la pestaña de Itinerario, ahora debes seleccionar en orden todas la paradas de la ciudad para añadirlas a la lista:
{list}
[4] Después de añadir las {nr} paradas, selecciona la parada {stnam} de la lista y configura la parada de la siguiente forma:
--> [a] Configura Carga mÃnima al {load}%.
--> [b] Configura Salir después de a {wait}.
[5] Ahora cierra la ventana del vehÃculo y pulsa sobre el botón Arrancar para que el vehÃculo salga del depósito.
Consejo: Presiona la tecla ["] para ocultar los edificios urbanos.
Haga clic en el vehÃculo que ya está en circulación para que se muestre la ventana Convoy. Busque el cuarto icono en la barra de tÃtulo de la ventana del convoy (icono de ojo) y presionar para seguir al convoy.
El puente hacia uno de los suburbios exteriores fue arrasado recientemente,
y a la ciudad de {name} le gustaría que reconectaras dicho suburbio construyendo un puente entre {bpos1} y {bpos2}.
Los puentes también se encuentra se encuentra en la barra de herramientas '{tool2}'.
Hay dos formas de lograr esto. Primero selecciona la herramienta de puente de 50 km/h en Herramientas de Carretera, y luego...
[1] Puedes construir el puente pulsando sobre una de las pendientes opuestas.
[2] Puedes colocar el puente arrastrando el cursor desde una pendiente en cualquiera de los lados hasta la pendiente opuesta.
Para continuar, construye un puente en {bpos1}.
{bridge_info} \ No newline at end of file +
El puente hacia uno de los suburbios exteriores fue arrasado recientemente,
y a la ciudad de {name} le gustarÃa que reconectaras dicho suburbio construyendo un puente entre {bpos1} y {bpos2}.
{img_road_menu} {toolbar_road}
Los puentes también se encuentra se encuentra en la barra de herramientas '{toolbar_road}'.
Hay dos formas de lograr esto. Primero selecciona la herramienta de puente de 50 km/h en Herramientas de Carretera, y luego...
[1] Puedes construir el puente pulsando sobre una de las pendientes opuestas.
[2] Puedes colocar el puente arrastrando el cursor desde una pendiente en cualquiera de los lados hasta la pendiente opuesta.
Para continuar, construye un puente en {bpos1}.
{bridge_info} \ No newline at end of file diff --git a/es/chapter_02/goal_step_08.txt b/es/chapter_02/goal_step_08.txt index e32585d..d213345 100644 --- a/es/chapter_02/goal_step_08.txt +++ b/es/chapter_02/goal_step_08.txt @@ -1 +1 @@ -La ciudad {name} necesita que conectes la línea de Autobuses con la línea de Trenes en construcción.
En la barra de herramientas selecciona '{tool3}' y elige la herramienta Convertir en vía o parada pública
Selecciona la herramienta Convertir en vía o parada pública y pulsa en la parada {st1}. Notarás que el color de la parada cambiará..
La ciudad {name} necesita que conectes la lÃnea de Autobuses con la lÃnea de Trenes en construcción.
Al hacer la parada pública, el jugador se ahorra el mantenimiento de la parada a la vez que permite compartir con otros jugadores la red de transporte. Pero debes tener cuidado, ya que esta acción no se puede revertir a no ser que cambies al jugador del Servicio Público.
Selecciona la herramienta Convertir en vÃa o parada pública y pulsa en la parada {st1}. Notarás que el color de la parada cambiará..
Para la producción de harina de {good2}, necesitarás transportar {good1} desde {f1} hasta {f2}.
{tx} Usa la '{tool1}' en {f2} para mostrar los detalles
Para la producción de harina de {good2}, necesitarás transportar {good1} desde {f1} hasta {f2}.
{tx} Usa la '{tool1}' en {f2} para mostrar los detalles
{tx} Los detalles son:
Producción máxima por mes:
Muestra la capacidad de producción que tiene la industria. La producción puede ser aumentada transportando pasajeros, correo o electricidad a la fábrica, dependiendo de lo que necesite.
Producción:
Muestra qué tipos de bienes de producción produce la fábrica, la cantidad de producción almacenada, y el rendimiento de la producción por cada unidad de materia prima.
Ejemplo: {f2} consume un {g1_factor}% de {good1}, produce un {g2_factor}% de {good2}, y tiene una producción máxima de {prod_out} unidades por mes. Eso significa que consume hasta {g1_consum} {g1_metric} de {good1} por mes, y produce {g2_prod} {g2_metric} de {good2} a partir de {good1}.
Consumo:
Muestra la materia prima que la fábrica necesita, la cantidad almacenada o en camino y cuánta materia prima hace falta para producir una unidad de producto.
Consumidor/Proveedores:
Muestra las fabricas conectadas
Los trabajadores viven en:
Muestra las ciudades de donde provienen los trabajadores, su nivel de pasajeros, y su nivel de correo.
Nota: Transportar pasajeros a la fábrica no es obligatorio para que la fábrica produzca, pero hacerlo incrementará la producción.
Se avanza al siguiente paso pulsando sobre {f1}.
\ No newline at end of file +{step_hinfo}{tx} Los detalles son:
Producción máxima por mes:
Muestra la capacidad de producción que tiene la industria. La producción puede ser aumentada transportando pasajeros, correo o electricidad a la fábrica, dependiendo de lo que necesite.
Producción:
Muestra qué tipos de bienes de producción produce la fábrica, la cantidad de producción almacenada, y el rendimiento de la producción por cada unidad de materia prima.
Ejemplo: {f2} consume un {g1_factor}% de {good1}, produce un {g2_factor}% de {good2}, y tiene una producción máxima de {prod_out} unidades por mes. Eso significa que consume hasta {g1_consum} {g1_metric} de {good1} por mes, y produce {g2_prod} {g2_metric} de {good2} a partir de {good1}.
Consumo:
Muestra la materia prima que la fábrica necesita, la cantidad almacenada o en camino y cuánta materia prima hace falta para producir una unidad de producto.
Consumidor/Proveedores:
Muestra las fabricas conectadas
Los trabajadores viven en:
Muestra las ciudades de donde provienen los trabajadores, su nivel de pasajeros, y su nivel de correo.
Nota: Transportar pasajeros a la fábrica no es obligatorio para que la fábrica produzca, pero hacerlo incrementará la producción.
Se avanza al siguiente paso pulsando sobre {f1}.
\ No newline at end of file diff --git a/es/chapter_03/02_1-3.txt b/es/chapter_03/02_1-3.txt index 192e279..6b13763 100644 --- a/es/chapter_03/02_1-3.txt +++ b/es/chapter_03/02_1-3.txt @@ -1 +1 @@ -{step_hinfo}{tx} Selecciona '{tool2}' en la barra de herramientas y construye una vía de tren que conecte los dos puntos entre {w1} y {w2}.
Conecta la vía aquí: {cbor}
\ No newline at end of file +{step_hinfo}{tx} Selecciona '{tool2}' en la barra de herramientas y construye una vÃa de tren que conecte los dos puntos entre {w1} y {w2}.
Conecta la vÃa aquÃ: {cbor}
\ No newline at end of file diff --git a/es/chapter_03/02_3-3.txt b/es/chapter_03/02_3-3.txt index ee26d7c..9631dc3 100644 --- a/es/chapter_03/02_3-3.txt +++ b/es/chapter_03/02_3-3.txt @@ -1 +1 @@ -{step_hinfo}{tx} Selecciona '{tool2}' en la barra de herramientas y elige la herramiento de vías de tren para construir una via de tren que conecte los dos puntos entre {w3} y {w4}.
Conecta la vía aquí: {cbor}.
\ No newline at end of file +{step_hinfo}{tx} Selecciona '{tool2}' en la barra de herramientas y elige la herramiento de vÃas de tren para construir una via de tren que conecte los dos puntos entre {w3} y {w4}.
Conecta la vÃa aquÃ: {cbor}.
\ No newline at end of file diff --git a/es/chapter_03/03_1-2.txt b/es/chapter_03/03_1-2.txt index 987ee0f..192f1c2 100644 --- a/es/chapter_03/03_1-2.txt +++ b/es/chapter_03/03_1-2.txt @@ -1 +1 @@ -{step_hinfo}{tx} Selecciona '{tool2}' en la barra de herramientas y construye una estación de mercancías ({tile} casillas de largo) cerca de {f2}.
{tx} Selecciona '{tool2}' en la barra de herramientas y construye una estación de mercancÃas ({tile} casillas de largo) cerca de {f2}.
{tx} Selecciona '{tool2}' en la barra de herramientas y construye una estación de mercancías ({tile} casillas de largo) cerca de {f1}.
\ No newline at end of file +{step_hinfo}{tx} Selecciona '{tool2}' en la barra de herramientas y construye una estación de mercancÃas ({tile} casillas de largo) cerca de {f1}.
\ No newline at end of file diff --git a/es/chapter_03/04_1-3.txt b/es/chapter_03/04_1-3.txt index 90faf28..5a59e3e 100644 --- a/es/chapter_03/04_1-3.txt +++ b/es/chapter_03/04_1-3.txt @@ -1 +1 @@ -{step_hinfo}{tx} Selecciona '{tool2}' en la barra de herramientas y construye una vía de tren desde {w1} hasta {w2}.
\ No newline at end of file +{step_hinfo}{tx} Selecciona '{tool2}' en la barra de herramientas y construye una vÃa de tren desde {w1} hasta {w2}.
\ No newline at end of file diff --git a/es/chapter_03/04_2-3.txt b/es/chapter_03/04_2-3.txt index 751e408..e666e3e 100644 --- a/es/chapter_03/04_2-3.txt +++ b/es/chapter_03/04_2-3.txt @@ -1 +1 @@ -{step_hinfo}{tx} Selecciona '{tool2}' en la barra de herramientas y construye un Depósito de Trenes en {dep}.
\ No newline at end of file +{step_hinfo}{tx} Selecciona '{tool2}' en la barra de herramientas y construye un Depósito de Trenes en {dep}.
\ No newline at end of file diff --git a/es/chapter_03/04_3-3.txt b/es/chapter_03/04_3-3.txt index 8c98edc..765d904 100644 --- a/es/chapter_03/04_3-3.txt +++ b/es/chapter_03/04_3-3.txt @@ -1 +1 @@ -{step_hinfo}{tx} Pulsa con la '{tool1}' sobre el Depósito de Trenes {dep} para avanzar al siguiente paso.
\ No newline at end of file +{step_hinfo}{tx} Pulsa con la '{tool1}' sobre el Depósito de Trenes {dep} para avanzar al siguiente paso.
\ No newline at end of file diff --git a/es/chapter_03/06_1-5.txt b/es/chapter_03/06_1-5.txt index af86293..d5ac751 100644 --- a/es/chapter_03/06_1-5.txt +++ b/es/chapter_03/06_1-5.txt @@ -1 +1 @@ -Necesitas transportar {good2} desde {f2} hasta {f3} en {cy1}.
{tx} Selecciona '{tool2}' en la barra de herramientas y elige la herramienta de vías para conectar los dos puntos entre {w1} y {w2}.
Conecta la vía aquí: {cbor}
\ No newline at end of file +Necesitas transportar {good2} desde {f2} hasta {f3} en {cy1}.
{tx} Selecciona '{tool2}' en la barra de herramientas y elige la herramienta de vÃas para conectar los dos puntos entre {w1} y {w2}.
Conecta la vÃa aquÃ: {cbor}
\ No newline at end of file diff --git a/es/chapter_03/06_2-5.txt b/es/chapter_03/06_2-5.txt index f093060..5aa0ece 100644 --- a/es/chapter_03/06_2-5.txt +++ b/es/chapter_03/06_2-5.txt @@ -1 +1 @@ -Necesitas transportar {good2} desde {f2} hasta {f3} en {cy1}.
{tx} Selecciona '{tool2}' en la barra de herramientas y construye un túnel en {tu}.
\ No newline at end of file +Necesitas transportar {good2} desde {f2} hasta {f3} en {cy1}.
{tx} Selecciona '{tool2}' en la barra de herramientas y construye un túnel en {tu}.
\ No newline at end of file diff --git a/es/chapter_03/06_3-5.txt b/es/chapter_03/06_3-5.txt index 7d4f61e..b5d821c 100644 --- a/es/chapter_03/06_3-5.txt +++ b/es/chapter_03/06_3-5.txt @@ -1 +1 @@ -Necesitas transportar {good2} desde {f2} hasta {f3} en {cy1}.
{tx} Selecciona '{tool2}' en la barra de herramientas y elige la herramienta de vías para conectar los dos puntos entre {w3} y {w4}.
Connecta la vía aquí: {cbor}
\ No newline at end of file +Necesitas transportar {good2} desde {f2} hasta {f3} en {cy1}.
{tx} Selecciona '{tool2}' en la barra de herramientas y elige la herramienta de vÃas para conectar los dos puntos entre {w3} y {w4}.
Connecta la vÃa aquÃ: {cbor}
\ No newline at end of file diff --git a/es/chapter_03/06_4-5.txt b/es/chapter_03/06_4-5.txt index 9790323..81da979 100644 --- a/es/chapter_03/06_4-5.txt +++ b/es/chapter_03/06_4-5.txt @@ -1 +1 @@ -Necesitas transportar {good2} desde {f2} hasta {f3} en {cy1}.
{tx} Selecciona '{tool2}' en la barra de herramientas y construye una estación de mercancías ({tile} casillas de largo) cerca de {f3}.
Necesitas transportar {good2} desde {f2} hasta {f3} en {cy1}.
{tx} Selecciona '{tool2}' en la barra de herramientas y construye una estación de mercancÃas ({tile} casillas de largo) cerca de {f3}.
Necesitas transportar {good2} desde {f2} hasta {f3} en {cy1}.
{tx} Selecciona '{tool2}' en la barra de herramientas y construye una estación de mercancías ({tile} casillas de largo) cerca de {f2}.
\ No newline at end of file +Necesitas transportar {good2} desde {f2} hasta {f3} en {cy1}.
{tx} Selecciona '{tool2}' en la barra de herramientas y construye una estación de mercancÃas ({tile} casillas de largo) cerca de {f2}.
\ No newline at end of file diff --git a/es/chapter_03/08_1-5.txt b/es/chapter_03/08_1-5.txt index d5cc6c9..430ebb7 100644 --- a/es/chapter_03/08_1-5.txt +++ b/es/chapter_03/08_1-5.txt @@ -1 +1 @@ -
El Servicio Público necesita que completes la red ferroviaria que recorre las ciudades de:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Selecciona '{tool2}' desde la barra de herramientas y use las vías para conectar los dos puntos entre {w1} y {w2}.
El Servicio Público necesita que completes la red ferroviaria que recorre las ciudades de:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Selecciona '{tool2}' desde la barra de herramientas y use las vÃas para conectar los dos puntos entre {w1} y {w2}.
El Servicio Público necesita que completes la red ferroviaria que recorre las ciudades de:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Selecciona '{tool2}' desde la barra de herramientas y construye un puente en {br}.
El Servicio Público necesita que completes la red ferroviaria que recorre las ciudades de:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Selecciona '{tool2}' desde la barra de herramientas y construye un puente en {br}.
El Servicio Público necesita que completes la red ferroviaria que recorre las siguientes ciudades de:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Selecciona '{tool2}' en la barra de herramientas y construye la entrada del túnel {t1} manteniendo presionada la tecla Ctrl
Puedes activar la Vista Subterránea presionando las teclas [Shift] + U o entrando en los ajustes de Pantalla.
Puedes activar la Vista Subterránea por Capas presionando las teclas [Ctrl] + U, desde la Barra de Herramientas, o entrando en los ajustes de Pantalla.
Con la Vista Subterránea por Capas activada puedes:
[1] Bajar un nivel pulsando [{plus}].
[2] Subir un nivel pulsando [{minus}].
El Servicio Público necesita que completes la red ferroviaria que recorre las siguientes ciudades de:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Selecciona '{tool2}' en la barra de herramientas y construye la entrada del túnel {t1} manteniendo presionada la tecla Ctrl
Puedes activar la Vista Subterránea presionando las teclas [Shift] + U o entrando en los ajustes de Pantalla.
Puedes activar la Vista Subterránea por Capas presionando las teclas [Ctrl] + U, desde la Barra de Herramientas, o entrando en los ajustes de Pantalla.
Con la Vista Subterránea por Capas activada puedes:
[1] Bajar un nivel pulsando [{plus}].
[2] Subir un nivel pulsando [{minus}].
El Servicio Público necesita que completes la red ferroviaria que recorre las siguientes ciudades de:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Construcción de túneles con pendientes: [1] Activa la Vista Subterránea por Capas y ajusta el nivel de la capa a {lev}. [2] Ahora construye un segmento de túnel en {tunn}. [3] Eleva el terreno usando la {tool3} en {tunn}.
Debes repetir este proceso hasta obtener la altura correcta [Z = {mx_lvl}]:
Lista de túneles:
{list}
Puedes activar la Vista Subterránea por Capas presionando [CTRL] + U o yendo a la configuración de Pantalla.
Con la Vista Subterránea por Capas activada puedes:
[1] Bajar un nivel pulsando [{plus}].
[2] Subir un nivel pulsando [{minus}].
El Servicio Público necesita que completes la red ferroviaria que recorre las siguientes ciudades de:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Construcción de túneles con pendientes: [1] Activa la Vista Subterránea por Capas y ajusta el nivel de la capa a {lev}. [2] Ahora construye un segmento de túnel en {tunn}. [3] Eleva el terreno usando la {tool3} en {tunn}.
Debes repetir este proceso hasta obtener la altura correcta [Z = {mx_lvl}]:
Lista de túneles:
{list}
Puedes activar la Vista Subterránea por Capas presionando [CTRL] + U o yendo a la configuración de Pantalla.
Con la Vista Subterránea por Capas activada puedes:
[1] Bajar un nivel pulsando [{plus}].
[2] Subir un nivel pulsando [{minus}].
El Servicio Público necesita que completes la red ferroviaria que recorre las siguientes ciudades de:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.,.
{tx} Ajusta el nivel de la capa a {lev}, y conecta el túnel {t1} con la otra entrada en {t2}.
Puedes activar la Vista Subterránea presionando [Mayús] + U o en la configuración de Pantalla. Puedes activar la Vista Subterránea por Capas presionando [Ctrl] + U o en la configuración de Pantalla.
Con la Vista Subterránea por Capas activada puedes:
[1] Bajar un nivel pulsando [{plus}].
[2] Subir un nivel pulsando [{minus}].
El Servicio Público necesita que completes la red ferroviaria que recorre las siguientes ciudades de:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.,.
{tx} Ajusta el nivel de la capa a {lev}, y conecta el túnel {t1} con la otra entrada en {t2}.
Puedes activar la Vista Subterránea presionando [Mayús] + U o en la configuración de Pantalla. Puedes activar la Vista Subterránea por Capas presionando [Ctrl] + U o en la configuración de Pantalla.
Con la Vista Subterránea por Capas activada puedes:
[1] Bajar un nivel pulsando [{plus}].
[2] Subir un nivel pulsando [{minus}].
El Servicio Público necesita que completes la red ferroviaria que recorre las siguientes ciudades de:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Selecciona '{tool2}' en la barra de herramientas y elige una herramienta de vías de tren para conectar los dos puntos entre {w1} y {w2}.
Lista de vías:
{list}
Consejo: Puedes conectarlos simplemente pulsando sobre {w1} y {w2}.
Conecta la vía de tren aquí: {cbor}.
\ No newline at end of file +
El Servicio Público necesita que completes la red ferroviaria que recorre las siguientes ciudades de:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Selecciona '{tool2}' en la barra de herramientas y elige una herramienta de vÃas de tren para conectar los dos puntos entre {w1} y {w2}.
Lista de vÃas:
{list}
Consejo: Puedes conectarlos simplemente pulsando sobre {w1} y {w2}.
Conecta la vÃa de tren aquÃ: {cbor}.
\ No newline at end of file diff --git a/es/chapter_03/09_2-2.txt b/es/chapter_03/09_2-2.txt index 29d95dd..4b9dcd2 100644 --- a/es/chapter_03/09_2-2.txt +++ b/es/chapter_03/09_2-2.txt @@ -1 +1 @@ -
El Servicio Público necesita que completes la red ferroviaria que recorre las siguientes ciudades de:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Selecciona '{tool2}' en la barra de herramientas y construye Señales en los puntos indicados.
{sig}
Nota: Pulsa varias veces con la herramienta de señales para ajustar la dirección apropiadamente.
\ No newline at end of file +
El Servicio Público necesita que completes la red ferroviaria que recorre las siguientes ciudades de:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Selecciona '{tool2}' en la barra de herramientas y construye Señales en los puntos indicados.
{sig}
Nota: Pulsa varias veces con la herramienta de señales para ajustar la dirección apropiadamente.
\ No newline at end of file diff --git a/es/chapter_03/10_1-4.txt b/es/chapter_03/10_1-4.txt index 85a0f76..560bf30 100644 --- a/es/chapter_03/10_1-4.txt +++ b/es/chapter_03/10_1-4.txt @@ -1 +1 @@ -
El Servicio Público necesita que completes la red ferroviaria que recorre las siguientes ciudades de:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Selecciona '{tool2}' en la barra de herramientas y elige la herramienta de Catenaria para electrificar todas las vías de tren. Usa esta herramienta pulsando primero en un punto de partida y luego en un punto final.
Nota: La construcción de catenarias tiene en cuenta la dirección de las señales.
Vías de tren sin electrificar: {cbor}
\ No newline at end of file +
El Servicio Público necesita que completes la red ferroviaria que recorre las siguientes ciudades de:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Selecciona '{tool2}' en la barra de herramientas y elige la herramienta de Catenaria para electrificar todas las vÃas de tren. Usa esta herramienta pulsando primero en un punto de partida y luego en un punto final.
Nota: La construcción de catenarias tiene en cuenta la dirección de las señales.
VÃas de tren sin electrificar: {cbor}
\ No newline at end of file diff --git a/es/chapter_03/10_2-4.txt b/es/chapter_03/10_2-4.txt index 3007242..a742f7d 100644 --- a/es/chapter_03/10_2-4.txt +++ b/es/chapter_03/10_2-4.txt @@ -1 +1 @@ -
El Servicio Público necesita que completes la red ferroviaria que recorre las siguientes ciudades de:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Selecciona '{tool2}' en la barra de herramientas y elige la herramienta de Catenaria para electrificar el túnel todas las vías de tren.
Usa esta herramienta pulsando sobre un punto de inicio y después sobre un punto final.
Nota: La construcción de catenarias tiene en cuenta la dirección de las señales.
Vías de tren sin electrificar: {cbor}
\ No newline at end of file +
El Servicio Público necesita que completes la red ferroviaria que recorre las siguientes ciudades de:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Selecciona '{tool2}' en la barra de herramientas y elige la herramienta de Catenaria para electrificar el túnel todas las vÃas de tren.
Usa esta herramienta pulsando sobre un punto de inicio y después sobre un punto final.
Nota: La construcción de catenarias tiene en cuenta la dirección de las señales.
VÃas de tren sin electrificar: {cbor}
\ No newline at end of file diff --git a/es/chapter_03/10_3-4.txt b/es/chapter_03/10_3-4.txt index a8439fc..6b38cc1 100644 --- a/es/chapter_03/10_3-4.txt +++ b/es/chapter_03/10_3-4.txt @@ -1 +1 @@ -
El Servicio Público necesita que completes la red ferroviaria que recorre las siguientes ciudades de:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Selecciona '{tool2}' en la barra de herramientas y elige la herramienta de Catenaria para electrificar la vía de tren del Depósito de Trenes {dep}
Nota: Los vehículos eléctricos solo aparecen cuando la vía del depósito está electrificada.
\ No newline at end of file +
El Servicio Público necesita que completes la red ferroviaria que recorre las siguientes ciudades de:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
{tx} Selecciona '{tool2}' en la barra de herramientas y elige la herramienta de Catenaria para electrificar la vÃa de tren del Depósito de Trenes {dep}
Nota: Los vehÃculos eléctricos solo aparecen cuando la vÃa del depósito está electrificada.
\ No newline at end of file diff --git a/es/chapter_03/10_4-4.txt b/es/chapter_03/10_4-4.txt index 751e408..e666e3e 100644 --- a/es/chapter_03/10_4-4.txt +++ b/es/chapter_03/10_4-4.txt @@ -1 +1 @@ -{step_hinfo}{tx} Selecciona '{tool2}' en la barra de herramientas y construye un Depósito de Trenes en {dep}.
\ No newline at end of file +{step_hinfo}{tx} Selecciona '{tool2}' en la barra de herramientas y construye un Depósito de Trenes en {dep}.
\ No newline at end of file diff --git a/es/chapter_03/goal.txt b/es/chapter_03/goal.txt index 0c4ad8c..49e5d6b 100644 --- a/es/chapter_03/goal.txt +++ b/es/chapter_03/goal.txt @@ -1 +1 @@ -En este capitulo los Trenes son protagonistas y con ellos aprenderemos a transportar mercancías y pasajeros.
{scr}
{txtst_01}Paso A - Un Vistazo a las Fábricas
{step_01}
{txtst_02}Paso B - Conectando a los Proveedores
{step_02}
{txtst_03}Paso C - Construyendo Estaciones
{step_03}
{txtst_04}Paso D - Construyendo un Depósito
{step_04}
{txtst_05}Paso E - El Primer Tren
{step_05}
{txtst_06}Paso F - Conectando al Consumidor
{step_06}
{txtst_07}Paso G - El segundo Tren
{step_07}
{txtst_08}Paso H - Construcción Subterránea
{step_08}
{txtst_09}Paso I - Conectando las Estaciones
{step_09}
{txtst_10}Paso J - Vías Electrificadas
{step_10}
{txtst_11}Paso K - Trenes Eléctricos
{step_11}
En este capitulo los Trenes son protagonistas y con ellos aprenderemos a transportar mercancÃas y pasajeros.
{scr}
{txtst_01}Paso A - Un Vistazo a las Fábricas
{step_01}
{txtst_02}Paso B - Conectando a los Proveedores
{step_02}
{txtst_03}Paso C - Construyendo Estaciones
{step_03}
{txtst_04}Paso D - Construyendo un Depósito
{step_04}
{txtst_05}Paso E - El Primer Tren
{step_05}
{txtst_06}Paso F - Conectando al Consumidor
{step_06}
{txtst_07}Paso G - El segundo Tren
{step_07}
{txtst_08}Paso H - Construcción Subterránea
{step_08}
{txtst_09}Paso I - Conectando las Estaciones
{step_09}
{txtst_10}Paso J - VÃas Electrificadas
{step_10}
{txtst_11}Paso K - Trenes Eléctricos
{step_11}
Para la producción de {good2}, necesitarás transportar {good1} desde {f1} hasta {f2}.
Ahora debe elegir un vehículo adecuado para transportar {good1} hasta {f2}.
[1] Abre el depósito de trenes y elige una locomotora {loc1} en la pestaña de Locomotoras.
[2] Ahora selecciona {wag} vagones para {good1} en la pestaña de Vagones
[3] Presiona Itinerario, crea una nueva línea y selecciona la estación de tren cerca de {f1}.
--> Configura Carga mínima al {load}%.
[4] Selecciona la estación cerca de {f2} y presiona Arrancar.
Consejo: Puede usar el Filtro en la ventana del depósito para mostrar solo los vehículos que pueden transportar {good1}.
Se avanza al siguiente paso cuando {f2} reciba {t_reach}t de {good1}.
Consejo: Pulse la tecla "W" (letra may¨²scula) para activar el avance r¨¢pido.
Cantidad recibida:
Para la producción de {good2}, necesitarás transportar {good1} desde {f1} hasta {f2}.
Ahora debe elegir un vehÃculo adecuado para transportar {good1} hasta {f2}.
[1] Abre el depósito de trenes y elige una locomotora {loc1} en la pestaña de Locomotoras.
[2] Ahora selecciona {wag} vagones para {good1} en la pestaña de Vagones
[3] Presiona Itinerario, crea una nueva lÃnea y selecciona la estación de tren {stnam1}.
--> Configura Carga mÃnima al {load}%.
[4] Selecciona la estación {stnam2} y presiona Arrancar.
Consejo: Puede usar el Filtro en la ventana del depósito para mostrar solo los vehÃculos que pueden transportar {good1}.
Se avanza al siguiente paso cuando {f2} reciba {t_reach} de {good1}.
Consejo: Pulse la tecla "W" (letra may¨²scula) para activar el avance r¨¢pido.
Cantidad recibida:
Necesitas transportar {good2} desde {f2} hasta {f3} en {cy1}.
[1] Construye un tramo de vía de tren entre {w1} y {w2}.
[2] Coloca el Depósito de Trenes en: {way1}.
Ahora debes comprar una locomotora, presiona en la pestaña Locomotoras y selecciona una locomotora {loc2}. Añade {wag} vagones que puedan transportar {good2} en la pestaña de Vagones.
En la ventana Itinerario selecciona la estación en {f2}.
--> Configura Carga mínima al {load}%.
Ahora selecciona la estación en {f3} y presiona Arrancar.
Consejo: Usa el filtro para mostrar solo los vagones para {good2}.
Se avanza al siguiente paso cuando el {f3} reciba {t_reach} {g1_metric} de {good2}.
Consejo: Pulse la tecla "W" (letra may¨²scula) para activar el avance r¨¢pido.
Cantidad recibida:
Necesitas transportar {good2} desde {f2} hasta {f3} en {cy1}.
[1] Construye un tramo de vÃa de tren entre {w1} y {w2}.
[2] Coloca el Depósito de Trenes en: {way1}.
Ahora debes comprar una locomotora, presiona en la pestaña Locomotoras y selecciona una locomotora {loc2}. Añade {wag} vagones que puedan transportar {good2} en la pestaña de Vagones.
En la ventana Itinerario selecciona la {stnam1}.
--> Configura Carga mÃnima al {load}%.
Ahora selecciona la {stnam2} y presiona Arrancar.
Consejo: Usa el filtro para mostrar solo los vagones para {good2}.
Se avanza al siguiente paso cuando el {f3} reciba {t_reach} {g1_metric} de {good2}.
Consejo: Pulse la tecla "W" (letra may¨²scula) para activar el avance r¨¢pido.
Cantidad recibida:
El Servicio Público necesita que completes la red ferroviaria que recorre las ciudades de:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
Preparando los Trenes eléctricos.
El primer paso para usar estos trenes es electrificar todas la vías, luego en la ventana del depósito selecciona la pestaña Eléctricos.
Ahora debes ensamblar un tren para Pasajeros.
[1] Después de abrir la ventana del depósito, selecciona un tren {loc3} en la pestaña de locomotoras.
[2] Ahora selecciona 6 vagones para pasajeros en la pestaña Trenes de pasajeros
Consejo: Usa el filtro para mostrar solo los vehículos de pasajeros.
[3] Pulsa sobre el botón [Itinerario] para configurar la siguiente ruta:
{list}
[4] Después de añadir todas las estaciones, selecciona la estación {stnam} en la lista y configúrala de la siguiente forma:
--> [a] Configura Carga mínima al {load}%.
--> [b] Configura Salir después de a {wait}.
- Usa el boton [Copiar Vehículo]
El Servicio Público necesita que completes la red ferroviaria que recorre las ciudades de:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
Preparando los Trenes eléctricos.
El primer paso para usar estos trenes es electrificar todas la vÃas, luego en la ventana del depósito selecciona la pestaña Eléctricos.
Ahora debes ensamblar un tren para Pasajeros.
[1] Después de abrir la ventana del depósito, selecciona un tren {loc3} en la pestaña de locomotoras.
[2] Ahora selecciona 6 vagones para pasajeros en la pestaña Trenes de pasajeros
Consejo: Usa el filtro para mostrar solo los vehÃculos de pasajeros.
[3] Pulsa sobre el botón [Itinerario] para configurar la siguiente ruta:
{list}
[4] Después de añadir todas las estaciones, selecciona la estación {stnam} en la lista y configúrala de la siguiente forma:
--> [a] Configura Carga mÃnima al {load}%.
--> [b] Configura Salir después de a {wait}.
- Usa el boton [Copiar VehÃculo]
Para la producción de {good2}, necesitarás transportar {good1} desde {f1} hasta {f2}.
\ No newline at end of file +Para la producción de {good2}, necesitarás transportar {good1} desde {f1} hasta {f2}.
\ No newline at end of file diff --git a/es/chapter_03/step_8-10_hinfo.txt b/es/chapter_03/step_8-10_hinfo.txt index 4133742..3d190a6 100644 --- a/es/chapter_03/step_8-10_hinfo.txt +++ b/es/chapter_03/step_8-10_hinfo.txt @@ -1 +1 @@ -
El Servicio Público necesita que completes la red ferroviaria que recorre las siguientes ciudades de:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
El Servicio Público necesita que completes la red ferroviaria que recorre las siguientes ciudades de:
{cy2} {co2}, {cy1} {co1}, {cy3} {co3}, {cy4} {co4}, {cy5} {co5}.
Se necesita transportar hidrocarburos ({good1}) desde {f1} hasta {f3} para producir {good2}
{tx} usa la Herramienta de Inspección sobre {f3} para mostrar detalles.
\ No newline at end of file +Se necesita transportar hidrocarburos ({good1}) desde {f1} hasta {f3} para producir {good2}
{tx} usa la Herramienta de Inspección sobre {f3} para mostrar detalles.
\ No newline at end of file diff --git a/es/chapter_04/01_2-2.txt b/es/chapter_04/01_2-2.txt index 019ebbe..1ebb157 100644 --- a/es/chapter_04/01_2-2.txt +++ b/es/chapter_04/01_2-2.txt @@ -1 +1 @@ -Se necesita transportar hidrocarburos ({good1}) desde {f1} hasta {f3} para producir {good2}
{tx} Los detalles son:
Producción máxima por mes:
Muestra la capacidad de producción que tiene la industria. La producción puede ser aumentada transportando pasajeros, correo o electricidad a la fábrica, dependiendo de lo que necesite.
Producción:
Muestra qué tipos de bienes de producción produce la fábrica, la cantidad de producción almacenada, y el rendimiento de la producción por cada unidad de materia prima.
Consumo:
Muestra la materia prima que la fábrica necesita, la cantidad almacenada o en camino y cuánta materia prima hace falta para producir una unidad de producto.
Consumidor/Proveedores:
Muestra las fabricas conectadas
Los trabajadores viven en:
Muestra las ciudades de donde provienen los trabajadores, su nivel de pasajeros, y su nivel de correo.
Nota: Transportar pasajeros a la fábrica no es obligatorio para que la fábrica produzca, pero hacerlo incrementará la producción.
Se avanza al siguiente paso pulsando sobre {f1} usando la Herramienta de Inspección.
\ No newline at end of file +Se necesita transportar hidrocarburos ({good1}) desde {f1} hasta {f3} para producir {good2}
{tx} Los detalles son:
Producción máxima por mes:
Muestra la capacidad de producción que tiene la industria. La producción puede ser aumentada transportando pasajeros, correo o electricidad a la fábrica, dependiendo de lo que necesite.
Producción:
Muestra qué tipos de bienes de producción produce la fábrica, la cantidad de producción almacenada, y el rendimiento de la producción por cada unidad de materia prima.
Consumo:
Muestra la materia prima que la fábrica necesita, la cantidad almacenada o en camino y cuánta materia prima hace falta para producir una unidad de producto.
Consumidor/Proveedores:
Muestra las fabricas conectadas
Los trabajadores viven en:
Muestra las ciudades de donde provienen los trabajadores, su nivel de pasajeros, y su nivel de correo.
Nota: Transportar pasajeros a la fábrica no es obligatorio para que la fábrica produzca, pero hacerlo incrementará la producción.
Se avanza al siguiente paso pulsando sobre {f1} usando la Herramienta de Inspección.
\ No newline at end of file diff --git a/es/chapter_04/05_2-3.txt b/es/chapter_04/05_2-3.txt index a255d9c..5450116 100644 --- a/es/chapter_04/05_2-3.txt +++ b/es/chapter_04/05_2-3.txt @@ -1 +1 @@ -Se necesita transportar {good2} desde {f3} hasta {f4} para el consumidor final
{tx} Construye un Muelle de Canal de mercancías en {dock}.
\ No newline at end of file +Se necesita transportar {good2} desde {f3} hasta {f4} para el consumidor final
{tx} Construye un {cdock} de mercancÃas en {dock}.
\ No newline at end of file diff --git a/es/chapter_04/05_3-3.txt b/es/chapter_04/05_3-3.txt index fd3b557..07a3aaa 100644 --- a/es/chapter_04/05_3-3.txt +++ b/es/chapter_04/05_3-3.txt @@ -1 +1 @@ -Se necesita transportar {good2} desde {f3} hasta {f4} para el consumidor final
{tx} Conectando al consumidor {f4}
Se necesitan {all_cov} barcos para suministrar gas a {f4}.
[1] En la ventana del Astillero pulsa sobre la pestaña Barcos, luego selecciona el {sh}.
[2] Ahora debes configurar una línea (Sirve en línea), selecciona Crear línea nueva.
[3] Selecciona el muelle en {f3} y ajuste la Carga mínima al {load}%
[4] Selecciona el muelle en {f4} y cierre la ventana Itinerario
[5] Presiona el botón Copiar vehículo hasta llegar a {all_cov} convoys/barcos.
[6] Por último, presiona el botón Arrancar.
Consejo: Presiona [Ctrl] + pulsa el botón [Arrancar] para que todos los vehículos salgan del depósito.
Barcos en circulación:
Se necesita transportar {good2} desde {f3} hasta {f4} para el consumidor final
{tx} Conectando al consumidor {f4}
Se necesitan {all_cov} barcos para suministrar gas a {f4}.
[1] En la ventana del Astillero pulsa sobre la pestaña Barcos, luego selecciona el {sh}.
[2] Ahora debes configurar una lÃnea (Sirve en lÃnea), selecciona Crear lÃnea nueva.
[3] Selecciona el muelle en {f3} y ajuste la Carga mÃnima al {load}%
[4] Selecciona el muelle en {f4} y cierre la ventana Itinerario
[5] Presiona el botón Copiar vehÃculo hasta llegar a {all_cov} convoys/barcos.
[6] Por último, presiona el botón Arrancar.
Consejo: Presiona [Ctrl] + pulsa el botón [Arrancar] para que todos los vehÃculos salgan del depósito.
Barcos en circulación:
En este capítulo los Barcos son protagonistas y con ellos vamos a transportar mercancías, pasajeros y correo.
{scr}
{txtst_01}Paso A - Un Vistazo a las Fábricas
{step_01}
{txtst_02}Paso B - Colocando Muelles
{step_02}
{txtst_03}Paso C - Colocando Astilleros
{step_03}
{txtst_04}Paso D - Conectando a los Proveedores
{step_04}
{txtst_05}Paso E - Conectando al Consumidor
{step_05}
{txtst_06}Paso F - Muelles de Pasajeros
{step_06}
{txtst_07}Paso G - Conectando Atracciones Turísticas
{step_07}
En este capÃtulo los Barcos son protagonistas y con ellos vamos a transportar mercancÃas, pasajeros y correo.
{scr}
{txtst_01}Paso A - Un Vistazo a las Fábricas
{step_01}
{txtst_02}Paso B - Colocando Muelles
{step_02}
{txtst_03}Paso C - Colocando Astilleros
{step_03}
{txtst_04}Paso D - Conectando a los Proveedores
{step_04}
{txtst_05}Paso E - Conectando al Consumidor
{step_05}
{txtst_06}Paso F - Muelles de Pasajeros
{step_06}
{txtst_07}Paso G - Conectando Atracciones TurÃsticas
{step_07}
Se necesita transportar hidrocarburos ({good1}) desde {f1} hasta {f3} para producir {good2}
Coloca todos los Muelles de mercancías en las posiciones idicadas:
{dock}
Se necesita transportar hidrocarburos ({good1}) desde {f1} hasta {f3} para producir {good2}
Coloca todos los Muelles de mercancÃas en las posiciones idicadas:
{dock}
Se necesita transportar hidrocarburos ({good1}) desde {f1} hasta {f3} para producir {good2}
Coloca el Astillero aquí {dep1}.
Se necesita transportar hidrocarburos ({good1}) desde {f1} hasta {f3} para producir {good2}
Coloca el Astillero aquà {dep1}.
Se necesita transportar {good1} desde {f1} hasta {f3} para la producción de {good2}
Conectando al proveedor {f1}
Se necesitan {all_cov} barcos para suministrar {good1} a {f3}.
[1] En la ventana del Astillero pulsa sobre la pestaña Barcos, luego selecciona el {sh}.
[2] Ahora debes configurar una línea (Sirve en línea), selecciona Crear línea nueva.
[3] Selecciona el muelle en {f1} y ajuste la Carga mínima al {load}%
[4] Selecciona el muelle en {f3} y cierre la ventana Itinerario
[5] Presiona el botón Copiar vehículo hasta llegar a {all_cov} convoys/barcos.
[6] Por último, presiona el botón Arrancar.
Consejo: Presiona [Ctrl] + pulsa el botón [Arrancar] para que todos los vehículos salgan del depósito.
Barcos en circulación:
Se necesita transportar {good1} desde {f1} hasta {f3} para la producción de {good2}
Conectando al proveedor {f1}
Se necesitan {all_cov} barcos para suministrar {good1} a {f3}.
[1] En la ventana del Astillero pulsa sobre la pestaña Barcos, luego selecciona el {sh}.
[2] Ahora debes configurar una lÃnea (Sirve en lÃnea), selecciona Crear lÃnea nueva.
[3] Selecciona el muelle en {f1} y ajuste la Carga mÃnima al {load}%
[4] Selecciona el muelle en {f3} y cierre la ventana Itinerario
[5] Presiona el botón Copiar vehÃculo hasta llegar a {all_cov} convoys/barcos.
[6] Por último, presiona el botón Arrancar.
Consejo: Presiona [Ctrl] + pulsa el botón [Arrancar] para que todos los vehÃculos salgan del depósito.
Barcos en circulación:
Se necesita transportar pasajeros hacia las zonas turísticas {tur}.
Coloque los {nr} Muelles de pasajeros en las posiciones indicadas:
{dock}
Se necesita transportar pasajeros hacia las zonas turÃsticas {tur}.
Coloque los {nr} Muelles de pasajeros en las posiciones indicadas:
{dock}
Se necesita transportar pasajeros hacia las zonas turísticas {tur}.
Usa la herramienta de inspección en el Astillero {dep1} y en la pestaña Ferris compra un {ship}.
Ahora presiona itinerario y selecciona las paradas:
{list}
Tras añadir las paradas, selecciona la parada {stnam} y configúrala de la siguiente forma:
--> [a] Configura Carga mínima al {load}%.
--> [b] Configura Salir después de a {wait}.
Por último, presiona el botón Arrancar.
Se avanza al siguiente capítulo cuando el barco arranque desde el Astillero
\ No newline at end of file +Se necesita transportar pasajeros hacia las zonas turÃsticas {tur}.
Usa la herramienta de inspección en el Astillero {dep1} y en la pestaña Ferris compra un {ship}.
Ahora presiona itinerario y selecciona las paradas:
{list}
Tras añadir las paradas, selecciona la parada {stnam} y configúrala de la siguiente forma:
--> [a] Configura Carga mÃnima al {load}%.
--> [b] Configura Salir después de a {wait}.
Por último, presiona el botón Arrancar.
Se avanza al siguiente capÃtulo cuando el barco arranque desde el Astillero
\ No newline at end of file diff --git a/es/chapter_05/03_1-2.txt b/es/chapter_05/03_1-2.txt index 2f0f06f..6e01263 100644 --- a/es/chapter_05/03_1-2.txt +++ b/es/chapter_05/03_1-2.txt @@ -1 +1 @@ -{tx} En el menú {toolbar} selecciona {trf_name} para colocar transformadores en las fábricas:
{tran}
{tx} En el menú {toolbar} selecciona {trf_name} para colocar transformadores en las fábricas:
{tran}
{tx} En el menú {toolbar} selecciona {powerline_tool}} para conecta todas las fábricas a la red eléctrica de {f5}:
{tran}
{tx} En el menú {toolbar} selecciona {powerline_tool}} para conecta todas las fábricas a la red eléctrica de {f5}:
{tran}
{tx} En el menú {toolbar} selecciona "Edificios de Extensión" para correo y coloca uno en cada una de las siguientes ubicaciones:
{st}
{img_road_menu} {toolbar_halt}
{img_post_menu} {toolbar_extension}
{tx} Hay dos maneras de desbloquear estaciones para el correo. Primero, se puede construir un edificio de extensión de correo (Menú {toolbar_extension}) en un espacio vacÃo junto a la parada.
Segundo, se puede construir otra parada (Menú {toolbar_halt}) que acepte correo en un camino recto.
{st}
{tx} En el depósito {dep}, selecciona un camion {veh} para correo y pulsa [Itinerario].
Ahora selecciona las paradas:
{list}
Tras añadir todas las {nr} paradas, selecciona la parada {stnam} y configúrala de la siguiente forma:
--> [a] Configura Carga mínima al {load}%.
--> [b] Configura Salir después de a {wait}.
Pulsa el botón [Copiar vehículo] hasta que obtengas {all_cov}. Por último, pulsa el botón [Arrancar]
Convoyes en circulación: {cir}/{all_cov}
\ No newline at end of file +{tx} En el depósito {dep}, selecciona un camion {veh} para correo y pulsa [Itinerario].
Ahora selecciona las paradas:
{list}
Tras añadir todas las {nr} paradas, selecciona la parada {stnam} y configúrala de la siguiente forma:
--> [a] Configura Carga mÃnima al {load}%.
--> [b] Configura Salir después de a {wait}.
Pulsa el botón [Copiar vehÃculo] hasta que obtengas {all_cov}. Por último, pulsa el botón [Arrancar]
Convoyes en circulación: {cir}/{all_cov}
\ No newline at end of file diff --git a/es/chapter_05/04_3-3.txt b/es/chapter_05/04_3-3.txt index 988a608..9a5009d 100644 --- a/es/chapter_05/04_3-3.txt +++ b/es/chapter_05/04_3-3.txt @@ -1 +1 @@ -{tx} Usa la Herramienta de Inspección en el Astillero {dep} y en la pestaña de Ferris compra un {ship}.
Ahora pulsa Itinerario y selecciona las paradas:
{list}
Tras añadir las paradas, selecciona la parada {stnam} de la lista y configúrala de la siguiente forma:
--> [a] Configura Carga Mínima al {load}%.
--> [b] Configura Salir después de a {wait}.
Por última pulsa el botón Arrancar.
Se avanza al siguiente capítulo cuando el barco salga del Astillero.
\ No newline at end of file +{tx} Usa la Herramienta de Inspección en el Astillero {dep} y en la pestaña de Ferris compra un {ship}.
Ahora pulsa Itinerario y selecciona las paradas:
{list}
Tras añadir las paradas, selecciona la parada {stnam} de la lista y configúrala de la siguiente forma:
--> [a] Configura Carga MÃnima al {load}%.
--> [b] Configura Salir después de a {wait}.
Por última pulsa el botón Arrancar.
Se avanza al siguiente capÃtulo cuando el barco salga del Astillero.
\ No newline at end of file diff --git a/es/chapter_05/goal.txt b/es/chapter_05/goal.txt index 4438886..e6681d1 100644 --- a/es/chapter_05/goal.txt +++ b/es/chapter_05/goal.txt @@ -1 +1 @@ -En este capítulo vamos a mejorar la eficiencia de nuestras cadenas industriales, trasportando pasajeros, correo y energía eléctrica
{scr}
{txtst_01}Paso A - Producción del Electricidad y Consumo
{step_01}
{txtst_02}Paso B - Camiones para el Carbón
{step_02}
{txtst_03}Paso C - Conectando el Sistema Eléctrico
{step_03}
{txtst_04}Paso D - Entregando el Correo
{step_04}
En este capÃtulo vamos a mejorar la eficiencia de nuestras cadenas industriales, trasportando pasajeros, correo y energÃa eléctrica
{scr}
{txtst_01}Paso A - Producción del Electricidad y Consumo
{step_01}
{txtst_02}Paso B - Camiones para el Carbón
{step_02}
{txtst_03}Paso C - Conectando el Sistema Eléctrico
{step_03}
{txtst_04}Paso D - Entregando el Correo
{step_04}
En este capítulo vamos a electrificar las siguientes fábricas:
{f1}
{f2}
{f3}
También debe conectarse la planta productora de electricidad:
{f4}
En este capÃtulo vamos a electrificar las siguientes fábricas:
{f1}
{f2}
{f3}
También debe conectarse la planta productora de electricidad:
{f4}
Se necesita transportar {good} para operar la planta generadora de electricidad "{f4}".
[1] Conecta la carretera:
Selecciona el menú {tool2} y conecta los puntos entre {w1} "{f3}" y {w2} "{f4}".
[2] Estaciones de camiones:
Construye las estaciones de mercancías en {w1} y {w2}.
[3] El depósito de carretera:
Construye un tramo de carretera en {dep} y luego un Depósito de Carretera.
[4] Preparación de los camiones:
Usa la {tool1} en el tanque y en la pestaña "Camiones" selecciona un {veh}, luego selecciona un tráiler para {good}.
Ahora para crear una línea para la flota de camiones:
- [1] Selecciona la estación en {f3} y coloca la Carga mínima en {load}%.
- [2] Seleccione la estación en {f4} y cierre la ventana Itinerario.
Pulsa el botón [Copiar Vehiculo] hasta llegar a {all_cov} convoyes, finalmente presione el botón [Arrancar].
Convoyes en circulación:
Se necesita transportar {good} para operar la planta generadora de electricidad "{f4}".
[1] Conecta la carretera:
Selecciona el menú {tool2} y conecta los puntos entre {w1} "{f3}" y {w2} "{f4}".
[2] Estaciones de camiones:
Construye las estaciones de mercancÃas en {w1} y {w2}.
[3] El depósito de carretera:
Construye un tramo de carretera en {dep} y luego un Depósito de Carretera.
[4] Preparación de los camiones:
Usa la {tool1} en el tanque y en la pestaña "Camiones" selecciona un {veh}, luego selecciona un tráiler para {good}.
Ahora para crear una lÃnea para la flota de camiones:
- [1] Selecciona la estación en {f3} y coloca la Carga mÃnima en {load}%.
- [2] Seleccione la estación en {f4} y cierre la ventana Itinerario.
Pulsa el botón [Copiar Vehiculo] hasta llegar a {all_cov} convoyes, finalmente presione el botón [Arrancar].
Convoyes en circulación:
En este capítulo nos dedicamos al transporte aéreo, construiremos un pequeño aeropuerto para transportar pasajeros a una ciudad muy lejana.
{scr}
{txtst_01}Paso A - El primer Aeropuerto
{step_01}
{txtst_02}Paso B - El Avión está a punto de despegar
{step_02}
{txtst_03}Paso C - Línea de Autobuses del Aeropuerto parte I
{step_03}
{txtst_04}Paso D - Línea de Autobuses del Aeropuerto parte II
{step_04}
En este capÃtulo nos dedicamos al transporte aéreo, construiremos un pequeño aeropuerto para transportar pasajeros a una ciudad muy lejana.
{scr}
{txtst_01}Paso A - El primer Aeropuerto
{step_01}
{txtst_02}Paso B - El Avión está a punto de despegar
{step_02}
{txtst_03}Paso C - LÃnea de Autobuses del Aeropuerto parte I
{step_03}
{txtst_04}Paso D - LÃnea de Autobuses del Aeropuerto parte II
{step_04}
El servicio público necesita de tu ayuda para conectar la ciudad {cit1} con la ciudad {cit2} por vía aérea.
Se avanza al siguiete paso, cuando todo esté en su lugar.
\ No newline at end of file +El servicio público necesita de tu ayuda para conectar la ciudad {cit1} con la ciudad {cit2} por vÃa aérea.
Se avanza al siguiete paso, cuando todo esté en su lugar.
\ No newline at end of file diff --git a/es/chapter_06/goal_step_02.txt b/es/chapter_06/goal_step_02.txt index 7eaf232..113a86e 100644 --- a/es/chapter_06/goal_step_02.txt +++ b/es/chapter_06/goal_step_02.txt @@ -1 +1 @@ -El servicio público necesita de tu ayuda para conectar la ciudad {cit1} con la ciudad {cit2} por vía aérea.
Pulsa sobre el Hangar {dep1} y compra una aeronave de nombre '{plane}' y configura la ruta de la siguiente manera:
[1] Seleciona la Parada Aérea {sch1} y configure la parada de la siguiente forma:
--> [a] Configura Carga mínima al {load}%
--> [b] Configura Salir después de a {wait}
[2] Selecciona la Parada Aérea {sch2} y presiona Arrancar.
Se avanza al siguiete paso, cuando el Avión salga del hangar.
\ No newline at end of file +El servicio público necesita de tu ayuda para conectar la ciudad {cit1} con la ciudad {cit2} por vÃa aérea.
Pulsa sobre el Hangar {dep1} y compra una aeronave de nombre '{plane}' y configura la ruta de la siguiente manera:
[1] Seleciona todas las paradas en orden:
{stx}
[2] Tras añadir las paradas, selecciona la parada {stnam} de la lista y configura la parada de la siguiente forma:
--> [a] Configura Carga mÃnima al {load}%
--> [b] Configura Salir después de a {wait}
[3] Usa el botón [Copiar vehÃculo] para conseguir los {cnr} autobuses necesarios.
[4] Ahora pulsa el botón [Arrancar] para que todos los vehÃculos dejen el depósito.
Se avanza al siguiete paso, cuando el Avión salga del hangar.
\ No newline at end of file diff --git a/es/chapter_06/goal_step_03.txt b/es/chapter_06/goal_step_03.txt index e849cdb..98779e0 100644 --- a/es/chapter_06/goal_step_03.txt +++ b/es/chapter_06/goal_step_03.txt @@ -1 +1 @@ -Conectando la ciudad {cit1} con el Aeropuerto {sch1} usando {cnr} autobuses.
Pulsa sobre el Depósito de Carretera {dep2}, selecciona un bus {bus1} y presiona [Itinerario]
[1] Seleciona todas las paradas en orden:
{stx}
[2] Tras añadir las paradas, selecciona la parada {stnam} de la lista y configura la parada de la siguiente forma:
--> [a] Configura Carga mínima al {load}%
--> [b] Configura Salir después de a {wait}
[3] Usa el botón [Copiar vehículo] para conseguir los {cnr} autobuses necesarios.
[4] Ahora pulsa el botón [Arrancar] para que todos los vehículos dejen el depósito.
Se avanza al siguiete paso, cuando todos los autobuses dejen el depósito.
\ No newline at end of file +Conectando la ciudad {cit1} con el Aeropuerto {sch1} usando {cnr} autobuses.
Pulsa sobre el Depósito de Carretera {dep2}, selecciona un bus {bus1} y presiona [Itinerario]
[1] Seleciona todas las paradas en orden:
{stx}
[2] Tras añadir las paradas, selecciona la parada {stnam} de la lista y configura la parada de la siguiente forma:
--> [a] Configura Carga mÃnima al {load}%
--> [b] Configura Salir después de a {wait}
[3] Usa el botón [Copiar vehÃculo] para conseguir los {cnr} autobuses necesarios.
[4] Ahora pulsa el botón [Arrancar] para que todos los vehÃculos dejen el depósito.
Se avanza al siguiete paso, cuando todos los autobuses dejen el depósito.
\ No newline at end of file diff --git a/es/chapter_06/goal_step_04.txt b/es/chapter_06/goal_step_04.txt index 86e47ea..5fc9b25 100644 --- a/es/chapter_06/goal_step_04.txt +++ b/es/chapter_06/goal_step_04.txt @@ -1 +1 @@ -Conectando la ciudad {cit1} con el Aeropuerto {sch2} usando {cnr} autobuses.
[1] Seleciona todas las paradas en orden:
{stx}
[2] Tras añadir las paradas, selecciona la parada {stnam} de la lista y configura la parada de la siguiente forma:
--> [a] Configura Carga mínima al {load}%
--> [b] Configura Salir después de a {wait}
[3] Usa el botón [Copiar vehículo] para conseguir los {cnr} autobuses necesarios.
[4] Ahora pulsa el botón [Arrancar] para que todos los vehículos dejen el depósito.
Se avanza al siguiente capítulo, cuando todos los autobuses dejen el depósito.
\ No newline at end of file +Conectando la ciudad {cit1} con el Aeropuerto {sch2} usando {cnr} autobuses.
[1] Seleciona todas las paradas en orden:
{stx}
[2] Tras añadir las paradas, selecciona la parada {stnam} de la lista y configura la parada de la siguiente forma:
--> [a] Configura Carga mÃnima al {load}%
--> [b] Configura Salir después de a {wait}
[3] Usa el botón [Copiar vehÃculo] para conseguir los {cnr} autobuses necesarios.
[4] Ahora pulsa el botón [Arrancar] para que todos los vehÃculos dejen el depósito.
Se avanza al siguiente capÃtulo, cuando todos los autobuses dejen el depósito.
\ No newline at end of file diff --git a/es/chapter_07/goal.txt b/es/chapter_07/goal.txt index c02c71f..4234968 100644 --- a/es/chapter_07/goal.txt +++ b/es/chapter_07/goal.txt @@ -1 +1 @@ -
{txtst_01}Paso A - Los autobuses de la ciudad I
{step_01}
{txtst_02}Paso B - Los autobuses de la ciudad II
{step_02}
{txtst_03}Paso C - Los autobuses de la ciudad III
{step_03}
{txtst_04}Paso D - Los autobuses de la ciudad IV
{step_04}
{txtst_05}Paso E - Fin del Escenario
{step_05}
{txtst_01}Paso A - Los autobuses de la ciudad I
{step_01}
{txtst_02}Paso B - Los autobuses de la ciudad II
{step_02}
{txtst_03}Paso C - Los autobuses de la ciudad III
{step_03}
{txtst_04}Paso D - Los autobuses de la ciudad IV
{step_04}
La ciudad {city} necesita diseñar una red de autobuses que permita mover pasajeros hacia la estacion de tren: {name}.
[1] Coloca una parada de autobús en la posición {stop}.
[2] Haz pública la parada en {stop}.
[3] Ahora eres libre de construir una red de autobuses en la ciudad {city}.
[4] Asegúrate de que todos los autobuses estén conectados a la estación: {name}.
Se avanza al siguiete paso, cuando se transporten más de {load} pasajeros hacia {name} en un mes.
La ciudad de {city} necesita mantener una red de autobuses que permita a los pasajeros llegar a la estación de tren de {name}.
Construye tantas paradas de autobús en la ciudad como necesites para cubrir la ciudad. Asegúrese de que haya una parada de autobús conectada a la estación {name} para que se puedan contar los pasajeros.
La ciudad {city} necesita diseñar una red de autobuses que permita mover pasajeros hacia la estacion de tren: {name}.
[1] Coloca una parada de autobús en la posición {stop}.
[2] Haz pública la parada en {stop}.
[3] Ahora eres libre de construir una red de autobuses en la ciudad {city}.
[4] Asegúrate de que todos los autobuses estén conectados a la estación: {name}.
Se avanza al siguiete paso, cuando se transporten más de {load} pasajeros hacia {name} en un mes.
La ciudad {city} necesita diseñar una red de autobuses que permita mover pasajeros hacia la estacion de tren: {name}.
[1] Coloca una parada de autobús en la posición {stop}.
[2] Haz pública la parada en {stop}.
[3] Ahora eres libre de construir una red de autobuses en la ciudad {city}.
[4] Asegúrate de que todos los autobuses estén conectados a la estación: {name}.
Se avanza al siguiete paso, cuando se transporten más de {load} pasajeros hacia {name} en un mes.
La ciudad {city} necesita diseñar una red de autobuses que permita mover pasajeros hacia la estacion de tren: {name}.
[1] Coloca una parada de autobús en la posición {stop}.
[2] Haz pública la parada en {stop}.
[3] Ahora eres libre de construir una red de autobuses en la ciudad {city}.
[4] Asegúrate de que todos los autobuses estén conectados a la estación: {name}.
Se avanza al siguiete paso, cuando se transporten más de {load} pasajeros hacia {name} en un mes.
Hasta aquí llega el Escenario, muchas gracias por jugar el mítico Simutrans.
Puedes seguirnos aqui: https://www.facebook.com/Simutrans
Cualquier duda estamos para ayudar en el foro: https://forum.simutrans.com/
Créditos a toda la comunidad de Simutrans y en especial a:
Dwachs
Prissi
ny911
HaydenRead
Tjoeker
gauthier
Andarix
Roboron
Saludos!! @Yona-TYT.
\ No newline at end of file +{title}Hasta aquà llega el Escenario, muchas gracias por jugar el mÃtico Simutrans.
Puedes seguirnos aqui: https://www.facebook.com/Simutrans
Cualquier duda estamos para ayudar en el foro: https://forum.simutrans.com/
Créditos a toda la comunidad de Simutrans y en especial a:
Dwachs
Prissi
ny911
HaydenRead
Tjoeker
gauthier
Andarix
Roboron
Saludos!! @Yona-TYT.
\ No newline at end of file diff --git a/es/info.txt b/es/info.txt index 3478eef..6bc17d8 100644 --- a/es/info.txt +++ b/es/info.txt @@ -1 +1 @@ -
El tutorial se compone de varios Capítulos, cada uno con un número de Pasos incluidos en orden para completar el capitulo.
Los asuntos económicos sólo están cubiertos brevemente en el Tutorial
{list_of_chapters}
Puedes obtener más ayuda pulsando la tecla "F1" en lo que respecta a las diversas herramientas, funciones, y la lógica de Simutrans.
{first_link}
Abrir ventana {dialog}
Si esta ventana está cerrada, se puede volver a abrir utilizando este botón en el menú principal.
El tutorial se compone de varios CapÃtulos, cada uno con un número de Pasos incluidos en orden para completar el capitulo.
Los asuntos económicos sólo están cubiertos brevemente en el Tutorial
{list_of_chapters}
Puedes obtener más ayuda pulsando la tecla "F1" en lo que respecta a las diversas herramientas, funciones, y la lógica de Simutrans.
{first_link}
pak64.german es un conjunto de gráficos que solo usa una altura.
Tampoco hay bonificación de velocidad en pak64.german. Pero esto sigue siendo importante porque no se permite que las estaciones estén abarrotadas. Si las estaciones se saturan, los volúmenes de transporte colapsan.
Si se utiliza la carga mÃnima, tenga cuidado de no llenar excesivamente ninguna estación.
El maglev y el S-/U-Bahn sólo deberÃan utilizarse cuando haya un número muy elevado de pasajeros.
\ No newline at end of file diff --git a/es/result.txt b/es/result.txt index 29583e6..8ed3aff 100644 --- a/es/result.txt +++ b/es/result.txt @@ -1 +1 @@ -El capítulo se ha completado al {ratio_chapter}%.
\ No newline at end of file +El capÃtulo se ha completado al {ratio_chapter}%.
\ No newline at end of file diff --git a/es/rule.txt b/es/rule.txt index 764efbd..5a90951 100644 --- a/es/rule.txt +++ b/es/rule.txt @@ -1 +1 @@ -No se muestran todas las herramientas. Tan sólo las acciones necesarias para el paso actual están disponibles.
· Describir normas.
· Dar consejos.
· Instrucciones sobre problemas conocidos.
No se muestran todas las herramientas. Tan sólo las acciones necesarias para el paso actual están disponibles.
· Describir normas.
· Dar consejos.
· Instrucciones sobre problemas conocidos.
" + translate("Tutorial Scenario complete.") + "
" + } return chapter.give_title() + chapter.get_goal_text( pl, my_chapter() ) } function get_result_text(pl) { // finished ... - if(persistent.chapter>7) { + if( persistent.chapter == tutorial.len() && chapter.is_chapter_completed(pl) >= 100 ) { + //return ttextfile("finished.txt") local text = ttextfile("finished.txt") + text.title = "" + translate("Tutorial Scenario complete.") + "
" return text } @@ -503,16 +546,69 @@ function labels_text_debug() /** - * This function check whether finished or not - * Is runs in a step, so it can alter the map - * @return 100 or more, the scenario will be "win" and the scenario_info window - * show the result tab + * calculate percentage chapter complete + * + * @param ch_steps = count chapter steps + * @param step = actual chapter step + * @param sup_steps = count sub steps in a chapter step + * @param sub_step = actual sub step in a chapter step + * + * no sub steps in chapter step, then set sub_steps and sub_step to 0 + * + * This function is called during a step() and can alter the map + * + * @return + */ +function chapter_percentage(ch_steps, ch_step, sub_steps, sub_step) +{ + local percentage_step = 100 / ch_steps + + local percentage = percentage_step * ch_step + + local percentage_sub_step = 0 + if ( sub_steps > 0 && sub_step > 0) { + percentage_sub_step = (percentage_step / sub_steps ) * sub_step + percentage += percentage_sub_step + } + + if ( ch_step <= ch_steps ) { + percentage -= percentage_step + } + + //gui.add_message("ch_steps "+ch_steps+" ch_step "+ch_step+" ch_steps "+sub_steps+" sub_step "+sub_step) + + // tutorial finish + if ( tutorial.len() == persistent.chapter && ch_steps == ch_step && sub_steps == sub_step ) { + percentage = 100 + } + + return percentage +} + +/** + * This function check whether finished or not + * Is runs in a step, so it can alter the map + * + * @param pl = player_x + * + * @return 100 or more, the scenario will be "win" and the scenario_info window + * show the result tab */ function is_scenario_completed(pl) { // finished ... - if(persistent.chapter > chapter_max) { - return 100 + if( persistent.chapter > chapter_max ) { + local text = ttext("Chapter {number} - {cname} complete.") + text.number = chapter_max + text.cname = translate(""+chapter.chapter_name+"") + gui.add_message( text.tostring() ) + + rules.clear() + rules.gui_needs_update() + scr_jump = true + text = translate("Tutorial Scenario complete.") + gui.add_message( text.tostring() ) + return 100 } //-------Debug ==================================== @@ -572,25 +668,51 @@ function is_scenario_completed(pl) chapter.step = 1 else chapter.step = persistent.step + chapter.start_chapter() return 1 } chapter.step = persistent.step - if (pending_call) { - // since we cannot alter the map in a sync_step - pending_call = false - scr_jump = true // we are during a jump ... - chapter.script_text() - scr_jump = false + local percentage = chapter.is_chapter_completed(pl) + + // check for automatic step + if ( pending_call ) { + //gui.add_message("check automaric jump : percentage " + percentage) + //gui.add_message(" : chapter.step " + chapter.step) + //gui.add_message(" : persistent.ch_max_sub_steps " + persistent.ch_max_sub_steps) + //gui.add_message(" : persistent.ch_sub_step " + persistent.ch_sub_step) + + local percentage_step = chapter_percentage(persistent.ch_max_steps, chapter.step, persistent.ch_max_sub_steps, persistent.ch_sub_step) + //gui.add_message(" : percentage_step " + percentage_step) + + local jump_step = false + if ( chapter.step == 1 && percentage >= 0 ) { + jump_step = true + } else if ( percentage >= 100 ) { + jump_step = true + } else if ( percentage == percentage_step ) { + jump_step = true + } + + if ( jump_step ){ + + // since we cannot alter the map in a sync_step + pending_call = false + scr_jump = true // we are during a jump ... + chapter.script_text() + scr_jump = false + + } + + } - local percentage = chapter.is_chapter_completed(pl) gl_percentage = percentage persistent.gl_percentage = gl_percentage - if (percentage >= 100){ // give message , be sure to have 100% or more + if ( percentage >= 100 ) { // give message , be sure to have 100% or more local text = ttext("Chapter {number} - {cname} complete, next Chapter {nextcname} start here: ({coord}).") text.number = persistent.chapter text.cname = translate(""+chapter.chapter_name+"") @@ -598,14 +720,6 @@ function is_scenario_completed(pl) persistent.chapter++ persistent.status.chapter++ - // finished ... - if(persistent.chapter > chapter_max) { - rules.clear() - rules.gui_needs_update() - scr_jump = true - return 100 - } - load_chapter(persistent.chapter, pl) chapter.chap_nr = persistent.chapter percentage = chapter.is_chapter_completed(pl) @@ -614,13 +728,9 @@ function is_scenario_completed(pl) text.nextcname = translate(""+chapter.chapter_name+"") text.coord = chapter.chapter_coord.tostring() chapter.start_chapter() //Para iniciar variables en los capitulos - if (persistent.chapter >1) gui.add_message(text.tostring()) - } - percentage = scenario_percentage(percentage) - if ( percentage >= 100 ) { // scenario complete - local text = translate("Tutorial Scenario complete.") - gui.add_message( text.tostring() ) + if (persistent.chapter > 1 && persistent.chapter < chapter_max ) gui.add_message(text.tostring()) } + return percentage } @@ -634,7 +744,7 @@ function is_work_allowed_here(pl, tool_id, name, pos, tool) if(scr_jump){ return null } - local result = translate("Action not allowed") + local result = get_message(2) //translate("Action not allowed") if (correct_cov){ local result = chapter.is_work_allowed_here(pl, tool_id, name, pos, tool) return fail_count_message(result, tool_id, tool) @@ -727,6 +837,7 @@ function jump_to_link_executed(pos) //-------------------------------------------------------- datasave <- {cov = cov_save} + class data_save { // Convoys function convoys_save() {return datasave.cov;} @@ -772,16 +883,9 @@ function resume_game() sigcoord = persistent.sigcoord ignore_save = persistent.ignore_save - pot0=persistent.pot[0] - pot1=persistent.pot[1] - pot2=persistent.pot[2] - pot3=persistent.pot[3] - pot4=persistent.pot[4] - pot5=persistent.pot[5] - pot6=persistent.pot[6] - pot7=persistent.pot[7] - pot8=persistent.pot[8] - pot9=persistent.pot[9] + // copy persistent.pot[] to pot[] + pot.clear() + pot.extend(persistent.pot) gl_percentage = persistent.gl_percentage diff --git a/set_data.nut b/set_data.nut index 8dd0137..7bca9fc 100644 --- a/set_data.nut +++ b/set_data.nut @@ -1,6 +1,8 @@ -/* - * define set data - */ +/** + * @file set_data.nut + * @brief define set data + * + */ // pak64 pak_name <- "pak64" // pak name diff --git a/text_download.sh b/text_download.sh new file mode 100644 index 0000000..fdf6843 --- /dev/null +++ b/text_download.sh @@ -0,0 +1,2 @@ +wget -q --delete-after https://simutrans-germany.com/translator_page/scenarios/scenario_5/download.php +wget -O texts.zip https://simutrans-germany.com/translator_page/scenarios/scenario_5/data/language_pack-Scenario+Tutorial+multipak.zip