Construction Set Skriptthread zum Construction Set

ne es sollte schon ein script sein da der spieler einen bestimmten gegenstand aufnehmen soll und dabei wird um ihn herum alles rot. Sprich ich muss ein Licht im cs machen das rot ist und das wiederum den Speiler i-wie hinzufügen damit er das rote licht ausstrahlt :)
 
Ich kann nicht garantieren,dass es funktioniert,aber:

Code:
scn NAME
short got

begin onadd player
set got to 1
<licht-REF>.enable
end

begin gamemode
<licht-REF>.moveto player
end

begin ondrop player
set got to 0
<licht-REF>.disable
end

Edit: Ich bin mir ziemlich sicher, dass das alles andere als performance-freundlich ist:?
 
Naja, da es einen Gamemode-Block hat,wird das Skript permanent ausgeführt und dann kann das Spiel ruckeln oder ähnliches...Schreib vllt lieber folgenden Gamemode-Block:

Code:
begin gamemode
if got==0
<licht-REF>.moveto player
endif
end
 
Wie wird dir das angezeigt oO? Message time gibt es nur für den "Message" Befehl und nicht bei "MesageBox". Und die Message time funktioniert nichtmal,wenn man sie eingibt xD
Edit: Also wenn das eine Fehlermeldung ist, dann schreib sie mal wörtlich ab

Edit2: @Meclaton:
Probier mal folgendes aus. Ich denke nämlich, dass man sowohl die Once-Variable als auch die TrigRef auf 0 setzen muss, damit es mehrmals funktioniert!

Code:
scn name
ref trigref
short once
 
begin ontriggeractor
if once==0
set trigref to getactionref
set once to 1
trigref.moveto <ziel-ref>
endif
end
 
begin onload
set trigref to 0
set once to 0
end

Hi Der_W@ldmeister, Script funzt, aber leider wie gesagt nur einmal.

Ich wollte eine TriggerBox als dauerhaften Durchgang bzw. move zu einem anderen Interior benutzen und dort einen zweiten setzen, um wieder zurückzukehren. Alle Gegner sollen mir folgen können.

Ist da was zu machen?

Gruss
Meclaton
 
Tür mit TriggerBox

So es funktioniert und theoretisch müssten auch die NPCs folgen (was sie aber im Moment noch nicht machen (Wahrscheinlich wird kein Weg erkannt und deshalb die Verfolgung abgebrochen.))

Ich habe set trigref to 0 und set once to 0 aus dem „begin onload“ Block herausgenommen, da ich annehme dass dies wie ein Game Mode Block ist. Dann hätte es ja einen andauernder Effekt.
Im Trigger Block am Ende eingefügt und es funktioniert ohne Probleme.

Vielen Dank noch einmal an Alle, die mir geholfen haben.

Gruss
Meclaton

Hier noch einmal das finale Ergebnis für alle anderen, die soetwas gebrauchen können:

Code:
scn name
 
ref trigref
short once
 
begin ontriggeractor
if once==0
set trigref to getactionref
set once to 1
trigref.moveto <ziel-ref>
endif
set trigref to 0
set once to 0
end
 
Hallo
Ich bräuchte einen Script mit dem man Melonen auf Gegner schleudern kann sie dann weit wegfliegen und sterben
Soll ein Fun Mod werden :lol:
 
In Midas spells gibt es glaube ich sowas, nur das die melonen nicht tödlich sind und der gegner nicht wegfliegt^^
Kann auch unlogisch aussehen,wie ein geschoss mega schnell xD
 
Schmiede

Art: Script zum schmieden
Author: Death-Lord
Schwierigkeit: Sehr Schwer
Author: Death-Lord
Schwierigkeit: Sehr Schwer
Einleitung/Anleitung:
Hey,
Ich möchte gerne einen meiner Scripts - so ziemlich mein kompliziertester - vorstellen:
Dieser Script eignet sich zum schmieden ;)
Achtung es ist ein sehr langer Script und ich werde ihn schritt für schritt erklären.
Code:
scn AmbossScript

short Eingabe                                                     ;0= messageboxen
                                                                    ;1= Abfrage
                                                                    ;2 =adden
                                                                    ;3 =von vorne
short Rssi                                                        ;*,1 = leichte
                                                                    ;*,2 = schwere
                                                                    ;4 = Rüstung

short schwert                                                    ;1 = Dolch
                                                                    ;2 = Einhand Schwert
                                                                    ;3 = Zweihandschwert
                                                                    ;4 = Schwert
short schwer                                                    ;1 = Axt
                                                                    ;2 = Hammer
                                                                    ;4 = Schwere Waffe
short button
short button2
short button3
short waffe
short rssiart                                                        ;1 = Stiefel
                                                                    ;2 = Helm
                                                                    ;5 = Brustpanzer
                                                                    ;3 = Schild
                                                                    ;6 = Beinschienen
                                                                    ;7 = Handschuhe
short doonce
                                                                    

Begin OnActivate
set doonce to 0
set schwer to 0
set schwert to 0
set rssi to 0
set waffe to 0
set rssiart to 0
if eingabe > 0
    set eingabe to 0
endif

        MessageBox "Was wollt ihr schmieden?" "Rüstung" "Waffe" "Nichts"
        set eingabe to 1
endif
endif
end

Begin GameMode

    if     eingabe == 51
        MessageBox "Welche Art Schwert wollt ihr schmieden?" "Dolch" "Einhand Schwert" "Zweihand Schwert" "Keine"
        set eingabe to 20
        return
    elseif eingabe == 52
        MessageBox "Welche Art Schwere Waffe wollt ihr schmieden?" "Axt" "Hammer" "Keine"
        set eingabe to 30
        return
    elseif eingabe == 46
        MessageBox "Welcher Teil der Rüstung soll geschmiedet werden?"  "Stiefel" "Helm" "Schlid" "Brustpanzer" "Beinschienen" "Handschuhe"
        set eingabe to 40
        set doonce to 25
        return
    elseif eingabe == 53
        MessageBox "Welche Art Waffe" "Schwert" "Schwere" "Keine"
        set eingabe to 50
        return
    endif

endif

if eingabe > 0
    if eingabe == 1
        set button to getbuttonpressed
        if button == 0                    ;Rüssi
            set rssi to 4
            set eingabe to 46
    return 
        elseif button == 1    ;Waffe

            set eingabe to 53
            return
        elseif button == 2 ;Nichts
            set eingabe to 0
