• Anmelden

1

Montag, 24. Januar 2005, 19:33

Ich hab nun das script für pixelgenaues gehen und mit den 8movedir, gefunden!
Also: Mal geht jetzt pixelgenau statt ~15xy, und man kann jetzt auch schief gehen...!

Hier ist das Script:
Bitte UNTER Game_Player einfügen und KEIN neues Script erstellen!!!


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
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
#============================================================================== 
# ■ Game_Player 
#------------------------------------------------------------------------------ 
# © http://members.jcom.home.ne.jp/cogwheel/ 
# Edit: markusmks 
#============================================================================== 
 
class Game_Player < Game_Character 
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 UP    = 48                  # &#65533;erstellt eine wand vorn hero(0 < UP < 63) 
 DOWN  = 16                  # erstellt eine wand untern hero(0 < DOWN <63) 
 SIDE  = 32                  # &#65533;erstellt eine wand links-rechts von hero(0 < SIDE <63) 
 SLANT = false              
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 attr_reader   :event                    
 attr_accessor :move_speed              
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 alias :update_original :update 
 def update 
   # @walk: 
   # @event: 
   @walk  = 4      # geh geschwindigkeit 
   @dash  = 5      # geh geschwindigkeit beim dr&uuml;cken von C - line 32 
   @event = 4    
   @dot_m = true 
   unless moving? or $game_system.map_interpreter.running? or 
           @move_route_forcing or $game_temp.message_window_showing 
     if @walk != @dash 
       if Input.press?(Input::C) 
         if @move_speed != @dash 
           @move_speed = @dash 
         end 
       else 
         if @move_speed != @walk 
           @move_speed = @walk 
         end 
       end 
     end 
   end 
   if @revise_x == nil and @revise_y == nil 
     @revise_x = 0 
     @revise_y = 0 
   end 
   unless @dot_m 
     update_original 
     return 
   end 
   if @move_route_forcing 
     last_moving = moving? 
     last_real_x = @real_x 
     last_real_y = @real_y 
     if (@revise_x != 0 or @revise_y != 0) and not jumping? and @move == true 
       if @revise_x != @real_x - @x * 128 or @revise_y != @real_y - @y * 128 
         @revise_x = @real_x - @x * 128 
         @revise_y = @real_y - @y * 128 
       end 
       distance1 = 2 ** @move_speed 
       distance2 = Math.sqrt(@revise_x ** 2 + @revise_y ** 2) 
       if distance1 > distance2 
         @real_x = @real_x - @revise_x 
         @real_y = @real_y - @revise_y 
         @revise_x = 0 
         @revise_y = 0 
         anime_update 
       else 
         @real_x -= (distance1 * @revise_x / distance2).round 
         @real_y -= (distance1 * @revise_y / distance2).round 
         @revise_x = @real_x - @x * 128 
         @revise_y = @real_y - @y * 128 
         anime_update 
       end 
     else 
       super 
     end 
   else 
     @move = false 
     unless moving? or $game_system.map_interpreter.running? or 
            @move_route_forcing or $game_temp.message_window_showing 
       @event_run = false 
       case Input.dir8 
       when 1 
         move_lower_left_p 
       when 2 
         move_down_p 
       when 3 
         move_lower_right_p 
       when 4 
         move_left_p 
       when 6 
         move_right_p 
       when 7 
         move_upper_left_p 
       when 8 
         move_up_p 
       when 9 
         move_upper_right_p 
       end 
     end 
     last_real_x = @real_x 
     last_real_y = @real_y 
     # Æ&Uacute;&#8220;&reg;&#65533;Æ&#8212;&#65533; 
     @real_x = @x * 128 + @revise_x 
     @real_y = @y * 128 + @revise_y 
     last_moving = moving? 
     move_on 
     if (last_real_x != @real_x or last_real_y != @real_y) 
       @move_distance = 0 if @move_distance == nil 
       @move_distance += Math.sqrt((last_real_x - @real_x) ** 2 + 
                                     (last_real_y - @real_y) ** 2) 
       if @move_distance >= 128 
         @move_distance %= 128 
         increase_steps 
       end 
       anime_update 
     else 
       @pattern = 0 
     end 
   end 
   if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y 
     $game_map.scroll_down(@real_y - last_real_y) 
   end 
   if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X 
     $game_map.scroll_left(last_real_x - @real_x) 
   end 
   if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X 
     $game_map.scroll_right(@real_x - last_real_x) 
   end 
   if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y 
     $game_map.scroll_up(last_real_y - @real_y) 
   end 
   if last_moving 
     result = check_event_trigger_here([1,2]) 
     if result == false 
       unless $DEBUG and Input.press?(Input::CTRL) 
         if @encounter_count > 0 
           @encounter_count -= 1 
         end 
       end 
     end 
   end 
   if Input.trigger?(Input::C) 
     check_event_trigger_here([0]) 
     check_event_trigger_there([0,1,2]) 
   end 
 end 
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 def initialize 
   @revise_x = 0 
   @revise_y = 0 
   @move == false 
   super 
 end 
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 def moving? 
   unless @dot_m 
     result = super 
     return result 
   end 
   if @move_route_forcing 
     if @move == false 
       return false 
     end 
     super 
   else 
     return (@x != (@real_x / 128.0).round or @y != (@real_y / 128.0).round) 
   end 
 end 
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 def moving_a? 
   if @move == false 
     if (@move_route.list[@move_route_index].code <= 14 or 
         @move_route.list[@move_route_index].code == 25) 
       @move = true 
     end 
     return false 
   end 
   moving? 
 end 
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 def update_jump 
   @jump_count -= 1 
   @real_x = (@real_x * @jump_count + @x * 128) / (@jump_count + 1) 
   @real_y = (@real_y * @jump_count + @y * 128) / (@jump_count + 1) 
   if @jump_count == 0 
     @revise_x = 0 
     @revise_y = 0 
   end 
 end 
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 def move_type_custom 
   unless @dot_m 
     super 
     return 
   end 
   if jumping? or moving_a? 
     return 
   end 
   while @move_route_index < @move_route.list.size 
     command = @move_route.list[@move_route_index] 
     if command.code == 0 
       if @move_route.repeat 
         @move_route_index = 0 
       end 
       unless @move_route.repeat 
         if @move_route_forcing and not @move_route.repeat 
           @move_route_forcing = false 
           @move_route = @original_move_route 
           @move_route_index = @original_move_route_index 
           @original_move_route = nil 
         end 
         @stop_count = 0 
       end 
       return 
     end 
     if command.code <= 14 
       case command.code 
       when 1  
         move_down 
       when 2  
         move_left 
       when 3  
         move_right 
       when 4  
         move_up 
       when 5  
         move_lower_left 
       when 6  
         move_lower_right 
       when 7  
         move_upper_left 
       when 8  
         move_upper_right 
       when 9  
         move_random 
       when 10  
         move_toward_player 
       when 11  
         move_away_from_player 
       when 12 
         move_forward 
       when 13  
         move_backward 
       when 14  
         jump(command.parameters[0], command.parameters[1]) 
       end 
       if not @move_route.skippable and not moving? and not jumping? 
         return 
       end 
       @move_route_index += 1 
       return 
     end 
     if command.code == 15 
       @wait_count = command.parameters[0] * 2 - 1 
       @move_route_index += 1 
       return 
     end 
     if command.code >= 16 and command.code <= 26 
       case command.code 
       when 16  
         turn_down 
       when 17 
         turn_left 
       when 18 
         turn_right 
       when 19 
         turn_up 
       when 20 
         turn_right_90 
       when 21 
         turn_left_90 
       when 22 
         turn_180 
       when 23 
         turn_right_or_left_90 
       when 24 
         turn_random 
       when 25 
         turn_toward_player 
       when 26 
         turn_away_from_player 
       end 
       @move_route_index += 1 
       return 
     end 
     if command.code >= 27 
       case command.code 
       when 27  
         $game_switches[command.parameters[0]] = true 
         $game_map.need_refresh = true 
       when 28  
         $game_switches[command.parameters[0]] = false 
         $game_map.need_refresh = true 
       when 29  
         @move_speed = command.parameters[0] 
       when 30  
         @move_frequency = command.parameters[0] 
       when 31  
         @walk_anime = true 
       when 32 
         @walk_anime = false 
       when 33 
         @step_anime = true 
       when 34  
         @step_anime = false 
       when 35  
         @direction_fix = true 
       when 36  
         @direction_fix = false 
       when 37 
         @through = true 
       when 38 
         @through = false 
       when 39  
         @always_on_top = true 
       when 40  
         @always_on_top = false 
       when 41  
         @tile_id = 0 
         @character_name = command.parameters[0] 
         @character_hue = command.parameters[1] 
         if @original_direction != command.parameters[2] 
           @direction = command.parameters[2] 
           @original_direction = @direction 
           @prelock_direction = 0 
         end 
         if @original_pattern != command.parameters[3] 
           @pattern = command.parameters[3] 
           @original_pattern = @pattern 
         end 
       when 42 
         @opacity = command.parameters[0] 
       when 43 
         @blend_type = command.parameters[0] 
       when 44  
         $game_system.se_play(command.parameters[0]) 
       when 45  
         result = eval(command.parameters[0]) 
       end 
       @move_route_index += 1 
       return 
     end 
   end 
 end 
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 def move_down_p 
   turn_down 
   distance = 2 ** @move_speed 
   down1(((@x * 128 + @revise_x) / 128.0).round, 
         ((@y * 128 + @revise_y) / 128.0).round, distance, true) 
 end 
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 def down1(x, y, distance, down = false) 
   result = down2(x, y, distance) 
   if result == false 
     @event_run = check_event_trigger_touch(x, y+1) 
     return result 
   end 
   if @revise_x < -SIDE 
     result = down2(x, y + 1, distance, 4) 
     result &= down2(x - 1, y, distance) 
     if result == false 
       if down 
         move_lower_right_p 
         if @revise_x > SIDE 
           @revise_x = SIDE 
         end 
       end 
       return result 
     end 
   elsif @revise_x > SIDE 
     result = down2(x, y + 1, distance, 6) 
     result &= down2(x + 1, y, distance) 
     if result == false 
       if down 
         move_lower_left_p 
         if @revise_x < -SIDE 
           @revise_x = -SIDE 
         end 
       end 
       return result 
     end 
   end 
   @revise_y += distance 
   return result 
 end 
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 def down2(x, y, distance, d = 2) 
   if @revise_y + distance > DOWN 
     unless passable?(x, y, d) 
       if @revise_y < DOWN 
         @revise_y = DOWN 
       end 
       return false 
     end 
   end 
   return true 
 end 
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 def move_left_p 
   turn_left 
   distance = 2 ** @move_speed 
   left1(((@x * 128 + @revise_x) / 128.0).round, 
         ((@y * 128 + @revise_y) / 128.0).round, distance, true) 
 end 
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 def left1(x, y, distance, left = false) 
   result = left2(x, y, distance) 
   if result == false 
     @event_run = check_event_trigger_touch(x-1, y) 
     return result 
   end 
   if @revise_y < -UP 
     result = left2(x - 1, y, distance, 8) 
     result &= left2(x, y - 1, distance) 
     if result == false 
       if left 
         move_lower_left_p 
         if @revise_y > DOWN 
           @revise_y = DOWN 
         end 
       end 
       return result 
     end 
   elsif @revise_y > DOWN 
     result = left2(x - 1, y, distance, 2) 
     result &= left2(x, y + 1, distance) 
     if result == false 
       if left 
         move_upper_left_p 
         if @revise_y < -UP 
           @revise_y = -UP 
         end 
       end 
       return result 
     end 
   end 
   @revise_x -= distance 
   return result 
 end 
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 def left2(x, y, distance, d = 4) 
   if @revise_x - distance < -SIDE 
     unless passable?(x, y, d) 
       if @revise_x > -SIDE 
         @revise_x = -SIDE 
       end 
       return false 
     end 
   end 
   return true 
 end 
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 def move_right_p 
     turn_right 
   distance = 2 ** @move_speed 
   right1(((@x * 128 + @revise_x) / 128.0).round, 
           ((@y * 128 + @revise_y) / 128.0).round, distance, true) 
 end 
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 def right1(x, y, distance, right = false) 
   result = right2(x, y, distance) 
   if result == false 
     @event_run = check_event_trigger_touch(x+1, y) 
     return result 
   end 
   if @revise_y < -UP 
     result = right2(x + 1, y, distance, 8) 
     result &= right2(x, y - 1, distance) 
     if result == false 
       if right 
         move_lower_right_p 
         if @revise_y > DOWN 
           @revise_y = DOWN 
         end 
       end 
       return result 
     end 
   elsif @revise_y > DOWN 
     result = right2(x + 1, y, distance, 2) 
     result &= right2(x, y + 1, distance) 
     if result == false 
       if right 
         move_upper_right_p 
         if @revise_y < -UP 
           @revise_y = -UP 
         end 
       end 
       return result 
     end 
   end 
   @revise_x += distance 
   return result 
 end 
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 def right2(x, y, distance, d = 6) 
   if @revise_x + distance > SIDE 
     unless passable?(x, y, d) 
       if @revise_x < SIDE 
         @revise_x = SIDE 
       end 
       return false 
     end 
   end 
   return true 
 end 
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 def move_up_p 
   turn_up 
   distance = 2 ** @move_speed 
   up1(((@x * 128 + @revise_x) / 128.0).round, 
       ((@y * 128 + @revise_y) / 128.0).round, distance, true) 
 end 
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 def up1(x, y, distance, up = false) 
   result = up2(x, y, distance) 
   if result == false 
     @event_run = check_event_trigger_touch(x, y-1) 
     return result 
   end 
   if @revise_x < -SIDE 
     result = up2(x, y - 1, distance, 4) 
     result &= up2(x - 1, y, distance) 
     if result == false 
       if up 
         move_upper_right_p 
         if @revise_x > SIDE 
           @revise_x = SIDE 
         end 
       end 
       return result 
     end 
   elsif @revise_x > SIDE 
     result = up2(x, y - 1, distance, 6) 
     result &= up2(x + 1, y, distance) 
     if result == false 
       if up 
         move_upper_left_p 
         if @revise_x < -SIDE 
           @revise_x = -SIDE 
         end 
       end 
       return result 
     end 
   end 
   @revise_y -= distance 
   return result 
 end 
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 def up2(x, y, distance, d = 8) 
   if @revise_y - distance < -UP 
     unless passable?(x, y, d) 
       if @revise_y > -UP 
         @revise_y = -UP 
       end 
       return false 
     end 
   end 
   return true 
 end 
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 def move_lower_left_p 
   unless @direction_fix 
     @direction = (@direction == 6 ? 4 : @direction == 8 ? 2 : @direction) 
   end 
   distance = (2 ** @move_speed) / Math.sqrt(2) 
   turn_left unless down1(((@x * 128 + @revise_x) / 128.0).round, 
                           ((@y * 128 + @revise_y) / 128.0).round, distance) 
   turn_down if @event_run 
   unless @event_run 
     if last_move?(@real_x, @real_y, 2, distance) 
       result = check_event_trigger_here([1,2], false) 
       if result == true 
         return 
       end 
     end 
     move_on 
     if @revise_y > DOWN and -UP > @revise_y - distance 
       @revise_y = DOWN 
     end 
     turn_down unless left1(((@x * 128 + @revise_x) / 128.0).round, 
                           ((@y * 128 + @revise_y) / 128.0).round, distance) 
     turn_left if @event_run 
   end 
 end 
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 def move_lower_right_p 
   unless @direction_fix 
     @direction = (@direction == 4 ? 6 : @direction == 8 ? 2 : @direction) 
   end 
   distance = (2 ** @move_speed) / Math.sqrt(2) 
   turn_right unless down1(((@x * 128 + @revise_x) / 128.0).round, 
                           ((@y * 128 + @revise_y) / 128.0).round, distance) 
   turn_down if @event_run 
   unless @event_run 
     if last_move?(@real_x, @real_y, 2, distance) 
       result = check_event_trigger_here([1,2], false) 
       if result == true 
         return 
       end 
     end 
     move_on 
     if @revise_y > DOWN and -UP > @revise_y - distance 
       @revise_y = DOWN 
     end 
     turn_down unless right1(((@x * 128 + @revise_x) / 128.0).round, 
                           ((@y * 128 + @revise_y) / 128.0).round, distance) 
     turn_right if @event_run 
   end 
 end 
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 def move_upper_left_p 
   unless @direction_fix 
     @direction = (@direction == 6 ? 4 : @direction == 2 ? 8 : @direction) 
   end 
   distance = (2 ** @move_speed) / Math.sqrt(2) 
   turn_left unless up1(((@x * 128 + @revise_x) / 128.0).round, 
                         ((@y * 128 + @revise_y) / 128.0).round, distance) 
   turn_up if @event_run 
   unless @event_run 
     if last_move?(@real_x, @real_y, 8, distance) 
       result = check_event_trigger_here([1,2], false) 
       if result == true 
         return 
       end 
     end 
     move_on 
     if @revise_y + distance > DOWN and -UP > @revise_y 
       @revise_y = -UP 
     end 
     turn_up unless left1(((@x * 128 + @revise_x) / 128.0).round, 
                           ((@y * 128 + @revise_y) / 128.0).round, distance) 
     turn_left if @event_run 
   end 
 end 
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 def move_upper_right_p 
   unless @direction_fix 
     @direction = (@direction == 4 ? 6 : @direction == 2 ? 8 : @direction) 
   end 
   distance = (2 ** @move_speed) / Math.sqrt(2) 
   turn_right unless up1(((@x * 128 + @revise_x) / 128.0).round, 
                         ((@y * 128 + @revise_y) / 128.0).round, distance) 
   turn_up if @event_run 
   unless @event_run 
     if last_move?(@real_x, @real_y, 8, distance) 
       result = check_event_trigger_here([1,2], false) 
       if result == true 
         return 
       end 
     end 
     move_on 
     if @revise_y + distance > DOWN and -UP > @revise_y 
       @revise_y = -UP 
     end 
     turn_up unless right1(((@x * 128 + @revise_x) / 128.0).round, 
                           ((@y * 128 + @revise_y) / 128.0).round, distance) 
     turn_right if @event_run 
   end 
 end 
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 def check_event_trigger_here(triggers, run = true) 
   result = false 
   if $game_system.map_interpreter.running? 
     return result 
   end 
   for event in $game_map.events.values 
     if event.x == ((@x * 128 + @revise_x) / 128.0).round and 
         event.y == ((@y * 128 + @revise_y) / 128.0).round and 
         triggers.include?(event.trigger) 
       if not event.jumping? and event.over_trigger? 
         if event.list.size > 1 
           if run == true 
             event.start 
           end 
           result = true 
         end 
       end 
     end 
   end 
   return result 
 end 
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 def move_on 
   if @y < (@y + @revise_y / 128.0).round 
     @y += 1 
     @revise_y -= 128 
   end 
 
   if @x > (@x + @revise_x / 128.0).round 
     @x -= 1 
     @revise_x += 128 
   end 
   if @x < (@x + @revise_x / 128.0).round 
     @x += 1 
     @revise_x -= 128 
   end 
   if @y > (@y + @revise_y / 128.0).round 
     @y -= 1 
     @revise_y += 128 
   end 
 end 
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 def anime_update 
   if @walk_anime 
     @anime_count += 1.5 
   elsif @step_anime 
     @anime_count += 1 
   end 
   if @anime_count > 18 - @move_speed * 2 
     if not @step_anime and @stop_count > 0 
       @pattern = @original_pattern 
     else 
       @pattern = (@pattern + 1) % 4 
     end 
     @anime_count = 0 
   end 
 end 
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 alias :moveto_original :moveto 
 def moveto(x, y) 
   @revise_x = 0 
   @revise_y = 0 
   moveto_original(x, y) 
 end 
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 def last_move?(x, y, direction, distance) 
   if direction == 2 or direction == 6 
     distance *= -1 
   end 
   if (direction == 2 or direction == 8) and 
       (y / 128.0).round != ((y - distance) / 128.0).round 
     return true 
   end 
   if (direction == 4 or direction == 6) and 
       (x / 128.0).round != ((x - distance) / 128.0).round 
     return true 
   end 
   return false 
 end 
end 
 
#============================================================================== 
# &#9632; Game_Character 
#------------------------------------------------------------------------------ 
# 
# 
#============================================================================== 
 
class Game_Character 
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 def update_move 
   distance = 2 ** @move_speed 
   if @x * 128 != @real_x and @y * 128 != @real_y and Game_Player::SLANT 
     distance /= Math.sqrt(2) 
   end 
   if @y * 128 > @real_y 
     @real_y = [@real_y + distance, @y * 128].min 
   end 
   if @x * 128 < @real_x 
     @real_x = [@real_x - distance, @x * 128].max 
   end 
   if @x * 128 > @real_x 
     @real_x = [@real_x + distance, @x * 128].min 
   end 
   if @y * 128 < @real_y 
     @real_y = [@real_y - distance, @y * 128].max 
 
   end 
   if @walk_anime 
     @anime_count += 1.5 
   elsif @step_anime 
     @anime_count += 1 
   end 
 end 
end 
 
#============================================================================== 
# &#65533;&#9632; Game_Event 
#------------------------------------------------------------------------------ 
# 
# 
#============================================================================== 
 
class Game_Event < Game_Character 
 #-------------------------------------------------------------------------- 
 #-------------------------------------------------------------------------- 
 def start 
   if @list.size > 1 
     if $game_player.event != 0 
       $game_player.move_speed = $game_player.event 
     end 
     @starting = true 
   end 
 end 
end

von 25-28 kann man die einstellungen ändern (gehgeschwindigkeit,...)
(geschwindigkeit kann auch auf X.x gestellt werden [x = zahl])
das script wurde auf der seite gefunden: http://members.jcom.home.ne.jp/cogwheel/xp/

2

Montag, 24. Januar 2005, 19:54

booaahh!!!! :o

Danke!!!
Es funktioniert!! Es funktioniert!! Muahhahahaha^^
also bei mir kriegst du einen dicken fetten credit eintrag
auch wenn du es nur gefunden hast :wink:

@ja @thx
Mein AKS kann ich jetzt verwirklichen^^

3

Dienstag, 25. Januar 2005, 16:02

@markusm: GOD OF RUBY. ALTHOUGH FOUND.

FETTER, FETTER CREDITEINTRAG BEI MIR
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.

4

Mittwoch, 26. Januar 2005, 19:44

Schade bei mir kommt:

Quellcode

1
2
?????`Scene Title´? 136 ??? NoMethod Error ????????
undefined method ´refresh´for # &lt;Game_Player&#58;0x4611a48&gt;


kannst du mir da helfen?

und das selbe passiert auch wen ich den Code con der anderen Seite nutze...

5

Mittwoch, 26. Januar 2005, 19:47

Zitat von »"coolkids2000"«

Schade bei mir kommt:

Quellcode

1
2
?????`Scene Title´? 136 ??? NoMethod Error ????????
undefined method ´refresh´for # &lt;Game_Player&#58;0x4611a48&gt;


