Community
    • Login

    Little but annoying

    Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
    3 Posts 2 Posters 755 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Arya Svit'konaA
      Arya Svit'kona
      last edited by

      Hello
      I have some problem while I was trying to write little mod for eu4.

      I have some like that:

      western = {
      	major = yes
      	potential = {
      		capital_scope = {
      				OR = {
      					superregion = europe_superregion
      				}
      			}
      	}
      
      	allow = {
      		OR = {
      			AND = {	
      				has_dlc = "El Dorado"
      				is_religion_reformed = yes
      			}
      			AND = {
      				NOT = {
      					has_dlc = "El Dorado"
      				}
      				has_institution = renaissance
      			}
      		}
      		stability = 3
      		adm_power = 250
      		dip_power = 250
      		mil_power = 250
      	}
      
      	effect = {
      		add_adm_power = -250
      		add_dip_power = -250
      		add_mil_power = -250
      		add_stability = -3
      		if = {
      			limit = {
      				NOT = { 
      					technology_group = western 
      				}
      			}
      			change_technology_group = western
      			change_unit_type = western
      		}
      	}
      
      	ai_will_do = {	
      		factor = 1	
      	}
      }
      

      SO

      My problem is:

      While I’m try to fold “effect” (I’m writing it in .lua and later change to .txt) my “ai_will_do” get folded to.

      So my question is: WHAT I WRITE WRONG?

      Btw, if I do some like that:

      	effect = {
      		add_adm_power = -250
      		add_dip_power = -250
      		add_mil_power = -250
      		add_stability = -3
      		if = {
      			limit = {
      				NOT = { 
      					technology_group = western 
      				}
      			}
      			change_technology_group = western
      			change_unit_type = western
      		}
      	}
      	}
      
      	ai_will_do = {	
      		factor = 1	
      	}
      }
      

      Then it work. But there is one additional, needless (for me, I think) bracket.

      Can anyone of you help?

      1 Reply Last reply Reply Quote 1
      • PeterJonesP
        PeterJones
        last edited by PeterJones

        I just ran some experiments: it may be because of your “if = {}” block…

        If I take this minimal example, everything folds correctly:

        western = {
            effect = {
                iffin = {
                    here = there
                }
            }
        
            ai_will_do = {  
                factor = 1  
            }
        }
        

        but if I change the one line to if instead of iffin,

        western = {
            effect = {
                if = {
                    here = there
                }
            }
        
            ai_will_do = {  
                factor = 1  
            }
        }
        

        then it doesn’t fold correctly. But I see that it starts another fold-block on the if – so I guessed (not knowing Lua) that if-syntax has a special ending in Lua. Finding https://www.lua.org/pil/4.3.1.html seems to confirm that, so when I try:

        western = {
            effect = {
                if = {
                    here = there
                }
                end
            }
        
            ai_will_do = {  
                factor = 1  
            }
        }
        

        … then it goes back to folding as expected.

        Are you sure that if = { ... } is a valid Lua construct? Once again, I don’t know Lua, so it may be okay. If it is not okay, then the Lua lexer is properly interpreting that there should be another fold block you’ve not closed.

        If it is valid, then it looks like it is a bug. Unfortunately, that bug would be in the lua lexer in the Scintilla component that Notepad++ uses. NPP doesn’t often update it’s Scintilla component: Scintilla is a separate project, at v4.1.3↗, whereas it appears that the last time NPP updated Scintilla was to v3.56 back in June 2015↗ – so you’d have to go find out whether or not Scintilla has already fixed that bug: if they have, you’d have to lobby↗ for NPP to update to a modern Scintilla, or to at least patch the NPP copy of LuxLua.cxx. If that bug does still exist in Scintilla, then you would have to write a bug report for Scintilla (checking first whether the report already exists), then wait for it to get fixed there, then lobby NPP for the update or patch.

        Hopefully, it really is a “little” problem for you. Or even better, you could come up with a better name than if for that element of the structure you showed.

        1 Reply Last reply Reply Quote 1
        • Arya Svit'konaA
          Arya Svit'kona
          last edited by

          oooooooo facepalm

          u are right I don’t remember that when i use “if” in .lua i need to “end” it

          and it don’t get valid (for .lua) ending because it’s structure for game engine (in .txt)
          so yee if will fold in wrong way _______

          thanks :))

          1 Reply Last reply Reply Quote 2
          • First post
            Last post
          The Community of users of the Notepad++ text editor.
          Powered by NodeBB | Contributors