Habe eine Frage zu UIData und Fehler anzeige?

Hier ist der ideale Ort um über Scripts und Mods für X Rebirth zu diskutieren.

Moderators: Moderators for English X Forum, Scripting / Modding Moderators

Post Reply
STB2199
Posts: 184
Joined: Fri, 15. Aug 14, 08:38
x4

Habe eine Frage zu UIData und Fehler anzeige?

Post by STB2199 » Thu, 11. Aug 16, 14:58

[118.000000]={
["gamestart"]=3.000000,
["message"]="Error: Error in MD cue md.Near_Xenon.PlayerSwitch_01<inst:82ae44>: Property lookup failed: $Xenon_Hack\
* Expression: $Xenon_Hack",
["timestamp"]=1470916696.000000,},


das steht in der UIData das ist verweis auf meiner Mod aber was sagt der Fehler aus also Ingame Funktioniert alles und so wie es soll, aber warum der fehler?

Hier das ganze Cue was den Fehler auslöst!

Code: Select all

   <cue name="PlayerSwitch_01" instantiate="true" checkinterval="5s">
      <actions>
        <do_if value="$Xenon_Hack" min="0" max="120">
        <set_value name="$Credit" exact="player.money/1Cr"/>
        <do_if value="$Credit lt 10000">
          <set_value name="$Credits" exact="'%1'.[$Credit]"/>
        </do_if>
        <do_elseif value="$Credit lt 1000000">
          <set_value name="$Credits" exact="'%1.%2Tsd'.[$Credit/1000, $Credit%1000/100]"/>
        </do_elseif>
        <do_else>
          <set_value name="$Credits" exact="'%1.%2Mio'.[$Credit/1000000, $Credit%1000000/100000]"/>
        </do_else>

          <set_value name="$Inventory_Wares" exact="ware.inv_virtualseminarboarding"/>
          <set_value name="$Inventory_Amount" exact="100"/>

          <find_object name="$PrimaryShipXenon" class="[class.ship, class.station]" owner="faction.xenon" multiple="false" space="player.zone" >
            <match_distance min="50m" max="2km" object="player.primaryship"/>
          </find_object>

          <find_ship groupname="$Xenon_Ships" owner="faction.xenon" multiple="true" space="player.zone">
            <match_distance min="50m" max="2km" object="player.primaryship"/>
          </find_ship>
          <find_ship groupname="$Freund_Schiff" owner="[faction.albionenergy, faction.aquarius, faction.argongovernment, faction.beryll, faction.canteran, faction.chow, faction.familyryak, faction.frantonpharma, faction.heartofalbion, faction.jonferson, faction.leddaindustrial, faction.plutarch, faction.sonraenergy, faction.wholesomefoods, faction.nolimits, faction.terracorp, faction.terran, faction.teladidrugrunner, faction.teladigunrunner, faction.hereticvanguards, faction.reivers, faction.sovereignsyndicate, faction.khaak, faction.atlas, faction.player]" multiple="true" space="player.zone">
            <match_distance min="50m" max="2km" object="player.primaryship"/>
          </find_ship>

          <find_object name="$Freundliches_Schiff" class="[class.ship, class.station]" owner="[faction.albionenergy, faction.aquarius, faction.argongovernment, faction.beryll, faction.canteran, faction.chow, faction.familyryak, faction.frantonpharma, faction.heartofalbion, faction.jonferson, faction.leddaindustrial, faction.plutarch, faction.sonraenergy, faction.wholesomefoods, faction.nolimits, faction.terracorp, faction.terran, faction.teladidrugrunner, faction.teladigunrunner, faction.hereticvanguards, faction.reivers, faction.sovereignsyndicate, faction.khaak, faction.atlas, faction.player]" multiple="false" space="player.zone">
          <match_distance min="50m" max="2km" object="player.primaryship"/>
          <match_units_available category="unitcategory.welder" min="1"/>
        </find_object>
        <!--Player wird zu ein Xenon-->
        <do_if value="md.Setup.PostChapter3Jobs.state" exact="cuestate.complete" >
          <!--Es sind Xenons Nahe der Albion Skung-->
          <do_if value="$PrimaryShipXenon" negate="false">
            <do_if value="$Xenon_Hack" max="100">
              <set_value name="$Xenon_Hack" exact="$Xenon_Hack + ( 1 + (0.2 * $Xenon_Ships.count))"/>
              <do_if value="$Xenon_Hack" min="100">
                <set_value name="$Xenon_Hack" exact="100"/>
                <do_if value="player.primaryship.owner == faction.player">
                  <set_cover_owner object="player.entity" faction="faction.xenon"/>
                  <set_cover_owner object="player.primaryship" faction="faction.xenon"/>
                  <speak priority="100" actor="player.computer">
                    <text line="103001" comment="Suche nach geeigneten Planeten zum Terraformen"/>
                  </speak>
                </do_if>
              </do_if>
            </do_if>
          </do_if>
          <!--Keine Xenons Nahe der Albion Skung-->
          <do_if value="$Freundliches_Schiff" negate="false">
            <do_if value="player.primaryship.owner == faction.xenon">
              <do_if value="$Xenon_Hack" min="1" >
                <set_value name="$Xenon_Hack" exact="$Xenon_Hack - (1 + (0.1 * $Freund_Schiff.count))"/>
              </do_if>
              <do_if value="$Xenon_Hack" max="1">
                <set_value name="$Xenon_Hack" exact="0"/>
                <set_owner object="player.entity" faction="faction.player" />
                <set_owner object="player.primaryship" faction="faction.player" />
                <set_value name="$Amount" exact="25" />
                <create_list name="$Docks" />
                <do_all exact="$Amount" counter="$i">
                  <create_ship dock="$Docks.{($i % $Docks.count) + 1}" name="$Ship" macro="units_size_m_pmc_xen_02_macro" zone="player.zone">
                    <owner exact="faction.xenon" />
                    <pilot group="argon.pilot">
                      <owner exact="faction.xenon"/>
                      <skills>
                        <skill type="combat" exact="5"/>
                        <skill type="boarding" exact="5"/>
                        <skill type="engineering" exact="5"/>
                        <skill type="leadership" exact="5"/>
                        <skill type="management" exact="5"/>
                        <skill type="morale" exact="5"/>
                        <skill type="navigation" exact="5"/>
                        <skill type="science" exact="5"/>
                      </skills>
                    </pilot>
                    <safepos object="player.primaryship" x="0km" y="0km" z="-5km"/>
                  </create_ship>
                  <do_if value="$Ship.exists">
                    <start_script object="$Ship.pilot" name="'fight.attack.object'">
                      <param name="target" value="player.primaryship"/>
                      <param name="pursuetargets" value="true"/>
                    </start_script>
                  </do_if>
                </do_all>
              </do_if>
            </do_if>
          </do_if>
        <do_if value="$Freundliches_Schiff" negate="false">
          <do_if value="$Xenon_Hack" min="1">
            <do_if value="player.primaryship.owner == faction.player">
              <set_value name="$Xenon_Hack" exact="$Xenon_Hack - (1 + (0.5 * $Freund_Schiff.count))"/>
              <do_if value="$Xenon_Hack" max="1">
                <set_value name="$Xenon_Hack" exact="0"/>
              </do_if>
            </do_if>
          </do_if>
        </do_if>
      </do_if>
        <do_if value="$Xenon_Hack" min="1" >
          <remove_help all="true"/>
          <show_help duration="4.5s" position="20" custom="'Xenon Hack ' + $Xenon_Hack" silent="true"/>
        </do_if>
        <do_if value="$Xenon_Hack" max="0"  >
          <remove_help all="true"/>
          <show_help duration="4.5s" position="20" custom="'%1 Cr '.[$Credits]" silent="true" />
        </do_if>
        </do_if>
        <do_else>
          <set_value name="$Xenon_Hack" exact="0"/>
        </do_else>
      </actions>
    </cue>
