Исходник LifeIsWar.ru от апреля или мая

linpc

Гуру форума
Регистрация
6 Апр 2012
Сообщения
178
Реакции
55
1. С нуля написана казна для кланов (сортировка, отображение вещей, передачи и т.п).
2. Боты больше не зависают в бою, но по прежнему зависают если нападают при переходе (исправлено).
3. Сделан нормальный список клана (онлайноффлайн, местоположение, приваты и т.п).
4. Исправлено много ошибок с недостающими или изменившими свое название картинками.
5. Полностью переделана главная страница.
6. Кланы введены в эксплуатацию.
7. Новый файл для отображения предметов в отдельном окне: iteminfo.php для удобста отображения предметов на клан-сайтах (ссылка на предмет выглядит так: Для просмотра ссылки Войди или Зарегистрируйся.
8. Произведена докупка железа на сервер (теперь не должно лагать даже в часы пик).
9. Если вещь подарочная теперь отображается иконка подарка (при дарении клану отображается ник подарившего).
-----------------------------------------------------------
1. Переписан принцип нападения ботов на природе:
а) теперь боты нападают раз в 360 секунд
б) таймаут 300 секунд
в) максимум ботов 7 (зависит от уровня персонажа)
г) немного увеличен шанс выпадения денег
2. Подкорректированы бои (теперь не должно зависать при проигрыше или нападении)
3. Устранено несколько уязвимостей сервера
4. Откорректирована страница Дома Ценителей (теперь должно быть более читаемо)
5. Включен вход в здания МЭРИЯ, ЛАВКА СТРАННИКА, БЕСЕДКА ПУТНИКА, АКАДЕМИЯ СЛУЖИТЕЛЕЙ (функционал будет в ближайшее время)
6. Исправлена куча ошибок и недочетов в коде движка (теперь работать будет быстрее и стабильнее)
----------------------------------------------------------------
1. Законы, соглашения и дилеры - доделан внешний вид
2. Баг с подарками (почта и магазин подарков) - исправлено
3. Баг с бесплатными подарками - исправлено
4. Подарок нельзя выкинуть - реализована функция удаления (клик по подарку)
5. Системка при получении подарка - реализовано
6. Баг с установкой образов - исправлено (старые "глючные" образы не изменены - нужен обнул и заного выбрать)
7. Добавлено 100 клонов ботов в базу
8. Исправлена неправильная сортировка в лавке - сделайте 1 раз сортировку по уровню и все будет отображаться корректно
9. Добавлена кнопка БАНК (в меню ваш герой) - bank.lifeiswar.ru
10. Кнопка помощь теперь ведет на order.lifeiswar.ru
11. Исправлен глюк, когда кнопки сообщества наезжали друг на друга
12. Сообщества теперь выглядят как надо
13. Таблица опыта теперь выглядит как надо
-------------------------------------------------------------------

Ограничение опыта с ботов увеличено до 25000.
Боты нападают в случайное время от 60 до 380 секунд.
------------------------------------------------------------------
P.S. Все гуд работает. Но ботов так и не смог сделать чтоб нападали.. Кто сделает прошу отписать! Поделюсь модулями)))
Скрипт Игры
БД Игры

doop.ws
 
