User:Jusonex: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
==Features==
==Features==
===Awesomium API===
===CEF===
====How to test====
*[[CEF_Tutorial]]
Install the following installer ('''run it as admin manually!'''): http://jusonex.net/public/mta/awesomium/full-r6798.exe
*[[Client_Scripting_Functions#Browser_functions]]
 
*[[Client_Scripting_Events#Browser_events]]
If it doesn't work, you'll have to install the x86 VC++ Redist 2013 (http://www.microsoft.com/en-us/download/details.aspx?id=40784).
*[[CWebBrowser]]
 
====Functions====
<syntaxhighlight lang="lua">
browser createBrowser(int width, int height, bool isLocal)
</syntaxhighlight>
*'''isLocal:''' Specifies whether to use the browser in local or global mode
<syntaxhighlight lang="lua">
bool updateBrowser(browser webBrowser)
</syntaxhighlight>
<syntaxhighlight lang="lua">
bool requestBrowserPages(table pages)
</syntaxhighlight>
<syntaxhighlight lang="lua">
bool loadBrowserURL(browser webBrowser, string url)
</syntaxhighlight>
<syntaxhighlight lang="lua">
bool isBrowserLoading(browser webBrowser)
</syntaxhighlight>
<syntaxhighlight lang="lua">
string getBrowserTitle(browser webBrowser)
</syntaxhighlight>
<syntaxhighlight lang="lua">
string getBrowserURL(browser webBrowser)
</syntaxhighlight>
<syntaxhighlight lang="lua">
bool injectBrowserMouseMove(browser webBrowser, int x, int y)
</syntaxhighlight>
<syntaxhighlight lang="lua">
bool injectBrowserMouseDown(browser webBrowser, string mouseButton) -- mouseButton: left/middle/right
</syntaxhighlight>
<syntaxhighlight lang="lua">
bool injectBrowserMouseUp(browser webBrowser, string mouseButton) -- mouseButton: left/middle/right
</syntaxhighlight>
<syntaxhighlight lang="lua">
bool injectBrowserMouseWheel(browser webBrowser, int scrollVertical, int scrolLHorizontal)
</syntaxhighlight>
<syntaxhighlight lang="lua">
bool injectBrowserKeyDown(brower webBrowser, string key) -- key names: https://wiki.multitheftauto.com/wiki/Key_names
</syntaxhighlight>
<syntaxhighlight lang="lua">
bool injectBrowserKeyUp(browser webBrowser, string key) -- key names: https://wiki.multitheftauto.com/wiki/Key_names
</syntaxhighlight>
<syntaxhighlight lang="lua">
bool injectBrowserCharacter(browser webBrowser, string character) -- takes case sensitivity and unicode characters into account
</syntaxhighlight>
<syntaxhighlight lang="lua">
bool setBrowserRenderingPaused(browser webBrowser, bool isPaused)
</syntaxhighlight>
<syntaxhighlight lang="lua">
bool executeBrowserJavascript(brower webBrowser, string jsCode) -- works only in local mode
</syntaxhighlight>
<syntaxhighlight lang="lua">
bool setBrowserVolume(browser webBrowser, float volume)
bool setBrowserVolume(float volume)
</syntaxhighlight>
<syntaxhighlight lang="lua">
bool isBrowserURLBlocked(string url)
</syntaxhighlight>
<syntaxhighlight lang="lua">
bool focusBrowser(browser webBrowser)
</syntaxhighlight>
 
====Events====
<syntaxhighlight lang="lua">
onClientBrowserRequestResult
Parameters: bool wasAllowed
</syntaxhighlight>
<syntaxhighlight lang="lua">
onClientBrowserCursorChange
Parameters: int cursor
Source: The webbrowser element
</syntaxhighlight>
''Cursor IDs:''
<syntaxhighlight lang="lua">
  kCursor_Pointer, // ID: 0
  kCursor_Cross, // ID: 1
  kCursor_Hand, // ID: 2
  kCursor_IBeam, // ID: 3
  kCursor_Wait, // ID: 4
  kCursor_Help, // ID: ...
  kCursor_EastResize,
  kCursor_NorthResize,
  kCursor_NorthEastResize,
  kCursor_NorthWestResize,
  kCursor_SouthResize,
  kCursor_SouthEastResize,
  kCursor_SouthWestResize,
  kCursor_WestResize,
  kCursor_NorthSouthResize,
  kCursor_EastWestResize,
  kCursor_NorthEastSouthWestResize,
  kCursor_NorthWestSouthEastResize,
  kCursor_ColumnResize,
  kCursor_RowResize,
  kCursor_MiddlePanning,
  kCursor_EastPanning,
  kCursor_NorthPanning,
  kCursor_NorthEastPanning,
  kCursor_NorthWestPanning,
  kCursor_SouthPanning,
  kCursor_SouthEastPanning,
  kCursor_SouthWestPanning,
  kCursor_WestPanning,
  kCursor_Move,
  kCursor_VerticalText,
  kCursor_Cell,
  kCursor_ContextMenu,
  kCursor_Alias,
  kCursor_Progress,
  kCursor_NoDrop,
  kCursor_Copy,
  kCursor_None,
  kCursor_NotAllowed,
  kCursor_ZoomIn,
  kCursor_ZoomOut,
  kCursor_Grab,
  kCursor_Grabbing,
  kCursor_Custom
</syntaxhighlight>
<syntaxhighlight lang="lua">
onClientBrowserPopup
Parameters: string targetURL, string openerURL, bool isPopup
Source: The webbrowser element
</syntaxhighlight>
<syntaxhighlight lang="lua">
onClientBrowserNavigate
Parameters: string targetURL, bool isMainFrame
Source: The webbrowser element
</syntaxhighlight>
<syntaxhighlight lang="lua">
onClientBrowserLoadingFailed
Parameters: string url, int errorCode, string errorDescription
Source: The webbrowser element
</syntaxhighlight>
<syntaxhighlight lang="lua">
onClientBrowserDocumentReady
Parameters: string url
Source: The webbrowser element
</syntaxhighlight>
 
====Javascript API====
Syntax:
<syntaxhighlight lang="lua">[javascript]
null mta.triggerEvent(string eventName, ...)
</syntaxhighlight>
 
Example:
Javascript:
<syntaxhighlight lang="lua">[javascript]
mta.triggerEvent("chatOutput", "Hello world!")
</syntaxhighlight>
 
Lua:
<syntaxhighlight lang="lua">
addEvent("chatOutput")
addEventHandler("chatOutput", root,
    function(text)
        outputChatBox(text)
    end
)
</syntaxhighlight>
 
====Examples====
=====Example 1: A 2D browser with mouse and a simple input handler=====
<syntaxhighlight lang="lua">local webBrowser = createBrowser(1024, 768, false)
requestBrowserPages({"youtube.com"})
 
addCommandHandler("load",
function()
-- Load the url
loadBrowserURL(webBrowser, "http://youtube.com") -- This line is potentially needless since YouTube is whitelisted
end
)
 
addEventHandler("onClientRender", root,
function()
-- Update the browser
updateBrowser(webBrowser)
-- Draw a nice border
dxDrawRectangle(195, 95, 1024+10, 768+10, tocolor(255, 255, 0))
-- Draw the browser
dxDrawImage(200, 100, 1024, 768, webBrowser)
end
)
 
addEventHandler("onClientCursorMove", root,
function(relativeX, relativeY, absoluteX, absoluteY)
injectBrowserMouseMove(webBrowser, absoluteX - 200, absoluteY - 100)
end
)
 
addEventHandler("onClientClick", root,
function(button, state)
if state == "down" then
injectBrowserMouseDown(webBrowser, button)
else
injectBrowserMouseUp(webBrowser, button)
end
end
)
 
addEventHandler("onClientKey", root,
function(button, pressKey)
if pressKey then
injectBrowserKeyDown(webBrowser, button)
else
injectBrowserKeyUp(webBrowser, button)
end
               
if button == "mouse_wheel_down" then
injectBrowserMouseWheel(webBrowser, -40, 0)
elseif button == "mouse_wheel_up" then
injectBrowserMouseWheel(webBrowser, 40, 0)
end
end
)
 
addEventHandler("onClientCharacter", root,
function(c)
injectBrowserCharacter(webBrowser, c)
end
)
 
showCursor(true)</syntaxhighlight>
 
=====A 3D browser at the car cinema in Fort Carson (Demo: https://www.youtube.com/watch?v=9w2qU6mZDh8)=====
<syntaxhighlight lang="lua">
local width, height = 1600, 900
 
-- Create the browser
local webBrowser = createBrowser(width, height, false)
 
-- Request the pages
requestBrowserPages({"www.youtube.com", "nyan.cat"})
 
addEventHandler("onClientRender", root,
function()
-- Update pixel data
updateBrowser(webBrowser)
-- Draw the line
local x, y = 110.7, 1024.15
dxDrawMaterialLine3D(x, y, 23.25, x, y, 14.75, webBrowser, 18.2, tocolor(255, 255, 255, 255), x, y+1, 19)
end
)
 
addCommandHandler("youtube",
function()
outputChatBox("YouTube?")
loadBrowserURL(webBrowser, "http://www.youtube.com/watch?v=kdemFfbS5H0")
end
)
 
addCommandHandler("nyan",
function()
outputChatBox("Nyan!")
loadBrowserURL(webBrowser, "http://nyan.cat")
end
)
</syntaxhighlight>


==Notes==
==Notes==

Latest revision as of 17:11, 12 April 2015

Features

CEF

Notes

  • Crosshair position (weapons that use the "normal" crosshair texture "siteM16"): X = screenWidth * 0.5299999714f; Y = screenHeight * 0.4f

Useful stuff

Resources

Tools

SA Reversing