Benutzerinformationen überspringen
Motto: Aufgeben ist es, was den Menschen tötet. Nur der Mensch, der sich weigert aufzugeben, hat sich das Recht verdient, auf dem glanzvollen Pfad der Menschheit zu wandeln.
Nur spezielle Items im Itemwindow während Kampf anzeigen
Ich möchte, dass im Itemwindow im Kampf nur Gegenstände mit bestimmten Attributen
angezeigt werden. Beispielsweise nur welche mit dem Attribut Nummer 17.
Ich benutze das RTAB und eine editierte Version des MoG Menüs. Ich schreibe das
jetzt dabei, weil ich nicht weiß, in welchem Skript sich die Klasse für das Itemwindow für den
Kampf verbirgt.
Könnte mir das jemand vielleicht zurecht skripten? Sobald ich weiß, wo die dazugehörige Klasse ist, würde
ich den Skript posten (falls das im RTAB oder MoG Menü sein sollte).
MfG
Mitsch93
-
Projekte -
Tutorials & Hilfreiches aus der Eventtechnik
[Tutorial] Skills, Stats und Bosse - So erstellt ihr einen guten Bosskampf
[Tutorial] Kampf - Unendlich Gegner erscheinen lassen
[Tutorial] Kämpfe, Klassen und Balancing
[Tutorial] Entwickler Talk: Skalierungen

NPC verfolgt Held durch Türen

Pokemon- Fangskript

Monstergruppenführer

Automatisches prioritätsgesteuertes Anordnen von Bildern

Doppelte Eventfunktionen auf Map

Objekte schieben & ziehen
Wenn es dort eins gibt, poste dieses, und sonst kann man einfach das standard Window Item überlagern [Hierfür einfach eine Kopie des Window_Item Scripts erstellen, Methoden die Du nicht überschreiben willst aus der Kopie entfernen und dann Änderungen an der Kopie vornehmen. :)].
Die Items im Inventar werden ja beim erzeugen des Fensters in einen Array @data gesteckt, dabei könntest Du filtern, ob das jeweilige Item im Elementset die Nummer 17 hat.
|
|
Ruby Quellcode |
1 |
mein_item.element_set.include?(17) #=> true/false |

Was ist das RGSS ? RGSS-Dokumentation auf Sc
Kyoshiros Makerkurs

Musik von Shabraxxx für euch
Guide zu den Audioformaten

Skripte von mir (Auswahl):
Atmungssystem
| Streichholzsystem
| Animiert durch Bücher blättern
Random : Marktsystem für Kardor
| Staterelated Battlergraphic
| Hinweis auf mögliche Aktionen
SelfSwitchExpirationtimer Skript - Gameplayerweiterung für Pilzesammler und Farmspiele
Meine Skripte werden gerade hier gesammelt.Benutzerinformationen überspringen
Motto: Aufgeben ist es, was den Menschen tötet. Nur der Mensch, der sich weigert aufzugeben, hat sich das Recht verdient, auf dem glanzvollen Pfad der Menschheit zu wandeln.
Dabei sei gesagt (falls das gerade hier zutrifft): Im MoG Menü werden die Items ja schon nach Kategorien sortiert (im Elementen gespeichert.
Aber im Kampf werden sie nicht sortiert).
Deshalb möchte ich ja im Kampf auch nur Items mit Element 17 angezeigt bekommen, weil nur das die Items sind, die für den Kampf relevant sind.
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
#================================================================= # EINGEFÜGT # ** Window_MenuItem #--------------------------------------------------------------------------- # Diese Klasse ersetzt Window_Item, Window_Weapon, Window_Armor im Menü. #=========================================================================== class Window_MenuItem < Window_Selectable # Objekt-Initialisierung: def initialize(element_tag) super(250, 50, 295, 350) @element_tag = element_tag refresh self.index = 0 end # Aktuelles Item ausgeben (Parameter wird nur intern verwendet) def item(index = self.index) return @data[index] end # Benutzbarkeit des akt. Items ausgeben (Parameter wird nur intern verwendet) def item_enabled?(index = self.index) item = self.item(index) return (item.is_a?(RPG::Item) and $game_party.item_can_use?(item.id)) end # Überprüfe auf Neuzeichnen nach mögl. Benutzen eines Items def refresh_on_item(item) index = @data.index(item) if index != nil old_data = @data collect_data if old_data == @data draw_item(index) else refresh end end end # Fensterinhalt komplett aktualisieren: def refresh collect_data @item_max = @data.size create_contents @item_max.times{ |i| draw_item(i) } end # Fensterinhalt neu erstellen: def create_contents contents.dispose if contents != nil self.contents = Bitmap.new(width - 32, [row_max * 32, 1].max) end # Benutzbare Items sammeln: def collect_data @data = [] ($data_items + $data_weapons + $data_armors).each do |item| @data.push(item) if item_valid?(item) end end # Bestimme ob ein Item gesammelt werden soll: def item_valid?(item) return (item_number(item) > 0 and item.element_set.include?(@element_tag)) end # Bestimme die Anzahl des Items im Inventar (negativ wenn Item = nil) def item_number(item) case item when RPG::Item return $game_party.item_number(item.id) when RPG::Weapon return $game_party.weapon_number(item.id) when RPG::Armor return $game_party.armor_number(item.id) when nil return -1 end end # Male das nte Item auf die Bildfläche: def draw_item(index) prepare_item_draw(index) r = item_rect(index) item = self.item(index) bitmap = RPG::Cache.icon(item.icon_name) opacity = item_enabled?(index) ? 255 : 128 self.contents.blt(r.x + 4, r.y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity) item = item(index) number = item_number(item) self.contents.draw_text(r.x + 32, r.y, r.width - 76, r.height, item.name) self.contents.draw_text(r.x + r.width - 44, r.y, 16, r.height, ":", 1) self.contents.draw_text(r.x + r.width - 28, r.y, 24, r.height, number.to_s, 2) end # Vorbereitungen für das Malen des nten Items: def prepare_item_draw(ind) self.contents.fill_rect(item_rect(ind), Color.new(0, 0, 0, 0)) self.contents.font.name = "Georgia" # <== Schriftart self.contents.font.color = item_enabled?(ind) ? normal_color : disabled_color end # Bestimmt das für das nte Item verfügbare Rechteck auf der Bildfläche: def item_rect(ind) cw = width / @column_max return Rect.new(ind % @column_max * cw, ind / @column_max * 32, cw - 32, 32) end # Aktualisiert das Hilfefenster: def update_help @help_window.set_text(self.item == nil ? "" : self.item.description) end end |
-
Projekte -
Tutorials & Hilfreiches aus der Eventtechnik
[Tutorial] Skills, Stats und Bosse - So erstellt ihr einen guten Bosskampf
[Tutorial] Kampf - Unendlich Gegner erscheinen lassen
[Tutorial] Kämpfe, Klassen und Balancing
[Tutorial] Entwickler Talk: Skalierungen

NPC verfolgt Held durch Türen

Pokemon- Fangskript

Monstergruppenführer

Automatisches prioritätsgesteuertes Anordnen von Bildern

Doppelte Eventfunktionen auf Map

Objekte schieben & ziehen
Falls Ja: Und dies im Kampf trotzdem nicht klappt,
versuch mal das MoG weiter unten zu platzieren. Möglicher weisse wird die window class von einem anderem Skript überschrieben, dabei wird vom obersten Skript zum untersten Skript gelesen. Ist also MoG das letzte skript, dass was daran bastelt, sollte die Funktionen auch erhalten bleiben. (-> konnte so vielen Kompatibilitätsproblemen umgehen =P )
Falls MoG diese Funktion aber gar nicht besitzt, dann habe ich dich falsch verstanden -> bitte ignorieren

Lg snoopi
Benutzerinformationen überspringen
Motto: Aufgeben ist es, was den Menschen tötet. Nur der Mensch, der sich weigert aufzugeben, hat sich das Recht verdient, auf dem glanzvollen Pfad der Menschheit zu wandeln.

Ich dachte mir, dass das eigentlich sehr einfach funktionieren würde.
Ich habe mal den Itemtruhenskript so verändert, dass Questgegenstände (mit einem Attribut versehen)
nicht in die Truhe abgelegt werden können. Dafür musste ich lediglich folgende Bedingung einfügen:
|
|
Ruby Quellcode |
1 |
if $data_items[@item.id].element_set.include?(21) then |
Ich dachte, dass geht so (oder so ähnlich) auch bei den Itemfenster im Kampf.
Also, dass nur Items mit einem gewissen Attribut angezeigt werden.
-
Projekte -
Tutorials & Hilfreiches aus der Eventtechnik
[Tutorial] Skills, Stats und Bosse - So erstellt ihr einen guten Bosskampf
[Tutorial] Kampf - Unendlich Gegner erscheinen lassen
[Tutorial] Kämpfe, Klassen und Balancing
[Tutorial] Entwickler Talk: Skalierungen

NPC verfolgt Held durch Türen

Pokemon- Fangskript

Monstergruppenführer

Automatisches prioritätsgesteuertes Anordnen von Bildern

Doppelte Eventfunktionen auf Map

Objekte schieben & ziehen
die Klasse aus dem geposteten Script dürfte sich nur auf das Menü auswirken.
Letztenendes funktioniert das Prinzip im Kampf aber genauso wie du schon beschrieben hast.
Im Kampf wird wie Playm schon erwähnte eine Instanz von Window_Item verwendet.
Das gleichnamige Script definiert dabei eine Methode refresh, die unter anderem für die Auswahl der Items zuständig ist:
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
class Window_Item < Window_Selectable #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh if self.contents != nil self.contents.dispose self.contents = nil end @data = [] # Add item for i in 1...$data_items.size if $game_party.item_number(i) > 0 @data.push($data_items[i]) # <<<<<----- Hier kann eine Bedingung angefügt werden! end end # Also add weapons and items if outside of battle unless $game_temp.in_battle for i in 1...$data_weapons.size if $game_party.weapon_number(i) > 0 @data.push($data_weapons[i]) end end for i in 1...$data_armors.size if $game_party.armor_number(i) > 0 @data.push($data_armors[i]) end end end # If item count is not 0, make a bit map and draw all items @item_max = @data.size if @item_max > 0 self.contents = Bitmap.new(width - 32, row_max * 32) for i in 0...@item_max draw_item(i) end end end end |
Benutzerinformationen überspringen
Motto: Aufgeben ist es, was den Menschen tötet. Nur der Mensch, der sich weigert aufzugeben, hat sich das Recht verdient, auf dem glanzvollen Pfad der Menschheit zu wandeln.
|
|
Ruby Quellcode |
1 2 3 |
if @data[$data_items[i]].element_set.include?(17) then @data.push($data_items[i]) end |
-
Projekte -
Tutorials & Hilfreiches aus der Eventtechnik
[Tutorial] Skills, Stats und Bosse - So erstellt ihr einen guten Bosskampf
[Tutorial] Kampf - Unendlich Gegner erscheinen lassen
[Tutorial] Kämpfe, Klassen und Balancing
[Tutorial] Entwickler Talk: Skalierungen

NPC verfolgt Held durch Türen

Pokemon- Fangskript

Monstergruppenführer

Automatisches prioritätsgesteuertes Anordnen von Bildern

Doppelte Eventfunktionen auf Map

Objekte schieben & ziehen
push fügt dem Array das jeweilige Item hinzu.
$data_items ist wiederum ein Array welches alle Items enthält die im Editor in der Database eingestellt wurden.
Das Filtern könnte dabei etwa so aussehen:
|
|
Ruby Quellcode |
1 2 3 |
if $data_items[i].element_set.include?(17) @data.push($data_items[i]) end |
Benutzerinformationen überspringen
Motto: Aufgeben ist es, was den Menschen tötet. Nur der Mensch, der sich weigert aufzugeben, hat sich das Recht verdient, auf dem glanzvollen Pfad der Menschheit zu wandeln.
cannot convert RPG::Item into Integer
-
Projekte -
Tutorials & Hilfreiches aus der Eventtechnik
[Tutorial] Skills, Stats und Bosse - So erstellt ihr einen guten Bosskampf
[Tutorial] Kampf - Unendlich Gegner erscheinen lassen
[Tutorial] Kämpfe, Klassen und Balancing
[Tutorial] Entwickler Talk: Skalierungen

NPC verfolgt Held durch Türen

Pokemon- Fangskript

Monstergruppenführer

Automatisches prioritätsgesteuertes Anordnen von Bildern

Doppelte Eventfunktionen auf Map

Objekte schieben & ziehen
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Mitsch93« (29. August 2012, 15:59)
Wenn es die selbe Meldung gewesen sein sollte und die Änderung im Testkampfmodus ausprobiert haben solltest:
der Testkampf verwendet nur dann die aktuellen Scripts wenn du das Projekt vorher abspeicherst.
Solltest du das nicht getan haben versuche es einfach nochmal, ansonsten wäre es evtl. hilfreich wenn du nochmal das gesammte Script posten könntest.
Benutzerinformationen überspringen
Motto: Aufgeben ist es, was den Menschen tötet. Nur der Mensch, der sich weigert aufzugeben, hat sich das Recht verdient, auf dem glanzvollen Pfad der Menschheit zu wandeln.
Klappt super, danke für die Hilfe
-
Projekte -
Tutorials & Hilfreiches aus der Eventtechnik
[Tutorial] Skills, Stats und Bosse - So erstellt ihr einen guten Bosskampf
[Tutorial] Kampf - Unendlich Gegner erscheinen lassen
[Tutorial] Kämpfe, Klassen und Balancing
[Tutorial] Entwickler Talk: Skalierungen

NPC verfolgt Held durch Türen

Pokemon- Fangskript

Monstergruppenführer

Automatisches prioritätsgesteuertes Anordnen von Bildern

Doppelte Eventfunktionen auf Map

Objekte schieben & ziehen
Ähnliche Themen
-
RGSS 1 Probleme & Talk »-
Bild aus Nicht-Picture-Ordner anzeigen
(7. August 2012, 01:53)
-
Skript-Anfragen »-
Nur 4 Items im Kampf
(14. Juni 2011, 18:58)
-
RGSS 1 Probleme & Talk »-
Items in Kategorien
(17. April 2005, 08:59)
-
RGSS 1 Probleme & Talk »-
BRAUCHE: Uhrzeit- und Datum Script
(4. April 2007, 08:48)
-
RGSS 1 Probleme & Talk »-
Frage zum AMS
(8. Januar 2006, 01:25)

