OnPlayerModInfo: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
Line 8: Line 8:
</syntaxhighlight>  
</syntaxhighlight>  


*'''filename''': An string with the filename of the modified file
*'''filename''': a [[string]] with the filename of the modified file.
*'''itemlist''': A table with the details of each modification within the file.
*'''itemlist''': a [[table]] with the details of each modification within the file. Possible keys for each sub-table are:
**Possible keys for each sub-table are:
**'''id''': GTA model or texture id.
**'''id''': GTA model or texture id
**'''name''': GTA name.
**'''name''': GTA name
**'''sizeX, sizeY, sizeZ''': the modified model size (if the item is a DFF).
{{New feature/item|3.014|1.4|6902|
**'''originalSizeX, originalSizeY, originalSizeZ''': the unmodified model size (if the item is a DFF).
**'''sizeX, sizeY, sizeZ''': The modified model size (If the item is a DFF)
**'''length''': length in bytes of the item.
**'''originalSizeX, originalSizeY, originalSizeZ''': The unmodified model size (If the item is a DFF)
**'''md5''': md5 of the item bytes.
**'''length''': Length in bytes of the item
**'''sha256''': sha256 of the item bytes.
**'''md5''': md5 of the item bytes
**'''paddedLength''': length in bytes of the item padded to 2048 byte boundary.
**'''sha256''': sha256 of the item bytes
**'''paddedMd5''': md5 of the item bytes padded to 2048 byte boundary.
**'''paddedLength''': Length in bytes of the item padded to 2048 byte boundary
**'''paddedSha256''': sha256 of the item bytes 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==
==Source==

Revision as of 21:46, 2 April 2018

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: a 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