Модуль Больнице:
PHP:
<LINK href="/css/frame.css" rel="STYLESHEET" type="text/css">
<script type="text/javascript" src="js/hospi_v02.js"></script>
<table align="center" border="0" cellpadding="0" cellspacing="0" width="760"><tbody><tr><td><img src="http://image.neverlands.ru/gameplay/hospital/hospital_city1_0.jpg" width=760 height=255 border=0></td></tr><tr><td><img src="http://image.neverlands.ru/1x1.gif" height="2" width="1"></td></tr><tr><td bgcolor="#CCCCCC"><table border="0" cellpadding="4" cellspacing="1" width="100%"><tbody><tr><td id="Cat1" align="center" bgcolor="#FFFFFF" width="25%"><b><a href="/main.php?room=1"><font class="category">Магазин</font></a></b></td><td id="Cat2" align="center" bgcolor="#FFFFFF" width="25%"><b><a href="#"><font class="category">Вход запрещен</font></a></b></td><td id="Cat2" align="center" bgcolor="#FFFFFF" width="25%"><b><a href="#"><font class="category">Вход запрещен</font></a></b></td></tr></tbody></table></td></tr><tr><td><img src="http://image.neverlands.ru/1x1.gif" height="2" width="1"></td></tr><tr><td bgcolor="#CCCCCC"></td></tr><tr><td><img src="http://image.neverlands.ru/1x1.gif" height="2" width="1"></td></tr></tbody></table><table align="center" border="0" cellpadding="0" cellspacing="0" width="760"><tbody><tr><td id="Dynamic" bgcolor="#CCCCCC" width="100%">
<? if ($_REQUEST["room"]==1):
$res = mysql_query("SELECT market.*, tools.*
FROM market LEFT JOIN tools ON market.id = tools.id
WHERE market=$player[loc] ORDER BY tools.id;");
$out = '';
while ($vesh=mysql_fetch_array($res)) {
    if ($out<>''): $out = $out . ','; endif;
    $out = $out.'"'.$vesh["id"].'|'.$vesh["protype"].'|'.$vesh["price"].'|'.$vesh["name"].'|'.$vesh["desc"].'|'.$vesh["dolg"].'|'.$vesh["mass"].'|'.$vesh["kol"].'"';
}
?>
<script type="text/javascript">
menu = [<?=$out?>];
render_taverna (menu,'<?=VCODE?>','<?=$_REQUEST['type']?>');
</script>
<? endif; ?>
</td></tr></tbody></table>
 
 
</body><div style="display:none" id="_wi2geoGate"></div>

Код:
function render_eat(eat,access, vc, type) {
    out = '';
    if (eat) {
    i = eat.split('|');
        act_s = parseInt(i[24])%60;
        act_m = ((parseInt(i[24])-act_s)/60)%60;
        act_h = ((((parseInt(i[24])-act_s)/60)-act_m)/60)%24;
        act_d = (((((parseInt(i[24])-act_s)/60)-act_m)/60)-act_h)/24;
        tempor = '';
        if (act_d>0) { tempor =tempor+''+act_d+' дн ' }
        if (act_h>0) { tempor =tempor+''+act_h+' ч '}
        if (act_m>0) { tempor =tempor+''+act_m+' мин '}
        if (act_s>0) { tempor =tempor+''+act_s+' сек '}
        out = out + '<img src="http://image.forgotten-earth.ru/tools/'+i[4]+'.gif" onMouseOver="tooltip(this,\'<B>'+i[0]+'</B>';
    if (parseInt(i[4])>0) {out = out + '<BR>Сила: +<B>'+i[4]+'</B>' }
    if (parseInt(i[5])>0) {out = out + '<BR>Ловкость: +<B>'+i[5]+'</B>' }
    if (parseInt(i[6])>0) {out = out + '<BR>Удача: +<B>'+i[6]+'</B>' }
    if (parseInt(i[7])>0) {out = out + '<BR>Знание: +<B>'+i[7]+'</B>' }
    if (parseInt(i[8])>0) {out = out + '<BR>Сокрушение: +<B>'+i[8]+'</B>' }
    if (parseInt(i[9])>0) {out = out + '<BR>Стойкость: +<B>'+i[9]+'-'+i[10]+'</B>' }
    if (parseInt(i[11])>0) {out = out + '<BR>Уловка: +<B>'+i[11]+'</B>' }
    if (parseInt(i[12])>0) {out = out + '<BR>Точность: +<B>'+i[12]+'</B>' }
    if (parseInt(i[13])>0) {out = out + '<BR>Класс брони: +<B>'+i[13]+'%</B>' }
    if (parseInt(i[14])>0) {out = out + '<BR>Очки действия: +<B>'+i[14]+'%</B>' }
    if (parseInt(i[15])>0) {out = out + '<BR>Опыт PvP: +<B>'+i[15]+'%</B>' }
    if (parseInt(i[16])>0) {out = out + '<BR>Урон: +<B>'+i[16]+'%</B>' }
    if (parseInt(i[17])>0) {out = out + '<BR>Максимальные HP: +<B>'+i[17]+'</B>' }
    if (parseInt(i[18])>0) {out = out + '<BR>Максимальные MP: +<B>'+i[18]+'</B>' }
    if (parseInt(i[19])>0) {out = out + '<BR>Восстановления HP: +<B>'+i[19]+'%</B>' }
    if (parseInt(i[20])>0) {out = out + '<BR>Восстановления MP: +<B>'+i[20]+'%</B>' }
    if (parseInt(i[21])>0) {out = out + '<BR>Минимальный урон: +<B>'+i[21]+'</B>' }
    if (parseInt(i[22])>0) {out = out + '<BR>Максимальный урон: +<B>'+i[22]+'</B>' }
    if (parseInt(i[23])>0) {out = out + '<BR>Наблюдательность: +<B>'+i[23]+'%</B>' }
    if (parseInt(i[25])>0) {out = out + '<BR>Опыт PvE:+<B>'+(parseInt(i[25])*10)+'%</B>' }
    if (parseInt(i[27])>0) {out = out + '<BR>Время перехода: +<B>'+i[27]+'%</B>' }
    out = out + '\')" onMouseOut="hide_info(this)" height="60" width="60">';
    if (parseInt(i[1])>0) {out = out + '<br><br><b>Стоимость: '+i[1]+' FR</b><br>Остаток: '+i[3]+'<br><br>' }
    if (access==1 && i[3]>0) {
        if (type=='eat') {out = out + '<input type=button class="lbut" value="Кушать" onclick="location=\'?room=1&type=eat&eat='+i[2]+'&vcode='+vc+'\'"><br>'}
        else if (type=='drink') {out = out + '<input type=button class="lbut" value="Выпить" onclick="location=\'?room=1&type=drink&drink='+i[2]+'&vcode='+vc+'\'"><br>'}
    }
    }
    else {
        out = '&nbsp;';
    }
    return out;
}
 
function render_taverna (info,v, t) {
    rendered = 0;
    if (info.length>0)
        {
        d.write ('<table border="0" cellpadding="5" cellspacing="1" width="100%"><tbody><tr>');
    while (info.length>rendered){
        d.write ('<tr>');
        d.write ('<td class="filt" align="center" bgcolor="#FFFFFF" width="25%"><img src="http://image.neverlands.ru/1x1.gif" height="5" width="1"><br>'+render_eat (info[rendered], 1, v, t)+'</td>');
        d.write ('<td class="filt" align="center" bgcolor="#FFFFFF" width="25%"><img src="http://image.neverlands.ru/1x1.gif" height="5" width="1"><br>'+render_eat (info[rendered+1], 1, v, t)+'</td>');
        d.write ('<td class="filt" align="center" bgcolor="#FFFFFF" width="25%"><img src="http://image.neverlands.ru/1x1.gif" height="5" width="1"><br>'+render_eat (info[rendered+2], 1, v, t)+'</td>');
        d.write ('<td class="filt" align="center" bgcolor="#FFFFFF" width="25%"><img src="http://image.neverlands.ru/1x1.gif" height="5" width="1"><br>'+render_eat (info[rendered+3], 1, v, t)+'</td>');
        rendered = rendered + 4;
        d.write ('</tr>');
            }
        d.write ('</tbody></table>');
    }
}

НЕ работает покупка..
Файл для покупки:
PHP:
<?
mysql_query("LOCK TABLES market READ, market WRITE;");
if($act==1){
    $ITEM=mysql_fetch_assoc(mysql_query("SELECT invent.*, tools.* FROM invent INNER JOIN tools ON invent.protype = tools.id WHERE invent.id_item='$id' and invent.pl_id='$uid' LIMIT 1;"));
    if($ITEM!=''){
        mysql_query("UPDATE invent SET pl_id='$player[id]' WHERE id_item='$id' LIMIT 1;");
        mysql_query("UPDATE user SET nv=nv+$ITEM[sellprice] WHERE id='$uid' LIMIT 1;");
        mysql_query("UPDATE user SET nv=nv-$ITEM[sellprice] WHERE id='$player[id]' LIMIT 1;");
        $ms="top.frames['chmain'].add_msg('<font class=chattime>&nbsp;".date("H:i:s")."&nbsp;</font> Персонаж <b>$player[login]</b> купил у вас <b>".$ITEM[name]."</b>!</b></font><BR>'+'');$redirect";
        chmsg($ms,$login);
        log_write("buy",$ITEM[name]." (гос цена: ".$ITEM[price].")",$ITEM[sellprice],$login);
        $plmsg="top.frames['chmain'].add_msg('<font class=chattime>&nbsp;".date("H:i:s")."&nbsp;</font> Вы удачно купили <b>".$ITEM[name]."</b> за <b>".$price."</b> LR!</b></font><BR>'+'');$redirect";
        chmsg($plmsg,$player[login]);
       
    }
}
else if ($act==2){
    $ms="top.frames['chmain'].add_msg('<font class=chattime>&nbsp;".date("H:i:s")."&nbsp;</font> Персонаж <b>$player[login]</b> отказался от покупки!</b></font><BR>'+'');$redirect";
    chmsg($ms,$login);
}
else
{
    $wsuid = intval($wsuid);
    $IT = mysql_fetch_assoc(mysql_query("SELECT market.*, tools.*
    FROM market LEFT JOIN tools ON market.id = tools.id
    WHERE kol>0 AND tools.id=$wsuid LIMIT 1;"));
    if($IT!=''){
        if($player[nv]>=$IT[price]){
            $pr=explode("|",$IT[param]);
            foreach ($pr as $value) {
            $stat=explode("@",$value);
            switch($stat[0]){case 2: $dolg=$stat[1];break;}}
            db_query('INSERT INTO invent (protype,pl_id,dolg,price) VALUES ('.AP.$IT[id].AP.','.AP.$player[id].AP.','.AP.$dolg.AP.','.AP.$IT[price].AP.');');
            db_query('UPDATE market SET kol=kol-1 WHERE id='.AP.$wsuid.AP.'LIMIT 1;');
            db_query('UPDATE user SET nv=nv-'.AP.$IT[price].AP.' WHERE id='.AP.$player[id].AP.'LIMIT 1;');
            $msg="<b><font class=nickname><font color=#cc0000>Вы удачно купили \"$IT[name]\"!</font></font></b>"; log_write("buyhospi",$IT[name],$IT[price],"market");
        }
        else{$msg="<b><font class=nickname><font color=#cc0000>Нехватает денег!</font></font></b>"; }
    }
    else{
        $IT = mysql_fetch_assoc(mysql_query("SELECT market.*, tools.*
        FROM market LEFT JOIN tools ON market.id = tools.id
        WHERE kol>0 AND tools.dd_price>0 AND tools.id=$wsuid LIMIT 1;"));
            if($IT!=''){
                if($player[baks]>=$IT[dd_price]){
                    $pr=explode("|",$IT[param]);
                    foreach ($pr as $value) {
                    $stat=explode("@",$value);
                    switch($stat[0]){case 2: $dolg=$stat[1];break;}}
                    db_query('INSERT INTO invent (protype,pl_id,dolg,dd_price) VALUES ('.AP.$IT[id].AP.','.AP.$player[id].AP.','.AP.$dolg.AP.','.AP.$IT[dd_price].AP.');');
                    db_query('UPDATE market SET kol=kol-1 WHERE id='.AP.$wsuid.AP.'LIMIT 1;');
                    db_query('UPDATE user SET baks=baks-'.AP.$IT[dd_price].AP.' WHERE id='.AP.$player[id].AP.'LIMIT 1;');
                    $msg="<b><font class=nickname><font color=#cc0000>Вы удачно купили \"$IT[name]\"!</font></font></b>"; log_write("buy",$IT[name],$IT[dd_price],"market");
                }
                else{$msg="<b><font class=nickname><font color=#cc0000>Нехватает денег!</font></font></b>"; }
            }
    }
}
mysql_query("UNLOCK TABLES;");
?>

БД:
Код:
--
-- Структура таблицы `tools`
--
 
CREATE TABLE IF NOT EXISTS `tools` (
  `id` int(11) NOT NULL,
  `protype` int(11) NOT NULL default '0',
  `price` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `desc` varchar(255) NOT NULL,
  `dolg` int(11) NOT NULL,
  `mass` double NOT NULL default '1',
  `count` int(11) NOT NULL,
  `image` varchar(20) NOT NULL,
  UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
 
--
-- Дамп данных таблицы `tools`
--
 
INSERT INTO `tools` (`id`, `protype`, `price`, `name`, `desc`, `dolg`, `mass`, `count`, `image`) VALUES
(60, 0, 60, 'Сумка начинающего лекаря', 'Ресурс: 10-12 лёгких травм', 60, 1, 0, '60'),
(61, 0, 144, 'Сумка умелого лекаря', 'Ресурс: 16-18 средних травм', 144, 1, 0, ''),
(62, 0, 132, 'Сумка опытного лекаря', 'Ресурс: 11-12 тяжёлых травм', 132, 1, 0, ''),
(63, 0, 10000, 'Боевая аптечка', 'Ресурс: 10 боевых травм', 10, 1, 0, ''),
(64, 891, 5, 'Восстановление 25 HP', '', 1, 1, 0, ''),
(65, 892, 8, 'Восстановление 50 HP', '', 1, 1, 0, ''),
(66, 893, 12, 'Восстановление 100 HP', '', 1, 1, 0, ''),
(67, 894, 20, 'Восстановление 250 HP', '', 1, 1, 0, ''),
(68, 895, 4, 'Восстановление 15 MP', '', 1, 1, 0, ''),
(69, 896, 11, 'Восстановление 15 MP', '', 3, 1, 0, ''),
(70, 897, 6, 'Восстановление 25 MP', '', 1, 1, 0, ''),
(71, 898, 20, 'Восстановление 25 MP', '', 3, 1, 0, ''),
(72, 899, 9, 'Восстановление 50 MP', '', 1, 1, 0, ''),
(73, 900, 25, 'Восстановление 50 MP', '', 3, 1, 0, ''),
(74, 901, 17, 'Восстановление 100 MP', '', 1, 1, 0, ''),
(75, 902, 50, 'Восстановление 100 MP', '', 3, 1, 0, '');

Не могу сделать чтоб покупалось. Помоги пожалуйста
 
Если чесно то отличей много... но толко тут нехватает множество таблиц в базе которые можно взять из Для просмотра ссылки Войди или Зарегистрируйся такчто кочай оба скрипта.
 
Кому нужны и необходимы обновления могу посодействовать... От своих сборок..
Доработана Жилой квартал.
- Общежитие
- Рыбок
- Почта

Деловой квартал:
- Банк
- Дом Дилеров

Остальное:
- Больница
- Таверна
- Обитель Закона
- Личное дело
- Переделана панель Дилеров
- Переделана система кланов ( Казна, Отображение состава)

Спасибо!
<-------------- добавлено через 22 сек. -------------->
Спасибо!
<-------------- добавлено через 26 сек. -------------->
А кланы там норм работают??
<-------------- добавлено через 37 сек. -------------->
И склонности?
<-------------- добавлено через 37 сек. -------------->
А природа вся написана?
<-------------- добавлено через 34 сек. -------------->
Мастерская работает?
<-------------- добавлено через 33 сек. -------------->
И аукцион?
<-------------- добавлено через 39 сек. -------------->
И как там с ареной дуэли хоть работают?
Работает все.. Кроме аукциона... кланы работают... Склонки нет... Мастер да.. Для спасибо есть кнопочка нравиться
 
Народ дайте код с index.php и game.php именно с самой старой версии) с меня спасибо
 
А возможно ли сделать,чтобы боты не нападали ,а заходили в заявку на хаотичный бой?
 
А возможно ли сделать,чтобы боты не нападали ,а заходили в заявку на хаотичный бой?
возможно сделать все тут вопрос в том сколько $ готовы заплатить а то такое за спасибо делать не будут )
 
извиняюсь это игра типа территории?
 
Назад
Сверху