• Anmelden

Josey

Storyteller

  • »Josey« ist der Autor dieses Themas

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Nachricht senden

1

Donnerstag, 10. Oktober 2013, 15:25

[Erledigt] Moonpearl "party-follow" - Sequenzen

Hallo! :)

Ich arbeite momentan mit dem
http://moonpearl-gm.blogspot.de/2012/05/party-follow.html
um meine Party in Bewegung zu bringen.

Hierbei handelt es sich um ein Script, welches Events als Partymember nachlaufen lässt. Diese kann man ansprechen und alles was man mit Events sonst so tun kann.
(Es ist von Terv modifiziert worden, so dass es zusätzlich auf ein Pathfinding-Script zugreifen kann, wenn die Partymember weit weg sind, die Figuren rennen, wenn sie sollen, Through werden, wenn sie sollen, usw).


Ich hab jetzt mal probiert, eine Cutszene umzusetzen.
Dabei sind mir folgende zwei Probleme aufgefallen:
1. Der Spieler geht immer nur einen Schritt, auch wenn ich alle "Runswitches" ausstelle (war früher ein öfteres Problem bei mir :P)
2. Die Viecher rennen dem Player auch während der Cutszene nach.


-> Lösen konnte ich das Problem bisher nur, indem ich alle Partymember während einer Szene aus dem Team nehme. Wenn ich das tue, läuft der Actor soviel, wie er soll und die Partymember tun das, was sie sollen. Danach nehme ich sie wieder ins Team.


Gibt es da einen Trick, oder muss ich die Partymember aus dem Team nehmen, während einer Cutszene?
Und wieso tappt der Spieler immer nur einen Schritt, wenn die Figuren im Team sind? Liegts am pathfinding?


Kann man das Script "ausschalten" und wieder "einschalten? :)

Kann sich jemand das Script kurz ansehen, und mir weiterhelfen? :)
Ich würde mich über eine Hilfe freuen :) (ein An- und Ausschalter für das Script würde mir schon reichen, glaube [hoffe] ich XD)


Script nochmal extra angehangen, damit keiner sich bei MP durchklicken muss:
Spoiler: MP Common

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
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
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
#==============================================================================
# BITMASK
#------------------------------------------------------------------------------
#  This class stores boolean information (true/false) as Integer bits, in
# order to save memory.
#==============================================================================
 
class Bitmask
  attr_reader :size
 
  def initialize(size = 1)
    @data = [0]
    resize(size)
  end
 
  def [](i)
    if i >= @size
      raise RangeError, "Bit ##{i} not defined (max = #{@size - 1}) in Bitmask#[]"
    end
    return @data[i >> 5][i % 32] == 1
  end
 
  def []=(i, b)
    case b
    when TrueClass, FalseClass
      if self[i] == b
        return nil
      else
        @data[i >> 5] ^= 2 ** (i % 32)
        return b
      end
    else
      raise TypeError, "TrueClass or FalseClass expected as parameters in Bitmask#[]="
    end
  end
 
  def &(other)
    bitmask = Bitmask.new(@size)
    for i in 0...@size
      bitmask[i] = self[i] & other[i]
    end
    return bitmask
  end
 
  def |(other)
    bitmask = Bitmask.new(@size)
    for i in 0...@size
      bitmask[i] = self[i] | other[i]
    end
    return bitmask
  end
 
  def each
    for i in 0...@size
      yield i if self[i]
    end
  end
 
	def each_false
    for i in 0...@size
      unless self[i]
        yield i
      end
    end
  end
 
  def resize(size)
    while (size >> 5) >= @data.size
      @data << 0
    end
    @size = size
  end
 
  def to_s
    str = String.new
    for i in 0...@size
      if i & 7 == 0
        str << " "
      end
      str << @data[i >> 5][i & 31].to_s
    end
    return str
  end
 
  def ==(other)
    case other
    when Bitmask
      #return true if @data == other.data
      return false unless @size == other.size
      for i in 0...@size
        return false unless self[i] == other[i]
      end
      return true
    end
    return false
  end
 
  alias :inspect :to_s
end
# ==============================================================================
# DIALOG BOXES
# ------------------------------------------------------------------------------
# Makes dialog boxes to give warning messages and confirm choices.
# ==============================================================================
 
