• Anmelden

1

Donnerstag, 24. September 2009, 17:42

Alle Gegenstände entfernen und später zurückerhalten

Hallo zusammen,

die Überschrift sagt eigentlich schon alles.
Ich bräuchte ein Skript, dass dem Spieler alle Gegenstände im Inventar wegnimmt, diese aber speichert und sie ihm später wiedergibt.
Der Spieler wird nämlich in meinem Spiel in einen Kerker geworfen und logischerweise werden ihm seine Waffen usw. abgenommen. Damit der Spieler aber nicht umsonst alles gesammelt hat, soll er alles später wiedererhalten. Ist das möglich?

PS: Ich weiß, es ginge mit Variablen, ich will aber gar nicht dran denken, wie viel Aufwand das wäre.

2

Donnerstag, 24. September 2009, 17:47

erstell nen 2.held.. mit selbem name und Level ( kannst ja via Event einstellen ) wie der normale held...

Im kerker spielt man nun held 2..

Sobald er sein zeug zurückbekommt, wechelste wieder auf held 1 ( der immernoch alle objekte hat ).
There was a Cave,
below a Silent's Grave.
Tunnels, extending far, running wide,
going deep into the World on the other Side.
Poor little Child, that was to brave,
died painfully deep down, in the Devil's Cave.

3

Donnerstag, 24. September 2009, 17:55

Das ist nicht so einfach, da ich kein reguläres Stufen-Aufstiegs-System benutze. Der Spieler kann aussuchen, welche Attribute er erhöhen will. Dann müsste ich auch das alles speichern, das ist auch ein ziemlicher Aufwand.

Ich habe es gerade mal ausprobiert. Wie stellst du dir das vor? Selbst wenn man alle Helden entfernt und neue hinzufügt, bleiben alle Gegenstände gleich.

4

Donnerstag, 24. September 2009, 18:15

ok.. hab garde selber festgestellt, das des so ned funzt. du müsstest dafür die ganze party durch eine andere ersetzen...
There was a Cave,
below a Silent's Grave.
Tunnels, extending far, running wide,
going deep into the World on the other Side.
Poor little Child, that was to brave,
died painfully deep down, in the Devil's Cave.

Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

5

Donnerstag, 24. September 2009, 19:58

Nur Items oder auch Waffen und Rüstungen?
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

6

Donnerstag, 24. September 2009, 20:17

Alles... Eigentlich müsste sogar das Geld weg, aber das kann ich ja auch einfach per Ereignis regeln.

effeff

Schlitzohr

Motto: Man muss nicht alles mit RGSS machen, Eventtechnik for the world!

  • Nachricht senden

7

Donnerstag, 24. September 2009, 20:33

Willkommen in der Welt der Spieleprogrammierung : ohne Aufwand passiert nichts ... leider -.-*

Also ich hab über Brainstorming zwei Arten von Lösungen , die eine wäre das ganze per Switchen und Variablen zu steuern..
erst speicherst du ab ob und wie viele Items in Besitz hast, löscht alle Items und später machst du den Prozess wieder erneut und fügst sie hinzu.

Wie gesagt wäre mit etwas arbeit verbunden.
___

Die zweite Lösung die mir in den Sinn gekommen wäre ist ganz einfach die das man garnicht mehr auf die Items zugreifen kann. Man kennt das ja durch den nicht verfügbaren Speicherbutton, vielleicht geht das ja auch mit dem Item-Knopf, das der dann einfach "disabled" wird, sodass man gar nicht mehr auf Items zugreifen könnte.

___

Was mir beim schreiben der zweiten Lösung eben in den Sinn gekommen ist, einfach ein zweites Item-Fenster zu erstellen , aber halt ohne Item-Inhalt. Bspw. man nimmt ein switch "gefängniss" und wenn der an ist öffnet der dann wenn man im Menü ist nicht das normale Itemfenster sonder ein Fake-Itemfenster , welches zwar genauso aussieht , aber keinen Inhalt hat... und wenn man wieder seine Sachen hat , so macht man einfach den switch aus und das normale Itemfenster lässt sich wieder starten (man kann das sicherlich im RGSS steuern)

Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

8

Donnerstag, 24. September 2009, 20:39

Ich hab sogar ne Demo gemacht :D
Mit item_futsch im Call Script werden alle Ausrüstungen abgelegt und dann alle Gegenstände und Gold weggenommen.
Mit item_da wird alles wieder zurückgetan (nicht ausgerüstet, da hatte ich keine Lust zu =)

Lycosa Itemweg.rar
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

9

Donnerstag, 24. September 2009, 20:57

Mir fehlen die Worte...

Wahnsinn!
Danke, Bahamut :) . Auf dich ist echt Verlass. Dickes Lob.

EDIT: Ich bin auf einen Fehler gestoßen, den ich mir nicht wirklich erklären kann: Wenn man zwischen dem Verlieren und Zurückerhalten der Gegenstände speichert und neu lädt, bekommt man die Gegenstände nicht mehr... Woran liegt das?

EDIT 2: Ich habe die Zeile

Quellcode

1
@@itemaufheb = []
gelöscht, jetzt funktioniert es. Vermutlich darf ich dem Spieler die Möglichkeit des Zurückerhaltens jetzt nicht öfter geben, sonst bekommt er alles doppelt, richtig?

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Lycosa« (24. September 2009, 22:38)


10

Montag, 28. September 2009, 17:12

Ich hab ein Problem!
Wenn der Spieler zwischen dem Entfernen und Erhalten speichert und neu lädt (oder irgendwie so), kann es sein, dass der Spieler seine Gegenstände nicht zurückerhält.
Ich hab den Fehler ein paar Mal erlebt, kann ihn aber leider nicht reproduzieren... Irgendeine Idee?

Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

11

Montag, 28. September 2009, 20:08

Verbessert :3
Spoiler

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
class Game_System
  attr_accessor :itemaufheb
 
  alias_method :update_initialize_nb_skript_dingens_lycosa, :initialize
  def initialize(*args)
	@itemaufheb = []
	update_initialize_nb_skript_dingens_lycosa(*args)
  end
end
 
class Interpreter
  def item_futsch
	# alle actors der party unausrüsten
	$game_party.actors.each {|i| (0..4).each {|type| i.equip(type, 0)}}
	# gold weg
	gold = $game_party.gold
	$game_party.lose_gold($game_party.gold)
	# items und ausrüstung weg
	item = $game_party.items
	weap = $game_party.weapons
	arm = $game_party.armors
	$game_party.items, $game_party.weapons, $game_party.armors = {}, {}, {}
	# alles merken
	$game_system.itemaufheb = [gold, item, weap, arm]
  end
 
  def item_da
	return if $game_system.itemaufheb.empty?
	gold, items, weapons, armors = @@itemaufheb
	$game_system.itemaufheb = []
	# gold
	$game_party.gain_gold(gold)
	# der rest
	for meth in ["items", "weapons", "armors"]
  	or_hash, new_hash = eval("$game_party.#{meth}"), eval("#{meth}")
  	for id in new_hash.keys
    	num = new_hash[id]
    	if or_hash.include?(id)
      	or_hash[id] += num
    	else
      	or_hash[id] = num
    	end
  	end
	end
  end
end
 
 
class Game_Party
  attr_accessor :items
  attr_accessor :weapons
  attr_accessor :armors
end
zum Lesen den Text mit der Maus markieren
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

Ähnliche Themen

Social Bookmarks