Решил создать такую тему, чтобы собрать все необходимые скрипты для сайта сервера Aion - это могут быть всевозможные хаки, модули для CMS, а так же просто куски кода, которые станут полезными для вас и вашего сайта.
Начну с небольшого скрипта, который позволит вывести текущий уровень персонажа, при этом вам не потребуется прописывать опыт и уровни в код как это требовалось в прошлом предлагаемом мною варианте, достаточно поместить вместе со скриптом файл player_experience_table.xml, который доступен по адресу:
Цитата:AL-Game\data\static_data\
Код класса PlayerInfo:
PHP код:
<?php /**
* Класс PlayerInfo
* @author PROGRAMMATOR <admin@zone-game.info>
* @link http://forum.zone-game.info/showthread.php?t=10110
* @copyright http://zone-game.info
*/ class PlayerInfo { /**
* Конструктор класса PlayerInfo
*/ public function __construct() { // здесь может быть ваш код ;) }
/**
* Метод определения текущего уровня персонажа
* @param <int> $experience количество exp
* @return <int> текущий уровень
*/ public function getCurrentLevel($experience) { $expList = $this->getPlayerExperienceTable(); $maxLevel = sizeof($expList) - 1;
if ($experience >= $expList[$maxLevel]) {
return $maxLevel;
}
/**
* Метод разбора XML файла player_experience_table.xml
* @return <array> собранный массив $level => $exp
*/ private function getPlayerExperienceTable() { $xml = simplexml_load_file(realpath(dirname(__FILE__)).'/player_experience_table.xml');
foreach ($xml->exp as $key => $value) { $playerExperienceTable[] .= $value;
}
return $playerExperienceTable;
}
}
Использовать его очень просто, вначале сохраняете весь код в файл, например PlayerInfo.class.php и в необходимом месте подключаете его:
PHP код:
<?php require_once 'PlayerInfo.class.php';
И соответственно выводим текущий уровень персонажа:
PHP код:
<?php
$playerInfo = new PlayerInfo();
echo $playerInfo->getCurrentLevel('здесь_количество_опыта');
На этом пока все, остальное по вашим просьбам. То есть в этой теме вы можете попросить написать скрипт, который будет полезен не только вам, но и другим участникам нашей Зоны. Сразу немного всяких "НО":
Цитата:[INDENT]
Не пишу хаки и модули для CMS Joomla.
Могу отказаться от написания не прокомментировав причину\ы.
Не пишу CMS, системы доната, панели управления.
[/INDENT]
Вообщем только разумные просьбы, за вас всю работу делать не буду, это уж точно.
Я бы кое-что поправил.
1. Запросто может быть необходимость дергать getCurrentLevel() несколько раз за время выполнения скрипта для разных игроков, соотв. надо бы закешировать (в статик-поле) чтение xml-ки.
2. Искать в отсортированном массиве лучше все-таки бинарным поиском. Итераций меньше.
PHP код:
<?php /**
* Класс PlayerInfo
* @author PROGRAMMATOR <admin@zone-game.info>
* @link http://forum.zone-game.info/showthread.php?t=10110
* @copyright http://zone-game.info
*/ class PlayerInfo {
const PLAYER_EXPERIENCE_TABLE_FILE = 'player_experience_table.xml';
private static $playerExperienceTable = array(); /**
* Конструктор класса PlayerInfo
*/ public function __construct() { // здесь может быть ваш код ;) }
/**
* Метод определения текущего уровня персонажа
* @param <int> $experience количество exp
* @return <int> текущий уровень
*/ public function getCurrentLevel($experience) { $expList = self::getPlayerExperienceTable(); $maxLevel = sizeof($expList) - 1;
if ($experience <= 0) {
return 1;
}
if ($experience >= $expList[$maxLevel]) {
return $maxLevel;
}
Не знаю, чем не понравился while, с ним проблемы будут только если в xml-ке косяки и элементы не сортированные будут (экстремальные границы вроде как проверил). На всякий случай подправим еще getPlayerExperienceTable()
Незнаю, может уже спрашивали.
но хотелось бы иметь маленький скриптик на сайте количество онлайна
т.е. место на сайте (квадратик размером к примеру 5х5px) которое будет обращатся к базе и показывать количество онлайна на сервере.
Еще раз извеняюсь, возможно где-то уже выкладывали, если не трудно тыкните ссыль.
Также хотелось бы иметь хорошую статистику
Уровень, Класс, Абис очки, Клан, Статус онлайн
знаю что на просторах интернета есть много, но все они гавно, возможно я просто нупь но интегрировать их в оболочку сайта очень трудно + дизайн не вклеивается. делать отдельную страницу для этого можно, но это бред и вид сайта теряется. Не плохо бы было написать такую статистику и чтоб на прозрачном фоне
Онлайн это не проблема, а со вторым может быть напишу, главное выбрать свободное время. Но опять же, интеграции во все и всяк сложно добиться, лучше указать свой двиг, чтобы знать куда оно интегрируется.
Таблица
в ней таблицы и колонки с данными, запросы через мускул, в таблице стоит скрипт подстановки той или иной картинки зависимо от значения, фон картинок и всей таблички - прозрачный, если можно (было бы не плохо) картинки пусть валяются в одтельной папке и каждый мог бы себе переделать как ему ближе к сайту, сами таблицы (html) создать не проблема, я даже могу нарисовать все (html + psd картинок рискнуть), проблема в скриптовке, у меня плохо Php и MySQL идут на таком уровне
А вашпе было бы карамельно если б статистика ишла также как и получения вознаграждения за голосование на top.info
т.е. есть кнопка, на нее жмык и всплывает Ajax окно с контентом
но это наверно я уже загнул)))
Цитата:Это вы что ли о проверке работы самого сервера ?
Нет, например
Есть таблица
в ней контент
есть игрок с ником Admin (к примеру)
его строчка статистики будет такова
Ник Раса Abuss Уровень Класс Статус Admin Elyos 100 38 Глад Offline
Весь контент кроме слова админ и клана можно поставить как картинки
вместо элиос - поствить элийский значек (так само и у асмо)
левела (1-55) прописать также картинкой с хорошей рамочкой
статус аналогично, и картинка будет подставлятся зависимо от значения в базе
асли текстом удобнее и не так трудно - пусть будет текст, руки у меня есть буквы на img переделать
Цитата:ps C сегодняшними JS фреймворками - Ajax плевое дело, но тема то не по JavaScript.
Очень жалко, круто бы было если оно красиво выкидывалось после клика на кнопку