The PokéCommunity Forums  

Go Back   The PokéCommunity Forums > Creative Discussions > Game Development > Pokémon Essentials
Register New Account FAQ/Rules Chat Blogs Mark Forums Read

Notices

Pokémon Essentials All questions and discussion about Pokémon Essentials, the Pokémon game kit for RPG Maker XP, go in here. Also contains links to the latest downloads and the Essentials Wiki.



Closed Thread
Thread Tools
  #9551  
Unread December 4th, 2011, 01:00 AM
KitsuneKouta's Avatar
KitsuneKouta
狐 康太
 
Join Date: Mar 2010
Age: 22
Gender: Male
@movieguy12: I threw together a basic skeleton for spawning the Pokemon events on the overworld. I commented a bunch of stuff so you ought to be able to figure it out. One thing I can't explain in too much detail is the event commands. SephirothSpawn's event spawner uses a similar methodology to what I've done here (it's how I eventually managed to figure out this was possible, and led me to check the RMXP documentation on it), though his approach uses method calls the create events. You'll be working directly with the events with this code (since his event spawner doesn't work in Essentials. too lazy to work out why):
Code:
#makes the spritesets  character_sprites visible to the rest of the program.
  #without this, it doesn't know what character_sprites is and gives an error.
class Spriteset_Map
  attr_reader :character_sprites
end

def pbPopulateField
  #determines the source of the Pokemon for the current map. here it's the party,
  #but it could be a PC box instead. you could also come up with your own place
  #to store captured pokemon to use here
  pokemonToUse=$Trainer.party
  
  #create an event for every Pokemon in the selected source
  for i in 0...pokemonToUse.length
    #start event creation. 0,0 is supposed to be the location, but Poccil's
            #modifications have rendered it useless. You'll get an error if you
            #don't have it there though
    event=RPG::Event.new(0,0)
    #name the event. here I used the pokemon's id so they can be differentiated.
      #be careful here, as using a number instead of a string will get you a
      #strange an undescriptive error. hence why I added the .to_s to the end.
      #that makes it a string, even if it was a number before
    event.name=pokemonToUse[i].personalID.to_s
    #assign event id based on how many events are on the map. prevents overlap
    event.id=$game_map.events.empty? ? 1 : $game_map.events.keys.max + 1
    #create a new page for the event
    event.pages[0]=RPG::Event::Page.new
    #set the trigger to player touch
    event.pages[0].trigger=0
    #set the event's graphic. here you use the species.
    event.pages[0].graphic.character_name=sprintf("%03d",pokemonToUse[i].species)
    #set the pokemon's facing to down
    event.pages[0].graphic.pattern=2
    #make the pokemon play its cry when you talk to it (this is a Play SE command)
      #the 100,100 are volume and pitch
    command=RPG::EventCommand.new(250,0,[RPG::AudioFile.new(sprintf("%03dCry",pokemonToUse[i].species),100,100)])
    #add the show text command we just made to the current event page
    event.pages[0].list.insert(-2, command)
    #make the pokemon say something when you talk to it (this is a Show Text command)
      command=RPG::EventCommand.new(101,0,[_INTL("{1}",PBSpecies.getName(pokemonToUse[i].species))])#0  is indent(for conditional branches
          #if I remember correctly). An indent of 0 means it's not in a branch.
    #add the show text command we just made to the current event page
    event.pages[0].list.insert(-2, command)
    #add event to map
    $game_map.events[event.id]=Game_Event.new($game_map.map_id, event)
    #move the event to where you want it (you'll need to be more creative with this one)
    $game_map.events[event.id].moveto(5,5+i)
    #add event to spriteset
    if $scene.is_a?(Scene_Map) && $scene.spriteset.is_a?(Spriteset_Map)
        $scene.spriteset.character_sprites[$scene.spriteset.character_sprites.length]  = Sprite_Character.new(@viewport1, $game_map.events[event.id])
    end
    #refreshes the spriteset so the event will show up immediately
        #dispose gets rid of a duplicated image that doesn't erase right away
    $scene.disposeSpritesets
    $scene.createSpritesets
  end
end
Just call that method (make sure your party isn't empty though), and it should spawn all of them on the current map, each saying their species name and playing their cry. They don't move (I'll have to figure that out later). You can actually figure out some of the event command syntax by creating a command with the appropriate code number (i.e. 101 for Show Text, 250 for Play SE, etc.), then putting p command (command being the variable name used to create the event command)on the next line to see what the output is. It should list out the expected parameters (with nil values), so you can correct it. SephirothSpawn never finished the documentation of his event spawner, which explains a few of the basic ones (he didn't even include conditional branches, which is probably the most common one. it's also the hardest to code though because of it's changing parameters). This is about as much as I can help you. From here, it's up to you to:

-Figure out how to store the captured Pokemon in arrays (or just use the PC but don't give the player access to it anywhere)
-Use the Pokemon from whatever source you want (like the party, or PC boxes. it currently uses the party)
-Strategically place the Pokemon on the current map (you'll probably need to check both passability and terrain tags, save all the tiles that meet the criteria, and spawn them randomly in one of the eligible tiles)
-Make them move around
-Make them react to giving them things and/or manipulate their happiness
-Figure out when this script should be called and how (you'll need to call it each time you enter a designated map)
-Categorize the types of environments and the Pokemon in them accordingly.

An added suggestion to help work around the issue of not being able to see what Pokemon is what: when inside one of those designated maps, change the menu the player calls to bring up a list with info about each of the Pokemon on that map (this is part of the reason I made the event name the Pokemon's ID. I'm sure you'll figure out how to use it), and when the player selects a particular Pokemon (they should be able to see names, moves, stats, levels, and possibly other stuff), make that Pokemon glow or flash or something until the player talks to it. Or however you prefer. You can use the Tint command to manipulate their graphic.

As you can see, this will be very advanced. If you have persistence, you may pull it off. This is about as much as I can help you (since I don't have a bunch of spare hours to work on something like this. and trust me, it will take a whole lot of hours). I really hope you know your way around RMXP and some basic scripting.
__________________
Creator of the Harvest Moon Tool Kit (HMTK).

Anime/Manga fans can find me on MyAnimeList.net, as KitsuneKouta.
  #9552  
Unread December 4th, 2011, 01:58 PM
Nickalooose
--------------------
 
Join Date: Mar 2008
Gender: Female
@KitsuneKouta and @Maruno

Can I just say, wasn't bein rude or nothing, just say that it was possible with hard work,and clearly you pointed MovieGuy in the right direction, KK (KitsuneKouta, ur name is pretty long to use in a paragrah 3 or 4 times haha) I see Maruno did state he wasn't himself completely, which is fine, everyone has an off day I guess... So don't take my post as a dig at anyone please =)

I see in your script there, you used the party as the event instead of the box, but, how would the graphic be that of the Pokemon selected? (That script is helping me be a better scripter haha, strange but it is) its the adding of graphics and such which I get confuzzled with... Also do you know how to make my character jump less down walls and what have you? X
  #9553  
Unread December 4th, 2011, 04:22 PM
KitsuneKouta's Avatar
KitsuneKouta
狐 康太
 
Join Date: Mar 2010
Age: 22
Gender: Male
Quote:
Originally Posted by Nickalooose View Post
@KitsuneKouta and @Maruno

Can I just say, wasn't bein rude or nothing, just say that it was possible with hard work,and clearly you pointed MovieGuy in the right direction, KK (KitsuneKouta, ur name is pretty long to use in a paragrah 3 or 4 times haha) I see Maruno did state he wasn't himself completely, which is fine, everyone has an off day I guess... So don't take my post as a dig at anyone please =)

I see in your script there, you used the party as the event instead of the box, but, how would the graphic be that of the Pokemon selected? (That script is helping me be a better scripter haha, strange but it is) its the adding of graphics and such which I get confuzzled with... Also do you know how to make my character jump less down walls and what have you? X
KK is fine with me (half the time I myself use that instead of the full name anyways, since I'm often too lazy to type it all out). Anyways, the Pokemon's graphics is set as the OW sprite with this:
event.pages[0].graphic.character_name=sprintf("%03d",pokemonToUse[i].species)
The %03d portion tells it to use padded zeroes (it's all over Essentials if you look), and pokemonToUse[i] is the exact same as $Trainer.party[i] (since the party was specified as the source). The image is assigned to the first page of the event (page 0). RMXP uses character_name to figure out which graphic to use (it's just the filename). For the jumping thing, I'll have to look into it when I get some time.
__________________
Creator of the Harvest Moon Tool Kit (HMTK).

Anime/Manga fans can find me on MyAnimeList.net, as KitsuneKouta.
  #9554  
Unread December 4th, 2011, 05:46 PM
JalordaSerpent7's Avatar
JalordaSerpent7
just pink.
 
Join Date: Jun 2011
Location: Smothering pink all over your face.
Gender: Male
Nature: Relaxed
The link is gone. Where may I get the Starter Kit?

EDIT: Never mind. I found the link.
__________________
jalorda in pink
pair - twitter - akaa→n

Last edited by JalordaSerpent7; December 4th, 2011 at 05:59 PM.
  #9555  
Unread December 5th, 2011, 12:53 PM
Linkey
Beginning Trainer
 
Join Date: Sep 2009
Hey there,

someone tried out the "custom animation before battle starts"-function? In PokemoField in pbBattleAnimation (around line 500-600) there is a comment which says that you can use common events for special fights:


#
# Animate the screen ($game_temp.background_bitmap contains
# the current game screen).
#
# The following example runs a common event that does
# a custom animation if some condition is true. The screen
# should fade to black when the common event is finished:
#
#if $game_map && $game_map.map_id==20 # If on map 20
# pbCommonEvent(20)
# handled=true # Note that the battle animation is done
#end
#

I called pbCommonEvent(9) at this point (just after the last command line), but it never gets executed. I put a "p(id)" inside the pbCommonEvent and it's just popping up just before the battle starts, so it must be a problem of the game interpreter, right? Someone used this function and know how to fix it?
  #9556  
Unread December 5th, 2011, 04:58 PM
fantasykisala's Avatar
fantasykisala
Unhatched Egg
 
Join Date: Dec 2011
Location: Winchester, Va USA
Gender: Female
I clicked the link but it said that the file was not found.
  #9557  
Unread December 5th, 2011, 05:16 PM
IceGod64's Avatar
IceGod64
My imagination.
 
Join Date: Oct 2008
Location: Castelia City
Age: 25
Gender: Male
Nature: Naive
Quote:
Originally Posted by fantasykisala View Post
I clicked the link but it said that the file was not found.
To get essentials?

Pokémon essentials is no longer run by poccil, and I don't even know if his website is up. If you tried the first post in this thread, go here instead:
http://pokemonessentials.wikia.com/w...ssentials_Wiki

Pokémon essentials is developed by the community(Mostly Maruno) now, and Maruno put up this Wiki as an essentials information website. The latest release is there.
__________________

  #9558  
Unread December 5th, 2011, 05:23 PM
fantasykisala's Avatar
fantasykisala
Unhatched Egg
 
Join Date: Dec 2011
Location: Winchester, Va USA
Gender: Female
@IceGod64
Thank you very much for giving me the link of where to go.
  #9559  
Unread December 6th, 2011, 01:53 AM
tylerab01's Avatar
tylerab01
Pokemon AquaHarmony
 
Join Date: Apr 2009
Location: France
Gender: Male
Nature: Bold
I am currently trying to change the (X,Y) coordinates of the game screen so that the screen is not on top. How would I do that?
__________________

  #9560  
Unread December 7th, 2011, 07:27 AM
unrivaledneo
Beginning Trainer
 
Join Date: Nov 2011
Curious if anyone has a tutorial or could tell me what sections I need to edit if i resized my game screen, having problems finding them.

I change it to 800x600 cause using larger sprites n tiles, now just trying to find out how to move the Enemy battlers and menu options
__________________
Warning icon
This signature has been disabled.
Spoilers not allowed in signatures.
Please review and fix the issues by reading the signature rules.

You must edit it to meet the limits set by the rules before you may remove the [sig-reason] code from your signature. Removing this tag will re-enable it.

Do not remove the tag until you fix the issues in your signature. You may be infracted for removing this tag if you do not fix the specified issues. Do not use this tag for decoration purposes.
  #9561  
Unread December 7th, 2011, 11:33 AM
zingzags's Avatar
zingzags
Creator or Pokemon Serenity
 
Join Date: Jan 2009
Location: Boston
Age: 19
Nature: Adamant
I need help with selarrow, every time I try to put a custom one its either cut off or I cannot position it properly.
__________________
Pokemon Serenity is my fangame name.
name decided 12/15/09
Currently helping:
Pokemon ebony
and
Xenotime:
  #9562  
Unread December 7th, 2011, 02:11 PM
Batman-Forever
Beginning Trainer
 
Join Date: Dec 2011
Gender: Male
thanks a bundle mate, really NOT! the downloads no longer exist, thanks again ya sods!
  #9563  
Unread December 7th, 2011, 02:25 PM
desbrina's Avatar
desbrina
Lightning Yellow Creator
 
Join Date: Feb 2011
Location: UK
Age: 24
Gender: Female
Nature: Quiet
Quote:
Originally Posted by Batman-Forever View Post
thanks a bundle mate, really NOT! the downloads no longer exist, thanks again ya sods!
it can be downloaded from here
http://pokemonessentials.wikia.com/wiki/Downloads

the link in the first post is wrong, thats all
__________________
Creator of


A Pokemon Yellow remake, using HGSS Tiles, and the ability to obtain all Kanto Pokemon as well as their previous/later evolutions.

Current Give-away: None
Dates: Unknown

If your reporting a problem, please make sure you're using the latest version first. Please post the full error message if there is one, as well as what you were doing/did so that i can recreate it

  #9564  
Unread December 7th, 2011, 07:15 PM
KitsuneKouta's Avatar
KitsuneKouta
狐 康太
 
Join Date: Mar 2010
Age: 22
Gender: Male
Quote:
Originally Posted by Batman-Forever View Post
thanks a bundle mate, really NOT! the downloads no longer exist, thanks again ya sods!
A few things:
-This is supposed to be an all-ages forum, so keep vulgarity to yourself, British or otherwise, mild or strong.
-You should have noticed that the first post is quite old, if you checked the date. Thus the probability of the link being dead was invariably high. The link you were searching for was in the 5th post above your own, quite visible if you would take the time to read.
-This is not the place to be provocative. Courtesy will get you much farther.

Also, to hedge this off before it becomes an issue, for any questions you have about this starter kit you should refer to the wiki first (the link has been posted twice on this page, and you'll find it in Maruno's signature as well. Google also helps), and only ask questions which haven't already been answered there. We get a great deal of novice users who don't read it and ask questions that have been repeated many times over. The search function in this forum will also help. This thread is very cluttered as it is, no need to add more unless it's productive. However, legitimate questions, concerns, and suggestions are very welcome.

Welcome to the game dev forum.
__________________
Creator of the Harvest Moon Tool Kit (HMTK).

Anime/Manga fans can find me on MyAnimeList.net, as KitsuneKouta.
  #9565  
Unread December 8th, 2011, 02:42 AM
pacoparrot
Unhatched Egg
 
Join Date: Dec 2011
This happens when I try to start up.

It asks me to define bug catcher and when I do this pops up even if I say no.
Quote:
---------------------------
Pokemon Essentials
---------------------------
Exception: NoMethodError

Message: undefined method `map_interpreter' for Game_System:Class

PokemonMessages:127:in `pbMapInterpreter'

Compiler:2873:in `pbTrainerTypeCheck'

Compiler:2885:in `pbTrainerBattleCheck'

Compiler:3814:in `pbConvertToTrainerEvent'

Compiler:2927:in `pbCompileTrainerEvents'

Compiler:2922:in `each'

Compiler:2922:in `pbCompileTrainerEvents'

Compiler:2917:in `each'

Compiler:2917:in `pbCompileTrainerEvents'

Compiler:4022:in `pbCompileAllData'



This exception was logged in
  #9566  
Unread December 8th, 2011, 05:29 PM
KitsuneKouta's Avatar
KitsuneKouta
狐 康太
 
Join Date: Mar 2010
Age: 22
Gender: Male
Quote:
Originally Posted by pacoparrot View Post
This happens when I try to start up.

It asks me to define bug catcher and when I do this pops up even if I say no.
I would try either erasing the event that's causing the problem, or manually adding that trainer to the txt file (I don't know if the editor actually works correctly in-game for adding trainers).
__________________
Creator of the Harvest Moon Tool Kit (HMTK).

Anime/Manga fans can find me on MyAnimeList.net, as KitsuneKouta.
  #9567  
Unread December 9th, 2011, 09:58 PM
IceGod64's Avatar
IceGod64
My imagination.
 
Join Date: Oct 2008
Location: Castelia City
Age: 25
Gender: Male
Nature: Naive
Is it possible to assign text/shadow colors to a command list in essentials?

I tried "@cmdwindow.color", but that just made the entire list, both main text and shadows, and all related graphics(e.g the selection arrow) the given color...
__________________


Last edited by IceGod64; December 15th, 2011 at 06:37 AM.
  #9568  
Unread December 14th, 2011, 04:28 AM
zingzags's Avatar
zingzags
Creator or Pokemon Serenity
 
Join Date: Jan 2009
Location: Boston
Age: 19
Nature: Adamant
For some reason some wild pokemon causes the battle to lag, so far I found out that PARAS, Goldeen, Magickarp, and Feebass causes my game to lag inside battle, but other pokemon are fine. Is there a reason for this?
__________________
Pokemon Serenity is my fangame name.
name decided 12/15/09
Currently helping:
Pokemon ebony
and
Xenotime:
  #9569  
Unread December 20th, 2011, 05:03 PM
charizard124
Beginning Trainer
 
Join Date: Apr 2011
Gender: Male
Does anyone knows how to make a server to make trades or battles, i dont like essentials online because it is complety different, can someone help me?
  #9570  
Unread December 21st, 2011, 03:02 AM
Rickyboy's Avatar
Rickyboy
Its time for overtime
 
Join Date: May 2009
I have kind of a more specific version of a genreic question, and this comes from me not having essentials anymore(even when I did I used it like two times, but that's irrelavent).

Anyways, I'm doing some side-work for a fan-game on here, and one of those things includes making an animated start screen a la lugia/ho-oh flying in SSHG or zekrom/reshiram standing on the platform in BW, and while I know many people have posted in here talking about adding one to their game, they all generally say they used gif. files. However, due to the program I'm making the intro with, gif is not an available file type.(although I can convert it using another program if neccessary, I just fear a drop in quality, so I'd like to avoid that)

So basically my questions are what file types other than .gif can essentials handle, and from that, which ones are ideal. Plus, if anyone knows from experience any other problems, such as lag from too big of file size and the such.

In addition, if its more a simple matter then I think, if someone would be kind enough to show me the code(or where its located in essentials as the case may be), or present me with a tutorial or reply that details it so I can hand that over to the project coordinator.

Thanks for any and all help!
  #9571  
Unread December 21st, 2011, 11:08 PM
Elyssia's Avatar
Elyssia
Unhatched Egg
 
Join Date: Nov 2010
Location: The Netherlands
Age: 22
Gender: Female
Nature: Gentle
I am a little new to this, but for some reason the External Editor Application keeps crashing with a Fade in/out event in script.
This crash happens when i try to save the changes on most things.
But as example, this crash came from the Trainer Type editor...
Anyone knows how to fix this?

Error crash message displays as follows:

Code:
Exception: NoMethodError
Message: undefined method `pbSaveTrainerNames' for nil:NilClass
PokemonTrainers:66:in `pbConvertTrainerData'
PokemonEditor:3019:in `pbTrainerTypeEditorSave'
PokemonEditor:3568:in `pbTrainerTypeEditor'
PokemonEditor:3540:in `pbListScreenBlock'
PokemonEditor:1522:in `loop'
PokemonEditor:1547:in `pbListScreenBlock'
PokemonEditor:3540:in `pbTrainerTypeEditor'
EditorMain:238:in `pbEditorMenu'
EditorMain:238:in `pbFadeOutIn'
EditorMain:238:in `pbEditorMenu'
Thank you


*Note: I haven't changed anything in the scripts.
It's still in standard values in the latest download...

Last edited by Elyssia; December 21st, 2011 at 11:24 PM.
  #9572  
Unread December 22nd, 2011, 01:56 AM
IceGod64's Avatar
IceGod64
My imagination.
 
Join Date: Oct 2008
Location: Castelia City
Age: 25
Gender: Male
Nature: Naive
Quote:
Originally Posted by Elyssia View Post
I am a little new to this, but for some reason the External Editor Application keeps crashing with a Fade in/out event in script.
This crash happens when i try to save the changes on most things.
But as example, this crash came from the Trainer Type editor...
Anyone knows how to fix this?

Error crash message displays as follows:

Code:
Exception: NoMethodError
Message: undefined method `pbSaveTrainerNames' for nil:NilClass
PokemonTrainers:66:in `pbConvertTrainerData'
PokemonEditor:3019:in `pbTrainerTypeEditorSave'
PokemonEditor:3568:in `pbTrainerTypeEditor'
PokemonEditor:3540:in `pbListScreenBlock'
PokemonEditor:1522:in `loop'
PokemonEditor:1547:in `pbListScreenBlock'
PokemonEditor:3540:in `pbTrainerTypeEditor'
EditorMain:238:in `pbEditorMenu'
EditorMain:238:in `pbFadeOutIn'
EditorMain:238:in `pbEditorMenu'
Thank you


*Note: I haven't changed anything in the scripts.
It's still in standard values in the latest download...
The latest version of essentials has that bug, and Maruno has made a fix, which he will provide in the upcoming release of essentials. Expect to see that once gets its own section. Since the editor isn't newbie-friendly, your best bet is to hold out if possible and ask Cilerba to make an essentials section. Sorry.

Edit: For the fix itself, just edit the editorss scripts and find and change all instances of "pbSaveTrainerNames" to "pbSaveTrainerTypes".
__________________

  #9573  
Unread December 22nd, 2011, 10:38 AM
Elyssia's Avatar
Elyssia
Unhatched Egg
 
Join Date: Nov 2010
Location: The Netherlands
Age: 22
Gender: Female
Nature: Gentle
For some reason I don't find anything linked to 'pbSaveTrainerNames'.
I say Control + F fail... :/
Meh, I'll just wait for the next release, no TBA/Announcement yet?


Cheers
  #9574  
Unread December 22nd, 2011, 05:43 PM
Maruno's Avatar
Maruno
Lead Dev of Pokémon Essentials
 
Join Date: Jan 2008
Location: England
Gender: Male
Quote:
Originally Posted by Elyssia View Post
For some reason I don't find anything linked to 'pbSaveTrainerNames'.
I say Control + F fail... :/
Meh, I'll just wait for the next release, no TBA/Announcement yet?


Cheers
You're probably looking at the main scripts, then, not the External Editor's scripts. In the Data folder there's a file called EditorScripts. Rename that to Scripts (after moving the existing Scripts file out of the way), and try again.

Alternatively, just edit the PBS file trainertypes. It's not difficult.

The next version is to be released when Essentials gets its own section, or at least when I hear something about whether the section is ever going to be made. I want to launch the section properly if it's going to exist.
__________________
  #9575  
Unread December 22nd, 2011, 08:46 PM
zingzags's Avatar
zingzags
Creator or Pokemon Serenity
 
Join Date: Jan 2009
Location: Boston
Age: 19
Nature: Adamant
Well I managed to fix the other problem, well Now I have a new one, for pokemon with there level one moves. Well lets say I create a Pokemon and it has A level one move like scratch, the pokemon stats get messed up if its in my party, for example when I click ABRA and try to use teleport it wont let me me use it, or when i try to go to its summary screen the stats are messed up. But if i dont have teleport anymore with the pokemon, the pokemon itself is fine.
__________________
Pokemon Serenity is my fangame name.
name decided 12/15/09
Currently helping:
Pokemon ebony
and
Xenotime:
Closed Thread
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

Forum Jump


All times are UTC. The time now is 08:13 PM.


Style by Perdition Haze, artwork by Sa-Dui.
Like our Facebook Page Follow us on TwitterMessage Board Statistics | © 2002 - 2013 The PokéCommunity™, pokecommunity.com.
Pokémon characters and images belong to Pokémon USA, Inc. and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, The Pokémon Company, Pokémon USA, Inc., The Pokémon Company International, or Wizards of the Coast. We just love Pokémon.
All forum styles, their images (unless noted otherwise) and site designs are © 2002 - 2013 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 posts belong to the user.