-
Notifications
You must be signed in to change notification settings - Fork 4.2k
NPCs Give Pokemon Box RS Gift Eggs
Have you ever wanted to receive the eggs from Pokemon Box RS but don't have a Gamecube or don't want to store all those Pokemon just to get an egg?
These scripts add 4 NPCs that will each give 1 of a Zigzagoon with ExtremeSpeed, Skitty with Pay Day, Swablu with False Swipe and Pichu with Surf. For fun, there is also an additional NPC and a joke reason for giving the eggs.
I chose to have Surfing Pichu seperate in a different location but you can always add it to the same map if you choose.
This guide can be added to or changed to give any Pokemon as an egg with any move in a chosen slot.
This uses 3 unused VARS as well as the VAR_GIFT_PICHU_SLOT:
VAR_GIFT_UNUSED_1 0x40DE // Var is written to, but never read //swablu
VAR_GIFT_UNUSED_2 0x40DF // Var is written to, but never read //zigzagoon
VAR_GIFT_UNUSED_3 0x40E0 // Var is written to, but never read //skitty
First, choose 4 unused flags and name them (my chosen flags are below):
#define FLAG_FALSE_SWIPE_SWABLU 0x1E1 // Unused Flag
#define FLAG_EXTREME_SPEED_ZIGZAGOON 0x1E2 // Unused Flag
#define FLAG_PAY_DAY_SKITTY 0x1E3 // Unused Flag
#define FLAG_SURF_PICHU_EGG 0x4F // Unused Flag
In a map script or somewhere you store your scripts, copy and paste all the below:
//swablu
EventScript_BoxRSGiftEgg_Cousin1::
lock
faceplayer
goto_if_set FLAG_FALSE_SWIPE_SWABLU, EventScript_BoxRSGiftEgg_DontHaveAny
msgbox Text_BoxRSGiftEgg_Ask, MSGBOX_YESNO
goto_if_eq VAR_RESULT, NO, EventScript_BoxRSGiftEgg_No
goto EventScript_BoxRSGiftEgg_GiveIfPossible_Swablu
release
end
//zigzagoon
EventScript_BoxRSGiftEgg_Cousin2::
lock
faceplayer
goto_if_set FLAG_EXTREME_SPEED_ZIGZAGOON, EventScript_BoxRSGiftEgg_DontHaveAny
msgbox Text_BoxRSGiftEgg_Ask, MSGBOX_YESNO
goto_if_eq VAR_RESULT, NO, EventScript_BoxRSGiftEgg_No
goto EventScript_BoxRSGiftEgg_GiveIfPossible_Zigzagoon
release
end
//skitty
EventScript_BoxRSGiftEgg_Cousin3::
lock
faceplayer
goto_if_set FLAG_PAY_DAY_SKITTY, EventScript_BoxRSGiftEgg_DontHaveAny
msgbox Text_BoxRSGiftEgg_Ask, MSGBOX_YESNO
goto_if_eq VAR_RESULT, NO, EventScript_BoxRSGiftEgg_No
goto EventScript_BoxRSGiftEgg_GiveIfPossible_Skitty
release
end
EventScript_BoxRSGiftEgg_No::
msgbox Text_BoxRSGiftEgg_No MSGBOX_DEFAULT
release
end
EventScript_BoxRSGiftEgg_GiveIfPossible_Swablu:
specialvar VAR_GIFT_UNUSED_1, CalculatePlayerPartyCount
goto_if_eq VAR_GIFT_UNUSED_1, PARTY_SIZE, EventScript_BoxRSGiftEgg_FullParty
call EventScript_BoxRSGiftEgg_GiveSwabluEgg
goto EventScript_BoxRSGiftEgg_ReceivedEgg
EventScript_BoxRSGiftEgg_GiveIfPossible_Zigzagoon:
specialvar VAR_GIFT_UNUSED_2, CalculatePlayerPartyCount
goto_if_eq VAR_GIFT_UNUSED_2, PARTY_SIZE, EventScript_BoxRSGiftEgg_FullParty
call EventScript_BoxRSGiftEgg_GiveZigzagoonEgg
goto EventScript_BoxRSGiftEgg_ReceivedEgg
EventScript_BoxRSGiftEgg_GiveIfPossible_Skitty:
specialvar VAR_GIFT_UNUSED_3, CalculatePlayerPartyCount
goto_if_eq VAR_GIFT_UNUSED_3, PARTY_SIZE, EventScript_BoxRSGiftEgg_FullParty
call EventScript_BoxRSGiftEgg_GiveSkittyEgg
goto EventScript_BoxRSGiftEgg_ReceivedEgg
EventScript_BoxRSGiftEgg_FullParty:
msgbox Text_BoxRSGiftEgg_FullParty, MSGBOX_DEFAULT
waitmessage
waitbuttonpress
release
end
EventScript_BoxRSGiftEgg_DontHaveAny:
msgbox Text_BoxRSGiftEgg_DontHaveAny, MSGBOX_DEFAULT
release
end
EventScript_BoxRSGiftEgg_ReceivedEgg:
lock
faceplayer
msgbox Text_BoxRSGiftEgg_ReceiveEgg, MSGBOX_DEFAULT
waitmessage
playfanfare MUS_OBTAIN_ITEM
waitfanfare
msgbox Text_BoxRSGiftEgg_LookAfterEgg, MSGBOX_DEFAULT
release
end
EventScript_BoxRSGiftEgg_GiveSwabluEgg:
giveegg SPECIES_SWABLU
call_if_eq VAR_GIFT_UNUSED_1, 1, FalseSwipeSwablu_Slot1
call_if_eq VAR_GIFT_UNUSED_1, 2, FalseSwipeSwablu_Slot2
call_if_eq VAR_GIFT_UNUSED_1, 3, FalseSwipeSwablu_Slot3
call_if_eq VAR_GIFT_UNUSED_1, 4, FalseSwipeSwablu_Slot4
call_if_eq VAR_GIFT_UNUSED_1, 5, FalseSwipeSwablu_Slot5
setflag FLAG_FALSE_SWIPE_SWABLU
return
EventScript_BoxRSGiftEgg_GiveZigzagoonEgg:
giveegg SPECIES_ZIGZAGOON
call_if_eq VAR_GIFT_UNUSED_2, 1, ExtremeSpeedZigzagoon_Slot1
call_if_eq VAR_GIFT_UNUSED_2, 2, ExtremeSpeedZigzagoon_Slot2
call_if_eq VAR_GIFT_UNUSED_2, 3, ExtremeSpeedZigzagoon_Slot3
call_if_eq VAR_GIFT_UNUSED_2, 4, ExtremeSpeedZigzagoon_Slot4
call_if_eq VAR_GIFT_UNUSED_2, 5, ExtremeSpeedZigzagoon_Slot5
setflag FLAG_EXTREME_SPEED_ZIGZAGOON
return
EventScript_BoxRSGiftEgg_GiveSkittyEgg:
giveegg SPECIES_SKITTY
call_if_eq VAR_GIFT_UNUSED_3, 1, PayDaySkitty_Slot1
call_if_eq VAR_GIFT_UNUSED_3, 2, PayDaySkitty_Slot2
call_if_eq VAR_GIFT_UNUSED_3, 3, PayDaySkitty_Slot3
call_if_eq VAR_GIFT_UNUSED_3, 4, PayDaySkitty_Slot4
call_if_eq VAR_GIFT_UNUSED_3, 5, PayDaySkitty_Slot5
setflag FLAG_PAY_DAY_SKITTY
return
FalseSwipeSwablu_Slot1:
setmonmove 1, 1, MOVE_PECK
setmonmove 1, 2, MOVE_GROWL
setmonmove 1, 3, MOVE_FALSE_SWIPE
return
FalseSwipeSwablu_Slot2::
setmonmove 2, 1, MOVE_PECK
setmonmove 2, 2, MOVE_GROWL
setmonmove 2, 3, MOVE_FALSE_SWIPE
return
FalseSwipeSwablu_Slot3:
setmonmove 3, 1, MOVE_PECK
setmonmove 3, 2, MOVE_GROWL
setmonmove 3, 3, MOVE_FALSE_SWIPE
return
FalseSwipeSwablu_Slot4:
setmonmove 4, 1, MOVE_PECK
setmonmove 4, 2, MOVE_GROWL
setmonmove 4, 3, MOVE_FALSE_SWIPE
return
FalseSwipeSwablu_Slot5:
setmonmove 5, 1, MOVE_PECK
setmonmove 5, 2, MOVE_GROWL
setmonmove 5, 3, MOVE_FALSE_SWIPE
return
ExtremeSpeedZigzagoon_Slot1:
setmonmove 1, 1, MOVE_TACKLE
setmonmove 1, 2, MOVE_GROWL
setmonmove 1, 3, MOVE_TAIL_WHIP
setmonmove 1, 4, MOVE_EXTREME_SPEED
return
ExtremeSpeedZigzagoon_Slot2::
setmonmove 2, 1, MOVE_TACKLE
setmonmove 2, 2, MOVE_GROWL
setmonmove 2, 3, MOVE_TAIL_WHIP
setmonmove 2, 4, MOVE_EXTREME_SPEED
return
ExtremeSpeedZigzagoon_Slot3:
setmonmove 3, 1, MOVE_TACKLE
setmonmove 3, 2, MOVE_GROWL
setmonmove 3, 3, MOVE_TAIL_WHIP
setmonmove 3, 4, MOVE_EXTREME_SPEED
return
ExtremeSpeedZigzagoon_Slot4:
setmonmove 4, 1, MOVE_TACKLE
setmonmove 4, 2, MOVE_GROWL
setmonmove 4, 3, MOVE_TAIL_WHIP
setmonmove 4, 4, MOVE_EXTREME_SPEED
return
ExtremeSpeedZigzagoon_Slot5:
setmonmove 5, 1, MOVE_TACKLE
setmonmove 5, 2, MOVE_GROWL
setmonmove 5, 3, MOVE_TAIL_WHIP
setmonmove 5, 4, MOVE_EXTREME_SPEED
return
PayDaySkitty_Slot1:
setmonmove 1, 1, MOVE_TACKLE
setmonmove 1, 2, MOVE_GROWL
setmonmove 1, 3, MOVE_TAIL_WHIP
setmonmove 1, 4, MOVE_PAY_DAY
return
PayDaySkitty_Slot2::
setmonmove 2, 1, MOVE_TACKLE
setmonmove 2, 2, MOVE_GROWL
setmonmove 2, 3, MOVE_TAIL_WHIP
setmonmove 2, 4, MOVE_PAY_DAY
return
PayDaySkitty_Slot3:
setmonmove 3, 1, MOVE_TACKLE
setmonmove 3, 2, MOVE_GROWL
setmonmove 3, 3, MOVE_TAIL_WHIP
setmonmove 3, 4, MOVE_PAY_DAY
return
PayDaySkitty_Slot4:
setmonmove 4, 1, MOVE_TACKLE
setmonmove 4, 2, MOVE_GROWL
setmonmove 4, 3, MOVE_TAIL_WHIP
setmonmove 4, 4, MOVE_PAY_DAY
return
PayDaySkitty_Slot5:
setmonmove 5, 1, MOVE_TACKLE
setmonmove 5, 2, MOVE_GROWL
setmonmove 5, 3, MOVE_TAIL_WHIP
setmonmove 5, 4, MOVE_PAY_DAY
return
Text_BoxRSGiftEgg_Ask:
.string "I'm one of three cousins.\p"
.string "Our uncle was breeding POKéMON to\n"
.string "make the best competitive fighter.\p"
.string "He gave us any extra EGGS that he\n"
.string "doesn't need.\p"
.string "Would you take one?$"
Text_BoxRSGiftEgg_No:
.string "Aww, OK then…\p"
.string "If you change your mind, let me know.$"
Text_BoxRSGiftEgg_ReceiveEgg:
.string "{PLAYER} received the EGG.$"
Text_BoxRSGiftEgg_FullParty:
.string "Oh, your party appears to be full.\p"
.string "Maybe you could store one of your\n"
.string "POKéMON in your PC.$"
Text_BoxRSGiftEgg_LookAfterEgg:
.string "Please raise it with love.\p"
.string "You should speak to my other cousins\n"
.string "to see if they still have their EGGS.$"
Text_BoxRSGiftEgg_DontHaveAny:
.string "I don't have any more EGGS.\p"
.string "You should speak to my other cousins\n"
.string "to see if they still have their EGGS.$"
//uncle
EventScript_BoxRSGiftEgg_Uncle::
lock
faceplayer
msgbox Text_BoxRSGiftEgg_Uncle1, MSGBOX_DEFAULT
waitmessage
showmonpic SPECIES_FARFETCHD, 10, 3
waitbuttonpress
hidemonpic
msgbox Text_BoxRSGiftEgg_Uncle2, MSGBOX_DEFAULT
release
end
Text_BoxRSGiftEgg_Uncle1:
.string "I've been breeding POKéMON to make\n"
.string "the strongest and best competitive\l"
.string "fighter for taking on the ELITE FOUR.\p"
.string "Want to see it?$"
Text_BoxRSGiftEgg_Uncle2:
.string "...\p"
.string "You mean FARFETCH'D ISN'T that stong?\p"
.string "Guess I better start again...$"
Finally, in your chosen map, add 4 objects using characters of your choice.
Set 3 of them to EventScript_BoxRSGiftEgg_Cousin1, EventScript_BoxRSGiftEgg_Cousin2 and EventScript_BoxRSGiftEgg_Cousin3 and the final 1 to EventScript_BoxRSGiftEgg_Uncle
In your chosen map (or where you store your custom scripts), copy and paste the below:
EventScript_SurfPichuStart::
goto_if_set FLAG_SURF_PICHU_EGG, EventScript_SurfPichu_AlreadyGiven
goto_if_unset FLAG_SURF_PICHU_EGG, EventScript_SurfPichu_Ask
EventScript_SurfPichu_AlreadyGiven::
msgbox Text_SurfPichu_AlreadyGiven, MSGBOX_DEFAULT
release
end
EventScript_SurfPichu_Ask::
lock
faceplayer
msgbox Text_SurfPichu_Start, MSGBOX_DEFAULT
msgbox Text_SurfPichu_Ask, MSGBOX_YESNO
goto_if_eq VAR_RESULT, NO, EventScript_SurfPichu_No
goto EventScript_SurfPichu_Call
release
end
EventScript_SurfPichu_No::
msgbox Text_SurfPichu_No MSGBOX_DEFAULT
release
end
EventScript_SurfPichu_Call::
setflag FLAG_SURF_PICHU_EGG
call MysteryGiftScript_SurfPichu
end
Text_SurfPichu_AlreadyGiven:
.string "How's the POKéMON EGG I gave you?$"
Text_SurfPichu_Start:
.string "My parents got this EGG after leaving\n"
.string "their PIKACHU at the DAYCARE CENTER,\l"
.string "but they aren't able to raise any\l"
.string "more POKéMON.$"
Text_SurfPichu_Ask:
.string "Would you like it?$"
Text_SurfPichu_No:
.string "Aww, OK then…$"
In data/scripts/gift_pichu.inc, replace the scripts there with the below:
MysteryGiftScript_SurfPichu::
setvaddress MysteryGiftScript_SurfPichu
vgoto_if_unset FLAG_MYSTERY_GIFT_DONE, SurfPichu_GiveIfPossible
returnram
SurfPichu_GiveIfPossible:
specialvar VAR_GIFT_PICHU_SLOT, CalculatePlayerPartyCount
vgoto_if_eq VAR_GIFT_PICHU_SLOT, PARTY_SIZE, SurfPichu_FullParty
setflag FLAG_MYSTERY_GIFT_DONE
vcall SurfPichu_GiveEgg
lock
faceplayer
vmessage sText_MysteryGiftEgg
waitmessage
playfanfare MUS_OBTAIN_ITEM
waitfanfare
vmessage sText_LookAfterEgg
waitmessage
waitbuttonpress
release
end
SurfPichu_FullParty:
lock
faceplayer
vmessage sText_FullParty
waitmessage
waitbuttonpress
release
end
SurfPichu_GiveEgg:
giveegg SPECIES_PICHU
setmodernfatefulencounter VAR_GIFT_PICHU_SLOT
setmonmetlocation VAR_GIFT_PICHU_SLOT, METLOC_FATEFUL_ENCOUNTER
vgoto_if_eq VAR_GIFT_PICHU_SLOT, 1, SurfPichu_Slot1
vgoto_if_eq VAR_GIFT_PICHU_SLOT, 2, SurfPichu_Slot2
vgoto_if_eq VAR_GIFT_PICHU_SLOT, 3, SurfPichu_Slot3
vgoto_if_eq VAR_GIFT_PICHU_SLOT, 4, SurfPichu_Slot4
vgoto_if_eq VAR_GIFT_PICHU_SLOT, 5, SurfPichu_Slot5
return
SurfPichu_Slot1:
setmonmove 1, 1, MOVE_THUNDER_SHOCK
setmonmove 1, 2, MOVE_CHARM
setmonmove 1, 3, MOVE_SURF
return
SurfPichu_Slot2::
setmonmove 2, 1, MOVE_THUNDER_SHOCK
setmonmove 2, 2, MOVE_CHARM
setmonmove 2, 3, MOVE_SURF
return
SurfPichu_Slot3:
setmonmove 3, 1, MOVE_THUNDER_SHOCK
setmonmove 3, 2, MOVE_CHARM
setmonmove 3, 3, MOVE_SURF
return
SurfPichu_Slot4:
setmonmove 4, 1, MOVE_THUNDER_SHOCK
setmonmove 4, 2, MOVE_CHARM
setmonmove 4, 3, MOVE_SURF
return
SurfPichu_Slot5:
setmonmove 5, 1, MOVE_THUNDER_SHOCK
setmonmove 5, 2, MOVE_CHARM
setmonmove 5, 3, MOVE_SURF
return
sText_MysteryGiftEgg:
.string "{PLAYER} received the EGG.$"
sText_FullParty:
.string "Oh, your party appears to be full.\p"
.string "Maybe you could store one of your\n"
.string "POKéMON in your PC.$"
sText_LookAfterEgg:
.string "Please look after it and raise it\n"
.string "with love and kindness.$"
In your chosen map, add 1 NPC object and set it as EventScript_SurfPichuStart
Compile and receive the eggs.