Уровни + Тм

GwynnBleiidd

Школьник
Репутация
0 / 1 048
Название: Levels
автар: Lagunikas
Версия: 0.0.1

Changelog:
0.0.1 - Релиз =)

Описание:

С определённым количеством очков игрок получает ТМ, которые вы сами оперделяете как ТМ так и очки.

Инсталяция:


Запрос SQL:
Код:
ALTER TABLE `ваш префикс_users` ADD `dmlevel` INT( 11 ) NOT NULL

Создаём:

includes/pages/ShowLevelPage.php

<div style="margin:20px; margin-top:5px">
<div class="smallfont" style="margin-bottom:2px">Скрытая информация: "В нём:" <input type="button" value="Показать" style="width:60px;font-size:10px;margin:0px;padding:0px;" onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = 'Скрыть'; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = 'Показать'; }">
</div>
<div class="alt2" style="margin: 0px; padding: 6px; border: 1px inset;">
<div style="display: none;">
Код:
<?php

define('INSIDE' , true);
define('INSTALL' , false);

includeLang('INGAME');

$showmsg = 0;
$qrylevel = doquery("SELECT dmlevel FROM {{table}} WHERE `id` = '{$user['id']}'", 'users', true);
$level = $qrylevel ['dmlevel'];
$qrypuntos = doquery("SELECT total_points FROM {{table}} WHERE `id_owner` = '{$user['id']}'", 'statpoints', true);
$puntos = $qrypuntos ['total_points'];
$qrymateria = doquery("SELECT darkmatter FROM {{table}} WHERE `id` = '{$user['id']}'", 'users', true);
$parse = $lang;


if ( $level == 0 && $puntos >= 10000 )
{
$qrymateria = + 500;
$qrylevel = + 1;
$showmsg = + 1;
}
elseif ( $level == 1 && $puntos >= 50000 )
{
$qrymateria = + 500;
$qrylevel = + 1;
$showmsg = + 1;
}
elseif ( $level == 2 && $puntos >= 100000 )
{
$qrymateria = + 1000;
$qrylevel = + 1;
$showmsg = + 1;
}
elseif ( $level == 3 && $puntos >= 250000 )
{
$qrymateria = + 1500;
$qrylevel = + 1;
$showmsg = + 1;
}
elseif ( $level == 4 && $puntos >= 500000 )
{
$qrymateria = + 1500;
$qrylevel = + 1;
$showmsg = + 1;
}
elseif ( $level == 5 && $puntos >= 750000 )
{
$qrymateria = + 2000;
$qrylevel = + 1;
$showmsg = + 1;
}
elseif ( $level == 6 && $puntos >= 1000000 )
{
$qrymateria = + 2000;
$qrylevel = + 1;
$showmsg = + 1;
}
elseif ( $level == 7 && $puntos >= 1500000 )
{
$qrymateria = + 2500;
$qrylevel = + 1;
$showmsg = + 1;
}
elseif ( $level == 8 && $puntos >= 2000000 )
{
$qrymateria = + 3000;
$qrylevel = + 1;
$showmsg = + 1;
}
elseif ( $level == 9 && $puntos >= 2500000 )
{
$qrymateria = + 3000;
$qrylevel = + 1;
$showmsg = - 1;
}
else
{
}

$QryUpdateUser .= "UPDATE {{table}} SET ";
$QryUpdateUser .= "`darkmatter` = `darkmatter` + '". $qrymateria ."', ";
$QryUpdateUser .= "`dmlevel` = `dmlevel` + '". $qrylevel ."' ";
$QryUpdateUser .= "WHERE ";
$QryUpdateUser .= "`id` = '{$user['id']}' ";
doquery( $QryUpdateUser, "users");



if ( $showmsg == 0 )
{
message($lang['nolevel'], '', '', true);
}
elseif ( $showmsg == 1 )
{
message($lang['levelup'], '', '', true);
}
elseif ( $showmsg == -1 )
{
message($lang['levelmax'], '', '', true);
}
else
{
}

?>
</div>
</div>
</div>

game.php

После :
Код:
// ----------------------------------------------------------------------------------------------------------------------------------------------//
case'statistics':
include_once($xgp_root . 'includes/pages/ShowStatisticsPage.' . $phpEx);
ShowStatisticsPage($user);
break;

Добавить:
Код:
// ----------------------------------------------------------------------------------------------------------------------------------------------//
case'level':
include_once($xgp_root . 'includes/pages/ShowLevelPage.' . $phpEx);
ShowLevelPage();
break;

В меню добавляем:
Код:
<tr>
<td>
<div align="center"><font color="#FFFFFF">
<a href='game.php?page=level'>Награда</a>
</font></div>
</td>
</tr>

В ingame.mo или в файл вашей версии перед
Код:
?>
добавляем:

Код:
//----------------------------------------------------------------------------//
// niveles.php
$lang['levelup'] = 'Поздравляем вы получили уровень и награду.';
$lang['levelmax'] = 'Вы самый сильный, наша награда для вас мелочи.';
$lang['nolevel'] = 'Мал ещё, рости и захватывай планеты, и мы тебя шедро отблагодарим';




<div class='moddiv'><TABLE cellpadding='0' cellspacing='0' border='0'><TD align='middle' vAlign='center' width="1%" style='background-color: #6060ff; color: #ffffff; font-family: Times New Roman, Serif; font-size: 50px; font-weight: bold;' title='Предупреждение'> i </TD><TD width='6px'>
</TD><TD vAlign='middle'>

Если кто не понял.
При получении уровня в БД отправляеться 1.
К примеру у игрока 2й уровень.
На него напали и снос получилося до 1го. Он наберает снова 2й и очков не получает, потому что на 2й уровень уже выдавали.
Это зделано чтобы игроки не набивали ТМ себе =)

Если посмотрите файл конфига то увидите что на каждое количество очков идёт ТМ, правим и очки и ТМ как вам надо.

Для тех у кого революшен. можете скрепить с рангами...думаю поймёте о чём я.

 
</TD></TABLE></div>
 
Хмм... тут полностью зависимость от очков. total_points. А значит на этой базе можно сделать и очки экономики, флота и тп :) Это радует)
 
Спасибо,заюзаю эту вещь......
эмм,не особо понял как со стандартными рангами совместить в революшене((не подскажеш? :)
 
Спасибо,заюзаю эту вещь......
эмм,не особо понял как со стандартными рангами совместить в революшене((не подскажеш? :)

в овервью.тпл правиш ссылку на получение ТМ.
И в showoverview.php правиш лесницу рангов под себя,и в уровнях тоже правиш и всё.
У меня так) В итоге когда игрок видит что ранг изменился нажимает на изображение и переходит на страницу уровня
 
А как cделать, чтобы материя начислялась пользователю за каждые 1000 ед по траченых ресурсов?
 
а может просто пользователи немного недоговаривают? :)
 
а может просто пользователи немного недоговаривают? :)
Да тут админка показывает что не начислялась.
Но я уже сделал тупа взял вырезал с Версия 0.9sp4(v1) и вставил ну немного передела и все вроде работает.
Всем спасибо за внимание.
 
после установки модификации как всегда белая страничка... :)
 
Сверху