Jump to content

khelban12

Member Since 10 Sep 2013
Online Last Active Today, 04:02 AM

Posts I've Made

In Topic: GemRB bugs, issues and problems with mods and mega mod setups

Today, 03:22 AM

Fallen stuff: seems it was hardcoded and the script actions are used only in the hell trials. Fixed now.


Nice work. Thank you. I did the following changes:
 
diff --git a/gemrb/core/Scriptable/Actor.cpp b/gemrb/core/Scriptable/Actor.cpp
index b65ed5d49..b0b0a1e96 100644
--- a/gemrb/core/Scriptable/Actor.cpp
+++ b/gemrb/core/Scriptable/Actor.cpp
@@ -274,7 +274,7 @@ static void InitActorTables();
 //TODO: externalise
 #define TURN_PANIC_LVL_MOD 3
 #define TURN_DEATH_LVL_MOD 7
-#define REPUTATION_FALL 7
+#define REPUTATION_FALL 60
 
 static ieResRef d_main[DAMAGE_LEVELS] = {
 	//slot 0 is not used in the original engine
I tried to trigger it but couldn't. When i read the wiki to find which console function changes the reputation so that i could quickly test changes, i read that "reputation will be divided by 10 when reported". So for some reason, the reputation has values multiplied by 10 and indeed when i changed the variable to 70, i could trigger it fine.

In vanilla, when your rep reaches 7, you remain paladin and only fall when you drop to 6. So i changed the value to 60.
 
diff --git a/gemrb/core/GameScript/Actions.cpp b/gemrb/core/GameScript/Actions.cpp
index d86e0bc84..e27608a0b 100644
--- a/gemrb/core/GameScript/Actions.cpp
+++ b/gemrb/core/GameScript/Actions.cpp
@@ -3944,6 +3944,7 @@ void GameScript::FullHeal(Scriptable* Sender, Action* parameters)
 	scr->Heal(0);
 }
 
