21-04-2020, Tuesday-23:08:35
(Dieser Beitrag wurde zuletzt bearbeitet: 22-04-2020, Wednesday-00:25:56 von Andarix.)
(09-04-2020, Thursday-18:11:30 )Dwachs2 schrieb: Das Skript versucht einen neuen Convoi in dem Depot zu erstellen, wo ein anderer der Linie erstellt wurde. Da koennte man noch eine Suche nach einem Depot einbauen...
globale Funktion ( weil auch in *_connection verwendet )
Code:
/**
* search existing depot on range to station
*
*/
function search_depot(field_pos, wt) {
local list_exists_depot = depot_x.get_depot_list(our_player, wt)
// search range
local seach_field = 10
local tile_min = [field_pos.x - seach_field, field_pos.y - seach_field]
local tile_max = [field_pos.x + seach_field, field_pos.y + seach_field]
local depot_found = false
foreach(key in list_exists_depot) {
if ( key.x >= tile_min[0] && key.y >= tile_min[1] && key.x <= tile_max[0] && key.y <= tile_max[1] ) {
depot_found = tile_x(key.x, key.y, key.z)
break
}
}
return depot_found
}
weis nicht genau, ob die Zeilennummern noch passen bei sqai/industry_manager.nut
Code:
--- a/ai/sqai/industry_manager.nut
+++ b/ai/sqai/industry_manager.nut
@ -300,7 +300,17 @@ class industry_manager_t extends manager_t
// directly append
// TODO put into report
local proto = cnv_proto_t.from_convoy(cnv, lf)
- local depot = cnv.get_home_depot()
+ local depot = null //cnv.get_home_depot()
+ local stations_list = cnv.get_schedule().entries
+ for (local i=0; i<stations_list.len(); i++) {
+
+ local c = tile_x(stations_list[i].x, stations_list[i].y, stations_list[i].z)
+ local depot = search_depot(c, wt)
+ if ( depot ) {
+ break
+ }
+
+ }
local c = vehicle_constructor_t()
@@ -423,7 +423,19 @@ class industry_manager_t extends manager_t
dbgprint("Upgrade line " + line.get_name())
// build the new one, withdraw the old ones
// directly append
- local depot = cnv.get_home_depot()
+ local depot = null //cnv.get_home_depot()
+ local stations_list = cnv.get_schedule().entries
+ for (local i=0; i<stations_list.len(); i++) {
+
+ local c = tile_x(stations_list[i].x, stations_list[i].y, stations_list[i].z)
+ local depot = search_depot(c, wt)
+ if ( depot ) {
+ break
+ }
+
+ }
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds