Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

FW Client Source Research

Junior Spellweaver
Joined
Oct 15, 2020
Messages
152
Reaction score
184
---My own Client Compiler(Built on OracleVirtualBox):

*FW_Client_Compiler_(Windows_7_Ultimate_x32_zh-cn):


*When you login you have to click input-> Ctrl+Alt+Delete and write the password once.


*Enable shared folders and specify folder path in the VMs I have provided.


->Delete ncb files from client source folders to have less crashing.Client source will work better that way.


---How to deal with files that can't be modified or Read-only files?
Files that you copy from the shared folder to the VM may be read-only and can't be modified.
1)In that situation select the folder


2)Disable read-only option in properties.

---Extra links:
I uploaded some useful iso in Google Drive because it takes ages to download from the archive website.

DO NOT USE THESE DIRECTLY ON YOUR PC. PLEASE INSTALL AND USE THROUGH A VM FOR YOUR OWN SAFETY!

*HF pAppLoc that enables you to run program on Chinese locale and eliminate gibberish Chinese characters in source code.
(I discovered this useful tool thanks to @Psytrac )


*Visual Studio 2005:


*Visual Studio 2008:



*Visual Studio 2010:


*Visual Studio 2012:


*Visual Studio 2013:


This could be useful and be used to upgrade the FW client sources yourself.
---Basics:
*In order to compile anything from Angelica the region must be in Chinese, because inside the source there are parameters in Chinese that another language does not recognise.


*Forsaken World is a very old game in which visual studio 6 is used to build most of the stuff.


*Angelica2 SDK is likely used for all versions of Forsaken World that we know up to Homecoming.


*Compiled stuff for client sources for FW are found in SMElement\SMBin


*The code could be fine within h and cpp files and Visual Studio 6 still throw errors because of encoding issues and file being saved in non-GBK(Chinese simplified) encoding.
It's advised that you make backups of the files and your edits. YOU HAVE BEEN WARNED!

*Most of the Tools provided in the client source are very old and unpractical.

*People have to create their own tools based on the tools provided in the client source.

*Another interesting fact, It's RC files and fonts that should be localized to English for the tool's interface.

*You may get some of the missing DLLs to run the tool from the client source shared by @Scena from here:


*Even if windows is not activated in a VM, It's not necessary for windows to be activated.

*Projects may be opened through DSW or DSP, files in visual studio 6.
However, It's advised to open DSW files though. It doesn't give warnings like DSP files.

*Projects can create:
1)DLL such as ElementSkill.dll in SMElementSkill
2)Executables such as PEM.exe in SMElementClient [Release Build]
3)libs that are used to build other projects such as AUInterface.lib in AUInterfaces.

*There seem to be 3 main builds for SMElementclient:
1)Win32 Release=normal client usually easier to compile.
2)Win32 DbgRelease=Alpha build, Developer client we are familiar with.
3)Win32 Debug=Another Developer client.

*Tools->Options->Directories



This allows you to adjust the C++ Include and Library paths

*You must display the build:



That's a method to switch to another project and minimize the chances of VS6 crashing.

*Project->Set Active Projects:

That's another method to switch to another project and minimize the chances of VS6 crashing.

*It's important to rely on the build output log to identify problems and to figure out how to fix the files.


It's also okay to try to eliminate warnings and try to use google to find solutions for some errors.

*Project->Dependencies
Some projects compile libraries and they usually play the role of a dependency for specific projects.
GfxCommon, LuaWrapper, SMCHBasedCD, SMFWEditorLib, SMSteam
Basically in the linking process, some projects may require specific libraries!

---How to fix GfxCommon Build[Win32 LanEn_EditorDebug] & Build[Win32 LanEn_EditorReleas]?
Edit A3DGFXEditorInterface.cpp
1)Change


2)Change


---Enable Developer functionality:
I have learnt a lot of useful thing through reading .\DysilDeveloperClient\RELEASE_NOTE_READ_THIS.txt
Source: https://forum.ragezone.com/f783/dysil-developer-client-1164377/
Shared by @Fyyre ||Mirrored by @Tomelyr

1)Go to SMElement\SMElementClient\ElementClient.cpp
Code:
#ifdef _ALPHA_BUILD    // DbgRelease mode
bool glb_IsConsoleEnable() { return true; }
bool g_IsNoMapCloud() { return true;  } 
bool g_IsNoUIOptimize() { return true;  } 
bool g_IsNoGrabServer() { return true;  }
bool g_ShowItemTID() { return true; }
bool g_ShowAllLines(){    return true; } //FW2 Function
#else
bool glb_IsConsoleEnable() { return  false; }
bool g_IsNoMapCloud() { return false; }
bool g_IsNoUIOptimize() { return false; }
bool g_IsNoGrabServer() { return false; }
bool g_ShowItemTID() { return false; }
bool g_ShowAllLines(){    return false; } //FW2 Function
#endif

g_ShowAllLines() in FW2 allows us to see all realms.

---How to make the executable require additional pcks?[A Friend's fix]
.\SMElement\SMCommon\elementpckdir.h will allow you to add extra pcks


---How to make your own Client compiler?
*In this thread @Gothic gives you hints to make your own Client Compiler!
https://forum.ragezone.com/f784/skills-research-1200219/

*In this thread @cmb gives you instructions to build the client:
https://forum.ragezone.com/f783/client-source-v253-amp-v260-1195799/index2.html

**Part 1 (Prepare your own Virtual Machine)
*Microsoft Direct link Windows 2008 R2 (English) 64Bits:


*Microsoft Direct link Windows 2008 R2 (Chinese Simplified) 64Bits:


1)Install Windows 2008 R2 ISO.
-Standard Version can support up to 4 processors,32 GB RAM.
-Enterprise Version can support up to 8 processors,2 TB RAM.
*It's advised to install the Enterprise version!

*When you have to write a password twice, it means you have to set up your own password:
Use upper cases, lower cases, and numbers!

*Chinese language Windows is most of the time the best choice to avoid gibberish Chinese folders name, comments etc.

2)When you login you have to click input
Ctrl+Alt+Delete and write the password once.


3)Install VirtualBox Guest Additions tools and reboot once.
Device->Insert Guest Additions CD Image


4)Download and Install the following programs and put them in your shared folders:
*7zip
*WinCDEmu
*Notepad++

5)Download Client sources and put them in your shared Folders:

*Milos [Google Drive] (Order:253->260->297):






*cmb [mega]:(One For All)


Source: https://forum.ragezone.com/f783/client-source-v253-amp-v260-1195799/
Password->Fyyre

**Part 2 (Install Visual Studio 6)
1)Download the Resources provided by @cmb to build the client and put them in your shared folder:
[Mega]

[Drive]


->Source:https://forum.ragezone.com/f783/client-source-v253-amp-v260-1195799/index2.html

2)Extract VS6.rar

3)Extract Microsoft Visual Studio 6.0 Enterprise (6.00.8167) [English].rar

4)Extract {VS6E_1of3.iso,VS6E_2of3.iso,VS6E_3of3.iso}

5)Combine the content of the 3 folders {VS6E_1of3,VS6E_2of3,VS6E_3of3} INTO 1 Folder!

6)Run Setup.exe for VS6 to try to install Visual Studio 6, You will reboot once.

7)Enter password to login and continue installation (Entreprise Setup Options= Custom)


8)SELECT Entreprise tools->Choose option->Untick Visual Studio Analyzer.



Install all the components you want except Visual Studio Analyzer to avoid the following ERROR(Solution from stackoverflow.com).
Code:
Setup was unable to create a DCOM user account in order to register 
 ..\Program Files\Microsoft Visual Studio\Common\Tools\VS-Ent98\Vanalyzr\valec.exe

9)Continue installation & Choose option register installation variables.


10)Restart Windows to complete installation


11)Do not Install MSDN yet.Leave it alone for now.

12)make sure you Copy the content From the VS6 installation folder FROM:
.\VC98\include
.\VC98\lib
.\VC98\MFC
To C:\Program Files (x86)\Microsoft Visual Studio\VC98
This step makes sure all the include and libraries are there in the visual studio directory in your Windows.

**Part 3 (Install MSDN)

1)Mount MSDN_1of2.iso in a specific drive using WinCDEmu.


Right click on MSDN_1of2.iso and choose a specific drive


2)Click on next while selecting "Install MSDN" and locate the path of the mounted MSDN CD1.

3)Run SETUP for MSDN and choose full installation until it asks you about MSDN CD2


4)Mount MSDN_2of2 into the same drive as CD1 and continue installing.

5)Setup should be completed Successfully.

**Part 4 (Install Windows Platform 2001 SDK)
Setups (x86) installs SDK for 32 Bits Application SDK
Setups (ia64) installs SDK for 64 Bits Application SDK
Both Setups (x86) & Setups (ia64) for Platform SDK seem to overwrite each other.

1)Extract PlatformSDK 2001.rar

2)Run SETUP.exe or Setup64.exe to Install Platform SDK 2001.
OTHERWISE Go to ./PlatformSDK 2001/Setup/ and run all setup(x86) one by one!
->FW client sources allow us to build Win32 Applications.

3)Copy include and libs from Microsoft Platform SDK into Visual Studio.
From C:\Program Files (x86)\Microsoft SDK\
To C:\Program Files (x86)\Microsoft Visual Studio\VC98

**Part 5 (Install DirectX8.1 SDK)
I have installed DirectXSDK-x86.exe
Unfortunately there was missing files and errors related to DirectX.


1)Download DX8.1 SDK and install it through Setup.exe


2)Copy includes and libs from DX8.1 SDK into Visual Studio.from DirectX SDK into Visual Studio.
From .\DXSDK
To C:\Program Files (x86)\Microsoft Visual Studio\VC98

**Part 6 (Angelica SDK)
We have the following folders and each has its own use[3rdSDK,A3DSDK,acsdk,afsdk,Amsdk,AUI,Apsdk,Extra]
*3rdSDK Contain include and libraries related to 3rd party SDKs and holds some DLL files that are required to run the tools.
*A3DSDK contain include and libraries related to Angelica3D.
*acsdk contain include and libraries related to AngelicaCommon.
*afsdk contain include and libraries related to AngelicaFile.
*Amsdk contain include and libraries related to AngelicaMedia.
*AUI Contains include and libraries related to Angelica User Interface.
->We already use Include and Libs From AUInterfaces in .\SMElement\AUIInterface
*Apsdk contain includes and libraries related to NVIDIA PhysX.
*Extra contains more useful header files

1)Download Angelica2.0 SDK. This link contain Angelica2SDK provided by Fyyre Mirrored by Milos:


2)Extract AngelicaSDK2.rar and put it in an easy location in your drive:
Example: C:\Angelica SDK 2.0

3)You will need to recompile angelica engine libraries to be able to compile DbgRelease clients

*Compileable Angelica2 source code:[Some Friends helped me greatly with this]


4)Fix the C++ Include and Library Include paths in your Visual Studio 6
Tools->Options->Directories


*Includes:
Code:
C:\Angelica SDK 2.0\SDK\3rdSDK\Include
C:\Angelica SDK 2.0\SDK\A3DSDK\Include
C:\Angelica SDK 2.0\SDK\acsdk\Include
C:\Angelica SDK 2.0\SDK\afsdk\Include
C:\Angelica SDK 2.0\SDK\Amsdk\Include
C:\Angelica SDK 2.0\SDK\Apsdk\Include
C:\Angelica SDK 2.0\SDK\Extra
*Libraries:
Code:
C:\Angelica SDK 2.0\SDK\3rdSDK\Lib
C:\Angelica SDK 2.0\SDK\A3DSDK\Lib
C:\Angelica SDK 2.0\SDK\acsdk\Lib
C:\Angelica SDK 2.0\SDK\afsdk\Lib
C:\Angelica SDK 2.0\SDK\Amsdk\Lib
C:\Angelica SDK 2.0\SDK\Apsdk\Lib

**Part 7 (PhysX SDK)
You must rely on .\Angelica SDK 2.0\PhysX Install\Install instruction.txt
For more details,please read the instructions properly!
A friend told me he does not use the PhysX SDK as it's bad for Radeon cards. It's only helpful for Nvidia cards.
There might be side effects of removing the PhysX SDK from client.

1)run .\PhysX Install\PhysX_8.04.25_SystemSoftware.exe

2)run .\PhysX Install\PhysX_2.8.1_SDK_Core.msi to install PhysX SDK

3)Fix the C++ Include and Library Include paths in your Visual Studio 6
*Includes:
Code:
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA PhysX SDK\v2.8.1\SDKS\PHYSICS\INCLUDE
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA PhysX SDK\v2.8.1\SDKS\FOUNDATION\INCLUDE
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA PhysX SDK\v2.8.1\SDKS\COOKING\INCLUDE
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA PhysX SDK\v2.8.1\SDKS\NXCHARACTER\INCLUDE
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA PhysX SDK\v2.8.1\SDKS\PHYSXLOADER\INCLUDE
*Libraries:
Code:
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA PhysX SDK\v2.8.1\SDKs\lib\Win32

4)Extract PhysX_SDK.rar and use it to overwrite your PhysX Software Development Kit SDK files!

**Part 8 (Extra Step )

I didn't have to change it but it's probably a fix to a specific error he faced with his client compiler.

1)Open socket_helper.cpp located in SMElement\SMElementClient\defence

2)Do the following changes:

*Before:

*After:


Code:
#include <winsock2.h>
#define _WSPIAPI_COUNTOF
#include <ws2tcpip.h>
---Conclusion:
On one hand,v260 & v297 client sources are very beginner-friendly. They can be used as study material to understand how to compile client sources.
On the other hand,v253 is kinda broken. The original Developers probably messed up the files a lot.I have to eventually figure it out and fix it.
Special thanks to the people who supported me and helped me greatly.
I hope this knowledge will be of help to the FW community!

The only forum I use is RageZone.
I'am also within the FW Development Community discord as the founder and one of its co-owners.



 
Last edited:
Newbie Spellweaver
Joined
Apr 27, 2021
Messages
62
Reaction score
17
Is there a server source code for this version??



 
Last edited:
Junior Spellweaver
Joined
Oct 15, 2020
Messages
152
Reaction score
184
It was a bad idea to quote all the thread.Please remove the quote!
That was the client source for version 130* shared by Scena in the past.It was missing a lot of things as well.Unfortunately there is no server source code for it.You can't do much with it.
 
Last edited:
Newbie Spellweaver
Joined
Apr 27, 2021
Messages
62
Reaction score
17
It can be compiled normally. I've tried。I am upgrading this project to VS2008
 
Newbie Spellweaver
Joined
Apr 27, 2021
Messages
62
Reaction score
17
I have upgraded version 253 of FW client source code to DX9 VS2008. It has not been tested yet. If the test is successful, I will upload and share it with you
 
Newbie Spellweaver
Joined
Apr 27, 2021
Messages
62
Reaction score
17
Fw253 has been upgraded with VS2003 before. There's no problem. You can't run it there. It may be predefined in the fweditorlib project in the solution_ Debug, the perfect series of games have such problems


In the predefined fweditorlib project, it is used for the release solution_ Debug, you need to change it to NDEBUG to run it,

Mistigri - FW Client Source Research - RaGEZONE Forums
Mistigri - FW Client Source Research - RaGEZONE Forums







Fw253 has been upgraded with VS2003 before. There is no problem with the compiled program. I didn't enter the game test


Mistigri - FW Client Source Research - RaGEZONE Forums
 
Last edited:
Experienced Elementalist
Joined
Nov 1, 2015
Messages
280
Reaction score
175
i'd love to see all versions upgraded to directx 11 or 12 so i could use the windows 11 auto HDR with it
 
