Кровавая нападалка

andr3w

Новичок
Репутация
0 / 470
1. открываем magic.php

добавляем туда вот это:

Код:
//********************************************************************************
***
    case 'magic_blood_attack': // Кровавая Нападалка
    $t='inventory.php?section=mage';
    $bid=(int)$_GET['bid'];
    $nick=trim($_GET['nick']);
    $ctime=time();
    if(checkAdmin() and $bid>0) {
        $rs=mysql_query('select * from users where nick="'.$nick.'" and current_battle_id=0 and id<>'.$User['id'].' and last_activity_time>="'.($ctime-$online_timeout*60).'" and room="'.$User['room'].'"');
        if(mysql_num_rows($rs)!=1) $m_type=301; // target not found
        else {
            $r=mysql_fetch_array($rs);
            $target_id=$r['id'];
            $target_level=$r['level'];
//            $rs=mysql_query('select br.id, br.battle_type, ub.command from battle_request br, user_in_battle ub where br.id=ub.battle_id and br.status="0" and ub.user_id='.$target_id);
//            if(mysql_num_rows($rs)==0) {
                $rs=mysql_query('select i.*, m.percent from item i, magic m, users_bags ub where i.id=ub.item_id and ub.user_id="'.$User['id'].'" and ub.id="'.$bid.'" and i.magic=m.id and m.id=7');
                if(mysql_num_rows($rs)!=1) $m_type=302; // item not found
                else {
                    $r=mysql_fetch_array($rs);
                    $items=calculate_item_bonus(&$User);                    
                    if($r['req_level']>$User['level']) $m_type=303;            // недостаточно модификаторов
                    else if($r['req_power']>$User['power']) $m_type=303;
                    else if($r['req_sila']>$User['sila']) $m_type=303;
                    else if($r['req_lovkost']>$User['lovkost']) $m_type=303;
                    else if($r['req_inta']>$User['inta']) $m_type=303;
                    else if($r['req_level']>$User['level']) $m_type=303;
                    else if($r['req_mind_power']>$User['mind_power']) $m_type=303;
                    else if($r['req_clan_id']!=0 and abs($r['req_clan_id'])!=$User['clan_id']) $m_type=303;
                    else if($r['owner_id']!='' and $r['owner_id']!=$User['nick']) $m_type=303;
                    else {
                        $a=mt_rand(0,PRECESSION)/PRECESSION;
                        $pu1=$r['percent']/100;
                        if($pu1>$a) {
                            mysql_query('insert into battle_request(battle_type, timeout, start_time, cmt, hand_only, create_time, num_cmd1, num_cmd2, status, blood) values("4", 5, 0, "использована сфера кровавого нападения", "0", '.$ctime.', 1, 1, "1", "1")');
                            $battle_id=mysql_insert_id();
                            mysql_query('insert into user_in_battle(user_id, battle_id, command) values("'.$User['id'].'","'.$battle_id.'","1")');
                            mysql_query('insert into user_in_battle(user_id, battle_id, command) values("'.$target_id.'","'.$battle_id.'","2")');
                            mysql_query('update users set current_battle_id="'.$battle_id.'" where id in ("'.$User['id'].'","'.$target_id.'")');
                            mysql_query('update battle_request set status="1" where id='.$battle_id);
                            $message='Используя сферу <img src=img/travma.gif border=0 align=absmiddle> кровавого нападения, [b]'.$User['nick'].'[/b] напал на [b]'.$nick.'[/b], и начался [url="http://www.tlworld.ru/log.php?log_id='.$battle_id.'"]бой[/url]..';
                            mysql_query('insert delayed into message_log(mdate, name, message, room) values("'.$ctime.'","System","[b]'.mysql_escape_string($message).'[/b]","'.$User['room'].'")');
      require_once("chat/functions.php");
      insert_msg("$message","","","1","","",$User['room']);    
                            $fp=fopen($path.'logs/'.$battle_id.'.html','w');
                            $str=date('Y-m-d').' в '.date('H:i:s').' начался';
                            $str.=' бой между <b class="command_1">'.$User['nick'].' ['.$User['level'].'][/b][url="inf.php?name='.urlencode($User['nick']).'"][img]img/info.gif[/img][/url] и <b class="command_2">'.$nick.' ['.$target_level.'][/b][url="inf.php?name='.urlencode($nick).'"][img]img/info.gif[/img][/url]';
                            $str.=' использована сфера кровавого нападения';
                            fputs($fp, '
'.$str."\n
\n");
                            fclose($fp);
                        } else $m_type=304;
                        $new_durability=$r['durability']+1;
                        if($new_durability<$r['max_durability']) $sql='update item set durability="'.$new_durability.'" where id='.$r['id'];
                        else $sql='delete item, users_bags from item, users_bags where users_bags.item_id=item.id and item.id='.$r['id'];
                        mysql_query($sql);
                    }
                }
//            } else $m_type=305;
        }
        $t.='&m_type='.$m_type;
    }
    break;

потом открываем scripts.js и добавляем туда вот это:

Код:
function magic_blood_attack(id) {
    r=true;
    nick=prompt('На кого нападаем?','');
    if(nick=='' || nick==null) {
        alert('Нужно указать противника');
        r=false;
    } else document.location.href='mage.php?action=magic_blood_attack&bid='+id+'&nick='+nick;
    return r;
}

теперь лезем в файлик battle_function.php
находим строчки:
Код:
$f1=$attacker['sila'];

и перед ней добавляем:
Код:
$f1btlid=$attacker['current_battle_id'];

потом находим:
Код:
$f2=$defender['sila'];

и также перед этим добавляем:
Код:
$f2btlid=$defender['current_battle_id'];

идем ниже и находим строчку:
Код:
$system_message='';

добавляем что-то типа такого:
Код:
$blood=mysql_fetch_array(mysql_query('select * from battle_request where id="'.$f1btlid.'" and blood="1"'));
$blood2=mysql_fetch_array(mysql_query('select * from battle_request where id="'.$f2btlid.'" and blood="1"'));
это можно в 1 запрос сделать захотите сами сделаете :) поехали дальше

