User:Necktrox: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
m (Added installation notes and link to socket module page)
m (Added personal code snippets)
Line 63: Line 63:
*[https://github.com/Necktrox GitHub Profile]
*[https://github.com/Necktrox GitHub Profile]
*[https://forum.mtasa.com/memberlist.php?mode=viewprofile&u=74045 Forum Profile]
*[https://forum.mtasa.com/memberlist.php?mode=viewprofile&u=74045 Forum Profile]
== Code Snippets ==
=== string.address ===
<syntaxhighlight lang="lua">function string:address()
    return self:match("0+(.+)")
end</syntaxhighlight>
<pre>
local e = createElement("example")
outputDebugString(tostring(e):address())
</pre>
=== utf8.split ===
<syntaxhighlight lang="lua">function utf8:split(separator)
    assert(type(separator) == "string", "expected string at argument 1, got ".. type(separator))
    local rows = {}
    local position, startpoint = false, 1
    local sepLength = utf8.len(separator)
    repeat
        position = self:find(separator, startpoint, true)
        local part = self:sub(startpoint, position and (position - 1) or nil)
        startpoint = position and (position + sepLength) or 0
        if part:len() > 1 then
            rows[#rows + 1] = part
        end
    until not position
    return rows
end
</syntaxhighlight>
<pre>
for index, column in ipairs(utf8.split("A--B--C", "--")) do
    -- ...
end
</pre>

Revision as of 20:31, 19 April 2016

Download and install socket module

Download

These binaries are freshly baked for the commit a23bf532477f03f70be6432b3b4b4d51f2949a11.

Installation

You can read more about the sockets module here: Modules/Sockets

Windows

x32: server/mods/deathmatch/modules/ml_sockets.dll
x64: server/x64/modules/ml_sockets.dll

Linux

x32: server/mods/deathmatch/modules/ml_sockets.so
x64: server/x64/modules/ml_sockets.so

Compile socket module on Ubuntu 15.10 (or on any Debian distro?)

Install the necessary build tools, headers and libraries

$ sudo apt-get install git build-essential automake libtool lib32z1-dev g++-multilib

Clone the multitheftauto/multitheftauto-modules repository to your disk

$ git clone https://github.com/multitheftauto/multitheftauto-modules.git mta-modules

Change your directory to mta-modules/sockets

$ cd mta-modules/sockets

Make the shell scripts executable, so they can be ran from terminal

$ chmod a+x build-32.sh
$ chmod a+x build-64.sh

Build the x32/x64 libraries

$ ./build-32.sh
$ ./build-64.sh

Contact

Code Snippets

string.address

function string:address()
    return self:match("0+(.+)")
end
local e = createElement("example")
outputDebugString(tostring(e):address())

utf8.split

function utf8:split(separator)
    assert(type(separator) == "string", "expected string at argument 1, got ".. type(separator))

    local rows = {}
    local position, startpoint = false, 1
    local sepLength = utf8.len(separator)

    repeat
        position = self:find(separator, startpoint, true)
        local part = self:sub(startpoint, position and (position - 1) or nil)
        startpoint = position and (position + sepLength) or 0

        if part:len() > 1 then
            rows[#rows + 1] = part
        end
    until not position

    return rows
end
for index, column in ipairs(utf8.split("A--B--C", "--")) do
    -- ...
end