myquery("UPDATE game_items SET item_uselife=item_uselife-2 WHERE user_id={$user_id} AND priznak=0 AND used=21"); list($cur_item_uselife, $id_item_kirka) = mysql_fetch_array(myquery("SELECT item_uselife,id FROM game_items WHERE user_id={$user_id} AND priznak=0 AND used=21")); if ($cur_item_uselife <= 0) { //кирка сломана //$Item = new Item($id_item_kirka); //$Item->down(); echo 'У тебя сломалась кирка! Ты не сможешь дальше работать!'; } mt_srand(make_seed()); $r = mt_rand(0, 100); if ($r <= $r_neud) { //неудачная попытка echo 'Ты не ' . echo_sex('смог', 'смогла') . ' ничего добыть'; } else { //Выдадим опыт за подход add_exp_for_craft($user_id, 6); $id_resource = 0; if ($r <= $r_neud + $r_ugol) { //добыча угля $id_resource = $id_resource_coal; } elseif ($r <= $r_neud + $r_ugol + $r_jelezo) { //добыча железной руды $id_resource = $id_resource_iron_ore; } elseif ($r <= $r_neud + $r_ugol + $r_jelezo + $r_med) { //добыча медной руды $id_resource = $id_resource_copper_ore; } elseif ($r <= $r_neud + $r_ugol + $r_jelezo + $r_med + $r_mithril) { //добыча мифрила $id_resource = $id_resource_mithril_ore; } elseif ($r <= $r_neud + $r_ugol + $r_jelezo + $r_med + $r_mithril + $r_silver) { //добыча серебра
public function drop_loot($user_id) { if ($this->error == 1) { return; } if ($this->npc['dropable'] == 1) { $seldrop = myquery("SELECT * FROM game_npc_drop WHERE npc_id=" . $this->templ['npc_id'] . ";"); if ($seldrop != false and mysql_num_rows($seldrop)) { $sum_chance = 0; $massiv = array(0); $m_last = 1; $mes = ""; $lcm = array(); $str = ""; $r = 0; $no_loot = 0; //Обработаем профессию "Охотник" if ($this->templ['npc_id'] == npc_id_olen) { if (checkCraftTrain($user_id, 8)) { $r = $r + 2 * getCraftLevel($user_id, 8); } else { $no_loot = 1; } } while ($chance = mysql_fetch_array($seldrop)) { $lcm[] = $chance['random_max']; } mysql_data_seek($seldrop, 0); $lcm = lcm_arr($lcm); while ($chance = mysql_fetch_array($seldrop)) { $this_chance = ($chance['random'] + $r) * $lcm / gcd($lcm, $chance['random_max']); $massiv = array_merge($massiv, array_fill($m_last, $this_chance, $chance)); $m_last += $this_chance; } if ($m_last < $lcm + 1) { $massiv = array_merge($massiv, array_fill($m_last, $lcm + 1 - $m_last, array('items_id' => 0))); } $drop = $massiv[mt_rand(1, $lcm)]; if ($drop['items_id'] != 0 and $no_loot == 0) { $it_user_id = 0; $priznak = 2; $kol_predmetov = mt_rand($drop['mincount'], $drop['maxcount']); $map_name = 0; $map_xpos = 0; $map_ypos = 0; for ($cikl = 1; $cikl <= $kol_predmetov; $cikl++) { $add_result = array(0); if ($drop['kuda'] == 1) { $it_user_id = $user_id; $priznak = 0; //проверим вес if ($drop['drop_type'] == 1) { $item = mysql_fetch_array(myquery("SELECT * FROM game_items_factsheet WHERE id=" . $drop['items_id'] . "")); } elseif ($drop['drop_type'] == 2) { $item = mysql_fetch_array(myquery("SELECT * FROM craft_resource WHERE id=" . $drop['items_id'] . "")); } list($CW, $CC) = mysql_fetch_array(myquery("SELECT CW,CC FROM view_active_users WHERE user_id={$it_user_id}")); $prov = mysqlresult(myquery("SELECT COUNT(*) FROM game_wm WHERE user_id={$it_user_id} AND type=1"), 0, 0); if ($CC - $CW < $item['weight'] and $prov == 0) { //инвентарь заполнен. На землю его! $it_user_id = 0; $priznak = 2; list($map_name, $map_xpos, $map_ypos) = mysql_fetch_array(myquery("SELECT map_name,map_xpos,map_ypos FROM game_users_map WHERE user_id={$it_user_id}")); $drop['kuda'] = 0; } } //если предмет if ($drop['drop_type'] == 1) { if ($priznak == 0) { $Item = new Item(); $add_result = $Item->add_user($drop['items_id'], $it_user_id, 0, 0, 1); // не получилось добавить один - не выйдет и остальные. if ($add_result[0] == 0) { break; } } else { if (!isset($item)) { $item = mysql_fetch_array(myquery("SELECT * FROM game_items_factsheet WHERE id=" . $drop['items_id'] . "")); } myquery("INSERT INTO game_items (user_id,item_id,priznak,ref_id,item_uselife,item_uselife_max,item_cost,map_name,map_xpos,map_ypos) VALUES ('{$it_user_id}','" . $drop['items_id'] . "','{$priznak}',0,'" . $item['item_uselife'] . "','" . $item['item_uselife_max'] . "','" . $item['item_cost'] . "','{$map_name}','{$map_xpos}','{$map_ypos}')"); } } elseif ($drop['drop_type'] == 2) { if ($drop['kuda'] == 1) { $Res = new Res($item, 0); $Res->add_user(0, $it_user_id, 1); if ($this->templ['npc_id'] == npc_id_olen) { myquery("INSERT INTO craft_stat (build_id, gp, res_id, dob, vip, dat, user, type) values (0, 0, " . $drop['items_id'] . ", 0, 1, " . time() . ", {$it_user_id}, 'z')"); setCraftTimes($it_user_id, 8, 1, 1); add_exp_for_craft($it_user_id, 8); } } elseif ($drop['kuda'] == 0) { $Res = new Res(0, $drop['items_id']); $Res->add_map(0, 0, 1, 0, $map_name, $map_xpos, $map_ypos); myquery("INSERT INTO craft_resource_market (user_id,town,col,price,res_id,opis,map_name,map_xpos,map_ypos) VALUES (0,0,1,0," . $drop['items_id'] . ",'','" . $map_name . "','" . $map_xpos . "','" . $map_ypos . "')"); } } if ($it_user_id > 0) { if ($drop['drop_type'] == 1) { $mes = '<font color=\\"#eeeeee\\">После убийства монстра ты ' . echo_sex('увидел', 'увидела') . ' оставшийся от него предмет: <b>' . $item['name'] . '</b>.Ты быстро ' . echo_sex('подобрал', 'подобрала') . ' выпавший предмет и ' . echo_sex('положил', 'положила') . ' его в свой инвентарь!</font>'; } elseif ($drop['drop_type'] == 2) { $mes = '<font color=\\"#eeeeee\\">После убийства монстра ты ' . echo_sex('заметил', 'заметила') . ', как он выронил из рук: <b>' . $item['name'] . '<b/>. Не мешкая ты быстро ' . echo_sex('подобрал', 'подобрала') . ' выпавший ресурс и ' . echo_sex('положил', 'положила') . ' его в свой инвентарь!</font>'; } $result = myquery("INSERT game_battles SET attacker_id=" . $user_id . ", target_id=0, map_name=" . $map_name . ", map_xpos=" . $map_xpos . ", map_ypos=" . $map_ypos . ", contents='" . $mes . "', post_time=" . time() . ""); } } } } } }
echo '<br /><br />Перед началом работы на плавильне необходимо иметь в руках предмет "Ковш литейщика"<br /><br />'; } } } echo '<br /><br /><center><a href="?option=' . $_GET['option'] . '&part4&add=' . $_GET['add'] . '">Вернуться в плавильню</a></center><br /><br />'; } if ($founder['res_id'] > 0) { echo '<br /><br />В плавильном котле находится ' . $founder['col_res'] . ' ед. ресурса <b><font color=red>' . mysqlresult(myquery("SELECT name FROM craft_resource WHERE id=" . $founder['res_id'] . ""), 0, 0) . '</font></b>'; } echo '<br /><br />Насыщенность состава в плавильном котле: ' . $founder['nas'] . ', количество тепла в печи ' . $founder['teplo'] . '.<br /><br />'; } elseif ($hod - time() + $timeout <= 0) { //окончание работы $founder = mysql_fetch_array(myquery("SELECT * FROM craft_build_founder WHERE user_id={$user_id}")); $add_query = ""; //Выдадим опыт за подход add_exp_for_craft($user_id, 10); if ($founder['state'] == 2) { //Определим целевой ресурс $res_id_bullion = 0; switch ($founder['res_id']) { case $id_resource_iron_ore: $res_id_bullion = $id_resource_iron_bullion; break; case $id_resource_copper_ore: $res_id_bullion = $id_resource_copper_bullion; break; case $id_resource_silver_nugget: $res_id_bullion = $id_resource_silver_bullion; break; case $id_resource_mithril_ore: $res_id_bullion = $id_resource_mithril_bullion;