Construction Set Der Scriptthread

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

  1. Teemperor

    Teemperor Abenteurer

    falsch verstanden

    ich meinte nicht dass des auf nen NPC oder monster gehen soll sonder auf die waffe:p:p:p
    also wenn ich mit der waffe irgendjemanden (also egal wen) töte dann kommt an seiner stelle ein ahnengeist
     
  2. basswalker

    basswalker Reisender

    Danke Wulfgar, jetzt klappts :D

     
  3. Wulfgar

    Wulfgar Abenteurer

    Gern geschehen, Du solltest eventuell darauf hinweisen, daß der geneigte Spieler die Schriftrolle direkt und nicht im Inventar lesen sollte, nur zur Sicherheit. :)
     
    basswalker gefällt das.
  4. basswalker

    basswalker Reisender

    Was passiert denn, wenn man sie im Inventar liest?
     
  5. Wulfgar

    Wulfgar Abenteurer

    Es kann passieren, daß OnActivate nicht ausgelöst wird. OnActivate bezieht sich darauf, daß ein Objekt in der Spielewelt 'aktiviert' wird. Im Inventar muß OnPCEquip abgefragt werden, ich schau mal nach und sag Dir dann bescheid.


    So sollte beides klappen: (leider kann ich hier das Skript nicht einrücken)

    begin meineSchriftrolle

    short doOnce
    short OnPCEquip ;muß deklariert werden

    if ( doOnce == 0 )
    if ( OnActivate == 1 )
    Journal, "meinTagebuch", 10
    set doOnce to 1
    activate
    elseif ( OnPCEquip == 1 )
    Journal, "meinTagebuch", 10
    set doOnce to 1
    endif
    endif

    end
     
    Zuletzt bearbeitet: 25. April 2008
    basswalker gefällt das.
  6. basswalker

    basswalker Reisender

    was meinst du mit "muss deklariert werden"?
    Sorry, echt keine Ahnung von sowas.^^
     
  7. Wulfgar

    Wulfgar Abenteurer

    Entschuldige, das ist Scharr-Gong. Variablen werden 'deklariert', und im Gegensatz zu OnActivate, was bei aktivierbaren Objekten generell vorhanden ist, muß OnPCEquip jedesmal im Skript 'deklariert', also eingetragen werden. :)
     
  8. basswalker

    basswalker Reisender

    Ähm willst du mir damit einfach nur sagen dass die Zeile

    "short OnPCEquip"

    im script vorhanden sein muss? Wenn nicht versteh ich weiterhin nur Bahnhof :D
     
  9. Wulfgar

    Wulfgar Abenteurer

    Ja, das mein ich. Nochmal, Entschuldigung, das ist die Ohnmacht der Gewohnheit.
     
    basswalker gefällt das.
  10. basswalker

    basswalker Reisender

    Du brauchst dich nicht immer wieder dafür zu entschuldigen, mir geholfen zu haben.;)
     
  11. Teemperor

    Teemperor Abenteurer

    untot

    brauch jetzt nen script dass wenn jemand tot ist, er wieder volles leben hat und woanderester hin teleportet wird. Wie in Wow dass man dann wiederbelebt wird 8)

    habs mit dem script versucht gehr aber nicht irgendwie:huh::

    begin player_undead

    if ( ModCurrentHealth <= 1) ; wenn tot

    GetHealth ; heilt dich

    PositionCell 4367, 4400,13574, 0, "Unterwelt"

    endif

    end
     
    Zuletzt bearbeitet: 27. April 2008
  12. MrMuh

    MrMuh Abenteurer

    hi, hab ein scriptproblem (warum sonst würd ich wohl in diesen thread schreiben;) ). und zwar kommt immer, wenn ich in die nähe meines selbstgebastelten fahrstuhls komme, einmal ein "expression"-fehler und dann ein "right eval"-fehler.
    wäre nett, wenn mal jemand drüberschauen kann:
    Code:
    begin MMelevator
    
    short state ;0=up, 2,3=moving 4=down
    short done
    
    if ( done == 0 )
    	if ( getpccell, "Mundusal, Äußere Kammer" )
    		set done to 1
    		disablelevitation
    	endif
    elseif ( done == 1 )
    	if ( getpccell, "Mundusal, Äußere Kammer" )
    		set done to 0
    		enablelevitation
    	endif
    endif
    
    if ( state == 0 )
    	if ( getcollidingpc == 1 )
    		set state to 2
    		set timer to 33.3
    	endif
    elseif ( state == 2 )
    	if ( timer > 1 )
    		set timer to ( timer - getsecondspassed )
    		MM_dagoth_scaffold->moveworld, z, -100
    	elseif ( timer <= 0 )
    		set state to 4
    	elseif ( timer <= 1 )
    		set timer to ( timer - getsecondspassed )
    	endif
    elseif ( state == 3 )
    	if ( timer > 1 )
    		set timer to ( timer - getsecondspassed )
    		"MM_dagoth_scaffold"->moveworld, z, 100
    	elseif ( timer <= 0 )
    		set state to 0
    	elseif ( timer <= 1 )
    		set timer to ( timer - getsecondspassed )
    	endif
    elseif ( state == 4 )
    	if ( getcollidingpc == 1 )
    		set state to 3
    		set timer to 33.3
    	endif
    endif
    
    end
     
  13. Teemperor

    Teemperor Abenteurer

    wenn als erstes ein fenster kommt, wo in Großbuchstaben irgendwas mit EXPRESSION steht und dann ein wo right eval steht, des hab ich auch aber wei s nich worans liegt
    also bitte beantworten :p
     
  14. Wulfgar

    Wulfgar Abenteurer

    begin untoterNPC ; vermeide Bezeichnungen, die im Spiel enthalten sein KÖNNTEN

    if ( GetHealth <= 10) ; wenn 10 Trefferpunkte oder weniger übrig sind

    modCurrentHealth, 1000

    PositionCell 4367, 4400,13574, 0, "Unterwelt"

    endif

    end


    für den Spieler:


    begin untoterSpieler

    if ( player->GetHealth <= 10)

    player->modCurrentHealth, 1000

    PositionCell 4367, 4400,13574, 0, "Unterwelt"

    endif

    end


    Anmerkung: Benutze für Variablen und dergleichen nach Möglichkeit keine englischen Begriffe, das verhindert Konflikte mit anderen Mods und dem Spiel an sich.
     
  15. Pagan

    Pagan Reisender

    @Mr Muh: Ich glaub das darf nicht "getcollidingpc" heißen. Das muss glaube ich "getpcstanding" oder so heißen(weiß jetzt nicht mehr genau wie der Befehl heißt). Also, das es aktiviert wird sobald der NPC draufsteht.

    mfg Pagan
     
  16. Danke Dir dafür, das Script funzt soweit sehr gut. Was ist, wenn ich jetzt aber will, dass er bei mehreren Dingen mich angreift? Also es soll so aussehen, dass wenn ich die Rüstung, den Helm, das Schwert etc. nehme, mich anrgreift.

    Edit: Hat sich bereits erledigt. Weiß jetzt wie!
     
    Zuletzt von einem Moderator bearbeitet: 27. April 2008
  17. Teemperor

    Teemperor Abenteurer

    ???

    @ wulfgar: geht irgendwie immer noch nicht mein spieler fällt trotzdem noch um ohne teleportet oder wiederbelebt zu werden :eek:

    PS: hab des auf den Spieler gelegt (also den PC)
     
  18. MrMuh

    MrMuh Abenteurer

    @Pagan: hm, der clou war, die variable timer war nicht deklariert^^ aber ich hab jetzt auch getstandingpc genommen, reicht ja aus für diese anwendung.


    aber ich hab noch was. und zwar wird bei diesem script besagter gegenstand immer 2x platziert... warum? - frag ich mich...
    Code:
    begin MMashpillar
    
    float x
    float y
    float z
    float rot
    short OnPCDrop
    
    if ( GetDisabled )
    SetDelete 1
    endif
    
    if ( OnPCDrop )
    set x to GetPos x
    set y to GetPos y
    set z to Getpos z
    set rot to GetAngle z
    PlaceItem, MMFurn_6th_Ashpillar_act, x, y, z, rot
    disable
    endif
    
    end
     
  19. Assassin_456

    Assassin_456 Freund des Hauses

    abend

    ich brauche einen script (wer hätte es gedacht :ugly:)
    und zwar folgenden:
    sobald man mit einem bestimmten ring im inventar in die nähe eines x-markers kommt, sollen zwei hebel aktiviert werden und ein sound abgespielt werden.
    kann mir jemand bitte helfen?

    mfG assassin_456
     
  20. Silbermond

    Silbermond Neuankömmling

    Hi!
    Meinst Du mit aktiviert, dass die Hebel sichtbar gemacht werden?
    Dann dieses Script an den xMarker hängen und bei den beiden Hebeln das Kästchen "persistent" markieren:

    begin xmarkerscript
    short status

    if ( status == 0 )
    if ( player->getitemcount "ring" == 1 )
    if ( getdistance player > 512 )

    "hebel1"->disable
    "hebel2"->disable

    elseif ( getdistance player < 512 )
    "hebel1"->enable
    "hebel2"->enable
    playsound "soundx"
    set status to 1
    endif
    endif
    endif
    end
     
    Assassin_456 gefällt das.
  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