kannst du mir da helfen?

und das selbe passiert auch wen ich den Code con der anderen Seite nutze...


Jo, bei mir genau dass selbe.. :?
Bild

6

Mittwoch, 26. Januar 2005, 19:52

Achtung! Nur drunter einfügen, d.h. den alten Code stehen lassen!

7

Mittwoch, 26. Januar 2005, 19:54

achso... danke!

Edit misst ahb net gelesen was drüber stand
memo an mich selbst:
über fliege keine Rotgeschriebene Hinweise...

[edit2]

ich weis wwarum ich es falsch gemacht habe...
für mich hört sich das so an als wen man das skript in die Game_Player vezeichnjis kopieren muss [...]

8

Mittwoch, 26. Januar 2005, 21:28

perfekt

jetzt fehlt noch diagonales springen...
*scriptteste*

9

Samstag, 29. Januar 2005, 14:25

so Abt, den code kannste langsam in Scienita einfügen...

10

Samstag, 29. Januar 2005, 17:04

Das pixelgenaues gehen hat aber auch nen ziemlich großen nachteil. Denn wenn man irgendne Wand hat die man auf "unpassierbar(X)" gestellt hat, kann man trotzdem bis zur Hälfte reinlaufen. Das is der einzige Grudn warum ichs nich verwenden würde bzw. kann.
Ansonsten ziemlich praktisch.

