Benutzerinformationen überspringen
Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"
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.
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:


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
-
Meine Fähigkeiten
Maker:
XP
Pixeln:
Mappen:
Eventen:
Scripten:
Komponieren:

-
(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!
:*
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 (
) in meiner Signatur! XD

-
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

Abstimmung
Siegerehrung
Das Wunder der Berge

Abstimmung
Siegerehrung -
Meine Contests
Ein Schreibcontest in Arbeit! : D 
-
-
Joseys Spiele
-
Endless Ending
-
Scripted Desaster
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
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
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
Story: 60%
Charas: 20%
Maps: 01%
Zeichnungen: 05%
Grafiken: 30%
Scripte: 70%
Musik: 00%
...ist nicht viel, huh? ^^° -
Scripted Desaster
Story: 10%
Charas: 60%
Maps: 30%
Zeichnungen: 01%
Grafiken: 60%
Scripte: 70%
Musik: 00%
Gut Ding... -
Pokemon EV
Story: 60%
Charas: 10%
Maps: 00%
Zeichnungen: 00%
Grafiken: 80%
Scripte: 90%
Musik: 70%
Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht... -
Lost Island
Story: 100%
Charas: 10%
Maps: 90%
Zeichnungen: 00%
Grafiken: 60%
Scripte: 90%
Musik: 00%
Das macht richtig Spaß XD
-
-
Huiii
Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.
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.
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)
Hab den Thread nicht gelesen, sondern kommentiere nur mal den letzten Beitrag:
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.
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
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)
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
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
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.
Zitat
solange man nicht auf strg drückt kommt erstmal auch kein fehler
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.
Das große Scientia Wiki zur Spielentwicklung 
Was ist das RGSS ? RGSS-Dokumentation auf Sc
Kyoshiros Makerkurs
Musik von Shabraxxx für euch
Guide zu den Audioformaten
Skripte von mir (Auswahl):
Atmungssystem
| Streichholzsystem
| Animiert durch Bücher blättern
Random : Marktsystem für Kardor
| Staterelated Battlergraphic
| Hinweis auf mögliche Aktionen
SelfSwitchExpirationtimer Skript - Gameplayerweiterung für Pilzesammler und Farmspiele
Meine Skripte werden gerade hier gesammelt.

Was ist das RGSS ? RGSS-Dokumentation auf Sc
Kyoshiros Makerkurs

Musik von Shabraxxx für euch
Guide zu den Audioformaten

Skripte von mir (Auswahl):
Atmungssystem
| Streichholzsystem
| Animiert durch Bücher blättern
Random : Marktsystem für Kardor
| Staterelated Battlergraphic
| Hinweis auf mögliche Aktionen
SelfSwitchExpirationtimer Skript - Gameplayerweiterung für Pilzesammler und Farmspiele
Meine Skripte werden gerade hier gesammelt.
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:
In dem Script Main kommt diereckt in Zeile 1:
in dem Script DependentEvents habe ich alles makiert und mit dem ersetzt:
Das script PokemonParty wird in zeile 1980 mit diesem script ersetzt:
ebenfalls in PokemonParty wird in Zeile 1050 folgendes ersetzt durch:
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!)
In dem Script PokeBattle_ActualScene bei in zeile 2041 tascht ihr das vorhandene mit dem aus:
Das Script PokemonField wird in Zeile 2275 mit dem ersetzt:
Das Script Scene_Map verlang einen austaus in zeile 137 mit diesem:
Das Script PokemonSystem bekommt ganz unten folgendes hinzugefügt:
Das Script Interpreter sieht ganz gerne folgendes in zeile 506 ersetzt:
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!
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 ^^
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
Das Script PokemonField wird in Zeile 2275 mit dem ersetzt:
|
|
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:
|
|
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:
|
|
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!
Whenever there is a Pokemon healing event, put
Code:
to remove the follower, and
Code:
und wenn ihr eure pokemon wieder habt natürlich wieder das event setzen:
pbPokemonFollow(x)
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)
Benutzerinformationen überspringen
Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"
Herzlichen Glückwunsch, Sarias :)
Schön, dass es jetzt geklappt hat :D
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:


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
-
Meine Fähigkeiten
Maker:
XP
Pixeln:
Mappen:
Eventen:
Scripten:
Komponieren:

-
(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!
:*
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 (
) in meiner Signatur! XD

-
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

Abstimmung
Siegerehrung
Das Wunder der Berge

Abstimmung
Siegerehrung -
Meine Contests
Ein Schreibcontest in Arbeit! : D 
-
-
Joseys Spiele
-
Endless Ending
-
Scripted Desaster
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
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
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
Story: 60%
Charas: 20%
Maps: 01%
Zeichnungen: 05%
Grafiken: 30%
Scripte: 70%
Musik: 00%
...ist nicht viel, huh? ^^° -
Scripted Desaster
Story: 10%
Charas: 60%
Maps: 30%
Zeichnungen: 01%
Grafiken: 60%
Scripte: 70%
Musik: 00%
Gut Ding... -
Pokemon EV
Story: 60%
Charas: 10%
Maps: 00%
Zeichnungen: 00%
Grafiken: 80%
Scripte: 90%
Musik: 70%
Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht... -
Lost Island
Story: 100%
Charas: 10%
Maps: 90%
Zeichnungen: 00%
Grafiken: 60%
Scripte: 90%
Musik: 00%
Das macht richtig Spaß XD
-
-
Huiii
Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.
ja danke ^.^
aber ohne die hilfe von "
Playm " hätte das wahrscheinlich ewig gedauert oder nie geklappt xD
aber ohne die hilfe von "
Playm " hätte das wahrscheinlich ewig gedauert oder nie geklappt xD
Ähnliche Themen
-
Skript-Anfragen »-
[Erledigt] Zusatzmenü die Zweite
(31. Mai 2014, 18:14)
-
Einsteigerhilfe »-
Event: NPC soll Held folgen
(22. Dezember 2012, 19:55)
-
Skript-Anfragen »-
Suche Party Hinterherlaufen Script
(20. November 2010, 16:59)
-
Skript-Anfragen »-
Suche ein Script!
(30. Juli 2010, 16:00)
-
Skript-Anfragen »-
Statistikscript
(14. September 2007, 18:23)





