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

Тема в разделе "Игровые движки", создана пользователем linpc, 12 авг 2012.

  1. linpc

    linpc

    Регистр.:
    6 апр 2012
    Сообщения:
    178
    Симпатии:
    52
    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
     
    furkanx18, Subtixx, WalpeR и ещё 1-му нравится это.
  2. linpc

    linpc

    Регистр.:
    6 апр 2012
    Сообщения:
    178
    Симпатии:
    52
    Модуль Больнице:
    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, '');
    
    Не могу сделать чтоб покупалось. Помоги пожалуйста
     
    vadosik нравится это.
  3. linux1212

    linux1212 Писатель

    Регистр.:
    30 июл 2012
    Сообщения:
    2
    Симпатии:
    0
  4. ALienD

    ALienD Постоялец

    Регистр.:
    1 авг 2012
    Сообщения:
    70
    Симпатии:
    2
    Если чесно то отличей много... но толко тут нехватает множество таблиц в базе которые можно взять из https://www.nulled.cc/threads/232816/ такчто кочай оба скрипта.
     
    WalpeR нравится это.
  5. linpc

    linpc

    Регистр.:
    6 апр 2012
    Сообщения:
    178
    Симпатии:
    52
    Кому нужны и необходимы обновления могу посодействовать... От своих сборок..
    Доработана Жилой квартал.
    - Общежитие
    - Рыбок
    - Почта

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

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

    Работает все.. Кроме аукциона... кланы работают... Склонки нет... Мастер да.. Для спасибо есть кнопочка нравиться
     
    vadosik нравится это.
  6. linpc

    linpc

    Регистр.:
    6 апр 2012
    Сообщения:
    178
    Симпатии:
    52
    Версия данного движка уже старая. Вот новая: https://www.nulled.cc/threads/238348/
     
  7. MysticW0

    MysticW0 Постоялец

    Регистр.:
    17 янв 2014
    Сообщения:
    111
    Симпатии:
    3
    Народ дайте код с index.php и game.php именно с самой старой версии) с меня спасибо
     
  8. Travka104

    Travka104 Создатель

    Регистр.:
    23 янв 2014
    Сообщения:
    29
    Симпатии:
    3
    А возможно ли сделать,чтобы боты не нападали ,а заходили в заявку на хаотичный бой?
     
  9. MysticW0

    MysticW0 Постоялец

    Регистр.:
    17 янв 2014
    Сообщения:
    111
    Симпатии:
    3
    возможно сделать все тут вопрос в том сколько $ готовы заплатить а то такое за спасибо делать не будут )
     
  10. bobkli

    bobkli Местный

    Регистр.:
    2 ноя 2007
    Сообщения:
    691
    Симпатии:
    116
    извиняюсь это игра типа территории?