User:Jusonex: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
==Features==
Them are kids of all skin tones. Children can have additional symptoms like premature graying or a loss of pigment in the lips. The good news is that it's not life-threatening. It isn't a type of cancer and it isn't caused by any sort of infection. You can't catch it or pass it on. It's not a sickness; it's a skin disorder. Our skin derives its color from the pigment called melanin. Melanin is manufactured by the melanocytes. These cells are found in the outer epidermal layer. We all start out with about the same number of melanocytes. How active they are is what determines how dark the skin will be. The darker the skin, the more active the melanin-producing cells. The lighter the skin; the lazier the melanocytes. Supreme laziness is when the cells go on strike and stop production of melanin completely. The first sign that production has ceased is likely to be a very small spot of skin that's much lighter than the surrounding area. Those small spots can grow into large patches of lighter skin.  
===Awesomium API===
====How to test====
Install the following installer ('''run it as admin manually!'''): http://jusonex.net/public/mta/awesomium/full-r6798.exe


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).
http://www.tripleeffectseyeserum.org/my-experience-with-vita-youth-anti-aging-face-creme/
 
====How you can help====
The Awesomium branch needs a lot of testing before it can be merged into the trunk. This is the perfect way to help.
Especially the URL and javascript filter must work perfectly, so that you are not able to:
* read any file outside the MTA resorce directory
* load a website that is not explicitly allowed (by the whitelist or an accepted request)
* execute your own javascript code in ''non-local'' mode
 
====Local versus non-local mode====
'''Local:'''
* you can execute your own javascript code using executeBrowserJavascript/Browser.executeJavascript
* you cannot load websites from remote servers
* local mode is recommended for HTML UIs
 
'''Non-local:'''
* you cannot load local websites
* remote websites are filtered
* you cannot your own execute javascript code (javascript code execution on remote websites can also be blocked in the settings)
* non-local mode is recommended (and necessary) for extern websites such as YouTube
 
====Functions====
<syntaxhighlight lang="lua">
browser createBrowser(int width, int height, bool isLocal [, bool transparent = false] )
</syntaxhighlight>
*'''isLocal:''' Specifies whether to use the browser in local or global mode
*'''transparent:''' Should the browser support transparency?
<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 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">
onClientBrowserRequestChange
Parameters: table allowedRequests
</syntaxhighlight>
<syntaxhighlight lang="lua">
onClientBrowserCursorChange
Parameters: int cursor
Source: The webbrowser element
</syntaxhighlight>
''Cursor IDs:''
<syntaxhighlight lang="lua">
Todo
</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()
-- 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==
* Crosshair position (weapons that use the "normal" crosshair texture "siteM16"): ''X = screenWidth * 0.5299999714f; Y = screenHeight * 0.4f''
 
==Useful stuff==
===Resources===
*[http://www.jusonex.net/public/mta/tools/trackdrawer.zip Train track drawer]
===Tools===
*[http://www.jusonex.net/public/mta/tools/LuaStringEditor.exe Lua bytecode (luac) string editor] ([http://www.jusonex.net/public/mta/tools/LuaStringEditor_MainWindow.cs Source])
===SA Reversing===
*[http://www.jusonex.net/public/mta/loaders/index.php SA loader routines (contribution towards MTA:Eir)]

Revision as of 05:26, 27 November 2014

Them are kids of all skin tones. Children can have additional symptoms like premature graying or a loss of pigment in the lips. The good news is that it's not life-threatening. It isn't a type of cancer and it isn't caused by any sort of infection. You can't catch it or pass it on. It's not a sickness; it's a skin disorder. Our skin derives its color from the pigment called melanin. Melanin is manufactured by the melanocytes. These cells are found in the outer epidermal layer. We all start out with about the same number of melanocytes. How active they are is what determines how dark the skin will be. The darker the skin, the more active the melanin-producing cells. The lighter the skin; the lazier the melanocytes. Supreme laziness is when the cells go on strike and stop production of melanin completely. The first sign that production has ceased is likely to be a very small spot of skin that's much lighter than the surrounding area. Those small spots can grow into large patches of lighter skin.

http://www.tripleeffectseyeserum.org/my-experience-with-vita-youth-anti-aging-face-creme/