Тема: WoW-Ultimate 3.1+
Показать сообщение отдельно
Старый 17.04.2010, 10:18   #24
Alucard
Гость
 
Сообщений: n/a
По умолчанию function.php

Продолжаем прикручивать к новой версии ядра.
Ядро Mangos Rev 9748 (ScriptDev2 Rev 1677) compiled by KAPATEJIb
База YTDB 0.13.3 R543 MaNGOS R9748 SD2 R1677 ACID R304 RuDB R37.6
Работаем со списком онлайн игроков. Была ошибка с\в неверном выведении пола (gender) и полным отсутствием уровня персонажа (level).
Правки по файлу function.php (..\ultimate\inc):
Код:
function make_players_array(){
	global $host, $user, $password, $db, $database_encoding, $pl_array;
$i=0;
	$characters_db = new DBLayer($host, $user, $password, $db);
	$characters_db->query("SET NAMES $database_encoding");
	$query = $characters_db->query("SELECT * FROM `characters` WHERE `online`<>'0' ORDER BY `name`");
	while($result = $characters_db->fetch_assoc($query))
	{
//		$char_guid = $result['guid'];
		$char_data = explode(' ',$result['data']);
		$char_gender = $row['gender'];
//		$char_gender = str_pad($char_gender,8, 0, STR_PAD_LEFT);
//		$char_gender = $char_gender{3};
		$res_pos=get_zone_name($result['zone']);
		if ($result['race'] == 1 || $result['race'] == 3 || $result['race'] == 4 || $result['race'] == 7 || $result['race'] == 11) { $char_side=1; } else { $char_side=2; };
$pl_array[$i] = Array($result['name'], $result['race'], $result['class'], $result['level'], $res_pos, $result['gender'], $char_side, $result['guid']);
Собственно, почему полез именно в function.php (.\ultimate\inc), а не в on-line.php (.\ultimate\modules). Просматривая второй файл, долго думал где получение данных по переменным таких как gender и level, не найдя их, нашёл функцию $pl_array. Ну и далее искал уже описание этой функции.
Важные правки по функции в конце, там где описывается. Не забываем закомментировать две строчки $char_gender = str_pad и $char_gender = $char_gender{3}.

Последний раз редактировалось Alucard; 17.04.2010 в 12:27.
  Ответить с цитированием