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 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 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 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 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 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 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 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_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 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 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 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 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 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 increase_karma($login, $plus)
{
    //$login = preg_replace ('/[^a-z0-9_]/i', '', $login);
    $plus = preg_replace('/[^0-9]/', '', $plus);
    $id = is_player($login);
    $q = do_mysql("SELECT karma FROM players WHERE id_player = '" . $id . "';");
    $karma = mysql_result($q, 0);
    $karma += $plus;
    do_mysql("UPDATE players SET karma = '" . $karma . "' WHERE id_player = '" . $id . "';");
    add_journal('карма +' . $plus, $login);
    return 1;
}
示例#17
0
 public function get_record_by_id($id)
 {
     $this->db->where($this->primary_key, $id);
     if (is_player()) {
         $this->db->where('status', 1);
     } else {
         if (is_developer()) {
             $this->db->where('developerID', $this->session->userdata('user_data')->id);
         }
     }
     return $this->db->get($this->table_name)->result_array();
 }
function gain_item($item, $count, $login)
{
    global $I_SEP_C, $p;
    //$item = preg_replace ('/[^a-z0-9\._]/i', '', $item);
    $count = preg_replace('/[^0-9]/', '', $count);
    //$login = preg_replace ('/[^a-z0-9_]/', '', $login);
    if (!$item || !$count || !$login) {
        put_error('заполните усе данные (это к админу)');
    }
    $id = is_player($login);
    include_once 'modules/f_create_item.php';
    include_once 'modules/f_add_item_to_pl.php';
    include_once 'modules/f_add_item_to_loc.php';
    include_once 'modules/f_get_it_name.php';
    if (substr($item, 2, 1) == 'm') {
        $nitem = create_item($item);
        //add_item_to_pl ($login, $nitem);
        $name = get_it_name($nitem);
        $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) {
            add_item_to_loc($p['location'], $nitem);
        } else {
            $q = do_mysql("SELECT fullname FROM items WHERE belongs = '" . $login . "' AND is_in = 'inv' AND realname = '" . $item . "';");
            if (mysql_num_rows($q)) {
                $fn = mysql_result($q, 0);
                do_mysql("UPDATE items SET on_take = on_take + " . $count . " WHERE fullname = '" . $fn . "';");
                do_mysql("DELETE FROM items WHERE fullname = '" . $nitem . "';");
            } else {
                add_item_to_pl($login, $nitem);
                do_mysql("UPDATE items SET on_take = '" . $count . "' WHERE fullname = '" . $nitem . "';");
            }
        }
        add_journal('вы получили ' . $name . '!', $login);
    } else {
        for ($i = 0; $i < $count; $i++) {
            $nitem = create_item($item);
            $name = get_it_name($nitem);
            $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) {
                add_item_to_loc($p['location'], $nitem);
            } else {
                add_item_to_pl($login, $nitem);
            }
            add_journal('вы получили ' . $name . '!', $login);
        }
    }
    return $nitem;
}
示例#19
0
function block($to)
{
    $id = is_player($to);
    if ($id) {
        $q = do_mysql("SELECT name, location FROM players WHERE id_player = '" . $id . "';");
        $p = mysql_fetch_assoc($q);
        add_journal($p['name'] . ' блокировал!', 'l.' . $p['location']);
    } else {
        $id = is_npc($to);
        $q = do_mysql("SELECT name, location FROM npc WHERE id_npc = '" . $id . "';");
        $n = mysql_fetch_assoc($q);
        add_journal($n['name'] . ' блокировал!', 'l.' . $n['location']);
    }
    return 1;
}
function has_magic($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 magic FROM players WHERE id_player = '" . $id . "';");
    if (!mysql_num_rows($q)) {
        return 0;
    }
    $magic = mysql_result($q, 0);
    if (strpos($magic, $spell) === false) {
        return 0;
    }
    return 1;
}
function search_kombo($login, $kombo)
{
    $id = is_player($login);
    $q = do_mysql("SELECT kombo FROM players WHERE id_player = '" . $id . "';");
    $k = mysql_result($q, 0);
    $k = explode('|', $k);
    $c = count($k);
    for ($i = 0; $i < $c; $i++) {
        if (strpos($k[$i], $kombo) !== false) {
            $k[$i] = explode(':', $k[$i]);
            $k[$i][3] = $i;
            return $k[$i];
        }
    }
    return 0;
}
function start_fire($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[4] = 1;
        do_mysql("UPDATE players SET status1 = '" . $st . "' WHERE id_player = '" . $id . "';");
        return 1;
    }
    // proverjatq na npc nenado set_affected proverit
    include_once 'modules/f_set_affected.php';
    set_affected($name, 'gorit');
    return 1;
}
function gain_silver($silver, $login)
{
    $silver = preg_replace('/[^-0-9]/', '', $silver);
    //$login = preg_replace ('/[^a-z0-9_]/', '', $login);
    $id = is_player($login);
    if (!$id) {
        return 0;
    }
    do_mysql("UPDATE players SET money = money + '" . $silver . "' WHERE id_player = '" . $id . "';");
    if ($silver > -1) {
        add_journal('серебро +' . $silver, $login);
    } else {
        add_journal('серебро ' . $silver, $login);
    }
    //add_journal ('[green]'.$login.' +'.$silver.'[/end]', 'maxx');
    return 1;
}
function gain_peace_exp($exp, $login)
{
    $exp = preg_replace('/[^0-9]/', '', $exp);
    //$login = preg_replace ('/[^a-z0-9_]/', '', $login);
    $id = is_player($login);
    $q = do_mysql("SELECT stats FROM players WHERE id_player = '" . $id . "';");
    $stats = mysql_result($q, 0);
    $stats = explode('|', $stats);
    $stats[1] += $exp;
    $stats[4] += $exp;
    $nstats = $stats[0] . '|' . $stats[1] . '|' . $stats[2] . '|' . $stats[3] . '|' . $stats[4] . '|' . $stats[5] . '|' . $stats[6] . '|' . $stats[7];
    include_once 'modules/f_check_pl_exp.php';
    do_mysql("UPDATE players SET stats = '" . $nstats . "' WHERE id_player = '" . $id . "';");
    add_journal('exp +' . $exp, $login);
    check_pl_exp($login);
    return 1;
}
function can_u_reach($who, $loc_go, $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');
    }
    require_once 'modules/f_get_loc.php';
    $near = get_loc($who, $stor, $depth);
    if (!$near || $near != $loc_go) {
        return 0;
    }
    return 1;
}
function upd_last_attack($pl)
{
    //$pl = preg_replace ('/[^a-z0-9_\.]/i', '', $pl);
    $now = time();
    $id = is_player($pl);
    if (!$id) {
        $id = is_npc($pl);
        // npc
        do_mysql("UPDATE npc SET lastattack = '" . $now . "' WHERE id_npc = '" . $id . "';");
        return 1;
    }
    $q = do_mysql("SELECT last FROM players WHERE id_player = '" . $id . "';");
    $last = mysql_result($q, 0);
    $last = explode('|', $last);
    $last[1] = $now;
    $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 upd_affected($name, $end = 0)
{
    //$name = preg_replace ('/[^a-z0-9_\.]/i', '', $name);
    $id = is_player($name);
    $n = 0;
    if ($id) {
        $q = do_mysql("SELECT affected FROM players WHERE id_player = '" . $id . "';");
    } else {
        $id = is_npc($name);
        $n = 1;
        $q = do_mysql("SELECT affected FROM npc WHERE id_npc = '" . $id . "';");
    }
    $aff = mysql_result($q, 0);
    if (!$aff) {
        return 1;
    }
    $aff = explode('|', $aff);
    $c = count($aff);
    for ($i = 0; $i < $c; $i++) {
        $aff[$i] = explode(':', $aff[$i]);
        //echo $aff[$i][0].' '.$aff[$i][1].' '.(time()).'<br/>';
        if ($aff[$i][1] <= time() || $end) {
            // dalee, esi estq takoj fail, spec izmenenija effekta ustanovim
            if (file_exists('modules/effects/e_end_' . $aff[$i][0] . '.php')) {
                include 'modules/effects/e_end_' . $aff[$i][0] . '.php';
            }
            unset($aff[$i]);
        }
        if (isset($aff[$i])) {
            $aff[$i] = implode(':', $aff[$i]);
        }
    }
    $aff = implode('|', $aff);
    if ($aff == '|') {
        $aff = '';
    }
    if (!$n) {
        do_mysql("UPDATE players SET affected = '" . $aff . "' WHERE id_player = '" . $id . "';");
    } else {
        do_mysql("UPDATE npc SET affected = '" . $aff . "' WHERE id_npc = '" . $id . "';");
    }
    return 1;
}
/**
 * Adds extra post classes
 *
 * @since 1.0.0
 * @param array $classes
 * @return array
 */
function wpcm_post_class($classes)
{
    if (is_sponsor()) {
        $classes[] = 'wpcm-single-sponsors';
    }
    if (is_club()) {
        $classes[] = 'wpcm-single-club';
    }
    if (is_player()) {
        $classes[] = 'wpcm-single-player';
    }
    if (is_staff()) {
        $classes[] = 'wpcm-single-staff';
    }
    if (is_match()) {
        $classes[] = 'wpcm-single-match';
    }
    return $classes;
}
function check_last_cast($pl)
{
    //$pl = preg_replace ('/[^a-z0-9_\.]/i', '', $pl);
    $now = time();
    $id = is_player($pl);
    if (!$id) {
        // pokachtoo zhivotnye ne kastujut:
        put_error('npc cant cast');
    }
    $q = do_mysql("SELECT last FROM players WHERE id_player = '" . $id . "';");
    $a = mysql_fetch_assoc($q);
    $last = $a['last'];
    $last = explode('|', $last);
    // v magii pri obnovlenii ukazyvaetsja vremja, sejchas nado tolqko proveritq, nastupilo li
    if ($last[3] < $now) {
        return 1;
    }
    return 0;
}
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;
}