module RPG
  def self.warn(str)
    $game_system.se_play($data_system.decision_se)
    Graphics.freeze
    message = []
    str.break_into_lines(65) do |s| message << s end
    height = 32 * (message.size + 2)
    window = Window_Base.new(32, (480 - height) / 2, 576, height)
    window.contents = Bitmap.new(window.width - 32, window.height - 32)
    for i in 0...message.size
      window.contents.draw_text(0, i * 32, window.width - 32, 32, message[i], 1)
    end
    window.contents.draw_text(0, window.contents.height - 32, 544, 32, "OK", 1)
    window.cursor_rect.set(208, window.contents.height - 32, 128, 32)
    window.active = true
    window.z = 5000
    Graphics.transition
    loop do
      Input.update
      Graphics.update
      window.update
      if Input.trigger?(Input::C) or Input.trigger?(Input::B)
        $game_system.se_play($data_system.cancel_se)
        break
      end
    end
    Graphics.freeze
    window.dispose
    Graphics.transition
    return
  end
 
  def self.confirm(str)
    $game_system.se_play($data_system.buzzer_se)
    Graphics.freeze
    message = []
    str.break_into_lines(65) do |s| message << s end
    height = 32 * (message.size + 2)
    window = Window_Base.new(32, (480 - height) / 2, 576, height)
    window.contents = Bitmap.new(window.width - 32, window.height - 32)
    for i in 0...message.size
      window.contents.draw_text(0, i * 32, window.width - 32, 32, message[i], 1)
    end
    window.contents.draw_text(0, window.contents.height - 32, 272, 32, "OK", 1)
    window.contents.draw_text(272, window.contents.height - 32, 272, 32, "Cancel", 1)
    window.cursor_rect.set(72, window.contents.height - 32, 128, 32)
    window.active = true
    window.z = 5000
    Graphics.transition
    index = 0
    result = nil
    while result.nil?
      Input.update
      Graphics.update
      window.update
      if Input.repeat?(Input::LEFT) or Input.repeat?(Input::RIGHT)
        $game_system.se_play($data_system.cursor_se)
        index += 1
        index %= 2
        window.cursor_rect.set(72 + 272 * index, window.contents.height - 32, 128, 32)
      end
      if Input.trigger?(Input::C)
        $game_system.se_play($data_system.decision_se)
        result = index == 0
      end
      if Input.trigger?(Input::B)
        $game_system.se_play($data_system.cancel_se)
        result = false
      end
    end
    Graphics.freeze
    window.dispose
    Graphics.transition
    return result
  end
end
#==============================================================================
# FUNCTIONS
#------------------------------------------------------------------------------
#  These classes allow to compute a variable from another using a particular
# mathematical formula. Typically used to simulate movements (compute x/y from
# a time factor)
#==============================================================================
 
#==============================================================================
# ** Function_Affine
#------------------------------------------------------------------------------
#  This class handles constant functions (type y = a)
#==============================================================================
class Function_Constant
	attr_reader	:a
 
	#-----------------------------------------------------------------------------
	# * Initialize parameters
	#-----------------------------------------------------------------------------
	def initialize(a)
		@a = a
	end
 
	#-----------------------------------------------------------------------------
	# * Compute image
	#-----------------------------------------------------------------------------
	def [](x)
		return @a
	end
 
	#-----------------------------------------------------------------------------
	# * Check for equality
	#-----------------------------------------------------------------------------
	def ==(function)
		if not function.is_a?(Function_Constant)
			return false
		end
		if function.a == @a
			return true
		end
		return false
	end
end
 
#==============================================================================
# ** Function_Affine
#------------------------------------------------------------------------------
#  This class handles 1st degree polynomial functions (type y = ax + b)
#==============================================================================
class Function_Affine
	attr_reader	:a
	attr_reader	:b
 
	#-----------------------------------------------------------------------------
	# * Initialize parameters
	#-----------------------------------------------------------------------------
	def initialize(a, b)
		@a, @b = a, b
	end
 
	#-----------------------------------------------------------------------------
	# * Compute image
	#-----------------------------------------------------------------------------
	def [](x)
		return @a * x + @b
	end
 
	#-----------------------------------------------------------------------------
	# * Display function
	#-----------------------------------------------------------------------------
	def to_s
		s = "f(x) = #{@a}x"
		s += " + #{@b}" unless @b == 0
		return s
	end
 
	#-----------------------------------------------------------------------------
	# * Check for equality
	#-----------------------------------------------------------------------------
	def ==(function)
		# Return false if other function is not affine
		if not function.is_a?(Function_Affine)
			return false
		end
		# Return true if all parameters are equal
		if @a == function.a and @b == function.b
			return true
		end
		# In any other cases, return false
		return false
	end
 
	#-----------------------------------------------------------------------------
	# * Compute intersection point with another affine function
	#-----------------------------------------------------------------------------
	def inter(function)
		# Return nil if other function is not affine
		if not function.is_a?(Function_Affine)
			return nil
		end
		return (function.b - @b).to_f / (@a - function.a)
	end
 
	#-----------------------------------------------------------------------------
	# * Compute solution
	#-----------------------------------------------------------------------------
	def solve(y = 0)
		return (y - @b).to_f / @a
	end
 
	#-----------------------------------------------------------------------------
	# * Compute derivative
	#-----------------------------------------------------------------------------
	def derive
		# Return a new Function_Constant function
		return Function_Constant.new(@a)
	end
end
 
#==============================================================================
# ** Function_Trinome
#------------------------------------------------------------------------------
#  This class handles 2nd degree polynomial functions (type y = ax² + bx + c)
#==============================================================================
class Function_Trinome
	attr_reader	:a
	attr_reader	:b
	attr_reader	:c
 
	#-----------------------------------------------------------------------------
	# * Initialize parameters
	#-----------------------------------------------------------------------------
	def initialize(a, b, c)
		@a, @b, @c = a, b, c
	end
 
	#-----------------------------------------------------------------------------
	# * Compute image
	#-----------------------------------------------------------------------------
	def [](x)
		return @a * x ** 2 + @b * x + @c
	end
 
	#-----------------------------------------------------------------------------
	# * Display function
	#-----------------------------------------------------------------------------
	def to_s
		s = "f(x) = #{@a}x^2"
		s += " + #{@b}x" unless @b == 0
		s += " + #{@c}" unless @c == 0
		return s
	end
 
	#-----------------------------------------------------------------------------
	# * Check for equality
	#-----------------------------------------------------------------------------
	def ==(function)
		# Return false if other function is not a trinome
		if not function.is_a?(Function_Trinome)
			return false
		end
		# Return true if all parameters are equal
		if @a == function.a and @b == function.b and @c == function.c
			return true
		end
		# Return false in any other cases
		return false
	end
 
	#-----------------------------------------------------------------------------
	# * Comput delta
	#-----------------------------------------------------------------------------
	def delta
		return @b ** 2 - 4 * @a * @c
	end
 
	#-----------------------------------------------------------------------------
	# * Compute solutions
	#-----------------------------------------------------------------------------
	def solve(y = 0)
		if y != 0
			return Function_Trinome.new(@a, @b, @c - y).solve
		end
		# Compute delta
		d = delta
		# If positive delta, return two solutions
		if d > 0
			x1 = (-@b - Math::sqrt(d)).to_f / (2 * @a)
			x2 = (-@b + Math::sqrt(d)).to_f / (2 * @a)
			return x1, x2
		# If null delta, return one solution
		elsif d == 0
			x = -@b.to_f / (2 * @a)
			return x
		end
		# If negative delta, return nil
		return nil
	end
 
	#-----------------------------------------------------------------------------
	# * Compute derivative
	#-----------------------------------------------------------------------------
	def derive
		# Return a new affine function
		return Function_Affine.new(2 * @a, @b)
	end
end
 
#==============================================================================
# ** Function_Polynome
#------------------------------------------------------------------------------
#  This class handles polynomial functions of any arbitrary degree
#==============================================================================
class Function_Polynome
	attr_reader	:coeffs
 
	class << self
    #---------------------------------------------------------------------------
    # * Return an object of a more specific Function class if appropriate
    #---------------------------------------------------------------------------
		alias old_new new
		def new(*coeffs)
			while coeffs.last == 0
				coeffs.pop
			end
			case coeffs.size
			when 0
				return Function_Constant.new(0)
			when 1
				return Function_Constant.new(coeffs[0])
			when 2
				return Function_Affine.new(coeffs[1], coeffs[0])
			when 3
				return Function_Trinome.new(coeffs[2], coeffs[1], coeffs[0])
			end
			return old_new(*coeffs)
		end
	end
 
	#-----------------------------------------------------------------------------
	# * Initialize parameters
	#-----------------------------------------------------------------------------
	def initialize(*coeffs)
		coeffs.flatten! if coeffs[0].is_a?(Array)
		while coeffs.last == 0
			coeffs.pop
		end
		@coeffs = coeffs
	end
 
	#-----------------------------------------------------------------------------
	# * Compute image
	#-----------------------------------------------------------------------------
	def [](x)
		i = 0
		self.each { |n, coeff| i += coeff * x ** n }
		return i
	end
 
	#-----------------------------------------------------------------------------
	# * Display function
	#-----------------------------------------------------------------------------
	def to_s
		s = "f(x) = "
		a = []
		self.each { |n, coeff|
			next if coeff == 0
			a.push(case n
				when 0
					coeff.to_s
				when 1
					"#{coeff}x"
				else
					"#{coeff}x^#{n}"
				end
			)
		}
		s += a.join(" + ")
		return s
	end
 
	def degree
		return @coeffs.size - 1
	end
 
	def each
		for i in 0...@coeffs.size
			yield i, @coeffs[i]
		end
	end
 
  def derive
    coeffs = []
    for i in 1..@coeffs.size
      coeffs.push(i * @coeffs[i])
    end
    return Function_Polynome.new(*coeffs)
  end
end
 
class Function_Composite
  def initialize(data)
    @data = data
  end
 
  def [](x)
    @data.each do |range, function|
      if range.include?(x)
        return function[x]
      end
    end
    return nil
  end
end
# ==============================================================================
# RUBY EXPANSION
# ------------------------------------------------------------------------------
# Adds new functions to existing Ruby classes. Each new feature is commented
# individually.
# ==============================================================================
 
class Object
	# Make all objects respond to :display for compatibility purposes
  alias :display :inspect
end
 
class Array
	# Returns an item selected at random
  def sample
    return self[rand(self.size)]
  end
 
	# Return a copy with items shuffled
	def shuffle
		src = self.clone
		ary = Array.new()
		until src.empty?
			ary << src.delete(src.sample)
		end
		return ary
	end
 
	# Shuffle items
	def shuffle!
		self.replace(self.shuffle)
	end
end
 
class Dir
  # Returns all files matching given extensions in specified directory as an array
  #  - directory: directory to be searched
  #  - filters: strings representing extensions to be kept
  def self.files(directory = self.pwd, *filters)
    ary = []
    for filename in self.entries(directory)
      next if File.directory?(filename) or filename == "." or filename == ".."
      if filters.empty? or filters.include?(File.extname(filename))
        ary << filename
      end
    end
    return ary
  end
 
  # Returns all subdirectories in specified directory as an array
  def self.subdirectories(directory = self.pwd)
    ary = []
    for filename in self.entries(directory)
      if File.directory?(filename)
        ary << filename
      end
    end
    return ary
  end
end
 
class File
  # Assess whether a filename is a directory name or not
  def self.directory?(filename)
    return false if filename == "."
    return true if self.extname(filename) == ""
    return false
  end
end
 
class Integer
	# Computes self factorial
  def factorial
    f = 1
    for i in 1..self
      f *= i
    end
    return f
  end
 
	# Compute number of combinations from k in self
	#  - k: a positive integer less than or equal to self
  def combin(k)
    return self.factorial / (k.factorial * (n - k).factorial)
  end
end
 
class String
	# Breaks string into several lines
	#  - amount: max number of characters per line
  def break_into_lines(amount)
    if self.size <= amount
      yield self
    else
      i = 0
      until i >= self.size
        n = self[i, amount].reverse.index(" ")
        n = amount - (n.nil? ? 0 : n)
        yield self[i, n]
        i += n
      end
    end
  end
 
	# Make string into a symbol name
  def symbolize
    return :empty if self.empty?
    return self.downcase.gsub(" ", "_").to_sym
  end
end
 
class Symbol
	# Make symbol into a string ready fot display
  def display
    str = ""
    name = self.to_s
    name.split("_").each { |s| str += s.capitalize + " " }
    str = str.rstrip
    return str
  end
 
	# Comparison functions, included for compatiblity purposes
  def ===(other)
    return (self <=> other) == 0
  end
 
  def >(other)
    case other
    when Numeric
      return nil
    end
    return (self <=> other) == 1
  end
 
  def <(other)
    case other
    when Numeric
      return nil
    end
    return (self <=> other) == -1
  end
 
  def <=>(other)
    return self.to_s <=> other.to_s
  end
