Ich hab mal nen bischen an der "Buy Blueprints" rumgebastelt, da die ja von Egosoft nie beendet wurde. Es fehlt die Abfrage ob der zu kaufende Plan schon im HQ vorhanden ist.
Problem is hierbei, dass die Blueprints im HQ nicht einfach über nen lookup abgefragt werden können.
Ich hab das gelößt, in dem ich alle einzeln nacheinander mit ner Schleife Abfrage:
Code: Select all
<cue name="L2M161Blueprints1">
<condition>
<conversation_completed answer="accept1" conversation="L2OfferBuyCustom1" actor="L2M161 Offer.Guide"/>
</condition>
<timing>
<count exact="{player.headquarters.blueprints.count}"/>
<time min="2"/>
<interval exact="1"/>
</timing>
<action>
<do_all>
<set_value name="this.counter" exact="{index@this}"/>
<!--Überprüfungsmessage zur Ausgabe der Variablen-->
<!--<incoming_message text="{8738,3}" popup="1"/>-->
<do_choose>
<do_when value="{lookup.type.name@{player.headquarters.blueprints.{value@L2M161Blueprints1.counter}}}" exact="{lookup.type.name@{value@L2M161.ShipType1}}">
<play_text priority="99">
<line pageid="13" textid="56"/>
</play_text>
<remove_offer actor="L2M161 Offer.Guide" conversation="L2OfferBuyCustom1" discipline="XXXT"/>
<destroy_actor actor="L2M161 Offer.Guide"/>
<cancel_cue cue="L2M161"/>
</do_when>
</do_choose>
</do_all>
</action>
Wenn ich die Blueprints nicht habe lässt er mich auch weiter zu folgender Cue (die ist nahezu orginal von Egosoft)
Code: Select all
<cue name="L2M161 Accepted 1" instantiate="static">
<condition>
<check_all>
<!--<conversation_completed answer="accept1" conversation="L2OfferBuyCustom1" actor="L2M161 Offer.Guide"/>-->
<cue_is_complete cue="L2M161Blueprints1"/>
</check_all>
</condition>
<timing>
<time min="3s" max="5s"/>
</timing>
<action>
<do_all>
<set_value name="L2M161Blueprints1.counter" exact="({player.headquarters.blueprints.count}+1)"/>
<do_choose>
<do_when value="{player.money}" min="{value@L2M161.Cost 1}">
<set_value name="L2M161.Notoriety" exact="1"/>
<do_if value="{value@L2M161.OfferRace}" list="{lookup.race@pirate}|{lookup.race@yaki}" negate="1">
<set_value name="L2M161.HasNotoriety" exact="{player.notoriety.{value@L2M161.OfferRace}}+{lookup.type.minnotoriety@{value@L2M161.ShipType1}}"/>
</do_if>
<do_choose>
<do_when value="{value@L2M161.HasNotoriety}" min="1">
<reward_player>
<money exact="-{value@L2M161.Cost 1}"/>
</reward_player>
<add_blueprints_to_headquarters typename="{value@L2M161.ShipType1}"/>
<play_text priority="99">
<line actor="L2M161 Offer.Guide" textid="825"/>
<!--<line pageid="13" textid="1332"/>-->
</play_text>
<set_value name="L2M161.Accepted2" exact="1"/>
<remove_offer actor="L2M161 Offer.Guide" conversation="L2OfferBuyCustom1" discipline="XXXT"/>
<destroy_actor actor="L2M161 Offer.Guide"/>
<cancel_cue cue="L2M161 Accepted 1"/>
</do_when>
<do_otherwise>
<reward_player>
<money exact="-{value@L2M161.Cost 1}"/>
</reward_player>
<add_blueprints_to_headquarters typename="{value@L2M161.ShipType1}"/>
<play_text priority="99">
<line actor="L2M161 Offer.Guide" textid="825"/>
<!--<line pageid="13" textid="1332"/>-->
</play_text>
<set_value name="L2M161.Accepted2" exact="1"/>
<remove_offer actor="L2M161 Offer.Guide" conversation="L2OfferBuyCustom1" discipline="XXXT"/>
<destroy_actor actor="L2M161 Offer.Guide"/>
<cancel_cue cue="L2M161 Accepted 1"/>
</do_otherwise>
</do_choose>
</do_when>
<do_otherwise>
<play_text priority="99">
<line pageid="13" textid="1254"/>
<line actor="L2M161 Offer.Guide" textid="21"/>
</play_text>
</do_otherwise>
</do_choose>
</do_all>
</action>
</cue>
Nun mein Problem:
Dadurch dass ich die Abfrage für "Ist die Blaupause schon vorhanden" über ne schleife mache, wird die zweite Cue, die mir die Blaupause gibt und geld abzieht so häufig ausgeführt wie ich Blueprints im HQ habe (bei mir derzeit 150), sprich mir wird nicht einmal der Kaufpreis abgezogen sondern bis zu 150x der Kaufpreis, jenachdem wie schnell die cue gecancelt wird...
Hab ihr ne Idee, wie ich aus der schleife wieder rauskomme, oder ne andere Lösung für die Abfrage, ob die Blueprint im HQ schon vorhanden sind?