The PokéCommunity Forums  

Go Back   The PokéCommunity Forums > ROM Hacking > Tools, Tutorials & Resources
Sign Up Rules/FAQ Live Battle Blogs Mark Forums Read

Notices

Tools, Tutorials & Resources Various tools to help you develop your hacks can be found here.
New threads in this forum are to be approved by a moderator before they are displayed.


Reply
Click here to go to the first staff post in this thread.  
Thread Tools
  #226    
Old July 26th, 2009, 06:33 AM
quickfire
Unhatched Egg
 
Join Date: Jul 2009
Gender: Male
How does XSE work? Everytime I try to type in a script and try to compile, it always tells me unknown word at such-and-such line. Thats with EVERY thing I try.
Reply With Quote
  #227    
Old July 26th, 2009, 07:28 AM
Dragonmaster91's Avatar
Dragonmaster91
It's just common sense!
 
Join Date: Apr 2008
Gender: Male
Nature: Adamant
Quote:
Originally Posted by 非常に高いレベル View Post
It really can't get any simpler than that.
I mean, seriously.
Hence the /sarcasm line there.

Quote:
Originally Posted by quickfire View Post
How does XSE work? Everytime I try to type in a script and try to compile, it always tells me unknown word at such-and-such line. Thats with EVERY thing I try.
Maybe you should fix the thing on that line.

Here is a script, a level script:

Code:
#org 0x3CA314
showsprite 0x3
showsprite 0x6
setvar 0x7000 0x1
msgbox 0x83CA37D MSG_YESNO
compare LASTRESULT 0x1
if 0x1 goto 0x83CA33B
setflag 0x207
loadpointer 0x0 0x83CA3A3
applymovement MOVE_PLAYER 0x83CA496
waitmovement 0xFF
trainerbattle 0x0 0x2 0x0 0x83CA3D5 0x83CA3F9
setflag 0x208
msgbox 0x83CA421 MSG_NORMAL
applymovement 0x3 0x83CA499
hidesprite 0x3
msgbox 0x83CA45C MSG_NORMAL
applymovement 0x6 0x83CA4A1
hidesprite 0x6
release
end

#org 0x3CA33B
applymovement MOVE_PLAYER 0x83CA496
waitmovement 0xFF
trainerbattle 0x0 0x2 0x0 0x83CA3D5 0x83CA3F9
setflag 0x208
msgbox 0x83CA421 MSG_NORMAL
applymovement 0x3 0x83CA499
hidesprite 0x3
msgbox 0x83CA45C MSG_NORMAL
applymovement 0x6 0x83CA4A1
hidesprite 0x6
release
end

#org 0x3CA37D
= Prof. Oak: Are you ready to battle?

#org 0x3CA3A3
= Prof. Oak: Ok, well step up when\nyou are ready.

#org 0x3CA3D5
= [rival]: So you think you can\nbeat me?

#org 0x3CA3F9
= [rival]: How can a loser like you\nbeat me?

#org 0x3CA421
= Professor Oak: I will be in the\ncave if anyone needs me.

#org 0x3CA45C
= [rival]: Gramps, wait!\pI want to give you back this\npokemon!

#org 0x3CA496
#raw 0x11
#raw 0xFE

#org 0x3CA499
#raw 0x11
#raw 0x11
#raw 0x11
#raw 0x12
#raw 0x12
#raw 0x12
#raw 0xFE

#org 0x3CA4A1
#raw 0x11
#raw 0x11
#raw 0x12
#raw 0x12
#raw 0x12
#raw 0x12
#raw 0x12
#raw 0x12
#raw 0xFE
When I beat him, I just get asked the question again. If I say yes that time, it will continue, then ask me the question AGAIN. If I say no, it does the step up thing, and then repeats. I actually need help again. Can anyone figure it out?

Edit: Figured it out. Set a variable at the end of the script to 0x2. Say you use setvar 0x7000 0x1 in the previous script. In order for it to work only AFTER you set the var, go to the part where you enter the variable normally, and in value, put in 0001. In order for the script to only happen once, and not repeat forever and ever, you have to use setvar 0x7000 0x2. That's right, 0x2. Giving it a different value, makes the script not happen because the script only works if the value is set to...


0x1!

Guess that's kind of an important part of the tut. Diego, you should add this to the level script tutorial.

Last edited by Dragonmaster91; July 26th, 2009 at 04:03 PM.
Reply With Quote
  #228    
Old July 26th, 2009, 11:54 PM
indohekrz
Logged Out
 
Join Date: Jul 2009
Location: Logged Out
Wow! This tutorial is answer my problem on scripting. Thank you.
__________________
Sorry everyone. I logged out from PC because too busy...
Reply With Quote
  #229    
Old July 27th, 2009, 03:52 PM
boytjuh
Beginning Trainer
 
Join Date: Apr 2009
I saw someone asking a question so:
I started working on my own hack today. I never made any scripts for anything before but managed to make a give pokémon script, and made the character dissapear, but the only thing is that i needed a pokédex. Now i did a setflag 829 to obtain the pokédex but the pokémon giving character also tells my nationaldex data in a bugged way. Is there anyway to solve that?
Well here's the script, maybe some corrections possible? (should be :3) OR maybe another way to add pokédex?
Spoiler:
#dynamic 0x800000

#org @start
lock
faceplayer
checkflag 0x828
checkflag 0x829
msgbox @1 0x4
goto @take
release
end

#org @take
givepokemon 0x83 0x5 0x0 0x0 0x0 0x0
msgbox @2 0x4
waitfanfare
closeonkeypress
setflag 0x828
msgbox @3 0x6
compare LASTRESULT 0x1
setflag 0x829
call 0x1A743B
fadescreen 0x1
fadescreen 0x0
hidesprite 0x800F
setflag 0x200
release
end

#org @done
msgbox @4 0x6

#org @1
= Hi!\pYou should take this\nLAPRAS.\p It's dangerous out there\pwithout a Pokémon!

#org @2
= You obtained an LAPRAS!

#org @3
= You also need a Pokédex!\pYou received Pokédex!

#org @4
= I have to go now,\p See you around?
Reply With Quote
  #230    
Old July 27th, 2009, 07:43 PM
Dragonmaster91's Avatar
Dragonmaster91
It's just common sense!
 
Join Date: Apr 2008
Gender: Male
Nature: Adamant
Quote:
Originally Posted by boytjuh View Post
I saw someone asking a question so:
I started working on my own hack today. I never made any scripts for anything before but managed to make a give pokémon script, and made the character dissapear, but the only thing is that i needed a pokédex. Now i did a setflag 829 to obtain the pokédex but the pokémon giving character also tells my nationaldex data in a bugged way. Is there anyway to solve that?
Well here's the script, maybe some corrections possible? (should be :3) OR maybe another way to add pokédex?
Spoiler:
#dynamic 0x800000

#org @start
lock
faceplayer
checkflag 0x828
checkflag 0x829
msgbox @1 0x4
goto @take
release
end

#org @take
givepokemon 0x83 0x5 0x0 0x0 0x0 0x0
msgbox @2 0x4
waitfanfare
closeonkeypress
setflag 0x828
msgbox @3 0x6
compare LASTRESULT 0x1
setflag 0x829
call 0x1A743B
fadescreen 0x1
fadescreen 0x0
hidesprite 0x800F
setflag 0x200
release
end

#org @done
msgbox @4 0x6

#org @1
= Hi!\pYou should take this\nLAPRAS.\p It's dangerous out there\pwithout a Pokémon!

#org @2
= You obtained an LAPRAS!

#org @3
= You also need a Pokédex!\pYou received Pokédex!

#org @4
= I have to go now,\p See you around?
You screwed it up bad... Let me fix it, hang on.

Edit: I'm not even going to boldificate the changes, thats how much I changed.

Code:
#dynamic 0x800000

#org @start
lock
faceplayer
checkflag 0x828
if 0x0 goto @take
release
end

#org @take
msgbox @1 0x6
givepokemon 0x83 0x5 0x0 0x0 0x0 0x0
fanfare 0x13E
msgbox @2 0x4
waitfanfare
closeonkeypress
setflag 0x828
msgbox @3 0x6
setflag 0x829
msgbox @4 0x6
fadescreen 0x1
fadescreen 0x0
hidesprite 0x800F
setflag 0x200
release
end

#org @1
= Hi!\pYou should take this\nLAPRAS.\p It's dangerous out there\pwithout a Pokémon!

#org @2
= You obtained an LAPRAS!

#org @3
= You also need a Pokédex!\pYou received Pokédex!

#org @4
= I have to go now,\p See you around?
Quote:
#org @done
msgbox @4 0x6
You did not even have anything pointing at that. So, that became "loose" data.

Quote:
#org @start
lock
faceplayer
checkflag 0x828
checkflag 0x829
msgbox @1 0x4
goto @take
release
end
Here is all you needed:

#org @start
lock
faceplayer
checkflag 0x828
if 0x1 goto @end
______________
and then put @take here without the #org @take.

I put the script in the simplest way I could, 'cause I felt lazy.

Or, simply:

Code:
#org @start
lock
faceplayer
checkflag 0x828
if 0x1 goto @end
msgbox @1 0x6
givepokemon 0x83 0x5 0x0 0x0 0x0 0x0
fanfare 0x13E
msgbox @2 0x4
waitfanfare
closeonkeypress
setflag 0x828
msgbox @3 0x6
setflag 0x829
msgbox @4 0x6
fadescreen 0x1
fadescreen 0x0
hidesprite 0x800F (This should actually be the sprite you are talking to, I recommend against 0x800F)
setflag 0x200
release
end
And #org @end would be like this:

#org @end
release
end

And your whole script:

Code:
#dynamic 0x800000

#org @start
lock
faceplayer
checkflag 0x828
if 0x1 goto @end
msgbox @1 0x6
givepokemon 0x83 0x5 0x0 0x0 0x0 0x0
fanfare 0x13E
msgbox @2 0x4
waitfanfare
closeonkeypress
setflag 0x828
msgbox @3 0x6
setflag 0x829
msgbox @4 0x6
fadescreen 0x1
fadescreen 0x0
hidesprite 0x800F
setflag 0x200
release
end

#org @end
release
end


#org @1
= Hi!\pYou should take this\nLAPRAS.\p It's dangerous out there\pwithout a Pokémon!

#org @2
= You obtained an LAPRAS!

#org @3
= You also need a Pokédex!\pYou received Pokédex!

#org @4
= I have to go now,\p See you around?
That is how I am used to doing it.

Does this help?

It should, because now, even I know what I am doing.

Last edited by Dragonmaster91; July 27th, 2009 at 08:07 PM.
Reply With Quote
  #231    
Old July 28th, 2009, 01:54 AM
boytjuh
Beginning Trainer
 
Join Date: Apr 2009
Thanks ALOT! I've been looking what i had to do for a while lol, since I'm new at scripting. EDIT: It works :D

Last edited by boytjuh; July 28th, 2009 at 03:06 AM.
Reply With Quote
  #232    
Old July 28th, 2009, 05:53 AM
Dragonmaster91's Avatar
Dragonmaster91
It's just common sense!
 
Join Date: Apr 2008
Gender: Male
Nature: Adamant
Quote:
Originally Posted by boytjuh View Post
Thanks ALOT! I've been looking what i had to do for a while lol, since I'm new at scripting. EDIT: It works :D
Told you, I know what I'm doing... Funny, a month ago, I would have had no clue...
Reply With Quote
  #233    
Old July 28th, 2009, 10:07 AM
justdieplz's Avatar
justdieplz
Pokemon White Enthusiast
 
Join Date: Aug 2008
Location: Kansas
Age: 19
Gender: Male
Nature: Bold
This thread is not for fixing scripts, please move to the script help thread by HackMew to continue
__________________
Reply With Quote
  #234    
Old July 28th, 2009, 12:00 PM
Dragonmaster91's Avatar
Dragonmaster91
It's just common sense!
 
Join Date: Apr 2008
Gender: Male
Nature: Adamant
Quote:
Originally Posted by justdieplz View Post
This thread is not for fixing scripts, please move to the script help thread by HackMew to continue
Wow, that's nice of you. You won't help someone on a script that was obviously one of their first, instead you refer them over there. Next time, make sure at the very least, that no one has already helped them, AT THE VERY LEAST.
Reply With Quote
  #235    
Old July 28th, 2009, 01:46 PM
Gold Man's Avatar
Gold Man
Beginning Trainer
 
Join Date: Mar 2009
Gender:
Umm angian why dose the talking part dosn't come up?
Reply With Quote
  #236    
Old July 28th, 2009, 02:32 PM
Dragonmaster91's Avatar
Dragonmaster91
It's just common sense!
 
Join Date: Apr 2008
Gender: Male
Nature: Adamant
Quote:
Originally Posted by Gold Man View Post
Umm angian why dose the talking part dosn't come up?
That's because it has loadpointer. Replace that with msgbox. Is it a question, or statement? If it is a statement, try msgbox @(pointer) 0x6. If it is a question, try msgbox @(pointer) 0x5.

All loadpointer does is.. load... Not necessarily load a text box, especially if it does not know which kind.
Reply With Quote
  #237    
Old July 29th, 2009, 06:41 AM
Pokepal17's Avatar
Pokepal17
More cowbell~
 
Join Date: Oct 2008
Location: Steeltown
Age: 19
Gender: Male
Nature: Modest
Quote:
Originally Posted by Dragonmaster91 View Post
That's because it has loadpointer. Replace that with msgbox. Is it a question, or statement? If it is a statement, try msgbox @(pointer) 0x6. If it is a question, try msgbox @(pointer) 0x5.

All loadpointer does is.. load... Not necessarily load a text box, especially if it does not know which kind.
Msgbox will work.
Loadpointer is a command used in the msgbox construct (loadpointer & callstd) and it works differently on it's own, if not used in that construct.
__________________
Pokémon Stardrop
Reply With Quote
  #238    
Old July 29th, 2009, 06:47 AM
icyace
Beginning Trainer
 
Join Date: Mar 2009
Gender:
This tutorial helped me a lot, tnx.
Reply With Quote
  #239    
Old July 29th, 2009, 07:11 AM
Dragonmaster91's Avatar
Dragonmaster91
It's just common sense!
 
Join Date: Apr 2008
Gender: Male
Nature: Adamant
Quote:
Originally Posted by Pokepal17 View Post
Msgbox will work.
Loadpointer is a command used in the msgbox construct (loadpointer & callstd) and it works differently on it's own, if not used in that construct.
Thank you, I did not know that.
Reply With Quote
  #240    
Old July 29th, 2009, 10:48 AM
joshay's Avatar
joshay
Beginning Trainer
 
Join Date: Jul 2009
Gender: Male
Cheers for the tutorial, I've bookmarked it and use it for reference loads.
cheers
__________________
Reply With Quote
  #241    
Old July 31st, 2009, 04:33 AM
Counterfeit's Avatar
Counterfeit
 
Community Supporter Tier 5
 
Join Date: Mar 2004
Age: 21
Send a message via Skype™ to Counterfeit
Say I have the offset for some text, is there any way for me to find out the offset of the script which calls that text?

A search function would be handy, of course I haven't a clue whether that's possible though.
__________________
eram quod es, eris quod sum
Reply With Quote
  #242    
Old July 31st, 2009, 10:27 PM
indohekrz
Logged Out
 
Join Date: Jul 2009
Location: Logged Out
How do I can activate national dex on Ruby/Sapphire???

Using flag or special?
What's the hex?
__________________
Sorry everyone. I logged out from PC because too busy...
Reply With Quote
  #243    
Old July 31st, 2009, 10:36 PM
0m3GA ARS3NAL's Avatar
0m3GA ARS3NAL
Im comin' home...
Community Supporter Tier 1
 
Join Date: Jan 2008
Location: Superjail Penitentiary
Age: 21
Gender: Male
Nature: Gentle
Quote:
Originally Posted by Counterfeit View Post
Say I have the offset for some text, is there any way for me to find out the offset of the script which calls that text?

A search function would be handy, of course I haven't a clue whether that's possible though.
Yeah, lets sat the offset of the text is 0x823131, you would do a search (In a hex editor) for 31318208 (Because we use Hex reversal)

AaBbCcDd
would become
DdCcBbAa
__________________
>Boot Jailbot
>Pass *****
.
.
Jailbot OS Ver 1.1.2
Greetings Warden
of Superjail Penitentiary
Awaiting user input...

>Display User_Info
╠══User Info══╣
Username:
0m3GA ARS3NAL
Age: 18
Sex: Male ♂
Race: Caucasian
Quote:
"What is this
I don't even..."

