• Anmelden

1

Dienstag, 23. Dezember 2008, 00:24

Events unter Spieler

Hallo,
ich hab in meinem Game ein Schalter gemacht, denn man mit enter aktivieren kann. Nun soll ein Switch angehen, und 2 neue Events auf dem Wasser aktiviert werden, auf denen man laufen kann. Nun hab ich das Problem, das man beim XP nicht einstellen kann, ob das Event dadrüber, drunter ist.
Gibt es da vielleicht eine Lösung.
mfg. eugene

Jeff Thunderbolt

Shoutbox-Camper

Motto: Es ist alles eine Frage der Definition

  • Nachricht senden

2

Dienstag, 23. Dezember 2008, 09:58

Normalerweise kann man das für jedes Event einstellen, und zwar mit "Always on Top". Da ist das Event dann über allem darüber. Für dein Problem mit dem Weg auf dem Wasser, würde ich aber eher empfehlen den Weg schon reinzumappen, und danach Events drüberzulegen, die den Weg blockieren. Die Events werden dann durch ausschalten der Switch auch deaktiviert und der Weg ist frei. Ich hab dir mal ne Demo angehängt, wie ich das meine.

Project2.zip
  • HP :home:

    Bild
  • Forentreffen :foaf:

    BildBild

fette Neunzehn

Fahnenträger

Motto: Sättigung auf 255

  • Nachricht senden

3

Dienstag, 23. Dezember 2008, 11:50

Also du willst dass die events rein Optisch flach bleiben und unter dem spieler angezeigt werden, egal wo dieser sich befindet.
da kann ich dir nur Monstas einzigartiges unglaubliches Flat-Events Script empfehlen, damit lassen sich die events in der Z achse nach unten verschieben, alles was du machen musst ist das script einfügen und bei dem event das unter dem player sein soll als namen "Flach" eingeben.

Spoiler: Monstas Flat-Events script!

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
#========Flat-Events Script=======#
#===========by Monsta==========#
#=====Version 1.2=== 25.1.2007 ===#
#=======www.Monsta.aw3.de======#
 
# Benutzung:
# 1. Dieses Skript über Main einfügen
# 2. Sich einen oder mehrere Namen für die untersten Events aussuchen
# 3. Diesen Namen hier bei "FLAT_EVENTS" eintragen (Array)
# 4. Events im Spiel mit diesem Namen benennen
# 5. Sich freuen und mich in die Credits schreiben ;-)
 
# Anmerkung:
# Man kann diese Einstellung auch noch während des Spiels ändern.
# Einfach in ein Eventskript folgenden Code eingeben:
# $game_map.make_flat(*id*,*true / false*)
# Das "*id*" muss durch die ID des Events ersetzt werden.
# Für die Angabe der ID gibt es mehrere Möglichkeiten:
 
# 1. Nummer : Eine Einzelne ID die abgearbeitet wird. z.B.
# $game_map.make_flat(5)
 
# 2. Array: Alle ID's im Array werden abgearbeitet. z.B.
# $game_map.make_flat([1,3,5])
 
# 3. Range: Alle ID's im Rangebereich werden abgearbeitet. z.B.
# $game_map.make_flat(3..7)
 
# 4. String: Mit dem String "all" werden alle Events abgearbeitet. z.B.
# $game_map.make_flat("all")
 
# Der 2. Parameter gibt an, ob das Event Flach werden soll, oder ob
# es wieder in den normalzustand gemacht werden soll.
# Wenn der 2. Parameter wie in den obigen Beispielen nicht angegeben wird,
# wird er automatisch auf "true" gesetzt. Wenn man also die "Flache"
# Eigenschaft von einem Event entfernen will, muss der Aufruf einen
# 2. Parameter haben. z.B.
# $game_map.make_flat(5,false)
 
# Außerdem kann man den Events noch eigene Z Werte zuweisen. z.B.
# $game_map.make_z(*id*,*Z Wert*)
# Die ID Werte können genau wie die ID Werte bei der Flat Methode verwendet
# werden. z.B.
# $game_map.make_z(2..4,9999)
 
# Möchte man, dass das Event aber wieder eine normale Z Berechnung bekommt,
# muss man es so aufrufen:
# $game_map.make_z(2..4,nil)
 
class Game_Map
 attr_reader :map
 FLAT_EVENTS = ["Speicherpunkt", "Flach"]
 alias original_setup setup
 def setup(map_id)
  original_setup(map_id)
  $game_map.events.values.each {|ev|$game_map.events[ev.id].flat = 
  FLAT_EVENTS.include?($game_map.map.events[ev.id].name)}
 end
 def make_flat(id,flat=true)
   if id.is_a?(Numeric)
    $game_map.events[id].flat = flat
   elsif id.is_a?(Array) or id.is_a?(Range)
    id.each {|i| $game_map.events[i].flat = flat}
   elsif id.is_a?(String) and id.downcase == "all"
    $game_map.events.values.each {|i|$game_map.events[i.id].flat = flat}
  end    
 end
 def make_z(id,z)
   if id.is_a?(Numeric)
    $game_map.events[id].own_z = z
   elsif id.is_a?(Array) or id.is_a?(Range)
    id.each {|i| $game_map.events[i].own_z = z}
   elsif id.is_a?(String) and id.downcase == "all"
    $game_map.events.values.each {|i|$game_map.events[i.id].own_z = z}
  end
 end
end
 
class Game_Character
 attr_accessor :flat
 attr_accessor :own_z
 alias flat_original_screen_z screen_z
 def screen_z(height = 0)
  return @own_z if @own_z != nil
  return 0 if @flat
  flat_original_screen_z(height)
 end
end
zum Lesen den Text mit der Maus markieren
Bild

4

Dienstag, 23. Dezember 2008, 12:22

Danke an beide...
@Dark Thunder
Also, ich hab schon verstanden was du meinst. Ich makere schon läger... aber seit 1 Jahr mit dem VX, und da kann man auswählen, dass das Event unter dem Chara ist. Ich dachte, dass es beim XP auch möglich ist, aber hab ich mich wohl getäuscht. Naja trozdem Danke, vielleicht eignet sich deine Lösung, wenn das Skript nicht funzt, wegen den anderen Skripts.
@fette Neunzehn
Danke, ich werd es ausprobieren...

Social Bookmarks