1
Gisa_Iag
How to add phpbb mod of Bbcode in newbb?
  • 2004/5/30 0:03

  • Gisa_Iag

  • Just popping in

  • Posts: 7

  • Since: 2004/4/10


How to add phpbb mod of Bbcode in newbb?

phpbbcode:
Quote:

#################################################################
## MOD Title: Dice BBCode
## MOD Author: Hades < phpbb@hades.me.uk > - Lee Conlin -http://www.celestialvault.com/blast
## MOD Description: Adds a dice roller BBCode to your forum.
## MOD Version: 1.2.3
##
## Installation Level: Intermediate
## Installation Time: 10 Minutes
## Files To Edit: bbcode.php, posting.php, bbcode.tpl, posting_body.tpl, lang_main.php, lang_bbcode.php
## Included Files: n/a
##############################################################
## For Security Purposes, Please Check:http://www.phpbb.com/mods/ for the
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code
## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered
## in our MOD-Database, located at:http://www.phpbb.com/mods/
##############################################################
##
## Author Notes:
##
## BASED ON THE DICE MOD BY Jeff Leigh
##
## IMPORTANT: if you are installing manually (without EasyMod) you MUST first
## install the Multi BBCode MOD available athttp://www.phpbb.com/mods/downloads
##
## For serious use of this MOD, you MUST disable non-moderator editing of posts.. otherwise, users
## can simply edit their posts a few times until they get a good roll. Also, if a post is edited (by a
## moderator or user) the word 'Fixed' will appear in the dice roll. This prevents users from 'fixing'
## their results by passing in a result seed they know brings good results... but is nessassary to
## allow a post to be edited without changing the results. I am not quite happy with this, but
## it does the job.
##
## The obvious way to avoid the above issues is to use the Post_ID to seed the results. This,
## however, appeared to require changes to phpbb function declarations - a thing I try very
## hard to avoid (as it can cause problems for other MODs not expecting these changes).
##
##############################################################
## MOD History:
##
## 2003-09-16 - Version 1.2.3
## - Updated for phpBB 2.0.6
##
## 2003-08-04 - Version 1.2.2
## - Updated to reflect changes in MOD Template. Dates missing on other version entries due to the fact I can't remember them.
## - Updated code for phpBB 2.0.5
##
## 1.2.1 - Set limits of number of dice and number of sides to prevent silly people from rolling
## dice that would cause fatal errors for reaching max execution time. Neat error message displayed
## instead. - Idea by Wooly Spud
##
## 1.2.0 - Hades took over development.
## - Re-wrote seed generation to give multiple die rolls in the same post different seeds for added randomness.
## This fixed the bug where mutiple occurances of the same roll string within
## a post would all generate identicle results.
## - Removed all dice images. Smaller versions may be added in a later version, but for now they are not needed.
## - Brought this MOD in line with Nutzzy's Multi-BBCode MOD.
## This also eliminates the conflict with the multi-BBCode MOD. =)
##
## 1.1.2 - Jeff Leigh's last release.
##
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
##############################################################

#
#-----[ OPEN ]------------------------------------------
#
includes/bbcode.php

#
#-----[ FIND ]------------------------------------------
#

$bbcode_tpl['email'] = str_replace('{EMAIL}', '\\1', $bbcode_tpl['email']);

#
#-----[ AFTER, ADD ]------------------------------------------
#

// --------------------------------
// DICE MOD CODE
// --------------------------------

$bbcode_tpl['dice_open2'] = str_replace('{ROLLED}', $lang['Dice_Mod_Rolled'] . " - \\1", $bbcode_tpl['dice_open']);
$bbcode_tpl['dice_open'] = str_replace('{ROLLED}', $lang['Dice_Mod_Rolled'], $bbcode_tpl['dice_open']);

// --------------------------------
// END DICE MOD CODE
// --------------------------------

#
#-----[ FIND ]------------------------------------------
#

// user@domain.tld code..
$patterns[] = "#\[email\]([a-z0-9\-_.]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+)\[/email\]#si";
$replacements[] = $bbcode_tpl['email'];

$text = preg_replace($patterns, $replacements, $text);

#
#-----[ AFTER, ADD ]------------------------------------------
#

// --------------------------------
// BEGIN DICE MOD CODE
// --------------------------------

// [dice] tags for rolling dice
$text = bbencode_second_pass_pda($text, "/\[dice:$uid\]/is", "[/dice:$uid]", 'replace_dice_results', $bbcode_tpl['dice_open'], $bbcode_tpl['dice_close'] );
$text = preg_replace("/\[dice:$uid=(?:\"?([^\"]*)\"?)\]/si", $bbcode_tpl['dice_open2'] . "[dice:$uid=\"\\1\"]", $text);
$text = bbencode_second_pass_pda($text, "/\[dice:$uid=(\\\".*\\\")\]/is", "[/dice:$uid]", 'replace_dice_results', '', $bbcode_tpl['dice_close']);

// --------------------------------
// END DICE MOD CODE
// --------------------------------

#
#-----[ FIND ]------------------------------------------
#
function bbencode_first_pass($text, $uid)
{

#
#-----[ BEFORE, ADD ]------------------------------------------
#

// --------------------------------
// BEGIN DICE MOD CODE
// --------------------------------

function replace_dice_results($text, $uid)
{
global $lang;
// Take the desired Die string ($text) and generate values for each roll.

$Expressions = explode('=', $text);
if( (isset($Expressions[0])) && (isset($Expressions[1])) )
{
$Dice_Rolls = $Expressions[0];
$MT_Seed = intval($Expressions[1]);//(double)microtime()*1000000; doesn't work as it causes the rolls to be re-rolled every time the topic/post is re-loaded//
$Fixed = $Expressions[2];
}
else
{
return;
}

// Make sure we restore the MT gen to a random state after we are done...
$Future_Seed = mt_rand();
mt_srand( $MT_Seed );

$Original_Roll_String = (isset($Fixed)) ? $Dice_Rolls . ' <b><span style="color: #AA0000">' . $lang['Dice_Mod_Fixed'] . '</span></b>': $Dice_Rolls;
$Die_Rolls = explode(' ', trim($Dice_Rolls));

while( $Die = array_shift($Die_Rolls))
{
$footer = '';
$header = '';
$Die_Count = substr($Die,0,strpos($Die,'d'));
$Die_Type = substr($Die,strpos($Die,'d')+1);
if( strpos($Die_Type, '+') )
{
$Method = 1;
$Modifier = substr($Die_Type,strpos($Die_Type,'+')+1);
$Die_Type = substr($Die_Type,0,strpos($Die_Type,'+'));
}
else if( strpos($Die_Type, '-') )
{
$Method = 2;
$Modifier = substr($Die_Type,strpos($Die_Type,'-')+1);
$Die_Type = substr($Die_Type,0,strpos($Die_Type,'-'));
}
else if( strpos($Die_Type, '*') )
{
$Method = 3;
$Modifier = substr($Die_Type,strpos($Die_Type,'*')+1);
$Die_Type = substr($Die_Type,0,strpos($Die_Type,'*'));
}
else if( strpos($Die_Type, 'x') )
{
$Method = 3;
$Modifier = substr($Die_Type,strpos($Die_Type,'x')+1);
$Die_Type = substr($Die_Type,0,strpos($Die_Type,'x'));
}
else if( strpos($Die_Type, '/') )
{
$Method = 4;
$Modifier = substr($Die_Type,strpos($Die_Type,'/')+1);
$Die_Type = substr($Die_Type,0,strpos($Die_Type,'/'));
}
else
{
$Method = 0;
$Modifier = 0;
}
$header = '<b>' . $lang['Dice_Mod_Roll_String'] . '</b>: ' . $Original_Roll_String . '<br /><b>' . $Die_Type . '-Sided Dice Results: </b>';
$footer = '';
$Die_Count = intval($Die_Count);
if( $Die_Count == 0 ) $Die_Count = 1;
$total = 0;

if( $Method )
{
$footer = $footer . "(";
}

// Loop Limit to prevent 500000d500000 sort of dice due to max. execution time limit
if($Die_Count <= 200 && $Die_Type <= 100)
{
for( $i = 0; $i < $Die_Count; $i++ )
{
if( $Die_Type == 100 )
{
$value1 = (integer)(((double)mt_rand()/(double)mt_getrandmax()) * 10) * 10;
$value2 = (integer)(((double)mt_rand()/(double)mt_getrandmax()) * 10);
$total = $total + ($value1 + $value2);
$footer = ($i != $Die_Count - 1) ? $footer . $value1 . '+' . $value2 . '(' .($value1 + $value2) . '<b></b>), ' : $footer . $value1 . '+' . $value2 . '(' . ($value1 + $value2) . '<b></b>)';
}
else
{
$value = (integer)(((double)mt_rand()/(double)mt_getrandmax()) * $Die_Type) + 1;
$total = $total + $value;
$footer = ($i != $Die_Count - 1) ? $footer . $value . ', ' : $footer . $value . '';
}
}
} // Loop limit
else
{
$total = 0;
$Modifier = 0;
$footer = 'Too many dice and/or too many sides';
}

switch( $Method )
{
case 1:
$footer = $footer . '<b></b>) + ' . $Modifier . ' ';
$total = $total + $Modifier;
break;
case 2:
$footer = $footer . '<b></b>) - ' . $Modifier . ' ';
$total = $total - $Modifier;
break;
case 3:
$footer = $footer . '<b></b>) * ' . $Modifier . ' ';
$total = $total * $Modifier;
break;
case 4:
$footer = $footer . '<b></b>) / ' . $Modifier . ' ';
$total = $total / $Modifier;
break;
}
// I do b - /b on purpose... kills out some smilies that crop up.
if( ($Die_Count > 1) || ($Method != 0) )
{
$footer= $footer . ' (<b>Total =</b> ' . $total . '<b></b>)<BR>';
}
else
{
$footer = $footer . '<BR>';
}
$footer = $footer. "";
$results = $results . $header . $footer;
}
// Restore MT randomness
mt_srand($Future_Seed);

return $results;
}

// --------------------------------
// END DICE MOD CODE
// --------------------------------

#
#-----[ FIND ]------------------------------------------
#

// Resized Image code..
$text = preg_replace("#\[img\]((ht|f)tp://)([^\r\n\t<\"]*?)\[/img\]#sie", "'[img:$uid]\\1' . str_replace(' ', '%20', '\\3') . '[/img:$uid]'", $text);

#
#-----[ AFTER, ADD ]------------------------------------------
#

// --------------------------------
// BEGIN DICE MOD CODE
// --------------------------------

$occurances = preg_match_all("#\[dice\]([-\s\w+/*]*?)\[/dice\]#i", $text, $temp);

//list($usec,$sec)=explode(" ",microtime());
mt_srand((double)microtime()*1000000);//$sec * $usec);

// Loop to fix randomness problem of results when multiple die rolls are made in a single post - Hades
for($i=0;$i<=$occurances;$i++)
{
$dice_seed = mt_rand();

$text = preg_replace("#\[dice\]([-\s\w+/*]*?)\[/dice\]#i", "[dice:$uid]\\1 = $dice_seed [/dice:$uid] $limit", $text, 1);
$text = preg_replace("#\[dice=(\\\\\".*?\\\\\")\]([-\s\w+/*]*?)\[/dice\]#i", "[dice:$uid=\\1]\\2 = $dice_seed [/dice:$uid] $limit", $text, 1);
}
$text = preg_replace("#\[dice\]([-\s\w+/*]*?)=([\s\d]*?)\[/dice\]#i", "[dice:$uid]\\1 = \\2 = Fixed[/dice:$uid]", $text);
$text = preg_replace("#\[dice\]([-\s\w+/*]*?)=([\s\d]*?)=\s*?Fixed\s*?\[/dice\]#i", "[dice:$uid]\\1 = \\2 = Fixed[/dice:$uid]", $text);
$text = preg_replace("#\[dice=(\\\\\".*?\\\\\")\]([-\s\w+/*]*?)=([\s\d]*?)\[/dice\]#i", "[dice:$uid=\\1]\\2 = \\3 = Fixed[/dice:$uid]", $text);
$text = preg_replace("#\[dice=(\\\\\".*?\\\\\")\]([-\s\w+/*]*?)=([\s\d]*?)=\s*?Fixed\s*?\[/dice\]#i", "[dice:$uid=\\1]\\2 = \\3 = Fixed[/dice:$uid]", $text);
// --------------------------------
// END DICE MOD CODE
// --------------------------------

#
#-----[ FIND ]------------------------------------------
#

return $text;

} // bbencode_first_pass_pda()

#
#-----[ AFTER, ADD ]------------------------------------------
#

// --------------------------------
// BEGIN DICE MOD CODE
// --------------------------------
function bbencode_second_pass_pda($text, $open_tag, $close_tag,$func,$open_template, $close_template)
{
$open_tag_count = 0;

$close_tag_length = strlen($close_tag);

$use_function_pointer = ($func && ($func != ''));

$stack = array();
if (is_array($open_tag))
{
if (0 == count($open_tag))
{
// No opening tags to match, so return.
return $text;
}
$open_tag_count = count($open_tag);
}
else
{
// only one opening tag. make it into a 1-element array.
$open_tag_temp = $open_tag;
$open_tag = array();
$open_tag[0] = $open_tag_temp;
$open_tag_count = 1;
}

$open_is_regexp = true;

// Start at the 2nd char of the string, looking for opening tags.
$curr_pos = 1;
while ($curr_pos && ($curr_pos < strlen($text)))
{
$curr_pos = strpos($text, "[", $curr_pos);

// If not found, $curr_pos will be 0, and the loop will end.
if ($curr_pos)
{
// We found a [. It starts at $curr_pos.
// check if it's a starting or ending tag.
$found_start = false;
$which_start_tag = "";
$start_tag_index = -1;
for ($i = 0; $i < $open_tag_count; $i++)
{
// Grab everything until the first "]"...
$possible_start = substr($text, $curr_pos, strpos($text, "]", $curr_pos + 1) - $curr_pos + 1);

//
// We're going to try and catch usernames with "[' characters.
//
if( preg_match('/\[quote\=\\\\"/si', $possible_start) && !preg_match('/\[quote=\\\\"[^"]*\\\\"\]/si', $possible_start) )
{
//
// OK we are in a quote tag that probably contains a ] bracket.
// Grab a bit more of the string to hopefully get all of it..
//
$possible_start = substr($text, $curr_pos, strpos($text, "\"]", $curr_pos + 1) - $curr_pos + 2);
}
//
// Now compare, either using regexp or not.

$match_result = array();
// PREG regexp comparison.
if (preg_match($open_tag[$i], $possible_start, $match_result))
{
$found_start = true;
$which_start_tag = $match_result[0];
$start_tag_index = $i;
break;
}
}

if ($found_start)
{
// We have an opening tag.
// Push its position, the text we matched, and its index in the open_tag array on to the stack, and then keep going to the right.
$match = array("pos" => $curr_pos, "tag" => $which_start_tag, "index" => $start_tag_index);
bbcode_array_push($stack, $match);
++$curr_pos;
}
else
{
// check for a closing tag..
$possible_end = substr($text, $curr_pos, $close_tag_length);
if (0 == strcasecmp($close_tag, $possible_end))
{
// We have an ending tag.
// Check if we've already found a matching starting tag.
if (sizeof($stack) > 0)
{
// There exists a starting tag.
$curr_nesting_depth = sizeof($stack);
// We need to do 2 replacements now.
$match = bbcode_array_pop($stack);
$start_index = $match['pos'];
$start_tag = $match['tag'];
$start_length = strlen($start_tag);
$start_tag_index = $match['index'];

// everything before the opening tag.
$before_start_tag = substr($text, 0, $start_index);

// everything after the opening tag, but before the closing tag.
$between_tags = substr($text, $start_index + $start_length, $curr_pos - $start_index - $start_length);

// Run the given function on the text between the tags..
if ($use_function_pointer)
{
$between_tags = $func($between_tags, $uid);
}

// everything after the closing tag.
$after_end_tag = substr($text, $curr_pos + $close_tag_length);

// Mark the lowest nesting level if needed.
$text = $before_start_tag . $open_template . $between_tags . $close_template . $after_end_tag;

// Now.. we've screwed up the indices by changing the length of the string.
// So, if there's anything in the stack, we want to resume searching just after it.
// otherwise, we go back to the start.
if (sizeof($stack) > 0)
{
$match = bbcode_array_pop($stack);
$curr_pos = $match['pos'];
bbcode_array_push($stack, $match);
++$curr_pos;
}
else
{
$curr_pos = 1;
}
}
else
{
// No matching start tag found. Increment pos, keep going.
++$curr_pos;
}
}
else
{
// No starting tag or ending tag.. Increment pos, keep looping.,
++$curr_pos;
}
}
}
} // while

return $text;

} // bbencode_second_pass_pda()
// --------------------------------
// END DICE MOD CODE
// --------------------------------

#
#-----[ OPEN ]------------------------------------------
#
posting.php

#
#-----[ FIND ]---------------------------------
#
$EMBB_keys = array(''
$EMBB_widths = array(''
$EMBB_values = array(''


#
#-----[ IN-LINE FIND ]---------------------------------
#
$EMBB_keys = array(''


#
#-----[ IN-LINE AFTER, ADD ]---------------------------------
#
,'d'


#
#-----[ IN-LINE FIND ]---------------------------------
#
$EMBB_widths = array(''


#
#-----[ IN-LINE AFTER, ADD ]---------------------------------
#
,'40'


#
#-----[ IN-LINE FIND ]---------------------------------
#
$EMBB_values = array(''


#
#-----[ IN-LINE AFTER, ADD ]---------------------------------
#
,'Dice'

#
#-----[ FIND ]---------------------------------
#
# NOTE: the full line to look for is:
# 'L_BBCODE_F_HELP' => $lang['bbcode_f_help'],
#
'L_BBCODE_F_HELP' =>


#
#-----[ AFTER, ADD ]--------------------------------
#

'L_BBCODE_D_HELP' => $lang['bbcode_d_help'],

#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/bbcode.tpl

#
#-----[ FIND ]------------------------------------------
#

<!-- BEGIN email --><a href="mailto:{EMAIL}">{EMAIL}</A><!-- END email -->

#
#-----[ AFTER, ADD ]------------------------------------------
#

<!-- BEGIN dice_open -->
<table width="90%" cellspacing="1" cellpadding="3" border="0" align="center">
<tr>
<td><span class="genmed"><b>{ROLLED}:</b></span></td>
</tr>
<tr>
<td class="quote"><!-- END dice_open -->

<!-- BEGIN dice_close --></td>
</tr>
</table>
<span class="postbody"><!-- END dice_close -->

#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/posting_body.tpl

#
#-----[ FIND ]---------------------------------
#
# NOTE: the full line to look for is:
#f_help = "{L_BBCODE_F_HELP}";
#
f_help =


#
#-----[ AFTER, ADD ]---------------------------------
#

d_help = "{L_BBCODE_D_HELP}";

#
#-----[ FIND ]---------------------------------
#
# NOTE: the actual line to find is MUCH longer, containing all the bbcode tags
#
bbtags = new Array(


#
#-----[ IN-LINE FIND ]---------------------------------
#
'[url]','[/url]'


#
#-----[ IN-LINE AFTER, ADD ]---------------------------------
#
,'[dice]','[/dice]'

#
#-----[ OPEN ]------------------------------------------
#
language/lang_english/lang_main.php

#
#-----[ FIND ]------------------------------------------
#

//
// That's all Folks!
// -------------------------------------------------

#
#-----[ BEFORE, ADD ]------------------------------------------
#

// --------------------------------
// BEGIN DICE MOD CODE
// --------------------------------
$lang['Dice_Mod_Rolled'] ='Dice Roll';
$lang['Dice_Mod_Fixed'] ='Fixed';
$lang['Dice_Mod_Roll_String'] = 'Original Roll String';
$lang['bbcode_d_help'] = 'Roll Dice: [dice]dice string[/dice] (alt-d) Tip: Use the (#)d(Sides) convention.';
// --------------------------------
// END DICE MOD CODE
// --------------------------------

#
#-----[ OPEN ]------------------------------------------
#
language/lang_english/lang_bbcode.php

#
#-----[ FIND ]------------------------------------------
#

$faq[] = array("--", "Other matters");
$faq[] = array("Can I add my own tags?", "No, I am afraid not directly in phpBB 2.0. We are looking at offering customisable BBCode tags for the next major version");

#
#-----[ BEFORE, ADD ]------------------------------------------
#

// --------------------------------
// BEGIN DICE MOD CODE
// --------------------------------
$faq[] = array("--", "Roleplaying Features");
$faq[] = array("Rolling dice in a post", "Posts and private messages can also include dice rolls. Using the [dice]...[/dice] tags you can specify one or more rolls to be displayed in your message.<br><span style=\"font-weight: bold\">Dice Command Syntax:</span><ul><li>[dice](<span style=\"font-style: italic\">Dice Strings</span>)[/dice]<li>[dice=\"Roll Title\"](<span style=\"font-style: italic\">Dice Strings</span>)[/dice]</ul>The Dice String parameter can include mutliple dice strings in the standard throw syntax.<br /><br /><span style=\"font-weight: bold\">Throw Syntax:</span><ul><li>(<span style=\"font-style: italic\">Number of Dice</span>)d(<span style=\"font-style: italic\">Type of Dice</span>)<li>(<span style=\"font-style: italic\">Number of Dice</span>)d(<span style=\"font-style: italic\">Type of Dice</span>)(<span style=\"font-style: italic\">+,-,x,*,/</span>)(<span style=\"font-style: italic\">Modifier</span>)</ul>It may look complicated if you've never seen this sytem before, but it is actually quite easy to understand.<br /><br />Optionally, you can specify an operation and modifier for each throw, as shown above. Supported operations are addition (+), subtraction (-), multiplication (* or x), and division (/).<br /><br /><span style=\"font-weight: bold\">Some Examples:</span><ul><li>d6 - Throw a single 6-sided die.<li>d20 - Throw a single 20-sided die.<li>2d20 - Throw two 6-sided dice.<li>d100 - Somewhat special, throws two 10 sided die, and multiplies one by 10.. resulting in a range of 100<li>d20+5 - Throw a 20-sided die and add 5 to the result.<li>4d20+10 - Throw four 20-sided dice and add 10 to the total.</ul>Hopefully you understand.<br /><br /><span style=\"font-weight: bold\">Output Examples:</span><br /><br />Here are a few instances of the 'Die' code in action, with the code above. <br />Totals are provided for convience, but obviously are not relevent to all throws.<br /><br /><span style=\"font-weight: bold\">Code:</span> [dice]d20[/dice]<br /><table width=\"90%\" cellspacing=\"1\" cellpadding=\"3\" border=\"0\" align=\"center\"><tr> <td><span class=\"genmed\"><b>Dice Roll:</b></span></td> </tr> <tr> <td class=\"quote\"><b>Original Roll String:</b> <font color=\"#000088\">d20</font><BR><BR><b>20-Sided Dice Results: </b>6<BR><div align=\"center\"><center><table border=\"0\" width=\"80%\" bgcolor=\"#FFFFFF\" cellspacing=\"0\"><tr><td width=\"100%\"><img src=\"./images/dice/white/dice_20_sided_6.jpg\"></td></tr></table></center></div></td></tr></table><span class=\"postbody\"><br /><span style=\"font-weight: bold\">Code:</span> [dice=\"Fire Save\"]2d20+10[/dice]<br /><table width=\"90%\" cellspacing=\"1\" cellpadding=\"3\" border=\"0\" align=\"center\"><tr><td><span class=\"genmed\"><b>Dice Roll - Fire Save:</b></span></td></tr><tr><td class=\"quote\"><b>Original Roll String:</b> <font color=\"#000088\">2d20+10</font><BR><BR><b>20-Sided Dice Results: </b>(4, 1<b></b>) + 10 (<b>Total =</b> 15<b></b>)<BR><div align=\"center\"><center><table border=\"0\" width=\"80%\" bgcolor=\"#FFFFFF\" cellspacing=\"0\"><tr><td width=\"100%\"><img src=\"./images/dice/white/dice_20_sided_4.jpg\"><img src=\"./images/dice/white/dice_20_sided_1.jpg\"></td></tr></table></center></div></td></tr></table><span class=\"postbody\"><br /><span style=\"font-weight: bold\">Code:</span> [dice=\"Statistic Generation\"]4d4+10 3d6x2 2d100 4d4+10[/dice]<br /><table width=\"90%\" cellspacing=\"1\" cellpadding=\"3\" border=\"0\" align=\"center\"><tr><td><span class=\"genmed\"><b>Dice Roll - Statistic Generation:</b></span></td></tr><tr><td class=\"quote\"><b>Original Roll String:</b> <font color=\"#000088\">d4+10 3d6x2 2d100 4d4+10</font><BR><BR><b>4-Sided Dice Results: </b>(2<b></b>) + 10 (<b>Total =</b> 12<b></b>)<BR><div align=\"center\"><center><table border=\"0\" width=\"80%\" bgcolor=\"#FFFFFF\" cellspacing=\"0\"><tr><td width=\"100%\"><img src=\"./images/dice/white/dice_4_sided_2.jpg\"></td></tr></table></center></div><b>6-Sided Dice Results: </b>(1, 4, 3<b></b>) * 2 (<b>Total =</b> 16<b></b>)<BR><div align=\"center\"><center><table border=\"0\" width=\"80%\" bgcolor=\"#FFFFFF\" cellspacing=\"0\"><tr><td width=\"100%\"><img src=\"./images/dice/white/dice_6_sided_1.jpg\"><img src=\"./images/dice/white/dice_6_sided_4.jpg\"><img src=\"./images/dice/white/dice_6_sided_3.jpg\"></td></tr></table></center></div><b>100-Sided Dice Results: </b>60+1(61<b></b>), 30+1(31<b></b>) (<b>Total =</b> 92<b></b>)<BR><div align=\"center\"><center><table border=\"0\" width=\"80%\" bgcolor=\"#FFFFFF\" cellspacing=\"0\"><tr><td width=\"100%\"><img src=\"./images/dice/white/dice_100_sided_60.jpg\"><img src=\"./images/dice/white/dice_10_sided_1.jpg\"><img src=\"./images/dice/white/dice_spacer.jpg\"><img src=\"./images/dice/white/dice_100_sided_30.jpg\"><img src=\"./images/dice/white/dice_10_sided_1.jpg\"><img src=\"./images/dice/white/dice_spacer.jpg\"></td></tr></table></center></div><b>4-Sided Dice Results: </b>(1, 3, 4, 1<b></b>) + 10 (<b>Total =</b> 19<b></b>)<BR><div align=\"center\"><center><table border=\"0\" width=\"80%\" bgcolor=\"#FFFFFF\" cellspacing=\"0\"><tr><td width=\"100%\"><img src=\"./images/dice/white/dice_4_sided_1.jpg\"><img src=\"./images/dice/white/dice_4_sided_3.jpg\"><img src=\"./images/dice/white/dice_4_sided_4.jpg\"><img src=\"./images/dice/white/dice_4_sided_1.jpg\"></td></tr></table></center></div></td></tr></table><span class=\"postbody\"><br /><br />In case you are wondering, the numbers you see when you 'preview' will probably change when you go to post.<BR><BR><i>Dice Mod (version 1.1.0) by Jeff Leigh.</i>");
// --------------------------------
// END DICE MOD CODE
// --------------------------------

#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM


UPDATES E BUGS FIXES

#
#-----[ OPEN ]------------------------------------------
#
includes/bbcode.php

#
#-----[ FIND ]------------------------------------------
#
$header = '<b>' . $Die_Type . '-Sided Dice Results: </b>';
$footer = '';

$Die_Count = intval($Die_Count);
if( $Die_Count == 0 ) $Die_Count = 1;
$total = 0;

if( $Method )
{
$footer = $footer . "(";
}
for( $i = 0; $i < $Die_Count; $i++ )
{
if( $Die_Type == 100 )
{
$value1 = (integer)(((double)mt_rand()/(double)mt_getrandmax()) * 10) * 10;
$value2 = (integer)(((double)mt_rand()/(double)mt_getrandmax()) * 10);
$total = $total + ($value1 + $value2);
$footer = ($i != $Die_Count - 1) ? $footer . $value1 . '+' . $value2 . '(' .($value1 + $value2) . '<b></b>), ' : $footer . $value1 . '+' . $value2 . '(' . ($value1 + $value2) . '<b></b>)';
}
else
{
$value = ($Die_Type == 10 ) ? (integer)(((double)mt_rand()/(double)mt_getrandmax()) * $Die_Type + 1) : (integer)(((double)mt_rand()/(double)mt_getrandmax()) * $Die_Type) + 1;
$total = $total + $value;
$footer = ($i != $Die_Count - 1) ? $footer . $value . ', ' : $footer . $value . '';
}
}
switch( $Method )

#
#-----[ REPLACE WITH ]------------------------------------------
#
$header = '<b>' . $lang['Dice_Mod_Roll_String'] . '</b>: ' . $Original_Roll_String . '<br /><b>' . $Die_Type . '-Sided Dice Results: </b>';
$footer = '';
$Die_Count = intval($Die_Count);
if( $Die_Count == 0 ) $Die_Count = 1;
$total = 0;

if( $Method )
{
$footer = $footer . "(";
}

// Loop Limit to prevent 500000d500000 sort of dice due to max. execution time limit
if($Die_Count <= 200 && $Die_Type <= 100)
{
for( $i = 0; $i < $Die_Count; $i++ )
{
if( $Die_Type == 100 )
{
$value1 = (integer)(((double)mt_rand()/(double)mt_getrandmax()) * 10) * 10;
$value2 = (integer)(((double)mt_rand()/(double)mt_getrandmax()) * 10);
$total = $total + ($value1 + $value2);
$footer = ($i != $Die_Count - 1) ? $footer . $value1 . '+' . $value2 . '(' .($value1 + $value2) . '<b></b>), ' : $footer . $value1 . '+' . $value2 . '(' . ($value1 + $value2) . '<b></b>)';
}
else
{
$value = (integer)(((double)mt_rand()/(double)mt_getrandmax()) * $Die_Type) + 1;
$total = $total + $value;
$footer = ($i != $Die_Count - 1) ? $footer . $value . ', ' : $footer . $value . '';
}
}
} // Loop limit
else
{
$total = 0;
$Modifier = 0;
$footer = 'Too many dice and/or too many sides';
}

switch( $Method )

#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM

would like to use this mod in newbb... as I makes?



2
Gisa_Iag
Gisa se Apresentando
  • 2004/4/10 19:08

  • Gisa_Iag

  • Just popping in

  • Posts: 7

  • Since: 2004/4/10


Olá meus amigos
Bo vou esperar que alguem traduza isso para o ingles porque realmente nao sei nada desta lingua.
Mas sei que logo alguem vai fazer.

Meu nome é Gislaine mas podem me chamar de Gisa.
Sou do Brasil, to com 23 aninhos
Sou membro do XOOPS Brasil e XOOPS Brasil, e atualmente to com meu site Canal Cronica sobre o endereçoHttp://www.canal-cronica.com.br
Canal de RPg e entretenimento (anime, HQ, cinema, etc..)
Trabalho com XOOPS a pouquinho tempo( uns dois meses so acho que nem é isso)
Bom, vim mais para me apresentar a comunidade aqui...
Sempre vinha mas em OFF
Agora vou frequentar mais...
Parabens pela comunidade
Estejam convidados a ir ao canal e avaliarem este primeiro trabalho
Te mais
Beijos
obs: traduzi pelo google amigos brasileiros por favor traduzam melhor
Quote:

By google

Olá my Bo friends I go to wait that they alguem translates this for the English because nao I really know nothing of this lingua. But I know that soon they alguem goes to make. My name is Gislaine but they can call me Gisa. I am of Brazil, you with 23 aninhos I am member of the XOOPS Brasil and Total Xoops, and currently you with the my site Cronica Canal on theHttp://www.canal-cronica.com.br address Canal of RPg and entertainment (it livens up, HQ, cinema, etc..) Work with XOOPS the a little be tempo(one two months so I find that nor it is this) Good, I came more to present the community here... It always came but in OFF Now I go to frequentar more... Parabens for the community is invited to go to the canal and to evaluate this first work You more Kisses




TopTop



Login

Who's Online

149 user(s) are online (96 user(s) are browsing Support Forums)


Members: 0


Guests: 149


more...

Donat-O-Meter

Stats
Goal: $100.00
Due Date: Apr 30
Gross Amount: $0.00
Net Balance: $0.00
Left to go: $100.00
Make donations with PayPal!

Latest GitHub Commits