+static EffectRef fx_disable_button_ref = { "DisableButton", -1 };
 void GameScript::RemovePaladinHood(Scriptable* Sender, Action* /*parameters*/)
 {
 	if (Sender->Type!=ST_ACTOR) {
@@ -3952,6 +3953,8 @@ void GameScript::RemovePaladinHood(Scriptable* Sender, Action* /*parameters*/)
 	Actor *act = (Actor *) Sender;
 	act->ApplyKit(true, act->GetClassID(ISPALADIN));
 	act->SetMCFlag(MC_FALLEN_PALADIN, OP_OR);
+	Effect *fx = EffectQueue::CreateEffect(fx_disable_button_ref, 0, ACT_TURN, FX_DURATION_INSTANT_PERMANENT);
+	act->fxqueue.AddEffect(fx, false);
 	if (act->InParty) displaymsg->DisplayConstantStringName(STR_PALADIN_FALL, DMC_BG2XPGREEN, act);
 }
In gemrb while i lost the paladin abilities, i could still turn undead where in vanilla the button is grayed. So i made the above change to disable the button. With limited testing it seems to work. I didn't test if i can still turn undead with hotkeys or scripts though.

Another discrepancy that remains is that in vanilla when you press R to view the character tab, the first line says "Fallen Paladin Level 7" where in gemrb it just says "Paladin Level 7". I didn't fix it because i didn't know how to change the string.

Offtopic: If you remember, some time ago, i bothered you to implement a variable in cmakelists.txt for installing to a different libdir. You implemented it as "LIBDIR_SUFFIX" when every other project uses is "LIB_SUFFIX". I didn't mention it before because i didn't want to impose on you more.

In Topic: Version 7 of Tweaks Anthology Released

17 November 2018 - 12:29 PM

Reading Throari's post about the spell progressions, reminded me a minor nitpick i had for some time but forgot to mention it.

The Wizard spell progression component has 2 subcomponents, the unnerfed and the PnP one. I tried to search the forum but it is a quite old component and couldn't find what rules does the PnP one follow. After Level 30 they diverge to different paths which is ok. Up to L30 they are mostly the same with a few differences on levels 25,26,29.

On L25, the PnP one gives 4 L9 spells where the unnerfed gives 5. On L26, the PnP one gives 6 L5 spells where the unnerfed gives 5. On L29, the PnP one gives 7 L5 spells where the unnerfed gives 6.

HLC.png

If we take the above picture from the "High Level Campaigns" rulebook as the "PnP canon", then in all 3 cases, the unnerfed version is correct. Shouldn't the PnP version be changed to match this ?

In Topic: GemRB bugs, issues and problems with mods and mega mod setups

17 November 2018 - 11:25 AM

-Becoming Fallen Paladin/Ranger is impossible ( makes me think that mod Virtue will not be working with GemRB)

With limited testing, i think you are correct. I killed some bystanders on Waukeen's Promenade and got reputation decrease to 7 but didn't fall.
 

-Cleric/Thief has no access to turn undead widget (hotkey turn undead works for this multiclass but you get no widget)
-Cleric/Ranger has no access to hide in shadows/stealth widget

The file responsible for this is unhardcoded/bg2/qslots.2da. In the cleric_thief line, change the "slot2" column from 1 to 6 and you will get Turn Undead instead of thieving. I don't remember though how you can add an extra slot to be called from the "innate" abilities like the vanilla engine.
 

-sometimes random NPCs can die when you enter the area (ghost child in the Graveyard district or Alexandria in Umar Hills)

I saw this too in some cases. I can't remember for sure but i think the cause was that the creatures had 0 HP (or some attribute like strength 0 or something) and while the vanilla engine spawned them fine, gemrb killed them as soon as they spawned. Can you check wellyn.cre and the alexandria creature in dltcep or NearInfinity and see how many HP they have;
 

-Stunning (happen to me by getting hit by imp in Irenicus hideout second level) and poisoning sometimes doesn't work but you still see the icon that you're poisoned/stunned

I got this too in some playthrough.
 

-ToBEx Universal Four Inventory Weapon Slots
-ToBEx Enable Auto-Pause On All Screens - this is big deal sometiems you forget to pause tha game and dialog starts when you are in the inventory menu etc. freezing your game you have to quit and load your last save
-ToBEx Allow All Races to Dual Class
-ToBEx Level One Proficiency Restrictions

Some (all ?) tobex components just enable a setting in the ini file and so they have meaning only with tobex. In GemRB, there may be a different way to enable some of the settings (for example an "unhardcoded" file) or they may not be implemented at all.

About the Four Inventory slots, i had posted a patch some years ago but it wasn't polished enough to be used by everyone. You can search the forum for it and use it if you like.
About the L1 Prof Restrictions, in the vanilla engine there is a file called profsmax.2da. I don't know what is its purpose but check it incase it does what you want.
About the All Races can Dual Class, unhardcoded/bg2/races.2da has a column CAND and only Humans have a 1. Try changing every race to have 1. Maybe it isn't implemented and it will have no effect for other races but it doesn't hurt to try.

The unhardcoded/{shared,bg2} directories have a load of files you can mess with and do many cool things (like sorcerer with thief skills :) and stuff like that).

In Topic: bg1 save game compatibility: creature names

11 November 2018 - 08:44 AM

I finally found mod that causes ShadowKeeper unable to open GemRB save Error (1025): Missing CRE signature. It happened after I installed The Drizzt Saga.
I am 100% positive because I was making new game and saved it after adding each mod then checked if I can load the save with ShadowKeeper. After installing Drizzt Saga v3 you will be unable to load your GemRB save in Shadowkeeper and vanilla engine.
I inspected .cre files with NearInfinity and couldn't find any .cre from Drizzt Saga v3 file that was missing signature.


I installed drizzt saga and indeed the gemrb save cannot be opened by shadowkeeper but i could load it in vanilla engine fine.
baldurgam.png

When i open the baldur.gam file from the save folder in dltcep, i get the above picture.

The characters in the vanilla-engine save have *name in their "creature" field. The characters in the gemrb save have empty "creature" field and their proper name is being shown. I also opened the game files in NearInfinity and i get "*name" for the vanilla engine save but in the gemrb case i get "null (none)".

