Egosoft X4
-
Jóózsf István #3798 Ezt most ollóztam az Ego bétáról:
The devs tell me that crew transfer is receiving some attention for 3.30 and so it may be worth waiting for that in beta before testing it again.
Jelenleg ez a lenagyobb mumus nálam! Vagyis inkább csak nem fér a józan paraszti eszembe, hogy azt mondom egy gépnek, hogy öt, akkor miért lesz belőle három? Pontosan minek kell történnie, hogy felülbíráljon engem? Azt könnyebben elfogadom, hogy a "Jófejsrác" a vízen járt!
Néha munkát is elvégzik helyettük...
Persze ez nem biztos, hogy megállja a helyét. De legalább az kiderült, hogy bizony a 2x2 néha 5 vagy csak 3
SPOILER! Kattints ide a szöveg elolvasásához!
The devs tell me that crew transfer is receiving some attention for 3.30 and so it may be worth waiting for that in beta before testing it again.
This may help
Not sure if I am allowed to quote code here but as its taken me two days to find the cause and a code fix ...
Its a problem with the ai script order.trade.crewexchange in 3.20, it was fine in 3.10
what is does is to loose pods, so if I send 15 marines over that should be five pods but it only sends three leaving 6 marines behind
the problem code is around line 465
Code: Select all
<set_value name="$cap_pods" exact="[$crewtotransfer_active.count, $crewtotransfer_passive.count].max" comment="should provide quite a bit of headroom since more than one person can normally fit in a pod at a time"/>
<do_while value="$poddock_active.isoperational and $poddock_passive.isoperational and (($crewtotransfer_active.count and ($transferredtopods_active.count lt $crewtotransfer_active.count)) or ($crewtotransfer_passive.count and ($transferredtopods_passive.count lt $crewtotransfer_passive.count))) and (@$numpods_active lt $cap_pods) and (@$numpods_passive lt $cap_pods)">
<do_if value="$crewtotransfer_active.count and ($transferredtopods_active.count lt $crewtotransfer_active.count)">
The cause is that the list of nps's to transfer $crewtotransfer_active has npc's removed from it lower down within the do_while loop as the marines are added to boarding pods which reduces $crewtotransfer_active.count
That makes the do_while loop run less times than it should which leaves crew behind on the originating ship. You loose roughly half the pods
if you stash the starting number of npc's to be transferred by adding a couple of variables and alter the do_while and do_if lines to use the starting numbers then the loop runs the correct number of times and I get all my marines transferred
Code: Select all
<set_value name="$cap_pods" exact="[$crewtotransfer_active.count, $crewtotransfer_passive.count].max" comment="should provide quite a bit of headroom since more than one person can normally fit in a pod at a time"/>
<set_value name="$crewtotransfer_active_num" exact="$crewtotransfer_active.count"/>
<set_value name="$crewtotransfer_passive_num" exact="$crewtotransfer_passive.count"/>
<do_while value="$poddock_active.isoperational and $poddock_passive.isoperational and (($crewtotransfer_active.count and ($transferredtopods_active.count lt $crewtotransfer_active_num)) or ($crewtotransfer_passive.count and ($transferredtopods_passive.count lt $crewtotransfer_passive_num))) and (@$numpods_active lt $cap_pods) and (@$numpods_passive lt $cap_pods)">
<do_if value="$crewtotransfer_active.count and ($transferredtopods_active.count lt $crewtotransfer_active_num)">
That fixed my problem
Not sure what the passive transfer bits do but to fix them also change the original line 467 from
Code: Select all
<do_if value="$crewtotransfer_active.count and ($transferredtopods_active.count lt $crewtotransfer_active.count)">
to
Code: Select all
<do_if value="$crewtotransfer_passive.count and ($transferredtopods_passive.count lt $crewtotransfer_passive_num)">
haven't tested this bit