• Anmelden

Josey

Storyteller

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

  • Nachricht senden

21

Freitag, 11. Juli 2014, 20:46

Kannst du mir mal den Gefallen tun und mir dein Projekt per Zip- oder Rar-Datei zuschicken?
Wenn sie zu groß ist, sie hier hochzuladen, dann auf einem anderen Hoster (mediafire zum Beispiel) hochladen und mir den Link schicken.
Mit dem Kleckerinfos komm ich sonst nicht vorran :)
Der Error sagt mir nur, dass es in Zeile 2031 einen Syntaxfehler gibt. Du sagst, da sei ein "end" aber ich muss den ganzen Code sehen, um zu schauen. ob ich da helfen kann.
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.

22

Freitag, 11. Juli 2014, 21:49

das end ding ist gegessen das spiel lief ja wieder nur bei ner bewegung kam der näste fehler und da bin ich gerade iwie dran das hin zu biegen >-< dazu ist nciht alles angepasst und auch noch nciht aussortiert die datei wäre 1,1GB groß des weiteren wüsste ich nicht wo man sone datei hochladen kann ich könnte aber eventuell schnell nen ftp server einrichten


EDIT:
(Edit nach Funktionierendem Folgen)
WICHTIG!
die jetzige datei die man Downloaden kann behinhaltet das funktionierende folgen! Da die grafik angehoben wurde sind aber nach wie vor einige grafiken verschoben und noch nicht eingerichtet!
Datei größe verpackt = 670MB

weiß nicht ob es geht komme von meinem pc nicht wirklich rauf xD
hatte ich aber schonmal nur eben das ich jetzt kein test lappi mehr habe für solche fälle xD

hoffe es klappt

