Subversion Repository Public Repository

fonline_sdk

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

@ 396
Entry Size Revision Updated
Client 396 Tue 16 Apr, 2013 12:09:50 +0000
Docs 159 Sat 05 Mar, 2011 12:26:40 +0000
Server 396 Tue 16 Apr, 2013 12:09:50 +0000
Stable 367 Sun 22 Apr, 2012 11:04:18 +0000
Tools 396 Tue 16 Apr, 2013 12:09:50 +0000
License.txt 5.5K 8 Tue 31 Aug, 2010 20:35:51 +0000
ReadMe.txt 3.2K 63 Mon 25 Oct, 2010 23:30:46 +0000
SvnClear.bat 40 bytes 1 Tue 31 Aug, 2010 00:44:19 +0000

Commits for fonline_sdk/

Revision Author Commited Message
396 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 cvet picture cvet Wed 10 Apr, 2013 09:47:30 +0000

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

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

392 Atom picture Atom Mon 01 Apr, 2013 04:22:47 +0000

IntellisenseCreator now uses a single file and provides all variants of the deduced operators.

391 cvet picture cvet Fri 29 Mar, 2013 12:14:24 +0000

Fixed Linux Daemon version of server.

390 Atom picture Atom Fri 29 Mar, 2013 03:55:30 +0000

Updated IntellisenseCreator libraries to match the latest AngelScript engine version.

389 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.

388 scypior picture scypior Sat 16 Feb, 2013 11:56:22 +0000

Forgot about those debug lines as well.

387 scypior picture scypior Fri 15 Feb, 2013 22:49:04 +0000

This file shouldn’t have ended up here