User:Jusonex: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 21: Line 21:
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
bool injectBrowserMouseDown(browser webBrowser, int mouseButton)
bool injectBrowserMouseDown(browser webBrowser, int mouseButton) -- mouseButton: 0 = left, 1 = middle, 3 = right
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
bool injectBrowserMouseUp(browser webBrowser, int mouseButton)
bool injectBrowserMouseUp(browser webBrowser, int mouseButton) -- mouseButton: 0 = left, 1 = middle, 3 = right
</syntaxhighlight>
</syntaxhighlight>


Line 31: Line 31:


====Examples====
====Examples====
Todo
=====Example 1: A 2D browser with mouse input (keyboard input is missing yet)=====
<syntaxhighlight lang="lua">local webBrowser = createBrowser(1024, 768)
requestBrowserPages({"youtube.com"})
 
addCommandHandler("load",
function()
-- Load the url
loadBrowserURL(webBrowser, "http://youtube.com")
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
)
 
local buttons = {left = 0, middle = 2, right = 3}
addEventHandler("onClientClick", root,
function(button, state)
if state == "down" then
injectBrowserMouseDown(webBrowser, buttons[button])
else
injectBrowserMouseUp(webBrowser, buttons[button])
end
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)
 
-- There is an issue with alpha at the moment --> render everything into a renderTarget first
local renderTarget = dxCreateRenderTarget(width, height, true)
 
-- Request the pages
requestBrowserPages({"www.youtube.com", "nyan.cat"})
 
addEventHandler("onClientRender", root,
function()
-- Update pixel data
updateBrowser(webBrowser)
-- Switch to the rendertarget (@issue above)
dxSetRenderTarget(renderTarget)
dxDrawImage(0, 0, width, height, webBrowser)
dxSetRenderTarget()
-- Draw the line
local x, y = 110.7, 1024.15
dxDrawMaterialLine3D(x, y, 23.25, x, y, 14.75, renderTarget, 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
)
 
addCommandHandler("url",
function(cmd, url)
if not url then return end
outputChatBox("Opening: "..url)
loadBrowserURL(webBrowser, url)
end
)</syntaxhighlight>


==Notes==
==Notes==

Revision as of 13:05, 9 April 2014

Features

Awesomium API

Functions

browser createBrowser(int width, int height)
bool updateBrowser(browser webBrowser)
bool requestBrowserPages(table pages)
bool loadBrowserURL(browser webBrowser, string url)
bool isBrowserLoading(browser webBrowser)
bool injectBrowserMouseMove(browser webBrowser, int x, int y)
bool injectBrowserMouseDown(browser webBrowser, int mouseButton) -- mouseButton: 0 = left, 1 = middle, 3 = right
bool injectBrowserMouseUp(browser webBrowser, int mouseButton) -- mouseButton: 0 = left, 1 = middle, 3 = right

Events

Todo

Examples

Example 1: A 2D browser with mouse input (keyboard input is missing yet)
local webBrowser = createBrowser(1024, 768)
requestBrowserPages({"youtube.com"})

addCommandHandler("load",
	function()
		-- Load the url
		loadBrowserURL(webBrowser, "http://youtube.com")
	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
)

local buttons = {left = 0, middle = 2, right = 3}
addEventHandler("onClientClick", root,
	function(button, state)
		if state == "down" then
			injectBrowserMouseDown(webBrowser, buttons[button])
		else
			injectBrowserMouseUp(webBrowser, buttons[button])
		end
	end
)

showCursor(true)
A 3D browser at the car cinema in Fort Carson (Demo: https://www.youtube.com/watch?v=9w2qU6mZDh8
local width, height = 1600, 900

-- Create the browser
local webBrowser = createBrowser(width, height)

-- There is an issue with alpha at the moment --> render everything into a renderTarget first
local renderTarget = dxCreateRenderTarget(width, height, true)

-- Request the pages
requestBrowserPages({"www.youtube.com", "nyan.cat"})

addEventHandler("onClientRender", root,
	function()
		-- Update pixel data
		updateBrowser(webBrowser)
	
		-- Switch to the rendertarget (@issue above)
		dxSetRenderTarget(renderTarget)
		dxDrawImage(0, 0, width, height, webBrowser)
		dxSetRenderTarget()
		
		-- Draw the line
		local x, y = 110.7, 1024.15
		dxDrawMaterialLine3D(x, y, 23.25, x, y, 14.75, renderTarget, 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
)

addCommandHandler("url",
	function(cmd, url)
		if not url then return end
		
		outputChatBox("Opening: "..url)
		loadBrowserURL(webBrowser, url)
	end
)

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