Junior Spellweaver
Joined
Oct 15, 2020
Messages
152
Reaction score
184
Usually I get visual studios and old programs & visual studio from internet archives and use them through Virtual Machines.
 
Last edited:
Newbie Spellweaver
Joined
Apr 27, 2021
Messages
62
Reaction score
17
The DX9 upgrade test has not passed, and there is a problem with the shader


However, I upgraded the A2 engine and fw253 code to vs2019. It has been tested and there is no problem. I have successfully entered the game for some time. The picture quality and monsters are very clear. It's a great game. Do you need this version of vs2019? If you don't need it, I will continue to study DX9. After all, dx8 is out of date


Mistigri - FW Client Source Research - RaGEZONE Forums





Mistigri - FW Client Source Research - RaGEZONE Forums
 
Last edited:
Junior Spellweaver
Joined
Oct 15, 2020
Messages
152
Reaction score
184
It would be interesting to see.
I had an interest in upgrading the visual studio version as well. I wanted to figure out how to upgrade visual studio little by little personally. It would be beneficial to see your work and use it as a reference to upgrade. If you have any tips you can share , it would be nice as well!
 
Last edited:
Junior Spellweaver
Joined
Oct 15, 2020
Messages
152
Reaction score
184
Ok so I have replaced Windows 2008 R2 VM with Windows 7 Ultimate VM for people.It's added in the original post.It should be way better than Windows Server VM and not shutdown each period of time when it's not activated.I really have no idea about old Windows activation and these kind of stuff.
 
Last edited:
Junior Spellweaver
Joined
Oct 15, 2020
Messages
152
Reaction score
184
OK so I will talk a bit about some basics stuff related to Basedata:
1)SMTaskTemplEditor enables you to export tasks binaries and it goes to BASEDATA/Tasktemplate
2)SMElementEditor enables you to extract different kind of stuff related to maps.
3)SMElementData enables you to extract aipolicy.data,path.data,element.data & gshop.data

Overall Basedata is similar to a source code that is used to get some of the binaries that we know.

So far you may use Basedata using a simple method.
I-Create Visual Source Safe Database using Visual Source Safe Admin
II-login using Visual Source Safe
III-Add files to the VSS Database (it may take a while)
IV-an export script may be used to export aipolicy,element,path:

Example:
Code:
Z:\FW_VSS\FW_BASEDATA\WFElementData.exe export_data:1 export_data_dir:Z:\FW_VSS\FW_BASEDATA
pause
Visual Source Safe is old but it's a source control program thay may allow you to keep backup of your code in case you break it.

Let's talk a bit about Element template:
1)ConfigsID stores the paths to find files related to the configs structure such as:
GIFT_CARD_CONFIG & NEWS_CONFIG & SIMULATE_PLAYER_CONFIG

2)RecipeID stores paths & Contains both MERGE_RECIPE_ESSENCE & RECIPE_ESSENCE
3)ExtDataID stores paths for EQUIPMENT_ADDON.
4)TemplID stores paths for the remaining structures related to element:
ITEMS->WING_ESSENCE & NPC->FEATURES->PET_UNBIND_SERVICE & so many other stuff!


It seems like a lot of fun and has a lot of potential & What's interesting here is that the basedata logic seems to be applied the same on different wanmei games{FW,world2,PW etc..}.

 
Last edited:
Junior Spellweaver
Joined
Oct 15, 2020
Messages
152
Reaction score
184
I'm sharing the result of my progress related to client source upgrade.
(Special thanks to @
waxyyfe123 for his help and
@Fyyre for the shared Angelica Stuff )

*We will be using Angelica Stuff(Fyyre's Release):



*Here are some examples of Custom Build Events for Angelica2 engine:

1)acsdk=AngelicaCommon SDK:
Code:
echo copy libary into sdk folder
copy "$(TargetPath)" ..\Output\acsdk\lib\"$(TargetName)".lib
echo copy headers into sdk folder
xcopy .\header\*.h ..\Output\acsdk\include\*.h /R /Y /Q

