Construction Set Der Scriptthread

Dieses Thema im Forum "[MW] Plugins und Mods" wurde erstellt von The Nici, 25. April 2006.

  1. Sword

    Sword Neuankömmling

    ok, das hab ich...
    (sogar gewusst;))

    so jetzt hab ich noch die beiden Probleme...

    Ich möchte natürlich, dass meine Monster im Wasser auch schwimmen...
    meinetwegen können die auch dumm dabei aussehen, aber wenn ein paar Ratten am Boden darauf warten, dass man sie umbringt ist das scho etwas daneben...
    bei der Schlammkrabbe hat es doch auch geklappt. die Schwimmt einem Nach...
    die Ratten bleiben aber alle am Boden...

    können die Monster nicht ein wenig weiter vom NPC wegkommen?
    ich weiß nicht so recht, wie der entsrechende Befehl, den ihr benutzt habt funktioniert, weil ich mir unter 1 128 0 wenig vorstellen kann ;)
     
  2. Killfetzer

    Killfetzer Super-Moderator Mitarbeiter

    Bei deinem 1. Problem kann ich dir nicht helfen. Ich habe in meinem Ananke-PI das gleiche Problem mit Horkern, obwohl die normalerweise schwimmen.

    Zu deinem 2. Problem:
    Ich zitiere mal aus meinem Scruptingtutorial:
    Ich denke den Rest dürftest du dann schon verstehen ;)
     
  3. Sword

    Sword Neuankömmling

    ok...
    jetzt sagt mir mal, wie ich das hinbekomme, dass mein Held auf der Wasseroberfläche und nicht auf dem Boden des Raumes aufkommt!
    ich meine, was anderes als z-kord = 0 fällt mir nicht ein um das zu machen...
    ansonsten mach ich halt so ne Plattform...

    übrigens:
    auf den ersten Blick scheint nun alles fertig zu sein...

    allerdings wird man nur nach dem ersten Sieg über die Monster zurück zum Hauptraum teleportiert und nach dem 2. Sieg im selben oder in einem anderen Schwierigkeitsgrad nicht mehr...

    Wenn man stirbt kommt man auch nicht mehr zurück sondern ist halt tot...

    und eigentlich hätte ich gerne, wenn die Monster wieder verschwinden, wenn man den Unterwasserraum verlässt.
    solte man nämlich den Raum durch den Tod verlassen und später nochmal dorthin gehen, dann sind die Monster vn vormals immernoch da...
    und die leichen der besiegten monster auch!
     
  4. Killfetzer

    Killfetzer Super-Moderator Mitarbeiter

    Du hast vielleicht Wünsche ;)

    Okay, dass mit dem Einmal-Teleport war noch ein Fehler von mir. Ändre den folgenden Absatz im Kontrollscript:
    if ( belohnung == 1 )
    set belohnung to 0
    StopScript my_kontroll_script
    endif

    Und verschiebe ihn ganz ans Ende des Scripts.

    Das mit den Leichen verschwinden, ginge eventuell mit einer Erweiterung des Monsterscripts. Dafür brauchst du aber Tribunal (und/oder Bloodmoon).
    Dazu musst du noch eine

    Ändere das Monsterscript so ab:
    begin my_monster_script

    if ( GetDisabled == 1 )
    SetDelete 1
    return
    endif

    if ( OnDeath == 1 )
    set my_kill_anzahl to my_kill_anzahl + 1
    if ( my_kill_anzahl == my_monster_anzahl )
    set my_kill_anzahl to 0
    set my_monster_anzahl to 0
    disable
    MessageBox "Ich habe alle Monster besiegt."
    endif
    endif

    if ( Player->OnDeath == 1 )
    Disable
    endif

    end


    Jetzt sollten die Leichen der Monster eigentlich verschwinden. Aber teste das besser noch einige Male (mit SetDelete kann man VIEL falsch machen!!!)

    EDIT: Ich hatte grad noch eine Idee wegen dem Unterwasserlaufen. Erstelle einen Zauber auf sich selbst mit Wasserwandeln 1 Sekunde und füge direkt vor dem Teleportbefehl noch (jeweils)
    Player->Cast "SpellID" Player
    ein. Dann läuft zumindest der Spieler auf dem Wasser und fängt richtig an zu schwimmen, wenn der Zauber aufhört zu wirken.
     
    Zuletzt bearbeitet: 19. August 2006
  5. Sword

    Sword Neuankömmling

    natürlich hab ich Wünsche!
    sonst wär ich doch nicht hier und könnte euch nerven ;)

    also zu dem Schreinscript...
    ich hab 3 überflüssige endifs weggemacht und sofort lief es besser ;)

    jetzt Probier ich mal deine Lösung aus...

    aber sagt mir doch nochmal, wie man das hinbekommt, dass der Spieler nicht stirbt.
    (DAAAAAAAAAAAAAAA war die Lösung ;))
    könnte man das so abändern, dass man nicht im kontrollscript sagt if (player->ondeath == 1 ) sonern if (player->health <= 1 ) ???
    dann würde der Spieler nicht sterben...
    und player->ressurrect ersetzt man dann mit player->modhealth 9 oder so...
    set ist ja blöd, weil... ihr wisst schon ;)

    PS:
    also dein vorschlag würde rein theorethisch bewirken, dass, wenn der SPieler stirbt, die Monster gelöscht werden...
    --> wenn einer mehrere Male Spielt liegen da überall leichen rum...
    -->>kann man im konstrollscript beim zurückbeamen auch gleichzeitig die Leichen beseitigen?
     
  6. Killfetzer

    Killfetzer Super-Moderator Mitarbeiter

    Das hatte ich auch in meiner Duellgilde versucht und musste feststellen, dass es nicht funktioniert, denn wenn stell dir mal vor, der Spieler hat noch 10 Lebenspunkte und du fügst ihm 21 Schadenspunkte zu, dann stirbt er ohne dass das modifizierte Leben geholfen hätte.

    Und nur so als Anmerkung:
    mit ModHealth veränderst du die maximale Lebenspunkteanzahl. Um die aktuelle Lebensenergie zu verändern, musst du ModCurrentHealth verwenden.


    Nein, dass ist nicht möglich, denn um die Monster verschwinden lassen zu können, müssen sie einmalig und persistent sein (sind deine Monster beides nicht) oder du musst ihre genaue Referenz kennen. Und letztere kannst du nicht erfahren. Deshalb musst du diesen Umweg im Monsterscript gehen. Sollte aber eigentlich genauso funktionieren.
    (Beachte bitte, dass auch im vorherigen Teil des Scripts noch eine Zeile eingefügt wurde, damit die Monster auch beim Sieg verschwinden.)
     
  7. Sword

    Sword Neuankömmling

    äh... was? meinst du eine Leerezile? und vorherig?

    das mit dem ondeath ist aber auch net so toll, weil der computer erst merkt, dass mein Held tot ist und mir anbietet das zuletzt gespeicherte Spiel zu laden und dann erst meinen Characktär wiederbelebt, was mir natürlich nichts mehr bringt....

    mir ist da was aufgefallen:

    zwischen dem Zeitpunkt, wo einem ein Schaden zugeführt wurde, der Größer als die restlichen lebenspunkte war und dem Zeitpunkt, wo man für tot erklährt wurde hat man doch null lebenspunkte... nicht -17 oder - sondern 0 (hab ich mal ausprobiert... man könnte auch den wert der aktuellen Lebenspunkte man in der Konsole abrufen, wenn der held noch taumelt...)
    also könnte man doch dann if ( player->currenthealth == 0 ) benutzen oder?
     
  8. Killfetzer

    Killfetzer Super-Moderator Mitarbeiter

    Stimmt, so ginge das.

    Aber der Befehl hierfür lautet wieder anders.

    Probiers mal mit dieser Abfrage:
    if ( GetPCCell "Terra, Monsterfarm" == 1 )
    if ( Palyer->GetHealthGetRatio <= 0.01 )
    set belohnung to 1
    Player->ModCurrentHealth 25
    Player->PositionCell 152 -2755 5665 0 "Terra, Monsterfarm"
    return
    endif
    endif



    Mit der habe alle Änderungen im Onsterscript noch einmal hervorgehoben:
    begin my_monster_script

    if ( GetDisabled == 1 )
    SetDelete 1
    return
    endif


    if ( OnDeath == 1 )
    set my_kill_anzahl to my_kill_anzahl + 1
    if ( my_kill_anzahl == my_monster_anzahl )
    set my_kill_anzahl to 0
    set my_monster_anzahl to 0
    disable
    MessageBox "Ich habe alle Monster besiegt."
    endif
    endif

    if ( Player->OnDeath == 1 )
    Disable
    endif


    end
     
  9. ReneMiner

    ReneMiner Bürger

    um den Helden auf die Wasseroberfläche hinabzubekommen kannst Du es ähnlich wie bei Tarhiel machen: Nehme einen von diesen blauen, unsichtbaren Collisions-Markern wie sie am Kaiserlichen Gefangenenschiff aussen dran sind und platziere den als Plattform in der gewünschten Höhe. Wenn Du dann einen NPC/eine Kreatur genau oberhalb dieser Plattform positionierst und die Anweisung gibst:

    "NPC_ID"-> Fall

    wird er auf der Plattform landen oder (falls keine Plattform da ist) auf dem nächsten Boden unter seinen Füssen. Damit das ohne Verletzung geht gibts die Möglichkeit entweder
    "NPC_ID"-> setAcrobatics 1000
    den NPC gegen den Aufprall zu schützen oder
    "KREATUR_ID"-> setFatigue 4096
    macht unverwundbar weil Kreaturen keine Acrobatics haben ;)
     
    Zuletzt bearbeitet: 19. August 2006
  10. Killfetzer

    Killfetzer Super-Moderator Mitarbeiter

    Nimm nicht einen der Klötze vom Gefängnisschiff, denn die sind mit einem Script belegt und verschwinden nach dem Spielstart.
    Erstelle dir einen neuen Activator mit dem Mesh EditorMarker_box_01.nif. Dann kannst du das so machen.
     
  11. Sword

    Sword Neuankömmling

    Ihr seit ja lustig drauf ;)
    da sagt ihr mir was, und dann wist ihr das noch nicht mal ;)

    naja, vielleicht mach ich das auch mal so, wenn ich ne längere Zeit hier war...
    Jetzt hab ich für diesen winzigen Teil des Plug-ins schon ne Woche gebraucht!!!
    oh man...

    und da kommen ja noch 4 andere Schreine. ;)

    aber zum Glück hab ich ja jetzt ein funktionierende Muster.
    wenn nicht, dann meld ich mich hier einfach nochmal... ;)


    äh... nun, noch ein Problem:

    wenn man stirbt, dann wird man zurückteleportiert, aber man ist trotzdem tot...
     
    Zuletzt bearbeitet: 19. August 2006
  12. Killfetzer

    Killfetzer Super-Moderator Mitarbeiter

    Setz doch mal die Werte hoch. Also sowohl den prozentualen Anzeil der Legensenergie, bei der der Spieler abgefangen wird (zB. 0.05 oder 0.1) und stelle auch mehr Lebensenergie wieder her (zB. 100 oder 150).

    Dann überlebt man es vielleicht eher. Aber es bleibt das Problem mit der Geschwindigkeit der Scriptabfrage, das ich oben schon beschrieben habe. Du musst nämlich den Tod mindestens einen Frame VOR dem Tod abfangen, damit du nicht stirbst.
     
  13. Sword

    Sword Neuankömmling

    gut... äh... und wie?
     
  14. Killfetzer

    Killfetzer Super-Moderator Mitarbeiter

    Ich denke, du wolltest das ganze verstehen ;)

    In der Abfrage ob der Spieler noch genügend Leben hat um weiterzukämpfen (im Kontrollscript):

    if ( GetPCCell "Terra, Monsterfarm" == 1 )
    if ( Palyer->GetHealthGetRatio <= 0.05 )
    set belohnung to 1
    Player->ModCurrentHealth 150
    Player->PositionCell 152 -2755 5665 0 "Terra, Monsterfarm"
    return
    endif
    endif
     
  15. Sword

    Sword Neuankömmling

    ja das hab ich ja...

    aber die sache mit den einem Frame vor dem anderen Script hab ich nicht so ganz verstanden....

    kann man eigentlich nicht den anderen Script für eine Zeit oder so ausschalten? oder so?
     
  16. Killfetzer

    Killfetzer Super-Moderator Mitarbeiter

    NEIN!!! Du kannst doch nicht das Mainscript ausschalten wollen?!!! :eek:

    Jetzt mal im Ernst: Du kannst und darfst es natürlich nicht ausschalten. Deshalb fragst du ja wann der Spieler noch am Leben ist, aber nur noch sehr wenig Lebenspunkte hat. Dies wird dann sozusagen als vorzeitiger Tod gedeutet.
     
    Rey-the-Master gefällt das.
  17. Sword

    Sword Neuankömmling

    ah... gut...
    (mal nebenbei: wo kann man lernen gilden zu erstellen?)

    ich denke ich probier den letzten Vorschlag deinerseits mal aus...
     
  18. Lichtkrieger

    Lichtkrieger Abenteurer

    Wegen den Tutorial glaube nicht das es eins gibt. Mein tutorial:
    1. Starte CS und lade dein Plugin.
    2. Gehe auf Character\ Faction und gehe auf "New".
    3. suche dir deine Favorietenb Fertigkeiten aus.
    4. Hiddom from PC darf nicht angeklieckt sein.
    5. Gib die Ränge ein der niedriegste Rang muss ganz oben stehen.
    6. In den 5 Weißen felder neben den Attriebuten wahl kommt in den Ersten und Zweiten die Zahl rein wie hoch mindestens die Attributsfertigkeit sein.
    7. Bei den 3ten und 4ten kommt die Zahl rein was für fertigkeiten der Player haben muss es wird z.B. im Spiel vorrausgesetzt zur Beförderung das du sagen wqir mal 2 fertigkeiten mit 50 und eine mit 55 haben musst.
    8. die lezte Spalte ist wichtig zur beförderung. bei den Niedrigsten Rang darf nur eine NULL(0) rein. Du kannst z.b die Zahlen von der Magiergilde übernehem also
    2. Rang 5
    3. Rang 10
    4. usw.

    9. Du trägst unter Reaction die Reacktion zu den anderen Gilden ein (Musst du nicht machen)
    10. Du drückst auf OK
    11. Du erstellt die gilde irgendwo auf der Karte mit den dazugehörigen NPC's.
    12. Du errstellts Quests bei jedem Questende Tragst du Folgende Zeiel ein
    Code:
    modPCFacRep, x, "Gilden-ID"
    x muss eine Zahl sein wie 1, 2 ,3 usw. ich weiss nicht ob auch negative Zahlen gehen.
    das ist dazu da wenn du also bei 5 bist kannst du einmal befördert werden dann brauchst du 10 usw.
    13.Bei den Dialog erstellst du bei Beförderung ein paar texte einmal wenn Rank requirement 1 ist dann hat der player nicht die nötigen fertigkeiten bei 2 hat er nicht den nötigen FacRep bei 3 hat er dann beides erfüllt bei 0 hat er nichts von beiden.
    14. bei jeder beförderung musst du
    Code:
    PCRaiseRank "Gilden-ID"
    stehen haben
    15. Bei der Gilden aufnahme musst du
    Code:
    PCJoinFaction "GildenID"
    16. wenn du Rausgeschmissen werden sollst.
    Code:
    PCExpell "GildenID"
    17. wenn du wieder aufgenohmmen werden sollst
    Code:
    PCClearExpell "GildenID"
    18. Habe ich noch was vergessen oder habe ich was undeutlich ausgedrückt frage noch mal
     
  19. Rey-the-Master

    Rey-the-Master Neuankömmling

    Also ich bräuchte nen script, dass Speere von der decke fallen und steckenbleiben, wenn man nen gegenstand (genauer kelch den ich gemodelt bekomme) andrück.
    Wär das möglich?
    anstatt speer könnten es auch steine sein... aber speer is besser
     
  20. The Nici

    The Nici Gebannter Benutzer

    Ich hab auch noch eine Scriptfrage:
    Ich kann bei einem Händler einen Spielzeugroboter kaufen. Dies ist dann ein Item. Wenn ich es aktivier erscheint ein kleiner Spielzeugroboter neben mir. Durch aktivieren dessen erhält man ein menü:
    Folgen
    Warten
    Einpacken
    Abbrechen
    Der Spielzeugroboter folgt einem. Wenn er stirbt kann man ihn durch erneuten aktivieren des Items herbeirufen.
    Wenn der Robot herbeigerufen ist, kann man ihn nicht nochmal herbeirufen. Erst wenn er eingepackt oder gestorben ist.
    Der Spielzeugroboter kämpft selber nicht.

    *ganzliebzuscripternguck* bidde! xD

    mfg Nici
     
  21. Werbung (Nur für Gäste)
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden