FAForever Forums
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Login

    I need some help for the script.lua of my map

    Scheduled Pinned Locked Moved Mapping
    17 Posts 4 Posters 921 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.
    • Anachronism_A
      Anachronism_ @Ghoustaq_14
      last edited by

      @ghoustaq_14

      You can get the Tower Defense Survival map from the vault and look at the script file to see some code examples that you could learn from.

      pfp credit to gieb

      G 1 Reply Last reply Reply Quote 0
      • G
        Ghoustaq_14 @Anachronism_
        last edited by

        @penguin_ hello guy, I have written some codes for this function, but it doesn't work. Can you help fixing them?

        Here are the script codes:

        local ScenarioUtils = import('/lua/sim/ScenarioUtilities.lua')
        local ScenarioFramework = import('/lua/ScenarioFramework.lua')

        --units to be restricted
        local AIRbuildRestriction = categories.AIR + categories.EXPERIMENTAL + categories.STRATEGIC * (categories.TECH3) + categories.ANTIAIR * (categories.STRUCTURE) + categories.ANTIAIR * (categories.MOBILE)

        local rectSizeX = 5
        local rectSizeY = 5
        local radius = 3.5
        local distance = 2
        local Color0 = 'FFCEA984' -- CIVILIAN Color
        local Color1 = 'FFe80a0a' -- Cybran red
        local Color2 = 'ff2e8b57' -- new green
        local Color3 = 'FF2929e1' -- UEF blue
        local Color4 = 'ffa79602' -- Sera golden
        local Color5 = 'ffffffff' -- white
        local Color6 = 'FF2F4F4F' -- dark green
        local Color7 = 'ff000000' -- black
        local Color8 = 'ff901427' -- dark red
        local Color9 = 'ff40bf40' -- mid green
        local Color10 = 'FF5F01A7' -- dark purple
        local Color = {'FFe80a0a', 'ff2e8b57', 'FF2929e1', 'ffa79602', 'ffffffff', 'FF2F4F4F', 'ff000000', 'ff901427', 'ff40bf40', 'FF5F01A7'}

        function OnPopulate()
        ScenarioUtils.InitializeArmies()
        local tblArmy = ListArmies()
        for index, army in tblArmy do
        ScenarioFramework.AddRestriction(army, AIRbuildRestriction)
        end

        local self = import('/lua/sim/Entity.lua').Entity()
        for k = 1, 99 do
        	local entryName = 'Entry_' .. k
        	local exitName = 'Exit_' .. k
        	local midpointName = 'Midpoint_' .. k
        	local entryPos = ScenarioUtils.MarkerToPosition(entryName)
        	local exitPos = ScenarioUtils.MarkerToPosition(exitName)
        	local MIDPOINTPos = ScenarioUtils.MarkerToPosition(midpointName)
        	
        	ForkThread(TeleportThread, self, entryPos, exitPos)
        	CreateTeleportMaintenanceEffects(entryPos, exitPos)
        end
        

        end

        TeleportThread = function(self, entryPos, exitPos)
        local telUnits
        local killUnits
        local ferrymanX

        while true do
                    for INDEX, BRAIN in ArmyBrains do	
        	telUnits = BRAIN:GetUnitsAroundPoint( categories.MOBILE, entryPos, 3.5, 'Ally')
        	killUnits = BRAIN:GetUnitsAroundPoint( categories.MOBILE, exitPos, 3.5, 'Ally')
        	ferrymanX = BRAIN:GetUnitsAroundPoint( categories.ENGINEER, MIDPOINTPos, 5.5, 'Ally')
        
        	
        	if ferrymanX ~= nil then
        		if table.getn(ferrymanX) >= 1 then
        	if telUnits ~= nil then
        		if table.getn(telUnits) >= 1 then
        			for k, v in telUnits do
        				if table.find(v:GetBlueprint().Categories,'AIR')  then	
        				#v:GetPosition()
        				else
        				      local MaxHealthofUnit = v:GetMaxHealth()
        				      ForkThread(WarpThread,self, entryPos, exitPos, v)
        				end
        			end
        		end
        	end
        	if killUnits ~= nil then
        		if table.getn(killUnits) >= 1 then
        			for k, v in killUnits do
        				if table.find(v:GetBlueprint().Categories,'STRUCTURE') then
        					v:Destroy()
        				end
        			end
        		end
        	end
        	end
                            end
        	end
        	WaitSeconds(3)
        end
        

        end

        WarpThread = function(self, entryPos, exitPos, v)
        local ex, ey, ez = unpack(entryPos)
        local tx, ty, tz = unpack(exitPos)

        if table.find(v:GetBlueprint().Categories,'MOBILE') or table.find(v:GetBlueprint().Categories,'PROJECTILE') then
               if ex >= tx and ez > tz then
        		Warp(v, Vector( tx-rectSizeX+Random(-rectSizeX/0.1, 0)/10, ty, tz-rectSizeX+Random(-rectSizeX/0.1, 0)/10))
        		#print('uzoom')
               end
               if ex >= tx and ez <= tz then
        		Warp(v, Vector( tx-rectSizeX+Random(-rectSizeX/0.1, 0)/10, ty, tz+rectSizeX+Random(0, rectSizeX/0.1)/10))
        		#print('uzoom')
               end
               if ex < tx and ez > tz then
        		Warp(v, Vector( tx+rectSizeX+Random(0, rectSizeX/0.1)/10, ty, tz-rectSizeX+Random(-rectSizeX/0.1, 0)/10))
        		#print('uzoom')
               end
               if ex < tx and ez <= tz then
        		Warp(v, Vector( tx+rectSizeX+Random(0, rectSizeX/0.1)/10, ty, tz+rectSizeX+Random(0, rectSizeX/0.1)/10))
        		#print('uzoom')
               end
        elseif table.find(v:GetBlueprint().Categories,'STRUCTURE') then
        	v:Destroy()
        end
        

        end

        function CreateTeleportMaintenanceEffects (entryPos, exitPos)
        #local ex, ey, ez = unpack(entryPos)
        #local tx, ty, tz = unpack(exitPos)

        #CreateUnitHPR('uel0001', 1, ex - rectSizeX/2, ey,ez - rectSizeY/2 , -180, 0, 0) 
        #CreateUnitHPR('uel0001', 1, ex + rectSizeX/2, ey,ez - rectSizeY/2 , -180, 0, 0) 
        #CreateUnitHPR('uel0001', 1, ex - rectSizeX/2, ey,ez + rectSizeY/2 , -180, 0, 0) 
        #CreateUnitHPR('uel0001', 1, ex + rectSizeX/2, ey,ez + rectSizeY/2 , -180, 0, 0) 
        
        local entryEnt = import('/lua/sim/Entity.lua').Entity()
        local exitEnt = import('/lua/sim/Entity.lua').Entity()
        Warp(entryEnt, Vector(entryPos[1],entryPos[2] + 0.2,entryPos[3] ))
        Warp( exitEnt, Vector(exitPos[1],exitPos[2] + 0.2,exitPos[3] ))	
        

        end

        function CreateTeleportMaintenanceEffects (entryPos, exitPos)
        #local ex, ey, ez = unpack(entryPos)
        #local tx, ty, tz = unpack(exitPos)

        #CreateUnitHPR('uel0001', 1, ex - rectSizeX/2, ey,ez - rectSizeY/2 , -180, 0, 0) 
        #CreateUnitHPR('uel0001', 1, ex + rectSizeX/2, ey,ez - rectSizeY/2 , -180, 0, 0) 
        #CreateUnitHPR('uel0001', 1, ex - rectSizeX/2, ey,ez + rectSizeY/2 , -180, 0, 0) 
        #CreateUnitHPR('uel0001', 1, ex + rectSizeX/2, ey,ez + rectSizeY/2 , -180, 0, 0) 
        
        local entryEnt = import('/lua/sim/Entity.lua').Entity()
        local exitEnt = import('/lua/sim/Entity.lua').Entity()
        Warp(entryEnt, Vector(entryPos[1],entryPos[2] + 0.2,entryPos[3] ))
        Warp( exitEnt, Vector(exitPos[1],exitPos[2] + 0.2,exitPos[3] ))	
        

        end

        function OnStart(self)
        end

        Anachronism_A 1 Reply Last reply Reply Quote 0
        • maggeM
          magge Global Moderator
          last edited by

          The code style is just all messy in this forum. Just use pastebin.com to share your code. Or even better, GitHub.

          Join a FAFtastic Team

          G 2 Replies Last reply Reply Quote 0
          • Anachronism_A
            Anachronism_ @Ghoustaq_14
            last edited by

            @ghoustaq_14
            I suggest you join the FAF Discord, get the modder role in the #role-selection channel there, and then check out the #modification-resources channel and ask more specific questions in the #modding-general channel.

            pfp credit to gieb

            1 Reply Last reply Reply Quote 0
            • G
              Ghoustaq_14 @magge
              last edited by

              @magge Hi buddy, I have shared it on GitHub. Do me a favor please😊

              Click on this link below:
              https://github.com/Ghoustaq-14/code-share-for-FAF/blob/main/a warp-test

              1 Reply Last reply Reply Quote 0
              • G
                Ghoustaq_14 @magge
                last edited by

                @magge said in I need some help for the script.lua of my map:

                The code style is just all messy in this forum. Just use pastebin.com to share your code. Or even better, GitHub.

                hey buddy! Do you have any idea of my codes? I don't know what's wrong with them🙄 Just give me some tips.Thanks so much😊

                1 Reply Last reply Reply Quote 0
                • maggeM
                  magge Global Moderator
                  last edited by

                  Sorry, I am not familiar with LUA.

                  Join a FAFtastic Team

                  1 Reply Last reply Reply Quote 0
                  • RoweyR
                    Rowey
                    last edited by

                    What code editor are you using as we do have a Intelisense plugin that's being worked on for faf which is located on the faforever GitHub

                    "The needs of the many outweigh the needs of the few" - Spock

                    G 2 Replies Last reply Reply Quote 0
                    • G
                      Ghoustaq_14 @Rowey
                      last edited by

                      This post is deleted!
                      1 Reply Last reply Reply Quote 0
                      • G
                        Ghoustaq_14 @Rowey
                        last edited by

                        @rowey said in I need some help for the script.lua of my map:

                        What code editor are you using as we do have a Intelisense plugin that's being worked on for faf which is located on the faforever GitHub

                        I use SciTE. Do you have a better choice?

                        1 Reply Last reply Reply Quote 0
                        • RoweyR
                          Rowey
                          last edited by

                          Majority use Visual Studio Code for development as that's what our Intelisense is created for

                          "The needs of the many outweigh the needs of the few" - Spock

                          G 1 Reply Last reply Reply Quote 0
                          • G
                            Ghoustaq_14 @Rowey
                            last edited by

                            @rowey said in I need some help for the script.lua of my map:

                            Majority use Visual Studio Code for development as that's what our Intelisense is created for

                            OK, I have installed Visual Studio Code, can you tell me where to download the "Intelisense plugin"?😊 I cannot wait to try it.

                            1 Reply Last reply Reply Quote 0
                            • RoweyR
                              Rowey
                              last edited by Rowey

                              https://github.com/FAForever/fa-lua-vscode-extension

                              "The needs of the many outweigh the needs of the few" - Spock

                              G 1 Reply Last reply Reply Quote 0
                              • G
                                Ghoustaq_14 @Rowey
                                last edited by

                                @rowey said in I need some help for the script.lua of my map:

                                https://github.com/FAForever/fa-lua-vscode-extension

                                Thank you for helping buddy👏 ,you are so kind

                                1 Reply Last reply Reply Quote 0
                                • RoweyR
                                  Rowey
                                  last edited by

                                  @Ghoustaq_14 Any other question feel free to reach out on the discord in adding yourself a role in #role-selection and give your self the mapping role and all the experience people live their and will be bale to aid you further

                                  "The needs of the many outweigh the needs of the few" - Spock

                                  1 Reply Last reply Reply Quote 0
                                  • First post
                                    Last post