2)afsdk=AngelicaFile SDK:
Code:
echo copy libary into sdk folder
copy "$(TargetPath)" ..\Output\afsdk\lib\"$(TargetName)".lib
echo copy headers into sdk folder
xcopy .\header\*.h ..\Output\afsdk\include\*.h /R /Y /Q
3)amsdk=AngelicaMedia SDK:
Code:
echo copy libary into sdk folder
copy "$(TargetPath)" ..\Output\amsdk\lib\"$(TargetName)".lib
echo copy headers into sdk folder
xcopy .\header\*.h ..\Output\amsdk\include\*.h /R /Y /Q
4)a3dsdk=Angelica3d SDK:
Code:
echo copy libary into sdk folder
copy"$(TargetPath)" ..\Output\a3dsdk\lib\"$(TargetName)".lib
echo copy headers into sdk folder
xcopy .\header\*.h ..\Output\a3dsdk\include\*.h /R /Y /Q
Angelica_Project\header are copied to ..\Output\Project_sdk\Include
Angelica_Project\lib are copied to ..\Output\Project_sdk\Lib

*General Method to compile Angelica Engine:
Code:
1)Compile 3rd party SDK projects(Output has to be used as a visual studio directory for include and libs )
2)Compile AngelicaCommon
3)Compile AngelicaFile
4)Compile AngelicaMedia
5)Compile Angelica3D

*These are the required Libraries to compile SMElementClient:
Code:
AUIInterface
GfxCommon
LuaWrapper
SMCHBasedCD
SMSteam
SvrCD
jpeg-6b
AutoMove
FTDriver
STLPort
FW client source get a network error if something is wrong with STLPort.

*These are 3rd party SDK required for Angelica2 engine:
Code:
lua5.1.mt.lib
Mpg123Lib (Open-source AudioPlayer by mpg123.org)
DShow_BaseClasses
DShow_Async
ImmWrapper
SpeedTreeRT
ZLibLib
vorbis_static
vorbisfile_static
ogg_static

It's a good thing to have full control of the libraries used to build our client executable and game engine. It's better to get these projects and upgrade them along with our Client executable.

I have noticed that eliminating warnings does reduce size of Compiled projects.

As you upgrade further there are more and more depreciated functions.At a point, they may get completely removed by visual studio which breaks your source code.

Angelica 2.1 & Angelica 2.2 seems to be using Directx9.Hence,they can be used as a reference for upgrading to Directx9 in Angelica2.

 
Last edited:
Junior Spellweaver
Joined
Oct 15, 2020
Messages
152
Reaction score
184
*How to fix v253 Client Source?
I discovered how to fix Dysil Client source as I was helping someone.
Actually Dysil wasn't really broken it just had a code that prevented it from opening in standard English clients that are set in America Country Zone.
The following lines of code have to be commented in SMElementClient/elementclient.cpp
Code:
/*    if (g_GameCfgs.GetServerZone()==COUNTRY_ZONE_AMERICA && !l_CmdParams.bArcUser && !l_CmdParams.bSteamUser)
    {
        TCHAR tArcExe[BUFSIZ];
        ::GetCurrentDirectory(BUFSIZ, tArcExe);
        _tcscat(tArcExe, _T("\\update\\ShareTool\\LaunchArc.exe"));
        
        STARTUPINFO si;
        memset(&si, NULL, sizeof(STARTUPINFO));
        si.cb = sizeof(STARTUPINFO);
        
        PROCESS_INFORMATION pi;
        memset(&pi, NULL, sizeof(PROCESS_INFORMATION));
        
        ::CreateProcess(
            tArcExe, 
            _T(" arc:1"), 
            NULL, 
            NULL, 
            FALSE, 
            NULL, 
            NULL, 
            NULL, 
            &si, 
            &pi);

        l_bEnableExitCheck = false;
        return false;
    }*/


*How to disable sbr files when building client source?
Project Settings -> C++ ->Category=Listing Files
you can disable the option to generate browser files
This is the reason why dysil creates too many files.


*Synchronize SMElementSkill with skills source from server side:
1)You can delete the skills_XXX.h &StubsXXX.cpp in SMElement/SMElementSkill directory.
2)You can copy files from wskill/skills
3)Go to FileView and adjust the source files ->stubsXXX.cpp to be the same number as stubs from skills source.

 
Last edited:
Junior Spellweaver
Joined
Oct 15, 2020
Messages
152
Reaction score
184
Special thanks to many friends who helped me with my research!
->So Shenmo Wanmei uses 2 different system for source control:
1)VSS ->Visual SourceSafe
2)SVN (Apache Subversion)


->Tools aren't locked by game but depend mainly on Angelica Engine and structures in GfxCommon,Common,ElementClient and so on.
It's why some tools for Wulin for Example :QAttackEditor ,QECModelBrushEditor could be used on Forsaken World as an example.


->Here are some of my findings about client structures in FW:
Code:
.Ecm (ElementClientModel) -> EC_Model.cpp
.att(Attack)-> A3DSkillGfxComposer.cpp 
.tmpl(template) -> BaseDataTemplate.cpp
.org(Original)-> BaseDataOrg.cpp
.tkt (TaskTemplate)-> TaskTempl.cpp
.Ext(Extension or Expansion)-> BaseDataExp.cpp (This is used for Equipment Addons)


->These following 3rd party SDKs have been found in DirectX 8.1 SDKs (DXSDK\samples\Multimedia\DirectShow)
You can found these projects and may upgrade them as needed along with the Angelica2 engine.
Code:
DShow_Async ->DXSDK\samples\Multimedia\DirectShow\Filters\Async
DShow_BaseClasses ->DXSDK\samples\Multimedia\DirectShow\BaseClasses


->Here are some of my findings about CHBasedCD that is used for ElementClient based on the comments in the project.
Code:
// CH is the abbreviation of "Convex Hull"
// CD is the abbreviation of "Collision Detection"
It is used for Collision Detection and Path finding.
It is not convex when it describes the Terrain obstruct or water area!


@Fyyre has gathered all main dependencies and made sure they were in SMElement
Some stuff were ignored but mainly because of their narrow use.
Code:
-Gfxcommon(Graphical Effects)
-AUInterfaces(User Interfaces)
-SMCHBasedCD(Collision Detection and Path Finding)
-LuaWrapper(Lua)
-SMSteam(At a point client was linked to Steam)
-SvrCD(Server Collision Detection)
Please feel free to correct me if you notice a mistake!
I'm grateful for the people who have supported me in my FW work.
 
Last edited:
Junior Spellweaver
Joined
Oct 15, 2020
Messages
152
Reaction score
184
SMTaskTemplBatchEditor project has opent a new door to me.It's not entirely working since what's there is outdated from like 2012.
Basicaly Shenmo Wanmei is using a Macro-Enabled workbook to import and export TaskTemplate through the use of VBA Scripts.

Through DLLs and VBA Scripts,I can eventually make my own BASEDATA that gets used by SMElementData to make the different binaries such as: gshop,elements,aipolicy and tasks.
I like the idea of creating My OWN BASEDATA From excel sheets!
 
Junior Spellweaver
Joined
Oct 15, 2020
Messages
152
Reaction score
184
*That's how different builds are used according to the guesses of @Psytrac and me :
Code:
1)Alpha  (Debug Build):
It's used by Shenmo Devs for testing and it relies on debug console.
Issues and bugs can be identified before releasing it to the public.

2)Beta   (DbgRelease Build):
Software is made available to a limited number of external users.
User feedback is used to improve the quality of the software.

3)Release(Release Build):
It's ready to be used for the general public and players may use it.
Most often is more complete in optimizations.


*It is the AutoMove library that auto-routes player properly.
That library is more important than we think and it should have been added along with client source. It looks like a minor library but it is so important in the game.It is one of the best supportive features that helps players with the game that has high impact on players' experiences especially newbies.

Please feel free to correct me if you notice a mistake!
I'm grateful for the people who have supported me in my FW work.
 
Last edited:
Back
Top