Warcraft III: MapsModelsSkinsIconsSpellsToolsTutorials
WC3 JASS: Code SnippetsJASS and vJASS Spells and SystemsJass Tutorials
Chat @Discord

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


WC3 Spells - nel

Pages: [1]
1
Warcraft III Spells and Systems / .txtFile
« on: October 06, 2017, 01:15:39 AM »
Categories: System, GUI
Rating: 5
Image/screenshot:
Warcraft III Model resource
« Created: October 06, 2017, 01:15:39 AM by nel »
« Last Edit: May 29, 2018, 03:19:01 AM by nel »
.txtFile


Allows you to generate an empty text file by using Preload functions and Batch Script.
Open the created .bat file to download a text file.


How to install
  • Go to the Preferences menu and make sure "Automatically create unknown variables while pasting trigger data" is checked
  • Copy and Paste the txtFile trigger to your map.




Code
Trigger: Test 773365692
   
           
  • txtFile
  •     Events
  •     Conditions
  •     Actions
  •         -------- v3.4 --------
  •         -------- --------------------------------------------------------------------------------------------------------- --------
  •         -------- --------------------------------------------------------------------------------------------------------- --------
  •         -------- [ CONFIGURATION ] --------
  •         -------- --------------------------------------------------------------------------------------------------------- --------
  •         --------  > Add Margin --------
  •         Set txtFile_Margin = True
  •         -------- --------------------------------------------------------------------------------------------------------- --------
  •         -------- > Add Date Created --------
  •         Set txtFile_DateCreated = True
  •         -------- --------------------------------------------------------------------------------------------------------- --------
  •         -------- > Error Message --------
  •         --------   Allows you to display an error. --------
  •         Set txtFile_ErrorMessage = True
  •         -------- [ End Configuration ] --------
  •         -------- --------------------------------------------------------------------------------------------------------- --------
  •         -------- [ END CONFIGURATION ] --------
  •         -------- --------------------------------------------------------------------------------------------------------- --------
  •         -------- --------------------------------------------------------------------------------------------------------- --------
  •         Custom script:        call ExecuteFunc( "txtFile" )
  •         Custom script:   endfunction
  •         -------- --------------------------------------------------------------------------------------------------------- --------
  •         -------- Constant Functions --------
  •         --------                 Preload Function can only handle up to 259 characters (Excluding the batch script codes). --------
  •         Custom script:   constant function txtFile_maxChar takes nothing returns integer
  •         Custom script:        return 259
  •         Custom script:   endfunction
  •         -------- --------------------------------------------------------------------------------------------------------- --------
  •         -------- --------------------------------------------------------------------------------------------------------- --------
  •         -------- Create a .txt file --------
  •         Custom script:   function txtFile_Create takes integer lineCount, string folder, string filename, player pl returns nothing
  •         Custom script:        local integer Index = 1
  •         Custom script:        local integer cutIndex = 238
  •         Custom script:        local integer cutCount = 0
  •         Custom script:        local string array cutString
  •         Custom script:        local integer tempInt = 0
  •         Custom script:        local string tempString
  •         --------                      --------------------------------------------------------------------------------------------------------- --------
  •         --------                      GetLocalPlayer() is for specific player when the pl has null value is for all players. --------
  •         Custom script:        if( GetLocalPlayer() == pl or pl == null ) then
  •         Custom script:             call PreloadGenClear()
  •         Custom script:             call PreloadGenStart()
  •         Custom script:             call Preload("\r\nEcho Off & cls\r\n::")
  •         --------                           --------------------------------------------------------------------------------------------------------- --------
  •         --------                           Length of Filename --------
  •         Custom script:             if( StringLength( filename ) + StringLength( "\r\nset filename=\".txt\"\r\n::" ) > txtFile_maxChar() ) then
  •         --------                                Remove the excess chars --------
  •         Custom script:                  set tempString = SubString( filename, 0, txtFile_maxChar() )
  •         Custom script:                  call Preload("\r\nset filename=\"" + tempString + ".txt\"\r\n::")
  •         Custom script:                  call Preload("\r\nset xls=\"~temp" + tempString + ".txt\"\r\n::")
  •         --------                                Batch script has no String Length Func --------
  •         Custom script:                  call Preload("\r\nset i=" + I2S( StringLength( tempString )  +  1) + "\r\n::")
  •         Custom script:             else
  •         Custom script:                  call Preload("\r\nset filename=\"" + filename + ".txt\"\r\n::")
  •         Custom script:                  call Preload("\r\nset xls=\"~temp" + filename + ".txt\"\r\n::")
  •         --------                                Batch script has no String Length Func --------
  •         Custom script:                  call Preload("\r\nset i=" + I2S( StringLength( filename )  + 1 ) + "\r\n::")
  •         Custom script:             endif
  •         --------                           --------------------------------------------------------------------------------------------------------- --------
  •         --------                           Remove X.txt and filename.txt if exist --------
  •         Custom script:             call Preload("\r\ndel %filename%\r\nGOTO jumpA\r\n")
  •         Custom script:             call Preload("\r\ngoto:eof\r\n:jumpA\r\ndel %xls%\r\nGOTO jumpB\r\n")
  •         --------                           --------------------------------------------------------------------------------------------------------- --------
  •         --------                           Add Margin --------
  •         Custom script:             if( udg_txtFile_Margin ) then
  •         Custom script:                  call Preload("\r\n:jumpB\r\necho. >> %xls%\r\necho. >> %xls%\r\necho. >> %xls%\r\n::")
  •         Custom script:             else
  •         Custom script:                  call Preload("\r\n:jumpB\r\n::")
  •         Custom script:             endif
  •         --------                           --------------------------------------------------------------------------------------------------------- --------
  •         Custom script:             loop
  •         Custom script:                  exitwhen Index > lineCount
  •         --------                                --------------------------------------------------------------------------------------------------------- --------
  •         --------                                Only 259 characters can handle the single Preload() --------
  •         --------                                When had extra characters in one line. --------
  •         --------                                Divided it and put it in the variable. --------
  •         Custom script:                  if( StringLength( udg_txtFile_Line[ Index]) + 21 > txtFile_maxChar() ) then
  •         Custom script:                       set cutString[1] = ""
  •         Custom script:                       set cutCount = 1
  •         Custom script:                       loop
  •         Custom script:                            exitwhen cutIndex > StringLength( udg_txtFile_Line[ Index])
  •         Custom script:                            if( StringLength( cutString[ cutCount]) < 238 ) then
  •         Custom script:                                 set cutString[ cutCount] = cutString[ cutCount] + SubString( udg_txtFile_Line[ Index], cutIndex - 1, cutIndex)
  •         Custom script:                            else
  •         Custom script:                                 set cutCount = cutCount + 1
  •         Custom script:                                 set cutString[ cutCount] = SubString( udg_txtFile_Line[ Index], cutIndex - 1, cutIndex)
  •         Custom script:                            endif
  •         Custom script:                            set cutIndex = cutIndex + 1
  •         Custom script:                       endloop
  •         Custom script:                       set udg_txtFile_Line[ Index] = SubString( udg_txtFile_Line[ Index], 0, 238)
  •         Custom script:                  endif
  •         --------                                --------------------------------------------------------------------------------------------------------- --------
  •         --------                                Print --------
  •         Custom script:                  if( not udg_txtFile_Margin and udg_txtFile_Line[ Index] != "") then
  •         Custom script:                       call Preload( "\r\necho " + udg_txtFile_Line[ Index] + " >> %xls%\r\n" )
  •         Custom script:                  elseif( udg_txtFile_Line[ Index] != "" ) then
  •         Custom script:                       call Preload( "\r\necho " + udg_txtFile_Line[ Index] + " >> %xls%\r\n" )
  •         Custom script:                  else
  •         Custom script:                       call Preload( "\r\necho. >> %xls%\r\n::" )
  •         Custom script:                  endif
  •         --------                                It will display those extra lines. --------
  •         Custom script:                  if( cutCount > 0 ) then
  •         Custom script:                       set cutIndex = 1
  •         Custom script:                       loop
  •         Custom script:                            exitwhen cutIndex > cutCount
  •         Custom script:                            if( not udg_txtFile_Margin ) then
  •         Custom script:                                 call Preload( "\r\necho " + cutString[ cutIndex] + " >> %xls%\r\n" )
  •         Custom script:                            else
  •         Custom script:                                 call Preload( "\r\necho " + cutString[ cutIndex] + " >> %xls%\r\n" )
  •         Custom script:                            endif
  •         --------                                          --------------------------------------------------------------------------------------------------------- --------
  •         --------                                          Clean --------
  •         Custom script:                            set cutString[ cutIndex] = null
  •         Custom script:                            set cutIndex = cutIndex + 1
  •         Custom script:                       endloop
  •         Custom script:                  endif
  •         --------                                --------------------------------------------------------------------------------------------------------- --------
  •         --------                                Clean --------
  •         Custom script:                  set udg_txtFile_Line[ Index] = null
  •         Custom script:                  set cutCount = 0
  •         Custom script:                  set Index = Index + 1
  •         Custom script:             endloop
  •         --------                           --------------------------------------------------------------------------------------------------------- --------
  •         --------                           Add Margin --------
  •         Custom script:             if( udg_txtFile_Margin ) then
  •         Custom script:                  call Preload("\r\necho. >> %xls%\r\necho. >> %xls%\r\necho. >> %xls%\r\n::")
  •         Custom script:                  if( udg_txtFile_DateCreated ) then
  •         Custom script:                       call Preload("\r\necho --------------------------------------------- >> %xls%\r\n::")
  •         Custom script:                       call Preload("\r\necho. >> %xls%\r\n::")
  •         Custom script:                       call Preload("\r\necho Date Created: %DATE% >> %xls%\r\n::")
  •         Custom script:                       call Preload("\r\necho %TIME% >> %xls%\r\n::")
  •         Custom script:                  endif
  •         Custom script:             else
  •         Custom script:                  if( udg_txtFile_DateCreated ) then
  •         Custom script:                       call Preload("\r\necho. >> %xls%\r\n::")
  •         Custom script:                       call Preload("\r\necho --------------------------------------------- >> %xls%\r\n::")
  •         Custom script:                       call Preload("\r\necho Date Created: %DATE% >> %xls%\r\n::")
  •         Custom script:                       call Preload("\r\necho %TIME% >> %xls%\r\n::")
  •         Custom script:                  endif
  •         Custom script:             endif
  •         --------                           --------------------------------------------------------------------------------------------------------- --------
  •         --------                           Batch Script: Rename X.txt to correct filename --------
  •         Custom script:             call Preload("\r\nrename %xls% %filename%\r\n::")
  •         --------                           --------------------------------------------------------------------------------------------------------- --------
  •         --------                           Batch Script: Open notepad --------
  •         Custom script:             call Preload("\r\nstart notepad.exe %filename%\r\n::")
  •         --------                           --------------------------------------------------------------------------------------------------------- --------
  •         --------                           Batch Script: Delete .bat file --------
  •         Custom script:             call Preload("\r\ncall set subString=%%filename:~0,%i%%%\r\n::")
  •         Custom script:             call Preload("\r\ndel %subString%.bat\r\n::")
  •         --------                           --------------------------------------------------------------------------------------------------------- --------
  •         --------                           Create .bat file --------
  •         Custom script:             call PreloadGenEnd( folder + "\\" + filename + ".bat" )
  •         Custom script:        endif
  •         Custom script:   endfunction
  •         -------- --------------------------------------------------------------------------------------------------------- --------
  •         -------- --------------------------------------------------------------------------------------------------------- --------
  •         -------- Check if the line has a special characters --------
  •         Custom script:   function txtFile_enchanceLine takes integer curr returns string
  •         Custom script:        local integer Index = 1
  •         Custom script:        local string Char
  •         Custom script:        local string tempString = ""
  •         Custom script:        loop
  •         Custom script:             exitwhen Index > StringLength( udg_txtFile_Line[curr] )
  •         --------                           check bit by bit --------
  •         Custom script:             set Char = SubString( udg_txtFile_Line[curr], Index - 1, Index)
  •         Custom script:             if( Char == "%" ) then
  •         Custom script:                  set tempString = tempString + "^%"
  •         Custom script:             elseif( Char == "^" ) then
  •         Custom script:                  set tempString = tempString + "^^"
  •         Custom script:             elseif( Char == "&" ) then
  •         Custom script:                  set tempString = tempString + "^&"
  •         Custom script:             elseif( Char == "<" ) then
  •         Custom script:                  set tempString = tempString + "^<"
  •         Custom script:             elseif( Char == ">" ) then
  •         Custom script:                  set tempString = tempString + "^>"
  •         Custom script:             elseif( Char == "|" ) then
  •         Custom script:                  set tempString = tempString + "^|"
  •         Custom script:             elseif( Char == "`" ) then
  •         Custom script:                  set tempString = tempString + "^`"
  •         Custom script:             elseif( Char == "," ) then
  •         Custom script:                  set tempString = tempString + "^,"
  •         Custom script:             elseif( Char == "." ) then
  •         Custom script:                  set tempString = tempString + "^."
  •         Custom script:             elseif( Char == ";" ) then
  •         Custom script:                  set tempString = tempString + "^;"
  •         Custom script:             elseif( Char == "=" ) then
  •         Custom script:                  set tempString = tempString + "^="
  •         Custom script:             elseif( Char == "(" ) then
  •         Custom script:                  set tempString = tempString + "^("
  •         Custom script:             elseif( Char == ")" ) then
  •         Custom script:                  set tempString = tempString + "^)"
  •         Custom script:             elseif( Char == "!" ) then
  •         Custom script:                  set tempString = tempString + "^!"
  •         Custom script:             elseif( Char == "\"" ) then
  •         Custom script:                  set tempString = tempString + "^\""
  •         Custom script:             else
  •         Custom script:                  set tempString = tempString + Char
  •         Custom script:             endif
  •         Custom script:             set Index = Index + 1
  •         --------                           --------------------------------------------------------------------------------------------------------- --------
  •         --------                           Clean --------
  •         Custom script:             set Char = null
  •         Custom script:        endloop
  •         Custom script:        return tempString
  •         Custom script:   endfunction
  •         -------- --------------------------------------------------------------------------------------------------------- --------
  •         -------- --------------------------------------------------------------------------------------------------------- --------
  •         -------- --------------------------------------------------------------------------------------------------------- --------
  •         -------- Check the name of the folder and file. --------
  •         Custom script:   function txtFile_checkString takes string str, boolean isFolder returns boolean
  •         Custom script:        local integer Index = 1
  •         Custom script:        local boolean error = false
  •         Custom script:        local string Char
  •         --------                      --------------------------------------------------------------------------------------------------------- --------
  •         --------                      String Length & Null Value --------
  •         Custom script:        if( StringLength( str ) == 0 or str == null ) then
  •         Custom script:             set error = true
  •         --------                      --------------------------------------------------------------------------------------------------------- --------
  •         --------                      Subfolder --------
  •         Custom script:        elseif( SubString( str, 0, 1 ) == "\\" and isFolder ) then
  •         Custom script:             set error = true
  •         Custom script:        elseif( SubString( str, StringLength( str) - 1, StringLength( str)) == "\\" and isFolder ) then
  •         Custom script:             set error = true
  •         Custom script:        endif
  •         --------                      --------------------------------------------------------------------------------------------------------- --------
  •         --------                      These \, /, :, *, ?, ", <, >, and | are forbidden characters in Windows OS --------
  •         Custom script:        loop
  •         Custom script:             exitwhen Index > StringLength( str) or error
  •         --------                           check bit by bit --------
  •         Custom script:             set Char = SubString( str, Index - 1, Index)
  •         Custom script:             if( Char == "\\" and not isFolder ) then
  •         Custom script:                  set error = true
  •         Custom script:             elseif( Char == "/") then
  •         Custom script:                  set error = true
  •         Custom script:             elseif( Char == ":") then
  •         Custom script:                  set error = true
  •         Custom script:             elseif( Char == "*") then
  •         Custom script:                  set error = true
  •         Custom script:             elseif( Char == "?") then
  •         Custom script:                  set error = true
  •         Custom script:             elseif( Char == "\"") then
  •         Custom script:                  set error = true
  •         Custom script:             elseif( Char == "<") then
  •         Custom script:                  set error = true
  •         Custom script:             elseif( Char == ">") then
  •         Custom script:                  set error = true
  •         Custom script:             elseif( Char == "|") then
  •         Custom script:                  set error = true
  •         Custom script:             endif
  •         Custom script:             set Index = Index + 1
  •         --------                           --------------------------------------------------------------------------------------------------------- --------
  •         --------                           Clean --------
  •         Custom script:             set Char = null
  •         Custom script:        endloop
  •         Custom script:        return error
  •         Custom script:   endfunction
  •         -------- --------------------------------------------------------------------------------------------------------- --------
  •         -------- --------------------------------------------------------------------------------------------------------- --------
  •         -------- Compile --------
  •         Custom script:   function txtFile_Compile takes nothing returns boolean
  •         Custom script:        local integer Index = 1
  •         Custom script:        local boolean good = true
  •         --------                      --------------------------------------------------------------------------------------------------------- --------
  •         --------                      Folder Name --------
  •         Custom script:        if ( txtFile_checkString( udg_txtFile_FolderName, true ) ) then
  •         Custom script:             set good = false
  •         Custom script:             if( udg_txtFile_ErrorMessage ) then
  •         Custom script:                  call DisplayTextToPlayer( GetLocalPlayer(), 0, 0, "Error: Invalid Foldername")
  •         --------                                Clean --------
  •         Custom script:                  set udg_txtFile_FolderName = null
  •         Custom script:             endif
  •         Custom script:        endif
  •         --------                      --------------------------------------------------------------------------------------------------------- --------
  •         --------                      File Name --------
  •         Custom script:        if ( txtFile_checkString( udg_txtFile_FileName, true ) ) then
  •         Custom script:             set good = false
  •         Custom script:             if( udg_txtFile_ErrorMessage ) then
  •         Custom script:                  call DisplayTextToPlayer( GetLocalPlayer(), 0, 0, "Error: Invalid Filename")
  •         --------                                Clean --------
  •         Custom script:                  set udg_txtFile_FileName = null
  •         Custom script:             endif
  •         Custom script:        endif
  •         --------                      --------------------------------------------------------------------------------------------------------- --------
  •         --------                      Player --------
  •         Custom script:         if( GetPlayerId( udg_txtFile_Player) > 23 or not good ) then
  •         Custom script:             set udg_txtFile_Player = null
  •         Custom script:         endif
  •         --------                      --------------------------------------------------------------------------------------------------------- --------
  •         --------                      Line/s --------
  •         Custom script:        if( udg_txtFile_LineCount > 0 ) then
  •         Custom script:             loop
  •         Custom script:                  exitwhen Index > udg_txtFile_LineCount
  •         Custom script:                  if( udg_txtFile_Line[ Index] == null and good ) then
  •         Custom script:                       set udg_txtFile_Line[ Index] = ""
  •         Custom script:                  elseif( udg_txtFile_Line[ Index] != null and not good ) then
  •         Custom script:                       set udg_txtFile_Line[ Index] = null
  •         Custom script:                  endif
  •         Custom script:                  set udg_txtFile_Line[Index] = txtFile_enchanceLine( Index )
  •         Custom script:                  set Index = Index + 1
  •         Custom script:             endloop
  •         Custom script:        endif
  •         Custom script:        return good
  •         Custom script:   endfunction
  •         -------- --------------------------------------------------------------------------------------------------------- --------
  •         -------- --------------------------------------------------------------------------------------------------------- --------
  •         -------- Before creating a .bat file, this system checks all the txtFile variables. --------
  •         Custom script:   function txtFile takes nothing returns nothing
  •         Custom script:        if( txtFile_Compile() ) then
  •         Custom script:             call txtFile_Create( udg_txtFile_LineCount, udg_txtFile_FolderName, udg_txtFile_FileName, udg_txtFile_Player )
  •         Custom script:        endif
  •         Custom script:   endfunction
  •         -------- --------------------------------------------------------------------------------------------------------- --------
  •         -------- --------------------------------------------------------------------------------------------------------- --------
  •         -------- Variable Creator --------
  •         -------- Variable Creator --------
  •         Custom script:   function txtFile_VariableCreator takes nothing returns nothing
  •         Set txtFile_Line[0] = <Empty String>
  •         Set txtFile_LineCount = 0
  •         Set txtFile_Player = Player 1 (Red)
  •         Set txtFile_FileName = <Empty String>
  •         Set txtFile_FolderName = <Empty String>
           

Changelog
Changelog
[ v3.4 ]
- Fixed _Compile Function.
- Changed the value of GetPlayerId( udg_txtFile_Player) 11 to 23.
- You can now able to use Special Characters.
- Fixed Batch Script Codes.

[ v3.3 ]
- Fixed _Compile Function.
- Error Message​
- Fixed _Create Function. No longer displaying "o" bug in txt file.

[ v3.2 ]
- Fixed _Compile Function.
- Fixed _checkString Function.
- Fixed _Create Function.
- Each lines has a maximum of 238 characters.
- Batch Script: Download a text is much faster than before.​
- No longer to add ":" each lines.
- Batch Script: Using "echo." to avoid displaying "ECHO is on." without using ":".

[ v3.1 ]
- Less code.
- Fixed _checkString Function. Now you can able to add subfolder in txtFile_FolderName using "\" with no error.
- Fixed _Compile Function.
- Fixed _Create Function.
- Fixed the Documentation.
- Added Auto-Open Notepad.

[ v3.0 ]
- Code Reworked

[ v2.0 ]
- Removed txtFile_ChangeLine
- Added GetLocalPlayer()
- Trying to avoid reaching more than 259 characters each Preload()

[ v1.0 ]
- Release

Pages: [1]
Blizzard Modding Information Center Wacraft III Modding Information Center WC3JASS.com - The JASS Vault Chronicles of Darkness - A Warcraft III mod Jetcraft - A Starcraft II mod Troll Smash - A Warcraft III Arena Starcraft II Modding Information Center
  Mod DB - Change the Game Power of Corruption - A Warcraft III altered melee map Chaos Realm - The world of Game modders and wc3 addicts Follow us on Facebook!!