Custom Dialogues System with avatars (scripting)

This forum is meant for people to share their knowledge by writing their own tutorials for Adventure Maker.

Moderators: time-killer-games, Vengeance66, Candle, reneuend, GM-Support

Custom Dialogues System with avatars (scripting)

Postby Lyberodoggy » Thu Mar 27, 2008 3:14 pm

You are able to create custom dialogues or messages using vbs. They can also use avatars.

Here's the idea: Create a blank frame (we 'll merge it with the frames you need the dialogue to appear.). Create one hotspot on the bottom to use it as a black background.in its appearance select picture and then create a simple black picture (or whatever color you want your background). Resize this hotspot to capture from one side to the other and make it as tall as you want. Create another hotspot and select picture in its appearance. Select an avatar and resize the hotspot. This way the hotspot won't change, even if the other avatars you load are bigger. Finally create a text by right clicking, select the font and the color you want it to be. Write anything you want, it won't be displayed.

Now go to VBS procedures and type these:
Code: Select all
sub ClearDialogue()
Action.LoadAPicture Hotspot(Action.GetMergedHotspotIndex), ""
Action.LoadAPicture Hotspot(Action.GetMergedHotspotIndex+1), ""
Text(Action.GetMergedTextIndex).caption=""
End Sub

This code will make the dialogues disappear, untill we want them to appear.

Merge the frame with every frame you want the custom dialogues to appear.

In the Frames' advanced write
Code: Select all
ClearDialogue


All you 've got to do now is go to the hotspot you want to trigger the dialogue from and type this code:
Code: Select all
Action.LoadAPicture Hotspot(Action.GetMergedHotspotIndex), "theblackpicture.theextention"
Action.LoadAPicture Hotspot(Action.GetMergedHotspotIndex+1), "TheAvatar.Theextention"
Text(Action.GetMergedTextIndex).caption="The message you want to appear"
Action.CreateTimedEvent 4, "ClearDialogue"

where 4 must be replaced with the time you want your message to last.
By working on it, you can create complex dialogues with nice appearance.

Remember that if you want to display two lines you have to type:
Code: Select all
"The first line"+vblf+"the second line"
etc


hope you liked this. If you have any questions, ask me
User avatar
Lyberodoggy
Administrator
 
Posts: 2526
Joined: Sat Feb 17, 2007 3:31 pm
Location: Athens

Postby Candle » Thu Mar 27, 2008 4:49 pm

Sounds cool ,maybe a small project sample would be best to show how it is done.
Please don't PM me questions, ask here in the forums!
``````````````
Between grand theft and a legal fee, there only stands a law degree.
User avatar
Candle
Administrator
 
Posts: 3077
Joined: Sat Feb 07, 2004 2:21 am
Location: Rudy's Bar

Postby Lyberodoggy » Thu Mar 27, 2008 5:05 pm

Okay! On Candles request I 've created a sample. The black hotspot kept laying over the text though, so I 've decided not to include it...

Note that since you are using vbs to display these dialogues, you can launch audio files without EZTalk, by adding the procedure that exists in the AM manual (Play sounds/Videos using vbs)
Attachments
testagain2.rar
this is only a sample. Remember that you can work on the code to make it fit your needs
(157.52 KiB) Downloaded 944 times
User avatar
Lyberodoggy
Administrator
 
Posts: 2526
Joined: Sat Feb 17, 2007 3:31 pm
Location: Athens

Postby Candle » Thu Mar 27, 2008 5:54 pm

thanks.
Please don't PM me questions, ask here in the forums!
``````````````
Between grand theft and a legal fee, there only stands a law degree.
User avatar
Candle
Administrator
 
Posts: 3077
Joined: Sat Feb 07, 2004 2:21 am
Location: Rudy's Bar

Postby Lyberodoggy » Thu Mar 27, 2008 6:48 pm

You are welcome Candle :P

Did you like it?
User avatar
Lyberodoggy
Administrator
 
Posts: 2526
Joined: Sat Feb 17, 2007 3:31 pm
Location: Athens

Postby Candle » Thu Mar 27, 2008 7:21 pm

yes I did, should be good to use with some games .
Please don't PM me questions, ask here in the forums!
``````````````
Between grand theft and a legal fee, there only stands a law degree.
User avatar
Candle
Administrator
 
