The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
RPG Integration Hack /w Battle (BETA) Details »» | |||||||||||||||||||||||||
RPG Integration Hack BETA by Bitsys
(vBulletin versions 2.2.6?, 2.2.7, 2.2.8, 2.2.9, and 2.3.0) This hack combines several RPG hacks into one and adds a battle hack. The hacks included in this hack are:
In addition to re-releasing thse hacks, I have added features to all of them (or else there would be no point in re-releasing).
This means that the RPG hacks are database driven and have been partially integrated with the Itemshop. This was necessary in order to make a battle hack, which is also included. Since most people are familiar with the RPG and Itemshop hacks, I will give a brief description of the Battle hack. If you want more information about either of the other two hacks, then refer to their original posts or download the .zip file and read the "readme.txt". If you are a visual learner, then you can scroll down to the second post in this thread, which contains the pictures of all of these hacks. Battle Features:
Getting started with the battle hack:
Why is this a BETA hack? I have tested the installation of this hack on vBulletin versions 2.2.7, 2.2.8, 2.2.9, and 2.3.0. However, because of the scale of this hack, there is plenty of room for errors. Therefore I am making the following disclaimer while this hack is in the BETA stage: WARNINGS:
Miscellaneous: The beta of this hack is free. The full/final release will also be free. All installation instructions and credits are included in the attachment. If you find a bug or have problems, feel free to post them here and I will try to fix them. Please read the included readme file if you have questions. If you can't find the answer, then post your question here and I will answer it. All hacks included in this hack have been re-released with permission of their original creators. Screenshots are in the second post of this thread. Installation: Installation instructions are included in the .zip file. ACKK! I NEED HELP!!! If you are having trouble and need some help, please refer to the help documentation included in the .zip file. It is located in the "extra" directory. If you need help and you have already installed the hack, make sure you check the RPG Manual link in the admin cp. Also, make sure you read the FAQ included with the manual. MY THREADS STOPPED DISPLAYING CORRECTLY!!! See if you are experiencing one of the following symptoms:
If you are experiencing one or more of the above problems, then your showthread.php file was not edited correctly by the installer. This problem usually occurs on boards with other hacks installed that modify the queries in showthread.php. Please go to https://vborg.vbsupport.ru/showpost....postcount=2261 and follow the instructions there. Add-ons: The following add-ons are not included in the default installation. You must apply these add-ons after you have installed the hack successfully. Member profile add-on This add-on let's you display the user's RPG Stats in their member profile. See the .zip file for the add-on. It is located in the "Member Profile Add-on" directory. Auto-update stats after posting This add-on automatically updates the user's stats after they make a post, instead of having to click on the update stats button in the user cp. This add-on involves 2 file edits. The add-on is located at https://vborg.vbsupport.ru/showthrea...452#post356452 Donation Queue by Darkwaltz4 Moderate all Donations. See Who is Donating to Who. All Donations go through Admins or Mods. The add-on is located at https://vborg.vbsupport.ru/showthrea...652#post408652 Battle Background Midi System by Darkwaltz4 Full control over the music that plays during your battles! The add-on is located at https://vborg.vbsupport.ru/showthrea...530#post410530 Randomized First Turn Addon by Moreliator "The following code gives the challenger a 33% chance to start the battle and the challenged person a 66% chance. Works quite well. I also included instructions on how to display "Determining..." on the battle.php browse page, that way people won't decline a challenge if they see they aren't going first. ". The add-on is located at https://vborg.vbsupport.ru/showthrea...614#post410614 Lock RPG Options at a Specified Level Addon by Moreliator This addon allows you to lock all users' RPG options in their USER CP when they reach a certain level. This add-on is located at https://vborg.vbsupport.ru/showthrea...111#post411111 Personal Shop Items Have Battle Bonuses by Triade The original personal shop, allows to have an item the don't do nothing in battle. With this add-on, you can build items with bonus in battle (the bonus is in the attack now). This add-on is located at https://vborg.vbsupport.ru/showthrea...328#post426328 Challengable Option by Darkwaltz4 Allows users to set themselves against recieving battle challenges. This add-on can be found at https://vborg.vbsupport.ru/showthrea...143#post411143 Contact Info: Bitsys Email: bitsys AT mail DOT com PM me for a faster response. I prefer PMs. ~~~~~~~~~~~~ Update 09/04/03 @ 1:46pm v0.68c Battle debug messages were accidentally left on. Minor shield bug was fixed in battlefight.php (Thanks Telchar). Re-upload battleupdate.php and battlefight.php. The new .zip file is located at the bottom of this post. Finally, here is the .zip file (v0.68c): Show Your Support
|
Comments |
#1942
|
||||
|
||||
They are all checked, and still can't use weapons or items, still says I don't have them.
|
#1943
|
||||
|
||||
lol, yes i would say its okay enough for a large active forum^_^ ffgon is pretty huge, and its been working fine...although ive had to tweak some thigs here and there, and im not sure what good any updates would do me unless there were official addons applied or something, lol. it is finally stable on mine :-p
|
#1944
|
|||
|
|||
Been working fine for a month on my boards... 10,000+ members and over 1500 battles so far.
Sure, there are SOME glitches, but we've been able to work through them all, and nothing has been serious enough to jeopardize the boards. |
#1945
|
|||
|
|||
I have a little problem with the hack--nothing major, but a weird occurance.
Several of my older members, the mods, have less hitpoints than members of quite a lower level. Our site is, so far, still in the beta testing phase, and fairly new, so noone is very high level yet, but it appears to be a trend that will continue and get far, far worse as the levels do go up. Our main programmers are not available for a good period of time because of IRL issues to go into the codes and find out, so I came here to ask the source. After the stats are updated, it looks like this for certain users, names will not be used. Most of the mods are about the same level and HP count, and from extrapolating with other mods and members who have been around since the begginning as opposed to new members, it appears that the trend carries through. The mods are all using superior classes, and the race, elements, weaponry, etc of the two example users are all the same. Level 44 Mod 1582 HP Level 35 Member 1880 HP |
#1946
|
||||
|
||||
its based on posts per day and how long youve been registered O.o which in my opinion, screws up amounts far too much, so i rewrote it to be more linear
|
#1947
|
||||||||||||
|
||||||||||||
Quote:
What do you mean by unique character? A unique class? Or a unique race? Or what? You can add more stats, but only through code edits and database changes. There is no way to add stats through the admin cp. Quote:
PHP Code:
log10() is a function that does log base 10 to the passed variable. rand() is a function that generates a random number between the two passed variables. * is the multiplication symbol So, here is how it works with a level of 15: $damage = log10(15) * 30 + rand(-15 * .15, 15 * .15) + 1 $damage = 1.176 * 30 + rand(-2.25, 2.25) + 1 (Assume the rand() function returns 1.8) $damage = 35.2827 + 1.8 + 1 $damage = 28.0827 (round down to the nearest whole number) $damage = 28 Quote:
I just re-wrote the entire money check code in battle.php. I think I fixed all the bugs it had. If you want to try the code I just wrote, do the following: In battle.php, find: Code:
// Check to see if the combatants have the specified wager if($wager > 0) { $itemopt = $DB_site->query_first("SELECT lesanestore FROM items_options"); if(!$itemopt[0]) { $usermoney = $DB_site->query_first("SELECT bankval FROM items_user WHERE userid='$bbuserinfo[userid]'"); $oppmoney = $DB_site->query_first("SELECT bankval FROM items_user WHERE userid='$opponent[userid]'"); If ($wager > $usermoney[0]) { $itemoptions = $DB_site->query_first("SELECT pointfield FROM items_options"); $ownerpocketmoney = $DB_site->query_first("SELECT $itemoptions[0] FROM userfield WHERE userid='$bbuserinfo[userid]'"); if($wager > $ownerpocketmoney[0]) { $message = "You do not have $wager gil to wager."; eval("dooutput(\"".gettemplate('battle_userinbattle')."\");"); exit; } elseif($wager > $oppmoney[0]) { $opppocketmoney = $DB_site->query_first("SELECT $itemoptions[0] FROM userfield WHERE userid='$bbuserinfo[userid]'"); if($wager > $opppocketmoney[0]) { $message = "Your opponent does not have $wager gil to wager."; eval("dooutput(\"".gettemplate('battle_userinbattle')."\");"); exit; } else { $usernewmoney = $ownerpocketmoney[0] - $wager; $oppnewmoney = $opppocketmoney[0] - $wager; $DB_site->query("UPDATE items_user SET bankval='$usernewmoney' WHERE userid='$bbuserinfo[userid]'"); $DB_site->query("UPDATE userfield SET $itemoptions[0]='$oppnewmoney' WHERE userid='$opponent[userid]'"); } } else { $usernewmoney = $ownerpocketmoney[0] - $wager; $oppnewmoney = $oppmoney[0] - $wager; $DB_site->query("UPDATE userfield SET $itemoptions[0]='$usernewmoney' WHERE userid='$bbuserinfo[userid]'"); $DB_site->query("UPDATE items_user SET bankval='$oppnewmoney' WHERE userid='$opponent[userid]'"); } } elseif($wager > $oppmoney[0]) { $itemoptions = $DB_site->query_first("SELECT pointfield FROM items_options"); $opppocketmoney = $DB_site->query_first("SELECT $itemoptions[0] FROM userfield WHERE userid='$opponent[userid]'"); if($wager > $opppocketmoney[0]) { $message = "Your opponent does not have $wager gil to wager."; eval("dooutput(\"".gettemplate('battle_userinbattle')."\");"); exit; } else { $usernewmoney = $usermoney[0] - $wager; $oppnewmoney = $opppocketmoney[0] - $wager; $DB_site->query("UPDATE items_user SET bankval='$usernewmoney' WHERE userid='$bbuserinfo[userid]'"); $DB_site->query("UPDATE userfield SET $itemoptions[0]='$oppnewmoney' WHERE userid='$opponent[userid]'"); } } else { $usernewmoney = $usermoney[0] - $wager; $oppnewmoney = $oppmoney[0] - $wager; $DB_site->query("UPDATE items_user SET bankval='$usernewmoney' WHERE userid='$bbuserinfo[userid]'"); $DB_site->query("UPDATE items_user SET bankval='$oppnewmoney' WHERE userid='$opponent[userid]'"); } } else { $usermoney = $DB_site->query_first("SELECT storep FROM user WHERE userid='$bbuserinfo[userid]'"); $oppmoney = $DB_site->query_first("SELECT storep FROM user WHERE userid='$opponent[userid]'"); if($wager > $usermoney[0]) { $message = "You do not have $wager gil to wager."; eval("dooutput(\"".gettemplate('battle_userinbattle')."\");"); exit; } elseif($wager > $oppmoney[0]) { $message = "Your opponent does not have $wager gil to wager."; eval("dooutput(\"".gettemplate('battle_userinbattle')."\");"); exit; } else { $DB_site->query("UPDATE user SET storep=storep-$wager WHERE userid='$bbuserinfo[userid]'"); $DB_site->query("UPDATE user SET storep=storep-$wager WHERE userid='$opponent[userid]'"); } } } Code:
if($wager > 0) { $itemoptions = $DB_site->query_first("SELECT pointfield, lesanestore FROM items_options"); // Are we using lesane's store points? if (!$itemopt[1]) { $usermoney = $DB_site->query_first("SELECT items_user.bankval, userfield.$itemoptions[0] FROM items_user, userfield WHERE items_user.userid='$bbuserinfo[userid]' AND userfield.userid='$bbuserinfo[userid]'"); $usermoney['total'] = $usermoney[0] + $usermoney[1]; $oppmoney = $DB_site->query_first("SELECT items_user.bankval, userfield.$itemoptions[0] FROM items_user, userfield WHERE items_user.userid='$opponent[userid]' AND userfield.userid='$opponent[userid]'"); $oppmoney['total'] = $oppmoney[0] + $oppmoney[1]; // Does the user have enough money to wager? if($usermoney['total'] < $wager) { $message = "You do not have $wager to wager."; eval("dooutput(\"".gettemplate('battle_userinbattle')."\");"); exit; } // Does the opponent have enough money to wager? if($oppmoney['total'] < $wager) { $message = "Your opponent does not have $wager to wager."; eval("dooutput(\"".gettemplate('battle_userinbattle')."\");"); exit; } // If we have gotten this far, then both people have enough money to wager if ($usermoney[1] < $wager) { // The user has to take some money from their bank account // but first, we need to clean their pocket cash $DB_site->query("UPDATE userfield SET $itemoptions[0] = 0 WHERE userid = $bbuserinfo[userid]"); // Now, adjust the bank account $DB_site->query(" UPDATE items_user SET bankval = bankval - ".($wager - $usermoney[1]) // (wager - $usermoney[1]) is the same as (wager - user's cash) ." WHERE userid=$bbuserinfo[userid] "); } else { // The user has enough cash to pay for the wager $DB_site->query("UPDATE userfield SET $itemoptions[0] = $itemoptions[0] - $wager WHERE userid = '$bbuserinfo[userid]'"); } if ($oppmoney[1] < $wager) { // The opponent has to take some money from their bank account // but first, we need to clean their pocket cash $DB_site->query("UPDATE userfield SET $itemoptions[0] = 0 WHERE userid = $opponent[userid]"); // Now, adjust the bank account $DB_site->query(" UPDATE items_user SET bankval = bankval - ".($wager - $oppmoney[1]) // (wager - $oppmoney[1]) is the same as (wager - opponent's cash) ." WHERE userid=$opponent[userid] "); } else { // The opponent has enough cash to pay for the wager $DB_site->query("UPDATE userfield SET $itemoptions[0] = $itemoptions[0] - $wager WHERE userid = '$opponent[userid]'"); } } else { // Yes, we are using Lesane's Store Points $usermoney = $DB_site->query_first("SELECT storep FROM user WHERE userid='$bbuserinfo[userid]'"); $oppomoney = $DB_site->query_first("SELECT storep FROM user WHERE userid='$opponent[userid]'"); // Does the user have enough money to wager? if($usermoney[0] < $wager) { $message = "You do not have $wager to wager."; eval("dooutput(\"".gettemplate('battle_userinbattle')."\");"); exit; } // Does the opponent have enough money to wager? if($oppmoney[0] < $wager) { $message = "Your opponent does not have $wager to wager."; eval("dooutput(\"".gettemplate('battle_userinbattle')."\");"); exit; } // If we have gotten this far, then both people have enough money to wager // so update the user table $DB_site->query("UPDATE user SET storep = storep - $wager WHERE userid=$bbuserinfo[userid] OR userid=$opponent[userid]"); } } /* // Check to see if the combatants have the specified wager if($wager > 0) { $itemopt = $DB_site->query_first("SELECT lesanestore FROM items_options"); if(!$itemopt[0]) { $usermoney = $DB_site->query_first("SELECT bankval FROM items_user WHERE userid='$bbuserinfo[userid]'"); $oppmoney = $DB_site->query_first("SELECT bankval FROM items_user WHERE userid='$opponent[userid]'"); If ($wager > $usermoney[0]) { $itemoptions = $DB_site->query_first("SELECT pointfield FROM items_options"); $ownerpocketmoney = $DB_site->query_first("SELECT $itemoptions[0] FROM userfield WHERE userid='$bbuserinfo[userid]'"); if($wager > $ownerpocketmoney[0]) { $message = "You do not have $wager gil to wager."; eval("dooutput(\"".gettemplate('battle_userinbattle')."\");"); exit; } elseif($wager > $oppmoney[0]) { $opppocketmoney = $DB_site->query_first("SELECT $itemoptions[0] FROM userfield WHERE userid='$bbuserinfo[userid]'"); if($wager > $opppocketmoney[0]) { $message = "Your opponent does not have $wager gil to wager."; eval("dooutput(\"".gettemplate('battle_userinbattle')."\");"); exit; } else { $usernewmoney = $ownerpocketmoney[0] - $wager; $oppnewmoney = $opppocketmoney[0] - $wager; $DB_site->query("UPDATE items_user SET bankval='$usernewmoney' WHERE userid='$bbuserinfo[userid]'"); $DB_site->query("UPDATE userfield SET $itemoptions[0]='$oppnewmoney' WHERE userid='$opponent[userid]'"); } } else { $usernewmoney = $ownerpocketmoney[0] - $wager; $oppnewmoney = $oppmoney[0] - $wager; $DB_site->query("UPDATE userfield SET $itemoptions[0]='$usernewmoney' WHERE userid='$bbuserinfo[userid]'"); $DB_site->query("UPDATE items_user SET bankval='$oppnewmoney' WHERE userid='$opponent[userid]'"); } } elseif($wager > $oppmoney[0]) { $itemoptions = $DB_site->query_first("SELECT pointfield FROM items_options"); $opppocketmoney = $DB_site->query_first("SELECT $itemoptions[0] FROM userfield WHERE userid='$opponent[userid]'"); if($wager > $opppocketmoney[0]) { $message = "Your opponent does not have $wager gil to wager."; eval("dooutput(\"".gettemplate('battle_userinbattle')."\");"); exit; } else { $usernewmoney = $usermoney[0] - $wager; $oppnewmoney = $opppocketmoney[0] - $wager; $DB_site->query("UPDATE items_user SET bankval='$usernewmoney' WHERE userid='$bbuserinfo[userid]'"); $DB_site->query("UPDATE userfield SET $itemoptions[0]='$oppnewmoney' WHERE userid='$opponent[userid]'"); } } else { $usernewmoney = $usermoney[0] - $wager; $oppnewmoney = $oppmoney[0] - $wager; $DB_site->query("UPDATE items_user SET bankval='$usernewmoney' WHERE userid='$bbuserinfo[userid]'"); $DB_site->query("UPDATE items_user SET bankval='$oppnewmoney' WHERE userid='$opponent[userid]'"); } } else { $usermoney = $DB_site->query_first("SELECT storep FROM user WHERE userid='$bbuserinfo[userid]'"); $oppmoney = $DB_site->query_first("SELECT storep FROM user WHERE userid='$opponent[userid]'"); if($wager > $usermoney[0]) { $message = "You do not have $wager gil to wager."; eval("dooutput(\"".gettemplate('battle_userinbattle')."\");"); exit; } elseif($wager > $oppmoney[0]) { $message = "Your opponent does not have $wager gil to wager."; eval("dooutput(\"".gettemplate('battle_userinbattle')."\");"); exit; } else { $DB_site->query("UPDATE user SET storep=storep-$wager WHERE userid='$bbuserinfo[userid]'"); $DB_site->query("UPDATE user SET storep=storep-$wager WHERE userid='$opponent[userid]'"); } } } */ Quote:
Try the code fix I did above and wait for the next update. I changed some of the code for this. Quote:
That would require a custom hack. Quote:
Have the user's updated their stats in their profile? Does this happen to everyone but you? Have you tried running DB Fix? Quote:
Quote:
PHP Code:
Quote:
In itemshop.php, find: PHP Code:
PHP Code:
Quote:
Quote:
Quote:
In the Auto-Update Stats add-on (newthread.php, newpost.php), and member.php, find: PHP Code:
PHP Code:
|
#1948
|
||||
|
||||
Welcome back. Thanks for the tip, but adding
Quote:
Quote:
|
#1949
|
||||
|
||||
Quote:
A unique class, and as for the stats thing *sorry to bother but im really sorta learning php still* can you like tell me what files are necesarry to edit to make it happen? Thnx for the answer and wb |
#1950
|
|||
|
|||
I keep getting this emailed to me - I think it is due to using spells or potions -
Invalid SQL: SELECT items_user.item5,items_user.itid5,items.type,items .extra FROM items_user LEFT JOIN items ON items.itemid=items_user.itid5 WHERE userid='10' mysql error: Unknown column 'items_user.item5' in 'field list' mysql error number: 1054 |
#1951
|
||||
|
||||
Quote:
Quote:
In order to add a new stat, you would have to change quite a few files. Off the top of my head, they would be member.php, rpgcp.php, battlefight.php, battleupdate.php, newthread.php, newpost.php, heal.php. Some of those are optional though, depending on what you want the stat to do. You would also have to change all the templates where the stats are displayed. Adding an additional stat is not an easy feat. Quote:
|
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|