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.


Advertise here

Reply
Click here to go to the first staff post in this thread.  
Thread Tools
  #1    
Old July 20th, 2014, 11:22 AM
iv0's Avatar
iv0
 
Join Date: Mar 2014
Gender: Male

Advertise here
Introduction:
I made this tutorial for those who have difficulty with scripts. Sorry, but english is not my native language, and it's is my first tutorial made in other language. Tutorial made ​​for FR / LG.

What you need:
  • Advanced Map
  • XSE (1.0.0 version in preference).
  • Decimal to Hexadecimal converter (like this).

Let's start:

Open your Advanced Map and choose the map to do it. Insert your tree to make it be headbutted.
Spoiler:

Edit the movement permission:
Spoiler:

Insert a new signpost, and edit as the same to image:
Spoiler:

Do the same thing of the image (you need to search a free space bytes to make your headbutt script, and yes, your offset value may be different):
Spoiler:

In the last click in "Open script", if open a window like that, it's all OK.
Copy and paste this in the XSE window (replace YOURFREESPACEVALUE to YOUR previous value of the tutorial, in a example my value is "71A4BC"):
Spoiler:

Code:
#dynamic 0xYOURFREESPACEVALUE

#org @startscript
lockall
checkattack 0x1D
compare 0x800D 0x06
if 0x01 goto @dontknow
setanimation 0x00 0x800D
bufferpokemon2 0x00 0x800D
bufferattack 0x01 0x1D
msgbox @m1
callstd 0x5
compare 0x800D 0x00
if 0x01 goto @dontwant
msgbox @m2
callstd 0x04
closeonkeypress
doanimation 0x25
waitstate
setvar 0x8004 0x01
setvar 0x8005 0x01
setvar 0x8006 0x0C
setvar 0x8007 0x02
special 0x136
pause 0x20
random 0x04
compare 0x800D 0x0
if 0x1 call @wild1
compare 0x800D 0x1
if 0x1 call @wild2
compare 0x800D 0x2
if 0x1 call @wild3
compare 0x800D 0x3
if 0x1 call @dontfound
releaseall
end

#org @dontknow
msgbox @m3
callstd 0x2
closeonkeypress
end

#org @dontwant
releaseall
end

#org @wild1
random 0x05
startwildbattle 0xPOKE 0xLEVEL 0xITEM
repeatwildbattle
release
end

#org @wild2
random 0x05
startwildbattle 0xPOKE 0xLEVEL 0xITEM
repeatwildbattle
release
end

#org @wild3
random 0x05
startwildbattle 0xPOKE 0xLEVEL 0xITEM
repeatwildbattle
release
end

#org @dontfound
msgbox @m4
callstd 0x2
closeonkeypress
release
end


#org @m1
= This tree may contain a POKéMON.\nUse the move [buffer2]?

#org @m2
= [buffer1] used [buffer2]!

#org @m3
= This tree may contain a POKéMON.\nIt may be able to be knocked out.

#org @m4
= There is nothing.

Let's choose yours Pokémons in the trees:
Replace the values in the functions "startwildbattle", example if I want a Togepi in level 2 holding a Oran Berry, my code is:
Code:
startwildbattle 0xAF 0x2 0x8B
Wait... What is AF (Pokémon) and 8D (Item ID) values? Keep calm... This is the decimal values converted to hexadecimal values. In a example:
If I want to replace the Togepi to a Caterpie (decimal number in dex is 10), my new value in script is A, like this:
Code:
startwildbattle 0xA 0x2 0x8B
You should apply it (decimal to hexadecimal) in all the values​​.
Example: if I want a Mewtwo in level 70 holding no item, my code is:
Code:
startwildbattle 0x96 0x46 0x0
If you don't undestand, see this:
Spoiler:

There are the itens ID (not converted):
Spoiler:

Master Ball 1
Ultra Ball 2
Great Ball 3
Poké Ball 4
SAFARI Ball 5
Net Ball 6
Dive Ball 7
Nest Ball 8
Repeat Ball 9
Timer Ball 10
Luxury Ball 11
Premier Ball 12
Potion 13
Antidote 14
Burn Heal 15
Ice Heal 16
Awakening 17
Parlyz Heal 18
Full Restore 19
Max Potion 20
Hyper Potion 21
Super Potion 22
Full Heal 23
Revive 24
Max Revive 25
Fresh Water 26
Soda Pop 27
Lemonade 28
Moomoo Milk 29
Energypowder 30
Energy Root 31
Heal Powder 32
Revival Herb 33
Ether 34
Max Ether 35
Elixir 36
Max Elixir 37
Lava Cookie 38
Blue Flute 39
Yellow Flute 40
Red Flute 41
Black Flute 42
White Flute 43
BERRY JUICE 44
Sacred Ash 45
Shoal Salt 46
Shoal Shell 47
Red Shard 48
Blue Shard 49
Yellow Shard 50
Green Shard 51
HP Up 63
Protein 64
Iron 65
Carbos 66
Calcium 67
Rare Candy 68
PP Up 69
Zinc 70
PP Max 71
Guard Spec. 73
Dire Hit 74
X Attack 75
X Defend 76
X Speed 77
X Accuracy 78
X Special 79
Poké Doll 80
Fluffy Tail 81
Super Repel 83
Max Repel 84
Escape Rope 85
Repel 86
Sun Stone 93
Moon Stone 94
Fire Stone 95
Thunderstone 96
Water Stone 97
Leaf Stone 98
Tinymushroom 103
Big Mushroom 104
Pearl 106
Big Pearl 107
Stardust 108
Star Piece 109
Nugget 110
Heart Scale 111
Orange Mail 121
Harbor Mail 122
Glitter Mail 123
Mech Mail 124
Wood Mail 125
Wave Mail 126
Bead Mail 127
Shadow Mail 128
Tropic Mail 129
Dream Mail 130
Fab Mail 131
Retro Mail 132
Cheri Berry 133
Chesto Berry 134
Pecha Berry 135
Rawst Berry 136
Aspear Berry 137
Leppa Berry 138
Oran Berry 139
Persim Berry 140
Lum Berry 141
Sitrus Berry 142
Figy Berry 143
Wiki Berry 144
Mago Berry 145
Aguav Berry 146
Iapapa Berry 147
Razz Berry 148
Bluk Berry 149
Nanab Berry 150
Wepear Berry 151
Pinap Berry 152
Pomeg Berry 153
Kelpsy Berry 154
Qualot Berry 155
Hondew Berry 156
Grepa Berry 157
Tamato Berry 158
Cornn Berry 159
Magost Berry 160
Rabuta Berry 161
Nomel Berry 162
Spelon Berry 163
Pamtre Berry 164
Watmel Berry 165
Durin Berry 166
Belue Berry 167
Liechi Berry 168
Ganlon Berry 169
Salac Berry 170
Petaya Berry 171
Apicot Berry 172
Lansat Berry 173
Starf Berry 174
Enigma Berry 175
Brightpowder 179
White Herb 180
Macho Brace 181
Exp. Share 182
Quick Claw 183
Soothe Bell 184
Mental Herb 185
Choice Band 186
King's Rock 187
Silverpowder 188
Amulet Coin 189
Cleanse Tag 190
Soul Dew 191
Deepseatooth 192
Deepseascale 193
Smoke Ball 194
Everstone 195
Focus Band 196
Lucky Egg 197
Scope Lens 198
Metal Coat 199
Leftovers 200
Dragon Scale 201
LIGHT Ball 202
Soft Sand 203
Hard Stone 204
Miracle Seed 205
Blackglasses 206
Black Belt 207
Magnet 208
Mystic Water 209
Sharp Beak 210
Poison Barb 211
Nevermeltice 212
Spell Tag 213
Twistedspoon 214
Charcoal 215
Dragon Fang 216
Silk Scarf 217
Up-grade 218
Shell Bell 219
Sea Incense 220
Lax Incense 221
Lucky Punch 222
Metal Powder 223
Thick Club 224
Stick 225
Red Scarf 254
Blue Scarf 255
Pink Scarf 256
Green Scarf 257
Yellow Scarf 258
Mach BIKE 259
Coin Case 260
Itemfinder 261
Old Rod 262
Good Rod 263
Super Rod 264
S.S. Ticket 265
CONTEST Pass 266
Wailmer Pail 268
Devon Goods 269
Soot Sack 270
Basement Key 271
Acro Bike 272
PokéBlock Case 273
Letter 274
Eon Ticket 275
Red Orb 276
Blue Orb 277
Scanner 278
Go-goggles 279
Meteorite 280
Rm. 1 Key 281
Rm. 2 Key 282
Rm. 4 Key 283
Rm. 6 Key 284
Storage Key 285
Root Fossil 286
Claw Fossil 287
Devon Scope 288
TM01 289
TM02 290
TM03 291
TM04 292
TM05 293
TM06 294
TM07 295
TM08 296
TM09 297
TM10 298
TM11 299
TM12 300
TM13 301
TM14 302
TM15 303
TM16 304
TM17 305
TM18 306
TM19 307
TM20 308
TM21 309
TM22 310
TM23 311
TM24 312
TM25 313
TM26 314
TM27 315
TM28 316
TM29 317
TM30 318
TM31 319
TM32 320
TM33 321
TM34 322
TM35 323
TM36 324
TM37 325
TM38 326
TM39 327
TM40 328
TM41 329
TM42 330
TM43 331
TM44 332
TM45 333
TM46 334
TM47 335
TM48 336
TM49 337
TM50 338
HM01 339
HM02 340
HM03 341
HM04 342
HM05 343
HM06 344
HM07 345
HM08 346
Oak's Parcel 349
Poké Flute 350
Secret Key 351
Bike Voucher 352
Gold Teeth 353
Old Amber 354
Card Key 355
Lift Key 356
Helix Fossil 357
Dome Fossil 358
Silph Scope 359
Bicycle 360
Town Map 361
VS Seeker 362
Fame Checker 363
TM Case 364
Berry Pouch 365
Teachy TV 366
Tri-pass 367
Rainbow Pass 368
Tea 369
Mysticticket 370
Auroraticket 371
Powder Jar 372
RUBY 373
Sapphire 374

Credits: diegoawesome's topic

After choosing your Pokémons click in the Compile icon (), copy the new @startscript value and replace it to your Headbutt offset value (like it).
Now, save you rom in the Advanced Map, close XSE (is not necessary to save script) and Advanced Map.
Let's see the results:
Spoiler:


Extra:

If you want to expand your numbers of Pokémons in the tree, let's see it:
Spoiler:
Code:
random 0xA ' 10  Pokémons in the trees (A = converted to hexadecimal)
compare 0x800D 0x0
if 0x1 call @wild1
compare 0x800D 0x1
if 0x1 call @wild2
compare 0x800D 0x2
if 0x1 call @wild3
compare 0x800D 0x3
if 0x1 call @wild4
compare 0x800D 0x4
if 0x1 call @wild5
compare 0x800D 0x5
if 0x1 call @wild6
compare 0x800D 0x6
if 0x1 call @wild7
compare 0x800D 0x7
if 0x1 call @wild8
compare 0x800D 0x8
if 0x1 call @wild9
compare 0x800D 0x9
if 0x1 call @wild10
compare 0x800D 0xA
if 0x1 call @dontfound

#org @wild1
random 0x05
startwildbattle 0xPOKE 0xLEVEL 0xITEM
repeatwildbattle
release
end

#org @wild2
random 0x05
startwildbattle 0xPOKE 0xLEVEL 0xITEM
repeatwildbattle
release
end

#org @wild3
random 0x05
startwildbattle 0xPOKE 0xLEVEL 0xITEM
repeatwildbattle
release
end

#org @wild4
random 0x05
startwildbattle 0xPOKE 0xLEVEL 0xITEM
repeatwildbattle
release
end

#org @wild5
random 0x05
startwildbattle 0xPOKE 0xLEVEL 0xITEM
repeatwildbattle
release
end

[....]
[....]
[....]


If you want the player may only use this after winning such GYM, put this code before "checkattack 0x1D" and after "lockall":
Spoiler:

Code:
checkflag 0xGYM_CODE
if 0x0 goto @dontknow

There are the GYMS codes (only for FR/LF):
Spoiler:

820 BOULDERBADGE.
821 CASCADEBADGE.
822 THUNDERBADGE.
823 RAINBOWBADGE.
824 SOULBADGE.
825 MARSHBADGE.
826 VOLCANOBADGE.
827 EARTHBADGE.



Credits:

diegoisawesome - for Item IDs.
Dartharon - for the headbutt script base.
karatekid552 - GYM flags.

Last edited by iv0; July 20th, 2014 at 01:43 PM.
Reply With Quote
  #2    
Old July 20th, 2014, 12:09 PM
hashtag's Avatar
hashtag
the man in black
 
Join Date: Nov 2008
Location: Salisbury, England
Age: 19
Gender: Male
You know could use special 0xAB and set the wild Pokémon in a-map right? Would save you a good deal of time.
__________________
"i am the hero pokécommunity deserves, but not the one it needs right now"

paired with christos
Reply With Quote
  #3    
Old July 20th, 2014, 12:15 PM
iv0's Avatar
iv0
 
Join Date: Mar 2014
Gender: Male
Quote:
Originally Posted by Hashtag View Post
You know could use special 0xAB and set the wild Pokémon in a-map right? Would save you a good deal of time.
Yeah, but I not understand how this works exactly, and I prefer the Pokémon in the tree with custom item.
Reply With Quote
  #4    
Old July 20th, 2014, 12:30 PM
Dark Sneasel's Avatar
Dark Sneasel
Community Supporter
 
Join Date: Jun 2013
Location: Miami, FL
Age: 14
Gender: Male
Nature: Hasty
This is pretty cool, I was about to make a headbutt tree script myself soon, but I guess I won't have to now. Good job, very easy to understand tutorial.
__________________
My stuff:
Controllable Boats in Gen 3 Games
Pokémon Fluorite Version (Beta 2 Released)
Pokémon Emerald Specials
Change Player OW in script
Making a tag battle script
G3HS extended Pokemon in the wild
Starting out with Rom Hacking? Click here
#SlowDownFigi

http://chat.linkandzelda.com:9090/?c...overy,fluorite
^Coolest irc... ever
Reply With Quote
  #5    
Old July 20th, 2014, 12:36 PM
iv0's Avatar
iv0
 
Join Date: Mar 2014
Gender: Male
Quote:
Originally Posted by Dark Sneasel View Post
This is pretty cool, I was about to make a headbutt tree script myself soon, but I guess I won't have to now. Good job, very easy to understand tutorial.
Thanks for feedback. I have others tutorials in my mind to post ;p
Reply With Quote
  #6    
Old July 20th, 2014, 02:34 PM
Solonesome
 
Join Date: Apr 2012
Gender: Male
Quote:
Originally Posted by iv0 View Post
Thanks for feedback. I have others tutorials in my mind to post ;p
Well, I'm interested. I want a lot of different moves having differing field effects for my hack, so this is cool.


Interested in seeing what else you can help me with. =]


Not only this, but now I truly understand the random command. I'm a real boneheaded, hands on learner. Once I get something, I retain it well, but very few people can describe things to me in a way that will make me understand, I always have to mess around myself to get that true sense for it.. My hack is gonna have eggs that could be TONS of different Pokémon from the region, so this helps IMMMENSELY. Thank you.

Last edited by Solonesome; July 20th, 2014 at 02:40 PM. Reason: forgot to say thanks.
Reply With Quote
  #7    
Old July 20th, 2014, 06:31 PM
iv0's Avatar
iv0
 
Join Date: Mar 2014
Gender: Male
Quote:
Originally Posted by Solonesome View Post
Well, I'm interested. I want a lot of different moves having differing field effects for my hack, so this is cool.


Interested in seeing what else you can help me with. =]


Not only this, but now I truly understand the random command. I'm a real boneheaded, hands on learner. Once I get something, I retain it well, but very few people can describe things to me in a way that will make me understand, I always have to mess around myself to get that true sense for it.. My hack is gonna have eggs that could be TONS of different Pokémon from the region, so this helps IMMMENSELY. Thank you.
Thanks for feedback. Really rewarding to have a comment like that. I did not understand quite what you mean, can you talk more about your idea of the "diffent moves"?
Reply With Quote
  #8    
Old July 20th, 2014, 06:54 PM
Dark Sneasel's Avatar
Dark Sneasel
Community Supporter
 
Join Date: Jun 2013
Location: Miami, FL
Age: 14
Gender: Male
Nature: Hasty
Quote:
Originally Posted by iv0 View Post
Thanks for feedback. Really rewarding to have a comment like that. I did not understand quite what you mean, can you talk more about your idea of the "diffent moves"?
I think he means stuff like whirlpool where another move is used. If that's what he means then all he has to edit is checkattack and make a new script for those moves.
Reply With Quote
  #9    
Old July 20th, 2014, 07:00 PM
iv0's Avatar
iv0
 
Join Date: Mar 2014
Gender: Male
Quote:
Originally Posted by Dark Sneasel View Post
I think he means stuff like whirlpool where another move is used. If that's what he means then all he has to edit is checkattack and make a new script for those moves.
Oh, my ♥♥♥♥ing language problems. xD
It's pretty easy to do it, I'm think better to organize it in a unique topic.
Reply With Quote
  #10    
Old July 20th, 2014, 07:58 PM
xGal's Avatar
xGal
du bist n00b
 
Join Date: Nov 2011
Location: A tree
Gender: Male
Nature: Bold
Quote:
Originally Posted by Solonesome View Post
Well, I'm interested. I want a lot of different moves having differing field effects for my hack, so this is cool.


Interested in seeing what else you can help me with. =]


Not only this, but now I truly understand the random command. I'm a real boneheaded, hands on learner. Once I get something, I retain it well, but very few people can describe things to me in a way that will make me understand, I always have to mess around myself to get that true sense for it.. My hack is gonna have eggs that could be TONS of different Pokémon from the region, so this helps IMMMENSELY. Thank you.
I hope I understand what you mean by "different effect".

If you want Whirlpool for example, you can just replace everything from line 15 (msgbox @2) to line 34 (if 0x1 call @dontfound) with the new effect. For example, make a Whirlpool overworld sprite and then use hidesprite 0x[whirlpool sprite] (don't forget the setflag ). Also, if you are a bit more advanced, you could edit a tile to make it look like a whirlpool and then set a script on it. (http://www.pokecommunity.com/showthread.php?t=310142).

And the most important thing - don't forget to edit the attack commands .
__________________
Hey guys, I made a soundcloud account not long ago, and I would be very happy if you guys will check it out: https://soundcloud.com/dewombat. Thanks .

Also, if you ever wanted to make a ROM hacking tool, click here: http://www.pokecommunity.com/showthread.php?t=334348
Reply With Quote
  #11    
Old July 20th, 2014, 09:38 PM
Solonesome
 
Join Date: Apr 2012
Gender: Male
xD


You guys are awesome. I will definitely be returning to this thread in a while.


I'm pretty new at this, if you can't tell. Always messed with the games, but used tools to do so mainly to edit the stats of mons and move power. Now, I have my own ideas I wanna implement. Thanks for all the help!
Reply With Quote
  #12    
Old July 21st, 2014, 01:45 AM
kearnseyboy6's Avatar
kearnseyboy6
Aussie's Toughest Mudder
 
Join Date: Dec 2008
Here is a dump of my honey script. You just need to modify the offsets.

Spoiler:
'---------------
#org 0xAD0000
lock
call 0x880E9C9
release
end

'---------------
#org 0x80E9C9
msgbox 0x81A2ACA MSG_NORMAL '"There is a sweet scent in the\nair..."
checkitem 0x57 0x1
compare LASTRESULT 0x1
if 0x4 call 0x880E8B1
release
end

'---------------
#org 0x80E8B1
msgbox 0x81BD059 MSG_YESNO '"Slather the bark with Honey?"
compare LASTRESULT 0x1
if 0x1 goto 0x880E8DD
return

'---------------
#org 0x80E8DD
removeitem 0x57 0x1
msgbox 0x81A2A9A MSG_NORMAL '"The bark was slathered with Honey."
random 0x64
compare LASTRESULT 0x5A
if 0x4 goto 0x880E95B
compare LASTRESULT 0x55
if 0x4 goto 0x880E965
compare LASTRESULT 0x51
if 0x4 goto 0x880E96F
compare LASTRESULT 0x4D
if 0x4 goto 0x880E979
compare LASTRESULT 0x49
if 0x4 goto 0x880E983
compare LASTRESULT 0x29
if 0x4 goto 0x880E98D
compare LASTRESULT 0x13
if 0x4 goto 0x880E997
compare LASTRESULT 0xD
if 0x4 goto 0x880E9A1
compare LASTRESULT 0x8
if 0x4 goto 0x880E9AB
msgbox 0x81BCF69 MSG_NORMAL '"Unfortunately... No Pokémon want\n..."
release
end

'---------------
#org 0x80E95B
wildbattle 0xBE 0xA 0x0
release
end

'---------------
#org 0x80E965
wildbattle 0xD6 0xB 0x0
release
end

'---------------
#org 0x80E96F
wildbattle 0x123 0x7 0x0
release
end

'---------------
#org 0x80E979
wildbattle 0x124 0x8 0x0
release
end

'---------------
#org 0x80E983
wildbattle 0x126 0x8 0x0
release
end

'---------------
#org 0x80E98D
wildbattle 0x1D1 0x9 0x0
release
end

'---------------
#org 0x80E997
wildbattle 0x1D4 0x9 0x0
release
end

'---------------
#org 0x80E9A1
wildbattle 0x1D9 0xA 0x0
release
end

'---------------
#org 0x80E9AB
wildbattle 0x1F3 0x5 0x0
release
end


'---------
' Strings
'---------
#org 0x1A2ACA
= There is a sweet scent in the\nair...

#org 0x1BD059
= Slather the bark with Honey?

#org 0x1A2A9A
= The bark was slathered with Honey.

#org 0x1BCF69
= Unfortunately... No Pokémon want\nthat sweet, sweet, sweet Honey!
__________________
HOLIDAYING CURRENTLY!!
Reply With Quote
  #13    
Old August 18th, 2014, 06:36 PM
Dark Sneasel's Avatar
Dark Sneasel
Community Supporter
 
Join Date: Jun 2013
Location: Miami, FL
Age: 14
Gender: Male
Nature: Hasty
If anyone wants a headbutt script for Emerald:

#dynamic 0xE40000
#org @start
lockall
checkattack 0x1D
compare 0x800D 0x06
if 0x01 goto @dontknow
msgbox @2 0x5
compare 0x800D 0x1
if 0x1 goto @yes
releaseall
end

#org @yes
checkattack 0x1d
setanimation 0x0 LASTRESULT
bufferpartypokemon 0x0 LASTRESULT
bufferattack 0x1 0x1d
msgbox 0x8290771 MSG_KEEPOPEN '"[buffer1] used [buffer2]!"
doanimation 0x25
waitstate
random 0x2
compare LASTRESULT 0x1
if 0x1 goto @sucess
releaseall
end

#org @sucess
special 0xAE
waitstate
releaseall
end

#org @2
= This tree may contain a Pokémon.\nWant to use headbutt?

#org @dontknow
msgbox @1 0x6
releaseall
end

#org @1
= This tree looks like it could be\nheadbutted.

Mess with the offsets if you want, and add wild pokemon in the "Tree" area in A map.
__________________
My stuff:
Controllable Boats in Gen 3 Games
Pokémon Fluorite Version (Beta 2 Released)
Pokémon Emerald Specials
Change Player OW in script
Making a tag battle script
G3HS extended Pokemon in the wild
Starting out with Rom Hacking? Click here
#SlowDownFigi

http://chat.linkandzelda.com:9090/?c...overy,fluorite
^Coolest irc... ever
Reply With Quote
Reply
Quick Reply

Sponsored Links


Advertise here
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 11:15 PM.


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.