Suche nen Script für Garnisonsübernahme

  • also ich hab nu schon stunden rumprobiert aber irgendwie missdeute ich entweder die Erklärungen zu den Befehlen oder setze falsche Vorraussetzungen. wie auch immer geb ich mich geschlagen und frage hier bevor ich noch abdrehe:


    Scenario: Neutrale Garnison mit Vicher die die Garnison nicht Verlassen können. Die Garnison soll sich dem ersten Helden der sie erreicht ohne Kampf übergeben und danach niemandem mehr.


    Mein Problem is nu halt das der Held das Ding erreicht, der Trigger dann nicht anspringt und der Held dann logischerweise gegen die garnison kämpft.


    Hab nu bisher mit dem triggertyp OBJECT_TOUCH_TRIGGER (der Capture trigger wäre ja auch erst nach nem kampf wenn ich das richtig sehe) rumgemurkst, des weiteren mit GetCurrentPlayer und logischerweise mit SetObjectOwner. Hab auch schon SetObjectEnable benutzt weil sich die beschreibung davon so gelesen hat als würde man ohne das mit dem Parameter false auf jeden Fall erst das Object auslösen, sprich in meinem Fall mit der Garnison kämpfen.


    Komme mit meinem C Logik denken und diesen Befehlen wie schon gesagt auf keinen Grünen Zweig. Wäre sehr nett wenn jemand der sich sowas schon mal Erfolgreich gestrickt hat mal sein Script zum besten gibt.

    Die Sense gehört zwar nicht zu den wichtigsten und bedeutsamsten Kriegswaffen, aber wer sich auf der falschen Seite einer Bauernrevolte befindet macht rasch die Erfahrung daß sie in geübten Händen eine Menge Unheil anrichten kann.

  • Kannste dein Script mal posten? Is sonst schwierig zu verstehen was du vorhast.

    "Da ich mich aber zuwenig damit auskenne, warte ich darauf, dass es einer von euch Freaks rausfindet und die Dummen (also mich) an seiner Erkenntnis Teilhaben lässt."

  • So etwas habe ich zwar noch nicht versucht zu bauen, aber eventuell tut es zur Not auch diese Lösung:


    Setz um die Garnison eine Region, sobald ein Held diese betritt, geht die Garnison per Script an den Spieler über und das Script wird deaktiviert.

  • Bugrider hab dazu so viele Versuche gemacht und alle wieder verworfen das ich dazu im Moment nix festes an scripting posten kann :(
    hab mir extra zum rumprobieren nu schon ne Karte gebastelt die nur aus ner garnison besteht mit ein paar truppen drin, einem helden von mir davor zum testen und nem eingesperrten CPU helden damit die Map nicht sofort beim starten Autowin sagt :)


    Es geht mir halt darum das ich eine Garnison (also son Tordurchgang) mit ein paar truppen befüllen will. dieser befüllte neutrale Torgang soll dann samt Truppen drin zu dem ersten Spieler überlaufen der in das ding reinrennt, und das ohne Kampf.


    im endeffektdreht sich mein gedankengang um die Funktion:
    SetObjectOwner("Garnisonscriptname",GetCurrentPlayer() )
    Dazu halt nen trigger mit triggertype:
    OBJECT_TOUCH_TRIGGER
    das soll der Triggertyp sein der angeht wenn man mit einem Object interagieren will. Müste wenn ich die erklärung richtig verstehe der richtige sein, da er eigentlich angehen müste bevor es zu ner Prügelei mit den Garnisonstruppen kommt. Hoffe das war nu durch das Ordnen etwas verständlicher als mein erster post.

    Die Sense gehört zwar nicht zu den wichtigsten und bedeutsamsten Kriegswaffen, aber wer sich auf der falschen Seite einer Bauernrevolte befindet macht rasch die Erfahrung daß sie in geübten Händen eine Menge Unheil anrichten kann.

  • schick mir doch mal deinen Versuch (Karte mit Garnison), dann seh ich mal, was geht;
    mail-Adresse hast du als PM

    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)

  • Korrekt, geht um dne H5 HoF Editor.

    Die Sense gehört zwar nicht zu den wichtigsten und bedeutsamsten Kriegswaffen, aber wer sich auf der falschen Seite einer Bauernrevolte befindet macht rasch die Erfahrung daß sie in geübten Händen eine Menge Unheil anrichten kann.

  • In der kampangne gabs das glaub ich. In irgendeiner Mission musste man mit Godrick genau das machen. Bei den Elfen? Da vieleicht mal gucken.

    "Da ich mich aber zuwenig damit auskenne, warte ich darauf, dass es einer von euch Freaks rausfindet und die Dummen (also mich) an seiner Erkenntnis Teilhaben lässt."

  • Bei mir funktioniert die Garnisionsübernahme mit diesem script

    Code
    function gibgrenzposten() 
    		SetObjectOwner("grenze", 1); --übergabe an Spieler 1
    		print("Grenze übergeben"); --für die Console
    		Trigger(REGION_ENTER_WITHOUT_STOP_TRIGGER, "gibgrenze", gibgrenzposten(heroname), nil); --auslöser abschalten
    end;
    Trigger(REGION_ENTER_WITHOUT_STOP_TRIGGER, "gibgrenze", "gibgrenzposten()");

    "Da ich mich aber zuwenig damit auskenne, warte ich darauf, dass es einer von euch Freaks rausfindet und die Dummen (also mich) an seiner Erkenntnis Teilhaben lässt."

  • brauchst doch nur ein
    win(void);
    in die Funktion (vor das end; ) reinschreiben; muÃt noch nichtmal den Spieler übergeben, da scripte ja nur im Single-Player funktionieren, also nur der eine menschliche Spieler so gewinnen kann;

    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)

  • Erstmal vielen dank für die Hilfe da kann ich ja bei meiner Kampange weiter machen :)


    Aber jetz noch ne Frage wo finde ich die Funktion wie du es du beschrieben hast??



    EDIT: Du meinst das ich die Funktion bei der Garnision eigeben muss oder?

    IM NAMEN VON KANE!!!!!!!!!!!



    LANG LEBE DIE BRUDERSCHAFT VON NOD

    2 Mal editiert, zuletzt von skeli-master ()

  • 1. im Editor (wie der Rest der script-Funktionen, die im Handbuch beschrieben sind)
    2. nein, in dem script, das Bugrider ein Stück weiter oben aufgeschrieben hat (jedenfalls, wenn du eine kampflose Garnisonsübergabe nur für den menschlichen Spieler haben willst)

    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)

  • Zitat

    Original von Andrean
    2. nein, in dem script, das Bugrider ein Stück weiter oben aufgeschrieben hat (jedenfalls, wenn du eine kampflose Garnisonsübergabe nur für den menschlichen Spieler haben willst)


    Was meinst du damit genau??? Ich kann ja eh jederzeit Monster in die Garnison tun?



    EDIT: Funkt leider nicht habe bei der Garnision jetz follgenden Script eingegeben


    function gibgrenzposten()
    SetObjectOwner("grenze", 1); --übergabe an Spieler 1
    print("Grenze übergeben"); --für die Console
    Trigger(REGION_ENTER_WITHOUT_STOP_TRIGGER, "gibgrenze", gibgrenzposten(heroname), nil); --auslöser abschalten
    win(void); end;
    Trigger(REGION_ENTER_WITHOUT_STOP_TRIGGER, "gibgrenze", "gibgrenzposten()");

    IM NAMEN VON KANE!!!!!!!!!!!



    LANG LEBE DIE BRUDERSCHAFT VON NOD

    Einmal editiert, zuletzt von skeli-master ()

  • das script gehört nicht zum Grenzposten, sondern zu den scripts der Karte; auÃerdem muÃt du dem Grenzposten noch seinen Namen geben (grenze), und eine Region davor definieren (gibgrenze)

    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)

  • Achherje so viele Sachen was ich da machen muss kannst du mir vl eine genaue Beschreibung machen (wo ich den Namen der Grenzposten usw eingeben muss machen??) Obwohl screen wäre mir etwas lieber aber eine gute Beschreibung würde auch reichen.Kenn mich beim Editor leider noch nicht so gut aus benutzen ihn erst seit Sonntag.



    EDIT: Habs nochmal probiert habe es diesmal in den Map Properties eingetragen(ist das schon mal ein richter Schritt???) hat aber nix geändert.

    IM NAMEN VON KANE!!!!!!!!!!!



    LANG LEBE DIE BRUDERSCHAFT VON NOD

    2 Mal editiert, zuletzt von skeli-master ()

  • wenn du noch gar keine Ahnung vom Editor hast, solltest du vielleicht erst mal das Handbuch zum Karteneditor - Praktische Einführung lesen, da sind zumindest die Grundzüge recht ordentlich erklärt (wo kommen die scripte hin; Unterschied Heldennamen/Scriptnamen der Helden etc.)
    der Rest steht eigentlich schon hier in dem thread (also Garnison erstellen, mit Truppen bestücken, Namen geben
    Region um Garnison erzeugen wie im Handbuch beschrieben, der Region den Namen geben;
    script bei den map properties zu den scripts reinschreiben (ist euch auch schon aufgefallen, daà bei dem Fenster map propertires steht ???)
    oder du wartest auf Gunnars Video ...

    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)

  • Also gar keine Ahnung habe ich dann auch wieder nicht kenn mich schon ein wenig aus aber das Handbuch ist leider auf Englisch obwohl es auch ein parr screen gibt.


    Aber ich stell hier am besten mal gezielte Fragen:


    1) Also Einheiten in die Garnison zu tun ist einmal am wenigsten Problem


    2) Muss ich da die Garnison makieren und dann leer drücken um dort den Namen einzugeben?


    3) Region um Garnison erzeugen?? Was meinst du damit ?? Wie muss und kann ich das seinstellen.



    4) Muss ich den script unter Map Propertires eingeben oder??


    Danke schon vorraus für deine Antwort

    IM NAMEN VON KANE!!!!!!!!!!!



    LANG LEBE DIE BRUDERSCHAFT VON NOD

  • hab mal zum Spaà Bugriders script ausprobiert (mit ein paar Ãnderungen - also eher wie in dem script, was er mal früher gepostet hatte);
    also: Primitiv-Karte: 2 Städte für 2 Spieler, jeweils mit Helden; Garnison, Region drumrum, Namen verteilt, script geschrieben (Trigger zum Betreten der Region), erste Zeile in der Funktion, die aufgerufen wird ist eine Ausschrift, daà der Trigger ausgelöst wird - also nichts, wo irgendetwas schief gehen könnte...


    Okay, Karte ausprobiert, Konsole aufgemacht, um die Ausschriften zu sehen - mit Helden in die Region gelaufen - was passiert:


    Trigger wird anscheinend ausgelöst, denn Heroes macht erst mal nicht weiter - Funktion wird aber auch nicht ausgeführt, sonst müÃte ja in der Konsole die entsprechende Ausschrift kommen - statt dessen schreibt mir Heroes meinen Speicher und die Auslagerungsdatei voll (Funktion im Trigger und Funktion bei der Definition stimmen definitiv überein); Abbruch ist nur möglich, wenn ich vorausschauenderweise schon vorher den Task-Manager aufgemacht habe, ansonsten hilft nur der Reset-Knopf :wall:


    Naja, ansonsten hatte ich schonmal mit früheren Versionen des Editors eine Testmap gebaut, kleine Karte, 2 Gegner, zum script testen - neuerdings (also mit HoF 2.1) bricht die Karte beim starten sofort ab, Fehlermeldung :Start player does not exist on map (ist aber früher gelaufen); ich hab 2 Spieler, einen dritten gibt es nicht, es gibt auch keine Objekte, die einem dritten Spieler gehören, die Spieler haben sowohl einen Starthelden, als auch einen Helden in der Stadt (hat aber keinen EinfluÃ), und alle Helden, die irgendwo im script vorkommen existieren ! :motz: also was will das Programm von mir ??? AuÃerdem ist es schon mit früheren Versionen gelaufen! Habt ihr auch solche seltsamen Effekte seit dem Update?
    Was auch gut kommt: selbe Map, hab irgendwas geändert will die Karte starten, geht aber nicht: was ist jetzt los???? Ah, rot UND blau haben beim Erstellen der Karte die Nummer 1 (also selbes Team? Team hab ich aber nie eingestellt, ist ja sinnlos bei einer Karte für 2 Spieler)...
    ich weià nicht, was dabei schief läuft, aber unter solchen Bedingungen können die sich den Editor sonst wohin schieben!
    P.S. einziger Mod ist immer noch der Laden-während des Kampfes-Knopf, der früher jedenfalls nie Probleme gemacht hat...

    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)