Subversion Repository Public Repository

fonline_sdk

This repository has no backups
This repository's network speed is throttled to 100KB/sec

1
File is too big or a binary file

Commits for fonline_sdk/Tools/ASCompiler/ASCompiler

Diff revisions: vs.
Revision Author Commited Message
396 Diff Diff cvet picture cvet Tue 16 Apr, 2013 12:09:50 +0000

В Linux версии во всех бинарниках статически слинкованы основные библиотеки используемые игрой.
Теперь игра запускается без предустановок дополнительных пакетов, как минимум на следующих Linux дистрибутивах:
Ubuntu 12.10, Linux Mint 14.1, Fedora 18, openSUSE 12.3.

Исправлена работа клиентской скриптовой функции SetEffect.

Начата работа над портированием игры под MacOSX.

395 Diff Diff cvet picture cvet Wed 10 Apr, 2013 09:47:30 +0000

Увеличена производительность Linux версий сервера, клиента и маппера.
Особенно будет заметно на одноядерных процессорах.

393 Diff Diff cvet picture cvet Sun 07 Apr, 2013 15:25:23 +0000

Исправлены баги связанные с некорректной работой сервера, клиента и маппера под операционной системой Linux.
Работоспособность протестирована на Ubuntu 12.10 под VirtualBox.
Все бинарники пересобраны с использованием GCC 4.7.2.

Оптимизирована работа OpenGL рендеринга, производительность увеличилась в два-три раза.
Проработан код рендеринга и шейдеров на предмет совместимости со старыми видеокартами (тестировалось на Radeon 9600).

Добавлены новые возможности по смене эффектов в клиенте с помощью функции SetEffect - см. _client_defines.fos, ‘Effect types’ и ‘Effect subtypes’.
Так же изменена спецификация функции SetEffect с
void SetEffect(int effectType, int effectSubtype, string@+ effectName)
на
bool SetEffect(int effectType, int effectSubtype, string@+ effectName, string@+ effectDefines = null)
string@+ effectDefines - директивы препрцессора для эффекта (null по умолчанию);
возвращаемое значение указывает на успешность загрузки и компиляции эффекта.

В скрипты клиента и маппера добавлена функция ‘bool __OpenGLRendering’, которая указывает какой рендеринг используется (true – OpenGL, false – Direct3D).

Исправлен механизм определения уже запущенного окна клиента.

Для клиента/маппера добавлены глобальные переменные
uint __FPS - текущий FPS;
uint __PingPeriod - период пинга сервера (равен 2000 мс по умолчанию);
uint __Ping - текущий пинг.

В нативные скрипты добавлена функция с помощью которой можно устанавливать обратные вызовы при логгировании
void ( * GameOptions::SetLogCallback )( void ( * function )( const char* ), bool enable );
void ( * function )( const char* ) - функция куда будут передаваться тексты лога;
bool enable - установить или убрать обратный вызов.

Клиентская скриптовая функция DrawHardcodedScreen теперь работает и с основными экранами клиента (CLIENT_MAIN_SCREEN_*).

В виду неактуальности убрана глобальная переменная ‘bool DisableDrawScreens’.

Added global server function 'uint GetRegisteredPlayers( array<uint>& ids, array<string>& names )' - returns length of arrays with clients. (by Wipe)

Fix for preprocessor’s line translation with multiline macros. Added full file name to output. (by Atom)

Preprocessor now implements evaluation of constant expressions using #if directive. (by Atom)

389 Diff Diff cvet picture cvet Thu 28 Mar, 2013 21:28:05 +0000

Atom updates:

AngelScript updated to revision 1558 (2.26.0 WIP).

Added the server method
bool Scenery::CallSceneryFunction(Critter& cr, int skill, Item@ item);
calling the scenery handler associated with the scenery instance.

Reduced the memory footprint of loaded map protptypes.

Log messages related to critter events, time events, dialog results and running server functions now display more context information.

Players logged off in nologout locations no longer block further login attempts if __AccountPlayTime is set.

Added the following methods:
void array<T>::reserve(uint);
bool array<T>::isEmpty()) const;
bool dictionary::isEmpty() const;
uint dictionary::getSize() const;

