its time for another release. Its more of a proof of concept and I hope it might inspire people to continue working on it. You don't need the source to accomplish cool things. Just write your own source.

Ye, its super ugly looking. I choose to be a coder, not a designer. I'd be happy, if someone supplies me a proper version of the 2dt and ddj files so I can update this embarrassing screenshot.
Anyway. It allows you to write code and access GUI-Elements of SRO like you got the original source. It results in an injectable Dll.
This allows you to change the weird scaling of the new Expbar:
Code:
#include "CNIFUnderMenuBar.h"
#include "CICPlayer.h"
#include <stdio.h>
#include "CGlobalDataManager.h"
#include <cmath>
void CNIFUnderMenuBar::Update() {
// Skip, if player object is not loaded yet (KEEP!)
if (!g_CICPlayer) {
return;
}
// Some other call that is important (KEEP!)
((void (__thiscall * )(CNIFUnderMenuBar*))0x46CD80)(this);
// Retrieve LevelData for current Level
// (this is one line of Media\server_dep\silkroad\textdata\leveldata.txt)
CLevelData* data = g_CGlobalDataManager->GetLevelData(g_CICPlayer->level);
// Calculate EXP as percentage value
double exp_percentage = g_CICPlayer->exp_current * 100.0 / data->Exp_C;
// Limit maximum percentage to 99.99%
if (exp_percentage > 99.99)
exp_percentage = 99.99;
// Calculate the number of bars that are full
int barnum = floor(exp_percentage / 10.0);
for (int i = 0; i < 10; i++) {
// Fill or empty bars
if (barnum <= i) {
gauges[i]->background_value = 0.0;
gauges[i]->foreground_value = 0.0;
} else {
gauges[i]->background_value = 1.0;
gauges[i]->foreground_value = 1.0;
}
}
// Fill the bar that is neither full or empty with the remaining percentage
double exp_remain = (exp_percentage - (barnum * 10.0)) / 10.0;
gauges[barnum]->background_value = exp_remain;
gauges[barnum]->foreground_value = exp_remain;
// Assign more texts
this->lbl_level->SetText(L"Level: %d", g_CICPlayer->level);
this->lbl_percentage->SetText(L"%.2lf %%", exp_percentage);
// Skillpoints
this->lbl_spcount->SetText(L"%d", g_CICPlayer->skillpoints);
this->gauge_skillexp->background_value = g_CICPlayer->skill_exp / 400.0;
this->gauge_skillexp->foreground_value = g_CICPlayer->skill_exp / 400.0;
// You can also draw text directly at the gauge. It will be centered automatically
// this->gauge_skillexp->SetText(L"%d", g_CICPlayer->skill_exp);
this->lbl_exp_bar_scaler->SetText(L""); // Prescaler is disabled
// This label is right in the middle of the EXP-Bar
//this->lbl_360->SetText(L"lbl_360");
};
- Compile using Visual Studio 2005
- Compile on RELEASE
- Never compile on DEBUG
- IF and only IF you know how to make the 2005 compiler work in other VS versions, dare to use other VS versions. If not, simply don't even think about it. I have supplied my v2010 project-file
. - Wanna try newer compilers? Go for it! But don't cry <3
Have fun







