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 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 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 add_sc_to_book($scroll, $book, $login) { // v has_item proveritsja //$scroll = preg_replace ('/[^a-z0-9_\.]/i', '', $scroll); //$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($scroll, $login)) { put_g_error('у вас нету свитка'); } if (!has_item($book, $login)) { put_g_error('у вас нету книги'); } // tolqko esli estq navyk: $q = do_mysql("SELECT skills FROM players WHERE login = '******';"); $skills = mysql_result($q, 0); $skills = explode('|', $skills); if (!$skills[30]) { put_g_error('у вас нету навыка'); } // dobavim: $q = do_mysql("SELECT on_take FROM items WHERE fullname = '" . $book . "' AND type = 'b';"); if (!mysql_num_rows($q)) { return 0; } $mlist = mysql_result($q, 0); $q = do_mysql("SELECT on_take FROM items WHERE type = 's' AND fullname = '" . $scroll . "';"); if (!mysql_num_rows($q)) { return 0; } $spell = mysql_result($q, 0); if (strpos($mlist, $spell) !== false) { put_g_error('в этой книге уже есть это заклинание!'); } if ($mlist) { $mlist .= '~' . $spell; } else { $mlist = $spell; } do_mysql("UPDATE items SET on_take = '" . $mlist . "' WHERE fullname = '" . $book . "';"); // udalim svitok: include_once 'modules/f_delete_item.php'; delete_item($scroll); return 1; }
function mag_summon($spell, $login) { //$spell = preg_replace ('/[^a-z0-9_]/i', '', $spell); //$login = preg_replace ('/[^a-z0-9_]/i', '', $login); $id = is_player($login); $q = do_mysql("SELECT cname FROM magic WHERE fullname = '" . $spell . "';"); if (!mysql_num_rows($q)) { return 0; } $fullname = mysql_result($q, 0); if (!$fullname) { return 0; } // zapros na lokaciju igroka i kolichestvo priruchennyh zhivotnyh $q = do_mysql("SELECT location FROM players WHERE id_player = '" . $id . "';"); if (!mysql_num_rows($q)) { return 0; } $loc = mysql_result($q, 0); $q = do_mysql("SELECT COUNT(*) FROM npc WHERE belongs = '" . $login . "';"); $c = mysql_result($q, 0); if ($c > 0) { put_g_error('у вас уже есть нпц, принадлежащие вам'); } // sozdaem npc: include_once 'modules/f_create_npc.php'; $npc = create_npc($fullname, substr($loc, 0, 4), $loc); $nid = is_npc($npc); // izmenim imja: $q = do_mysql("SELECT name FROM npc WHERE id_npc = '" . $nid . "';"); $name = mysql_result($q, 0); $nname = 'призванный ' . $name; $fullname = $npc . '.' . $login; // ataka: $q = do_mysql("SELECT in_battle FROM players WHERE id_player = '" . $id . "';"); $inb = mysql_result($q, 0); do_mysql("UPDATE npc SET fullname = '" . $fullname . "', name = '" . $nname . "', belongs = '" . $login . "', move = '30', in_battle = '" . $inb . "', type = 'a' WHERE id_npc = '" . $nid . "';"); $q = do_mysql("SELECT name FROM players WHERE id_player = '" . $id . "';"); $pn = mysql_result($q, 0); add_journal($pn . ': призвал ' . $name . '!', 'l.' . $loc); return 1; }
function add_item_to_pl($pl, $item) { //$item = preg_replace ('/[^a-z\._0-9]/i', '', $item); //$pl = preg_replace ('/[^a-z\._0-9]/i', '', $pl); $t = substr($item, 2, 1); if ($t == 'o' || $t == 'l') { put_error('ne te veshi, pane!'); } //require_once ("modules/f_get_weight.php"); // kolichestvo: $q = do_mysql("SELECT COUNT(*) FROM items WHERE belongs = '" . $pl . "' AND is_in = 'inv' AND weight > 0;"); $c = mysql_result($q, 0); global $I_SEP_C; if ($c > $I_SEP_C) { put_g_error('в рюгзаке нехватает места'); } // add_journal ('[green]'.$item.' to '.$pl.'[/end]', 'maxx'); do_mysql("UPDATE items SET belongs = '" . $pl . "', location = '0', map = '', is_in = 'inv' WHERE fullname = '" . $item . "';"); return 1; }
function check_in_has($item) { global $LOGIN; global $p; if (strpos($item, '|')) { $has = -1; $item = explode('|', $item); $c = count($item); for ($i = 0; $i < $c; $i++) { if (has_count($item[$i], 1, $LOGIN)) { $has = $i; } } if ($has == -1) { put_g_error('нехватает ингридиентов'); } //for ($i = 0; $i < $c; $i++) //{ $t = substr($item[$has], 8, 1); if ($t == 1 && $p['skills'][32] < 1 || $t == '2' && $p['skills'][32] < 5 || $t == '3' && $p['skills'][32] < 10 || $t == 4 && $p['skills'][32] < 15) { put_g_error('нехватает навыка пользоватся вешью'); } if ($t > 0 && $t < 5) { $qp += $t; } //} } else { $t = substr($item, 8, 1); if ($t == 1 && $p['skills'][32] < 1 || $t == '2' && $p['skills'][32] < 5 || $t == '3' && $p['skills'][32] < 10 || $t == 4 && $p['skills'][32] < 15) { put_g_error('нехватает навыка пользоватся вешью'); } if ($t > 0 && $t < 5) { $qp += $t; } if (!has_count($item, 1, $LOGIN)) { put_g_error('нехватает ингридиентов'); } } return 1; }
function check_in_has($item) { global $LOGIN; if (strpos($item, '|')) { $has = 0; $item = explode('|', $item); $c = count($item); for ($i = 0; $i < $c; $i++) { if (has_count($item[$i], 1, $LOGIN)) { $has = 1; } } if (!$has) { put_g_error('нехватает ингридиентов'); } } else { if (!has_count($item, 1, $LOGIN)) { put_g_error('нехватает ингридиентов'); } } return 1; }
function repair_item($item, $login, $self = 0) { include_once 'modules/f_get_max_str.php'; $strm = get_max_str($item); if (!$strm) { $strm = 1; } $q = do_mysql("SELECT str, price FROM items WHERE fullname = '" . $item . "' AND belongs = '" . $login . "';"); if (!mysql_num_rows($q)) { put_error('нема вещи ' . $item); } $i = mysql_fetch_assoc($q); if (!$self) { $id = is_player($login); $q = do_mysql("SELECT money FROM players WHERE id_player = '" . $id . "'"); $money = mysql_result($q, 0); if (!$i['str']) { $i['str'] = 1; } $cost = round($i['price'] * $i['str'] / $strm); if ($money < $cost) { put_g_error('нехватает серебра, надо ' . $cost); } $money -= $cost; do_mysql("UPDATE players SET money = '" . $money . "' WHERE id_player = '" . $id . "';"); } else { // chinim samostojatelqno, self navyk $cost = $self * 20; $i['str'] += $cost; if ($i['str'] < $strm) { $strm = $i['str']; } } do_mysql("UPDATE items SET str = '" . $strm . "' WHERE fullname = '" . $item . "';"); return $cost; }
function drop_item($item, $login) { //$item = preg_replace ('/[^a-z0-9\._]/i', '', $item); //$login = mysql_real_escape_string ($login); $id = is_player($login); $q = do_mysql("SELECT name FROM items WHERE belongs = '" . $login . "' AND is_in <> 'ban' AND fullname = '" . $item . "';"); if (!mysql_num_rows($q)) { put_g_error('у вас нету этой вещи'); } $name = mysql_result($q, 0); // raz vse estq, vykinem v lokaciju. $q = do_mysql("SELECT location FROM players WHERE id_player = '" . $id . "';"); $loc = mysql_result($q, 0); include_once 'modules/f_add_item_to_loc.php'; add_item_to_loc($loc, $item); $q = do_mysql("SELECT gender, name FROM players WHERE id_player = '" . $id . "';"); $p = mysql_fetch_assoc($q); if ($p['gender'] == 'male') { $text = $p['name'] . ' 6poccul'; } else { $text = $p['name'] . ' 6poccula'; } add_journal($text . ' ' . $name . '!', 'l.' . $loc); }
function mag_decl_attack($who, $to) { // po idee magiej npc napadatq nebudut, no na vsjakij pozharnyj i tak puwu: //$who = preg_replace ('/[^a-z0-9_\.]/i', '', $who); //$to = preg_replace ('/[^a-z0-9_\.]/i', '', $to); if ($to == $who) { put_g_error('на себя напасть нелзя!'); } $id = is_player($who); $n = 0; if ($id) { $q = do_mysql("SELECT in_battle, status1, location, last FROM players WHERE id_player = '" . $id . "';"); } else { $id = is_npc($who); $n = 1; $q = do_mysql("SELECT in_battle, location FROM npc WHERE id_npc = '" . $id . "';"); } $w_inf = mysql_fetch_assoc($q); $tid = is_player($to); $tn = 0; if ($tid) { $q = do_mysql("SELECT in_battle, status1, location FROM players WHERE id_player = '" . $tid . "';"); } else { $tid = is_npc($to); $tn = 1; $q = do_mysql("SELECT in_battle, location FROM npc WHERE id_npc = '" . $tid . "';"); } $t_inf = mysql_fetch_assoc($q); if ($w_inf['location'] != $t_inf['location']) { return 0; } // celq nedostezhima include_once 'modules/f_attack.php'; attack($who, $to); return 1; }
function go_to_loc($who, $loc_go, $stor, $ok = 0) { # get_pl_info(), do_mysql();, get_npc_info();, loc();, put_error();, delete_from_loc();, add_to_loc();, addjournal(); require_once 'modules/f_get_pl_info.php'; require_once 'modules/f_get_npc_info.php'; require_once 'modules/f_loc.php'; require_once 'modules/f_add_to_loc.php'; // proverka dannyh // $who = preg_replace ('/[^a-z\._0-9]/i', '', $who); if (!$ok) { $loc_go = preg_replace('/[^a-z0-9\\|]/', '', $loc_go); $stor = preg_replace('/[^a-z0-9]/i', '', $stor); } // $stor - eto storona. dlja massiva // lokacija if (substr($who, 0, 2) == 'p.') { // login $login = substr($who, 2); $who = $login; $id = is_player($login); $lq = do_mysql("SELECT location FROM players WHERE id_player = '" . $id . "';"); $loc = mysql_result($lq, 0); $lq = do_mysql("SELECT name FROM players WHERE id_player = '" . $id . "';"); $name = mysql_result($lq, 0); //$loc = get_pl_info ($login, 'location'); $qg = do_mysql("SELECT gender FROM players WHERE id_player = '" . $id . "';"); $gender = mysql_result($qg, 0); $qg = do_mysql("SELECT walking FROM players WHERE id_player = '" . $id . "';"); $w = mysql_result($qg, 0); if ($w > 0) { $CAN_JUMP = 1; } $qg = do_mysql("SELECT carry FROM players WHERE id_player = '" . $id . "';"); $carry = mysql_result($qg, 0); include_once 'modules/f_get_pl_weight.php'; if ($carry < get_pl_weight($login)) { put_g_error('вы перегруженны'); } $n = 0; $who = $login; // proverka na boj - $q = do_mysql("SELECT in_battle FROM players WHERE id_player = '" . $id . "';"); $inb = mysql_result($q, 0); $type = 'a'; } if (substr($who, 0, 2) == 'n.') { $loc = get_npc_info($who, 'location'); $id = is_npc($who); // adding npc to move log - global $NPC_MOVED; $NPC_MOVED[$id] = 1; $alo = do_mysql("SELECT name FROM npc WHERE id_npc = '" . $id . "';"); $login = mysql_result($alo, 0); $name = $login; $alo = do_mysql("SELECT type FROM npc WHERE id_npc = '" . $id . "';"); $type = mysql_result($alo, 0); $n = 1; $inb = 0; } # vozmozhny dva puti - na druguju kartu ili prosto na druguju lokaciju # na druguju kartu ne storony, potomu prosto stor = 'nmap'; # na druguju lokaciju - togda cherez near // ESLI NA DRUGUJU KARU $show_info = 0; if (substr($loc, 0, 4) != substr($loc_go, 0, 4)) { global $NEWMAP; $NEWMAP = 1; // a eshe ustanovim flag show_info, po kotoromu potom opredelim, nado li pokazatq vstupitelqnyj tekst k loakacci $show_info = 1; // zlye npc nemogut idti v goroda if ($type == 'x') { $toloc = substr($loc_go, 0, 4); if ($toloc == 'rele' || $toloc == 'elfc' || $toloc == 'verg') { return 0; } } } $li = ''; // voobshem eto tazhe lokacija include_once 'modules/f_can_u_reach.php'; $depth = 1; if (isset($_GET['jump']) && isset($CAN_JUMP)) { $depth = 2; } // esli v okruzhnoj lokacii netu takoj loki v takuju storonu, to idti nelzja if (!can_u_reach($who, $loc_go, $stor, $depth)) { //put_error ('<p>извините, но в указаном направлении такой локации нет</p>'); return 0; } if ($depth == 2) { // get loc v can u reach $ll = get_loc($who, $stor, 1); add_journal($name . ' пронесся мимо!', 'l.' . $ll); } // est9q li loka na kotoruju idut? ////////////////////////////// // pitomec $an = do_mysql("SELECT name, fullname FROM npc WHERE belongs = '" . $who . "' AND location = '" . $loc . "' AND move <> 0;"); $an = mysql_fetch_assoc($an); if ($an['fullname']) { $pit = ' и ' . $an['name'] . ' '; add_to_loc($loc_go, $an['fullname']); } else { $pit = ''; } if (substr($who, 0, 2) == 'n.') { $map = substr($loc_go, 0, 4); do_mysql("UPDATE npc SET location = '" . $loc_go . "', map = '" . $map . "' WHERE id_npc = '" . $id . "';"); } else { do_mysql("UPDATE players SET location = '" . $loc_go . "' WHERE id_player = '" . $id . "';"); } $loc2 = 'l.' . $loc; // pogonja if ($inb && substr($loc_go, 0, 4) != 'rele' && substr($loc_go, 0, 4) != 'elfc' && substr($loc_go, 0, 4) != 'verg') { $tinb = 0; if ($inb == 1) { $tinb = 2; } else { $tinb = 1; } $q = do_mysql("SELECT fullname FROM npc WHERE location = '" . $loc . "' AND in_battle = '" . $tinb . "';"); while ($nt = mysql_fetch_assoc($q)) { go_to_loc($nt['fullname'], $loc_go, $stor, 1); } } // formiruem soobshenie. $pere = ''; if (isset($near)) { $pere = $near[$stor][2]; } if ($li) { $pere = $li[2]; } if ($pit) { $gone = 'ушли'; $come = 'пришли'; } else { if (!isset($gender)) { // dlja npc, esliimja konchaetsja na 'a', to skorej vsego devushka $len = strlen($login); $len2 = $len - 1; if (substr($login, $len2) == 'а') { $gone = 'ушла'; $come = 'пришла'; } else { $gone = 'ушел'; $come = 'пришел'; } } else { if ($gender == 'male') { $gone = 'ушел'; $come = 'пришел'; } if ($gender == 'female') { $gone = 'ушла'; $come = 'пришла'; } } } // proverim $n, esli 1 to eto npc i nado vsem pisatq, esli net to perehodjashemu ne nado if ($n) { $need = 1; } else { $need = 0; } // v byvshuju lokaciju add_journal('<b>' . $name . '' . $pit . ' ' . $gone . ' ' . $pere . '</b>', 'l.' . $loc, $need); // v novuju add_journal('<b>' . $come . ' ' . $name . '' . $pit . '</b>', 'l.' . $loc_go, $need); //echo '<br/>show info = '.$show_info.'<br/>'; //echo 'n = '.$n.'<br/>'; //echo 'settings 4 = '.$p['settings'][4].'<br/>'; // takzhe, esli showinfo = 1, perehodjashemu chelu pokazatq info toj karty if ($show_info && !$n) { global $p; if ($p['settings'][4] == 1) { $lg = loc($loc_go, 'locinfo'); // kartinki v locpics/(nazvanie karty).jpg $map = substr($loc_go, 0, 4); //$mapi = gen_header ($lg[1]); $mapi = ''; //$mapi .= '<div class="y" id="adg"><b>'.$lg[1].'</div>'; if (file_exists('modules/locpics/' . $map . '.JPEG')) { $mapi .= '<p><img src="modules/locpics/' . $map . '.JPEG" alt="."/></p>'; } // teperq infa // '/mapinfo/'.$map.'.mapi' if (file_exists('modules/mapinfo/' . $map . '.txt')) { $mapi .= '<p>'; $mapi .= file_get_contents('modules/mapinfo/' . $map . '.txt'); $mapi .= '</p>'; } else { $mapi .= '<p>нет информации</p>'; } //global $sid; //$mapi .= '<p><a class="blue" href="game.php?sid='.$sid.'">в игру</a></p>'; //$mapi .= gen_footer(); add_journal($mapi, $p['login']); } } }
break; case 'tre': $numb = 15; break; } if ($p['skills'][0] < $itinf[0] || $p['skills'][1] < $itinf[1] || $p['skills'][2] < $itinf[2] || $p['skills'][3] < $itinf[3] || $p['skills'][$numb] < $itinf[4]) { put_g_error('вы не можете одеть вещь, у нее слишком высокие характеристики'); } $q = do_mysql("SELECT fullname FROM items WHERE belongs = '" . $LOGIN . "' AND is_in = 'wea';"); if (!mysql_num_rows($q)) { $weap = ''; } else { $weap = mysql_result($q, 0); } if (strpos($weap, '.2h.') !== false) { put_g_error('вы неможете одеть второе оружие, у вас двуручное оружие в руках'); } // togda chto tam? $q = do_mysql("SELECT fullname FROM items WHERE belongs = '" . $LOGIN . "' AND is_in = 'shi';"); if (!mysql_num_rows($q)) { do_mysql("UPDATE items SET is_in = 'shi' WHERE fullname = '" . $item . "';"); } else { // mestami menjaem $fn = mysql_result($q, 0); do_mysql("UPDATE items SET is_in = 'inv' WHERE fullname = '" . $fn . "';"); do_mysql("UPDATE items SET is_in = 'shi' WHERE fullname = '" . $item . "';"); } $f .= 'вы одели ' . $is_in['name'] . '!'; } add_journal($f, $LOGIN); $_GET['type'] = 3;
<?php // brositq melkuju veshq v lokaciju: // dlja etogo prosto peremestim iz inventarja v lokaciju esli kidaetsja vse, ili zhe sozdadim novuju, esli ne vse: $item = preg_replace('/[^a-z0-9_\\.]/i', '', $_GET['item']); $count = preg_replace('/[^0-9]/', '', $_GET['count']); $q = do_mysql("SELECT on_take FROM items WHERE belongs = '" . $LOGIN . "' AND fullname = '" . $item . "' AND is_in <> 'ban';"); if (!mysql_num_rows($q)) { put_g_error('у вас нету этой вещи!'); } $count_i = mysql_result($q, 0); if ($count > $count_i) { $count = $count_i; } if (!$count) { $count = 1; } $iq = do_mysql("SELECT name FROM items WHERE fullname = '" . $item . "';"); $itname = mysql_result($iq, 0); include_once 'modules/f_add_item_to_loc.php'; // esli kidaetsja vse: if ($count == $count_i) { add_item_to_loc($p['location'], $item); } else { include_once 'modules/f_decrease_misc.php'; include_once 'modules/f_create_item_m.php'; include_once 'modules/f_real_name.php'; $rn = real_name($item); $nitem = create_item_m($rn, $count); decrease_misc($item, $count); add_item_to_loc($p['location'], $nitem); }
$f .= 'пшел вон с глаз моих!</a>'; } if ($part == 'name1') { $f .= '<form action="game.php" method="get">'; $f .= 'кличка (латынь):<br/>'; $f .= '<input type="text" name="name"/>'; $f .= '<input type="hidden" name="sid" value="' . $sid . '"/>'; $f .= '<input type="hidden" name="npc" value="' . $npc . '"/>'; $f .= '<input type="hidden" name="action" value="talk_to_priru"/>'; $f .= '<input type="hidden" name="part" value="name2"/><br/>'; $f .= '<input type="submit" value="назвать"/></form>'; } if ($part == 'name2') { $name = preg_replace('/[^a-z]/i', '', $_GET['name']); if (!$name) { put_g_error('как там назвать??'); } $nn['name'] = preg_replace('/[a-z]/i', '', $nn['name']); $nn['name'] .= ' ' . $name; do_mysql("UPDATE npc SET name = '" . $nn['name'] . "' WHERE id_npc = '" . $nid . "';"); $f .= 'вы назвали своего питомца ' . $name . '<br/>'; } else { if ($part == 'stay') { if ($nn['move'] != 0) { $nn['move'] = 0; $f .= $nn['name'] . ' будет стоять на этом месте'; } else { $nn['move'] = 30; $f .= $nn['name'] . ' сного пойдет за вами!'; } do_mysql("UPDATE npc SET move = '" . $nn['move'] . "' WHERE id_npc = '" . $nid . "';");
$f .= '<a class="blue" href="game.php?sid=' . $sid . '">в игру</a>'; $f .= gen_footer(); exit($f); } if ($_GET['part'] == 2) { // teperq sobstvenno vse i delaem $scroll = preg_replace('/[^a-z0-9_\\.]/i', '', $_GET['to']); include_once 'modules/f_has_item.php'; if (!has_item($scroll, $LOGIN)) { put_error('netu etogo svitka'); } // proverim estq li u igroka pustoj svitok: include_once 'modules/f_has_count.php'; include_once 'modules/f_delete_count.php'; if (!has_count('i.q.que.scroll', 1, $LOGIN)) { put_g_error('при себе надо иметь пустой свиток для записи'); } // udaljaem - delete_count('i.q.que.scroll', 1, $LOGIN); // berem nazvanie svitka include_once 'modules/f_real_name.php'; $rn = real_name($scroll); // berem cebnu svitka $q = do_mysql("SELECT price FROM items WHERE fullname = '" . $scroll . "';"); $price = mysql_result($q, 0); if (rand(0, $price / 10) <= $p['skills'][30]) { // sozdaem svitok include_once 'modules/f_gain_item.php'; gain_item($rn, 1, $LOGIN); add_journal('вы скопировали свиток', $LOGIN); } else {
<?php // derevo dub // proverim, estq li topor v rukah i navyk if (!strpos($p['weapon'], 'tree')) { put_g_error('возьмите топор лесоруба в руки!'); } if (!$p['skills'][35]) { put_g_error('нема навыка - нема дров }=['); } $f = ''; $q = do_mysql("SELECT on_use FROM items WHERE fullname = '" . $item . "';"); $time = mysql_result($q, 0); if ($time > 0 && $time > time()) { add_journal('Нету гринписа на вас! Глянь во что дерево превратили!!!', $LOGIN); } else { $q = do_mysql("SELECT on_take FROM items WHERE fullname = '" . $item . "';"); $count = mysql_result($q, 0); if ($time > 0) { do_mysql("UPDATE items SET on_use = '' WHERE fullname = '" . $item . "';"); $count = 5; } if ($p['skills'][35] * 10 >= rand(0, 100)) { // рубим ветви - $count--; include_once 'modules/f_gain_item.php'; gain_item('i.q.que.vetka', 1, $LOGIN); } else { add_journal('Вам неудалось срубить ветки!', $LOGIN); $count--; } // obnovim kolichestvo
<?php // prodatq melkuju veshq $item = preg_replace('/[^a-z0-9_\\.]/i', '', $_GET['item']); $npc = preg_replace('/[^a-z0-9_\\.]/i', '', $_GET['npc']); $count = preg_replace('/[^0-9]/i', '', $_GET['count']); if (!$count) { $count = 1; } //////////////////////////////// // infa veshi if (substr($item, 2, 1) != 'm') { put_error('это не мелкая вещь'); } $iin = do_mysql("SELECT name, on_take, price FROM items WHERE fullname = '" . $item . "' AND belongs = '" . $LOGIN . "' AND is_in <> 'ban';"); if (!mysql_num_rows($iin)) { put_g_error('нету такой вещи'); } $iin = mysql_fetch_assoc($iin); $nid = is_npc($npc); $tr = do_mysql("SELECT drop2 FROM npc WHERE id_npc = '" . $nid . "';"); $tr = mysql_result($tr, 0); $tr = explode('|', $tr); if (strpos($tr[0], substr($item, 2, 1)) === false && $tr[0] != '*') { put_error('торговец не покупает эти виды вещей'); } if ($count > $iin['on_take']) { $count = $iin['on_take']; } // cena $cost = round($iin['price'] * $count * $tr[2]); $p['money'] += $cost;
if ($pl_eff) { $f .= 'Эффекты:<br/>-'; include_once 'modules/f_translit.php'; $pl_eff = translit($pl_eff); $pl_eff = str_replace('|', '<br/>-', $pl_eff); $f .= $pl_eff; } $f .= '<a class="blue" href="game.php?' . $str2 . '">продолжить</a> | '; $f .= '<a class="blue" href="game.php?sid=' . $sid . '">в игру</a></p>'; $f .= gen_footer(); exit($f); } // potom ispolqzuem manu: include_once 'modules/f_use_mana.php'; if (!use_mana($spell, $LOGIN)) { put_g_error('у вас нехватает маны на это заклинание!'); } // teperq obnovim poslednee zaklinanie: include_once 'modules/f_upd_last_cast.php'; upd_last_cast($LOGIN, $spell); // skazhem slova: $q = do_mysql("SELECT words FROM magic WHERE fullname = '" . $spell . "';"); $words = mysql_result($q, 0); add_journal($p['name'] . ': ' . $words . '!', 'l.' . $p['location']); // potom proverka, vyshlo li kastanutq zakl - include_once 'modules/f_check_cast.php'; if (check_cast($spell, $LOGIN)) { // magija udalasq: // zapros na tip: $q = do_mysql("SELECT type FROM magic WHERE fullname = '" . $spell . "';"); $type = mysql_result($q, 0);
include_once 'modules/f_trade_param.php'; /////////////////////////////////////// // npc $npc = preg_replace('/[^a-z0-9:\\._]/i', '', $_GET['npc']); $nid = is_npc($npc); include_once 'modules/f_real_name.php'; $rn = real_name($npc); $file_name = str_replace('.', '_', $rn); if (!file_exists('modules/npc/t/t_' . $file_name . '.php')) { put_g_error('no trade file'); } include 'modules/npc/t/t_' . $file_name . '.php'; $tr = do_mysql("SELECT name, drop2, location FROM npc WHERE id_npc = '" . $nid . "';"); $tr = mysql_fetch_assoc($tr); if ($tr['location'] != $p['location']) { put_g_error('рядом твкого нету'); } $trade = explode('|', $tr['drop2']); /////////////////////////////////////// $show = 15; $f = gen_header('торг'); // osnovnaja if ($trade[0] == '*') { $trade[0] = '%'; } $q = do_mysql("SELECT COUNT(*) FROM items WHERE belongs = '" . $LOGIN . "' AND is_in = 'inv' AND type LIKE '" . $trade[0] . "';"); $c = mysql_result($q, 0); $c2 = count($torg); // start if (!isset($_GET['start'])) { $start = 0;
// veshi $mi['i.f.dri.nor.s17'] = '1|зелье левитации - 1золотой - при использовании вам дается возмоность летать - передвижение через 2 локации, достигаемость только магией и стрелковым оружием'; $mi['i.q.que.exp_orb'] = '3|сфера опыта - 3золотых - при использовании вас обливают с ног до головы опытом. для получения уровня надо использовать уровень * 2 сфер.'; $mi['i.q.que.inv2'] = '3|заплечный мешок - 3золотых - устонавливает количество мест до 35 (одноразовый эффект на всегда)'; $mi['i.q.que.inv3'] = '6|заплечный мешок - 6золотых - устонавливает количество мест до 40 (одноразовый эффект на всегда)'; $mi['i.q.que.inv4'] = '9|заплечный мешок - 9золотых - устонавливает количество мест до 35, положеные вещи весят на 25% меньше (одноразовый эффект на всегда)'; $mi['i.q.que.inv5'] = '12|заплечный мешок - 12золотых - устонавливает количество мест до 40, положеные вещи весят на 50% меньше (одноразовый эффект на всегда)'; $mi['i.q.que.flow_stone'] = '100|цветущий камень - 100золотых - позволяет женится'; if (isset($_GET['item'])) { $item = $_GET['item']; if (!isset($mi[$item])) { put_g_error('нет такой вещи в продаже'); } $mi[$item] = explode('|', $mi[$item]); if ($mi[$item][0] > $p['gold']) { put_g_error('нехватает золота'); } $p['gold'] -= $mi[$item][0]; do_mysql("UPDATE players SET gold = '" . $p['gold'] . "' WHERE id_player = '" . $p['id_player'] . "';"); include_once 'modules/f_gain_item.php'; gain_item($item, 1, $LOGIN); exit_msg('купля состоялась', '<a class="blue" href="game.php?sid=' . $sid . '&action=gold">вернутся</a>'); } foreach ($mi as $key => $val) { $val = explode('|', $val); $f .= $val[1]; $f .= '<br/><a class="blue" href="game.php?sid=' . $sid . '&action=gold&sa=mall&item=' . $key . '">купить</a><br/>'; } } else { if ($_GET['sa'] == 'buy') { $f .= 'пока — никак. скоро будет';
// hvataet li v inventare: $q = do_mysql("SELECT COUNT(*) FROM items WHERE belongs = '" . $LOGIN . "' AND is_in = 'inv' AND weight > 0;"); $c = mysql_result($q, 0); if ($c > $I_SEP_C) { put_g_error('нехватает места'); } // berem if (!isset($_GET['all'])) { do_mysql("UPDATE items SET is_in = 'inv' WHERE fullname = '" . $item . "';"); } else { include_once 'modules/f_real_name.php'; $rn = real_name($item); $q = do_mysql("SELECT COUNT(*) FROM items WHERE realname = '" . $rn . "' AND is_in = 'ban' AND belongs = '" . $LOGIN . "' AND weight > 0;"); $c += mysql_result($q, 0); if ($c > $I_SEP_C) { put_g_error('нехватает места'); } do_mysql("UPDATE items SET is_in = 'inv' WHERE realname = '" . $rn . "' AND is_in = 'ban' AND belongs = '" . $LOGIN . "';"); } //$f = gen_header ($bname); //$f .= '<div class="y" id="f"><b>'.$bname.':</b></div><p>'; $f = 'вы забрали '; $f .= $it['name'] . ' из ' . $bname . '!<br/>'; //$f .= '<a class="blue" href="game.php?sid='.$sid.'&action=use_stand&item='.$bank.'">'.$bname.'</a><br/>'; //$f .= '<a class="blue" href="game.php?sid='.$sid.'">в игру</a></p>'; //$f .= gen_footer(); //exit($f) $SYSMSG = $f; $p = get_pl_info($LOGIN, 'all'); $_GET['item'] = $bank; include 'modules/s_use_stand.php';
<?php // chastq skripta, iscelenie ljuboe: // proverim, estq li celq rjadom: include_once 'modules/f_is_inloc.php'; if (!is_inloc($LOGIN, $to)) { put_g_error('цель недоступна'); } // vylechim: include_once 'modules/f_magic_heal.php'; // dannye iz verhnih failov magic_heal($spell, $LOGIN, $to); // nanosim effekty: include_once 'modules/f_mag_add_effects.php'; mag_add_effects($spell, $to); // vse
<?php if ($p['admin'] > 1) { $f = ''; if (isset($_GET['login'])) { $wmz = preg_replace('/[^0-9]/', '', $_GET['wmz']); $id = is_player($_GET['login']); if (!$id) { put_g_error('bad login'); } do_mysql("UPDATE players SET gold = gold + " . $wmz * 10 . " WHERE id_player = '" . $id . "';"); $f .= '<b>added ' . $wmz . 'wmz eqv. to ' . $id . ' </b><br/>'; } $f .= '<form action="game.php" method="get">'; $f .= '<input type="hidden" name="sid" value="' . $sid . '"/>'; $f .= '<input type="hidden" name="action" value="a_add_gold"/>'; $f .= 'login:<br/><input type="text" name="login"/><br/>'; $f .= 'wmz payed:<br/><input type="text" name="wmz"/><br/>'; $f .= '<input type="submit" value="add!"/>'; $f .= '</form>'; exit_msg('add_gold', $f); }
<?php // pokazatq ban i razbanitq zaodno if ($p['admin'] > 0) { if (!isset($_GET['to'])) { $f = gen_header('бан'); $f .= '<div class="y" id="oit"><b>блок</b></div><p>'; $q = do_mysql("SELECT login FROM players WHERE admin = '-2';"); while ($b = mysql_fetch_assoc($q)) { $f .= '»' . $b['login'] . ' (<a class="red" href="game.php?sid=' . $sid . '&action=show_block&to=' . $b['login'] . '">x</a>)<br/>'; } $f .= '<a class="blue" href="game.php?sid=' . $sid . '&action=moder"/>модераторская</a><br/>'; $f .= '<a class="blue" href="game.php?sid=' . $sid . '&action=forum"/>форум</a><br/>'; $f .= '<a class="blue" href="game.php?sid=' . $sid . '"/>в игру</a></p>'; $f .= gen_footer(); exit($f); } $to = preg_replace('/[^a-z0-9]/i', '', $_GET['to']); $id = is_player($to); if (!$id) { put_g_error('такого игрока нету'); } $q = do_mysql("SELECT admin FROM players WHERE id_player = '" . $id . "';"); $adm = mysql_result($q, 0); if ($adm != -2) { put_g_error('игрок не в блоке'); } do_mysql("UPDATE players SET admin = '0' WHERE id_player = '" . $id . "';"); exit_msg('блок', 'игрок ' . $to . ' paзблочен!<br/><a class="blue" href="game.php?sid=' . $sid . '&action=forum"/>форум</a>'); }
<?php // perenesti temu v drugoj forum if ($p['admin'] > 0) { $id_theme = preg_replace('/[^0-9]/', '', $_GET['id_theme']); $id_forum = preg_replace('/[^0-9]/', '', $_GET['id_forum']); $q = do_mysql("SELECT name FROM themes WHERE id_theme = '" . $id_theme . "';"); if (!mysql_num_rows($q)) { put_g_error('нету такой темы'); } $tname = mysql_result($q, 0); $q = do_mysql("SELECT name FROM forums WHERE id_forum = '" . $id_forum . "';"); if (!mysql_num_rows($q)) { put_g_error('нету такого форума'); } $fname = mysql_result($q, 0); do_mysql("UPDATE themes SET id_forum = '" . $id_forum . "' WHERE id_theme = '" . $id_theme . "';"); $f = gen_header('переместить тему'); $f .= '<div class="y" id="lisd"><b>переместить тему</b></div><p>'; $f .= 'вы переместили тему ' . $tname . ' в форум ' . $fname . '!<br/>'; $f .= '»<a class="blue" href="game.php?sid=' . $sid . '&action=forum">форум</a><br/>'; $f .= '»<a class="blue" href="game.php?sid=' . $sid . '">в игру</a></p>'; $f .= gen_footer(); exit($f); }
<?php // verevka // esli nahodimsja u dodze, zalezem if ($p['location'] == 'mva2|1x2') { if ($p['smq'][4] < 2) { put_g_error('кто-то сбросил веревку пока она ка дело не привязалась.'); } include_once 'modules/f_teleport.php'; teleport($LOGIN, 'dojo|6x1'); }
<?php // chinim veshi if (!$p['skills'][34]) { put_g_error('нету навыка'); } $q = do_mysql("SELECT COUNT(*) FROM items WHERE realname = 'i.o.sta.nakovalqnja';"); $c = mysql_result($q, 0); if (!$c) { put_g_error('где ковать?'); } $f = ''; if (isset($_GET['item'])) { $item = preg_replace('/[^a-z0-9_\\.]/i', '', $_GET['item']); include_once 'modules/f_repair_item.php'; $cost = repair_item($item, $LOGIN, $p['skills'][34]); $f .= 'вещь починена на ' . $cost . ' единиц<br/>'; } include 'modules/f_get_damaged_items.php'; $di = get_damaged_items($LOGIN); if (!is_array($di)) { exit_msg('починка вещи', $f); } foreach ($di as $key => $val) { $q = do_mysql("SELECT name FROM items WHERE fullname = '" . $key . "';"); $name = mysql_result($q, 0); $f .= '»<a class="blue" href="game.php?sid=' . $sid . '&action=repair_it_yourself&item=' . $key . '">' . $name . '</a><br/>'; } exit_msg('починка вещи', $f);
<?php // temy: $id_forum = preg_replace('/[^0-9]/', '', $_GET['id_forum']); if ($id_forum == 8 && $p['admin'] < 1) { put_g_error('you are not wellcome here'); } if ($id_forum == 10 && $p['id_player'] != 1 && $p['id_player'] != 5 && $p['id_player'] != 10) { put_g_error('you are not wellcome here'); } $q = do_mysql("SELECT name FROM forums WHERE id_forum = '" . $id_forum . "';"); $name = mysql_result($q, 0); $f = gen_header($name); $f .= '<div class="y" id="dgvdglhk"><b>' . $name . ':</b></div>'; $f .= '<div class="n" id="ierao">'; /////////////////// // dlja onlajn: do_mysql("INSERT INTO fonline VALUES ('" . $LOGIN . "', '" . $name . "', NOW());"); // kolichestvo nechitanyh ls $qrl = "SELECT COUNT(*) FROM ls WHERE sentfor = '" . $p['id_player'] . "' AND readed = 'no';"; $arl = do_mysql($qrl); $ls = mysql_result($arl, 0); if ($ls > 0) { $f .= 'нов. сообщений: '; $f .= '<a class="blue" href="game.php?sid=' . $sid . '&action=showcontacts">' . $ls . '</a><br/>'; } $f .= '<a name="up"><b>темы:</b></a> <a class="blue" href="#nav"><small>конец</small></a></div>'; if (!isset($_GET['start'])) { $start = 0; } else { $start = preg_replace('/[^0-9]/', '', $_GET['start']); }
<?php // pokupka veshi iz marketa: $item = mysql_real_escape_string($_GET['buy']); $q = do_mysql("SELECT name, pprice, belongs FROM items WHERE fullname = '" . $item . "' AND is_in = 'mar';"); if (!mysql_num_rows($q)) { put_g_error('нет такой вещи'); } $it = mysql_fetch_assoc($q); if ($p['money'] < $it['pprice'] && $it['belongs'] != $LOGIN) { put_g_error('денег нехватает'); } // ne proverjatq, lezet li v rjukzak po vesu, lishq po slotam: $q = do_mysql("SELECT COUNT(*) FROM items WHERE belongs = '" . $LOGIN . "' AND is_in = 'inv' AND weight > 0;"); $c = mysql_result($q, 0); if ($c > $I_SEP_C) { put_g_error('в рюгзаке нехватает места'); } // pokupaem: if ($it['belongs'] != $LOGIN) { do_mysql("UPDATE players SET money = money - " . $it['pprice'] . " WHERE id_player = '" . $p['id_player'] . "';"); do_mysql("UPDATE players SET money = money + " . $it['pprice'] . " WHERE login = '******'belongs'] . "';"); add_journal('<b>у вас купили ' . $it['name'] . '!</b>', $it['belongs']); } do_mysql("UPDATE items SET is_in = 'inv', belongs = '" . $LOGIN . "' WHERE fullname = '" . $item . "';"); $SYSMSG = 'вы купили ' . $it['name'] . ' за ' . $it['pprice'] . ' серебренных!';