Ez a függvény elvileg megvizsgálja az elküldött postot, és ha megtalálja benne a kockadobást, akkor legenerálja azt.
[dice]dbktipus+x[/dice] a plussz az opcionális.

tehát pl: 1k6, 2k4+3 stb... a darabszámot muszáj megadni.
Ötleteket várom továbbá, és hogy találtok e hibát a kódban...
- Kód: Egész kijelölése
function dice($string)
{
$find1 = "[dice]";
$find2 = "[/dice]";
$find3 = "+";
$pos1 = strpos($string,$find1);
$pos2 = strpos($string,$find2);
if (($pos1 === false ) or ($pos2 === false ))
{
return($string);
}
else
{
$st_jobb = stristr($string,$find1);
$st_jobb_hossz = strlen($st_jobb);
$st_bal = stristr($st_jobb,$find2);
$st_bal_hossz = strlen($st_bal);
$dobas_hossz = ($st_jobb_hossz - $st_bal_hossz) - strlen($find1);
$uj_string = substr($st_jobb,strlen($find1),$dobas_hossz);
$uj_string_hossz = strlen($uj_string);
$pos3 = strpos($uj_string,$find3);
if ( $pos3 === false)
{
$ki = stristr($uj_string,"k");
$teljes_hossz = strlen($uj_string);
$maradek_hossz = strlen($ki);
$meddig = ($teljes_hossz-$maradek_hossz)+1;
$k_darab_str = substr($uj_string,0,$teljes_hossz-$maradek_hossz);
$k_tipus_str = substr($uj_string,$meddig);
$k_darab = (int)$k_darab_str;
$k_tipus = (int)$k_tipus_str;
$i = 1;
$j = 0;
if (($k_tipus > 1) and ($k_darab >= 1))
{
while ($i <= $k_darab)
{
$rand = rand(1,$k_tipus);
$eredmenyek[$j] = $rand;
$eredmeny += $rand;
$i++;
$j++;
}
}
$j = 0;
while ($j < count($eredmenyek))
{
$reszletek = $reszletek.$eredmenyek[$j];
$j++;
if ($j < count($eredmenyek))
{
$reszletek = $reszletek."+";
}
}
$dobas = "<b>".$uj_string." = ".$reszletek." [".$eredmeny."]</b>";
}
else
{
$ki = stristr($uj_string,"k");
$teljes_hossz = strlen($uj_string);
$maradek_hossz = strlen($ki);
$ki2 = stristr($uj_string,"+");
$type_hossz = $maradek_hossz - strlen($ki2)-1;
$meddig = ($teljes_hossz-$maradek_hossz)+1;
$plussz_hossz = $teljes_hossz - $type_hossz;
$k_darab_str = substr($uj_string,0,$teljes_hossz-$maradek_hossz);
$k_tipus_str = substr($uj_string,$meddig,$type_hossz);
$plussz_str = substr($uj_string,$plussz_hossz);
$k_darab = (int)$k_darab_str;
$k_tipus = (int)$k_tipus_str;
$plussz = (int)$plussz_str;
$i = 1;
$j = 0;
if (($k_tipus > 1) and ($k_darab >= 1))
{
while ($i <= $k_darab)
{
$rand = rand(1,$k_tipus);
$eredmenyek[$j] = $rand;
$eredmeny += $rand;
$i++;
$j++;
}
}
$eredmeny += $plussz;
$j = 0;
while ($j < count($eredmenyek))
{
$reszletek = $reszletek.$eredmenyek[$j];
$j++;
if ($j < count($eredmenyek))
{
$reszletek = $reszletek."+";
}
}
$dobas = "<b>".$uj_string." = ".$reszletek."+".$plussz." [".$eredmeny."]</b>";
}
$out = str_replace("[dice]".$uj_string."[/dice]",$dobas,$string);
return($out);
}
}