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/Client/FOnline.pdb

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 версий сервера, клиента и маппера.
Особенно будет заметно на одноядерных процессорах.

394 Diff Diff cvet picture cvet Mon 08 Apr, 2013 19:56:29 +0000

Доработана клиентская функция SetEffect, добавлен новый функционал, изменилась схема передаваемых аргументов.
Новые типы приведены в _client_defines.fos EFFECT_*, данные константы теперь передаются только в первый аргумент ‘int effectType’, их так же можно комбинировать посредствам побитовых операций.
При передачи null в effectName будет установлен эффект по умолчанию (приведены ниже).

Подробнее о типах эффектов:
EFFECT_2D_GENERIC - предметы, сценери, стены и все прочее, кроме криттеров, тайлов, дождя;
EFFECT_2D_CRITTER - криттеры;
EFFECT_2D_TILE - тайлы пола;
EFFECT_2D_ROOF - тайлы крыши;
EFFECT_2D_RAIN - дождь;
EFFECT_3D_SIMPLE - не скиненные 3д модели; только для OpenGL;
EFFECT_3D_SIMPLE_SHADOW - тень для не скиненных 3д моделей; только для OpenGL;
EFFECT_3D_SKINNED - скиненные 3д модели;
EFFECT_3D_SKINNED_SHADOW - тень для скиненных 3д моделей; только для OpenGL;
EFFECT_INTERFACE_BASE - игровой интерфейс;
EFFECT_INTERFACE_CONTOUR - контуры (обводка);
EFFECT_FONT - шрифты;
EFFECT_PRIMITIVE_GENERIC - графика построенная с помощью примитивов, кроме света;
EFFECT_PRIMITIVE_LIGHT - освещение;
EFFECT_FLUSH_RENDER_TARGET - рендеринг рендер таргета; только для OpenGL;
EFFECT_FLUSH_RENDER_TARGET_MS - рендеринг мультисемплового рендер таргета; только для OpenGL;
EFFECT_FLUSH_PRIMITIVE - вывод построенной графики с помощью примитивов; только для OpenGL;
EFFECT_FLUSH_MAP - вывод игровой карты; только для OpenGL;

Эффекты по умолчанию для каждого типа (OpenGL / Direct3D):
EFFECT_2D_GENERIC – 2D_Default.glsl / 2D_Default.fx
EFFECT_2D_CRITTER – 2D_Default.glsl / 2D_Default.fx
EFFECT_2D_TILE – 2D_WithoutEgg.glsl / 2D_Default.fx
EFFECT_2D_ROOF – 2D_Default.glsl / 2D_Default.fx
EFFECT_2D_RAIN – 2D_Default.glsl / 2D_Default.fx
EFFECT_3D_SIMPLE – 3D_Simple.glsl / -
EFFECT_3D_SIMPLE_SHADOW – 3D_Simple.glsl (#define SHADOW) / -
EFFECT_3D_SKINNED – 3D_Skinned.glsl / 3D_Default.fx
EFFECT_3D_SKINNED_SHADOW – 3D_Skinned.glsl (#define SHADOW) / -
EFFECT_INTERFACE_BASE – Interface_Default.glsl / Interface_Default.fx
EFFECT_INTERFACE_CONTOUR – Contour_Default.glsl / -
EFFECT_FONT – Font_Default.glsl / Font_Default.fx
EFFECT_PRIMITIVE_GENERIC – Primitive_Default.glsl / Primitive_Default.fx
EFFECT_PRIMITIVE_LIGHT – Primitive_Default.glsl / Primitive_Default.fx
EFFECT_FLUSH_RENDER_TARGET – Flush_RenderTarget.glsl / -
EFFECT_FLUSH_RENDER_TARGET_MS – Flush_RenderTargetMS.glsl / -
EFFECT_FLUSH_PRIMITIVE – Flush_Primitive.glsl / -
EFFECT_FLUSH_MAP – Flush_Map.glsl / -

Второй параметр учитывается только в следующих типах эффектов:
EFFECT_2D_GENERIC - при указании id предмета, эффект сменится только для него; при передаче 0 сменится эффект по умолчанию;
EFFECT_2D_CRITTER - при указании id криттера, эффект сменится только для него; при передаче 0 сменится эффект по умолчанию;
EFFECT_FONT - при указании шрифта (FONT_*) эффект сменится только для него; при передаче -1 сменится эффект по умолчанию.

Исправлена работа тега EffDef для fo3d формата, с помощью которого можно устанавливать начальные занчения в эффекте.

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 ревизии связанный с разрешением использования предметов на стенах.
Удалена возможность применения навыков или предметов на стенах в клиенте.

367 Diff Diff cvet picture cvet Sun 22 Apr, 2012 11:04:18 +0000

Поправлена обработка использования стен клиентом.

Исправлено имя последнего стабильного билда.

361 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)

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