end
# ==============================================================================
# VARIABLES & SWITCHES COMMANDS
# ------------------------------------------------------------------------------
# This allows to bind commands to changes in game variables by events.
# ------------------------------------------------------------------------------
# EXAMPLE: by entering the following, the first actor's HP will automatically
# change to the content of game variable #0001 each time the variable is
# changed via an event.
#   $variables_command[1] = Proc.new { |v| $game_actors[1].hp = v }
# ==============================================================================
 
$switches_command = {}
$variables_command = {}
class Interpreter
  alias mp_common_command_121 command_121
  def command_121
    mp_common_command_121
    for i in @parameters[0]..@parameters[1]
			unless $switches_command[i].nil?
				$variables_command[i].call($game_switches[i])
			end
    end
  end
 
  alias mp_common_command_122 command_122
  def command_122
    mp_common_command_122
    for i in @parameters[0]..@parameters[1]
			unless $switches_command[i].nil?
				$variables_command[i].call($game_variables[i])
			end
    end
  end
end
zum Lesen den Text mit der Maus markieren
Spoiler: MP Party Follow

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
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
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
# For each actor #, maximal distance it will keep from player
# (if low, they will always keep very close)
DISTANCE_TOLERANCES = [3, 3, 3, 4, 3, 3, 3, 3]
# ID of variable holding the ID of actor being controlled (change to appoint another actor)
VAR_PARTY_LEADER = 10
# For each actor, ID of switch holding whether he/she is in the party
SW_ACTOR_IN_PARTY =  [11, 12, 13, 14, 15, 16, 17, 18]
# ID of switch holding whether to auto place party members whenever changing map
SW_AUTOPLACE = 20
# Animation to be played when taking control of a party member (0 for none)
ANIMATION_TAKE_CONTROL = 0
 
class Game_Character
  attr_reader :move_route
	attr_accessor	:direction
 
  def distance_from(character)
    return (@x - character.x).abs + (@y - character.y).abs
  end
end
 
class Game_Event
  alias mp_autofollow_update update
  def update
    mp_autofollow_update
		for i in 0...$data_actors.size - 1
			# If event is an actor
			if $data_actors[i + 1].name == self.name
				# Do nothing if already moving or actor isn't in party
			  return if moving? or not $game_switches[SW_ACTOR_IN_PARTY[i]]
				move_route = RPG::MoveRoute.new
				move_route.repeat = false
				move_route.skippable = true
				# If too far from player
				if distance_from($game_player) > DISTANCE_TOLERANCES[i]
					# Take a step towards player
					move_route.list[0].code = 10
				else
					# Face player
					move_route.list[0].code = 25
				end
				force_move_route(move_route)
				@move_route_forcing = false
			end
		end
  end
 
  def name
    return @event.name
  end
 
	def restore
		@erased = false
		refresh
	end
end
 
class Game_Map
  attr_reader :party_events
	attr_reader	:event_leader
	attr_reader	:event_id_leader
	attr_reader	:spriteset_map
 
  alias mp_autofollow_setup setup
  def setup(map_id)
    mp_autofollow_setup(map_id)
		@event_leader = nil
		# Set refresh flag
    @need_refresh = true
		# Build party names array
		party_names = []
		for actor in $game_party.actors[0...$game_party.actors.size]
			party_names << actor.name
		end
 
 
		to_place = []
		# Pass through all events
		for event in @events.values
			# If event name matches a party member
			if party_names.include?(event.name)
				if event.name == $game_party.actors[0].name
					self.event_leader = event
				else
					to_place << event
				end
			end
		end
 
 
		# If auto placement of party members allowed
		if $game_switches[SW_AUTOPLACE]
			return if to_place.empty?
			# Place events
			for a in [0, -1, -2, 1, 2]
				for b in [-1, 1, -2, 2, 0]
					next if a == 0 and b == 0
					x = $game_temp.player_new_x
					y = $game_temp.player_new_y
					case $game_player.direction
					# Down
					when 2
						x += b
						y += a
					# Left
					when 4
						y += b
						x -= a
					# Right
					when 6
						y += b
						x += a
					# Up
					when 8
						x += b
						y -= a
					end
					if (0...self.width).include?(x) and (0...self.height).include?(y)
						if self.passable?(x, y, 0)
							event = to_place.shift
							event.moveto(x, y)
							event.refresh
							return if to_place.empty?
						end
					end
				end
			end
		end
  end
 
	def event_leader=(event)
		# If a leader event was previously erased
		if @event_leader
			# Restore event
			@event_leader.restore
		end
		# Store event in memory to restore it later
		@event_leader = event
		# Remove event from the map
		event.erase
	end
 
  alias mp_autofollow_refresh refresh
  def refresh
		# Update party members game switches
		actors = $game_party.actors[1...$game_party.actors.size] || []
		for i in 0...$data_actors.size - 1
			if actors.include?($game_actors[i + 1])
				$game_switches[SW_ACTOR_IN_PARTY[i]] = true
			else
				$game_switches[SW_ACTOR_IN_PARTY[i]] = false
			end
		end
    mp_autofollow_refresh
  end
 
	def actor_event(actor_id)
		for event in @events.values
			return event if event.name == $data_actors[actor_id].name
		end
		return nil
	end
