Skip to content

Commit

Permalink
Add stamina and mana points to Script_LearnPoints
Browse files Browse the repository at this point in the history
  • Loading branch information
georgeto committed May 12, 2021
1 parent 9356a70 commit 5eedfce
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 8 deletions.
6 changes: 5 additions & 1 deletion bin/Ini/learnpoints.ini
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,8 @@
;Learning points the hero gains on level up - 10=default
Game.LearnPointsOnLevelUp=10
;Health points the hero gains on level up - 0=default
Game.HealthPointsOnLevelUp=0
Game.HealthPointsOnLevelUp=0
;Stamina points the hero gains on level up - 0=default
Game.StaminaPointsOnLevelUp=0
;Mana points the hero gains on level up - 0=default
Game.ManaPointsOnLevelUp=0
3 changes: 2 additions & 1 deletion source/Scripts/Script_LearnPoints/Readme_DE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ Die Ordner 'Ini' und den 'scripts' müssen ins Gothic 3 Installationverzeichnis
Es muss kein neues Spiel gestartet werden.

2. Verwendung
Die Anzahl der Lernpunkte, die der Held pro Levelaufstieg erhält, kann in 'scripts/learnpoints.ini' eingestellt werden.
Die Anzahl der Lernpunkte, Lebenspunkte, Ausdauerpunkte und Manapunkte,
die der Held pro Levelaufstieg erhält, kann in 'Ini/learnpoints.ini' eingestellt werden.
3 changes: 2 additions & 1 deletion source/Scripts/Script_LearnPoints/Readme_EN.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ The 'Ini' and the 'scripts' folder have to be copied into the Gothic 3 install f
There is no need to start a new game.

2. Usage
The amount of learning points the hero gains with every level up, can be configured inside 'scripts/learnpoints.ini'.
The amount of learning points, health points, stamina points and mana points
the hero gains with every level up, can be configured inside 'Ini/learnpoints.ini'.
20 changes: 15 additions & 5 deletions source/Scripts/Script_LearnPoints/Script_LearnPoints.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,23 +14,33 @@ gSScriptInit & GetScriptInit()

GEInt g_iLearnPointsOnLevelUp = 10;
GEInt g_iHealthPointsOnLevelUp = 0;
GEInt g_iStaminaPointsOnLevelUp = 0;
GEInt g_iManaPointsOnLevelUp = 0;

void LoadSettings() {
eCConfigFile config = eCConfigFile();
if(config.ReadFile(bCString("learnpoints.ini"))) {
g_iLearnPointsOnLevelUp = config.GetInt(bCString("Game"), bCString("Game.LearnPointsOnLevelUp"), g_iLearnPointsOnLevelUp);
g_iHealthPointsOnLevelUp = config.GetInt(bCString("Game"), bCString("Game.HealthPointsOnLevelUp"), g_iHealthPointsOnLevelUp);
g_iHealthPointsOnLevelUp = config.GetInt(bCString("Game"), bCString("Game.HealthPointsOnLevelUp"), g_iHealthPointsOnLevelUp);
g_iStaminaPointsOnLevelUp = config.GetInt(bCString("Game"), bCString("Game.StaminaPointsOnLevelUp"), g_iStaminaPointsOnLevelUp);
g_iManaPointsOnLevelUp = config.GetInt(bCString("Game"), bCString("Game.ManaPointsOnLevelUp"), g_iManaPointsOnLevelUp);
}
}

GEI32 GE_STDCALL GetIncrementedLearnPoints()
{
PSPlayerMemory * pPlayerMemory = mCCallHook::GetLastSelf<PSPlayerMemory *>();

if(g_iHealthPointsOnLevelUp != 0)
pPlayerMemory->AddHitPointsMax(g_iHealthPointsOnLevelUp);
if(g_iHealthPointsOnLevelUp != 0)
pPlayerMemory->AddHitPointsMax(g_iHealthPointsOnLevelUp);

return pPlayerMemory->LPAttribs + g_iLearnPointsOnLevelUp;
if(g_iStaminaPointsOnLevelUp != 0)
pPlayerMemory->AddStaminaPointsMax(g_iStaminaPointsOnLevelUp);

if(g_iManaPointsOnLevelUp != 0)
pPlayerMemory->AddManaPointsMax(g_iManaPointsOnLevelUp);

return pPlayerMemory->LPAttribs + g_iLearnPointsOnLevelUp;
}

extern "C" __declspec( dllexport )
Expand Down Expand Up @@ -68,4 +78,4 @@ BOOL APIENTRY DllMain( HMODULE hModule, DWORD dwReason, LPVOID )
break;
}
return TRUE;
}
}

0 comments on commit 5eedfce

Please sign in to comment.