function list_inloc($pl, $action, $s = 0) { global $sid; global $LOGIN; global $p; //$pl = preg_replace ('/[^a-z0-9_]/i', '', $pl); $action = preg_replace('/[^a-z0-9_&=\\.]/i', '', $action); $loc = $p['location']; // snachala igrokov: vyvedem $q = do_mysql("SELECT login, life, name FROM players WHERE location = '" . $loc . "' AND active = '1' AND id_player <> '" . $p['id_player'] . "' AND hidden = '0';"); $inl = '<a class="blue" href="game.php?sid=' . $sid . '&action=' . $action . '&to=' . $LOGIN . '">на себя</a><br/>'; while ($pp = mysql_fetch_assoc($q)) { $pp['life'] = explode('|', $pp['life']); $inl .= '<a class="blue" href="game.php?sid=' . $sid . '&action=' . $action . '&to=' . $pp['login'] . '">'; $inl .= $pp['name'] . '</a>[' . round($pp['life'][0] / $pp['life'][1] * 100) . '%]<br/>'; } $q = do_mysql("SELECT name, fullname, life, type FROM npc WHERE location = '" . $loc . "' AND (hidden = '0' OR hidden = '');"); while ($n = mysql_fetch_assoc($q)) { if (!$s) { // znachit nelzja piokazyvatq govorjashih npc i torgovcev: if ($n['type'] == 's' || $n['type'] == 't') { continue; } } $n['life'] = explode('|', $n['life']); $inl .= '<a class="blue" href="game.php?sid=' . $sid . '&action=' . $action . '&to=' . $n['fullname'] . '">'; $inl .= $n['name'] . '</a>[' . round($n['life'][0] / $n['life'][1] * 100) . '%]<br/>'; } return $inl; }
function decrease_misc($item, $count) { //$item = preg_replace ('/[^a-z0-9_\.]/i', '', $item); $count = preg_replace('/[^0-9]/', '', $count); // vozmem nachalqnoe kolichestvo $sc = do_mysql("SELECT on_take FROM items WHERE fullname = '" . $item . "';"); $sc = mysql_result($sc, 0); // esli count menqshe nulja, tupaja oshibka if ($count <= 0) { //put_error ('уменьшить на минусовое число нелзя, надо использовать увеличить'); return 0; } // esli otnjav poluchitsja menqshe 0 tozhe nelzja, ob etom pozabotitsja nado v skriptah if ($sc - $count < 0) { //put_error ('как ты считал балбес, ведь меньше 0 получается'); return 0; } // esli vse prodolzhaetsja, uvelichim i obnovim $nc = $sc - $count; if ($nc < 1) { include_once 'modules/f_delete.php'; delete_item($item); } do_mysql("UPDATE items SET on_take = '" . $nc . "' WHERE fullname = '" . $item . "';"); return 1; }
function get_loc($who, $stor, $depth = 1) { // lokacija $id = is_player($who); if ($id) { $lq = do_mysql("SELECT location FROM players WHERE id_player = '" . $id . "';"); $loc = mysql_result($lq, 0); } else { include_once 'modules/f_get_npc_info.php'; $loc = get_npc_info($who, 'location'); } $near = loc($loc, 'near'); $lc = $near[$stor][0]; if (!$lc) { return 0; } if ($depth == 2) { unset($near); $near = loc($lc, 'near'); } if (!isset($near[$stor][0])) { return 0; } return $near[$stor][0]; }
function teach_magic_from_sc($scroll, $npc, $login) { //$scroll = preg_replace ('/[^a-z0-9_\.]/i', '', $scroll); //$npc = preg_replace ('/[^a-z0-9_\.]/i', '', $npc); //$login = preg_replace ('/[^a-z0-9_]/i', '', $login); $nid = is_npc($npc); $id = is_player($login); // v odnoj li lokacii $q = do_mysql("SELECT location FROM npc WHERE id_npc = '" . $nid . "';"); if (!mysql_num_rows($q)) { return 0; } $loc1 = mysql_result($q, 0); $q = do_mysql("SELECT location FROM players WHERE id_player = '" . $id . "';"); if (!mysql_num_rows($q)) { return 0; } $loc2 = mysql_result($q, 0); if ($loc1 != $loc2) { return 0; } include_once 'modules/f_has_item.php'; if (!has_item($scroll, $login)) { put_g_error('у вас нету свитка!'); } $q = do_mysql("SELECT on_take, price FROM items WHERE fullname = '" . $scroll . "' AND type = 's';"); if (!mysql_num_rows($q)) { return 0; } $spell = mysql_fetch_assoc($q); // neumeet li on uzhe include_once 'modules/f_has_magic.php'; if (has_magic($spell['on_take'], $login)) { put_g_error('вы уже умеете это заклинание!'); } // cenu vyschitaem: $q = do_mysql("SELECT money FROM players WHERE id_player = '" . $id . "';"); $money = mysql_result($q, 0); $cost = $spell['price'] * 10; if ($money < $cost) { put_g_error('нехватает серебра, нужно ' . $cost . ' серебреных!'); } $money -= $cost; // dobavljaem zakl: $q = do_mysql("SELECT magic FROM players WHERE id_player = '" . $id . "';"); $magic = mysql_result($q, 0); if (!$magic) { $magic = $spell['on_take']; } else { $magic .= '|' . $spell['on_take']; } // obnovim dannye: do_mysql("UPDATE players SET magic = '" . $magic . "', money = '" . $money . "' WHERE id_player = '" . $id . "';"); // udaljaem svitok include_once 'modules/f_delete_item.php'; delete_item($scroll); $q = do_mysql("SELECT name FROM magic WHERE fullname = '" . $spell['on_take'] . "';"); $name = mysql_result($q, 0); exit_msg('магия', 'вы выучили заклинание ' . $name . ' за ' . $cost . ' серебреных!'); }
function use_reagents($spell, $login) { //$spell = preg_replace ('/[^a-z0-9_]/i', '', $spell); //$login = preg_replace ('/[^a-z0-9_]/i', '', $login); if (!is_player($login)) { return 0; } // spisok reagentov: $q = do_mysql("SELECT reagents FROM magic WHERE fullname = '" . $spell . "';"); if (!mysql_num_rows($q)) { return 0; } $rea = mysql_result($q, 0); if (!$rea) { return 1; } $rea = explode('|', $rea); // funkcija kotoroj udalim: include_once 'modules/f_decr_abstr_misc.php'; $c = count($rea); for ($i = 0; $i < $c; $i++) { $rea[$i] = explode(':', $rea[$i]); decr_abstr_misc($rea[$i][0], $login, $rea[$i][1]); } return 1; }
function set_w_effects($weapon, $dmg_type, $name) { //$weapon = preg_replace ('/[^a-z0-9_\.]/', '', $weapon); //$name = preg_replace ('/[^a-z0-9_\.]/', '', $name); if (!$weapon) { return 0; } $q = do_mysql("SELECT on_drop FROM items WHERE fullname = '" . $weapon . "';"); if (!mysql_num_rows($q)) { put_error('ner to weapo'); } $effs = mysql_result($q, 0); $effs = explode('|', $effs); $c = count($effs); for ($i = 0; $i < $c; $i++) { if (rand(0, 100) <= 30) { include_once 'modules/f_set_affected.php'; set_affected($name, $effs[$i]); } } // otdelqnyj razgovor s oglusheniem if ($dmg_type == 'drob') { if (rand(0, 100) <= 30) { include_once 'modules/f_set_affected.php'; set_affected($name, 'oglushen'); } } return 1; }
function start_blood($name) { //$name = preg_replace ('/[^a-z0-9_\.]/i', '', $name); $id = is_player($name); if ($id) { $q = do_mysql("SELECT status1 FROM players WHERE id_player = '" . $id . "';"); $st = mysql_result($q, 0); $st[2] = 1; do_mysql("UPDATE players SET status1 = '" . $st . "' WHERE id_player = '" . $id . "';"); // regeneracija sposobna so vremenem pereborotq krovotechenie: $q = do_mysql("SELECT skills, last FROM players WHERE id_player = '" . $id . "';"); $r = mysql_fetch_assoc($q); $r['skills'] = explode('|', $r['skills']); $r['last'] = explode('|', $r['last']); if ($r['skills'][5] > 0) { $time = time(); $plus = 130 - 10 * $r['skills'][5]; if ($plus < 30) { $plus = 30; } $r['last'][5] = $time + $plus; $last = $r['last'][0] . '|' . $r['last'][1] . '|' . $r['last'][2] . '|' . $r['last'][3] . '|' . $r['last'][4] . '|' . $r['last'][5] . '|' . $r['last'][6] . '|' . $r['last'][7] . '|' . $r['last'][8]; do_mysql("UPDATE players SET last = '" . $last . "' WHERE id_player = '" . $id . "';"); } return 1; } // proverjatq na npc nenado set_affected proverit include_once 'modules/f_set_affected.php'; set_affected($name, 'krovotechenie'); return 1; }
function use_mana($spell, $login) { //$spell = preg_replace ('/[^a-z0-9_]/i', '', $spell); //$login = preg_replace ('/[^a-z0-9_]/i', '', $login); $q = do_mysql("SELECT mana FROM magic WHERE fullname = '" . $spell . "';"); if (!mysql_num_rows($q)) { return 0; } $minus = mysql_result($q, 0); $id = is_player($login); $q = do_mysql("SELECT mana FROM players WHERE id_player = '" . $id . "';"); if (!mysql_num_rows($q)) { return 0; } $mana = mysql_result($q, 0); $mana = explode('|', $mana); $mana[0] -= $minus; if ($mana[0] < 0) { return 0; } // many nehvatilo. $nmana = $mana[0] . '|' . $mana[1]; do_mysql("UPDATE players SET mana = '" . $nmana . "' WHERE id_player = '" . $id . "';"); return 1; }
function add_b_journal($what) { return 1; global $p; global $LOGIN; $what = strip_tags(mysql_real_escape_string(trim($what))); // dlja togo, chtob i avtoru dobavili, (sohranen takoj in_battle nebudet) $c = count($p['in_battle']); for ($i = 0; $i < $c; $i++) { if (!$p['in_battle'][$i]) { continue; } if (substr($p['in_battle'][$i], 0, 2) == 'n.') { continue; } // ostaetsja igrok, emu dobavim $q = do_mysql("SELECT journal FROM players WHERE login = '******'in_battle'][$i] . "';"); $j = mysql_result($q, 0); $j .= '<br/>' . $what; do_mysql("UPDATE players SET journal = '" . $j . "' WHERE login = '******'in_battle'][$i] . "';"); } $q = do_mysql("SELECT journal FROM players WHERE id_player = '" . $p['id_player'] . "' AND in_battle > 0;"); $j = mysql_fetch_assoc($q); if ($j['journal']) { $j['journal'] .= $what . '<br/>'; do_mysql("UPDATE players SET journal = '" . $j['journal'] . "' WHERE id_player = '" . $p['id_player'] . "';"); } }
function healer_stop_b($healer, $patient, $cost) { //$healer = preg_replace ('/[^a-z0-9_\.]/i', '', $healer); //$patient = preg_replace ('/[^a-z0-9_]/i', '', $patient); $cost = preg_replace('/[^0-9]/', '', $cost); $id = is_player($patient); $nid = is_npc($healer); $q = do_mysql("SELECT location, money, status1 FROM players WHERE id_player = '" . $id . "';"); $p = mysql_fetch_assoc($q); $q = do_mysql("SELECT location FROM npc WHERE id_npc = '" . $nid . "';"); $loc = mysql_result($q, 0); if ($p['location'] != $loc) { return 0; } if (!$p['status1'][2] && !$p['status1'][3] && !$p['status1'][4]) { exit_msg('целительство', 'вы итак полностью здоровы!'); } $price = $cost; if ($p['money'] < $price) { exit_msg('целительство', 'у вас нехватает денег, надо ' . $price . ' серебра!'); } $p['money'] -= $price; $p['status1'][2] = 0; $p['status1'][3] = 0; $p['status1'][4] = 0; do_mysql("UPDATE players SET money = '" . $p['money'] . "', status1 = '" . $p['status1'] . "' WHERE id_player = '" . $id . "';"); exit_msg('целительство', 'вaши раны залечены! цена: ' . $price . ' серебра.'); }
function decr_abstr_misc($prot, $who, $count, $other = 0) { //$prot = preg_replace ('/[^a-z0-9_\.]/i', '', $prot); $count = preg_replace('/[^0-9]/', '', $count); //$who = preg_replace ('/[^a-z0-9_]/i', '', $who); if (!is_player($who)) { return 0; } if ($count < 1) { return 0; } $q = do_mysql("SELECT on_take FROM items WHERE belongs = '" . $who . "' AND is_in = 'inv' AND realname = '" . $prot . "' AND type = 'm';"); if (!mysql_num_rows($q)) { return 0; } $ci = mysql_result($q, 0); if ($ci < $count) { return 0; } $ci -= $count; if ($ci) { do_mysql("UPDATE items SET on_take = '" . $ci . "' WHERE belongs = '" . $who . "' AND is_in = 'inv' AND realname = '" . $prot . "';"); } else { include_once 'modules/f_delete_item.php'; $q = do_mysql("SELECT fullname FROM items WHERE belongs = '" . $who . "' AND is_in = 'inv' AND realname = '" . $prot . "' AND type = 'm';"); $item = mysql_result($q, 0); delete_item($item); } return 1; }
function heal($healer, $patient, $cost) { //$healer = preg_replace ('/[^a-z0-9_\.]/i', '', $healer); //$patient = preg_replace ('/[^a-z0-9_]/i', '', $patient); $cost = preg_replace('/[^0-9]/', '', $cost); $id = is_player($patient); $nid = is_npc($healer); $q = do_mysql("SELECT location, money, life, status1 FROM players WHERE id_player = '" . $id . "';"); $p = mysql_fetch_assoc($q); $q = do_mysql("SELECT location FROM npc WHERE id_npc = '" . $nid . "';"); $loc = mysql_result($q, 0); if ($p['location'] != $loc) { return 0; } $p['life'] = explode('|', $p['life']); if ($p['life'][0] == $p['life'][1]) { exit_msg('целительство', 'вы итак полностью здоровы!'); } $price = ceil(($p['life'][1] - $p['life'][0]) / 100) * $cost; if ($p['money'] < $price) { exit_msg('целительство', 'у вас нехватает денег, надо ' . $price . ' серебра!'); } $p['money'] -= $price; $nlife = $p['life'][1] . '|' . $p['life'][1]; $p['status1'][2] = 0; $p['status1'][3] = 0; $p['status1'][4] = 0; do_mysql("UPDATE players SET money = '" . $p['money'] . "', life = '" . $nlife . "', status1 = '" . $p['status1'] . "' WHERE id_player = '" . $id . "';"); exit_msg('целительство', 'вы выздоровили! цена: ' . $price . ' серебра.'); }
function check_reagents($spell, $login) { //$spell = preg_replace ('/[^a-z0-9_]/i', '', $spell); //$login = preg_replace ('/[^a-z0-9_]/i', '', $login); if (!is_player($login)) { return 0; } // spisok reagentov: $q = do_mysql("SELECT reagents FROM magic WHERE fullname = '" . $spell . "';"); if (!mysql_num_rows($q)) { return 0; } $rea = mysql_result($q, 0); if (!$rea) { return 1; } $rea = explode('|', $rea); // funkcija kotoroj proverim: include_once 'modules/f_has_misc_count.php'; $c = count($rea); $has = 1; for ($i = 0; $i < $c; $i++) { $rea[$i] = explode(':', $rea[$i]); // esli menqshe - 0 if (has_misc_count($rea[$i][0], $rea[$i][1], $login) < 1) { $has = 0; } } return $has; }
function damage_armor($login, $shield = 0) { do_mysql("UPDATE items SET str = str - 1 WHERE belongs = '" . $login . "' AND is_in LIKE 'a%' AND str > 0;"); if ($shield) { do_mysql("UPDATE items SET str = str - 1 WHERE belongs = '" . $login . "' AND is_in = 'shi' AND str > 0;"); } }
function get_affected($name) { //$name = preg_replace ('/[^a-z\._0-9]/i', '', $name); // pokachto tolqko chelam: $id = is_player($name); if ($id) { $q = do_mysql("SELECT affected FROM players WHERE id_player = '" . $id . "';"); $a = mysql_result($q, 0); } else { $id = is_npc($name); if (!$id) { return 0; } $q = do_mysql("SELECT affected FROM npc WHERE id_npc = '" . $id . "';"); if (!mysql_num_rows($q)) { return 0; } $a = mysql_result($q, 0); } if (!$a) { return 0; } $a = explode('|', $a); $c = count($a); for ($i = 0; $i < $c; $i++) { $a[$i] = explode(':', $a[$i]); $arr[] = $a[$i][0]; } return $arr; }
function is_inloc($login, $who) { //$login = mysql_real_escape_string ($login); //$who = mysql_real_escape_string ($who); // lokacija igroka $id = is_player($login); if ($id) { $q = do_mysql("SELECT location FROM players WHERE id_player = '" . $id . "';"); } else { $q = do_mysql("SELECT location FROM npc WHERE id_npc = '" . is_npc($login) . "';"); } if (!mysql_num_rows($q)) { return 0; } $loc = mysql_result($q, 0); $id = is_player($who); if ($id) { $q = do_mysql("SELECT location FROM players WHERE id_player = '" . $id . "';"); } else { $q = do_mysql("SELECT location FROM npc WHERE id_npc = '" . is_npc($who) . "';"); } if (!mysql_num_rows($q)) { return 0; } $loc2 = mysql_result($q, 0); if ($loc == $loc2) { return 1; } return 0; }
function crit($login) { //$login = preg_replace ('/[^a-z-0-9_\.]/i', '', $login); $id = is_player($login); if (!$id) { include_once 'modules/f_get_npc_info.php'; $life = get_npc_info($login, 'life'); $life = explode('|', $life); $cr = round(100 - $life[0] / $life[1] * 100); if (rand(0, 100) <= $cr) { return 2; } else { return 1; } } $p = do_mysql("SELECT life, skills FROM players WHERE id_player = '" . $id . "';"); $p = mysql_fetch_assoc($p); $p['skills'] = explode('|', $p['skills']); $p['life'] = explode('|', $p['life']); $cr = round(100 - $p['life'][0] / $p['life'][1] * 100 + $p['skills'][0]); include_once 'modules/f_get_affected.php'; $aff = get_affected($login); if (is_in('ispugan', $aff)) { return 1; } if (rand(0, 100) <= $cr) { return 2; } else { return 1; } }
function upd_last_cast($pl, $spell) { //$pl = preg_replace ('/[^a-z0-9_]/i', '', $pl); //$spell = preg_replace ('/[^a-z0-9_]/i', '', $spell); $now = time(); $id = is_player($pl); if (!$id) { put_error('npc cant cast spell'); } $q = do_mysql("SELECT last FROM players WHERE id_player = '" . $id . "';"); $last = mysql_result($q, 0); $last = explode('|', $last); // vremja zaklinanija: $q = do_mysql("SELECT timewait FROM magic WHERE fullname = '" . $spell . "';"); if (!mysql_num_rows($q)) { put_error('there are no such spell: ' . $spell . ''); } $tw = mysql_result($q, 0); $last[3] = $now + $tw; // obrabotka effektami: #include_once ('modules/f_get_affected.php'); // effecty: #$aff = get_affected ($LOGIN); // primer: if (is_in ('oglushen', $aff)) $last[3] += 10; $nlast = $last[0] . '|' . $last[1] . '|' . $last[2] . '|' . $last[3] . '|' . $last[4] . '|' . $last[5] . '|' . $last[6] . '|' . $last[7] . '|' . $last[8]; do_mysql("UPDATE players SET last = '" . $nlast . "' WHERE id_player = '" . $id . "';"); return 1; }
function get_it_info($item) { //$item = preg_replace ('/[^a-z0-9\._]/i', '', $item); $q = do_mysql("SELECT * FROM items WHERE fullname = '" . $item . "';"); $nit = mysql_fetch_assoc($q); return $nit; }
function rem_sc_from_book($spell, $book, $login) { // v has_item proveritsja //$spell = preg_replace ('/[^a-z0-9_\.]/i', '', $spell); //$book = preg_replace ('/[^a-z0-9_\.]/i', '', $book); //$login = preg_replace ('/[^a-z0-9_]/i', '', $login); include_once 'modules/f_has_item.php'; if (!has_item($book, $login)) { put_g_error('у вас нету книги'); } // zapros na magiju chto v knige: $q = do_mysql("SELECT on_take FROM items WHERE fullname = '" . $book . "' AND type = 'b';"); if (!mysql_num_rows($q)) { return 0; } $magic = mysql_result($q, 0); if (strpos($magic, $spell) === false) { put_g_error('в этой книге нету этого заклинания!'); } // esli prodolzhaetsja skript, znachit magija estq, izvlekem ee (snachala udalim, togda bagov skryvatq nebvudut:) $magic = string_drop($magic, $spell); // terq sozdadim: //include_once ('modules/f_create_item.php'); $q = do_mysql("SELECT type FROM magic WHERE fullname = '" . $spell . "';"); if (!mysql_num_rows($q)) { put_error('netu takogo zaklinanija'); } $tp = mysql_result($q, 0); //#####$scroll = create_item ('i.s.'.$tp.'.'.$spell); include_once 'modules/f_gain_item.php'; gain_item('i.s.' . $tp . '.' . $spell, 1, $login); // obnovim knigu i vse: do_mysql("UPDATE items SET on_take = '" . $magic . "' WHERE fullname = '" . $book . "';"); return 1; }
function get_weight($item) { # do_mysql(); //$item = preg_replace ('/[^a-z0-9_\.]/i', '', $item); $a = do_mysql("SELECT weight FROM items WHERE fullname = '" . $item . "';"); $w = mysql_result($a, 0); return $w; }
function damage_weapons($login) { do_mysql("UPDATE items SET str = str - 1 WHERE belongs = '" . $login . "' AND is_in = 'wea' AND str > 0;"); $q = do_mysql("SELECT fullname, str FROM items WHERE belongs = '" . $login . "' AND is_in = 'shi' AND type = 'w' AND str > 0;"); if (mysql_num_rows($q)) { $it = mysql_fetch_assoc($q); do_mysql("UPDATE items SET str = str - 1 WHERE fullname = '" . $it['fullname'] . "';"); } }
function next_q() { global $p; do_mysql("UPDATE players SET qlvl = qlvl + 1 WHERE id_player = '" . $p['id_player'] . "';"); $q = do_mysql("SELECT qlvl FROM players WHERE id_player = '" . $p['id_player'] . "';"); $qlvl = mysql_result($q, 0); // podkljuchaem fail novogo kvesta : include 'modules/mainq/q_' . $qlvl . '.php'; }
function learn_skill($skill, $price) { global $p; global $sid; $skill = preg_replace('/[^0-9]/', '', $skill); $price = preg_replace('/[^0-9]/', '', $price); if ($skill === false) { put_error('неуказан навык'); } if ($price === false) { put_error('неуказанa цена'); } if (!isset($p['skills'][$skill])) { put_error('такого навыка нету'); } if ($p['skills'][$skill]) { put_g_error('вы уже имеете этот навык!'); } $mage = array(22, 23, 24, 25, 26, 27, 28, 29, 30); $warrior = array(7, 8, 9, 10, 41); $ranger = array(11, 12); // proverka na klassy: if ($p['classof'] != 3 && in_array($skill, $mage)) { put_g_error('только для магов!'); } if ($p['classof'] != 1 && in_array($skill, $warrior)) { put_g_error('только для воина!'); } if ($p['classof'] != 2 && in_array($skill, $ranger)) { put_g_error('только для лучников!'); } if ($p['money'] < $price) { put_g_error('у вас нехватает серебра - надо ' . $price . ' монет!'); } if (!$p['stats'][3]) { put_g_error('у вас нету очка навыка!'); } // nelzja vychitq vtoroj navyk iz serii parirovanie - dvuruchnoe - dva if (($p['skills'][18] || $p['skills'][40] || $p['skills'][41]) && ($skill == 18 || $skill == 40 || $skill == 41)) { put_g_error('нелзя выучить два навыка из серии двуручное - два - парирование. Либо щит, либо двуручное, либо два.'); } // esli vsju proverku proshli, podnimem i zabudem $p['skills'][$skill] = 1; $p['stats'][3] -= 1; $skills = implode('|', $p['skills']); $stats = implode('|', $p['stats']); $p['money'] -= $price; do_mysql("UPDATE players SET skills = '" . $skills . "', stats = '" . $stats . "', money = '" . $p['money'] . "' WHERE id_player = '" . $p['id_player'] . "';"); $f = gen_header('навыки'); $f .= '<div class="y" id="sodhg"><b>навыки:</b></div><p>'; include 'modules/sp/sp_skillnames.php'; $f .= 'вы выучили ' . $skn[$skill] . '!<br/>'; $f .= '<a class="blue" href="game.php?sid=' . $sid . '">в игру</a></p>'; $f .= gen_footer(); exit($f); }
function check_pl_exp($login) { //$login = preg_replace ('/[^a-z0-9_]/i', '', $login); $id = is_player($login); if (!$id) { return 0; } $q = do_mysql("SELECT stats FROM players WHERE id_player = '" . $id . "';"); $stats = mysql_result($q, 0); $stats = explode('|', $stats); if ($stats[1] >= $stats[2]) { $q = do_mysql("SELECT skills, rase FROM players WHERE id_player = '" . $id . "';"); $sk = mysql_fetch_assoc($q); $sk['skills'] = explode('|', $sk['skills']); switch ($sk['rase']) { case 1: $sk['skills'][0] += 1; $sk['skills'][2] += 1; break; case 2: $sk['skills'][1] += 1; $sk['skills'][3] += 1; break; case 3: $sk['skills'][0] += 1; $sk['skills'][3] += 1; break; } $sk['skills'] = implode('|', $sk['skills']); if (substr($sk['skills'], 0, 1) == '|') { $sk['skills'] = substr($sk['skills'], 1); } $stats[0] += 1; if ($stats[0] <= 12 || $stats[0] % 10 == 0) { $stats[3] += 1; } $stats[1] -= $stats[2]; $stats[2] = 600 * $stats[0] * $stats[0] + 1000 * $stats[0]; $nstats = $stats[0] . '|' . $stats[1] . '|' . $stats[2] . '|' . $stats[3] . '|' . $stats[4] . '|' . $stats[5] . '|' . $stats[6] . '|' . $stats[7]; do_mysql("UPDATE players SET stats = '" . $nstats . "', skills = '" . $sk['skills'] . "' WHERE id_player = '" . $id . "';"); add_journal('новый уровень: ' . $stats[0] . '!', $login); add_journal('вы получили очко навыка!', $login); } if ($stats[4] >= $stats[5]) { // poluchitq ochko opyta: $stats[6] += 1; $stats[4] -= $stats[5]; $stats[7] += 1; $stats[5] = round((600 * $stats[0] * $stats[0] + 1000 * $stats[0]) / 9); $nstats = $stats[0] . '|' . $stats[1] . '|' . $stats[2] . '|' . $stats[3] . '|' . $stats[4] . '|' . $stats[5] . '|' . $stats[6] . '|' . $stats[7]; do_mysql("UPDATE players SET stats = '" . $nstats . "' WHERE id_player = '" . $id . "';"); add_journal('вы получили очко опыта!', $login); } return 1; }
function get_it_name($item) { # do_mysql(); //$item = preg_replace ('/[^a-z0-9\._]/i', '', $item); $a = do_mysql("SELECT name, on_drop FROM items WHERE fullname = '" . $item . "';"); $w = mysql_fetch_assoc($a); if (substr($item, 4, 3) == 'tra') { return $w['on_drop']; } return $w['name']; }
function has_npc_quest($npc) { $id = is_npc($npc); $q = do_mysql("SELECT quest FROM npc WHERE id_npc = '" . $id . "';"); $quest = mysql_result($q, 0); if ($quest) { return 1; } else { return 0; } }
function end_battle($who) { $id = is_player($who); if ($id) { do_mysql("UPDATE players SET in_battle = '0' WHERE id_player = '" . $id . "';"); } else { $id = is_npc($who); do_mysql("UPDATE npc SET in_battle = '0' WHERE id_npc = '" . $id . "';"); } return 1; }
function gen_quest($location) { //echo 'starts'; // kolichestvo kvestov v odnom regione max; $qcount = 1; // region $reg = substr($location, 0, 4); // kolichestvo zanjatyh kvestov: $q = do_mysql("SELECT COUNT(*) FROM quests WHERE npc <> '' AND region = '" . $reg . "';"); $qc_on = mysql_result($q, 0); //echo '<br/>'.$qc_on.'<br/>'; // esli dostatochno to dalqshe proverjatq nebudem: if ($qcount <= $qc_on) { return 1; } // dalee esli menqshe to berem kolichestvo svobodnyh: $q = do_mysql("SELECT COUNT(*) FROM quests WHERE npc = '' AND region = '" . $reg . "';"); $qc_off = mysql_result($q, 0); //echo '<br/>'.$qc_off.'<br/>'; // esli takih net to bolqshe niche delatq nebudem if ($qc_off == 0) { return 1; } // zapros, estq li svobodnye npc v regione: $q = do_mysql("SELECT COUNT(*) FROM npc WHERE quest = '' AND map = '" . $reg . "' AND type = 's';"); $cnpc = mysql_result($q, 0); //echo '<br/>'.$cnpc.'<br/>'; if ($cnpc == 0) { return 1; } // dalee u nas zapros na vse svobodnye kvesty - $q = do_mysql("SELECT * FROM quests WHERE npc = '' AND region = '" . $reg . "';"); $qst = ''; while ($qst1 = mysql_fetch_assoc($q)) { $qst[] = $qst1; } $rnd = array_rand($qst); // zapros na svobodnogo npc $q = do_mysql("SELECT realname FROM npc WHERE type = 's' AND quest = '' AND map = '" . $reg . "' AND realname <> 'n.s.relen_vernol';"); $npc = ''; while ($r = mysql_fetch_assoc($q)) { $npc[] = $r; } //print_r ($npc); $rnd_npc = array_rand($npc); // opredelennomu kvestu opredelennyj npc: do_mysql("UPDATE quests SET npc = '" . $npc[$rnd_npc]['realname'] . "' WHERE id_quest = '" . $qst[$rnd]['id_quest'] . "';"); // opredelennomu npc opredelennyj kvest: do_mysql("UPDATE npc SET quest = '" . $qst[$rnd]['questname'] . "' WHERE realname = '" . $npc[$rnd_npc]['realname'] . "';"); // use, return 1; //echo 'ends'; return 1; }
function get_dead_info($dead) { //$dead = preg_replace ('/[^a-z0-9\.]/i', '', $dead); if (substr($dead, 0, 2) != 'd.') { put_error('это не труп'); } $q = do_mysql("SELECT * FROM dead WHERE fullname = '" . $dead . "';"); $d = mysql_fetch_assoc($q); $d['l_hunt'] = $d['hunt']; $d['hunt'] = explode('|', $d['hunt']); return $d; }