Jump to content

[HELP] Script problem


Recommended Posts

Hi, when I start this script I got an error, then when I change what the error tells me then I get other error, so I left it original and maybe someone can help me :)

    local elements = { } 
  
local function loadText( id, text, x, y, z, interior, dimension  ) 
    local element = createElement( "3dtext" ) 
    setElementPosition( element, x, y, z ) 
    setElementInterior( element, interior ) 
    setElementDimension( element, dimension ) 
    setElementData( element, "text", tostring( text ) ) 
     
    elements[ id ] = element 
end 
  
addEventHandler( "onResourceStart", resourceRoot, 
    function( ) 
        -- check for our table to exist 
        if not exports.sql:create_table( '3dtext',  
            { 
                { name = 'textID', type = 'int(10) unsigned', auto_increment = true, primary_key = true }, 
                { name = 'text', type = 'text' }, 
                { name = 'x', type = 'float' }, 
                { name = 'y', type = 'float' }, 
                { name = 'z', type = 'float' }, 
                { name = 'interior', type = 'tinyint(3) unsigned' }, 
                { name = 'dimension', type = 'int(10) unsigned' }, 
            } ) then cancelEvent( ) return end 
         
        -- 
         
        local result = exports.sql:query_assoc( "SELECT * FROM 3dtext ORDER BY textID ASC" ) 
        if result then 
            for key, data in ipairs( result ) do 
                loadText( data.textID, data.text, data.x, data.y, data.z, data.interior, data.dimension ) 
            end 
        end 
    end 
) 
  
addCommandHandler( "createtext", 
    function( player, commandName, ... ) 
        if (exports.global:isPlayerLeadAdmin(player)) then 
            local text = table.concat( { ... }, " " ) 
            local x, y, z = getElementPosition( player ) 
            local insertid,e = exports.sql:query_insertid( "INSERT INTO 3dtext (`text`, x, y, z, interior, dimension) VALUES (" .. table.concat( { "'%s'", x, y, z, getElementInterior( player ), getElementDimension( player ) }, ", " ) .. ")", text ) 
            if insertid then 
                loadText( insertid, text, x, y, z, getElementInterior( player ), getElementDimension( player ) ) 
                outputChatBox( "Text created. (ID " .. insertid .. ")", player, 0, 255, 0 ) 
            else 
                outputDebugString( e ) 
                outputChatBox( "MySQL-Query failed.", player, 255, 0, 0 ) 
            end 
        else 
            outputChatBox( "Syntax: /" .. commandName .. " [text]", player, 255, 255, 255 ) 
        end 
    end, 
    true 
) 
  
addCommandHandler( "deletetext", 
    function( player, commandName, textID ) 
        if (exports.global:isPlayerLeadAdmin(player)) then 
        textID = tonumber( textID ) 
        if textID then 
            local element = elements[ textID ] 
            if element then 
                if exports.sql:query_free( "DELETE FROM 3dtext WHERE textID = " .. textID ) then 
                    outputChatBox( "You deleted text " .. textID .. ".", player, 0, 255, 153 ) 
                    destroyElement( element ) 
                     
                    -- remove the reference 
                    elements[ textID ] = nil 
                else 
                    outputChatBox( "MySQL-Query failed.", player, 255, 0, 0 ) 
                end 
            else 
                outputChatBox( "Text not found.", player, 255, 0, 0 ) 
            end 
        else 
            outputChatBox( "Syntax: /" .. commandName .. " [id]", player, 255, 255, 255 ) 
        end 
    end 
) 
addCommandHandler( "nearbytexts", 
    function( player, commandName ) 
        if (exports.global:isPlayerLeadAdmin(player)) then 
            local x, y, z = getElementPosition( player ) 
            local dimension = getElementDimension( player ) 
            local interior = getElementInterior( player ) 
             
            outputChatBox( "Nearby Texts:", player, 255, 255, 0 ) 
            for key, element in pairs( elements ) do 
                if getElementDimension( element ) == dimension and getElementInterior( element ) == interior then 
                    local distance = getDistanceBetweenPoints3D( x, y, z, getElementPosition( element ) ) 
                    if distance < 20 then 
                        outputChatBox( "  Text " .. key .. ": " .. tostring( getElementData( element, "text" ) ), player, 255, 255, 0 ) 
                    end 
                end 
            end 
        end 
    end 
) 

ERROR: 3dtext/3dtext.lua:81: unexpected symbol near ')'

Link to comment
    local elements = { } 
  
local function loadText( id, text, x, y, z, interior, dimension  ) 
    local element = createElement( "3dtext" ) 
    setElementPosition( element, x, y, z ) 
    setElementInterior( element, interior ) 
    setElementDimension( element, dimension ) 
    setElementData( element, "text", tostring( text ) ) 
    
    elements[ id ] = element 
end 
  
addEventHandler( "onResourceStart", resourceRoot, 
    function( ) 
        -- check for our table to exist 
        if not exports.sql:create_table( '3dtext', 
            { 
                { name = 'textID', type = 'int(10) unsigned', auto_increment = true, primary_key = true }, 
                { name = 'text', type = 'text' }, 
                { name = 'x', type = 'float' }, 
                { name = 'y', type = 'float' }, 
                { name = 'z', type = 'float' }, 
                { name = 'interior', type = 'tinyint(3) unsigned' }, 
                { name = 'dimension', type = 'int(10) unsigned' }, 
            } ) then cancelEvent( ) return end 
        
        -- 
        
        local result = exports.sql:query_assoc( "SELECT * FROM 3dtext ORDER BY textID ASC" ) 
        if result then 
            for key, data in ipairs( result ) do 
                loadText( data.textID, data.text, data.x, data.y, data.z, data.interior, data.dimension ) 
            end 
        end 
    end 
) 
  
addCommandHandler( "createtext", 
    function( player, commandName, ... ) 
        if (exports.global:isPlayerLeadAdmin(player)) then 
            local text = table.concat( { ... }, " " ) 
            local x, y, z = getElementPosition( player ) 
            local insertid,e = exports.sql:query_insertid( "INSERT INTO 3dtext (`text`, x, y, z, interior, dimension) VALUES (" .. table.concat( { "'%s'", x, y, z, getElementInterior( player ), getElementDimension( player ) }, ", " ) .. ")", text ) 
            if insertid then 
                loadText( insertid, text, x, y, z, getElementInterior( player ), getElementDimension( player ) ) 
                outputChatBox( "Text created. (ID " .. insertid .. ")", player, 0, 255, 0 ) 
            else 
                outputDebugString( e ) 
                outputChatBox( "MySQL-Query failed.", player, 255, 0, 0 ) 
            end 
        else 
            outputChatBox( "Syntax: /" .. commandName .. " [text]", player, 255, 255, 255 ) 
        end 
    end, 
    true 
) 
  
addCommandHandler( "deletetext", 
    function( player, commandName, textID ) 
        if (exports.global:isPlayerLeadAdmin(player)) then 
            textID = tonumber( textID ) 
            if textID then 
                local element = elements[ textID ] 
                if element then 
                    if exports.sql:query_free( "DELETE FROM 3dtext WHERE textID = " .. textID ) then 
                        outputChatBox( "You deleted text " .. textID .. ".", player, 0, 255, 153 ) 
                        destroyElement( element ) 
                    
                        -- remove the reference 
                        elements[ textID ] = nil 
                    else 
                        outputChatBox( "MySQL-Query failed.", player, 255, 0, 0 ) 
                    end 
                else 
                    outputChatBox( "Text not found.", player, 255, 0, 0 ) 
                end 
            else 
                outputChatBox( "Syntax: /" .. commandName .. " [id]", player, 255, 255, 255 ) 
            end 
        end 
    end 
) 
  
addCommandHandler( "nearbytexts", 
    function( player, commandName ) 
        if (exports.global:isPlayerLeadAdmin(player)) then 
            local x, y, z = getElementPosition( player ) 
            local dimension = getElementDimension( player ) 
            local interior = getElementInterior( player ) 
            
            outputChatBox( "Nearby Texts:", player, 255, 255, 0 ) 
            for key, element in pairs( elements ) do 
                if getElementDimension( element ) == dimension and getElementInterior( element ) == interior then 
                    local distance = getDistanceBetweenPoints3D( x, y, z, getElementPosition( element ) ) 
                    if distance < 20 then 
                        outputChatBox( "  Text " .. key .. ": " .. tostring( getElementData( element, "text" ) ), player, 255, 255, 0 ) 
                    end 
                end 
            end 
        end 
    end 
) 

You had a missing 'end'.

Link to comment
  • 1 month later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...