end
 
class Spriteset_Map
	def sprite_player
		return @character_sprites.last
	end
end
 
class Game_Actor
	attr_reader	:actor_id
end
 
class Interpreter
  alias mp_autofollow_command_129 command_129
  def command_129
    result = mp_autofollow_command_129
		# Update new leader
		actor_id = $game_party.actors[0].actor_id
		$game_variables[VAR_PARTY_LEADER] = actor_id
		appoint_leader(actor_id)
    $game_map.need_refresh = true
		return result
  end
end
 
def appoint_leader(actor_id)
	#print [$game_party.actors[0].actor_id, actor_id].inspect
	actor = $game_actors[actor_id]
	# Return if actor is already the leader
	if actor == $game_party.actors[0]
		return
	end
	# If actor not present in party, force them inside
	unless $game_party.actors.include?(actor)
		$game_party.actors.unshift(actor)
		$game_party.actors.delete_at($game_party.actors.size - 1)
	end
	# Put event matching the previous leader in place of the player
	#event = $game_map.actor_event($game_party.actors[0].id)
	event = $game_map.event_leader
	event.moveto($game_player.x, $game_player.y)
	event.direction = $game_player.direction
	# Put player in place of the event matching the new leader
	event = $game_map.actor_event(actor_id)
	$game_player.moveto(event.x, event.y)
	$game_player.direction = event.direction
	$game_player.animation_id = ANIMATION_TAKE_CONTROL
	$game_map.event_leader = event
	# Put desired actor at party's first position
	$game_party.add_actor(actor_id)
	$game_party.actors.unshift($game_party.actors.delete(actor))
	$game_player.refresh
	$game_switches[SW_ACTOR_IN_PARTY[actor_id - 1]] = false
	$game_map.need_refresh = true
end
 
$variables_command[VAR_PARTY_LEADER] = Proc.new { |n, o|
		appoint_leader(n)
	}
 
#$variables_init[VAR_PARTY_LEADER] = 1
zum Lesen den Text mit der Maus markieren
Notfalldiscord: Hier klicken


  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Josey« (29. Oktober 2013, 19:50)


Josey

Storyteller

  • »Josey« ist der Autor dieses Themas

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Nachricht senden

2

Donnerstag, 24. Oktober 2013, 21:58

Freitag, 18. Oktober 2013, 21:08
Ich pushe mal beide :P *schieb*
(Siehe anderer Threadt, wenn man eine Demo haben will :D)

*schieb* (auch wenns nicht tief gerutscht ist)
Notfalldiscord: Hier klicken


  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Josey« (24. Oktober 2013, 21:58)


StorMeye

Rekrut

Motto: Die Kunst ist, vor lauter Pixel nicht das große Ganze aus den Augen zu verlieren.

  • Nachricht senden

3

Montag, 28. Oktober 2013, 20:25

Hi Josey,

hab mir das Problem mal angeschaut. Ich glaub ich hab eine Lösung gefunden:

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
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
# For each actor #, maximal distance it will keep from player
# (if low, they will always keep very close)
DISTANCE_TOLERANCES = [3, 3, 3, 4, 3, 3, 3, 3]
# ID of variable holding the ID of actor being controlled (change to appoint another actor)
VAR_PARTY_LEADER = 10
# For each actor, ID of switch holding whether he/she is in the party
SW_ACTOR_IN_PARTY =  [11, 12, 13, 14, 15, 16, 17, 18]
# ID of switch holding whether to auto place party members whenever changing map
SW_AUTOPLACE = 20
# switch ID to switch following on or off (for example, switch it 
# off during cutscenes)
SWITCH_ID_ENABLE_FOLLOWING = 21
# Animation to be played when taking control of a party member (0 for none)
ANIMATION_TAKE_CONTROL = 0
 
class Game_Character
  attr_reader :move_route
	attr_accessor	:direction
 
  def distance_from(character)
    return (@x - character.x).abs + (@y - character.y).abs
  end
end
 
class Game_Event
  alias mp_autofollow_update update
  def update
    #print 'GameEvent.update'
    mp_autofollow_update
		for i in 0...$data_actors.size - 1
			# If event is an actor
      if $game_switches[SWITCH_ID_ENABLE_FOLLOWING] == true
        if $data_actors[i + 1].name == self.name
          # Do nothing if already moving or actor isn't in party
          return if moving? or not $game_switches[SW_ACTOR_IN_PARTY[i]]
          move_route = RPG::MoveRoute.new
          move_route.repeat = false
          move_route.skippable = true
          # If too far from player
          if distance_from($game_player) > DISTANCE_TOLERANCES[i]
            # Take a step towards player
            move_route.list[0].code = 10
          else
            # Face player
            move_route.list[0].code = 25
          end
          force_move_route(move_route)
          @move_route_forcing = false
        end
      end
		end
  end
 
  def name
    return @event.name
  end
 
	def restore
		@erased = false
		refresh
	end
end
 
class Game_Map
  attr_reader :party_events
	attr_reader	:event_leader
	attr_reader	:event_id_leader
	attr_reader	:spriteset_map
 
  alias mp_autofollow_setup setup
  def setup(map_id)
    mp_autofollow_setup(map_id)
		@event_leader = nil
		# Set refresh flag
    @need_refresh = true
		# Build party names array
		party_names = []
		for actor in $game_party.actors[0...$game_party.actors.size]
			party_names << actor.name
		end
 
 
		to_place = []
		# Pass through all events
		for event in @events.values
			# If event name matches a party member
			if party_names.include?(event.name)
				if event.name == $game_party.actors[0].name
					self.event_leader = event
				else
					to_place << event
				end
			end
		end
 
 
		# If auto placement of party members allowed
		if $game_switches[SW_AUTOPLACE]
			return if to_place.empty?
			# Place events
			for a in [0, -1, -2, 1, 2]
				for b in [-1, 1, -2, 2, 0]
					next if a == 0 and b == 0
					x = $game_temp.player_new_x
					y = $game_temp.player_new_y
					case $game_player.direction
					# Down
					when 2
						x += b
						y += a
					# Left
					when 4
						y += b
						x -= a
					# Right
					when 6
						y += b
						x += a
					# Up
					when 8
						x += b
						y -= a
					end
					if (0...self.width).include?(x) and (0...self.height).include?(y)
						if self.passable?(x, y, 0)
							event = to_place.shift
							event.moveto(x, y)
							event.refresh
							return if to_place.empty?
						end
					end
				end
			end
		end
  end
 
	def event_leader=(event)
		# If a leader event was previously erased
		if @event_leader
			# Restore event
			@event_leader.restore
		end
		# Store event in memory to restore it later
		@event_leader = event
		# Remove event from the map
		event.erase
	end
 
  alias mp_autofollow_refresh refresh
  def refresh
		# Update party members game switches
		actors = $game_party.actors[1...$game_party.actors.size] || []
		for i in 0...$data_actors.size - 1
			if actors.include?($game_actors[i + 1])
				$game_switches[SW_ACTOR_IN_PARTY[i]] = true
			else
				$game_switches[SW_ACTOR_IN_PARTY[i]] = false
			end
		end
    mp_autofollow_refresh
  end
 
	def actor_event(actor_id)
		for event in @events.values
			return event if event.name == $data_actors[actor_id].name
		end
		return nil
	end
end
 
class Spriteset_Map
	def sprite_player
		return @character_sprites.last
	end
end
 
