Jump to content

lubronbrons

Premium Member
  • Posts

    567
  • Joined

  • Last visited

Posts posted by lubronbrons

  1. mod index limit is FF --> 255

    Oblivion ESP data limit is FFFFFF

    that is hex number, let's convert it to decimal

    16.777.215 --> that's how much weapon / npc / creature / or whatever you could insert in Oblivion for one esp :smile:

    if you fill all off that the usual savegame routine will take longer, coz every record is saved in ess (savegame file)

    if I'm not wrong this should applies to LL too

  2. just a wild guess

    it could be that the GetSelf is broken in that script

    so use original resource rather than GetSelf (since the script can recognize its master)

    my suggestion is like this

    scriptname LOEscortingAMerchantsShipAntusBincalScript
    
    ref attacker
    short greet01
    short greet02
    short greet03
    short greet04
    
    begin Gamemode
    
    if GetDisposition player < 30
        moddisposition player 70
    endif
          
    
    if greet01 == 0 && GetDistance player <= 350  ;this part forces Antus Bincal to greet player for the 1st time
        set greet01 to 1
        StartConversation Player greeting
    endif
    
    
    if GetStage LOSTEscortingAMerchantsShipQuest == 30
       if (greet02 == 0 && GetInCell LOEscortingAMerchantsShipEtiraMidDeck) ; line 31 with the issue
           set greet02 to 1
           StartConversation Player greeting        
       endif
    elseif GetStage LOSTEscortingAMerchantsShipQuest == 45
       if (greet03 == 0 && LOSTEscortingAMerchantsShipQuest.ShipUnderAttack == 1)
           set greet03 to 1
           StartConversation Player greeting        
       endif
    elseif GetStage LOSTEscortingAMerchantsShipQuest == 85
       if (greet04 == 0 && LOSTEscortingAMerchantsShipQuest.EtiraCaptainDead == 1)
           set greet04 to 1
           StartConversation Player greeting        
       endif
    
    
    endif
    end
    begin OnHit attacker
        if attacker == player
          StopCombat
        endif
        If attacker.GetInFaction LOEAMSEtiraCrewFaction
    		StopCombat
            attacker.StopCombat
        endif
    end
    ;<CSEBlock>
    ;<CSECaretPos> 790 </CSECaretPos>
    ;</CSEBlock>
    
  3. off-topic

    since you are working much with menu and that xml file

    I think we could make a menu overhaul something like that if you want

    the general idea is like this :

    - make the inventory menu appear in GameMode, this will give more immersion since no time stop

    - the inventory menu have page and search function (need MenuQue obse plugin, that menu event handler could be handy)

    by doing this paging, we completely eliminate the Oblivion inventory lag problem

    - can show hidden item too with toggle on/off (such as token from many mods)

     

    EDIT : I am willing to contribute in scripting section, while you in xml realm. it might be interesing

     

    EDIT 2 : hmm.... not even a response eh? or even small thanks :mellow: mm...

  4. you might use this for disease
    (based on HSB mod)

    ;COUNT DISEASE SCRIPT for player
    ref rt
    short i
    short j
    
    Let j := 0
    Let i := GetPlayerSpellCount
    while i > 0
    	Let i -= 1
    	Let rt := GetNthPlayerSpell i
    	if GetSpellType rt == 1
    		if (GetSourceModIndex rt) == 0
    			;current disease use var rt
    			Let j += 1
    		else
    			DebugPrint "HSB:%n (%i) is a non-vanilla disease", rt, rt
    		endif
    	endif
    loop
    ;COUNT DISEASE for all actor version
    Let sh1 := GetSpellCount
    while sh1 > 0
    	Let sh1 -= 1
    	Let rf1 := GetNthPlayerSpell sh1
    	if GetSpellType rf1 == 1
    		if (GetSourceModIndex rf1) == 0
    			;found the disease
    			
    		endif
    	endif
    loop
    

     

     

     

     

    Poisons should be thought of as more of a mass-manufacturing process than an effort to make single, very powerful potions. Although potions employing Damage Health, Damage Magicka, Fire Damage, and Damage Fatigue

     

    as for the poison should be like this

     

     

     

    ;COUNT POISON SCRIPT for player
    Let j := 0
    Let i := GetPlayerSpellCount
    while i > 0
    	Let i -= 1
    	Let rt := GetNthPlayerSpell i
    	if GetSpellType rt == 5
    		if (GetSourceModIndex rt) == 0
    			;current poison use var rt
    			Let j += 1
    		else
    			DebugPrint "HSB:%n (%i) is a non-vanilla poison", rt, rt
    		endif
    	endif
    loop 

     

     

  5. I heard that Heap in OSR can cause issue... crashing when looting arrow

    other than that I don't know

    me curious about this too

    is heap really working ? I didn't use heap thingy for very long time and my game is stable as it is now without it (except that freezing issue which is only occasional)

  6. regarding freezing issue :

    - it's not OSR, this mod is 100% essential to reduce those clipping and stuttering

    - it's not fade effect, this is dangerous... leave the setting as it is, when I test this one more ctd visit my gameplay at random

    - texture memory. yeah, I agree about pcb. I myself using intensive pcb mod (in my mod AoG using different pcb alternative in MenuMode)

    - I did bizarre test by disabling all of my OBSE plugin, and I think it did wonder... so my guess the freezing issue is caused by obse plugin in this case

    when I disabled all of my OBSE plugin, I couldn't replicate freezing issue at all

     

    CONCLUSION : I think freezing issue only happen when this 4 is in place --> overmodded setup, low fps (not that low but reduced), using extensive pcb, certain OBSE plugin (I still investigate this one)

    when I found the obse plugin culprit

    I will let you know what that is~

     

    and....

    ahh :)

    Thanks for your support, Budder

    really appreciated.

    in modding...

    I'm still struggling about how to create better dynamic quests, and also ... I want to bring singing bard to Cyrodiil

    both is my weakpoint in modding, that's why the development is super slow .... manage a quest .... and animation thingy

    I'm saying this with sharing intention, in hope... by doing this somehow maybe I could release some of my stress as modder~ lol

  7. Heads up !

     

    umm... this is just my hypothesis

    I think this freeze / hang up issue is caused by fade in fade out effect on actors.

    I'm about 80% sure (because I still researching it, it's still ongoing)

     

    in this past several days I did test it with this game setting (in below)

    and somehow I never encountered that freezing issue again... dunno, it could be maybe I just got lucky. well... I will use this settings for awhile just to make sure

    ;no fade effect for all actors
    SetNumericGameSetting fActorTeleportFadeSeconds		0  ;default 1
    SetNumericGameSetting fFadeTOBLACKFadeSeconds		0  ;default 0.3
    SetNumericGameSetting fPlayerTELEPORTFadeSeconds	0  ;default 0.001
    

    EDIT :

    I want to confirm

    it's NOT fade in fade out effect, did test it several times

    the freezing bug still happen... I don't know why is that happening but, I still think that is caused by OSR mod...

     

    EDIT 2 :

    nope... it's NOT OSR mod either

    I did deative it and test it

    (because right now I have this savegame that somehow could reproduce the freezing issue about 40% chance)

  8. I hope we could solve this freeze issue, Budder :)

    and somehow I think this freeze issue is caused by wrong setting on OSR mod maybe (??)

     

    mine is like this

    list obse plugin from BOSS

    OBSE Version: 0.0.21.4
    Blockhead.dll Version: 10.3.8.512
    ConScribe.dll Version: 10.0.6.509
    Construction Set Extender.dll Version: 7.0.8.520
    CustomSpellIcons.dll
    DisableProcessWindowsGhosting.dll Version: 2.0.0.0
    Elys_USV.dll
    EngineBugFixes.dll
    FastExit2.dll
    MenuQue.dll
    MessageLogger.dll
    OBSE_EnhancedCamera.dll
    OBSE_Kyoma_MenuQue.dll
    OblivionReloaded.dll Version: 6.4.1.0
    nvac.dll Version: 7.5.0.0
    obse_1_2_416.dll Version: 0.0.21.4
    obse_jail_fix.dll
    obse_training_fix.dll
    sr_Oblivion_Stutter_Remover.dll
    
  9. Not sure if it makes a difference, but when I say ctd, I actually don't mean an immediate ctd, but rather a screen freeze, followed by a sound cut out, and an "oblivion has stopped working" message that shortly follows...

     

    Hey ! that's what I experienced too... I don't know what causing it (it's been years, 3 maybe?)

     

    I hope there is someone that could enlighten us regarding this

     

    EDIT : this is just a WILD guess... it seems this freeze issue is obse plugin related, I think

    so it is not visible in your load order... but it's in --> <Oblivion install folder> \ Data \ OBSE \ Plugins \ (here... it might be the culprit is certain plugin)

  10. oh !

    I understand now

     

    here you go

    scn myMenu
    short choice
    ref rf1
    begin GameMode
    Let choice := GetButtonPressed
    if choice == 0
    	Showenchantment
    elseif choice == 1
    	Showspellmaking
    elseif choice == 2 ;Where the Repair option will be
    	if GetNumericINISetting fRepairSkillBreakBase
    		Message "Unbreakable hammer on"
    		SetNumericGameSetting fRepairBREAKAPPRENTICEMult 0
    		SetNumericGameSetting fRepairSkillBreakBase 0
    		SetNumericGameSetting fRepairSkillBreakMult 0
    	else ;back to vanilla setting
    		Message "Revert repair hammer to vanilla setting"
    		SetNumericGameSetting fRepairBREAKAPPRENTICEMult 0.5
    		SetNumericGameSetting fRepairSkillBreakBase 30
    		SetNumericGameSetting fRepairSkillBreakMult -0.2
    	endif
    endif
    end
    
  11. oh sorry, language barrier. I failed to understand you

     

    well....

    after giving this some thoughts
    I think you just want all weapon to become unbreakable in the end
    so why not go with simple solution, my first suggestion
    by doing this --> SetNumericGameSetting fDamageToWeaponPercentage 0
    definitely will solve your problem repair without hassle
    or...
    if you still want repairing things even tho your armorer is at level 1
    then I can't help you much regarding this
    EDIT :
    this is for armor
    SetNumericGameSetting fDamageToArmorPercentage 0
  12. my last script suggestion should work, you need to create total 3 scripts

    you should equip the weapon first though for it to works

    choose option 3 when you're ready

    then the weapon name will have additional text -INF-

    means

    that weapon will never broken until you remove the -INF- name

    how to remove it / change it back, equip item contain -INF- select option 3 in menu, it should be back to original name again...

  13. oh no... you've got it wrong

    it should be like this

     

    --> declarer this only once by using command like GetGameLoaded or GetGameRestarted. this script type is Quest. attach it to quest and make sure 'start game' flag is checked on

    scn myQuestScript
    begin GameMode
    if GetGameRestarted
    	SetEventHandler "OnHit" myFunc "second"::PlayerRef
    endif
    end
    

    --> create this script, type Object

    scn myFunc
    ref victim
    ref attacker
    ref rf1
    short sh1
    begin function{victim attacker}
    Let rf1 := Player.GetEquippedObject 16
    if rf1
    	if CompareName "-INF-" rf1
    		Let sh1 := GetObjectHealth rf1
    		Player.SetEquippedCurrentHealth sh1 16
    	endif
    endif
    end 

    --> you might use this for your menu script

    scn myMenu
    short choice
    ref rf1
    begin GameMode
    Let choice := GetButtonPressed
    if choice == 0
    	Showenchantment
    elseif choice == 1
    	Showspellmaking
    elseif choice == 2 ;Where the Repair option will be
    	Let rf1 := Player.GetEquippedObject 16
    	if rf1
    		if CompareName "-INF-" rf1
    			ModName "-INF-|" rf1
    		else
    			AppendToName "-INF-" rf1
    		endif
    	endif
    endif
    end
    
  14. if you want it validated based on Armorer skill

    that's your choice :smile:

     

    it will work regardless

    event handler that should be perfect for this is OnHit

    you should get the item with this command --> Player.GetEquipmentSlot 16

     

    EDIT : oh woops my mistake, revision --> Player.GetEquippedObject 16

×
×
  • Create New...