I can't tell if there is a problem with the way gemrb saves the creatures but i noticed the following things:

a) Different from zelazko, I can always open the save (i am in candlekeep in case it matters) in the vanilla engine with or without drizzsaga installed.

b) If i click the "null" characters produced by gemrb, NearInfinity correctly shows the character with their portrait and stats and everything so nothing important is missing from the save file.

c) If i delete the 5-6 "drizzsaga" characters from baldur.gam then ShadowKeeper can correctly open the save file. However, every character produced by gemrb have the "creature" field empty and SK doesn't barf on the vanilla characters, so it must be the combination of gemrb and something in the drizztsaga characters.

Edit: I think i found the cause. When i tried to open the f_*.cre files in dltcep, i got a message "creature will be reordered. harmless inconsistency". I then proceeded to save each .cre file. I then made a new save from within gemrb and voila SK can open it fine.

@lynx I haven't tested it but my guess is that gemrb saves the characters in the save file as it reads them and that confuses SK while the vanilla engine reorders them before it saves them.

Edit2: The problematic cre files are f_{artemi, brueno, cattib, jarlax, regis2, wulfga}.cre
 
--- z2/drizzt   2018-11-11 21:33:16.000786421 +0200
+++ z2/dltcep   2018-11-11 21:33:20.792704859 +0200
@@ -218,7 +218,7 @@
 0x02A4 DWORD    4 Count of known spells: 0
 0x02A8 DWORD    4 Offset of spell memorization infos: 724
 0x02AC DWORD    4 Count of spell memorization infos: 17
-0x02B0 DWORD    4 Offset of memorized spells: 1236 
+0x02B0 DWORD    4 Offset of memorized spells: 996 
 0x02B4 DWORD    4 Count of memorized spells: 0
 0x02B8 DWORD    4 Offset of items slots: 1356
 0x02BC DWORD    4 Offset of items: 1236
I ran ieparse and diffed the two files. As you read, the one provided by the mod has 1236 offset both for memorized spells and items. After dltcep changes it to 996, then SK works correctly. This is the only wrong thing with them except regis2 which has some more wrong offsets.
@@ -2050,11 +2050,11 @@
 0x027C WORD     2 Global actor enumeration value: 65535
 0x027E WORD     2 Local (area) actor enumeration value: 65535
 0x0280 STR32   32 Death variable: F_REGIS2^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
-0x02A0 DWORD    4 Offset of known spells: 988 
+0x02A0 DWORD    4 Offset of known spells: 724 
 0x02A4 DWORD    4 Count of known spells: 0
-0x02A8 DWORD    4 Offset of spell memorization infos: 988 
+0x02A8 DWORD    4 Offset of spell memorization infos: 724 
 0x02AC DWORD    4 Count of spell memorization infos: 0
-0x02B0 DWORD    4 Offset of memorized spells: 988 
+0x02B0 DWORD    4 Offset of memorized spells: 724 
 0x02B4 DWORD    4 Count of memorized spells: 0
 0x02B8 DWORD    4 Offset of items slots: 1048
 0x02BC DWORD    4 Offset of items: 988

In Topic: Gibberlings3 forum hacked?

05 November 2018 - 02:02 AM

Anyone who noticed the redirect can take some comfort that the problem was on the forums, rather than malware on their machine or a malicious browser addon.
 
Assuming users didn't do anything dangerous on the redirected site (e.g. downloading and running a file), they should be fine.


I noticed it too but couldn't find the cause. The first time was some weeks ago. I have a bookmarks folder with fora and news site i visit everyday so that i can quickly use "open all in tabs". So everytime i happened to see the ff tab with url4short, i had many opened tabs and i couldn't pinpoint from what site i opened it.

I researched it a bit and found that it is a malware but like lynx i thought it is my machine that is infected. I couldn't find anything wrong with my firefox profile and since it occurred very infrequently (and since i use a different profile for banking and tax stuff) i dismissed it as not important :)

kudos to psyko for reporting it and to Mike for fixing it.