Allgemein
News
News-Archiv
Partner
Netzwerk
Banner
Header
Media
Downloads
Impressum

The Elder Scrolls
Arena
Daggerfall
Spin-offs
Romane
Jubiläum
Reviews
Welt von TES
Lore-Bibliothek
Namens-
generator

FRPGs

Elder Scrolls Online
Allgemein
Fraktionen
Charakter
Kargstein
Technik
Tamriel-
Manuskript

Media

Skyrim
Allgemein
Lösungen
Tipps & Tricks
Steam-Kniffe
Review
Media
Plugins & Mods

Oblivion
Allgemein
Lösungen
Tipps & Tricks
Technik
Charakter
Media
Plugins & Mods
Kompendium

Morrowind
Allgemein
Lösungen
Tipps & Tricks
Media
Plugins & Mods

Foren
The Elder Scrolls Online
Hilfe & Diskussion

Skyrim
Hilfe & Diskussion
Plugins & Mods

Ältere TES-Spiele
TES-Diskussion
Oblivion-Plugins
Morrowind-Plugins

Community
Taverne zum Shalk
Adventures of Vvardenfell
Tales of Tamriel
Ergebnis 1 bis 20 von 30

Thema: Auto-Anpassung einer Waffe

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Das Skript würde ohne Probleme funktionieren, wenn es nur ein Item davon gibt.
    Um das für mehrere Kompatibel zu machen muss man einfach nur die waffe-Variable weglassen (imho unnötig) und aus dem == nach dem GetItemCount ein >= machen (bzw. == 1 einfach weglassen <-- wirkt wie != 0).

    Sähe dann so aus:
    Code:
    scn derNameDesScripts
    
    short Count
    short Equipped
    
    Begin Gamemode
    	if ( Player.GetItemCount deinewaffe1 ) && ( Player.GetLevel >= 2 )
    		Message "Waffe gelevelt"
    		Message "Waffe gelevelt"
    ;Message davor und doppelt, um den MessageSpam von RemoveItem & AddItem ( & EquipItem) zu unterdrücken
    		set Equipped to Player.GetEquipped deinewaffe1
    		set Count to Player.GetItemCount deinewaffe1
    		Player.RemoveItem deinewaffe1 Count
    		Player.AddItem deinewaffe2 Count
    		if ( Equipped )
    			Player.EquipItem deinewaffe2
    		endif
    	elseif ( Player.GetItemCount deinewaffe2 ) && ( Player.GetLevel >= 4 )
    		Message "Waffe gelevelt"
    		Message "Waffe gelevelt"
    ;Message davor und doppelt, um den MessageSpam von RemoveItem & AddItem zu unterdrücken
    		set Equipped to Player.GetEquipped deinewaffe2
    		set Count to Player.GetItemCount deinewaffe2
    		Player.RemoveItem deinewaffe2 Count
    		Player.AddItem deinewaffe4 Count
    		if ( Equipped )
    			Player.EquipItem deinewaffe4
    		endif
    	elseif ( Player.GetItemCount deinewaffe4 ) && ( Player.GetLevel >= 6 )
    		Message "Waffe gelevelt"
    		Message "Waffe gelevelt"
    ;Message davor und doppelt, um den MessageSpam von RemoveItem & AddItem zu unterdrücken
    		set Equipped to Player.GetEquipped deinewaffe4
    		set Count to Player.GetItemCount deinewaffe4
    		Player.RemoveItem deinewaffe4 Count
    		Player.AddItem deinewaffe6 Count
    		if ( Equipped )
    			Player.EquipItem deinewaffe6
    		endif
    	elseif ( Player.GetItemCount deinewaffe6 ) && ( Player.GetLevel >= 9 )
    		Message "Waffe gelevelt"
    		Message "Waffe gelevelt"
    ;Message davor und doppelt, um den MessageSpam von RemoveItem & AddItem zu unterdrücken
    		set Equipped to Player.GetEquipped deinewaffe6
    		set Count to Player.GetItemCount deinewaffe6
    		Player.RemoveItem deinewaffe6 Count
    		Player.AddItem deinewaffe9 Count
    		if ( Equipped )
    			Player.EquipItem deinewaffe9
    		endif
    	elseif ( Player.GetItemCount deinewaffe9 ) && ( Player.GetLevel >= 12 )
    		Message "Waffe gelevelt"
    		Message "Waffe gelevelt"
    ;Message davor und doppelt, um den MessageSpam von RemoveItem & AddItem zu unterdrücken
    		set Equipped to Player.GetEquipped deinewaffe9
    		set Count to Player.GetItemCount deinewaffe9
    		Player.RemoveItem deinewaffe9 Count
    		Player.AddItem deinewaffe12 Count
    		if ( Equipped )
    			Player.EquipItem deinewaffe12
    		endif
    	elseif ( Player.GetItemCount deinewaffe12 ) && ( Player.GetLevel >= 16 )
    		Message "Waffe gelevelt"
    		Message "Waffe gelevelt"
    ;Message davor und doppelt, um den MessageSpam von RemoveItem & AddItem zu unterdrücken
    		set Equipped to Player.GetEquipped deinewaffe12
    		set Count to Player.GetItemCount deinewaffe12
    		Player.RemoveItem deinewaffe12 Count
    		Player.AddItem deinewaffe16 Count
    		if ( Equipped )
    			Player.EquipItem deinewaffe16
    		endif
    	elseif ( Player.GetItemCount deinewaffe16 ) && ( Player.GetLevel >= 20 )
    		Message "Waffe gelevelt"
    		Message "Waffe gelevelt"
    ;Message davor und doppelt, um den MessageSpam von RemoveItem & AddItem zu unterdrücken
    		set Equipped to Player.GetEquipped deinewaffe16
    		set Count to Player.GetItemCount deinewaffe16
    		Player.RemoveItem deinewaffe16 Count
    		Player.AddItem deinewaffe20 Count
    		if ( Equipped )
    			Player.EquipItem deinewaffe20
    		endif
    ;StopQuest nicht mehr, da ja evtl. noch andere Exemplare im Umlauf sind
    ;		StopQuest questName ;da kommt der name von dem Quest hin auf den du des Script gelegt hast
    	endif
    End

    PS:
    Ich habe noch eingefügt, dass die Waffe wieder neu ausgerüstet wird, sofern es die alte war.

  2. #2
    Danke, das hilft mir ja schon einen großen Schritt weiter. Wusste nicht dass das doch so kompliziert ist.
    Ihr versteht anscheinend sehr viel vom Skripten. Ich könnte durchaus Leute brauchen für ein kleineres Mod-Projekt.

    Naja, also ich brauch die Waffe sowieso erst ab Stufe 15 oder höher, da mir vorher Verzauberungen von Waffen nix bringen und das zu teuer wird mit reparieren, aufladen, etc.
    Da müsste ich dann mit Stufe 15 im Skript beginnen, oder?

    Aber brauch ich dazu eine Quest? Kann ich das erste Schwert nicht in ne Truhe pappen und dann irgendwo hinstellen?

    Ich hab ja im Forum gelesen, dass man das auch mit einem Zauberspruch machen kann. Wie würde das funktionieren? Einfach das Skript auf einen Zauber legen?
    Geändert von Reichi45 (07.03.2008 um 19:08 Uhr)

  3. #3
    1. Einfach mit stufe 15 beginnen und halt die bedingungen bei "player.getlevel" anpassen, die teile für die einzelnen versionen des schwerts können so viele sein wie du willst, nur im letzten sollte halt immer der stopquest-Befehl für die quest stehn

    ja die quest brauchste, damit des skript vom start an abgespielt würde, die Quest würde wenn du keine log-einträge erstellst ohnehin im spiel nie sichtbar werden. Es ginge natürlich auch, dass du des script auftteilst und die einzelnen teile auf jeweils eine version des schwerts legst. Des problem dabei wäre aber, falls du im spiel die waffe verzauberst das script von dem schwert gelöscht wird, wodurch es nicht mehr leveln würde.

    Ja du kannst irgendeine version mit der du halt starten willst in eine kiste legen.

    Des Grundgerüst eines Scripts für einen zauber wär des (nicht vergessen, Script type auf "Magic Effect" stellen):
    Code:
    scn zaubereffectSCRIPT
    
    begin scripteffectstart
    
    	if player.getitemcount dieIDderWaffe && player.getlevel >= xx ;da des level eintragen, bei der es gelevelt werden sollte
    		player.removeitem dieIDderWaffe 1
    		player.additem dieNachsteVersion 1
    		message "Waffe gelevelt"
    		message "Waffe gelevelt"
    	endif ;diesen if-block einfach so oft kopieren und werte und IDs ändern wie oft du die waffe auf eine neue version leveln willst
    
    end

  4. #4
    Bei mir kommt immer folgende Fehlermeldung, wenn ich das Skript speichern will:
    PHP-Code:
    scn Waffe

    short Count
    short Equipped

    Begin Gamemode
        
    if ( Player.GetItemCount 18Waffe ) && ( Player.GetLevel >= 18 )
            
    Message "Waffe gelevelt"
            
    Message "Waffe gelevelt"

            
    set Equipped to Player.GetEquipped 18Waffe
            set Count to Player
    .GetItemCount 18Waffe
            Player
    .RemoveItem 18Waffe Count
            Player
    .AddItem 23Waffe Count
            
    if ( Equipped )
                
    Player.EquipItem 23Waffe
            
    endif
        elseif ( 
    Player.GetItemCount 23Waffe ) && ( Player.GetLevel >= 23 )
            
    Message "Waffe gelevelt"
            
    Message "Waffe gelevelt"

            
    set Equipped to Player.GetEquipped 23Waffe
            set Count to Player
    .GetItemCount 23Waffe
            Player
    .RemoveItem 23Waffe Count
            Player
    .AddItem 28Waffe Count
            
    if ( Equipped )
                
    Player.EquipItem 28Waffe
            
    endif
        elseif ( 
    Player.GetItemCount 28Waffe ) && ( Player.GetLevel >= 28 )
            
    Message "Waffe gelevelt"
            
    Message "Waffe gelevelt"

            
    set Equipped to Player.GetEquipped 28Waffe
            set Count to Player
    .GetItemCount 28Waffe
            Player
    .RemoveItem 28Waffe Count
            Player
    .AddItem 33Waffe Count
            
    if ( Equipped )
                
    Player.EquipItem 33Waffe
            
    endif
        elseif ( 
    Player.GetItemCount 33Waffe ) && ( Player.GetLevel >= 33 )
            
    Message "Waffe gelevelt"
            
    Message "Waffe gelevelt"

            
    set Equipped to Player.GetEquipped 33Waffe
            set Count to Player
    .GetItemCount 33Waffe
            Player
    .RemoveItem 33Waffe Count
            Player
    .AddItem 38Waffe Count
            
    if ( Equipped )
                
    Player.EquipItem 38Waffe
            
    endif
        elseif ( 
    Player.GetItemCount 38Waffe ) && ( Player.GetLevel >= 38 )
            
    Message "Waffe gelevelt"
            
    Message "Waffe gelevelt"
     
            
    set Equipped to Player.GetEquipped 38Waffe
            set Count to Player
    .GetItemCount 38Waffe
            Player
    .RemoveItem 38Waffe Count
            Player
    .AddItem 43Waffe Count
            
    if ( Equipped )
                
    Player.EquipItem 43Waffe
            
    endif
        elseif ( 
    Player.GetItemCount 43Waffe ) && ( Player.GetLevel >= 43 )
            
    Message "Waffe gelevelt"
            
    Message "Waffe gelevelt"

            
    set Equipped to Player.GetEquipped 43Waffe
            set Count to Player
    .GetItemCount 43Waffe
            Player
    .RemoveItem 43Waffe Count
            Player
    .AddItem 48Waffe Count
            
    if ( Equipped )
                
    Player.EquipItem 48Waffe
            
    endif
        elseif ( 
    Player.GetItemCount 48Waffe ) && ( Player.GetLevel >= 48 )
            
    Message "Waffe gelevelt"
            
    Message "Waffe gelevelt"

            
    set Equipped to Player.GetEquipped 48Waffe
            set Count to Player
    .GetItemCount 48Waffe
                    
    endif
    StopQuest Waffe 
        
    endif
    End 
    Skript Waffe, line 81:
    "Item "Waffe" not found for parameter Quest."

    Weiß jemand weiter?

  5. #5
    Du musst erst eine Quest erstellen, der du die ID gibst, die du dann nach StopQuest einträgst.

    Da das Script schon Waffe heißt kann die Quest nicht auch so heißen.
    Das Script musst du auf jeden Fall einer Quest zuweisen, sonst ist das zwar in der *.esp, hat aber keine andere Auswirkungen.

    Ich würde dir allerdings empfehlen das StopQuest ganz wegzulassen, solltest du die Möglichkeit sehen, dass der Spieler mehr als eine Version der Waffe bekommt.

  6. #6
    Naja also bei einer neuen Quest kann ich ja nur den Namen eingeben. Wo kann ich denn die ID eingeben?

    Ja das Skript kann ich direkt neben dem Questnamen eingeben, ich denk also dass das richtig ist.

    Nö, der Spieler soll nicht mehr als 1 Version der Waffe bekommen.

  7. #7
    die id ist immer des was in der spalte, wo man die verschiedenen quests auswählen kann steht (die spalte die so net "EditorID" heißt), des was bei quest name steht ist für des spiel völlig unwichtig, ist nur der name der im spiel im questlog steht wenn man log-einträge schreibt, was für so eine quest völlig unnötig ist.
    id is des was man gleich dann eingeben muss wenn man in der quest-spalte rechtsklickt und auf new geht, nachträglich muss man auf die in der spalte angezeigte id klicken (einmal) und nach kurzem sollte die id so makiert werden, dass man sie ändern kann.

  8. #8
    Ja, das mit dem Skript hat jetz geklappt. Nur wenn ich das im Questskript auswählen will, steht dann immer noch "NONE" bei Skript.
    Ah, jetz gehts.

    Und jetz muss ich ein Schwert, je nach Level, in ne Truhe pappen und dann reinsetzen?

  9. #9
    Dann klickst du auf das NONE, dann sollte eigentlich ein Dropdown-Menü erscheinen wo du das Script dann auswählen kannst (wenn du die ersten Buchstaben des Scriptnamen eingibst sollte das auch ohne Probleme zu finden sein).

    Damit das in der Liste auftaucht musst du es allerdings als Questscript gespeichert haben (oben rechts im Scriptfenster das DropDown-Menü; da wo standartmäßig Object steht).

  10. #10
    Super, hat alles geklappt.

    Muss ich jetz das Schwert was meinem Level entspricht in die Truhe reinsetzen oder alle Schwerter?

  11. #11
    Eigentlich musst du da eine Leveled List reinsetzten, deren Funktionsweise hab ich aber noch nicht so richtig verstanden.


    Mit dem Script sollte es allerdings reichen wenn du nur das Schwächste Schwert in die Truhe legst.
    Währe bei dir (laut dem Script) 18Waffe.

  12. #12
    Hm, hab das schwächste in die Truhe gelegt, aber wenn ich das Teil aufnehme, wird nix gelevelt.
    Werds mal mit der 23er Version probieren, die passt ja zu meiner Stufe.

    Oder hast du vielleicht ne andere Idee? Bin grad etwas ratlos.

    Vielleicht passt ja beim Quest irgendwas net. Priorität oder so muss ich net einstellen? Und Name des Quests auch nicht? Hab nämlich nur ne leere Quest mit nem Skript.
    Wenns net geht, papp ich halt alle 5 Level das Schwert neu rein, kann man auch nix machen...
    Geändert von Reichi45 (12.03.2008 um 16:08 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •