подскажите.

ManN

Школьник
Репутация
20 / 541
Есть код для перемещения ботов в пещере ...
Код:
            //перемещение бота, каждые 3-10 сек.
            if($pl['go_bot']>0 && $pl['go_bot']<=time())
            {
                $tgx = rand(-1,1);
                $tgy = rand(-1,1);
                if($tgx!=0 && $tgy!=0)
                {
                    if(rand(0,1)==1)
                    {
                        $tgy = 0;
                    }else{
                        $tgx = 0;
                    }
                }
                $vlb = $this->testLike($pl['x'],$pl['y'],$pl['x']+$tgx,$pl['y']+$tgy);
                //Кто-то рядом
                $tuz = mysql_fetch_array(mysql_query('SELECT `x`,`y`,`id`,`hpNow` FROM `stats` WHERE `dnow` = "'.$this->info['id'].'" AND ( (`x` = '.($pl['x']+1).' AND `y` = '.($pl['y']).') OR (`x` = '.($pl['x']-1).' AND `y` = '.($pl['y']).') OR (`x` = '.($pl['x']).' AND `y` = '.($pl['y']+1).') OR (`x` = '.($pl['x']).' AND `y` = '.($pl['y']-1).') ) LIMIT 1'));
                if(isset($tuz['id']) && $this->testLike($pl['x'],$pl['y'],$tuz['x'],$tuz['y'])==1)
                {
                    $this->botAtack($pl,$tuz,1);
                    mysql_query('UPDATE `dungeon_bots` SET `go_bot` = "'.$pl['go_bot'].'" WHERE `id2` = "'.$pl['id2'].'" LIMIT 1');
                }elseif($vlb==1)
                {
                    $pl['go_bot'] = time()+rand(3,10);
                    $pl['x'] += $tgx;
                    $pl['y'] += $tgy;
                    mysql_query('UPDATE `dungeon_bots` SET `x` = "'.$pl['x'].'",`y` = "'.$pl['y'].'",`go_bot` = "'.$pl['go_bot'].'" WHERE `id2` = "'.$pl['id2'].'" LIMIT 1');
                }
Что надо вписать в базе в строку go_bot ? чтоб они ходили я так понимаю там должно быть время в Unix формате но ставил не ходят...
 
Что надо вписать в базе в строку go_bot ? чтоб они ходили я так понимаю там должно быть время в Unix формате но ставил не ходят...

if($pl['go_bot']>0 && $pl['go_bot']<=time())

Наверно цифру больше нуля?)


жесть. А если людей не будет? - то и бегать не будут. "Прикольная реализация".
 
if($pl['go_bot']>0 && $pl['go_bot']<=time())

Наверно цифру больше нуля?)


жесть. А если людей не будет? - то и бегать не будут. "Прикольная реализация".
Ставил и цифру больше нуля и все а что там про людей ?
 
Эммм... на сколько я помню боты ходят и это у меня есть ...
или я простоно не допонял ты Хочешь чтоб во всех пещерах они ходили ??
 
Эммм... на сколько я помню боты ходят и это у меня есть ...
или я простоно не допонял ты Хочешь чтоб во всех пещерах они ходили ??
нет это скрипт БК2 тут они вообще не ходят хотя в скрипте есть
 
Так почитай код блин.


$pl['go_bot'] = time()+rand(3,10);
Идет запись в базу ( текущее время + 3 - 10 сек).
Если персонаж рядом с ботом, идет как я понимаю процесс нападение ( начало боя) -> $this->botAtack($pl,$tuz,1);
Если персонаж на 2 клетки дальше чем стоит бот, то запрос в базу идет на добавление времени и смену координаты (y +- 1, x +=-1)


Зайди в это здание или как там. Встань от бота на две клетки и обновляй игровой фрейм. На крайняк через echo выводи действия.
 
понял одно бот меняет свое расположение токо при входе в пещеру ... есть варианты как сделать чтоб ходил в пещере ?
 
понял одно бот меняет свое расположение токо при входе в пещеру ... есть варианты как сделать чтоб ходил в пещере ?


Код который обновляет местоположение ботов выполняется в файле самой пещеры, т.е. обновляешь фрейм пещерки - срабатывает код.


Есть вариант:
ajax-ом обновлять местоположение ботов ( при наличии юзера в пещере) в принципе одно и тоже, однако обновлять самому весь фрейм не будет нужды, ну и частично код переписать.

ну кроном тут явно не обновишь, если пещеры создаются для каждого юзера - до жопы нагрузит :))
 
  Похожие темы

Похожие темы

Сверху