Author Topic: [Script AI] industry_connection_planner.nut - planned_convoy.max_speed  (Read 594 times)

0 Members and 1 Guest are viewing this topic.

Offline Frank

in Zeile 59 steht 'planned_convoy = prototyper.best'

Damit sollte die Abfrage planned_convoy.max_speed danach doch die Geschwindigkeit zurückgeben.

Versuche ich aber für die Wegauswahl ( Fahrzeuggeschwindigkeit + 20 als Obergrenze für die Wegauswahl ) ein

local way_max = planned_convoy.max_speed + 20

kommt es zum Scriptfehler.

Die Auswertung

if (cnv_valuator.way_max_speed >= planned_convoy.max_speed && cnv_valuator.way_max_speed < way_max )

geht auch ins Leere, da Wege mit wesentlich geringerer Geschwindigkeit gewählt werden. Die Weggeschwindigkeit soll gleich oder größer der Fahrzeuggeschwindigkeit sein aber nicht mehr als 20 km/h über der Fahrzeuggeschwindigkeit liegen.

Offline Frank

in Zeile 59 steht 'planned_convoy = prototyper.best'

Damit sollte die Abfrage planned_convoy.max_speed danach doch die Geschwindigkeit zurückgeben.
....

nun ja, im log steht folgendes für planned_convoy.max_speed

Quote
...
Script: Print:   industry_connection_planner_t: planned_convoy.max_speed = -727379968
...

Dabei ist es egal welches Fahrzeug drüber steht. Sind immer diese -727379968.

Allerdings ist best ein geschachteltes Array ( Array mit weiteren Arrays in den Feldern ).

Quote
...
Script: Print:   Best[0] = Ochsen2
Script: Print:   Best[1] = Horsecoalcariage

Weis aber gerade auch nicht wo diese Ausgabe her kommt. Muss ich erst suchen.

Offline Dwachs

  • DevTeam, Coder/patcher
  • Administrator
  • *
  • Posts: 4280
  • Total likes: 196
  • Helpful: 149
  • Languages: EN, DE, AT
also bei mir gibt dieser Code hier
Code: [Select]
// original industry_connection_planne
if (planned_convoy == null) {
if (prototyper.step().has_failed()) {
return r_t(RT_ERROR)
}

planned_convoy = prototyper.best
}
// eingefuegt
print("best " + planned_convoy.min_top_speed + " / " + planned_convoy.max_speed)
was vernuenftiges aus. Dabei ist max_speed die Maximalgeschwindigkeit, die das Ding fahren darf, min_top_speed ist die maximal erreichbare Geschwindigkeit des vollbeladenen convois.
Parsley, sage, rosemary, and maggikraut.

Offline Frank

Code: [Select]
if (planned_convoy == null) {
if (prototyper.step().has_failed()) {
return r_t(RT_ERROR)
}

planned_convoy = prototyper.best
}
    print("best " + planned_convoy.min_top_speed + " / " + planned_convoy.max_speed)

// fill in report when best way is found
local r = report_t()
// plan way
if (planned_way == null) {
local way_list = way_desc_x.get_available_ways(wt_road, st_flat)
local best_way = null
local best = null

foreach(way in way_list) {
cnv_valuator.way_maintenance = way.get_maintenance()
cnv_valuator.way_max_speed   = way.get_topspeed()
       
        print("planned_convoy.max_speed = " + planned_convoy.max_speed)
        print("cnv_valuator.way_max_speed = " + cnv_valuator.way_max_speed)


Ausgabe:
Code: [Select]
Script: Print: best 10817536 / -727379968
Script: Print: planned_convoy.max_speed = -727379968
Script: Print: cnv_valuator.way_max_speed = 40

das sind meine Ergebnisse mit v120.2.2 GDI pak64.german 112.3.5

Dateien von hier

allerdings ohne dem ' print("best " + planned_convoy.min_top_speed + " / " + planned_convoy.max_speed)'

Offline Dwachs

  • DevTeam, Coder/patcher
  • Administrator
  • *
  • Posts: 4280
  • Total likes: 196
  • Helpful: 149
  • Languages: EN, DE, AT
Kanns nicht reproduzieren. Was wird denn als bester Convoy ausgegeben?
Parsley, sage, rosemary, and maggikraut.

Offline Frank

script-ai-4.log

und die leeren Test-Karten dazu ( alle mit 120.2.2 erstellt )
1936_pak64german.sve
1956_pak64german.sve
1976_pak64german.sve

glaube zwar nicht das es daran liegt

Win 10 ( 1607 ) 64bit

AMD Athlon(tm) X4 740 Quad Core Processor 3.20 GHz