Suki wrote: ↑Mon, 31. Dec 18, 20:13
So, nochmal getestet. Argon Prime inklusive Lizenz. Keine der unten anstehenden (Teladi verkaufen zwar, hab ich aber noch nicht).
Eine ANT Seeschwalbe: Kein Kommentar.
ANT Merkur: "Hey das dürfen Sie nicht."
Ant Mammut: "Hey das dürfen Sie nicht."
Ant Schürfer: Keine Reaktion.
Teladi Seeschwalbe: Meckermecker.
Teladi Geier: Gemecker
Hat Schürfer: keine Reaktion.
Hat Harpyie: "Hey ich kenne meine Rechte"
So, viel Spaß beim enträtseln.
Lustig. Bei mir reklamieren "Fraktionsschiffe" in Stiller Zeuge 11 + 12 (Fraktionsloses Zone), wenn ich sie Scanne, obwohl ich von der Fraktion die Lizenz habe und im Stille Zeuge 1 (Argon) keiner (oder mit "Ja, scannen sie mich ruhig" oder "Wenn sie denn scannen müssen" und ähnliche aussagen) und bei dir Reklamiert in deiner Zone, von der du die Lizenz hast, (fast) alles.
Fazit: Eigentlich sind beide Theorien wiederlegt...
Edit: kurz ein paar Formulierungs- und Rechtschreibfehler korrigiert
Nachtrag 21:30 Uhr:
Ich hab mal kurz einen Blick in das AI-Script geworfen, das meiner Meinung nach das "Scannen" abhandelt. Laut meiner Einschätzung - leider kenn ich mich in der Script-Sprache, die Egosoft da verwendet, inkl. deren Mod-API in zusammenspiel mit der XML-Formatierung, nicht wirklich aus - wird die Legalität entweder vom Feindstatus (ein Feind reklamiert immer, als ob der Scann illegal wäre) oder aber von der Zone bestimmt. Allerdings scheint mir der Aufbau der AI-Scriptes auch etwas merkwürdig zu sein. Vielleicht dunkt es mich auch nur aus Unerfahrenheit der XML-Aufbaus und dieser Scriptsprache so merkwürdig.
Im Spoiler-Tag hab ich das Script "aiscripts\interrupts.scanned.xml" mal eingefügt.
Code: Select all
<?xml version="1.0" encoding="iso-8859-1" ?>
<aiscript name="interrupt.scanned" priority="9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="aiscripts.xsd">
<params>
<param name="scanner" default="null" />
</params>
<interrupts>
<library>
<handler name="ScannedHandler">
<conditions>
<event_scan_finished scanned="this.defensible" />
</conditions>
<actions>
<!--<debug_text text="'%1(%2) has been scanned by %3(%4)'.[this.ship.knownname, this.ship, event.param.knownname, event.param]" />-->
<do_if value="not global.$last_npc_notification?">
<set_value name="global.$last_npc_notification" exact="0s"/>
</do_if>
<do_if value="event.param" exact="player.controlled">
<set_value name="$Speak" exact="false"/>
<set_value name="$Speak_Line" exact="0"/>
<!--Only say something if no one has said anything for a few seconds-->
<do_if value="global.$last_npc_notification" max="player.age - 50s">
<set_value name="$Speak" exact="this.page != 0"/>
</do_if>
<!--
<t id="2300">(Player scan - NPC compliant)Scan away.</t>
<t id="2305">(Player scan - NPC neutral)What are you scanning me for?</t>
<t id="2310">(Player scan - scan is illegal)(@voice angry)Hey! You can't scan me!</t>
<t id="2315">(Player scan - NPC confident)I don't think you'll find anything in here.</t>
<t id="2320">(Player scan - Player finds something illegal)(@voice nervous)Err... I have a permit for that... somewhere.</t>
<t id="2321">(Player scan - Player finds something illegal)(@voice nervous)Fine. You found something. What are you going to do about it?</t>
<t id="2322">(Player scan - Player finds something illegal)(@voice nervous)Oh... that? I don't know where that came from...</t>
<t id="2323">(Player scan - Player finds something illegal)(@voice nervous)Ah... well... I guess I nearly made it. Never mind.</t>
-->
<do_if value="this.hasrelation.enemy.{event.param}">
<set_value name="$Speak_Line" exact="11210" comment="(ship scanned - illegal)" />
</do_if>
<do_elseif value="event.param.maxlegalscanlevel.{this.ship}" min="this.ship.scannedlevel">
<do_if value="@this.inventory.illegalto.{this.zone.policefaction} or @this.ship.cargo.illegalto.{this.zone.policefaction}">
<set_value name="$Speak_Line" exact="11209" comment="(ship scanned by police - something found)" />
</do_if>
<do_else>
<set_value name="$Speak_Line" exact="11207" comment="(ship scanned by police - compliant)" />
</do_else>
</do_elseif>
<do_else>
<set_value name="$Speak_Line" exact="11210" comment="(ship scanned - illegal)" />
</do_else>
<do_if value="$Speak">
<do_if value="$Speak_Line">
<start_conversation actor="this" conversation="Speak" type="unqueued" convparam="$Speak_Line" />
<set_value name="global.$last_npc_notification" exact="player.age"/>
</do_if>
</do_if>
<!--cleanup -->
<remove_value name="$Speak"/>
<remove_value name="$Speak_Line"/>
</do_if>
</actions>
</handler>
</library>
</interrupts>
</aiscript>
Ich muss aber auch ganz ehrlich sagen: Ich seh auch nicht wirklich, wo dort auf die Lizenz kontrolliert wird - nur auf die Zone. Aber wie gesagt: Meiner ersten eindruck nach stimmt dort die Reihenfolge der Statements nicht ganz, denn für mich sieht es fast so aus, als ob zuerst die Reaktion des Schiffes festgelegt wird (also der Funkspruch) und erst dann, ob es überhaupt ein legaler scann wäre. Aber der XML-Aufbau macht das verstehen der Scripte gar nicht wirklich einfacher, wenn man sich mit der Scripte und der API nicht bereits auskennt...