<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.multitheftauto.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Etrnl</id>
	<title>Multi Theft Auto: Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.multitheftauto.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Etrnl"/>
	<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/wiki/Special:Contributions/Etrnl"/>
	<updated>2026-04-25T04:52:39Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=User:Etrnl&amp;diff=75371</id>
		<title>User:Etrnl</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=User:Etrnl&amp;diff=75371"/>
		<updated>2022-08-21T16:40:47Z</updated>

		<summary type="html">&lt;p&gt;Etrnl: Created page with &amp;quot;Wassup?  https://github.com/etrnl1337  discord: etrnl#4901&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wassup?&lt;br /&gt;
&lt;br /&gt;
https://github.com/etrnl1337&lt;br /&gt;
&lt;br /&gt;
discord: etrnl#4901&lt;/div&gt;</summary>
		<author><name>Etrnl</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HasElementDataSubscriber&amp;diff=75370</id>
		<title>HasElementDataSubscriber</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HasElementDataSubscriber&amp;diff=75370"/>
		<updated>2022-08-21T16:38:47Z</updated>

		<summary type="html">&lt;p&gt;Etrnl: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Server function}}&lt;br /&gt;
__NOTOC__ &lt;br /&gt;
{{New items|3.0158|1.5.7-9.20477|This function returns whether a [[player]] is subscribed to specific [[element data]].&lt;br /&gt;
This function is used together with [[setElementData]] in ''&amp;quot;subscribe&amp;quot;'' mode.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Syntax== &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
bool hasElementDataSubscriber ( element theElement, string key, player thePlayer )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
{{OOP||[[element]]:hasDataSubscriber}}&lt;br /&gt;
&lt;br /&gt;
===Required Arguments=== &lt;br /&gt;
*'''theElement:''' The [[element]] you wish to check whether the [[player]] is subscribed to.&lt;br /&gt;
*'''key:''' The key you wish to check whether the player is subscribed to.&lt;br /&gt;
*'''thePlayer:''' The [[player]] you wish to check.&lt;br /&gt;
&lt;br /&gt;
===Returns===&lt;br /&gt;
Returns ''true'' if the player is subscribed, ''false'' otherwise.&lt;br /&gt;
&lt;br /&gt;
==Example== &lt;br /&gt;
&amp;lt;section name=&amp;quot;Server&amp;quot; class=&amp;quot;server&amp;quot; show=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
local nameOfOurElementData = &amp;quot;random&amp;quot; --// name our element data&lt;br /&gt;
&lt;br /&gt;
for i,v in ipairs(getElementsByType(&amp;quot;player&amp;quot;)) do --// loop through all the players on the server&lt;br /&gt;
    setElementData(v, nameOfOurElementData, true, &amp;quot;subscribe&amp;quot;) --// set our element data to all players on server&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function checkIsSubscribed(plr,cmd, key)&lt;br /&gt;
&lt;br /&gt;
    if not key then return end --// check if you've typed element data key&lt;br /&gt;
&lt;br /&gt;
    local randomPlayer = getRandomPlayer() --// getting random player from server&lt;br /&gt;
&lt;br /&gt;
    local isSubscribed = hasElementDataSubscriber(randomPlayer, tostring(key), randomPlayer) --// use our function&lt;br /&gt;
&lt;br /&gt;
    if not isSubscribed then --// if random player is not subscribed to given element data key then add him to subscription&lt;br /&gt;
&lt;br /&gt;
        addElementDataSubscriber(randomPlayer, tostring(key), randomPlayer)&lt;br /&gt;
        outputChatBox(&amp;quot;Element data key: &amp;quot;..tostring(key)..&amp;quot; is now subscribed to: &amp;quot;..getPlayerName(randomPlayer), plr, 255, 255, 255, true)&lt;br /&gt;
&lt;br /&gt;
    else --// if he is subscribed to given element data then remove him from subscription&lt;br /&gt;
&lt;br /&gt;
        removeElementDataSubscriber(randomPlayer, tostring(key), randomPlayer)&lt;br /&gt;
        outputChatBox(getPlayerName(randomPlayer)..&amp;quot; has been removed from subscription from element data key: &amp;quot;..tostring(key), plr, 255, 255, 255, true)&lt;br /&gt;
&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
addCommandHandler(&amp;quot;checksub&amp;quot;, checkIsSubscribed, false, false) --// creating command /checksub not restricted and not CASE sensitive&lt;br /&gt;
&lt;br /&gt;
--// EXAMPLE: /checksub random&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/section&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
{{Requirements|1.5.7-9.20477|n/a|}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
{{Element_functions}}&lt;/div&gt;</summary>
		<author><name>Etrnl</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=TriggerLatentServerEvent&amp;diff=75354</id>
		<title>TriggerLatentServerEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=TriggerLatentServerEvent&amp;diff=75354"/>
		<updated>2022-08-17T01:17:01Z</updated>

		<summary type="html">&lt;p&gt;Etrnl: TEXT: Calling kickPlayer serverside inside a function which was called from triggerLatentServerEvent causes server to crash. SOURCE: https://github.com/multitheftauto/mtasa-blue/issues/2714 and https://github.com/multitheftauto/mtasa-blue/issues/2386&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Client function}}&lt;br /&gt;
This function is the same as [[triggerServerEvent]] except the transmission rate of the data contained in the arguments can be limited and other network traffic is not blocked while the data is being transferred.&lt;br /&gt;
&lt;br /&gt;
Calling kickPlayer serverside inside a function which was called from triggerLatentServerEvent causes server to crash.&lt;br /&gt;
&lt;br /&gt;
==Syntax== &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
bool triggerLatentServerEvent ( string event, [int bandwidth=5000, bool persist=false,] element theElement, [arguments...] )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Required Arguments=== &lt;br /&gt;
*'''event:''' The name of the event to trigger server-side. You should register this event with [[addEvent]] and add at least one event handler using [[addEventHandler]].&lt;br /&gt;
*'''theElement:''' The element that is the [[Event system#Event handlers|source]] of the event. This could be another player, or if this isn't relevant, use the root element.&lt;br /&gt;
&lt;br /&gt;
===Optional Arguments=== &lt;br /&gt;
*'''bandwidth:''' The bytes per second rate to send the data contained in the arguments.&lt;br /&gt;
*'''persist:''' A bool indicating whether the transmission should be allowed to continue even after the resource that triggered it has since stopped.&lt;br /&gt;
*'''arguments...:''' A list of arguments to trigger with the event. You can pass any Lua data type (except functions). You can also pass [[element]]s. The total amount of data should not exceed 100MB. &lt;br /&gt;
&lt;br /&gt;
===Returns===&lt;br /&gt;
Returns ''true'' if the event trigger has been sent, ''false'' if invalid arguments were specified.&lt;br /&gt;
&lt;br /&gt;
==Example== &lt;br /&gt;
&amp;lt;section name=&amp;quot;Client&amp;quot; class=&amp;quot;client&amp;quot; show=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
if fileExists(&amp;quot;text.txt&amp;quot;)&lt;br /&gt;
	file = fileOpen(&amp;quot;test.txt&amp;quot;)						--Open a file (you can create it yourself).&lt;br /&gt;
	local data = fileRead(file,100*1024*1024)				--Max 100 MB&lt;br /&gt;
	fileClose(file)								--Close File&lt;br /&gt;
	triggerLatentServerEvent(&amp;quot;onReadFile&amp;quot;,5000,false,root,data)	--trigger&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/section&amp;gt;&lt;br /&gt;
&amp;lt;section name=&amp;quot;Server&amp;quot; class=&amp;quot;server&amp;quot; show=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
addEvent(&amp;quot;onReadFile&amp;quot;,true)&lt;br /&gt;
addEventHandler(&amp;quot;onReadFile&amp;quot;,root,function(data)&lt;br /&gt;
	local file = fileCreate(&amp;quot;text.txt&amp;quot;)					--Save &amp;quot;data&amp;quot; into &amp;quot;text.txt&amp;quot;&lt;br /&gt;
	fileWrite(file,data)&lt;br /&gt;
	fileClose(file)&lt;br /&gt;
end)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/section&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
{{Requirements|n/a|1.3.0-9.03772|}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
{{Client_event_functions}}&lt;/div&gt;</summary>
		<author><name>Etrnl</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=PL/CJ_Clothes%5CTattoos:_Stomach_(11)&amp;diff=74424</id>
		<title>PL/CJ Clothes\Tattoos: Stomach (11)</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=PL/CJ_Clothes%5CTattoos:_Stomach_(11)&amp;diff=74424"/>
		<updated>2022-04-05T22:44:55Z</updated>

		<summary type="html">&lt;p&gt;Etrnl: EN: MODEL AND TEXTURE ARE REVERSED! I LOST A LOT OF TIME BECAUSE OF THIS. / PL: Model oraz tekstury są zamienione, straciłem przez to dużo czasu.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| {{PL/Clothes|index=0|type=11|model=11GROVE|texture=11grove}}&lt;br /&gt;
| {{PL/Clothes|index=1|type=11|model=11GROV2|texture=11grove2}}&lt;br /&gt;
| {{PL/Clothes|index=2|type=11|model=11GROV3|texture=11grove3}}&lt;br /&gt;
| {{PL/Clothes|index=3|type=11|model=11DICE|texture=11dice}}&lt;br /&gt;
|-&lt;br /&gt;
| {{PL/Clothes|index=4|type=11|model=11DICE2|texture=11dice2}}&lt;br /&gt;
| {{PL/Clothes|index=5|type=11|model=11JAIL|texture=11jail}}&lt;br /&gt;
| {{PL/Clothes|index=6|type=11|model=11GGIFT|texture=11godsgift}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[en:CJ_Clothes%5CTattoos:_Stomach_(11)]]&lt;/div&gt;</summary>
		<author><name>Etrnl</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=PL/CJ_Clothes%5CTattoos:_Lower_Back_(12)&amp;diff=74423</id>
		<title>PL/CJ Clothes\Tattoos: Lower Back (12)</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=PL/CJ_Clothes%5CTattoos:_Lower_Back_(12)&amp;diff=74423"/>
		<updated>2022-04-05T22:41:34Z</updated>

		<summary type="html">&lt;p&gt;Etrnl: EN: MODEL AND TEXTURE ARE REVERSED! I LOST A LOT OF TIME BECAUSE OF THIS. / PL: Model oraz tekstury są zamienione, straciłem przez to dużo czasu.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| {{PL/Clothes|index=0|type=12|model=12ANGEL|texture=12angels}}&lt;br /&gt;
| {{PL/Clothes|index=1|type=12|model=12MAYBR|texture=12mayabird}}&lt;br /&gt;
| {{PL/Clothes|index=2|type=12|model=12DAGER|texture=12dagger}}&lt;br /&gt;
|-&lt;br /&gt;
| {{PL/Clothes|index=3|type=12|model=12BNDIT|texture=12bandit}}&lt;br /&gt;
| {{PL/Clothes|index=4|type=12|model=12CROSS|texture=12cross7}}&lt;br /&gt;
| {{PL/Clothes|index=5|type=12|model=12MYFAC|texture=12mayafce}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[en:CJ_Clothes%5CTattoos:_Lower_Back_(12)]]&lt;/div&gt;</summary>
		<author><name>Etrnl</name></author>
	</entry>
</feed>