Posts: 3077
Joined: Sat Feb 07, 2004 2:21 am
Location: Rudy's Bar

Postby sugawara » Tue Aug 19, 2008 5:40 pm

hello,

im not sure i get this, I downloaded the example, and ran it but all i got was a parrot head that says "text" next to it. there is nothing to click or whatnot.

of course i dont understand VB, ive never used it before, but when i saw this i had hope that i could put together something for my college that i didnt think was possible previously.

anyhow please let me know how this is supposed to work, im a bit confused on what i am doing wrong.

also, would this work if i had an avatar with a transparent back ground such as a photoshop png would have? so i could i could use a very detailed backdrop or photograph i have taken?

thankyou for the help!

EDIT: ive been reading through this for a ocuple of hours and trying to run the test file in AM 4.5 and it isnt giving me a clue at all as to what i should be doing or what is going on... hmmm
sugawara
Active Member
 
Posts: 90
Joined: Sat Oct 28, 2006 4:25 am

Postby Lyberodoggy » Tue Aug 19, 2008 8:01 pm

Hi sugawara, thanks for reading my tutorial.

Well, you must run the other frame (not the one with the parrot and the text) and click on the hotspot (a red arrow will appear when you drag the mouse over it). You will see what happens then. The code is in the hotspot properties.


You can use transparent avatars, but I think you will need gifs and not pngs (I use photoshop transparent gifs).
User avatar
Lyberodoggy
Administrator
 
Posts: 2526
Joined: Sat Feb 17, 2007 3:31 pm
Location: Athens

Postby sugawara » Wed Aug 20, 2008 6:39 pm

thankyou! i got it to work, i made the opposite page the starting page and it works. and now i have another type of question. if i wanted to make the coversation longer than "hi" and "hello!" how do i add lines of script to it? ive never actually used VB before and it looks like i could just copy and past the lines over and over just adding in the text that iwant, but i am unsure.

2. also, if i wanted to add another button with a seperate conversation, for example, if i wanted two conversations on one page, is that possible?

3. and where does all the VB scripting go? into just the button?

4. in your tutorial, what do you mean "merge frames" connecting them? with buttons? or something else?

i apologize for all the questions, as i said im really new to it, and this has given me hope for a way to accomplish something for my the university i work at. ( im working on a map presentation with pictures that pop up that show you parts of the campus with the bust of a man talking in bubbles about the area)


thankyou very much!
sugawara
Active Member
 
Posts: 90
Joined: Sat Oct 28, 2006 4:25 am

Postby mercedes » Wed Aug 20, 2008 11:14 pm

if i wanted to make the coversation longer than "hi" and "hello!" how do i add lines of script to it? ive never actually used VB before and it looks like i could just copy and past the lines over and over just adding in the text that iwant, but i am unsure.


To add more lines to your script use):

Code: Select all
"The first line"+vblf+"the second line"


2. also, if i wanted to add another button with a seperate conversation, for example, if i wanted two conversations on one page, is that possible?


Yes you would put the dialogue code into a second button on the Merged Frame.--the same way you got the first dialogue.only now u add another button..(hotspot)

3. and where does all the VB scripting go? into just the button?


Depending on where you want to trigger an event..It either goes into the Frames Properties Advanced or the Hotspots Properties Advanced TAB

4. in your tutorial, what do you mean "merge frames" connecting them? with buttons? or something else?


In order for any of this to happen..you would have to make a frame with all of the code into it [Blank frame] . Then while in Thumbnail view of all of your frames..Hit the link that says "Runtimes Frames Merging] Merge all of the frames you want the dialoge to appear on..


Hope that helps :)

Peace~
User avatar
mercedes
VIP
 
Posts: 2460
Joined: Sun Mar 09, 2008 10:43 pm
Location: Canada..~

Postby sugawara » Thu Aug 21, 2008 3:41 pm

that actually helps alot thankyou, but im still not completely clear on it.

this: "The first line"+vblf+"the second line" where in the vbs does it go? in the frames properties or in the buttons vb tab?
and i assume what is inside the quotes is what i write in as the dialog?

and for triggering an event, ive seen that there is vb script in both the frame and in the buttons, so i am unsure of where exactly the script goes.. obviously there must be something in the frame and the button, but does that go for every frame?

i discovered one more thing while looking through it, there is the text box, but not clear on how you make that text box.

thanks again for all the help!
sugawara
Active Member
 
Posts: 90
Joined: Sat Oct 28, 2006 4:25 am

Postby Lyberodoggy » Thu Aug 21, 2008 8:23 pm

To create a textbox:
In frame properties VB tab write:

Code: Select all
Action.LoadControl TextboxObject(1)
TextboxObject(1).Move 125*15,125*15,100*15,70*15 'configure these coordinates, leave the *15 as is
TextboxObject(1).Visible=true


For more info about textboxes handling, search for the VB textbox reference.

Two properties for exampe are
TextboxObject.Frontcolor (the color of the letters)
and
TextboxObject.Backcolor (the color of the background)
User avatar
Lyberodoggy
Administrator
 
Posts: 2526
Joined: Sat Feb 17, 2007 3:31 pm
Location: Athens

Postby mercedes » Thu Aug 21, 2008 9:35 pm

Code: Select all
sub ClearDialogue()
Action.LoadAPicture Hotspot(Action.GetMergedHotspotIndex), ""
Action.LoadAPicture Hotspot(Action.GetMergedHotspotIndex+1), ""
Text(Action.GetMergedTextIndex).caption=""
End Sub


That code goes into Global Procedures.--You will see a link on the side that says Procedures.--This is done so you can trigger a conversation from anywhere in your project.--No need to adjust this, copy and paste it.

Code: Select all
ClearDialogue
---This code goes into the advanced TAB of the Frame you are merging..the one you wrote text on..[blankframe]Once you are done this..You will merge all frames with it..so you simply only have to do the dialogue now in the hotspots...

Code: Select all
Action.LoadAPicture Hotspot(Action.GetMergedHotspotIndex), "theblackpicture.theextention"
Action.LoadAPicture Hotspot(Action.GetMergedHotspotIndex+1), "TheAvatar.Theextention"
Text(Action.GetMergedTextIndex).caption="The message you want to appear"
Action.CreateTimedEvent 4, "ClearDialogue"



This part of the code goes into the hotspot you want to trigger the conversation..

All VBS script goes into either the Advanced of the Frame or the Advanced Tab of the Hotspot--You only have 2 choices..Other than when you put something in the Global Procedures--This is done so you can trigger the same event from anywhere in your project.

You would put the TEXTBOX into the Frames advanced tab where you want it to appear. --Adjust the coordinates..:)

To make more than one line of TEXT you would put +vblf+ between plus signs and the text between the quotes. You would put this into the Advanced TAB of the Hotspot you are wanting to trigger the converstation...yes that is your dialogue..:)

Each Avatar has its own dialogue..so each Avatar must have its own advanced vbs script.


Hope that helps..:)
Peace
User avatar
mercedes
VIP
 
Posts: 2460
Joined: Sun Mar 09, 2008 10:43 pm
Location: Canada..~

Postby sugawara » Fri Aug 22, 2008 2:15 am

Now it mostly makes sense, soxi went into doggies premade script and tried to ad a third person to the conversation,but no luck. It seems to add another dialog (3rd person), I can't just copy/paste the last few lines of script and change the pic and the dialog...... Any ideas?
sugawara
Active Member
 
Posts: 90
Joined: Sat Oct 28, 2006 4:25 am

Postby mercedes » Fri Aug 22, 2008 2:25 am

What is happening when you try...?


Peace~
User avatar
mercedes
VIP
 
Posts: 2460
Joined: Sun Mar 09, 2008 10:43 pm
Location: Canada..~

Postby sugawara » Fri Aug 22, 2008 2:39 am

well when i do it, i cop/paste the last few lines, since it seems like it should work that way, but when i do it and then change the 3rd scripts pic and line of text, it doesnt seem to work at all:

Action.LoadAPicture Hotspot(Action.GetMergedHotspotIndex), "chick2.gif"
Text(Action.GetMergedTextIndex).caption="line of text"
Action.CreateTimedEvent 4, "ClearDialogue",False
Action.CreateTimedEvent 5, "Action.LoadAPicture Hotspot(Action.GetMergedHotspotIndex), ""chick1.gif""",False
Action.CreateTimedEvent 5, "Text(Action.GetMergedTextIndex).caption=""line of text""",False
Action.CreateTimedEvent 9, "ClearDialogue",False
Action.CreateTimedEvent 5, "Action.LoadAPicture Hotspot(Action.GetMergedHotspotIndex), ""chick1.gif""",False
Action.CreateTimedEvent 5, "Text(Action.GetMergedTextIndex).caption=""line of text""",False
Action.CreateTimedEvent 9, "ClearDialogue",False

this looks odd but all i did was copy paste the last part, my assumption is that the pattern continues and i could just easily change the pic and line of text to suit whatever i wanted.....
sugawara
Active Member
 
Posts: 90
Joined: Sat Oct 28, 2006 4:25 am

Postby mercedes » Fri Aug 22, 2008 2:47 am

All you need is this):

Code: Select all
Action.LoadAPicture Hotspot(Action.GetMergedHotspotIndex+1), "TheAvatar.Theextention"
Text(Action.GetMergedTextIndex).caption="The message you want to appear"
Action.CreateTimedEvent 4, "ClearDialogue"


You would put that in each hotspot of each avatar..
*Edit*

Are u working with 1 hotspot only? Looks like it ..Also, it's the same picture for the third as it is the second one...i would try just repeating this code over and see if that works...Only change the numbers to suit your needs.



Peace..
User avatar
mercedes
VIP
 
Posts: 2460
Joined: Sun Mar 09, 2008 10:43 pm
Location: Canada..~

Postby sugawara » Fri Aug 22, 2008 12:41 pm

yeah i am working with one button, it would be nice to have it so you could click the button for the next part of the conversation, so you wouldnt need it timed, just click "next" and be done with it. your code looks much easier than what i was doing with the other code, ill give it a try today and hopefully i understand it well enough to make it work.

thankyou for all the help! ill post again if i cant figure it out!

EDIT:
so with your code Mercedes, how do i have more than one person if im only using this code once per hotspot? i have no knowledge of VB but from the code i was using above, i have more than one person talking in the coversation, like it is conversation going back and forth... so maybe what you are saying is, all i have to do is repeat your code in the way i have been to make a conversation between two characters?

wow thats lengthy! is it understandable?
sugawara
Active Member
 
Posts: 90
Joined: Sat Oct 28, 2006 4:25 am

Postby mercedes » Sat Aug 23, 2008 3:26 am

Hi there..Sugawara...

If you are looking for an alternative way of doing this then here is another way..It has nothing to do with this tutorial though..but its an alternative way..Hopefully this will help..

Create a variable called MyVariable Or name it what u want.. Also create a Blank Frame--Write on the frame anything you want..and make it BLACK --you wont see the text--dont worry. We are going to change the color in the code.

Put this in the Advanced of the Hotspot of the button Hotspot(1). All together you will have 2 hotspots on the frame..Hotspot(1) and Hotspot(2)..on the other frame, not the blank one.



Code: Select all
MyVariable = MyVariable- 1
If Myvariable = -1 Then
   Action.LoadAPicture Hotspot(2), "Avatar-1.gif"
   Text(1).Caption = "Whats up?"
   Text(1).Forecolor = RGB (0,255,255)
Else If MyVariable = -2 Then
   Action.LoadAPicture Hotspot(2), "Avatar-2.gif"
   Text(1).Caption = "Nothing you?"
Else If MyVariable = -3 Then
   Action.LoadAPicture Hotspot(2), "Avatar-3.gif"
    Text(1).Caption = "What about me?"

End If
End If
End If

If Myvariable = -3 Then Myvariable = 0





Merge the frame where you have the 2 hotspots, with the blank one u created the black text on.

The way this code works, is the avatars will keep loading over and over with the same text..--But you can fix this to suit your needs..Just keep adding "Else If's"



Hope that helps:)

P.S..Im unable to look at this demo..which is why i come up with that..I only have .zip..It's a running joke between me and the Kid~.:lol:

Peace
Last edited by mercedes on Fri Sep 26, 2008 12:38 pm, edited 1 time in total.
User avatar
mercedes
VIP
 
Posts: 2460
Joined: Sun Mar 09, 2008 10:43 pm
Location: Canada..~

Postby Lyberodoggy » Sat Aug 23, 2008 11:07 am

Well, the timed events you have created are acting at the same time, that's why it doesn't work. You must add the time you want to pass between the second and third dialogue to the time that must pass between the first and second:

Code: Select all
Action.LoadAPicture Hotspot(Action.GetMergedHotspotIndex), "chick2.gif"
Text(Action.GetMergedTextIndex).caption="line of text"
Action.CreateTimedEvent 4, "ClearDialogue",False
Action.CreateTimedEvent 5, "Action.LoadAPicture Hotspot(Action.GetMergedHotspotIndex), ""chick1.gif""",False
Action.CreateTimedEvent 5, "Text(Action.GetMergedTextIndex).caption=""line of text""",False
Action.CreateTimedEvent 9, "ClearDialogue",False
Action.CreateTimedEvent 14, "Action.LoadAPicture Hotspot(Action.GetMergedHotspotIndex), ""chick1.gif""",False 'you had 5 instead of 14
Action.CreateTimedEvent 14, "Text(Action.GetMergedTextIndex).caption=""line of text""",False
Action.CreateTimedEvent 23, "ClearDialogue",False



Here's the zipped project: (Merc GET RAR!!!)
Attachments
testagain2.zip
(168.1 KiB) Downloaded 726 times
User avatar
Lyberodoggy
Administrator
 
Posts: 2526
Joined: Sat Feb 17, 2007 3:31 pm
Location: Athens

Postby sugawara » Sun Aug 24, 2008 1:10 am

ok! see that makes even more sense! im not sure how you got 14 for time but thats ok, ill give that a shot.

well ill give it a shot as soon as my wife and kids give me some time this week! lol i do love this idea and need it for my presentations when i get back to japan in 3 weeks. this and that tutorial that show you how to make a map should be more than enough for the project!
sugawara
Active Member
 
Posts: 90
Joined: Sat Oct 28, 2006 4:25 am

Postby Lyberodoggy » Sun Aug 24, 2008 6:25 pm

Wife and kids... Two words I don't like to hear :P

Anyways, the 14 seconds interval comes from the addition of the previous interval and the current one.
That's because the events are created the same time. Not after the end of the previous one.
User avatar
Lyberodoggy
Administrator
 
Posts: 2526
Joined: Sat Feb 17, 2007 3:31 pm
Location: Athens

Postby sugawara » Thu Aug 28, 2008 6:16 pm

hmm when making a text box for the dialog to pop up in, cant i just right click and make a text box? or do i have to write a script for it?

damnit lol i just answered my own question by reading it at the top. lol

NM you can right click and make the box.
sugawara
Active Member
 
Posts: 90
Joined: Sat Oct 28, 2006 4:25 am

Postby mercedes » Thu Aug 28, 2008 6:37 pm

No you can right click to make TEXT..not the box itself..:)

Peace
User avatar
mercedes
VIP
 
Posts: 2460
Joined: Sun Mar 09, 2008 10:43 pm
Location: Canada..~

Postby sugawara » Fri Aug 29, 2008 3:14 pm

"Finally create a text by right clicking, select the font and the color you want it to be. Write anything you want, it won't be displayed. "-lybberdoggy

so the messages can pop up on text, but if i wanted to type something in, i have to create a textbox?


edit: also, instead of timing the messages to go automatically, can it be made so that you have to push the same button to go to the next part of the dialog? or is that getting terribly difficult?

(so you push the button, and the dialog starts, then you continue pushing the button to further the conversation along to the finish)
sugawara
Active Member
 
Posts: 90
Joined: Sat Oct 28, 2006 4:25 am

Postby Lyberodoggy » Fri Aug 29, 2008 10:28 pm

To have it work by pushing the buttons, use a Select case:

create an integer variable called counter

in the hotspot that triggers the message write this:

Code: Select all
counter=counter+1
Select case counter
case 1
Text(1).caption="the first message"
case2
Text(1).caption="the second message"
etc...


Yeah, if you want to input something, you have to use a textbox.
User avatar
Lyberodoggy
Administrator
 
Posts: 2526
Joined: Sat Feb 17, 2007 3:31 pm
Location: Athens

Postby sugawara » Fri Sep 26, 2008 5:13 am

Lyberodoggy wrote:Well, the timed events you have created are acting at the same time, that's why it doesn't work. You must add the time you want to pass between the second and third dialogue to the time that must pass between the first and second:

Code: Select all
Action.LoadAPicture Hotspot(Action.GetMergedHotspotIndex), "chick2.gif"
Text(Action.GetMergedTextIndex).caption="line of text"
Action.CreateTimedEvent 4, "ClearDialogue",False
Action.CreateTimedEvent 5, "Action.LoadAPicture Hotspot(Action.GetMergedHotspotIndex), ""chick1.gif""",False
Action.CreateTimedEvent 5, "Text(Action.GetMergedTextIndex).caption=""line of text""",False
Action.CreateTimedEvent 9, "ClearDialogue",False
Action.CreateTimedEvent 14, "Action.LoadAPicture Hotspot(Action.GetMergedHotspotIndex), ""chick1.gif""",False 'you had 5 instead of 14
Action.CreateTimedEvent 14, "Text(Action.GetMergedTextIndex).caption=""line of text""",False
Action.CreateTimedEvent 23, "ClearDialogue",False



Here's the zipped project: (Merc GET RAR!!!)


hello again! im back in japan and have time again to work on this. Ive gotten this almost all figured out, i understand how this works now, but when i run it with my dialogs, with 14,14,23 the time inbetween the 2nd and 3rd dialog is much longer than the times between the 1st and 2nd, is that supposed to happen? so if i were to make a dialog 10 lines long will it the seconds inbetween continuously get longer?
sugawara
Active Member
 
Posts: 90
Joined: Sat Oct 28, 2006 4:25 am

Postby mercedes » Fri Sep 26, 2008 5:20 am

The way that is set up yes...it will ..I believe you can use whatever time u want..Just don't make them at the same time is all..because you are working with the same hotspot..You can try them .5 seconds apart..depending on how long ur first dialogue is..

You can also try the script i wrote in this thread as well..might work for u too..:)


Peace
User avatar
mercedes
VIP
 
Posts: 2460
Joined: Sun Mar 09, 2008 10:43 pm
Location: Canada..~

Postby sugawara » Fri Sep 26, 2008 5:47 am

Code: Select all
Action.LoadAPicture Hotspot(Action.GetMergedHotspotIndex), "gatemanav.gif"
Text(Action.GetMergedTextIndex).caption="Hello. Welcome to Nihon University in Mishima."
Action.CreateTimedEvent 4, "ClearDialogue",False
Action.CreateTimedEvent 5, "Action.LoadAPicture Hotspot(Action.GetMergedHotspotIndex), ""gatemanav.gif""",False
Action.CreateTimedEvent 5, "Text(Action.GetMergedTextIndex).caption=""I'm the gate guard and I will be your guide""",False
Action.CreateTimedEvent 9, "ClearDialogue",False
Action.CreateTimedEvent 14, "Action.LoadAPicture Hotspot(Action.GetMergedHotspotIndex), ""gatemanav.gif""",False
Action.CreateTimedEvent 14, "Text(Action.GetMergedTextIndex).caption=""Feel free to walk around""+vblf+""and I will explain what I can.""",False
Action.CreateTimedEvent 23, "ClearDialogue",False
Action.CreateTimedEvent 37, "Action.LoadAPicture Hotspot(Action.GetMergedHotspotIndex), ""gatemanav.gif""",False
Action.CreateTimedEvent 37, "Text(Action.GetMergedTextIndex).caption=""And thus the time i wait between dialogs is very long""",False
Action.CreateTimedEvent 60, "ClearDialogue",False


yeah im not sure exactly what it is im doing wrong, i assume that the pattern must be followed to get it to work this way, so i have to keep adding larger incriments of time? or do i just need one of them to stay the same?
sugawara
Active Member
 
Posts: 90
Joined: Sat Oct 28, 2006 4:25 am

Postby mercedes » Fri Sep 26, 2008 5:56 am

Then the only thing i can suggest to try then..would be what u had asked for earlier..to hit a button and have it display the dialogue..and it further the dialogue and No timed events..Thus creating a variable..or You can also do what Lyberodoggy suggested with the Select Case..:)

All u need for both those ideas..you already have done..Blank Frame..and Text on the Frame..Only this time u will have to merge the Blank Frame with the ones with dialogue..Eliminating the timed events and all other script..



Peace
User avatar
mercedes
VIP
 
Posts: 2460
Joined: Sun Mar 09, 2008 10:43 pm
Location: Canada..~

Next

Return to Post Your Own Tutorials

Who is online

Users browsing this forum: No registered users and 0 guests

cron