würde mich freuen wenn mir jemand sagen könnte was ich falsch gemacht oder nicht gemacht habe.

Ingame läuft das sehr gut

zum Gruße ein neuer X-Fan

Ps. bin Kein gelernter Programmierer alles durch X-Rebirth gelernt :)


Edit: Code-Tags hinzugefügt, sodass die Formatierung des Codes erhalten bleibt und man ihn besser lesen kann. X2-Illuminatus

User avatar
Marvin Martian
Posts: 3547
Joined: Sun, 8. Apr 12, 09:40
x4

Post by Marvin Martian » Thu, 11. Aug 16, 16:06

na du beziehst dich gleich in der ersten Zeile auf die Var

<do_if value="$Xenon_Hack" min="0" max="120">
.....
</do_if>
<do_else>
<set_value name="$Xenon_Hack" exact="0"/>
</do_else>
und erst wenn diese nicht existiert setzt du diese

sofern du $vars nicht direkt übergibst, solltest du IMO diese eingangs setzen, bzw. validieren, oder halt den Code entsprechend schreiben

du kannst den Fehler auch unterdrücken, aber das sollte nur im absoluten Notfall geschehen

statt dem
<do_else>
<set_value name="$Xenon_Hack" exact="0"/>
</do_else>

nimm das raus und mach lieber vor dein do_if noch ein

Code: Select all

<do_if value="$Xenon_Hack?" negate="true">
	<set_value name="$Xenon_Hack" exact="0"/> 
</do_if> 
das selbe gilt noch für andere Vars, außerdem würde ich dazu raten bei solchen konstant laufenden Cues die $vars die du setzt und benutzt auch wieder zu bereinigen mit
<remove_value name="$foo_bar"/>
<remove_value name="$foo"/>
<remove_value name="$bar"/>
.....

weil der ganz mist sonst im Savegame landet, außerdem kann es in der falschen Konstellation sich immer weiter aufblähen was den Speicher dann vollmüllt

BTW
das Ding heißt Albion Skunk, nicht Skung

BTW2
checkinterval="5s"

bist du wahnsinnig?

warum keine Condition

Code: Select all

<conditions>
	<event_gravidar_has_scanned object="player.primaryship" />
	<check_value value="not player.primaryship.zone.isclass.highway" />
	<check_value value="player.entity.inventory.{ware.inv_virtualseminarboarding}.count ge 100" />
	<count_gravidar_contacts result="$RepairTargets" object="player.primaryship" class="[class.ship, class.station]" repairable="true" min="1">
		<match_distance min="50m" max="2km" object="player.primaryship"/>
		<match owner="[faction.xenon, faction.albionenergy, faction.aquarius, faction.argongovernment, faction.beryll, faction.canteran]"/>
	</count_gravidar_contacts>
</conditions>

STB2199
Posts: 184
Joined: Fri, 15. Aug 14, 08:38
x4

Post by STB2199 » Thu, 11. Aug 16, 16:15

Danke für deine Hilfe, ich bin ja noch in der Lernphase

Werde mal gucken, ob ich es besser Umsetzen kann. :D

Zum Gruße, ein neuer X-Fan

Post Reply

Return to “X Rebirth - Scripts und Modding”