• Anmelden

Kitsu

Rekrut

  • »Kitsu« ist der Autor dieses Themas

Motto: Jeder Tag an dem es Kekse gibt ist ein guter Tag

  • Nachricht senden

1

Mittwoch, 8. August 2007, 19:09

Problem mit View Range

Ich möchte den folgenden Skript verwenden verstehe aber nicht wie man den aun auslösen kann

Spoiler

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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
#==============================================================================
#   View Range Script
#------------------------------------------------------------------------------
#	By: Near Fantastica
#	Date: 07/04/05
#==============================================================================
 
class View_Range
 #--------------------------------------------------------------------------
 # ? Range system works by sereching the area of a circle for the Player's xy
 #	The Veiw is set in each event and is the radius of the circle
 #	The Eaquation used is (Px-EX)^2 + (Py-Ey)^2 = radius^2
 #	If the Radius is less than or equal to the View the Player is inside the circle
 #--------------------------------------------------------------------------
 def initialize
   @playing_bgs = []
   @bgs = BGS.new
   @bgs.pitch = 100
   @event_id = 0
   @event_locial_switch = ""
   @view_range = 0
   @playerx = 0
   @playery = 0
   @eventx = 0
   @eventy = 0
   @event_direction = 0
 end
 #--------------------------------------------------------------------------
 # 	Max Sound Effect Range is 8 units DO NOT OVER LAP
 # 	or it will go into super lag mode you have been warned
 # 	This is because you are trying to play 2 different sound
 # 	effects and will cycles between them
 #
 # 	Note : This overrides the maps default sound effect
 #--------------------------------------------------------------------------
 def event_sound(event_id, bgs_name)
   @bgs.name = bgs_name
   @event_id = event_id
   @playerx = $game_player.x
   @playery = $game_player.y
   @eventx = $game_map.events[@event_id].x
   @eventy = $game_map.events[@event_id].y
   @event_direction = $game_map.events[@event_id].direction
   radius = (@playerx-@eventx)*(@playerx-@eventx) + (@playery-@eventy)*(@playery-@eventy)
   if radius > 64
 	if @playing_bgs[event_id] != nil
   	@playing_bgs[event_id] = nil
   	$game_system.bgs_fade(1)
   	return
 	end
   elsif radius <= 64 and radius > 49
 	if @playing_bgs[event_id] == nil
   	@bgs.volume = 30
   	@playing_bgs[event_id] = @bgs
   	$game_system.bgs_play(@bgs)
   	return
 	end
 	@bgs.volume = 30
 	if @bgs.volume != @playing_bgs[event_id].volume or
     	@bgs.name != @playing_bgs[event_id].name
   	@playing_bgs[event_id] = @bgs
   	$game_system.bgs_play(@bgs)
   	return
 	end
   elsif radius <= 49 and radius > 36
 	@bgs.volume = 40
 	@playing_bgs[event_id] = @bgs
 	$game_system.bgs_play(@bgs)
 	return
   elsif radius <= 36 and radius > 25
 	@bgs.volume = 50
 	@playing_bgs[event_id] = @bgs
 	$game_system.bgs_play(@bgs)
 	return
   elsif radius <= 25 and radius > 16
 	@bgs.volume = 60
 	@playing_bgs[event_id] = @bgs
 	$game_system.bgs_play(@bgs)
 	return
   elsif radius <= 16 and radius > 9
 	@bgs.volume = 70
 	@playing_bgs[event_id] = @bgs
 	$game_system.bgs_play(@bgs)
 	return
   elsif radius <= 9 and radius > 4
 	@bgs.volume = 80
 	@playing_bgs[event_id] = @bgs
 	$game_system.bgs_play(@bgs)
 	return
   elsif radius <= 4 and radius > 1
 	@bgs.volume = 90
 	@playing_bgs[event_id] = @bgs
 	$game_system.bgs_play(@bgs)
 	return
   elsif radius = 1
 	@bgs.volume = 100
 	@playing_bgs[event_id] = @bgs
 	$game_system.bgs_play(@bgs)
 	return
   end
 end
 #--------------------------------------------------------------------------
 def enemies_view(event_id, view_range, els)
   @event_id = event_id
   @view_range = view_range
   @event_locial_switch = els
   @playerx = $game_player.x
   @playery = $game_player.y
   @eventx = $game_map.events[@event_id].x
   @eventy = $game_map.events[@event_id].y
   @event_direction = $game_map.events[@event_id].direction
   if @event_direction == 2
 	if @playery >= @eventy
   	radius = (@playerx-@eventx)*(@playerx-@eventx) + (@playery-@eventy)*(@playery-@eventy)
   	if radius <= @view_range
     	key=[$game_map.map_id, @event_id, @event_locial_switch]
     	$game_self_switches[key] = true
     	$game_map.need_refresh = true
   	end
 	end
   end
   if @event_direction == 4
 	if @playerx <= @eventx
   	radius = (@playerx-@eventx)*(@playerx-@eventx) + (@playery-@eventy)*(@playery-@eventy)
   	if radius <= @view_range
     	key=[$game_map.map_id, @event_id, @event_locial_switch]
     	$game_self_switches[key] = true
     	$game_map.need_refresh = true
   	end
 	end
   end
   if @event_direction == 6
 	if @playerx >= @eventx
   	radius = (@playerx-@eventx)*(@playerx-@eventx) + (@playery-@eventy)*(@playery-@eventy)
   	if radius <= @view_range
     	key=[$game_map.map_id, @event_id, @event_locial_switch]
     	$game_self_switches[key] = true
     	$game_map.need_refresh = true
   	end
 	end
   end
   if @event_direction == 8
 	if @playery <= @eventy
   	radius = (@playerx-@eventx)*(@playerx-@eventx) + (@playery-@eventy)*(@playery-@eventy)
   	if radius <= @view_range
     	key=[$game_map.map_id, @event_id, @event_locial_switch]
     	$game_self_switches[key] = true
     	$game_map.need_refresh = true
   	end
 	end
   end
 end
end
#======================================================
class Scene_Title
 #--------------------------------------------------------------------------
 alias vr_scene_title_update update
 #--------------------------------------------------------------------------
def update
  $view_range = View_Range.new
  vr_scene_title_update
end
end
#======================================================
class Game_System
   attr_accessor :playing_bgs
end
#======================================================
class BGS
 #--------------------------------------------------------------------------
 attr_accessor :name
 attr_accessor :volume
 attr_accessor :pitch
 #--------------------------------------------------------------------------
 def initialize
   @name
   @volume
   @pitch
 end
end
#======================================================
class Game_Map
 #--------------------------------------------------------------------------
 attr_accessor :map
end
zum Lesen den Text mit der Maus markieren

Kann mir wer helfen?
~Danke im Vorraus
~Kitsu

mein Leben fängt jetzt endlich richtig an - und es wird wunderschön :3
möchte wer Kekse? ^-^

2

Mittwoch, 8. August 2007, 20:07

Mach ein paralleles Event und für dort einen Eventscript Code aus:

Quellcode

1
$view_range.event_sound(event_id, bgs_name)


z.B.

Quellcode

1
2
$view_range.event_sound(
1, "001-Wind01")


Mfg Monsta

Kitsu

Rekrut

  • »Kitsu« ist der Autor dieses Themas

Motto: Jeder Tag an dem es Kekse gibt ist ein guter Tag

  • Nachricht senden

3

Mittwoch, 8. August 2007, 20:18

1- kann man auch das gleiche event nehmen? (also in 1 ist der skript und auf 1 bezeiht sich der skript)
wenn nein 2- muss ich für jedes event ein eigenes "auslöse-event" machen?
~Kitsu

mein Leben fängt jetzt endlich richtig an - und es wird wunderschön :3
möchte wer Kekse? ^-^

4

Mittwoch, 8. August 2007, 20:24

1. Dafür gibt es die Variabel @event_id:

Quellcode

1
2
$view_range.event_sound(
@event_id, "001-Wind01")


2. Du kannst auch alle Event Sounds in ein Event packen und parallel laufen lassen:

Quellcode

1
2
3
4
5
6
$view_range.event_sound(
@event_id, "001-Wind01")
$view_range.event_sound(
1, "001-Wind01")
$view_range.event_sound(
2, "001-Wind01")


(Hab ich deine Frage jetzt richtig verstanden?!?)

Mfg Monsta

5

Mittwoch, 8. August 2007, 20:35



Kleine Korrektur, Monsta

Quellcode

1
$view_range.event_sound(Range, bgs_name)


Bist dir da Sicher? ;) :P

Schau dir das gepostete Skript mal genau an:

Quellcode

1
def event_sound(event_id, bgs_name)

6

Mittwoch, 8. August 2007, 20:38

Du hattest recht, Monsta, hab mir das Script nochmal angeschaut (und meinen Beitrag gelöscht). Aber in V1 konnte man glaub ich noch die Range angeben.

Das ist denk ich, auch noch wichtig:

# Max Sound Effect Range is 8 units DO NOT OVER LAP
# or it will go into super lag mode you have been warned
# This is because you are trying to play 2 different sound
# effects and will cycles between them

also aufpassen, dass die Events sich nicht überlappen.

Aber bei den Enemys gibt ne View_Range.

Quellcode

1
2
3
4
def enemies_view(event_id, view_range, els)
   @event_id = event_id
   @view_range = view_range
   @event_locial_switch = els
Rabu

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Rabu« (8. August 2007, 20:44)


Kitsu

Rekrut

  • »Kitsu« ist der Autor dieses Themas

Motto: Jeder Tag an dem es Kekse gibt ist ein guter Tag

  • Nachricht senden

7

Mittwoch, 8. August 2007, 20:51

@ monsta jop haste richtig verstanden und verständlich erklärt
@ rabu (or anyone else ^^ ) was mache ich denn dann mit dem meer rund um ne insel (ich glaub du weißt was ich meine ^^ )
~Kitsu

mein Leben fängt jetzt endlich richtig an - und es wird wunderschön :3
möchte wer Kekse? ^-^

8

Mittwoch, 8. August 2007, 23:35

Fiele mir auf die Schnelle nur ein, ein paar solche Events in passendem Abstand rund um die Küste zu setzen. Aber sind halt viele parallele Events und somit Speicher-Fresser (Lagging). Wär mir jetzt zu kritisch, nur wegen so nem bisschen Sound-Effekt.

Aber vll gäb's ja ne Script-Lösung für solch einen flächenabhängigen Sound. Vll was mit Terrain_ID, kA?
Rabu

Kitsu

Rekrut

  • »Kitsu« ist der Autor dieses Themas

Motto: Jeder Tag an dem es Kekse gibt ist ein guter Tag

  • Nachricht senden

9

Donnerstag, 9. August 2007, 13:40

Wär schon toll wenns sowas gäbe aber ich bin ne absolute skiptniete
@all wer weiß da Rat?

~danke ezelo
~Kitsu

mein Leben fängt jetzt endlich richtig an - und es wird wunderschön :3
möchte wer Kekse? ^-^

Social Bookmarks