class Game_Actor
	attr_reader	:actor_id
end
 
class Interpreter
  alias mp_autofollow_command_129 command_129
  def command_129
    result = mp_autofollow_command_129
		# Update new leader
		actor_id = $game_party.actors[0].actor_id
		$game_variables[VAR_PARTY_LEADER] = actor_id
		appoint_leader(actor_id)
    $game_map.need_refresh = true
		return result
  end
end
 
def appoint_leader(actor_id)
	#print [$game_party.actors[0].actor_id, actor_id].inspect
	actor = $game_actors[actor_id]
	# Return if actor is already the leader
	if actor == $game_party.actors[0]
		return
	end
	# If actor not present in party, force them inside
	unless $game_party.actors.include?(actor)
		$game_party.actors.unshift(actor)
		$game_party.actors.delete_at($game_party.actors.size - 1)
	end
	# Put event matching the previous leader in place of the player
	#event = $game_map.actor_event($game_party.actors[0].id)
	event = $game_map.event_leader
	event.moveto($game_player.x, $game_player.y)
	event.direction = $game_player.direction
	# Put player in place of the event matching the new leader
	event = $game_map.actor_event(actor_id)
	$game_player.moveto(event.x, event.y)
	$game_player.direction = event.direction
	$game_player.animation_id = ANIMATION_TAKE_CONTROL
	$game_map.event_leader = event
	# Put desired actor at party's first position
	$game_party.add_actor(actor_id)
	$game_party.actors.unshift($game_party.actors.delete(actor))
	$game_player.refresh
	$game_switches[SW_ACTOR_IN_PARTY[actor_id - 1]] = false
	$game_map.need_refresh = true
end
 
$variables_command[VAR_PARTY_LEADER] = Proc.new { |n, o|
		appoint_leader(n)
	}
 
#$variables_init[VAR_PARTY_LEADER] = 1

zum Lesen den Text mit der Maus markieren


Einfach das Script oben anstelle des MP Party follow verwenden. Es gibt jetzt oben die Zeile "SWITCH_ID_ENABLE_FOLLOWING = 21". Hier kannst Du die ID eines Switches angeben, über den Du das Party following an- oder ausschalten kannst.

Ich hab's in einem leeren Projekt getestet, und da ging es. Die Sache, dass der Player nur einen Schritt geht, hatte ich nicht. Vielleicht gibt es da einen Konflikt mit einem anderen Script...?

Ich würde das Script evtl. gern in meinem eigenen Projekt verwenden. Darf das Script (incl. aller Modifikationen von Terv) auch in anderen Projekten verwendet werden?

Grüße, StorMeye

Josey

Storyteller

  • »Josey« ist der Autor dieses Themas

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Nachricht senden

4

Montag, 28. Oktober 2013, 21:16

Hi :3

Das ist das Orginalscript- ohne die Modifikationen von Terv.
Ich frag ihn mal :)

Welche Stelle genau hast du jetzt geändert? Dann kann ich es an der richtigen Stelle einfügen :3
Vielen Dank :D
Notfalldiscord: Hier klicken


  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

StorMeye

Rekrut

Motto: Die Kunst ist, vor lauter Pixel nicht das große Ganze aus den Augen zu verlieren.

  • Nachricht senden

5

Dienstag, 29. Oktober 2013, 18:41

Hi Josey,

die Zeilen 10-12, 32 und 50 sind dazu gekommen (Zeilennummern wie im Script unten). Ich hoff, Dein Script weicht nicht zu sehr ab von dem unten, dann müsste es gehen, die Zeilen einfach zu kopieren.

Grüße, StorMeye

Josey

Storyteller

  • »Josey« ist der Autor dieses Themas

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Nachricht senden

6

Dienstag, 29. Oktober 2013, 19:45

Hallo!

Alles funktioniert einwandfrei! :D
Vielen vielen vielen Dank! :D

Ich räume das Projekt noch etwas auf, weil man sonst nicht durchblickt, was davon wichtig ist, und was nicht.
Das kann nach einen Tag länger dauern, dann schick ich dir wie abgesprochen, das Projekt mit den Modis von Terv :3
Vielen Dank! :D
(Gibt aber noch eine kleine Kinderkrankheit, die aber normalerweise nicht stören sollte)
Notfalldiscord: Hier klicken


  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

Social Bookmarks