Fragen zur Scriptliste

  • Dieser Thread ist für Fragen zur Scriptliste gedacht.



    Also im Prinzip sind das zwei verschiedene Fragen. Der Unterschied zwischen dem REGION_ENTER_AND_STOP_TRIGGER und dem REGION_ENTER_WITHOUT_STOP_TRIGGER besteht glaube ich nur darin, dass der Held im ersten Fall in der Region automatisch stehenbleibt (also stoppt) und im zweiten Fall der Held normal weiterläuft. Allerdings habe ich bisher immer nur den ersten Trigger verwendet.


    Das Löschen des Triggers in der dritten Zeile kann man dann eigentlich in beiden Fällen weglassen, wenn man will, dass die Funktion immer wieder ausgeführt wird. Das STOP dürfte sich nur auf den Helden und nicht auf den Trigger beziehen.

    Die kausale Unabhängigkeit der Quarks von unserer Rede ist kein Merkmal der Realität (im Sinne des Gegenteils der Welt des Scheins), sondern sie ist einfach ein unbezweifelter Bestandteil unseres Redens über Quarks.
    Richard Rorty

  • Hi....



    könnte man das skript für "Neuen Helden einfügen" irgendwie so verändern, dass sich die armee dem random-spieler anpasst bzw. wäre es möglich, mehrere helden in die liste zu packen und in das skript ein bedingung einzu bauen, die abhängig vom volk des spielers nur einen der 8 helden aus der Reserve Heroes List auf die karte schickt?

  • (um meinen letzten post nicht tausendmal editieren zu müssen, schreibe ich lieber mal noch einen post)^^
    [1. ist die frage aus dem letzten post]


    ich wollte gerade das skript fürs hexenhaus anwenden (um nen skill festzulegen), aber da gibts i-wie n paar probs.....


    2) Zuerst muss man der Hexe wieder einen Namen geben. --> wie gibt man ihr denn einen namen???? (object properties funktioniert ja nicht - sonst bräuchte man auch kein skript dafür)


    3) ich nehme an das


    SetObjectEnabled('Huette',false);
    Trigger(OBJECT_TOUCH_TRIGGER, 'Huette', 'Hekate');


    auch noch zum skript dazu gehört. --> was macht das egtl.?


    4) du hast die witch hut "huette" genannt, aber in dem skript kommt auch "Hekate" vor. hat das nen inhaltlichen zusammenhang oder ist das informatik-latein? ^^"


    thx in adv.

  • Ich glaube, ich kann da helfen, aber leider habe ich noch nichts praktisch ausprobiert, ich probier mich gerade am Scriptschreiben. ;)


    1. Geht sicherlich, kann dir leider aber kein Beispiel geben, da ich keine Funktion kenne, die den Heldentyp rausgibt. Wenn man den hat, kann man mithilfe von Fallunterscheidungen unterschiedliche Armeen geben.


    2. Hast du das Hexenhaus angewählt, so sollte an der linken Seite eine Liste mit Properties sein (wenn nicht, kann man über View sich anzeigen lassen). Suche "Name" und gib in der zweiten Spalte (musst wahrscheinlich scrollen) der gleichen Zeile den gewünschten Namen an.


    3. Du vermutest richtig, im vorigen Beispiel des Magierturmes wurde es im letzten Absatz erklärt:


    Zitat

    Original von Der Mentat
    Mit SetObjectEnabled('Magierturm',false); erreicht man, dass die übliche Funktion einer School of Magic also die Wahl zwischen Zauberkraft und Wissen - abgeschaltet wird, so dass man sie mit Hilfe des nachfolgenden Triggers durch die Funktion Turm ersetzen kann.


    Für die Hexenhütte bedeuten das exakt:
    1. Zeile: Wenn Held Hütte betritt, passiert gar nix.
    2. Zeile: Wenn Held Hütte betritt, passiert [function "Hekate"].


    4. Wie du siehst, ist die letzte Zeile ein Funktionsaufruf mit folgender Syntax: Trigger(OBJECT_TOUCH_TRIGGER, [Objektname], [Funktion])
    Mit der "Huette" wurde einfach das Objekt auf der Karte definiert, die "Hekate" sagt schließlich HOMMV, was dann gemacht werden soll.



    Ich wäre an einer Broschüre interessiert, die sämtliche Funktionen aufweist, falls jemand so etwas bieten kann. :king: Wenn nicht, vielleicht weißt du welche, die Helden Skills verlernen lässt? :rolleyes:

  • Zitat

    Original von Th3TerminATor


    2. Hast du das Hexenhaus angewählt, so sollte an der linken Seite eine Liste mit Properties sein (wenn nicht, kann man über View sich anzeigen lassen). Suche "Name" und gib in der zweiten Spalte (musst wahrscheinlich scrollen) der gleichen Zeile den gewünschten Namen an.


    auswählen ok.... dann kriege ich 1 spalte mit properties und dort kann ich dann bei "name" mit links klicken und es passiert nichts.
    mit rechts klicken und ich kriege "copy" , "undo" , ....
    in der 2. spalte nen namen eintragen geht schlecht, wenn dort keine 2. spalte ist ):


    --> gibts für die noch nen extra aufruf?


    @broschüre: unter programme/ubisoft/heroes5/... findest du ne pdf-datei: HOMM5_IDs_for_Scripts
    dort sind auf seite 14ff. die IDs für die skills vermerkt.
    das verlernen eines skills ist imo nur durch den memory mentor mögl.

  • wahrscheinlich ist deine erste Spalte so breit, daß die 2. und 3. daneben deshalb nicht mehr sichtbar ist - kannste aber einstellen wie im Explorer, wenn du auf Details gehst

    lest Terry Pratchett(RIP) ... und Stephen King, John Katzenbach, Hohlbein, Frank Schätzing, Anne Rice, Andrzej Sapkowski, Anne Bishop, Bernhard Hennen, George R.R. Martin, Markus Heitz, ... (wurde ja langsam Zeit, dass was dazu kommt)

  • gut, das habe ich hingekriegt ^^


    bleibt noch frage 1, wenn jdm dazu was einfällt ^^


    und noch was kleines zu scripts:


    wenn ich über map properties ein script gemacht habe, mache ich dann das nächste script einfach darunter weiter?

  • Zitat

    Original von Searphita
    könnte man das skript für "Neuen Helden einfügen" irgendwie so verändern, dass sich die armee dem random-spieler anpasst bzw. wäre es möglich, mehrere helden in die liste zu packen und in das skript ein bedingung einzu bauen, die abhängig vom volk des spielers nur einen der 8 helden aus der Reserve Heroes List auf die karte schickt?


    Das einzige, was mir dazu einfällt, ist ein etwas aufwändigeres Script. Ich vermute, du hast in den Player Properties Generate Hero In Town eingestellt. Dann könntest du eine Variable HeldTyp erstellen sowie eine Region direkt vor dem Stadteingang. Mit einem REGION_ENTER_..._TRIGGER kannst du dann den Namen des Starthelden abfragen, und je nach Name die Variable anders setzen. Also ungefähr so:


    HeldTyp = 0;


    function Typ( heroname )
    if ( heroname == "Orrin" ) or ( heroname == "Nathaniel" ) or ( heroname == "Ving" ) or ( heroname == "Sarge" ) or ( heroname == "Mardigo" ) or ( heroname == "Maeve" ) or ( heroname == "Brem" ) or ( heroname == "Christian" ) then
    HeldTyp = 1;
    end;
    if heroname == []


    Trigger( REGION_ENTER_WITHOUT_STOP_TRIGGER, "rtyp", nil );
    end;
    end;
    Trigger( REGION_ENTER_AND_STOP_TRIGGER, "rtyp", "Typ" );


    Die obigen Heldennamen sind dabei die Scriptnamen der Ritter, also Dougal, Ellaine usw. Hat der Held den Scriptnamen eines Zauberers, setzt , man z.B. HeldTyp = 2


    Dann kannst du mit Fallunterscheidungen für die verschiedenen Werte von HeldTyp festlegen, welche Armee erscheinen soll.



    Zitat

    wenn ich über map properties ein script gemacht habe, mache ich dann das nächste script einfach darunter weiter?


    Mehrere Scripts kann man ganz normal untereinander schreiben. Es ist auch ganz nützlich sich mal ein paar fertige Scripts aus den Kampagnen anzuschauen. Damit man die mit dem Editor öffnen kann, muss man sie sich aber erst hier als h5m-Datei runterladen.

    Die kausale Unabhängigkeit der Quarks von unserer Rede ist kein Merkmal der Realität (im Sinne des Gegenteils der Welt des Scheins), sondern sie ist einfach ein unbezweifelter Bestandteil unseres Redens über Quarks.
    Richard Rorty

    Einmal editiert, zuletzt von Der Mentat ()

  • Zitat

    Original von Der Mentat


    Trigger( REGION_ENTER_WITHOUT_STOP_TRIGGER, "rtyp", nil );
    end;
    end;
    Trigger( REGION_ENTER_AND_STOP_TRIGGER, "rtyp", "Typ" );



    kannst du/jdm. bitte erklären was diese beiden zeilen genau machn?

  • das hast du etwas auseinandergerissen:


    ist die Definition einer Funktion


    Zitat

    Trigger( REGION_ENTER_AND_STOP_TRIGGER, "rtyp", "Typ" );


    ist ein Trigger, der diese Funktion aufruft; genauer gesagt, werden Trigger
    REGION_ENTER_AND_STOP_TRIGGER und Region "rtyp" mit der Funktion "Typ" verknüpft.
    und innerhalb der Funktion "Typ" werden mit

    Zitat

    Trigger( REGION_ENTER_WITHOUT_STOP_TRIGGER, "rtyp", nil );


    Trigger REGION_ENTER_AND_STOP_TRIGGER und Region "rtyp" statt dessen mit nil, also nichts mehr, verknüpft.

    lest Terry Pratchett(RIP) ... und Stephen King, John Katzenbach, Hohlbein, Frank Schätzing, Anne Rice, Andrzej Sapkowski, Anne Bishop, Bernhard Hennen, George R.R. Martin, Markus Heitz, ... (wurde ja langsam Zeit, dass was dazu kommt)

  • noch ne frage rund um trigger orte etc.... :)


    was muss man ins skript schr, wenn man ausdrücken will:


    wenn der held "HeroTyp1" ____dort____ ist (z.b. in einer stadt oder auf dem feld xy), dann ....


    thx in adv.^^

  • Ich würde einfach eine Region um die xy-Koordinate legen bzw. vor den Eingang der Stadt und das Ganze dann mit den Region-Triggern machen. Ich glaube, eine andere Möglichkeit gibts auch gar nicht. Höchstens wenn der Held die Stadt gerade erobert hat, könntest du auch noch den OBJECT_CAPTURE_TRIGGER verwenden.

    Die kausale Unabhängigkeit der Quarks von unserer Rede ist kein Merkmal der Realität (im Sinne des Gegenteils der Welt des Scheins), sondern sie ist einfach ein unbezweifelter Bestandteil unseres Redens über Quarks.
    Richard Rorty

  • Wenn der Held die Stadt betritt, kann man statt des REGION_ENTER_AND_STOP_TRIGGER (bzw. OBJECT_CAPTURE_TRIGGER) auch den OBJECT_TOUCH_TRIGGER (nach vorheriger Definition der Stadt natürlich) verwenden?

  • Stimmt natürlich! :dang: Den OBJECT_TOUCH_TRIGGER hab ich ganz vergessen, aber der würde sicher auch funktionieren.

    Die kausale Unabhängigkeit der Quarks von unserer Rede ist kein Merkmal der Realität (im Sinne des Gegenteils der Welt des Scheins), sondern sie ist einfach ein unbezweifelter Bestandteil unseres Redens über Quarks.
    Richard Rorty


  • Aus gegebenem Anlass dazu etwas, was hier vllt. besser bzw. genauer passt als in nen eigenen Thread zur ganzen Map:


    kann ich es irgendwie einstellen, dass nur ein bestimmter Held nicht in diese Region kann?
    Also angenommen Spieler 3 hat drei Helden, von denen sollen zwei per Einweg-Portal aus einer Höhle rauskommen, der letzte darf dies aber nicht tun.
    Kann ich dann um das Portal eine Region legen, und irgendwie genau diesen einen Helden blockieren?