PHP скрипты и просто код, который можно и нужно использовать на своем сайте - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Aion > Серверная часть

Важная информация

Серверная часть Обсуждения вопросов по установке и настройке эмулятора Aion-Emu, для совершенно новой и необыкновенно красивой игры - Aion.
Описание темы:Определение уровня персонажа и <другие>.

Ответ
Опции темы
Непрочитано 13.09.2010, 20:57   #1
Аватар для PROGRAMMATOR
Администратор

Автор темы (Топик Стартер) PHP скрипты и просто код, который можно и нужно использовать на своем сайте

Приветствую друзья,

Решил создать такую тему, чтобы собрать все необходимые скрипты для сайта сервера Aion - это могут быть всевозможные хаки, модули для CMS, а так же просто куски кода, которые станут полезными для вас и вашего сайта.

Начну с небольшого скрипта, который позволит вывести текущий уровень персонажа, при этом вам не потребуется прописывать опыт и уровни в код как это требовалось в прошлом предлагаемом мною варианте, достаточно поместить вместе со скриптом файл player_experience_table.xml, который доступен по адресу:

Цитата:
AL-Game\data\static_data\
Код класса PlayerInfo:
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;
        }
        
        for (
$level 0$level $maxLevel$level ++) {
            if (
$experience $expList[$level] and $experience $expList[$level 2]) {
                return ((
$experience $expList[$level]) > ($expList[$level 1] - $experience) ? $level $level);
            }
        }
    }
    
    
/**
     * Метод разбора 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 код:
require_once 'PlayerInfo.class.php'
И соответственно выводим текущий уровень персонажа:

PHP код:
$playerInfo = new PlayerInfo();
echo 
$playerInfo->getCurrentLevel('здесь_количество_опыта'); 
На этом пока все, остальное по вашим просьбам. То есть в этой теме вы можете попросить написать скрипт, который будет полезен не только вам, но и другим участникам нашей Зоны. Сразу немного всяких "НО":

Цитата:
  • Не пишу хаки и модули для CMS Joomla.
  • Могу отказаться от написания не прокомментировав причину\ы.
  • Не пишу CMS, системы доната, панели управления.
Вообщем только разумные просьбы, за вас всю работу делать не буду, это уж точно.
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 13.09.2010, 23:55   #2
Аватар для PROGRAMMATOR
Администратор

Автор темы (Топик Стартер) Re: PHP скрипты и просто код, который можно и нужно использовать на своем сайте

По просьбе в лс написал вывод игровых подсказок из файла (stringtable_tip.xml). Брать тут:

Цитата:
RUS\Data\Strings\
Незабываем его пройти AIONdisasm. (готовый файл в аттаче)

PHP код:
    /**
     * Метод вывода игровых подсказок из файла stringtable_tip.xml
     * @return <string> случайную игровую подсказку
     * @copyright http://forum.zone-game.info/showpost.php?p=87843&postcount=2
     */
    
public function getGameTips() {
        
$xml simplexml_load_file(realpath(dirname(__FILE__)).'/stringtable_tip.xml');
        foreach (
$xml->string_tip as $key => $value) {
            
$tipsList[] .= $value->body;
        }
        
        return 
preg_replace('#<(.*)>#is''<span style="color: #d89528;">&lt;\\1&gt;</span>'$tipsList[mt_rand(0sizeof($tipsList))]);
    } 
В подсказках будут подсвечены все клавиши и названия интерфейсов, что выделены с помощью - < >

Вложения
Тип файла: zip stringtable_tip.zip (9.8 Кб, 2 просмотров)
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Непрочитано 14.09.2010, 00:07   #3
Пользователь

По умолчанию Re: PHP скрипты и просто код, который можно и нужно использовать на своем сайте

Я бы кое-что поправил.
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;
        }
        
        
$iMin 1;
        
$iMid 0;
        
$iMax $maxLevel;
        while ((
$iMax $iMin) > 1) {
            
$iMid = ($iMin $iMax) >> 1;
            if (
$experience == $expList[$iMid]) {
                return 
$iMid;
            } elseif (
$experience $expList[$iMid]) {
                
$iMin $iMid;
            } elseif (
$experience $expList[$iMid]) {
                
$iMax $iMid;
            }
        }
        return 
$iMin;
    }
    
    
/**
     * Метод разбора XML файла player_experience_table.xml
     * @return <array> собранный массив $level => $exp
     */
    
private static function getPlayerExperienceTable() {
        if (
sizeof(self::$playerExperienceTable) == 0) {
            
$xml simplexml_load_file(realpath(dirname(__FILE__)) . '/' self::PLAYER_EXPERIENCE_TABLE_FILE);
            foreach (
$xml->exp as $key => $value) {
                
self::$playerExperienceTable[] = $value;
            }
        }
        return 
self::$playerExperienceTable;
    }
}  
?>
Blakkky вне форума Ответить с цитированием
Непрочитано 14.09.2010, 00:13   #4
Аватар для PROGRAMMATOR
Администратор

Автор темы (Топик Стартер) Re: PHP скрипты и просто код, который можно и нужно использовать на своем сайте

Спасибо и за ваше мнение, ему тоже есть место быть.
Но вот while и if elseif elseif elseif - это ужасно.
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Непрочитано 14.09.2010, 00:24   #5
Пользователь

По умолчанию Re: PHP скрипты и просто код, который можно и нужно использовать на своем сайте

