vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.5 Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=113)
-   -   RPG Stats, yet again! (https://vborg.vbsupport.ru/showthread.php?t=93552)

Bojangles 09-03-2005 08:34 PM

That did work great.. thanks! :)

Toky0 09-06-2005 05:57 PM

Love this hack, great work Zachery! :cool:

bi11i 09-06-2005 09:49 PM

I like this mod, I can see that it provides some interesting figures, but for those of us that know nothing of RPG, what ARE these stats exactly? HP, MP, EXP? I can imagine that EXP might stand for experience, how is experience calculated?
Quote:

Originally Posted by SnitchSeeker
haiboss, I love your graphical version! Very nice job!

Still, I wonder the same as Kaelon. How are the stats derived (other than math)? What figures does it use to come up with these variables. Or are they all random and completely pointless (other than for fun)?


LockeAG 09-07-2005 04:37 AM

Quote:

Originally Posted by bi11i
I like this mod, I can see that it provides some interesting figures, but for those of us that know nothing of RPG, what ARE these stats exactly? HP, MP, EXP? I can imagine that EXP might stand for experience, how is experience calculated?

Mh.. well...

HP : HIT POINTS
MP: MAGIC POINTS
EXP: EXPERIENCE

and I think teh experience its calculated based on the Join Time and the number of post.

I would like to know if its possible to calculate the MP based on the Reputation if it is in use .

bi11i 09-07-2005 01:58 PM

Quote:

Originally Posted by LockeAG
Mh.. well...

HP : HIT POINTS
MP: MAGIC POINTS
EXP: EXPERIENCE

and I think teh experience its calculated based on the Join Time and the number of post.

I would like to know if its possible to calculate the MP based on the Reputation if it is in use .

well that makes a little more sense, but yes - how are the MP's and HP's calculated?

Zachery 09-07-2005 02:51 PM

Quote:

Originally Posted by bi11i
well that makes a little more sense, but yes - how are the MP's and HP's calculated?

Again its all math :p

Let me go find Komans post.. whereever it may be hidden deep in the recesses of the vBulletin 2 hacks.

Zachery 09-07-2005 02:55 PM

Quote:Knoman

HP drops and rises according to the members activeness.
MP determins how long a user has been with the forums, and how active they are.
EXP determins how close a user is to reaching the next level.

Let's break it down to simple English, shall we?

$level = pow (log10 ($post[posts]), 3);
This is a simple logarithm that will calculate the how much post a member needs in order to get to the next level. This is the engine that will control all other calculations. Now, I've cubed it so leveling resembles Final Fantasy; where the max level is 99. If you are into D&D, squaring the formula would be best, requiring a lot of post before a user can reach level 20. In short, the higher the exponent, the quicker it is to level up.

$ep = floor (100 * ($level - floor ($level)));
This is the basis for the Experience system. What i did here, was take the remainder (or mod) from the Level logarithm and converted it to a percentage. I wasnt sure if PHP had a MOD function, so I did it the hard way.

$showlevel = floor ($level + 1);
I cant have a user with level zero, but i didnt want to affect the engine with a false number either. So, I created another variable $showlevel and added 1, which will only be used to show users, and wont affect the calculations.

$hpmulti =round ($postsperday / 6, 1);
if ($hpmulti > 1.5) {
$hpmulti = 1.5;
}
if ($hpmulti < 1) {
$hpmulti = 1;
}
This code here was to add to the randomness. This is my HP bonus multiplier. I took the post per day and divided by six and rounded it to the tenths decimal. I use a few IF functions to prevent it from being too high and too low.

$maxhp = $level * 25 * $hpmulti;
Determins the Max HP. Not much to be said here, 25 just seem to be a nice number.

$hp= $postsperday / 10;
If a person couldnt perform a ten post per day average, HP will drop.

if ($hp >= 1) {
$hp= $maxhp;
} else {
$hp= floor ($hp * $maxhp);
}
Sets the limit on how high your HP will go. Keeps it at or under the Max HP

$hp= floor ($hp);
$maxhp= floor ($maxhp);
HP calcualations are down. Rounding down for viewing sake.

if ($maxhp <= 0) {
$zhp = 1;
} else {
$zhp = $maxhp;
}
Debugs the Divide by Zero error.

$hpf= floor (100 * ($hp / $zhp)) - 1;
Is used in the templates.

$maxmp= ($jointime * $level) / 5;
Determins Max MP. Again, the 5 just seems right.

$mp= $post[posts] / 3;
Determins MP, not sure why I chose to do what I did, but it works. This is the reason why MP is still a mystery to my members and even to me.

if ($mp >= $maxmp) {
$mp = $maxmp;
}
Keeps MP from going above its max.

$maxmp = floor ($maxmp);
$mp = floor ($mp);
MP calculations done. Rounding down.

if ($maxmp <= 0) {
$zmp = 1;
} else {
$zmp = $maxmp;
}
Debugs the divide by zero error.

$mpf= floor (100 * ($mp / $zmp)) - 1;
Is used in the templates.

like i've mentioned earlier, this hack was spun off of role playing games (i.e. final fantasy). hp stands for health points. the more your points, well.... the better your health is. mp stands for magic points, your ability to cast certain spells and such. and, well... you know what experience is.

now, what drives this entire system is this one code:
$level = pow (log10 ($post[posts]), 3);

what that code does is set the standard at when a member is able to level up, and how much hp/mp s/he should recieve. a low level member is able to reach the next level very easily (only requiring a handful of posts). those at the high end levels would require a whole lot more posts to achieve the next level.

the rise and fall of the hp meter is determine by this variable $postperday. what that does is take the total number of posts and devide it by the total number of days the person has been registered. the quotient is then taken and divided even further by the max hp... by doing so, it gives me a percentage that changes constantly.

i've feel that i've explained everything the best way that i could. any further would be me teaching you how to read and understand php... or any programming language for the matter. none of this is technical, it's mostly multiplication and division. this was my very first project with php. i knew nothing about it. but what i did was open a math book and headed to php.net.

you give a man a fish, he feeds for a day.
you teach a man to fish, he feeds for life.

bi11i 09-07-2005 03:00 PM

...the post I never could find. Thanks!

Zachery 09-07-2005 03:20 PM

Those are several of his posts from his original thread :)

I updated the hack post with a link to the post above and gave credits where credit was due

angelo70 09-11-2005 12:49 AM

plz..
i want view private message..


All times are GMT. The time now is 04:04 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01057 seconds
  • Memory Usage 1,753KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (4)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete