Фиксы к игре

hacik

Новичок
Репутация
0 / 13
тут мой не большие фиксы
encicl.php

Код:
<?
include('inc/db_connect.php');
$title = 'Инстинкты Воина - [Энциклопедия]';
include('inc/html_header.php');
echo"<body bgcolor=ebedec>";


if ($view=="top") {

if (!empty($clan)) {
$clan=mysql_fetch_array(mysql_query("SELECT * FROM top where clan='$clan'"));

echo"Клан: $clan[clan] 
Домашняя страница: [url="'$clan[url]'"]$clan[url][/url]"; }
else {


$top=mysql_query("SELECT * FROM top");

for ($i=0; $i<mysql_numrows($top); $i++) {
$top=mysql_fetch_array($top);
echo "[b]$top[clan][/b]
";
}

}

}


?>
изправил свитки энергий
в inc\magic\addenergy.php
меньаем
с
Код:
if ($iteminfo[name]=="addenergy10") $for_add="10";
elseif ($iteminfo[name]=="addenergy30") $for_add="30";
elseif ($iteminfo[name]=="addenergy60") $for_add="60";
на
Код:
if ($iteminfo[name]=="addenergy10") $for_add="10";
elseif ($iteminfo[name]=="addenergy50") $for_add="50";
elseif ($iteminfo[name]=="addenergy100") $for_add="100";
elseif ($iteminfo[name]=="addenergy200") $for_add="200";

в magic.php
с
Код:
// ----- # Свитки восстановления энергии # ----- //
if ($iteminfo['name'] == "addenergy100") {
    include("inc/magic/addenergy.php");
на
Код:
// ----- # Свитки восстановления энергии # ----- //
 if ($iteminfo['name'] == "addenergy10" || $iteminfo['name'] == "addenergy50" || $iteminfo['name'] == "addenergy100" || $iteminfo['name'] == "addenergy200"){
    include("inc/magic/addenergy.php");
добовляем абилы в тоблици 'Здесь клан'' -видите свой клан

Код:
INSERT INTO `abils` VALUES (10, 'addenergy10', 'Здесь клан'', 0, 100);
INSERT INTO `abils` VALUES (10, 'addenergy50', 'Здесь клан'', 0, 100);
INSERT INTO `abils` VALUES (10, 'addenergy100', 'Здесь клан'', 0, 100);
INSERT INTO `abils` VALUES (10, 'addenergy200', 'Здесь клан'', 0, 100);

и добовляем вещи тип свитков в итемы

Код:
INSERT INTO `items` VALUES ('addenergy10', 'Восстановление 10 mp', 170, 12, '', '', 4, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 'Восстановление уровня маны персонажа на 10', 0, 0, 0);

INSERT INTO `items` VALUES ('addenergy50', 'Восстановление 50 mp', 170, 12, '', '', 4, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 'Восстановление уровня маны персонажа на 10', 0, 0, 0);

INSERT INTO `items` VALUES ('addenergy100', 'Восстановление 100 mp', 170, 12, '', '', 4, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 'Восстановление уровня маны персонажа на 10', 0, 0, 0);

INSERT INTO `items` VALUES ('addenergy200', 'Восстановление 200 mp', 170, 12, '', '', 4, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 'Восстановление уровня маны персонажа на 10', 0, 0, 0);
добовляем в магазин тока 10МП так как думаю абилами оставить остольное
INSERT INTO `shop` VALUES (18, 'addenergy10', 997)
и придумиваем картинку к ниму и пихаем по токому пути i/items/addenergy10.gif
вот моя версия [attachment=55:attachment]



банком поделитесь.... именно edit.php in.php
 
при пириходов в подземелье ругался постояяно тока не мог словить что за эррор после постояяных переходов заметил краем глаза где разполагаеться ... изправил

файл vault.php
с
Код:
                $_ROOM['TO_CHANGE'] = $stat['vault_room'];
                include("chat/change_room.php");

на
Код:
                $_ROOM['TO_CHANGE'] = $stat['vault_room'];
                include("inc/rooms.php");
 
Не знаю будет или нет сдесь уместно .. если нет прошу удалить сообщения..
Как я слышал народ хотел чтоб им в онлайне не показывало Ботов.
Исправляеться Легко и просто.
Заходим в
online.php

меняем ету строку
Код:
print "
Всего <font color=green>[b]OnLine:[/b]</font> [b]".mysql_num_rows(mysql_query("SELECT `id` FROM `players` WHERE `lpv` > '".(time()-180)."' OR `rank` = '60'"))."[/b]</center></body>";

на

Код:
[code]print "
Всего <font color=green>[b]OnLine:[/b]</font> [b]".mysql_num_rows(mysql_query("SELECT `id` FROM `players` WHERE `lpv` > '".(time()-180)."' OR `rank` = '99'"))."[/b]</center></body>";

Теперь ботов в онлайне не видно.
 
inc/main/invent.php
Код:
$object=mysql_query("SELECT objects.* FROM objects, slots WHERE objects.user='".$stat['user']."' AND ".$OBJECTS_SELECT_QUERY." AND slots.id=".$stat['id']." AND objects.id NOT IN (slots.1,slots.2,slots.3,slots.4,slots.5,slots.6,slots.7,slots.8,slots.9,slot
s.10,slots.11,slots.12,slots.13,slots.14,slots.15,slots.16,slots.17,slots.18,slo
t
s.19) ORDER BY time DESC");
на
Код:
$object=mysql_query("SELECT objects.* FROM objects, slots WHERE objects.user='".$stat['user']."' AND ".$OBJECTS_SELECT_QUERY." AND slots.id=".$stat['id']." AND bank=0 AND objects.id NOT IN (slots.1,slots.2,slots.3,slots.4,slots.5,slots.6,slots.7,slots.8,slots.9,slot
s.10,slots.11,slots.12,slots.13,slots.14,slots.15,slots.16,slots.17,slots.18,slo
t
s.19) ORDER BY time DESC");

чтоб из рюгзока пропадали вещи каторые в банке
П.С. спасибо Дик`у за наводку :)
 
Вставляется в /inc/battle/battle.php

После функции "Функция расчёта опыта"
Код:
// ----- # Износ вищей # ----- //
function iznos(){
    global $stat;
     $zap='';
     $masseg='';
     $i=0;
      $chl_obj=mysql_query("SELECT slots.*, objects.id FROM slots, objects WHERE slots.id='".$stat['id']."' AND objects.user='".$stat['user']."' AND objects.id IN (slots.1,slots.2,slots.3,slots.4,slots.5,slots.6,slots.7,slots.8,slots.9,slot
s.10,slots.11,slots.12,slots.13,slots.14,slots.15,slots.16,slots.19)");
       while ($vesh=mysql_fetch_array($chl_obj)){
             $id_vesh[$i]=$vesh['id'];
             $s_vesh[$i]['1']=$vesh['1']; $s_vesh[$i]['2']=$vesh['2']; $s_vesh[$i]['3']=$vesh['3']; $s_vesh[$i]['4']=$vesh['4']; $s_vesh[$i]['5']=$vesh['5']; $s_vesh[$i]['6']=$vesh['6'];
             $s_vesh[$i]['7']=$vesh['7']; $s_vesh[$i]['8']=$vesh['8']; $s_vesh[$i]['9']=$vesh['9']; $s_vesh[$i]['10']=$vesh['10']; $s_vesh[$i]['11']=$vesh['11']; $s_vesh[$i]['12']=$vesh['12'];
             $s_vesh[$i]['13']=$vesh['13']; $s_vesh[$i]['14']=$vesh['14']; $s_vesh[$i]['15']=$vesh['15']; $s_vesh[$i]['16']=$vesh['16']; $s_vesh[$i]['19']=$vesh['19'];
             $i++;
       }
  if (count($id_vesh)>0){
       $rand = mt_rand(1, count($id_vesh));
       srand ((float) microtime() * 10000000);
       $rand_keys = array_rand ($id_vesh, $rand);
       for ($i=0; $i<=count($rand_keys)-1; $i++){
           $rand_key = (count($rand_keys)==1?$rand_keys:$rand_keys[$i]);
           if ($chl_obj=mysql_fetch_array(mysql_query("SELECT id, inf FROM objects WHERE user='".$stat['user']."' AND id = ".$id_vesh[$rand_key].""))){
            $obj_inf=explode("|",$chl_obj['inf']);
              $masseg.=$zap."[b]".$obj_inf[1]."[/b]";
            $zap=", ";
            $obj_inf['6']+=1;
                    // --- # Добавление износа # --- //
                    mysql_query("UPDATE objects SET inf='".$obj_inf['0']."|".$obj_inf['1']."|".$obj_inf['2']."|".$obj_inf['3']."|".$obj_inf['4']."|".$obj_inf['5']."|".$obj_inf['6']."|".$obj_inf['7']."' WHERE id='".$id_vesh[$rand_key]."'");
                    if ($obj_inf['7'] == $obj_inf['6']) {
                        // ----- # Удаляем свиток # ----- //
                        //mysql_query("DELETE FROM objects WHERE id='".$id_vesh[$rand_key]."'");
                        switch ($id_vesh[$rand_key]) {
                              case $s_vesh[$rand_key]['1']: $slots = '1'; break;
                              case $s_vesh[$rand_key]['2']: $slots = '2'; break;
                              case $s_vesh[$rand_key]['3']: $slots = '3'; break;
                              case $s_vesh[$rand_key]['4']: $slots = '4'; break;
                              case $s_vesh[$rand_key]['5']: $slots = '5'; break;
                              case $s_vesh[$rand_key]['6']: $slots = '6'; break;
                              case $s_vesh[$rand_key]['7']: $slots = '7'; break;
                              case $s_vesh[$rand_key]['8']: $slots = '8'; break;
                              case $s_vesh[$rand_key]['9']: $slots = '9'; break;
                              case $s_vesh[$rand_key]['10']: $slots = '10'; break;
                              case $s_vesh[$rand_key]['11']: $slots = '11'; break;
                              case $s_vesh[$rand_key]['12']: $slots = '12'; break;
                              case $s_vesh[$rand_key]['13']: $slots = '13'; break;
                              case $s_vesh[$rand_key]['14']: $slots = '14'; break;
                              case $s_vesh[$rand_key]['15']: $slots = '15'; break;
                              case $s_vesh[$rand_key]['16']: $slots = '16'; break;
                              case $s_vesh[$rand_key]['19']: $slots = '19'; break;
                        }
                        mysql_query("UPDATE slots SET slots.".$slots."=0 WHERE slots.id='".$stat['id']."'");
                        $obj_inf['3'] = 0;
                    }
        }
     }
  }
                if ($masseg!=''){
                $masseg = "Ваши Вещи приобрели единицу износа: ".$masseg;
                return $masseg;
                }
}
// ----- Конец ----- //
Подключается где пройгрыш или победа сразу после вывода в чат
Код:
$masseg = iznos();
if ($masseg) insert_msg ($masseg,"","","1",$stat['user'],"",$stat['room']);

Обсуждение тут
http://webdesign.forever.kz/forum/index.php?showtopic=543
 
Решил разместить в 1 теме все моды для ИВ в 1 теме дабы уменьшить флуд.

Итак начнём

Код:
1)Одевание ножа на место щита.
Если типы:
1 - Меч
2 - Щит
3 - Нож

А слоты:
1 - Меч
2 - Щит

То в inc/mail/functions.php прописать:
Код
case 1: $slot = 1; break;
case 2: $slot = 2; break;
case 3:  if (!$slot_inf['slot1']) $slot = 1;
         elseif (!$slot_inf['slot2']) $slot = 2;
         else $slot = 2; break;

Поясняю...
case N - тип предмета.
$slot - слот.
Код
case 1: $slot = 1; break;
Если тип предмета "Меч", то он при одевании обязательно одевается на слот 1.
Код
case 3:  if (!$slot_inf['slot1']) $slot = 1;
         elseif (!$slot_inf['slot2']) $slot = 2;
         else $slot = 2; break;

Если тип предмета "Нож", то он сначала проверяет - занет ли 1 слот чемнибуть, если не занят, то одевается на 1 слот, а если занят, то проверяет занят ли 2 слот. Даже если второй слот занят - нож всеравно залазиет на 2 слот.

2) Проблема с инструментами
Нас интересует только вот эта строка (у всех разная)
Код:
$instr = mysql_query("SELECT * FROM objects, slots WHERE objects.user='".$stat['user']."' AND slots.id=".$stat['id']." AND objects.tip=15 AND objects.min='1|0|0|0|0|0|0|0' AND objects.id IN (slots.3)");
Из неё мы видим что скрипт ищет соответствие с этим инструментом. Значит в базе мы должны иметь вот такие данные
Код:
tip=15
min='1|0|0|0|0|0|0|0'
Вот и всё

3) Если у вас е работает банк то добавьте в начале файла функцию
Код:
ob_start()
и скорее всего ваша проблема изчезнет.

4) Вывод знака зодиака (в inf.php)
Код:
function get_znak ($b_date) {
$date = strtotime($b_date);
$d = date("j", $date);
$m = date("n", $date);
$znak = array ("Козерог","Водолей","Рыбы","Овен","Телец","Близнецы","Рак","Лев","Дева","Весы","Скорпион","Стрелец");
$na_date = array (22,15,11,18,13,21,20,10,16,30,22,17);
return $d < $na_date[$m] ? $znak[$m-1] : $znak[$m%12];

}

$q = "SELECT birth FROM users WHERE id='".$_SESSION['id']."'";
$r = mysql_fetch_array(mysql_query($q));
echo "<img src='./images/".echo get_znak($r['birth']).".gif'>";

5) Опыт в боях.
Если вы используете базовый опыт то нужно в таблице levels заменять кол-во опыта в строке base

6) Зелья. Из-за довольно большого объёма кода будет ссылка. http://dapf.ru/index.php?showtopic=4281

7) Сколько времени прошло с момента регистрации
Код:
function date_to_unixtime($datef) {
if (!preg_match('/^(\\d{2}).(\\d{2}).(\\d{2}) (\\d{2}):(\\d{2})$/', $datef, $matches)) {
return NULL;
}
return mktime($matches[4], $matches[5], 0, $matches[2], $matches[1], $matches[3]);
}

$time=floor(time() - date_to_unixtime($info['birthdate']));
$d=floor($time/86400);
$h=floor(($time-$d*86400)/3600);
$m=floor(($time-$h*3600-$d*86400)/60);

echo "Персонаж зарегистрировался в игре ".$d." дн. ".$h." ч. ".$m." мин. назад";
Для тех кто не понял это в inf.php

8) Тип от 15 до 22 но без 21
Код:
case 6: $OBJECTS_SELECT_QUERY = "objects.tip in (15,16,17,18,19,20,22)"; break;

9) Награды
Код:
Таблица в базе : nagrads
Поля: id (int 3 auto_increment) | id_user | name (varchat 30) | description (text)
В любом файле запрос в базу. SELECT * from nagrads where дальше условия...
В админке дописываешь функцию..которая будет добавлять будет в nagrads значения..

id (int 3 auto_increment) - автоматом
| id_user | Юзер которому вручили
name (varchat 30) Название награды
| description (text) Её описание
добавить мможно img и уже картинками наград оперировать

10) Увеличение\уменьшение окна чата
Код:
<HTML>
<HEAD>
<BODY background=images/line.gif topmargin=0 bottommargin=0 marginwidth=0 marginheight=0 leftmargin=0 rightmargin=0>
<div align=center><img src=images/up.gif alt="Увеличить окно чата" onclick="java script:top.change_chatsize('1')" style="cursor:hand"><img src=images/dv.gif alt="Уменьшить окно чата" onclick="java script:top.change_chatsize('0')" style="cursor:hand"></div>
</BODY>
</HTML>

11) Вывод хп\ма и авто регенерация (специально для ....)(для кого он сразу понял)
Код:
$hp_max=$stat['hp_max'];
$mn_max=$stat['mn_max'];
[color="#999999"]###########################################################
$time_hp = $stat[cure_hp];
if ($stat[hp_max]>$stat[hp_now]){
   if ($stat[cure_hp] == 0) {
      $time_hp = floor($now + ($stat[hp_max]-$stat[hp_now])*(1200/$stat[hp_max]));
      $q=mysql_query("UPDATE players SET cure_hp='$time_hp' WHERE id='$stat[id]'");
   }
   else {
     if ($now >= $stat[cure_hp]) {
      mysql_query("UPDATE players SET hp_now=$stat[hp_max], cure_hp='0'  WHERE id='$stat[id]'");
     }
     else {
      $t = ($stat[hp_max]-$stat[hp_now])*(1200/$stat[hp_max]);
      $hp_need = $stat[hp_max]-$stat[hp_now];
      $x = $t / $hp_need;
      $t1 = $time_hp-$t;
      $t_need = $t-($time_hp-$now);
      $hp = floor($t_need / $x);
      $hp_s = $hp+$stat[hp_now];
      $q=mysql_query("UPDATE players SET hp_now=hp_now+$hp WHERE id='$stat[id]'");
     }
}
}
else{
$SS = mysql_query("UPDATE players SET cure_hp='0' WHERE id='$stat[id]'");
}
if ($hp > 0) {$stat[hp_now] = $stat[hp_now]+$hp;}
###########################################################
###########################################################
$time_mn = $stat[cure_mn];
if ($stat[mn_max]>$stat[energy_now]){
   if ($stat[cure_mn] == 0) {
      $time_mn = floor($now + ($stat[mn_max]-$stat[energy_now])*(1200/$stat[mn_max]));
      mysql_query("UPDATE players SET cure_mn='$time_mn' WHERE id='$stat[id]'");
      echo "123";
   }
   else {
     if ($now >= $stat[cure_mn]) {
      mysql_query("UPDATE players SET energy_now=$stat[mn_max], cure_mn='0'  WHERE id='$stat[id]'");
     }
     else {
      $t = ($stat[mn_max]-$stat[energy_now])*(1200/$stat[mn_max]);
      $mn_need = $stat[mn_max]-$stat[energy_now];
      $x = $t / $mn_need;
      $t1 = $time_mn-$t;
      $t_need = $t-($time_mn-$now);
      $mn = floor($t_need / $x);
      $mn_s = $mn+$stat[energy_now];
      mysql_query("UPDATE players SET energy_now=energy_now+$mn WHERE id='$stat[id]'");
     }
}
}
else{
$SS = mysql_query("UPDATE players SET cure_mn='0' WHERE id='$stat[id]'");
}
?>
###########################################################[/color]
<body onLoad="setHP(<? echo "$stat[hp_now],$stat[hp_max]"; ?>); setMN(<?echo "$stat[energy_now],$stat[mn_max]";?>)">

<script language="javascript">


var rnd = Math.random();
var delay = 12;
var redHP = 0.33;
var yellowHP = 0.66;
var TimerOn = -1;
var tkHP, maxHP;

function setHP(value, max) {
  tkHP=value; maxHP=max;
  if (TimerOn>=0) { clearTimeout(TimerOn); TimerOn=-1; }
  setHPlocal();
}

function setHPlocal() {
if (tkHP>maxHP) { tkHP=maxHP; }
var sz1 = Math.round((110/maxHP)*tkHP);
var sz2 = 111 - sz1;
if (document.all("HP")) {
     document.HP1.width=sz1;
     document.HP2.width=sz2;
     if (tkHP/maxHP < redHP) { document.HP1.src='img/icon/green.gif'; }
     else {
      if (tkHP/maxHP < yellowHP) { document.HP1.src='img/icon/green.gif'; }
      else { document.HP1.src='img/icon/green.gif'; }
     }
     var s = document.all("HP").innerHTML;
     document.all("HP").innerHTML = s.substring(0, s.lastIndexOf(':')+1) + Math.round(tkHP)+"/"+maxHP;

}
tkHP = (tkHP+(maxHP/100));
if (tkHP<maxHP) { TimerOn=setTimeout('setHPlocal()', delay*1000); }
else { TimerOn=-1; }
}

var rnd2 = Math.random();
var delay2 = 12;
var TimerOn2 = -1;
var tkMN, maxMN;

function setMN(value, max) {
  tkMN=value; maxMN=max;
  if (TimerOn2>=0) { clearTimeout(TimerOn2); TimerOn2=-1; }
  setMNlocal();
}

function setMNlocal() {
if (tkMN>maxMN) { tkMN=maxMN; }
var sz1 = Math.round((110/maxMN)*tkMN);
var sz2 = 111 - sz1;
if (document.all("MN")) {
     document.MN1.width=sz1;
     document.MN2.width=sz2;
     document.MN1.src='img/icon/blue.gif';
     var s = document.all("MN").innerHTML;
     document.all("MN").innerHTML = s.substring(0, s.lastIndexOf(':')+1) + Math.round(tkMN)+"/"+maxMN;

}
tkMN = (tkMN+(maxMN/100));
if (tkMN<maxMN) { TimerOn2=setTimeout('setMNlocal()', delay2*1000); }
else { TimerOn2=-1; }
}

</script>


<?
$widthhp=$stat['hp_now']/$hp_max*215;
if ($widthhp==0) $widthhp+=2;
if ($widthhp==1) $widthhp+=1;
if ($widthhp>1) $widthhp-=1;

$energy_max=$stat['power']*5+$stat['energy'];
$widthenergy=$stat['energy_now']/($stat['power']*5+$stat['energy'])*215;
if ($widthenergy==0) $widthenergy+=2;
if ($widthenergy==1) $widthenergy+=1;
if ($widthenergy>1) $widthenergy-=1;

include("f/pl/inf.php");
?>

красный  - само лечение, зеленый - вывод набегающей полосочки

12) Природа
Брать http://dapf.ru/index.php?showtopic=6348&am...amp;#entry42029
Настройка тамже.

13) Добавление нового города в пирроде.
Заходим в nature.php и находим там строку
Код:
if($stat["cord"]=='p_0_0_'){echo"<input type=button onclick='window.location=\"nature.php?room=0\"' value='Войти в город' class=input style='WIDTH: 200px'>

";}

Копируем её и меняем координаты второго города. Всё))

P.S будет пополняться!
P.SS за флуд и все сообщения кроме дополнительных модов и фиксов будут удаляться, а их авторы будут получать предупреждения!
ЗЫЫЫ ВСЕМ!!! Если меня снимут с модеров то другой модер чтоб тоже выдовал!!!( ЗЫЫЫЫ я уже сам с модов ушол :))
 
14) Добавление\Удаление слотов

inc/main/alt.php
найти
Код:
// Всплывающее описание предметов
$tip=array(1 => 'Оружие', 2 => 'Доспех', 3 => 'Кольцо', 4 => 'Ожерелье', 5 => 'Щит', 6 => 'Обувь', 7 => 'Пояс', 8 => 'Шлем', 9 => 'Перчатки', 10 => 'Нарукавники', 11 => 'Браслет', 12 => 'Магия');

добавить или удалить новый ключ
Код:
// Всплывающее описание предметов
$tip=array(1 => 'Оружие', 2 => 'Доспех', 3 => 'Кольцо', 4 => 'Ожерелье', 5 => 'Щит', 6 => 'Обувь', 7 => 'Пояс', 8 => 'Шлем', 9 => 'Перчатки', 10 => 'Нарукавники', 11 => 'Браслет', 12 => 'Магия', 13 => 'Наколенники');
или для удаления слотов для магии (хотя удалять в принципе не обязательно. главное просто потом не напутать с типами предметов в базе данных)

Код:
// Всплывающее описание предметов
$tip=array(1 => 'Оружие', 2 => 'Доспех', 3 => 'Кольцо', 4 => 'Ожерелье', 5 => 'Щит', 6 => 'Обувь', 7 => 'Пояс', 8 => 'Шлем', 9 => 'Перчатки', 10 => 'Нарукавники', 11 => 'Браслет');



inc/main/functions.php
найти

Код:
case 4: $slot = 2; break;

добавить

Код:
case 25: $slot = 25; break;

или удалить

Код:
case 4: $slot = 2; break;


тут немного обьясню структуру.
case 4: - здесь 4 это то, что находится в базе данных в поле tip. $slot = 2; - номер слота в который оденется вещь. тоесть первое число - тип предмета, второе - слот в который одеваем

делаем поиск в файлах по тексту slots. в запросах где встречается выбор слотов например как здесь

Код:
$slot_inf=mysql_fetch_array(mysql_query("SELECT `3` as `slot3`,`5` as `slot5`,`6` as `slot6`,`7` as `slot7`,`8` as `slot8`,`10` as `slot10`,`11` as `slot11`,`12` as `slot12`,`16` as `slot16`,`17` as `slot17` FROM slots WHERE id=".$stat['id'].""));

добавляем или удаляем нужный слот. циферка соответственно должна совпадать с $slot из предыдущего шага.

в inc/main/obj.php удаляем / добавляем
Код:
$obj19=mysql_fetch_array(mysql_query("SELECT * FROM objects WHERE onset='w19' and player='$getinfo'"));
if ($obj19[name]=="") $obj[19]="w19"; else $obj[19]="$obj19[name]";


ну и в файлах inf.php добавляем / удаляем
Код:
view_item('".$w_img['13']."','w13','60','40',\"".$w['13']."\");

вместо 13 - id cлота :) 60 и 40 - высота и ширина рисунка

© UnDeaD
 
15) Избавление от смешивания боёв.
Для того чтобы избавиться от данной неприятности стоит проделать геморную, зато полезную работу.

1. в offers добавляем ячейку offers_hash VARCHAR (255)
2. делаем time аутоинкрейментским ключем
3. везде, где заносится инфа в offers добавляем в созданую ячейку хеш, который мы получим как

Код:
$hash = time().'|'.$stat['user'].|.1'; #(2/3/4/5) в зависимости от типа боя, для надежности

4. при занесении в participants делаем выборку с offers, чтобы выбрать time, который будем заносить в participants, по нашему $hash
5. заносим правильные данные в participants и battles.

Это необходимо будет это проделать везде в заявках на бой а также там, где у вас есть нападения на ботов :)

© UnDeaD
==========================================================

Способ 2:
1) Добавляем в offers поле id и делаем его авто инкриментным.
2) Далее в заявках и скриптах старта боя выносим запрос на INSERT в offers выше других и после него добавляем строчку
Код:
$batt_id = mysql_insert_id();

Что это нам дало? В $batt_id мы получаем уникальный идентификатор боя после вставки заявки.
Код:
mysql_insert_id() - возвращает число автоикриментного поля после вставки

3) Далее $batt_id используем в participants.time, battles.offer и players.battle и нужно немного отредактить запросы из заявок, ибо поле time будет использоваться только для обозначения времени боя, а id как уникальный идентификатор

© AlexPro
 
АНТИФЛУД.. Тестировал на Newlord.ru_by_FatalitY

Открываем файл chat.php (лежит в корне). Сразу после
Код:
<?
Добавляем
Код:
session_start();
 if ( !isset($_SESSION['msg_time']) || $_SESSION['msg_time']=='' ) {
$_SESSION['msg_time']=time()-3;
}
Далее находим
Код:
if ($_GET['action']=="send") {
и добавляем проверку
Код:
    $check=time()-$_SESSION['msg_time'];
    if ( $check >= 3 ) {
и после
Код:
  $mess_id=$_POST['message_id'];
еще 2 строчки
Код:
  $_SESSION['msg_time']=time();
  }


В случае если 3 секунды не прошло, сообщение просто не отсылается. + у меня оно остается напечатанным в строке. Вполне удобно.

П.С. работа за спасибо


//STEAM
© AndrjuXA
 
Добавление зданий\локаций

1) В самом здании добавляеш строку(или ищещ если таковая имеется)
Код:
elseif ($stat[room]!="ххх") { header("Location: main.php"); exit; }

2) Прописываеш эту комнату в inc/rooms.php

3) В main.php (который в корне) добавляеш где идёт
Код:
if (empty($set)) {
    if ($stat['room']==ххх) header("Location: world.php");

После этих строк добавляеш
Код:
    if ($stat['room']==ххх) header("Location: ххх.php");

Затем в конце main.php добавляеш (там везде пахожий код будет поэтому найдёш)
Код:
 elseif ($stat['room']==ххх) header("Location: ххх.php");

4) Заходим в world.php (или street.php или на свой) и прописываем там

Код:
###ххх
if ($room=="ххх") {

mysql_query("UPDATE players SET room=".$room.", lpv=".$now." WHERE user='".$stat['user']."'");

echo"
<script LANGUAGE=\"JavaScript\">
<!--
top.frames['main'].location = \"ххх.php\";
top.frames['online'].location = top.frames['online'].location;
top.frames['chat'].location = top.frames['chat'].location;
//-->
</SCRIPT>
";

exit();

}
###

и затем находим код вывода картинок на локацию ( при помощи <div>) илиже как делается во многих версиях ИВ
Код:
<td width='50%' align='center'><input type=button class=input value='ххх' onclick='top.frames[\"main\"].location = \"world.php?room=ххх\"'></td>
 
Во Время боя призвать бота.
Код:
<?

$BotName = "Босс";

$BotInfo = mysql_fetch_array(mysql_query("SELECT * FROM players WHERE user='".$BotName."' LIMIT 1"));


if ($chl['user'] == $BotInfo['user'])
        $nms="Нападение на самого себя - это уже мазохизм...";
//elseif ($ctime-$chl['lpv'] > 60)
       // $nms="Персонаж [u]$login[/u] отстутствует!";
elseif ($BotInfo['hp_now'] < (($BotInfo['hp']+$BotInfo['vitality']*5)*0.33))
        $nms="Скелет еще не собрал свои кости!";
elseif ($chl['hp_now'] <= 5)
        $nms="Персонаж [u]$login[/u] слишком слаб для поединка!";
else {

        include("inc/magic/drop.php");

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

        if ($chl['battle']) {

                mysql_query("LOCK TABLES participants WRITE, battles WRITE");

                $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;
                }


                mysql_query("INSERT INTO participants (`time`, `id`, `side`, `base`,`hp`) values('".$prt['time']."', '".$BotInfo['id']."', '".$side."', '".$levels['base']."', ".$BotInfo['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'].", ".$now.", ".$b_id_id['id'].", '', '', '', '', NULL, '', '<script language=JavaScript>show_inf(\"".$BotInfo['user']."\",\"".$BotInfo['id']."\",\"".$BotInfo['level']."\",\"".$BotInfo['rank']."\",\"".$BotInfo['tribe']."\");</script> вмешался в поединок!')");

                mysql_query("UNLOCK TABLES");

                mysql_query("UPDATE players, offers SET players.battle=".$prt['time'].", players.side=".$side.", offers.type=2 WHERE players.id=".$BotInfo['id']." && offers.time=".$prt['time']."");
        }
        else {

                $time = $now + 600;

                $chl_base=mysql_fetch_array(mysql_query("SELECT base FROM levels WHERE level=".$chl['level'].""));

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

                mysql_query("LOCK TABLES offers WRITE");
                while (mysql_fetch_array(mysql_query("SELECT * FROM offers WHERE time=".$time."")))
                        $time++;

                mysql_query("INSERT INTO offers (time, type, size_left, size_right, done, timeout, blood) values(".$time.",1,1,'1','1','180', '1')");
                mysql_query("UNLOCK TABLES");

                mysql_query("INSERT INTO participants (`time`,`id`,`side`,`base`,`hp`) VALUES (".$time.",".$BotInfo['id'].",0,".$levels['base'].",".$BotInfo['hp_now'].")");

                mysql_query("INSERT INTO participants (`time`,`id`,`side`,`base`,`hp`) VALUES (".$time.",".$chl['id'].",1,".$chl_base['base'].",".$chl['hp_now'].")");

                mysql_query("INSERT INTO battles (offer, time, id, attacker, defender, kick, block, type, damage, comment) values (".$time.", ".$time.", '0', '', '', '', '', NULL, '', '[i]Часы показывали [u]".$bdate."[/u] когда бой начался!')");

                mysql_query("UPDATE players SET battle=".$time.", side=0 WHERE id='".$BotInfo['id']."'");
                mysql_query("UPDATE players SET battle=".$time.", side=1 WHERE id='".$chl['id']."'");
        }

        require_once("inc/chat/functions.php");
        insert_msg("Мертвый [b][u]".$BotInfo['user']."[/u][/b] был призван против Вас, если вы не убете его получите травму!","","","1",$chl['user'],"",$chl['room']);

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

?>

© maks-0906
 
1)Создаём файл например inc/magic/хххххх.php
2)В файле inc/magic/magics.php Прописываем


Код:
 // ----- # свиток призыва бота # ----- //
if ($iteminfo['name'] == "priziv_bot") {
    if ($stat['battle'] == $chl['battle'] AND $stat['battle']!='') include("inc/magic/xxxxxx.php");
        else $nms="Для использования нужно находиться в одном бою с персонажем!";


3)Создаём в БД в таблице items сам свиток !

Код:
INSERT INTO `items` VALUES ('priziv_bota', 'Призвать бота', 10, 12, '', '', 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 'Свиток позволяет призвать бота во время боя !', 0, 0, 0, 0);

4)Добавляем в магазин

Код:
INSERT INTO `magshop` VALUES (хх, 'priziv_bota', 998);

5)В папке в картинками создаём картинку свитка имя у неё автоматически будет priziv_bota.gif

6)Покупаем свиток в магазине и радуемся жизни.
 
Скрипт продования рассовых вещей за СЗ:

1) nshop.php

Код:
if (!empty($buy)) include("inc/shop/buy_tt.php");
        if (!empty($sale))
                include("inc/shop/sale_fnc_tt.php");

Код:
print"<table width=100% cellspacing=0 cellpadding=5 border=0>
<tr>
<td>  [b]У Вас на счету:[/b] [u]".$stat['f_credits']."[/u] [b]сз.[/b]
</td>
<td align=right valign=top>

        <img src='i/shop_sale.gif' style='CURSOR: Hand' alt='Продать предметы' onclick='window.location.href=\"nshop.php?otdel=200&tmp=\"+Math.random();\"\"'>


<img src='i/refresh.gif' style='CURSOR: Hand' alt='Обновить' onclick='window.location.href=\"nshop.php?otdel=$otdel&tmp=\"+Math.random();\"\"'>

<img src='i/back.gif' style='CURSOR: Hand' alt='Вернуться' onclick='window.location.href=\"world.php?room=0&tmp=\"+Math.random();\"\"'> 

</td>
</tr>
</table>";
думаю найдёте куда поставить (уже готовый код, замените только на старый)

в конце nshop.php

Код:
        <FIELDSET><LEGEND><a class=ch>";
        if ($otdel != 200) echo"Ассортимент товаров отдела \"".$otdels[$otdel]."\" ";
        else echo"Ассортимент Ваших предметов ";

        echo"</a></LEGEND>

        <table width=100% cellspacing=0 cellpadding=5 border=0>
        <tr>
        <td>

        <table width=100% cellspacing=0 border=0 cellpadding=5 style='border-style: outset; border-width: 2'>
        <tr>
        <td>
        ";

        if ($otdel == 200) include('inc/shop/sale_tt.php');
        else include('inc/shop/_otdels_tt.php');

        echo"
        </td>
        </tr>
        </table>

        </td>
        </tr>
        </table>

        </FIELDSET>



        </td>
        </tr>
        </table>
        ";

        echo"
        </td>
        </tr>
        </table>";
}
?>

тоже заменить!

2) inc/main/shop
sale_tt.php - заменить весь код $it_sost на:
Код:
$it_sost=mysql_query("SELECT objects.* FROM objects, slots where objects.user='".$stat['user']."' AND objects.present=0 AND objects.min_rase>=1 && objects.min_rase <=4 AND slots.id=".$stat['id']." && objects.id NOT IN (slots.1,slots.2,slots.3,slots.4,slots.5,slots.6,slots.7,slots.8,slots.9,slot
s.10,slots.11,slots.12,slots.13,slots.14,slots.15,slots.16,slots.17,slots.18,slo
t
s.19) ORDER BY time desc");



sale_fnc.tt.php (файл целиком):
Код:
<?

if (!empty($sale) && is_numeric($sale)) {
    // Продаем
    $sale = addslashes($sale);

    $is_ex=mysql_fetch_array(mysql_query("SELECT objects.`id`,objects.`inf`,objects.`tip` FROM objects, slots WHERE objects.user='".$stat['user']."' AND objects.present=0 && objects.id=".addslashes($sale)." AND slots.id=".$stat['id']." && objects.id NOT IN (slots.1,slots.2,slots.3,slots.4,slots.5,slots.6,slots.7,slots.8,slots.9,slot
s.10,slots.11,slots.12,slots.13,slots.14,slots.15,slots.16,slots.17,slots.18,slo
t
s.19)"));
    
    $is_ex_inf=explode("|",$is_ex['inf']);
    
    if (!empty($is_ex_inf['0'])) {
        if ($is_ex['tip'] != 12) {
            $price=round($is_ex_inf['2']*0.6);
            
            mysql_query("DELETE FROM objects WHERE id=".addslashes($sale)."");
            mysql_query("UPDATE players SET f_credits=f_credits+".$price." WHERE id=".$stat['id']."");
            
            $stat['f_credits']+=$price;
            
            $msg="Вы удачно продали предмет [u]".$is_ex_inf['1']."[/u] за [u]".$price."[/u] сз.";
            
            $is_ex_inf['0'] = "";
        }
        else $msg="Предмет [u]".$is_ex_inf['1']."[/u] не подледжит продаже!";
    }
    else echo"Предмет не найден в Вашем рюкзаке!";
}
?>

buy_tt.php - заменить весь код $result2 на:
Код:
                                                $result2 = mysql_query("INSERT INTO `objects` (`user`,`inf`,`min`,`tip`,`br1`,`br2`,`br3`,`br4`,`br5`,`min_d`,`max_d`,`hp`,`energy`,`strength`,`dex`,`agility`,`vitality`,`razum`,`krit`,`unkrit`,`uv`,`unuv`,`min_rase`,`time`) VALUES ('".$stat['user']."','".$inf."','".$min."','".$buyitem['tip']."','".$buyitem['br1']."','".$buyitem['br2']."','".$buyitem['br3']."','".$buyitem['br4']."','".$buyitem['br5']."','".$buyitem['min']."','".$buyitem['max']."','".$buyitem['hp']."','".$buyitem['energy']."','".$buyitem['strength']."','".$buyitem['dex']."','".$buyitem['agility']."','".$buyitem['vitality']."','".$buyitem['razum']."','".$buyitem['krit']."','".$buyitem['unkrit']."','".$buyitem['uv']."','".$buyitem['unuv']."','".$buyitem['min_rase']."','".time()."')");

3) Создать в таблицы objects создать поле min_rase int(1) not null (по default пусто)

© 6matko

Отдельное спасибо coped от 6matko
 
Деньги после боя.

1) Заходим в inc/battle/battle.php
Там создаём переменную к примеру "add_money"
Затем присваиваем ей определённое значение либо формулу расчета денег (на ваше усмотрение).

Затем ищите где идёт обновление базы победившей команды или игрока и добавляем в запрос вот такой код
Код:
credits=credits + $add_money

Впринципе и всё.

Дроп делается чуть другим образом. Будет время напишу вам самый простой вариант. (делается на контрукции if, else)

P.S если с винтом разберусь к выходным(лил на них) напишу. Если же нет то напишу чуть позже.
 
Цвет ников в списке онлайн (цвет определяется полом) ( Автор Gangman, спасибо мне даже не тыркать, ему тыркайте!!)
ch-online.js:
найдите функцию типо:
Код:
function ch(login,id,align,klan,level) {
добавтье в неё sex, будет так:
Код:
function ch(login,id,align,klan,level,sex) {

ниже добавьте:
Код:
if (sex==1) {sex_col='blue';}
if (sex==2) {sex_col='red';}

найдите что-то типо:
Код:
[url="java script:top.to(\''+login+'\')"]'+login+'[/url]
делайте так:
Код:
[url="java script:top.to(\''+login+'\')"]<font color='+sex_col+'>'+login+'</font>[/url]

online.php:
ищим:
Код:
$psel = mysql_query("SELECT

если у вас SELECT * то нечего не меняйте, а если идут конкретныи поля, например:
Код:
psel = mysql_query("SELECT id, user, ...
то после level, добавьте sex, получится что-то такое: ... level, sex, ... FROM ... (надеюсь поняли)

ищим дальше
Код:
print"\nch(
такую функцию
и оптяь после level добовляем sex, должно быть такое:

Код:
... ,'".$pl['level']."','".$pl['sex']."', ...
возможно у кого-то не $pl переменная а другаю, то меняйте как надо

Надеюсь поняли как делать )))

ЕЩЁ РАЗ ПРЕДУПРЕЖДАЮ, БЛАГОДАРНОСТЬ К Gangman !! Тыркнуть можно в этой теме: http://dapf.ru/index.php?showtopic=6965&am...amp;#entry46402
 
Мод анти-нюб :) Сразу скажу что мод прикольный, но и почти бесполезный :) но всёже мод))

1) Создаём новую таблицу в базе (я назвал def)
2) В ней делаем 2 поля id и def
3) В поле id кидаем значение 1, а в def любой текст(я написал "Game_is_online_AND_all_are_good_but_here_work_anti_noob_mod_by_STEAM_for_da
fp.us")(без кавычек)
4) Заходим в любой файл. Я выбрал enter.php поскольку именно там осуществляется авторизация.

И сразу после
Код:
<?
define('INSIDE', true);
вставляем
Код:
include("inc/db_connect.php");
$anti_noob=mysql_query("SELECT * FROM def WHERE id='1'");
$nt=mysql_fetch_array($anti_noob);

if($nt['def']!='Game_is_online_AND_all_are_good_but_here_work_anti_noob_mod_by_STEAM_for_daf
p.us')
{
echo "Вы стали обладателем звания \"Нюб\" поскольку не смогли правильно настоить игру! С ув. STEAM";
}
else
{
5) В конце кода т.е перед ?> ставим фигурную скобку( } )


И всё) Экспериментируем))
 
Выподания зм в подземелье
Код:
$res=rand(0,9); 
                                        if ($res == 5) { 
                                        $resurs=array(); 
                                        $resurs[0]="1"; 
                                        $resurs[1]="2"; 
                                        $resurs[2]="3"; 
                                        $resurs[3]="4"; 
                                        $resurs[4]="5"; 
                                        $resurs[5]="6"; 
                                        $resurs[6]="7"; 
                                        $resurs[7]="8"; 
                                        $res_type=$resurs[rand(0,7)]; 
                                        mysql_query("UPDATE players SET credits=credits+$res_type WHERE user='".$stat['user']."'"); 

                                                                            require_once("inc/chat/functions.php"); 
                                insert_msg("Поздравляем! Вы нашли золото ".$res_type." зм!","","","1",$stat['user'],"",$stat['room']); 
                                        } 
                                        else { 
                                        require_once("inc/chat/functions.php"); 
                                insert_msg("Вы ничего не нашли!","","","1",$stat['user'],"",$stat['room']);
 
Скриптик удаления "мертвых душ"
Скрипт делает выборку игроков, кто не появлялся в игре больше месяца и тех кто зарегился, но в игру не входил

Код:
<? 

include("inc/db_connect.php"); 

if ($stat['admin'] != 1) { 

/* 
echo " 
<td valign=center> 
<center><input type='button' value='Удалить всех' class=standbut style='WIDTH: 265px' onclick='window.location=\"delusers.php?use=\"+Math.random();\"\"'> 
</td> "; 
*/ 

echo "<FIELDSET width=100%><LEGEND align=center width=100%>[b] Зачистка юзеров </LEGEND>"; 

echo "<table width=100% border=1>"; 
echo " 
<tr> 
<td align=center height=30 valign=center>[b]Дата</td> 
<td align=center height=30 valign=center>[b]ID</td> 
<td align=center height=30 valign=center>[b]Логин</td> 
<td align=center height=30 valign=center>[b]Уровень</td> 
<td align=center height=30 valign=center>[b]Удалить</td> 
</tr> 
"; 

$otchet=mysql_query("SELECT user, ip, id, lpv, level, rank FROM players WHERE (`lpv` < ".(time()-2592000)." ) and (rank < 60 OR rank >70) order by LPV asc LIMIT 0,50"); 

for ($i=0; $i<mysql_num_rows($otchet); $i++) { 
$otchets=mysql_fetch_array($otchet); 

                $dead=$otchets["user"]; 
                $lpv= date("d.m.y H:i",$otchets[lpv]); 
                $level=$otchets["level"]; 
                $id=$otchets["id"]; 

print " 
<tr> 
        <td valign=center class=und nowrap> 
        $lpv 
"; 

print " 
        </td> 
        <td valign=center class=und nowrap> 
        $id 

        </td> 
        <td valign=center class=und nowrap> 
        $dead 

        </td> 
        <td valign=center class=und> 
                $level  
        </td> 
        <td valign=center> 
                [url="'?set=deluser&act=del&target=$id'><img"][/url] 
        </td> 
</tr> 
"; 
} 

if ($act=="del") { 
mysql_query("delete from players where id='$target'"); 
mysql_query("delete from slots where id='$target'"); 

print "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=delusers.php\">"; 
} 
} 
?>

//Stan: оформляйте тегом свои коды!!! [code ] [ /code]
 
Магия Воскрешения
Код:
<?
$participant=mysql_fetch_array(mysql_query("SELECT `hp`, `damage`, `side` FROM participants WHERE time='".$chl['battle']."' AND id='".$chl['id']."' LIMIT 1"));

$chl_obj=mysql_fetch_array(mysql_query("SELECT SUM(objects.`hp`) as `hp` 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,slot
s.10,slots.11,slots.12,slots.13,slots.14,slots.15,slots.16,slots.17,slots.18,slo
t
s.19) LIMIT 1"));

$ChlSkills = explode("|",$stat['rase_skill']);
$chl['gnom']=$ChlSkills['3']*5;

$chl['hp']+=$chl_obj['hp'];
$h_hpmax=$chl['vitality']*5+$chl['hp'];
if ($chl['hp_now'] != 0) $nms="Персонаж живой!";
elseif ($participant['hp'] != 0) $nms="Персонаж живой!";
else{
mysql_query("UPDATE participants SET hp=$h_hpmax WHERE time='".$chl['battle']."' AND id='".$chl['id']."'");
mysql_query("update players set hp_now=$h_hpmax where id='".$chl['id']."'");

$MesgForAdd = "Вас воскресил маг [b][u]$stat[user][/u][/b]";
include("inc/magic/drop.php");

require_once("inc/chat/functions.php");
insert_msg("$MesgForAdd","","","1",$chl['user'],"",$chl['room']);

$nms="Свиток магии прочитан. Персонаж [b][u]$chl[user][/u][/b] теперь живой!";

$alldone=1; 
}

?>


1)Создаём файл например inc/magic/voskr.php
2)В файле inc/magic/magics.php Прописываем

Код:
 // ----- # свиток воскрешения # ----- //
if ($iteminfo['name'] == "voskr") {
    if ($stat['battle'] == $chl['battle'] AND $stat['battle']!='') include("inc/magic/voskr.php");
        else $nms="Для использования нужно находиться в одном бою с персонажем!";

3)Создаём в БД в таблице items сам свиток !

Код:
INSERT INTO `items` VALUES ('voskr', 'Свиток Воскрешения', 10, 12, '', '', 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 'Свиток позволяет воскрешать персонажей во время поединка !', 0, 0, 0, 0);

4)Добавляем в магазин

Код:
INSERT INTO `mshop` VALUES (7, 'voskr', 998);

5)В папке в картинками создаём картинку свитка имя у неё автоматически будет voskr.gif

P.S Я у себя зделал всё работает

-----------------------------



Ледяной шторм

Код:
<?
if ($iteminfo['name'] == "showstorm20") {$for_add1 = 20; $energy = 5;}
elseif ($iteminfo['name'] == "showstorm30") {$for_add1 = 30; $energy = 10;}
elseif ($iteminfo['name'] == "showstorm40") {$for_add1 = 40; $energy = 15;}

$chl_obj=mysql_fetch_array(mysql_query("SELECT SUM(objects.`hp`) as `hp` 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,slot
s.10,slots.11,slots.12,slots.13,slots.14,slots.15,slots.16,slots.17,slots.18,slo
t
s.19,slots.20) LIMIT 1"));
$ChlSkills = explode("|",$stat['rase_skill']);
$chl['gnom']=$ChlSkills['3']*5;
$chl['hp']-=$chl_obj['hp'];
$h_hpmax=ceil(($chl['vitality']*5-$chl['hp'])*(1-($chl['gnom']/100)));
if ($stat['user'] == $chl['user']) $nms="Вы не можете атаковать сами себя!";
elseif ($chl['hp_now'] == 0 && $chl['battle']) $nms="Извините но это не ЖИВАЯ ВОДА, мертвому она никчему";
elseif ($stat['energy_now'] <= $energy) $nms="У вас не хватает маны!";

else {
    $damage = rand(0,5);
    $for_add = $for_add1 + $damage;
if ($chl['hp_now'] - $for_add <= 0){
        $hp_query=0;
    $hpplus=$chl['hp_now'];}
else{
        $hp_query=$chl['hp_now']-$for_add;
    $hpplus=$for_add;}

if ($stat[user]!="$chl[user]") $MesgForAdd = "Маг [b][u]$stat[user][/u][/b] использовал против вас ледяной шторм... Холод поглотил ваши жизни [b][u]-$hpplus НР<u>[/b]";
else $MesgForAdd = "Наверное вы  недостаточно  обучены магии... Вы прочитали свиток и замёрзли  на ... : [b]<u>-$hpplus НР[/u][/b]";

        include("inc/magic/drop.php");

        require_once("inc/chat/functions.php");
        insert_msg("$MesgForAdd","","","1",$chl['user'],"",$chl['room']);
if ($stat['user'] == $chl['user'] && $stat['battle'] == NULL) $stat['hp_now'] = $hp_query;

mysql_query("update players set hp_now=".$hp_query." where id='".$chl['id']."'");
mysql_query("update players set energy_now=energy_now-$energy where id='".$stat['id']."'");

if ($chl['battle']) 
mysql_query("update participants set hp=".$hp_query." where id='".$chl['id']."'");
$nms="Свиток ледяного шторма прочитан ...
Персонажа [u]".$chl['user']."[/u] ударила волна холода и он замёрз на [u]-$hpplus HP[/u]";

$alldone=1;                       
}

?>


1)Создаём файл например inc/magic/showstorm.php
2)В файле inc/magic/magics.php Прописываем]

Код:
// ----- # Свитки ледяного удара # //----- 
if ($iteminfo['name'] == "showstorm20" || $iteminfo['name'] == "showstorm30" || $iteminfo['name'] == "showstorm40") {
    if ($stat['battle'] == $chl['battle']) include("inc/magic/showstorm.php");
        else $nms="Для использования нужно находиться в одном бою с персонажем!";
}

3)Создаём в БД в таблице items сами свитки !


Код:
INSERT INTO `items` VALUES ('showstorm20', 'Ледяной шторм I', 20, 12, '', '', 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 'Наносит противнику 20-25 ед. повреждения', 0, 0, 0, 0);
INSERT INTO `items` VALUES ('showstorm30', 'Ледяной шторм II', 25, 12, '', '', 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 'Наносит противнику 30-35 ед. повреждения', 0, 0, 0, 0);
INSERT INTO `items` VALUES ('showstorm40', 'Ледяной шторм III', 35, 12, '', '', 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 'Наносит противнику 40-45 ед. повреждения', 0, 0, 0, 0);

4)Добавляем в магазин

Код:
INSERT INTO `shop` VALUES (18, 'showstorm20', 120);
INSERT INTO `shop` VALUES (18, 'showstorm30', 120);
INSERT INTO `shop` VALUES (18, 'showstorm40', 120);
 
Характеристики реальные+предметы
в header.php
Код:
echo"<TR><TD bgcolor=FFE4C4 align=center style='BORDER-LEFT: 1px solid; BORDER-TOP: 1px solid; BORDER-RIGHT: 1px solid; BORDER-BOTTOM: 1px solid;'>[b][size="1"]Характеристики[/size][/b]</TD></TR>";
echo"<TR><TD style='BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid;'>
<SMALL>
Сила: $stat[strength] [ [b][u]",round($stat[strength]-$_obj[strength]),"[/b][/u] + ".(!$_obj['strength']?'0':$_obj['strength'])." ]</a>

Ловкость: $stat[dex] [ [b][u]",round($stat[dex]-$_obj[dex]),"[/b][/u] + ".(!$_obj['dex']?'0':$_obj['dex'])." ]</a>

Удача: $stat[agility] [ [b][u]",round($stat[agility]-$_obj[agility]),"[/b][/u] + ".(!$_obj['agility']?'0':$_obj['agility'])." ]</a>

Выносливость: $stat[vitality] [ [b][u]",round($stat[vitality]-$_obj[vitality]),"[/b][/u] + ".(!$_obj['vitality']?'0':$_obj['vitality'])." ]</a>

Энергия: $stat[power]</a>
";
if ($stat[level]>=4) echo"Разум: $stat[razum] [ [b][u]",round($stat[razum]-$_obj[razum]),"[/b][/u] + ".(!$_obj['razum']?'0':$_obj['razum'])." ]</a>
";
 
Сверху