MP

11

Samstag, 29. Januar 2005, 18:45

Quellcode

1
2
3
 UP    = 48                  # erstellt eine wand vorn hero&#40;0 &lt; UP &lt; 63&#41; 
 DOWN  = 16                  # erstellt eine wand untern hero&#40;0 &lt; DOWN &lt;63&#41; 
 SIDE  = 32                  # erstellt eine wand links-rechts von hero&#40;0 &lt; SIDE &lt;63&#41; 


ändere die zahlen hier...
hoffe, das du es dann verwendest :wink:

12

Samstag, 29. Januar 2005, 20:18

Dankö, wenn man Side auf 0 stellt gehts dann.
Jetz nur noch ein Problem, was sich durch das benutzen ergibt. Ich hab bei mir 5 Animationsstufen drin(stehen und normal laufen) durch das zusatzliche Diagonal laufen müsste ich diese Posen natührlich auch machen. Da man auch verschiedene Outfits wählen kann(siehe mein game Thread), muss das Spiel ja auch wissen, welches grad gewählt ist. Das hab ich bis jetzt mit Allgemeinen Ereignissen gemacht, was auch gut ist und was auch so bleiben sollte. Nur klappt das nicht so wirklich beim Diagonal laufen und ich würde das jetzt gern so haben, dass wenn man nach rechts-unten läuft, switch xxxx1 angeht(möglicherweise ein andere noch off) und wenn man steht das der switch xxxx1 wieder ausgeht(möglicherweise der andere wieder an).

Hoffe du weißt was ich meine und wäre sehr froh, wenn dus mir sagen könntest(Bitte auch die zeile reinschreiben wo der Switch-befehl reinkommt und wie dieser aussieht)

MP

13

Samstag, 29. Januar 2005, 20:31

Iss doch easy:

Wichtig iss nur der Code:

Zitat von » false
case Input.dir8
when 1
move_lower_left_p
when 2
move_down_p
when 3
move_lower_right_p
when 4
move_left_p
when 6
move_right_p
when 7
move_upper_left_p
when 8
move_up_p
when 9
move_upper_right_p
end
end [/quote:dd26ac5f5d«



Da stehen die _p dahinter ( = _player )

Das ändesrt du z.B. so wenn du für Rechts_unten ne n Tab auf ON Setzen willst:

Zitat

unless moving? or $game_system.map_interpreter.running? or
@move_route_forcing or $game_temp.message_window_showing
@event_run = false
case Input.dir8
when 0
$Game_switches[XXXX] = false
when 1
$Game_switches[XXXX] = false
move_lower_left_p
when 2
$Game_switches[XXXX] = false
move_down_p
when 3
$Game_switches[XXXX] = true
move_lower_right_p
when 4
$Game_switches[XXXX] = false
move_left_p
when 6
$Game_switches[XXXX] = false
move_right_p
when 7
$Game_switches[XXXX] = false
move_upper_left_p
when 8
$Game_switches[XXXX] = false
move_up_p
when 9
$Game_switches[XXXX] = false
move_upper_right_p
end
end



WICHTIG: Füge das WHEN 0 ein. Immer wenn du einen neuen Schalter hinzufügst der Auf On Gehen soll, Musst du davor bei allen anderen Richtungen diesen Schalter auf Off Stellen. WHEN 0 iss für die Standanimation ( des weiste ja ).
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.

14

Samstag, 29. Januar 2005, 20:44

Wenn ich When 0 hinzufüge, kommt beim start des Spieles sofort ne Fehlermeldung.
Trotzdem erstma Danke für die Atnwort

MP

15

Samstag, 29. Januar 2005, 20:48

Haste Vielleciht vergessen nach

when 9
move_upper_right_p
end
end



noch ein END ein zu fügen, also 3 mal end muss hin

when 9
move_upper_right_p
end
end
end





Ps.: Was soll eigentlich dieses Slant ganz oben unter dem mit der Wand vor dem Held erstellen ????
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.

16

Samstag, 29. Januar 2005, 20:49

Wollt auch noch meinen Senf dazu geben:

Mir gefällt das Script SEHR gut.
Aber leider ist es nicht mit einem Script das ich habe kompatibel, und ich glaube ich behalte lieber 8 Animationsstufen und 8-Wege-Gehsystem für meine Ragnarokcharas als das pixelgenaue gehen und 8-Richtungen ohne eigene Grafiken.

PS. Wen das Script interessiert soll mal bei RmXP.net nach Thanksgiving googeln.
Bild Masakazu Katsura 4ever

17

Samstag, 29. Januar 2005, 20:58

Was bitteschön hat das mit eigenen Grafiken zu tun bzw. das du die nich benutzen kannst?...
Du kannst mit dem Pixelgenauem gehen auch die RO Chars usen...mach ich ja au...

MP

18

Samstag, 29. Januar 2005, 21:01

Sieht sogar besser aus....

Aber das muss makerninja selber wissen wie er es gern hat. Iss ja sein Spiel und da iss er der Boss :) , stimmts MN ?
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.

19

Samstag, 29. Januar 2005, 21:02

Jo, aber bei dem Script werden die Grafiken so verändert das man nur ein Pic für alle Grafiken braucht.

So hier:

http://www.picupload.net/image/a2120da51f84e716d214c49d1.png

Wenn ich das Script einfüge sind die 8-Stufen der Ani weg, und die Anis beim Schräglaufen... deshalb lass ich es.

Edit: Recht hast du Sir Lord Biowulve
Bild Masakazu Katsura 4ever

20

Samstag, 29. Januar 2005, 21:16

Ach sowas meinst du...hmm...cool.
Nach sowas habsch schon ewig gesucht...bis jetz hab ichs nur mit Switches und variabeln gemacht, bin aber nur auf 5 Anis gekommen(halt auf 2k-2k3 Art).

Kannste mir das script mal per PM schicken bzw. den genauen Thread dazu?
hab zwar nach thanksgiving im Forum geschaut, aber kamen nur 3 Spielevorstellungen und möchte nicht jeden Posting durchlesen um nen Hinnweis darauf zu finden.
Würde mich freuen.

MP

Social Bookmarks