Server adresse: sarias.myonlineportal.eu falls die namen auflösung nicht klappt eventuell die ip 37.5.22.228 wenn benötig hier der port: 21
fals benötigt benutzername: pokemon
pw soltle eigendlich nciht gebraucht werden
(via Firefox "
ftp://pokemon@37.5.22.228:21" oder andere browser! bei passwort abfrage einfach ok anklicken)

Edit:

also ich weiß wirklich nicht ob da jemand rauf kann :/ habe leider kein test system mehr ._. und nur mit einem pc ist das echt behindert >_<



EDIT EDIT EDIT:

zurück zum pokemon folgen mittlerweile habe ich geschafft das ich das spiel starten kann und mich bewegen kann aber ... an der stelle wo ich das event: script benutze und den befehl einfüge der dafür sorgen soll das das pokemon aus dem ball kommt erscheint folgene meldung:


Exception: RuntimeError
Message: Script error within event 9, map 5 (Prof.Eich's Labor):
Exception: NameError
Message: (eval):1:in `pbExecuteScript'undefined local variable or method `x' for #<Interpreter:0xfbf20b0>
***Full script:
pbPokemonFollow(x)

Interpreter:243:in `pbExecuteScript'
Interpreter:1600:in `eval'
Interpreter:243:in `pbExecuteScript'
Interpreter:1600:in `command_355'
Interpreter:494:in `execute_command'
Interpreter:193:in `update'
Interpreter:106:in `loop'
Interpreter:198:in `update'
Scene_Map:103:in `update'
Scene_Map:101:in `loop'

Interpreter:276:in `pbExecuteScript'
Interpreter:1600:in `command_355'
Interpreter:494:in `execute_command'
Interpreter:193:in `update'
Interpreter:106:in `loop'
Interpreter:198:in `update'
Scene_Map:103:in `update'
Scene_Map:101:in `loop'
Scene_Map:114:in `update'
Scene_Map:68:in `main'

so nach dieser auflistung steht da also das, dass befehls event nen haufen probleme auslöst ..

nun schriebt der typ aber:


How to use the Script



Alright. So this is a lot of information to take in at once, especially
if you have zero scripting knowledge. As long as you followed these
instructions perfectly, and I haven't forgotten anything, your game
should load without any errors. Now, to call the script use:




Code:
pbPokemonFollow(x)

where "x" is the EVENT ID of the event that will become the
follower. I cannot stress this enough. Many people see this and think
"x" is the number of pokemon that will follow the player. This script
supports a SINGLE follower. The "x" is the EVENT ID.

so bei mir wäre das nun event nummer 3 oder muss ich da 003 eingeben ? o.O ok ich probiere es mal mit 003 dann mal sehen o_o


Edit v.v :

habe es nun mit der 003 probiert und es geht nicht naja solange man nicht auf strg drückt kommt erstmal auch kein fehler .... ich werde mal noch die kämpfe checken die man bisher machen kann :/

Edit:

ok die kämpfe sollte man nun auch sein lassen ab da wo man ep bekommt gibts wieder ne fehler meldung <.<
dummen scheiß amis gehen mir echt auf den keks -.-


so habe die schnautze voll werde nachher nochmal komplett von vorne anfangen und diese dumme dreckskacke mit dem follow lassen -.-
kotzt ein ja eh nur an aber danke für die versuchte hilfe :3
es sei denn da sieht jemand durch und kann es richten dann amche ich gerne auch weiter xD
(Funktioniert nun datei beinhaltet nun das funktionierende script falls es jemand braucht! beachte aber dennoch das das einfache rüber kopieren eventuell auch anders eingestellte sachen übernimmt da mehrere script teile übernommen werden müssen! Link zur passenden seite [Essentials script] Even More Fixes and Additions to Help-14's Following Pokemon Script - The PokéCommunity Forums )

Demnäst schreibe ich nach ganz unten wo was am besten hinkommt.

Dieser Beitrag wurde bereits 16 mal editiert, zuletzt von »Sarias« (14. Juli 2014, 00:22)


23

Sonntag, 13. Juli 2014, 21:50

Hab den Thread nicht gelesen, sondern kommentiere nur mal den letzten Beitrag:

Zitat

EDIT EDIT EDIT:

zurück zum pokemon folgen mittlerweile habe ich geschafft das ich das spiel starten kann und mich bewegen kann aber ... an der stelle wo ich das event: script benutze und den befehl einfüge der dafür sorgen soll das das pokemon aus dem ball kommt erscheint folgene meldung:


Exception: RuntimeError
Message: Script error within event 9, map 5 (Prof.Eich's Labor):
Exception: NameError
Message: (eval):1:in `pbExecuteScript'undefined local variable or method `x' for #<Interpreter:0xfbf20b0>
***Full script:
pbPokemonFollow(x)
X ist, wie Du ja herausgefunden hast ein Platzhalter in einem Beispiel und keine Variable, hier ist also eine Zahl für X einzutragen.

Zitat

so bei mir wäre das nun event nummer 3 oder muss ich da 003 eingeben ? o.O ok ich probiere es mal mit 003 dann mal sehen o_o
Du trägst eine 3 ein. Wenn Du führende Nullen davorsetzt, denkt das Programm, die Zahl ist im Octalsystem (Achtersystem) notiert, statt im Dezimalsystem (Zehnersystem). Bei 3 macht das noch keinen Unterschied, aber 0088 wäre syntaktisch falsch und 0128 entspräche im Dezimalsystem der 1010

Zitat

solange man nicht auf strg drückt kommt erstmal auch kein fehler
Der Fehler liegt daran, das die benötigten Methoden, wie pbToggleFollowingPokemon im Mainskript, und zwar nach dem Start des Spiels erst definiert werden. Du kannst sie also erst benutzen, wenn Du das Spiel beendet hast, was natürlich nichts bringt.
Ich kenn mich mit dem Starterkit nicht aus, aber ich bin mir ziemlich sicher, der Teil ab Zeile 56 sollte woanders stehen und nicht unten ans Main-Skript angehängt werden.

24

Sonntag, 13. Juli 2014, 21:59

hallo un danke für die antwort ^^ ich werde mich dem mal nochmals annehmen und mal schauen ob die ratschläge auch was bringen weil das ganze ist echt hoffnungslos bisher ._.


EDIT:
Hey super der tipp mit dem Main war vollkommen richtig ^^ pikachu läuft mir jetzt hinterher *_* herzlichen dank ^^ ich gehe jetzt mal ins hohe gras gucke was passiert nach einem kampf und nach pokemon fangen usw ^^


EDIT:
Der kampf funktioniert auch ebenfalls ist das fangen kein Problem und ich hoffe das damit die Follow sache jetzt abgeschlossen ist *_* vbielen dank für die hilfe *___* vielleicht finde ich ja noch andere probleme wo ich selbst nicht klar komme :x hoffe aber das sich das in grenzen hält oder nichts der gleichen von nöten ist :x xD

vwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwv
Edit: Kurze deutsche anleitung sogut ich kann >___<
vwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwv

in den Script Settings kommt nach ganz unten:

Spoiler

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#===============================================================================
# * Config Script For Your Game Here. Change the emo_ to what ever number is 
#    	the cell holding the animation.
#===============================================================================
Following_Activated_Switch = 126  	# Switch should be reserved
Toggle_Following_Switch = 103     	# Switch should be reserved
Current_Following_Variable = 36   	# Variable should be reserved
CommonEvent = 4                   	# Common Event space needed
ItemWalk=26                       	# Variable should be reserved
Walking_Time_Variable = 27        	# Variable should be reserved
Walking_Item_Variable = 28        	# Variable should be reserved
Animation_Come_Out = 93           	
Animation_Come_In = 94
Emo_Happy = 95
Emo_Normal = 96
Emo_Hate = 97
Emo_Poison= 98
Emo_sing= 99
Emo_love= 100
zum Lesen den Text mit der Maus markieren



In dem Script Main kommt diereckt in Zeile 1:

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
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
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
#===============================================================================
# * Credit to Help-14 for both the original scripts and sprites
# * Change Log:
#===============================================================================
 
#===============================================================================
# * Edited by zingzags
#===============================================================================
# * Fixed bugs
# * Clean ups
# * Fixed Surf Bug (After Surf is done)
# * Fixed def talk_to_pokemon while in surf
# * Fixed Surf Check
# * Fixed Type Check
# * Added Door Support
# * Fixed Hp Bug
# * Added Pokemon Center Support
# * Animation problems
# * Fixed Walk_time_variable problem
# * Added random item loot
# * Added egg check
#===============================================================================
 
#===============================================================================
# * Edited by Rayd12smitty
# * Version 1.0
#===============================================================================
# * Fixed Walk_Time_Variable
# * Fixed crash when talking to Pokemon on a different map than the original
#   they appeared on
# * Receiving Items from Pokemon now works
# * Improved Talk_to_Pokemon wiht more messages and special messages
# * Added messages for all Status Conditions
# * Added Party Rotation to switch follower
# * Made Following Pokemon Toggleable
# * Added Animation for Pokemon coming out of Pokeball in sprite_refresh
# * Tidied up script layout and made more user friendly
# * Fixed Issues with Pokemon jumping around on ledges
# * Fixed Badge for Surf Typo in the script
#===============================================================================
# * Version 1.1
#===============================================================================
# * Fixed Surfing so Pokemon doesn't reappear on water when toggled off
# * Changed Layout and location of Toggle Script
#===============================================================================
 
#===============================================================================
# * Edited by Rayd12smitty and venom12
# * Version 1.2
#===============================================================================
# * Fixed Walk step count so it doesn't add on when Pokemon is toggled off
# * No longer have to manually set Toggle_Following_Switch and
#   Following_Activated_Switch whenever "pbPokemonFollow(x)" is called
# * Now supports Pokemon with multiple forms
# * Items found on specific maps support
# * Support for messages when on a map including a word/phrase in its name
#   rather than a single map
# * Added stepping animation for follower
# * Fixed dismount bike so Pokemon reappears
# * Fixed bike so if it couldn't be used it now can
# * Few other small bike fixes
#===============================================================================
 
#===============================================================================
# * Version 1.3
#===============================================================================
# * Fixed bug with surf where the Follower could block the player from being
#   able to surf, possibly stranding the player
# * Added script to animate all events named "Poke"
# * Increased time to find an item. I realize now that 5000 frames is less than
#   5 min. Way too short.
#===============================================================================
 
#===============================================================================
# * To Do
#===============================================================================
# * When Follower is toggled off remove grass/field animations
# * Fix up map transfers a bit more
# * Make NPCs not able to walk over the Follower
#===============================================================================
 
 
 
#===============================================================================
# * Control the following Pokemon
# * Example:
# 	FollowingMoveRoute([
#     	PBMoveRoute::TurnRight,
#     	PBMoveRoute::Wait,4,
#     	PBMoveRoute::Jump,0,0
# 	])
# * The Pokemon turns Right, waits 4 frames, and then jumps
# * Call pbPokeStep to animate all events on the map named "Poke"
#===============================================================================
def FollowingMoveRoute(commands,waitComplete=false)
  $PokemonTemp.dependentEvents.SetMoveRoute(commands,waitComplete)
end
def pbPokeStep
  for event in $game_map.events.values
	if event.name=="Poke"           	
  	pbMoveRoute(event,[PBMoveRoute::StepAnimeOn])
	end
  end
end
#===============================================================================
# * Toggle for Following Pokemon
#===============================================================================
def pbToggleFollowingPokemon
  if $game_switches[Following_Activated_Switch]==true
	if $game_switches[Toggle_Following_Switch]==true
  	$PokemonTemp.dependentEvents.remove_sprite(true)
  	pbWait(1)
  	$game_switches[Toggle_Following_Switch]=false
	else
  	$FollowingFinishedSurfing = false
  	$PokemonTemp.dependentEvents.refresh_sprite
  	pbWait(1)
  	$game_switches[Toggle_Following_Switch]=true
	end
  end
end
 
 
 
class DependentEvents
#===============================================================================
# Raises The Current Pokemon's Happiness level +1 per each time the 
# Walk_time_Variable reachs 5000 then resets to 0
# ItemWalk, is when the variable reaches a certain amount, that you are able 
# to talk to your pokemon to recieve an item
#===============================================================================
  def add_following_time
	$PokemonTemp.dependentEvents.update_stepping
	if $game_switches[Toggle_Following_Switch]==true && $Trainer.party.length>=1
  	$game_variables[Walking_Time_Variable]+=1 if $game_variables[Current_Following_Variable]!=$Trainer.party.length
  	$game_variables[Walking_Item_Variable]+=1 if $game_variables[Current_Following_Variable]!=$Trainer.party.length
  	if $game_variables[Walking_Time_Variable]==5000
    	$Trainer.party[0].happiness+=1
    	$game_variables[Walking_Time_Variable]=0
  	end
  	if $game_variables[Walking_Item_Variable]==1000
    	if $game_variables[ItemWalk]==15
    	else
      	$game_variables[ItemWalk]+=1
    	end
    	$game_variables[Walking_Item_Variable]=0
  	end
	end
  end
#===============================================================================
# * refresh_sprite
# * Updates the sprite sprite with an animation
#===============================================================================
  def refresh_sprite
	if $Trainer.party.length!=$game_variables[Current_Following_Variable]
  	if $Trainer.party[0].isShiny?
    	shiny=true
  	else
    	shiny=false
  	end
  	if $Trainer.party[0].form>0
    	form=$Trainer.party[0].form
  	else
    	form=nil
  	end
  	if $Trainer.party[0].hp>0 && !$Trainer.party[0].egg?
    	events=$PokemonGlobal.dependentEvents
    	for i in 0...events.length
      	$scene.spriteset.addUserAnimation(Animation_Come_Out,@realEvents.x,@realEvents.y)
      	pbWait(10)
    	end
    	change_sprite($Trainer.party[0].species, shiny, false, form)
  	elsif $Trainer.party[0].hp<=0 
    	remove_sprite
  	end
	end
  end
#===============================================================================
# * change_sprite(id, shiny, animation)
# * Example, to change sprite to shiny lugia with animation:
# 	change_sprite(249, true, true)
# * If just change sprite:
# 	change_sprite(249)
#===============================================================================
  def change_sprite(id, shiny=nil, animation=nil, form=nil)
	events=$PokemonGlobal.dependentEvents
	for i in 0...events.length
  	if events && events[8]=="Dependent"
    	if shiny==true
      	events[6]=sprintf("ds",id)
      	if FileTest.image_exist?("Graphics/Characters/"+events[6])
        	@realEvents.character_name=sprintf("ds",id)
      	else
        	events[6]=sprintf("d",id)
        	@realEvents.character_name=sprintf("d",id)
      	end
    	else
      	if $Trainer.party[0].form>0
      	events[6]=sprintf("d",id)
      	@realEvents.character_name=sprintf("d_%d",id,$Trainer.party[0].form)
    	else
      	events[6]=sprintf("d",id)
      	@realEvents.character_name=sprintf("d",id)
      	end
    	end
  	if animation==true
    	$scene.spriteset.addUserAnimation(Animation_Come_Out,@realEvents.x,@realEvents.y)
  	end
  	$game_variables[Walking_Time_Variable]=0
  	end
	end
  end
#===============================================================================
# * update_stepping
# * Adds step animation for followers
#===============================================================================  
  def update_stepping
	FollowingMoveRoute([PBMoveRoute::StepAnimeOn])
  end
#===============================================================================
# * remove_sprite(animation)
# * Example, to remove sprite with animation:
# 	remove_sprite(true)
# * If just remove sprite:
# 	remove_sprite
#===============================================================================
  def remove_sprite(animation=nil)
	events=$PokemonGlobal.dependentEvents
	for i in 0...events.length
  	if events && events[8]=="Dependent"
    	events[6]=sprintf("nil")
    	@realEvents.character_name=sprintf("nil")
    	if animation==true
      	$scene.spriteset.addUserAnimation(Animation_Come_In,@realEvents.x,@realEvents.y)
      	pbWait(10)
    	end
    	$game_variables[Current_Following_Variable]=$Trainer.party[0]
    	$game_variables[Walking_Time_Variable]=0
  	end
	end
  end
#===============================================================================
# * check_surf(animation)
# * If current Pokemon is a water Pokemon, it is still following.
# * If current Pokemon is not a water Pokemon, remove sprite.
# * Require Water_Pokemon_Can_Surf = true to enable
#===============================================================================
  def check_surf(animation=nil)
	events=$PokemonGlobal.dependentEvents
	for i in 0...events.length
  	if events && events[8]=="Dependent"
    	events[6]=sprintf("nil")
    	@realEvents.character_name=sprintf("nil")
  	else
    	if $Trainer.party[0].hp>0 && !$Trainer.party[0].egg?
      	if $Trainer.party[0].hasType?(:WATER)
      	else
        	remove_sprite
        	pbWait(20)
      	end
    	elsif $Trainer.party[0].hp<=0 
    	end
  	end
	end
  end
#===============================================================================
# * talk_to_pokemon
# * It will run when you talk to Pokemon following
#===============================================================================
  def talk_to_pokemon
	e=$Trainer.party[0]
	events=$PokemonGlobal.dependentEvents
	for i in 0...events.length
  	if events && events[8]=="Dependent"
    	pos_x=@realEvents.x
    	pos_y=@realEvents.y
  	end
	end
	if e==0
	else
  	if e.hp>0 && !$Trainer.party[0].egg?
    	if $PokemonGlobal.surfing==true || $PokemonGlobal.bicycle==true
    	else
#===============================================================================
# * Checks to make sure the Pokemon isn't blocking a surfable water surface
# * If the water is blocked by the sprite (even though it is invisible) and
#   the player should be able to surf, calls surf
#===============================================================================
    	terrain=Kernel.pbFacingTerrainTag
    	notCliff=$game_map.passable?($game_player.x,$game_player.y,$game_player.direction)
    	if pbIsWaterTag?(terrain) || !notCliff
      	if !pbGetMetadata($game_map.map_id,MetadataBicycleAlways) && !$PokemonGlobal.surfing
        	if $DEBUG
          	$FollowingFinishedSurfing = false
          	Kernel.pbSurf
        	elsif (HIDDENMOVESCOUNTBADGES ? $Trainer.numbadges>=BADGEFORSURF : $Trainer.badges[BADGEFORSURF])
          	$FollowingFinishedSurfing = false
          	Kernel.pbSurf
        	end
      	end
#===============================================================================
# * talk_to_pokemon when possible begins here
#===============================================================================
    	elsif e!=6 && $game_switches[Toggle_Following_Switch]==true
      	pbPlayCry(e.species)
      	random1=rand(7) # random message if no special conditions apply
      	mapname=$game_map.name # Get's current map name
#===============================================================================
# * Pokemon Messages when Status Condition
#===============================================================================      	
      	if e.status==PBStatuses::POISON && e.hp>0 && !e.egg? # Pokemon Poisoned
        	$scene.spriteset.addUserAnimation(Emo_Poison, pos_x, pos_y-2)
        	pbWait(120)
        	Kernel.pbMessage(_INTL("{1} is shivering with the effects of being poisoned.",e.name))
 
      	elsif e.status==PBStatuses::BURN && e.hp>0 && !e.egg? # Pokemon Burned
        	$scene.spriteset.addUserAnimation(Emo_Hate, pos_x, pos_y-2)
        	pbWait(70)
        	Kernel.pbMessage(_INTL("{1}'s burn looks painful.",e.name))
 
      	elsif e.status==PBStatuses::FROZEN && e.hp>0 && !e.egg? # Pokemon Frozen
        	$scene.spriteset.addUserAnimation(Emo_Normal, pos_x, pos_y-2)
        	pbWait(100)
        	Kernel.pbMessage(_INTL("{1} seems very cold. It's frozen solid!",e.name))
 
      	elsif e.status==PBStatuses::SLEEP && e.hp>0 && !e.egg? # Pokemon Asleep
        	$scene.spriteset.addUserAnimation(Emo_Normal, pos_x, pos_y-2)
        	pbWait(100)
        	Kernel.pbMessage(_INTL("{1} seems really tired.",e.name))
 
      	elsif e.status==PBStatuses::PARALYSIS && e.hp>0 && !e.egg? # Pokemon Paralyzed
        	$scene.spriteset.addUserAnimation(Emo_Normal, pos_x, pos_y-2)
        	pbWait(100)
        	Kernel.pbMessage(_INTL("{1} is standing still and twitching.",e.name))
#===============================================================================
# * Pokemon is holding an item on a Specific Map
#===============================================================================       	
      	elsif $game_variables[ItemWalk]==15 and mapname=="Item Map" # Pokemon has item and is on map "Item Map"
        	items=[:MASTERBALL,:MASTERBALL] # This array can be edited and extended. Look at the one below for a guide
        	random2=0
        	loop do
          	random2=rand(items.length)
          	break if hasConst?(PBItems,items[random2])
        	end
        	Kernel.pbMessage(_INTL("{1} seems to be holding something.",e.name))
        	Kernel.pbPokemonFound(getConst(PBItems,items[random2]))
        	$game_variables[ItemWalk]=0
#===============================================================================
# * Pokemon is holding an item on any other map
#===============================================================================        	
      	elsif $game_variables[ItemWalk]==15 # Pokemon has Item
        	items=[:POTION,:SUPERPOTION,:FULLRESTORE,:REVIVE,:PPUP,
             	:PPMAX,:RARECANDY,:REPEL,:MAXREPEL,:ESCAPEROPE,
             	:HONEY,:TINYMUSHROOM,:PEARL,:NUGGET,:GREATBALL,
             	:ULTRABALL,:THUNDERSTONE,:MOONSTONE,:SUNSTONE,:DUSKSTONE,
             	:REDAPRICORN,:BLUAPRICORN,:YLWAPRICORN,:GRNAPRICORN,:PNKAPRICORN,
             	:BLKAPRICORN,:WHTAPRICORN
        	]
        	random2=0
        	loop do
          	random2=rand(items.length)
          	break if hasConst?(PBItems,items[random2])
        	end
 
        	Kernel.pbMessage(_INTL("{1} seems to be holding something.",e.name))
        	Kernel.pbPokemonFound(getConst(PBItems,items[random2]))
        	$game_variables[ItemWalk]=0
#===============================================================================
# * Examples of Map Specific Messages
#===============================================================================
      	elsif mapname=="Dusk Forest" && e.hasType?(:BUG) # Bug Type in Dusk Forest
        	$scene.spriteset.addUserAnimation(Emo_sing, pos_x, pos_y-2)
        	pbWait(50)
        	random3=rand(3)
        	if random3==0
          	Kernel.pbMessage(_INTL("{1} seems highly interested in the trees.",e.name,$Trainer.name))
        	elsif random3==1
          	Kernel.pbMessage(_INTL("{1} seems to enjoy the buzzing of the bug Pokémon.",e.name,$Trainer.name))
        	elsif random3==2
          	Kernel.pbMessage(_INTL("{1} is jumping around restlessly in the forest.",e.name,$Trainer.name))
        	end
 
      	elsif mapname=="Old Lab" # In the Old Lab
        	$scene.spriteset.addUserAnimation(Emo_Normal, pos_x, pos_y-2)
        	pbWait(100)
        	random3=rand(3)
        	if random3==0
          	Kernel.pbMessage(_INTL("{1} is touching some kind of switch.",e.name,$Trainer.name))
        	elsif random3==1
          	Kernel.pbMessage(_INTL("{1} has a cord in its mouth!",e.name,$Trainer.name))
        	elsif random3==2
          	Kernel.pbMessage(_INTL("{1} seems to want to touch the machinery.",e.name,$Trainer.name))
        	end  
 
      	elsif mapname=="Home" # In the Player's Home
        	$scene.spriteset.addUserAnimation(Emo_Happy, pos_x, pos_y-2)
        	pbWait(70)
        	random3=rand(3)
        	if random3==0
          	Kernel.pbMessage(_INTL("{1} is sniffing around the room.",e.name,$Trainer.name))
        	elsif random3==1
          	Kernel.pbMessage(_INTL("{1} noticed {2}'s mom is nearby.",e.name,$Trainer.name))
        	elsif random3==2
          	Kernel.pbMessage(_INTL("{1} seems to want to settle down at home.",e.name,$Trainer.name))
        	end
      	elsif mapname.include?("Route") # On any map that includes "Route" in the name
        	# Animation goes here
        	# Appropriate wait time for animation goes here
        	# random3=rand(x)
        	# different random messages
#===============================================================================
# * Random Messages if none of the above apply
#===============================================================================        	
      	elsif random1==0 # Music Note
        	$scene.spriteset.addUserAnimation(Emo_sing, pos_x, pos_y-2)
        	pbWait(50)
        	random3=rand(5)
        	if random3==0
          	Kernel.pbMessage(_INTL("{1} seems to want to play with {2}.",e.name,$Trainer.name))
        	elsif random3==1
          	Kernel.pbMessage(_INTL("{1} is singing and humming.",e.name,$Trainer.name))
        	elsif random3==2
          	Kernel.pbMessage(_INTL("{1} is looking up at the sky.",e.name,$Trainer.name))
        	elsif random3==3
          	Kernel.pbMessage(_INTL("{1} swayed and danced around as it pleased.",e.name,$Trainer.name))
        	elsif random3==4
          	Kernel.pbMessage(_INTL("{1} is pulling out the grass.",e.name,$Trainer.name))
        	end
 
      	elsif random1==1 # Hate/Angry Face
        	$scene.spriteset.addUserAnimation(Emo_Hate, pos_x, pos_y-2)
        	pbWait(70)
        	random3=rand(5)
        	if random3==0
          	Kernel.pbMessage(_INTL("{1} let out a roar!",e.name,$Trainer.name))
        	elsif random3==1
          	Kernel.pbMessage(_INTL("{1} is making a face like it's angry!",e.name,$Trainer.name))
        	elsif random3==2
          	Kernel.pbMessage(_INTL("{1} seems to be angry for some reason.",e.name,$Trainer.name))
        	elsif random3==3
          	Kernel.pbMessage(_INTL("{1} chewed on your feet.",e.name,$Trainer.name))
        	elsif random3==4
          	Kernel.pbMessage(_INTL("{1} is trying to be intimidating.",e.name,$Trainer.name))
        	end
 
      	elsif random1==2 # ... Emoji
        	$scene.spriteset.addUserAnimation(Emo_Normal, pos_x, pos_y-2)
        	pbWait(100)
        	random3=rand(5)
        	if random3==0
          	Kernel.pbMessage(_INTL("{1} is looking down steadily.",e.name,$Trainer.name))
        	elsif random3==1
          	Kernel.pbMessage(_INTL("{1} is sniffing at the floor.",e.name,$Trainer.name))
        	elsif random3==2
          	Kernel.pbMessage(_INTL("{1} is concentrating deeply.",e.name,$Trainer.name))
        	elsif random3==3
          	Kernel.pbMessage(_INTL("{1} faced this way and nodded.",e.name,$Trainer.name))
        	elsif random3==4
          	Kernel.pbMessage(_INTL("{1} is glaring straight into {2}'s eyes.",e.name,$Trainer.name))
        	end
 
      	elsif random1==3 # Happy Face
        	$scene.spriteset.addUserAnimation(Emo_Happy, pos_x, pos_y-2)
        	pbWait(70)
        	random3=rand(5)
        	if random3==0
          	Kernel.pbMessage(_INTL("{1} began poking you in the stomach.",e.name,$Trainer.name))
        	elsif random3==1
          	Kernel.pbMessage(_INTL("{1} looks very happy.",e.name,$Trainer.name))
        	elsif random3==2
          	Kernel.pbMessage(_INTL("{1} happily cuddled up to you.",e.name,$Trainer.name))
        	elsif random3==3
          	Kernel.pbMessage(_INTL("{1} is so happy that it can't stand still.",e.name,$Trainer.name))
        	elsif random3==4
          	Kernel.pbMessage(_INTL("{1} looks like it wants to lead!",e.name,$Trainer.name))
        	end
 
      	elsif random1==4 # Heart Emoji
        	$scene.spriteset.addUserAnimation(Emo_love, pos_x, pos_y-2)
        	pbWait(70)
        	random3=rand(5)
        	if random3==0
          	Kernel.pbMessage(_INTL("{1} suddenly started walking closer.",e.name,$Trainer.name))
        	elsif random3==1
          	Kernel.pbMessage(_INTL("Woah! {1} suddenly hugged {2}.",e.name,$Trainer.name))
        	elsif random3==2
          	Kernel.pbMessage(_INTL("{1} is rubbing up against you.",e.name,$Trainer.name))
        	elsif random3==3
          	Kernel.pbMessage(_INTL("{1} is keeping close to {2}.",e.name,$Trainer.name))
        	elsif random3==4
          	Kernel.pbMessage(_INTL("{1} blushed.",e.name,$Trainer.name))
        	end
 
      	elsif random1==5 # No Emoji
        	random3=rand(5)
        	if random3==0
          	Kernel.pbMessage(_INTL("{1} spun around in a circle!",e.name,$Trainer.name))
        	elsif random3==1
          	Kernel.pbMessage(_INTL("{1} let our a battle cry.",e.name,$Trainer.name))
        	elsif random3==2
          	Kernel.pbMessage(_INTL("{1} is on the lookout!",e.name,$Trainer.name))
        	elsif random3==3
          	Kernel.pbMessage(_INTL("{1} is standing patiently.",e.name,$Trainer.name))
        	elsif random3==4
          	Kernel.pbMessage(_INTL("{1} is looking around restlessly.",e.name,$Trainer.name))
        	end
#===============================================================================
# * This random message shows the Pokemon's Happiness Level
#===============================================================================         	
      	elsif random1==6 # Check Happiness Level
        	if e.happiness>0 && e.happiness<=50
          	$scene.spriteset.addUserAnimation(Emo_Hate, pos_x, pos_y-2)
          	pbWait(70)
          	Kernel.pbMessage(_INTL("{1} hates to travel with {2}.",e.name,$Trainer.name))
        	elsif e.happiness>50 && e.happiness<=100
          	$scene.spriteset.addUserAnimation(Emo_Normal, pos_x, pos_y-2)
          	pbWait(100)
          	Kernel.pbMessage(_INTL("{1} is still unsure about traveling with {2} is a good thing or not.",e.name,$Trainer.name))
        	elsif e.happiness>100 && e.happiness<150
          	$scene.spriteset.addUserAnimation(Emo_Happy, pos_x, pos_y-2)
          	Kernel.pbMessage(_INTL("{1} is happy traveling with {2}.",e.name,$Trainer.name))
        	elsif e.happiness>=150
          	$scene.spriteset.addUserAnimation(Emo_love, pos_x, pos_y-2)
          	pbWait(70)
          	Kernel.pbMessage(_INTL("{1} loves traveling with {2}.",e.name,$Trainer.name))
        	end
      	end
    	else
    	end
  	end
	end
  end
end
#===============================================================================
# * Pokemon reapear after using surf
#===============================================================================
def Come_back(shiny=nil, animation=nil)
  events=$PokemonGlobal.dependentEvents
  if $game_variables[Current_Following_Variable]==$Trainer.party.length
	remove_sprite(false)
	for i in 0...events.length 
  	$scene.spriteset.addUserAnimation(Animation_Come_Out,@realEvents.x,@realEvents.y)
	end
  else
	if $Trainer.party[0].isShiny?
  	shiny=true
	else
  	shiny=false
	end
	change_sprite($Trainer.party[0].species, shiny, false)
  end
  for i in 0..$Trainer.party.length-1
	if $Trainer.party.hp>0 && !$Trainer.party[0].egg?
  	$game_variables[Current_Following_Variable]=i
  	refresh_sprite
  	break
	end
  end
  for i in 0...events.length 
	for i in 0..$Trainer.party.length-1
  	if $Trainer.party.hp<=0 
    	id = $Trainer.party.species
  	else
    	id = $Trainer.party.species
  	end
	end
	if events && events[8]=="Dependent"
  	if shiny==true
    	events[6]=sprintf("ds",id)
    	if FileTest.image_exist?("Graphics/Characters/"+events[6])
      	@realEvents.character_name=sprintf("ds",id)
    	else
      	events[6]=sprintf("d",id)
      	@realEvents.character_name=sprintf("d",id)
    	end
  	else
    	events[6]=sprintf("d",id)
    	@realEvents.character_name=sprintf("d",id)
  	end
  	if animation==true
  	else
  	end
	end 
  end 
end
#===============================================================================
# * check_faint
# * If current Pokemon is fainted, removes the sprite
#===============================================================================
def check_faint
  if $PokemonGlobal.surfing==true || $PokemonGlobal.bicycle==true
  else
	if $Trainer.party[0].hp<=0 
  	$game_variables[Current_Following_Variable]=0 
  	remove_sprite
	elsif $Trainer.party[0].hp>0 && !$Trainer.party[0].egg?
	end 
  end
end
#===============================================================================
# * SetMoveRoute
# * Used in the "Control Following Pokemon" Script listed farther above
#===============================================================================
def SetMoveRoute(commands,waitComplete=false)
	events=$PokemonGlobal.dependentEvents
	for i in 0...events.length
  	if events && events[8]=="Dependent"
    	pbMoveRoute(@realEvents,commands,waitComplete)
  	end
	end
  end
end
 
 
 
#===============================================================================
# * Auto add Script to Kernel.pbSurf, It'll check curent Pokemon when surf
#===============================================================================
def Kernel.pbSurf
#  if $game_player.pbHasDependentEvents?
#	return false
#  end
  if $DEBUG ||
	(HIDDENMOVESCOUNTBADGES ? $Trainer.numbadges>=BADGEFORSURF : $Trainer.badges[BADGEFORSURF])
	movefinder=Kernel.pbCheckMove(:SURF)
	if $DEBUG || movefinder
  	if Kernel.pbConfirmMessage(_INTL("The water is dyed a deep blue...  Would you like to surf?"))
    	speciesname=!movefinder ? $Trainer.name : movefinder.name
    	Kernel.pbMessage(_INTL("{1} used Surf!",speciesname))
    	pbHiddenMoveAnimation(movefinder)
#    	$PokemonTemp.dependentEvents.check_surf
    	surfbgm=pbGetMetadata(0,MetadataSurfBGM)
    	$PokemonTemp.dependentEvents.check_surf
    	if surfbgm
      	pbCueBGM(surfbgm,0.5)
    	end
    	pbStartSurfing()
    	return true
  	end
	end
  end
  return false
end
 
def pbStartSurfing()
  Kernel.pbCancelVehicles
  $PokemonEncounters.clearStepCount
  $PokemonGlobal.surfing=true
  Kernel.pbUpdateVehicle
  Kernel.pbJumpToward
  Kernel.pbUpdateVehicle
  $game_player.check_event_trigger_here([1,2])
end
#===============================================================================
# * Auto add Script to pbEndSurf, It'll show sprite after surf
#===============================================================================
def pbEndSurf(xOffset,yOffset)
  return false if !$PokemonGlobal.surfing
  x=$game_player.x
  y=$game_player.y
  currentTag=$game_map.terrain_tag(x,y)
  facingTag=Kernel.pbFacingTerrainTag
  if pbIsSurfableTag?(currentTag)&&!pbIsSurfableTag?(facingTag)
	if Kernel.pbJumpToward
  	Kernel.pbCancelVehicles
  	$game_map.autoplayAsCue
  	$game_player.increase_steps
  	result=$game_player.check_event_trigger_here([1,2])
  	Kernel.pbOnStepTaken(result)
  	$FollowingFinishedSurfing = true
	end
	return true
  end
  return false
end
#===============================================================================
# * Auto add Script to Kernel.pbCanUseHiddenMove, fix HM bug
#===============================================================================
def Kernel.pbCanUseHiddenMove?(pkmn,move)
  case move
	when PBMoves::FLY
  	if !$DEBUG && !$Trainer.badges[BADGEFORFLY]
    	Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
    	return false
  	end
   #  if $game_player.pbHasDependentEvents?
   #	Kernel.pbMessage(_INTL("You can't use that if you have someone with you."))
   #	return false
   #  end
  	if !pbGetMetadata($game_map.map_id,MetadataOutdoor)
    	Kernel.pbMessage(_INTL("Can't use that here."))
    	return false
  	end
  	return true
	when PBMoves::CUT
  	if !$DEBUG && !$Trainer.badges[BADGEFORCUT]
    	Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
    	return false
  	end
  	facingEvent=$game_player.pbFacingEvent
  	if !facingEvent || facingEvent.name!="Tree"
    	Kernel.pbMessage(_INTL("Can't use that here."))
    	return false
  	end
  	return true
	when PBMoves::HEADBUTT
  	facingEvent=$game_player.pbFacingEvent
  	if !facingEvent || facingEvent.name!="HeadbuttTree"
    	Kernel.pbMessage(_INTL("Can't use that here."))
    	return false
  	end
  	return true
	when PBMoves::SURF
  	terrain=Kernel.pbFacingTerrainTag
  	if !$DEBUG && !$Trainer.badges[BADGEFORSURF]
    	Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
    	return false
  	end
  	if $PokemonGlobal.surfing
    	Kernel.pbMessage(_INTL("You're already surfing."))
    	return false
  	end
   #   if $game_player.pbHasDependentEvents?
   #  	Kernel.pbMessage(_INTL("You can't use that if you have someone with you."))
   #  	return false
   #   end
  	terrain=Kernel.pbFacingTerrainTag
  	if pbGetMetadata($game_map.map_id,MetadataBicycleAlways)
    	Kernel.pbMessage(_INTL("Let's enjoy cycling!"))
    	return false
  	end
  	if !pbIsWaterTag?(terrain)
    	Kernel.pbMessage(_INTL("No surfing here!"))
    	return false
  	end
  	return true
	when PBMoves::STRENGTH
  	if !$DEBUG && !$Trainer.badges[BADGEFORSTRENGTH]
    	Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
    	return false
  	end
  	facingEvent=$game_player.pbFacingEvent
  	if !facingEvent || facingEvent.name!="Boulder"
    	Kernel.pbMessage(_INTL("Can't use that here."))
    	return false
  	end
  	return true  
	when PBMoves::ROCKSMASH
  	terrain=Kernel.pbFacingTerrainTag
  	if !$DEBUG && !$Trainer.badges[BADGEFORROCKSMASH]
    	Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
    	return false
  	end
  	facingEvent=$game_player.pbFacingEvent
  	if !facingEvent || facingEvent.name!="Rock"
    	Kernel.pbMessage(_INTL("Can't use that here."))
    	return false
  	end
  	return true  
	when PBMoves::FLASH
  	if !$DEBUG && !$Trainer.badges[BADGEFORFLASH]
    	Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
    	return false
  	end
  	if !pbGetMetadata($game_map.map_id,MetadataDarkMap)
    	Kernel.pbMessage(_INTL("Can't use that here."))
    	return false
  	end
  	if $PokemonGlobal.flashUsed
    	Kernel.pbMessage(_INTL("This is in use already."))
    	return false
  	end
  	return true
	when PBMoves::WATERFALL
  	if !$DEBUG && !$Trainer.badges[BADGEFORWATERFALL]
    	Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
    	return false
  	end
  	terrain=Kernel.pbFacingTerrainTag
  	if terrain!=PBTerrain::Waterfall
    	Kernel.pbMessage(_INTL("Can't use that here."))
    	return false
  	end
  	return true
	when PBMoves::DIVE
  	if !$DEBUG && !$Trainer.badges[BADGEFORDIVE]
    	Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
    	return false
  	end
  	if $PokemonGlobal.diving
    	return true
  	end
  	if $game_player.terrain_tag!=PBTerrain::DeepWater
    	Kernel.pbMessage(_INTL("Can't use that here."))
    	return false
  	end
  	if !pbGetMetadata($game_map.map_id,MetadataDiveMap)
    	Kernel.pbMessage(_INTL("Can't use that here."))
    	return false
  	end
  	return true
	when PBMoves::TELEPORT
  	if !pbGetMetadata($game_map.map_id,MetadataOutdoor)
    	Kernel.pbMessage(_INTL("Can't use that here."))
    	return false
  	end
   #  if $game_player.pbHasDependentEvents?
   #	Kernel.pbMessage(_INTL("You can't use that if you have someone with you."))
   #	return false
   #  end
  	healing=$PokemonGlobal.healingSpot
  	if !healing
    	healing=pbGetMetadata(0,MetadataHome) # Home
  	end
  	if healing
    	mapname=pbGetMapNameFromId(healing[0])
    	if Kernel.pbConfirmMessage(_INTL("Want to return to the healing spot used last in {1}?",mapname))
      	return true
    	end
    	return false
  	else
    	Kernel.pbMessage(_INTL("Can't use that here."))
    	return false
  	end
	when PBMoves::DIG
  	escape=pbGetMetadata($game_map.map_id,MetadataEscapePoint)
  	if !escape
    	Kernel.pbMessage(_INTL("Can't use that here."))
    	return false
  	end
  	if $game_player.pbHasDependentEvents?
    	Kernel.pbMessage(_INTL("You can't use that if you have someone with you."))
    	return false
  	end
  	mapname=pbGetMapNameFromId(escape[0])
  	if Kernel.pbConfirmMessage(_INTL("Want to escape from here and return to {1}?",mapname))
    	return true
  	end
  	return false
	when PBMoves::SWEETSCENT
  	return true
	else
  	return HiddenMoveHandlers.triggerCanUseMove(move,pkmn)
	end
  return false
end
 
 
 
#===============================================================================
# * Auto add Script to Kernel.pbMountBike
#===============================================================================
def Kernel.pbMountBike
  return if $PokemonGlobal.bicycle
  $PokemonGlobal.bicycle=true
  if $game_switches[Toggle_Following_Switch]==true
	$PokemonTemp.dependentEvents.remove_sprite(true)
  end
  Kernel.pbUpdateVehicle
  bikebgm=pbGetMetadata(0,MetadataBicycleBGM)
  if bikebgm
	pbCueBGM(bikebgm,0.5)
  end
end
#===============================================================================
# * Auto add Script to Kernel.pbDismountBike
#===============================================================================
def Kernel.pbDismountBike
  return if !$PokemonGlobal.bicycle
  $PokemonGlobal.bicycle=false
  $FollowingFinishedSurfing = true
  Kernel.pbUpdateVehicle
  $game_map.autoplayAsCue
end
#===============================================================================
# * Auto add Script to pbBikeCheck
#===============================================================================
def pbBikeCheck
  if $PokemonGlobal.surfing ||
 	(!$PokemonGlobal.bicycle && pbGetTerrainTag==PBTerrain::TallGrass)
	Kernel.pbMessage(_INTL("Can't use that here."))
	return false
  end
#  if $game_player.pbHasDependentEvents?
#	Kernel.pbMessage(_INTL("It can't be used when you have someone with you."))
#	return false
#  end
  if $PokemonGlobal.bicycle
	if pbGetMetadata($game_map.map_id,MetadataBicycleAlways)
  	Kernel.pbMessage(_INTL("You can't dismount your Bike here."))
  	return false
	end
	return true
  else
	val=pbGetMetadata($game_map.map_id,MetadataBicycle)
	val=pbGetMetadata($game_map.map_id,MetadataOutdoor) if val==nil
	if !val
  	Kernel.pbMessage(_INTL("Can't use that here."))
  	return false
	end
	return true
  end
end
 
 
 
#===============================================================================
# * Auto add Script to pbTrainerPC
#===============================================================================
def pbTrainerPC
  Kernel.pbMessage(_INTL("\\se[computeropen]{1} booted up the PC.",$Trainer.name))
  pbTrainerPCMenu
  pbSEPlay("computerclose")
  $PokemonTemp.dependentEvents.refresh_sprite
end
#===============================================================================
# * Auto add Script to class TrainerPC
#===============================================================================
class TrainerPC
  def shouldShow?
	return true
  end
 
  def name
	return _INTL("{1}'s PC",$Trainer.name)
  end
 
  def access
	Kernel.pbMessage(_INTL("\\se[accesspc]Accessed {1}'s PC.",$Trainer.name))
	pbTrainerPCMenu
	$PokemonTemp.dependentEvents.refresh_sprite
  end
end
#===============================================================================
# * Auto add Script to pbPokeCenterPC
#===============================================================================
def pbPokeCenterPC
  Kernel.pbMessage(_INTL("\\se[computeropen]{1} booted up the PC.",$Trainer.name))
  loop do
	commands=PokemonPCList.getCommandList()
	command=Kernel.pbMessage(_INTL("Which PC should be accessed?"),
   	commands,commands.length)
	if !PokemonPCList.callCommand(command)
  	break
	end
  end
  pbSEPlay("computerclose")
  $PokemonTemp.dependentEvents.refresh_sprite
end
 
 
 
#===============================================================================
# * Auto add Script to Events.onStepTakenFieldMovement
# * Fixed End Surf for Toggle
# * NEED TO FIX GRASS ANIMATION PROBLEM
#===============================================================================
Events.onStepTakenFieldMovement+=proc{|sender,e|
  event=e[0] # Get the event affected by field movement
  currentTag=pbGetTerrainTag(event)
  if pbGetTerrainTag(event,true)==PBTerrain::Grass  # Won't show if under bridge
	$scene.spriteset.addUserAnimation(GRASS_ANIMATION_ID,event.x,event.y)
  elsif event==$game_player && currentTag==PBTerrain::WaterfallCrest
	# Descend waterfall, but only if this event is the player
	Kernel.pbDescendWaterfall(event)
  elsif event==$game_player && currentTag==PBTerrain::Ice && !$PokemonGlobal.sliding
	Kernel.pbSlideOnIce(event)
  end
  if $FollowingFinishedSurfing==true && $game_switches[Toggle_Following_Switch]==true
	$PokemonTemp.dependentEvents.Come_back(true)
	$FollowingFinishedSurfing = false
  end
}
 
 
 
#===============================================================================
# * Start Pokemon Following
# * x is the Event ID that will become the follower
#===============================================================================
def pbPokemonFollow(x)
  Kernel.pbAddDependency2(x, "Dependent", CommonEvent)
  $PokemonTemp.dependentEvents.refresh_sprite
  $game_switches[Following_Activated_Switch]=true
  $game_switches[Toggle_Following_Switch]=true
end
zum Lesen den Text mit der Maus markieren

in dem Script DependentEvents habe ich alles makiert und mit dem ersetzt:

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
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
class PokemonTemp
  attr_accessor :dependentEvents
 
  def dependentEvents
	@dependentEvents=DependentEvents.new if !@dependentEvents
	return @dependentEvents
  end
end
 
 
 
def pbRemoveDependencies()
  $PokemonTemp.dependentEvents.removeAllEvents()
  pbDeregisterPartner() rescue nil
end
 
def pbAddDependency(event)
  $PokemonTemp.dependentEvents.addEvent(event)
end
 
def pbRemoveDependency(event)
  $PokemonTemp.dependentEvents.removeEvent(event)
end
 
def pbAddDependency2(eventID, eventName, commonEvent)
  $PokemonTemp.dependentEvents.addEvent($game_map.events[eventID],eventName,commonEvent)
end
 
# Gets the Game_Character object associated with a dependent event.
def pbGetDependency(eventName)
  return $PokemonTemp.dependentEvents.getEventByName(eventName)
end
 
def pbRemoveDependency2(eventName)
  $PokemonTemp.dependentEvents.removeEventByName(eventName)
end
 
 
 
class PokemonGlobalMetadata
  attr_accessor :dependentEvents
 
  def dependentEvents
	@dependentEvents=[] if !@dependentEvents
	return @dependentEvents
  end
end
 
 
 
class Game_Event
  def set_starting
	@starting=true
  end
end
 
 
 
def pbTestPass(follower,x,y,direction=nil)
  return $MapFactory.isPassable?(follower.map.map_id,x,y,follower)
end
 
# Same map only
def moveThrough(follower,direction)
  oldThrough=follower.through
  follower.through=true
  case direction
	when 2 # down
  	follower.move_down
	when 4 # left
  	follower.move_left
	when 6 # right
  	follower.move_right
	when 8 # up
  	follower.move_up
  end 
  follower.through=oldThrough
end
 
# Same map only
def moveFancy(follower,direction)
  deltaX=(direction == 6 ? 1 : (direction == 4 ? -1 : 0))
  deltaY=(direction == 2 ? 1 : (direction == 8 ? -1 : 0))
  newX = follower.x + deltaX
  newY = follower.y + deltaY
  # Move if new position is the player's, or the new position is passable,
  # or the current position is not passable
  if ($game_player.x==newX && $game_player.y==newY) ||
 	pbTestPass(follower,newX,newY,0) ||
 	!pbTestPass(follower,follower.x,follower.y,0)
	oldThrough=follower.through
	follower.through=true
	case direction
  	when 2 # down
    	follower.move_down
  	when 4 # left
    	follower.move_left
  	when 6 # right
    	follower.move_right
  	when 8 # up
    	follower.move_up
	end 
	follower.through=oldThrough
  end
end
 
# Same map only
def jumpFancy(follower,direction)
  deltaX=(direction == 6 ? 2 : (direction == 4 ? -2 : 0))
  deltaY=(direction == 2 ? 2 : (direction == 8 ? -2 : 0))
  halfDeltaX=(direction == 6 ? 1 : (direction == 4 ? -1 : 0))
  halfDeltaY=(direction == 2 ? 1 : (direction == 8 ? -1 : 0))
  middle=pbTestPass(follower,follower.x+halfDeltaX,follower.y+halfDeltaY,0)
  ending=pbTestPass(follower,follower.x+deltaX,	follower.y+deltaY,	0)
  if middle
	moveFancy(follower,direction)
	moveFancy(follower,direction)
  elsif ending
	if pbTestPass(follower,follower.x,follower.y,0)
  	follower.jump(deltaX,deltaY)
	else
  	moveThrough(follower,direction)
  	moveThrough(follower,direction)
	end
  end
end
 
def pbFancyMoveTo(follower,newX,newY)
  if follower.x-newX==-1 && follower.y==newY
	moveFancy(follower,6)
  elsif follower.x-newX==1 && follower.y==newY
	moveFancy(follower,4)
  elsif follower.y-newY==-1 && follower.x==newX
	moveFancy(follower,2)
  elsif follower.y-newY==1 && follower.x==newX
	moveFancy(follower,8)
  elsif follower.x-newX==-2 && follower.y==newY
	jumpFancy(follower,6)
  elsif follower.x-newX==2 && follower.y==newY
	jumpFancy(follower,4)
  elsif follower.y-newY==-2 && follower.x==newX
	jumpFancy(follower,2)
  elsif follower.y-newY==2 && follower.x==newX
	jumpFancy(follower,8)
  elsif follower.x!=newX || follower.y!=newY
	follower.moveto(newX,newY)
  end
end
 
 
 
class DependentEvents
  def createEvent(eventData)
	rpgEvent=RPG::Event.new(eventData[3],eventData[4])
	rpgEvent.id=eventData[1]
	if eventData[9]
  	# Must setup common event list here and now
  	commonEvent=Game_CommonEvent.new(eventData[9])
  	rpgEvent.pages[0].list=commonEvent.list
	end
	newEvent=Game_Event.new(eventData[0],rpgEvent,
   	$MapFactory.getMap(eventData[2]))
	newEvent.character_name=eventData[6]
	newEvent.character_hue=eventData[7]
	case eventData[5] # direction
  	when 2 # down
    	newEvent.turn_down
  	when 4 # left
    	newEvent.turn_left
  	when 6 # right
    	newEvent.turn_right
  	when 8 # up
    	newEvent.turn_up
	end
	return newEvent
  end
 
  attr_reader :lastUpdate
 
  def initialize
	# Original map, Event ID, Current map, X, Y, Direction
	events=$PokemonGlobal.dependentEvents
	@realEvents=[]
	@lastUpdate=-1
	for event in events
  	@realEvents.push(createEvent(event))
	end
  end
 
  def pbEnsureEvent(event, newMapID)
	events=$PokemonGlobal.dependentEvents
	found=-1
	for i in 0...events.length
  	# Check original map ID and original event ID 
  	if events[0]==event.map_id && events[1]==event.id
    	# Change current map ID
    	events[2]=newMapID
    	newEvent=createEvent(events)
    	# Replace event
    	@realEvents=newEvent
    	@lastUpdate+=1
    	return i
  	end
	end
	return -1
  end
 
  def pbFollowEventAcrossMaps(leader,follower,instant=false,leaderIsTrueLeader=true)
	d=leader.direction
	areConnected=$MapFactory.areConnected?(leader.map.map_id,follower.map.map_id)
	# Get the rear facing tile of leader
	facingDirection=[0,0,8,0,6,0,4,0,2][d]
	if !leaderIsTrueLeader && areConnected
  	relativePos=$MapFactory.getThisAndOtherEventRelativePos(leader,follower)
  	if (relativePos[1]==0 && relativePos[0]==2) # 2 spaces to the right of leader
    	facingDirection=6
  	elsif (relativePos[1]==0 && relativePos[0]==-2) # 2 spaces to the left of leader
    	facingDirection=4
  	elsif relativePos[1]==-2 && relativePos[0]==0 # 2 spaces above leader
    	facingDirection=8
  	elsif relativePos[1]==2 && relativePos[0]==0 # 2 spaces below leader
    	facingDirection=2
  	end
	end
	facings=[facingDirection] # Get facing from behind
	facings.push([0,0,4,0,8,0,2,0,6][d]) # Get right facing
	facings.push([0,0,6,0,2,0,8,0,4][d]) # Get left facing
	if !leaderIsTrueLeader
  	facings.push([0,0,2,0,4,0,6,0,8][d]) # Get forward facing
	end
	mapTile=nil
	if areConnected
  	bestRelativePos=-1
  	oldthrough=follower.through
  	follower.through=false
  	for i in 0...facings.length
    	facing=facings
    	tile=$MapFactory.getFacingTile(facing,leader)
    	passable=tile && $MapFactory.isPassable?(tile[0],tile[1],tile[2],follower)
    	if i==0 && !passable && tile && 
       	$MapFactory.getTerrainTag(tile[0],tile[1],tile[2])==PBTerrain::Ledge
      	# If the tile isn't passable and the tile is a ledge,
      	# get tile from further behind
      	tile=$MapFactory.getFacingTileFromPos(tile[0],tile[1],tile[2],facing)
      	passable=tile && $MapFactory.isPassable?(tile[0],tile[1],tile[2],follower)
    	end
    	if passable
      	relativePos=$MapFactory.getThisAndOtherPosRelativePos(
         	follower,tile[0],tile[1],tile[2])
      	distance=Math.sqrt(relativePos[0]*relativePos[0]+relativePos[1]*relativePos[1])
      	if bestRelativePos==-1 || bestRelativePos>distance
        	bestRelativePos=distance
        	mapTile=tile
      	end
      	if i==0 && distance<=1 # Prefer behind if tile can move up to 1 space
        	break
      	end
    	end
  	end
  	follower.through=oldthrough
	else
  	tile=$MapFactory.getFacingTile(facings[0],leader)
  	passable=tile && $MapFactory.isPassable?(
     	tile[0],tile[1],tile[2],follower)
  	mapTile=passable ? mapTile : nil
	end
	if mapTile && follower.map.map_id==mapTile[0]
  	# Follower is on same map
  	newX=mapTile[1]
  	newY=mapTile[2]
  	deltaX=(d == 6 ? -1 : d == 4 ? 1 : 0)
  	deltaY=(d == 2 ? -1 : d == 8 ? 1 : 0)
  	posX = newX + deltaX
  	posY = newY + deltaY
  	follower.move_speed=leader.move_speed # sync movespeed
  	if (follower.x-newX==-1 && follower.y==newY) ||
     	(follower.x-newX==1 && follower.y==newY) ||
     	(follower.y-newY==-1 && follower.x==newX) ||
     	(follower.y-newY==1 && follower.x==newX)
    	if instant
      	follower.moveto(newX,newY)
    	else
      	pbFancyMoveTo(follower,newX,newY)
    	end
  	elsif (follower.x-newX==-2 && follower.y==newY) ||
        	(follower.x-newX==2 && follower.y==newY) ||
        	(follower.y-newY==-2 && follower.x==newX) ||
        	(follower.y-newY==2 && follower.x==newX)
    	if instant
      	follower.moveto(newX,newY)
    	else
      	pbFancyMoveTo(follower,newX,newY)
    	end
  	elsif follower.x!=posX || follower.y!=posY
    	if instant
      	follower.moveto(newX,newY)
    	else
      	pbFancyMoveTo(follower,posX,posY)
      	pbFancyMoveTo(follower,newX,newY)
    	end
  	end
  	pbTurnTowardEvent(follower,leader)
	else
  	if !mapTile
    	# Make current position into leader's position
    	mapTile=[leader.map.map_id,leader.x,leader.y]
  	end
  	if follower.map.map_id==mapTile[0]
    	# Follower is on same map as leader
    	follower.moveto(leader.x,leader.y)
    	pbTurnTowardEvent(follower,leader)
  	else
    	# Follower will move to different map
    	events=$PokemonGlobal.dependentEvents
    	eventIndex=pbEnsureEvent(follower,mapTile[0])
    	if eventIndex>=0
      	newFollower=@realEvents[eventIndex]
      	newEventData=events[eventIndex]
      	newFollower.moveto(mapTile[1],mapTile[2])
      	newEventData[3]=mapTile[1]
      	newEventData[4]=mapTile[2]
      	if mapTile[0]==leader.map.map_id
        	pbTurnTowardEvent(follower,leader)
      	end
    	end
  	end
	end
  end
 
  def debugEcho
	self.eachEvent {|e,d|
   	echoln d
   	echoln [e.map_id,e.map.map_id,e.id]
	}
  end
 
  def pbMapChangeMoveDependentEvents
	events=$PokemonGlobal.dependentEvents
	updateDependentEvents
	leader=$game_player
	for i in 0...events.length
  	event=@realEvents
  	pbFollowEventAcrossMaps(leader,event,true,i==0)
  	# Update X and Y for this event
  	events[3]=event.x
  	events[4]=event.y
  	events[5]=event.direction
  	# Set leader to this event
  	leader=event
	end
  end
 
  def pbMoveDependentEvents
	events=$PokemonGlobal.dependentEvents
	updateDependentEvents
	leader=$game_player
	for i in 0...events.length
  	event=@realEvents
  	pbFollowEventAcrossMaps(leader,event,false,i==0)
  	# Update X and Y for this event
  	events[3]=event.x
  	events[4]=event.y
  	events[5]=event.direction
  	# Set leader to this event
  	leader=event
	end
  end
 
  def pbTurnDependentEvents
	events=$PokemonGlobal.dependentEvents
	updateDependentEvents
	leader=$game_player
	for i in 0...events.length
  	event=@realEvents
  	pbTurnTowardEvent(event,leader)
  	# Update direction for this event
  	events[5]=event.direction
  	# Set leader to this event
  	leader=event
	end
  end
 
  def eachEvent
	events=$PokemonGlobal.dependentEvents
	for i in 0...events.length
  	yield @realEvents,events
	end   
  end
 
  def updateDependentEvents
	events=$PokemonGlobal.dependentEvents
	return if events.length==0
	for i in 0...events.length
  	event=@realEvents
  	next if !@realEvents
  	event.transparent=$game_player.transparent
  	if (event.jumping? || event.moving?) || !($game_player.jumping? || $game_player.moving?) then
    	event.update
  	elsif !event.starting
    	event.set_starting
    	event.update
    	event.clear_starting
  	end
  	events[3]=event.x
  	events[4]=event.y
  	events[5]=event.direction
	end
	# Check event triggers
	if Input.trigger?(Input::C) && !pbMapInterpreterRunning?
  	# Get position of tile facing the player
  	facingTile=$MapFactory.getFacingTile()
  	self.eachEvent {|e,d|
     	next if !d[9]
     	if e.x==$game_player.x && e.y==$game_player.y
       	# On same position
       	if not e.jumping? && (!e.respond_to?("over_trigger") || e.over_trigger?)
         	if e.list.size>1
           	# Start event
           	$game_map.refresh if $game_map.need_refresh
           	e.lock
           	pbMapInterpreter.setup(e.list,e.id,e.map.map_id)
         	end
       	end
     	elsif facingTile && e.map.map_id==facingTile[0] &&
           	e.x==facingTile[1] && e.y==facingTile[2]
       	# On facing tile
       	if not e.jumping? && (!e.respond_to?("over_trigger") || !e.over_trigger?)
         	if e.list.size>1
           	# Start event
           	$game_map.refresh if $game_map.need_refresh
           	e.lock
           	pbMapInterpreter.setup(e.list,e.id,e.map.map_id)
         	end
       	end
     	end
  	}
	end
  end
 
  def removeEvent(event)
	events=$PokemonGlobal.dependentEvents
	mapid=$game_map.map_id
	for i in 0...events.length
  	if events[2]==mapid && # Refer to current map
     	events[0]==event.map_id && # Event's map ID is original ID
     	events[1]==event.id
    	events=nil
    	@realEvents=nil
    	@lastUpdate+=1
  	end
  	events.compact!
  	@realEvents.compact!
	end
  end
 
  def getEventByName(name)
	events=$PokemonGlobal.dependentEvents
	for i in 0...events.length
  	if events && events[8]==name # Arbitrary name given to dependent event
    	return @realEvents
  	end
	end
	return nil
  end
 
  def removeAllEvents
	events=$PokemonGlobal.dependentEvents
	events.clear
	@realEvents.clear
	@lastUpdate+=1
  end
 
  def removeEventByName(name)
	events=$PokemonGlobal.dependentEvents
	for i in 0...events.length
  	if events && events[8]==name # Arbitrary name given to dependent event
    	events=nil
    	@realEvents=nil
    	@lastUpdate+=1
  	end
  	events.compact!
  	@realEvents.compact!
	end
  end
 
  def addEvent(event,eventName=nil,commonEvent=nil)
	return if !event
	events=$PokemonGlobal.dependentEvents
	for i in 0...events.length
  	if events && events[0]==$game_map.map_id && events[1]==event.id
    	# Already exists
    	return
  	end
	end
	# Original map ID, original event ID, current map ID,
	# event X, event Y, event direction,
	# event's filename,
	# event's hue, event's name, common event ID
	eventData=[
   	$game_map.map_id,event.id,$game_map.map_id,
   	event.x,event.y,event.direction,
   	event.character_name.clone,
   	event.character_hue,eventName,commonEvent
	]
	newEvent=createEvent(eventData)
	events.push(eventData)
	@realEvents.push(newEvent)
	@lastUpdate+=1
	event.erase
  end
end
 
 
 
class DependentEventSprites
  def refresh
	for sprite in @sprites
  	sprite.dispose
	end
	@sprites.clear
	$PokemonTemp.dependentEvents.eachEvent {|event,data|
   	if data[0]==@map.map_id # Check original map
     	#@map.events[data[1]].erase
   	end
   	if data[2]==@map.map_id # Check current map
     	@sprites.push(Sprite_Character.new(@viewport,event))
   	end
	}
  end
 
  def initialize(viewport,map)
	@disposed=false
	@sprites=[]
	@map=map
	@viewport=viewport
	refresh
	@lastUpdate=nil
  end
 
  def update
	if $PokemonTemp.dependentEvents.lastUpdate!=@lastUpdate
  	refresh
  	@lastUpdate=$PokemonTemp.dependentEvents.lastUpdate
	end
	for sprite in @sprites
  	sprite.update
	end
  end
 
  def dispose
	return if @disposed
	for sprite in @sprites
  	sprite.dispose
	end
	@sprites.clear
	@disposed=true
  end
 
  def disposed?
	@disposed
  end
end
 
 
 
Events.onSpritesetCreate+=proc{|sender,e|
   spriteset=e[0] # Spriteset being created
   viewport=e[1] # Viewport used for tilemap and characters
   map=spriteset.map # Map associated with the spriteset (not necessarily the current map).
   spriteset.addUserSprite(DependentEventSprites.new(viewport,map))
}
 
Events.onMapSceneChange+=proc{|sender,e|
   scene=e[0]
   mapChanged=e[1]
   if mapChanged
 	$PokemonTemp.dependentEvents.pbMapChangeMoveDependentEvents
   end
}


Das script PokemonParty wird in zeile 1980 mit diesem script ersetzt:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
  	next if havecommand
  	if cmdSummary>=0 && command==cmdSummary
    	@scene.pbSummary(pkmnid)
  	elsif cmdSwitch>=0 && command==cmdSwitch
    	@scene.pbSetHelpText(_INTL("Move to where?"))
    	oldpkmnid=pkmnid
    	pkmnid=@scene.pbChoosePokemon(true)
    	if pkmnid>=0 && pkmnid!=oldpkmnid
      	pbSwitch(oldpkmnid,pkmnid)
      	$PokemonTemp.dependentEvents.refresh_sprite
    	end
zum Lesen den Text mit der Maus markieren


ebenfalls in PokemonParty wird in Zeile 1050 folgendes ersetzt durch:

Spoiler

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
def pbPokemonGiveScreen(item)
	@scene.pbStartScene(@party,_INTL("Give to which Pokémon?"))
	pkmnid=@scene.pbChoosePokemon
	ret=false
	if pkmnid>=0
  	ret=pbGiveMail(item,@party[pkmnid],pkmnid)
	end
	pbRefreshSingle(pkmnid)
	$PokemonTemp.dependentEvents.refresh_sprite
	@scene.pbEndScene
	return ret
  end
zum Lesen den Text mit der Maus markieren


In dem script Game_Player habe ich in Zeile 25 folgendes eingetragen:
(WICHTIG! auf der verlinkten seite steht es anders da führte aber zu fehlern
wenn also diese variante bei euch nciht klappt nutzt den link weiter oben!)


Quellcode

1
      	$PokemonTemp.dependentEvents.add_following_time


In dem Script PokeBattle_ActualScene bei in zeile 2041 tascht ihr das vorhandene mit dem aus:

Spoiler

Quellcode

1
2
3
4
5
6
7
8
9
def pbEndBattle(result)
	@abortable=false
	pbShowWindow(BLANK)
	# Fade out all sprites
	$PokemonTemp.dependentEvents.check_faint
	pbBGMFade(1.0)
	pbFadeOutAndHide(@sprites)
	pbDisposeSprites
  end
zum Lesen den Text mit der Maus markieren


Das Script PokemonField wird in Zeile 2275 mit dem ersetzt:

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
def Kernel.pbPokemonFound(item,quantity=1,plural=nil)
  itemname=PBItems.getName(item)
  pocket=pbGetPocket(item)
  e=$Trainer.party[0].name
if $PokemonBag.pbStoreItem(item,quantity) 
  pbWait(5)
 
	if $ItemData[item][ITEMUSE]==3 || $ItemData[item][ITEMUSE]==4
  	Kernel.pbMessage(_INTL("\\se[]{1} found {2}!\\se[itemlevel]\\nIt contained {3}.\\wtnp[30]",e,itemname,PBMoves.getName($ItemData[item][ITEMMACHINE])))
  	Kernel.pbMessage(_INTL("{1} put the {2}\r\nin the {3} Pocket.",$Trainer.name,itemname,PokemonBag.pocketNames()[pocket]))
	elsif isConst?(item,PBItems,:LEFTOVERS)
  	Kernel.pbMessage(_INTL("\\se[]{1} found some {2}!\\se[itemlevel]\\wtnp[30]",e,itemname))
  	Kernel.pbMessage(_INTL("{1} put the {2}\r\nin the {3} Pocket.",$Trainer.name,itemname,PokemonBag.pocketNames()[pocket]))
	else
  	if quantity>1
    	if plural
      	Kernel.pbMessage(_INTL("\\se[]{1} found {2} {3}!\\se[itemlevel]\\wtnp[30]",e,quantity,plural))
      	Kernel.pbMessage(_INTL("{1} put the {2}\r\nin the {3} Pocket.",$Trainer.name,plural,PokemonBag.pocketNames()[pocket]))
    	else
      	Kernel.pbMessage(_INTL("\\se[]{1} found {2} {3}s!\\se[itemlevel]\\wtnp[30]",e,quantity,itemname))
      	Kernel.pbMessage(_INTL("{1} put the {2}s\r\nin the {3} Pocket.",$Trainer.name,itemname,PokemonBag.pocketNames()[pocket]))
    	end
  	else
    	Kernel.pbMessage(_INTL("\\se[]{1} found one {2}!\\se[itemlevel]\\wtnp[30]",e,itemname))
    	Kernel.pbMessage(_INTL("{1} put the {2}\r\nin the {3} Pocket.",$Trainer.name,itemname,PokemonBag.pocketNames()[pocket]))
  	end
	end
	return true
  else   # Can't add the item
	if $ItemData[item][ITEMUSE]==3 || $ItemData[item][ITEMUSE]==4
  	Kernel.pbMessage(_INTL("{1} found {2}!\\wtnp[20]",e,itemname))
	elsif isConst?(item,PBItems,:LEFTOVERS)
  	Kernel.pbMessage(_INTL("{1} found some {2}!\\wtnp[20]",$Trainer.name,itemname))
	else
  	if quantity>1
    	if plural
      	Kernel.pbMessage(_INTL("{1} found {2} {3}!\\wtnp[20]",e,quantity,plural))
    	else
      	Kernel.pbMessage(_INTL("{1} found {2} {3}s!\\wtnp[20]",$Trainer.name,quantity,itemname))
    	end
  	else
    	Kernel.pbMessage(_INTL("{1} found one {2}!\\wtnp[20]",e,itemname))
  	end
	end
	Kernel.pbMessage(_INTL("Too bad... The Bag is full..."))
	return false
  end
end
zum Lesen den Text mit der Maus markieren


Das Script Scene_Map verlang einen austaus in zeile 137 mit diesem:

Spoiler

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
	if Input.trigger?(Input::B)
  	unless pbMapInterpreterRunning? or $game_system.menu_disabled or $game_player.moving?
    	$game_temp.menu_calling = true
    	$game_temp.menu_beep = true
  	end
  	if Input.trigger?(Input::X) && $Trainer.party.size > 1
  	$Trainer.party.push($Trainer.party.delete_at(0))
  	$PokemonTemp.dependentEvents.refresh_sprite if $game_switches[Toggle_Following_Switch]==true
	end
	if Input.trigger?(Input::Z) && $Trainer.party.size > 1
  	$Trainer.party.insert(0,$Trainer.party.pop)
  	$PokemonTemp.dependentEvents.refresh_sprite if $game_switches[Toggle_Following_Switch]==true
	end

Das Script PokemonSystem bekommt ganz unten folgendes hinzugefügt:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
module Input
  unless defined?(update_KGC_ScreenCapture)
	class << Input
  	alias update_KGC_ScreenCapture update
	end
  end
 
  def self.update
	update_KGC_ScreenCapture
	if trigger?(Input::F8)
  	pbScreenCapture
	end
	if trigger?(Input::F7)
  	pbDebugF7
	end
	if trigger?(Input::CTRL) # Added Toggle Following Pokemon
  	pbToggleFollowingPokemon
	end
  end
end
zum Lesen den Text mit der Maus markieren


Das Script Interpreter sieht ganz gerne folgendes in zeile 506 ersetzt:

Spoiler

Quellcode

1
2
3
4
5
6
7
8
9
  def command_end
	# Clear list of event commands
	@list = nil
	# If main map event and event ID are valid
	if @main && @event_id > 0 && !($game_map.events[@event_id] && $game_map.events[@event_id].name=="Dependent")
  	# Unlock event
  	$game_map.events[@event_id].unlock if $game_map.events[@event_id]
	end
  end
zum Lesen den Text mit der Maus markieren

Dann habt ihr soweit alle Scripts eingetragen wenn ihr mit den pokemon reden wollt müsst ihr noch beim Maker
in die Datenbase gehen und auf "Common Events"
drücken und dort ein neues
Event mit dem Namen "TalkToPokemon" eintragen oder was auch immer xD hauptsache ihr gebt den richtigen script ein:
$PokemonTemp.dependentEvents.talk_to_pokemon

Über den selben weg habe ich dann auch pbPokemonFollow(x) hinzugefügt x steht dabei für die nummer im Common event!


etwas das ich noch nicht gemacht habe bis jetzt aber auf der seite wiefolgt da steht:

das wäre dann also für schwester Joy im Pokemon Center^^

Also als event im spiel!

Spoiler
Whenever there is a Pokemon healing event, put
Code:

Quellcode

1
$PokemonTemp.dependentEvents.remove_sprite(true)


to remove the follower, and
Code:

Quellcode

1
$PokemonTemp.dependentEvents.refresh_sprite


und wenn ihr eure pokemon wieder habt natürlich wieder das event setzen:
pbPokemonFollow(x)
zum Lesen den Text mit der Maus markieren


so bei fragen oder so keine ahnung ob ich mir das lange merken kann xD
nen blick auf die seite [Essentials script] Even More Fixes and Additions to Help-14's Following Pokemon Script - The PokéCommunity Forums
kann vielleicht helfen oder aber hier den verlauf lesen jenach dem ^^'''

wenn ich mich hier einlese kann ich aber evnetuell auch helfen ansonsten gibtsd
hier super leute die das scheinbar 100pro können ^^

Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von »Sarias« (14. Juli 2014, 01:21)


25

Mittwoch, 16. Juli 2014, 21:21

Hier ich hab ein party follw skript gefunden:
Ist nur ein skritpt.
Es ist mit Abstand das beste und OHNE SDK

mit swtich 20 lässt sich das wieder wegmachen und anmachen.

Als Anhang. Einfach über main einfügen
»Colchianrebell1995« hat folgende Datei angehängt:

Josey

Storyteller

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

  • Nachricht senden

26

Mittwoch, 16. Juli 2014, 21:44

Herzlichen Glückwunsch, Sarias :)
Schön, dass es jetzt geklappt hat :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.

27

Mittwoch, 16. Juli 2014, 22:10

ja danke ^.^

aber ohne die hilfe von "
Playm
" hätte das wahrscheinlich ewig gedauert oder nie geklappt xD

28

Donnerstag, 17. Juli 2014, 09:51

Tu mir einen gefallen und check nochmal meines durch.
Ist so ziemlich das beste, was ich finden konnte

Ähnliche Themen

Verwendete Tags

folgen, Party, party-follow, Script

Social Bookmarks