For client, added the global function
void DrawSpritePattern(uint sprId, int sprIndex, int x, int y, int w, int h, int sprWidth, int sprHeight, uint color);
The function fills the rectangle of the size (w, h) at (x, y) with tesselation of the given sprite. The sprite’s size can be changed by passing sprWidth and sprHeight parameters:
- sprWidth and sprHeight both equal to 0 – no resizing,
- sprWidth nonzero, sprHeight equal to 0 – fix the sprite’s width to sprWidth and preserve the ratio,
- sprWidth equal to 0, sprHeight nonzero – fix the sprite’s height to sprHeight and preserve the ratio,
- both of sprWidth and sprHeight nonzero – set the sprite’s size to sprWidth, sprHeight.
The color parameter works the same as for DrawSprite functions.
Example: http://fonline2238.net/images/dsp.png

Fixed scrolling of dialog answer pages.

Fixed the bug causing the lockdown of time events.

Fixed dump generation for Windows XP. However, the debug help library (DbgHelp.dll) shipped with Windows XP may result with very slow generation. A newer, working version is available at http://msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx

Wipe updates:

Added the global server function
uint GetAllPlayers(Critter@[]@ players);
returning the number of players in game and appending them to the players array (if not null).

Added the server method
string@ ProtoItem::GetScriptName();
returning the name of the init script assigned to the ProtoItem.

ASCompiler now compiles the scripts with __ASCOMPILER defined and displays the name of the compiled file.
Added “ignore” pragma; the required argument is the name of another pragma which will not be processed by script engine.
The process now returns -1 if the compilation was not successful.

Other updates:

LARGEADDRESSAWARE enabled for Windows server application, this increases allowable memory from 2GB to 4GB on 64bit OS.

Client PlayMusic with ‘repeat’ parameter equal to 1 give loop without any delay.

Disabled restriction for ‘string@ p3’ parameter length in RunClientScript.

381 Diff Diff cvet picture cvet Fri 19 Oct, 2012 22:48:52 +0000

Добавлены дополнительные возможности для работы с дождем (или другими подобными эффектами).
Для нативных скриптов в GameOptions добавлены поля
uint RainTick - как часто происходит обновление позиции дождя (по-умолчанию - 60 мс);
int16 RainSpeedX - изменение горизонтальной позиции каждое обновление (по-умолчанию 0);
int16 RainSpeedY - изменение вертикальной позиции каждое обновление (по-умолчанию 15);
Для определения начальной позиции капли введен обратный вызов
void ( GetRainOffset )( int16 ox, int16* oy );
в ox, oy необходимо возвратить смещение (пример смотрите в fonline_tla.cpp).
В скриптах клиента и маппера добавлена функция
void SetRainAnimation(string@ fallAnimName, string@ dropAnimName)
где можно установить имена анимаций для падающей и упавшей капли, по-умолчанию значения равны “art/misc/rain_fall.fofrm” и “art/misc/rain_drop.fofrm”.

Для нативных скриптов добавлены две движковые функции
int Random( int minimum, int maximumInclusive ) - рандом от minimum до maximumInclusive (включительно);
uint GetTick() - текущий тик, в миллисекундах.

380 Diff Diff cvet picture cvet Thu 09 Aug, 2012 09:02:38 +0000

Добавлена возможность конкатенации строк препроцессором с помощью символов ##. (by Wipe)

Внесены изменения в вывод в лог сообщений о отсутствующих переменных при их загрузке (когда сообщений очень много это могло приводить к падениям). (by Atom)

AngelScript обновлен до ревизии 1342 (2.24.0 WIP). (by Atom)

Исправлено событие криттера CRITTER_EVENT_SMTH_TURN_BASED_PROCESS. (by Atom)

В OpenGL исправлена загрузка моделей с отсутствующими тангетами.

В OpenGL исправлена загрузка эффектов с директивами препроцессора (баг с отсутствием тени).

370 Diff Diff cvet picture cvet Tue 08 May, 2012 21:46:19 +0000

Параметр FixedFPS при отрицательных значениях выполняет роль убранного параметра Sleep теперь и в маппере. (by Wipe)

AngelScript обновлен до ревизии 1289, версия 2.23.1. (by Atom)

Поправлена начальный просчет видимости для Нпц при старте сервера. (by Atom)

Поправлена генерация дампов для клиента и маппера (баг с 357 ревизии).

Удален функционал 367 ревизии связанный с разрешением использования предметов на стенах.
Удалена возможность применения навыков или предметов на стенах в клиенте.

361 Diff Diff cvet picture cvet Fri 13 Apr, 2012 19:29:16 +0000

Правка вывода сообщений при компиляции скриптов при использовании прагм #warning/#message. (by Wipe)

Увеличена производительность Linux версий клиента/сервера/маппера (связано с работой с таймера). (by Atom)

Поправлена работа с загружаемыми скриптовыми библиотеками под Linux (различает прописные и строчные символы в именах файлов и каталогов). (by Atom)

Исправлена отрисовка контуров в клиенте, при использовании механизма LOOK_CHECK_DIR. (by Atom)

В серверных скриптовых функциях Critter::AddItem и Item::AddItem (для контейнеров) аргумент uint count теперь может быть равен нулю, движок автоматически присвоит значение 1, без вывода ошибок. (by Atom)

Оптимизация механизма просчета видимости на сервере.

357 Diff Diff cvet picture cvet Sun 26 Feb, 2012 21:39:52 +0000

Для сервера добавлен профайлер скриптов. (by Atom)
Система автоматически ведет учет времени выполнения скриптов и дает подробную статистику по запросу пользователя.
Текущую собранную статистику можно смотреть в окне сервера, кнопка ‘Profiler’.
Так же в следующем обновлении будет добавлена отдельная программа для просмотра собранной статистики.
Данные собираются в файлах ‘.foprof’, папки ‘Server/profiler/’.
Настройки профайлера находятся в конфиге сервера FOnlineServer.cfg

  1. Profiler data collection mode
  2. 0 – disabled, 1 – save to file, 2 – display in server, 3 – both

ProfilerMode = 0

  1. Interval for call stack sampling, in ms

ProfilerSampleInterval = 50

Для нативного программирования добавлена поддержка следующих функций AngelScript: (by Atom)
AS_API asIScriptContext * asGetActiveContext();
AS_API const char * asGetLibraryVersion();
AS_API const char * asGetLibraryOptions();
Имена в fonline.h
ScriptGetActiveContext
ScriptGetLibraryOptions
ScriptGetLibraryVersion

AngelScript обновлен до версии 1176. (by Atom)

В маппере добавлена возможность передачи в командной строке стартовых координат при открытии карты ‘-HexX X’ и ‘-HexY Y’, где X и Y номера гексагонов по осям. (by Wipe)

Поправлена работа с праметром командной строки маппера ‘-Map’, которая позволяет загрузить карту автоматически. (by Wipe)

Для препроцессора скриптов добавлены директивы: ‘#warning’ и ‘#error’. (by Wipe)

Логи сервера теперь сохраняются в папке ‘Server/logs’.
Дампы сервера теперь сохраняются в папке ‘Server/dumps’.

Время во всех генерируемых именах файлах теперь придерживается следующему формату:
имя_год.месяц.день_час-минута-секунда.расширение
Это позволит файлам корректно сортироваться по имени в порядке хронологии создания.
Данное нововведение справедливо и для имен логов и скриншотов клиента.

Параметр FixedFPS при отрицательных значениях выполняет роль убранного параметра Sleep.

Update log in English: http://xp-dev.com/forum/2224/0

356 cvet picture cvet Tue 07 Feb, 2012 14:04:26 +0000

В клиенте при отрисовке интерфейса глобальной карты функция render_iface теперь вызывается дважды:
- значение 100 - над картой, но под кружками локаций, путей, тумана;
- потом со значением 101 - надо всем вышеперечисленным.
До этого вызывалось только один раз со значением 100 и рисовалось как сейчас в 101.

Для клиента и маппера добавлена глобальная переменная bool AssimpLogging (по-умолчанию false).
Скрипты __AssimpLogging, конфиг AssimpLogging = True/False, командная строка -AssimpLogging 1/0.
Необходима для отладки загрузки трехмерной графики.
При включении и загрузке модели будет создан файл Assimp.log, куда библиотека Assimp будет писать необходимую информацию.

Для пользовательских библиотек добавлена переменная uint8* ClientMapLight, где хранятся данные о освещении гексов.
Для примера использования добавлена функция GetFieldLight, которая возвращает цвет освещения гекса в RGB.

Также добавлена глобальная переменная для клиента и маппера bool __Quit, установив которую в true приложение закроется.