myquery("insert into craft_stat (build_id, gp, res_id, dob, vip, dat, user, type) values (0, 0, " . $res_user['id'] . ", 0, -1, " . time() . ", {$user_id}, 'z')"); $res = mysql_fetch_array(myquery("SELECT weight FROM craft_resource WHERE id={$id_resource_brevno}")); myquery("UPDATE game_users SET CW=CW-" . $res['weight'] . " WHERE user_id={$user_id}"); echo 'Ты ' . echo_sex('укрепил', 'укрепила') . ' стены шахты'; } echo '<meta http-equiv="refresh" content="2;url=craft.php">'; exit; } elseif (isset($_GET['home'])) { myquery("UPDATE craft_build_rab SET eliksir=" . $level * 10 . " WHERE user_id={$user_id}"); echo '<br />Ты ' . echo_sex('вышел', 'вышла') . ' в центральную шахту'; echo '<meta http-equiv="refresh" content="2;url=craft.php">'; exit; } else { $obval = max(0, ($level - 1) * 5 + $cur_geksa['geksa_obval'] - min(5, $char['lucky'])); echo 'Вероятность обвала шахты - ' . $obval . '%<br />'; $char_mining = getCraftLevel($user_id, 6); if ($char_mining >= ($level - 1) * 3 and $broken_instrument == 0) { echo '<a href="?dob">Начать добычу руды</a>'; } else { if ($char_mining < ($level - 1) * 3) { echo '<br /><br />Для работы в шахтах требуется ' . ($level - 1) * 3 . ' уровень навыка рудокопа (у тебя сейчас ' . $char_mining . ' уровень)'; } else { echo '<br /><br />Для работы в руднике требуется кирка'; } } if ($cur_geksa['geksa_obval'] > 0) { $check = myquery("SELECT * FROM craft_resource_user WHERE user_id={$user_id} AND res_id={$id_resource_brevno} AND col>0 LIMIT 1"); if ($check != false and mysql_num_rows($check) > 0) { echo ' <a href="?klin">[ Укрепить стены шахты бревном ]</a>'; } }
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() . ""); } } } } } }
{ global $user_id; myquery("UPDATE game_items SET item_uselife=item_uselife-2 WHERE priznak=0 AND user_id={$user_id} AND used=21"); list($id_item, $cur_uselife) = mysql_fetch_array(myquery("SELECT id,item_uselife FROM game_items WHERE priznak=0 AND user_id={$user_id} AND used=21")); if ($cur_uselife <= 0) { $Item = new Item($id_item); $Item->down(); craft_DelFunc($user_id); $action1 = 'У тебя сломано кайло!'; } } if ($local_func_id == 5) { $sel = myquery("SELECT * FROM craft_build_rab WHERE user_id={$user_id}"); $est_items = mysqlresult(myquery("SELECT COUNT(*) FROM game_items WHERE item_id=" . $id_item_kaylo . " AND user_id={$user_id} AND used=21 AND priznak=0"), 0, 0); //Установим время работы $char_lumberjack = getCraftLevel($user_id, 5); if (domain_name == 'testing.rpg.su' or domain_name == 'localhost') { $end_time = time() + 5; } else { $end_time = time() + max(120, 5 * 60 - $char_lumberjack * 10); } if ($sel != false and mysql_num_rows($sel) > 0 and $broken_instrument != 1 and $est_items == 1) { $sel_lumber = myquery("SELECT * FROM craft_build_stonemason WHERE user_id={$user_id} AND build_id={$build_id} LIMIT 1"); if ($sel_lumber == false or mysql_num_rows($sel_lumber) == 0) { //игрок еще не начал рубку echo '<span style="font-weight:900;font-size:13px;font-family:Arial;color:#FFFF00">Каменоломня</span><br />'; $ustroil = 0; if (isset($_GET['id']) and $broken_instrument == 0) { $id = (int) $_GET['id']; $check = myquery("SELECT * FROM craft_build_stonemason WHERE id=" . $id . " AND user_id=0 AND build_id={$build_id}"); if ($check != false and mysql_num_rows($check) > 0) {
if ($founder['nas'] >= 51 and $founder['teplo'] >= 69 and $founder['teplo'] < 80) { $fault = 0; } break; case $id_resource_gold_nugget: if ($founder['nas'] >= 51 and $founder['teplo'] >= 39 and $founder['teplo'] < 50) { $fault = 0; } break; } $add_query = ""; if ($fault == 0) { if (domain_name == 'testing.rpg.su' or domain_name == 'localhost') { $dlit = 5; } else { $dlit = max(120, 600 - getCraftLevel($user_id, 10) * 20); } craft_setFunc($user_id, 10); set_delay_reason_id($user_id, 34); $build_id = 'founder'; myquery("DELETE FROM craft_build_rab WHERE user_id={$user_id}"); myquery("INSERT INTO craft_build_rab (user_id,build_id,date_rab,dlit) VALUES ({$user_id},'{$build_id}'," . time() . ",{$dlit})"); ForceFunc($user_id, func_craft); setLocation("../craft.php"); } else { $mes = 'Неудача, ты неправильно ' . echo_sex('сбалансировал', 'сбалансировала') . ' тепло печи или насыщенность состава, все материалы потрачены впустую.'; myquery("UPDATE craft_build_founder SET state=0,nas=0,teplo=0,res_id=0,col_res=0,col_coal=0,col_water=0 WHERE user_id={$user_id}"); if (domain_name == 'localhost') { $option = 19; } else { $option = 18;
<?php $meating_level = getCraftLevel($user_id, 9); $kol_res_in = 0; $kol_res_out = 1; $res_id_out = $id_resource_olencorpse; $res_id_in = 0; $add_query = ''; mt_srand(make_seed()); $chance_olenkoja = 10 + 2 * $meating_level; $chance_olenkosti = 25 + 2 * $meating_level; $chance_olenjily = 30 + 2 * $meating_level; $max_chance = 100; if ($chance_olenkoja + $chance_olenkosti + $chance_olenjily > 100) { $max_chance = $chance_olenkoja + $chance_olenkosti + $chance_olenjily; } $rand = mt_rand(0, $max_chance); if ($rand > 0 and $rand <= $chance_olenkoja) { //получаем оленью кожу $kol_res_in = 1; $res_id_in = $id_resource_olenkoja; } elseif ($rand > $chance_olenkoja and $rand <= $chance_olenkosti + $chance_olenkoja) { //получаем оленью кость $kol_res_in = 1; $res_id_in = $id_resource_olenkosti; } elseif ($rand > $chance_olenkosti + $chance_olenkoja and $rand <= $chance_olenjily + $chance_olenkosti + $chance_olenkoja) { //получаем оленьи жилы $kol_res_in = 1; $res_id_in = $id_resource_olenjily; } //Забираем расходник
<?php $craft_kuznec = getCraftLevel($user_id, 12); if (checkCraftTrain($user_id, 12) > 0) { $est_molot = myquery("SELECT id,item_uselife FROM game_items WHERE item_uselife>0 AND user_id={$user_id} AND used=21 AND priznak=0 AND item_id=" . molot_kuzn . " LIMIT 1"); if (mysql_num_rows($est_molot) > 0) { $border_by_level = 90 - 8 * $craft_kuznec; $min_itemuselife = $border_by_level; if (isset($_GET['nak']) and is_numeric($_GET['nak'])) { $nak = (int) $_GET['nak']; $result_items = myquery("SELECT game_items.item_uselife as uselife_now,game_items.id,game_items_factsheet.name,game_items_factsheet.item_uselife AS uselife_template,game_items_factsheet.breakdown,game_items.item_uselife_max AS uselife_max_now,game_items_factsheet.type FROM game_items, game_items_factsheet WHERE game_items.user_id={$user_id} AND (game_items.used=0 or (game_items.item_uselife>=10 AND game_items_factsheet.type<>24)) and game_items.ref_id=0 and game_items.priznak=0 and game_items_factsheet.type<90 AND game_items_factsheet.type NOT IN (12,13,19,20,21) AND game_items.item_uselife<100 AND game_items.item_id=game_items_factsheet.id AND game_items.id={$nak} AND game_items.item_uselife>={$min_itemuselife}"); if ($result_items != false and mysql_num_rows($result_items) > 0) { //предмет проверили. дальше идем $item = mysql_fetch_array($result_items); $breakdown = 0; $chance = mt_rand(1, 100); if ($item['breakdown'] == 1 and $chance > 1) { $breakdown = 1; } if ($item['type'] == 3) { $item['uselife_template'] = 100; } list($molot_id, $molot_uselife) = mysql_fetch_array($est_molot); $break = ($item['uselife_template'] - $item['uselife_now']) / 100; if ($molot_uselife <= $break) { $molot = new Item($molot_id); $molot->down(); myquery("UPDATE game_items SET item_uselife=0 WHERE id={$molot_id}"); } else { myquery("UPDATE game_items SET item_uselife=item_uselife-{$break} WHERE id={$molot_id}"); }
function CreateArrayForCraftEliksir() { global $char; $eliksir = array(); $check = myquery("Select game_items_factsheet.name, game_items_factsheet.weight, game_items_factsheet.img, game_items_factsheet.hp_p, game_items_factsheet.mp_p, game_items_factsheet.stm_p, game_items_factsheet.dstr, game_items_factsheet.ddex, game_items_factsheet.dvit, game_items_factsheet.dspd, game_items_factsheet.dntl, game_items_factsheet.dpie, game_items_factsheet.dlucky, game_items_factsheet.cc_p, game_eliksir_alchemist.* \n\t\t\t\t From game_items_factsheet Join game_eliksir_alchemist On game_items_factsheet.id=game_eliksir_alchemist.elik_id \t\n\t\t\t\t "); $i = 0; while ($elik = mysql_fetch_array($check)) { list($dlit) = mysql_fetch_array(myquery("Select dlit from game_eliksir_dlit where elik_id=" . $elik['elik_id'] . "")); $check2 = myquery("Select * From game_eliksir_res Where elik_id=" . $elik['elik_id'] . ""); if (mysql_num_rows($check2) > 0) { $eliksir[$i]['item_id'] = $elik['elik_id']; $eliksir[$i]['name'] = $elik['name']; $eliksir[$i]['weight'] = $elik['weight']; $eliksir[$i]['img'] = $elik['img']; $eliksir[$i]['hp'] = $elik['hp_p']; $eliksir[$i]['mp'] = $elik['mp_p']; $eliksir[$i]['stm'] = $elik['stm_p']; $eliksir[$i]['str'] = $elik['dstr']; $eliksir[$i]['vit'] = $elik['dvit']; $eliksir[$i]['spd'] = $elik['dspd']; $eliksir[$i]['ntl'] = $elik['dntl']; $eliksir[$i]['pie'] = $elik['dpie']; $eliksir[$i]['dex'] = $elik['ddex']; $eliksir[$i]['lucky'] = $elik['dlucky']; $eliksir[$i]['cc'] = $elik['cc_p']; $eliksir[$i]['alchemist'] = $elik['alchemist']; $eliksir[$i]['clevel'] = $elik['clevel']; $eliksir[$i]['time'] = max($elik['mintime'], $elik['maxtime'] - getCraftLevel($char['user_id'], 2) * 60); $eliksir[$i]['dlit'] = $dlit; $j = 0; while ($res = mysql_fetch_array($check2)) { $eliksir[$i]['resource'][$j]['id'] = $res['res_id']; $eliksir[$i]['resource'][$j]['kol'] = $res['kol']; $j++; } $i++; } } return $eliksir; }
myquery("update craft_resource_user set col=GREATEST(0,col-{$b['1']}) where user_id={$build_vladel} and res_id={$b['0']}"); myquery("UPDATE game_users SET CW=CW-" . $build['weight'] * $b[1] . " WHERE user_id={$build_vladel}"); } $chance = 100; mt_srand(make_seed()); $r = mt_rand(0, 100); $inc = 0; if ($build['spets'] != '') { $craft_index = get_craft_index($build['spets']); $spetstime = getCraftTimes($user_id, $craft_index); $spetslevel = CraftSpetsTimeToLevel($craft_index, $spetstime + 1); if ($craft_index == 1) { if (getCraftLevel($user_id, $craft_index) < 19) { $chance = 50; } else { $chance = min(100, 50 + (getCraftLevel($user_id, $craft_index) - 18) * 2); } if ($r > $chance) { // промашка при сборе. Навык не увеличиваем } else { $inc = 1; } } else { $inc = 1; } } $check = 0; if ($inc == 1 and $build['spets'] == 'sobiratel') { $Res = new Res(0, $b[0]); $check = $Res->add_user(0, $user_id); if ($check == 1) {
// Просмотр выбранного типа предметов на рынке // Просмотр выбранного типа предметов на рынке case 'viewtype': echo "В инвентаре свободно место для <b>" . max(0, $char['CC'] - $char['CW']) . "</b> кг."; $type = (int) $_GET['type']; if (!isset($_GET['page']) or $_GET['page'] < 1) { $page = 1; } else { $page = (int) $_GET['page']; } $line = 15; $player_kuzn = 0; if ($type != 13 && $type != 19 && $type != 20 && $type != 21 && $type != 22 && $type != 97) { $player_kuzn = mysqlresult(myquery("SELECT COUNT(*) FROM `game_users_crafts` WHERE `user_id`=" . $char['user_id'] . " AND `craft_index`=12 AND `profile`=1;"), 0, 0); if ($player_kuzn) { $kuzn_border_by_level = 90 - 8 * getCraftLevel($char['user_id'], 12); } } if ($dostup_clan == 2) { $pg = myquery("SELECT COUNT(*) FROM game_items WHERE user_id='" . $user_id . "' and priznak=1 and town='" . $town . "' and sell_time>'" . $time_for_check . "' AND post_to=0 and item_id IN (select id from game_items_factsheet where type='" . $type . "' AND item_id NOT IN (" . $quest_item_ids . "));"); } else { $pg = myquery("SELECT COUNT(*) FROM game_items WHERE priznak=1 and town='" . $town . "' and sell_time>'" . $time_for_check . "' AND post_to=0 and item_id IN (select id from game_items_factsheet where type='" . $type . "' AND item_id NOT IN (" . $quest_item_ids . "));"); } $allpage = ceil(mysql_result($pg, 0, 0) / $line); if ($allpage == 0) { echo '<meta http-equiv="refresh" content="1;url=town.php?option=' . $option . '">'; } else { if ($page > $allpage) { $page = $allpage; } $href = '?option=' . $option . '&do=viewtype&type=' . (int) $_GET['type'] . '&';
<?php //ЛЕСОПИЛКА - ОКОНЧАНИЕ $add_query = ''; $sawmill_level = getCraftLevel($user_id, 7); $add_doska = 1; $add_strela = 2; $add_topor = 1; $add_kopye = 1; if ($sawmill_level >= 4) { $add_doska++; $add_kopye++; $add_strela++; $add_strela++; $add_topor++; } if ($sawmill_level >= 9) { $add_doska++; $add_kopye++; $add_strela++; $add_strela++; $add_topor++; } if ($sawmill_level >= 14) { $add_doska++; $add_kopye++; $add_strela++; $add_strela++; $add_topor++; } if ($sawmill_level >= 19) {
if (mysql_num_rows($check_schema) > 0) { $item = mysql_fetch_array($check_schema); list($item_new_id, $schema_level) = mysql_fetch_array(myquery("SELECT indx,oclevel FROM game_items_factsheet WHERE id=" . $item['item_id'] . "")); $make = 1; $weight_out = 0; $sel_res = myquery("SELECT game_items_schema.col,craft_resource_user.col AS user,craft_resource.weight FROM game_items_schema,craft_resource_user,craft_resource WHERE game_items_schema.item_id=" . $item['item_id'] . " AND craft_resource_user.res_id=game_items_schema.res_id AND craft_resource.id=game_items_schema.res_id AND craft_resource_user.user_id={$user_id}"); while ($res = mysql_fetch_array($sel_res)) { $weight_out += $res['col'] * $res['weight']; if ($res['col'] > $res['user']) { $make = 0; } } if ($make == 1) { $uslov = 1; $dlit = 0; $oruj_level = getCraftLevel($user_id, 11); if ($schema_level == 1) { if ($char['clevel'] < 8) { echo '<br /><br />Ты не можешь создать предмет по схеме. Твой уровень меньше требуемого 8 уровня!<br /><br />'; $uslov = 0; } $dlit = 120 * 60; } if ($schema_level == 2) { if ($char['clevel'] < 12) { echo '<br /><br />Ты не можешь создать предмет по схеме. Твой уровень меньше требуемого 12 уровня!<br /><br />'; $uslov = 0; } if ($oruj_level < 55) { echo '<br /><br />Ты не можешь создать предмет по схеме. Твой уровень "оружейника" меньше требуемого 55 уровня!<br /><br />'; $uslov = 0;
} //проверка свободных мест if ($num < $col and $rab['user_id'] != $user_id and $build_user != $user_id and $razresheno == 1 and isset($_SESSION['captcha']) and isset($_POST['digit']) and $_POST['digit'] == $_SESSION['captcha']) { unset($_SESSION['captcha']); $dlitel = $building['rab_time']; $a = explode("|", $building['res_dob']); if (domain_name == 'testing.rpg.su' or domain_name == 'localhost') { $dlitel = 2; } else { for ($i = 0; $i < sizeof($a); $i++) { $b = explode("-", $a[$i]); $res_id = $b[0]; if ($res_id > 0) { $res = mysql_fetch_array(myquery("SELECT * FROM craft_resource WHERE id={$res_id}")); if ($res['spets'] != '') { $lev = getCraftLevel($user_id, get_craft_index($res['spets'])); if ($lev > 0) { $dlitel -= $lev * $res['decrease_rab_time']; } } } } $dlitel = max(2 * 60, $dlitel); } //Время крафта не должно быть менее 2 минут никогда myquery("DELETE FROM craft_build_rab WHERE user_id={$user_id}"); $eliksir = 99; if ($building['include'] == 'mining') { $eliksir = 0; } $date_rab = time();
$res[$r['id']]['name'] = $r['name']; if ($r['col'] == NULL) { $res[$r['id']]['col'] = 0; } else { $res[$r['id']]['col'] = $r['col']; } } $kolba = myquery("SELECT id FROM game_items WHERE user_id={$user_id} AND priznak=0 AND used=0 AND ref_id=0 AND item_id=" . kolba_item_id . ""); $eliksir = CreateArrayForCraftEliksir(); if ($i >= 0 and $i < sizeof($eliksir)) { if (domain_name == 'testing.rpg.su' or domain_name == 'localhost') { $dlit = 5; } else { $dlit = $eliksir[$i]['time']; } if (getCraftLevel($user_id, 2) < $eliksir[$i]['alchemist']) { $craft = 0; } elseif ($char['clevel'] < $eliksir[$i]['clevel']) { $craft = 0; } else { for ($j = 0; $j < sizeof($eliksir[$i]['resource']); $j++) { if ($res[$eliksir[$i]['resource'][$j]['id']]['col'] < $eliksir[$i]['resource'][$j]['kol']) { $craft = 0; } } } if ($craft == 1) { if (mysql_num_rows($kolba) == 0) { $craft = 0; } }