Боты в ИВ

Статус
В этой теме нельзя размещать новые ответы.
после этого вставь вот это
// Боты - [начало]

$bot[0]="Dirty Troll";
$bot[1]="Angry Troll";
$bot[2]="Cruel Troll";
$bot[3]="Berserker Troll";
$bot[4]="Master Troll";
$bot[5]="Bloody Troll";
$bot[6]="Green Troll";
$bot[7]="Titan Troll";
$bot[8]="Earth Troll";
$bot[9]="Shadow Warrior";
$bot[10]="Shadow King";

$bot_name=$bot[rand(0,10)];

echo"<script>parent.main.location=\"vault.php?atta=1&login={$bot_name}&tmp=\"+Math.random();\"\"</script>";
}

// Боты - [конец]

потом
после кнопки нападения обычной влепи вот это:
// Самонападающие боты

if ($atta) {

if ($stat['vault_move'] == 1);
elseif ($stat['r_action'] == 1);

else {
$chl=mysql_fetch_array(mysql_query("SELECT id, v_time, k_time, user, room, level, hp_now, battle, last_battle, vitality, travma, rank, lpv, rase_skill FROM players where user='".addslashes($login)."'"));


if ($chl['user'] == $stat['user']) $msg="Нападение на самого себя - это уже мазохизм...";

elseif (($stat['level']+1) < $chl['level'] && $chl['rank']==60);
elseif (($stat['level']-1) > $chl['level'] && $chl['rank']==60);
elseif ($ctime-$chl['lpv'] > 180 && $chl['rank'] != 60);

elseif ($chl['hp_now'] <= 5 && $chl['rank']<>60);
elseif (((time()-$chl['lpv'])<10) && ($chl['battle'] == $chl['last_battle'] || !$chl['battle']) && $chl['rank']==60);
else {

require_once("inc/chat/functions.php");
insert_msg("Вы побеспокоили одного из жителей подземелья, и он собрался с силами и напал на Вас!","","","1",$stat['user'],"",$stat['room']);

$battime="$now";

if ($chl['rank']==60 && ($chl['battle'] == $chl['last_battle'] || !$chl['battle'])) {

$_obj=mysql_fetch_array(mysql_query("SELECT SUM(objects.`hp`) as `hp`, SUM(objects.`vitality`) as `vitality` FROM slots, objects WHERE slots.id='".$chl['id']."' AND objects.user='".$chl['user']."' AND objects.id IN (slots.1,slots.2,slots.3,slots.4,slots.5,slots.6,slots.7,slots.8,slots.9,slots.1
0,slots.11,slots.12,slots.13,slots.14,slots.15,slots.16,slots.17,slots.18,slots.
1
9) LIMIT 1"));
$MySkills = explode("|",$chl['rase_skill']);
$chl['gnom']=$MySkills['3']*5;
$chl['vitality']+=$_obj['vitality'];
$chl['hp_max']=ceil(($chl['vitality']*5+$_obj['hp'])*(1+($chl['gnom']/100)));
$chl['hp_now']=$chl['hp_max'];
mysql_query ("UPDATE `players` SET `hp_now` = '".$chl['hp_now']."', `battle` = NULL, `lpv`='".time()."' WHERE `id` = '".$chl['id']."'");
$chl['battle'] = NULL;
}

if ($chl['battle']) {

$prt=mysql_fetch_array(mysql_query("SELECT side as side,time as time from participants where time=$chl[battle] and id=$chl[id]"));

switch ($prt['side']) {
case 0: $side=1; break;
case 1: $side=0; break;
}

$levels=mysql_fetch_array(mysql_query("SELECT base FROM levels WHERE level=$stat[level]"));

mysql_query("INSERT INTO participants (`time`, `id`, `side`, `base`,`hp`) values('$prt[time]', '$stat[id]', '$side', '$levels[base]', $stat[hp_now])");

$b_id_id=mysql_fetch_array(mysql_query("SELECT MAX(id) as id from battles where offer=$prt[time]"));
$b_id_id['id']+=1;

mysql_query("insert into battles (offer, time, id, attacker, defender, kick, block, type, damage, comment) values ($prt[time], '$battime', '$b_id_id[id]', '', '', '', '', NULL, '', '<script language=JavaScript>show_inf(\"$stat[user]\",\"$stat[id]\",\"$stat[level]\",\"$stat[rank]\",\"$stat[tribe]\");</script> вмешался в поединок!')");
$b_id=$prt[time];


mysql_query("UPDATE players, offers SET players.battle=".$prt['time'].", players.side=".$side.", offers.type=2 where players.id=$stat[id] && offers.time=$prt[time]");

} else {

$bdate=date("d.m.y H:i",$battime);

mysql_query("INSERT INTO offers (time, type, size_left, size_right, done, timeout) values($battime+600,1,1,'1','1','180')");

$levels_my = mysql_fetch_array(mysql_query("SELECT base FROM levels WHERE level=$stat[level]"));
$levels_opp = mysql_fetch_array(mysql_query("SELECT base FROM levels WHERE level=$chl[level]"));

mysql_query("INSERT INTO participants (time, id, side, hp, base) values($battime+600, '$stat[id]', '0', '".$stat['hp_now']."', '".$levels_my['base']."')");
mysql_query("INSERT INTO participants (time, id, side, hp, base) values($battime+600, '$chl[id]', '1', '".$chl['hp_now']."', '".$levels_opp['base']."')");

mysql_query("insert into battles (offer, time, id, attacker, defender, kick, block, type, damage, comment) values ($battime, $battime, '0', '', '', '', '', NULL, '', 'Часы показывали $bdate когда бой между <font color=CFA87A>$stat[user]</font> и <font color=679958>$chl[user]</font> начался!')");

mysql_query("update players set battle=$battime+600, side=0 where id='$stat[id]'");
mysql_query("update players set battle=$battime+600, side=1 where id='$chl[id]'");
$b_id=$battime;

}

echo"<script>parent.main.location=\"battle.php?tmp=\"+Math.random();\"\"</script>";

}
}
}
}