M/O: Often acts out to get attention, but recently has changed that. Has been studying up on hacking information and hopes to participate in more advanced hacking discussion.
╠══End of File══╣
Awaiting user input...

>
Reply With Quote
  #244    
Old August 1st, 2009, 05:00 AM
Pokepal17's Avatar
Pokepal17
More cowbell~
 
Join Date: Oct 2008
Location: Steeltown
Age: 19
Gender: Male
Nature: Modest
Quote:
Originally Posted by indohekrz View Post
How do I can activate national dex on Ruby/Sapphire???

Using flag or special?
What's the hex?
No flag or special, I think it's ASM or editing something in the RAM.
__________________
Pokémon Stardrop
Reply With Quote
  #245    
Old August 1st, 2009, 07:01 AM
0m3GA ARS3NAL's Avatar
0m3GA ARS3NAL
Im comin' home...
Community Supporter Tier 1
 
Join Date: Jan 2008
Location: Superjail Penitentiary
Age: 21
Gender: Male
Nature: Gentle
Quote:
Originally Posted by Dragonmaster91 View Post
To activate the Nat. Dex? No, that is a special, just which one. Here's a tip, look at the script that gives you the Nat. Dex, and use that.
Very Wrong.
There is no script in R/S that gives you the National Pokedex.
There is an ASM code / Action Replay code that does that.
__________________
>Boot Jailbot
>Pass *****
.
.
Jailbot OS Ver 1.1.2
Greetings Warden
of Superjail Penitentiary
Awaiting user input...

>Display User_Info
╠══User Info══╣
Username:
0m3GA ARS3NAL
Age: 18
Sex: Male ♂
Race: Caucasian
Quote:
"What is this
I don't even..."

M/O: Often acts out to get attention, but recently has changed that. Has been studying up on hacking information and hopes to participate in more advanced hacking discussion.
╠══End of File══╣
Awaiting user input...

>
Reply With Quote
  #246    
Old August 1st, 2009, 12:49 PM
HackinJohn's Avatar
HackinJohn
FireRed ROM Hacker
 
Join Date: Mar 2007
Location: Olivine City, Johto
Gender:
Nature: Quirky
I've tried everything, so I need help.
I'm trying to make my Oak overworld (Person Event No.: 3) to disappear completely once I talk to him, and he does, but as soon as I come back to the map, he's back. o.O;

Spoiler:
#dynamic 0x71A36B

#org @start
lock
faceplayer
msgbox @1 0x4
closeonkeypress
fanfare 0x100
special 0x16F
waitfanfare
fadescreen 0x0
msgbox @2 0x6
applymovement 0x3 @oak
waitmovement 0x0
setflag 0x2000
release
end

#org @1
= Oh, [PLAYER], I'm glad I caught you!\pI forgot to give you your upgrade!

#org @2
= With that upgrade, you will be\nable to keep account of more than\ljust the Kanto Pokemon!\pIsn't it fantastic!?\pWell, I must be going. Don't let\nme down!

#org @oak
#raw 0x01
#raw 0x11
#raw 0x60
#raw 0x11
#raw 0xFE


Thanks ahead of time [:
__________________
Spoiler:
Reply With Quote
  #247    
Old August 3rd, 2009, 09:00 AM
hygz1223
Beginning Trainer
 
Join Date: Aug 2009
Gender: Male
Nature: Relaxed
i need help in the giveitem script. i type it in and it says #define on line 21 with hs the msg_obtain
Reply With Quote
  #248    
Old August 4th, 2009, 11:50 PM
indohekrz
Logged Out
 
Join Date: Jul 2009
Location: Logged Out
Quote:
Originally Posted by HackinJohn View Post
I've tried everything, so I need help.
I'm trying to make my Oak overworld (Person Event No.: 3) to disappear completely once I talk to him, and he does, but as soon as I come back to the map, he's back. o.O;

Spoiler:
#dynamic 0x71A36B

#org @start
lock
faceplayer
msgbox @1 0x4
closeonkeypress
fanfare 0x100
special 0x16F
waitfanfare
fadescreen 0x0
msgbox @2 0x6
applymovement 0x3 @oak
waitmovement 0x0
hidesprite 0x3
setflag 0x2000
release
end

#org @1
= Oh, [PLAYER], I'm glad I caught you!\pI forgot to give you your upgrade!

#org @2
= With that upgrade, you will be\nable to keep account of more than\ljust the Kanto Pokemon!\pIsn't it fantastic!?\pWell, I must be going. Don't let\nme down!

#org @oak
#raw 0x01
#raw 0x11
#raw 0x60
#raw 0x11
#raw 0xFE


Thanks ahead of time [:
Do you put the flag on Oak's overworld???

You must put:
People ID: 2000

Or maybe, you must use hidesprite (the red text).
__________________
Sorry everyone. I logged out from PC because too busy...
Reply With Quote
  #249    
Old August 5th, 2009, 11:53 PM
NintendoWalkthrudude's Avatar
NintendoWalkthrudude
Creator of Pokemon Ninja!
 
Join Date: Aug 2009
Location: Boise, Idaho
Age: 20
Gender: Male
Nature: Sassy
Send a message via Skype™ to NintendoWalkthrudude
I find this tutorial very useful diego, but I have a question.

I want it so when you talk to Professor Oak he says, "Want a pokemon?" and if you say yes he gives you a totodile, but if you say no he gives you a cyndaquil anyways. How can I get this to happen? I tried combining both the YES/NO script with the give pokemon script and it didn't work..
Reply With Quote
  #250    
Old August 6th, 2009, 12:36 AM
indohekrz
Logged Out
 
Join Date: Jul 2009
Location: Logged Out
Quote:
Originally Posted by NintendoWalkthrudude View Post
I find this tutorial very useful diego, but I have a question.

I want it so when you talk to Professor Oak he says, "Want a pokemon?" and if you say yes he gives you a totodile, but if you say no he gives you a cyndaquil anyways. How can I get this to happen? I tried combining both the YES/NO script with the give pokemon script and it didn't work..
Try this script:
Spoiler:

#dynamic 0x800000

#org @start

checkflag 0x828
if 0x1 goto @done
checkflag 0x828
if 0x0 goto @willgive
end

#org @done
lock
faceplayer
msgbox @already 0x6
release
end

#org @willgive
lock
faceplayer
msgbox @ask 0x5
compare LASTRESULT 0x0
if 0x1 goto @cyndaquil
compare LASTRESULT 0x1
if 0x1 goto @totodile
end

#org @cyndaquil
msgbox @givecynda 0x4
givepokemon 0x9B 0x5 0x0 0x0 0x0 0x0
fanfare 0x13E
msgbox @get 0x4
waitfanfare
msgbox @takecare 0x6
setflag 0x828
release
end

#org @totodile
msgbox @givetoto 0x4
givepokemon 0x9E 0x5 0x0 0x0 0x0 0x0
fanfare 0x13E
msgbox @get2 0x4
waitfanfare
msgbox @takecare 0x6
setflag 0x828
release
end

#org @already
= That is Johto pokemon.

#org @ask
= Want a pokemon?

#org @get
= [player] received Cyndaquil from Oak.

#org @get2
= [player] received Totodile from Oak.

#org @givecynda
= But, you need a pokemon.\pThis pokemon for you.

#org @givetoto
= Okay, this is for you.

#org @takecare
= Please take care of your\npokemon.



Attention: This only work if you don't have a pokemon.

If you have a pokemon, change the flag to other flag.
Example: ... 0x828 change to ... 0x900 (... = setflag or checkflag.)
__________________
Sorry everyone. I logged out from PC because too busy...

Last edited by indohekrz; August 18th, 2009 at 09:18 PM. Reason: Edit the wrong script.
Reply With Quote
Reply
Quick Reply

Sponsored Links
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Minimum Characters Per Post: 25



All times are UTC -8. The time now is 12:21 AM.


Style by Nymphadora, artwork by Sa-Dui.
Like our Facebook Page Follow us on Twitter © 2002 - 2014 The PokéCommunity™, pokecommunity.com.
Pokémon characters and images belong to The Pokémon Company International and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, The Pokémon Company or The Pokémon Company International. We just love Pokémon.
All forum styles, their images (unless noted otherwise) and site designs are © 2002 - 2014 The PokéCommunity / PokéCommunity.com.
PokéCommunity™ is a trademark of The PokéCommunity. All rights reserved. Sponsor advertisements do not imply our endorsement of that product or service. User generated content remains the property of its creator.