Не знаю, чем не понравился while, с ним проблемы будут только если в xml-ке косяки и элементы не сортированные будут (экстремальные границы вроде как проверил). На всякий случай подправим еще getPlayerExperienceTable()
PHP код:
    private static function getPlayerExperienceTable() {
        if (
sizeof(self::$playerExperienceTable) == 0) {
            
$xml simplexml_load_file(realpath(dirname(__FILE__)) . '/' self::PLAYER_EXPERIENCE_TABLE_FILE);
            foreach (
$xml->exp as $key => $value) {
                
self::$playerExperienceTable[] = $value;
            }
            
sort(self::$playerExperienceTable);
        }
        return 
self::$playerExperienceTable;
    } 
C if-elseif-elseif согласен, лишки много, так красивее.
PHP код:
        $iMin 1;
        
$iMid 0;
        
$iMax $maxLevel;
        while ((
$iMax $iMin) > 1) {
            
$iMid = ($iMin $iMax) >> 1;
            if (
$experience >= $expList[$iMid]) {
                
$iMin $iMid 1;
            } else {
                
$iMax $iMid 1;
            }
        } 
Blakkky вне форума Ответить с цитированием
Непрочитано 14.09.2010, 00:52   #6
Аватар для undertrey
Мастер

По умолчанию Re: PHP скрипты и просто код, который можно и нужно использовать на своем сайте

Незнаю, может уже спрашивали.
но хотелось бы иметь маленький скриптик на сайте количество онлайна
т.е. место на сайте (квадратик размером к примеру 5х5px) которое будет обращатся к базе и показывать количество онлайна на сервере.
Еще раз извеняюсь, возможно где-то уже выкладывали, если не трудно тыкните ссыль.

Также хотелось бы иметь хорошую статистику
Уровень, Класс, Абис очки, Клан, Статус онлайн
знаю что на просторах интернета есть много, но все они гавно, возможно я просто нупь но интегрировать их в оболочку сайта очень трудно + дизайн не вклеивается. делать отдельную страницу для этого можно, но это бред и вид сайта теряется. Не плохо бы было написать такую статистику и чтоб на прозрачном фоне

З.Ы. извиняюсь за ресторан
__________________
undertrey вне форума Отправить сообщение для undertrey с помощью Skype™ Ответить с цитированием
Непрочитано 14.09.2010, 00:56   #7
Аватар для PROGRAMMATOR
Администратор

Автор темы (Топик Стартер) Re: PHP скрипты и просто код, который можно и нужно использовать на своем сайте

Онлайн это не проблема, а со вторым может быть напишу, главное выбрать свободное время. Но опять же, интеграции во все и всяк сложно добиться, лучше указать свой двиг, чтобы знать куда оно интегрируется.
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Непрочитано 14.09.2010, 01:03   #8
Аватар для undertrey
Мастер

По умолчанию Re: PHP скрипты и просто код, который можно и нужно использовать на своем сайте

ну я себе это представляю так:

Таблица
в ней таблицы и колонки с данными, запросы через мускул, в таблице стоит скрипт подстановки той или иной картинки зависимо от значения, фон картинок и всей таблички - прозрачный, если можно (было бы не плохо) картинки пусть валяются в одтельной папке и каждый мог бы себе переделать как ему ближе к сайту, сами таблицы (html) создать не проблема, я даже могу нарисовать все (html + psd картинок рискнуть), проблема в скриптовке, у меня плохо Php и MySQL идут на таком уровне

А вашпе было бы карамельно если б статистика ишла также как и получения вознаграждения за голосование на top.info
т.е. есть кнопка, на нее жмык и всплывает Ajax окно с контентом
но это наверно я уже загнул)))
__________________
undertrey вне форума Отправить сообщение для undertrey с помощью Skype™ Ответить с цитированием
Непрочитано 14.09.2010, 07:00   #9
Аватар для PROGRAMMATOR
Администратор

Автор темы (Топик Стартер) Re: PHP скрипты и просто код, который можно и нужно использовать на своем сайте

Цитата:
Сообщение от undertrey
той или иной картинки зависимо от значения
Это вы что ли о проверке работы самого сервера ?

ps C сегодняшними JS фреймворками - Ajax плевое дело, но тема то не по JavaScript.
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Непрочитано 14.09.2010, 19:48   #10
Аватар для undertrey
Мастер

По умолчанию Re: PHP скрипты и просто код, который можно и нужно использовать на своем сайте

Цитата:
Это вы что ли о проверке работы самого сервера ?
Нет, например
Есть таблица
в ней контент
есть игрок с ником Admin (к примеру)
его строчка статистики будет такова

Ник Раса Abuss Уровень Класс Статус
Admin Elyos 100 38 Глад Offline

Весь контент кроме слова админ и клана можно поставить как картинки
вместо элиос - поствить элийский значек (так само и у асмо)
левела (1-55) прописать также картинкой с хорошей рамочкой
статус аналогично, и картинка будет подставлятся зависимо от значения в базе

асли текстом удобнее и не так трудно - пусть будет текст, руки у меня есть буквы на img переделать

Цитата:
ps C сегодняшними JS фреймворками - Ajax плевое дело, но тема то не по JavaScript.
Очень жалко, круто бы было если оно красиво выкидывалось после клика на кнопку
__________________
undertrey вне форума Отправить сообщение для undertrey с помощью Skype™ Ответить с цитированием
Ответ

Метки
php скрипты


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Аукцион на своем сервере DJBesa Aion 4 14.06.2010 14:38
Как назначить ГМа на своем сервере?? BlackKain Lineage II 4 13.11.2009 06:08
Закрытие возможности использовать баг с CP PROGRAMMATOR Lineage II 2 18.07.2009 21:39
Гварды на осадах просто стоят Jao Работа со скриптами 3 21.05.2009 15:09
NPC который продаёт скилы Nastia Lineage II 5 30.09.2008 18:56


© 2007–2020 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 12:33. Часовой пояс GMT +3.

Вверх