PHP Code:
function genItem($lvl, $class, $shop, $option, $db_data) {
global $shakes_item_ids, $fidget_item_ids;
if ($shop == 0) {
$type = rand ( 1, 7 );
} else {
if ($option == "toilet" or $option == "dungeon"){
$type = rand ( 8, 10); //toilet, and dungeon isn't giving out keys or potions
} elseif ($option == "tavern") {
$type = rand ( 8, 11); //11 is keys, 12 is potions
} else {
$type = rand ( 8, 12); //11 is keys, 12 is potions
}
if ($type == 11 and $option != "tavern"){
$type = rand ( 8, 10);
}
}
if ($option == "toilet"){
$epicRand = rand(1, 3); //if toilet
} elseif ($option == "dungeon") {
$epicRand = 1; //if dungeon
} elseif ($option == "tavern" and $lvl > 25) {
$epicRand = rand(1, 100); //if tavern
} elseif ($lvl > 25) {
$epicRand = rand(1, 100); //if shop
} else {
$epicRand = -1;
}
// if epic event or chirstmas
if (event () == 2 or event () == 5){
if ($option == "toilet"){
$epicRand = rand(1, 2); //if toilet
} elseif ($option == "dungeon") {
$epicRand = 1; //if dungeon
} elseif ($option == "tavern") {
$epicRand = rand(1, 30); //if tavern
} else {
$epicRand = rand(1, 50); //if shop
}
}
$statNumRand = rand(1, 7);
if ($shop == 1 and $type == 12){
if ($lvl < 10){ //if level < 10 then shop gives only small potions
$potionIDRand = rand (1, 5);
} elseif ($lvl < 25 and $lvl > 9) { //if level < 25 then shop gives small potions and medium potions
$potionIDRand = rand (1, 10);
} elseif ($lvl > 24) { //if level > 24 then shop gives small, medium and big potions + Potion of the Eternal Life
$potionIDRand = rand (1, 16);
}
}
$itemMush = 0;
if ($type == 1){ // if weapon item
$itemGold = rand($lvl * $lvl * ($lvl * 1 + 2), $lvl * $lvl * ($lvl * 1 + 2));
} else { // if normal item
$itemGold = rand($lvl * $lvl * ($lvl * 1 + 2), $lvl * $lvl * ($lvl * 1 + 2)) / 2;
}
// potions - shop 2
if ($potionIDRand > 0 and $potionIDRand < 6 and $type == 12){ // if small potions
$itemGold = rand($lvl * $lvl * ($lvl * 5 + 10), $lvl * $lvl * ($lvl * 6 + 12)) / 20;
} elseif ($potionIDRand > 5 and $potionIDRand < 11 and $type == 12){ // if medium potions
$itemGold = rand($lvl * $lvl * ($lvl * 5 + 10), $lvl * $lvl * ($lvl * 6 + 12)) / 15;
} elseif ($potionIDRand > 10 and $potionIDRand < 16 and $type == 12){ // if big potions
$itemGold = rand($lvl * $lvl * ($lvl * 5 + 10), $lvl * $lvl * ($lvl * 6 + 12)) / 10;
} elseif ($potionIDRand == 16 and $type == 12){ // if life potions
$itemGold = rand($lvl * $lvl * ($lvl * 5 + 10), $lvl * $lvl * ($lvl * 6 + 12)) / 10;
}
if ($option == 'tavern' or $option == 'dungeon' or $option == 'toilet'){ // items - tavern, dungeon, toilet
$itemGold = rand($lvl * $lvl * ($lvl * 0 + 0.1), $lvl * $lvl * ($lvl * 0 + 0.1)) / 1;
}
if ($type == 11){
$itemGold = 100;
}
if ($epicRand == 1 and $type < 11){
$itemMush = 15;
} elseif ($statNumRand == 1 and $type < 11) { // if normal items with 2 stats
$itemMush = 10;
} elseif ($type == 12 and $potionIDRand == 16) { // if life potion
$itemMush = 15;
} else {
$itemMush = 0;
}
if ($option == "toilet" or $option == "dungeon" or $option == "tavern"){
$itemMush = 0;
}
$item = array (
"item_type" => "1",
"item_id" => "1005",
"dmg_min" => "1",
"dmg_max" => "0",
"atr_type_1" => "0",
"atr_type_2" => "0",
"atr_type_3" => "0",
"atr_val_1" => "0",
"atr_val_2" => "0",
"atr_val_3" => "0",
"gold" => $itemGold,
"mush" => $itemMush,
"slot" => "0",
"owner_id" => $itemOwner
);
if ($shop == 0) {
while ( $class != 1 && $type == 2 )
$type = rand ( 1, 7 );
$item ['item_type'] = $type;
$random = rand ( 1, $shakes_item_ids [$class - 1] [$type - 1] );
if ($epicRand == 1){
if ($class == 3){
if ($type == 1 or $type == 2){
$item ['item_id'] = rand(2050, 2060);
} else {
$item ['item_id'] = rand(2050, 2058);
}
}
if ($class == 2){
if ($type == 1 or $type == 2){
$item ['item_id'] = rand(1050, 1060);
} else {
$item ['item_id'] = rand(1050, 1058);
}
}
if ($class == 1){
if ($type == 1 or $type == 2){
$item ['item_id'] = rand(50, 60);
} else {
$item ['item_id'] = rand(50, 58);
}
}
} else {
$item ['item_id'] = $random + (($class - 1) * 1000);
}
if ($type == 1) {
$class_weap_multiplier = array (
2,
3,
5
);
$m = mt_rand ( 900, 1100 ) / 1000;
$avg = round($lvl * '1.3' * $class_weap_multiplier [$class - 1]);
$minmax_m = round(mt_rand(750, 1000) / 1000);
$item ['dmg_min'] = round($avg * $minmax_m);
$item ['dmg_max'] = round($avg * ($minmax_m + '0.25') + rand (1, 50));
} else {
if ($type == 2){
if ($lvl < 10){
$shieldNumber = 5;
}
if ($lvl < 100 and $lvl > 9){
$shieldNumber = 25;
}
if ($lvl > 99){
$shieldNumber = 30;
}
$item ['dmg_min'] = $shieldNumber;
} else {
$item ['dmg_min'] = $lvl * 2 * rand(1.51, 1.74) + rand(1, 6);
}
}
} else {
$item ['dmg_min'] = 0;
$item ['item_type'] = $type;
if ($epicRand == 1){
$item ['item_id'] = rand (50, 58);
} else {
$item ['item_id'] = rand ( 1, $fidget_item_ids [$type - 8] );
}
}
if ($class == 1){
$classStat = 1;
}
if ($class == 2){
$classStat = 3;
}
if ($class == 3){
$classStat = 2;
}
if ($epicRand == 1){
if (rand(1, 2) == 1){ //epic item with 3 stats
$stat_type2 = 4;
$stat_type3 = 5;
$m = mt_rand ( 850, 1300 ) / rand(850, 1000) * rand(2, 2.5);
$stat_val1 = round ( $lvl * $m );
$stat_val2 = round ( $lvl * $m );
$stat_val3 = round ( $lvl * $m );
$item ['atr_type_1'] = $classStat;
$item ['atr_val_1'] = $stat_val1;
$item ['atr_type_2'] = $stat_type2;
$item ['atr_val_2'] = $stat_val2;
$item ['atr_type_3'] = $stat_type3;
$item ['atr_val_3'] = $stat_val3;
} else { //epic item with all stat
$stat_type = 6;
$m = mt_rand ( 850, 1300 ) / rand(850, 1000) * 2;
$stat_val = round ( $lvl * $m );
$item ['atr_type_1'] = $stat_type;
$item ['atr_val_1'] = $stat_val;
}
} else {
if ($statNumRand == 1){ //normal item with 2 stats
$stat_type1 = rand ( 1, 5 );
$stat_type2 = rand ( 1, 5 );
if ($stat_type2 == $stat_type1){
if ($stat_type1 < 2){
$stat_type2 = $stat_type1 + 1;
} else {
$stat_type2 = $stat_type1 - 1;
}
}
$m1 = mt_rand ( 850, 1300 ) / rand(850, 1000);
$m2 = mt_rand ( 850, 1300 ) / rand(850, 1000);
$stat_val1 = round ( $lvl * 3 * $m1 );
$stat_val2 = round ( $lvl * 3 * $m2 );
$item ['atr_type_1'] = $stat_type1;
$item ['atr_val_1'] = $stat_val1;
$item ['atr_type_2'] = $stat_type2;
$item ['atr_val_2'] = $stat_val2;
} else { //normal item with 1 stat
$stat_type = rand ( 1, 5 );
$m = mt_rand ( 850, 1300 ) / rand(850, 1000);
$stat_val = round ( $lvl * 3 * $m );
$item ['atr_type_1'] = $stat_type;
$item ['atr_val_1'] = $stat_val;
}
}
if ($type == 11){ //if key then
$item ['item_id'] = -1; // default value
if ($option == 'tavern'){
// if (rand (1, 2) == 1 and $lvl > 50 and $db_data ['magic_mirror'] == 0){
// $item ['item_id'] = 21; // magic mirror key ?? what's this?
// }
// if (rand (1, 50) == 1){
// $item ['item_id'] = rand(22, 24); // eggs ?? what's this?
// }
if (rand (1, 3) == 1 and $lvl > 50 and $db_data ['magic_mirror'] == 0 and $db_data ['magic_mirror_shard'] < 43){
$item ['item_id'] = $db_data['magic_mirror_shard']; // magic mirrors
}
if (rand (1, 2) == 1 and $lvl > 99 and $db_data ['toilet'] == 0){
$item ['item_id'] = 20; // toilet key
}
if ($item ['item_id'] == -1){
if ($db_data ['dungeon_1'] == 0 and $lvl > 9){
$item ['item_id'] = 1;
} elseif ($db_data ['dungeon_2'] == 0 and $lvl > 19){
$item ['item_id'] = 2;
} elseif ($db_data ['dungeon_3'] == 0 and $lvl > 29){
$item ['item_id'] = 3;
} elseif ($db_data ['dungeon_4'] == 0 and $lvl > 39){
$item ['item_id'] = 4;
} elseif ($db_data ['dungeon_5'] == 0 and $lvl > 49){
$item ['item_id'] = 5;
} elseif ($db_data ['dungeon_6'] == 0 and $lvl > 59){
$item ['item_id'] = 6;
} elseif ($db_data ['dungeon_7'] == 0 and $lvl > 59){
$item ['item_id'] = 7;
} elseif ($db_data ['dungeon_8'] == 0 and $lvl > 69){
$item ['item_id'] = 8;
} elseif ($db_data ['dungeon_9'] == 0 and $lvl > 79){
$item ['item_id'] = 9;
} else {
return ('0/0/0/0/0/0/0/0/0/0/0/0');
break;
}
}
} else {
$item ['item_id'] = rand (1, 9);
}
$item ['dmg_min'] = 0;
$item ['atr_type_1'] = 0;
$item ['atr_val_1'] = 0;
$item ['atr_type_2'] = 0;
$item ['atr_val_2'] = 0;
$item ['atr_type_3'] = 0;
$item ['atr_val_3'] = 0;
}
if ($type == 12){
$item ['item_id'] = $fidget_item_ids [$type - 8] + $potionIDRand;
switch ($potionIDRand) {
case 1:
$potionAtr_type = 1;
$potionAtr_val = 5;
break;
case 2:
$potionAtr_type = 2;
$potionAtr_val = 5;
break;
case 3:
$potionAtr_type = 3;
$potionAtr_val = 5;
break;
case 4:
$potionAtr_type = 4;
$potionAtr_val = 5;
break;
case 5:
$potionAtr_type = 5;
$potionAtr_val = 5;
break;
case 6:
$potionAtr_type = 1;
$potionAtr_val = 15;
break;
case 7:
$potionAtr_type = 2;
$potionAtr_val = 15;
break;
case 8:
$potionAtr_type = 3;
$potionAtr_val = 15;
break;
case 9:
$potionAtr_type = 4;
$potionAtr_val = 15;
break;
case 10:
$potionAtr_type = 5;
$potionAtr_val = 15;
break;
case 11:
$potionAtr_type = 1;
$potionAtr_val = 25;
break;
case 12:
$potionAtr_type = 2;
$potionAtr_val = 25;
break;
case 13:
$potionAtr_type = 3;
$potionAtr_val = 25;
break;
case 14:
$potionAtr_type = 4;
$potionAtr_val = 25;
break;
case 15:
$potionAtr_type = 5;
$potionAtr_val = 25;
break;
case 16:
$potionAtr_type = 12;
$potionAtr_val = 25;
break;
}
$item ['atr_type_1'] = $potionAtr_type;
$item ['atr_val_1'] = $potionAtr_val;
$item ['dmg_min'] = 0;
$item ['atr_type_2'] = 0;
$item ['atr_val_2'] = 0;
$item ['atr_type_3'] = 0;
$item ['atr_val_3'] = 0;
}
return $item;
}