Xnova моды

Статус
В этой теме нельзя размещать новые ответы.
Люди добрые, дайте, пожалуйста, ссылку на нормальную реферал систему, уже проверенную, а то уже запарился искать нормальные...
 
Люди добрые, дайте, пожалуйста, ссылку на нормальную реферал систему, уже проверенную, а то уже запарился искать нормальные...
Зря стараешься... пока сам не напишешь, ничё толкового не будет.
К тому же у каждого варианта движка свои заморочки, у каждого админа свои требования к работе реферальной системы. Ты не указал в своей просьбе ничего подобного... ни версии своего движка, ни требований к реферальной системе (нормальной по твоему мнению), так что вряд ли кто то даже двинется с места, чтоб ответить на таким образом поставленный вопрос!
 
Пожалуй, тогда действительно проще самому написать...
Посмотри как сделано в СверхНовой.

Если коротко - тебе надо сделать все начисления и вычитания ТМ через одну функцию и дальше везде её вызывать. Короче - посмотри мои исходники

includes/functions/rpg_points.php
 
Здравствуйте. У меня вопрос. Стоит сборка 0,9sp4(1.1). Там нет мирного и боевого опыта. Есть ли отдельно опыты? Или как по-другому сделать их? И подскажите где можно найти мод рас для xnova?
Заранее благодарю
 
В XNova мирный опыт работает по умолчанию... Это так называемый опыт шахтёра. Военный опыт нигде не просчитывается, его нужно писать самому.Расы также нужно самому рисовать, в свободно распространяемом виде его вряд ли найдёшь...
По опыту могу сказать следующее: В базе данных есть таблица users в ней есть 5 полей xpminier, lvl_minier, xpraid, lvl_raid, raids (если у тебя нету, то дорисуй)
xpminier - опыт шахтёра. Обрабатывается скриптом, обслуживающим постройки. Как правило суммируются все ресурсы потраченные на строительство рудника или хранилища, и за каждую тысячу ресурсов добавляется 1 единица опыта.
xpraid - опыт воина обрабатывается скриптом рассчитывающим бои. Условия начисления опыта у каждого движка свои.
lvl_minier- уровень шахтёра. Обрабатывается страницей "Обзор". Увеличивается на единицу при достижении игроком определённого опыта шахтёра. (например каждые 100, 1000 и т.д.)
lvl_raid- уровень воина. Обрабатывается страницей "Обзор". Увеличивается на единицу при достижении игроком определённого опыта воина. (например каждые 100, 1000 и т.д.)
Повышение уровней воина и(или) шахтёра на единицу, вызывает добавление одного офицерского очка. (обрабатывается там же в "Обзоре")
raids- количество боёв игрока, обрабатывается скриптом рассчитывающим бои.
Также возможны ещё 2 поля, например victory и defeat куда скрипт, рассчитывающий бои запишет соответственно количество побед и поражений игрока.
Реализация вышеуказанных функций у каждого админа своя. Если ты хоть немного знаком с PHP, то реализовать подобное не составит особого труда.
 
Боевой и мирный опыт

В общем сделал боевой и мирный опыт. Смотрите, используйте и если найдете какие-то баги говорите:
Идем в overview_body.tpl:
И в нужном нам месте ставим вот это
Код:
<tr>
	<th>{Level}</th>
	<th colspan="1" align="center">{Economica} : {xpminier}/{lvl_up_minier} </th>
	<th colspan="2" align="center">{Raids} : {xpraid} </th>
	
</tr>
<tr>
	<th>{Experience}</th>
	<th colspan="1" align="center">{Economica} : {lvl_minier}/ {MAX_ECONOMIC_LVL}</th>
	<th colspan="2" align="center">{Raids} : {xpraid}/{lvl_up_raid} </th>
	
</tr>

Далее идем в overview.php
После
Код:
$Have_new_message .= "</tr>";
			})
Вставляем
Код:
// --- Gestion Officiers -------------------------------------------------------------------------
			// Passage au niveau suivant, ajout du point de compétence et affichage du passage au nouveau level
			$XpMinierUp  = $user['lvl_minier'] * EXP_MULTI_ECO;
			$XpRaidUp    = $user['lvl_raid'] * EXP_MULTI_RAID;
			$XpMinier    = $user['xpminier'] * 1;
			$XPRaid      = $user['xpraid'] * 1; 
                  
			$LvlUpMinier = $user['lvl_minier'] + 1;
			$LvlUpRaid   = $user['lvl_raid']   + 1;

            if( $LvlUpMinier <= MAX_ECONOMIC_LVL ) {
				if ($XpMinier >= $XpMinierUp) {
					$QryUpdateUser  = "UPDATE `{{table}}` SET ";
					$QryUpdateUser .= "`lvl_minier` = '".$LvlUpMinier."', ";
					$QryUpdateUser .= "`rpg_points` = `rpg_points` + 1 ";
					$QryUpdateUser .= "WHERE ";
					$QryUpdateUser .= "`id` = '". $user['id'] ."'";
				doquery($QryUpdateUser, 'users');
					$HaveNewLevelMineur  = "<tr>";
					$HaveNewLevelMineur .= "<th colspan=4><a href=officier.$phpEx>". $lang['Have_new_level_mineur']."</a></th></tr>";
				}
		  	}
				if ($XPRaid >= $XpRaidUp) {
					$QryUpdateUser  = "UPDATE `{{table}}` SET ";
					$QryUpdateUser .= "`lvl_raid` = '".$LvlUpRaid."', ";
					$QryUpdateUser .= "`rpg_points` = `rpg_points` + 1 ";
					$QryUpdateUser .= "WHERE ";
					$QryUpdateUser .= "`id` = '". $user['id'] ."'";
				doquery($QryUpdateUser, 'users');
					$HaveNewLevelMineur  = "<tr>";
					$HaveNewLevelMineur .= "<th colspan=4><a href=officier.$phpEx>". $lang['Have_new_level_raid']."</a></th></tr>";
				}
		
			// -----------------------------------------------------------------------------------------------
Если у вас на этом месте что-то стоит, тогда смотрите что нужно добавить чтобы не менять и все.

В этом же файле находим
Код:
else {
				$parse['case_barre_barcolor'] = '#00C000';
			}

и вставляем после него
Код:
//Mode Améliorations
			$parse['xpminier']= $user['xpminier'];
			$parse['xpraid']= $user['xpraid'];
			$parse['lvl_minier'] = $user['lvl_minier'];
			$parse['lvl_raid'] = $user['lvl_raid'];

			$LvlMinier = $user['lvl_minier'];
			$LvlRaid = $user['lvl_raid'];

			$parse['lvl_up_minier'] = $LvlMinier * EXP_MULTI_ECO;
			$parse['lvl_up_raid']   = $LvlRaid * EXP_MULTI_RAID;
			
			// Nombre de raids, pertes, etc ...
	                $parse['MAX_ECONOMIC_LVL'] = MAX_ECONOMIC_LVL;
					$parse['Raids'] = $lang['Raids'];
    		        $parse['NumberOfRaids'] = $lang['NumberOfRaids'];
	                $parse['RaidsWin'] = $lang['RaidsWin'];
	                $parse['RaidsLoose'] = $lang['RaidsLoose'];

	                $parse['raids'] = $user['raids'];
	                $parse['raidswin'] = $user['raidswin'];
	                $parse['raidsloose'] = $user['raidsloose'];
	
			$parse['gameurl'] = GAMEURL;
			$parse['kod'] = $user['kiler'];
и опять же, если что-то стоит лучше посмотреть что нужно исправить и все.

Далее идем в файл include/constants.php и после строки
Код:
//galaxy_show_admins
	define('SHOW_ADMIN'				,1);

вставляем:
Код:
//add darkmater then level up
	define('EXP_MULTI_ECO'				,50);   // Множитель макс.экономики
	define('EXP_MULTI_RAID'				,10);	//Множитель кол-ва рейдов
	define('MAX_ECONOMIC_LVL'			,200); // максимальный уровень экономики

И в language\overview.mo добавляем в конце
Код:
$lang['Level'] = 'Уровень';
$lang['Economica'] = 'Экономика';

П.С. это код для xnova. Сделан на скорую руку и конечно же есть ошибки. Так что смотрите и говорите что не так
 
маленькая ремарка... дело в том, что темпы строительства и соответственно потраченных на него ресурсов растут в прогрессии. и фиксированный множитель даст нехороший эффект, когда каждый новый уровень рудника или хранилища будет давать повышение уровня шахтёра и офицерское очко! Как следствие через пару месяцев у тебя все игроки будут иметь в своём активе всех офицеров, включая императора...
Поэтому гораздо эффективнее когда каждые 10 уровней шахтёра количество очков для левелапа будет повышаться на порядок.
Например первые 10 уровней шахтёра, для повышения уровня нужно набрать по 100 очков, начиная с 11го уже по 1000, с 21го - по 10000 и т.д. Тогда император будет труднодосягаем...
У меня эта функция реализована так:
PHP:
if ($user['lvl_minier']<11){$XpMinierUp  = $user['lvl_minier'] * 100;           }
      else{
      $kul=$user['lvl_minier']/10;
      $fkul= floor($kul);
      $razn=$kul-$fkul;
      if($razn==0){$razn=0.05;}
      $XpMinierUp=(($razn*10)+1)*100*pow(10, $fkul) ;

Уровни воина:
PHP:
	$XpRaidUp  = 7*(($user['lvl_raid'])*($user['lvl_raid']+1))/2;
при этом необходимости в константах нет.
 
Есть ли у кого-то ссылочка на постоянных офицеров в xnova? Или как их сделать подскажите?
 
Да скачай любую старую сборку XNova например 0,8b и банально выковыряй нужную инфу оттуда
рекомендую поковыряться тут
 
Я иногда смотрю туда, но реально все ссылки закрыты(пишется что доступа у меня нет) и надо посты набирать:(
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху