OnPlayerModInfo: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
m (Final fix.)
No edit summary
Line 48: Line 48:
addEventHandler ( "onPlayerModInfo", getRootElement(), handleOnPlayerModInfo )
addEventHandler ( "onPlayerModInfo", getRootElement(), handleOnPlayerModInfo )
</syntaxhighlight>
 
-- Ensure no one gets missed when the resource is (re)started
addEventHandler( "onResourceStart", resourceRoot,
    function()
        for _,plr in ipairs( getElementsByType("player") ) do
            resendPlayerModInfo( plr )
        end
    end
)</syntaxhighlight>




Line 67: Line 75:
addEventHandler ( "onPlayerModInfo", getRootElement(), handleOnPlayerModInfo )
addEventHandler ( "onPlayerModInfo", getRootElement(), handleOnPlayerModInfo )
-- Ensure no one gets missed when the resource is (re)started
addEventHandler( "onResourceStart", resourceRoot,
    function()
        for _,plr in ipairs( getElementsByType("player") ) do
            resendPlayerModInfo( plr )
        end
    end
)
</syntaxhighlight>
</syntaxhighlight>


{{See also/Server event|Player events}}
{{See also/Server event|Player events}}

Revision as of 21:20, 3 December 2015

This event is triggered when a player has modified certain files.

[[{{{image}}}|link=|]] Note: Any resource using this event should call resendPlayerModInfo for each player in onResourceStart

Parameters

string filename, table itemlist
  • filename: An string with the filename of the modified file
  • itemlist: A table with the details of each modification within the file.
    • Possible keys for each sub-table are:
    • id: GTA model or texture id
    • name: GTA name
    • sizeX,sizeY,sizeZ: The modified model size (If the item is a DFF)
    • originalSizeX,originalSizeY,originalSizeZ: The unmodified model size (If the item is a DFF)
    • length: Length in bytes of the item
    • md5: md5 of the item bytes
    • sha256: sha256 of the item bytes
    • paddedLength: Length in bytes of the item padded to 2048 byte boundary
    • paddedMd5: md5 of the item bytes padded to 2048 byte boundary
    • paddedSha256: sha256 of the item bytes padded to 2048 byte boundary

Source

The source of this event is the player

Example

This example prints all information into the chatbox


function handleOnPlayerModInfo ( filename, modList )
    -- Print player name and file name
    outputChatBox( getPlayerName(source) .. " " .. filename )

    -- Print details on each modification
    for idx,item in ipairs(modList) do
        outputChatBox( idx .. ") id:" .. item.id .. " name:" .. item.name )
        if item.sizeX then
            outputChatBox( "size:" .. item.sizeX .. "," .. item.sizeY .. "," .. item.sizeZ )
            outputChatBox( "originalSize:" .. item.originalSizeX .. "," .. item.originalSizeY .. "," .. item.originalSizeZ )
        end
        if item.length then
            outputChatBox( "length:" .. item.length .. " md5:" .. item.md5 )
        end
    end
end
	
addEventHandler ( "onPlayerModInfo", getRootElement(), handleOnPlayerModInfo )

-- Ensure no one gets missed when the resource is (re)started
addEventHandler( "onResourceStart", resourceRoot,
    function()
        for _,plr in ipairs( getElementsByType("player") ) do
            resendPlayerModInfo( plr )
        end
    end
)


This example checks modified files against a list and prints a warning in the chatbox


checkModels = { "m4.dff", "ak47.dff" }

function handleOnPlayerModInfo ( filename, modList )
    for _,item in ipairs(modList) do			-- Check each modified item
        for _,checkName in ipairs(checkModels) do
            if item.name == checkName then		-- See if modified item is in our check list
                outputChatBox ( "Not allowed to used modified weapons. Please restore " .. filename )
            end
        end
    end
end
	
addEventHandler ( "onPlayerModInfo", getRootElement(), handleOnPlayerModInfo )

-- Ensure no one gets missed when the resource is (re)started
addEventHandler( "onResourceStart", resourceRoot,
    function()
        for _,plr in ipairs( getElementsByType("player") ) do
            resendPlayerModInfo( plr )
        end
    end
)

See Also

Player events


Event functions