// Самонападающие боты

короче описал на быструю руку :))

Код оптимизировать можно еще много :) Ловите идейку закинул дальше модифицируйте как хотите :)
 
мог бы сразу всю свою игрушку(переделку) скинуть...
 
Спасибо :)
Посмотрю на досуге...может что-то даже использую в своей версии :)
 
andr3w Вёл я эту фишку у себя работает всё но толька боты нападю кажду секунду:))
Думаю где то на косячил в vault.php
Может поможеш если чё напиши *plz* в асю 265374953
 
andr3w Вёл я эту фишку у себя работает всё но толька боты нападю кажду секунду:))
Думаю где то на косячил в vault.php
Может поможеш если чё напиши *plz* в асю 265374953

Нет у тебя косяка...просто тот скрипт, что указан вверху - это просто скрипт ботов )
А уж тайм или условие нападения, добавляй сам...

Ну например через рендом сделай:
$atak=rand(0,6);
if ($atak == 2) {
......скрипт......
 
а саманападающего бота надо прописать тока в vault.php или еще куда?
 
прописал все как написано выше ну ничего не происходит в чем может быть проблема?... :)
 
это пример работать не будет!
 
как сделать говорящего бота? то что есть в алексе я знаю но че от туда брать и чего тыкать не пойму


В смысле тыкать? :)

Работайте с папочкой inc/chat , там файлик functions.php, смотрите что там анклудится.
 
почему не будет все работает только я не понял куда вставлять и чего писать чтоб через каждую секунду не нападал

Там же выше написали, сделайте через рандом

например

$nap = rand(0,15);

if ($nap==0) { выполнение скрипта автонападения }

Цифру 15 можете поменять на большую или меньшую, в зависимости от того, какой шанс нападения хотите сделать.
 
Тут как я понял при обновлении страницы это работает.. Тоесть если он сразу не напал, то не нападёт пока не обновиш страницу и значение $nap не станет 0.

Интереснее будет увидить тоже самое только через какойнибуть промижуток времени.
 
Я у себя обновление сделал так
Код:
<META HTTP-EQUIV="Refresh" CONTENT="60; URL=vault.php">
И у мну страница обставляется каждые 60 секунд :) и все работает :)
Кстати это мне подсказал UnDeaD, спасибо ему :)
 
Это при загрузке страницы выдаёт шанс - 1 из 15 что нападёт бот, тьоесть если ты загрузит и бот ен напал, то нужно обновить страницу илиже поставить автообновление страницы. Этот метод ужасен до безобразия, так как если поставить шанс - 1 из 15, то люди просто вручную будут обновлять страницу и боты будут нападать очень часто, также смогут нападать когда уже отрегенятся и будут готовы к бою, что нарушает интерес, а если поставить большой шанс - например 1 из 100, то для тех кто не поймёт - что боты нападают при обновлении фрейма (страницы) будут очень долго ждать нападения бота. Также если поствить частое обновления фрейма (странички) - будет есть много трафика у пользователей и большая нагрузка на сервер при большом онлайне. Оптимальный выход - Ajax. Если помог - тыкните спасибо)
 
не работает!!!!
Parse error: syntax error, unexpected '}' in Z:\home\test1.ru\www\vault.php on line 688
 
не работает!!!!
Parse error: syntax error, unexpected '}' in Z:\home\test1.ru\www\vault.php on line 688

А я уже на PHP забил... но знаю в чем проблема)

У тебя не хватает или лишняя скобка) удали или добавь в конце "}"
 
сделал все так как сказал Angels, но после ввода ника бота и нажатия вперед ничаго не происходит. Что не так?
пысы
У меня аотх стоит
 
разобрался сам, пришлось закоментировать 2 строки, вот они:
//elseif ($chl['room'] < 200 || $chl['room'] > 230) $nms="Для нападния Вам необходимо находится в одной комнате!"; //elseif (((time()-$chl['lpv'])<10) && ($chl['battle'] == $chl['last_battle'] || !$chl['battle']) && $chl['rank']==60) $msg="Бот ".$chl['user']." еще не восстановил свой уровень жизни!";
и все заработало, пока разбераюсь почему из за них не работало
 
а куда это совать?
<META HTTP-EQUIV="Refresh" CONTENT="60; URL=vault.php">
Скоко не пробовал ошибку выдаёт :)
 
Статус
В этой теме нельзя размещать новые ответы.

Похожие темы

Сверху