Hmm let me see:
if 0x1 goto @gotalready
msgbox @want 0x5
compare LASTRESULT 0x0
if 0x1 goto @no
givepokemon 0x19 0x5 0x0 0x0 0x0 0x0
fanfare [a nice sound]
msgbox @received 0x4
msgbox @name 0x5
if 0x1 goto @givename
msgbox @noiwont 0x4
msgbox @got 0x4
#org [all messages so i wont put it now.]
This should do it. There may be a mistake cuz i just made this script here and not in XSE and this message screen is a little to small to see the script.
Giveegg is almost the same and giveitem works a little bit different: you have to use MSG_OBTAIN or MSG_FIND.
Need more proof? say to me and i will make it .
Btw, i used pickachu in this script cuz you wanted pickachu as starter and i played your hack for a while and i think there has to be a lot of scripted be done .