[Движок] Скрипт игры combats 2. Дорaботaн 27.04.2012

Статус
В этой теме нельзя размещать новые ответы.
Прекращаем флудить. Если у кого-то есть желание выложить полную версию, велкам! А так прекращаем барыжить в этой ветке.
 
Темы создавать не могу, потому спрошу тут. вопрос не по этому движку.
Скачал combats2.com. Помоему с дапфа, все вроде нормально настроил. захожу в игру двигаюсь, катаюсь между городами (их там около 7-ми, а рабочих 5). НО есть одно НО, если бой то он происходит быстро, даже лога не видно, просто пишет "Победа. Бой закончен, всего вами нанесено урона 0, получено опыта 0." И так во всех боях. Я пытался из другой сборки (есть рабочая bkwar) вытянуть фал батле и фбатле, но эффект не меняется, бой так и завершается. Думал может в базе ошибка, но нет, приконектил базу из того же бквара, эффект тот же.

Подскажите может еще где есть файл отвечающий за боевку. Или может надо сразу заменить батле, фбатле и еще что-то?.
И еще маленькая просьба, файл таверны если есть у кого, подкиньте в приват.
 
Темы создавать не могу, потому спрошу тут. вопрос не по этому движку.
Скачал combats2.com. Помоему с дапфа, все вроде нормально настроил. захожу в игру двигаюсь, катаюсь между городами (их там около 7-ми, а рабочих 5). НО есть одно НО, если бой то он происходит быстро, даже лога не видно, просто пишет "Победа. Бой закончен, всего вами нанесено урона 0, получено опыта 0." И так во всех боях. Я пытался из другой сборки (есть рабочая bkwar) вытянуть фал батле и фбатле, но эффект не меняется, бой так и завершается. Думал может в базе ошибка, но нет, приконектил базу из того же бквара, эффект тот же.

Подскажите может еще где есть файл отвечающий за боевку. Или может надо сразу заменить батле, фбатле и еще что-то?.
И еще маленькая просьба, файл таверны если есть у кого, подкиньте в приват.

а бои с ботами или обычными пользователями?
Если с ботами, то:
Возможно ботов надо сажать на крон. Я уверен, что проблема не в самой боевке, а в ботах. Проверь в поединках с обычным игроком, а не с ботом. Если все в порядке, то моя теория верна. Если тоже самое, то тогда ищи проблему в боевке.
 
а бои с ботами или обычными пользователями?
Если с ботами, то:
Возможно ботов надо сажать на крон. Я уверен, что проблема не в самой боевке, а в ботах. Проверь в поединках с обычным игроком, а не с ботом. Если все в порядке, то моя теория верна. Если тоже самое, то тогда ищи проблему в боевке.
где-то мельком встречал такую мыль, даже думал тоже самое если честно. Похоже что да, проблема в самом кроне. Хотя не проверял, никак руки не доходят.
Сейчас проверю.

ПЫ.СЫ. Вытащил крон из другой сборки, проверил. заработало) боты не отвечают, будем думать.
 
Последнее редактирование:
ПЫ.СЫ. Вытащил крон из другой сборки, проверил. заработало) боты не отвечают, будем думать.

Эм. Так я не понял, я прав оказался? Проблема в кроне, то бишь ботов просто надо сажать на крон?
 
Эм. Так я не понял, я прав оказался? Проблема в кроне, то бишь ботов просто надо сажать на крон?
да. все оказалось до банального просто) крон не работал или неправильно работал

может тогда и подскажеш как БС на кроне запустить? Лотерею стартанул, а вот с БС никак не разберусь

ПЫ.СЫ. код выложу если над

Добавлено puagardian: Редактируйте предыдущее сообщение вместо добавления нового. Даблпостинг запрещен.
 
Последнее редактирование модератором:
я как то ставил давным давно бс на крон. но ведь видишь дело какое, зависит от сборок, я правда не знаю структуру твоей сборки. попробуй кусок кода выложить, вместе подумаем что да как.
 
Сборка bkwar.ru

кусок кода из cron.php
Код:
<?php
/* cron file */
//error_reporting(E_ALL);
//ini_set("display_errors", 1);
/*
//Считываем текущее время
$mtime = microtime();
//Разделяем секунды и миллисекунды
$mtime = explode(" ",$mtime);
//Составляем одно число из секунд и миллисекунд
$mtime = $mtime[1] + $mtime[0];
//Записываем стартовое время в переменную
$tstart = $mtime;*/


    session_start();
include "connect.php";
include "functions.php";
//addchp ('<font color=red>Внимание!</font> Тест ', '{[]}Система{[]}');

///  BS
  include("cron_bs.php");

// hp operations

    mysql_query("UPDATE `users` SET `maxhp` = (IFNULL((SELECT SUM(`ghp`) FROM `inventory` WHERE dressed=1 AND owner = `users`.id),0) + (users.vinos*6));");
    mysql_query("UPDATE `users` SET `maxmana` = (IFNULL((SELECT SUM(`gmp`) FROM `inventory` WHERE dressed=1 AND owner = `users`.id),0) + (users.mudra*10));");
    mysql_query("UPDATE `users` SET `hp` = '0' WHERE  `hp` < '0' ");
    mysql_query("UPDATE `users` SET `mana` = '0' WHERE  `mana` < '0' ");
    // ломаем шмот
    $its = mysql_query("SELECT `id`,`owner`,`name` FROM `inventory` WHERE  `dressed` = 0 AND ((`maxdur` <= `duration`) OR (`dategoden` > 0 AND `dategoden` <= '".time()."'));");
    while($it = mysql_fetch_array($its))
    {
        //destructitem($it['id']);
        mysql_query("DELETE FROM `inventory` WHERE `id` = '".$it['id']."' LIMIT 1;");
        mysql_query("INSERT INTO `delo` (`id` , `author` ,`pers`, `text`, `type`, `date`) VALUES ('','0','\"".$it['name']."\"  разрушился id:(cap".$it['id'].").',1,'".time()."');");
    }

// травмы и хаос
    $effs = mysql_query("SELECT * FROM `effects` WHERE `time` <= ".time().";");
    mysql_query("DELETE FROM `effects` WHERE `time` <= ".time().";");
    while($eff = mysql_fetch_array($effs)) {
        switch ($eff['type'])
        {
            case 11:
                mysql_query("UPDATE `users` SET `sila`=`sila`+'".$eff['sila']."', `lovk`=`lovk`+'".$eff['lovk']."', `inta`=`inta`+'".$eff['inta']."' WHERE `id` = '".$eff['owner']."' LIMIT 1;");
                //deltravma($eff['id']);
            break;
            case 12:
                mysql_query("UPDATE `users` SET `sila`=`sila`+'".$eff['sila']."', `lovk`=`lovk`+'".$eff['lovk']."', `inta`=`inta`+'".$eff['inta']."' WHERE `id` = '".$eff['owner']."' LIMIT 1;");
            break;
            case 13:
                mysql_query("UPDATE `users` SET `sila`=`sila`+'".$eff['sila']."', `lovk`=`lovk`+'".$eff['lovk']."', `inta`=`inta`+'".$eff['inta']."' WHERE `id` = '".$eff['owner']."' LIMIT 1;");
            break;
            case 14:
                mysql_query("UPDATE `users` SET `sila`=`sila`+'".$eff['sila']."', `lovk`=`lovk`+'".$eff['lovk']."', `inta`=`inta`+'".$eff['inta']."' WHERE `id` = '".$eff['owner']."' LIMIT 1;");
            break;
            case 4:
                mysql_query("UPDATE `users` SET `align`='0' WHERE `id` = '".$eff['owner']."' LIMIT 1;");
            break;
        }
    }


    $data = mysql_query("SELECT `id`, `fullhptime` FROM `users` WHERE `hp` < `maxhp` AND `battle` = 0;");
    while($user = mysql_fetch_array($data)) {
        if ((time()-$user[1])/60 > 0)
        {
            mysql_query("UPDATE `users` SET `hp` = `hp`+((".time()."-`fullhptime`)/60)*(`maxhp`/20), `fullhptime` = ".time()." WHERE  `hp` < `maxhp` AND `id` = '".$user[0]."' LIMIT 1;");
        }
    }
    $data = mysql_query("SELECT `id`, `fullmptime` FROM `users` WHERE `mana` < `maxmana` AND `battle` = 0;");
    while($user = mysql_fetch_array($data)) {
        if ((time()-$user[1])/60 > 0 && $user[1])
        {
            mysql_query("UPDATE `users` SET `mana` = `mana`+((".time()."-`fullmptime`)/60)*(`maxmana`/30), `fullmptime` = '".time()."' WHERE `id` = '".$user[0]."' LIMIT 1;");
        }
    }
    mysql_query("UPDATE `users` SET `hp` = `maxhp`, `fullhptime` = ".time()." WHERE  `hp` > `maxhp` AND `battle` = 0;");
    mysql_query("UPDATE `users` SET `mana` = `maxmana`, `fullmptime` = ".time()." WHERE  (`mana` > `maxmana` OR `fullmptime` = 0) AND `battle` = 0;");

    //============================ LAB HAOS =========================================
    /*    mysql_query("TRUNCATE TABLE `lab_inv`;");
        mysql_query("TRUNCATE TABLE `lab_bots`;");
        mysql_query("TRUNCATE TABLE `lab_trap`;");
        // cheki
        $paymers = rand (50,100);
        for($i=1;$i<=$paymers;$i++) {
            mysql_query("INSERT INTO `lab_inv` (`id_room`,`type`,`value`) values ('".rand(0,1000)."','1','".(rand(1,10)/100)."');");
        }
        for($i=1;$i<=50;$i++) {
            mysql_query("INSERT INTO `lab_inv` (`id_room`,`type`,`value`) values ('".rand(0,1000)."','2','".(rand(1,10)/100)."');");
        }
        // roomsi
        for($i=1;$i<=1000;$i++) {
            mysql_query("UPDATE `lab_rooms` SET p1='".rand(0,1000)."',p2='".rand(0,1000)."',p3='".rand(0,1000)."',p4='".rand(0,1000)."',`exit`=0 WHERE `id` = '".$i."' LIMIT 1;");
        }
        for($i=1;$i<=800;$i++) {
            mysql_query("INSERT INTO `lab_bots` (`id_room`,`id_bot`) values ('".rand(0,1000)."','".(rand(1,4)+78)."');");
        }
        for($i=1;$i<=5;$i++) {
            mysql_query("INSERT INTO `lab_bots` (`id_room`,`id_bot`) values ('".rand(0,1000)."','23333');");
        }
        for($i=1;$i<=300;$i++) {
            mysql_query("INSERT INTO `lab_trap` (`id_room`,`type`) values ('".rand(0,1000)."','".(rand(1,4))."');");
        }
        mysql_query("UPDATE `lab_rooms` SET `exit`=1 WHERE id = ".rand(1,1000)." LIMIT 1;");
    */

а вот это код cron_bs.php
Код:
<?php


///Двигаем АРХОВ
  $id_arx = 2999;
  for($i=0; $i<11; $i++){
$rand_room1 = rand(501,530);
$rand_room2 = rand(530,560);
$id_arx++;

$arxs = mysql_fetch_array(mysql_query("select * from `users` where `room`='".$rand_room1."' AND `in_tower`='1' AND `bs_arx`='1'"));

if(!$arxs['room']){
  // echo"OK:".$rand1."<br>";
mysql_query("update `users` set `in_tower`='1', `bs_room`='".$rand_room1."',`room`='".$rand_room1."' where `id`='".$id_arx."'");
                    }
else{
mysql_query("update `users` set `in_tower`='1', `bs_room`='".$rand_room2."',`room`='".$rand_room2."' where `id`='".$id_arx."'");
    }

//echo$id_arx."!".$rand_room."<BR>";
}
/////////////////////////////

    // start BS
    $tr = mysql_fetch_array(mysql_query("SELECT * FROM `deztow_turnir` WHERE `active` = TRUE"));
    $turnirstart = mysql_fetch_array(mysql_query("SELECT `value` FROM `variables` WHERE `var` = 'startbs' LIMIT 1;"));
    $dd = mysql_fetch_array(mysql_query("SELECT count(`kredit`) FROM `deztow_stavka`;"));
//  AddChatSystem ('1');
    if($dd[0] < 2 && $turnirstart[0] <= time()) {
    echo"bs_no";
    mysql_query('UPDATE `variables` SET `value` = \''.(time()+30*30*6).'\' WHERE `var` = \'startbs\';');
//      AddChatSystem ('1');

    }

    if(!$tr && $turnirstart[0] <= time() && $dd[0] >= 2){
    echo"bs_ok";
//      AddChatSystem ('2');
        // начинаем БС
            //mysql_query("LOCK TABLES `shop` WRITE, `deztow_items` WRITE, `deztow_realchars` WRITE, `deztow_charstams` WRITE, `deztow_eff` WRITE, `deztow_gamers_inv` WRITE,`effects` WRITE, `deztow_turnir` WRITE, `deztow_stavka` WRITE, `users` WRITE, `inventory` WRITE, `online` WRITE;");
            $minroom = 501;
            $maxroom = 560;
  ///Заносим архов в БС
  $id_arx = 1199;
  for($i=0; $i<11; $i++){
$rand_room1 = rand(501,530);
$rand_room2 = rand(530,560);
$id_arx++;

$arxs = mysql_fetch_array(mysql_query("select * from `users` where `room`='".$rand_room1."' AND `in_tower`='1' AND `bs_arx`='1'"));

if(!$arxs['room']){
  // echo"OK:".$rand1."<br>";
mysql_query("update `users` set `in_tower`='1', `bs_room`='".$rand_room1."',`room`='".$rand_room1."' where `id`='".$id_arx."'");
                    }
else{
mysql_query("update `users` set `in_tower`='1', `bs_room`='".$rand_room2."',`room`='".$rand_room2."' where `id`='".$id_arx."'");
    }

echo$id_arx."!".$rand_room."<BR>";
}
            // вычисляем кто прошел в турнир
            $data = mysql_query("SELECT dt.owner FROM `deztow_stavka` as dt, `online` as o WHERE (SELECT count(`id`) FROM `effects` WHERE `effects`.`owner` = dt.owner AND ( type=11 OR type=12 OR type=13 OR type=14)) = 0  AND o.id = dt.owner AND room = 31 AND o.`date` >= '".(time()-300)."' ORDER by `kredit` DESC, dt.`time` ASC  LIMIT 40;");
            $stavka = mysql_fetch_array(mysql_query("SELECT SUM(`kredit`)*0.7 FROM `deztow_stavka`;"));
            // удаляем сразу, чтоб другим не повадно было
            if($data) {
                mysql_query("TRUNCATE TABLE `deztow_stavka`;");
                mysql_query("TRUNCATE TABLE `deztow_gamers_inv`;");
            }
            while($row=mysql_fetch_array($data)) {
                // делаем каждому чару бекап в базу специальную, раздеваем и все такое
                undressall($row[0]); // раздели
                $shmot = mysql_query("SELECT * FROM `inventory` WHERE `owner` = '".$row[0]."';");// бекапим весь шмот
                mysql_query("UPDATE `inventory` SET `owner` = 0 WHERE `owner` = '".$row[0]."';");
                while($sh = mysql_fetch_array($shmot)) {
                    mysql_query("INSERT `deztow_gamers_inv` (`id_item`,`owner`) values ('".$sh[0]."','".$row[0]."');");
                }
                // effects
                $effs = mysql_query("SELECT * FROM `effects` WHERE `owner` = '".$row[0]."';"); // бекапим ефекты
                while($eff = mysql_fetch_array($effs)) {
                    mysql_query("INSERT `deztow_eff` (`type`, `name`, `time`, `sila`, `lovk`, `inta`, `vinos`, `owner`)
                    values ('".$eff[1]."','".$eff[2]."','".$eff[3]."','".$eff[4]."','".$eff[5]."','".$eff[6]."','".$eff[7]."','".$eff[8]."');");
                    //deltravma($eff['id']);
                }
                mysql_query("DELETE FROM `effects` WHERE `owner` = '".$row[0]."';");
                // stats
                $tec = mysql_fetch_array(mysql_query("SELECT * FROM `deztow_charstams` WHERE `owner` = '{$row[0]}' AND `def`='1';"));
                if($tec[0] && $row[0] != 83000) {
                    // умелки
                    $u = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `id` = '{$row[0]}' LIMIT 1;"));
                    $master = ($u['noj']+$u['mec']+$u['topor']+$u['dubina']+$u['mfire']+$u['mwater']+$u['mair']+$u['mearth']+$u['mlight']+$u['mgray']+$u['mdark']+$u['master']);
                    // если есть шаблон - меняем
                    mysql_query("INSERT `deztow_realchars` (`owner`,`name`,`sila`,`lovk`,`inta`,`vinos`,`intel`,`mudra`,`stats`,`nextup`,`level`,`master`) values
                    ('".$u['id']."','".$u['login']."','".$u['sila']."','".$u['lovk']."','".$u['inta']."','".$u['vinos']."','".$u['intel']."',
                    '".$u['mudra']."','".$u['stats']."','".$u['nextup']."','".$u['level']."','".$master."');");
                    //создали запись, теперь выставляем статы))
                    $stats = ($u['sila']+$u['lovk']+$u['inta']+$u['vinos']+$u['intel']+$u['mudra']+$u['stats'])-
                            ($t['sila']+$t['lovk']+$t['inta']+$t['vinos']+$t['intel']+$t['mudra']);
                    if ((int)$stats!=0) {
                        $fffff=fopen('tmpdisk/bs_s.dat','a');
//                        $tec['sila']=$u['sila']; $tec['lovk']=$u['lovk']; $tec['$inta']=$u['inta'];
//                    $tec['vinos']=$u['vinos']; $tec['intel']=$u['intel']; $tec['mudra']=$u['mudra'];
                    fwrite($fffff,print_r($u)."\n");
                    fwrite($fffff,print_r($tec)."\n");
                    fwrite($fffff,(int)$stats."\n");
                    fwrite($fffff,"\n\n\n");
                    fclose($fffff);
                    }          //".$stats."
                    mysql_query("UPDATE `users` SET `sila`='".$tec['sila']."', `lovk`='".$tec['lovk']."',`inta`='".$tec['inta']."',`vinos`='".$tec['vinos']."',`intel`='".$tec['intel']."',`mudra`='".$tec['mudra']."',`stats`='0',
                    `noj`=0,`mec`=0,`topor`=0,`dubina`=0,`mfire`=0,`mwater`=0,`mair`=0,`mearth`=0,`mlight`=0,`mgray`=0,`mdark`=0,`master`='".$master."',`maxhp`='".($tec['vinos']*6)."',`hp`='".($tec['vinos']*6)."'
                    WHERE `id` = '".$u['id']."' LIMIT 1;");
                    // закончили
                }

                // пихаем учасников в БС
                $rum = rand($minroom,$maxroom);
                $urs[$row[0]] = $rum;
                //mysql_query("UPDATE `users` SET `in_tower` = 1, `room` = '".$rum."' WHERE `id` = '".$row[0]."';");
                //mysql_query("UPDATE `online` SET `room` = '".$rum."' WHERE `id` = '".$row[0]."' LIMIT 1 ;");
                // в список участников
                $i++;
                if($i>1) { $lors .= ", "; }
                $lors .= nick3($row[0]);
            }

Я так понимаю что после старта БС в кроне должно появляться сообщение в чате типа " Турнир башни начнется через стока-та"
 
Я так понимаю что после старта БС в кроне должно появляться сообщение в чате типа " Турнир башни начнется через стока-та"

Начнем с того, что ты оба же файла кладешь на крон? Я думаю, что надо класть оба и первый и второй. Более профессиональные тоже подтвердят. думаю.
 
ну получается что мне в файле крон бс надо вставить это?
Код:
<?php
/* cron file */
//error_reporting(E_ALL);
//ini_set("display_errors", 1);
/*
//Считываем текущее время
$mtime = microtime();
//Разделяем секунды и миллисекунды
$mtime = explode(" ",$mtime);
//Составляем одно число из секунд и миллисекунд
$mtime = $mtime[1] + $mtime[0];
//Записываем стартовое время в переменную
$tstart = $mtime;*/


    session_start();
include "connect.php";
include "functions.php";
//addchp ('<font color=red>Внимание!</font> Тест ', '{[]}Система{[]}');

///  BS
  include("cron_bs.php");
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху