Jump to content

v3nture

Members
  • Posts

    19
  • Joined

  • Last visited

Posts posted by v3nture

  1. What I've done is create a simple 2048x2048 texture of a grid that is 32x32.

    I've set my NW Cell coords to be -16, 16 and my SE coords to 15, -15. 

    I've set map markers in the corresponding cells to view in game. 

    When viewed in game they do not appear in the Cell corners but rather 3-4 Cells inwards. Please see the attached image.

    What is causing this misalignment?

     Misalignedmap.thumb.jpg.ab1906b31766e13fe63fe1cc825396ab.jpg

  2. Hey,

    Im new to scripting with MWSE and one issue Ive run into Is that the following bit will run find in vanilla morrowind but will not with mwse.

    My first assumption was that with mwse I had to assign the player as a reference but havent had much luck. Any help would be appreciated.

     

    Begin vsthisworks
    
    if ( player->GetItemCount, "vs_ingred_Ember_01" == 1 )
    	messagebox "pholdember"
    endif
    
    if ( player->GetItemCount, "vs_ingred_ember_01" == 0 )
    	messagebox "noember"
    endif
     
    end vsthisworks

     

    It all stems from testing some simple detection

    Begin vs_mwseTest
    
    long pRef		; The Player
    long pcTarget	; The Players target
    
    long ContCheck
    long ContName ;TypeString "Burning Coals"
    long ContNCheck
    
    short cCont
    short isCont
    
    Setx pRef to xGetRef, "Player"
    Setx pcTarget to xGetPCTarget
    Setx ContCheck to pcTarget->xRefType
    Setx ContName to xStringBuild, "Burning Coals" 
    Setx ContNCheck to pcTarget->xGetName
    
    ;ifx ( pRef->GetItemCount, "vs_ingred_ember_01" == 0 )
    	;messagebox "no ember"
    ;endif
    
    if ( pcTarget == 0 )
    	;messagebox "nothing looked at"
    	return; do nothing
    endif
    
    
    if ( ContName != ContNCheck )
    	set cCont to 1 ;player looking at wrong container
    	if ( cCont == 1 )
    		;Messagebox "not looking at rock"
    	endif
    else
    	set cCont to 2 ;player looking at right container
    	if ( cCont == 2 )
    		;Messagebox "looking at rock"
    	endif
    endif
    
    ;container detection;
    if ( ContCheck == 1414418243 ) ;reftpe container
    	set isCont to 1
    	;Messagebox "container"
    else
    	return
    endif
    
    ;container detection;
    end vs_mwseTest




     

  3. Well, if you want to make Orris look like a young man I could do it for you lol

     

    This is what I sound like:

     

     

     

    EDIT: Mic sounds better than that, was using the wrong settings prior

    Sorry for not responding sooner. Ill message you once quests are ironed out.

     

    With that, the OP has been updated with some info on quests. Once those are finished Ill upload to the nexus for a proper play test.

  4.  

    Is there a difference between "Finalize Cell NavMeshes" and "Finalize Full WorldSpace" in the context of modifying a few exterior cells?

     

    Big Difference ... in general , don't ever finalize the world navmesh ,,, unless you created every triangle.

     

    Is this the person I helped with the thug triggers long time ago ?

     

    Negative and good to know.

    So, Converting the ESP to an ESM solved pathing issues.

    Currently on the hunt for a new VA for Orris and looking at animating the Mormon Fort Door.

     

    On the other hand if anyone has downloaded the file and has thoughts on the changes and flow to Freeside let me know.

  5. As far as I know the Navmeshing should be working. The initial load of the area everything is working fine. Companions will follow me around without issue.

    Is there a difference between "Finalize Cell NavMeshes" and "Finalize Full WorldSpace" in the context of modifying a few exterior cells?

  6. 9DpzczS.jpg

     


    Quest Status 12/19
    * unmarked

    Birds of a Feather
    - Functional
    Cry Me a River
    - Functional
    - npc wrong location
    Debt Collector
    - Functional
    G.I. Blues
    - Functional
    Heartache by the Number
    - Functional
    High Times
    - Functional
    Kings' Gambit
    - Needs testing
    Nothin' But a Hound Dog
    - Functional
    Talent Pool
    - Functional
    - bruce isaac and The Lonesome Drifter did not make it to the aces
    - drifter outside mormon fort
    Tend to Your Business
    - Functional
    Wang Dang Atomic Tango
    - Functional
    Big Winner, Atomic Wrangler*
    - Functional
    Flogging a Dead Corpse*
    - Functional
    Friend of the Followers*
    - Functional
    Long-Term Care*
    - Functional
    Reach for the Sky, Mister!*
    - Functional
    - kids will run outside of Freeside triggering loud gate noise.
    - kids will run into Vaporization zone at the Strip enterance.
    Rotface's Loose Lips*
    - Functional
    - doesnt always sit, vanilla bug even?
    Short-Term Treatment*
    - Functional
    Smooth-Talking Criminal*
    - Functional

    Screenshots

     

     

    9WKh7FO.jpg
    GE45Wwe.jpg
    GLye598.jpg
    74esoRB.jpg
    DfdS62U.jpg
    xutOBsM.jpg
    zTqjvAp.jpg

     


     

    Thank you to anyone who has helped me with little tings in the past and for checking it out!

    Download

  7. My understanding is to make a quest and quest script with variable declared in it.

    scn myquest
    
    int vsplayersitting
    

    and then in another script

    set myquest.vsplayersitting to 1
    

    However, this script only saves when I comment out the quest variable lines.

    ScriptName vsParkerBoothThreeTGR
    
    short doOnce
    
    Begin OnTrigger Player
    
    	if ( doOnce == 0 )
    		if (Player.IsCurrentFurnitureRef vsJOEBooth01REF == 1)
    
    			if (player.GetSitting == 3)
    				set vsParkersServiceScript.vsPlayerSitting to 1			;Quest Variable
    				setObjectiveCompleted vsPrimm02 30 1
    				
    
    			elseif (player.GetSitting == 4)
    				set vsParkersServiceScript.vsPlayerSitting to 0		;Quest Variable
    				set doOnce to 1
    
    			endif
    		endif
    	endif
    
    End
    

    I found a post on Loverslab about someone not being able to save a script, them sending the ESP to someone else and it saving.

    I've tried saving in vanilla geck, GECK PU, Geck extender. Any idea as to why I cant reference a quest variable?

    So, after uninstalling NV, deleting the folder, reinstalling, being unable to save the script in vanilla geck, it saved in Geck Extender. Turns out sometimes you need a few hours for something to save.

  8. Not sure if Im doing something wrong, but it's probably just a bug.

    Begin vs_alpha_cliff_racer
    	
    	short doOnce
    	short infCliff
    	short deathIC
    	float timer
    	float timer2
    	float timerAlpha
    	
    	if ( menumode == 1 )
    		return
    	endif
    	
    	if ( Cellchanged == 1 )
    		return
    	endif
    	
    	if ( GetJournalIndex "vs_Where's Jiub when you need him" == 0 )
    		disable
    	elseif ( GetJournalIndex "vs_Where's Jiub when you need him" == 30 )
    		disable
    	endif
    	
    	if ( infCliff == 3 )
    		return
    	endif
    	
    	If ( GetDeadCount, "vs_Alph_Cliff_Racer" >= 1 )  
    		Journal "vs_Where's Jiub when you need him", 20
    	endif 
    	
    	if ( GetJournalIndex "vs_Where's Jiub when you need him" == 10 )
    		enable
    		if ( infCliff == 2 )
    			
    			if ( menumode == 1 )
    				return
    			endif
    			
    			set timer to ( timer + GetSecondsPassed )
    			set timer2 to ( timer2 + GetSecondsPassed )
    			set timerAlpha to ( timerAlpha + GetSecondsPassed )
    			
    			if ( timerAlpha >= 60 )
    				if ( doOnce == 0 )
    					player->PlaceAtMe "vs_Alph_Cliff_Racer" 1, 2500, 1
    					messagebox "kaw kaw mafk"
    					startcombat, player
    					set doOnce to 1
    				endif
    			endif
    			
    			if ( timer >= 8 )
    				
    				if ( timer2 <= 119 )
    					if ( deathIC == 1 )
    						player->PlaceAtMe "vs_cliff_racer" 1, 1500, 1
    						player->PlaceAtMe "vs_cliff_racer" 1, 2000, 1
    						player->PlaceAtMe "vs_cliff_racer" 1, 2500, 1
    						startcombat, player
    						set timer to 0
    						messagebox "spawn 3 cliffracers"
    					endif
    				elseif ( timer2 >= 120 )
    					set deathIC to 2
    					set infCliff to 3
    					return
    				endif	
    			endif
    		endif
    		
    		if ( infCliff == 1 )
    			player->PlaceAtMe "vs_cliff_racer" 1, 1500, 1
    			player->PlaceAtMe "vs_cliff_racer" 1, 2000, 1
    			player->PlaceAtMe "vs_cliff_racer" 1, 2500, 1
    			set infCliff to 2
    			messagebox "infcliff 1 set to 2"
    		endif
    		
    		if ( onDeath == 1 )
    			
    			if ( deathC == 0 )
    				set deathC to 1
    				messagebox "deathc 1"
    				
    			elseif ( deathC == 1 )
    				set deathC to 2
    				messagebox "deathc 2"
    				
    			elseif ( deathC == 2 )
    				set deathC to 3
    				set deathIC to 1
    				messagebox "deathc 3"
    				set infCliff to 1
    				
    			endif
    		endif
    	endif
    end
    

    So, the issue is if the player holds only backwards it registers him as facing backwards so the cliff racers can spawn in front of the player. I feel like it's worth mentioning if someone else hasn't noticed it yet.

  9. Sorry for the double post but Ive made some progress with my work around.

    Begin FaralenTransform
        
        short AllowWerewolfForceGreeting
        short fightstart
        short doOnceA
        short doOnceB
        
        setfight 0
        
        if ( menumode == 1 ) ; if menu is open dont process
            return
        endif
        
        if ( fightstart == 3 )
            if ( GetJournalIndex "vs_Maybe They're Just Explorers..." == 30 )
                AiWander 0 0 0 0
                messagebox "set fightstart to 4"
                set fightstart to 4
            endif
        endif
        
        
        if ( fightstart == 2 )
            "vs_Trevyn Faralen"->AIFollow, player, 0, 0, 0, 0
            messagebox "ai follow 1"
            messagebox "set fightstart to 3"
            setfight 0
            set fightstart to 3
        endif
        
        if ( fightstart == 1 )
            If ( GetDeadCount, "vs_Aenz_R1_HMelee1" == 1 )
                If ( GetDeadCount, "vs_Aenz_R1_HMelee2" == 1 )
                    setfight 0
                    set fightstart to 2
                    messagebox "set fightstart to 2"
                endif
            endif
        endif
        
        if ( fightstart == 1 )
            if ( doOnceA == 0 )
                If ( GetDeadCount, "vs_Aenz_R1_HMelee2" == 0 )
                    startcombat "vs_Aenz_R1_HMelee2"
                    set doOnceA to 1
                    setfight 0
                endif
            endif
            
            if ( doOnceB == 0 )
                If ( GetDeadCount, "vs_Aenz_R1_HMelee1" == 0 )
                    "vs_Trevyn Faralen"->startcombat "vs_Aenz_R1_HMelee1"
                    set doOnceB to 1
                    setfight 0
                endif
            endif
        endif
        
        If ( player->GetPos X, <= -1400 )
            If ( player->GetPos X, >= -1900 )
                if ( player->GetPos Y, >= 4200 )
                    set fightstart to 1
                    setfight 0
                    "vs_Trevyn Faralen"->BecomeWerewolf
                    "vs_Trevyn Faralen"->SetWerewolfAcrobatics
                endif
            endif
        endif
    end 

    edit

    I added in the stopcombat command command. It works until the ai retriggers combat and then stops it again.

    edit: I cant have NPC's attack certain werewolves. So am I right in saying iwerewolffightmod is controllable through MWSE? That is what controls hostility and is uncontrollable through scripts in the TES CS

    https://mwse.readthedocs.io/en/latest/mwscript/GMSTs.html

    begin vs_VampA_Passive
    	
    	short done
    	short nolore
    	short nohello
    	short noflee
    	short noidle
    	short nointruder
    	short nothief
    	short doOnce
    	short nofightFAR
    	
    	if ( nofightFAR == 1)
    		stopcombat
    	endif
    	
    	if ( "vs_Trevyn Faralen"->IsWerewolf == 1 ) ;DONT RUN IF FARALEN ISNT WEREWOLF  
    		set nofightFar to 1
    	endif 
    	
    	if ( doOnce == 4 )
    		return
    	endif
    	
    	if ( doOnce == 3 )
    		ForceGreeting
    		set doOnce to 4
    	endif
    	
    	
    	If ( GetDeadCount, "vs_Q1_Hunter_Melee" == 1 )
    		If ( GetDeadCount, "vs_AenzIN_HRange_01" == 1 )
    			if ( doOnce == 1 )
    				ForceGreeting
    				set doOnce to 2
    			endif
    		endif
    	endif
    	
    	
    	If ( GetDeadCount, "vs_Q1_Hunter_Melee" == 1 )
    		If ( GetDeadCount, "vs_AenzIN_HRange_01" == 1 )
    			if ( doOnce == 0 )
    				If ( player->GetPos X, <= 100 ) 
    					if ( player->GetPos Y, <= 3550 )
    						set doOnce to 3
    					endif
    				endif
    			endif
    		endif
    	endif
    	
    	
    	If ( GetDeadCount, "vs_Q1_Hunter_Melee" != 1 )
    		If ( GetDeadCount, "vs_AenzIN_HRange_01" != 1 )
    			if ( doOnce == 0 )
    				If ( player->GetPos X, <= 100 ) 
    					if ( player->GetPos Y, <= 3550 )
    						ForceGreeting
    						set doOnce to 1
    					endif
    				endif
    			endif
    		endif
    	endif
    	
    	
    	if ( done == 0 )
    		AddSpell, "Vampire Blood Aundae"	;this is the blood disease
    		AddSpell, "Vampire Attributes"
    		AddSpell, "Vampire Skills"
    		AddSpell, "Vampire Immunities"
    		AddSpell, "Vampire Sun Damage"
    		AddSpell, "Vampire Touch"
    		AddSpell, "Vampire Aundae Specials"
    		ModRestoration 75
    		set done to 1
    		setfight 0
    		
    	endif
    	
    end Vampire_Aundae
    
  10. You don't need to remove all of the vanilla textures to replace them. Just start making their replacements with the original filenames and types.

    You can create new land textures and import them into the CS and use them to start painting.

    You can create new textures for a model. To apply them you would at least need nifskope to do change the texture to the correct one with the correct path to the textures folder.

    http://niftools.sourceforge.net/wiki/Morrowind/NifSkope_Alchemy

    Save it as a .dds.

    https://imgur.com/a/kVUUhEW

  11. I realized I posted the wrong script last night. Again thanks for the help it was useful and I've managed to setup a few scripts already. The issue right now is the forcegreeting doesnt work while the NPC is transformed. Otherwise works fine, I think.. Is it hardcoded to not talk to werewolves?

    I did read this in MWSFE

     

     

    If you want to detect the player activating an object, or even another werewolf, one method is to use an invisible door and place it over the object you want to detect the activation of.

    Am I going to have to just script the npc to be stationary and spawn a door on it's x,y,z coords that the player activates instead? I did a test earlier to see if you could talk to werewolves and I put one as a creation and it seems to work?

    Edit: It seems I can only add topics to creature werewolves and not greetings?

    Edit: I realized the scamp script will probably help as a pointer.

    edit: My workaround right now is to have a duplicate NPC in the cell handle the dialogue and despawn. Next question would be I know MWSE is it possible to open a dialogue window with a werewolf with it?

    Begin FaralenTransform
    	
    	short AllowWerewolfForceGreeting
    	short fightstart
    	short doOnceA
    	short doOnceB
    	
    	setfight 0
    	
    	if ( menumode == 1 ) ; if menu is open dont process 
    		return 
    	endif
    	
    	if ( fightstart == 3 )
    		return
    	endif
    	
    	if ( fightstart == 2 )
    		ForceGreeting
    		set fightstart to 3
    	endif
    	
    	If ( GetDeadCount, "vs_Aenz_R1_HMelee1" == 1 )
    		If ( GetDeadCount, "vs_Aenz_R1_HMelee2" == 1 )
    			if ( fightstart == 1 )
    				setfight 0
    				set fightstart to 2
    				;if ( "vs_Trevyn Faralen"->IsWerewolf == 1 )
    				;endif
    			endif
    		endif
    	endif
    	
    	if ( fightstart == 1 )
    		if ( doOnceA == 0 )
    			If ( GetDeadCount, "vs_Aenz_R1_HMelee2" == 0 )
    				startcombat "vs_Aenz_R1_HMelee2"
    				set doOnceA to 1
    				setfight 0
    			endif
    		endif
    		
    		if ( doOnceB == 0 )
    			If ( GetDeadCount, "vs_Aenz_R1_HMelee1" == 0 )
    				"vs_Trevyn Faralen"->startcombat "vs_Aenz_R1_HMelee1"
    				set doOnceB to 1
    				setfight 0
    			endif
    		endif
    	endif
    	
    	If ( player->GetPos X, <= -1400 )
    		If ( player->GetPos X, >= -1900 )
    			if ( player->GetPos Y, >= 4200 )
    				set fightstart to 1
    				;"vs_Trevyn Faralen"->BecomeWerewolf
    				;"vs_Trevyn Faralen"->SetWerewolfAcrobatics
    			endif
    		endif
    	endif
    end
    
  12. Sorry to double post but I have a few more questions. After trial and error I've reached a point were I need scripts running. The general idea behind this script is that when the player activates it theres 2 skill checks, they can pick it up, or leave it be.

    Begin vs_kardryns_shipment
    
    Short controlvar
    Short button
    Short INT
    Short ALC
    Short WIL
    Short ALT
    
    
    	If ( OnActivate == 1 )
    		If ( controlvar == 0 )
    			MessageBox "What would you like to do?", "INT: 75 ALCH: 50 APPRAISE.", "WIL: 50 ALT: 75 - APPRAISE.", "Pick up the crystal shipment.", "Close."
    			set controlvar to 1
    		endif
    
    		if ( controlvar == 1 )
    			set button to GetButtonPressed
    			set INT to player-> getintelligence
    			set ALC to player-> getalchemy
    
    			if ( button == -1 )
    				return
    
    				elseif ( button == 0 )
    
    					if ( INT >= 75 )
    						if ( ALC >= 50 ) 
    							MessageBox "The box of rocks worth is close to fifty-thousand drakes."
    								else
    									MessageBox "frig off randy"
    					endif
    				endif
    			endif
    
    			set INT to 0
    			set ALC to 0
    			Set controlvar to 0
    			return
    
    			endif
    	endif
    
    End 

    At one point I had the script working-ish but it broke if the player had one skill meet the minimums. I no longer remember what I had to do that. (I should probably save them as copies.)

    Edit: So Code now displays the skill check success messagebox but after closes me out and re activate it

  13. So Ive moved onto quest making and Ive reached the end of path one of the first quest Im working on and I nothing I do adds the item needed to the players inventory and gold isnt removed from the players inventory. I've gone online and looked for syntax solutions but it doesnt matter what order I do. The "crystal shipment" misc item isnt being added to the players inventory and gold isnt being removed.

     

    The player is hit with a greeting when they reached stage 40. A hyperlink for the topic "crystal shipment" appears and the player can click on it.

    -issue one when the player does the hyperlink/topic is removed

    The player is given two options, ask about the amount of the debt, or leave.

    When the ask about the amount they are then asked if they wish to pay it off

    The player pays it off. The gold is removed and the item is added.

    The items are not removed, added and the journal isnt updated. Everything works up until here.

    Any help would be appreciated.

    N27eQLp.jpg

×
×
  • Create New...