PlaySound UIARMORWEAPONREPAIRbreak
            return
        endif
    endif
    
    if doonce == 25 && eingabe == 40
         ;Welcher teil der Rüstung
                set button to getself
                set button2 to getbuttonpressed    

        if button2 == 0            ;Stiefel
            set rssiart to 1
            set eingabe to 45
        elseif button2 == 1        ;Helm
            set rssiart to 2
            set eingabe to 45
        elseif button2 == 2        ;Schild
            set rssiart to 3
            set eingabe to 45
        elseif button2 == 3        ;Brustpanzer
            set rssiart to 5
            set eingabe to 45
        elseif button2 == 4        ;Beinschienen
            set rssiart to 6
            set eingabe to 45
        elseif button2 == 5        ;Handschuhe
            set rssiart to 7
            set eingabe to 45
        endif
        return
    endif 
    if eingabe == 45
    if rssiart == 1
        MessageBox "Leicht oder schwer?" "Leicht" "Schwer"
    elseif rssiart == 2
        MessageBox "Leicht oder schwer?" "Leicht" "Schwer"
    elseif rssiart == 3
        MessageBox "Leicht oder schwer?" "Leicht" "Schwer"
    elseif rssiart == 5
        MessageBox "Leicht oder schwer?" "Leicht" "Schwer"
    elseif rssiart == 6
        MessageBox "Leicht oder schwer?" "Leicht" "Schwer"
    elseif rssiart == 7
        MessageBox "Leicht oder schwer?" "Leicht" "Schwer"
    endif
    set eingabe to 9
    endif
    endif
    if eingabe == 9
    set doonce to 3
        if rssiart == 1
            set button3 to getbuttonpressed                                                            ;Stiefel
            if button3 == 0                                                    ;leicht
                set eingabe to 0
                PlaySound UIARMORWEAPONREPAIR
                if player.getav armorer <= 16
                    player.additem furboots 1
                elseif player.getav armorer >= 16 && player.getav armorer < 32
                    player.additem leatherboots 1
                elseif player.getav armorer >= 32 && player.getav armorer < 48
                    player.additem chainmailboots 1
                elseif player.getav armorer >= 48 && player.getav armorer < 64
                    player.additem mithrilboots 1
                elseif player.getav armorer >= 64 && player.getav armorer < 100
                    player.additem elvenboots 1
                elseif player.getav armorer >= 100
                    player.additem glassboots 1
                endif
                return
            elseif button3 == 1                                                ;Schwer
                set eingabe to 0
                if player.getav armorer <= 16
                    player.additem ironboots 1
                elseif player.getav armorer >= 16 && player.getav armorer < 32
                    player.additem steelboots 1
                elseif player.getav armorer >= 32 && player.getav armorer < 48
                    player.additem Dwarvenboots 1
                elseif player.getav armorer >= 48 && player.getav armorer < 64
                    player.additem orcishboots 1
                elseif player.getav armorer >= 64 && player.getav armorer < 100
                    player.additem ebonyboots 1
                elseif player.getav armorer >= 100
                    player.additem daedricboots 1
                endif    
                PlaySound UIARMORWEAPONREPAIR
                return            
            endif
        elseif rssiart == 2    
            set button to getbuttonpressed                                                ;Helm
            if button == 0                                                    ;leicht
                set eingabe to 0
                if player.getav armorer <= 16
                    player.additem furhelmet 1
                elseif player.getav armorer >= 16 && player.getav armorer < 32
                    player.additem leatherhelmet 1
                elseif player.getav armorer >= 32 && player.getav armorer < 48
                    player.additem chainmailhelmet 1
                elseif player.getav armorer >= 48 && player.getav armorer < 64
                    player.additem mithrilhelmet 1
                elseif player.getav armorer >= 64 && player.getav armorer < 100
                    player.additem elvenhelmet 1
                elseif player.getav armorer >= 100
                    player.additem glasshelmet 1
                endif
                PlaySound UIARMORWEAPONREPAIR
                return
            elseif button == 1                                                ;Schwer
                set eingabe to 0
                if player.getav armorer <= 16
                    player.additem ironhelmet 1
                elseif player.getav armorer >= 16 && player.getav armorer < 32
                    player.additem steelhelmet 1
                elseif player.getav armorer >= 32 && player.getav armorer < 48
                    player.additem Dwarvenhelmet 1
                elseif player.getav armorer >= 48 && player.getav armorer < 64
                    player.additem orcishhelmet 1
                elseif player.getav armorer >= 64 && player.getav armorer < 100
                    player.additem ebonyhelmet 1
                elseif player.getav armorer >= 100
                    player.additem daedrichelmet 1
                endif    
                PlaySound UIARMORWEAPONREPAIR
                return            
            endif        
        elseif rssiart == 3        
            set button to getbuttonpressed                                            ;Schild
            if button == 0                                                    ;Leicht
                set eingabe to 0
                if player.getav armorer <= 16
                    player.additem furshield 1
                elseif player.getav armorer >= 16 && player.getav armorer < 32
                    player.additem leathershield 1
                elseif player.getav armorer >= 32 && player.getav armorer < 48
                    player.additem chainmailshield 1
                elseif player.getav armorer >= 48 && player.getav armorer < 64
                    player.additem mithrilshield 1
                elseif player.getav armorer >= 64 && player.getav armorer < 100
                    player.additem elvenshield 1
                elseif player.getav armorer >= 100
                    player.additem glassshield 1
                endif
                return
                PlaySound UIARMORWEAPONREPAIR    
            elseif button == 1                                                ;Schwer
                set eingabe to 0
                if player.getav armorer <= 16
                    player.additem ironshield 1
                elseif player.getav armorer >= 16 && player.getav armorer < 32
                    player.additem steelshield 1
                elseif player.getav armorer >= 32 && player.getav armorer < 48
                    player.additem Dwarvenshield 1
                elseif player.getav armorer >= 48 && player.getav armorer < 64
                    player.additem orcishshield 1
                elseif player.getav armorer >= 64 && player.getav armorer < 100
                    player.additem ebonyshield 1
                elseif player.getav armorer >= 100
                    player.additem daedricshield 1
                endif    
                PlaySound UIARMORWEAPONREPAIR
                return
            endif    
        elseif rssiart == 5                        
            set button to getbuttonpressed                            ;brustpanzer
            if button == 0                                                    ;Leicht
                set eingabe to 0
                if player.getav armorer <= 16
                    player.additem furcuirass 1
                elseif player.getav armorer >= 16 && player.getav armorer < 32
                    player.additem leathercuirass 1
                elseif player.getav armorer >= 32 && player.getav armorer < 48
                    player.additem chainmailcuirass 1
                elseif player.getav armorer >= 48 && player.getav armorer < 64
                    player.additem mithrilcuirass 1
                elseif player.getav armorer >= 64 && player.getav armorer < 100
                    player.additem elvencuirass 1
                elseif player.getav armorer >= 100
                    player.additem glasscuirass 1
                endif
                PlaySound UIARMORWEAPONREPAIR
                return
            elseif button == 1                                                ;Schwer
                PlaySound UIARMORWEAPONREPAIR
                set eingabe to 0
                if player.getav armorer <= 16
                    player.additem ironcuirass 1
                elseif player.getav armorer >= 16 && player.getav armorer < 32
                    player.additem steelcuirass 1
                elseif player.getav armorer >= 32 && player.getav armorer < 48
                    player.additem Dwarvencuirass 1
                elseif player.getav armorer >= 48 && player.getav armorer < 64
                    player.additem orcishcuirass 1
                elseif player.getav armorer >= 64 && player.getav armorer < 100
                    player.additem ebonycuirass 1
                elseif player.getav armorer >= 100
                    player.additem daedriccuirass 1
                endif    
                return            
            endif                            
        elseif rssiart == 6                        
            set button to getbuttonpressed                            ;Beinschienen
            if button == 0                                                    ;Leicht
                set eingabe to 0
                PlaySound UIARMORWEAPONREPAIR
                if player.getav armorer <= 16
                    player.additem furgreaves 1
                elseif player.getav armorer >= 16 && player.getav armorer < 32
                    player.additem leathergreaves 1
                elseif player.getav armorer >= 32 && player.getav armorer < 48
                    player.additem chainmailgreaves 1
                elseif player.getav armorer >= 48 && player.getav armorer < 64
                    player.additem mithrilgreaves 1
                elseif player.getav armorer >= 64 && player.getav armorer < 100
                    player.additem elvengreaves 1
                elseif player.getav armorer == 100
                    player.additem glassgreaves 1
                endif
                return
            elseif button == 1                                                ;Schwer
                set eingabe to 0
                PlaySound UIARMORWEAPONREPAIR
                if player.getav armorer <= 16
                    player.additem irongreaves 1
                elseif player.getav armorer >= 16 && player.getav armorer < 32
                    player.additem steelgreaves 1
                elseif player.getav armorer >= 32 && player.getav armorer < 48
                    player.additem Dwarvengreaves 1
                elseif player.getav armorer >= 48 && player.getav armorer < 64
                    player.additem orcishgreaves 1
                elseif player.getav armorer >= 64 && player.getav armorer < 100
                    player.additem ebonygreaves 1
                elseif player.getav armorer >= 100
                    player.additem daedricgreaves 1
                endif                    
            return            
            endif    
        elseif rssiart == 7                        
            set button to getbuttonpressed                            ;Handschuhe
            if button == 0                                                    ;Leicht
                if player.getav armorer <= 16
                    player.additem furgauntlets 1
                elseif player.getav armorer >= 16 && player.getav armorer < 32
                    player.additem leathergauntlets 1
                elseif player.getav armorer >= 32 && player.getav armorer < 48
                    player.additem chainmailgauntlets 1
                elseif player.getav armorer >= 48 && player.getav armorer < 64
                    player.additem mithrilgauntlets 1
                elseif player.getav armorer >= 64 && player.getav armorer < 100
                    player.additem elvengauntlets 1
                elseif player.getav armorer >= 100
                    player.additem glassgauntlets 1
                endif
                set eingabe to 0
                PlaySound UIARMORWEAPONREPAIR
                return
            elseif button == 1                                                ;Schwer
                set eingabe to 0
                if player.getav armorer <= 16
                    player.additem irongauntlets 1
                elseif player.getav armorer >= 16 && player.getav armorer < 32
                    player.additem steelgauntlets 1
                elseif player.getav armorer >= 32 && player.getav armorer < 48
                    player.additem Dwarvengauntlets 1
                elseif player.getav armorer >= 48 && player.getav armorer < 64
                    player.additem orcishgauntlets 1
                elseif player.getav armorer >= 64 && player.getav armorer < 100
                    player.additem ebonygauntlets 1
                elseif player.getav armorer >= 100
                    player.additem daedricgauntlets 1
                endif                
                PlaySound UIARMORWEAPONREPAIR
                return            
            endif    
        endif
        
    endif
    if eingabe == 50 ;Waffe
        set button to getbuttonpressed
        if button == 0            ;Leicht
            set eingabe to 51
            return
        elseif button == 1         ;Schwer
            set eingabe to 52
            return
        elseif button == 2         ;Nichts
            set eingabe to 0
PlaySound UIARMORWEAPONREPAIRbreak
            return
        endif
    endif
    if eingabe == 30
        set button to getbuttonpressed
        if button == 0            ;Axt
            set schwer to 1
            set eingabe to 2
        elseif button == 1        ;Hammer
            set schwer to 2
            set eingabe to 2
        elseif button == 2        ;nichts
            set eingabe to 0
            PlaySound UIARMORWEAPONREPAIRbreak
            return
        endif
    endif
    if eingabe == 20
        set button to getbuttonpressed
        if button == 0            ;Dolch
            set schwert to 1
            set eingabe to 2
        elseif button == 1        ;einhand
            set schwert to 2
            set eingabe to 2
        elseif button == 2        ;zweihand
            set schwert to 3
            set eingabe to 2
        elseif button == 3        ;Nichts
            set eingabe to 0
            return
        endif
    endif

endif
if eingabe == 2
    if schwert > 0 && schwert != 4
        if schwert == 1                    ;add Dolch
            set eingabe to 3
            player.additem WeapSteelDagger 1
        elseif schwert == 2                    ;add einhand
            set eingabe to 3
            player.additem WeapSteellongsword 1
        elseif schwert == 3                    ;add 2hand
            set eingabe to 3
            player.additem WeapSteelclaymorefine 1
        endif
    Playsound UIArmorweaponRepair
    endif
    if schwer > 0 && schwer != 4
        if schwer  == 1                    ;add Axt
            player.additem WeapSteelWaraxe 1
            set eingabe to 3
        elseif schwer  == 2                    ;add Hammer
            player.additem WeapSteelWarhammer 1
            set eingabe to 3
        endif
    Playsound UIArmorweaponRepair
    endif
    if rssi > 0 && rssi != 4
        if rssi == 1                                ;add leichte rüssi
            set eingabe to 3
            ;player. additem
        elseif rssi == 2                                ;add schwere rüssi
            set eingabe to 3
            ;player. additem
        endif
    endif
        if rssiart == 1.1                         ;add Leicht Stiefel
            player.additem mithrilboots 1
            set eingabe to 3 
        elseif rssiart == 1,2                    ;add Schwer Stiefel
            player.additem steelboots 1
            set eingabe to 3
        elseif rssiart == 2,1                         ;add Leicht Helm
            player.additem mithrilhelmet 1
            set eingabe to 3 
        elseif rssiart == 2,2                    ;add Schwer Helm
            player.additem steelhelmet 1
            set eingabe to 3
        elseif rssiart == 3,1                         ;add Leicht Schild
            player.additem mithrilshield 1
            set eingabe to 3 
        elseif rssiart == 3,2                    ;add Schwer Schild
            player.additem steelshield 1
            set eingabe to 3
        elseif  rssiart == 5,1                         ;add Leicht Brust
            player.additem mithrilcuirass 1
            set eingabe to 3 
        elseif rssiart == 5,2                    ;add Schwer Brust
            player.additem steelcuirass 1
            set eingabe to 3
        elseif rssiart == 6,1                         ;add Leicht Beinschienen
            player.additem mithrilgreaves 1
            set eingabe to 3 
        elseif rssiart == 6,2                    ;add Schwer Beinschienen            
            player.additem steelgreaves 1
            set eingabe to 3
        elseif rssiart == 7,1                         ;add Leicht Handschuhe
            player.additem mithrilGauntlets 1
            set eingabe to 3 
        elseif rssiart == 7,2                    ;add Schwer Handschuhe
            player.additem steelgauntlets 1
            set eingabe to 3
        endif
    endif
return
endif
end
;Copyright 2010 by Death-Lord/schmidt@vielecheats.de Dieser Script darf   weiter verwendet werden
Fange ich mal mit dem oberen Teil an
Variablen:
Code:
scn AmbossScript

short Eingabe                                                     ;0= messageboxen
                                                                    ;1= Abfrage
                                                                    ;2 =adden
                                                                    ;3 =von vorne
short Rssi                                                        ;*,1 = leichte
                                                                    ;*,2 = schwere
                                                                    ;4 = Rüstung

short schwert                                                    ;1 = Dolch
                                                                    ;2 = Einhand Schwert
                                                                    ;3 = Zweihandschwert
                                                                    ;4 = Schwert
short schwer                                                    ;1 = Axt
                                                                    ;2 = Hammer
                                                                    ;4 = Schwere Waffe
short button
short button2
short button3
short waffe
short rssiart                                                        ;1 = Stiefel
                                                                    ;2 = Helm
                                                                    ;5 = Brustpanzer
                                                                    ;3 = Schild
                                                                    ;6 = Beinschienen
                                                                    ;7 = Handschuhe
short doonce
hier sind alle Variablen aufgelistet.
;1 = Stiefel
bedeutet das wenn rssiart auf 1 gesetzt wird am ende ein stiefel dabei herauskommen wird.

*,1 bedeutet folgendes:
* = rssiart
die 1 steht für leichte Rüstung das heißt beio unserem Beispiel
rssiart == 1
und rssi == 1
heißt Leichte Stiefel

Bei der Variable "schwer" frage ich was für eine Art schwere Waffe es ein soll also ob hammer Axt oder einfach eine Schwere Waffe

Eingabe bedeutet folgendes 0 ist wenn eine Messagebox erscheint
1 ist Was passiert nachdem auf dem Button gedrückt hat und 2 ist das der gegenstand hinzugefügt wird.
3 bedeutet nochmal alle Messageboxen von vorne

Activate Teil:
Code:
Begin OnActivate
set doonce to 0
set schwer to 0
set schwert to 0
set rssi to 0
set waffe to 0
set rssiart to 0
if eingabe > 0
    set eingabe to 0
endif

        MessageBox "Was wollt ihr schmieden?" "Rüstung" "Waffe" "Nichts"
        set eingabe to 1
endif
endif
end
Alle Variablen werden auf 0 gesetzt damit falls ich vorher meine Auswahl abgebrochen habe man wieder ganz von vorne Anfangen kann.

Dann kommt die erste Messagebox
Code:
        MessageBox "Was wollt ihr schmieden?" "Rüstung" "Waffe" "Nichts"
        set eingabe to 1
set Eingabe to 1 bedeutet einfach das er jetzt das gedrückte auswerten will.
Das wird gleich im GameMode Teil erklärt

GameMode Messageboxen:

Code:
 if     eingabe == 51
        MessageBox "Welche Art Schwert wollt ihr schmieden?" "Dolch" "Einhand Schwert" "Zweihand Schwert" "Keine"
        set eingabe to 20
        return
    elseif eingabe == 52
        MessageBox "Welche Art Schwere Waffe wollt ihr schmieden?" "Axt" "Hammer" "Keine"
        set eingabe to 30
        return
    elseif eingabe == 46
        MessageBox "Welcher Teil der Rüstung soll geschmiedet werden?"  "Stiefel" "Helm" "Schlid" "Brustpanzer" "Beinschienen" "Handschuhe"
        set eingabe to 40
        set doonce to 25
        return
    elseif eingabe == 53
        MessageBox "Welche Art Waffe" "Schwert" "Schwere" "Keine"
        set eingabe to 50
        return
    endif
Dieser teil ist immer noch relativ einfach.
Hier fragt uns die Messagebox welche Art wir Schmieden wollen. Falls wir Waffe gewählt haben setzt er die variable eingabe auf 53. jenach unsere nächsten Auswahl kommt daraufhin eine andere Messagebox.Im laufe des nächsten Teils wird die Variable "Eingabe" immer wieder erhöh.
Trozdem versuche ich es mal anhand unseres Beispiels (Leichte Stiefel).
In der ersten Messagebox haben wir "Rüstung" gedrückt. Im späteren Teil wird deswegen die Variable "eingabe" auf 52 gesetzt. Nun lässt uns die messagebox auswählen welchen Teil wir haben wollen. Wir wählen Stiefel.

Button Teil 1, was wollen wir schmieden:
Code:
if eingabe > 0
    if eingabe == 1
        set button to getbuttonpressed
        if button == 0                    ;Haben wir Rüssi gewählt?
            set rssi to 4
            set eingabe to 46
    return
Jetzt wird eingabe auf 46 gesetzt und rssi zu 4, das ist erstmal unwichtig.
Jetzt würde der Script wieder zum vorangegangen Teil kommen und die Messagebox zeigen die kommt wenn eingabe auf 46 ist.
Code:
        elseif button == 1    ;Waffe falls wir waffe gewählt haben

            set eingabe to 53
            return
Gleiche Erklärung wie oben.
Code:
        elseif button == 2 ;Nichts
            set eingabe to 0
PlaySound UIARMORWEAPONREPAIRbreak
            return
        endif
    endif
Nun gehts zuende es kommt keine Messagebox mehr da eingabe auf 0 gesetzt wurde.
Nun wird der Ton "PlaySound UIARMORWEAPONREPAIRbreak" gespielt das ist der wenn ein Reperaturhammer zu bruch geht. der Ton wird nur der schönheit wilen gespielt.

Button Teil 2, Welcher Teil der Rüstung und Leichte oder Schwere Rüssi:
Code:
    if doonce == 25 && eingabe == 40
         ;Welcher teil der Rüstung
                set button to getself
                set button2 to getbuttonpressed    

        if button2 == 0            ;Stiefel
            set rssiart to 1
            set eingabe to 45
        elseif button2 == 1        ;Helm
            set rssiart to 2
            set eingabe to 45
        elseif button2 == 2        ;Schild
            set rssiart to 3
            set eingabe to 45
        elseif button2 == 3        ;Brustpanzer
            set rssiart to 5
            set eingabe to 45
        elseif button2 == 4        ;Beinschienen
            set rssiart to 6
            set eingabe to 45
        elseif button2 == 5        ;Handschuhe
            set rssiart to 7
            set eingabe to 45
        endif
        return
    endif 
    if eingabe == 45
    if rssiart == 1
        MessageBox "Leicht oder schwer?" "Leicht" "Schwer"
    elseif rssiart == 2
        MessageBox "Leicht oder schwer?" "Leicht" "Schwer"
    elseif rssiart == 3
        MessageBox "Leicht oder schwer?" "Leicht" "Schwer"
    elseif rssiart == 5
        MessageBox "Leicht oder schwer?" "Leicht" "Schwer"
    elseif rssiart == 6
        MessageBox "Leicht oder schwer?" "Leicht" "Schwer"
    elseif rssiart == 7
        MessageBox "Leicht oder schwer?" "Leicht" "Schwer"
    endif
    set eingabe to 9
    endif
    endif
Fangen wir mit dem oberen Teil des Scripts an
Code:
    if doonce == 25 && eingabe == 40
         ;Welcher teil der Rüstung
                set button to getself
                set button2 to getbuttonpressed    

        if button2 == 0            ;Stiefel
            set rssiart to 1
            set eingabe to 45
        elseif button2 == 1        ;Helm
            set rssiart to 2
            set eingabe to 45
        elseif button2 == 2        ;Schild
            set rssiart to 3
            set eingabe to 45
        elseif button2 == 3        ;Brustpanzer
            set rssiart to 5
            set eingabe to 45
        elseif button2 == 4        ;Beinschienen
            set rssiart to 6
            set eingabe to 45
        elseif button2 == 5        ;Handschuhe
            set rssiart to 7
            set eingabe to 45
        endif
        return
    endif
Dieser teil erklärt sich denke ich von selbst. Rssiart entspricht dem Teil der Rüstung was wir ahben wollen sprich Stiefel also ist rssiart == 1
für den nächsten Schritt wird eingabe auf 45 gesetzt.
Dies ist notwendig das er uns fragen kann ob wir leichte oder schwere stiefel wollen

2.Teil
Code:
   if eingabe == 45
    if rssiart == 1
        MessageBox "Leicht oder schwer?" "Leicht" "Schwer"
    elseif rssiart == 2
        MessageBox "Leicht oder schwer?" "Leicht" "Schwer"
    elseif rssiart == 3
        MessageBox "Leicht oder schwer?" "Leicht" "Schwer"
    elseif rssiart == 5
        MessageBox "Leicht oder schwer?" "Leicht" "Schwer"
    elseif rssiart == 6
        MessageBox "Leicht oder schwer?" "Leicht" "Schwer"
    elseif rssiart == 7
        MessageBox "Leicht oder schwer?" "Leicht" "Schwer"
    endif
    set eingabe to 9
    endif
    endif
Am anfang fragt er ob eingabe auf 45 ist (Haben wir ja gerade eben drauf gesetzt)
dann fragt eruns welcher Teil der Rüstung es sein sollte. wir hatten ja Stiefel und wie wir wissen sind Stiefel = rssiart == 1
Dann wird "Eingabe" auf 9 gesetzt.



Die Nächsten Schritte müsst ihr euch selbst erschließen Ihr kennt nun die nätige Grundvorraussetzung und solltet in der Lage sein den nächsten teil zu verstehen.
Dies hat folgende Gründe:
1. Der Post würde zu unübersichtlich sein
2. Müsst ihr in der Lage sein diesen Script zu verstehen sonst könntet ihr nichts ändern.
3. ich müsste mich ständig wiederhohlen


Bei Fragen, Anmerkungen etc. stehe ich gerne bereit
Code:
    endif
    endif
    if eingabe == 9
    set doonce to 3
        if rssiart == 1                                                            ;Hier wird die Fähigkeit Schmieden abgefragt
            set button3 to getbuttonpressed                                                            ;Stiefel
            if button3 == 0                                                    ;leicht
                set eingabe to 0
                PlaySound UIARMORWEAPONREPAIR                ;dieser Sound ist das geglückte Reperieren via Hammer
                if player.getav armorer <= 16
                    player.additem furboots 1
                elseif player.getav armorer >= 16 && player.getav armorer < 32
                    player.additem leatherboots 1
                elseif player.getav armorer >= 32 && player.getav armorer < 48
                    player.additem chainmailboots 1
                elseif player.getav armorer >= 48 && player.getav armorer < 64
                    player.additem mithrilboots 1
                elseif player.getav armorer >= 64 && player.getav armorer < 100
                    player.additem elvenboots 1
                elseif player.getav armorer >= 100
                    player.additem glassboots 1
                endif
                return
            elseif button3 == 1                                                ;Schwer
                set eingabe to 0
                if player.getav armorer <= 16
                    player.additem ironboots 1
                elseif player.getav armorer >= 16 && player.getav armorer < 32
                    player.additem steelboots 1
                elseif player.getav armorer > 32 && player.getav armorer < 48
                    player.additem Dwarvenboots 1
                elseif player.getav armorer > 48 && player.getav armorer < 64
                    player.additem orcishboots 1
                elseif player.getav armorer > 64 && player.getav armorer < 100
                    player.additem ebonyboots 1
                elseif player.getav armorer == 100
                    player.additem daedricboots 1
                endif    
                PlaySound UIARMORWEAPONREPAIR
                return            
            endif
        elseif rssiart == 2    
            set button to getbuttonpressed                                                ;Helm
            if button == 0                                                    ;leicht
                set eingabe to 0
                if player.getav armorer <= 16
                    player.additem furhelmet 1
                elseif player.getav armorer > 16 && player.getav armorer < 32
                    player.additem leatherhelmet 1
                elseif player.getav armorer > 32 && player.getav armorer < 48
                    player.additem chainmailhelmet 1
                elseif player.getav armorer > 48 && player.getav armorer < 64
                    player.additem mithrilhelmet 1
                elseif player.getav armorer > 64 && player.getav armorer < 100
                    player.additem elvenhelmet 1
                elseif player.getav armorer == 100
                    player.additem glasshelmet 1
                endif
                PlaySound UIARMORWEAPONREPAIR
                return
            elseif button == 1                                                ;Schwer
                set eingabe to 0
                if player.getav armorer <= 16
                    player.additem ironhelmet 1
                elseif player.getav armorer > 16 && player.getav armorer < 32
                    player.additem steelhelmet 1
                elseif player.getav armorer > 32 && player.getav armorer < 48
                    player.additem Dwarvenhelmet 1
                elseif player.getav armorer > 48 && player.getav armorer < 64
                    player.additem orcishhelmet 1
                elseif player.getav armorer > 64 && player.getav armorer < 100
                    player.additem ebonyhelmet 1
                elseif player.getav armorer == 100
                    player.additem daedrichelmet 1
                endif    
                PlaySound UIARMORWEAPONREPAIR
                return            
            endif        
        elseif rssiart == 3        
            set button to getbuttonpressed                                            ;Schild
            if button == 0                                                    ;Leicht
                set eingabe to 0
                if player.getav armorer <= 16
                    player.additem furshield 1
                elseif player.getav armorer > 16 && player.getav armorer < 32
                    player.additem leathershield 1
                elseif player.getav armorer > 32 && player.getav armorer < 48
                    player.additem chainmailshield 1
                elseif player.getav armorer > 48 && player.getav armorer < 64
                    player.additem mithrilshield 1
                elseif player.getav armorer > 64 && player.getav armorer < 100
                    player.additem elvenshield 1
                elseif player.getav armorer == 100
                    player.additem glassshield 1
                endif
                return
                PlaySound UIARMORWEAPONREPAIR    
            elseif button == 1                                                ;Schwer
                set eingabe to 0
                if player.getav armorer <= 16
                    player.additem ironshield 1
                elseif player.getav armorer > 16 && player.getav armorer < 32
                    player.additem steelshield 1
                elseif player.getav armorer > 32 && player.getav armorer < 48
                    player.additem Dwarvenshield 1
                elseif player.getav armorer > 48 && player.getav armorer < 64
                    player.additem orcishshield 1
                elseif player.getav armorer > 64 && player.getav armorer < 100
                    player.additem ebonyshield 1
                elseif player.getav armorer == 100
                    player.additem daedricshield 1
                endif    
                PlaySound UIARMORWEAPONREPAIR
                return
            endif    
        elseif rssiart == 5                        
            set button to getbuttonpressed                            ;brustpanzer
            if button == 0                                                    ;Leicht
                set eingabe to 0
                if player.getav armorer <= 16
                    player.additem furcuirass 1
                elseif player.getav armorer > 16 && player.getav armorer < 32
                    player.additem leathercuirass 1
                elseif player.getav armorer > 32 && player.getav armorer < 48
                    player.additem chainmailcuirass 1
                elseif player.getav armorer > 48 && player.getav armorer < 64
                    player.additem mithrilcuirass 1
                elseif player.getav armorer > 64 && player.getav armorer < 100
                    player.additem elvencuirass 1
                elseif player.getav armorer == 100
                    player.additem glasscuirass 1
                endif
                PlaySound UIARMORWEAPONREPAIR
                return
            elseif button == 1                                                ;Schwer
                PlaySound UIARMORWEAPONREPAIR
                set eingabe to 0
                if player.getav armorer <= 16
                    player.additem ironcuirass 1
                elseif player.getav armorer > 16 && player.getav armorer < 32
                    player.additem steelcuirass 1
                elseif player.getav armorer > 32 && player.getav armorer < 48
                    player.additem Dwarvencuirass 1
                elseif player.getav armorer > 48 && player.getav armorer < 64
                    player.additem orcishcuirass 1
                elseif player.getav armorer > 64 && player.getav armorer < 100
                    player.additem ebonycuirass 1
                elseif player.getav armorer == 100
                    player.additem daedriccuirass 1
                endif    
                return            
            endif                            
        elseif rssiart == 6                        
            set button to getbuttonpressed                            ;Beinschienen
            if button == 0                                                    ;Leicht
                set eingabe to 0
                PlaySound UIARMORWEAPONREPAIR
                if player.getav armorer <= 16
                    player.additem furgreaves 1
                elseif player.getav armorer > 16 && player.getav armorer < 32
                    player.additem leathergreaves 1
                elseif player.getav armorer > 32 && player.getav armorer < 48
                    player.additem chainmailgreaves 1
                elseif player.getav armorer > 48 && player.getav armorer < 64
                    player.additem mithrilgreaves 1
                elseif player.getav armorer > 64 && player.getav armorer < 100
                    player.additem elvengreaves 1
                elseif player.getav armorer == 100
                    player.additem glassgreaves 1
                endif
                return
            elseif button == 1                                                ;Schwer
                set eingabe to 0
                PlaySound UIARMORWEAPONREPAIR
                if player.getav armorer <= 16
                    player.additem irongreaves 1
                elseif player.getav armorer > 16 && player.getav armorer < 32
                    player.additem steelgreaves 1
                elseif player.getav armorer > 32 && player.getav armorer < 48
                    player.additem Dwarvengreaves 1
                elseif player.getav armorer > 48 && player.getav armorer < 64
                    player.additem orcishgreaves 1
                elseif player.getav armorer > 64 && player.getav armorer < 100
                    player.additem ebonygreaves 1
                elseif player.getav armorer == 100
                    player.additem daedricgreaves 1
                endif                    
            return            
            endif    
        elseif rssiart == 7                        
            set button to getbuttonpressed                            ;Handschuhe
            if button == 0                                                    ;Leicht
                if player.getav armorer <= 16
                    player.additem furgauntlets 1
                elseif player.getav armorer > 16 && player.getav armorer < 32
                    player.additem leathergauntlets 1
                elseif player.getav armorer > 32 && player.getav armorer < 48
                    player.additem chainmailgauntlets 1
                elseif player.getav armorer > 48 && player.getav armorer < 64
                    player.additem mithrilgauntlets 1
                elseif player.getav armorer > 64 && player.getav armorer < 100
                    player.additem elvengauntlets 1
                elseif player.getav armorer == 100
                    player.additem glassgauntlets 1
                endif
                set eingabe to 0
                PlaySound UIARMORWEAPONREPAIR
                return
            elseif button == 1                                                ;Schwer
                set eingabe to 0
                if player.getav armorer <= 16
                    player.additem irongauntlets 1
                elseif player.getav armorer > 16 && player.getav armorer < 32
                    player.additem steelgauntlets 1
                elseif player.getav armorer > 32 && player.getav armorer < 48
                    player.additem Dwarvengauntlets 1
                elseif player.getav armorer > 48 && player.getav armorer < 64
                    player.additem orcishgauntlets 1
                elseif player.getav armorer > 64 && player.getav armorer < 100
                    player.additem ebonygauntlets 1
                elseif player.getav armorer == 100
                    player.additem daedricgauntlets 1
                endif                
                PlaySound UIARMORWEAPONREPAIR
                return            
            endif    
        endif
        
    endif
    if eingabe == 50 ;Waffe
        set button to getbuttonpressed
        if button == 0            ;Leicht
            set eingabe to 51
            return
        elseif button == 1         ;Schwer
            set eingabe to 52
            return
        elseif button == 2         ;Nichts
            set eingabe to 0
PlaySound UIARMORWEAPONREPAIRbreak
            return
        endif
    endif
    if eingabe == 30
        set button to getbuttonpressed
        if button == 0            ;Axt
            set schwer to 1
            set eingabe to 2
        elseif button == 1        ;Hammer
            set schwer to 2
            set eingabe to 2
        elseif button == 2        ;nichts
            set eingabe to 0
            PlaySound UIARMORWEAPONREPAIRbreak
            return
        endif
    endif
    if eingabe == 20
        set button to getbuttonpressed
        if button == 0            ;Dolch
            set schwert to 1
            set eingabe to 2
        elseif button == 1        ;einhand
            set schwert to 2
            set eingabe to 2
        elseif button == 2        ;zweihand
            set schwert to 3
            set eingabe to 2
        elseif button == 3        ;Nichts
            set eingabe to 0
            return
        endif
    endif

endif
if eingabe == 2
    if schwert > 0 && schwert != 4
        if schwert == 1                    ;add Dolch
            set eingabe to 3
            player.additem WeapSteelDagger 1
        elseif schwert == 2                    ;add einhand
            set eingabe to 3
            player.additem WeapSteellongsword 1
        elseif schwert == 3                    ;add 2hand
            set eingabe to 3
            player.additem WeapSteelclaymorefine 1
        endif
    Playsound UIArmorweaponRepair
    endif
    if schwer > 0 && schwer != 4
        if schwer  == 1                    ;add Axt
            player.additem WeapSteelWaraxe 1
            set eingabe to 3
        elseif schwer  == 2                    ;add Hammer
            player.additem WeapSteelWarhammer 1
            set eingabe to 3
        endif
    Playsound UIArmorweaponRepair
    endif
    if rssi > 0 && rssi != 4
        if rssi == 1                                ;add leichte rüssi
            set eingabe to 3
            ;player. additem
        elseif rssi == 2                                ;add schwere rüssi
            set eingabe to 3
            ;player. additem
        endif
    endif
        if rssiart == 1.1                         ;add Leicht Stiefel
            player.additem mithrilboots 1
            set eingabe to 3 
        elseif rssiart == 1,2                    ;add Schwer Stiefel
            player.additem steelboots 1
            set eingabe to 3
        elseif rssiart == 2,1                         ;add Leicht Helm
            player.additem mithrilhelmet 1
            set eingabe to 3 
        elseif rssiart == 2,2                    ;add Schwer Helm
            player.additem steelhelmet 1
            set eingabe to 3
        elseif rssiart == 3,1                         ;add Leicht Schild
            player.additem mithrilshield 1
            set eingabe to 3 
        elseif rssiart == 3,2                    ;add Schwer Schild
            player.additem steelshield 1
            set eingabe to 3
        elseif  rssiart == 5,1                         ;add Leicht Brust
            player.additem mithrilcuirass 1
            set eingabe to 3 
        elseif rssiart == 5,2                    ;add Schwer Brust
            player.additem steelcuirass 1
            set eingabe to 3
        elseif rssiart == 6,1                         ;add Leicht Beinschienen
            player.additem mithrilgreaves 1
            set eingabe to 3 
        elseif rssiart == 6,2                    ;add Schwer Beinschienen            
            player.additem steelgreaves 1
            set eingabe to 3
        elseif rssiart == 7,1                         ;add Leicht Handschuhe
            player.additem mithrilGauntlets 1
            set eingabe to 3 
        elseif rssiart == 7,2                    ;add Schwer Handschuhe
            player.additem steelgauntlets 1
            set eingabe to 3
        endif
    endif
return
endif
end
;Copyright 2010 by Death-Lord/schmidt@vielecheats.de Dieser Script darf  weiter verwendet werden, zumindest wenn mein name in den Ctedits steht!
Tipp: Er fragt u.a. wie hoch die schmiedefähigkeit ist
 
Zuletzt bearbeitet:
Code:
Schort OffTopic ;nein schort ist richtig
Begin onAngeber
Ganz gut, hätte ich auch so gemacht.
If, if, if ich auch so scripten drauf hätte wie du.:lol:
End
Begin RL
Donnerwetter was für ein Script und dann noch eine Ressource.
Vielen Dank:good:
 
Hi, ich hab dein Script nur mal kurz überflogen, dabei sind mir ein paar Kleinigkeiten aufgefallen, die man noch verbessern könnte, bzw. die das Script etwas kürzer/einfacher/übersichtlicher machen.

Code:
    if doonce == 25 && eingabe == 40
         ;Welcher teil der Rüstung
                set button to getself
                set button2 to getbuttonpressed    

        if button2 == 0            ;Stiefel
            set rssiart to 1
            set eingabe to 45
        elseif button2 == 1        ;Helm
            set rssiart to 2
            set eingabe to 45
        elseif button2 == 2        ;Schild
            set rssiart to 3
            set eingabe to 45
        elseif button2 == 3        ;Brustpanzer
            set rssiart to 5
            set eingabe to 45
        elseif button2 == 4        ;Beinschienen
            set rssiart to 6
            set eingabe to 45
        elseif button2 == 5        ;Handschuhe
            set rssiart to 7
            set eingabe to 45
        endif
        return
    endif
Statt eingabe immer wieder in jeder if-Abfrage auf 45 zu setzen, könntest du das auch einmalig am Ende erledigen:
Code:
    if doonce == 25 && eingabe == 40
         ;Welcher teil der Rüstung
                set button to getself
                set button2 to getbuttonpressed    

        if button2 == 0            ;Stiefel
            set rssiart to 1
        elseif button2 == 1        ;Helm
            set rssiart to 2
        elseif button2 == 2        ;Schild
            set rssiart to 3
        elseif button2 == 3        ;Brustpanzer
            set rssiart to 5
        elseif button2 == 4        ;Beinschienen
            set rssiart to 6
        elseif button2 == 5        ;Handschuhe
            set rssiart to 7
        endif
        set eingabe to 45
        return
    endif

Das taucht recht häufig bei dir auf, wenn du das stattdessen immer einmalig ans Ende des if-Block setzt, würdest du bestimmt 20% Codezeilen einsparen.
Bei dem 2. Codeschnipsel hier hast du das übrigens schon so gemacht ;)

Code:
   if eingabe == 45
    if rssiart == 1
        MessageBox "Leicht oder schwer?" "Leicht" "Schwer"
    elseif rssiart == 2
        MessageBox "Leicht oder schwer?" "Leicht" "Schwer"
    elseif rssiart == 3
        MessageBox "Leicht oder schwer?" "Leicht" "Schwer"
    elseif rssiart == 5
        MessageBox "Leicht oder schwer?" "Leicht" "Schwer"
    elseif rssiart == 6
        MessageBox "Leicht oder schwer?" "Leicht" "Schwer"
    elseif rssiart == 7
        MessageBox "Leicht oder schwer?" "Leicht" "Schwer"
    endif
    set eingabe to 9
   endif
Immer wieder die gleiche MessageBox? mit UND/ODER müsstest du das doch erheblich verkürzen können:

Code:
   if eingabe == 45 && (rssiart == 1 || rssiart == 2 || rssiart == 3 || rssiart == 5 || rssiart == 6 || rssiart == 7)
    MessageBox "Leicht oder schwer?" "Leicht" "Schwer"
    set eingabe to 9
   endif


Code:
                if player.getav armorer <= 16
                    player.additem furboots 1
                elseif player.getav armorer > 16 && player.getav armorer < 32
                    player.additem leatherboots 1
                elseif player.getav armorer > 32 && player.getav armorer < 48
                    player.additem chainmailboots 1
                elseif player.getav armorer > 48 && player.getav armorer < 64
                    player.additem mithrilboots 1
                elseif player.getav armorer > 64 && player.getav armorer < 100
                    player.additem elvenboots 1
                elseif player.getav armorer == 100
                    player.additem glassboots 1
                endif
Hier hat sich wohl ein kleiner Fehler eingeschlichen. Was passiert denn, wenn der Spieler einen Schmiedeskill von 32, 48 oder 64 hat, oder mittels einer Mod/Uncapper über 100 kommt?

Die vielen player.getav armorer Abfragen sehen auch etwas "umfangreich" aus, das könnte man evtl. auch noch etwas anders lösen und zusammenfassen (speziell wenn man noch weitere Rüstungs-/Waffenstufen einfügen möchte)

Vielleicht ungefähr so:

Code:
short art     ; 1=L.Rüstung, 2=Schw.Rüstung, 3=Waffe
short typ    ; 1=Stiefel/Dolch, 2=Helm/Schwert, 3=Brust/Axt, usw.

; MessageBoxen Abfragen usw.

if eingabe == 99    ; alle Eingaben abgeschlossen
 if player.getav armorer <= 16
  if art == 1
   if typ == 1
    player.additem furboots 1
   elseif typ == 2
    player.additem furhelm 1
   elseif typ == 3
    player.additem furcuirass 1
   endif
  elseif art == 2
   if typ == 1
    player.additem ironboots 1
   elseif typ == 2
    player.additem ironhelm 1
   elseif typ == 3
    player.additem ironcuirass 1
   endif
; usw.

Das wird zwar auch nicht unbedingt kürzer, aber man hätte dann immer die ganze Materialstufe übersichtlicher beieinander, und könnte durch ändern eines getav armorer Wertes recht schnell eine komplette Materialstufe einfügen.
 
  • Like
Reaktionen: death-lord