Jump to content

Zed Nocear

Members
  • Content Count

    32
  • Joined

  • Last visited

About Zed Nocear

Profile Information

  • Gender
    Male

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. On my computer BGQE V9 final doesn't install on Tutu. Weidu rapports missing ~bg1re/lib/X#BIMOEN_TUTU.D~. If I changed patch in TP2 to ~bgqe/lib/X#BIMOEN_TUTU.D~ I could install BGQE on Tutu. Surprisingly ~bg1re/lib/X#BIMOEN_BGT.D~ 3 lines below doesn't prevent BGQE to install on BGT. Another little thing: all dialogues in TP2 are compiled with "USING ~bgqe/tra/autotra/%LANGUAGE%/XXXXXXXX.tra~" but in line 1826 of TP2 is "USING ~bgqe/tra\%s\C#Q10001.tra~". Is it right?
  2. I have installed BGQE 9_140628 on original BG1 and after talk to Linda in Prologue the journal entry was placed to chapter 1 section (as it will be counted like in BGT). On BGEE 1.3 journal entries work fine now.
  3. Hm, there is pdialog.2da in vanilla BG1 and all joinable NPCs have Join_Dialog. You simply used wrong names. Other issue - not all joinable NPCs in BG1 have individual Override_script. This pdialog.2da is from my BG1: 2DA V1.0 0 POST_DIALOG_FILE JOIN_DIALOG_FILE KIVAN KIVANP KIVANJ ALORA ALORAP ALORAJ MINSC MINSCP MINSCJ DYNAHEIR DYNAHP DYNAHJ YESLICK YESLIP YESLIJ CORAN CORANP CORANJ AJANTIS AJANTP AJANTJ KHALID KHALIP KHALIJ JAHEIRA JAHEIP JAHEIJ GARRICK GARRIP GARRIJ SAFANA SAFANP SAFANJ FALDORN FALDOP FALDOJ BRANWEN BRANWP BRANWJ QUAYLE QUAYLP QUAYLJ XAN XANP XANJ SKIE SKIEP SKIEJ ELDOTH ELDOTP ELDOTJ XZAR XZARP XZARJ MONTARON MONTAP MONTAJ TIAX TIAXP TIAXJ KAGAIN KAGAIP KAGAIJ SHARTEEL SHARTP SHARTJ EDWIN EDWINP EDWINJ VICONIA VICONP VICONJ IMOEN IMOENP IMOEN2 In BG1 names of original Join_dialogs have maximum five characters of NPC's names + "J". The exception is Imoen. Their IMOEN2.DLG fulfill a double function of Initial_dialog and Join_dialog (is not changed after join to the party).
  4. Probably this bug does NOT exists since version 3 BG1 Tweaks. I analysed the code but didn't find any error. Than I tried to reproduce the error but talking to Khalid I could send Khalid and Jaheira to Jovial Juggler and FAI without problems (I repeat the test few times). I suppouse, the problem was placed not in "Send BioWare NPC's to an Inn" component, but in older version of "AreaCheckEmulation", which used trigger "Delay(1)". "Delay(1)" in BG1 areas scripts, but not "Delay(2)" or with other counts, makes strange instability of all scripts, and some actions are not executed. Another symptom is often CTD by travel between areas. In BG1 Tweaks v3 there is a newer version of "AreaCheckEmulation" and all should be OK.
  5. The description of "0x0036 OnCreation()" in IESDP for BG1 and BG2 is the same: Returns true only if the active creature came into existance in the last script round. If this is in an area script this returns true when the player enters the area for the first time. At least for area scripts in BG1 this is not exactly true. They are many creatures in BG1 spawned in 7. chapter on areas they are already visited in 5. chapter. The code, that creates these creatures has often trigger OnCreation() and it doesn't disallow to spawn these creatures. For examples the BG1 plot always requests to talk to duke Eltan in 5. chapter in Flaming Fist Headquarters on area AR0608. In the same area in 7. chapter the "healer" Rashad appears, although the script block in AR0608.BCS, which creates Rashad has trigger OnCreation(): IF OnCreation() Global("Chapter","GLOBAL",7) Global("Rashadspawn","GLOBAL",0) THEN RESPONSE #100 SetGlobal("Rashadspawn","GLOBAL",1) CreateCreature("RASHAD",[568.293],0) // Rashad ActionOverride("ELTAN",DestroySelf()) CreateCreature("DELTAN2",[581.268],0) // Duke Eltan SmallWait(2) ActionOverride("ELTAN2",Face(6)) Continue() END
  6. Ok, as You wish. It remains the only solution. BTW, is it possible to add to WeiDU instruction, which reloads from disc all declared TRA in LANGUAGE declaration, like ie. CLEAR_IDS_MAP, please. LOAD_TRA exists already in Weidu, but it needs the patch to specific TRA file. I have idea, that needs to change TRA files "on installation", but WeiDU uses old versions of TRA declared in LANGUAGE.
  7. I made a mod with Polish and English version, Polish first declared. If Polish and English setup.TRA have the same name, there is all OK. But I want declare different names, theoretically it should be possible: LANGUAGE ~Polski~ ~Polski~ ~TWM_Pack/Translations/Polski/setup-PL.tra~ LANGUAGE ~English~ ~English~ ~TWM_Pack/Translations/English/setup-EN.tra~ I install the mod in BG1 on Windows XP. Now if I install with Polish language option, it's still alright. But if I install with English language option, strings in game are correct in English, WeiDU.log is in English, but messages in console window ("DOS box") are wrong in Polish. If I return to one name "setup.tra" for both languages, the error in English installation vanish.
  8. I have read the issue and maybe the safety of Delay() in multiplayer is not absolute sure, but I doubt that Delay() is the reason of crashes in multiplayer. Delay() is used in original scripts about 50x in BG1 and 300x in BG2. Somehow should observe the crashes also in multiplayer in pure game. If slowing down the bandwidth has helped, I think, maybe outdated IPX protocol was not compliant with 1GHz bandwidth. Well, there is something about "Delay", but not Delay() at all. From my experience with "Areacheck Emulation" code, Delay(1) is buggy, works like True(), preventing fallowing script block activation and makes BG1 instable (sometimes CTD by area change and shopping). Delay with other time value like Delay(2) or higher works good.
  9. I have refreshed the code of AreaCheck emulation with using new feature of WeiDU: inline and evaluate_buffer. This version makes in principle exactly the same as the previous one, but has compacter, more clear code and is easer to use: only code, no separate BAF files are needed: <<<<<<<< .../BG1TriggerEmulation-inlined/Z!EmulAreaCheck.BAF IF Delay(2) ActionListEmpty() THEN RESPONSE #100 SetGlobal("Z!EmulAreaCheck","GLOBAL",%Area_Number%) SetGlobal("Z!EmulAreaType","GLOBAL",%Area_Flags%) SetGlobal("Z!EmulAreaOutdoor","GLOBAL",%Variable_Outdoor%) SetGlobal("Z!EmulAreaCity","GLOBAL",%Variable_City%) SetGlobal("Z!EmulAreaForest","GLOBAL",%Variable_Forest%) SetGlobal("Z!EmulAreaDungeon","GLOBAL",%Variable_Dungeon%) SetGlobalTimer("Z!EmulAreaNotMaster","GLOBAL",4) END >>>>>>>> <<<<<<<< .../BG1TriggerEmulation-inlined/Z!EmulAreaCheck1.BAF IF !Global("Z!EmulAreaCheck","GLOBAL",%Area_Number%) !GlobalTimerNotExpired("Z!EmulAreaNotMaster","GLOBAL") ActionListEmpty() THEN RESPONSE #100 SetGlobal("Z!EmulAreaCheck","GLOBAL",%Area_Number%) SetGlobal("Z!LastMasterArea","GLOBAL",%Area_Number%) SetGlobal("Z!EmulAreaType","GLOBAL",%Area_Flags%) SetGlobal("Z!EmulAreaOutdoor","GLOBAL",%Variable_Outdoor%) SetGlobal("Z!EmulAreaCity","GLOBAL",%Variable_City%) SetGlobal("Z!EmulAreaForest","GLOBAL",%Variable_Forest%) SetGlobal("Z!EmulAreaDungeon","GLOBAL",%Variable_Dungeon%) END >>>>>>>> COPY_EXISTING ~AR2612.ARE~ ~override~ //two areas in BG1 have wrong flag "Outdoor" ~AR3317.ARE~ ~override~ WRITE_BYTE 0x48 0 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING_REGEXP GLOB ~.*\.ARE~ ~override~ // for all areas in game proper script name and file SPRINT area_name ~%SOURCE_RES%~ READ_ASCII 0x94 ~old_script_name~ WRITE_EVALUATED_ASCII 0x94 ~%SOURCE_RES%~ INNER_ACTION BEGIN ACTION_IF !(~%old_script_name%~ STRING_EQUAL_CASE ~%area_name%~) AND (FILE_EXISTS_IN_GAME ~%old_script_name%.bcs~) THEN BEGIN COPY_EXISTING ~%old_script_name%.bcs~ ~override/%area_name%.bcs~ END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING_REGEXP GLOB ~.*\.ARE~ ~override~ // adds AreaCheck emulation block to the area script READ_ASCII 0x94 ~Script_Name~ PATCH_IF (~%SOURCE_RES%~ STRING_MATCHES_REGEXP ~AR[0-9][0-9][0-9][0-9]~) = 0 THEN BEGIN READ_ASCII 0x96 ~Area_Number~ (4) END ELSE BEGIN SPRINT ~Area_Number~ ~0~ END READ_BYTE 0x48 ~Area_Flags~ INNER_ACTION BEGIN ACTION_IF (NOT FILE_CONTAINS_EVALUATED(~%Script_Name%.BCS~ ~Z!EmulAreaCheck~)) // area script not already patched THEN BEGIN OUTER_SET Variable_Outdoor = ((~%Area_Flags%~ BAND 0b1) = 0b1) OUTER_SET Variable_City = ((~%Area_Flags%~ BAND 0b1000) = 0b1000) OUTER_SET Variable_Forest = ((~%Area_Flags%~ BAND 0b10000) = 0b10000) OUTER_SET Variable_Dungeon = ((~%Area_Flags%~ BAND 0b100000) = 0b100000) ACTION_IF (FILE_CONTAINS_EVALUATED(~MASTAREA.2DA~ ~%Script_Name%~)) //area is "master area" as in mastarea.2DA or not THEN BEGIN EXTEND_BOTTOM ~%Script_Name%.BCS~ ~.../BG1TriggerEmulation-inlined/Z!EmulAreaCheck1.BAF~ EVALUATE_BUFFER END ELSE BEGIN EXTEND_BOTTOM ~%Script_Name%.BCS~ ~.../BG1TriggerEmulation-inlined/Z!EmulAreaCheck.BAF~ EVALUATE_BUFFER END END END BUT_ONLY_IF_IT_CHANGES Inspired by Grogerson in his BG1 Tweaks, I present emulation of AreaCheck as one library-file TPA BG1areacheck_emulation.TPA. Now the use of code is very simple, just include on the bottom of your mod TP2 code the line: INCLUDE ~%PatchInMyMod%/BG1AreaCheck_emulation.tpa~
  10. I have read the issue and maybe the safety of Delay() in multiplayer is not absolute sure, but I doubt that Delay() is the reason of crashes in multiplayer. Delay() is used in original scripts about 50x in BG1 and 300x in BG2. Somehow should observe the crashes also in multiplayer in pure game. If slowing down the bandwidth has helped, I think, maybe outdated IPX protocol was not compliant with 1GHz bandwidth.
  11. StartDialogNoSet() exists in BG1 very well, but it's named StartDialogueNoSet(). See in IESDP list. !See([ENEMY]) could be enough good, if you accept, that dialog will start immediately after the last enemy is dead. Another way is to use CombatCounter() emulation for BG1. Jastey's "Ajantis BG1 Expansion" already use this method.
  12. Who knows, what means tracking parameter in CRE files offset 0x83 ? It's shown as 33 TRACKING in STATS.IDS and has working opcode to change value. Only few CRE files in BG2 and IWD1 have this stat set to other value than 0. Has it any influance in game and makes what?
  13. Maybe somebody has tried to do this. Try this, if you want.
  14. In TWM "bags of holding" are a part of main component and the tag-file is TWM-01CORE.CoB. If I watch your email, I write answer soon. EDIT: One quick comment to your email: I suppose, I understand the bug. The main script-blocks, that manage behavior of portable containers (Dplayer3_bagsAD.BAF), are placed in dplayer3.bcs. In multi-player mode more then one party member has dplayer3.bcs and all scripts are activated parallel. Therefore "bag" is opened more then one. Try this solution: 1/Add block on the top of Dplayer3_bagsAD.BAF: IF Global("Z!WhichPartyMember","LOCALS",0) THEN RESPONSE #100 ActionOverride(Player1,SetGlobal("Z!WhichPartyMember","LOCALS",1)) ActionOverride(Player2,SetGlobal("Z!WhichPartyMember","LOCALS",2)) ActionOverride(Player3,SetGlobal("Z!WhichPartyMember","LOCALS",3)) ActionOverride(Player4,SetGlobal("Z!WhichPartyMember","LOCALS",4)) ActionOverride(Player5,SetGlobal("Z!WhichPartyMember","LOCALS",5)) ActionOverride(Player6,SetGlobal("Z!WhichPartyMember","LOCALS",6)) END 2/ Add trigger Global("Z!WhichPartyMember","LOCALS",1) to every other block of Dplayer3_bagsAD.BAF. For example: IF Global("Z!WhichPartyMember","LOCALS",0) THEN RESPONSE #100 ActionOverride(Player1,SetGlobal("Z!WhichPartyMember","LOCALS",1)) ActionOverride(Player2,SetGlobal("Z!WhichPartyMember","LOCALS",2)) ActionOverride(Player3,SetGlobal("Z!WhichPartyMember","LOCALS",3)) ActionOverride(Player4,SetGlobal("Z!WhichPartyMember","LOCALS",4)) ActionOverride(Player5,SetGlobal("Z!WhichPartyMember","LOCALS",5)) ActionOverride(Player6,SetGlobal("Z!WhichPartyMember","LOCALS",6)) END IF Global("Z!WhichPartyMember","LOCALS",1) Global("bagus01","LOCALS",1) THEN RESPONSE #100 SetGlobal("bagus01","LOCALS",0) CreateCreature("Z!BAG01",[0.0],1) CreateCreature("Z!BAG0X",[0.0],1) END IF Global("Z!WhichPartyMember","LOCALS",1) Global("bagus02","LOCALS",1) THEN RESPONSE #100 SetGlobal("bagus02","LOCALS",0) CreateCreature("Z!BAG02",[0.0],1) CreateCreature("Z!BAG0X",[0.0],1) END IF Global("Z!WhichPartyMember","LOCALS",1) Global("bagus03","LOCALS",1) THEN RESPONSE #100 SetGlobal("bagus03","LOCALS",0) CreateCreature("Z!BAG03",[0.0],1) CreateCreature("Z!BAG0X",[0.0],1) END IF Global("Z!WhichPartyMember","LOCALS",1) Global("bagus04","LOCALS",1) THEN RESPONSE #100 SetGlobal("bagus04","LOCALS",0) CreateCreature("Z!BAG04",[0.0],1) CreateCreature("Z!BAG0X",[0.0],1) END IF Global("Z!WhichPartyMember","LOCALS",1) Global("bagus11","LOCALS",1) THEN RESPONSE #100 SetGlobal("bagus11","LOCALS",0) CreateCreature("Z!BAG11",[0.0],1) CreateCreature("Z!BAG0X",[0.0],1) END Now only dplayer3.bcs of Player1 should handle the portable containers behavior. EDIT2: I have tested this solution in TWM and it works. Thanks for the bug report.
×
×
  • Create New...