теперь добавляем два условия:
посли строки:
Код:
if ($hp1 <= 0) $system_message.="\n
\n".'[b]'.$attacker['nick'].'[/b] повержен.'."\n";
добавляем:
Код:
if (($hp1 <= 0) and ($blood)) $system_message.="\n
\n".'[b]'.$attacker['nick'].'[/b] '.create_user_travma($attacker, 3).'.'."\n";

дальше после строки:
Код:
if ($hp2 <= 0) $system_message.="\n
\n".'[b]'.$defender['nick'].'[/b] повержен.'."\n";
добавляем:
Код:
if (($hp2 <= 0) and ($blood2)) $system_message.="\n
\n".'[b]'.$defender['nick'].'[/b] '.create_user_travma($defender, 3).'.'."\n";

едем дальше:


потом делаем в бд в таблицу magic

такой звпрос

Код:
INSERT INTO `magic` VALUES (7,'Кровавое нападение','magic_blood_attack',85,'0');

и в таблице battle_request добьвьте новое поле:
Код:
  `blood` enum('0','1') NOT NULL default '0'

=============================
ЗЫ. Вроди розжевал, ну вопше если честно сказать вариант не лудший но рабочий, делал я это давно, выкладываю из старых запасов... Пользуйтесчь нс здоровье...
 
Кликнул спасибо, плюс тут еще раз говорю спасибо.
Все работает, но в самом начале боя происходит глюк, белый экран до первого обновления висит, и в это же время показывает один из самых древних логов боя. После обновления все норм, ток лог тож начинает идти с этого место, где я ошибся подскажите плз...
 
Кликнул спасибо, плюс тут еще раз говорю спасибо.
Все работает, но в самом начале боя происходит глюк, белый экран до первого обновления висит, и в это же время показывает один из самых древних логов боя. После обновления все норм, ток лог тож начинает идти с этого место, где я ошибся подскажите плз...

странно у меня такой проблемы не возникало. сделай так:

открой файл: cfg.php закоментируй там:

Error_Reporting(E_ALL & ~E_NOTICE & ~E_WARNING);

и попробуй нападать ты увидиш ошибку, даш ее сюда я подскажу как пофиксить
 
Код:
require_once("chat/functions.php");
      insert_msg("$message","","","1","","",$User['room']);
Вот здесь у меня выскакивала ошибка, то есть первого пути вообще не существовало, и функции insert_msg он не нашел, в первой строке поправил путь, вторую банально закомментировал, теперь всевсе нормально, работает, еще раз спасибо большое.
Не посмотришь тогда в соседнем топике, мой фал на редактирование вещей может что подскажешь???
 
Код:
require_once("chat/functions.php");
      insert_msg("$message","","","1","","",$User['room']);
Вот здесь у меня выскакивала ошибка, то есть первого пути вообще не существовало, и функции insert_msg он не нашел, в первой строке поправил путь, вторую банально закомментировал, теперь всевсе нормально, работает, еще раз спасибо большое.
Не посмотришь тогда в соседнем топике, мой фал на редактирование вещей может что подскажешь???

удали эти строки...
я раньш просто чат от ИВ цеплял в игру... это вывод системки ))) а у тебя чат стандартный походу значит эти строки можеш кильнуть :)
 
Всё как написано всё полностью сделал, ошибок не выдаёт, но нападалки так и не появилось, мож ещё чего нехватает?
 
Всё как написано всё полностью сделал, ошибок не выдаёт, но нападалки так и не появилось, мож ещё чего нехватает?

ПРобуй еще раз, все предельно просто описано...
 
1. открываем magic.php
Я так понимаю - mage.php? т.к. нету такого

и нападалки должны появится в магазине? может количество нигде не упомянул и их нету, хотя и в админке не видно( Пробую ещё пару раз переписать...
 
Я так понимаю - mage.php? т.к. нету такого

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

скорее всего ты не ту сборку используешь... не помню где, но magic.php точно видел
 
Сверху