예제 #1
0
function add_resource($id_resource)
{
    global $user_id, $char, $_SESSION;
    if ($id_resource > 0) {
        $res = mysql_fetch_array(myquery("SELECT * FROM craft_resource WHERE id={$id_resource}"));
        $Res = new Res($res);
        $check = $Res->add_user(0, $user_id);
        if ($check == 1) {
            setCraftTimes($user_id, 6, 1, 1);
            echo 'Ты добыл: ' . $res['name'];
            myquery("insert into craft_stat (build_id, gp, res_id, dob, vip, dat, user, type) values (0, 0, {$id_resource}, 0, 1, " . time() . ", {$user_id}, 'z')");
            if (isset($_SESSION['cur_get_mining'])) {
                $dob = explode('###', $_SESSION['cur_get_mining']);
                $find = 0;
                for ($i = 0; $i < sizeof($dob); $i++) {
                    $cur_dob = explode("&&&", $dob[$i]);
                    if ($cur_dob[0] == $res['name']) {
                        $find = 1;
                        $col = (int) $cur_dob[1] + 1;
                        $dob[$i] = $res['name'] . '&&&' . $col;
                    }
                }
                if ($find == 0) {
                    $dob[] = $res['name'] . '&&&1';
                }
                $_SESSION['cur_get_mining'] = implode("###", $dob);
            } else {
                $str = $res['name'] . '&&&1';
                $_SESSION['cur_get_mining'] = $str;
            }
        } else {
            echo 'У Вас недостаточно свободного места в инвентаре!';
        }
    }
}
예제 #2
0
 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() . "");
                     }
                 }
             }
         }
     }
 }
예제 #3
0
         case $id_resource_gold_nugget:
             $res_id_bullion = $id_resource_gold_bullion;
             break;
     }
     $res_in = mysql_fetch_array(myquery("SELECT * FROM craft_resource WHERE id='" . $res_id_bullion . "' "));
     $Res = new Res($res_in);
     $check = $Res->add_user(0, $user_id);
     if ($check == 1) {
         myquery("UPDATE game_items SET item_uselife=item_uselife-" . mt_rand(400, 600) / 100 . " WHERE user_id={$user_id} AND used=21 AND priznak=0");
         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();
         }
         $mes = 'Получен ресурс: <i>' . $res_in['name'] . '</i> в количестве 1 ед.';
         setCraftTimes($user_id, 10, 3, 1);
         myquery("insert into craft_stat (build_id, gp, res_id, dob, vip, dat, user, type) values (0, 0, {$res_id_bullion}, 0, 1, " . time() . ", {$user_id}, 'z')");
     } else {
         $mes = 'Неудачная попытка работы на плавильне. Проверь, хватает ли у тебя места для новых ресурсов в инвентаре!';
     }
     myquery("DELETE FROM craft_build_founder WHERE user_id={$user_id}");
 } else {
     mt_srand(make_seed());
     $new_nas = mt_rand(1, $founder['nas'] - 10);
     mt_srand(make_seed());
     $new_teplo = mt_rand(1, 100);
     $new_state = $founder['state'] + 1;
     $mes = 'Выполнена ' . $new_state . ' из 3 стадий плавления.';
     myquery("UPDATE craft_build_founder SET nas={$new_nas},teplo={$new_teplo},state=state+1 WHERE user_id={$user_id}");
 }
 //Обновим страницу
예제 #4
0
                }
                if ($lumber['state'] == 140) {
                    $action1 = 'Ты ' . echo_sex('закончил', 'закончила') . ' обработку расколотого валуна на каменные блоки на 60%';
                    myquery("UPDATE craft_build_stonemason SET state=160,end_time=0,user_id=0,reserve_user_id={$user_id},reserve_time=" . (time() + 60) . " WHERE id=" . $lumber['id'] . "");
                    break_axe($action1);
                }
                if ($lumber['state'] == 160) {
                    $action1 = 'Ты ' . echo_sex('закончил', 'закончила') . ' обработку расколотого валуна на каменные блоки на 80%';
                    myquery("UPDATE craft_build_stonemason SET state=180,end_time=0,user_id=0,reserve_user_id={$user_id},reserve_time=" . (time() + 60) . " WHERE id=" . $lumber['id'] . "");
                    break_axe($action1);
                }
                if ($lumber['state'] == 180) {
                    $action1 = 'Ты ' . echo_sex('закончил', 'закончила') . ' обработку расколотого валуна на каменные блоки на 100%';
                    myquery("UPDATE craft_build_stonemason SET state=200,user_id=0,end_time=0,brevn1=0,brevn2=0,brevn3=0,brevn4=0,brevn5=0,brevn6=0,klin=0,reserve_user_id={$user_id} WHERE id=" . $lumber['id'] . "");
                    for ($i = 1; $i <= $lumber['nomer'] + 1; $i++) {
                        myquery("UPDATE craft_build_stonemason SET brevn" . $i . "=1 WHERE id=" . $lumber['id'] . "");
                    }
                    setCraftTimes($user_id, 5, 1, 1);
                    break_axe($action1);
                }
                echo $action1;
                echo '<meta http-equiv="refresh" content="3;url=craft.php">';
            }
        }
    }
    if ($broken_instrument == 1) {
        echo '<br /><br /><br /><br />У тебя нет в руках кайло каменотеса, или оно полностью сломалось. Ты не сможешь работать в каменоломне!';
    } elseif ($est_items == 0) {
        echo '<br /><br /><br /><br />У тебя нет в руках кайло каменотеса. Ты не сможешь работать в каменоломне!';
    }
}
예제 #5
0
         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}");
         }
         QuoteTable('open');
         echo '<br>';
         if ($item['uselife_max_now'] > 1 or $breakdown == 0) {
             myquery("UPDATE game_items SET item_uselife=" . $item['uselife_template'] . ",item_uselife_max=item_uselife_max-{$breakdown} WHERE id={$nak}");
             echo 'Предмет <span style="font-weight:800;color:red;">' . $item['name'] . '</span> отремонтирован до состояния: ' . $item['uselife_template'] . '%.';
             if ($breakdown > 0) {
                 //Выдадим опыт за подход
                 add_exp_for_craft($user_id, 12);
                 setCraftTimes($user_id, 12, 2, 2);
                 echo ' <br />У предмета уменьшена долговечность на ' . $breakdown . '';
             }
         } else {
             $Item = new Item($item['id']);
             $Item->admindelete();
             echo 'При попытке ремонта предмет был полностью разрушен, т.к. его долговечность снизилась до 0';
         }
         echo '&nbsp;<br>&nbsp;';
         QuoteTable('close');
         echo '<br><br><br>';
     }
 }
 echo '<span style="font-weight:900;color:red;font-size:13px;">Выбери предмет для починки:</span><br><br>(твой навык кузнеца позволяет ремонтировать тебе предметы с текущей прочностью не менее ' . $min_itemuselife . '%)<br /><br>';
 $result_items = myquery("SELECT game_items.item_uselife,game_items.id,game_items_factsheet.type,game_items_factsheet.img,game_items_factsheet.name 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.item_uselife>={$min_itemuselife} ORDER BY game_items.item_uselife");
 if (mysql_num_rows($result_items) > 0) {
예제 #6
0
             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 used=21 AND user_id={$user_id} AND priznak=0 AND item_id=" . molot_kuzn . "");
             }
         }
         QuoteTable('open');
         echo '<br>';
         if ($item['uselife_max_now'] > 1 or $breakdown == 0) {
             myquery("UPDATE game_items SET item_uselife={$repair},item_uselife_max=item_uselife_max-{$breakdown} WHERE id={$nak}");
             echo 'Предмет <span style="font-weight:800;color:red;">' . $item['name'] . '</span> отремонтирован до состояния: ' . $item['uselife_max'] . '%.';
             if ($breakdown > 0) {
                 add_exp_for_craft($user_id, 12);
                 setCraftTimes($user_id, 12, 1, 1);
                 echo '<br />У предмета уменьшена долговечность на ' . $breakdown . '';
             }
         } else {
             $Item = new Item($item['id']);
             $Item->admindelete();
             echo 'При попытке ремонта предмет был полностью разрушен, т.к. его долговечность снизилась до 0';
         }
         echo '&nbsp;<br>&nbsp;';
         QuoteTable('close');
         echo '<br><br><br>';
     }
 }
 echo '<span style="font-weight:900;color:red;font-size:13px;">Выбери предмет для починки:</span><br><br>(твой навык кузнеца позволяет ремонтировать тебе предметы с текущей прочностью не менее ' . $min_itemuselife . '%)<br /><br>';
 $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_max,game_items_factsheet.breakdown,game_items.item_uselife_max AS uselife_max_now,game_items_factsheet.type,game_items_factsheet.img,game_items.kleymo 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.item_uselife>={$min_itemuselife} ORDER BY game_items.item_uselife");
 if (mysql_num_rows($result_items) > 0) {