<?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=MTANeXuS</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=MTANeXuS"/>
	<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/wiki/Special:Contributions/MTANeXuS"/>
	<updated>2026-04-26T12:19:39Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/F%C5%91oldal&amp;diff=50746</id>
		<title>HU/Főoldal</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/F%C5%91oldal&amp;diff=50746"/>
		<updated>2017-04-20T13:47:02Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;/*border: 1px solid #D8D8D8;*/ padding-left: 15px; padding-right: 15px; height: 100%;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Mtalogo.png|left|100px|link=http://wiki.multitheftauto.com/]]'''Üdvözöllek a [[Multi Theft Auto]] wikin.''' Itt rengeteg információt találhatsz a Multi Theft Auto használatáról.&lt;br /&gt;
&lt;br /&gt;
Sok [[HU/How you can help|dologban segíthetsz Te is]], amivel fejleszted az MTAt - készíts pályákat, játékmódokat, írj leírást, példákat a függvényekhez, írj útmutatókat, vagy csak játssz, és jelezd a hibákat amiket találtál! &lt;br /&gt;
&lt;br /&gt;
Ha bármilyen kérdésed van a scripteléssel kapcsolatban, vedd fel velünk a kapcsolatot az [[HU/Places To Chat#IRC (Internet Relay Chat) |IRC csatornánkon.]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; |&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background: #FFFCF2;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Input-gaming.png‎|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Játék&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background: #FFEEAA; border: 1px solid #FFCD19;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Go-down.png|link=http://mtasa.com/]] ''' [http://mtasa.com/ Töltsd le a Multi Theft Auto San Andreas {{Current Version|full}}-t!]'''&amp;lt;/div&amp;gt;&lt;br /&gt;
* [[HU/Client Manual | Kliens kézikönyv]]&lt;br /&gt;
&amp;lt;!-- * [[Changes_in_{{padleft:|3|{{Current Version|full}}}}| Changes in {{padleft:|3|{{Current Version|full}}}}]] --&amp;gt;&lt;br /&gt;
* [[HU/Changes_in_{{padleft:|5|{{Current Version|full}}}}| Változtatások az {{padleft:|5|{{Current Version|full}}}} verzióban]]&lt;br /&gt;
* [[HU/Known_Issues_-_FAQ|Ismert problémák]]&lt;br /&gt;
* [[HU/Upgrading_from_MTA:Race|MTA:Race frissítése MTA:SA {{padleft:|3|{{Current Version|full}}}} -ra ]]&lt;br /&gt;
* [[HU/Server Manual|Szerver kézikönyv]]&lt;br /&gt;
* [[HU/Map manager|Map Manager]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Map Editor&amp;lt;/h3&amp;gt;&lt;br /&gt;
*[[HU/Resource:Editor|Kézikönyv]]&lt;br /&gt;
*[[HU/Resource:Editor/EDF|EDF (leírás) fájlok]]&lt;br /&gt;
*[[HU/Resource:Editor/Plugins|Pluginok]]&lt;br /&gt;
*[[HU/Resource:Editor#FAQ|Gyakran Ismételt Kérdések]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Package-x-generic.png‎|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Adatbázisok&amp;lt;/h3&amp;gt;&lt;br /&gt;
Az alábbi oldalakból megtudhatod mire képes a Lua az MTA-ban.&lt;br /&gt;
* [[HU/:Category:Resource|Resource katalógus]] - Igazán jól működő scriptek készítéséhez érdemes áttanulmányozni őket&lt;br /&gt;
* [[HU/Client side scripts|Kliens oldali scriptek]] &lt;br /&gt;
* [[HU/Modules|Modulok]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Applications-development.png‎‎‎|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;A Multi Theft Auto fejlesztése&amp;lt;/h3&amp;gt;&lt;br /&gt;
[[File:Go-down.png|link=http://nightly.mtasa.com/]] [http://nightly.mtasa.com/ Fejlesztői verzió]&lt;br /&gt;
* [[HU/Compiling_MTASA|MTA SA fordítása Windowson]]&lt;br /&gt;
* [[HU/Building_MTASA_Server_on_Mac_OS_X|MTA SA fordítása Linuxon]]&lt;br /&gt;
* [[HU/Building_MTASA_Server_on_GNU_Linux|MTA SA fordítása GNU/Linux rendszeren]]&lt;br /&gt;
* [[HU/Coding guidelines|Kódolási útmutató]]&lt;br /&gt;
* [http://code.google.com/p/mtasa-blue Google Code SVN]&lt;br /&gt;
* [[HU/Roadmap|Tervezet]]&lt;br /&gt;
* [http://bugs.mtasa.com/ Hibák]&lt;br /&gt;
* [[HU/Branches|Fejlesztési ágazatok]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Applications-office.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Wiki - Hogyan segíthetsz&amp;lt;/h3&amp;gt;&lt;br /&gt;
* EGészítsd ki a [[HU/:Category:Incomplete|függvények hiányos leírású oldalát]].&lt;br /&gt;
* [[HU/:Category:Needs_Example |Írj példákat függvények használatára]].&lt;br /&gt;
* Ellenőrizd az [[HU/:Category:Needs Checking|ellenőrzésre váró lapokat]].&lt;br /&gt;
* Írj útmutatókat&lt;br /&gt;
* Fordíts wiki lapokat&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Internet-group-chat.png‎|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Közösség&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [http://forum.multitheftauto.com/ Fórum]&lt;br /&gt;
* IRC: [irc://irc.multitheftauto.com/mta irc.multitheftauto.com #mta]&lt;br /&gt;
* [http://community.mtasa.com/ MTA Community] - Ossz meg és tölts le resourceokat!&lt;br /&gt;
* [http://twitter.com/#!/MTAQA/ Twitter] - [http://www.youtube.com/user/MTAQA Youtube] - [http://plus.google.com/102014133442331779727/ Google+] - [http://www.moddb.com/mods/multi-theft-auto-san-andreas ModDB]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Accessories-text-editor.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Scriptelés&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[HU/Bevezetés a scriptelésbe|Bevezetés a scriptelésbe]]&lt;br /&gt;
* [[HU/Introduction to Scripting the GUI|Bevezetés a GUI készítésébe]]&lt;br /&gt;
* [[HU/Debugging|Hibakeresés]] - Találd meg a hibát a kódodban&lt;br /&gt;
* [[HU/Resources|Bevezetés a Resourceokba]]&lt;br /&gt;
** [[HU/Resource Web Access|Resource Web Hozzáférés]] - Internet elérése&lt;br /&gt;
** [[HU/:Category:Resource|Resource katalógus]]&lt;br /&gt;
** [[HU/Meta.xml|Meta.xml]] - Minden resource alapja&lt;br /&gt;
** [[HU/ACL]] - A megfelelő jogok meghatározása az összetettebb kódokhoz elengedhetetlen&lt;br /&gt;
* [[HU/Writing_Gamemodes|Játékmódok írása]]&lt;br /&gt;
* [[HU/Useful_Functions|Hasznos függvények]]&lt;br /&gt;
* [http://forum.mtasa.com/viewtopic.php?f=13&amp;amp;t=29363 Offline Wiki Másolatok]&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:start-here.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Általános Lua Segítség&amp;lt;/h3&amp;gt;&lt;br /&gt;
Oldalak a Lua megértésehez:&lt;br /&gt;
*[http://www.lua.org/pil/index.html &amp;quot;Lua Programozás&amp;quot; Kézikönyv]&lt;br /&gt;
**[http://www.lua.org/manual/5.1/#index Lua belső/beépített függvények]&lt;br /&gt;
*[http://lua-users.org/wiki/TutorialDirectory Lua Wiki]&lt;br /&gt;
*[http://nixstaller.berlios.de/manual/0.2/nixstaller_9.html Nixstaller Lua útmutatója]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background:#F2F2FF;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Preferences-system.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Referenciák&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[HU/Client Scripting Functions|Kliens-oldali függvények]]&lt;br /&gt;
* [[HU/Client Scripting Events|Kliens-oldali események]]&lt;br /&gt;
* [[HU/Server Scripting Functions|Szerver-oldali függvények]]&lt;br /&gt;
* [[HU/Server Scripting Events|Szerver-oldali események]]&lt;br /&gt;
&amp;lt;!-- Incomplete * [[Module functions|Server-side external module scripting functions list]] --&amp;gt;&lt;br /&gt;
* [[HU/MTA Classes|MTA Osztályok]] - MTA osztályok részletes leírása&lt;br /&gt;
** [[HU/Element|MTA Elemek]] / [[HU/Element tree|Element ágak]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:System-file-manager.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;[[HU/Id|ID Lista]]&amp;lt;/h3&amp;gt;&lt;br /&gt;
*[[HU/Animations|Animációk]]&lt;br /&gt;
*[[HU/Character Skins|Karakter skinek]]&lt;br /&gt;
*[[HU/CJ_Clothes|CJ Ruhái]]&lt;br /&gt;
*[[HU/Garage|Garázs ID lista]]&lt;br /&gt;
*[[HU/Interior IDs|Interiorok]]&lt;br /&gt;
*[[HU/Material IDs|Material]]&lt;br /&gt;
*[[HU/Projectiles|Lövedékek]]&lt;br /&gt;
*[[HU/Radar Blips|Radar jelzések]]&lt;br /&gt;
*[[HU/Sounds|Hang]]&lt;br /&gt;
*[[HU/Vehicle IDs|Járművek]]&lt;br /&gt;
*[[HU/Vehicle Colors|Jármű színek]]&lt;br /&gt;
*[[HU/Vehicle Upgrades|Jármű fejlesztések]]&lt;br /&gt;
*[[HU/Vehicle variants|Járművek egyedi tulajdonságai]]&lt;br /&gt;
*[[HU/Vehicle component manipulation|Jármű komponens változtatások]]&lt;br /&gt;
*[[HU/Weapons|Fegyverek]]&lt;br /&gt;
*[[HU/Weather|Időjárás]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Osi symbol.png|75px|link=http://opensource.org/|left]]&lt;br /&gt;
A '''Multi Theft Auto''' '''nyílt forráskódú'''. &lt;br /&gt;
&amp;lt;br/&amp;gt;Ez azt jelenti, hogy a játékot bárki jobbá teheti!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding-left: 15px; padding-right: 15px;&amp;quot; class=&amp;quot;plainlinks&amp;quot;&amp;gt;&lt;br /&gt;
[[File:MTALogo_8ball.png|left|85px|link=Archive]]&lt;br /&gt;
&amp;lt;ul style=&amp;quot;list-style: none; width: 200px; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;'''A [[Multi Theft Auto]] - ról'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[Archive|Archívum]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[Press Coverage|Sajtó]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[http://code.google.com/p/mtasa-blue/people/list Fejlesztők]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;list-style: none; width: 200px; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;'''Multi Theft Auto 0.5'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[Archive#Multi_Theft_Auto_0.5|Letöltés]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[MTA 0.5r2 Known Issues|Ismert hibák]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;list-style: none; width: 200px; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;'''Wiki Statisztikák'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;{{NUMBEROFARTICLES}} cikk&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;{{NUMBEROFPAGES}} oldal&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;{{NUMBEROFUSERS}} regisztrált felhasználó&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
__NOEDITSECTION__&lt;br /&gt;
{{Languages list|en}}&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Scripting_Introduction&amp;diff=50745</id>
		<title>HU/Scripting Introduction</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Scripting_Introduction&amp;diff=50745"/>
		<updated>2017-04-20T13:45:41Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: MTANeXuS moved page HU/Scripting Introduction to HU/Bevezetés a scriptelésbe: Renamed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[HU/Bevezetés a scriptelésbe]]&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Bevezet%C3%A9s_a_scriptel%C3%A9sbe&amp;diff=50744</id>
		<title>HU/Bevezetés a scriptelésbe</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Bevezet%C3%A9s_a_scriptel%C3%A9sbe&amp;diff=50744"/>
		<updated>2017-04-20T13:45:41Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: MTANeXuS moved page HU/Scripting Introduction to HU/Bevezetés a scriptelésbe: Renamed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A resourceok egy nagy része az MTAnak. A resource lényegében egy mappa vagy egy zip ami tartalmazza a fájlokat, plusz egy meta fájlt, ami leírja a szervernek, hogy a resource hogyan legyen betöltve, és milyen fájlokat tartalmaz. A resource részben hasonlít egy programhoz, ami az operációs rendszerünkön fut - lelehet állítani, ellehet indítani, és egyszerre több resource is futhat.&lt;br /&gt;
&lt;br /&gt;
Minden ami a scripteléssel foglalkozik, a resourcekben történik, amit a resource tesz határozza meg, hogy az egy játéktípus, egy map vagy bármi más. Az MTA tartalmaz scripteket, amiket opcionálisan fel is használhatsz, mint pl egy map korlátozás, ami által csak a játszható térben lehetünk vagy deathpickupok, amivel létrehozhatunk fegyver felvételi pontokat.&lt;br /&gt;
{{tipp|Az első lépés ahhoz, hogy elkezdj scriptelni, az az hogy használj egy LUA szerkesztőt. Ez megkönnyíti a scriptelést. Ajánlom a [http://www.sublimetext.com/ Sublime Text], a [http://notepad-plus.sourceforge.net/uk/site.htm Notepad++] vagy a [http://luaedit.sourceforge.net/ LuaEdit] programot. Van egy nem hivatalos [[MTASE|MTA Script Szerkesztő]] (fejlesztési státuszban, de nem tudok arról, hogy még fejlesztik) amit kipróbálhatsz.}}&lt;br /&gt;
== Egy működő script készítése ==&lt;br /&gt;
Lépésről-lépésre megfogunk tanulni egy olyan alap script elkészítését, ami lehetővé teszi, hogy a karakterünk a városban sétáljon.&lt;br /&gt;
=== Hol találjuk meg a scripteket? ===&lt;br /&gt;
Először is tekintsük meg a script fájlok szerkezetét. Menj az MTA szerver mappájába és kövesd a következő útvonalat:&lt;br /&gt;
&lt;br /&gt;
server/mods/deathmatch/resources/&lt;br /&gt;
&lt;br /&gt;
Itt találni fogsz egy csomó .zip fájlt, amik az általános tömörített scriptek, amit az MTA hordoz magával. Minden fájl egy &amp;quot;resource&amp;quot;, az összes kilesz csomagolva és ellesz indítva a szerver által, amikor az elindul. Ahhoz, hogy létrehozzuk a saját resourceunkat csak szimplán létre kell hoznunk egy mappát az általad preferált névvel. Mi most az &amp;quot;enszerverem&amp;quot; mappa nevet fogjuk használni az oktatáshoz.&lt;br /&gt;
Hozzuk létre ezt a mappát, majd menjünk bele.&lt;br /&gt;
&lt;br /&gt;
Most ebben a könyvtárban kell lenned:&lt;br /&gt;
&lt;br /&gt;
server/mods/deathmatch/resources/enszerverem&lt;br /&gt;
&lt;br /&gt;
=== A resourceok azonosítása ===&lt;br /&gt;
Ahhoz, hogy a szerver tudja, hogy mi van a resourceban, szükségünk lesz egy meta.xml fájlra a tartalmazott fájlokkal. Ennek a resource főkönyvtárában kell elhelyezkednie, ami az &amp;quot;enszerverem&amp;quot; az esetünkben. Szóval hozz létre egy szöveges dokumentumot, majd nevezd át &amp;quot;meta.xml&amp;quot;-re, és nyisd meg notepaddal.&lt;br /&gt;
&lt;br /&gt;
Írd be a következő kódot a meta.xml fájlba.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta&amp;gt;&lt;br /&gt;
      &amp;lt;info author=&amp;quot;A neved&amp;quot; type=&amp;quot;gamemode&amp;quot; name=&amp;quot;A szerverem&amp;quot; description=&amp;quot;Az első MTA szerverem&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;script src=&amp;quot;script.lua&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Az &amp;lt;info/&amp;gt; címkében láthatsz egy &amp;quot;type&amp;quot; mezőt ami eldönti, hogy ez a resource egy játéktípus, és nem egy map, vagy egy script, ami később lesz elmagyarázva. A játéktípus kell nekünk, hogy egy önálló szervert tudjunk létrehozni.&lt;br /&gt;
&lt;br /&gt;
A &amp;lt;script/&amp;gt; címke dönti el azokat a script fájlokat, amit a resource tartalmaz. Ezeket fogjunk elkészíteni következőnek.&lt;br /&gt;
&lt;br /&gt;
=== Egy egyszerű script létrehozása ===&lt;br /&gt;
Ne feledd, hogy a &amp;lt;script/&amp;gt; címkében a .lua nincs egy másik könyvtárban. Ez miatt ugyan ott fogjuk létrehozni, mint ahol a meta.xml-t. &lt;br /&gt;
Hozd létre, majd nyisd meg azt a fájlt. Most már betudod másolni a következő kódot a script.lua fájlodba.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local spawnX, spawnY, spawnZ = 1959,55, -1714,46, 10&lt;br /&gt;
function csatlakozasKezelo()&lt;br /&gt;
	spawnPlayer(source, spawnX, spawnY, spawnZ)&lt;br /&gt;
	fadeCamera(source, true)&lt;br /&gt;
	setCameraTarget(source, source)&lt;br /&gt;
	outputChatBox (&amp;quot;Üdvözöllek a szerveremen.&amp;quot;, source)&lt;br /&gt;
end&lt;br /&gt;
addEventHandler (&amp;quot;onPlayerJoin&amp;quot;, getRootElement (), csatlakozasKezelo)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Amikor csatlakozunk, a script lespawnol minket arra a koordinátára ( x, y, z ), amint az elején adtunk meg neki. Ne feledjük, hogy a ''fadeCamera'' funkció szükséges, vagy különben fekete lesz a képernyő. Szintúgy, a DP2 kiadása után be kell állítanunk a kamera célját (különben minden játékos a kék eget fogja látni.)&lt;br /&gt;
&lt;br /&gt;
A ''source'' változó jelenti, hogy ki hívta meg az eseményt. Mivel egy játékos csatlakozott, amikor a kódunk meglett hívva, ezért ezt a változót használjuk, ahhoz hogy megnézzük, hogy ki csatlakozott. Ez miatt nem fog mindenkit, vagy egy véletlenszerű játékost lespawnolni.&lt;br /&gt;
&lt;br /&gt;
Ha egy közelebbi pillantást vetünk az [[addEventHandler]]-re, akkor láthatunk 3 dolgot: &amp;quot;onPlayerJoin&amp;quot;, ami azt jelzi, hogy mikor legyen meghívva. getRootElement(), ami azt jelzi, hogy ki/mi által lehet meghívva. (A getRootElement() mindent/mindenkit jelent.) És joinHandler, ami azt jelzi, hogy melyik funckió legyen lefuttatva, az esemény meghívása után. Egyéb részletek hamarosan le lesznek írva egy másik példában, most indítsuk el a szerverünket, és próbáljuk ki!&lt;br /&gt;
&lt;br /&gt;
=== A script futtatása ===&lt;br /&gt;
Ahhoz, hogy a szervert elindítsuk, egyszerűen futtassuk az ''&amp;quot;MTA Server&amp;quot;'' fájlt a server/ mappában. Egy lista fog kijönni először, a szerver adataival; jegyezd meg a port számát, ami a kapcsolódáshoz lesz szükséges. Ezután a szerver betölti a resourceokat a server/mods/deathmatch/resources/ mappából, és ezután &amp;quot;kész a csatlakozásokra&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Mielőtt kapcsolódnál a szerverre, el kell indítani a játékmódunkat. Írd be a &amp;quot;start enszerverem&amp;quot;, parancsot, és nyomj entert. A szerver elindítja a játékmódot, amit létrehoztál, ettől a ponttól kezdve a hibákat és a figyelmeztetéseket is írni fogja. Most már elindíthatod az MTA klienst, majd a &amp;quot;Qyors Csatlakozás&amp;quot; gombbal csatlakozhatsz is az előbb látott IP-vel és porttal. Ha minden jól megy, pár másodperc múlva a karaktered megjelenik, és Los Santos utcáin járkál.&lt;br /&gt;
&lt;br /&gt;
Következőnek egy parancsot fogunk létrehozni, amivel képesek leszünk egy kocsit létrehozni a helyzetünkön. Lehet, hogy kiszeretnéd ezt hagyni, és a haladó scriptelést szeretnéd megismerni a [[Map Manager | Map Manager]] használatával, ami ezt az oktatást folytatja. Egy másik ág a [[Bevezetés a GUI scriptelésbe]], ami megmutatja hogy hogyan hozunk létre Grafikus Felhasználói Felületet MTAn belül.&lt;br /&gt;
&lt;br /&gt;
==Egy egyszerű parancs létrehozása==&lt;br /&gt;
Menjünk vissza a ''script.lua'' fájl tartalmához. Ahogy említettük feljebb, egy parancsot akarunk szolgáltatni, amivel egy kocsit lehet létrehozni a jelenlegi helyzeteden. Először, létre kell hoznunk egy funkciót, amit megakarunk hívni és egy parancskezelőt, ami létrehozza a parancsot, amit a játékos betud írni a konzolba.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- A funckió létrehozása, ezekkel az argumentumokkal: thePlayer, command, vehicleModel&lt;br /&gt;
function jarmuLetrehozasaJatekosnak(thePlayer, command, vehicleModel)&lt;br /&gt;
   -- A jármű létrehozása és még pár dolog&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- A parancskezelő létrehozása&lt;br /&gt;
addCommandHandler(&amp;quot;jarmuletrehozas&amp;quot;, jarmuLetrehozasaJatekosnak)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
''Megjegyzés: A funckió nevek megnyomhatóak a példákban, és a wikin elhelyezkedő funkció leírására dobnak.''&lt;br /&gt;
&lt;br /&gt;
====A parancskezelőkről====&lt;br /&gt;
Az első argumentuma az [[addCommandHandler]] funckiónak a parancs neve, amit a játékos betud majd írni, a második argumentuma amit ez megfog hívni, az esetünkben a ''jarmuLetrehozasaJatekosnak''.&lt;br /&gt;
&lt;br /&gt;
Ha már van némi tudásod a scriptelésben, akkor tudni fogod, hogy így hívjuk meg a funckiókat:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
funkcioNeve(argumentum1, argumentum2, argumentum3, ..)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
funkcioNeve(thePlayer, parancsNeve, argumentum3, ..)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Ha egy közelebbről megnézzük az alsó példát felettünk láthatjuk, hogy az argumentum1 a thePlayer és az argumentum2 a commandName. thePlayer simán az az egy, aki beírta a parancsot, szóval, akárminek nevezed el, ez a változó fogja tartalmazni a játékost, aki aktiválta a parancsot. A commandName simán a parancs, amit beírtak. Szóval ha beírták a &amp;quot;/üdvözlet&amp;quot;, parancsot akkor ez az argumentum  tartalmazza az &amp;quot;üdvözlet&amp;quot; szöveget. Az argumentum3 az plusz dolog, amit a játékos beírt. Erről egy kicsit később fogsz tanulni az oktatásban. Soha ne felejtsd el, hogy az első kettő argumentum standard, de akárminek elnevezheted.&lt;br /&gt;
&lt;br /&gt;
Mi már meghívtuk az [[addCommandHandler]] funckiót ilyen módon, és mióta a ''jarmuLetrehozasaJatekosnak'' is egy ilyen funckió, ezért ilyen módon meghívható ő is. De e helyett mi egy parancskezelőt használunk, ami hasonló módon hívja meg.&lt;br /&gt;
&lt;br /&gt;
Például: Valaki beírja a &amp;quot;jarmuletrehozas 468&amp;quot; parancsot a játék konzoljába, hogy lehívjon egy Sanchezt, a parancskezelő meghívja a  &amp;quot;jarmuLetrehozasaJatekosnak&amp;quot; funkciót, az olyan '''mintha''' ezt a sort raktuk volna a scriptbe:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
jarmuLetrehozasaJatekosnak(thePlayer,&amp;quot;jarmuletrehozas&amp;quot;,&amp;quot;468&amp;quot;) -- A thePlayer a játékos, aki beírta a parancsot&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Ahogy láthatjuk, ez pár paramétert szolgáltat: A játékost, aki beírta a parancsot, a parancsot, amit beírt és minden más szöveget, amit utána beírt, ebben a példában a &amp;quot;468&amp;quot; ami a Sanchez IDje a játékban. Az első kettő paraméter mindig ugyan az a parancskezelőknél, amit elolvashatsz az [[addEventHandler]] oldalnál. Ez miatt, mindig minimum kettő paramétert kell meghatározni, hogy akármi mást tudsz utána használni (például, ahhoz, hogy egy szöveget beolvassunk a parancs beírása után, a mi példánkban a jármű model IDje).&lt;br /&gt;
&lt;br /&gt;
''Megjegyzés: Minden esetben a funckió létrehozása UTÁN kell definiálni a parancskezelőt, különben nem fogja megtalálni. A meghívások sorrendje számít.''&lt;br /&gt;
&lt;br /&gt;
====A funckió megírása====&lt;br /&gt;
Ahhoz, hogy feltöltsük azt a funkciót, amit írtunk, először gondolkoznunk kell, hogy mit is akarunk csinálni:&lt;br /&gt;
* Lekérni a játékos pozícióját, hogy megtudjuk, hogy hova is rakjuk le a kocsit (azt akarjuk, hogy pontosan a játékosnál jelenjen meg).&lt;br /&gt;
* Számítsuk ki a pozíciót, ahova létrehozzuk a járművet (nem akarjuk, hogy a játékosban jelenjen meg).&lt;br /&gt;
* Hozzuk létre a járművet.&lt;br /&gt;
* Nézzük meg, hogy létre lett hova, vagy írjunk ki egy hibát.&lt;br /&gt;
&lt;br /&gt;
Ahhoz, hogy elérjük a célunkat, szükséges lesz pár funkcióra. Ahhoz, hogy megtaláljuk a funkciókat, amiket használnunk kell, látogassunk el a [[Scripting Functions|Szerver Scriptelési Funckiók]]hoz. Először is, le kell kérnünk a játékos pozícióját. Mivel a játékosok elementek, először az '''Element funkcióhoz''' lépünk, ahol megtaláljuk a [[getElementPosition]] funkciót. A funkció nevére kattintással a listában, eljutsz a funkció leírásához. Itt láthatjuk a szintaxist, mit ad vissza, és általában egy példát. A szintaxis mutatja meg, hogy milyen argumentumokat lehet, vagy kell beírnunk.&lt;br /&gt;
&lt;br /&gt;
A [[getElementPosition]] funkcióhoz szintaxis:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
float, float, float getElementPosition ( element azElement )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A három ''float'' a visszaadási érték típusa. Ebben az esetben a funkció három lebegőpontos szám. (x, y és z) A zárójelekben láthatod, hogy milyen argumentumokat kell beírnod. Ebben az esetben csak az elementet, akinek leakarod kérni a pozícióját, ami a játékos a példánkban.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function jarmuLetrehozasaJatekosnak(thePlayer, command, vehicleModel)&lt;br /&gt;
	-- Kérjük le a koordinátát és rakjuk be az x, y, z változókban&lt;br /&gt;
	-- (A local azt jelenti, hgy a változó csak a jelenlegi területben létezik, ebben az esetben a funckió)&lt;br /&gt;
	local x, y, z = getElementPosition(thePlayer)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Következőnek  to biztosítani akarjuk, hogy a jármű nem lesz létrehozva pontosan a játékosban szóval hozzáadunk pár egységet az ''x'' változóhoz, ami azt fogja eredményezni, hogy a játékostól keletre lesz létrehozva.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function jarmuLetrehozasaJatekosnak(thePlayer, command, vehicleModel)&lt;br /&gt;
	local x, y, z = getElementPosition(thePlayer) -- A játékos pozíciójának lekérése&lt;br /&gt;
	x = x + 5 -- 5 egység hozzáadása az &amp;quot;x&amp;quot; változóhoz&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Most kell egy másik funckió, ami lehívja a járművet. Mégegyszer megkeressük a [[Scripting Functions|Szerver Funkciók Listá]]jában, most - miután járművekről beszélünk - a '''Jármű funkciók''' résznél, ahol kifogjuk választani a [[createVehicle]] funkciót. Ennek a funkciónak a szintaxisában, csak egy visszaadási értékünk van (ami többször jellemző), egy kocsi element ami egy kocsira mutat, amit éppen létrehoztunk. Ugyanúgy látunk argumentumokat amik [ ] között vannak, ez azt jelenti, hogy nem kötelező.&lt;br /&gt;
&lt;br /&gt;
Minden argumentumunk megvan a [[createVehicle]]-hoz a funkicónban: A pozíciók ami kiszámoltunk ''x, y, z'' változó és a model ID amit a parancson keresztül szolgáltattunk (&amp;quot;jarmuletrehozas 468&amp;quot;) és eltudjuk érni a funkción belül, mint ''vehicleModel'' változó.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function jarmuLetrehozasaJatekosnak(thePlayer, command, vehicleModel)&lt;br /&gt;
	local x, y, z = getElementPosition(thePlayer) -- A játékos pozíciójának lekérése&lt;br /&gt;
	x = x + 5 -- 5 egység hozzáadása az &amp;quot;x&amp;quot; változóhoz&lt;br /&gt;
	-- Hozzuk létre a kocsit, és mentsük el a visszaadott értéket, mint a ''letrehozottJarmu'' változó.&lt;br /&gt;
	local letrehozottJarmu = createVehicle(tonumber(vehicleModel),x,y,z)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Persze ez a kód fejleszthető lenne nagyon sok módon, de legalább akarunk benne, egy ellenőrzést, hogy a kocsi sikeresen létre lett-e hozva, vagy sem. Ahogy olvashatjuk a [[createVehicle]] oldal alatt '''Returns'''-nél, a funckió visszaad egy ''false'' értéket, ha nem sikerült létrehozni a járművet. Ezért, ellenőrizzuk az értéket a ''letrehozottJarmu'' változónak.&lt;br /&gt;
&lt;br /&gt;
Most már megvan a teljes script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function jarmuLetrehozasaJatekosnak(thePlayer, command, vehicleModel)&lt;br /&gt;
	local x, y, z = getElementPosition(thePlayer) -- A játékos pozíciójának lekérése&lt;br /&gt;
	x = x + 5 -- 5 egység hozzáadása az &amp;quot;x&amp;quot; változóhoz&lt;br /&gt;
	-- Hozzuk létre a kocsit, és mentsük el a visszaadott értéket, mint a ''letrehozottJarmu'' változó.&lt;br /&gt;
	local letrehozottJarmu = createVehicle(tonumber(vehicleModel),x,y,z)&lt;br /&gt;
	-- Nézzük meg, hogy a visszaadási érték az ''false''&lt;br /&gt;
	if (letrehozottJarmu == false) then&lt;br /&gt;
		-- Ha igen, akkor írjunk ki egy üzenet, de csak ennek a játékosnak.&lt;br /&gt;
		outputChatBox(&amp;quot;Nem sikerült létrehozni a járművet.&amp;quot;,thePlayer)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
addCommandHandler(&amp;quot;jarmuletrehozas&amp;quot;, jarmuLetrehozasaJatekosnak)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahogy láthatod, megismertettük veled az [[outputChatBox]] funkciót is. Mostmár saját magadnak is képesnek kell lenned, hogy felfedezd a funkciók dokumentációs oldalát. Több haladó scriptért látogass el a [[Map manager|Map Manager]] oldalra.&lt;br /&gt;
&lt;br /&gt;
==Amit tudnod kell==&lt;br /&gt;
Már elolvastál pár dolgot a resourceokról, parancskezelőkről, és funkciók megtalálásáról a dokumentumokban az első paragrafusban, de még nagyon sok minden van, amit meg kell tanulnod. Ez a rész adni fog egy rövid bemutatót ezekről a dolgokról, miközben linkelgetek oldalakra, ha lehetséges.&lt;br /&gt;
===Kliens oldali és Szerver oldali scriptek===&lt;br /&gt;
Talán már találkoztál ezekkel, vagy hasonlókkal (Szerver/Kliens) valahol a wikin, legtöbbet a funkciókkal kapcsolatban. Az MTA nem csak a szerver oldalon futó scripteket támogatja, parancsokat szolgáltat ( mint amit feljebb írtunk ), vagy más funkciókat, hanem azokat a scripteket is, amik azon az MTA kliensen futnak, amit a játékosok a szerverekhez való csatlakozásra használnak. Ennek az az oka, hogy néhány funkciónak, amit az MTA szolgáltat, kliens oldalon kell lennie ( mint például a GUI - Grafikus Felhasználói Felület ), a többinek szerver oldalon kell lennie, mivel ott jobban működnek, vagy nem működnek kliens oldalon.&lt;br /&gt;
&lt;br /&gt;
A legtöbb script, amit készíteni fogsz (játéktípusok, mappok) valószínűleg szerver oldalon lesznek létrehozva, mint amit írtunk az első részben. Ha belefutsz valamibe, amit nem lehet megoldani szerveroldalon, valószínűleg kliens oldalon kell megoldanod. Egy kliens oldali scripthez, létre kell hozni egy sima script fájlt, ( például nevezzük el ''client.lua''-nak ) és jelezzük a meta.xml-ben így:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;client.lua&amp;quot; type=&amp;quot;client&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
A ''type'' tulajdonság alapból 'server', szóval csak akkor kell meghatározni, ha kliens oldali a script. Amikor ezt csinálot, a kliens oldali script le lesz töltve a játékos számítógépére amikor csatlakozik a szerverre. Többet olvass a [[Client side scripts|Kliens Oldali Scriptek]] oldalon.&lt;br /&gt;
&lt;br /&gt;
===Összetettebb scriptek===&lt;br /&gt;
Az előző rész tömören megmutatta nekünk, hogyan adjunk hozzá kliens oldali scripteket a resourcehoz, de van rá több másik mód is. Ahogy említettem az oldal tetején, a resource körülbelül minden lehet. Az a céljük az alapján van meghatározva, hogy mit csinálnak. Legyen egy elméleti resourceunk, a fájlokra nézve tartalmaz egy ''meta.xml''t.&lt;br /&gt;
====Első példa====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
/admin_commands&lt;br /&gt;
	/meta.xml&lt;br /&gt;
	/commands.lua&lt;br /&gt;
	/client.lua&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta&amp;gt;&lt;br /&gt;
	&amp;lt;info author=&amp;quot;Someguy&amp;quot; description=&amp;quot;Admin Parancsok&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;script src=&amp;quot;commands.lua&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;script src=&amp;quot;client.lua&amp;quot; type=&amp;quot;client&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* A ''commands.lua'' fájl szolgáltat pár admin parancsot, mint pl. játékos kitiltása, vagy némítása, vagy egyéb más, amivel a szervert moderálhatod.&lt;br /&gt;
* A ''client.lua'' fájl szolgáltatja a GUI-t amivel egyszerűbben tudod elvégezni az akciókat.&lt;br /&gt;
&lt;br /&gt;
Ez a példa talán mindig fut (esetleg még auto-indítva is van, amikor a szerver elindul) hiszen ez egy hasznos script az egész játéktapasztalat közben, és nem fogja zavarni a játékmenetet, hacsak egy admin nem dönt úgy, és tesz néhány akciót.&lt;br /&gt;
&lt;br /&gt;
====Második példa - Egy játékmód====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
/counterstrike&lt;br /&gt;
	/meta.xml&lt;br /&gt;
	/counterstrike.lua&lt;br /&gt;
	/buymenu.lua&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta&amp;gt;&lt;br /&gt;
	&amp;lt;info author=&amp;quot;Someguy&amp;quot; description=&amp;quot;Counter Strike [REMAKE]&amp;quot; type=&amp;quot;gamemode&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;script src=&amp;quot;counterstrike.lua&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;script src=&amp;quot;buymenu.lua&amp;quot; type=&amp;quot;client&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* A ''counterstrike.lua'' tartalmazza az ehhez hasonló funkciókat:&lt;br /&gt;
** Engedélyezze a játékosokat a csapatváltáshoz, és hozza létre őket.&lt;br /&gt;
** Fegyvereket, célpontokat és leírásokat szolgáltat.&lt;br /&gt;
** Meghatározza a játékszabályokat, pl. mikor ér véget egy kör, mi történik ha egy játékos meghal&lt;br /&gt;
** .. és talán még néhány dolog&lt;br /&gt;
* A ''buymenu.lua''  egy kliens oldali script, ez hozza létra a fegyvervásárlás menüt.&lt;br /&gt;
&lt;br /&gt;
Ezt a példát hívhatjuk egy játéktípusnak, hiszen nem csak a játékmenetbe avatkozik bele, de meghatározza a szabályait is. A ''type'' tulajdonság jelzi, hogy ez a példa a [[Map manager]]-rel működik, egy másik resource amit a QA Team írt, hogy kezelje a játéktípusait, és a map betöltést. Magasan ajánlott, hogy olyan technikákra alapozd a játékmódot, amit szolgáltat ez a resource.&lt;br /&gt;
&lt;br /&gt;
Ez azt is jelenti, hogy a játékmód nem fog futni egy map nélkül. A játékmódoknak annyira kell generikusnak lennie, amennyire csak lehet. Egy példa a mapra a következő példában található.&lt;br /&gt;
&lt;br /&gt;
====Harmadik példa - Egy map====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
/cs-airport&lt;br /&gt;
	/meta.xml&lt;br /&gt;
	/airport.map&lt;br /&gt;
	/airport.lua&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta&amp;gt;&lt;br /&gt;
	&amp;lt;info author=&amp;quot;Someguy&amp;quot; description=&amp;quot;Counter Strike Reptér Map&amp;quot; type=&amp;quot;map&amp;quot; gamemodes=&amp;quot;counterstrike&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;map src=&amp;quot;airport.map&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;script src=&amp;quot;airport.lua&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Az ''airport.map'' az XML fájlban szolgáltat információkat a mapról a játékmódnak, ami ezeket tartalmazhatja:&lt;br /&gt;
** A játékosok hogyan legyenek létrehozva, milyen fegyverrel, és melyik csapatban&lt;br /&gt;
** Mik a célpontok&lt;br /&gt;
** Időjárás, Idő, Időlimit&lt;br /&gt;
** Kocsikat szolgáltat&lt;br /&gt;
* Az ''airport.lua'' talán tartalmaz különleges funkciókat amik ezek lehetnek:&lt;br /&gt;
** Nyitható ajtók/robbanjon fel valami, amikor valami történik&lt;br /&gt;
** Hozzon létre, vagy mozgasson egyedi objekteket, vagy manipulálja azokat az objekteket, amik a .map fájl által lettek létrehozva&lt;br /&gt;
** .. Minden különleges, amit eltudsz képzelni&lt;br /&gt;
&lt;br /&gt;
Ahogy láthatod, a ''type'' tulajdonság megváltozott 'map'-ra, jelezve a [[Map manager]]-nek, hogy ez a resource egy map, míg a ''gamemodes'' tulajdonság megmondja, hogy melyik játéktípushoz érvényes a pálya, ebben az esetben a felette lévő példában lévő játékmód.&lt;br /&gt;
Ami talán meglepő, hogy egy script van a map resourceben. Persze ez nem kötelező egy mapban, de elég nagy szélességben megnyitja a lehetőségeket a map készítőknek, hogy létrehozhassák a saját világukat azokkal a szabályokkal, amivel létrehozták a játékmódot.&lt;br /&gt;
&lt;br /&gt;
Az ''airport.map'' fájl hasonlóan nézhet ki:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;map mode=&amp;quot;deathmatch&amp;quot; version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;terrorists&amp;gt;&lt;br /&gt;
		&amp;lt;spawnpoint posX=&amp;quot;2332.23&amp;quot; posY=&amp;quot;-12232.33&amp;quot; posZ=&amp;quot;4.42223&amp;quot; skins=&amp;quot;23-40&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/terrorists&amp;gt;&lt;br /&gt;
	&amp;lt;counterterrorists&amp;gt;&lt;br /&gt;
		&amp;lt;spawnpoint posX=&amp;quot;2334.23443&amp;quot; posY=&amp;quot;-12300.233&amp;quot; posZ=&amp;quot;10.2344&amp;quot; skins=&amp;quot;40-50&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/counterterrorists&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;bomb posX=&amp;quot;23342.23&amp;quot; posY=&amp;quot;&amp;quot; posZ=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;vehicle posX=&amp;quot;&amp;quot; posY=&amp;quot;&amp;quot; posZ=&amp;quot;&amp;quot; model=&amp;quot;602&amp;quot; /&amp;gt;	&lt;br /&gt;
	&amp;lt;vehicle posX=&amp;quot;&amp;quot; posY=&amp;quot;&amp;quot; posZ=&amp;quot;&amp;quot; model=&amp;quot;603&amp;quot; /&amp;gt;	&lt;br /&gt;
&amp;lt;/map&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ha egy játékmód egy mappal indul, a map automatikusan ellesz indítva a mapmanager által, és az információkat, amiket tárol, beolvashatóvá válnak a játéktípus resource által. Amikor egy map váltás van, az éppen futó map resource leáll, és a következő map resource elindul. Több mélyreható magyarázatért és példákért, hogy hogyan vannak felhasználva a map resourceok a fő scriptben, kérlek látogass el a [[Writing Gamemodes|Játékmód készítése]] oldalra.&lt;br /&gt;
&lt;br /&gt;
===Események===&lt;br /&gt;
Az [[Event|Események]] a módja, ahogy az MTA közli, hogy valami történt. Például, ha egy játékos meghal, az [[onPlayerWasted]] esemény lesz meghívva. Ahhoz, hogy valamit tudj tenni, amikor egy játékos meghal, fel kell készítened magad, hogy olyasmi, mint egy parancskezelő létrehozása, ahogy az  [[#Egy_m.C5.B1k.C3.B6d.C5.91_script_k.C3.A9sz.C3.ADt.C3.A9s|első fejezet]]ben leírtam.&lt;br /&gt;
&lt;br /&gt;
Ez a példa kifog írni egy üzenet, a játékos nevével, aki meghalt.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function jatekosMeghalt(osszesTolteny, gyilkos, gyilkosFegyver, testresz)&lt;br /&gt;
	outputChatBox(getPlayerName(source)..&amp;quot; meghalt!&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
addEventHandler(&amp;quot;onPlayerWasted&amp;quot;,getRootElement(),jatekosMeghalt)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahelyett, hogy megmutatnám, milyen argumentumok szükségesek, az Események dokumentum oldala megmutatja, hogy milyen paramétereket kell megadni a függvénynek, éppen ugyan úgy, ahogy a [[##A_parancskezel.C5.91kr.C5.91l|parancskezelők]]nél is csak itt különbözik az eseményeknél. Egy másik fontos pont, a ''source'' változó, ami létezik a függvényeknél. Ennek nem kell szerepelni a paraméterlistában a funkciónál, de mégis létezik. Minden eseménynél más-más értéket vesz, játékos eseménynél (ahogy a példában) a játékos element. Egy másik példáért nézd meg az [[#Egy_egyszer.C5.B1_script_l.C3.A9trehoz.C3.A1sa|első részben]] létrehozott alap spawn scriptet, hogy hogyan is használjuk a ''source'' változót.&lt;br /&gt;
&lt;br /&gt;
==Innen hova tovább==&lt;br /&gt;
Most már egy kicsit ismered az alap helyzetet az MTA scripteléssel és egy a kicsit dokumentációkkal kapcsolatban. A [[Main Page|Főoldal]] több linkel szolgáltat még több információért, oktatásért, és referenciákért amivel mélyebb betekintést nyerhetsz azokban a témákban amire vágysz.&lt;br /&gt;
{{note|Innentől ajánlom a [[debugging|hibakeresés]] oktatást. A jó hibakeresési tudás feltétlen szükséges, amikor scripteket készítesz. Továbbá javaslom, hogy használd, az [[predefined variables list|előre meghatározott változók listá]]ját, hogy segítse, megkönnyítse, és gyorsabbá tegye a scriptelést.}}&lt;br /&gt;
'''Lásd még:'''&lt;br /&gt;
* [[OOP_Introduction|OOP Scriptelés Oktatás]]&lt;br /&gt;
* [[Advanced Topics|Haladó Témák]]&lt;br /&gt;
* [[Script_security|Script Védelem]]&lt;br /&gt;
* [[Scripting Introduction|Angol Verzió]]&lt;br /&gt;
[[es:Introducción a la Programación]]&lt;br /&gt;
[[it:Introduzione allo scripting]]&lt;br /&gt;
[[nl:Scripting_introductie]]&lt;br /&gt;
[[pt-br:Introdução ao Scripting]]&lt;br /&gt;
[[ru:Scripting Introduction]]&lt;br /&gt;
[[ar:مقدمه_في_البرمجه]]&lt;br /&gt;
[[zh-cn:脚本编写介绍]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Translated/Support]]&lt;br /&gt;
&lt;br /&gt;
==Fordította==&lt;br /&gt;
* NeXuS&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=Scripting_Introduction&amp;diff=49909</id>
		<title>Scripting Introduction</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=Scripting_Introduction&amp;diff=49909"/>
		<updated>2016-12-09T14:04:42Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Resources are a key part of MTA. A resource is essentially a folder or zip file that contains a collection of files, plus a meta file that describes to the server how the resource should be loaded and what files it does contain. A resource can be seen as being partly equivalent to a program running in an operating system - it can be started and stopped, and multiple resources can run at once.&lt;br /&gt;
&lt;br /&gt;
Everything that has to do with scripting happens in resources, what a resource does defines if it is a gamemode, a map or anything else. MTA comes with resources that you can optionally use in your gamemodes, such as maplimits to keep playings within a playing area or deathpickups to create weapon pickups.&lt;br /&gt;
{{tip|Your first step to begin Lua scripting should be using an Lua editor. This makes scripting much easier. We recommend [http://www.sublimetext.com/ Sublime Text], [http://notepad-plus.sourceforge.net/uk/site.htm Notepad++] or [http://luaedit.sourceforge.net/ LuaEdit]. There is also an unofficial [[MTASE|MTA Script Editor]] (in work-in-progress state) that you can test out.}}&lt;br /&gt;
&lt;br /&gt;
==Creating a working script==&lt;br /&gt;
We will first learn how to make a basic script that lets the player walk around in the city, step by step.&lt;br /&gt;
===Where are all the scripts?===&lt;br /&gt;
Let's take a look at the script's file structure. Go to your MTA Server folder, and follow the path below:&lt;br /&gt;
&lt;br /&gt;
	server/mods/deathmatch/resources/&lt;br /&gt;
&lt;br /&gt;
You will see a lot of .zip files, which are the packaged sample scripts shipped with MTA. Each file is a &amp;quot;resource&amp;quot;, and they will all be unzipped and loaded by the server when it starts. To create your own resource, simply make a folder with your preferred name. We'll use &amp;quot;myserver&amp;quot; for this tutorial.&lt;br /&gt;
&lt;br /&gt;
Now you should be under this directory: &lt;br /&gt;
&lt;br /&gt;
	server/mods/deathmatch/resources/myserver/&lt;br /&gt;
&lt;br /&gt;
===Identifying your resource===&lt;br /&gt;
In order to let the server know what's in the resource, a ''meta.xml'' file must be created to list the resource's content. It must be located in the resource's root directory, which is the &amp;quot;myserver&amp;quot; folder in our case. So create a text file and name it &amp;quot;meta.xml&amp;quot;, and open it with notepad.&lt;br /&gt;
&lt;br /&gt;
Enter the following codes in the ''meta.xml'' file:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta&amp;gt;&lt;br /&gt;
     &amp;lt;info author=&amp;quot;YourName&amp;quot; type=&amp;quot;gamemode&amp;quot; name=&amp;quot;My Server&amp;quot; description=&amp;quot;My first MTA server&amp;quot; /&amp;gt;&lt;br /&gt;
     &amp;lt;script src=&amp;quot;script.lua&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In the ''&amp;lt;info /&amp;gt;'' tag, there's a &amp;quot;type&amp;quot; field which indicates that the resource is a ''gamemode'' instead of a regular include or a ''map'', which will be explained later. A gamemode is what you need to make a stand-alone server. &lt;br /&gt;
&lt;br /&gt;
The ''&amp;lt;script /&amp;gt;'' tag indicates the script files contained in the resource, which we will create next.&lt;br /&gt;
===Creating a simple script===&lt;br /&gt;
Note that in the ''&amp;lt;script /&amp;gt;'' tag above, the .lua file is not under another directory. Therefore we'll create the file in the same folder as meta.xml. Now you can copy and paste the following code into script.lua:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local spawnX, spawnY, spawnZ = 1959.55, -1714.46, 10&lt;br /&gt;
function joinHandler()&lt;br /&gt;
	spawnPlayer(source, spawnX, spawnY, spawnZ)&lt;br /&gt;
	fadeCamera(source, true)&lt;br /&gt;
	setCameraTarget(source, source)&lt;br /&gt;
	outputChatBox(&amp;quot;Welcome to My Server&amp;quot;, source)&lt;br /&gt;
end&lt;br /&gt;
addEventHandler(&amp;quot;onPlayerJoin&amp;quot;, getRootElement(), joinHandler)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The script will spawn you at the coordinate (x, y, z) specified above, when you join the game. Note that the ''fadeCamera'' function must be used or the screen will be black. Also, in releases after DP2, you need to set the camera target (otherwise all the player will see is blue sky).&lt;br /&gt;
&lt;br /&gt;
The '''source''' variable indicates who triggered the event. Since a player has joined when the code is triggered, you use this variable to look which has joined. So it'll spawn that player instead of everyone or a random person.&lt;br /&gt;
&lt;br /&gt;
If we have a closer look on [[addEventHandler]], you can see 3 things: 'onPlayerJoin', which indicates when it's triggered. getRootElement(), which shows by what/who it can be triggered. (getRootElement() is everything/everyone) And joinHandler, which indicates the function that has to be triggered after the event is triggered. Other details will be explained later in another example, now let's just run the server and try it out!&lt;br /&gt;
&lt;br /&gt;
===Running the script===&lt;br /&gt;
To get the server started, simply run the executable under the server/ directory. A list of server stats will be shown first; note the port number, which you'll need when joining the game. Then the server loads all the resources under the mods/deathmatch/resources/ directory, and then &amp;quot;ready to accept connections!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Before you connect to the server, you must run the gamemode. Type &amp;quot;start myserver&amp;quot; and press Enter. The server will start the gamemode you just created, and will also show any errors and warnings from this point on. Now you can start the MTA client, and &amp;quot;Quick Connect&amp;quot; using the IP address of your server and the port number you saw earlier. If all goes well, after a few seconds your character will be walking on the streets of Los Santos.&lt;br /&gt;
&lt;br /&gt;
Next we'll add a command to your script that players can use to spawn a vehicle beside their position. You may skip it and check out more advanced scripting with the [[Map manager|Map Manager]], which continues this tutorial. Another branch from this tutorial is [[Introduction to Scripting GUI]], you may follow it to see how Graphical User Interface in MTA is drawn and scripted.&lt;br /&gt;
&lt;br /&gt;
==Creating a simple command==&lt;br /&gt;
Let's go back to the content of the ''script.lua'' file. As mentioned above, we want to provide a command to create a vehicle beside your current position in the game. Firstly we need to create a function we want to call and a command handler that creates the command the player will be able to enter in the console.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- create the function the command handler calls, with the arguments: thePlayer, command, vehicleModel&lt;br /&gt;
function createVehicleForPlayer(thePlayer, command, vehicleModel)&lt;br /&gt;
   -- create a vehicle and stuff&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- create a command handler&lt;br /&gt;
addCommandHandler(&amp;quot;createvehicle&amp;quot;, createVehicleForPlayer)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
''Note: Function names are clickable in code examples on the wiki and linked to the functions' documentation.''&lt;br /&gt;
&lt;br /&gt;
====About command handlers====&lt;br /&gt;
The first argument of [[addCommandHandler]] is the name of the command the player will be able to enter, the second argument is the function this will call, in this case ''createVehicleForPlayer''.&lt;br /&gt;
&lt;br /&gt;
If you have already experience in scripting, you will know that you call a function like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
functionName(argument1, argument2, argument3, ..)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
functionName(thePlayer, commandName, argument3, ..)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
If we have a closer look on the lower example above, we can see argument1 is thePlayer and argument2 the commandName. thePlayer is simply the one who typed the command, so whatever you call it, the variable will contain the player who activated the command. commandName is simply the command they typed. So if they typed &amp;quot;/greet&amp;quot;, this argument will contain &amp;quot;greet&amp;quot;. Argument 3 is something extra the player typed, you'll learn it a little bit further in the tutorial. Never forget that the first 2 arguments are standard arguments, but you can name them to anything you want.&lt;br /&gt;
&lt;br /&gt;
We called the [[addCommandHandler]] function this way already and since ''createVehicleForPlayer'' is a function too, it can be called that way as well. But we are using a command handler for that, which calls it in a similiar manner, internally.&lt;br /&gt;
&lt;br /&gt;
For example: Someone types &amp;quot;createvehicle 468&amp;quot; ingame in the console to spawn a Sanchez, the command handler calls the createVehicleForPlayer function, as '''if''' we would have this line of code in the script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
createVehicleForPlayer(thePlayer,&amp;quot;createvehicle&amp;quot;,&amp;quot;468&amp;quot;) -- thePlayer is the player element of the player who entered the command&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
As we can see, it provides several parameters: the player who called the command, the command he entered and whatever text he had after that, in this case &amp;quot;468&amp;quot; as vehicle id for the Sanchez. The first two parameters are the same with all command handlers, which you can read on the [[addEventHandler]] page. For this fact, you always have to define at least those two parameters to use any after that (for example to process text that was entered after the command, like in our example the vehicle model id).&lt;br /&gt;
&lt;br /&gt;
''Note: You have to add the command handler AFTER you defined the handler function, else it can't find it. The order of execution matters.''&lt;br /&gt;
&lt;br /&gt;
====Writing the function====&lt;br /&gt;
In order to fill the function we created, we need to think about what we have to do:&lt;br /&gt;
* Get the players position, so we know where to spawn the vehicle (we want it to appear right beside the player)&lt;br /&gt;
* Calculate the position we want to spawn the vehicle at (we don't want it to appear in the player)&lt;br /&gt;
* Spawn the vehicle&lt;br /&gt;
* Check if it has been spawned successfully, or output a message&lt;br /&gt;
&lt;br /&gt;
In order to achieve our goals, we have to use several functions. To find function we need to use, we should visit the [[Scripting Functions|Server Functions List]]. First we need a function to get the players position. Since players are Elements, we first jump to the '''Element functions''' where we find the [[getElementPosition]] function. By clicking on the function name in the list, you get to the function description. There we can see the syntax, what it returns and usually an example. The syntax shows us what arguments we can or have to submit.&lt;br /&gt;
&lt;br /&gt;
For [[getElementPosition]], the syntax is:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
float, float, float getElementPosition ( element theElement )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The three ''float'' in front of the function name are the return type. In this case it means the function returns three floating point numbers. (x, y and z) Within the parentheses, you can see what arguments you have to submit. In this case only the element whose position you want to get, which is the player in our example.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function createVehicleForPlayer(thePlayer, command, vehicleModel)&lt;br /&gt;
	-- get the position and put it in the x,y,z variables&lt;br /&gt;
	-- (local means, the variables only exist in the current scope, in this case, the function)&lt;br /&gt;
	local x,y,z = getElementPosition(thePlayer)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next we want to ensure that the vehicle won't spawn directly in the player, so we add a few units to the ''x'' variable, which will make it spawn east from the player.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function createVehicleForPlayer(thePlayer, command, vehicleModel)&lt;br /&gt;
	local x,y,z = getElementPosition(thePlayer) -- get the position of the player&lt;br /&gt;
	x = x + 5 -- add 5 units to the x position&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we need another function, one to spawn a vehicle. We once again search for it on the [[Scripting Functions|Server Functions List]], this time - since we are talking about vehicles - in the '''Vehicle functions''' section, where we will choose [[createVehicle]]. In this function's syntax, we only have one return type (which is more common), a vehicle element that points to the vehicle we just created. Also, we see that some arguments are enclosed within [ ] which means that those are optional.&lt;br /&gt;
&lt;br /&gt;
We already have all arguments we need for [[createVehicle]] in our function: The position we just calculated in the ''x,y,z'' variables and the model id that we provided through the command (&amp;quot;createvehicle 468&amp;quot;) and can access in the function as ''vehicleModel'' variable.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function createVehicleForPlayer(thePlayer, command, vehicleModel)&lt;br /&gt;
	local x,y,z = getElementPosition(thePlayer) -- get the position of the player&lt;br /&gt;
	x = x + 5 -- add 5 units to the x position&lt;br /&gt;
	-- create the vehicle and store the returned vehicle element in the ''createdVehicle'' variable&lt;br /&gt;
	local createdVehicle = createVehicle(tonumber(vehicleModel),x,y,z)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of course this code can be improved in many ways, but at least we want to add a check whether the vehicle was created successfully or not. As we can read on the [[createVehicle]] page under '''Returns''', the function returns ''false'' when it was unable to create the vehicle. Thus, we check the value of the ''createVehicle'' variable.&lt;br /&gt;
&lt;br /&gt;
Now we have our complete script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function createVehicleForPlayer(thePlayer, command, vehicleModel)&lt;br /&gt;
	local x,y,z = getElementPosition(thePlayer) -- get the position of the player&lt;br /&gt;
	x = x + 5 -- add 5 units to the x position&lt;br /&gt;
	local createdVehicle = createVehicle(tonumber(vehicleModel),x,y,z)&lt;br /&gt;
	-- check if the return value was ''false''&lt;br /&gt;
	if (createdVehicle == false) then&lt;br /&gt;
		-- if so, output a message to the chatbox, but only to this player.&lt;br /&gt;
		outputChatBox(&amp;quot;Failed to create vehicle.&amp;quot;,thePlayer)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
addCommandHandler(&amp;quot;createvehicle&amp;quot;, createVehicleForPlayer)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see, we introduced another function with [[outputChatBox]]. By now, you should be able to explore the function's documentation page yourself. For more advanced scripting, please check out the [[Map manager|Map Manager]].&lt;br /&gt;
&lt;br /&gt;
==What you need to know==&lt;br /&gt;
You already read some things about resources, command handlers and finding functions in the documentation in the first paragraph, but there is much more to learn. This section will give you a rather short overview over some of these things, while linking to related pages if possible.&lt;br /&gt;
===Clientside and Serverside scripts===&lt;br /&gt;
You may have already noticed these or similiar terms (Server/Client) somewhere on this wiki, mostly in conjunction with functions. MTA not only supports scripts that run on the server and provide commands (like the one we wrote above) or other features, but also scripts that run on the MTA client the players use to connect to the server. The reason for this is, that some features MTA provides have to be clientside (like a GUI - Graphical User Interface), others should be because they work better and still others are better off to be serverside or just don't work clientside.&lt;br /&gt;
&lt;br /&gt;
Most scripts you will make (gamemodes, maps) will probably be serverside, like the one we wrote in the first section. If you run into something that can't be solved serverside, you will probably have to make it clientside. For a clientside script for example, you would create a ordinary script file (for example called ''client.lua'') and specify it in the meta.xml, like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;client.lua&amp;quot; type=&amp;quot;client&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The ''type'' attribute defaults to 'server', so you only need to specify it for clientside scripts. When you do this, the clientside script will be downloaded to the player's computer once he connects to the server. Read more about [[Client side scripts]].&lt;br /&gt;
&lt;br /&gt;
===More complex resources===&lt;br /&gt;
The previous section showed briefly how to add clientside scripts to the resource, but there is also much more possible. As mentioned at the very top of this page, resources can be pretty much everything. Their purpose is defined by what they do. Let's have some theoretical resources, by looking at the files it contains, the ''meta.xml'' and what they might do:&lt;br /&gt;
&lt;br /&gt;
====First example - A utility script====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
/admin_commands&lt;br /&gt;
	/meta.xml&lt;br /&gt;
	/commands.lua&lt;br /&gt;
	/client.lua&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta&amp;gt;&lt;br /&gt;
	&amp;lt;info author=&amp;quot;Someguy&amp;quot; description=&amp;quot;admin commands&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;script src=&amp;quot;commands.lua&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;script src=&amp;quot;client.lua&amp;quot; type=&amp;quot;client&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The ''commands.lua'' provides some admin commands, like banning a player, muting or something else that can be used to admin the server&lt;br /&gt;
* The ''client.lua'' provides a GUI to be able to perform the mentioned actions easily&lt;br /&gt;
&lt;br /&gt;
This example might be running all the time (maybe even auto-started when the server starts) as it's useful during the whole gaming experience and also wont interfere with the gameplay, unless an admin decides to take some action of course.&lt;br /&gt;
&lt;br /&gt;
====Second example - A gamemode====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
/counterstrike&lt;br /&gt;
	/meta.xml&lt;br /&gt;
	/counterstrike.lua&lt;br /&gt;
	/buymenu.lua&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta&amp;gt;&lt;br /&gt;
	&amp;lt;info author=&amp;quot;Someguy&amp;quot; description=&amp;quot;Counterstrike remake&amp;quot; type=&amp;quot;gamemode&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;script src=&amp;quot;counterstrike.lua&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;script src=&amp;quot;buymenu.lua&amp;quot; type=&amp;quot;client&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The ''counterstrike.lua'' contains similiar to the following features:&lt;br /&gt;
** Let players choose their team and spawn them&lt;br /&gt;
** Provide them with weapons, targets and instructions (maybe read from a Map, see below)&lt;br /&gt;
** Define the game's rules, e.g. when does the round end, what happens when a player dies&lt;br /&gt;
** .. and maybe some more&lt;br /&gt;
* The ''buymenu.lua'' is a clientside script and creates a menu to buy weapons&lt;br /&gt;
&lt;br /&gt;
This example can be called a gamemode, since it not only intereferes with the gameplay, but actually defines the rules of it. The ''type'' attribute indicates that this example works with the [[Map manager]], yet another resource that was written by the QA Team to manage gamemodes and map loading. It is highly recommended that you base your gamemodes on the techniques it provides.&lt;br /&gt;
&lt;br /&gt;
This also means that the gamemode probably won't run without a map. Gamemodes should always be as generic as possible. An example for a map is stated in the next example.&lt;br /&gt;
&lt;br /&gt;
====Third example - A Map====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
/cs-airport&lt;br /&gt;
	/meta.xml&lt;br /&gt;
	/airport.map&lt;br /&gt;
	/airport.lua&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta&amp;gt;&lt;br /&gt;
	&amp;lt;info author=&amp;quot;Someguy&amp;quot; description=&amp;quot;Counterstrike airport map&amp;quot; type=&amp;quot;map&amp;quot; gamemodes=&amp;quot;counterstrike&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;map src=&amp;quot;airport.map&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;script src=&amp;quot;airport.lua&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The ''airport.map'' in a XML file that provides information about the map to the gamemode, these may include:&lt;br /&gt;
** Where the players should spawn, with what weapons, what teams there are&lt;br /&gt;
** What the targets are&lt;br /&gt;
** Weather, World Time, Timelimit&lt;br /&gt;
** Provide vehicles&lt;br /&gt;
* The ''airport.lua'' might contain map-specific features, that may include:&lt;br /&gt;
** Opening some door/make something explode when something specific happens&lt;br /&gt;
** Create or move some custom objects, or manipulate objects that are created through the .map file&lt;br /&gt;
** .. anything else map-specific you can think of&lt;br /&gt;
&lt;br /&gt;
As you can see, the ''type'' attribute changed to 'map', telling the [[Map manager]] that this resource is a map, while the ''gamemodes'' attribute tells it for which gamemodes this map is valid, in this case the gamemode from the above example.&lt;br /&gt;
What may come as a surprise is that there is also a script in the Map resource. Of course this is not necessarily needed in a map, but opens a wide range of possibilities for map makers to create their own world within the rules of the gamemode they create it for.&lt;br /&gt;
&lt;br /&gt;
The ''airport.map'' file might look similiar to this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;map mode=&amp;quot;deathmatch&amp;quot; version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;terrorists&amp;gt;&lt;br /&gt;
		&amp;lt;spawnpoint posX=&amp;quot;2332.23&amp;quot; posY=&amp;quot;-12232.33&amp;quot; posZ=&amp;quot;4.42223&amp;quot; skins=&amp;quot;23-40&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/terrorists&amp;gt;&lt;br /&gt;
	&amp;lt;counterterrorists&amp;gt;&lt;br /&gt;
		&amp;lt;spawnpoint posX=&amp;quot;2334.23443&amp;quot; posY=&amp;quot;-12300.233&amp;quot; posZ=&amp;quot;10.2344&amp;quot; skins=&amp;quot;40-50&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/counterterrorists&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;bomb posX=&amp;quot;23342.23&amp;quot; posY=&amp;quot;&amp;quot; posZ=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;vehicle posX=&amp;quot;&amp;quot; posY=&amp;quot;&amp;quot; posZ=&amp;quot;&amp;quot; model=&amp;quot;602&amp;quot; /&amp;gt;	&lt;br /&gt;
	&amp;lt;vehicle posX=&amp;quot;&amp;quot; posY=&amp;quot;&amp;quot; posZ=&amp;quot;&amp;quot; model=&amp;quot;603&amp;quot; /&amp;gt;	&lt;br /&gt;
&amp;lt;/map&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When a gamemode is started with a map, the map resources is automatically started by the mapmanager and the information it contains can be read by the gamemode resource. When the map changes, the current map resource is stopped and the next map resource is started. For a more in-depth explanation and examples of how map resources are utilized in the main script, please visit the [[Writing Gamemodes]] page.&lt;br /&gt;
&lt;br /&gt;
===Events===&lt;br /&gt;
[[Event|Events]] are the way MTA tells scripts about things that happen. For example when a player dies, the [[onPlayerWasted]] event is triggered. In order to perform any actions when a player dies, you have to prepare yourself similiar to adding a command handler, as shown in [[#Writing_the_script|the first chapter]].&lt;br /&gt;
&lt;br /&gt;
This example will output a message with the name of the player who died:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function playerDied(totalAmmo, killer, killerWeapon, bodypart)&lt;br /&gt;
	outputChatBox(getPlayerName(source)..&amp;quot; died!&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
addEventHandler(&amp;quot;onPlayerWasted&amp;quot;,getRootElement(),playerDied)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instead of showing what arguments are needed, the documentation page for Events shows what parameters are passed to the handler function, similiar to the way a [[#About_command_handlers|command handler]] does, just that it is different from event to event. Another important point is the ''source'' variable, that exists in handler functions. It doesn't have to be added to the parameter list of the function, but it still exists. It has a different value from event to event, for player events (as in the example above) it is the player element. As another example, you can take a look at the basic spawning player script in the first section to get an idea how ''source'' is used.&lt;br /&gt;
&lt;br /&gt;
==Where to go from here==&lt;br /&gt;
You should now be familiar with the most basic aspects of MTA scripting and also a bit with the documentation. The [[Main Page]] provides you with links to more information, Tutorials and References that allow a deeper look into the topics you desire to learn about.&lt;br /&gt;
{{note|From here we recommend reading the [[debugging]] tutorial. Good debugging skills are an absolute necessity when you are making scripts. We also recommend you to use the [[predefined variables list]] to help you with certain tasks and make scripting easier and faster.}}&lt;br /&gt;
'''See also:'''&lt;br /&gt;
* [[OOP_Introduction|OOP Scripting Introduction]]&lt;br /&gt;
* [[Advanced Topics]]&lt;br /&gt;
* [[Script_security|Script security]]&lt;br /&gt;
* [[Scripting Introduction Urdu]]&lt;br /&gt;
[[es:Introducción a la Programación]]&lt;br /&gt;
[[it:Introduzione allo scripting]]&lt;br /&gt;
[[nl:Scripting_introductie]]&lt;br /&gt;
[[pt-br:Introdução ao Scripting]]&lt;br /&gt;
[[ru:Scripting Introduction]]&lt;br /&gt;
[[hu:Scripting Intorduction]]&lt;br /&gt;
[[ar:مقدمه_في_البرمجه]]&lt;br /&gt;
[[zh-cn:脚本编写介绍]]&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Introduction_to_Scripting_the_GUI&amp;diff=47915</id>
		<title>HU/Introduction to Scripting the GUI</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Introduction_to_Scripting_the_GUI&amp;diff=47915"/>
		<updated>2016-06-27T09:14:15Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- place holder --&amp;gt;&lt;br /&gt;
Egy fontos funkciója az MTAnak az egyedi GUI, azaz Graphic User Interface, magyarul Grafikus Felhasználói Felület létrehozása. A GUI állhat ablakokból, gombokból, beviteli mezőkből, illetve jelölőnégyzetekből. Majdnem minden standard formájú alkotórész a grafikus környezetből. Meglehetnek jelenítve, miközben a játékos játszik, és lehet őket használni bemenetre és kimenetre hagyományos parancsok helyett.&lt;br /&gt;
&lt;br /&gt;
[[Image:AdminGUI.png|thumb|Admin Console GUI]]&lt;br /&gt;
&lt;br /&gt;
==Egy oktatás egy bejelentkező ablak létrehozásához==&lt;br /&gt;
Ebben az oktatásban létre fogunk hozni egy sima bejelentkező ablakot, két bemeneti mezővel és egy gombbal. Az ablak akkor fog megjelenni, amikor a játékos belép a játékba, és amikor a gomb meglesz nyomva, a játékos lefog spawnolni. Ez az oktatás folytatni fogja azt a gamemodet, amit elkészítettünk a [[HU/Scripting_Introduction|Bevezetés a scriptelésbe]] részlegben.&lt;br /&gt;
''(Ha használtad a [[HU/Scripting_Introduction|Bevezetés a scriptelésbe]] részleget, kikell törölnöd, vagy kommentelned a [[spawnPlayer]] sort a &amp;quot;csatlakozasKezelo&amp;quot; funkcióban, mivel helyettesíteni fogjuk egy GUI alternatívával ebben az oktatásban.)'' Illetve befogunk tekinteni a kliens-oldali scriptelésbe is.&lt;br /&gt;
&lt;br /&gt;
===Az ablak &amp;quot;megrajzolása&amp;quot;===&lt;br /&gt;
Minden GUIt csak kliens-oldalon tudunk elkészíteni. És amúgy egy jó gyakorlat, hogy minden kliens-oldali fájlt egy külön mappában tarstunk.&lt;br /&gt;
&lt;br /&gt;
Menj az /MTA szerver/mods/deathmatch/resources/enszerverem/ könyvtárba, majd hozz létre egy mappát &amp;quot;kliens&amp;quot; néven. A /kliens/ könyvtárban hozz létre egy szöveges fájlt, majd nevezd el &amp;quot;gui.lua&amp;quot;-nak.&lt;br /&gt;
&lt;br /&gt;
Ebben a fájlban fogunk megírni egy funkciót, ami az ablakot fogja megrajzolni. Ahhoz, hogy létrehozzunk egy ablakot a [[guiCreateWindow]] funkciót fogjunk használni:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function bejelentkezesiAblakLetrehozasa()&lt;br /&gt;
	-- Az X és az Y koordináta definiálása&lt;br /&gt;
	local X = 0.375&lt;br /&gt;
	local Y = 0.375&lt;br /&gt;
	-- A szélesség és a magasság definiálása&lt;br /&gt;
	local wSzelesseg = 0.25&lt;br /&gt;
	local wMagassag = 0.25&lt;br /&gt;
	-- Hozzuk létre az ablakot, és mentsük el az elementjét egy változóban amit nevezzünk el 'wLogin'-nak&lt;br /&gt;
	-- Nyomj rá a funkció nevére hogy elolvasd a hozzátartozó dokumentációt&lt;br /&gt;
	wLogin = guiCreateWindow(X, Y, wSzelesseg, wMagassag, &amp;quot;Kérlek jelentkezz be&amp;quot;, true)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Relatív és Abszolút===&lt;br /&gt;
Figyeld meg, hogy az utolsó argumentum a guiCreateWindownál a példában ''true''. Ez mutatja, hogy a koordináta és a dimenzió az ablaknál ''relatív'', szóval azt jelenti, hogy ''százaléka'' a teljes képernyőméretének. Ez azt jelenti hogy a bal oldala a képernyőnek 0, a jobb oldala 1, akkor egy X pozíció 0.5-nél mutatná a középpontját a képernyőnek. Hasonlóképpen a teteje a képernyőnek 0 és az alja 1, akkor egy Y pozíció 0.2-nél lenne a képernyő 20 százalékánál a képernyőnek fentről lefele. Ezek az elvek igazak mint a wSzelesseg és a wMagassagra is (a wSzelesseg 0.5-nél azt jelenti, hogy az ablak fele olyan széles lesz, mint a képernyőnk).&lt;br /&gt;
&lt;br /&gt;
Az alternatíva a relatív érzékek használatának az '''abszolút''' (''false'' adása a true helyett a guiCreateWindownak). Az abszolút értékek úgy vannak kiszámolva, hogy az összes pixel a bal-felső sarokból a '''szülőnek''' (ha nem egy gui element a szülő, akkor a szülő a képernyő maga). Feltételezzük, hogy a képernyőnk 1920x1200, a bal oldala a képernyőnknek 0 pixelnél, a jobb oldala 1920 pixelnél kezdődik, akkor egy X pozíció 960-nál mutatnál a középpontját a képernyőnek. Hasonlóképpen a teteje 0 pixelnél, és az alja 1200 pixelnél kezdődik, akkor egy Y pozíció 20-nál 20 pixellel tolná el lefele a képernyő tetejétől. Ezek az elvek igazak mint a wSzelesseg és a wMagassagra is (a wSzelesseg 50-nél azt jelenti, hogy az ablak 50 pixel széles lenne). ''Használhatod a [[guiGetScreenSize]]funkciót és egy kis matematikai számolást hogy kiszámíts bizonyos abszolút pozíciókat.''&lt;br /&gt;
&lt;br /&gt;
Az abszolútot általában egyszerűbb fenntartani amikor egy kódot kézzel hozunk létre, viszont a választásod függ a szituációtól.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Az oktatás céljából relatív értékeket fogunk használni.&lt;br /&gt;
&lt;br /&gt;
===Az alkotórészek hozzáadása===&lt;br /&gt;
Következőnek, szövegeket fogunk hozzáadni (&amp;quot;felhasználónév:&amp;quot; és &amp;quot;jelszó:&amp;quot;), bemeneti mezőket (az adat beviteléhez) és egy gombot a bejelentkezéshez.&lt;br /&gt;
&lt;br /&gt;
Egy gomb létrehozásához a [[guiCreateButton]], egy bemeneti mező létrehozásához a [[guiCreateEdit]] funkciót használjuk:&lt;br /&gt;
&lt;br /&gt;
'''Figyeld meg, hogy már a létező 'bejelentkezesiAblakLetrehozasa' funkcióhoz írunk további kódokat. Ez nem egy új funkció, és azt jelenti, hogy kicseréljük azt, amink már van.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function bejelentkezesiAblakLetrehozasa()&lt;br /&gt;
	local X = 0.375&lt;br /&gt;
	local Y = 0.375&lt;br /&gt;
	local wSzelesseg = 0.25&lt;br /&gt;
	local wMagassag = = 0.25&lt;br /&gt;
	wLogin = guiCreateWindow(X, Y, wSzelesseg, wMagassag, &amp;quot;Kérlek jelentkezz be&amp;quot;, true)&lt;br /&gt;
	&lt;br /&gt;
	-- Új X és Y koordináta definiálása az első felirathoz&lt;br /&gt;
	X = 0.0825&lt;br /&gt;
	Y = 0.2&lt;br /&gt;
	-- Új wSzelesseg és wMagassag definiálása az első felirathoz&lt;br /&gt;
	wSzelesseg = 0.25&lt;br /&gt;
	wMagassag = 0.25&lt;br /&gt;
	-- Az első felirat létrehozása, jegyezd meg hogy az utolsó 'wLogin' argumentum az ablakot jelenti&lt;br /&gt;
	-- amit már feljebb létrehoztunk, és ez lesz a felirat szülője (szóval minden pozíció és méret relatív az ablak pozíciójához képest)&lt;br /&gt;
	guiCreateLabel(X, Y, wSzelesseg , wMagassag , &amp;quot;Felhasználónév&amp;quot;, true, wdwLogin)&lt;br /&gt;
	-- Változtassuk meg az Y értéket, szóval a második címke némileg lejjebb van mint az &lt;br /&gt;
	Y = 0.5&lt;br /&gt;
	guiCreateLabel(X, Y, wSzelesseg, wMagassag, &amp;quot;Jelszó&amp;quot;, true, wdwLogin)&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
	X = 0.415&lt;br /&gt;
	Y = 0.2&lt;br /&gt;
	wSzelesseg = 0.5&lt;br /&gt;
	wMagassag = 0.15&lt;br /&gt;
	edtFelh = guiCreateEdit(X, Y, wSzelesseg, wMagassag, &amp;quot;&amp;quot;, true, wdwLogin)&lt;br /&gt;
	Y = 0.5&lt;br /&gt;
	edtJelszo = guiCreateEdit(X, Y, wSzelesseg, wMagassag, &amp;quot;&amp;quot;, true, wdwLogin)&lt;br /&gt;
	-- Állíts be a maximum hosszt a felhasználónév és a jelszó mezőnek 50re&lt;br /&gt;
	guiEditSetMaxLength(edtFelh, 50)&lt;br /&gt;
	guiEditSetMaxLength(edtJelszo, 50)&lt;br /&gt;
	&lt;br /&gt;
	X = 0.415&lt;br /&gt;
	Y = 0.7&lt;br /&gt;
	Width = 0.25&lt;br /&gt;
	Height = 0.2&lt;br /&gt;
	btnLogin = guiCreateButton(X, Y, Width, Height, &amp;quot;Log In&amp;quot;, true, wdwLogin)&lt;br /&gt;
	&lt;br /&gt;
	-- make the window invisible&lt;br /&gt;
	guiSetVisible(wdwLogin, false)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that every GUI component created is a child of the window, this is done by specifying the parent element (wdwLogin, in this case) when creating the component. &lt;br /&gt;
&lt;br /&gt;
This is very useful because not only does it mean that all the components are attached to the window and will move with it, but also that any changes done to the parent window will be applied down the tree to these child components. For example, we can now hide all of the GUI we just created by simply hiding the window:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
guiSetVisible(wdwLogin, false) --hides all the GUI we made so we can show them to the player at the appropriate moment. &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Using the function we wrote===&lt;br /&gt;
The createLoginWindow function is now complete, but it won't do anything until we call it. It is recommended to create all GUI when the client resource starts, hide them, and show them to the player later when needed. Therefore, we'll write an event handler for &amp;quot;[[onClientResourceStart]]&amp;quot; to create the window:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- attach the event handler to the root element of the resource&lt;br /&gt;
-- this means it will only trigger when its own resource is started&lt;br /&gt;
addEventHandler(&amp;quot;onClientResourceStart&amp;quot;, getResourceRootElement(), &lt;br /&gt;
	function ()&lt;br /&gt;
		createLoginWindow()&lt;br /&gt;
	end&lt;br /&gt;
)	&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As this is a log in window, we now need to show the window when the player joins the game. &lt;br /&gt;
This can be done using the same event, &amp;quot;[[onClientResourceStart]]&amp;quot;, so we can modify the above code to include showing the window:&lt;br /&gt;
&lt;br /&gt;
'''Note that we are now writing more code for our existing 'onClientResourceStart' handler. This is not a new event handler and is meant to replace what you already have.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
addEventHandler(&amp;quot;onClientResourceStart&amp;quot;, getResourceRootElement(), &lt;br /&gt;
	function ()&lt;br /&gt;
		-- create the log in window and its components&lt;br /&gt;
		createLoginWindow()&lt;br /&gt;
&lt;br /&gt;
		-- output a brief welcome message to the player&lt;br /&gt;
                outputChatBox(&amp;quot;Welcome to My MTA:SA Server, please log in.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
		-- if the GUI was successfully created, then show the GUI to the player&lt;br /&gt;
	        if (wdwLogin ~= nil) then&lt;br /&gt;
			guiSetVisible(wdwLogin, true)&lt;br /&gt;
		else&lt;br /&gt;
			-- if the GUI hasnt been properly created, tell the player&lt;br /&gt;
			outputChatBox(&amp;quot;An unexpected error has occurred and the log in GUI has not been created.&amp;quot;)&lt;br /&gt;
	        end &lt;br /&gt;
&lt;br /&gt;
		-- enable the players cursor (so they can select and click on the components)&lt;br /&gt;
	        showCursor(true)&lt;br /&gt;
		-- set the input focus onto the GUI, allowing players (for example) to press 'T' without the chatbox opening&lt;br /&gt;
	        guiSetInputEnabled(true)&lt;br /&gt;
	end&lt;br /&gt;
)	&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that we have a simple security check before making the window visible, so in the unlikely event that the window has not been created, meaning wdwLogin is not a valid element, we don't get an error and just inform the player what has happened. &lt;br /&gt;
In the next step, we will create the button functionality for the log in button.&lt;br /&gt;
&lt;br /&gt;
==Scripting the button==&lt;br /&gt;
Now that we have created our GUI and shown it to the player, we need to make it work. &lt;br /&gt;
&lt;br /&gt;
===Detecting the click===&lt;br /&gt;
When the player clicks on any part of the GUI, the event &amp;quot;[[onClientGUIClick]]&amp;quot; will be triggered for the GUI component you clicked on. This allows us to easily detect any clicks on the GUI elements we want to use.&lt;br /&gt;
For example, we can attach the event to the btnLogin button to catch any clicks on it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- attach the event onClientGUIClick to btnLogin and set it to trigger the 'clientSubmitLogin' function&lt;br /&gt;
addEventHandler(&amp;quot;onClientGUIClick&amp;quot;, btnLogin, clientSubmitLogin, false)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
'''Note the final argument passed is &amp;quot;false&amp;quot;. This indicates that the event will only trigger directly on btnLogin, not if the event has propagated up or down the tree. Setting this to &amp;quot;true&amp;quot; while attaching to gui elements will mean that clicking on any element in the same branch will trigger this event.'''&lt;br /&gt;
&lt;br /&gt;
This line of code can now be added inside the createLoginWindow function. It is a common mistake to try and attach events to non-existant GUI elements, so make sure you always attach your events '''after''' the gui element (in this case, the button) has been created:&lt;br /&gt;
&lt;br /&gt;
'''Note that we are now writing more code for our existing 'createLoginWindow' function.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function createLoginWindow()&lt;br /&gt;
	-- create all our GUI elements&lt;br /&gt;
	...&lt;br /&gt;
&lt;br /&gt;
	-- now add our onClientGUIClick event to the button we just created&lt;br /&gt;
	addEventHandler(&amp;quot;onClientGUIClick&amp;quot;, btnLogin, clientSubmitLogin, false)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Managing the click===&lt;br /&gt;
Now that we can detect when the player clicks on the button, we need to write code to manage what happens when they do.&lt;br /&gt;
In our [[onClientGUIClick]] event handle, we told it to call the function clientSubmitLogin whenever btnLogin is clicked.&lt;br /&gt;
Therefore, we can now use the function clientSubmitLogin to control what happens when the button is clicked:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- create the function and define the 'button' and 'state' parameters&lt;br /&gt;
-- (these are passed automatically by onClientGUIClick)&lt;br /&gt;
function clientSubmitLogin(button,state)&lt;br /&gt;
	-- if our login button was clicked with the left mouse button, and the state of the mouse button is up&lt;br /&gt;
	if button == &amp;quot;left&amp;quot; and state == &amp;quot;up&amp;quot; then&lt;br /&gt;
		-- move the input focus back onto the game (allowing players to move around, open the chatbox, etc)&lt;br /&gt;
		guiSetInputEnabled(false)&lt;br /&gt;
		-- hide the window and all the components&lt;br /&gt;
		guiSetVisible(wdwLogin, false)&lt;br /&gt;
		-- hide the mouse cursor&lt;br /&gt;
		showCursor(false)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Now, when the button is clicked, the window will be hidden and all controls will be returned to the player. Next, we will tell the server to allow the player to spawn.&lt;br /&gt;
&lt;br /&gt;
===Triggering the server===&lt;br /&gt;
Triggering the server can be done using [[triggerServerEvent]]. This allows you to trigger a specified event on the server from the client. The same can be done in reverse using [[triggerClientEvent]].&lt;br /&gt;
Here, we use the [[triggerServerEvent]] function to call our own custom event on the server, named &amp;quot;submitLogin&amp;quot;, which will then control the spawning of the player serverside.&lt;br /&gt;
&lt;br /&gt;
'''Note that we are now writing more code for our existing 'clientSubmitLogin' function. This is not a new function and is meant to replace what you already have.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function clientSubmitLogin(button,state)&lt;br /&gt;
	if button == &amp;quot;left&amp;quot; and state == &amp;quot;up&amp;quot; then&lt;br /&gt;
		-- get the text entered in the 'username' field&lt;br /&gt;
		local username = guiGetText(edtUser)&lt;br /&gt;
		-- get the text entered in the 'password' field&lt;br /&gt;
		local password = guiGetText(edtPass)&lt;br /&gt;
&lt;br /&gt;
		-- if the username and password both exist&lt;br /&gt;
		if username and password then&lt;br /&gt;
			-- trigger the server event 'submitLogin' and pass the username and password to it&lt;br /&gt;
			triggerServerEvent(&amp;quot;submitLogin&amp;quot;, getRootElement(), username, password)&lt;br /&gt;
&lt;br /&gt;
			-- hide the gui, hide the cursor and return control to the player&lt;br /&gt;
			guiSetInputEnabled(false)&lt;br /&gt;
			guiSetVisible(wdwLogin, false)&lt;br /&gt;
			showCursor(false)&lt;br /&gt;
		else&lt;br /&gt;
			-- otherwise, output a message to the player, do not trigger the server&lt;br /&gt;
			-- and do not hide the gui&lt;br /&gt;
			outputChatBox(&amp;quot;Please enter a username and password.&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Creating the serverside event===&lt;br /&gt;
At this point we now have all the code needed on the client side, so open up your serverside 'script.lua' file (from the [[Scripting Introduction|Introduction to Scripting]]) or another suitable serverside file to work with.&lt;br /&gt;
&lt;br /&gt;
On the server side, recall that we are spawning the player as soon as they login.&lt;br /&gt;
So, first of all, we will need to define the custom event that we used before on the client. This can be done using [[addEvent]] and [[addEventHandler]].&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- create our loginHandler function, with username and password parameters (passed from the client gui)&lt;br /&gt;
function loginHandler(username,password)&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- define our custom event, and allow it to be triggered from the client ('true')&lt;br /&gt;
addEvent(&amp;quot;submitLogin&amp;quot;,true)&lt;br /&gt;
-- add an event handler so that when submitLogin is triggered, the function loginHandler is called&lt;br /&gt;
addEventHandler(&amp;quot;submitLogin&amp;quot;,root,loginHandler)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logging in===&lt;br /&gt;
Now we have a function that is called through the custom event 'submitLogin', we can start to work on logging in and spawning the player, using our 'loginHandler' function:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function loginHandler(username,password)&lt;br /&gt;
	-- check that the username and password are correct&lt;br /&gt;
	if username == &amp;quot;user&amp;quot; and password == &amp;quot;apple&amp;quot; then&lt;br /&gt;
		-- the player has successfully logged in, so spawn them&lt;br /&gt;
		if (client) then&lt;br /&gt;
			spawnPlayer(client, 1959.55, -1714.46, 10)&lt;br /&gt;
			fadeCamera(client, true)&lt;br /&gt;
                        setCameraTarget(client, client)&lt;br /&gt;
			outputChatBox(&amp;quot;Welcome to My Server.&amp;quot;, client)&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		-- if the username or password are not correct, output a message to the player&lt;br /&gt;
		outputChatBox(&amp;quot;Invalid username and password. Please re-connect and try again.&amp;quot;,client)&lt;br /&gt;
        end			&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
addEvent(&amp;quot;submitLogin&amp;quot;,true)&lt;br /&gt;
addEventHandler(&amp;quot;submitLogin&amp;quot;,root,loginHandler)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
'''For the purposes of this tutorial, a very basic username and password system is shown. For a more comprehensive alternative, you can use the Account System or a MySQL database.'''&lt;br /&gt;
&lt;br /&gt;
Also note the use of the variable &amp;quot;client&amp;quot;, it's an internal variable used by MTA to identify the player who triggered the event. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finally, do not forget to include the new gui.lua file in the meta.xml of the main resource, and label it as a client script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;client/gui.lua&amp;quot; type=&amp;quot;client&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this point, we now have a basic login window that checks the player's username and password when the login button is clicked. If they are correct, the player is automatically spawned.&lt;br /&gt;
&lt;br /&gt;
For further help with GUI, see the [[:Category:GUI_Tutorials|GUI tutorials]].&lt;br /&gt;
&lt;br /&gt;
[[Category:GUI_Tutorials]]&lt;br /&gt;
[[it:Introduzione_allo_scripting_della_GUI]]&lt;br /&gt;
[[ru:Introduction to Scripting the GUI]]&lt;br /&gt;
[[es:Introducción a la Programación de GUI]]&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Introduction_to_Scripting_the_GUI&amp;diff=47553</id>
		<title>HU/Introduction to Scripting the GUI</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Introduction_to_Scripting_the_GUI&amp;diff=47553"/>
		<updated>2016-05-28T17:06:53Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- place holder --&amp;gt;&lt;br /&gt;
Egy fontos funkciója az MTAnak az egyedi GUI, azaz Graphic User Interface, magyarul Grafikus Felhasználói Felület létrehozása. A GUI állhat ablakokból, gombokból, beviteli mezőkből, illetve jelölőnégyzetekből. Majdnem minden standard formájú alkotórész a grafikus környezetből. Meglehetnek jelenítve, miközben a játékos játszik, és lehet őket használni bemenetre és kimenetre hagyományos parancsok helyett.&lt;br /&gt;
&lt;br /&gt;
[[Image:AdminGUI.png|thumb|Admin Console GUI]]&lt;br /&gt;
&lt;br /&gt;
==Egy oktatás egy bejelentkező ablak létrehozásához==&lt;br /&gt;
Ebben az oktatásban létre fogunk hozni egy sima bejelentkező ablakot, két bemeneti mezővel és egy gombbal. Az ablak akkor fog megjelenni, amikor a játékos belép a játékba, és amikor a gomb meglesz nyomva, a játékos lefog spawnolni. Ez az oktatás folytatni fogja azt a gamemodet, amit elkészítettünk a [[HU/Scripting_Introduction|Bevezetés a scriptelésbe]] részlegben.&lt;br /&gt;
''(Ha használtad a [[HU/Scripting_Introduction|Bevezetés a scriptelésbe]] részleget, kikell törölnöd, vagy kommentelned a [[spawnPlayer]] sort a &amp;quot;csatlakozasKezelo&amp;quot; funkcióban, mivel helyettesíteni fogjuk egy GUI alternatívával ebben az oktatásban.)'' Illetve befogunk tekinteni a kliens-oldali scriptelésbe is.&lt;br /&gt;
&lt;br /&gt;
===Az ablak &amp;quot;megrajzolása&amp;quot;===&lt;br /&gt;
Minden GUIt csak kliens-oldalon tudunk elkészíteni. És amúgy egy jó gyakorlat, hogy minden kliens-oldali fájlt egy külön mappában tarstunk.&lt;br /&gt;
&lt;br /&gt;
Menj az /MTA szerver/mods/deathmatch/resources/enszerverem/ könyvtárba, majd hozz létre egy mappát &amp;quot;kliens&amp;quot; néven. A /kliens/ könyvtárban hozz létre egy szöveges fájlt, majd nevezd el &amp;quot;gui.lua&amp;quot;-nak.&lt;br /&gt;
&lt;br /&gt;
Ebben a fájlban fogunk megírni egy funkciót, ami az ablakot fogja megrajzolni. Ahhoz, hogy létrehozzunk egy ablakot a [[guiCreateWindow]] funkciót fogjunk használni:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function bejelentkezesiAblakLetrehozasa()&lt;br /&gt;
	-- Az X és az Y koordináta definiálása&lt;br /&gt;
	local X = 0.375&lt;br /&gt;
	local Y = 0.375&lt;br /&gt;
	-- A szélesség és a magasság definiálása&lt;br /&gt;
	local wSzelesseg = 0.25&lt;br /&gt;
	local wMagassag = 0.25&lt;br /&gt;
	-- Hozzuk létre az ablakot, és mentsük el az elementjét egy változóban amit nevezzünk el 'wLogin'-nak&lt;br /&gt;
	-- Nyomj rá a funkció nevére hogy elolvasd a hozzátartozó dokumentációt&lt;br /&gt;
	wLogin = guiCreateWindow(X, Y, wSzelesseg, wMagassag, &amp;quot;Kérlek jelentkezz be&amp;quot;, true)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Relatív és Abszolút===&lt;br /&gt;
Figyeld meg, hogy az utolsó argumentum a guiCreateWindownál a példában ''true''. Ez mutatja, hogy a koordináta és a dimenzió az ablaknál ''relatív'', szóval azt jelenti, hogy ''százaléka'' a teljes képernyőméretének. Ez azt jelenti hogy a bal oldala a képernyőnek 0, a jobb oldala 1, akkor egy X pozíció 0.5-nél mutatná a középpontját a képernyőnek. Hasonlóképpen a teteje a képernyőnek 0 és az alja 1, akkor egy Y pozíció 0.2-nél lenne a képernyő 20 százalékánál a képernyőnek fentről lefele. Ezek az elvek igazak mint a wSzelesseg és a wMagassagra is (a wSzelesseg 0.5-nél azt jelenti, hogy az ablak fele olyan széles lesz, mint a képernyőnk).&lt;br /&gt;
&lt;br /&gt;
Az alternatíva a relatív érzékek használatának az '''abszolút''' (''false'' adása a true helyett a guiCreateWindownak). Az abszolút értékek úgy vannak kiszámolva, hogy az összes pixel a bal-felső sarokból a '''szülőnek''' (ha nem egy gui element a szülő, akkor a szülő a képernyő maga). Feltételezzük, hogy a képernyőnk 1920x1200, a bal oldala a képernyőnknek 0 pixelnél, a jobb oldala 1920 pixelnél kezdődik, akkor egy X pozíció 960-nál mutatnál a középpontját a képernyőnek. Hasonlóképpen a teteje 0 pixelnél, és az alja 1200 pixelnél kezdődik, akkor egy Y pozíció 20-nál 20 pixellel tolná el lefele a képernyő tetejétől. Ezek az elvek igazak mint a wSzelesseg és a wMagassagra is (a wSzelesseg 50-nél azt jelenti, hogy az ablak 50 pixel széles lenne). ''Használhatod a [[guiGetScreenSize]]funkciót és egy kis matematikai számolást hogy kiszámíts bizonyos abszolút pozíciókat.''&lt;br /&gt;
&lt;br /&gt;
Az abszolútot általában egyszerűbb fenntartani amikor egy kódot kézzel hozunk létre, viszont a választásod függ a szituációtól.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Az oktatás céljából relatív értékeket fogunk használni.&lt;br /&gt;
&lt;br /&gt;
===Az alkotórészek hozzáadása===&lt;br /&gt;
Következőnek, szövegeket fogunk hozzáadni (&amp;quot;felhasználónév:&amp;quot; és &amp;quot;jelszó:&amp;quot;), bemeneti mezőket (az adat beviteléhez) és egy gombot a bejelentkezéshez.&lt;br /&gt;
&lt;br /&gt;
Egy gomb létrehozásához a [[guiCreateButton]], egy bemeneti mező létrehozásához a [[guiCreateEdit]] funkciót használjuk:&lt;br /&gt;
&lt;br /&gt;
'''Figyeld meg, hogy már a létező 'bejelentkezesiAblakLetrehozasa' funkcióhoz írunk további kódokat. Ez nem egy új funkció, és azt jelenti, hogy kicseréljük azt, amink már van.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function bejelentkezesiAblakLetrehozasa()&lt;br /&gt;
	local X = 0.375&lt;br /&gt;
	local Y = 0.375&lt;br /&gt;
	local wSzelesseg = 0.25&lt;br /&gt;
	local wMagassag = = 0.25&lt;br /&gt;
	wLogin = guiCreateWindow(X, Y, wSzelesseg, wMagassag, &amp;quot;Kérlek jelentkezz be&amp;quot;, true)&lt;br /&gt;
	&lt;br /&gt;
	-- Új X és Y koordináta definiálása az első felirathoz&lt;br /&gt;
	X = 0.0825&lt;br /&gt;
	Y = 0.2&lt;br /&gt;
	-- Új wSzelesseg és wMagassag definiálása az első felirathoz&lt;br /&gt;
	wSzelesseg = 0.25&lt;br /&gt;
	wMagassag = 0.25&lt;br /&gt;
	-- Az első felirat létrehozása, jegyezd meg hogy az utolsó 'wLogin' argumentum az ablakot jelenti&lt;br /&gt;
	-- amit már feljebb létrehoztunk, és ez lesz a felirat szülője (szóval minden pozíció és méret relatív az ablak pozíciójához képest)&lt;br /&gt;
	guiCreateLabel(X, Y, wSzelesseg , wMagassag , &amp;quot;Felhasználónév&amp;quot;, true, wdwLogin)&lt;br /&gt;
	-- Változtassuk meg az Y értéket, szóval a második címke némileg lejjebb van mint az &lt;br /&gt;
	Y = 0.5&lt;br /&gt;
	guiCreateLabel(X, Y, wSzelesseg, wMagassag, &amp;quot;Jelszó&amp;quot;, true, wdwLogin)&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
	X = 0.415&lt;br /&gt;
	Y = 0.2&lt;br /&gt;
	Width = 0.5&lt;br /&gt;
	Height = 0.15&lt;br /&gt;
	edtUser = guiCreateEdit(X, Y, Width, Height, &amp;quot;&amp;quot;, true, wdwLogin)&lt;br /&gt;
	Y = 0.5&lt;br /&gt;
	edtPass = guiCreateEdit(X, Y, Width, Height, &amp;quot;&amp;quot;, true, wdwLogin)&lt;br /&gt;
	-- set the maximum character length for the username and password fields to 50&lt;br /&gt;
	guiEditSetMaxLength(edtUser, 50)&lt;br /&gt;
	guiEditSetMaxLength(edtPass, 50)&lt;br /&gt;
	&lt;br /&gt;
	X = 0.415&lt;br /&gt;
	Y = 0.7&lt;br /&gt;
	Width = 0.25&lt;br /&gt;
	Height = 0.2&lt;br /&gt;
	btnLogin = guiCreateButton(X, Y, Width, Height, &amp;quot;Log In&amp;quot;, true, wdwLogin)&lt;br /&gt;
	&lt;br /&gt;
	-- make the window invisible&lt;br /&gt;
	guiSetVisible(wdwLogin, false)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that every GUI component created is a child of the window, this is done by specifying the parent element (wdwLogin, in this case) when creating the component. &lt;br /&gt;
&lt;br /&gt;
This is very useful because not only does it mean that all the components are attached to the window and will move with it, but also that any changes done to the parent window will be applied down the tree to these child components. For example, we can now hide all of the GUI we just created by simply hiding the window:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
guiSetVisible(wdwLogin, false) --hides all the GUI we made so we can show them to the player at the appropriate moment. &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Using the function we wrote===&lt;br /&gt;
The createLoginWindow function is now complete, but it won't do anything until we call it. It is recommended to create all GUI when the client resource starts, hide them, and show them to the player later when needed. Therefore, we'll write an event handler for &amp;quot;[[onClientResourceStart]]&amp;quot; to create the window:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- attach the event handler to the root element of the resource&lt;br /&gt;
-- this means it will only trigger when its own resource is started&lt;br /&gt;
addEventHandler(&amp;quot;onClientResourceStart&amp;quot;, getResourceRootElement(), &lt;br /&gt;
	function ()&lt;br /&gt;
		createLoginWindow()&lt;br /&gt;
	end&lt;br /&gt;
)	&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As this is a log in window, we now need to show the window when the player joins the game. &lt;br /&gt;
This can be done using the same event, &amp;quot;[[onClientResourceStart]]&amp;quot;, so we can modify the above code to include showing the window:&lt;br /&gt;
&lt;br /&gt;
'''Note that we are now writing more code for our existing 'onClientResourceStart' handler. This is not a new event handler and is meant to replace what you already have.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
addEventHandler(&amp;quot;onClientResourceStart&amp;quot;, getResourceRootElement(), &lt;br /&gt;
	function ()&lt;br /&gt;
		-- create the log in window and its components&lt;br /&gt;
		createLoginWindow()&lt;br /&gt;
&lt;br /&gt;
		-- output a brief welcome message to the player&lt;br /&gt;
                outputChatBox(&amp;quot;Welcome to My MTA:SA Server, please log in.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
		-- if the GUI was successfully created, then show the GUI to the player&lt;br /&gt;
	        if (wdwLogin ~= nil) then&lt;br /&gt;
			guiSetVisible(wdwLogin, true)&lt;br /&gt;
		else&lt;br /&gt;
			-- if the GUI hasnt been properly created, tell the player&lt;br /&gt;
			outputChatBox(&amp;quot;An unexpected error has occurred and the log in GUI has not been created.&amp;quot;)&lt;br /&gt;
	        end &lt;br /&gt;
&lt;br /&gt;
		-- enable the players cursor (so they can select and click on the components)&lt;br /&gt;
	        showCursor(true)&lt;br /&gt;
		-- set the input focus onto the GUI, allowing players (for example) to press 'T' without the chatbox opening&lt;br /&gt;
	        guiSetInputEnabled(true)&lt;br /&gt;
	end&lt;br /&gt;
)	&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that we have a simple security check before making the window visible, so in the unlikely event that the window has not been created, meaning wdwLogin is not a valid element, we don't get an error and just inform the player what has happened. &lt;br /&gt;
In the next step, we will create the button functionality for the log in button.&lt;br /&gt;
&lt;br /&gt;
==Scripting the button==&lt;br /&gt;
Now that we have created our GUI and shown it to the player, we need to make it work. &lt;br /&gt;
&lt;br /&gt;
===Detecting the click===&lt;br /&gt;
When the player clicks on any part of the GUI, the event &amp;quot;[[onClientGUIClick]]&amp;quot; will be triggered for the GUI component you clicked on. This allows us to easily detect any clicks on the GUI elements we want to use.&lt;br /&gt;
For example, we can attach the event to the btnLogin button to catch any clicks on it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- attach the event onClientGUIClick to btnLogin and set it to trigger the 'clientSubmitLogin' function&lt;br /&gt;
addEventHandler(&amp;quot;onClientGUIClick&amp;quot;, btnLogin, clientSubmitLogin, false)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
'''Note the final argument passed is &amp;quot;false&amp;quot;. This indicates that the event will only trigger directly on btnLogin, not if the event has propagated up or down the tree. Setting this to &amp;quot;true&amp;quot; while attaching to gui elements will mean that clicking on any element in the same branch will trigger this event.'''&lt;br /&gt;
&lt;br /&gt;
This line of code can now be added inside the createLoginWindow function. It is a common mistake to try and attach events to non-existant GUI elements, so make sure you always attach your events '''after''' the gui element (in this case, the button) has been created:&lt;br /&gt;
&lt;br /&gt;
'''Note that we are now writing more code for our existing 'createLoginWindow' function.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function createLoginWindow()&lt;br /&gt;
	-- create all our GUI elements&lt;br /&gt;
	...&lt;br /&gt;
&lt;br /&gt;
	-- now add our onClientGUIClick event to the button we just created&lt;br /&gt;
	addEventHandler(&amp;quot;onClientGUIClick&amp;quot;, btnLogin, clientSubmitLogin, false)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Managing the click===&lt;br /&gt;
Now that we can detect when the player clicks on the button, we need to write code to manage what happens when they do.&lt;br /&gt;
In our [[onClientGUIClick]] event handle, we told it to call the function clientSubmitLogin whenever btnLogin is clicked.&lt;br /&gt;
Therefore, we can now use the function clientSubmitLogin to control what happens when the button is clicked:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- create the function and define the 'button' and 'state' parameters&lt;br /&gt;
-- (these are passed automatically by onClientGUIClick)&lt;br /&gt;
function clientSubmitLogin(button,state)&lt;br /&gt;
	-- if our login button was clicked with the left mouse button, and the state of the mouse button is up&lt;br /&gt;
	if button == &amp;quot;left&amp;quot; and state == &amp;quot;up&amp;quot; then&lt;br /&gt;
		-- move the input focus back onto the game (allowing players to move around, open the chatbox, etc)&lt;br /&gt;
		guiSetInputEnabled(false)&lt;br /&gt;
		-- hide the window and all the components&lt;br /&gt;
		guiSetVisible(wdwLogin, false)&lt;br /&gt;
		-- hide the mouse cursor&lt;br /&gt;
		showCursor(false)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Now, when the button is clicked, the window will be hidden and all controls will be returned to the player. Next, we will tell the server to allow the player to spawn.&lt;br /&gt;
&lt;br /&gt;
===Triggering the server===&lt;br /&gt;
Triggering the server can be done using [[triggerServerEvent]]. This allows you to trigger a specified event on the server from the client. The same can be done in reverse using [[triggerClientEvent]].&lt;br /&gt;
Here, we use the [[triggerServerEvent]] function to call our own custom event on the server, named &amp;quot;submitLogin&amp;quot;, which will then control the spawning of the player serverside.&lt;br /&gt;
&lt;br /&gt;
'''Note that we are now writing more code for our existing 'clientSubmitLogin' function. This is not a new function and is meant to replace what you already have.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function clientSubmitLogin(button,state)&lt;br /&gt;
	if button == &amp;quot;left&amp;quot; and state == &amp;quot;up&amp;quot; then&lt;br /&gt;
		-- get the text entered in the 'username' field&lt;br /&gt;
		local username = guiGetText(edtUser)&lt;br /&gt;
		-- get the text entered in the 'password' field&lt;br /&gt;
		local password = guiGetText(edtPass)&lt;br /&gt;
&lt;br /&gt;
		-- if the username and password both exist&lt;br /&gt;
		if username and password then&lt;br /&gt;
			-- trigger the server event 'submitLogin' and pass the username and password to it&lt;br /&gt;
			triggerServerEvent(&amp;quot;submitLogin&amp;quot;, getRootElement(), username, password)&lt;br /&gt;
&lt;br /&gt;
			-- hide the gui, hide the cursor and return control to the player&lt;br /&gt;
			guiSetInputEnabled(false)&lt;br /&gt;
			guiSetVisible(wdwLogin, false)&lt;br /&gt;
			showCursor(false)&lt;br /&gt;
		else&lt;br /&gt;
			-- otherwise, output a message to the player, do not trigger the server&lt;br /&gt;
			-- and do not hide the gui&lt;br /&gt;
			outputChatBox(&amp;quot;Please enter a username and password.&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Creating the serverside event===&lt;br /&gt;
At this point we now have all the code needed on the client side, so open up your serverside 'script.lua' file (from the [[Scripting Introduction|Introduction to Scripting]]) or another suitable serverside file to work with.&lt;br /&gt;
&lt;br /&gt;
On the server side, recall that we are spawning the player as soon as they login.&lt;br /&gt;
So, first of all, we will need to define the custom event that we used before on the client. This can be done using [[addEvent]] and [[addEventHandler]].&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- create our loginHandler function, with username and password parameters (passed from the client gui)&lt;br /&gt;
function loginHandler(username,password)&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- define our custom event, and allow it to be triggered from the client ('true')&lt;br /&gt;
addEvent(&amp;quot;submitLogin&amp;quot;,true)&lt;br /&gt;
-- add an event handler so that when submitLogin is triggered, the function loginHandler is called&lt;br /&gt;
addEventHandler(&amp;quot;submitLogin&amp;quot;,root,loginHandler)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logging in===&lt;br /&gt;
Now we have a function that is called through the custom event 'submitLogin', we can start to work on logging in and spawning the player, using our 'loginHandler' function:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function loginHandler(username,password)&lt;br /&gt;
	-- check that the username and password are correct&lt;br /&gt;
	if username == &amp;quot;user&amp;quot; and password == &amp;quot;apple&amp;quot; then&lt;br /&gt;
		-- the player has successfully logged in, so spawn them&lt;br /&gt;
		if (client) then&lt;br /&gt;
			spawnPlayer(client, 1959.55, -1714.46, 10)&lt;br /&gt;
			fadeCamera(client, true)&lt;br /&gt;
                        setCameraTarget(client, client)&lt;br /&gt;
			outputChatBox(&amp;quot;Welcome to My Server.&amp;quot;, client)&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		-- if the username or password are not correct, output a message to the player&lt;br /&gt;
		outputChatBox(&amp;quot;Invalid username and password. Please re-connect and try again.&amp;quot;,client)&lt;br /&gt;
        end			&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
addEvent(&amp;quot;submitLogin&amp;quot;,true)&lt;br /&gt;
addEventHandler(&amp;quot;submitLogin&amp;quot;,root,loginHandler)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
'''For the purposes of this tutorial, a very basic username and password system is shown. For a more comprehensive alternative, you can use the Account System or a MySQL database.'''&lt;br /&gt;
&lt;br /&gt;
Also note the use of the variable &amp;quot;client&amp;quot;, it's an internal variable used by MTA to identify the player who triggered the event. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finally, do not forget to include the new gui.lua file in the meta.xml of the main resource, and label it as a client script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;client/gui.lua&amp;quot; type=&amp;quot;client&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this point, we now have a basic login window that checks the player's username and password when the login button is clicked. If they are correct, the player is automatically spawned.&lt;br /&gt;
&lt;br /&gt;
For further help with GUI, see the [[:Category:GUI_Tutorials|GUI tutorials]].&lt;br /&gt;
&lt;br /&gt;
[[Category:GUI_Tutorials]]&lt;br /&gt;
[[it:Introduzione_allo_scripting_della_GUI]]&lt;br /&gt;
[[ru:Introduction to Scripting the GUI]]&lt;br /&gt;
[[es:Introducción a la Programación de GUI]]&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/:Category:Resource&amp;diff=47535</id>
		<title>HU/:Category:Resource</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/:Category:Resource&amp;diff=47535"/>
		<updated>2016-05-19T19:31:38Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TODO&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/:Category:Resource&amp;diff=47534</id>
		<title>HU/:Category:Resource</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/:Category:Resource&amp;diff=47534"/>
		<updated>2016-05-19T19:31:07Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Kurvaanyád#NeXuS&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=User:MTANeXuS&amp;diff=47518</id>
		<title>User:MTANeXuS</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=User:MTANeXuS&amp;diff=47518"/>
		<updated>2016-05-14T15:54:20Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tipp|Official Hungarian Translator for MTA Wiki}}&lt;br /&gt;
&lt;br /&gt;
==== Translations by NeXuS ==== &lt;br /&gt;
* [[HU/Scripting_Introduction]]&lt;br /&gt;
--[[User:MTANeXuS|NeXuS]] ([[User talk:MTANeXuS|talk]]) 15:54, 14 May 2016 (UTC)&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=User:MTANeXuS&amp;diff=47517</id>
		<title>User:MTANeXuS</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=User:MTANeXuS&amp;diff=47517"/>
		<updated>2016-05-14T15:54:06Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tipp|Official Hungarian Translator for MTA Wiki}}&lt;br /&gt;
&lt;br /&gt;
==== Translations by NeXuS ==== &lt;br /&gt;
* [[HU/Scripting_Introduction]]&lt;br /&gt;
--[[User:MTANeXuS|NeXuS]] ([[User talk:MTANeXuS|talk]])&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=User:MTANeXuS&amp;diff=47516</id>
		<title>User:MTANeXuS</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=User:MTANeXuS&amp;diff=47516"/>
		<updated>2016-05-14T15:50:07Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tipp|Official Hungarian Translator for MTA Wiki}}&lt;br /&gt;
&lt;br /&gt;
==== Translations by NeXuS ==== &lt;br /&gt;
* [[HU/Scripting_Introduction]]&lt;br /&gt;
--[[User:MTANeXuS|MTANeXuS]] ([[User talk:MTANeXuS|talk]]) 15:49, 14 May 2016 (UTC)&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=User:MTANeXuS&amp;diff=47515</id>
		<title>User:MTANeXuS</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=User:MTANeXuS&amp;diff=47515"/>
		<updated>2016-05-14T15:49:51Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tipp|Official Hungarian Translator for MTA Wiki}}&lt;br /&gt;
&lt;br /&gt;
==== Translations by NeXuS ==== &lt;br /&gt;
* [[HU/Scripting_Introduction]]&lt;br /&gt;
--[[User:MTANeXuS|MTANeXuS]] ([[User talk:MTANeXuS|talk]]) 15:49, 14 May 2016 (UTC)rip&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=User:MTANeXuS&amp;diff=47514</id>
		<title>User:MTANeXuS</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=User:MTANeXuS&amp;diff=47514"/>
		<updated>2016-05-14T15:49:19Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tipp|Official Hungarian Translator for MTA Wiki}}&lt;br /&gt;
&lt;br /&gt;
==== Translations by NeXuS ==== &lt;br /&gt;
* [[HU/Scripting_Introduction]]&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Bevezet%C3%A9s_a_scriptel%C3%A9sbe&amp;diff=47512</id>
		<title>HU/Bevezetés a scriptelésbe</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Bevezet%C3%A9s_a_scriptel%C3%A9sbe&amp;diff=47512"/>
		<updated>2016-05-14T15:45:51Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: /* Harmadik példa - Egy map */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A resourceok egy nagy része az MTAnak. A resource lényegében egy mappa vagy egy zip ami tartalmazza a fájlokat, plusz egy meta fájlt, ami leírja a szervernek, hogy a resource hogyan legyen betöltve, és milyen fájlokat tartalmaz. A resource részben hasonlít egy programhoz, ami az operációs rendszerünkön fut - lelehet állítani, ellehet indítani, és egyszerre több resource is futhat.&lt;br /&gt;
&lt;br /&gt;
Minden ami a scripteléssel foglalkozik, a resourcekben történik, amit a resource tesz határozza meg, hogy az egy játéktípus, egy map vagy bármi más. Az MTA tartalmaz scripteket, amiket opcionálisan fel is használhatsz, mint pl egy map korlátozás, ami által csak a játszható térben lehetünk vagy deathpickupok, amivel létrehozhatunk fegyver felvételi pontokat.&lt;br /&gt;
{{tipp|Az első lépés ahhoz, hogy elkezdj scriptelni, az az hogy használj egy LUA szerkesztőt. Ez megkönnyíti a scriptelést. Ajánlom a [http://www.sublimetext.com/ Sublime Text], a [http://notepad-plus.sourceforge.net/uk/site.htm Notepad++] vagy a [http://luaedit.sourceforge.net/ LuaEdit] programot. Van egy nem hivatalos [[MTASE|MTA Script Szerkesztő]] (fejlesztési státuszban, de nem tudok arról, hogy még fejlesztik) amit kipróbálhatsz.}}&lt;br /&gt;
== Egy működő script készítése ==&lt;br /&gt;
Lépésről-lépésre megfogunk tanulni egy olyan alap script elkészítését, ami lehetővé teszi, hogy a karakterünk a városban sétáljon.&lt;br /&gt;
=== Hol találjuk meg a scripteket? ===&lt;br /&gt;
Először is tekintsük meg a script fájlok szerkezetét. Menj az MTA szerver mappájába és kövesd a következő útvonalat:&lt;br /&gt;
&lt;br /&gt;
server/mods/deathmatch/resources/&lt;br /&gt;
&lt;br /&gt;
Itt találni fogsz egy csomó .zip fájlt, amik az általános tömörített scriptek, amit az MTA hordoz magával. Minden fájl egy &amp;quot;resource&amp;quot;, az összes kilesz csomagolva és ellesz indítva a szerver által, amikor az elindul. Ahhoz, hogy létrehozzuk a saját resourceunkat csak szimplán létre kell hoznunk egy mappát az általad preferált névvel. Mi most az &amp;quot;enszerverem&amp;quot; mappa nevet fogjuk használni az oktatáshoz.&lt;br /&gt;
Hozzuk létre ezt a mappát, majd menjünk bele.&lt;br /&gt;
&lt;br /&gt;
Most ebben a könyvtárban kell lenned:&lt;br /&gt;
&lt;br /&gt;
server/mods/deathmatch/resources/enszerverem&lt;br /&gt;
&lt;br /&gt;
=== A resourceok azonosítása ===&lt;br /&gt;
Ahhoz, hogy a szerver tudja, hogy mi van a resourceban, szükségünk lesz egy meta.xml fájlra a tartalmazott fájlokkal. Ennek a resource főkönyvtárában kell elhelyezkednie, ami az &amp;quot;enszerverem&amp;quot; az esetünkben. Szóval hozz létre egy szöveges dokumentumot, majd nevezd át &amp;quot;meta.xml&amp;quot;-re, és nyisd meg notepaddal.&lt;br /&gt;
&lt;br /&gt;
Írd be a következő kódot a meta.xml fájlba.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta&amp;gt;&lt;br /&gt;
      &amp;lt;info author=&amp;quot;A neved&amp;quot; type=&amp;quot;gamemode&amp;quot; name=&amp;quot;A szerverem&amp;quot; description=&amp;quot;Az első MTA szerverem&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;script src=&amp;quot;script.lua&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Az &amp;lt;info/&amp;gt; címkében láthatsz egy &amp;quot;type&amp;quot; mezőt ami eldönti, hogy ez a resource egy játéktípus, és nem egy map, vagy egy script, ami később lesz elmagyarázva. A játéktípus kell nekünk, hogy egy önálló szervert tudjunk létrehozni.&lt;br /&gt;
&lt;br /&gt;
A &amp;lt;script/&amp;gt; címke dönti el azokat a script fájlokat, amit a resource tartalmaz. Ezeket fogjunk elkészíteni következőnek.&lt;br /&gt;
&lt;br /&gt;
=== Egy egyszerű script létrehozása ===&lt;br /&gt;
Ne feledd, hogy a &amp;lt;script/&amp;gt; címkében a .lua nincs egy másik könyvtárban. Ez miatt ugyan ott fogjuk létrehozni, mint ahol a meta.xml-t. &lt;br /&gt;
Hozd létre, majd nyisd meg azt a fájlt. Most már betudod másolni a következő kódot a script.lua fájlodba.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local spawnX, spawnY, spawnZ = 1959,55, -1714,46, 10&lt;br /&gt;
function csatlakozasKezelo()&lt;br /&gt;
	spawnPlayer(source, spawnX, spawnY, spawnZ)&lt;br /&gt;
	fadeCamera(source, true)&lt;br /&gt;
	setCameraTarget(source, source)&lt;br /&gt;
	outputChatBox (&amp;quot;Üdvözöllek a szerveremen.&amp;quot;, source)&lt;br /&gt;
end&lt;br /&gt;
addEventHandler (&amp;quot;onPlayerJoin&amp;quot;, getRootElement (), csatlakozasKezelo)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Amikor csatlakozunk, a script lespawnol minket arra a koordinátára ( x, y, z ), amint az elején adtunk meg neki. Ne feledjük, hogy a ''fadeCamera'' funkció szükséges, vagy különben fekete lesz a képernyő. Szintúgy, a DP2 kiadása után be kell állítanunk a kamera célját (különben minden játékos a kék eget fogja látni.)&lt;br /&gt;
&lt;br /&gt;
A ''source'' változó jelenti, hogy ki hívta meg az eseményt. Mivel egy játékos csatlakozott, amikor a kódunk meglett hívva, ezért ezt a változót használjuk, ahhoz hogy megnézzük, hogy ki csatlakozott. Ez miatt nem fog mindenkit, vagy egy véletlenszerű játékost lespawnolni.&lt;br /&gt;
&lt;br /&gt;
Ha egy közelebbi pillantást vetünk az [[addEventHandler]]-re, akkor láthatunk 3 dolgot: &amp;quot;onPlayerJoin&amp;quot;, ami azt jelzi, hogy mikor legyen meghívva. getRootElement(), ami azt jelzi, hogy ki/mi által lehet meghívva. (A getRootElement() mindent/mindenkit jelent.) És joinHandler, ami azt jelzi, hogy melyik funckió legyen lefuttatva, az esemény meghívása után. Egyéb részletek hamarosan le lesznek írva egy másik példában, most indítsuk el a szerverünket, és próbáljuk ki!&lt;br /&gt;
&lt;br /&gt;
=== A script futtatása ===&lt;br /&gt;
Ahhoz, hogy a szervert elindítsuk, egyszerűen futtassuk az ''&amp;quot;MTA Server&amp;quot;'' fájlt a server/ mappában. Egy lista fog kijönni először, a szerver adataival; jegyezd meg a port számát, ami a kapcsolódáshoz lesz szükséges. Ezután a szerver betölti a resourceokat a server/mods/deathmatch/resources/ mappából, és ezután &amp;quot;kész a csatlakozásokra&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Mielőtt kapcsolódnál a szerverre, el kell indítani a játékmódunkat. Írd be a &amp;quot;start enszerverem&amp;quot;, parancsot, és nyomj entert. A szerver elindítja a játékmódot, amit létrehoztál, ettől a ponttól kezdve a hibákat és a figyelmeztetéseket is írni fogja. Most már elindíthatod az MTA klienst, majd a &amp;quot;Qyors Csatlakozás&amp;quot; gombbal csatlakozhatsz is az előbb látott IP-vel és porttal. Ha minden jól megy, pár másodperc múlva a karaktered megjelenik, és Los Santos utcáin járkál.&lt;br /&gt;
&lt;br /&gt;
Következőnek egy parancsot fogunk létrehozni, amivel képesek leszünk egy kocsit létrehozni a helyzetünkön. Lehet, hogy kiszeretnéd ezt hagyni, és a haladó scriptelést szeretnéd megismerni a [[Map Manager | Map Manager]] használatával, ami ezt az oktatást folytatja. Egy másik ág a [[Bevezetés a GUI scriptelésbe]], ami megmutatja hogy hogyan hozunk létre Grafikus Felhasználói Felületet MTAn belül.&lt;br /&gt;
&lt;br /&gt;
==Egy egyszerű parancs létrehozása==&lt;br /&gt;
Menjünk vissza a ''script.lua'' fájl tartalmához. Ahogy említettük feljebb, egy parancsot akarunk szolgáltatni, amivel egy kocsit lehet létrehozni a jelenlegi helyzeteden. Először, létre kell hoznunk egy funkciót, amit megakarunk hívni és egy parancskezelőt, ami létrehozza a parancsot, amit a játékos betud írni a konzolba.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- A funckió létrehozása, ezekkel az argumentumokkal: thePlayer, command, vehicleModel&lt;br /&gt;
function jarmuLetrehozasaJatekosnak(thePlayer, command, vehicleModel)&lt;br /&gt;
   -- A jármű létrehozása és még pár dolog&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- A parancskezelő létrehozása&lt;br /&gt;
addCommandHandler(&amp;quot;jarmuletrehozas&amp;quot;, jarmuLetrehozasaJatekosnak)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
''Megjegyzés: A funckió nevek megnyomhatóak a példákban, és a wikin elhelyezkedő funkció leírására dobnak.''&lt;br /&gt;
&lt;br /&gt;
====A parancskezelőkről====&lt;br /&gt;
Az első argumentuma az [[addCommandHandler]] funckiónak a parancs neve, amit a játékos betud majd írni, a második argumentuma amit ez megfog hívni, az esetünkben a ''jarmuLetrehozasaJatekosnak''.&lt;br /&gt;
&lt;br /&gt;
Ha már van némi tudásod a scriptelésben, akkor tudni fogod, hogy így hívjuk meg a funckiókat:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
funkcioNeve(argumentum1, argumentum2, argumentum3, ..)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
funkcioNeve(thePlayer, parancsNeve, argumentum3, ..)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Ha egy közelebbről megnézzük az alsó példát felettünk láthatjuk, hogy az argumentum1 a thePlayer és az argumentum2 a commandName. thePlayer simán az az egy, aki beírta a parancsot, szóval, akárminek nevezed el, ez a változó fogja tartalmazni a játékost, aki aktiválta a parancsot. A commandName simán a parancs, amit beírtak. Szóval ha beírták a &amp;quot;/üdvözlet&amp;quot;, parancsot akkor ez az argumentum  tartalmazza az &amp;quot;üdvözlet&amp;quot; szöveget. Az argumentum3 az plusz dolog, amit a játékos beírt. Erről egy kicsit később fogsz tanulni az oktatásban. Soha ne felejtsd el, hogy az első kettő argumentum standard, de akárminek elnevezheted.&lt;br /&gt;
&lt;br /&gt;
Mi már meghívtuk az [[addCommandHandler]] funckiót ilyen módon, és mióta a ''jarmuLetrehozasaJatekosnak'' is egy ilyen funckió, ezért ilyen módon meghívható ő is. De e helyett mi egy parancskezelőt használunk, ami hasonló módon hívja meg.&lt;br /&gt;
&lt;br /&gt;
Például: Valaki beírja a &amp;quot;jarmuletrehozas 468&amp;quot; parancsot a játék konzoljába, hogy lehívjon egy Sanchezt, a parancskezelő meghívja a  &amp;quot;jarmuLetrehozasaJatekosnak&amp;quot; funkciót, az olyan '''mintha''' ezt a sort raktuk volna a scriptbe:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
jarmuLetrehozasaJatekosnak(thePlayer,&amp;quot;jarmuletrehozas&amp;quot;,&amp;quot;468&amp;quot;) -- A thePlayer a játékos, aki beírta a parancsot&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Ahogy láthatjuk, ez pár paramétert szolgáltat: A játékost, aki beírta a parancsot, a parancsot, amit beírt és minden más szöveget, amit utána beírt, ebben a példában a &amp;quot;468&amp;quot; ami a Sanchez IDje a játékban. Az első kettő paraméter mindig ugyan az a parancskezelőknél, amit elolvashatsz az [[addEventHandler]] oldalnál. Ez miatt, mindig minimum kettő paramétert kell meghatározni, hogy akármi mást tudsz utána használni (például, ahhoz, hogy egy szöveget beolvassunk a parancs beírása után, a mi példánkban a jármű model IDje).&lt;br /&gt;
&lt;br /&gt;
''Megjegyzés: Minden esetben a funckió létrehozása UTÁN kell definiálni a parancskezelőt, különben nem fogja megtalálni. A meghívások sorrendje számít.''&lt;br /&gt;
&lt;br /&gt;
====A funckió megírása====&lt;br /&gt;
Ahhoz, hogy feltöltsük azt a funkciót, amit írtunk, először gondolkoznunk kell, hogy mit is akarunk csinálni:&lt;br /&gt;
* Lekérni a játékos pozícióját, hogy megtudjuk, hogy hova is rakjuk le a kocsit (azt akarjuk, hogy pontosan a játékosnál jelenjen meg).&lt;br /&gt;
* Számítsuk ki a pozíciót, ahova létrehozzuk a járművet (nem akarjuk, hogy a játékosban jelenjen meg).&lt;br /&gt;
* Hozzuk létre a járművet.&lt;br /&gt;
* Nézzük meg, hogy létre lett hova, vagy írjunk ki egy hibát.&lt;br /&gt;
&lt;br /&gt;
Ahhoz, hogy elérjük a célunkat, szükséges lesz pár funkcióra. Ahhoz, hogy megtaláljuk a funkciókat, amiket használnunk kell, látogassunk el a [[Scripting Functions|Szerver Scriptelési Funckiók]]hoz. Először is, le kell kérnünk a játékos pozícióját. Mivel a játékosok elementek, először az '''Element funkcióhoz''' lépünk, ahol megtaláljuk a [[getElementPosition]] funkciót. A funkció nevére kattintással a listában, eljutsz a funkció leírásához. Itt láthatjuk a szintaxist, mit ad vissza, és általában egy példát. A szintaxis mutatja meg, hogy milyen argumentumokat lehet, vagy kell beírnunk.&lt;br /&gt;
&lt;br /&gt;
A [[getElementPosition]] funkcióhoz szintaxis:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
float, float, float getElementPosition ( element azElement )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A három ''float'' a visszaadási érték típusa. Ebben az esetben a funkció három lebegőpontos szám. (x, y és z) A zárójelekben láthatod, hogy milyen argumentumokat kell beírnod. Ebben az esetben csak az elementet, akinek leakarod kérni a pozícióját, ami a játékos a példánkban.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function jarmuLetrehozasaJatekosnak(thePlayer, command, vehicleModel)&lt;br /&gt;
	-- Kérjük le a koordinátát és rakjuk be az x, y, z változókban&lt;br /&gt;
	-- (A local azt jelenti, hgy a változó csak a jelenlegi területben létezik, ebben az esetben a funckió)&lt;br /&gt;
	local x, y, z = getElementPosition(thePlayer)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Következőnek  to biztosítani akarjuk, hogy a jármű nem lesz létrehozva pontosan a játékosban szóval hozzáadunk pár egységet az ''x'' változóhoz, ami azt fogja eredményezni, hogy a játékostól keletre lesz létrehozva.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function jarmuLetrehozasaJatekosnak(thePlayer, command, vehicleModel)&lt;br /&gt;
	local x, y, z = getElementPosition(thePlayer) -- A játékos pozíciójának lekérése&lt;br /&gt;
	x = x + 5 -- 5 egység hozzáadása az &amp;quot;x&amp;quot; változóhoz&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Most kell egy másik funckió, ami lehívja a járművet. Mégegyszer megkeressük a [[Scripting Functions|Szerver Funkciók Listá]]jában, most - miután járművekről beszélünk - a '''Jármű funkciók''' résznél, ahol kifogjuk választani a [[createVehicle]] funkciót. Ennek a funkciónak a szintaxisában, csak egy visszaadási értékünk van (ami többször jellemző), egy kocsi element ami egy kocsira mutat, amit éppen létrehoztunk. Ugyanúgy látunk argumentumokat amik [ ] között vannak, ez azt jelenti, hogy nem kötelező.&lt;br /&gt;
&lt;br /&gt;
Minden argumentumunk megvan a [[createVehicle]]-hoz a funkicónban: A pozíciók ami kiszámoltunk ''x, y, z'' változó és a model ID amit a parancson keresztül szolgáltattunk (&amp;quot;jarmuletrehozas 468&amp;quot;) és eltudjuk érni a funkción belül, mint ''vehicleModel'' változó.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function jarmuLetrehozasaJatekosnak(thePlayer, command, vehicleModel)&lt;br /&gt;
	local x, y, z = getElementPosition(thePlayer) -- A játékos pozíciójának lekérése&lt;br /&gt;
	x = x + 5 -- 5 egység hozzáadása az &amp;quot;x&amp;quot; változóhoz&lt;br /&gt;
	-- Hozzuk létre a kocsit, és mentsük el a visszaadott értéket, mint a ''letrehozottJarmu'' változó.&lt;br /&gt;
	local letrehozottJarmu = createVehicle(tonumber(vehicleModel),x,y,z)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Persze ez a kód fejleszthető lenne nagyon sok módon, de legalább akarunk benne, egy ellenőrzést, hogy a kocsi sikeresen létre lett-e hozva, vagy sem. Ahogy olvashatjuk a [[createVehicle]] oldal alatt '''Returns'''-nél, a funckió visszaad egy ''false'' értéket, ha nem sikerült létrehozni a járművet. Ezért, ellenőrizzuk az értéket a ''letrehozottJarmu'' változónak.&lt;br /&gt;
&lt;br /&gt;
Most már megvan a teljes script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function jarmuLetrehozasaJatekosnak(thePlayer, command, vehicleModel)&lt;br /&gt;
	local x, y, z = getElementPosition(thePlayer) -- A játékos pozíciójának lekérése&lt;br /&gt;
	x = x + 5 -- 5 egység hozzáadása az &amp;quot;x&amp;quot; változóhoz&lt;br /&gt;
	-- Hozzuk létre a kocsit, és mentsük el a visszaadott értéket, mint a ''letrehozottJarmu'' változó.&lt;br /&gt;
	local letrehozottJarmu = createVehicle(tonumber(vehicleModel),x,y,z)&lt;br /&gt;
	-- Nézzük meg, hogy a visszaadási érték az ''false''&lt;br /&gt;
	if (letrehozottJarmu == false) then&lt;br /&gt;
		-- Ha igen, akkor írjunk ki egy üzenet, de csak ennek a játékosnak.&lt;br /&gt;
		outputChatBox(&amp;quot;Nem sikerült létrehozni a járművet.&amp;quot;,thePlayer)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
addCommandHandler(&amp;quot;jarmuletrehozas&amp;quot;, jarmuLetrehozasaJatekosnak)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahogy láthatod, megismertettük veled az [[outputChatBox]] funkciót is. Mostmár saját magadnak is képesnek kell lenned, hogy felfedezd a funkciók dokumentációs oldalát. Több haladó scriptért látogass el a [[Map manager|Map Manager]] oldalra.&lt;br /&gt;
&lt;br /&gt;
==Amit tudnod kell==&lt;br /&gt;
Már elolvastál pár dolgot a resourceokról, parancskezelőkről, és funkciók megtalálásáról a dokumentumokban az első paragrafusban, de még nagyon sok minden van, amit meg kell tanulnod. Ez a rész adni fog egy rövid bemutatót ezekről a dolgokról, miközben linkelgetek oldalakra, ha lehetséges.&lt;br /&gt;
===Kliens oldali és Szerver oldali scriptek===&lt;br /&gt;
Talán már találkoztál ezekkel, vagy hasonlókkal (Szerver/Kliens) valahol a wikin, legtöbbet a funkciókkal kapcsolatban. Az MTA nem csak a szerver oldalon futó scripteket támogatja, parancsokat szolgáltat ( mint amit feljebb írtunk ), vagy más funkciókat, hanem azokat a scripteket is, amik azon az MTA kliensen futnak, amit a játékosok a szerverekhez való csatlakozásra használnak. Ennek az az oka, hogy néhány funkciónak, amit az MTA szolgáltat, kliens oldalon kell lennie ( mint például a GUI - Grafikus Felhasználói Felület ), a többinek szerver oldalon kell lennie, mivel ott jobban működnek, vagy nem működnek kliens oldalon.&lt;br /&gt;
&lt;br /&gt;
A legtöbb script, amit készíteni fogsz (játéktípusok, mappok) valószínűleg szerver oldalon lesznek létrehozva, mint amit írtunk az első részben. Ha belefutsz valamibe, amit nem lehet megoldani szerveroldalon, valószínűleg kliens oldalon kell megoldanod. Egy kliens oldali scripthez, létre kell hozni egy sima script fájlt, ( például nevezzük el ''client.lua''-nak ) és jelezzük a meta.xml-ben így:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;client.lua&amp;quot; type=&amp;quot;client&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
A ''type'' tulajdonság alapból 'server', szóval csak akkor kell meghatározni, ha kliens oldali a script. Amikor ezt csinálot, a kliens oldali script le lesz töltve a játékos számítógépére amikor csatlakozik a szerverre. Többet olvass a [[Client side scripts|Kliens Oldali Scriptek]] oldalon.&lt;br /&gt;
&lt;br /&gt;
===Összetettebb scriptek===&lt;br /&gt;
Az előző rész tömören megmutatta nekünk, hogyan adjunk hozzá kliens oldali scripteket a resourcehoz, de van rá több másik mód is. Ahogy említettem az oldal tetején, a resource körülbelül minden lehet. Az a céljük az alapján van meghatározva, hogy mit csinálnak. Legyen egy elméleti resourceunk, a fájlokra nézve tartalmaz egy ''meta.xml''t.&lt;br /&gt;
====Első példa====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
/admin_commands&lt;br /&gt;
	/meta.xml&lt;br /&gt;
	/commands.lua&lt;br /&gt;
	/client.lua&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta&amp;gt;&lt;br /&gt;
	&amp;lt;info author=&amp;quot;Someguy&amp;quot; description=&amp;quot;Admin Parancsok&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;script src=&amp;quot;commands.lua&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;script src=&amp;quot;client.lua&amp;quot; type=&amp;quot;client&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* A ''commands.lua'' fájl szolgáltat pár admin parancsot, mint pl. játékos kitiltása, vagy némítása, vagy egyéb más, amivel a szervert moderálhatod.&lt;br /&gt;
* A ''client.lua'' fájl szolgáltatja a GUI-t amivel egyszerűbben tudod elvégezni az akciókat.&lt;br /&gt;
&lt;br /&gt;
Ez a példa talán mindig fut (esetleg még auto-indítva is van, amikor a szerver elindul) hiszen ez egy hasznos script az egész játéktapasztalat közben, és nem fogja zavarni a játékmenetet, hacsak egy admin nem dönt úgy, és tesz néhány akciót.&lt;br /&gt;
&lt;br /&gt;
====Második példa - Egy játékmód====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
/counterstrike&lt;br /&gt;
	/meta.xml&lt;br /&gt;
	/counterstrike.lua&lt;br /&gt;
	/buymenu.lua&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta&amp;gt;&lt;br /&gt;
	&amp;lt;info author=&amp;quot;Someguy&amp;quot; description=&amp;quot;Counter Strike [REMAKE]&amp;quot; type=&amp;quot;gamemode&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;script src=&amp;quot;counterstrike.lua&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;script src=&amp;quot;buymenu.lua&amp;quot; type=&amp;quot;client&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* A ''counterstrike.lua'' tartalmazza az ehhez hasonló funkciókat:&lt;br /&gt;
** Engedélyezze a játékosokat a csapatváltáshoz, és hozza létre őket.&lt;br /&gt;
** Fegyvereket, célpontokat és leírásokat szolgáltat.&lt;br /&gt;
** Meghatározza a játékszabályokat, pl. mikor ér véget egy kör, mi történik ha egy játékos meghal&lt;br /&gt;
** .. és talán még néhány dolog&lt;br /&gt;
* A ''buymenu.lua''  egy kliens oldali script, ez hozza létra a fegyvervásárlás menüt.&lt;br /&gt;
&lt;br /&gt;
Ezt a példát hívhatjuk egy játéktípusnak, hiszen nem csak a játékmenetbe avatkozik bele, de meghatározza a szabályait is. A ''type'' tulajdonság jelzi, hogy ez a példa a [[Map manager]]-rel működik, egy másik resource amit a QA Team írt, hogy kezelje a játéktípusait, és a map betöltést. Magasan ajánlott, hogy olyan technikákra alapozd a játékmódot, amit szolgáltat ez a resource.&lt;br /&gt;
&lt;br /&gt;
Ez azt is jelenti, hogy a játékmód nem fog futni egy map nélkül. A játékmódoknak annyira kell generikusnak lennie, amennyire csak lehet. Egy példa a mapra a következő példában található.&lt;br /&gt;
&lt;br /&gt;
====Harmadik példa - Egy map====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
/cs-airport&lt;br /&gt;
	/meta.xml&lt;br /&gt;
	/airport.map&lt;br /&gt;
	/airport.lua&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta&amp;gt;&lt;br /&gt;
	&amp;lt;info author=&amp;quot;Someguy&amp;quot; description=&amp;quot;Counter Strike Reptér Map&amp;quot; type=&amp;quot;map&amp;quot; gamemodes=&amp;quot;counterstrike&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;map src=&amp;quot;airport.map&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;script src=&amp;quot;airport.lua&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Az ''airport.map'' az XML fájlban szolgáltat információkat a mapról a játékmódnak, ami ezeket tartalmazhatja:&lt;br /&gt;
** A játékosok hogyan legyenek létrehozva, milyen fegyverrel, és melyik csapatban&lt;br /&gt;
** Mik a célpontok&lt;br /&gt;
** Időjárás, Idő, Időlimit&lt;br /&gt;
** Kocsikat szolgáltat&lt;br /&gt;
* Az ''airport.lua'' talán tartalmaz különleges funkciókat amik ezek lehetnek:&lt;br /&gt;
** Nyitható ajtók/robbanjon fel valami, amikor valami történik&lt;br /&gt;
** Hozzon létre, vagy mozgasson egyedi objekteket, vagy manipulálja azokat az objekteket, amik a .map fájl által lettek létrehozva&lt;br /&gt;
** .. Minden különleges, amit eltudsz képzelni&lt;br /&gt;
&lt;br /&gt;
Ahogy láthatod, a ''type'' tulajdonság megváltozott 'map'-ra, jelezve a [[Map manager]]-nek, hogy ez a resource egy map, míg a ''gamemodes'' tulajdonság megmondja, hogy melyik játéktípushoz érvényes a pálya, ebben az esetben a felette lévő példában lévő játékmód.&lt;br /&gt;
Ami talán meglepő, hogy egy script van a map resourceben. Persze ez nem kötelező egy mapban, de elég nagy szélességben megnyitja a lehetőségeket a map készítőknek, hogy létrehozhassák a saját világukat azokkal a szabályokkal, amivel létrehozták a játékmódot.&lt;br /&gt;
&lt;br /&gt;
Az ''airport.map'' fájl hasonlóan nézhet ki:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;map mode=&amp;quot;deathmatch&amp;quot; version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;terrorists&amp;gt;&lt;br /&gt;
		&amp;lt;spawnpoint posX=&amp;quot;2332.23&amp;quot; posY=&amp;quot;-12232.33&amp;quot; posZ=&amp;quot;4.42223&amp;quot; skins=&amp;quot;23-40&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/terrorists&amp;gt;&lt;br /&gt;
	&amp;lt;counterterrorists&amp;gt;&lt;br /&gt;
		&amp;lt;spawnpoint posX=&amp;quot;2334.23443&amp;quot; posY=&amp;quot;-12300.233&amp;quot; posZ=&amp;quot;10.2344&amp;quot; skins=&amp;quot;40-50&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/counterterrorists&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;bomb posX=&amp;quot;23342.23&amp;quot; posY=&amp;quot;&amp;quot; posZ=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;vehicle posX=&amp;quot;&amp;quot; posY=&amp;quot;&amp;quot; posZ=&amp;quot;&amp;quot; model=&amp;quot;602&amp;quot; /&amp;gt;	&lt;br /&gt;
	&amp;lt;vehicle posX=&amp;quot;&amp;quot; posY=&amp;quot;&amp;quot; posZ=&amp;quot;&amp;quot; model=&amp;quot;603&amp;quot; /&amp;gt;	&lt;br /&gt;
&amp;lt;/map&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ha egy játékmód egy mappal indul, a map automatikusan ellesz indítva a mapmanager által, és az információkat, amiket tárol, beolvashatóvá válnak a játéktípus resource által. Amikor egy map váltás van, az éppen futó map resource leáll, és a következő map resource elindul. Több mélyreható magyarázatért és példákért, hogy hogyan vannak felhasználva a map resourceok a fő scriptben, kérlek látogass el a [[Writing Gamemodes|Játékmód készítése]] oldalra.&lt;br /&gt;
&lt;br /&gt;
===Események===&lt;br /&gt;
Az [[Event|Események]] a módja, ahogy az MTA közli, hogy valami történt. Például, ha egy játékos meghal, az [[onPlayerWasted]] esemény lesz meghívva. Ahhoz, hogy valamit tudj tenni, amikor egy játékos meghal, fel kell készítened magad, hogy olyasmi, mint egy parancskezelő létrehozása, ahogy az  [[#Egy_m.C5.B1k.C3.B6d.C5.91_script_k.C3.A9sz.C3.ADt.C3.A9s|első fejezet]]ben leírtam.&lt;br /&gt;
&lt;br /&gt;
Ez a példa kifog írni egy üzenet, a játékos nevével, aki meghalt.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function jatekosMeghalt(osszesTolteny, gyilkos, gyilkosFegyver, testresz)&lt;br /&gt;
	outputChatBox(getPlayerName(source)..&amp;quot; meghalt!&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
addEventHandler(&amp;quot;onPlayerWasted&amp;quot;,getRootElement(),jatekosMeghalt)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahelyett, hogy megmutatnám, milyen argumentumok szükségesek, az Események dokumentum oldala megmutatja, hogy milyen paramétereket kell megadni a függvénynek, éppen ugyan úgy, ahogy a [[##A_parancskezel.C5.91kr.C5.91l|parancskezelők]]nél is csak itt különbözik az eseményeknél. Egy másik fontos pont, a ''source'' változó, ami létezik a függvényeknél. Ennek nem kell szerepelni a paraméterlistában a funkciónál, de mégis létezik. Minden eseménynél más-más értéket vesz, játékos eseménynél (ahogy a példában) a játékos element. Egy másik példáért nézd meg az [[#Egy_egyszer.C5.B1_script_l.C3.A9trehoz.C3.A1sa|első részben]] létrehozott alap spawn scriptet, hogy hogyan is használjuk a ''source'' változót.&lt;br /&gt;
&lt;br /&gt;
==Innen hova tovább==&lt;br /&gt;
Most már egy kicsit ismered az alap helyzetet az MTA scripteléssel és egy a kicsit dokumentációkkal kapcsolatban. A [[Main Page|Főoldal]] több linkel szolgáltat még több információért, oktatásért, és referenciákért amivel mélyebb betekintést nyerhetsz azokban a témákban amire vágysz.&lt;br /&gt;
{{note|Innentől ajánlom a [[debugging|hibakeresés]] oktatást. A jó hibakeresési tudás feltétlen szükséges, amikor scripteket készítesz. Továbbá javaslom, hogy használd, az [[predefined variables list|előre meghatározott változók listá]]ját, hogy segítse, megkönnyítse, és gyorsabbá tegye a scriptelést.}}&lt;br /&gt;
'''Lásd még:'''&lt;br /&gt;
* [[OOP_Introduction|OOP Scriptelés Oktatás]]&lt;br /&gt;
* [[Advanced Topics|Haladó Témák]]&lt;br /&gt;
* [[Script_security|Script Védelem]]&lt;br /&gt;
* [[Scripting Introduction|Angol Verzió]]&lt;br /&gt;
[[es:Introducción a la Programación]]&lt;br /&gt;
[[it:Introduzione allo scripting]]&lt;br /&gt;
[[nl:Scripting_introductie]]&lt;br /&gt;
[[pt-br:Introdução ao Scripting]]&lt;br /&gt;
[[ru:Scripting Introduction]]&lt;br /&gt;
[[ar:مقدمه_في_البرمجه]]&lt;br /&gt;
[[zh-cn:脚本编写介绍]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Translated/Support]]&lt;br /&gt;
&lt;br /&gt;
==Fordította==&lt;br /&gt;
* NeXuS&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Bevezet%C3%A9s_a_scriptel%C3%A9sbe&amp;diff=47511</id>
		<title>HU/Bevezetés a scriptelésbe</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Bevezet%C3%A9s_a_scriptel%C3%A9sbe&amp;diff=47511"/>
		<updated>2016-05-14T15:43:50Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A resourceok egy nagy része az MTAnak. A resource lényegében egy mappa vagy egy zip ami tartalmazza a fájlokat, plusz egy meta fájlt, ami leírja a szervernek, hogy a resource hogyan legyen betöltve, és milyen fájlokat tartalmaz. A resource részben hasonlít egy programhoz, ami az operációs rendszerünkön fut - lelehet állítani, ellehet indítani, és egyszerre több resource is futhat.&lt;br /&gt;
&lt;br /&gt;
Minden ami a scripteléssel foglalkozik, a resourcekben történik, amit a resource tesz határozza meg, hogy az egy játéktípus, egy map vagy bármi más. Az MTA tartalmaz scripteket, amiket opcionálisan fel is használhatsz, mint pl egy map korlátozás, ami által csak a játszható térben lehetünk vagy deathpickupok, amivel létrehozhatunk fegyver felvételi pontokat.&lt;br /&gt;
{{tipp|Az első lépés ahhoz, hogy elkezdj scriptelni, az az hogy használj egy LUA szerkesztőt. Ez megkönnyíti a scriptelést. Ajánlom a [http://www.sublimetext.com/ Sublime Text], a [http://notepad-plus.sourceforge.net/uk/site.htm Notepad++] vagy a [http://luaedit.sourceforge.net/ LuaEdit] programot. Van egy nem hivatalos [[MTASE|MTA Script Szerkesztő]] (fejlesztési státuszban, de nem tudok arról, hogy még fejlesztik) amit kipróbálhatsz.}}&lt;br /&gt;
== Egy működő script készítése ==&lt;br /&gt;
Lépésről-lépésre megfogunk tanulni egy olyan alap script elkészítését, ami lehetővé teszi, hogy a karakterünk a városban sétáljon.&lt;br /&gt;
=== Hol találjuk meg a scripteket? ===&lt;br /&gt;
Először is tekintsük meg a script fájlok szerkezetét. Menj az MTA szerver mappájába és kövesd a következő útvonalat:&lt;br /&gt;
&lt;br /&gt;
server/mods/deathmatch/resources/&lt;br /&gt;
&lt;br /&gt;
Itt találni fogsz egy csomó .zip fájlt, amik az általános tömörített scriptek, amit az MTA hordoz magával. Minden fájl egy &amp;quot;resource&amp;quot;, az összes kilesz csomagolva és ellesz indítva a szerver által, amikor az elindul. Ahhoz, hogy létrehozzuk a saját resourceunkat csak szimplán létre kell hoznunk egy mappát az általad preferált névvel. Mi most az &amp;quot;enszerverem&amp;quot; mappa nevet fogjuk használni az oktatáshoz.&lt;br /&gt;
Hozzuk létre ezt a mappát, majd menjünk bele.&lt;br /&gt;
&lt;br /&gt;
Most ebben a könyvtárban kell lenned:&lt;br /&gt;
&lt;br /&gt;
server/mods/deathmatch/resources/enszerverem&lt;br /&gt;
&lt;br /&gt;
=== A resourceok azonosítása ===&lt;br /&gt;
Ahhoz, hogy a szerver tudja, hogy mi van a resourceban, szükségünk lesz egy meta.xml fájlra a tartalmazott fájlokkal. Ennek a resource főkönyvtárában kell elhelyezkednie, ami az &amp;quot;enszerverem&amp;quot; az esetünkben. Szóval hozz létre egy szöveges dokumentumot, majd nevezd át &amp;quot;meta.xml&amp;quot;-re, és nyisd meg notepaddal.&lt;br /&gt;
&lt;br /&gt;
Írd be a következő kódot a meta.xml fájlba.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta&amp;gt;&lt;br /&gt;
      &amp;lt;info author=&amp;quot;A neved&amp;quot; type=&amp;quot;gamemode&amp;quot; name=&amp;quot;A szerverem&amp;quot; description=&amp;quot;Az első MTA szerverem&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;script src=&amp;quot;script.lua&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Az &amp;lt;info/&amp;gt; címkében láthatsz egy &amp;quot;type&amp;quot; mezőt ami eldönti, hogy ez a resource egy játéktípus, és nem egy map, vagy egy script, ami később lesz elmagyarázva. A játéktípus kell nekünk, hogy egy önálló szervert tudjunk létrehozni.&lt;br /&gt;
&lt;br /&gt;
A &amp;lt;script/&amp;gt; címke dönti el azokat a script fájlokat, amit a resource tartalmaz. Ezeket fogjunk elkészíteni következőnek.&lt;br /&gt;
&lt;br /&gt;
=== Egy egyszerű script létrehozása ===&lt;br /&gt;
Ne feledd, hogy a &amp;lt;script/&amp;gt; címkében a .lua nincs egy másik könyvtárban. Ez miatt ugyan ott fogjuk létrehozni, mint ahol a meta.xml-t. &lt;br /&gt;
Hozd létre, majd nyisd meg azt a fájlt. Most már betudod másolni a következő kódot a script.lua fájlodba.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local spawnX, spawnY, spawnZ = 1959,55, -1714,46, 10&lt;br /&gt;
function csatlakozasKezelo()&lt;br /&gt;
	spawnPlayer(source, spawnX, spawnY, spawnZ)&lt;br /&gt;
	fadeCamera(source, true)&lt;br /&gt;
	setCameraTarget(source, source)&lt;br /&gt;
	outputChatBox (&amp;quot;Üdvözöllek a szerveremen.&amp;quot;, source)&lt;br /&gt;
end&lt;br /&gt;
addEventHandler (&amp;quot;onPlayerJoin&amp;quot;, getRootElement (), csatlakozasKezelo)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Amikor csatlakozunk, a script lespawnol minket arra a koordinátára ( x, y, z ), amint az elején adtunk meg neki. Ne feledjük, hogy a ''fadeCamera'' funkció szükséges, vagy különben fekete lesz a képernyő. Szintúgy, a DP2 kiadása után be kell állítanunk a kamera célját (különben minden játékos a kék eget fogja látni.)&lt;br /&gt;
&lt;br /&gt;
A ''source'' változó jelenti, hogy ki hívta meg az eseményt. Mivel egy játékos csatlakozott, amikor a kódunk meglett hívva, ezért ezt a változót használjuk, ahhoz hogy megnézzük, hogy ki csatlakozott. Ez miatt nem fog mindenkit, vagy egy véletlenszerű játékost lespawnolni.&lt;br /&gt;
&lt;br /&gt;
Ha egy közelebbi pillantást vetünk az [[addEventHandler]]-re, akkor láthatunk 3 dolgot: &amp;quot;onPlayerJoin&amp;quot;, ami azt jelzi, hogy mikor legyen meghívva. getRootElement(), ami azt jelzi, hogy ki/mi által lehet meghívva. (A getRootElement() mindent/mindenkit jelent.) És joinHandler, ami azt jelzi, hogy melyik funckió legyen lefuttatva, az esemény meghívása után. Egyéb részletek hamarosan le lesznek írva egy másik példában, most indítsuk el a szerverünket, és próbáljuk ki!&lt;br /&gt;
&lt;br /&gt;
=== A script futtatása ===&lt;br /&gt;
Ahhoz, hogy a szervert elindítsuk, egyszerűen futtassuk az ''&amp;quot;MTA Server&amp;quot;'' fájlt a server/ mappában. Egy lista fog kijönni először, a szerver adataival; jegyezd meg a port számát, ami a kapcsolódáshoz lesz szükséges. Ezután a szerver betölti a resourceokat a server/mods/deathmatch/resources/ mappából, és ezután &amp;quot;kész a csatlakozásokra&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Mielőtt kapcsolódnál a szerverre, el kell indítani a játékmódunkat. Írd be a &amp;quot;start enszerverem&amp;quot;, parancsot, és nyomj entert. A szerver elindítja a játékmódot, amit létrehoztál, ettől a ponttól kezdve a hibákat és a figyelmeztetéseket is írni fogja. Most már elindíthatod az MTA klienst, majd a &amp;quot;Qyors Csatlakozás&amp;quot; gombbal csatlakozhatsz is az előbb látott IP-vel és porttal. Ha minden jól megy, pár másodperc múlva a karaktered megjelenik, és Los Santos utcáin járkál.&lt;br /&gt;
&lt;br /&gt;
Következőnek egy parancsot fogunk létrehozni, amivel képesek leszünk egy kocsit létrehozni a helyzetünkön. Lehet, hogy kiszeretnéd ezt hagyni, és a haladó scriptelést szeretnéd megismerni a [[Map Manager | Map Manager]] használatával, ami ezt az oktatást folytatja. Egy másik ág a [[Bevezetés a GUI scriptelésbe]], ami megmutatja hogy hogyan hozunk létre Grafikus Felhasználói Felületet MTAn belül.&lt;br /&gt;
&lt;br /&gt;
==Egy egyszerű parancs létrehozása==&lt;br /&gt;
Menjünk vissza a ''script.lua'' fájl tartalmához. Ahogy említettük feljebb, egy parancsot akarunk szolgáltatni, amivel egy kocsit lehet létrehozni a jelenlegi helyzeteden. Először, létre kell hoznunk egy funkciót, amit megakarunk hívni és egy parancskezelőt, ami létrehozza a parancsot, amit a játékos betud írni a konzolba.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- A funckió létrehozása, ezekkel az argumentumokkal: thePlayer, command, vehicleModel&lt;br /&gt;
function jarmuLetrehozasaJatekosnak(thePlayer, command, vehicleModel)&lt;br /&gt;
   -- A jármű létrehozása és még pár dolog&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- A parancskezelő létrehozása&lt;br /&gt;
addCommandHandler(&amp;quot;jarmuletrehozas&amp;quot;, jarmuLetrehozasaJatekosnak)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
''Megjegyzés: A funckió nevek megnyomhatóak a példákban, és a wikin elhelyezkedő funkció leírására dobnak.''&lt;br /&gt;
&lt;br /&gt;
====A parancskezelőkről====&lt;br /&gt;
Az első argumentuma az [[addCommandHandler]] funckiónak a parancs neve, amit a játékos betud majd írni, a második argumentuma amit ez megfog hívni, az esetünkben a ''jarmuLetrehozasaJatekosnak''.&lt;br /&gt;
&lt;br /&gt;
Ha már van némi tudásod a scriptelésben, akkor tudni fogod, hogy így hívjuk meg a funckiókat:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
funkcioNeve(argumentum1, argumentum2, argumentum3, ..)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
funkcioNeve(thePlayer, parancsNeve, argumentum3, ..)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Ha egy közelebbről megnézzük az alsó példát felettünk láthatjuk, hogy az argumentum1 a thePlayer és az argumentum2 a commandName. thePlayer simán az az egy, aki beírta a parancsot, szóval, akárminek nevezed el, ez a változó fogja tartalmazni a játékost, aki aktiválta a parancsot. A commandName simán a parancs, amit beírtak. Szóval ha beírták a &amp;quot;/üdvözlet&amp;quot;, parancsot akkor ez az argumentum  tartalmazza az &amp;quot;üdvözlet&amp;quot; szöveget. Az argumentum3 az plusz dolog, amit a játékos beírt. Erről egy kicsit később fogsz tanulni az oktatásban. Soha ne felejtsd el, hogy az első kettő argumentum standard, de akárminek elnevezheted.&lt;br /&gt;
&lt;br /&gt;
Mi már meghívtuk az [[addCommandHandler]] funckiót ilyen módon, és mióta a ''jarmuLetrehozasaJatekosnak'' is egy ilyen funckió, ezért ilyen módon meghívható ő is. De e helyett mi egy parancskezelőt használunk, ami hasonló módon hívja meg.&lt;br /&gt;
&lt;br /&gt;
Például: Valaki beírja a &amp;quot;jarmuletrehozas 468&amp;quot; parancsot a játék konzoljába, hogy lehívjon egy Sanchezt, a parancskezelő meghívja a  &amp;quot;jarmuLetrehozasaJatekosnak&amp;quot; funkciót, az olyan '''mintha''' ezt a sort raktuk volna a scriptbe:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
jarmuLetrehozasaJatekosnak(thePlayer,&amp;quot;jarmuletrehozas&amp;quot;,&amp;quot;468&amp;quot;) -- A thePlayer a játékos, aki beírta a parancsot&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Ahogy láthatjuk, ez pár paramétert szolgáltat: A játékost, aki beírta a parancsot, a parancsot, amit beírt és minden más szöveget, amit utána beírt, ebben a példában a &amp;quot;468&amp;quot; ami a Sanchez IDje a játékban. Az első kettő paraméter mindig ugyan az a parancskezelőknél, amit elolvashatsz az [[addEventHandler]] oldalnál. Ez miatt, mindig minimum kettő paramétert kell meghatározni, hogy akármi mást tudsz utána használni (például, ahhoz, hogy egy szöveget beolvassunk a parancs beírása után, a mi példánkban a jármű model IDje).&lt;br /&gt;
&lt;br /&gt;
''Megjegyzés: Minden esetben a funckió létrehozása UTÁN kell definiálni a parancskezelőt, különben nem fogja megtalálni. A meghívások sorrendje számít.''&lt;br /&gt;
&lt;br /&gt;
====A funckió megírása====&lt;br /&gt;
Ahhoz, hogy feltöltsük azt a funkciót, amit írtunk, először gondolkoznunk kell, hogy mit is akarunk csinálni:&lt;br /&gt;
* Lekérni a játékos pozícióját, hogy megtudjuk, hogy hova is rakjuk le a kocsit (azt akarjuk, hogy pontosan a játékosnál jelenjen meg).&lt;br /&gt;
* Számítsuk ki a pozíciót, ahova létrehozzuk a járművet (nem akarjuk, hogy a játékosban jelenjen meg).&lt;br /&gt;
* Hozzuk létre a járművet.&lt;br /&gt;
* Nézzük meg, hogy létre lett hova, vagy írjunk ki egy hibát.&lt;br /&gt;
&lt;br /&gt;
Ahhoz, hogy elérjük a célunkat, szükséges lesz pár funkcióra. Ahhoz, hogy megtaláljuk a funkciókat, amiket használnunk kell, látogassunk el a [[Scripting Functions|Szerver Scriptelési Funckiók]]hoz. Először is, le kell kérnünk a játékos pozícióját. Mivel a játékosok elementek, először az '''Element funkcióhoz''' lépünk, ahol megtaláljuk a [[getElementPosition]] funkciót. A funkció nevére kattintással a listában, eljutsz a funkció leírásához. Itt láthatjuk a szintaxist, mit ad vissza, és általában egy példát. A szintaxis mutatja meg, hogy milyen argumentumokat lehet, vagy kell beírnunk.&lt;br /&gt;
&lt;br /&gt;
A [[getElementPosition]] funkcióhoz szintaxis:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
float, float, float getElementPosition ( element azElement )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A három ''float'' a visszaadási érték típusa. Ebben az esetben a funkció három lebegőpontos szám. (x, y és z) A zárójelekben láthatod, hogy milyen argumentumokat kell beírnod. Ebben az esetben csak az elementet, akinek leakarod kérni a pozícióját, ami a játékos a példánkban.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function jarmuLetrehozasaJatekosnak(thePlayer, command, vehicleModel)&lt;br /&gt;
	-- Kérjük le a koordinátát és rakjuk be az x, y, z változókban&lt;br /&gt;
	-- (A local azt jelenti, hgy a változó csak a jelenlegi területben létezik, ebben az esetben a funckió)&lt;br /&gt;
	local x, y, z = getElementPosition(thePlayer)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Következőnek  to biztosítani akarjuk, hogy a jármű nem lesz létrehozva pontosan a játékosban szóval hozzáadunk pár egységet az ''x'' változóhoz, ami azt fogja eredményezni, hogy a játékostól keletre lesz létrehozva.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function jarmuLetrehozasaJatekosnak(thePlayer, command, vehicleModel)&lt;br /&gt;
	local x, y, z = getElementPosition(thePlayer) -- A játékos pozíciójának lekérése&lt;br /&gt;
	x = x + 5 -- 5 egység hozzáadása az &amp;quot;x&amp;quot; változóhoz&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Most kell egy másik funckió, ami lehívja a járművet. Mégegyszer megkeressük a [[Scripting Functions|Szerver Funkciók Listá]]jában, most - miután járművekről beszélünk - a '''Jármű funkciók''' résznél, ahol kifogjuk választani a [[createVehicle]] funkciót. Ennek a funkciónak a szintaxisában, csak egy visszaadási értékünk van (ami többször jellemző), egy kocsi element ami egy kocsira mutat, amit éppen létrehoztunk. Ugyanúgy látunk argumentumokat amik [ ] között vannak, ez azt jelenti, hogy nem kötelező.&lt;br /&gt;
&lt;br /&gt;
Minden argumentumunk megvan a [[createVehicle]]-hoz a funkicónban: A pozíciók ami kiszámoltunk ''x, y, z'' változó és a model ID amit a parancson keresztül szolgáltattunk (&amp;quot;jarmuletrehozas 468&amp;quot;) és eltudjuk érni a funkción belül, mint ''vehicleModel'' változó.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function jarmuLetrehozasaJatekosnak(thePlayer, command, vehicleModel)&lt;br /&gt;
	local x, y, z = getElementPosition(thePlayer) -- A játékos pozíciójának lekérése&lt;br /&gt;
	x = x + 5 -- 5 egység hozzáadása az &amp;quot;x&amp;quot; változóhoz&lt;br /&gt;
	-- Hozzuk létre a kocsit, és mentsük el a visszaadott értéket, mint a ''letrehozottJarmu'' változó.&lt;br /&gt;
	local letrehozottJarmu = createVehicle(tonumber(vehicleModel),x,y,z)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Persze ez a kód fejleszthető lenne nagyon sok módon, de legalább akarunk benne, egy ellenőrzést, hogy a kocsi sikeresen létre lett-e hozva, vagy sem. Ahogy olvashatjuk a [[createVehicle]] oldal alatt '''Returns'''-nél, a funckió visszaad egy ''false'' értéket, ha nem sikerült létrehozni a járművet. Ezért, ellenőrizzuk az értéket a ''letrehozottJarmu'' változónak.&lt;br /&gt;
&lt;br /&gt;
Most már megvan a teljes script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function jarmuLetrehozasaJatekosnak(thePlayer, command, vehicleModel)&lt;br /&gt;
	local x, y, z = getElementPosition(thePlayer) -- A játékos pozíciójának lekérése&lt;br /&gt;
	x = x + 5 -- 5 egység hozzáadása az &amp;quot;x&amp;quot; változóhoz&lt;br /&gt;
	-- Hozzuk létre a kocsit, és mentsük el a visszaadott értéket, mint a ''letrehozottJarmu'' változó.&lt;br /&gt;
	local letrehozottJarmu = createVehicle(tonumber(vehicleModel),x,y,z)&lt;br /&gt;
	-- Nézzük meg, hogy a visszaadási érték az ''false''&lt;br /&gt;
	if (letrehozottJarmu == false) then&lt;br /&gt;
		-- Ha igen, akkor írjunk ki egy üzenet, de csak ennek a játékosnak.&lt;br /&gt;
		outputChatBox(&amp;quot;Nem sikerült létrehozni a járművet.&amp;quot;,thePlayer)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
addCommandHandler(&amp;quot;jarmuletrehozas&amp;quot;, jarmuLetrehozasaJatekosnak)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahogy láthatod, megismertettük veled az [[outputChatBox]] funkciót is. Mostmár saját magadnak is képesnek kell lenned, hogy felfedezd a funkciók dokumentációs oldalát. Több haladó scriptért látogass el a [[Map manager|Map Manager]] oldalra.&lt;br /&gt;
&lt;br /&gt;
==Amit tudnod kell==&lt;br /&gt;
Már elolvastál pár dolgot a resourceokról, parancskezelőkről, és funkciók megtalálásáról a dokumentumokban az első paragrafusban, de még nagyon sok minden van, amit meg kell tanulnod. Ez a rész adni fog egy rövid bemutatót ezekről a dolgokról, miközben linkelgetek oldalakra, ha lehetséges.&lt;br /&gt;
===Kliens oldali és Szerver oldali scriptek===&lt;br /&gt;
Talán már találkoztál ezekkel, vagy hasonlókkal (Szerver/Kliens) valahol a wikin, legtöbbet a funkciókkal kapcsolatban. Az MTA nem csak a szerver oldalon futó scripteket támogatja, parancsokat szolgáltat ( mint amit feljebb írtunk ), vagy más funkciókat, hanem azokat a scripteket is, amik azon az MTA kliensen futnak, amit a játékosok a szerverekhez való csatlakozásra használnak. Ennek az az oka, hogy néhány funkciónak, amit az MTA szolgáltat, kliens oldalon kell lennie ( mint például a GUI - Grafikus Felhasználói Felület ), a többinek szerver oldalon kell lennie, mivel ott jobban működnek, vagy nem működnek kliens oldalon.&lt;br /&gt;
&lt;br /&gt;
A legtöbb script, amit készíteni fogsz (játéktípusok, mappok) valószínűleg szerver oldalon lesznek létrehozva, mint amit írtunk az első részben. Ha belefutsz valamibe, amit nem lehet megoldani szerveroldalon, valószínűleg kliens oldalon kell megoldanod. Egy kliens oldali scripthez, létre kell hozni egy sima script fájlt, ( például nevezzük el ''client.lua''-nak ) és jelezzük a meta.xml-ben így:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;client.lua&amp;quot; type=&amp;quot;client&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
A ''type'' tulajdonság alapból 'server', szóval csak akkor kell meghatározni, ha kliens oldali a script. Amikor ezt csinálot, a kliens oldali script le lesz töltve a játékos számítógépére amikor csatlakozik a szerverre. Többet olvass a [[Client side scripts|Kliens Oldali Scriptek]] oldalon.&lt;br /&gt;
&lt;br /&gt;
===Összetettebb scriptek===&lt;br /&gt;
Az előző rész tömören megmutatta nekünk, hogyan adjunk hozzá kliens oldali scripteket a resourcehoz, de van rá több másik mód is. Ahogy említettem az oldal tetején, a resource körülbelül minden lehet. Az a céljük az alapján van meghatározva, hogy mit csinálnak. Legyen egy elméleti resourceunk, a fájlokra nézve tartalmaz egy ''meta.xml''t.&lt;br /&gt;
====Első példa====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
/admin_commands&lt;br /&gt;
	/meta.xml&lt;br /&gt;
	/commands.lua&lt;br /&gt;
	/client.lua&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta&amp;gt;&lt;br /&gt;
	&amp;lt;info author=&amp;quot;Someguy&amp;quot; description=&amp;quot;Admin Parancsok&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;script src=&amp;quot;commands.lua&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;script src=&amp;quot;client.lua&amp;quot; type=&amp;quot;client&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* A ''commands.lua'' fájl szolgáltat pár admin parancsot, mint pl. játékos kitiltása, vagy némítása, vagy egyéb más, amivel a szervert moderálhatod.&lt;br /&gt;
* A ''client.lua'' fájl szolgáltatja a GUI-t amivel egyszerűbben tudod elvégezni az akciókat.&lt;br /&gt;
&lt;br /&gt;
Ez a példa talán mindig fut (esetleg még auto-indítva is van, amikor a szerver elindul) hiszen ez egy hasznos script az egész játéktapasztalat közben, és nem fogja zavarni a játékmenetet, hacsak egy admin nem dönt úgy, és tesz néhány akciót.&lt;br /&gt;
&lt;br /&gt;
====Második példa - Egy játékmód====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
/counterstrike&lt;br /&gt;
	/meta.xml&lt;br /&gt;
	/counterstrike.lua&lt;br /&gt;
	/buymenu.lua&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta&amp;gt;&lt;br /&gt;
	&amp;lt;info author=&amp;quot;Someguy&amp;quot; description=&amp;quot;Counter Strike [REMAKE]&amp;quot; type=&amp;quot;gamemode&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;script src=&amp;quot;counterstrike.lua&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;script src=&amp;quot;buymenu.lua&amp;quot; type=&amp;quot;client&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* A ''counterstrike.lua'' tartalmazza az ehhez hasonló funkciókat:&lt;br /&gt;
** Engedélyezze a játékosokat a csapatváltáshoz, és hozza létre őket.&lt;br /&gt;
** Fegyvereket, célpontokat és leírásokat szolgáltat.&lt;br /&gt;
** Meghatározza a játékszabályokat, pl. mikor ér véget egy kör, mi történik ha egy játékos meghal&lt;br /&gt;
** .. és talán még néhány dolog&lt;br /&gt;
* A ''buymenu.lua''  egy kliens oldali script, ez hozza létra a fegyvervásárlás menüt.&lt;br /&gt;
&lt;br /&gt;
Ezt a példát hívhatjuk egy játéktípusnak, hiszen nem csak a játékmenetbe avatkozik bele, de meghatározza a szabályait is. A ''type'' tulajdonság jelzi, hogy ez a példa a [[Map manager]]-rel működik, egy másik resource amit a QA Team írt, hogy kezelje a játéktípusait, és a map betöltést. Magasan ajánlott, hogy olyan technikákra alapozd a játékmódot, amit szolgáltat ez a resource.&lt;br /&gt;
&lt;br /&gt;
Ez azt is jelenti, hogy a játékmód nem fog futni egy map nélkül. A játékmódoknak annyira kell generikusnak lennie, amennyire csak lehet. Egy példa a mapra a következő példában található.&lt;br /&gt;
&lt;br /&gt;
====Harmadik példa - Egy map====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
/cs-airport&lt;br /&gt;
	/meta.xml&lt;br /&gt;
	/airport.map&lt;br /&gt;
	/airport.lua&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta&amp;gt;&lt;br /&gt;
	&amp;lt;info author=&amp;quot;Someguy&amp;quot; description=&amp;quot;Counter Strike Reptér Map&amp;quot; type=&amp;quot;map&amp;quot; gamemodes=&amp;quot;counterstrike&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;map src=&amp;quot;airport.map&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;script src=&amp;quot;airport.lua&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Az ''airport.map'' az XML fájlban szolgáltat információkat a mapról a játékmódnak, ami ezeket tartalmazhatja:&lt;br /&gt;
** A játékosok hogy legyen létrehozva, milyen fegyverrel, és melyik csapatban&lt;br /&gt;
** Mik a célpontok&lt;br /&gt;
** Időjárás, Idő, Időlimit&lt;br /&gt;
** Kocsikat szolgáltat&lt;br /&gt;
* Az ''airport.lua'' talán tartalmaz különleges funkciókat amik ezek lehetnek:&lt;br /&gt;
** Nyitható ajtók/robbanjon fel valami, amikor valami történik&lt;br /&gt;
** Hozzon létre, vagy mozgasson egyedi objekteket, vagy manipulálja azokat az objekteket, amik a .map fájl által lettek létrehozva&lt;br /&gt;
** .. Minden különleges, amit eltudsz képzelni&lt;br /&gt;
&lt;br /&gt;
Ahogy láthatod, a ''type'' tulajdonság megváltozott 'map'-ra, jelezve a [[Map manager]]-nek, hogy ez a resource egy map, míg a ''gamemodes'' tulajdonság megmondja, hogy melyik játéktípushoz érvényes a pálya, ebben az esetben a felette lévő példában lévő játékmód.&lt;br /&gt;
Ami talán meglepő, hogy egy script van a map resourceben. Persze ez nem kötelező egy mapban, de elég nagy szélességben megnyitja a lehetőségeket a map készítőknek, hogy létrehozhassák a saját világukat azokkal a szabályokkal, amivel létrehozták a játékmódot.&lt;br /&gt;
&lt;br /&gt;
Az ''airport.map'' fájl hasonlóan nézhet ki:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;map mode=&amp;quot;deathmatch&amp;quot; version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;terrorists&amp;gt;&lt;br /&gt;
		&amp;lt;spawnpoint posX=&amp;quot;2332.23&amp;quot; posY=&amp;quot;-12232.33&amp;quot; posZ=&amp;quot;4.42223&amp;quot; skins=&amp;quot;23-40&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/terrorists&amp;gt;&lt;br /&gt;
	&amp;lt;counterterrorists&amp;gt;&lt;br /&gt;
		&amp;lt;spawnpoint posX=&amp;quot;2334.23443&amp;quot; posY=&amp;quot;-12300.233&amp;quot; posZ=&amp;quot;10.2344&amp;quot; skins=&amp;quot;40-50&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/counterterrorists&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;bomb posX=&amp;quot;23342.23&amp;quot; posY=&amp;quot;&amp;quot; posZ=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;vehicle posX=&amp;quot;&amp;quot; posY=&amp;quot;&amp;quot; posZ=&amp;quot;&amp;quot; model=&amp;quot;602&amp;quot; /&amp;gt;	&lt;br /&gt;
	&amp;lt;vehicle posX=&amp;quot;&amp;quot; posY=&amp;quot;&amp;quot; posZ=&amp;quot;&amp;quot; model=&amp;quot;603&amp;quot; /&amp;gt;	&lt;br /&gt;
&amp;lt;/map&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ha egy játékmód egy mappal indul, a map automatikusan ellesz indítva a mapmanager által, és az információkat, amiket tárol, beolvashatóvá válnak a játéktípus resource által. Amikor egy map váltás van, az éppen futó map resource leáll, és a következő map resource elindul. Több mélyreható magyarázatért és példákért, hogy hogyan vannak felhasználva a map resourceok a fő scriptben, kérlek látogass el a [[Writing Gamemodes|Játékmód készítése]] oldalra.&lt;br /&gt;
&lt;br /&gt;
===Események===&lt;br /&gt;
Az [[Event|Események]] a módja, ahogy az MTA közli, hogy valami történt. Például, ha egy játékos meghal, az [[onPlayerWasted]] esemény lesz meghívva. Ahhoz, hogy valamit tudj tenni, amikor egy játékos meghal, fel kell készítened magad, hogy olyasmi, mint egy parancskezelő létrehozása, ahogy az  [[#Egy_m.C5.B1k.C3.B6d.C5.91_script_k.C3.A9sz.C3.ADt.C3.A9s|első fejezet]]ben leírtam.&lt;br /&gt;
&lt;br /&gt;
Ez a példa kifog írni egy üzenet, a játékos nevével, aki meghalt.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function jatekosMeghalt(osszesTolteny, gyilkos, gyilkosFegyver, testresz)&lt;br /&gt;
	outputChatBox(getPlayerName(source)..&amp;quot; meghalt!&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
addEventHandler(&amp;quot;onPlayerWasted&amp;quot;,getRootElement(),jatekosMeghalt)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahelyett, hogy megmutatnám, milyen argumentumok szükségesek, az Események dokumentum oldala megmutatja, hogy milyen paramétereket kell megadni a függvénynek, éppen ugyan úgy, ahogy a [[##A_parancskezel.C5.91kr.C5.91l|parancskezelők]]nél is csak itt különbözik az eseményeknél. Egy másik fontos pont, a ''source'' változó, ami létezik a függvényeknél. Ennek nem kell szerepelni a paraméterlistában a funkciónál, de mégis létezik. Minden eseménynél más-más értéket vesz, játékos eseménynél (ahogy a példában) a játékos element. Egy másik példáért nézd meg az [[#Egy_egyszer.C5.B1_script_l.C3.A9trehoz.C3.A1sa|első részben]] létrehozott alap spawn scriptet, hogy hogyan is használjuk a ''source'' változót.&lt;br /&gt;
&lt;br /&gt;
==Innen hova tovább==&lt;br /&gt;
Most már egy kicsit ismered az alap helyzetet az MTA scripteléssel és egy a kicsit dokumentációkkal kapcsolatban. A [[Main Page|Főoldal]] több linkel szolgáltat még több információért, oktatásért, és referenciákért amivel mélyebb betekintést nyerhetsz azokban a témákban amire vágysz.&lt;br /&gt;
{{note|Innentől ajánlom a [[debugging|hibakeresés]] oktatást. A jó hibakeresési tudás feltétlen szükséges, amikor scripteket készítesz. Továbbá javaslom, hogy használd, az [[predefined variables list|előre meghatározott változók listá]]ját, hogy segítse, megkönnyítse, és gyorsabbá tegye a scriptelést.}}&lt;br /&gt;
'''Lásd még:'''&lt;br /&gt;
* [[OOP_Introduction|OOP Scriptelés Oktatás]]&lt;br /&gt;
* [[Advanced Topics|Haladó Témák]]&lt;br /&gt;
* [[Script_security|Script Védelem]]&lt;br /&gt;
* [[Scripting Introduction|Angol Verzió]]&lt;br /&gt;
[[es:Introducción a la Programación]]&lt;br /&gt;
[[it:Introduzione allo scripting]]&lt;br /&gt;
[[nl:Scripting_introductie]]&lt;br /&gt;
[[pt-br:Introdução ao Scripting]]&lt;br /&gt;
[[ru:Scripting Introduction]]&lt;br /&gt;
[[ar:مقدمه_في_البرمجه]]&lt;br /&gt;
[[zh-cn:脚本编写介绍]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Translated/Support]]&lt;br /&gt;
&lt;br /&gt;
==Fordította==&lt;br /&gt;
* NeXuS&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=Template:Tipp&amp;diff=47510</id>
		<title>Template:Tipp</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=Template:Tipp&amp;diff=47510"/>
		<updated>2016-05-14T15:43:26Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: Created page with &amp;quot;{{MessageBox|    bordercolorhex = 81C687 |    bgcolorhex = E2FFE5 |    message = '''Tipp:''' {{{1}}} |  }}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{MessageBox|&lt;br /&gt;
   bordercolorhex = 81C687 |&lt;br /&gt;
   bgcolorhex = E2FFE5 |&lt;br /&gt;
   message = '''Tipp:''' {{{1}}} | &lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Changes_in_1.5.2&amp;diff=47509</id>
		<title>HU/Changes in 1.5.2</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Changes_in_1.5.2&amp;diff=47509"/>
		<updated>2016-05-14T15:41:14Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: /* Szerver */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Valtozasok}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
* Változások listája: https://bugs.mtasa.com/changelog_page.php&lt;br /&gt;
* Teljes lista: https://github.com/multitheftauto/mtasa-blue/commits/1.5.1?page=1&lt;br /&gt;
&lt;br /&gt;
== Főbb Kiegészítések / Változtatások ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fejlesztés ==&lt;br /&gt;
&lt;br /&gt;
=== Kliens ===&lt;br /&gt;
* [[createSearchLight]], [[getSearchLightStartPosition]], [[getSearchLightEndPosition]], [[getSearchLightStartRadius]], [[getSearchLightEndRadius]], [[setSearchLightStartPosition]], [[setSearchLightEndPosition]], [[setSearchLightStartRadius]], [[setSearchLightEndRadius]] hozzáadva&lt;br /&gt;
* [[setWindowFlashing]] hozzáadva&lt;br /&gt;
* Kijavítva a pozíció kalkulálás a [[dxGetTexturePixels]] funkciónál&lt;br /&gt;
* UsingDepthBuffer státusz hozzáadva a [[dxGetStatus]] funkcióhoz&lt;br /&gt;
&lt;br /&gt;
=== Szerver ===&lt;br /&gt;
* [[dbPrepareString]] hozzáadva&lt;br /&gt;
* A ''Player.outputChat'' funkciónál a helytelen viselkedés kijavítva&lt;br /&gt;
* [[onPlayerACInfo]] és [[resendPlayerACInfo]] hozzáadva&lt;br /&gt;
&lt;br /&gt;
=== Megosztott (''Kliens &amp;amp; Szerver oldal'') ===&lt;br /&gt;
* OOP javítások&lt;br /&gt;
* A kettőspont levágja az assert általi üzenetet javítva&lt;br /&gt;
* A loadstring és load nem fogad el UTF-8 /w BOM karaktereket javítva&lt;br /&gt;
* Hibakezelés funkció paraméter elemzés továbbfejlesztve&lt;br /&gt;
* A ''coroutine.resum'', mostantól kiírja a hibákat alapértelmezetten&lt;br /&gt;
* HTTPS támogatás a [[fetchRemote]]-hoz.&lt;br /&gt;
&lt;br /&gt;
== Kliens ==&lt;br /&gt;
&lt;br /&gt;
=== Kliens: Kiegészítések ===&lt;br /&gt;
* Nem történt kiegészítés&lt;br /&gt;
&lt;br /&gt;
=== Kliens: Hibajavítások &amp;amp; Változtatások ===&lt;br /&gt;
* CEF frissítva (és az alárendelt Chromium)&lt;br /&gt;
* A játékos újracsatlakozik bizonyos körülmények között, amikor letölt egy fájlt egy külső webszerverről javítva&lt;br /&gt;
* Ajtó/egyéb más szinkronizálása a kocsi stream-be/ki-nél javítva&lt;br /&gt;
* Javítva több jelentősebb crash&lt;br /&gt;
* Biztonsági javítások&lt;br /&gt;
&lt;br /&gt;
== Szerver ==&lt;br /&gt;
&lt;br /&gt;
=== Szerver: Kiegészítések ===&lt;br /&gt;
* Hozzáadva pár Linux könyvtár az MTA csomagához, hogy javítsuk a kompatibilitást régebbi rendszerekkel&lt;br /&gt;
* Hozzáadva a szerver ellenőrzési logika&lt;br /&gt;
&lt;br /&gt;
=== Szerver: Hibajavítások &amp;amp; Változtatások ===&lt;br /&gt;
* Bemenő kurzor szerver fagyást okoz javítva&lt;br /&gt;
* refreshResources időnként crashelteti a szervert javítva&lt;br /&gt;
* A fájlok ütköznek, amikor a resource neve tartalmaz szögletes zárójeleket javítva&lt;br /&gt;
* A Linux szerver induláskori hiba üzenetének a formázása javítva&lt;br /&gt;
* Fejlesztve a verzió ellenőrzés&lt;br /&gt;
&lt;br /&gt;
== Resourceok ==&lt;br /&gt;
* Nem történt változás&lt;br /&gt;
&lt;br /&gt;
== Szerkesztő ==&lt;br /&gt;
* Nem történt változás&lt;br /&gt;
&lt;br /&gt;
== Mellék információ ==&lt;br /&gt;
''Jobban leírt információ elérhető a [https://bugs.multitheftauto.com/changelog_page.php Bug követő változási listán] és a GitHub táűrolókon:&lt;br /&gt;
:* [https://github.com/multitheftauto/mtasa-blue MTA: SA Blue]&lt;br /&gt;
:* [https://github.com/multitheftauto/mtasa-resources MTA: SA Hivatalos Resourcek]&lt;br /&gt;
&lt;br /&gt;
[[Category:Changelog]]&lt;br /&gt;
[[Category:Incomplete]]&lt;br /&gt;
&lt;br /&gt;
==Fordította==&lt;br /&gt;
* NeXuS&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Changes_in_1.5.2&amp;diff=47508</id>
		<title>HU/Changes in 1.5.2</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Changes_in_1.5.2&amp;diff=47508"/>
		<updated>2016-05-14T15:40:22Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: /* Megosztott (Kliens &amp;amp; Szerver oldal) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Valtozasok}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
* Változások listája: https://bugs.mtasa.com/changelog_page.php&lt;br /&gt;
* Teljes lista: https://github.com/multitheftauto/mtasa-blue/commits/1.5.1?page=1&lt;br /&gt;
&lt;br /&gt;
== Főbb Kiegészítések / Változtatások ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fejlesztés ==&lt;br /&gt;
&lt;br /&gt;
=== Kliens ===&lt;br /&gt;
* [[createSearchLight]], [[getSearchLightStartPosition]], [[getSearchLightEndPosition]], [[getSearchLightStartRadius]], [[getSearchLightEndRadius]], [[setSearchLightStartPosition]], [[setSearchLightEndPosition]], [[setSearchLightStartRadius]], [[setSearchLightEndRadius]] hozzáadva&lt;br /&gt;
* [[setWindowFlashing]] hozzáadva&lt;br /&gt;
* Kijavítva a pozíció kalkulálás a [[dxGetTexturePixels]] funkciónál&lt;br /&gt;
* UsingDepthBuffer státusz hozzáadva a [[dxGetStatus]] funkcióhoz&lt;br /&gt;
&lt;br /&gt;
=== Szerver ===&lt;br /&gt;
* [[dbPrepareString]] hozzáadva&lt;br /&gt;
* Kijavítva a ''Player.outputChat'' funkciónál a helytelen viselkedést&lt;br /&gt;
* [[onPlayerACInfo]] és [[resendPlayerACInfo]] hozzáadva&lt;br /&gt;
&lt;br /&gt;
=== Megosztott (''Kliens &amp;amp; Szerver oldal'') ===&lt;br /&gt;
* OOP javítások&lt;br /&gt;
* A kettőspont levágja az assert általi üzenetet javítva&lt;br /&gt;
* A loadstring és load nem fogad el UTF-8 /w BOM karaktereket javítva&lt;br /&gt;
* Hibakezelés funkció paraméter elemzés továbbfejlesztve&lt;br /&gt;
* A ''coroutine.resum'', mostantól kiírja a hibákat alapértelmezetten&lt;br /&gt;
* HTTPS támogatás a [[fetchRemote]]-hoz.&lt;br /&gt;
&lt;br /&gt;
== Kliens ==&lt;br /&gt;
&lt;br /&gt;
=== Kliens: Kiegészítések ===&lt;br /&gt;
* Nem történt kiegészítés&lt;br /&gt;
&lt;br /&gt;
=== Kliens: Hibajavítások &amp;amp; Változtatások ===&lt;br /&gt;
* CEF frissítva (és az alárendelt Chromium)&lt;br /&gt;
* A játékos újracsatlakozik bizonyos körülmények között, amikor letölt egy fájlt egy külső webszerverről javítva&lt;br /&gt;
* Ajtó/egyéb más szinkronizálása a kocsi stream-be/ki-nél javítva&lt;br /&gt;
* Javítva több jelentősebb crash&lt;br /&gt;
* Biztonsági javítások&lt;br /&gt;
&lt;br /&gt;
== Szerver ==&lt;br /&gt;
&lt;br /&gt;
=== Szerver: Kiegészítések ===&lt;br /&gt;
* Hozzáadva pár Linux könyvtár az MTA csomagához, hogy javítsuk a kompatibilitást régebbi rendszerekkel&lt;br /&gt;
* Hozzáadva a szerver ellenőrzési logika&lt;br /&gt;
&lt;br /&gt;
=== Szerver: Hibajavítások &amp;amp; Változtatások ===&lt;br /&gt;
* Bemenő kurzor szerver fagyást okoz javítva&lt;br /&gt;
* refreshResources időnként crashelteti a szervert javítva&lt;br /&gt;
* A fájlok ütköznek, amikor a resource neve tartalmaz szögletes zárójeleket javítva&lt;br /&gt;
* A Linux szerver induláskori hiba üzenetének a formázása javítva&lt;br /&gt;
* Fejlesztve a verzió ellenőrzés&lt;br /&gt;
&lt;br /&gt;
== Resourceok ==&lt;br /&gt;
* Nem történt változás&lt;br /&gt;
&lt;br /&gt;
== Szerkesztő ==&lt;br /&gt;
* Nem történt változás&lt;br /&gt;
&lt;br /&gt;
== Mellék információ ==&lt;br /&gt;
''Jobban leírt információ elérhető a [https://bugs.multitheftauto.com/changelog_page.php Bug követő változási listán] és a GitHub táűrolókon:&lt;br /&gt;
:* [https://github.com/multitheftauto/mtasa-blue MTA: SA Blue]&lt;br /&gt;
:* [https://github.com/multitheftauto/mtasa-resources MTA: SA Hivatalos Resourcek]&lt;br /&gt;
&lt;br /&gt;
[[Category:Changelog]]&lt;br /&gt;
[[Category:Incomplete]]&lt;br /&gt;
&lt;br /&gt;
==Fordította==&lt;br /&gt;
* NeXuS&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Changes_in_1.5.2&amp;diff=47507</id>
		<title>HU/Changes in 1.5.2</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Changes_in_1.5.2&amp;diff=47507"/>
		<updated>2016-05-14T15:39:15Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: /* Kliens: Hibajavítások &amp;amp; Változtatások */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Valtozasok}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
* Változások listája: https://bugs.mtasa.com/changelog_page.php&lt;br /&gt;
* Teljes lista: https://github.com/multitheftauto/mtasa-blue/commits/1.5.1?page=1&lt;br /&gt;
&lt;br /&gt;
== Főbb Kiegészítések / Változtatások ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fejlesztés ==&lt;br /&gt;
&lt;br /&gt;
=== Kliens ===&lt;br /&gt;
* [[createSearchLight]], [[getSearchLightStartPosition]], [[getSearchLightEndPosition]], [[getSearchLightStartRadius]], [[getSearchLightEndRadius]], [[setSearchLightStartPosition]], [[setSearchLightEndPosition]], [[setSearchLightStartRadius]], [[setSearchLightEndRadius]] hozzáadva&lt;br /&gt;
* [[setWindowFlashing]] hozzáadva&lt;br /&gt;
* Kijavítva a pozíció kalkulálás a [[dxGetTexturePixels]] funkciónál&lt;br /&gt;
* UsingDepthBuffer státusz hozzáadva a [[dxGetStatus]] funkcióhoz&lt;br /&gt;
&lt;br /&gt;
=== Szerver ===&lt;br /&gt;
* [[dbPrepareString]] hozzáadva&lt;br /&gt;
* Kijavítva a ''Player.outputChat'' funkciónál a helytelen viselkedést&lt;br /&gt;
* [[onPlayerACInfo]] és [[resendPlayerACInfo]] hozzáadva&lt;br /&gt;
&lt;br /&gt;
=== Megosztott (''Kliens &amp;amp; Szerver oldal'') ===&lt;br /&gt;
* OOP javítások&lt;br /&gt;
* Kijavítva, hogy a kettőspont levágja az assert általi üzenetet, és egy hibaüzenet&lt;br /&gt;
* Kijavítva, hogy a loadstring és load nem fogad el UTF-8 /w BOM karaktereket &lt;br /&gt;
* Hibakezelés funkció paraméter elemzés továbbfejlesztve&lt;br /&gt;
* Megváltoztatva a ''coroutine.resum'', hogy kiírja a hibákat alapértelmezetten&lt;br /&gt;
* HTTPS támogatás a [[fetchRemote]]-hoz.&lt;br /&gt;
&lt;br /&gt;
== Kliens ==&lt;br /&gt;
&lt;br /&gt;
=== Kliens: Kiegészítések ===&lt;br /&gt;
* Nem történt kiegészítés&lt;br /&gt;
&lt;br /&gt;
=== Kliens: Hibajavítások &amp;amp; Változtatások ===&lt;br /&gt;
* CEF frissítva (és az alárendelt Chromium)&lt;br /&gt;
* A játékos újracsatlakozik bizonyos körülmények között, amikor letölt egy fájlt egy külső webszerverről javítva&lt;br /&gt;
* Ajtó/egyéb más szinkronizálása a kocsi stream-be/ki-nél javítva&lt;br /&gt;
* Javítva több jelentősebb crash&lt;br /&gt;
* Biztonsági javítások&lt;br /&gt;
&lt;br /&gt;
== Szerver ==&lt;br /&gt;
&lt;br /&gt;
=== Szerver: Kiegészítések ===&lt;br /&gt;
* Hozzáadva pár Linux könyvtár az MTA csomagához, hogy javítsuk a kompatibilitást régebbi rendszerekkel&lt;br /&gt;
* Hozzáadva a szerver ellenőrzési logika&lt;br /&gt;
&lt;br /&gt;
=== Szerver: Hibajavítások &amp;amp; Változtatások ===&lt;br /&gt;
* Bemenő kurzor szerver fagyást okoz javítva&lt;br /&gt;
* refreshResources időnként crashelteti a szervert javítva&lt;br /&gt;
* A fájlok ütköznek, amikor a resource neve tartalmaz szögletes zárójeleket javítva&lt;br /&gt;
* A Linux szerver induláskori hiba üzenetének a formázása javítva&lt;br /&gt;
* Fejlesztve a verzió ellenőrzés&lt;br /&gt;
&lt;br /&gt;
== Resourceok ==&lt;br /&gt;
* Nem történt változás&lt;br /&gt;
&lt;br /&gt;
== Szerkesztő ==&lt;br /&gt;
* Nem történt változás&lt;br /&gt;
&lt;br /&gt;
== Mellék információ ==&lt;br /&gt;
''Jobban leírt információ elérhető a [https://bugs.multitheftauto.com/changelog_page.php Bug követő változási listán] és a GitHub táűrolókon:&lt;br /&gt;
:* [https://github.com/multitheftauto/mtasa-blue MTA: SA Blue]&lt;br /&gt;
:* [https://github.com/multitheftauto/mtasa-resources MTA: SA Hivatalos Resourcek]&lt;br /&gt;
&lt;br /&gt;
[[Category:Changelog]]&lt;br /&gt;
[[Category:Incomplete]]&lt;br /&gt;
&lt;br /&gt;
==Fordította==&lt;br /&gt;
* NeXuS&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Changes_in_1.5.2&amp;diff=47506</id>
		<title>HU/Changes in 1.5.2</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Changes_in_1.5.2&amp;diff=47506"/>
		<updated>2016-05-14T15:39:02Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: /* Kliens: Hibajavítások &amp;amp; Változtatások */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Valtozasok}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
* Változások listája: https://bugs.mtasa.com/changelog_page.php&lt;br /&gt;
* Teljes lista: https://github.com/multitheftauto/mtasa-blue/commits/1.5.1?page=1&lt;br /&gt;
&lt;br /&gt;
== Főbb Kiegészítések / Változtatások ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fejlesztés ==&lt;br /&gt;
&lt;br /&gt;
=== Kliens ===&lt;br /&gt;
* [[createSearchLight]], [[getSearchLightStartPosition]], [[getSearchLightEndPosition]], [[getSearchLightStartRadius]], [[getSearchLightEndRadius]], [[setSearchLightStartPosition]], [[setSearchLightEndPosition]], [[setSearchLightStartRadius]], [[setSearchLightEndRadius]] hozzáadva&lt;br /&gt;
* [[setWindowFlashing]] hozzáadva&lt;br /&gt;
* Kijavítva a pozíció kalkulálás a [[dxGetTexturePixels]] funkciónál&lt;br /&gt;
* UsingDepthBuffer státusz hozzáadva a [[dxGetStatus]] funkcióhoz&lt;br /&gt;
&lt;br /&gt;
=== Szerver ===&lt;br /&gt;
* [[dbPrepareString]] hozzáadva&lt;br /&gt;
* Kijavítva a ''Player.outputChat'' funkciónál a helytelen viselkedést&lt;br /&gt;
* [[onPlayerACInfo]] és [[resendPlayerACInfo]] hozzáadva&lt;br /&gt;
&lt;br /&gt;
=== Megosztott (''Kliens &amp;amp; Szerver oldal'') ===&lt;br /&gt;
* OOP javítások&lt;br /&gt;
* Kijavítva, hogy a kettőspont levágja az assert általi üzenetet, és egy hibaüzenet&lt;br /&gt;
* Kijavítva, hogy a loadstring és load nem fogad el UTF-8 /w BOM karaktereket &lt;br /&gt;
* Hibakezelés funkció paraméter elemzés továbbfejlesztve&lt;br /&gt;
* Megváltoztatva a ''coroutine.resum'', hogy kiírja a hibákat alapértelmezetten&lt;br /&gt;
* HTTPS támogatás a [[fetchRemote]]-hoz.&lt;br /&gt;
&lt;br /&gt;
== Kliens ==&lt;br /&gt;
&lt;br /&gt;
=== Kliens: Kiegészítések ===&lt;br /&gt;
* Nem történt kiegészítés&lt;br /&gt;
&lt;br /&gt;
=== Kliens: Hibajavítások &amp;amp; Változtatások ===&lt;br /&gt;
* CEF frissítva (és az alárendelt Chromium)&lt;br /&gt;
* A játékos újracsatlakozik bizonyos körülmények között, amikor letölt egy fájlt egy külső webszerverről javítva&lt;br /&gt;
* Ajtó/egyéb más szinkronizálása a kocsi stream-be/ki-nél javítva.&lt;br /&gt;
* Javítva több jelentősebb crash&lt;br /&gt;
* Biztonsági javítások&lt;br /&gt;
&lt;br /&gt;
== Szerver ==&lt;br /&gt;
&lt;br /&gt;
=== Szerver: Kiegészítések ===&lt;br /&gt;
* Hozzáadva pár Linux könyvtár az MTA csomagához, hogy javítsuk a kompatibilitást régebbi rendszerekkel&lt;br /&gt;
* Hozzáadva a szerver ellenőrzési logika&lt;br /&gt;
&lt;br /&gt;
=== Szerver: Hibajavítások &amp;amp; Változtatások ===&lt;br /&gt;
* Bemenő kurzor szerver fagyást okoz javítva&lt;br /&gt;
* refreshResources időnként crashelteti a szervert javítva&lt;br /&gt;
* A fájlok ütköznek, amikor a resource neve tartalmaz szögletes zárójeleket javítva&lt;br /&gt;
* A Linux szerver induláskori hiba üzenetének a formázása javítva&lt;br /&gt;
* Fejlesztve a verzió ellenőrzés&lt;br /&gt;
&lt;br /&gt;
== Resourceok ==&lt;br /&gt;
* Nem történt változás&lt;br /&gt;
&lt;br /&gt;
== Szerkesztő ==&lt;br /&gt;
* Nem történt változás&lt;br /&gt;
&lt;br /&gt;
== Mellék információ ==&lt;br /&gt;
''Jobban leírt információ elérhető a [https://bugs.multitheftauto.com/changelog_page.php Bug követő változási listán] és a GitHub táűrolókon:&lt;br /&gt;
:* [https://github.com/multitheftauto/mtasa-blue MTA: SA Blue]&lt;br /&gt;
:* [https://github.com/multitheftauto/mtasa-resources MTA: SA Hivatalos Resourcek]&lt;br /&gt;
&lt;br /&gt;
[[Category:Changelog]]&lt;br /&gt;
[[Category:Incomplete]]&lt;br /&gt;
&lt;br /&gt;
==Fordította==&lt;br /&gt;
* NeXuS&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Changes_in_1.5.2&amp;diff=47505</id>
		<title>HU/Changes in 1.5.2</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Changes_in_1.5.2&amp;diff=47505"/>
		<updated>2016-05-14T15:38:31Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: /* Szerver: Hibajavítások &amp;amp; Változtatások */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Valtozasok}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
* Változások listája: https://bugs.mtasa.com/changelog_page.php&lt;br /&gt;
* Teljes lista: https://github.com/multitheftauto/mtasa-blue/commits/1.5.1?page=1&lt;br /&gt;
&lt;br /&gt;
== Főbb Kiegészítések / Változtatások ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fejlesztés ==&lt;br /&gt;
&lt;br /&gt;
=== Kliens ===&lt;br /&gt;
* [[createSearchLight]], [[getSearchLightStartPosition]], [[getSearchLightEndPosition]], [[getSearchLightStartRadius]], [[getSearchLightEndRadius]], [[setSearchLightStartPosition]], [[setSearchLightEndPosition]], [[setSearchLightStartRadius]], [[setSearchLightEndRadius]] hozzáadva&lt;br /&gt;
* [[setWindowFlashing]] hozzáadva&lt;br /&gt;
* Kijavítva a pozíció kalkulálás a [[dxGetTexturePixels]] funkciónál&lt;br /&gt;
* UsingDepthBuffer státusz hozzáadva a [[dxGetStatus]] funkcióhoz&lt;br /&gt;
&lt;br /&gt;
=== Szerver ===&lt;br /&gt;
* [[dbPrepareString]] hozzáadva&lt;br /&gt;
* Kijavítva a ''Player.outputChat'' funkciónál a helytelen viselkedést&lt;br /&gt;
* [[onPlayerACInfo]] és [[resendPlayerACInfo]] hozzáadva&lt;br /&gt;
&lt;br /&gt;
=== Megosztott (''Kliens &amp;amp; Szerver oldal'') ===&lt;br /&gt;
* OOP javítások&lt;br /&gt;
* Kijavítva, hogy a kettőspont levágja az assert általi üzenetet, és egy hibaüzenet&lt;br /&gt;
* Kijavítva, hogy a loadstring és load nem fogad el UTF-8 /w BOM karaktereket &lt;br /&gt;
* Hibakezelés funkció paraméter elemzés továbbfejlesztve&lt;br /&gt;
* Megváltoztatva a ''coroutine.resum'', hogy kiírja a hibákat alapértelmezetten&lt;br /&gt;
* HTTPS támogatás a [[fetchRemote]]-hoz.&lt;br /&gt;
&lt;br /&gt;
== Kliens ==&lt;br /&gt;
&lt;br /&gt;
=== Kliens: Kiegészítések ===&lt;br /&gt;
* Nem történt kiegészítés&lt;br /&gt;
&lt;br /&gt;
=== Kliens: Hibajavítások &amp;amp; Változtatások ===&lt;br /&gt;
* CEF frissítva (és az alárendelt Chromium)&lt;br /&gt;
* Javítva, hogy a játékos újracsatlakozik bizonyos körülmények között, amikor letölt egy fájlt egy külső webszerverről&lt;br /&gt;
* Javítva az ajtó/egyéb más szinkronizálása a kocsi stream-be/ki-nél.&lt;br /&gt;
* Javítva több jelentősebb crash&lt;br /&gt;
* Biztonsági javítások&lt;br /&gt;
&lt;br /&gt;
== Szerver ==&lt;br /&gt;
&lt;br /&gt;
=== Szerver: Kiegészítések ===&lt;br /&gt;
* Hozzáadva pár Linux könyvtár az MTA csomagához, hogy javítsuk a kompatibilitást régebbi rendszerekkel&lt;br /&gt;
* Hozzáadva a szerver ellenőrzési logika&lt;br /&gt;
&lt;br /&gt;
=== Szerver: Hibajavítások &amp;amp; Változtatások ===&lt;br /&gt;
* Bemenő kurzor szerver fagyást okoz javítva&lt;br /&gt;
* refreshResources időnként crashelteti a szervert javítva&lt;br /&gt;
* A fájlok ütköznek, amikor a resource neve tartalmaz szögletes zárójeleket javítva&lt;br /&gt;
* A Linux szerver induláskori hiba üzenetének a formázása javítva&lt;br /&gt;
* Fejlesztve a verzió ellenőrzés&lt;br /&gt;
&lt;br /&gt;
== Resourceok ==&lt;br /&gt;
* Nem történt változás&lt;br /&gt;
&lt;br /&gt;
== Szerkesztő ==&lt;br /&gt;
* Nem történt változás&lt;br /&gt;
&lt;br /&gt;
== Mellék információ ==&lt;br /&gt;
''Jobban leírt információ elérhető a [https://bugs.multitheftauto.com/changelog_page.php Bug követő változási listán] és a GitHub táűrolókon:&lt;br /&gt;
:* [https://github.com/multitheftauto/mtasa-blue MTA: SA Blue]&lt;br /&gt;
:* [https://github.com/multitheftauto/mtasa-resources MTA: SA Hivatalos Resourcek]&lt;br /&gt;
&lt;br /&gt;
[[Category:Changelog]]&lt;br /&gt;
[[Category:Incomplete]]&lt;br /&gt;
&lt;br /&gt;
==Fordította==&lt;br /&gt;
* NeXuS&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=User:MTANeXuS&amp;diff=47504</id>
		<title>User:MTANeXuS</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=User:MTANeXuS&amp;diff=47504"/>
		<updated>2016-05-14T15:33:57Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: /* Translations, Pages by NeXuS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Translations by NeXuS ==== &lt;br /&gt;
* [[HU/Scripting_Introduction]]&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Introduction_to_Scripting_the_GUI&amp;diff=47503</id>
		<title>HU/Introduction to Scripting the GUI</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Introduction_to_Scripting_the_GUI&amp;diff=47503"/>
		<updated>2016-05-14T14:24:14Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- place holder --&amp;gt;&lt;br /&gt;
Egy fontos funkciója az MTAnak az egyedi GUI, azaz Graphic User Interface, magyarul Grafikus Felhasználói Felület létrehozása. A GUI állhat ablakokból, gombokból, beviteli mezőkből, illetve jelölőnégyzetekből. Majdnem minden standard formájú alkotórész a grafikus környezetből. Meglehetnek jelenítve, miközben a játékos játszik, és lehet őket használni bemenetre és kimenetre hagyományos parancsok helyett.&lt;br /&gt;
&lt;br /&gt;
[[Image:AdminGUI.png|thumb|Admin Console GUI]]&lt;br /&gt;
&lt;br /&gt;
==Egy oktatás egy bejelentkező ablak létrehozásához==&lt;br /&gt;
Ebben az oktatásban létre fogunk hozni egy sima bejelentkező ablakot, két bemeneti mezővel és egy gombbal. Az ablak akkor fog megjelenni, amikor a játékos belép a játékba, és amikor a gomb meglesz nyomva, a játékos lefog spawnolni. Ez az oktatás folytatni fogja azt a gamemodet, amit elkészítettünk a [[HU/Scripting_Introduction|Bevezetés a scriptelésbe]] részlegben.&lt;br /&gt;
''(Ha használtad a [[HU/Scripting_Introduction|Bevezetés a scriptelésbe]] részleget, kikell törölnöd, vagy kommentelned a [[spawnPlayer]] sort a &amp;quot;csatlakozasKezelo&amp;quot; funkcióban, mivel helyettesíteni fogjuk egy GUI alternatívával ebben az oktatásban.)'' Illetve befogunk tekinteni a kliens-oldali scriptelésbe is.&lt;br /&gt;
&lt;br /&gt;
===Draw the window===&lt;br /&gt;
Minden GUIt csak kliens-oldalon tudunk elkészíteni. És amúgy egy jó gyakorlat, hogy minden kliens-oldali fájlt egy külön mappában tarstunk.&lt;br /&gt;
&lt;br /&gt;
Menj az /MTA szerver/mods/deathmatch/resources/enszerverem/ könyvtárba, majd hozz létre egy mappát &amp;quot;kliens&amp;quot; néven. A /kliens/ könyvtárban hozz létre egy szöveges fájlt, majd nevezd el &amp;quot;gui.lua&amp;quot;-nak.&lt;br /&gt;
&lt;br /&gt;
Ebben a fájlban fogunk megírni egy funkciót, ami az ablakot fogja megrajzolni. Ahhoz, hogy létrehozzunk egy ablakot a [[guiCreateWindow]] funkciót fogjunk használni:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function bejelentkezesiAblakLetrehozasa()&lt;br /&gt;
	-- Az X és az Y koordináta definiálása&lt;br /&gt;
	local X = 0.375&lt;br /&gt;
	local Y = 0.375&lt;br /&gt;
	-- A szélesség és a magasság definiálása&lt;br /&gt;
	local wSzelesseg = 0.25&lt;br /&gt;
	local wMagassag = 0.25&lt;br /&gt;
	-- Hozzuk létre az ablakot, és mentsük el az elementjét egy változóban amit nevezzünk el 'wLogin'-nak&lt;br /&gt;
	-- Nyomj rá a funkció nevére hogy elolvasd a hozzátartozó dokumentációt&lt;br /&gt;
	wLogin = guiCreateWindow(X, Y, wSzelesseg, wMagassag, &amp;quot;Kérlek jelentkezz be&amp;quot;, true)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Relatív és Abszolút===&lt;br /&gt;
Figyeld meg, hogy az utolsó argumentum a guiCreateWindownál a példában ''true''. Ez mutatja, hogy a koordináta és a dimenzió az ablaknál ''relatív'', szóval azt jelenti, hogy ''százaléka'' a teljes képernyőméretének. Ez azt jelenti hogy a bal oldala a képernyőnek 0, a jobb oldala 1, akkor egy X pozíció 0.5-nél mutatná a középpontját a képernyőnek. Hasonlóképpen a teteje a képernyőnek 0 és az alja 1, akkor egy Y pozíció 0.2-nél lenne a képernyő 20 százalékánál a képernyőnek fentről lefele. Ezek az elvek igazak mint a wSzelesseg és a wMagassagra is (a wSzelesseg 0.5-nél azt jelenti, hogy az ablak fele olyan széles lesz, mint a képernyőnk).&lt;br /&gt;
&lt;br /&gt;
Az alternatíva a relatív érzékek használatának az '''abszolút''' (''false'' adása a true helyett a guiCreateWindownak). Az abszolút értékek úgy vannak kiszámolva, hogy az összes pixel a bal-felső sarokból a '''szülőnek''' (ha nem egy gui element a szülő, akkor a szülő a képernyő maga). Feltételezzük, hogy a képernyőnk 1920x1200, a bal oldala a képernyőnknek 0 pixelnél, a jobb oldala 1920 pixelnél kezdődik, akkor egy X pozíció 960-nál mutatnál a középpontját a képernyőnek. Hasonlóképpen a teteje 0 pixelnél, és az alja 1200 pixelnél kezdődik, akkor egy Y pozíció 20-nál 20 pixellel tolná el lefele a képernyő tetejétől. Ezek az elvek igazak mint a wSzelesseg és a wMagassagra is (a wSzelesseg 50-nél azt jelenti, hogy az ablak 50 pixel széles lenne). ''Használhatod a [[guiGetScreenSize]]funkciót és egy kis matematikai számolást hogy kiszámíts bizonyos abszolút pozíciókat.''&lt;br /&gt;
&lt;br /&gt;
Az abszolútot általában egyszerűbb fenntartani amikor egy kódot kézzel hozunk létre, viszont a választásod függ a szituációtól.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Az oktatás céljából relatív értékeket fogunk használni.&lt;br /&gt;
&lt;br /&gt;
===Az alkotórészek hozzáadása===&lt;br /&gt;
Következőnek, szövegeket fogunk hozzáadni (&amp;quot;felhasználónév:&amp;quot; és &amp;quot;jelszó:&amp;quot;), bemeneti mezőket (az adat beviteléhez) és egy gombot a bejelentkezéshez.&lt;br /&gt;
&lt;br /&gt;
Egy gomb létrehozásához a [[guiCreateButton]], egy bemeneti mező létrehozásához a [[guiCreateEdit]] funkciót használjuk:&lt;br /&gt;
&lt;br /&gt;
'''Figyeld meg, hogy már a létező 'bejelentkezesiAblakLetrehozasa' funkcióhoz írunk további kódokat. Ez nem egy új funkció, és azt jelenti, hogy kicseréljük azt, amink már van.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function bejelentkezesiAblakLetrehozasa()&lt;br /&gt;
	local X = 0.375&lt;br /&gt;
	local Y = 0.375&lt;br /&gt;
	local wSzelesseg = 0.25&lt;br /&gt;
	local wMagassag = = 0.25&lt;br /&gt;
	wLogin = guiCreateWindow(X, Y, wSzelesseg, wMagassag, &amp;quot;Kérlek jelentkezz be&amp;quot;, true)&lt;br /&gt;
	&lt;br /&gt;
	-- Új X és Y koordináta definiálása az első felirathoz&lt;br /&gt;
	X = 0.0825&lt;br /&gt;
	Y = 0.2&lt;br /&gt;
	-- Új wSzelesseg és wMagassag definiálása az első felirathoz&lt;br /&gt;
	wSzelesseg = 0.25&lt;br /&gt;
	wMagassag = 0.25&lt;br /&gt;
	-- Az első felirat létrehozása, jegyezd meg hogy az utolsó 'wLogin' argumentum az ablakot jelenti&lt;br /&gt;
	-- amit már feljebb létrehoztunk, és ez lesz a felirat szülője (szóval minden pozíció és méret relatív az ablak pozíciójához képest)&lt;br /&gt;
	guiCreateLabel(X, Y, wSzelesseg , wMagassag , &amp;quot;Felhasználónév&amp;quot;, true, wdwLogin)&lt;br /&gt;
	-- Változtassuk meg az Y értéket, szóval a második címke némileg lejjebb van mint az &lt;br /&gt;
	Y = 0.5&lt;br /&gt;
	guiCreateLabel(X, Y, wSzelesseg, wMagassag, &amp;quot;Jelszó&amp;quot;, true, wdwLogin)&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
	X = 0.415&lt;br /&gt;
	Y = 0.2&lt;br /&gt;
	Width = 0.5&lt;br /&gt;
	Height = 0.15&lt;br /&gt;
	edtUser = guiCreateEdit(X, Y, Width, Height, &amp;quot;&amp;quot;, true, wdwLogin)&lt;br /&gt;
	Y = 0.5&lt;br /&gt;
	edtPass = guiCreateEdit(X, Y, Width, Height, &amp;quot;&amp;quot;, true, wdwLogin)&lt;br /&gt;
	-- set the maximum character length for the username and password fields to 50&lt;br /&gt;
	guiEditSetMaxLength(edtUser, 50)&lt;br /&gt;
	guiEditSetMaxLength(edtPass, 50)&lt;br /&gt;
	&lt;br /&gt;
	X = 0.415&lt;br /&gt;
	Y = 0.7&lt;br /&gt;
	Width = 0.25&lt;br /&gt;
	Height = 0.2&lt;br /&gt;
	btnLogin = guiCreateButton(X, Y, Width, Height, &amp;quot;Log In&amp;quot;, true, wdwLogin)&lt;br /&gt;
	&lt;br /&gt;
	-- make the window invisible&lt;br /&gt;
	guiSetVisible(wdwLogin, false)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that every GUI component created is a child of the window, this is done by specifying the parent element (wdwLogin, in this case) when creating the component. &lt;br /&gt;
&lt;br /&gt;
This is very useful because not only does it mean that all the components are attached to the window and will move with it, but also that any changes done to the parent window will be applied down the tree to these child components. For example, we can now hide all of the GUI we just created by simply hiding the window:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
guiSetVisible(wdwLogin, false) --hides all the GUI we made so we can show them to the player at the appropriate moment. &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Using the function we wrote===&lt;br /&gt;
The createLoginWindow function is now complete, but it won't do anything until we call it. It is recommended to create all GUI when the client resource starts, hide them, and show them to the player later when needed. Therefore, we'll write an event handler for &amp;quot;[[onClientResourceStart]]&amp;quot; to create the window:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- attach the event handler to the root element of the resource&lt;br /&gt;
-- this means it will only trigger when its own resource is started&lt;br /&gt;
addEventHandler(&amp;quot;onClientResourceStart&amp;quot;, getResourceRootElement(), &lt;br /&gt;
	function ()&lt;br /&gt;
		createLoginWindow()&lt;br /&gt;
	end&lt;br /&gt;
)	&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As this is a log in window, we now need to show the window when the player joins the game. &lt;br /&gt;
This can be done using the same event, &amp;quot;[[onClientResourceStart]]&amp;quot;, so we can modify the above code to include showing the window:&lt;br /&gt;
&lt;br /&gt;
'''Note that we are now writing more code for our existing 'onClientResourceStart' handler. This is not a new event handler and is meant to replace what you already have.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
addEventHandler(&amp;quot;onClientResourceStart&amp;quot;, getResourceRootElement(), &lt;br /&gt;
	function ()&lt;br /&gt;
		-- create the log in window and its components&lt;br /&gt;
		createLoginWindow()&lt;br /&gt;
&lt;br /&gt;
		-- output a brief welcome message to the player&lt;br /&gt;
                outputChatBox(&amp;quot;Welcome to My MTA:SA Server, please log in.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
		-- if the GUI was successfully created, then show the GUI to the player&lt;br /&gt;
	        if (wdwLogin ~= nil) then&lt;br /&gt;
			guiSetVisible(wdwLogin, true)&lt;br /&gt;
		else&lt;br /&gt;
			-- if the GUI hasnt been properly created, tell the player&lt;br /&gt;
			outputChatBox(&amp;quot;An unexpected error has occurred and the log in GUI has not been created.&amp;quot;)&lt;br /&gt;
	        end &lt;br /&gt;
&lt;br /&gt;
		-- enable the players cursor (so they can select and click on the components)&lt;br /&gt;
	        showCursor(true)&lt;br /&gt;
		-- set the input focus onto the GUI, allowing players (for example) to press 'T' without the chatbox opening&lt;br /&gt;
	        guiSetInputEnabled(true)&lt;br /&gt;
	end&lt;br /&gt;
)	&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that we have a simple security check before making the window visible, so in the unlikely event that the window has not been created, meaning wdwLogin is not a valid element, we don't get an error and just inform the player what has happened. &lt;br /&gt;
In the next step, we will create the button functionality for the log in button.&lt;br /&gt;
&lt;br /&gt;
==Scripting the button==&lt;br /&gt;
Now that we have created our GUI and shown it to the player, we need to make it work. &lt;br /&gt;
&lt;br /&gt;
===Detecting the click===&lt;br /&gt;
When the player clicks on any part of the GUI, the event &amp;quot;[[onClientGUIClick]]&amp;quot; will be triggered for the GUI component you clicked on. This allows us to easily detect any clicks on the GUI elements we want to use.&lt;br /&gt;
For example, we can attach the event to the btnLogin button to catch any clicks on it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- attach the event onClientGUIClick to btnLogin and set it to trigger the 'clientSubmitLogin' function&lt;br /&gt;
addEventHandler(&amp;quot;onClientGUIClick&amp;quot;, btnLogin, clientSubmitLogin, false)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
'''Note the final argument passed is &amp;quot;false&amp;quot;. This indicates that the event will only trigger directly on btnLogin, not if the event has propagated up or down the tree. Setting this to &amp;quot;true&amp;quot; while attaching to gui elements will mean that clicking on any element in the same branch will trigger this event.'''&lt;br /&gt;
&lt;br /&gt;
This line of code can now be added inside the createLoginWindow function. It is a common mistake to try and attach events to non-existant GUI elements, so make sure you always attach your events '''after''' the gui element (in this case, the button) has been created:&lt;br /&gt;
&lt;br /&gt;
'''Note that we are now writing more code for our existing 'createLoginWindow' function.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function createLoginWindow()&lt;br /&gt;
	-- create all our GUI elements&lt;br /&gt;
	...&lt;br /&gt;
&lt;br /&gt;
	-- now add our onClientGUIClick event to the button we just created&lt;br /&gt;
	addEventHandler(&amp;quot;onClientGUIClick&amp;quot;, btnLogin, clientSubmitLogin, false)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Managing the click===&lt;br /&gt;
Now that we can detect when the player clicks on the button, we need to write code to manage what happens when they do.&lt;br /&gt;
In our [[onClientGUIClick]] event handle, we told it to call the function clientSubmitLogin whenever btnLogin is clicked.&lt;br /&gt;
Therefore, we can now use the function clientSubmitLogin to control what happens when the button is clicked:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- create the function and define the 'button' and 'state' parameters&lt;br /&gt;
-- (these are passed automatically by onClientGUIClick)&lt;br /&gt;
function clientSubmitLogin(button,state)&lt;br /&gt;
	-- if our login button was clicked with the left mouse button, and the state of the mouse button is up&lt;br /&gt;
	if button == &amp;quot;left&amp;quot; and state == &amp;quot;up&amp;quot; then&lt;br /&gt;
		-- move the input focus back onto the game (allowing players to move around, open the chatbox, etc)&lt;br /&gt;
		guiSetInputEnabled(false)&lt;br /&gt;
		-- hide the window and all the components&lt;br /&gt;
		guiSetVisible(wdwLogin, false)&lt;br /&gt;
		-- hide the mouse cursor&lt;br /&gt;
		showCursor(false)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Now, when the button is clicked, the window will be hidden and all controls will be returned to the player. Next, we will tell the server to allow the player to spawn.&lt;br /&gt;
&lt;br /&gt;
===Triggering the server===&lt;br /&gt;
Triggering the server can be done using [[triggerServerEvent]]. This allows you to trigger a specified event on the server from the client. The same can be done in reverse using [[triggerClientEvent]].&lt;br /&gt;
Here, we use the [[triggerServerEvent]] function to call our own custom event on the server, named &amp;quot;submitLogin&amp;quot;, which will then control the spawning of the player serverside.&lt;br /&gt;
&lt;br /&gt;
'''Note that we are now writing more code for our existing 'clientSubmitLogin' function. This is not a new function and is meant to replace what you already have.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function clientSubmitLogin(button,state)&lt;br /&gt;
	if button == &amp;quot;left&amp;quot; and state == &amp;quot;up&amp;quot; then&lt;br /&gt;
		-- get the text entered in the 'username' field&lt;br /&gt;
		local username = guiGetText(edtUser)&lt;br /&gt;
		-- get the text entered in the 'password' field&lt;br /&gt;
		local password = guiGetText(edtPass)&lt;br /&gt;
&lt;br /&gt;
		-- if the username and password both exist&lt;br /&gt;
		if username and password then&lt;br /&gt;
			-- trigger the server event 'submitLogin' and pass the username and password to it&lt;br /&gt;
			triggerServerEvent(&amp;quot;submitLogin&amp;quot;, getRootElement(), username, password)&lt;br /&gt;
&lt;br /&gt;
			-- hide the gui, hide the cursor and return control to the player&lt;br /&gt;
			guiSetInputEnabled(false)&lt;br /&gt;
			guiSetVisible(wdwLogin, false)&lt;br /&gt;
			showCursor(false)&lt;br /&gt;
		else&lt;br /&gt;
			-- otherwise, output a message to the player, do not trigger the server&lt;br /&gt;
			-- and do not hide the gui&lt;br /&gt;
			outputChatBox(&amp;quot;Please enter a username and password.&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Creating the serverside event===&lt;br /&gt;
At this point we now have all the code needed on the client side, so open up your serverside 'script.lua' file (from the [[Scripting Introduction|Introduction to Scripting]]) or another suitable serverside file to work with.&lt;br /&gt;
&lt;br /&gt;
On the server side, recall that we are spawning the player as soon as they login.&lt;br /&gt;
So, first of all, we will need to define the custom event that we used before on the client. This can be done using [[addEvent]] and [[addEventHandler]].&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- create our loginHandler function, with username and password parameters (passed from the client gui)&lt;br /&gt;
function loginHandler(username,password)&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- define our custom event, and allow it to be triggered from the client ('true')&lt;br /&gt;
addEvent(&amp;quot;submitLogin&amp;quot;,true)&lt;br /&gt;
-- add an event handler so that when submitLogin is triggered, the function loginHandler is called&lt;br /&gt;
addEventHandler(&amp;quot;submitLogin&amp;quot;,root,loginHandler)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logging in===&lt;br /&gt;
Now we have a function that is called through the custom event 'submitLogin', we can start to work on logging in and spawning the player, using our 'loginHandler' function:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function loginHandler(username,password)&lt;br /&gt;
	-- check that the username and password are correct&lt;br /&gt;
	if username == &amp;quot;user&amp;quot; and password == &amp;quot;apple&amp;quot; then&lt;br /&gt;
		-- the player has successfully logged in, so spawn them&lt;br /&gt;
		if (client) then&lt;br /&gt;
			spawnPlayer(client, 1959.55, -1714.46, 10)&lt;br /&gt;
			fadeCamera(client, true)&lt;br /&gt;
                        setCameraTarget(client, client)&lt;br /&gt;
			outputChatBox(&amp;quot;Welcome to My Server.&amp;quot;, client)&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		-- if the username or password are not correct, output a message to the player&lt;br /&gt;
		outputChatBox(&amp;quot;Invalid username and password. Please re-connect and try again.&amp;quot;,client)&lt;br /&gt;
        end			&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
addEvent(&amp;quot;submitLogin&amp;quot;,true)&lt;br /&gt;
addEventHandler(&amp;quot;submitLogin&amp;quot;,root,loginHandler)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
'''For the purposes of this tutorial, a very basic username and password system is shown. For a more comprehensive alternative, you can use the Account System or a MySQL database.'''&lt;br /&gt;
&lt;br /&gt;
Also note the use of the variable &amp;quot;client&amp;quot;, it's an internal variable used by MTA to identify the player who triggered the event. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finally, do not forget to include the new gui.lua file in the meta.xml of the main resource, and label it as a client script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;client/gui.lua&amp;quot; type=&amp;quot;client&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this point, we now have a basic login window that checks the player's username and password when the login button is clicked. If they are correct, the player is automatically spawned.&lt;br /&gt;
&lt;br /&gt;
For further help with GUI, see the [[:Category:GUI_Tutorials|GUI tutorials]].&lt;br /&gt;
&lt;br /&gt;
[[Category:GUI_Tutorials]]&lt;br /&gt;
[[it:Introduzione_allo_scripting_della_GUI]]&lt;br /&gt;
[[ru:Introduction to Scripting the GUI]]&lt;br /&gt;
[[es:Introducción a la Programación de GUI]]&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Introduction_to_Scripting_the_GUI&amp;diff=47502</id>
		<title>HU/Introduction to Scripting the GUI</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Introduction_to_Scripting_the_GUI&amp;diff=47502"/>
		<updated>2016-05-14T13:44:04Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- place holder --&amp;gt;&lt;br /&gt;
Egy fontos funkciója az MTAnak az egyedi GUI, azaz Graphic User Interface, magyarul Grafikus Felhasználói Felület létrehozása. A GUI állhat ablakokból, gombokból, beviteli mezőkből, illetve jelölőnégyzetekből. Majdnem minden standard formájú alkotórész a grafikus környezetből. Meglehetnek jelenítve, miközben a játékos játszik, és lehet őket használni bemenetre és kimenetre hagyományos parancsok helyett.&lt;br /&gt;
&lt;br /&gt;
[[Image:AdminGUI.png|thumb|Admin Console GUI]]&lt;br /&gt;
&lt;br /&gt;
==Egy oktatás egy bejelentkező ablak létrehozásához==&lt;br /&gt;
Ebben az oktatásban létre fogunk hozni egy sima bejelentkező ablakot, két bemeneti mezővel és egy gombbal. Az ablak akkor fog megjelenni, amikor a játékos belép a játékba, és amikor a gomb meglesz nyomva, a játékos lefog spawnolni. Ez az oktatás folytatni fogja azt a gamemodet, amit elkészítettünk a [[HU/Scripting_Introduction|Bevezetés a scriptelésbe]] részlegben.&lt;br /&gt;
''(Ha használtad a [[HU/Scripting_Introduction|Bevezetés a scriptelésbe]] részleget, kikell törölnöd, vagy kommentelned a [[spawnPlayer]] sort a &amp;quot;csatlakozasKezelo&amp;quot; funkcióban, mivel helyettesíteni fogjuk egy GUI alternatívával ebben az oktatásban-)'' És befogunk tekinteni a kliens-oldali scriptelésbe is.&lt;br /&gt;
&lt;br /&gt;
===Draw the window===&lt;br /&gt;
All the GUI must be made client side. It is also a good practice to keep all the client scripts in a separate folder. &lt;br /&gt;
&lt;br /&gt;
Browse to /Your MTA Server/mods/deathmatch/resources/myserver/ directory, and create a folder named &amp;quot;client&amp;quot;. Under /client/ directory, create a text file and name it &amp;quot;gui.lua&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
In this file we will write a funtion that draws the window. To create a window we will use [[guiCreateWindow]]:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function createLoginWindow()&lt;br /&gt;
	-- define the X and Y positions of the window&lt;br /&gt;
	local X = 0.375&lt;br /&gt;
	local Y = 0.375&lt;br /&gt;
	-- define the width and height of the window&lt;br /&gt;
	local Width = 0.25&lt;br /&gt;
	local Height = 0.25&lt;br /&gt;
	-- create the window and save its element value into the variable 'wdwLogin'&lt;br /&gt;
	-- click on the function's name to read its documentation&lt;br /&gt;
	wdwLogin = guiCreateWindow(X, Y, Width, Height, &amp;quot;Please Log In&amp;quot;, true)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Relative and Absolute===&lt;br /&gt;
Note that the final argument passed to guiCreateWindow in the above example is ''true''. This indicates that the coordinates and dimensions of the window are '''relative''', meaning they are a ''percentage'' of the total screen size. This means that if the far left side of the screen is 0, and the far right is 1, an X position of 0.5 would represent the centre point of the screen. Similarly, if the top of the screen is 0 and the bottom is 1, a Y position of 0.2 would be 20% of the way down the screen. The same principles apply to both Width and Height as well (with a Width value of 0.5 meaning the window will be half as wide as the screen).&lt;br /&gt;
&lt;br /&gt;
The alternative to using relative values is using '''absolute''' (by passing ''false'' instead of true to guiCreateWindow). Absolute values are calculated as the total number of pixels from the top-left corner of the parent (if no gui element parent is specified, the parent is the screen itself). If we assume a screen resolution of 1920x1200, the far left side of the screen being 0 pixels and the far right being 1920 pixels, an X position of 960 will represent the centre point of the screen. Similarly, if the top of the screen is 0 pixels and the bottom is 1200, a Y position of 20 would be 20 pixels down from the top of the screen. The same principles apply to both Width and Height as well (with a Width value of 50 meaning the window will be 50 pixels wide). ''You can use [[guiGetScreenSize]] and a little maths to calculate certain absolute positions.''&lt;br /&gt;
&lt;br /&gt;
The differences between using relative and absolute values is quite simple; gui created using absolute values will always remain exactly the same pixel size and position, while gui created using relative values will always be a percentage of its parent's size.&lt;br /&gt;
&lt;br /&gt;
Absolute is generally easier to maintain when editing code by hand, however your choice of type depends on the situation you are using it for.&lt;br /&gt;
&lt;br /&gt;
For the purposes of this introduction we will be using relative values.&lt;br /&gt;
&lt;br /&gt;
===Adding the components===&lt;br /&gt;
Next, we'll add the text labels (saying &amp;quot;username:&amp;quot; and &amp;quot;password:&amp;quot;), edit boxes (for entering your data) and a button to log in.&lt;br /&gt;
&lt;br /&gt;
To create buttons we use [[guiCreateButton]] and to create edit boxes use [[guiCreateEdit]]:&lt;br /&gt;
&lt;br /&gt;
'''Note that we are now writing more code for our existing 'createLoginWindow' function. This is not a new function and is meant to replace what you already have.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function createLoginWindow()&lt;br /&gt;
	local X = 0.375&lt;br /&gt;
	local Y = 0.375&lt;br /&gt;
	local Width = 0.25&lt;br /&gt;
	local Height = 0.25&lt;br /&gt;
	wdwLogin = guiCreateWindow(X, Y, Width, Height, &amp;quot;Please Log In&amp;quot;, true)&lt;br /&gt;
	&lt;br /&gt;
	-- define new X and Y positions for the first label&lt;br /&gt;
	X = 0.0825&lt;br /&gt;
	Y = 0.2&lt;br /&gt;
	-- define new Width and Height values for the first label&lt;br /&gt;
	Width = 0.25&lt;br /&gt;
	Height = 0.25&lt;br /&gt;
	-- create the first label, note the final argument passed is 'wdwLogin' meaning the window&lt;br /&gt;
	-- we created above is the parent of this label (so all the position and size values are now relative to the position of that window)&lt;br /&gt;
	guiCreateLabel(X, Y, Width, Height, &amp;quot;Username&amp;quot;, true, wdwLogin)&lt;br /&gt;
	-- alter the Y value, so the second label is slightly below the first&lt;br /&gt;
	Y = 0.5&lt;br /&gt;
	guiCreateLabel(X, Y, Width, Height, &amp;quot;Password&amp;quot;, true, wdwLogin)&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
	X = 0.415&lt;br /&gt;
	Y = 0.2&lt;br /&gt;
	Width = 0.5&lt;br /&gt;
	Height = 0.15&lt;br /&gt;
	edtUser = guiCreateEdit(X, Y, Width, Height, &amp;quot;&amp;quot;, true, wdwLogin)&lt;br /&gt;
	Y = 0.5&lt;br /&gt;
	edtPass = guiCreateEdit(X, Y, Width, Height, &amp;quot;&amp;quot;, true, wdwLogin)&lt;br /&gt;
	-- set the maximum character length for the username and password fields to 50&lt;br /&gt;
	guiEditSetMaxLength(edtUser, 50)&lt;br /&gt;
	guiEditSetMaxLength(edtPass, 50)&lt;br /&gt;
	&lt;br /&gt;
	X = 0.415&lt;br /&gt;
	Y = 0.7&lt;br /&gt;
	Width = 0.25&lt;br /&gt;
	Height = 0.2&lt;br /&gt;
	btnLogin = guiCreateButton(X, Y, Width, Height, &amp;quot;Log In&amp;quot;, true, wdwLogin)&lt;br /&gt;
	&lt;br /&gt;
	-- make the window invisible&lt;br /&gt;
	guiSetVisible(wdwLogin, false)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that every GUI component created is a child of the window, this is done by specifying the parent element (wdwLogin, in this case) when creating the component. &lt;br /&gt;
&lt;br /&gt;
This is very useful because not only does it mean that all the components are attached to the window and will move with it, but also that any changes done to the parent window will be applied down the tree to these child components. For example, we can now hide all of the GUI we just created by simply hiding the window:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
guiSetVisible(wdwLogin, false) --hides all the GUI we made so we can show them to the player at the appropriate moment. &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Using the function we wrote===&lt;br /&gt;
The createLoginWindow function is now complete, but it won't do anything until we call it. It is recommended to create all GUI when the client resource starts, hide them, and show them to the player later when needed. Therefore, we'll write an event handler for &amp;quot;[[onClientResourceStart]]&amp;quot; to create the window:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- attach the event handler to the root element of the resource&lt;br /&gt;
-- this means it will only trigger when its own resource is started&lt;br /&gt;
addEventHandler(&amp;quot;onClientResourceStart&amp;quot;, getResourceRootElement(), &lt;br /&gt;
	function ()&lt;br /&gt;
		createLoginWindow()&lt;br /&gt;
	end&lt;br /&gt;
)	&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As this is a log in window, we now need to show the window when the player joins the game. &lt;br /&gt;
This can be done using the same event, &amp;quot;[[onClientResourceStart]]&amp;quot;, so we can modify the above code to include showing the window:&lt;br /&gt;
&lt;br /&gt;
'''Note that we are now writing more code for our existing 'onClientResourceStart' handler. This is not a new event handler and is meant to replace what you already have.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
addEventHandler(&amp;quot;onClientResourceStart&amp;quot;, getResourceRootElement(), &lt;br /&gt;
	function ()&lt;br /&gt;
		-- create the log in window and its components&lt;br /&gt;
		createLoginWindow()&lt;br /&gt;
&lt;br /&gt;
		-- output a brief welcome message to the player&lt;br /&gt;
                outputChatBox(&amp;quot;Welcome to My MTA:SA Server, please log in.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
		-- if the GUI was successfully created, then show the GUI to the player&lt;br /&gt;
	        if (wdwLogin ~= nil) then&lt;br /&gt;
			guiSetVisible(wdwLogin, true)&lt;br /&gt;
		else&lt;br /&gt;
			-- if the GUI hasnt been properly created, tell the player&lt;br /&gt;
			outputChatBox(&amp;quot;An unexpected error has occurred and the log in GUI has not been created.&amp;quot;)&lt;br /&gt;
	        end &lt;br /&gt;
&lt;br /&gt;
		-- enable the players cursor (so they can select and click on the components)&lt;br /&gt;
	        showCursor(true)&lt;br /&gt;
		-- set the input focus onto the GUI, allowing players (for example) to press 'T' without the chatbox opening&lt;br /&gt;
	        guiSetInputEnabled(true)&lt;br /&gt;
	end&lt;br /&gt;
)	&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that we have a simple security check before making the window visible, so in the unlikely event that the window has not been created, meaning wdwLogin is not a valid element, we don't get an error and just inform the player what has happened. &lt;br /&gt;
In the next step, we will create the button functionality for the log in button.&lt;br /&gt;
&lt;br /&gt;
==Scripting the button==&lt;br /&gt;
Now that we have created our GUI and shown it to the player, we need to make it work. &lt;br /&gt;
&lt;br /&gt;
===Detecting the click===&lt;br /&gt;
When the player clicks on any part of the GUI, the event &amp;quot;[[onClientGUIClick]]&amp;quot; will be triggered for the GUI component you clicked on. This allows us to easily detect any clicks on the GUI elements we want to use.&lt;br /&gt;
For example, we can attach the event to the btnLogin button to catch any clicks on it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- attach the event onClientGUIClick to btnLogin and set it to trigger the 'clientSubmitLogin' function&lt;br /&gt;
addEventHandler(&amp;quot;onClientGUIClick&amp;quot;, btnLogin, clientSubmitLogin, false)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
'''Note the final argument passed is &amp;quot;false&amp;quot;. This indicates that the event will only trigger directly on btnLogin, not if the event has propagated up or down the tree. Setting this to &amp;quot;true&amp;quot; while attaching to gui elements will mean that clicking on any element in the same branch will trigger this event.'''&lt;br /&gt;
&lt;br /&gt;
This line of code can now be added inside the createLoginWindow function. It is a common mistake to try and attach events to non-existant GUI elements, so make sure you always attach your events '''after''' the gui element (in this case, the button) has been created:&lt;br /&gt;
&lt;br /&gt;
'''Note that we are now writing more code for our existing 'createLoginWindow' function.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function createLoginWindow()&lt;br /&gt;
	-- create all our GUI elements&lt;br /&gt;
	...&lt;br /&gt;
&lt;br /&gt;
	-- now add our onClientGUIClick event to the button we just created&lt;br /&gt;
	addEventHandler(&amp;quot;onClientGUIClick&amp;quot;, btnLogin, clientSubmitLogin, false)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Managing the click===&lt;br /&gt;
Now that we can detect when the player clicks on the button, we need to write code to manage what happens when they do.&lt;br /&gt;
In our [[onClientGUIClick]] event handle, we told it to call the function clientSubmitLogin whenever btnLogin is clicked.&lt;br /&gt;
Therefore, we can now use the function clientSubmitLogin to control what happens when the button is clicked:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- create the function and define the 'button' and 'state' parameters&lt;br /&gt;
-- (these are passed automatically by onClientGUIClick)&lt;br /&gt;
function clientSubmitLogin(button,state)&lt;br /&gt;
	-- if our login button was clicked with the left mouse button, and the state of the mouse button is up&lt;br /&gt;
	if button == &amp;quot;left&amp;quot; and state == &amp;quot;up&amp;quot; then&lt;br /&gt;
		-- move the input focus back onto the game (allowing players to move around, open the chatbox, etc)&lt;br /&gt;
		guiSetInputEnabled(false)&lt;br /&gt;
		-- hide the window and all the components&lt;br /&gt;
		guiSetVisible(wdwLogin, false)&lt;br /&gt;
		-- hide the mouse cursor&lt;br /&gt;
		showCursor(false)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Now, when the button is clicked, the window will be hidden and all controls will be returned to the player. Next, we will tell the server to allow the player to spawn.&lt;br /&gt;
&lt;br /&gt;
===Triggering the server===&lt;br /&gt;
Triggering the server can be done using [[triggerServerEvent]]. This allows you to trigger a specified event on the server from the client. The same can be done in reverse using [[triggerClientEvent]].&lt;br /&gt;
Here, we use the [[triggerServerEvent]] function to call our own custom event on the server, named &amp;quot;submitLogin&amp;quot;, which will then control the spawning of the player serverside.&lt;br /&gt;
&lt;br /&gt;
'''Note that we are now writing more code for our existing 'clientSubmitLogin' function. This is not a new function and is meant to replace what you already have.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function clientSubmitLogin(button,state)&lt;br /&gt;
	if button == &amp;quot;left&amp;quot; and state == &amp;quot;up&amp;quot; then&lt;br /&gt;
		-- get the text entered in the 'username' field&lt;br /&gt;
		local username = guiGetText(edtUser)&lt;br /&gt;
		-- get the text entered in the 'password' field&lt;br /&gt;
		local password = guiGetText(edtPass)&lt;br /&gt;
&lt;br /&gt;
		-- if the username and password both exist&lt;br /&gt;
		if username and password then&lt;br /&gt;
			-- trigger the server event 'submitLogin' and pass the username and password to it&lt;br /&gt;
			triggerServerEvent(&amp;quot;submitLogin&amp;quot;, getRootElement(), username, password)&lt;br /&gt;
&lt;br /&gt;
			-- hide the gui, hide the cursor and return control to the player&lt;br /&gt;
			guiSetInputEnabled(false)&lt;br /&gt;
			guiSetVisible(wdwLogin, false)&lt;br /&gt;
			showCursor(false)&lt;br /&gt;
		else&lt;br /&gt;
			-- otherwise, output a message to the player, do not trigger the server&lt;br /&gt;
			-- and do not hide the gui&lt;br /&gt;
			outputChatBox(&amp;quot;Please enter a username and password.&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Creating the serverside event===&lt;br /&gt;
At this point we now have all the code needed on the client side, so open up your serverside 'script.lua' file (from the [[Scripting Introduction|Introduction to Scripting]]) or another suitable serverside file to work with.&lt;br /&gt;
&lt;br /&gt;
On the server side, recall that we are spawning the player as soon as they login.&lt;br /&gt;
So, first of all, we will need to define the custom event that we used before on the client. This can be done using [[addEvent]] and [[addEventHandler]].&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- create our loginHandler function, with username and password parameters (passed from the client gui)&lt;br /&gt;
function loginHandler(username,password)&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- define our custom event, and allow it to be triggered from the client ('true')&lt;br /&gt;
addEvent(&amp;quot;submitLogin&amp;quot;,true)&lt;br /&gt;
-- add an event handler so that when submitLogin is triggered, the function loginHandler is called&lt;br /&gt;
addEventHandler(&amp;quot;submitLogin&amp;quot;,root,loginHandler)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logging in===&lt;br /&gt;
Now we have a function that is called through the custom event 'submitLogin', we can start to work on logging in and spawning the player, using our 'loginHandler' function:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function loginHandler(username,password)&lt;br /&gt;
	-- check that the username and password are correct&lt;br /&gt;
	if username == &amp;quot;user&amp;quot; and password == &amp;quot;apple&amp;quot; then&lt;br /&gt;
		-- the player has successfully logged in, so spawn them&lt;br /&gt;
		if (client) then&lt;br /&gt;
			spawnPlayer(client, 1959.55, -1714.46, 10)&lt;br /&gt;
			fadeCamera(client, true)&lt;br /&gt;
                        setCameraTarget(client, client)&lt;br /&gt;
			outputChatBox(&amp;quot;Welcome to My Server.&amp;quot;, client)&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		-- if the username or password are not correct, output a message to the player&lt;br /&gt;
		outputChatBox(&amp;quot;Invalid username and password. Please re-connect and try again.&amp;quot;,client)&lt;br /&gt;
        end			&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
addEvent(&amp;quot;submitLogin&amp;quot;,true)&lt;br /&gt;
addEventHandler(&amp;quot;submitLogin&amp;quot;,root,loginHandler)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
'''For the purposes of this tutorial, a very basic username and password system is shown. For a more comprehensive alternative, you can use the Account System or a MySQL database.'''&lt;br /&gt;
&lt;br /&gt;
Also note the use of the variable &amp;quot;client&amp;quot;, it's an internal variable used by MTA to identify the player who triggered the event. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finally, do not forget to include the new gui.lua file in the meta.xml of the main resource, and label it as a client script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;client/gui.lua&amp;quot; type=&amp;quot;client&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this point, we now have a basic login window that checks the player's username and password when the login button is clicked. If they are correct, the player is automatically spawned.&lt;br /&gt;
&lt;br /&gt;
For further help with GUI, see the [[:Category:GUI_Tutorials|GUI tutorials]].&lt;br /&gt;
&lt;br /&gt;
[[Category:GUI_Tutorials]]&lt;br /&gt;
[[it:Introduzione_allo_scripting_della_GUI]]&lt;br /&gt;
[[ru:Introduction to Scripting the GUI]]&lt;br /&gt;
[[es:Introducción a la Programación de GUI]]&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Introduction_to_Scripting_the_GUI&amp;diff=47501</id>
		<title>HU/Introduction to Scripting the GUI</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Introduction_to_Scripting_the_GUI&amp;diff=47501"/>
		<updated>2016-05-14T13:41:49Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- place holder --&amp;gt;&lt;br /&gt;
Egy fontos funkciója az MTAnak az egyedi GUI, azaz Graphic User Interface, magyarul Grafikus Felhasználói Felület létrehozása. A GUI állhat ablakokból, gombokból, beviteli mezőkből, illetve jelölőnégyzetekből. Majdnem minden standard formájú alkotórész a grafikus környezetből. Meglehetnek jelenítve, miközben a játékos játszik, és lehet őket használni bemenetre és kimenetre hagyományos parancsok helyett.&lt;br /&gt;
&lt;br /&gt;
[[Image:AdminGUI.png|thumb|Admin Console GUI]]&lt;br /&gt;
&lt;br /&gt;
==Egy oktatás egy bejelentkező ablak létrehozásához==&lt;br /&gt;
Ebben az oktatásban létre fogunk hozni egy sima bejelentkező ablakot, két bemeneti mezővel és egy gombbal. Az ablak akkor fog megjelenni, amikor a játékos belép a játékba, és amikor a gomb meglesz nyomva, a játékos lefog spawnolni. Ez az oktatás folytatni fogja azt a gamemodet, amit elkészítettünk a [[HU/Scripting_Introduction|Bevezetés a scriptelésbe]] részlegben.&lt;br /&gt;
''(Ha használtad a [[HU/Scripting_Introduction|Bevezetés a scriptelésbe]] részleget, kikell törölnöd, vagy kommentelned a [[spawnPlayer]] sort a &amp;quot;csatlakozasKezelo&amp;quot; funkcióban, mivel helyettesíteni fogjuk egy GUI alternatívával ebben az oktatásban.)''. És befogunk tekinteni a kliens-oldali scriptelésbe is.&lt;br /&gt;
&lt;br /&gt;
===Draw the window===&lt;br /&gt;
All the GUI must be made client side. It is also a good practice to keep all the client scripts in a separate folder. &lt;br /&gt;
&lt;br /&gt;
Browse to /Your MTA Server/mods/deathmatch/resources/myserver/ directory, and create a folder named &amp;quot;client&amp;quot;. Under /client/ directory, create a text file and name it &amp;quot;gui.lua&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
In this file we will write a funtion that draws the window. To create a window we will use [[guiCreateWindow]]:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function createLoginWindow()&lt;br /&gt;
	-- define the X and Y positions of the window&lt;br /&gt;
	local X = 0.375&lt;br /&gt;
	local Y = 0.375&lt;br /&gt;
	-- define the width and height of the window&lt;br /&gt;
	local Width = 0.25&lt;br /&gt;
	local Height = 0.25&lt;br /&gt;
	-- create the window and save its element value into the variable 'wdwLogin'&lt;br /&gt;
	-- click on the function's name to read its documentation&lt;br /&gt;
	wdwLogin = guiCreateWindow(X, Y, Width, Height, &amp;quot;Please Log In&amp;quot;, true)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Relative and Absolute===&lt;br /&gt;
Note that the final argument passed to guiCreateWindow in the above example is ''true''. This indicates that the coordinates and dimensions of the window are '''relative''', meaning they are a ''percentage'' of the total screen size. This means that if the far left side of the screen is 0, and the far right is 1, an X position of 0.5 would represent the centre point of the screen. Similarly, if the top of the screen is 0 and the bottom is 1, a Y position of 0.2 would be 20% of the way down the screen. The same principles apply to both Width and Height as well (with a Width value of 0.5 meaning the window will be half as wide as the screen).&lt;br /&gt;
&lt;br /&gt;
The alternative to using relative values is using '''absolute''' (by passing ''false'' instead of true to guiCreateWindow). Absolute values are calculated as the total number of pixels from the top-left corner of the parent (if no gui element parent is specified, the parent is the screen itself). If we assume a screen resolution of 1920x1200, the far left side of the screen being 0 pixels and the far right being 1920 pixels, an X position of 960 will represent the centre point of the screen. Similarly, if the top of the screen is 0 pixels and the bottom is 1200, a Y position of 20 would be 20 pixels down from the top of the screen. The same principles apply to both Width and Height as well (with a Width value of 50 meaning the window will be 50 pixels wide). ''You can use [[guiGetScreenSize]] and a little maths to calculate certain absolute positions.''&lt;br /&gt;
&lt;br /&gt;
The differences between using relative and absolute values is quite simple; gui created using absolute values will always remain exactly the same pixel size and position, while gui created using relative values will always be a percentage of its parent's size.&lt;br /&gt;
&lt;br /&gt;
Absolute is generally easier to maintain when editing code by hand, however your choice of type depends on the situation you are using it for.&lt;br /&gt;
&lt;br /&gt;
For the purposes of this introduction we will be using relative values.&lt;br /&gt;
&lt;br /&gt;
===Adding the components===&lt;br /&gt;
Next, we'll add the text labels (saying &amp;quot;username:&amp;quot; and &amp;quot;password:&amp;quot;), edit boxes (for entering your data) and a button to log in.&lt;br /&gt;
&lt;br /&gt;
To create buttons we use [[guiCreateButton]] and to create edit boxes use [[guiCreateEdit]]:&lt;br /&gt;
&lt;br /&gt;
'''Note that we are now writing more code for our existing 'createLoginWindow' function. This is not a new function and is meant to replace what you already have.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function createLoginWindow()&lt;br /&gt;
	local X = 0.375&lt;br /&gt;
	local Y = 0.375&lt;br /&gt;
	local Width = 0.25&lt;br /&gt;
	local Height = 0.25&lt;br /&gt;
	wdwLogin = guiCreateWindow(X, Y, Width, Height, &amp;quot;Please Log In&amp;quot;, true)&lt;br /&gt;
	&lt;br /&gt;
	-- define new X and Y positions for the first label&lt;br /&gt;
	X = 0.0825&lt;br /&gt;
	Y = 0.2&lt;br /&gt;
	-- define new Width and Height values for the first label&lt;br /&gt;
	Width = 0.25&lt;br /&gt;
	Height = 0.25&lt;br /&gt;
	-- create the first label, note the final argument passed is 'wdwLogin' meaning the window&lt;br /&gt;
	-- we created above is the parent of this label (so all the position and size values are now relative to the position of that window)&lt;br /&gt;
	guiCreateLabel(X, Y, Width, Height, &amp;quot;Username&amp;quot;, true, wdwLogin)&lt;br /&gt;
	-- alter the Y value, so the second label is slightly below the first&lt;br /&gt;
	Y = 0.5&lt;br /&gt;
	guiCreateLabel(X, Y, Width, Height, &amp;quot;Password&amp;quot;, true, wdwLogin)&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
	X = 0.415&lt;br /&gt;
	Y = 0.2&lt;br /&gt;
	Width = 0.5&lt;br /&gt;
	Height = 0.15&lt;br /&gt;
	edtUser = guiCreateEdit(X, Y, Width, Height, &amp;quot;&amp;quot;, true, wdwLogin)&lt;br /&gt;
	Y = 0.5&lt;br /&gt;
	edtPass = guiCreateEdit(X, Y, Width, Height, &amp;quot;&amp;quot;, true, wdwLogin)&lt;br /&gt;
	-- set the maximum character length for the username and password fields to 50&lt;br /&gt;
	guiEditSetMaxLength(edtUser, 50)&lt;br /&gt;
	guiEditSetMaxLength(edtPass, 50)&lt;br /&gt;
	&lt;br /&gt;
	X = 0.415&lt;br /&gt;
	Y = 0.7&lt;br /&gt;
	Width = 0.25&lt;br /&gt;
	Height = 0.2&lt;br /&gt;
	btnLogin = guiCreateButton(X, Y, Width, Height, &amp;quot;Log In&amp;quot;, true, wdwLogin)&lt;br /&gt;
	&lt;br /&gt;
	-- make the window invisible&lt;br /&gt;
	guiSetVisible(wdwLogin, false)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that every GUI component created is a child of the window, this is done by specifying the parent element (wdwLogin, in this case) when creating the component. &lt;br /&gt;
&lt;br /&gt;
This is very useful because not only does it mean that all the components are attached to the window and will move with it, but also that any changes done to the parent window will be applied down the tree to these child components. For example, we can now hide all of the GUI we just created by simply hiding the window:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
guiSetVisible(wdwLogin, false) --hides all the GUI we made so we can show them to the player at the appropriate moment. &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Using the function we wrote===&lt;br /&gt;
The createLoginWindow function is now complete, but it won't do anything until we call it. It is recommended to create all GUI when the client resource starts, hide them, and show them to the player later when needed. Therefore, we'll write an event handler for &amp;quot;[[onClientResourceStart]]&amp;quot; to create the window:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- attach the event handler to the root element of the resource&lt;br /&gt;
-- this means it will only trigger when its own resource is started&lt;br /&gt;
addEventHandler(&amp;quot;onClientResourceStart&amp;quot;, getResourceRootElement(), &lt;br /&gt;
	function ()&lt;br /&gt;
		createLoginWindow()&lt;br /&gt;
	end&lt;br /&gt;
)	&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As this is a log in window, we now need to show the window when the player joins the game. &lt;br /&gt;
This can be done using the same event, &amp;quot;[[onClientResourceStart]]&amp;quot;, so we can modify the above code to include showing the window:&lt;br /&gt;
&lt;br /&gt;
'''Note that we are now writing more code for our existing 'onClientResourceStart' handler. This is not a new event handler and is meant to replace what you already have.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
addEventHandler(&amp;quot;onClientResourceStart&amp;quot;, getResourceRootElement(), &lt;br /&gt;
	function ()&lt;br /&gt;
		-- create the log in window and its components&lt;br /&gt;
		createLoginWindow()&lt;br /&gt;
&lt;br /&gt;
		-- output a brief welcome message to the player&lt;br /&gt;
                outputChatBox(&amp;quot;Welcome to My MTA:SA Server, please log in.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
		-- if the GUI was successfully created, then show the GUI to the player&lt;br /&gt;
	        if (wdwLogin ~= nil) then&lt;br /&gt;
			guiSetVisible(wdwLogin, true)&lt;br /&gt;
		else&lt;br /&gt;
			-- if the GUI hasnt been properly created, tell the player&lt;br /&gt;
			outputChatBox(&amp;quot;An unexpected error has occurred and the log in GUI has not been created.&amp;quot;)&lt;br /&gt;
	        end &lt;br /&gt;
&lt;br /&gt;
		-- enable the players cursor (so they can select and click on the components)&lt;br /&gt;
	        showCursor(true)&lt;br /&gt;
		-- set the input focus onto the GUI, allowing players (for example) to press 'T' without the chatbox opening&lt;br /&gt;
	        guiSetInputEnabled(true)&lt;br /&gt;
	end&lt;br /&gt;
)	&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that we have a simple security check before making the window visible, so in the unlikely event that the window has not been created, meaning wdwLogin is not a valid element, we don't get an error and just inform the player what has happened. &lt;br /&gt;
In the next step, we will create the button functionality for the log in button.&lt;br /&gt;
&lt;br /&gt;
==Scripting the button==&lt;br /&gt;
Now that we have created our GUI and shown it to the player, we need to make it work. &lt;br /&gt;
&lt;br /&gt;
===Detecting the click===&lt;br /&gt;
When the player clicks on any part of the GUI, the event &amp;quot;[[onClientGUIClick]]&amp;quot; will be triggered for the GUI component you clicked on. This allows us to easily detect any clicks on the GUI elements we want to use.&lt;br /&gt;
For example, we can attach the event to the btnLogin button to catch any clicks on it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- attach the event onClientGUIClick to btnLogin and set it to trigger the 'clientSubmitLogin' function&lt;br /&gt;
addEventHandler(&amp;quot;onClientGUIClick&amp;quot;, btnLogin, clientSubmitLogin, false)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
'''Note the final argument passed is &amp;quot;false&amp;quot;. This indicates that the event will only trigger directly on btnLogin, not if the event has propagated up or down the tree. Setting this to &amp;quot;true&amp;quot; while attaching to gui elements will mean that clicking on any element in the same branch will trigger this event.'''&lt;br /&gt;
&lt;br /&gt;
This line of code can now be added inside the createLoginWindow function. It is a common mistake to try and attach events to non-existant GUI elements, so make sure you always attach your events '''after''' the gui element (in this case, the button) has been created:&lt;br /&gt;
&lt;br /&gt;
'''Note that we are now writing more code for our existing 'createLoginWindow' function.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function createLoginWindow()&lt;br /&gt;
	-- create all our GUI elements&lt;br /&gt;
	...&lt;br /&gt;
&lt;br /&gt;
	-- now add our onClientGUIClick event to the button we just created&lt;br /&gt;
	addEventHandler(&amp;quot;onClientGUIClick&amp;quot;, btnLogin, clientSubmitLogin, false)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Managing the click===&lt;br /&gt;
Now that we can detect when the player clicks on the button, we need to write code to manage what happens when they do.&lt;br /&gt;
In our [[onClientGUIClick]] event handle, we told it to call the function clientSubmitLogin whenever btnLogin is clicked.&lt;br /&gt;
Therefore, we can now use the function clientSubmitLogin to control what happens when the button is clicked:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- create the function and define the 'button' and 'state' parameters&lt;br /&gt;
-- (these are passed automatically by onClientGUIClick)&lt;br /&gt;
function clientSubmitLogin(button,state)&lt;br /&gt;
	-- if our login button was clicked with the left mouse button, and the state of the mouse button is up&lt;br /&gt;
	if button == &amp;quot;left&amp;quot; and state == &amp;quot;up&amp;quot; then&lt;br /&gt;
		-- move the input focus back onto the game (allowing players to move around, open the chatbox, etc)&lt;br /&gt;
		guiSetInputEnabled(false)&lt;br /&gt;
		-- hide the window and all the components&lt;br /&gt;
		guiSetVisible(wdwLogin, false)&lt;br /&gt;
		-- hide the mouse cursor&lt;br /&gt;
		showCursor(false)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Now, when the button is clicked, the window will be hidden and all controls will be returned to the player. Next, we will tell the server to allow the player to spawn.&lt;br /&gt;
&lt;br /&gt;
===Triggering the server===&lt;br /&gt;
Triggering the server can be done using [[triggerServerEvent]]. This allows you to trigger a specified event on the server from the client. The same can be done in reverse using [[triggerClientEvent]].&lt;br /&gt;
Here, we use the [[triggerServerEvent]] function to call our own custom event on the server, named &amp;quot;submitLogin&amp;quot;, which will then control the spawning of the player serverside.&lt;br /&gt;
&lt;br /&gt;
'''Note that we are now writing more code for our existing 'clientSubmitLogin' function. This is not a new function and is meant to replace what you already have.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function clientSubmitLogin(button,state)&lt;br /&gt;
	if button == &amp;quot;left&amp;quot; and state == &amp;quot;up&amp;quot; then&lt;br /&gt;
		-- get the text entered in the 'username' field&lt;br /&gt;
		local username = guiGetText(edtUser)&lt;br /&gt;
		-- get the text entered in the 'password' field&lt;br /&gt;
		local password = guiGetText(edtPass)&lt;br /&gt;
&lt;br /&gt;
		-- if the username and password both exist&lt;br /&gt;
		if username and password then&lt;br /&gt;
			-- trigger the server event 'submitLogin' and pass the username and password to it&lt;br /&gt;
			triggerServerEvent(&amp;quot;submitLogin&amp;quot;, getRootElement(), username, password)&lt;br /&gt;
&lt;br /&gt;
			-- hide the gui, hide the cursor and return control to the player&lt;br /&gt;
			guiSetInputEnabled(false)&lt;br /&gt;
			guiSetVisible(wdwLogin, false)&lt;br /&gt;
			showCursor(false)&lt;br /&gt;
		else&lt;br /&gt;
			-- otherwise, output a message to the player, do not trigger the server&lt;br /&gt;
			-- and do not hide the gui&lt;br /&gt;
			outputChatBox(&amp;quot;Please enter a username and password.&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Creating the serverside event===&lt;br /&gt;
At this point we now have all the code needed on the client side, so open up your serverside 'script.lua' file (from the [[Scripting Introduction|Introduction to Scripting]]) or another suitable serverside file to work with.&lt;br /&gt;
&lt;br /&gt;
On the server side, recall that we are spawning the player as soon as they login.&lt;br /&gt;
So, first of all, we will need to define the custom event that we used before on the client. This can be done using [[addEvent]] and [[addEventHandler]].&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- create our loginHandler function, with username and password parameters (passed from the client gui)&lt;br /&gt;
function loginHandler(username,password)&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- define our custom event, and allow it to be triggered from the client ('true')&lt;br /&gt;
addEvent(&amp;quot;submitLogin&amp;quot;,true)&lt;br /&gt;
-- add an event handler so that when submitLogin is triggered, the function loginHandler is called&lt;br /&gt;
addEventHandler(&amp;quot;submitLogin&amp;quot;,root,loginHandler)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logging in===&lt;br /&gt;
Now we have a function that is called through the custom event 'submitLogin', we can start to work on logging in and spawning the player, using our 'loginHandler' function:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function loginHandler(username,password)&lt;br /&gt;
	-- check that the username and password are correct&lt;br /&gt;
	if username == &amp;quot;user&amp;quot; and password == &amp;quot;apple&amp;quot; then&lt;br /&gt;
		-- the player has successfully logged in, so spawn them&lt;br /&gt;
		if (client) then&lt;br /&gt;
			spawnPlayer(client, 1959.55, -1714.46, 10)&lt;br /&gt;
			fadeCamera(client, true)&lt;br /&gt;
                        setCameraTarget(client, client)&lt;br /&gt;
			outputChatBox(&amp;quot;Welcome to My Server.&amp;quot;, client)&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		-- if the username or password are not correct, output a message to the player&lt;br /&gt;
		outputChatBox(&amp;quot;Invalid username and password. Please re-connect and try again.&amp;quot;,client)&lt;br /&gt;
        end			&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
addEvent(&amp;quot;submitLogin&amp;quot;,true)&lt;br /&gt;
addEventHandler(&amp;quot;submitLogin&amp;quot;,root,loginHandler)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
'''For the purposes of this tutorial, a very basic username and password system is shown. For a more comprehensive alternative, you can use the Account System or a MySQL database.'''&lt;br /&gt;
&lt;br /&gt;
Also note the use of the variable &amp;quot;client&amp;quot;, it's an internal variable used by MTA to identify the player who triggered the event. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finally, do not forget to include the new gui.lua file in the meta.xml of the main resource, and label it as a client script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;client/gui.lua&amp;quot; type=&amp;quot;client&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this point, we now have a basic login window that checks the player's username and password when the login button is clicked. If they are correct, the player is automatically spawned.&lt;br /&gt;
&lt;br /&gt;
For further help with GUI, see the [[:Category:GUI_Tutorials|GUI tutorials]].&lt;br /&gt;
&lt;br /&gt;
[[Category:GUI_Tutorials]]&lt;br /&gt;
[[it:Introduzione_allo_scripting_della_GUI]]&lt;br /&gt;
[[ru:Introduction to Scripting the GUI]]&lt;br /&gt;
[[es:Introducción a la Programación de GUI]]&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Introduction_to_Scripting_the_GUI&amp;diff=47500</id>
		<title>HU/Introduction to Scripting the GUI</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Introduction_to_Scripting_the_GUI&amp;diff=47500"/>
		<updated>2016-05-14T13:41:33Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- place holder --&amp;gt;&lt;br /&gt;
Egy fontos funkciója az MTAnak az egyedi GUI, azaz Graphic User Interface, magyarul Grafikus Felhasználói Felület létrehozása. A GUI állhat ablakokból, gombokból, beviteli mezőkből, illetve jelölőnégyzetekből. Majdnem minden standard formájú alkotórész a grafikus környezetből. Meglehetnek jelenítve, miközben a játékos játszik, és lehet őket használni bemenetre és kimenetre hagyományos parancsok helyett.&lt;br /&gt;
&lt;br /&gt;
[[Image:AdminGUI.png|thumb|Admin Console GUI]]&lt;br /&gt;
&lt;br /&gt;
==Egy oktatás egy bejelentkező ablak létrehozásához==&lt;br /&gt;
Ebben az oktatásban létre fogunk hozni egy sima bejelentkező ablakot, két bemeneti mezővel és egy gombbal. Az ablak akkor fog megjelenni, amikor a játékos belép a játékba, és amikor a gomb meglesz nyomva, a játékos lefog spawnolni. Ez az oktatás folytatni fogja azt a gamemodet, amit elkészítettünk a [[HU/Scripting_Introduction||Bevezetés a scriptelésbe]] részlegben.&lt;br /&gt;
''(Ha használtad a [[HU/Scripting_Introduction||Bevezetés a scriptelésbe]] részleget, kikell törölnöd, vagy kommentelned a [[spawnPlayer]] sort a &amp;quot;csatlakozasKezelo&amp;quot; funkcióban, mivel helyettesíteni fogjuk egy GUI alternatívával ebben az oktatásban.)''. És befogunk tekinteni a kliens-oldali scriptelésbe is.&lt;br /&gt;
&lt;br /&gt;
===Draw the window===&lt;br /&gt;
All the GUI must be made client side. It is also a good practice to keep all the client scripts in a separate folder. &lt;br /&gt;
&lt;br /&gt;
Browse to /Your MTA Server/mods/deathmatch/resources/myserver/ directory, and create a folder named &amp;quot;client&amp;quot;. Under /client/ directory, create a text file and name it &amp;quot;gui.lua&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
In this file we will write a funtion that draws the window. To create a window we will use [[guiCreateWindow]]:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function createLoginWindow()&lt;br /&gt;
	-- define the X and Y positions of the window&lt;br /&gt;
	local X = 0.375&lt;br /&gt;
	local Y = 0.375&lt;br /&gt;
	-- define the width and height of the window&lt;br /&gt;
	local Width = 0.25&lt;br /&gt;
	local Height = 0.25&lt;br /&gt;
	-- create the window and save its element value into the variable 'wdwLogin'&lt;br /&gt;
	-- click on the function's name to read its documentation&lt;br /&gt;
	wdwLogin = guiCreateWindow(X, Y, Width, Height, &amp;quot;Please Log In&amp;quot;, true)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Relative and Absolute===&lt;br /&gt;
Note that the final argument passed to guiCreateWindow in the above example is ''true''. This indicates that the coordinates and dimensions of the window are '''relative''', meaning they are a ''percentage'' of the total screen size. This means that if the far left side of the screen is 0, and the far right is 1, an X position of 0.5 would represent the centre point of the screen. Similarly, if the top of the screen is 0 and the bottom is 1, a Y position of 0.2 would be 20% of the way down the screen. The same principles apply to both Width and Height as well (with a Width value of 0.5 meaning the window will be half as wide as the screen).&lt;br /&gt;
&lt;br /&gt;
The alternative to using relative values is using '''absolute''' (by passing ''false'' instead of true to guiCreateWindow). Absolute values are calculated as the total number of pixels from the top-left corner of the parent (if no gui element parent is specified, the parent is the screen itself). If we assume a screen resolution of 1920x1200, the far left side of the screen being 0 pixels and the far right being 1920 pixels, an X position of 960 will represent the centre point of the screen. Similarly, if the top of the screen is 0 pixels and the bottom is 1200, a Y position of 20 would be 20 pixels down from the top of the screen. The same principles apply to both Width and Height as well (with a Width value of 50 meaning the window will be 50 pixels wide). ''You can use [[guiGetScreenSize]] and a little maths to calculate certain absolute positions.''&lt;br /&gt;
&lt;br /&gt;
The differences between using relative and absolute values is quite simple; gui created using absolute values will always remain exactly the same pixel size and position, while gui created using relative values will always be a percentage of its parent's size.&lt;br /&gt;
&lt;br /&gt;
Absolute is generally easier to maintain when editing code by hand, however your choice of type depends on the situation you are using it for.&lt;br /&gt;
&lt;br /&gt;
For the purposes of this introduction we will be using relative values.&lt;br /&gt;
&lt;br /&gt;
===Adding the components===&lt;br /&gt;
Next, we'll add the text labels (saying &amp;quot;username:&amp;quot; and &amp;quot;password:&amp;quot;), edit boxes (for entering your data) and a button to log in.&lt;br /&gt;
&lt;br /&gt;
To create buttons we use [[guiCreateButton]] and to create edit boxes use [[guiCreateEdit]]:&lt;br /&gt;
&lt;br /&gt;
'''Note that we are now writing more code for our existing 'createLoginWindow' function. This is not a new function and is meant to replace what you already have.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function createLoginWindow()&lt;br /&gt;
	local X = 0.375&lt;br /&gt;
	local Y = 0.375&lt;br /&gt;
	local Width = 0.25&lt;br /&gt;
	local Height = 0.25&lt;br /&gt;
	wdwLogin = guiCreateWindow(X, Y, Width, Height, &amp;quot;Please Log In&amp;quot;, true)&lt;br /&gt;
	&lt;br /&gt;
	-- define new X and Y positions for the first label&lt;br /&gt;
	X = 0.0825&lt;br /&gt;
	Y = 0.2&lt;br /&gt;
	-- define new Width and Height values for the first label&lt;br /&gt;
	Width = 0.25&lt;br /&gt;
	Height = 0.25&lt;br /&gt;
	-- create the first label, note the final argument passed is 'wdwLogin' meaning the window&lt;br /&gt;
	-- we created above is the parent of this label (so all the position and size values are now relative to the position of that window)&lt;br /&gt;
	guiCreateLabel(X, Y, Width, Height, &amp;quot;Username&amp;quot;, true, wdwLogin)&lt;br /&gt;
	-- alter the Y value, so the second label is slightly below the first&lt;br /&gt;
	Y = 0.5&lt;br /&gt;
	guiCreateLabel(X, Y, Width, Height, &amp;quot;Password&amp;quot;, true, wdwLogin)&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
	X = 0.415&lt;br /&gt;
	Y = 0.2&lt;br /&gt;
	Width = 0.5&lt;br /&gt;
	Height = 0.15&lt;br /&gt;
	edtUser = guiCreateEdit(X, Y, Width, Height, &amp;quot;&amp;quot;, true, wdwLogin)&lt;br /&gt;
	Y = 0.5&lt;br /&gt;
	edtPass = guiCreateEdit(X, Y, Width, Height, &amp;quot;&amp;quot;, true, wdwLogin)&lt;br /&gt;
	-- set the maximum character length for the username and password fields to 50&lt;br /&gt;
	guiEditSetMaxLength(edtUser, 50)&lt;br /&gt;
	guiEditSetMaxLength(edtPass, 50)&lt;br /&gt;
	&lt;br /&gt;
	X = 0.415&lt;br /&gt;
	Y = 0.7&lt;br /&gt;
	Width = 0.25&lt;br /&gt;
	Height = 0.2&lt;br /&gt;
	btnLogin = guiCreateButton(X, Y, Width, Height, &amp;quot;Log In&amp;quot;, true, wdwLogin)&lt;br /&gt;
	&lt;br /&gt;
	-- make the window invisible&lt;br /&gt;
	guiSetVisible(wdwLogin, false)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that every GUI component created is a child of the window, this is done by specifying the parent element (wdwLogin, in this case) when creating the component. &lt;br /&gt;
&lt;br /&gt;
This is very useful because not only does it mean that all the components are attached to the window and will move with it, but also that any changes done to the parent window will be applied down the tree to these child components. For example, we can now hide all of the GUI we just created by simply hiding the window:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
guiSetVisible(wdwLogin, false) --hides all the GUI we made so we can show them to the player at the appropriate moment. &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Using the function we wrote===&lt;br /&gt;
The createLoginWindow function is now complete, but it won't do anything until we call it. It is recommended to create all GUI when the client resource starts, hide them, and show them to the player later when needed. Therefore, we'll write an event handler for &amp;quot;[[onClientResourceStart]]&amp;quot; to create the window:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- attach the event handler to the root element of the resource&lt;br /&gt;
-- this means it will only trigger when its own resource is started&lt;br /&gt;
addEventHandler(&amp;quot;onClientResourceStart&amp;quot;, getResourceRootElement(), &lt;br /&gt;
	function ()&lt;br /&gt;
		createLoginWindow()&lt;br /&gt;
	end&lt;br /&gt;
)	&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As this is a log in window, we now need to show the window when the player joins the game. &lt;br /&gt;
This can be done using the same event, &amp;quot;[[onClientResourceStart]]&amp;quot;, so we can modify the above code to include showing the window:&lt;br /&gt;
&lt;br /&gt;
'''Note that we are now writing more code for our existing 'onClientResourceStart' handler. This is not a new event handler and is meant to replace what you already have.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
addEventHandler(&amp;quot;onClientResourceStart&amp;quot;, getResourceRootElement(), &lt;br /&gt;
	function ()&lt;br /&gt;
		-- create the log in window and its components&lt;br /&gt;
		createLoginWindow()&lt;br /&gt;
&lt;br /&gt;
		-- output a brief welcome message to the player&lt;br /&gt;
                outputChatBox(&amp;quot;Welcome to My MTA:SA Server, please log in.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
		-- if the GUI was successfully created, then show the GUI to the player&lt;br /&gt;
	        if (wdwLogin ~= nil) then&lt;br /&gt;
			guiSetVisible(wdwLogin, true)&lt;br /&gt;
		else&lt;br /&gt;
			-- if the GUI hasnt been properly created, tell the player&lt;br /&gt;
			outputChatBox(&amp;quot;An unexpected error has occurred and the log in GUI has not been created.&amp;quot;)&lt;br /&gt;
	        end &lt;br /&gt;
&lt;br /&gt;
		-- enable the players cursor (so they can select and click on the components)&lt;br /&gt;
	        showCursor(true)&lt;br /&gt;
		-- set the input focus onto the GUI, allowing players (for example) to press 'T' without the chatbox opening&lt;br /&gt;
	        guiSetInputEnabled(true)&lt;br /&gt;
	end&lt;br /&gt;
)	&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that we have a simple security check before making the window visible, so in the unlikely event that the window has not been created, meaning wdwLogin is not a valid element, we don't get an error and just inform the player what has happened. &lt;br /&gt;
In the next step, we will create the button functionality for the log in button.&lt;br /&gt;
&lt;br /&gt;
==Scripting the button==&lt;br /&gt;
Now that we have created our GUI and shown it to the player, we need to make it work. &lt;br /&gt;
&lt;br /&gt;
===Detecting the click===&lt;br /&gt;
When the player clicks on any part of the GUI, the event &amp;quot;[[onClientGUIClick]]&amp;quot; will be triggered for the GUI component you clicked on. This allows us to easily detect any clicks on the GUI elements we want to use.&lt;br /&gt;
For example, we can attach the event to the btnLogin button to catch any clicks on it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- attach the event onClientGUIClick to btnLogin and set it to trigger the 'clientSubmitLogin' function&lt;br /&gt;
addEventHandler(&amp;quot;onClientGUIClick&amp;quot;, btnLogin, clientSubmitLogin, false)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
'''Note the final argument passed is &amp;quot;false&amp;quot;. This indicates that the event will only trigger directly on btnLogin, not if the event has propagated up or down the tree. Setting this to &amp;quot;true&amp;quot; while attaching to gui elements will mean that clicking on any element in the same branch will trigger this event.'''&lt;br /&gt;
&lt;br /&gt;
This line of code can now be added inside the createLoginWindow function. It is a common mistake to try and attach events to non-existant GUI elements, so make sure you always attach your events '''after''' the gui element (in this case, the button) has been created:&lt;br /&gt;
&lt;br /&gt;
'''Note that we are now writing more code for our existing 'createLoginWindow' function.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function createLoginWindow()&lt;br /&gt;
	-- create all our GUI elements&lt;br /&gt;
	...&lt;br /&gt;
&lt;br /&gt;
	-- now add our onClientGUIClick event to the button we just created&lt;br /&gt;
	addEventHandler(&amp;quot;onClientGUIClick&amp;quot;, btnLogin, clientSubmitLogin, false)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Managing the click===&lt;br /&gt;
Now that we can detect when the player clicks on the button, we need to write code to manage what happens when they do.&lt;br /&gt;
In our [[onClientGUIClick]] event handle, we told it to call the function clientSubmitLogin whenever btnLogin is clicked.&lt;br /&gt;
Therefore, we can now use the function clientSubmitLogin to control what happens when the button is clicked:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- create the function and define the 'button' and 'state' parameters&lt;br /&gt;
-- (these are passed automatically by onClientGUIClick)&lt;br /&gt;
function clientSubmitLogin(button,state)&lt;br /&gt;
	-- if our login button was clicked with the left mouse button, and the state of the mouse button is up&lt;br /&gt;
	if button == &amp;quot;left&amp;quot; and state == &amp;quot;up&amp;quot; then&lt;br /&gt;
		-- move the input focus back onto the game (allowing players to move around, open the chatbox, etc)&lt;br /&gt;
		guiSetInputEnabled(false)&lt;br /&gt;
		-- hide the window and all the components&lt;br /&gt;
		guiSetVisible(wdwLogin, false)&lt;br /&gt;
		-- hide the mouse cursor&lt;br /&gt;
		showCursor(false)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Now, when the button is clicked, the window will be hidden and all controls will be returned to the player. Next, we will tell the server to allow the player to spawn.&lt;br /&gt;
&lt;br /&gt;
===Triggering the server===&lt;br /&gt;
Triggering the server can be done using [[triggerServerEvent]]. This allows you to trigger a specified event on the server from the client. The same can be done in reverse using [[triggerClientEvent]].&lt;br /&gt;
Here, we use the [[triggerServerEvent]] function to call our own custom event on the server, named &amp;quot;submitLogin&amp;quot;, which will then control the spawning of the player serverside.&lt;br /&gt;
&lt;br /&gt;
'''Note that we are now writing more code for our existing 'clientSubmitLogin' function. This is not a new function and is meant to replace what you already have.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function clientSubmitLogin(button,state)&lt;br /&gt;
	if button == &amp;quot;left&amp;quot; and state == &amp;quot;up&amp;quot; then&lt;br /&gt;
		-- get the text entered in the 'username' field&lt;br /&gt;
		local username = guiGetText(edtUser)&lt;br /&gt;
		-- get the text entered in the 'password' field&lt;br /&gt;
		local password = guiGetText(edtPass)&lt;br /&gt;
&lt;br /&gt;
		-- if the username and password both exist&lt;br /&gt;
		if username and password then&lt;br /&gt;
			-- trigger the server event 'submitLogin' and pass the username and password to it&lt;br /&gt;
			triggerServerEvent(&amp;quot;submitLogin&amp;quot;, getRootElement(), username, password)&lt;br /&gt;
&lt;br /&gt;
			-- hide the gui, hide the cursor and return control to the player&lt;br /&gt;
			guiSetInputEnabled(false)&lt;br /&gt;
			guiSetVisible(wdwLogin, false)&lt;br /&gt;
			showCursor(false)&lt;br /&gt;
		else&lt;br /&gt;
			-- otherwise, output a message to the player, do not trigger the server&lt;br /&gt;
			-- and do not hide the gui&lt;br /&gt;
			outputChatBox(&amp;quot;Please enter a username and password.&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Creating the serverside event===&lt;br /&gt;
At this point we now have all the code needed on the client side, so open up your serverside 'script.lua' file (from the [[Scripting Introduction|Introduction to Scripting]]) or another suitable serverside file to work with.&lt;br /&gt;
&lt;br /&gt;
On the server side, recall that we are spawning the player as soon as they login.&lt;br /&gt;
So, first of all, we will need to define the custom event that we used before on the client. This can be done using [[addEvent]] and [[addEventHandler]].&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- create our loginHandler function, with username and password parameters (passed from the client gui)&lt;br /&gt;
function loginHandler(username,password)&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- define our custom event, and allow it to be triggered from the client ('true')&lt;br /&gt;
addEvent(&amp;quot;submitLogin&amp;quot;,true)&lt;br /&gt;
-- add an event handler so that when submitLogin is triggered, the function loginHandler is called&lt;br /&gt;
addEventHandler(&amp;quot;submitLogin&amp;quot;,root,loginHandler)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logging in===&lt;br /&gt;
Now we have a function that is called through the custom event 'submitLogin', we can start to work on logging in and spawning the player, using our 'loginHandler' function:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function loginHandler(username,password)&lt;br /&gt;
	-- check that the username and password are correct&lt;br /&gt;
	if username == &amp;quot;user&amp;quot; and password == &amp;quot;apple&amp;quot; then&lt;br /&gt;
		-- the player has successfully logged in, so spawn them&lt;br /&gt;
		if (client) then&lt;br /&gt;
			spawnPlayer(client, 1959.55, -1714.46, 10)&lt;br /&gt;
			fadeCamera(client, true)&lt;br /&gt;
                        setCameraTarget(client, client)&lt;br /&gt;
			outputChatBox(&amp;quot;Welcome to My Server.&amp;quot;, client)&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		-- if the username or password are not correct, output a message to the player&lt;br /&gt;
		outputChatBox(&amp;quot;Invalid username and password. Please re-connect and try again.&amp;quot;,client)&lt;br /&gt;
        end			&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
addEvent(&amp;quot;submitLogin&amp;quot;,true)&lt;br /&gt;
addEventHandler(&amp;quot;submitLogin&amp;quot;,root,loginHandler)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
'''For the purposes of this tutorial, a very basic username and password system is shown. For a more comprehensive alternative, you can use the Account System or a MySQL database.'''&lt;br /&gt;
&lt;br /&gt;
Also note the use of the variable &amp;quot;client&amp;quot;, it's an internal variable used by MTA to identify the player who triggered the event. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finally, do not forget to include the new gui.lua file in the meta.xml of the main resource, and label it as a client script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;client/gui.lua&amp;quot; type=&amp;quot;client&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this point, we now have a basic login window that checks the player's username and password when the login button is clicked. If they are correct, the player is automatically spawned.&lt;br /&gt;
&lt;br /&gt;
For further help with GUI, see the [[:Category:GUI_Tutorials|GUI tutorials]].&lt;br /&gt;
&lt;br /&gt;
[[Category:GUI_Tutorials]]&lt;br /&gt;
[[it:Introduzione_allo_scripting_della_GUI]]&lt;br /&gt;
[[ru:Introduction to Scripting the GUI]]&lt;br /&gt;
[[es:Introducción a la Programación de GUI]]&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Introduction_to_Scripting_the_GUI&amp;diff=47499</id>
		<title>HU/Introduction to Scripting the GUI</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Introduction_to_Scripting_the_GUI&amp;diff=47499"/>
		<updated>2016-05-14T13:40:41Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- place holder --&amp;gt;&lt;br /&gt;
Egy fontos funkciója az MTAnak az egyedi GUI, azaz Graphic User Interface, magyarul Grafikus Felhasználói Felület létrehozása. A GUI állhat ablakokból, gombokból, beviteli mezőkből, illetve jelölőnégyzetekből. Majdnem minden standard formájú alkotórész a grafikus környezetből. Meglehetnek jelenítve, miközben a játékos játszik, és lehet őket használni bemenetre és kimenetre hagyományos parancsok helyett.&lt;br /&gt;
&lt;br /&gt;
[[Image:AdminGUI.png|thumb|Admin Console GUI]]&lt;br /&gt;
&lt;br /&gt;
==Egy oktatás egy bejelentkező ablak létrehozásához==&lt;br /&gt;
Ebben az oktatásban létre fogunk hozni egy sima bejelentkező ablakot, két bemeneti mezővel és egy gombbal. Az ablak akkor fog megjelenni, amikor a játékos belép a játékba, és amikor a gomb meglesz nyomva, a játékos lefog spawnolni. Ez az oktatás folytatni fogja azt a gamemodet, amit elkészítettünk a [[HU/Introduction_to_Scripting||Bevezetés a scriptelésbe]] részlegben.&lt;br /&gt;
''(Ha használtad a [[HU/Introduction_to_Scripting||Bevezetés a scriptelésbe]] részleget, kikell törölnöd, vagy kommentelned a [[spawnPlayer]] sort a &amp;quot;csatlakozasKezelo&amp;quot; funkcióban, mivel helyettesíteni fogjuk egy GUI alternatívával ebben az oktatásban.)''. És befogunk tekinteni a kliens-oldali scriptelésbe is.&lt;br /&gt;
&lt;br /&gt;
===Draw the window===&lt;br /&gt;
All the GUI must be made client side. It is also a good practice to keep all the client scripts in a separate folder. &lt;br /&gt;
&lt;br /&gt;
Browse to /Your MTA Server/mods/deathmatch/resources/myserver/ directory, and create a folder named &amp;quot;client&amp;quot;. Under /client/ directory, create a text file and name it &amp;quot;gui.lua&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
In this file we will write a funtion that draws the window. To create a window we will use [[guiCreateWindow]]:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function createLoginWindow()&lt;br /&gt;
	-- define the X and Y positions of the window&lt;br /&gt;
	local X = 0.375&lt;br /&gt;
	local Y = 0.375&lt;br /&gt;
	-- define the width and height of the window&lt;br /&gt;
	local Width = 0.25&lt;br /&gt;
	local Height = 0.25&lt;br /&gt;
	-- create the window and save its element value into the variable 'wdwLogin'&lt;br /&gt;
	-- click on the function's name to read its documentation&lt;br /&gt;
	wdwLogin = guiCreateWindow(X, Y, Width, Height, &amp;quot;Please Log In&amp;quot;, true)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Relative and Absolute===&lt;br /&gt;
Note that the final argument passed to guiCreateWindow in the above example is ''true''. This indicates that the coordinates and dimensions of the window are '''relative''', meaning they are a ''percentage'' of the total screen size. This means that if the far left side of the screen is 0, and the far right is 1, an X position of 0.5 would represent the centre point of the screen. Similarly, if the top of the screen is 0 and the bottom is 1, a Y position of 0.2 would be 20% of the way down the screen. The same principles apply to both Width and Height as well (with a Width value of 0.5 meaning the window will be half as wide as the screen).&lt;br /&gt;
&lt;br /&gt;
The alternative to using relative values is using '''absolute''' (by passing ''false'' instead of true to guiCreateWindow). Absolute values are calculated as the total number of pixels from the top-left corner of the parent (if no gui element parent is specified, the parent is the screen itself). If we assume a screen resolution of 1920x1200, the far left side of the screen being 0 pixels and the far right being 1920 pixels, an X position of 960 will represent the centre point of the screen. Similarly, if the top of the screen is 0 pixels and the bottom is 1200, a Y position of 20 would be 20 pixels down from the top of the screen. The same principles apply to both Width and Height as well (with a Width value of 50 meaning the window will be 50 pixels wide). ''You can use [[guiGetScreenSize]] and a little maths to calculate certain absolute positions.''&lt;br /&gt;
&lt;br /&gt;
The differences between using relative and absolute values is quite simple; gui created using absolute values will always remain exactly the same pixel size and position, while gui created using relative values will always be a percentage of its parent's size.&lt;br /&gt;
&lt;br /&gt;
Absolute is generally easier to maintain when editing code by hand, however your choice of type depends on the situation you are using it for.&lt;br /&gt;
&lt;br /&gt;
For the purposes of this introduction we will be using relative values.&lt;br /&gt;
&lt;br /&gt;
===Adding the components===&lt;br /&gt;
Next, we'll add the text labels (saying &amp;quot;username:&amp;quot; and &amp;quot;password:&amp;quot;), edit boxes (for entering your data) and a button to log in.&lt;br /&gt;
&lt;br /&gt;
To create buttons we use [[guiCreateButton]] and to create edit boxes use [[guiCreateEdit]]:&lt;br /&gt;
&lt;br /&gt;
'''Note that we are now writing more code for our existing 'createLoginWindow' function. This is not a new function and is meant to replace what you already have.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function createLoginWindow()&lt;br /&gt;
	local X = 0.375&lt;br /&gt;
	local Y = 0.375&lt;br /&gt;
	local Width = 0.25&lt;br /&gt;
	local Height = 0.25&lt;br /&gt;
	wdwLogin = guiCreateWindow(X, Y, Width, Height, &amp;quot;Please Log In&amp;quot;, true)&lt;br /&gt;
	&lt;br /&gt;
	-- define new X and Y positions for the first label&lt;br /&gt;
	X = 0.0825&lt;br /&gt;
	Y = 0.2&lt;br /&gt;
	-- define new Width and Height values for the first label&lt;br /&gt;
	Width = 0.25&lt;br /&gt;
	Height = 0.25&lt;br /&gt;
	-- create the first label, note the final argument passed is 'wdwLogin' meaning the window&lt;br /&gt;
	-- we created above is the parent of this label (so all the position and size values are now relative to the position of that window)&lt;br /&gt;
	guiCreateLabel(X, Y, Width, Height, &amp;quot;Username&amp;quot;, true, wdwLogin)&lt;br /&gt;
	-- alter the Y value, so the second label is slightly below the first&lt;br /&gt;
	Y = 0.5&lt;br /&gt;
	guiCreateLabel(X, Y, Width, Height, &amp;quot;Password&amp;quot;, true, wdwLogin)&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
	X = 0.415&lt;br /&gt;
	Y = 0.2&lt;br /&gt;
	Width = 0.5&lt;br /&gt;
	Height = 0.15&lt;br /&gt;
	edtUser = guiCreateEdit(X, Y, Width, Height, &amp;quot;&amp;quot;, true, wdwLogin)&lt;br /&gt;
	Y = 0.5&lt;br /&gt;
	edtPass = guiCreateEdit(X, Y, Width, Height, &amp;quot;&amp;quot;, true, wdwLogin)&lt;br /&gt;
	-- set the maximum character length for the username and password fields to 50&lt;br /&gt;
	guiEditSetMaxLength(edtUser, 50)&lt;br /&gt;
	guiEditSetMaxLength(edtPass, 50)&lt;br /&gt;
	&lt;br /&gt;
	X = 0.415&lt;br /&gt;
	Y = 0.7&lt;br /&gt;
	Width = 0.25&lt;br /&gt;
	Height = 0.2&lt;br /&gt;
	btnLogin = guiCreateButton(X, Y, Width, Height, &amp;quot;Log In&amp;quot;, true, wdwLogin)&lt;br /&gt;
	&lt;br /&gt;
	-- make the window invisible&lt;br /&gt;
	guiSetVisible(wdwLogin, false)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that every GUI component created is a child of the window, this is done by specifying the parent element (wdwLogin, in this case) when creating the component. &lt;br /&gt;
&lt;br /&gt;
This is very useful because not only does it mean that all the components are attached to the window and will move with it, but also that any changes done to the parent window will be applied down the tree to these child components. For example, we can now hide all of the GUI we just created by simply hiding the window:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
guiSetVisible(wdwLogin, false) --hides all the GUI we made so we can show them to the player at the appropriate moment. &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Using the function we wrote===&lt;br /&gt;
The createLoginWindow function is now complete, but it won't do anything until we call it. It is recommended to create all GUI when the client resource starts, hide them, and show them to the player later when needed. Therefore, we'll write an event handler for &amp;quot;[[onClientResourceStart]]&amp;quot; to create the window:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- attach the event handler to the root element of the resource&lt;br /&gt;
-- this means it will only trigger when its own resource is started&lt;br /&gt;
addEventHandler(&amp;quot;onClientResourceStart&amp;quot;, getResourceRootElement(), &lt;br /&gt;
	function ()&lt;br /&gt;
		createLoginWindow()&lt;br /&gt;
	end&lt;br /&gt;
)	&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As this is a log in window, we now need to show the window when the player joins the game. &lt;br /&gt;
This can be done using the same event, &amp;quot;[[onClientResourceStart]]&amp;quot;, so we can modify the above code to include showing the window:&lt;br /&gt;
&lt;br /&gt;
'''Note that we are now writing more code for our existing 'onClientResourceStart' handler. This is not a new event handler and is meant to replace what you already have.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
addEventHandler(&amp;quot;onClientResourceStart&amp;quot;, getResourceRootElement(), &lt;br /&gt;
	function ()&lt;br /&gt;
		-- create the log in window and its components&lt;br /&gt;
		createLoginWindow()&lt;br /&gt;
&lt;br /&gt;
		-- output a brief welcome message to the player&lt;br /&gt;
                outputChatBox(&amp;quot;Welcome to My MTA:SA Server, please log in.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
		-- if the GUI was successfully created, then show the GUI to the player&lt;br /&gt;
	        if (wdwLogin ~= nil) then&lt;br /&gt;
			guiSetVisible(wdwLogin, true)&lt;br /&gt;
		else&lt;br /&gt;
			-- if the GUI hasnt been properly created, tell the player&lt;br /&gt;
			outputChatBox(&amp;quot;An unexpected error has occurred and the log in GUI has not been created.&amp;quot;)&lt;br /&gt;
	        end &lt;br /&gt;
&lt;br /&gt;
		-- enable the players cursor (so they can select and click on the components)&lt;br /&gt;
	        showCursor(true)&lt;br /&gt;
		-- set the input focus onto the GUI, allowing players (for example) to press 'T' without the chatbox opening&lt;br /&gt;
	        guiSetInputEnabled(true)&lt;br /&gt;
	end&lt;br /&gt;
)	&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that we have a simple security check before making the window visible, so in the unlikely event that the window has not been created, meaning wdwLogin is not a valid element, we don't get an error and just inform the player what has happened. &lt;br /&gt;
In the next step, we will create the button functionality for the log in button.&lt;br /&gt;
&lt;br /&gt;
==Scripting the button==&lt;br /&gt;
Now that we have created our GUI and shown it to the player, we need to make it work. &lt;br /&gt;
&lt;br /&gt;
===Detecting the click===&lt;br /&gt;
When the player clicks on any part of the GUI, the event &amp;quot;[[onClientGUIClick]]&amp;quot; will be triggered for the GUI component you clicked on. This allows us to easily detect any clicks on the GUI elements we want to use.&lt;br /&gt;
For example, we can attach the event to the btnLogin button to catch any clicks on it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- attach the event onClientGUIClick to btnLogin and set it to trigger the 'clientSubmitLogin' function&lt;br /&gt;
addEventHandler(&amp;quot;onClientGUIClick&amp;quot;, btnLogin, clientSubmitLogin, false)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
'''Note the final argument passed is &amp;quot;false&amp;quot;. This indicates that the event will only trigger directly on btnLogin, not if the event has propagated up or down the tree. Setting this to &amp;quot;true&amp;quot; while attaching to gui elements will mean that clicking on any element in the same branch will trigger this event.'''&lt;br /&gt;
&lt;br /&gt;
This line of code can now be added inside the createLoginWindow function. It is a common mistake to try and attach events to non-existant GUI elements, so make sure you always attach your events '''after''' the gui element (in this case, the button) has been created:&lt;br /&gt;
&lt;br /&gt;
'''Note that we are now writing more code for our existing 'createLoginWindow' function.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function createLoginWindow()&lt;br /&gt;
	-- create all our GUI elements&lt;br /&gt;
	...&lt;br /&gt;
&lt;br /&gt;
	-- now add our onClientGUIClick event to the button we just created&lt;br /&gt;
	addEventHandler(&amp;quot;onClientGUIClick&amp;quot;, btnLogin, clientSubmitLogin, false)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Managing the click===&lt;br /&gt;
Now that we can detect when the player clicks on the button, we need to write code to manage what happens when they do.&lt;br /&gt;
In our [[onClientGUIClick]] event handle, we told it to call the function clientSubmitLogin whenever btnLogin is clicked.&lt;br /&gt;
Therefore, we can now use the function clientSubmitLogin to control what happens when the button is clicked:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- create the function and define the 'button' and 'state' parameters&lt;br /&gt;
-- (these are passed automatically by onClientGUIClick)&lt;br /&gt;
function clientSubmitLogin(button,state)&lt;br /&gt;
	-- if our login button was clicked with the left mouse button, and the state of the mouse button is up&lt;br /&gt;
	if button == &amp;quot;left&amp;quot; and state == &amp;quot;up&amp;quot; then&lt;br /&gt;
		-- move the input focus back onto the game (allowing players to move around, open the chatbox, etc)&lt;br /&gt;
		guiSetInputEnabled(false)&lt;br /&gt;
		-- hide the window and all the components&lt;br /&gt;
		guiSetVisible(wdwLogin, false)&lt;br /&gt;
		-- hide the mouse cursor&lt;br /&gt;
		showCursor(false)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Now, when the button is clicked, the window will be hidden and all controls will be returned to the player. Next, we will tell the server to allow the player to spawn.&lt;br /&gt;
&lt;br /&gt;
===Triggering the server===&lt;br /&gt;
Triggering the server can be done using [[triggerServerEvent]]. This allows you to trigger a specified event on the server from the client. The same can be done in reverse using [[triggerClientEvent]].&lt;br /&gt;
Here, we use the [[triggerServerEvent]] function to call our own custom event on the server, named &amp;quot;submitLogin&amp;quot;, which will then control the spawning of the player serverside.&lt;br /&gt;
&lt;br /&gt;
'''Note that we are now writing more code for our existing 'clientSubmitLogin' function. This is not a new function and is meant to replace what you already have.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function clientSubmitLogin(button,state)&lt;br /&gt;
	if button == &amp;quot;left&amp;quot; and state == &amp;quot;up&amp;quot; then&lt;br /&gt;
		-- get the text entered in the 'username' field&lt;br /&gt;
		local username = guiGetText(edtUser)&lt;br /&gt;
		-- get the text entered in the 'password' field&lt;br /&gt;
		local password = guiGetText(edtPass)&lt;br /&gt;
&lt;br /&gt;
		-- if the username and password both exist&lt;br /&gt;
		if username and password then&lt;br /&gt;
			-- trigger the server event 'submitLogin' and pass the username and password to it&lt;br /&gt;
			triggerServerEvent(&amp;quot;submitLogin&amp;quot;, getRootElement(), username, password)&lt;br /&gt;
&lt;br /&gt;
			-- hide the gui, hide the cursor and return control to the player&lt;br /&gt;
			guiSetInputEnabled(false)&lt;br /&gt;
			guiSetVisible(wdwLogin, false)&lt;br /&gt;
			showCursor(false)&lt;br /&gt;
		else&lt;br /&gt;
			-- otherwise, output a message to the player, do not trigger the server&lt;br /&gt;
			-- and do not hide the gui&lt;br /&gt;
			outputChatBox(&amp;quot;Please enter a username and password.&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Creating the serverside event===&lt;br /&gt;
At this point we now have all the code needed on the client side, so open up your serverside 'script.lua' file (from the [[Scripting Introduction|Introduction to Scripting]]) or another suitable serverside file to work with.&lt;br /&gt;
&lt;br /&gt;
On the server side, recall that we are spawning the player as soon as they login.&lt;br /&gt;
So, first of all, we will need to define the custom event that we used before on the client. This can be done using [[addEvent]] and [[addEventHandler]].&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- create our loginHandler function, with username and password parameters (passed from the client gui)&lt;br /&gt;
function loginHandler(username,password)&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- define our custom event, and allow it to be triggered from the client ('true')&lt;br /&gt;
addEvent(&amp;quot;submitLogin&amp;quot;,true)&lt;br /&gt;
-- add an event handler so that when submitLogin is triggered, the function loginHandler is called&lt;br /&gt;
addEventHandler(&amp;quot;submitLogin&amp;quot;,root,loginHandler)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logging in===&lt;br /&gt;
Now we have a function that is called through the custom event 'submitLogin', we can start to work on logging in and spawning the player, using our 'loginHandler' function:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function loginHandler(username,password)&lt;br /&gt;
	-- check that the username and password are correct&lt;br /&gt;
	if username == &amp;quot;user&amp;quot; and password == &amp;quot;apple&amp;quot; then&lt;br /&gt;
		-- the player has successfully logged in, so spawn them&lt;br /&gt;
		if (client) then&lt;br /&gt;
			spawnPlayer(client, 1959.55, -1714.46, 10)&lt;br /&gt;
			fadeCamera(client, true)&lt;br /&gt;
                        setCameraTarget(client, client)&lt;br /&gt;
			outputChatBox(&amp;quot;Welcome to My Server.&amp;quot;, client)&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		-- if the username or password are not correct, output a message to the player&lt;br /&gt;
		outputChatBox(&amp;quot;Invalid username and password. Please re-connect and try again.&amp;quot;,client)&lt;br /&gt;
        end			&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
addEvent(&amp;quot;submitLogin&amp;quot;,true)&lt;br /&gt;
addEventHandler(&amp;quot;submitLogin&amp;quot;,root,loginHandler)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
'''For the purposes of this tutorial, a very basic username and password system is shown. For a more comprehensive alternative, you can use the Account System or a MySQL database.'''&lt;br /&gt;
&lt;br /&gt;
Also note the use of the variable &amp;quot;client&amp;quot;, it's an internal variable used by MTA to identify the player who triggered the event. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finally, do not forget to include the new gui.lua file in the meta.xml of the main resource, and label it as a client script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;client/gui.lua&amp;quot; type=&amp;quot;client&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this point, we now have a basic login window that checks the player's username and password when the login button is clicked. If they are correct, the player is automatically spawned.&lt;br /&gt;
&lt;br /&gt;
For further help with GUI, see the [[:Category:GUI_Tutorials|GUI tutorials]].&lt;br /&gt;
&lt;br /&gt;
[[Category:GUI_Tutorials]]&lt;br /&gt;
[[it:Introduzione_allo_scripting_della_GUI]]&lt;br /&gt;
[[ru:Introduction to Scripting the GUI]]&lt;br /&gt;
[[es:Introducción a la Programación de GUI]]&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Introduction_to_Scripting_the_GUI&amp;diff=47498</id>
		<title>HU/Introduction to Scripting the GUI</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Introduction_to_Scripting_the_GUI&amp;diff=47498"/>
		<updated>2016-05-14T13:33:52Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- place holder --&amp;gt;&lt;br /&gt;
Egy fontos funkciója az MTAnak az egyedi GUI, azaz Graphic User Interface, magyarul Grafikus Felhasználói Felület létrehozás. A GUI állhat ablakokból, gombokból, beviteli mezőkből, illetve jelölőnégyzetekből. Majdnem minden standard formájú alkotórész a grafikus környezetből. Meglehetnek jelenítve, miközben a játékos játszik, és lehet őket használni bemenetre és kimenetre hagyományos parancsok helyett.&lt;br /&gt;
&lt;br /&gt;
[[Image:AdminGUI.png|thumb|Admin Console GUI]]&lt;br /&gt;
&lt;br /&gt;
==A tutorial to make a login window==&lt;br /&gt;
In this tutorial we'll make a simple login window, with two input boxes and a button. The window appears when the player joins the game, and once the button is clicked, the player is spawned. The tutorial will continue the gamemode we made in [[Scripting Introduction|Introduction to Scripting]] ''(If you have used the [[Scripting Introduction|Introduction to Scripting]], you will need to remove or comment the [[spawnPlayer]] line in the &amp;quot;joinHandler&amp;quot; function in your code, as we will be replacing it with a gui alternative in this tutorial)''. We'll also take a look at client-side scripting. &lt;br /&gt;
&lt;br /&gt;
===Draw the window===&lt;br /&gt;
All the GUI must be made client side. It is also a good practice to keep all the client scripts in a separate folder. &lt;br /&gt;
&lt;br /&gt;
Browse to /Your MTA Server/mods/deathmatch/resources/myserver/ directory, and create a folder named &amp;quot;client&amp;quot;. Under /client/ directory, create a text file and name it &amp;quot;gui.lua&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
In this file we will write a funtion that draws the window. To create a window we will use [[guiCreateWindow]]:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function createLoginWindow()&lt;br /&gt;
	-- define the X and Y positions of the window&lt;br /&gt;
	local X = 0.375&lt;br /&gt;
	local Y = 0.375&lt;br /&gt;
	-- define the width and height of the window&lt;br /&gt;
	local Width = 0.25&lt;br /&gt;
	local Height = 0.25&lt;br /&gt;
	-- create the window and save its element value into the variable 'wdwLogin'&lt;br /&gt;
	-- click on the function's name to read its documentation&lt;br /&gt;
	wdwLogin = guiCreateWindow(X, Y, Width, Height, &amp;quot;Please Log In&amp;quot;, true)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Relative and Absolute===&lt;br /&gt;
Note that the final argument passed to guiCreateWindow in the above example is ''true''. This indicates that the coordinates and dimensions of the window are '''relative''', meaning they are a ''percentage'' of the total screen size. This means that if the far left side of the screen is 0, and the far right is 1, an X position of 0.5 would represent the centre point of the screen. Similarly, if the top of the screen is 0 and the bottom is 1, a Y position of 0.2 would be 20% of the way down the screen. The same principles apply to both Width and Height as well (with a Width value of 0.5 meaning the window will be half as wide as the screen).&lt;br /&gt;
&lt;br /&gt;
The alternative to using relative values is using '''absolute''' (by passing ''false'' instead of true to guiCreateWindow). Absolute values are calculated as the total number of pixels from the top-left corner of the parent (if no gui element parent is specified, the parent is the screen itself). If we assume a screen resolution of 1920x1200, the far left side of the screen being 0 pixels and the far right being 1920 pixels, an X position of 960 will represent the centre point of the screen. Similarly, if the top of the screen is 0 pixels and the bottom is 1200, a Y position of 20 would be 20 pixels down from the top of the screen. The same principles apply to both Width and Height as well (with a Width value of 50 meaning the window will be 50 pixels wide). ''You can use [[guiGetScreenSize]] and a little maths to calculate certain absolute positions.''&lt;br /&gt;
&lt;br /&gt;
The differences between using relative and absolute values is quite simple; gui created using absolute values will always remain exactly the same pixel size and position, while gui created using relative values will always be a percentage of its parent's size.&lt;br /&gt;
&lt;br /&gt;
Absolute is generally easier to maintain when editing code by hand, however your choice of type depends on the situation you are using it for.&lt;br /&gt;
&lt;br /&gt;
For the purposes of this introduction we will be using relative values.&lt;br /&gt;
&lt;br /&gt;
===Adding the components===&lt;br /&gt;
Next, we'll add the text labels (saying &amp;quot;username:&amp;quot; and &amp;quot;password:&amp;quot;), edit boxes (for entering your data) and a button to log in.&lt;br /&gt;
&lt;br /&gt;
To create buttons we use [[guiCreateButton]] and to create edit boxes use [[guiCreateEdit]]:&lt;br /&gt;
&lt;br /&gt;
'''Note that we are now writing more code for our existing 'createLoginWindow' function. This is not a new function and is meant to replace what you already have.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function createLoginWindow()&lt;br /&gt;
	local X = 0.375&lt;br /&gt;
	local Y = 0.375&lt;br /&gt;
	local Width = 0.25&lt;br /&gt;
	local Height = 0.25&lt;br /&gt;
	wdwLogin = guiCreateWindow(X, Y, Width, Height, &amp;quot;Please Log In&amp;quot;, true)&lt;br /&gt;
	&lt;br /&gt;
	-- define new X and Y positions for the first label&lt;br /&gt;
	X = 0.0825&lt;br /&gt;
	Y = 0.2&lt;br /&gt;
	-- define new Width and Height values for the first label&lt;br /&gt;
	Width = 0.25&lt;br /&gt;
	Height = 0.25&lt;br /&gt;
	-- create the first label, note the final argument passed is 'wdwLogin' meaning the window&lt;br /&gt;
	-- we created above is the parent of this label (so all the position and size values are now relative to the position of that window)&lt;br /&gt;
	guiCreateLabel(X, Y, Width, Height, &amp;quot;Username&amp;quot;, true, wdwLogin)&lt;br /&gt;
	-- alter the Y value, so the second label is slightly below the first&lt;br /&gt;
	Y = 0.5&lt;br /&gt;
	guiCreateLabel(X, Y, Width, Height, &amp;quot;Password&amp;quot;, true, wdwLogin)&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
	X = 0.415&lt;br /&gt;
	Y = 0.2&lt;br /&gt;
	Width = 0.5&lt;br /&gt;
	Height = 0.15&lt;br /&gt;
	edtUser = guiCreateEdit(X, Y, Width, Height, &amp;quot;&amp;quot;, true, wdwLogin)&lt;br /&gt;
	Y = 0.5&lt;br /&gt;
	edtPass = guiCreateEdit(X, Y, Width, Height, &amp;quot;&amp;quot;, true, wdwLogin)&lt;br /&gt;
	-- set the maximum character length for the username and password fields to 50&lt;br /&gt;
	guiEditSetMaxLength(edtUser, 50)&lt;br /&gt;
	guiEditSetMaxLength(edtPass, 50)&lt;br /&gt;
	&lt;br /&gt;
	X = 0.415&lt;br /&gt;
	Y = 0.7&lt;br /&gt;
	Width = 0.25&lt;br /&gt;
	Height = 0.2&lt;br /&gt;
	btnLogin = guiCreateButton(X, Y, Width, Height, &amp;quot;Log In&amp;quot;, true, wdwLogin)&lt;br /&gt;
	&lt;br /&gt;
	-- make the window invisible&lt;br /&gt;
	guiSetVisible(wdwLogin, false)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Note that every GUI component created is a child of the window, this is done by specifying the parent element (wdwLogin, in this case) when creating the component. &lt;br /&gt;
&lt;br /&gt;
This is very useful because not only does it mean that all the components are attached to the window and will move with it, but also that any changes done to the parent window will be applied down the tree to these child components. For example, we can now hide all of the GUI we just created by simply hiding the window:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
guiSetVisible(wdwLogin, false) --hides all the GUI we made so we can show them to the player at the appropriate moment. &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Using the function we wrote===&lt;br /&gt;
The createLoginWindow function is now complete, but it won't do anything until we call it. It is recommended to create all GUI when the client resource starts, hide them, and show them to the player later when needed. Therefore, we'll write an event handler for &amp;quot;[[onClientResourceStart]]&amp;quot; to create the window:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- attach the event handler to the root element of the resource&lt;br /&gt;
-- this means it will only trigger when its own resource is started&lt;br /&gt;
addEventHandler(&amp;quot;onClientResourceStart&amp;quot;, getResourceRootElement(), &lt;br /&gt;
	function ()&lt;br /&gt;
		createLoginWindow()&lt;br /&gt;
	end&lt;br /&gt;
)	&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As this is a log in window, we now need to show the window when the player joins the game. &lt;br /&gt;
This can be done using the same event, &amp;quot;[[onClientResourceStart]]&amp;quot;, so we can modify the above code to include showing the window:&lt;br /&gt;
&lt;br /&gt;
'''Note that we are now writing more code for our existing 'onClientResourceStart' handler. This is not a new event handler and is meant to replace what you already have.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
addEventHandler(&amp;quot;onClientResourceStart&amp;quot;, getResourceRootElement(), &lt;br /&gt;
	function ()&lt;br /&gt;
		-- create the log in window and its components&lt;br /&gt;
		createLoginWindow()&lt;br /&gt;
&lt;br /&gt;
		-- output a brief welcome message to the player&lt;br /&gt;
                outputChatBox(&amp;quot;Welcome to My MTA:SA Server, please log in.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
		-- if the GUI was successfully created, then show the GUI to the player&lt;br /&gt;
	        if (wdwLogin ~= nil) then&lt;br /&gt;
			guiSetVisible(wdwLogin, true)&lt;br /&gt;
		else&lt;br /&gt;
			-- if the GUI hasnt been properly created, tell the player&lt;br /&gt;
			outputChatBox(&amp;quot;An unexpected error has occurred and the log in GUI has not been created.&amp;quot;)&lt;br /&gt;
	        end &lt;br /&gt;
&lt;br /&gt;
		-- enable the players cursor (so they can select and click on the components)&lt;br /&gt;
	        showCursor(true)&lt;br /&gt;
		-- set the input focus onto the GUI, allowing players (for example) to press 'T' without the chatbox opening&lt;br /&gt;
	        guiSetInputEnabled(true)&lt;br /&gt;
	end&lt;br /&gt;
)	&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that we have a simple security check before making the window visible, so in the unlikely event that the window has not been created, meaning wdwLogin is not a valid element, we don't get an error and just inform the player what has happened. &lt;br /&gt;
In the next step, we will create the button functionality for the log in button.&lt;br /&gt;
&lt;br /&gt;
==Scripting the button==&lt;br /&gt;
Now that we have created our GUI and shown it to the player, we need to make it work. &lt;br /&gt;
&lt;br /&gt;
===Detecting the click===&lt;br /&gt;
When the player clicks on any part of the GUI, the event &amp;quot;[[onClientGUIClick]]&amp;quot; will be triggered for the GUI component you clicked on. This allows us to easily detect any clicks on the GUI elements we want to use.&lt;br /&gt;
For example, we can attach the event to the btnLogin button to catch any clicks on it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- attach the event onClientGUIClick to btnLogin and set it to trigger the 'clientSubmitLogin' function&lt;br /&gt;
addEventHandler(&amp;quot;onClientGUIClick&amp;quot;, btnLogin, clientSubmitLogin, false)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
'''Note the final argument passed is &amp;quot;false&amp;quot;. This indicates that the event will only trigger directly on btnLogin, not if the event has propagated up or down the tree. Setting this to &amp;quot;true&amp;quot; while attaching to gui elements will mean that clicking on any element in the same branch will trigger this event.'''&lt;br /&gt;
&lt;br /&gt;
This line of code can now be added inside the createLoginWindow function. It is a common mistake to try and attach events to non-existant GUI elements, so make sure you always attach your events '''after''' the gui element (in this case, the button) has been created:&lt;br /&gt;
&lt;br /&gt;
'''Note that we are now writing more code for our existing 'createLoginWindow' function.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function createLoginWindow()&lt;br /&gt;
	-- create all our GUI elements&lt;br /&gt;
	...&lt;br /&gt;
&lt;br /&gt;
	-- now add our onClientGUIClick event to the button we just created&lt;br /&gt;
	addEventHandler(&amp;quot;onClientGUIClick&amp;quot;, btnLogin, clientSubmitLogin, false)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Managing the click===&lt;br /&gt;
Now that we can detect when the player clicks on the button, we need to write code to manage what happens when they do.&lt;br /&gt;
In our [[onClientGUIClick]] event handle, we told it to call the function clientSubmitLogin whenever btnLogin is clicked.&lt;br /&gt;
Therefore, we can now use the function clientSubmitLogin to control what happens when the button is clicked:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- create the function and define the 'button' and 'state' parameters&lt;br /&gt;
-- (these are passed automatically by onClientGUIClick)&lt;br /&gt;
function clientSubmitLogin(button,state)&lt;br /&gt;
	-- if our login button was clicked with the left mouse button, and the state of the mouse button is up&lt;br /&gt;
	if button == &amp;quot;left&amp;quot; and state == &amp;quot;up&amp;quot; then&lt;br /&gt;
		-- move the input focus back onto the game (allowing players to move around, open the chatbox, etc)&lt;br /&gt;
		guiSetInputEnabled(false)&lt;br /&gt;
		-- hide the window and all the components&lt;br /&gt;
		guiSetVisible(wdwLogin, false)&lt;br /&gt;
		-- hide the mouse cursor&lt;br /&gt;
		showCursor(false)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Now, when the button is clicked, the window will be hidden and all controls will be returned to the player. Next, we will tell the server to allow the player to spawn.&lt;br /&gt;
&lt;br /&gt;
===Triggering the server===&lt;br /&gt;
Triggering the server can be done using [[triggerServerEvent]]. This allows you to trigger a specified event on the server from the client. The same can be done in reverse using [[triggerClientEvent]].&lt;br /&gt;
Here, we use the [[triggerServerEvent]] function to call our own custom event on the server, named &amp;quot;submitLogin&amp;quot;, which will then control the spawning of the player serverside.&lt;br /&gt;
&lt;br /&gt;
'''Note that we are now writing more code for our existing 'clientSubmitLogin' function. This is not a new function and is meant to replace what you already have.''' &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function clientSubmitLogin(button,state)&lt;br /&gt;
	if button == &amp;quot;left&amp;quot; and state == &amp;quot;up&amp;quot; then&lt;br /&gt;
		-- get the text entered in the 'username' field&lt;br /&gt;
		local username = guiGetText(edtUser)&lt;br /&gt;
		-- get the text entered in the 'password' field&lt;br /&gt;
		local password = guiGetText(edtPass)&lt;br /&gt;
&lt;br /&gt;
		-- if the username and password both exist&lt;br /&gt;
		if username and password then&lt;br /&gt;
			-- trigger the server event 'submitLogin' and pass the username and password to it&lt;br /&gt;
			triggerServerEvent(&amp;quot;submitLogin&amp;quot;, getRootElement(), username, password)&lt;br /&gt;
&lt;br /&gt;
			-- hide the gui, hide the cursor and return control to the player&lt;br /&gt;
			guiSetInputEnabled(false)&lt;br /&gt;
			guiSetVisible(wdwLogin, false)&lt;br /&gt;
			showCursor(false)&lt;br /&gt;
		else&lt;br /&gt;
			-- otherwise, output a message to the player, do not trigger the server&lt;br /&gt;
			-- and do not hide the gui&lt;br /&gt;
			outputChatBox(&amp;quot;Please enter a username and password.&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Creating the serverside event===&lt;br /&gt;
At this point we now have all the code needed on the client side, so open up your serverside 'script.lua' file (from the [[Scripting Introduction|Introduction to Scripting]]) or another suitable serverside file to work with.&lt;br /&gt;
&lt;br /&gt;
On the server side, recall that we are spawning the player as soon as they login.&lt;br /&gt;
So, first of all, we will need to define the custom event that we used before on the client. This can be done using [[addEvent]] and [[addEventHandler]].&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- create our loginHandler function, with username and password parameters (passed from the client gui)&lt;br /&gt;
function loginHandler(username,password)&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- define our custom event, and allow it to be triggered from the client ('true')&lt;br /&gt;
addEvent(&amp;quot;submitLogin&amp;quot;,true)&lt;br /&gt;
-- add an event handler so that when submitLogin is triggered, the function loginHandler is called&lt;br /&gt;
addEventHandler(&amp;quot;submitLogin&amp;quot;,root,loginHandler)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logging in===&lt;br /&gt;
Now we have a function that is called through the custom event 'submitLogin', we can start to work on logging in and spawning the player, using our 'loginHandler' function:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function loginHandler(username,password)&lt;br /&gt;
	-- check that the username and password are correct&lt;br /&gt;
	if username == &amp;quot;user&amp;quot; and password == &amp;quot;apple&amp;quot; then&lt;br /&gt;
		-- the player has successfully logged in, so spawn them&lt;br /&gt;
		if (client) then&lt;br /&gt;
			spawnPlayer(client, 1959.55, -1714.46, 10)&lt;br /&gt;
			fadeCamera(client, true)&lt;br /&gt;
                        setCameraTarget(client, client)&lt;br /&gt;
			outputChatBox(&amp;quot;Welcome to My Server.&amp;quot;, client)&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		-- if the username or password are not correct, output a message to the player&lt;br /&gt;
		outputChatBox(&amp;quot;Invalid username and password. Please re-connect and try again.&amp;quot;,client)&lt;br /&gt;
        end			&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
addEvent(&amp;quot;submitLogin&amp;quot;,true)&lt;br /&gt;
addEventHandler(&amp;quot;submitLogin&amp;quot;,root,loginHandler)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
'''For the purposes of this tutorial, a very basic username and password system is shown. For a more comprehensive alternative, you can use the Account System or a MySQL database.'''&lt;br /&gt;
&lt;br /&gt;
Also note the use of the variable &amp;quot;client&amp;quot;, it's an internal variable used by MTA to identify the player who triggered the event. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finally, do not forget to include the new gui.lua file in the meta.xml of the main resource, and label it as a client script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;client/gui.lua&amp;quot; type=&amp;quot;client&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this point, we now have a basic login window that checks the player's username and password when the login button is clicked. If they are correct, the player is automatically spawned.&lt;br /&gt;
&lt;br /&gt;
For further help with GUI, see the [[:Category:GUI_Tutorials|GUI tutorials]].&lt;br /&gt;
&lt;br /&gt;
[[Category:GUI_Tutorials]]&lt;br /&gt;
[[it:Introduzione_allo_scripting_della_GUI]]&lt;br /&gt;
[[ru:Introduction to Scripting the GUI]]&lt;br /&gt;
[[es:Introducción a la Programación de GUI]]&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/F%C5%91oldal&amp;diff=47497</id>
		<title>HU/Főoldal</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/F%C5%91oldal&amp;diff=47497"/>
		<updated>2016-05-13T16:51:57Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;/*border: 1px solid #D8D8D8;*/ padding-left: 15px; padding-right: 15px; height: 100%;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Mtalogo.png|left|100px|link=http://wiki.multitheftauto.com/]]'''Üdvözöllek a [[Multi Theft Auto]] wikin.''' Itt rengeteg információt találhatsz a Multi Theft Auto használatáról.&lt;br /&gt;
&lt;br /&gt;
Sok [[HU/How you can help|dologban segíthetsz Te is]], amivel fejleszted az MTAt - készíts pályákat, játékmódokat, írj leírást, példákat a függvényekhez, írj útmutatókat, vagy csak játssz, és jelezd a hibákat amiket találtál! &lt;br /&gt;
&lt;br /&gt;
Ha bármilyen kérdésed van a scripteléssel kapcsolatban, vedd fel velünk a kapcsolatot az [[HU/Places To Chat#IRC (Internet Relay Chat) |IRC csatornánkon.]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; |&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background: #FFFCF2;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Input-gaming.png‎|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Játék&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background: #FFEEAA; border: 1px solid #FFCD19;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Go-down.png|link=http://mtasa.com/]] ''' [http://mtasa.com/ Töltsd le a Multi Theft Auto San Andreas {{Current Version|full}}-t!]'''&amp;lt;/div&amp;gt;&lt;br /&gt;
* [[HU/Client Manual | Kliens kézikönyv]]&lt;br /&gt;
&amp;lt;!-- * [[Changes_in_{{padleft:|3|{{Current Version|full}}}}| Changes in {{padleft:|3|{{Current Version|full}}}}]] --&amp;gt;&lt;br /&gt;
* [[HU/Changes_in_{{padleft:|5|{{Current Version|full}}}}| Változtatások az {{padleft:|5|{{Current Version|full}}}} verzióban]]&lt;br /&gt;
* [[HU/Known_Issues_-_FAQ|Ismert problémák]]&lt;br /&gt;
* [[HU/Upgrading_from_MTA:Race|MTA:Race frissítése MTA:SA {{padleft:|3|{{Current Version|full}}}} -ra ]]&lt;br /&gt;
* [[HU/Server Manual|Szerver kézikönyv]]&lt;br /&gt;
* [[HU/Map manager|Map Manager]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Map Editor&amp;lt;/h3&amp;gt;&lt;br /&gt;
*[[HU/Resource:Editor|Kézikönyv]]&lt;br /&gt;
*[[HU/Resource:Editor/EDF|EDF (leírás) fájlok]]&lt;br /&gt;
*[[HU/Resource:Editor/Plugins|Pluginok]]&lt;br /&gt;
*[[HU/Resource:Editor#FAQ|Gyakran Ismételt Kérdések]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Package-x-generic.png‎|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Adatbázisok&amp;lt;/h3&amp;gt;&lt;br /&gt;
Az alábbi oldalakból megtudhatod mire képes a Lua az MTA-ban.&lt;br /&gt;
* [[HU/:Category:Resource|Resource katalógus]] - Igazán jól működő scriptek készítéséhez érdemes áttanulmányozni őket&lt;br /&gt;
* [[HU/Client side scripts|Kliens oldali scriptek]] &lt;br /&gt;
* [[HU/Modules|Modulok]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Applications-development.png‎‎‎|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;A Multi Theft Auto fejlesztése&amp;lt;/h3&amp;gt;&lt;br /&gt;
[[File:Go-down.png|link=http://nightly.mtasa.com/]] [http://nightly.mtasa.com/ Fejlesztői verzió]&lt;br /&gt;
* [[HU/Compiling_MTASA|MTA SA fordítása Windowson]]&lt;br /&gt;
* [[HU/Building_MTASA_Server_on_Mac_OS_X|MTA SA fordítása Linuxon]]&lt;br /&gt;
* [[HU/Building_MTASA_Server_on_GNU_Linux|MTA SA fordítása GNU/Linux rendszeren]]&lt;br /&gt;
* [[HU/Coding guidelines|Kódolási útmutató]]&lt;br /&gt;
* [http://code.google.com/p/mtasa-blue Google Code SVN]&lt;br /&gt;
* [[HU/Roadmap|Tervezet]]&lt;br /&gt;
* [http://bugs.mtasa.com/ Hibák]&lt;br /&gt;
* [[HU/Branches|Fejlesztési ágazatok]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Applications-office.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Wiki - Hogyan segíthetsz&amp;lt;/h3&amp;gt;&lt;br /&gt;
* EGészítsd ki a [[HU/:Category:Incomplete|függvények hiányos leírású oldalát]].&lt;br /&gt;
* [[HU/:Category:Needs_Example |Írj példákat függvények használatára]].&lt;br /&gt;
* Ellenőrizd az [[HU/:Category:Needs Checking|ellenőrzésre váró lapokat]].&lt;br /&gt;
* Írj útmutatókat&lt;br /&gt;
* Fordíts wiki lapokat&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Internet-group-chat.png‎|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Közösség&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [http://forum.multitheftauto.com/ Fórum]&lt;br /&gt;
* IRC: [irc://irc.multitheftauto.com/mta irc.multitheftauto.com #mta]&lt;br /&gt;
* [http://community.mtasa.com/ MTA Community] - Ossz meg és tölts le resourceokat!&lt;br /&gt;
* [http://twitter.com/#!/MTAQA/ Twitter] - [http://www.youtube.com/user/MTAQA Youtube] - [http://plus.google.com/102014133442331779727/ Google+] - [http://www.moddb.com/mods/multi-theft-auto-san-andreas ModDB]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Accessories-text-editor.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Scriptelés&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[HU/Scripting Introduction|Bevezetés a scriptelésbe]]&lt;br /&gt;
* [[HU/Introduction to Scripting the GUI|Bevezetés a GUI készítésébe]]&lt;br /&gt;
* [[HU/Debugging|Hibakeresés]] - Találd meg a hibát a kódodban&lt;br /&gt;
* [[HU/Resources|Bevezetés a Resourceokba]]&lt;br /&gt;
** [[HU/Resource Web Access|Resource Web Hozzáférés]] - Internet elérése&lt;br /&gt;
** [[HU/:Category:Resource|Resource katalógus]]&lt;br /&gt;
** [[HU/Meta.xml|Meta.xml]] - Minden resource alapja&lt;br /&gt;
** [[HU/ACL]] - A megfelelő jogok meghatározása az összetettebb kódokhoz elengedhetetlen&lt;br /&gt;
* [[HU/Writing_Gamemodes|Játékmódok írása]]&lt;br /&gt;
* [[HU/Useful_Functions|Hasznos függvények]]&lt;br /&gt;
* [http://forum.mtasa.com/viewtopic.php?f=13&amp;amp;t=29363 Offline Wiki Másolatok]&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:start-here.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Általános Lua Segítség&amp;lt;/h3&amp;gt;&lt;br /&gt;
Oldalak a Lua megértésehez:&lt;br /&gt;
*[http://www.lua.org/pil/index.html &amp;quot;Lua Programozás&amp;quot; Kézikönyv]&lt;br /&gt;
**[http://www.lua.org/manual/5.1/#index Lua belső/beépített függvények]&lt;br /&gt;
*[http://lua-users.org/wiki/TutorialDirectory Lua Wiki]&lt;br /&gt;
*[http://nixstaller.berlios.de/manual/0.2/nixstaller_9.html Nixstaller Lua útmutatója]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background:#F2F2FF;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Preferences-system.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Referenciák&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[HU/Client Scripting Functions|Kliens-oldali függvények]]&lt;br /&gt;
* [[HU/Client Scripting Events|Kliens-oldali események]]&lt;br /&gt;
* [[HU/Server Scripting Functions|Szerver-oldali függvények]]&lt;br /&gt;
* [[HU/Server Scripting Events|Szerver-oldali események]]&lt;br /&gt;
&amp;lt;!-- Incomplete * [[Module functions|Server-side external module scripting functions list]] --&amp;gt;&lt;br /&gt;
* [[HU/MTA Classes|MTA Osztályok]] - MTA osztályok részletes leírása&lt;br /&gt;
** [[HU/Element|MTA Elemek]] / [[HU/Element tree|Element ágak]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:System-file-manager.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;[[HU/Id|ID Lista]]&amp;lt;/h3&amp;gt;&lt;br /&gt;
*[[HU/Animations|Animációk]]&lt;br /&gt;
*[[HU/Character Skins|Karakter skinek]]&lt;br /&gt;
*[[HU/CJ_Clothes|CJ Ruhái]]&lt;br /&gt;
*[[HU/Garage|Garázs ID lista]]&lt;br /&gt;
*[[HU/Interior IDs|Interiorok]]&lt;br /&gt;
*[[HU/Material IDs|Material]]&lt;br /&gt;
*[[HU/Projectiles|Lövedékek]]&lt;br /&gt;
*[[HU/Radar Blips|Radar jelzések]]&lt;br /&gt;
*[[HU/Sounds|Hang]]&lt;br /&gt;
*[[HU/Vehicle IDs|Járművek]]&lt;br /&gt;
*[[HU/Vehicle Colors|Jármű színek]]&lt;br /&gt;
*[[HU/Vehicle Upgrades|Jármű fejlesztések]]&lt;br /&gt;
*[[HU/Vehicle variants|Járművek egyedi tulajdonságai]]&lt;br /&gt;
*[[HU/Vehicle component manipulation|Jármű komponens változtatások]]&lt;br /&gt;
*[[HU/Weapons|Fegyverek]]&lt;br /&gt;
*[[HU/Weather|Időjárás]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Osi symbol.png|75px|link=http://opensource.org/|left]]&lt;br /&gt;
A '''Multi Theft Auto''' '''nyílt forráskódú'''. &lt;br /&gt;
&amp;lt;br/&amp;gt;Ez azt jelenti, hogy a játékot bárki jobbá teheti!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding-left: 15px; padding-right: 15px;&amp;quot; class=&amp;quot;plainlinks&amp;quot;&amp;gt;&lt;br /&gt;
[[File:MTALogo_8ball.png|left|85px|link=Archive]]&lt;br /&gt;
&amp;lt;ul style=&amp;quot;list-style: none; width: 200px; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;'''A [[Multi Theft Auto]] - ról'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[Archive|Archívum]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[Press Coverage|Sajtó]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[http://code.google.com/p/mtasa-blue/people/list Fejlesztők]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;list-style: none; width: 200px; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;'''Multi Theft Auto 0.5'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[Archive#Multi_Theft_Auto_0.5|Letöltés]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[MTA 0.5r2 Known Issues|Ismert hibák]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;list-style: none; width: 200px; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;'''Wiki Statisztikák'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;{{NUMBEROFARTICLES}} cikk&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;{{NUMBEROFPAGES}} oldal&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;{{NUMBEROFUSERS}} regisztrált felhasználó&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
__NOEDITSECTION__&lt;br /&gt;
{{Languages list|en}}&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/F%C5%91oldal&amp;diff=47496</id>
		<title>HU/Főoldal</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/F%C5%91oldal&amp;diff=47496"/>
		<updated>2016-05-13T16:51:18Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;/*border: 1px solid #D8D8D8;*/ padding-left: 15px; padding-right: 15px; height: 100%;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Mtalogo.png|left|100px|link=http://wiki.multitheftauto.com/]]'''Üdvözöllek a [[Multi Theft Auto]] wikin.''' Itt rengeteg információt találhatsz a Multi Theft Auto használatáról.&lt;br /&gt;
&lt;br /&gt;
Sok [[HU/How you can help|dologban segíthetsz Te is]], amivel fejleszted az MTAt - készíts pályákat, játékmódokat, írj leírást, példákat a függvényekhez, írj útmutatókat, vagy csak játssz, és jelezd a hibákat amiket találtál! &lt;br /&gt;
&lt;br /&gt;
Ha bármilyen kérdésed van a scripteléssel kapcsolatban, vedd fel velünk a kapcsolatot az [[HU/Places To Chat#IRC (Internet Relay Chat) |IRC csatornánkon.]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; |&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background: #FFFCF2;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Input-gaming.png‎|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Játék&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background: #FFEEAA; border: 1px solid #FFCD19;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Go-down.png|link=http://mtasa.com/]] ''' [http://mtasa.com/ Töltsd le a Multi Theft Auto San Andreas {{Current Version|full}}-t!]'''&amp;lt;/div&amp;gt;&lt;br /&gt;
* [[HU/Client Manual | Kliens kézikönyv]]&lt;br /&gt;
&amp;lt;!-- * [[Changes_in_{{padleft:|3|{{Current Version|full}}}}| Changes in {{padleft:|3|{{Current Version|full}}}}]] --&amp;gt;&lt;br /&gt;
* [[HU/Changes_in_{{padleft:|5|{{Current Version|full}}}}| Változtatások az {{padleft:|5|{{Current Version|full}}}} verzióban]]&lt;br /&gt;
* [[HU/Known_Issues_-_FAQ|Ismert problémák]]&lt;br /&gt;
* [[HU/Upgrading_from_MTA:Race|MTA:Race frissítése MTA:SA {{padleft:|3|{{Current Version|full}}}} -ra ]]&lt;br /&gt;
* [[HU/Server Manual|Szerver kézikönyv]]&lt;br /&gt;
* [[HU/Map manager|Map Manager]]&lt;br /&gt;
* [[Template:Valtozasok|Map Manager]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Map Editor&amp;lt;/h3&amp;gt;&lt;br /&gt;
*[[HU/Resource:Editor|Kézikönyv]]&lt;br /&gt;
*[[HU/Resource:Editor/EDF|EDF (leírás) fájlok]]&lt;br /&gt;
*[[HU/Resource:Editor/Plugins|Pluginok]]&lt;br /&gt;
*[[HU/Resource:Editor#FAQ|Gyakran Ismételt Kérdések]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Package-x-generic.png‎|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Adatbázisok&amp;lt;/h3&amp;gt;&lt;br /&gt;
Az alábbi oldalakból megtudhatod mire képes a Lua az MTA-ban.&lt;br /&gt;
* [[HU/:Category:Resource|Resource katalógus]] - Igazán jól működő scriptek készítéséhez érdemes áttanulmányozni őket&lt;br /&gt;
* [[HU/Client side scripts|Kliens oldali scriptek]] &lt;br /&gt;
* [[HU/Modules|Modulok]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Applications-development.png‎‎‎|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;A Multi Theft Auto fejlesztése&amp;lt;/h3&amp;gt;&lt;br /&gt;
[[File:Go-down.png|link=http://nightly.mtasa.com/]] [http://nightly.mtasa.com/ Fejlesztői verzió]&lt;br /&gt;
* [[HU/Compiling_MTASA|MTA SA fordítása Windowson]]&lt;br /&gt;
* [[HU/Building_MTASA_Server_on_Mac_OS_X|MTA SA fordítása Linuxon]]&lt;br /&gt;
* [[HU/Building_MTASA_Server_on_GNU_Linux|MTA SA fordítása GNU/Linux rendszeren]]&lt;br /&gt;
* [[HU/Coding guidelines|Kódolási útmutató]]&lt;br /&gt;
* [http://code.google.com/p/mtasa-blue Google Code SVN]&lt;br /&gt;
* [[HU/Roadmap|Tervezet]]&lt;br /&gt;
* [http://bugs.mtasa.com/ Hibák]&lt;br /&gt;
* [[HU/Branches|Fejlesztési ágazatok]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Applications-office.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Wiki - Hogyan segíthetsz&amp;lt;/h3&amp;gt;&lt;br /&gt;
* EGészítsd ki a [[HU/:Category:Incomplete|függvények hiányos leírású oldalát]].&lt;br /&gt;
* [[HU/:Category:Needs_Example |Írj példákat függvények használatára]].&lt;br /&gt;
* Ellenőrizd az [[HU/:Category:Needs Checking|ellenőrzésre váró lapokat]].&lt;br /&gt;
* Írj útmutatókat&lt;br /&gt;
* Fordíts wiki lapokat&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Internet-group-chat.png‎|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Közösség&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [http://forum.multitheftauto.com/ Fórum]&lt;br /&gt;
* IRC: [irc://irc.multitheftauto.com/mta irc.multitheftauto.com #mta]&lt;br /&gt;
* [http://community.mtasa.com/ MTA Community] - Ossz meg és tölts le resourceokat!&lt;br /&gt;
* [http://twitter.com/#!/MTAQA/ Twitter] - [http://www.youtube.com/user/MTAQA Youtube] - [http://plus.google.com/102014133442331779727/ Google+] - [http://www.moddb.com/mods/multi-theft-auto-san-andreas ModDB]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Accessories-text-editor.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Scriptelés&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[HU/Scripting Introduction|Bevezetés a scriptelésbe]]&lt;br /&gt;
* [[HU/Introduction to Scripting the GUI|Bevezetés a GUI készítésébe]]&lt;br /&gt;
* [[HU/Debugging|Hibakeresés]] - Találd meg a hibát a kódodban&lt;br /&gt;
* [[HU/Resources|Bevezetés a Resourceokba]]&lt;br /&gt;
** [[HU/Resource Web Access|Resource Web Hozzáférés]] - Internet elérése&lt;br /&gt;
** [[HU/:Category:Resource|Resource katalógus]]&lt;br /&gt;
** [[HU/Meta.xml|Meta.xml]] - Minden resource alapja&lt;br /&gt;
** [[HU/ACL]] - A megfelelő jogok meghatározása az összetettebb kódokhoz elengedhetetlen&lt;br /&gt;
* [[HU/Writing_Gamemodes|Játékmódok írása]]&lt;br /&gt;
* [[HU/Useful_Functions|Hasznos függvények]]&lt;br /&gt;
* [http://forum.mtasa.com/viewtopic.php?f=13&amp;amp;t=29363 Offline Wiki Másolatok]&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:start-here.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Általános Lua Segítség&amp;lt;/h3&amp;gt;&lt;br /&gt;
Oldalak a Lua megértésehez:&lt;br /&gt;
*[http://www.lua.org/pil/index.html &amp;quot;Lua Programozás&amp;quot; Kézikönyv]&lt;br /&gt;
**[http://www.lua.org/manual/5.1/#index Lua belső/beépített függvények]&lt;br /&gt;
*[http://lua-users.org/wiki/TutorialDirectory Lua Wiki]&lt;br /&gt;
*[http://nixstaller.berlios.de/manual/0.2/nixstaller_9.html Nixstaller Lua útmutatója]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background:#F2F2FF;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Preferences-system.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Referenciák&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[HU/Client Scripting Functions|Kliens-oldali függvények]]&lt;br /&gt;
* [[HU/Client Scripting Events|Kliens-oldali események]]&lt;br /&gt;
* [[HU/Server Scripting Functions|Szerver-oldali függvények]]&lt;br /&gt;
* [[HU/Server Scripting Events|Szerver-oldali események]]&lt;br /&gt;
&amp;lt;!-- Incomplete * [[Module functions|Server-side external module scripting functions list]] --&amp;gt;&lt;br /&gt;
* [[HU/MTA Classes|MTA Osztályok]] - MTA osztályok részletes leírása&lt;br /&gt;
** [[HU/Element|MTA Elemek]] / [[HU/Element tree|Element ágak]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:System-file-manager.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;[[HU/Id|ID Lista]]&amp;lt;/h3&amp;gt;&lt;br /&gt;
*[[HU/Animations|Animációk]]&lt;br /&gt;
*[[HU/Character Skins|Karakter skinek]]&lt;br /&gt;
*[[HU/CJ_Clothes|CJ Ruhái]]&lt;br /&gt;
*[[HU/Garage|Garázs ID lista]]&lt;br /&gt;
*[[HU/Interior IDs|Interiorok]]&lt;br /&gt;
*[[HU/Material IDs|Material]]&lt;br /&gt;
*[[HU/Projectiles|Lövedékek]]&lt;br /&gt;
*[[HU/Radar Blips|Radar jelzések]]&lt;br /&gt;
*[[HU/Sounds|Hang]]&lt;br /&gt;
*[[HU/Vehicle IDs|Járművek]]&lt;br /&gt;
*[[HU/Vehicle Colors|Jármű színek]]&lt;br /&gt;
*[[HU/Vehicle Upgrades|Jármű fejlesztések]]&lt;br /&gt;
*[[HU/Vehicle variants|Járművek egyedi tulajdonságai]]&lt;br /&gt;
*[[HU/Vehicle component manipulation|Jármű komponens változtatások]]&lt;br /&gt;
*[[HU/Weapons|Fegyverek]]&lt;br /&gt;
*[[HU/Weather|Időjárás]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Osi symbol.png|75px|link=http://opensource.org/|left]]&lt;br /&gt;
A '''Multi Theft Auto''' '''nyílt forráskódú'''. &lt;br /&gt;
&amp;lt;br/&amp;gt;Ez azt jelenti, hogy a játékot bárki jobbá teheti!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding-left: 15px; padding-right: 15px;&amp;quot; class=&amp;quot;plainlinks&amp;quot;&amp;gt;&lt;br /&gt;
[[File:MTALogo_8ball.png|left|85px|link=Archive]]&lt;br /&gt;
&amp;lt;ul style=&amp;quot;list-style: none; width: 200px; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;'''A [[Multi Theft Auto]] - ról'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[Archive|Archívum]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[Press Coverage|Sajtó]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[http://code.google.com/p/mtasa-blue/people/list Fejlesztők]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;list-style: none; width: 200px; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;'''Multi Theft Auto 0.5'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[Archive#Multi_Theft_Auto_0.5|Letöltés]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[MTA 0.5r2 Known Issues|Ismert hibák]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;list-style: none; width: 200px; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;'''Wiki Statisztikák'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;{{NUMBEROFARTICLES}} cikk&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;{{NUMBEROFPAGES}} oldal&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;{{NUMBEROFUSERS}} regisztrált felhasználó&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
__NOEDITSECTION__&lt;br /&gt;
{{Languages list|en}}&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/F%C5%91oldal&amp;diff=47495</id>
		<title>HU/Főoldal</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/F%C5%91oldal&amp;diff=47495"/>
		<updated>2016-05-13T16:50:50Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;/*border: 1px solid #D8D8D8;*/ padding-left: 15px; padding-right: 15px; height: 100%;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Mtalogo.png|left|100px|link=http://wiki.multitheftauto.com/]]'''Üdvözöllek a [[Multi Theft Auto]] wikin.''' Itt rengeteg információt találhatsz a Multi Theft Auto használatáról.&lt;br /&gt;
&lt;br /&gt;
Sok [[HU/How you can help|dologban segíthetsz Te is]], hogy fejleszd az MTA-t - készíts pályákat, játékmódokat, írj leírást, példákat a függvényekhez, írj útmutatókat, vagy csak játssz, és jelezd a hibákat amiket találtál! &lt;br /&gt;
&lt;br /&gt;
Ha bármilyen kérdésed van a scripteléssel kapcsolatban, vedd fel velünk a kapcsolatot az [[HU/Places To Chat#IRC (Internet Relay Chat) |IRC csatornánkon.]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; |&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background: #FFFCF2;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Input-gaming.png‎|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Játék&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background: #FFEEAA; border: 1px solid #FFCD19;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Go-down.png|link=http://mtasa.com/]] ''' [http://mtasa.com/ Töltsd le a Multi Theft Auto San Andreas {{Current Version|full}}-t!]'''&amp;lt;/div&amp;gt;&lt;br /&gt;
* [[HU/Client Manual | Kliens kézikönyv]]&lt;br /&gt;
&amp;lt;!-- * [[Changes_in_{{padleft:|3|{{Current Version|full}}}}| Changes in {{padleft:|3|{{Current Version|full}}}}]] --&amp;gt;&lt;br /&gt;
* [[HU/Changes_in_{{padleft:|5|{{Current Version|full}}}}| Változtatások az {{padleft:|5|{{Current Version|full}}}} verzióban]]&lt;br /&gt;
* [[HU/Known_Issues_-_FAQ|Ismert problémák]]&lt;br /&gt;
* [[HU/Upgrading_from_MTA:Race|MTA:Race frissítése MTA:SA {{padleft:|3|{{Current Version|full}}}} -ra ]]&lt;br /&gt;
* [[HU/Server Manual|Szerver kézikönyv]]&lt;br /&gt;
* [[HU/Map manager|Map Manager]]&lt;br /&gt;
* [[Template:Valtozasok|Map Manager]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Map Editor&amp;lt;/h3&amp;gt;&lt;br /&gt;
*[[HU/Resource:Editor|Kézikönyv]]&lt;br /&gt;
*[[HU/Resource:Editor/EDF|EDF (leírás) fájlok]]&lt;br /&gt;
*[[HU/Resource:Editor/Plugins|Pluginok]]&lt;br /&gt;
*[[HU/Resource:Editor#FAQ|Gyakran Ismételt Kérdések]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Package-x-generic.png‎|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Adatbázisok&amp;lt;/h3&amp;gt;&lt;br /&gt;
Az alábbi oldalakból megtudhatod mire képes a Lua az MTA-ban.&lt;br /&gt;
* [[HU/:Category:Resource|Resource katalógus]] - Igazán jól működő scriptek készítéséhez érdemes áttanulmányozni őket&lt;br /&gt;
* [[HU/Client side scripts|Kliens oldali scriptek]] &lt;br /&gt;
* [[HU/Modules|Modulok]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Applications-development.png‎‎‎|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;A Multi Theft Auto fejlesztése&amp;lt;/h3&amp;gt;&lt;br /&gt;
[[File:Go-down.png|link=http://nightly.mtasa.com/]] [http://nightly.mtasa.com/ Fejlesztői verzió]&lt;br /&gt;
* [[HU/Compiling_MTASA|MTA SA fordítása Windowson]]&lt;br /&gt;
* [[HU/Building_MTASA_Server_on_Mac_OS_X|MTA SA fordítása Linuxon]]&lt;br /&gt;
* [[HU/Building_MTASA_Server_on_GNU_Linux|MTA SA fordítása GNU/Linux rendszeren]]&lt;br /&gt;
* [[HU/Coding guidelines|Kódolási útmutató]]&lt;br /&gt;
* [http://code.google.com/p/mtasa-blue Google Code SVN]&lt;br /&gt;
* [[HU/Roadmap|Tervezet]]&lt;br /&gt;
* [http://bugs.mtasa.com/ Hibák]&lt;br /&gt;
* [[HU/Branches|Fejlesztési ágazatok]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Applications-office.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Wiki - Hogyan segíthetsz&amp;lt;/h3&amp;gt;&lt;br /&gt;
* EGészítsd ki a [[HU/:Category:Incomplete|függvények hiányos leírású oldalát]].&lt;br /&gt;
* [[HU/:Category:Needs_Example |Írj példákat függvények használatára]].&lt;br /&gt;
* Ellenőrizd az [[HU/:Category:Needs Checking|ellenőrzésre váró lapokat]].&lt;br /&gt;
* Írj útmutatókat&lt;br /&gt;
* Fordíts wiki lapokat&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Internet-group-chat.png‎|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Közösség&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [http://forum.multitheftauto.com/ Fórum]&lt;br /&gt;
* IRC: [irc://irc.multitheftauto.com/mta irc.multitheftauto.com #mta]&lt;br /&gt;
* [http://community.mtasa.com/ MTA Community] - Ossz meg és tölts le resourceokat!&lt;br /&gt;
* [http://twitter.com/#!/MTAQA/ Twitter] - [http://www.youtube.com/user/MTAQA Youtube] - [http://plus.google.com/102014133442331779727/ Google+] - [http://www.moddb.com/mods/multi-theft-auto-san-andreas ModDB]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Accessories-text-editor.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Scriptelés&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[HU/Scripting Introduction|Bevezetés a scriptelésbe]]&lt;br /&gt;
* [[HU/Introduction to Scripting the GUI|Bevezetés a GUI készítésébe]]&lt;br /&gt;
* [[HU/Debugging|Hibakeresés]] - Találd meg a hibát a kódodban&lt;br /&gt;
* [[HU/Resources|Bevezetés a Resourceokba]]&lt;br /&gt;
** [[HU/Resource Web Access|Resource Web Hozzáférés]] - Internet elérése&lt;br /&gt;
** [[HU/:Category:Resource|Resource katalógus]]&lt;br /&gt;
** [[HU/Meta.xml|Meta.xml]] - Minden resource alapja&lt;br /&gt;
** [[HU/ACL]] - A megfelelő jogok meghatározása az összetettebb kódokhoz elengedhetetlen&lt;br /&gt;
* [[HU/Writing_Gamemodes|Játékmódok írása]]&lt;br /&gt;
* [[HU/Useful_Functions|Hasznos függvények]]&lt;br /&gt;
* [http://forum.mtasa.com/viewtopic.php?f=13&amp;amp;t=29363 Offline Wiki Másolatok]&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:start-here.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Általános Lua Segítség&amp;lt;/h3&amp;gt;&lt;br /&gt;
Oldalak a Lua megértésehez:&lt;br /&gt;
*[http://www.lua.org/pil/index.html &amp;quot;Lua Programozás&amp;quot; Kézikönyv]&lt;br /&gt;
**[http://www.lua.org/manual/5.1/#index Lua belső/beépített függvények]&lt;br /&gt;
*[http://lua-users.org/wiki/TutorialDirectory Lua Wiki]&lt;br /&gt;
*[http://nixstaller.berlios.de/manual/0.2/nixstaller_9.html Nixstaller Lua útmutatója]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background:#F2F2FF;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Preferences-system.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Referenciák&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[HU/Client Scripting Functions|Kliens-oldali függvények]]&lt;br /&gt;
* [[HU/Client Scripting Events|Kliens-oldali események]]&lt;br /&gt;
* [[HU/Server Scripting Functions|Szerver-oldali függvények]]&lt;br /&gt;
* [[HU/Server Scripting Events|Szerver-oldali események]]&lt;br /&gt;
&amp;lt;!-- Incomplete * [[Module functions|Server-side external module scripting functions list]] --&amp;gt;&lt;br /&gt;
* [[HU/MTA Classes|MTA Osztályok]] - MTA osztályok részletes leírása&lt;br /&gt;
** [[HU/Element|MTA Elemek]] / [[HU/Element tree|Element ágak]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:System-file-manager.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;[[HU/Id|ID Lista]]&amp;lt;/h3&amp;gt;&lt;br /&gt;
*[[HU/Animations|Animációk]]&lt;br /&gt;
*[[HU/Character Skins|Karakter skinek]]&lt;br /&gt;
*[[HU/CJ_Clothes|CJ Ruhái]]&lt;br /&gt;
*[[HU/Garage|Garázs ID lista]]&lt;br /&gt;
*[[HU/Interior IDs|Interiorok]]&lt;br /&gt;
*[[HU/Material IDs|Material]]&lt;br /&gt;
*[[HU/Projectiles|Lövedékek]]&lt;br /&gt;
*[[HU/Radar Blips|Radar jelzések]]&lt;br /&gt;
*[[HU/Sounds|Hang]]&lt;br /&gt;
*[[HU/Vehicle IDs|Járművek]]&lt;br /&gt;
*[[HU/Vehicle Colors|Jármű színek]]&lt;br /&gt;
*[[HU/Vehicle Upgrades|Jármű fejlesztések]]&lt;br /&gt;
*[[HU/Vehicle variants|Járművek egyedi tulajdonságai]]&lt;br /&gt;
*[[HU/Vehicle component manipulation|Jármű komponens változtatások]]&lt;br /&gt;
*[[HU/Weapons|Fegyverek]]&lt;br /&gt;
*[[HU/Weather|Időjárás]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Osi symbol.png|75px|link=http://opensource.org/|left]]&lt;br /&gt;
A '''Multi Theft Auto''' '''nyílt forráskódú'''. &lt;br /&gt;
&amp;lt;br/&amp;gt;Ez azt jelenti, hogy a játékot bárki jobbá teheti!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding-left: 15px; padding-right: 15px;&amp;quot; class=&amp;quot;plainlinks&amp;quot;&amp;gt;&lt;br /&gt;
[[File:MTALogo_8ball.png|left|85px|link=Archive]]&lt;br /&gt;
&amp;lt;ul style=&amp;quot;list-style: none; width: 200px; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;'''A [[Multi Theft Auto]] - ról'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[Archive|Archívum]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[Press Coverage|Sajtó]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[http://code.google.com/p/mtasa-blue/people/list Fejlesztők]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;list-style: none; width: 200px; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;'''Multi Theft Auto 0.5'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[Archive#Multi_Theft_Auto_0.5|Letöltés]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[MTA 0.5r2 Known Issues|Ismert hibák]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;list-style: none; width: 200px; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;'''Wiki Statisztikák'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;{{NUMBEROFARTICLES}} cikk&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;{{NUMBEROFPAGES}} oldal&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;{{NUMBEROFUSERS}} regisztrált felhasználó&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
__NOEDITSECTION__&lt;br /&gt;
{{Languages list|en}}&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Changes_in_1.5.2&amp;diff=47494</id>
		<title>HU/Changes in 1.5.2</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Changes_in_1.5.2&amp;diff=47494"/>
		<updated>2016-05-13T16:43:48Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Valtozasok}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
* Változások listája: https://bugs.mtasa.com/changelog_page.php&lt;br /&gt;
* Teljes lista: https://github.com/multitheftauto/mtasa-blue/commits/1.5.1?page=1&lt;br /&gt;
&lt;br /&gt;
== Főbb Kiegészítések / Változtatások ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fejlesztés ==&lt;br /&gt;
&lt;br /&gt;
=== Kliens ===&lt;br /&gt;
* [[createSearchLight]], [[getSearchLightStartPosition]], [[getSearchLightEndPosition]], [[getSearchLightStartRadius]], [[getSearchLightEndRadius]], [[setSearchLightStartPosition]], [[setSearchLightEndPosition]], [[setSearchLightStartRadius]], [[setSearchLightEndRadius]] hozzáadva&lt;br /&gt;
* [[setWindowFlashing]] hozzáadva&lt;br /&gt;
* Kijavítva a pozíció kalkulálás a [[dxGetTexturePixels]] funkciónál&lt;br /&gt;
* UsingDepthBuffer státusz hozzáadva a [[dxGetStatus]] funkcióhoz&lt;br /&gt;
&lt;br /&gt;
=== Szerver ===&lt;br /&gt;
* [[dbPrepareString]] hozzáadva&lt;br /&gt;
* Kijavítva a ''Player.outputChat'' funkciónál a helytelen viselkedést&lt;br /&gt;
* [[onPlayerACInfo]] és [[resendPlayerACInfo]] hozzáadva&lt;br /&gt;
&lt;br /&gt;
=== Megosztott (''Kliens &amp;amp; Szerver oldal'') ===&lt;br /&gt;
* OOP javítások&lt;br /&gt;
* Kijavítva, hogy a kettőspont levágja az assert általi üzenetet, és egy hibaüzenet&lt;br /&gt;
* Kijavítva, hogy a loadstring és load nem fogad el UTF-8 /w BOM karaktereket &lt;br /&gt;
* Hibakezelés funkció paraméter elemzés továbbfejlesztve&lt;br /&gt;
* Megváltoztatva a ''coroutine.resum'', hogy kiírja a hibákat alapértelmezetten&lt;br /&gt;
* HTTPS támogatás a [[fetchRemote]]-hoz.&lt;br /&gt;
&lt;br /&gt;
== Kliens ==&lt;br /&gt;
&lt;br /&gt;
=== Kliens: Kiegészítések ===&lt;br /&gt;
* Nem történt kiegészítés&lt;br /&gt;
&lt;br /&gt;
=== Kliens: Hibajavítások &amp;amp; Változtatások ===&lt;br /&gt;
* CEF frissítva (és az alárendelt Chromium)&lt;br /&gt;
* Javítva, hogy a játékos újracsatlakozik bizonyos körülmények között, amikor letölt egy fájlt egy külső webszerverről&lt;br /&gt;
* Javítva az ajtó/egyéb más szinkronizálása a kocsi stream-be/ki-nél.&lt;br /&gt;
* Javítva több jelentősebb crash&lt;br /&gt;
* Biztonsági javítások&lt;br /&gt;
&lt;br /&gt;
== Szerver ==&lt;br /&gt;
&lt;br /&gt;
=== Szerver: Kiegészítések ===&lt;br /&gt;
* Hozzáadva pár Linux könyvtár az MTA csomagához, hogy javítsuk a kompatibilitást régebbi rendszerekkel&lt;br /&gt;
* Hozzáadva a szerver ellenőrzési logika&lt;br /&gt;
&lt;br /&gt;
=== Szerver: Hibajavítások &amp;amp; Változtatások ===&lt;br /&gt;
* Javítva, hogy a bemenő kurzor szerver fagyást okoz&lt;br /&gt;
* Javítva, hogy a refreshResources időnként crashelteti a szervert&lt;br /&gt;
* Javítva, hogy a fájlok ütközzenek, amikor a resource neve tartalmaz szögletes zárójeleket&lt;br /&gt;
* Javítva a Linux szerver induláskori hiba üzenetének a formázását&lt;br /&gt;
* Fejlesztve a verzió ellenőrzés&lt;br /&gt;
&lt;br /&gt;
== Resourceok ==&lt;br /&gt;
* Nem történt változás&lt;br /&gt;
&lt;br /&gt;
== Szerkesztő ==&lt;br /&gt;
* Nem történt változás&lt;br /&gt;
&lt;br /&gt;
== Mellék információ ==&lt;br /&gt;
''Jobban leírt információ elérhető a [https://bugs.multitheftauto.com/changelog_page.php Bug követő változási listán] és a GitHub táűrolókon:&lt;br /&gt;
:* [https://github.com/multitheftauto/mtasa-blue MTA: SA Blue]&lt;br /&gt;
:* [https://github.com/multitheftauto/mtasa-resources MTA: SA Hivatalos Resourcek]&lt;br /&gt;
&lt;br /&gt;
[[Category:Changelog]]&lt;br /&gt;
[[Category:Incomplete]]&lt;br /&gt;
&lt;br /&gt;
==Fordította==&lt;br /&gt;
* NeXuS&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Bevezet%C3%A9s_a_scriptel%C3%A9sbe&amp;diff=47493</id>
		<title>HU/Bevezetés a scriptelésbe</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Bevezet%C3%A9s_a_scriptel%C3%A9sbe&amp;diff=47493"/>
		<updated>2016-05-13T16:43:28Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A resourceok egy nagy része az MTAnak. A resource lényegében egy mappa vagy egy zip ami tartalmazza a fájlokat, plusz egy meta fájlt, ami leírja a szervernek, hogy a resource hogyan legyen betöltve, és milyen fájlokat tartalmaz. A resource részben hasonlít egy programhoz, ami az operációs rendszerünkön fut - lelehet állítani, ellehet indítani, és egyszerre több resource is futhat.&lt;br /&gt;
&lt;br /&gt;
Minden ami a scripteléssel foglalkozik, a resourcekben történik, amit a resource tesz határozza meg, hogy az egy játéktípus, egy map vagy bármi más. Az MTA tartalmaz scripteket, amiket opcionálisan fel is használhatsz, mint pl egy map korlátozás, ami által csak a játszható térben lehetünk vagy deathpickupok, amivel létrehozhatunk fegyver felvételi pontokat.&lt;br /&gt;
{{tip|Az első lépés ahhoz, hogy elkezdj scriptelni, az az hogy használj egy LUA szerkesztőt. Ez megkönnyíti a scriptelést. Ajánlom a [http://www.sublimetext.com/ Sublime Text], a [http://notepad-plus.sourceforge.net/uk/site.htm Notepad++] vagy a [http://luaedit.sourceforge.net/ LuaEdit] programot. Van egy nem hivatalos [[MTASE|MTA Script Szerkesztő]] (fejlesztési státuszban, de nem tudok arról, hogy még fejlesztik) amit kipróbálhatsz.}}&lt;br /&gt;
== Egy működő script készítése ==&lt;br /&gt;
Lépésről-lépésre megfogunk tanulni egy olyan alap script elkészítését, ami lehetővé teszi, hogy a karakterünk a városban sétáljon.&lt;br /&gt;
=== Hol találjuk meg a scripteket? ===&lt;br /&gt;
Először is tekintsük meg a script fájlok szerkezetét. Menj az MTA szerver mappájába és kövesd a következő útvonalat:&lt;br /&gt;
&lt;br /&gt;
server/mods/deathmatch/resources/&lt;br /&gt;
&lt;br /&gt;
Itt találni fogsz egy csomó .zip fájlt, amik az általános tömörített scriptek, amit az MTA hordoz magával. Minden fájl egy &amp;quot;resource&amp;quot;, az összes kilesz csomagolva és ellesz indítva a szerver által, amikor az elindul. Ahhoz, hogy létrehozzuk a saját resourceunkat csak szimplán létre kell hoznunk egy mappát az általad preferált névvel. Mi most az &amp;quot;enszerverem&amp;quot; mappa nevet fogjuk használni az oktatáshoz.&lt;br /&gt;
Hozzuk létre ezt a mappát, majd menjünk bele.&lt;br /&gt;
&lt;br /&gt;
Most ebben a könyvtárban kell lenned:&lt;br /&gt;
&lt;br /&gt;
server/mods/deathmatch/resources/enszerverem&lt;br /&gt;
&lt;br /&gt;
=== A resourceok azonosítása ===&lt;br /&gt;
Ahhoz, hogy a szerver tudja, hogy mi van a resourceban, szükségünk lesz egy meta.xml fájlra a tartalmazott fájlokkal. Ennek a resource főkönyvtárában kell elhelyezkednie, ami az &amp;quot;enszerverem&amp;quot; az esetünkben. Szóval hozz létre egy szöveges dokumentumot, majd nevezd át &amp;quot;meta.xml&amp;quot;-re, és nyisd meg notepaddal.&lt;br /&gt;
&lt;br /&gt;
Írd be a következő kódot a meta.xml fájlba.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta&amp;gt;&lt;br /&gt;
      &amp;lt;info author=&amp;quot;A neved&amp;quot; type=&amp;quot;gamemode&amp;quot; name=&amp;quot;A szerverem&amp;quot; description=&amp;quot;Az első MTA szerverem&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;script src=&amp;quot;script.lua&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Az &amp;lt;info/&amp;gt; címkében láthatsz egy &amp;quot;type&amp;quot; mezőt ami eldönti, hogy ez a resource egy játéktípus, és nem egy map, vagy egy script, ami később lesz elmagyarázva. A játéktípus kell nekünk, hogy egy önálló szervert tudjunk létrehozni.&lt;br /&gt;
&lt;br /&gt;
A &amp;lt;script/&amp;gt; címke dönti el azokat a script fájlokat, amit a resource tartalmaz. Ezeket fogjunk elkészíteni következőnek.&lt;br /&gt;
&lt;br /&gt;
=== Egy egyszerű script létrehozása ===&lt;br /&gt;
Ne feledd, hogy a &amp;lt;script/&amp;gt; címkében a .lua nincs egy másik könyvtárban. Ez miatt ugyan ott fogjuk létrehozni, mint ahol a meta.xml-t. &lt;br /&gt;
Hozd létre, majd nyisd meg azt a fájlt. Most már betudod másolni a következő kódot a script.lua fájlodba.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local spawnX, spawnY, spawnZ = 1959,55, -1714,46, 10&lt;br /&gt;
function csatlakozasKezelo()&lt;br /&gt;
	spawnPlayer(source, spawnX, spawnY, spawnZ)&lt;br /&gt;
	fadeCamera(source, true)&lt;br /&gt;
	setCameraTarget(source, source)&lt;br /&gt;
	outputChatBox (&amp;quot;Üdvözöllek a szerveremen.&amp;quot;, source)&lt;br /&gt;
end&lt;br /&gt;
addEventHandler (&amp;quot;onPlayerJoin&amp;quot;, getRootElement (), csatlakozasKezelo)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Amikor csatlakozunk, a script lespawnol minket arra a koordinátára ( x, y, z ), amint az elején adtunk meg neki. Ne feledjük, hogy a ''fadeCamera'' funkció szükséges, vagy különben fekete lesz a képernyő. Szintúgy, a DP2 kiadása után be kell állítanunk a kamera célját (különben minden játékos a kék eget fogja látni.)&lt;br /&gt;
&lt;br /&gt;
A ''source'' változó jelenti, hogy ki hívta meg az eseményt. Mivel egy játékos csatlakozott, amikor a kódunk meglett hívva, ezért ezt a változót használjuk, ahhoz hogy megnézzük, hogy ki csatlakozott. Ez miatt nem fog mindenkit, vagy egy véletlenszerű játékost lespawnolni.&lt;br /&gt;
&lt;br /&gt;
Ha egy közelebbi pillantást vetünk az [[addEventHandler]]-re, akkor láthatunk 3 dolgot: &amp;quot;onPlayerJoin&amp;quot;, ami azt jelzi, hogy mikor legyen meghívva. getRootElement(), ami azt jelzi, hogy ki/mi által lehet meghívva. (A getRootElement() mindent/mindenkit jelent.) És joinHandler, ami azt jelzi, hogy melyik funckió legyen lefuttatva, az esemény meghívása után. Egyéb részletek hamarosan le lesznek írva egy másik példában, most indítsuk el a szerverünket, és próbáljuk ki!&lt;br /&gt;
&lt;br /&gt;
=== A script futtatása ===&lt;br /&gt;
Ahhoz, hogy a szervert elindítsuk, egyszerűen futtassuk az ''&amp;quot;MTA Server&amp;quot;'' fájlt a server/ mappában. Egy lista fog kijönni először, a szerver adataival; jegyezd meg a port számát, ami a kapcsolódáshoz lesz szükséges. Ezután a szerver betölti a resourceokat a server/mods/deathmatch/resources/ mappából, és ezután &amp;quot;kész a csatlakozásokra&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Mielőtt kapcsolódnál a szerverre, el kell indítani a játékmódunkat. Írd be a &amp;quot;start enszerverem&amp;quot;, parancsot, és nyomj entert. A szerver elindítja a játékmódot, amit létrehoztál, ettől a ponttól kezdve a hibákat és a figyelmeztetéseket is írni fogja. Most már elindíthatod az MTA klienst, majd a &amp;quot;Qyors Csatlakozás&amp;quot; gombbal csatlakozhatsz is az előbb látott IP-vel és porttal. Ha minden jól megy, pár másodperc múlva a karaktered megjelenik, és Los Santos utcáin járkál.&lt;br /&gt;
&lt;br /&gt;
Következőnek egy parancsot fogunk létrehozni, amivel képesek leszünk egy kocsit létrehozni a helyzetünkön. Lehet, hogy kiszeretnéd ezt hagyni, és a haladó scriptelést szeretnéd megismerni a [[Map Manager | Map Manager]] használatával, ami ezt az oktatást folytatja. Egy másik ág a [[Bevezetés a GUI scriptelésbe]], ami megmutatja hogy hogyan hozunk létre Grafikus Felhasználói Felületet MTAn belül.&lt;br /&gt;
&lt;br /&gt;
==Egy egyszerű parancs létrehozása==&lt;br /&gt;
Menjünk vissza a ''script.lua'' fájl tartalmához. Ahogy említettük feljebb, egy parancsot akarunk szolgáltatni, amivel egy kocsit lehet létrehozni a jelenlegi helyzeteden. Először, létre kell hoznunk egy funkciót, amit megakarunk hívni és egy parancskezelőt, ami létrehozza a parancsot, amit a játékos betud írni a konzolba.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- A funckió létrehozása, ezekkel az argumentumokkal: thePlayer, command, vehicleModel&lt;br /&gt;
function jarmuLetrehozasaJatekosnak(thePlayer, command, vehicleModel)&lt;br /&gt;
   -- A jármű létrehozása és még pár dolog&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- A parancskezelő létrehozása&lt;br /&gt;
addCommandHandler(&amp;quot;jarmuletrehozas&amp;quot;, jarmuLetrehozasaJatekosnak)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
''Megjegyzés: A funckió nevek megnyomhatóak a példákban, és a wikin elhelyezkedő funkció leírására dobnak.''&lt;br /&gt;
&lt;br /&gt;
====A parancskezelőkről====&lt;br /&gt;
Az első argumentuma az [[addCommandHandler]] funckiónak a parancs neve, amit a játékos betud majd írni, a második argumentuma amit ez megfog hívni, az esetünkben a ''jarmuLetrehozasaJatekosnak''.&lt;br /&gt;
&lt;br /&gt;
Ha már van némi tudásod a scriptelésben, akkor tudni fogod, hogy így hívjuk meg a funckiókat:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
funkcioNeve(argumentum1, argumentum2, argumentum3, ..)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
funkcioNeve(thePlayer, parancsNeve, argumentum3, ..)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Ha egy közelebbről megnézzük az alsó példát felettünk láthatjuk, hogy az argumentum1 a thePlayer és az argumentum2 a commandName. thePlayer simán az az egy, aki beírta a parancsot, szóval, akárminek nevezed el, ez a változó fogja tartalmazni a játékost, aki aktiválta a parancsot. A commandName simán a parancs, amit beírtak. Szóval ha beírták a &amp;quot;/üdvözlet&amp;quot;, parancsot akkor ez az argumentum  tartalmazza az &amp;quot;üdvözlet&amp;quot; szöveget. Az argumentum3 az plusz dolog, amit a játékos beírt. Erről egy kicsit később fogsz tanulni az oktatásban. Soha ne felejtsd el, hogy az első kettő argumentum standard, de akárminek elnevezheted.&lt;br /&gt;
&lt;br /&gt;
Mi már meghívtuk az [[addCommandHandler]] funckiót ilyen módon, és mióta a ''jarmuLetrehozasaJatekosnak'' is egy ilyen funckió, ezért ilyen módon meghívható ő is. De e helyett mi egy parancskezelőt használunk, ami hasonló módon hívja meg.&lt;br /&gt;
&lt;br /&gt;
Például: Valaki beírja a &amp;quot;jarmuletrehozas 468&amp;quot; parancsot a játék konzoljába, hogy lehívjon egy Sanchezt, a parancskezelő meghívja a  &amp;quot;jarmuLetrehozasaJatekosnak&amp;quot; funkciót, az olyan '''mintha''' ezt a sort raktuk volna a scriptbe:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
jarmuLetrehozasaJatekosnak(thePlayer,&amp;quot;jarmuletrehozas&amp;quot;,&amp;quot;468&amp;quot;) -- A thePlayer a játékos, aki beírta a parancsot&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Ahogy láthatjuk, ez pár paramétert szolgáltat: A játékost, aki beírta a parancsot, a parancsot, amit beírt és minden más szöveget, amit utána beírt, ebben a példában a &amp;quot;468&amp;quot; ami a Sanchez IDje a játékban. Az első kettő paraméter mindig ugyan az a parancskezelőknél, amit elolvashatsz az [[addEventHandler]] oldalnál. Ez miatt, mindig minimum kettő paramétert kell meghatározni, hogy akármi mást tudsz utána használni (például, ahhoz, hogy egy szöveget beolvassunk a parancs beírása után, a mi példánkban a jármű model IDje).&lt;br /&gt;
&lt;br /&gt;
''Megjegyzés: Minden esetben a funckió létrehozása UTÁN kell definiálni a parancskezelőt, különben nem fogja megtalálni. A meghívások sorrendje számít.''&lt;br /&gt;
&lt;br /&gt;
====A funckió megírása====&lt;br /&gt;
Ahhoz, hogy feltöltsük azt a funkciót, amit írtunk, először gondolkoznunk kell, hogy mit is akarunk csinálni:&lt;br /&gt;
* Lekérni a játékos pozícióját, hogy megtudjuk, hogy hova is rakjuk le a kocsit (azt akarjuk, hogy pontosan a játékosnál jelenjen meg).&lt;br /&gt;
* Számítsuk ki a pozíciót, ahova létrehozzuk a járművet (nem akarjuk, hogy a játékosban jelenjen meg).&lt;br /&gt;
* Hozzuk létre a járművet.&lt;br /&gt;
* Nézzük meg, hogy létre lett hova, vagy írjunk ki egy hibát.&lt;br /&gt;
&lt;br /&gt;
Ahhoz, hogy elérjük a célunkat, szükséges lesz pár funkcióra. Ahhoz, hogy megtaláljuk a funkciókat, amiket használnunk kell, látogassunk el a [[Scripting Functions|Szerver Scriptelési Funckiók]]hoz. Először is, le kell kérnünk a játékos pozícióját. Mivel a játékosok elementek, először az '''Element funkcióhoz''' lépünk, ahol megtaláljuk a [[getElementPosition]] funkciót. A funkció nevére kattintással a listában, eljutsz a funkció leírásához. Itt láthatjuk a szintaxist, mit ad vissza, és általában egy példát. A szintaxis mutatja meg, hogy milyen argumentumokat lehet, vagy kell beírnunk.&lt;br /&gt;
&lt;br /&gt;
A [[getElementPosition]] funkcióhoz szintaxis:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
float, float, float getElementPosition ( element azElement )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A három ''float'' a visszaadási érték típusa. Ebben az esetben a funkció három lebegőpontos szám. (x, y és z) A zárójelekben láthatod, hogy milyen argumentumokat kell beírnod. Ebben az esetben csak az elementet, akinek leakarod kérni a pozícióját, ami a játékos a példánkban.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function jarmuLetrehozasaJatekosnak(thePlayer, command, vehicleModel)&lt;br /&gt;
	-- Kérjük le a koordinátát és rakjuk be az x, y, z változókban&lt;br /&gt;
	-- (A local azt jelenti, hgy a változó csak a jelenlegi területben létezik, ebben az esetben a funckió)&lt;br /&gt;
	local x, y, z = getElementPosition(thePlayer)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Következőnek  to biztosítani akarjuk, hogy a jármű nem lesz létrehozva pontosan a játékosban szóval hozzáadunk pár egységet az ''x'' változóhoz, ami azt fogja eredményezni, hogy a játékostól keletre lesz létrehozva.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function jarmuLetrehozasaJatekosnak(thePlayer, command, vehicleModel)&lt;br /&gt;
	local x, y, z = getElementPosition(thePlayer) -- A játékos pozíciójának lekérése&lt;br /&gt;
	x = x + 5 -- 5 egység hozzáadása az &amp;quot;x&amp;quot; változóhoz&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Most kell egy másik funckió, ami lehívja a járművet. Mégegyszer megkeressük a [[Scripting Functions|Szerver Funkciók Listá]]jában, most - miután járművekről beszélünk - a '''Jármű funkciók''' résznél, ahol kifogjuk választani a [[createVehicle]] funkciót. Ennek a funkciónak a szintaxisában, csak egy visszaadási értékünk van (ami többször jellemző), egy kocsi element ami egy kocsira mutat, amit éppen létrehoztunk. Ugyanúgy látunk argumentumokat amik [ ] között vannak, ez azt jelenti, hogy nem kötelező.&lt;br /&gt;
&lt;br /&gt;
Minden argumentumunk megvan a [[createVehicle]]-hoz a funkicónban: A pozíciók ami kiszámoltunk ''x, y, z'' változó és a model ID amit a parancson keresztül szolgáltattunk (&amp;quot;jarmuletrehozas 468&amp;quot;) és eltudjuk érni a funkción belül, mint ''vehicleModel'' változó.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function jarmuLetrehozasaJatekosnak(thePlayer, command, vehicleModel)&lt;br /&gt;
	local x, y, z = getElementPosition(thePlayer) -- A játékos pozíciójának lekérése&lt;br /&gt;
	x = x + 5 -- 5 egység hozzáadása az &amp;quot;x&amp;quot; változóhoz&lt;br /&gt;
	-- Hozzuk létre a kocsit, és mentsük el a visszaadott értéket, mint a ''letrehozottJarmu'' változó.&lt;br /&gt;
	local letrehozottJarmu = createVehicle(tonumber(vehicleModel),x,y,z)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Persze ez a kód fejleszthető lenne nagyon sok módon, de legalább akarunk benne, egy ellenőrzést, hogy a kocsi sikeresen létre lett-e hozva, vagy sem. Ahogy olvashatjuk a [[createVehicle]] oldal alatt '''Returns'''-nél, a funckió visszaad egy ''false'' értéket, ha nem sikerült létrehozni a járművet. Ezért, ellenőrizzuk az értéket a ''letrehozottJarmu'' változónak.&lt;br /&gt;
&lt;br /&gt;
Most már megvan a teljes script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function jarmuLetrehozasaJatekosnak(thePlayer, command, vehicleModel)&lt;br /&gt;
	local x, y, z = getElementPosition(thePlayer) -- A játékos pozíciójának lekérése&lt;br /&gt;
	x = x + 5 -- 5 egység hozzáadása az &amp;quot;x&amp;quot; változóhoz&lt;br /&gt;
	-- Hozzuk létre a kocsit, és mentsük el a visszaadott értéket, mint a ''letrehozottJarmu'' változó.&lt;br /&gt;
	local letrehozottJarmu = createVehicle(tonumber(vehicleModel),x,y,z)&lt;br /&gt;
	-- Nézzük meg, hogy a visszaadási érték az ''false''&lt;br /&gt;
	if (letrehozottJarmu == false) then&lt;br /&gt;
		-- Ha igen, akkor írjunk ki egy üzenet, de csak ennek a játékosnak.&lt;br /&gt;
		outputChatBox(&amp;quot;Nem sikerült létrehozni a járművet.&amp;quot;,thePlayer)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
addCommandHandler(&amp;quot;jarmuletrehozas&amp;quot;, jarmuLetrehozasaJatekosnak)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahogy láthatod, megismertettük veled az [[outputChatBox]] funkciót is. Mostmár saját magadnak is képesnek kell lenned, hogy felfedezd a funkciók dokumentációs oldalát. Több haladó scriptért látogass el a [[Map manager|Map Manager]] oldalra.&lt;br /&gt;
&lt;br /&gt;
==Amit tudnod kell==&lt;br /&gt;
Már elolvastál pár dolgot a resourceokról, parancskezelőkről, és funkciók megtalálásáról a dokumentumokban az első paragrafusban, de még nagyon sok minden van, amit meg kell tanulnod. Ez a rész adni fog egy rövid bemutatót ezekről a dolgokról, miközben linkelgetek oldalakra, ha lehetséges.&lt;br /&gt;
===Kliens oldali és Szerver oldali scriptek===&lt;br /&gt;
Talán már találkoztál ezekkel, vagy hasonlókkal (Szerver/Kliens) valahol a wikin, legtöbbet a funkciókkal kapcsolatban. Az MTA nem csak a szerver oldalon futó scripteket támogatja, parancsokat szolgáltat ( mint amit feljebb írtunk ), vagy más funkciókat, hanem azokat a scripteket is, amik azon az MTA kliensen futnak, amit a játékosok a szerverekhez való csatlakozásra használnak. Ennek az az oka, hogy néhány funkciónak, amit az MTA szolgáltat, kliens oldalon kell lennie ( mint például a GUI - Grafikus Felhasználói Felület ), a többinek szerver oldalon kell lennie, mivel ott jobban működnek, vagy nem működnek kliens oldalon.&lt;br /&gt;
&lt;br /&gt;
A legtöbb script, amit készíteni fogsz (játéktípusok, mappok) valószínűleg szerver oldalon lesznek létrehozva, mint amit írtunk az első részben. Ha belefutsz valamibe, amit nem lehet megoldani szerveroldalon, valószínűleg kliens oldalon kell megoldanod. Egy kliens oldali scripthez, létre kell hozni egy sima script fájlt, ( például nevezzük el ''client.lua''-nak ) és jelezzük a meta.xml-ben így:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;client.lua&amp;quot; type=&amp;quot;client&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
A ''type'' tulajdonság alapból 'server', szóval csak akkor kell meghatározni, ha kliens oldali a script. Amikor ezt csinálot, a kliens oldali script le lesz töltve a játékos számítógépére amikor csatlakozik a szerverre. Többet olvass a [[Client side scripts|Kliens Oldali Scriptek]] oldalon.&lt;br /&gt;
&lt;br /&gt;
===Összetettebb scriptek===&lt;br /&gt;
Az előző rész tömören megmutatta nekünk, hogyan adjunk hozzá kliens oldali scripteket a resourcehoz, de van rá több másik mód is. Ahogy említettem az oldal tetején, a resource körülbelül minden lehet. Az a céljük az alapján van meghatározva, hogy mit csinálnak. Legyen egy elméleti resourceunk, a fájlokra nézve tartalmaz egy ''meta.xml''t.&lt;br /&gt;
====Első példa====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
/admin_commands&lt;br /&gt;
	/meta.xml&lt;br /&gt;
	/commands.lua&lt;br /&gt;
	/client.lua&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta&amp;gt;&lt;br /&gt;
	&amp;lt;info author=&amp;quot;Someguy&amp;quot; description=&amp;quot;Admin Parancsok&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;script src=&amp;quot;commands.lua&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;script src=&amp;quot;client.lua&amp;quot; type=&amp;quot;client&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* A ''commands.lua'' fájl szolgáltat pár admin parancsot, mint pl. játékos kitiltása, vagy némítása, vagy egyéb más, amivel a szervert moderálhatod.&lt;br /&gt;
* A ''client.lua'' fájl szolgáltatja a GUI-t amivel egyszerűbben tudod elvégezni az akciókat.&lt;br /&gt;
&lt;br /&gt;
Ez a példa talán mindig fut (esetleg még auto-indítva is van, amikor a szerver elindul) hiszen ez egy hasznos script az egész játéktapasztalat közben, és nem fogja zavarni a játékmenetet, hacsak egy admin nem dönt úgy, és tesz néhány akciót.&lt;br /&gt;
&lt;br /&gt;
====Második példa - Egy játékmód====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
/counterstrike&lt;br /&gt;
	/meta.xml&lt;br /&gt;
	/counterstrike.lua&lt;br /&gt;
	/buymenu.lua&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta&amp;gt;&lt;br /&gt;
	&amp;lt;info author=&amp;quot;Someguy&amp;quot; description=&amp;quot;Counter Strike [REMAKE]&amp;quot; type=&amp;quot;gamemode&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;script src=&amp;quot;counterstrike.lua&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;script src=&amp;quot;buymenu.lua&amp;quot; type=&amp;quot;client&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* A ''counterstrike.lua'' tartalmazza az ehhez hasonló funkciókat:&lt;br /&gt;
** Engedélyezze a játékosokat a csapatváltáshoz, és hozza létre őket.&lt;br /&gt;
** Fegyvereket, célpontokat és leírásokat szolgáltat.&lt;br /&gt;
** Meghatározza a játékszabályokat, pl. mikor ér véget egy kör, mi történik ha egy játékos meghal&lt;br /&gt;
** .. és talán még néhány dolog&lt;br /&gt;
* A ''buymenu.lua''  egy kliens oldali script, ez hozza létra a fegyvervásárlás menüt.&lt;br /&gt;
&lt;br /&gt;
Ezt a példát hívhatjuk egy játéktípusnak, hiszen nem csak a játékmenetbe avatkozik bele, de meghatározza a szabályait is. A ''type'' tulajdonság jelzi, hogy ez a példa a [[Map manager]]-rel működik, egy másik resource amit a QA Team írt, hogy kezelje a játéktípusait, és a map betöltést. Magasan ajánlott, hogy olyan technikákra alapozd a játékmódot, amit szolgáltat ez a resource.&lt;br /&gt;
&lt;br /&gt;
Ez azt is jelenti, hogy a játékmód nem fog futni egy map nélkül. A játékmódoknak annyira kell generikusnak lennie, amennyire csak lehet. Egy példa a mapra a következő példában található.&lt;br /&gt;
&lt;br /&gt;
====Harmadik példa - Egy map====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
/cs-airport&lt;br /&gt;
	/meta.xml&lt;br /&gt;
	/airport.map&lt;br /&gt;
	/airport.lua&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta&amp;gt;&lt;br /&gt;
	&amp;lt;info author=&amp;quot;Someguy&amp;quot; description=&amp;quot;Counter Strike Reptér Map&amp;quot; type=&amp;quot;map&amp;quot; gamemodes=&amp;quot;counterstrike&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;map src=&amp;quot;airport.map&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;script src=&amp;quot;airport.lua&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Az ''airport.map'' az XML fájlban szolgáltat információkat a mapról a játékmódnak, ami ezeket tartalmazhatja:&lt;br /&gt;
** A játékosok hogy legyen létrehozva, milyen fegyverrel, és melyik csapatban&lt;br /&gt;
** Mik a célpontok&lt;br /&gt;
** Időjárás, Idő, Időlimit&lt;br /&gt;
** Kocsikat szolgáltat&lt;br /&gt;
* Az ''airport.lua'' talán tartalmaz különleges funkciókat amik ezek lehetnek:&lt;br /&gt;
** Nyitható ajtók/robbanjon fel valami, amikor valami történik&lt;br /&gt;
** Hozzon létre, vagy mozgasson egyedi objekteket, vagy manipulálja azokat az objekteket, amik a .map fájl által lettek létrehozva&lt;br /&gt;
** .. Minden különleges, amit eltudsz képzelni&lt;br /&gt;
&lt;br /&gt;
Ahogy láthatod, a ''type'' tulajdonság megváltozott 'map'-ra, jelezve a [[Map manager]]-nek, hogy ez a resource egy map, míg a ''gamemodes'' tulajdonság megmondja, hogy melyik játéktípushoz érvényes a pálya, ebben az esetben a felette lévő példában lévő játékmód.&lt;br /&gt;
Ami talán meglepő, hogy egy script van a map resourceben. Persze ez nem kötelező egy mapban, de elég nagy szélességben megnyitja a lehetőségeket a map készítőknek, hogy létrehozhassák a saját világukat azokkal a szabályokkal, amivel létrehozták a játékmódot.&lt;br /&gt;
&lt;br /&gt;
Az ''airport.map'' fájl hasonlóan nézhet ki:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;map mode=&amp;quot;deathmatch&amp;quot; version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;terrorists&amp;gt;&lt;br /&gt;
		&amp;lt;spawnpoint posX=&amp;quot;2332.23&amp;quot; posY=&amp;quot;-12232.33&amp;quot; posZ=&amp;quot;4.42223&amp;quot; skins=&amp;quot;23-40&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/terrorists&amp;gt;&lt;br /&gt;
	&amp;lt;counterterrorists&amp;gt;&lt;br /&gt;
		&amp;lt;spawnpoint posX=&amp;quot;2334.23443&amp;quot; posY=&amp;quot;-12300.233&amp;quot; posZ=&amp;quot;10.2344&amp;quot; skins=&amp;quot;40-50&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/counterterrorists&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;bomb posX=&amp;quot;23342.23&amp;quot; posY=&amp;quot;&amp;quot; posZ=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;vehicle posX=&amp;quot;&amp;quot; posY=&amp;quot;&amp;quot; posZ=&amp;quot;&amp;quot; model=&amp;quot;602&amp;quot; /&amp;gt;	&lt;br /&gt;
	&amp;lt;vehicle posX=&amp;quot;&amp;quot; posY=&amp;quot;&amp;quot; posZ=&amp;quot;&amp;quot; model=&amp;quot;603&amp;quot; /&amp;gt;	&lt;br /&gt;
&amp;lt;/map&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ha egy játékmód egy mappal indul, a map automatikusan ellesz indítva a mapmanager által, és az információkat, amiket tárol, beolvashatóvá válnak a játéktípus resource által. Amikor egy map váltás van, az éppen futó map resource leáll, és a következő map resource elindul. Több mélyreható magyarázatért és példákért, hogy hogyan vannak felhasználva a map resourceok a fő scriptben, kérlek látogass el a [[Writing Gamemodes|Játékmód készítése]] oldalra.&lt;br /&gt;
&lt;br /&gt;
===Események===&lt;br /&gt;
Az [[Event|Események]] a módja, ahogy az MTA közli, hogy valami történt. Például, ha egy játékos meghal, az [[onPlayerWasted]] esemény lesz meghívva. Ahhoz, hogy valamit tudj tenni, amikor egy játékos meghal, fel kell készítened magad, hogy olyasmi, mint egy parancskezelő létrehozása, ahogy az  [[#Egy_m.C5.B1k.C3.B6d.C5.91_script_k.C3.A9sz.C3.ADt.C3.A9s|első fejezet]]ben leírtam.&lt;br /&gt;
&lt;br /&gt;
Ez a példa kifog írni egy üzenet, a játékos nevével, aki meghalt.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function jatekosMeghalt(osszesTolteny, gyilkos, gyilkosFegyver, testresz)&lt;br /&gt;
	outputChatBox(getPlayerName(source)..&amp;quot; meghalt!&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
addEventHandler(&amp;quot;onPlayerWasted&amp;quot;,getRootElement(),jatekosMeghalt)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahelyett, hogy megmutatnám, milyen argumentumok szükségesek, az Események dokumentum oldala megmutatja, hogy milyen paramétereket kell megadni a függvénynek, éppen ugyan úgy, ahogy a [[##A_parancskezel.C5.91kr.C5.91l|parancskezelők]]nél is csak itt különbözik az eseményeknél. Egy másik fontos pont, a ''source'' változó, ami létezik a függvényeknél. Ennek nem kell szerepelni a paraméterlistában a funkciónál, de mégis létezik. Minden eseménynél más-más értéket vesz, játékos eseménynél (ahogy a példában) a játékos element. Egy másik példáért nézd meg az [[#Egy_egyszer.C5.B1_script_l.C3.A9trehoz.C3.A1sa|első részben]] létrehozott alap spawn scriptet, hogy hogyan is használjuk a ''source'' változót.&lt;br /&gt;
&lt;br /&gt;
==Innen hova tovább==&lt;br /&gt;
Most már egy kicsit ismered az alap helyzetet az MTA scripteléssel és egy a kicsit dokumentációkkal kapcsolatban. A [[Main Page|Főoldal]] több linkel szolgáltat még több információért, oktatásért, és referenciákért amivel mélyebb betekintést nyerhetsz azokban a témákban amire vágysz.&lt;br /&gt;
{{note|Innentől ajánlom a [[debugging|hibakeresés]] oktatást. A jó hibakeresési tudás feltétlen szükséges, amikor scripteket készítesz. Továbbá javaslom, hogy használd, az [[predefined variables list|előre meghatározott változók listá]]ját, hogy segítse, megkönnyítse, és gyorsabbá tegye a scriptelést.}}&lt;br /&gt;
'''Lásd még:'''&lt;br /&gt;
* [[OOP_Introduction|OOP Scriptelés Oktatás]]&lt;br /&gt;
* [[Advanced Topics|Haladó Témák]]&lt;br /&gt;
* [[Script_security|Script Védelem]]&lt;br /&gt;
* [[Scripting Introduction|Angol Verzió]]&lt;br /&gt;
[[es:Introducción a la Programación]]&lt;br /&gt;
[[it:Introduzione allo scripting]]&lt;br /&gt;
[[nl:Scripting_introductie]]&lt;br /&gt;
[[pt-br:Introdução ao Scripting]]&lt;br /&gt;
[[ru:Scripting Introduction]]&lt;br /&gt;
[[ar:مقدمه_في_البرمجه]]&lt;br /&gt;
[[zh-cn:脚本编写介绍]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Translated/Support]]&lt;br /&gt;
&lt;br /&gt;
==Fordította==&lt;br /&gt;
* NeXuS&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Changes_in_1.5.2&amp;diff=47492</id>
		<title>HU/Changes in 1.5.2</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Changes_in_1.5.2&amp;diff=47492"/>
		<updated>2016-05-13T16:39:03Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Valtozasok}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
* Változások listája: https://bugs.mtasa.com/changelog_page.php&lt;br /&gt;
* Teljes lista: https://github.com/multitheftauto/mtasa-blue/commits/1.5.1?page=1&lt;br /&gt;
&lt;br /&gt;
== Főbb Kiegészítések / Változtatások ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fejlesztés ==&lt;br /&gt;
&lt;br /&gt;
=== Kliens ===&lt;br /&gt;
* [[createSearchLight]], [[getSearchLightStartPosition]], [[getSearchLightEndPosition]], [[getSearchLightStartRadius]], [[getSearchLightEndRadius]], [[setSearchLightStartPosition]], [[setSearchLightEndPosition]], [[setSearchLightStartRadius]], [[setSearchLightEndRadius]] hozzáadva&lt;br /&gt;
* [[setWindowFlashing]] hozzáadva&lt;br /&gt;
* Kijavítva a pozíció kalkulálás a [[dxGetTexturePixels]] funkciónál&lt;br /&gt;
* UsingDepthBuffer státusz hozzáadva a [[dxGetStatus]] funkcióhoz&lt;br /&gt;
&lt;br /&gt;
=== Szerver ===&lt;br /&gt;
* [[dbPrepareString]] hozzáadva&lt;br /&gt;
* Kijavítva a ''Player.outputChat'' funkciónál a helytelen viselkedést&lt;br /&gt;
* [[onPlayerACInfo]] és [[resendPlayerACInfo]] hozzáadva&lt;br /&gt;
&lt;br /&gt;
=== Megosztott (''Kliens &amp;amp; Szerver oldal'') ===&lt;br /&gt;
* OOP javítások&lt;br /&gt;
* Kijavítva, hogy a kettőspont levágja az assert általi üzenetet, és egy hibaüzenet&lt;br /&gt;
* Kijavítva, hogy a loadstring és load nem fogad el UTF-8 /w BOM karaktereket &lt;br /&gt;
* Hibakezelés funkció paraméter elemzés továbbfejlesztve&lt;br /&gt;
* Megváltoztatva a ''coroutine.resum'', hogy kiírja a hibákat alapértelmezetten&lt;br /&gt;
* HTTPS támogatás a [[fetchRemote]]-hoz.&lt;br /&gt;
&lt;br /&gt;
== Kliens ==&lt;br /&gt;
&lt;br /&gt;
=== Kliens: Kiegészítések ===&lt;br /&gt;
* Nem történt kiegészítés&lt;br /&gt;
&lt;br /&gt;
=== Kliens: Hibajavítások &amp;amp; Változtatások ===&lt;br /&gt;
* CEF frissítva (és az alárendelt Chromium)&lt;br /&gt;
* Javítva, hogy a játékos újracsatlakozik bizonyos körülmények között, amikor letölt egy fájlt egy külső webszerverről&lt;br /&gt;
* Javítva az ajtó/egyéb más szinkronizálása a kocsi stream-be/ki-nél.&lt;br /&gt;
* Javítva több jelentősebb crash&lt;br /&gt;
* Biztonsági javítások&lt;br /&gt;
&lt;br /&gt;
== Szerver ==&lt;br /&gt;
&lt;br /&gt;
=== Szerver: Kiegészítések ===&lt;br /&gt;
* Hozzáadva pár Linux könyvtár az MTA csomagához, hogy javítsuk a kompatibilitást régebbi rendszerekkel&lt;br /&gt;
* Hozzáadva a szerver ellenőrzési logika&lt;br /&gt;
&lt;br /&gt;
=== Szerver: Hibajavítások &amp;amp; Változtatások ===&lt;br /&gt;
* Javítva, hogy a bemenő kurzor szerver fagyást okoz&lt;br /&gt;
* Javítva, hogy a refreshResources időnként crashelteti a szervert&lt;br /&gt;
* Javítva, hogy a fájlok ütközzenek, amikor a resource neve tartalmaz szögletes zárójeleket&lt;br /&gt;
* Javítva a Linux szerver induláskori hiba üzenetének a formázását&lt;br /&gt;
* Fejlesztve a verzió ellenőrzés&lt;br /&gt;
&lt;br /&gt;
== Resourceok ==&lt;br /&gt;
* Nem történt változás&lt;br /&gt;
&lt;br /&gt;
== Szerkesztő ==&lt;br /&gt;
* Nem történt változás&lt;br /&gt;
&lt;br /&gt;
== Mellék információ ==&lt;br /&gt;
''Jobban leírt információ elérhető a [https://bugs.multitheftauto.com/changelog_page.php Bug követő változási listán] és a GitHub táűrolókon:&lt;br /&gt;
:* [https://github.com/multitheftauto/mtasa-blue MTA: SA Blue]&lt;br /&gt;
:* [https://github.com/multitheftauto/mtasa-resources MTA: SA Hivatalos Resourcek]&lt;br /&gt;
&lt;br /&gt;
[[Category:Changelog]]&lt;br /&gt;
[[Category:Incomplete]]&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Changes_in_1.5.2&amp;diff=47491</id>
		<title>HU/Changes in 1.5.2</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Changes_in_1.5.2&amp;diff=47491"/>
		<updated>2016-05-13T16:38:41Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Valtoztatasok}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
* Változások listája: https://bugs.mtasa.com/changelog_page.php&lt;br /&gt;
* Teljes lista: https://github.com/multitheftauto/mtasa-blue/commits/1.5.1?page=1&lt;br /&gt;
&lt;br /&gt;
== Főbb Kiegészítések / Változtatások ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fejlesztés ==&lt;br /&gt;
&lt;br /&gt;
=== Kliens ===&lt;br /&gt;
* [[createSearchLight]], [[getSearchLightStartPosition]], [[getSearchLightEndPosition]], [[getSearchLightStartRadius]], [[getSearchLightEndRadius]], [[setSearchLightStartPosition]], [[setSearchLightEndPosition]], [[setSearchLightStartRadius]], [[setSearchLightEndRadius]] hozzáadva&lt;br /&gt;
* [[setWindowFlashing]] hozzáadva&lt;br /&gt;
* Kijavítva a pozíció kalkulálás a [[dxGetTexturePixels]] funkciónál&lt;br /&gt;
* UsingDepthBuffer státusz hozzáadva a [[dxGetStatus]] funkcióhoz&lt;br /&gt;
&lt;br /&gt;
=== Szerver ===&lt;br /&gt;
* [[dbPrepareString]] hozzáadva&lt;br /&gt;
* Kijavítva a ''Player.outputChat'' funkciónál a helytelen viselkedést&lt;br /&gt;
* [[onPlayerACInfo]] és [[resendPlayerACInfo]] hozzáadva&lt;br /&gt;
&lt;br /&gt;
=== Megosztott (''Kliens &amp;amp; Szerver oldal'') ===&lt;br /&gt;
* OOP javítások&lt;br /&gt;
* Kijavítva, hogy a kettőspont levágja az assert általi üzenetet, és egy hibaüzenet&lt;br /&gt;
* Kijavítva, hogy a loadstring és load nem fogad el UTF-8 /w BOM karaktereket &lt;br /&gt;
* Hibakezelés funkció paraméter elemzés továbbfejlesztve&lt;br /&gt;
* Megváltoztatva a ''coroutine.resum'', hogy kiírja a hibákat alapértelmezetten&lt;br /&gt;
* HTTPS támogatás a [[fetchRemote]]-hoz.&lt;br /&gt;
&lt;br /&gt;
== Kliens ==&lt;br /&gt;
&lt;br /&gt;
=== Kliens: Kiegészítések ===&lt;br /&gt;
* Nem történt kiegészítés&lt;br /&gt;
&lt;br /&gt;
=== Kliens: Hibajavítások &amp;amp; Változtatások ===&lt;br /&gt;
* CEF frissítva (és az alárendelt Chromium)&lt;br /&gt;
* Javítva, hogy a játékos újracsatlakozik bizonyos körülmények között, amikor letölt egy fájlt egy külső webszerverről&lt;br /&gt;
* Javítva az ajtó/egyéb más szinkronizálása a kocsi stream-be/ki-nél.&lt;br /&gt;
* Javítva több jelentősebb crash&lt;br /&gt;
* Biztonsági javítások&lt;br /&gt;
&lt;br /&gt;
== Szerver ==&lt;br /&gt;
&lt;br /&gt;
=== Szerver: Kiegészítések ===&lt;br /&gt;
* Hozzáadva pár Linux könyvtár az MTA csomagához, hogy javítsuk a kompatibilitást régebbi rendszerekkel&lt;br /&gt;
* Hozzáadva a szerver ellenőrzési logika&lt;br /&gt;
&lt;br /&gt;
=== Szerver: Hibajavítások &amp;amp; Változtatások ===&lt;br /&gt;
* Javítva, hogy a bemenő kurzor szerver fagyást okoz&lt;br /&gt;
* Javítva, hogy a refreshResources időnként crashelteti a szervert&lt;br /&gt;
* Javítva, hogy a fájlok ütközzenek, amikor a resource neve tartalmaz szögletes zárójeleket&lt;br /&gt;
* Javítva a Linux szerver induláskori hiba üzenetének a formázását&lt;br /&gt;
* Fejlesztve a verzió ellenőrzés&lt;br /&gt;
&lt;br /&gt;
== Resourceok ==&lt;br /&gt;
* Nem történt változás&lt;br /&gt;
&lt;br /&gt;
== Szerkesztő ==&lt;br /&gt;
* Nem történt változás&lt;br /&gt;
&lt;br /&gt;
== Mellék információ ==&lt;br /&gt;
''Jobban leírt információ elérhető a [https://bugs.multitheftauto.com/changelog_page.php Bug követő változási listán] és a GitHub táűrolókon:&lt;br /&gt;
:* [https://github.com/multitheftauto/mtasa-blue MTA: SA Blue]&lt;br /&gt;
:* [https://github.com/multitheftauto/mtasa-resources MTA: SA Hivatalos Resourcek]&lt;br /&gt;
&lt;br /&gt;
[[Category:Changelog]]&lt;br /&gt;
[[Category:Incomplete]]&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=Template:Valtozasok&amp;diff=47490</id>
		<title>Template:Valtozasok</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=Template:Valtozasok&amp;diff=47490"/>
		<updated>2016-05-13T16:37:18Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: Created page with &amp;quot;{| cellpadding=&amp;quot;4&amp;quot; style=&amp;quot;border-collapse: collapse; border-width: 1px; border-style: solid; border-color: #FFF; float:right;&amp;quot; |- !width=140 style=&amp;quot;background-color: #D6DCFF; ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| cellpadding=&amp;quot;4&amp;quot; style=&amp;quot;border-collapse: collapse; border-width: 1px; border-style: solid; border-color: #FFF; float:right;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=140 style=&amp;quot;background-color: #D6DCFF; border-style: solid; border-width: 1px; border-color: #FFF; color:#00000;&amp;quot;| MTA:SA Verzió&lt;br /&gt;
!width=400 style=&amp;quot;white-space: nowrap; background-color: #D6DCFF; border-style: solid; border-width: 1px; border-color: #FFF;&amp;quot;| Változtatások listája&lt;br /&gt;
{{Changelogsrow|1.0|[[Changes in 1.0|1.0.0]] &amp;amp;bull; 1.0.1 &amp;amp;bull; 1.0.2 &amp;amp;bull; 1.0.3 &amp;amp;bull; 1.0.4}}&lt;br /&gt;
{{Changelogsrow|1.1|[[Changes in 1.1|1.1.0]] &amp;amp;bull; 1.1.1}}&lt;br /&gt;
{{Changelogsrow|1.2|[[Changes in 1.2|1.2.0]]}}&lt;br /&gt;
{{Changelogsrow|1.3|[[Changes in 1.3|1.3.0]] &amp;amp;bull; [[Changes in 1.3.1|1.3.1]] &amp;amp;bull; [[Changes in 1.3.2|1.3.2]] &amp;amp;bull; [[Changes in 1.3.3|1.3.3]] &amp;amp;bull; [[Changes in 1.3.4|1.3.4]] &amp;amp;bull; [[Changes in 1.3.5|1.3.5]]}}&lt;br /&gt;
{{Changelogsrow|1.4|[[Changes in 1.4|1.4.0]] &amp;amp;bull; [[Changes in 1.4.1|1.4.1]]}}&lt;br /&gt;
{{Changelogsrow|1.5|[[Changes in 1.5|1.5.0]] &amp;amp;bull; [[Changes in 1.5.1|1.5.1]] &amp;amp;bull; [[Changes in 1.5.2|1.5.2]]}}&lt;br /&gt;
{{Changelogsrow|1.6|[[Changes in 1.6|1.6.0]]}}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/F%C5%91oldal&amp;diff=47489</id>
		<title>HU/Főoldal</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/F%C5%91oldal&amp;diff=47489"/>
		<updated>2016-05-13T16:36:36Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;/*border: 1px solid #D8D8D8;*/ padding-left: 15px; padding-right: 15px; height: 100%;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Mtalogo.png|left|100px|link=http://wiki.multitheftauto.com/]]'''Üdvözöllek a [[Multi Theft Auto]] wikin.''' Itt rengeteg információt találhatsz a Multi Theft Auto használatáról.&lt;br /&gt;
&lt;br /&gt;
Sok [[HU/How you can help|dologban segíthetsz Te is]], hogy fejleszd az MTA-t - készíts pályákat, játékmódokat, írj leírást, példákat a függvényekhez, írj útmutatókat, vagy csak játssz, és jelezd a hibákat amiket találtál! &lt;br /&gt;
&lt;br /&gt;
Ha bármilyen kérdésed van a scripteléssel kapcsolatban, vedd fel velünk a kapcsolatot az [[HU/Places To Chat#IRC (Internet Relay Chat) |IRC csatornánkon.]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; |&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background: #FFFCF2;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Input-gaming.png‎|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Játék&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background: #FFEEAA; border: 1px solid #FFCD19;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Go-down.png|link=http://mtasa.com/]] ''' [http://mtasa.com/ Töltsd le a Multi Theft Auto San Andreas {{Current Version|full}} - t!]'''&amp;lt;/div&amp;gt;&lt;br /&gt;
* [[HU/Client Manual | Kliens kézikönyv]]&lt;br /&gt;
&amp;lt;!-- * [[Changes_in_{{padleft:|3|{{Current Version|full}}}}| Changes in {{padleft:|3|{{Current Version|full}}}}]] --&amp;gt;&lt;br /&gt;
* [[HU/Changes_in_{{padleft:|5|{{Current Version|full}}}}| Változtatások az {{padleft:|5|{{Current Version|full}}}} verzióban]]&lt;br /&gt;
* [[HU/Known_Issues_-_FAQ|Ismert problémák]]&lt;br /&gt;
* [[HU/Upgrading_from_MTA:Race|MTA:Race frissítése MTA:SA {{padleft:|3|{{Current Version|full}}}} -ra ]]&lt;br /&gt;
* [[HU/Server Manual|Szerver kézikönyv]]&lt;br /&gt;
* [[HU/Map manager|Map Manager]]&lt;br /&gt;
* [[Template:Valtozasok|Map Manager]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Map Editor&amp;lt;/h3&amp;gt;&lt;br /&gt;
*[[HU/Resource:Editor|Kézikönyv]]&lt;br /&gt;
*[[HU/Resource:Editor/EDF|EDF (leírás) fájlok]]&lt;br /&gt;
*[[HU/Resource:Editor/Plugins|Pluginok]]&lt;br /&gt;
*[[HU/Resource:Editor#FAQ|Gyakran Ismételt Kérdések]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Package-x-generic.png‎|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Adatbázisok&amp;lt;/h3&amp;gt;&lt;br /&gt;
Az alábbi oldalakból megtudhatod mire képes a Lua az MTA-ban.&lt;br /&gt;
* [[HU/:Category:Resource|Resource katalógus]] - Igazán jól működő scriptek készítéséhez érdemes áttanulmányozni őket&lt;br /&gt;
* [[HU/Client side scripts|Kliens oldali scriptek]] &lt;br /&gt;
* [[HU/Modules|Modulok]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Applications-development.png‎‎‎|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;A Multi Theft Auto fejlesztése&amp;lt;/h3&amp;gt;&lt;br /&gt;
[[File:Go-down.png|link=http://nightly.mtasa.com/]] [http://nightly.mtasa.com/ Fejlesztői verzió]&lt;br /&gt;
* [[HU/Compiling_MTASA|MTA SA fordítása Windowson]]&lt;br /&gt;
* [[HU/Building_MTASA_Server_on_Mac_OS_X|MTA SA fordítása Linuxon]]&lt;br /&gt;
* [[HU/Building_MTASA_Server_on_GNU_Linux|MTA SA fordítása GNU/Linux rendszeren]]&lt;br /&gt;
* [[HU/Coding guidelines|Kódolási útmutató]]&lt;br /&gt;
* [http://code.google.com/p/mtasa-blue Google Code SVN]&lt;br /&gt;
* [[HU/Roadmap|Tervezet]]&lt;br /&gt;
* [http://bugs.mtasa.com/ Hibák]&lt;br /&gt;
* [[HU/Branches|Fejlesztési ágazatok]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Applications-office.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Wiki - Hogyan segíthetsz&amp;lt;/h3&amp;gt;&lt;br /&gt;
* EGészítsd ki a [[HU/:Category:Incomplete|függvények hiányos leírású oldalát]].&lt;br /&gt;
* [[HU/:Category:Needs_Example |Írj példákat függvények használatára]].&lt;br /&gt;
* Ellenőrizd az [[HU/:Category:Needs Checking|ellenőrzésre váró lapokat]].&lt;br /&gt;
* Írj útmutatókat&lt;br /&gt;
* Fordíts wiki lapokat&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Internet-group-chat.png‎|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Közösség&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [http://forum.multitheftauto.com/ Fórum]&lt;br /&gt;
* IRC: [irc://irc.multitheftauto.com/mta irc.multitheftauto.com #mta]&lt;br /&gt;
* [http://community.mtasa.com/ MTA Community] - Ossz meg és tölts le resourceokat!&lt;br /&gt;
* [http://twitter.com/#!/MTAQA/ Twitter] - [http://www.youtube.com/user/MTAQA Youtube] - [http://plus.google.com/102014133442331779727/ Google+] - [http://www.moddb.com/mods/multi-theft-auto-san-andreas ModDB]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Accessories-text-editor.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Scriptelés&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[HU/Scripting Introduction|Bevezetés a scriptelésbe]]&lt;br /&gt;
* [[HU/Introduction to Scripting the GUI|Bevezetés a GUI készítésébe]]&lt;br /&gt;
* [[HU/Debugging|Hibakeresés]] - Találd meg a hibát a kódodban&lt;br /&gt;
* [[HU/Resources|Bevezetés a Resourceokba]]&lt;br /&gt;
** [[HU/Resource Web Access|Resource Web Hozzáférés]] - Internet elérése&lt;br /&gt;
** [[HU/:Category:Resource|Resource katalógus]]&lt;br /&gt;
** [[HU/Meta.xml|Meta.xml]] - Minden resource alapja&lt;br /&gt;
** [[HU/ACL]] - A megfelelő jogok meghatározása az összetettebb kódokhoz elengedhetetlen&lt;br /&gt;
* [[HU/Writing_Gamemodes|Játékmódok írása]]&lt;br /&gt;
* [[HU/Useful_Functions|Hasznos függvények]]&lt;br /&gt;
* [http://forum.mtasa.com/viewtopic.php?f=13&amp;amp;t=29363 Offline Wiki Másolatok]&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:start-here.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Általános Lua Segítség&amp;lt;/h3&amp;gt;&lt;br /&gt;
Oldalak a Lua megértésehez:&lt;br /&gt;
*[http://www.lua.org/pil/index.html &amp;quot;Lua Programozás&amp;quot; Kézikönyv]&lt;br /&gt;
**[http://www.lua.org/manual/5.1/#index Lua belső/beépített függvények]&lt;br /&gt;
*[http://lua-users.org/wiki/TutorialDirectory Lua Wiki]&lt;br /&gt;
*[http://nixstaller.berlios.de/manual/0.2/nixstaller_9.html Nixstaller Lua útmutatója]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background:#F2F2FF;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Preferences-system.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Referenciák&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[HU/Client Scripting Functions|Kliens-oldali függvények]]&lt;br /&gt;
* [[HU/Client Scripting Events|Kliens-oldali események]]&lt;br /&gt;
* [[HU/Server Scripting Functions|Szerver-oldali függvények]]&lt;br /&gt;
* [[HU/Server Scripting Events|Szerver-oldali események]]&lt;br /&gt;
&amp;lt;!-- Incomplete * [[Module functions|Server-side external module scripting functions list]] --&amp;gt;&lt;br /&gt;
* [[HU/MTA Classes|MTA Osztályok]] - MTA osztályok részletes leírása&lt;br /&gt;
** [[HU/Element|MTA Elemek]] / [[HU/Element tree|Element ágak]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:System-file-manager.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;[[HU/Id|ID Lista]]&amp;lt;/h3&amp;gt;&lt;br /&gt;
*[[HU/Animations|Animációk]]&lt;br /&gt;
*[[HU/Character Skins|Karakter skinek]]&lt;br /&gt;
*[[HU/CJ_Clothes|CJ Ruhái]]&lt;br /&gt;
*[[HU/Garage|Garázs ID lista]]&lt;br /&gt;
*[[HU/Interior IDs|Interiorok]]&lt;br /&gt;
*[[HU/Material IDs|Material]]&lt;br /&gt;
*[[HU/Projectiles|Lövedékek]]&lt;br /&gt;
*[[HU/Radar Blips|Radar jelzések]]&lt;br /&gt;
*[[HU/Sounds|Hang]]&lt;br /&gt;
*[[HU/Vehicle IDs|Járművek]]&lt;br /&gt;
*[[HU/Vehicle Colors|Jármű színek]]&lt;br /&gt;
*[[HU/Vehicle Upgrades|Jármű fejlesztések]]&lt;br /&gt;
*[[HU/Vehicle variants|Járművek egyedi tulajdonságai]]&lt;br /&gt;
*[[HU/Vehicle component manipulation|Jármű komponens változtatások]]&lt;br /&gt;
*[[HU/Weapons|Fegyverek]]&lt;br /&gt;
*[[HU/Weather|Időjárás]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Osi symbol.png|75px|link=http://opensource.org/|left]]&lt;br /&gt;
A '''Multi Theft Auto''' '''nyílt forráskódú'''. &lt;br /&gt;
&amp;lt;br/&amp;gt;Ez azt jelenti, hogy a játékot bárki jobbá teheti!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding-left: 15px; padding-right: 15px;&amp;quot; class=&amp;quot;plainlinks&amp;quot;&amp;gt;&lt;br /&gt;
[[File:MTALogo_8ball.png|left|85px|link=Archive]]&lt;br /&gt;
&amp;lt;ul style=&amp;quot;list-style: none; width: 200px; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;'''A [[Multi Theft Auto]] - ról'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[Archive|Archívum]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[Press Coverage|Sajtó]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[http://code.google.com/p/mtasa-blue/people/list Fejlesztők]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;list-style: none; width: 200px; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;'''Multi Theft Auto 0.5'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[Archive#Multi_Theft_Auto_0.5|Letöltés]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[MTA 0.5r2 Known Issues|Ismert hibák]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;list-style: none; width: 200px; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;'''Wiki Statisztikák'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;{{NUMBEROFARTICLES}} cikk&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;{{NUMBEROFPAGES}} oldal&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;{{NUMBEROFUSERS}} regisztrált felhasználó&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
__NOEDITSECTION__&lt;br /&gt;
{{Languages list|en}}&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/F%C5%91oldal&amp;diff=47488</id>
		<title>HU/Főoldal</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/F%C5%91oldal&amp;diff=47488"/>
		<updated>2016-05-13T16:36:05Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;/*border: 1px solid #D8D8D8;*/ padding-left: 15px; padding-right: 15px; height: 100%;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Mtalogo.png|left|100px|link=http://wiki.multitheftauto.com/]]'''Üdvözöllek a [[Multi Theft Auto]] wikin.''' Itt rengeteg információt találhatsz a Multi Theft Auto használatáról.&lt;br /&gt;
&lt;br /&gt;
Sok [[HU/How you can help|dologban segíthetsz Te is]], hogy fejleszd az MTA-t - készíts pályákat, játékmódokat, írj leírást, példákat a függvényekhez, írj útmutatókat, vagy csak játssz, és jelezd a hibákat amiket találtál! &lt;br /&gt;
&lt;br /&gt;
Ha bármilyen kérdésed van a scripteléssel kapcsolatban, vedd fel velünk a kapcsolatot az [[HU/Places To Chat#IRC (Internet Relay Chat) |IRC csatornánkon.]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; |&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background: #FFFCF2;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Input-gaming.png‎|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Játék&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background: #FFEEAA; border: 1px solid #FFCD19;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Go-down.png|link=http://mtasa.com/]] ''' [http://mtasa.com/ Töltsd le a Multi Theft Auto San Andreas {{Current Version|full}} - t!]'''&amp;lt;/div&amp;gt;&lt;br /&gt;
* [[HU/Client Manual | Kliens kézikönyv]]&lt;br /&gt;
&amp;lt;!-- * [[Changes_in_{{padleft:|3|{{Current Version|full}}}}| Changes in {{padleft:|3|{{Current Version|full}}}}]] --&amp;gt;&lt;br /&gt;
* [[HU/Changes_in_{{padleft:|5|{{Current Version|full}}}}| Változtatások az {{padleft:|5|{{Current Version|full}}}} verzióban]]&lt;br /&gt;
* [[HU/Known_Issues_-_FAQ|Ismert problémák]]&lt;br /&gt;
* [[HU/Upgrading_from_MTA:Race|MTA:Race frissítése MTA:SA {{padleft:|3|{{Current Version|full}}}} -ra ]]&lt;br /&gt;
* [[HU/Server Manual|Szerver kézikönyv]]&lt;br /&gt;
* [[HU/Map manager|Map Manager]]&lt;br /&gt;
* [[HU/Teszt|Map Manager]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Map Editor&amp;lt;/h3&amp;gt;&lt;br /&gt;
*[[HU/Resource:Editor|Kézikönyv]]&lt;br /&gt;
*[[HU/Resource:Editor/EDF|EDF (leírás) fájlok]]&lt;br /&gt;
*[[HU/Resource:Editor/Plugins|Pluginok]]&lt;br /&gt;
*[[HU/Resource:Editor#FAQ|Gyakran Ismételt Kérdések]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Package-x-generic.png‎|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Adatbázisok&amp;lt;/h3&amp;gt;&lt;br /&gt;
Az alábbi oldalakból megtudhatod mire képes a Lua az MTA-ban.&lt;br /&gt;
* [[HU/:Category:Resource|Resource katalógus]] - Igazán jól működő scriptek készítéséhez érdemes áttanulmányozni őket&lt;br /&gt;
* [[HU/Client side scripts|Kliens oldali scriptek]] &lt;br /&gt;
* [[HU/Modules|Modulok]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Applications-development.png‎‎‎|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;A Multi Theft Auto fejlesztése&amp;lt;/h3&amp;gt;&lt;br /&gt;
[[File:Go-down.png|link=http://nightly.mtasa.com/]] [http://nightly.mtasa.com/ Fejlesztői verzió]&lt;br /&gt;
* [[HU/Compiling_MTASA|MTA SA fordítása Windowson]]&lt;br /&gt;
* [[HU/Building_MTASA_Server_on_Mac_OS_X|MTA SA fordítása Linuxon]]&lt;br /&gt;
* [[HU/Building_MTASA_Server_on_GNU_Linux|MTA SA fordítása GNU/Linux rendszeren]]&lt;br /&gt;
* [[HU/Coding guidelines|Kódolási útmutató]]&lt;br /&gt;
* [http://code.google.com/p/mtasa-blue Google Code SVN]&lt;br /&gt;
* [[HU/Roadmap|Tervezet]]&lt;br /&gt;
* [http://bugs.mtasa.com/ Hibák]&lt;br /&gt;
* [[HU/Branches|Fejlesztési ágazatok]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Applications-office.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Wiki - Hogyan segíthetsz&amp;lt;/h3&amp;gt;&lt;br /&gt;
* EGészítsd ki a [[HU/:Category:Incomplete|függvények hiányos leírású oldalát]].&lt;br /&gt;
* [[HU/:Category:Needs_Example |Írj példákat függvények használatára]].&lt;br /&gt;
* Ellenőrizd az [[HU/:Category:Needs Checking|ellenőrzésre váró lapokat]].&lt;br /&gt;
* Írj útmutatókat&lt;br /&gt;
* Fordíts wiki lapokat&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Internet-group-chat.png‎|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Közösség&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [http://forum.multitheftauto.com/ Fórum]&lt;br /&gt;
* IRC: [irc://irc.multitheftauto.com/mta irc.multitheftauto.com #mta]&lt;br /&gt;
* [http://community.mtasa.com/ MTA Community] - Ossz meg és tölts le resourceokat!&lt;br /&gt;
* [http://twitter.com/#!/MTAQA/ Twitter] - [http://www.youtube.com/user/MTAQA Youtube] - [http://plus.google.com/102014133442331779727/ Google+] - [http://www.moddb.com/mods/multi-theft-auto-san-andreas ModDB]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Accessories-text-editor.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Scriptelés&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[HU/Scripting Introduction|Bevezetés a scriptelésbe]]&lt;br /&gt;
* [[HU/Introduction to Scripting the GUI|Bevezetés a GUI készítésébe]]&lt;br /&gt;
* [[HU/Debugging|Hibakeresés]] - Találd meg a hibát a kódodban&lt;br /&gt;
* [[HU/Resources|Bevezetés a Resourceokba]]&lt;br /&gt;
** [[HU/Resource Web Access|Resource Web Hozzáférés]] - Internet elérése&lt;br /&gt;
** [[HU/:Category:Resource|Resource katalógus]]&lt;br /&gt;
** [[HU/Meta.xml|Meta.xml]] - Minden resource alapja&lt;br /&gt;
** [[HU/ACL]] - A megfelelő jogok meghatározása az összetettebb kódokhoz elengedhetetlen&lt;br /&gt;
* [[HU/Writing_Gamemodes|Játékmódok írása]]&lt;br /&gt;
* [[HU/Useful_Functions|Hasznos függvények]]&lt;br /&gt;
* [http://forum.mtasa.com/viewtopic.php?f=13&amp;amp;t=29363 Offline Wiki Másolatok]&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:start-here.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Általános Lua Segítség&amp;lt;/h3&amp;gt;&lt;br /&gt;
Oldalak a Lua megértésehez:&lt;br /&gt;
*[http://www.lua.org/pil/index.html &amp;quot;Lua Programozás&amp;quot; Kézikönyv]&lt;br /&gt;
**[http://www.lua.org/manual/5.1/#index Lua belső/beépített függvények]&lt;br /&gt;
*[http://lua-users.org/wiki/TutorialDirectory Lua Wiki]&lt;br /&gt;
*[http://nixstaller.berlios.de/manual/0.2/nixstaller_9.html Nixstaller Lua útmutatója]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background:#F2F2FF;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Preferences-system.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Referenciák&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[HU/Client Scripting Functions|Kliens-oldali függvények]]&lt;br /&gt;
* [[HU/Client Scripting Events|Kliens-oldali események]]&lt;br /&gt;
* [[HU/Server Scripting Functions|Szerver-oldali függvények]]&lt;br /&gt;
* [[HU/Server Scripting Events|Szerver-oldali események]]&lt;br /&gt;
&amp;lt;!-- Incomplete * [[Module functions|Server-side external module scripting functions list]] --&amp;gt;&lt;br /&gt;
* [[HU/MTA Classes|MTA Osztályok]] - MTA osztályok részletes leírása&lt;br /&gt;
** [[HU/Element|MTA Elemek]] / [[HU/Element tree|Element ágak]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:System-file-manager.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;[[HU/Id|ID Lista]]&amp;lt;/h3&amp;gt;&lt;br /&gt;
*[[HU/Animations|Animációk]]&lt;br /&gt;
*[[HU/Character Skins|Karakter skinek]]&lt;br /&gt;
*[[HU/CJ_Clothes|CJ Ruhái]]&lt;br /&gt;
*[[HU/Garage|Garázs ID lista]]&lt;br /&gt;
*[[HU/Interior IDs|Interiorok]]&lt;br /&gt;
*[[HU/Material IDs|Material]]&lt;br /&gt;
*[[HU/Projectiles|Lövedékek]]&lt;br /&gt;
*[[HU/Radar Blips|Radar jelzések]]&lt;br /&gt;
*[[HU/Sounds|Hang]]&lt;br /&gt;
*[[HU/Vehicle IDs|Járművek]]&lt;br /&gt;
*[[HU/Vehicle Colors|Jármű színek]]&lt;br /&gt;
*[[HU/Vehicle Upgrades|Jármű fejlesztések]]&lt;br /&gt;
*[[HU/Vehicle variants|Járművek egyedi tulajdonságai]]&lt;br /&gt;
*[[HU/Vehicle component manipulation|Jármű komponens változtatások]]&lt;br /&gt;
*[[HU/Weapons|Fegyverek]]&lt;br /&gt;
*[[HU/Weather|Időjárás]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Osi symbol.png|75px|link=http://opensource.org/|left]]&lt;br /&gt;
A '''Multi Theft Auto''' '''nyílt forráskódú'''. &lt;br /&gt;
&amp;lt;br/&amp;gt;Ez azt jelenti, hogy a játékot bárki jobbá teheti!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding-left: 15px; padding-right: 15px;&amp;quot; class=&amp;quot;plainlinks&amp;quot;&amp;gt;&lt;br /&gt;
[[File:MTALogo_8ball.png|left|85px|link=Archive]]&lt;br /&gt;
&amp;lt;ul style=&amp;quot;list-style: none; width: 200px; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;'''A [[Multi Theft Auto]] - ról'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[Archive|Archívum]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[Press Coverage|Sajtó]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[http://code.google.com/p/mtasa-blue/people/list Fejlesztők]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;list-style: none; width: 200px; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;'''Multi Theft Auto 0.5'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[Archive#Multi_Theft_Auto_0.5|Letöltés]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[MTA 0.5r2 Known Issues|Ismert hibák]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;list-style: none; width: 200px; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;'''Wiki Statisztikák'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;{{NUMBEROFARTICLES}} cikk&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;{{NUMBEROFPAGES}} oldal&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;{{NUMBEROFUSERS}} regisztrált felhasználó&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
__NOEDITSECTION__&lt;br /&gt;
{{Languages list|en}}&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Changes_in_1.5.2&amp;diff=47487</id>
		<title>HU/Changes in 1.5.2</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Changes_in_1.5.2&amp;diff=47487"/>
		<updated>2016-05-13T16:27:40Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Changelogs}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
* Változások listája: https://bugs.mtasa.com/changelog_page.php&lt;br /&gt;
* Teljes lista: https://github.com/multitheftauto/mtasa-blue/commits/1.5.1?page=1&lt;br /&gt;
&lt;br /&gt;
== Főbb Kiegészítések / Változtatások ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fejlesztés ==&lt;br /&gt;
&lt;br /&gt;
=== Kliens ===&lt;br /&gt;
* [[createSearchLight]], [[getSearchLightStartPosition]], [[getSearchLightEndPosition]], [[getSearchLightStartRadius]], [[getSearchLightEndRadius]], [[setSearchLightStartPosition]], [[setSearchLightEndPosition]], [[setSearchLightStartRadius]], [[setSearchLightEndRadius]] hozzáadva&lt;br /&gt;
* [[setWindowFlashing]] hozzáadva&lt;br /&gt;
* Kijavítva a pozíció kalkulálás a [[dxGetTexturePixels]] funkciónál&lt;br /&gt;
* UsingDepthBuffer státusz hozzáadva a [[dxGetStatus]] funkcióhoz&lt;br /&gt;
&lt;br /&gt;
=== Szerver ===&lt;br /&gt;
* [[dbPrepareString]] hozzáadva&lt;br /&gt;
* Kijavítva a ''Player.outputChat'' funkciónál a helytelen viselkedést&lt;br /&gt;
* [[onPlayerACInfo]] és [[resendPlayerACInfo]] hozzáadva&lt;br /&gt;
&lt;br /&gt;
=== Megosztott (''Kliens &amp;amp; Szerver oldal'') ===&lt;br /&gt;
* OOP javítások&lt;br /&gt;
* Kijavítva, hogy a kettőspont levágja az assert általi üzenetet, és egy hibaüzenet&lt;br /&gt;
* Kijavítva, hogy a loadstring és load nem fogad el UTF-8 /w BOM karaktereket &lt;br /&gt;
* Hibakezelés funkció paraméter elemzés továbbfejlesztve&lt;br /&gt;
* Megváltoztatva a ''coroutine.resum'', hogy kiírja a hibákat alapértelmezetten&lt;br /&gt;
* HTTPS támogatás a [[fetchRemote]]-hoz.&lt;br /&gt;
&lt;br /&gt;
== Kliens ==&lt;br /&gt;
&lt;br /&gt;
=== Kliens: Kiegészítések ===&lt;br /&gt;
* Nem történt kiegészítés&lt;br /&gt;
&lt;br /&gt;
=== Kliens: Hibajavítások &amp;amp; Változtatások ===&lt;br /&gt;
* CEF frissítva (és az alárendelt Chromium)&lt;br /&gt;
* Javítva, hogy a játékos újracsatlakozik bizonyos körülmények között, amikor letölt egy fájlt egy külső webszerverről&lt;br /&gt;
* Javítva az ajtó/egyéb más szinkronizálása a kocsi stream-be/ki-nél.&lt;br /&gt;
* Javítva több jelentősebb crash&lt;br /&gt;
* Biztonsági javítások&lt;br /&gt;
&lt;br /&gt;
== Szerver ==&lt;br /&gt;
&lt;br /&gt;
=== Szerver: Kiegészítések ===&lt;br /&gt;
* Hozzáadva pár Linux könyvtár az MTA csomagához, hogy javítsuk a kompatibilitást régebbi rendszerekkel&lt;br /&gt;
* Hozzáadva a szerver ellenőrzési logika&lt;br /&gt;
&lt;br /&gt;
=== Szerver: Hibajavítások &amp;amp; Változtatások ===&lt;br /&gt;
* Javítva, hogy a bemenő kurzor szerver fagyást okoz&lt;br /&gt;
* Javítva, hogy a refreshResources időnként crashelteti a szervert&lt;br /&gt;
* Javítva, hogy a fájlok ütközzenek, amikor a resource neve tartalmaz szögletes zárójeleket&lt;br /&gt;
* Javítva a Linux szerver induláskori hiba üzenetének a formázását&lt;br /&gt;
* Fejlesztve a verzió ellenőrzés&lt;br /&gt;
&lt;br /&gt;
== Resourceok ==&lt;br /&gt;
* Nem történt változás&lt;br /&gt;
&lt;br /&gt;
== Szerkesztő ==&lt;br /&gt;
* Nem történt változás&lt;br /&gt;
&lt;br /&gt;
== Mellék információ ==&lt;br /&gt;
''Jobban leírt információ elérhető a [https://bugs.multitheftauto.com/changelog_page.php Bug követő változási listán] és a GitHub táűrolókon:&lt;br /&gt;
:* [https://github.com/multitheftauto/mtasa-blue MTA: SA Blue]&lt;br /&gt;
:* [https://github.com/multitheftauto/mtasa-resources MTA: SA Hivatalos Resourcek]&lt;br /&gt;
&lt;br /&gt;
[[Category:Changelog]]&lt;br /&gt;
[[Category:Incomplete]]&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Changes_in_1.5.2&amp;diff=47486</id>
		<title>HU/Changes in 1.5.2</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Changes_in_1.5.2&amp;diff=47486"/>
		<updated>2016-05-13T16:25:01Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Változtatások}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
* Változások listája: https://bugs.mtasa.com/changelog_page.php&lt;br /&gt;
* Teljes lista: https://github.com/multitheftauto/mtasa-blue/commits/1.5.1?page=1&lt;br /&gt;
&lt;br /&gt;
== Főbb Kiegészítések / Változtatások ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fejlesztés ==&lt;br /&gt;
&lt;br /&gt;
=== Kliens ===&lt;br /&gt;
* [[createSearchLight]], [[getSearchLightStartPosition]], [[getSearchLightEndPosition]], [[getSearchLightStartRadius]], [[getSearchLightEndRadius]], [[setSearchLightStartPosition]], [[setSearchLightEndPosition]], [[setSearchLightStartRadius]], [[setSearchLightEndRadius]] hozzáadva&lt;br /&gt;
* [[setWindowFlashing]] hozzáadva&lt;br /&gt;
* Kijavítva a pozíció kalkulálás a [[dxGetTexturePixels]] funkciónál&lt;br /&gt;
* UsingDepthBuffer státusz hozzáadva a [[dxGetStatus]] funkcióhoz&lt;br /&gt;
&lt;br /&gt;
=== Szerver ===&lt;br /&gt;
* [[dbPrepareString]] hozzáadva&lt;br /&gt;
* Kijavítva a ''Player.outputChat'' funkciónál a helytelen viselkedést&lt;br /&gt;
* [[onPlayerACInfo]] és [[resendPlayerACInfo]] hozzáadva&lt;br /&gt;
&lt;br /&gt;
=== Megosztott (''Kliens &amp;amp; Szerver oldal'') ===&lt;br /&gt;
* OOP javítások&lt;br /&gt;
* Kijavítva, hogy a kettőspont levágja az assert általi üzenetet, és egy hibaüzenet&lt;br /&gt;
* Kijavítva, hogy a loadstring és load nem fogad el UTF-8 /w BOM karaktereket &lt;br /&gt;
* Hibakezelés funkció paraméter elemzés továbbfejlesztve&lt;br /&gt;
* Megváltoztatva a ''coroutine.resum'', hogy kiírja a hibákat alapértelmezetten&lt;br /&gt;
* HTTPS támogatás a [[fetchRemote]]-hoz.&lt;br /&gt;
&lt;br /&gt;
== Kliens ==&lt;br /&gt;
&lt;br /&gt;
=== Kliens: Kiegészítések ===&lt;br /&gt;
* Nem történt kiegészítés&lt;br /&gt;
&lt;br /&gt;
=== Kliens: Hibajavítások &amp;amp; Változtatások ===&lt;br /&gt;
* CEF frissítva (és az alárendelt Chromium)&lt;br /&gt;
* Javítva, hogy a játékos újracsatlakozik bizonyos körülmények között, amikor letölt egy fájlt egy külső webszerverről&lt;br /&gt;
* Javítva az ajtó/egyéb más szinkronizálása a kocsi stream-be/ki-nél.&lt;br /&gt;
* Javítva több jelentősebb crash&lt;br /&gt;
* Biztonsági javítások&lt;br /&gt;
&lt;br /&gt;
== Szerver ==&lt;br /&gt;
&lt;br /&gt;
=== Szerver: Kiegészítések ===&lt;br /&gt;
* Hozzáadva pár Linux könyvtár az MTA csomagához, hogy javítsuk a kompatibilitást régebbi rendszerekkel&lt;br /&gt;
* Hozzáadva a szerver ellenőrzési logika&lt;br /&gt;
&lt;br /&gt;
=== Szerver: Hibajavítások &amp;amp; Változtatások ===&lt;br /&gt;
* Javítva, hogy a bemenő kurzor szerver fagyást okoz&lt;br /&gt;
* Javítva, hogy a refreshResources időnként crashelteti a szervert&lt;br /&gt;
* Javítva, hogy a fájlok ütközzenek, amikor a resource neve tartalmaz szögletes zárójeleket&lt;br /&gt;
* Javítva a Linux szerver induláskori hiba üzenetének a formázását&lt;br /&gt;
* Fejlesztve a verzió ellenőrzés&lt;br /&gt;
&lt;br /&gt;
== Resourceok ==&lt;br /&gt;
* Nem történt változás&lt;br /&gt;
&lt;br /&gt;
== Szerkesztő ==&lt;br /&gt;
* Nem történt változás&lt;br /&gt;
&lt;br /&gt;
== Mellék információ ==&lt;br /&gt;
''Jobban leírt információ elérhető a [https://bugs.multitheftauto.com/changelog_page.php Bug követő változási listán] és a GitHub táűrolókon:&lt;br /&gt;
:* [https://github.com/multitheftauto/mtasa-blue MTA: SA Blue]&lt;br /&gt;
:* [https://github.com/multitheftauto/mtasa-resources MTA: SA Hivatalos Resourcek]&lt;br /&gt;
&lt;br /&gt;
[[Category:Changelog]]&lt;br /&gt;
[[Category:Incomplete]]&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Changes_in_1.5.2&amp;diff=47485</id>
		<title>HU/Changes in 1.5.2</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Changes_in_1.5.2&amp;diff=47485"/>
		<updated>2016-05-13T16:23:18Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Changelogs}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
* Változások listája: https://bugs.mtasa.com/changelog_page.php&lt;br /&gt;
* Teljes lista: https://github.com/multitheftauto/mtasa-blue/commits/1.5.1?page=1&lt;br /&gt;
&lt;br /&gt;
== Főbb Kiegészítések / Változtatások ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fejlesztés ==&lt;br /&gt;
&lt;br /&gt;
=== Kliens ===&lt;br /&gt;
* [[createSearchLight]], [[getSearchLightStartPosition]], [[getSearchLightEndPosition]], [[getSearchLightStartRadius]], [[getSearchLightEndRadius]], [[setSearchLightStartPosition]], [[setSearchLightEndPosition]], [[setSearchLightStartRadius]], [[setSearchLightEndRadius]] hozzáadva&lt;br /&gt;
* [[setWindowFlashing]] hozzáadva&lt;br /&gt;
* Kijavítva a pozíció kalkulálás a [[dxGetTexturePixels]] funkciónál&lt;br /&gt;
* UsingDepthBuffer státusz hozzáadva a [[dxGetStatus]] funkcióhoz&lt;br /&gt;
&lt;br /&gt;
=== Szerver ===&lt;br /&gt;
* [[dbPrepareString]] hozzáadva&lt;br /&gt;
* Kijavítva a ''Player.outputChat'' funkciónál a helytelen viselkedést&lt;br /&gt;
* [[onPlayerACInfo]] és [[resendPlayerACInfo]] hozzáadva&lt;br /&gt;
&lt;br /&gt;
=== Megosztott (''Kliens &amp;amp; Szerver oldal'') ===&lt;br /&gt;
* OOP javítások&lt;br /&gt;
* Kijavítva, hogy a kettőspont levágja az assert általi üzenetet, és egy hibaüzenet&lt;br /&gt;
* Kijavítva, hogy a loadstring és load nem fogad el UTF-8 /w BOM karaktereket &lt;br /&gt;
* Hibakezelés funkció paraméter elemzés továbbfejlesztve&lt;br /&gt;
* Megváltoztatva a ''coroutine.resum'', hogy kiírja a hibákat alapértelmezetten&lt;br /&gt;
* HTTPS támogatás a [[fetchRemote]]-hoz.&lt;br /&gt;
&lt;br /&gt;
== Kliens ==&lt;br /&gt;
&lt;br /&gt;
=== Kliens: Kiegészítések ===&lt;br /&gt;
* Nem történt kiegészítés&lt;br /&gt;
&lt;br /&gt;
=== Kliens: Hibajavítások &amp;amp; Változtatások ===&lt;br /&gt;
* CEF frissítva (és az alárendelt Chromium)&lt;br /&gt;
* Javítva, hogy a játékos újracsatlakozik bizonyos körülmények között, amikor letölt egy fájlt egy külső webszerverről&lt;br /&gt;
* Javítva az ajtó/egyéb más szinkronizálása a kocsi stream-be/ki-nél.&lt;br /&gt;
* Javítva több jelentősebb crash&lt;br /&gt;
* Biztonsági javítások&lt;br /&gt;
&lt;br /&gt;
== Szerver ==&lt;br /&gt;
&lt;br /&gt;
=== Szerver: Kiegészítések ===&lt;br /&gt;
* Hozzáadva pár Linux könyvtár az MTA csomagához, hogy javítsuk a kompatibilitást régebbi rendszerekkel&lt;br /&gt;
* Hozzáadva a szerver ellenőrzési logika&lt;br /&gt;
&lt;br /&gt;
=== Szerver: Hibajavítások &amp;amp; Változtatások ===&lt;br /&gt;
* Javítva, hogy a bemenő kurzor szerver fagyást okoz&lt;br /&gt;
* Javítva, hogy a refreshResources időnként crashelteti a szervert&lt;br /&gt;
* Javítva, hogy a fájlok ütközzenek, amikor a resource neve tartalmaz szögletes zárójeleket&lt;br /&gt;
* Javítva a Linux szerver induláskori hiba üzenetének a formázását&lt;br /&gt;
* Fejlesztve a verzió ellenőrzés&lt;br /&gt;
&lt;br /&gt;
== Resourceok ==&lt;br /&gt;
* Nem történt változás&lt;br /&gt;
&lt;br /&gt;
== Szerkesztő ==&lt;br /&gt;
* Nem történt változás&lt;br /&gt;
&lt;br /&gt;
== Mellék információ ==&lt;br /&gt;
''Jobban leírt információ elérhető a [https://bugs.multitheftauto.com/changelog_page.php Bug követő változási listán] és a GitHub táűrolókon:&lt;br /&gt;
:* [https://github.com/multitheftauto/mtasa-blue MTA: SA Blue]&lt;br /&gt;
:* [https://github.com/multitheftauto/mtasa-resources MTA: SA Hivatalos Resourcek]&lt;br /&gt;
&lt;br /&gt;
[[Category:Changelog]]&lt;br /&gt;
[[Category:Incomplete]]&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Changes_in_1.5.2&amp;diff=47484</id>
		<title>HU/Changes in 1.5.2</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Changes_in_1.5.2&amp;diff=47484"/>
		<updated>2016-05-13T16:23:12Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
* Változások listája: https://bugs.mtasa.com/changelog_page.php&lt;br /&gt;
* Teljes lista: https://github.com/multitheftauto/mtasa-blue/commits/1.5.1?page=1&lt;br /&gt;
&lt;br /&gt;
== Főbb Kiegészítések / Változtatások ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fejlesztés ==&lt;br /&gt;
&lt;br /&gt;
=== Kliens ===&lt;br /&gt;
* [[createSearchLight]], [[getSearchLightStartPosition]], [[getSearchLightEndPosition]], [[getSearchLightStartRadius]], [[getSearchLightEndRadius]], [[setSearchLightStartPosition]], [[setSearchLightEndPosition]], [[setSearchLightStartRadius]], [[setSearchLightEndRadius]] hozzáadva&lt;br /&gt;
* [[setWindowFlashing]] hozzáadva&lt;br /&gt;
* Kijavítva a pozíció kalkulálás a [[dxGetTexturePixels]] funkciónál&lt;br /&gt;
* UsingDepthBuffer státusz hozzáadva a [[dxGetStatus]] funkcióhoz&lt;br /&gt;
&lt;br /&gt;
=== Szerver ===&lt;br /&gt;
* [[dbPrepareString]] hozzáadva&lt;br /&gt;
* Kijavítva a ''Player.outputChat'' funkciónál a helytelen viselkedést&lt;br /&gt;
* [[onPlayerACInfo]] és [[resendPlayerACInfo]] hozzáadva&lt;br /&gt;
&lt;br /&gt;
=== Megosztott (''Kliens &amp;amp; Szerver oldal'') ===&lt;br /&gt;
* OOP javítások&lt;br /&gt;
* Kijavítva, hogy a kettőspont levágja az assert általi üzenetet, és egy hibaüzenet&lt;br /&gt;
* Kijavítva, hogy a loadstring és load nem fogad el UTF-8 /w BOM karaktereket &lt;br /&gt;
* Hibakezelés funkció paraméter elemzés továbbfejlesztve&lt;br /&gt;
* Megváltoztatva a ''coroutine.resum'', hogy kiírja a hibákat alapértelmezetten&lt;br /&gt;
* HTTPS támogatás a [[fetchRemote]]-hoz.&lt;br /&gt;
&lt;br /&gt;
== Kliens ==&lt;br /&gt;
&lt;br /&gt;
=== Kliens: Kiegészítések ===&lt;br /&gt;
* Nem történt kiegészítés&lt;br /&gt;
&lt;br /&gt;
=== Kliens: Hibajavítások &amp;amp; Változtatások ===&lt;br /&gt;
* CEF frissítva (és az alárendelt Chromium)&lt;br /&gt;
* Javítva, hogy a játékos újracsatlakozik bizonyos körülmények között, amikor letölt egy fájlt egy külső webszerverről&lt;br /&gt;
* Javítva az ajtó/egyéb más szinkronizálása a kocsi stream-be/ki-nél.&lt;br /&gt;
* Javítva több jelentősebb crash&lt;br /&gt;
* Biztonsági javítások&lt;br /&gt;
&lt;br /&gt;
== Szerver ==&lt;br /&gt;
&lt;br /&gt;
=== Szerver: Kiegészítések ===&lt;br /&gt;
* Hozzáadva pár Linux könyvtár az MTA csomagához, hogy javítsuk a kompatibilitást régebbi rendszerekkel&lt;br /&gt;
* Hozzáadva a szerver ellenőrzési logika&lt;br /&gt;
&lt;br /&gt;
=== Szerver: Hibajavítások &amp;amp; Változtatások ===&lt;br /&gt;
* Javítva, hogy a bemenő kurzor szerver fagyást okoz&lt;br /&gt;
* Javítva, hogy a refreshResources időnként crashelteti a szervert&lt;br /&gt;
* Javítva, hogy a fájlok ütközzenek, amikor a resource neve tartalmaz szögletes zárójeleket&lt;br /&gt;
* Javítva a Linux szerver induláskori hiba üzenetének a formázását&lt;br /&gt;
* Fejlesztve a verzió ellenőrzés&lt;br /&gt;
&lt;br /&gt;
== Resourceok ==&lt;br /&gt;
* Nem történt változás&lt;br /&gt;
&lt;br /&gt;
== Szerkesztő ==&lt;br /&gt;
* Nem történt változás&lt;br /&gt;
&lt;br /&gt;
== Mellék információ ==&lt;br /&gt;
''Jobban leírt információ elérhető a [https://bugs.multitheftauto.com/changelog_page.php Bug követő változási listán] és a GitHub táűrolókon:&lt;br /&gt;
:* [https://github.com/multitheftauto/mtasa-blue MTA: SA Blue]&lt;br /&gt;
:* [https://github.com/multitheftauto/mtasa-resources MTA: SA Hivatalos Resourcek]&lt;br /&gt;
&lt;br /&gt;
[[Category:Changelog]]&lt;br /&gt;
[[Category:Incomplete]]&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Changes_in_1.5.2&amp;diff=47483</id>
		<title>HU/Changes in 1.5.2</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Changes_in_1.5.2&amp;diff=47483"/>
		<updated>2016-05-13T16:11:49Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Changelogs}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
* Változások listája: https://bugs.mtasa.com/changelog_page.php&lt;br /&gt;
* Teljes lista: https://github.com/multitheftauto/mtasa-blue/commits/1.5.1?page=1&lt;br /&gt;
&lt;br /&gt;
== Főbb Kiegészítések / Változtatások ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fejlesztés ==&lt;br /&gt;
&lt;br /&gt;
=== Kliens ===&lt;br /&gt;
* [[createSearchLight]], [[getSearchLightStartPosition]], [[getSearchLightEndPosition]], [[getSearchLightStartRadius]], [[getSearchLightEndRadius]], [[setSearchLightStartPosition]], [[setSearchLightEndPosition]], [[setSearchLightStartRadius]], [[setSearchLightEndRadius]] hozzáadva&lt;br /&gt;
* [[setWindowFlashing]] hozzáadva&lt;br /&gt;
* Kijavítva a pozíció kalkulálás a [[dxGetTexturePixels]] funkciónál&lt;br /&gt;
* UsingDepthBuffer státusz hozzáadva a [[dxGetStatus]] funkcióhoz&lt;br /&gt;
&lt;br /&gt;
=== Szerver ===&lt;br /&gt;
* [[dbPrepareString]] hozzáadva&lt;br /&gt;
* Kijavítva a ''Player.outputChat'' funkciónál a helytelen viselkedést&lt;br /&gt;
* [[onPlayerACInfo]] és [[resendPlayerACInfo]] hozzáadva&lt;br /&gt;
&lt;br /&gt;
=== Megosztott (''Kliens &amp;amp; Szerver oldal'') ===&lt;br /&gt;
* OOP javítások&lt;br /&gt;
* Kijavítva, hogy a kettőspont levágja az assert általi üzenetet, és egy hibaüzenet&lt;br /&gt;
* Kijavítva, hogy a loadstring és load nem fogad el UTF-8 /w BOM karaktereket &lt;br /&gt;
* Hibakezelés funkció paraméter elemzés továbbfejlesztve&lt;br /&gt;
* Megváltoztatva a ''coroutine.resum'', hogy kiírja a hibákat alapértelmezetten&lt;br /&gt;
* HTTPS támogatás a [[fetchRemote]]-hoz.&lt;br /&gt;
&lt;br /&gt;
== Kliens ==&lt;br /&gt;
&lt;br /&gt;
=== Kliens: Kiegészítések ===&lt;br /&gt;
* Nem történt kiegészítés&lt;br /&gt;
&lt;br /&gt;
=== Kliens: Hibajavítások &amp;amp; Változtatások ===&lt;br /&gt;
* CEF frissítva (és az alárendelt Chromium)&lt;br /&gt;
* Javítva, hogy a játékos újracsatlakozik bizonyos körülmények között, amikor letölt egy fájlt egy külső webszerverről&lt;br /&gt;
* Javítva az ajtó/egyéb más szinkronizálása a kocsi stream-be/ki-nél.&lt;br /&gt;
* Javítva több jelentősebb crash&lt;br /&gt;
* Biztonsági javítások&lt;br /&gt;
&lt;br /&gt;
== Szerver ==&lt;br /&gt;
&lt;br /&gt;
=== Szerver: Kiegészítések ===&lt;br /&gt;
* Hozzáadva pár Linux könyvtár az MTA csomagához, hogy javítsuk a kompatibilitást régebbi rendszerekkel&lt;br /&gt;
* Hozzáadva a szerver ellenőrzési logika&lt;br /&gt;
&lt;br /&gt;
=== Szerver: Hibajavítások &amp;amp; Változtatások ===&lt;br /&gt;
* Javítva, hogy a bemenő kurzor szerver fagyást okoz&lt;br /&gt;
* Javítva, hogy a refreshResources időnként crashelteti a szervert&lt;br /&gt;
* Javítva, hogy a fájlok ütközzenek, amikor a resource neve tartalmaz szögletes zárójeleket&lt;br /&gt;
* Javítva a Linux szerver induláskori hiba üzenetének a formázását&lt;br /&gt;
* Fejlesztve a verzió ellenőrzés&lt;br /&gt;
&lt;br /&gt;
== Resourceok ==&lt;br /&gt;
* Nem történt változás&lt;br /&gt;
&lt;br /&gt;
== Szerkesztő ==&lt;br /&gt;
* Nem történt változás&lt;br /&gt;
&lt;br /&gt;
== Mellék információ ==&lt;br /&gt;
''Jobban leírt információ elérhető a [https://bugs.multitheftauto.com/changelog_page.php Bug követő változási listán] és a GitHub táűrolókon:&lt;br /&gt;
:* [https://github.com/multitheftauto/mtasa-blue MTA: SA Blue]&lt;br /&gt;
:* [https://github.com/multitheftauto/mtasa-resources MTA: SA Hivatalos Resourcek]&lt;br /&gt;
&lt;br /&gt;
[[Category:Changelog]]&lt;br /&gt;
[[Category:Incomplete]]&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Changes_in_1.5.2&amp;diff=47482</id>
		<title>HU/Changes in 1.5.2</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Changes_in_1.5.2&amp;diff=47482"/>
		<updated>2016-05-13T15:53:14Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: Created page with &amp;quot;{{Changelogs}} __NOTOC__  * Changelog on Mantis: https://bugs.mtasa.com/changelog_page.php * Full changelog: https://github.com/multitheftauto/mtasa-blue/commits/1.5.1?page=1 ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Changelogs}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
* Changelog on Mantis: https://bugs.mtasa.com/changelog_page.php&lt;br /&gt;
* Full changelog: https://github.com/multitheftauto/mtasa-blue/commits/1.5.1?page=1&lt;br /&gt;
&lt;br /&gt;
== Main Additions / Changes ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scripting ==&lt;br /&gt;
&lt;br /&gt;
===Client===&lt;br /&gt;
* Added [[createSearchLight]], [[getSearchLightStartPosition]], [[getSearchLightEndPosition]], [[getSearchLightStartRadius]], [[getSearchLightEndRadius]], [[setSearchLightStartPosition]], [[setSearchLightEndPosition]], [[setSearchLightStartRadius]], [[setSearchLightEndRadius]]&lt;br /&gt;
* Added [[setWindowFlashing]]&lt;br /&gt;
* Fixed position calculation in [[dxGetTexturePixels]] (thanks to tederis)&lt;br /&gt;
* Added UsingDepthBuffer flag to [[dxGetStatus]]&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
* Added [[dbPrepareString]]&lt;br /&gt;
* Fixed ''Player.outputChat'' behaving incorrectly&lt;br /&gt;
* Added [[onPlayerACInfo]] and [[resendPlayerACInfo]]&lt;br /&gt;
&lt;br /&gt;
=== Shared (''Client &amp;amp; Server side'') ===&lt;br /&gt;
* OOP tweaks and fixes&lt;br /&gt;
* Fixed colon cutting the message printed by assert and error&lt;br /&gt;
* Fixed loadstring and load not accepting UTF-8 strings with BOM&lt;br /&gt;
* Improved error handling for function parameter parsing&lt;br /&gt;
* Changed ''coroutine.resume'' to output errors by default&lt;br /&gt;
* Added https support for [[fetchRemote]]&lt;br /&gt;
&lt;br /&gt;
== Client ==&lt;br /&gt;
&lt;br /&gt;
=== Client: Additions ===&lt;br /&gt;
* None yet&lt;br /&gt;
&lt;br /&gt;
=== Client: Bugfixes &amp;amp; Changes ===&lt;br /&gt;
* Updated CEF (and underlying Chromium)&lt;br /&gt;
* Fixed player reconnecting under certain circumstances when downloading a file from an external webserver&lt;br /&gt;
* Fixed door/component desync on vehicle stream-in/out&lt;br /&gt;
* Fixed multiple major crashes&lt;br /&gt;
* Security fixes&lt;br /&gt;
&lt;br /&gt;
== Server ==&lt;br /&gt;
&lt;br /&gt;
=== Server: Additions ===&lt;br /&gt;
* Added some Linux libraries to the MTA package to improve compatibility with old systems&lt;br /&gt;
* Added server verification logic&lt;br /&gt;
&lt;br /&gt;
=== Server: Bugfixes &amp;amp; Changes ===&lt;br /&gt;
* Fixed input cursor causing server freezes&lt;br /&gt;
* Fixed refreshResources sometimes crashing the server&lt;br /&gt;
* Fixed file conflicts when a resource name contains square brackets&lt;br /&gt;
* Fixed Linux server startup error message formatting&lt;br /&gt;
* Improved version checks&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* None yet&lt;br /&gt;
&lt;br /&gt;
== Editor ==&lt;br /&gt;
* None yet&lt;br /&gt;
&lt;br /&gt;
== Extra information ==&lt;br /&gt;
''More detailed information available on [https://bugs.multitheftauto.com/changelog_page.php Bug tracker Changelog] and GitHub repositories:&lt;br /&gt;
:* [https://github.com/multitheftauto/mtasa-blue MTA: SA Blue]&lt;br /&gt;
:* [https://github.com/multitheftauto/mtasa-resources MTA: SA Official Resources]&lt;br /&gt;
&lt;br /&gt;
[[Category:Changelog]]&lt;br /&gt;
[[Category:Incomplete]]&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Client_Manual&amp;diff=47481</id>
		<title>HU/Client Manual</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Client_Manual&amp;diff=47481"/>
		<updated>2016-05-13T15:51:36Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: /* Default Controls */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Bemutatkozás==&lt;br /&gt;
A Multi Theft Auto: San Andreas egy rajongók által készített játékmodifikáció. Ha a GTA3 és GTA Vice City verziókat keresed, nézd meg az [[Archive|archívumot]]. A Multi Theft Autonak semmi köze sem a Rockstar Gameshez, sem a Take Two Interactiv-hoz.&lt;br /&gt;
&lt;br /&gt;
==Mielőtt belekezdesz==&lt;br /&gt;
Mielőtt telepíted a Multi Theft Auto: San Andreast, bizonyosodj meg róla, hogy nincs semmiféle más mod telepítve a játékhoz. Ez zavarhatja az MTA működését. Ha mégis megakarod tartani ezeket, akkor javasolt egy másolat létrehozása a játékról, hogy arról is elindíthasd a játékot később.&lt;br /&gt;
&lt;br /&gt;
Bizonyosodj meg róla, hogy '''Windows XP''', '''Windows Vista''' (32 vagy 64 bites), '''Windows 7''' (32 vagy 64 bites) vagy '''Windows 8''' (32 vagy 64 bites) operációs rendszered van, amin futtatni tudod a játékot. Ha a sima játékot a legalacsonyabb beállításokon játszottad, lehet, hogy az MTA is belassul majd. &lt;br /&gt;
{{Note| &lt;br /&gt;
* Az MTA SA csak a GTA SA '''v1.0''' verziójával működik. Ha a játékot később vetted meg, valószínűleg egy más verziód van.''' [[HU/Known Issues - FAQ|(További információk)]]&lt;br /&gt;
* Ha egy Steames verziója van meg a játéknak, mindenképpen [[HU/Known Issues - FAQ|olvasd el ezt]].&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Gépigény===&lt;br /&gt;
====Minimum gépigény====&lt;br /&gt;
A Multi Theft Auto minimum gépigénye jóval magasabb, mint a GTA San Andreasé. &lt;br /&gt;
* Intel Pentium 4 vagy AMD Athlon XP&lt;br /&gt;
* 512MB DDR RAM&lt;br /&gt;
* Grand Theft Auto: San Andreas amerikai vagy európai verzió, v1.0&lt;br /&gt;
* 3.7GB szabad hely (3.6GB a GTA San Andreashoz) (A Multi Theft Auto tartalmaz olyan fájlokat, amik a játék közben kerülnek a gépedre)&lt;br /&gt;
* nVidia GeForce 4 series vagy ATI Radeon 8xxx series (64MB RAM és DirectX 9.0 kompatibilis)&lt;br /&gt;
* DirectX 9.0 kompatibilis hangkártya&lt;br /&gt;
* Billentyűzet és egér &lt;br /&gt;
* Tartós internetkapcsolat&lt;br /&gt;
&lt;br /&gt;
====Ajánlott gépigény====&lt;br /&gt;
* Intel Core 2 Duo Processor vagy AMD equivalent&lt;br /&gt;
* 1GB DDR RAM&lt;br /&gt;
* Grand Theft Auto: San Andreas amerikai vagy európai verzió, v1.0&lt;br /&gt;
* &amp;gt;5GB szabad hely&lt;br /&gt;
* nVidia GeForce FX vagy nagyobb, ATI Radeon 9xxx vagy nagyobb. (Pixel shader 2.0 kompatibilis.)&lt;br /&gt;
* DirectX 9.0 kompatibilis hangkártya&lt;br /&gt;
* Billentyűzet és egér &lt;br /&gt;
* Tartós internetkapcsolat&lt;br /&gt;
&lt;br /&gt;
====Megjegyzések====&lt;br /&gt;
* A minimum gépigény a Multi Theft Auto: San Andreas legalacsonyabb szintű futtatásához való, a játékban lévő néhány szerverhez lehet, hogy erősebb számítógép kell.&lt;br /&gt;
* A gyorsabb betöltéshez több RAM javasolt.&lt;br /&gt;
* Bizonyosodj meg róla, hogy a legfrisebb Windows operációs rendszert használod.&lt;br /&gt;
* Ha bármilyen problémád van, olvasd el az [[HU/Known Issues - FAQ|ismert hibák]] lapot, de az IRC csatornánkon is felveheted velünk a kapcsolatot. További információt [[HU/Places To Chat#IRC (Internet Relay Chat) |itt]] találsz az IRC szerverről.&lt;br /&gt;
&lt;br /&gt;
==A játék telepítése==&lt;br /&gt;
# Ha még nem tetted meg, töltsd le a Multi Theft Autot innen: [http://mtasa.com mtasa.com].&lt;br /&gt;
# Indítsd el a telepítőt. Windows Vista és Windows 7 rendszereken rendszergazdai jogosultsággal futtasd.&lt;br /&gt;
# El kell fogadnod az MTA:SA licenszét. (GPLv3).&lt;br /&gt;
# A telepítő a következő elemeket fogja telepíteni:&lt;br /&gt;
#* '''MTA kliens''' felületek, és az elemeik.&lt;br /&gt;
#* '''Dedikált szerver''' saját szerver futtasásához.&lt;br /&gt;
#** '''Belső komponensek''' és '''Játék mudulok''' a dedikált szerverhez.&lt;br /&gt;
#** '''Belső resourcek''' a dedikált szerverhez.&lt;br /&gt;
#** '''Választható resourcek''', játékmódok, mapok.&lt;br /&gt;
#** '''Map Editor''' új mapok készítéséhez, választható.&lt;br /&gt;
#* '''Fejlesztés''', fejlesztői eszközök.&lt;br /&gt;
#** '''Module SDK''' fejlesztői SDK a szervered saját moduljaihoz, C++ tudás szükséges.&lt;br /&gt;
#* '''Start menü csoport''' a start menüdben.&lt;br /&gt;
#* '''Asztali ikon''' a gyorsabb eléréshez. &lt;br /&gt;
# A telepítő meg fogja kérdezni, hova szeretnéd telepíteni a játékot. Ezt bárhova megteheted, nem kötelező a GTA: San Andreas mappájába.&lt;br /&gt;
# Ezután a telepítő meg fogja kérdezni, hol van a GTA: San Andreas mappája. Alapértelmezett mappa: '''C:\Program Files\Rockstar Games\GTA San Andreas\'''.&lt;br /&gt;
# Ha a telepítés befejeződött, a telepítőből rögtön futtathatod is a játékot, ha nem akarod, vedd ki a pipát, és nyomj a &amp;quot;Finish&amp;quot; gombra.&lt;br /&gt;
# Ha nem tetted ki az asztalra az MTA ikonját, a Start menüből futtathatod.&lt;br /&gt;
&lt;br /&gt;
==A játék futtatása==&lt;br /&gt;
# A játékot a Start menü segítségével futtathatod, ha rányomsz az ikonjára.&lt;br /&gt;
# A GTA San Andreas el fog indulni, és ha betölt, a Multi Theft Auto menüje fog megjelenni.&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;188&amp;quot; |&lt;br /&gt;
[[Image:Server_Browser.jpg|280px]]&lt;br /&gt;
| width=&amp;quot;380&amp;quot; |&lt;br /&gt;
&amp;lt;font size=&amp;quot;-1&amp;quot; face=&amp;quot;tahoma,helvetica,arial,sans-serif&amp;quot;&amp;gt;'''Browse servers''' – szerverek keresése, itt könnyen megtalálhatod a szervereket. &amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;188&amp;quot; |&lt;br /&gt;
[[Image:Host_Game.jpg|280px]]&lt;br /&gt;
| width=&amp;quot;380&amp;quot; |&lt;br /&gt;
&amp;lt;font size=&amp;quot;-1&amp;quot; face=&amp;quot;tahoma,helvetica,arial,sans-serif&amp;quot;&amp;gt;'''Host game''' – szerver futtatása, itt könnyen elindíthatod a szervered. &amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;188&amp;quot; |&lt;br /&gt;
[[Image:Menu_Settings.JPG|280px]]&lt;br /&gt;
| width=&amp;quot;380&amp;quot; |&lt;br /&gt;
&amp;lt;font size=&amp;quot;-1&amp;quot; face=&amp;quot;tahoma,helvetica,arial,sans-serif&amp;quot;&amp;gt;'''Settings '''– beállítások, itt számtalan dolgot be tudsz majd állítani a játékkal kapcsolatban.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;188&amp;quot; |&lt;br /&gt;
[[Image:About_Menu.jpg|280px]]&lt;br /&gt;
| width=&amp;quot;380&amp;quot; |&lt;br /&gt;
&amp;lt;font size=&amp;quot;-1&amp;quot; face=&amp;quot;tahoma,helvetica,arial,sans-serif&amp;quot;&amp;gt;'''About '''– itt megtalálhatod kik készítették a Multi Theft Autot.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;188&amp;quot; |&lt;br /&gt;
[[Image:Map_Editor.jpg|280px]]&lt;br /&gt;
| width=&amp;quot;380&amp;quot; |&lt;br /&gt;
&amp;lt;font size=&amp;quot;-1&amp;quot; face=&amp;quot;tahoma,helvetica,arial,sans-serif&amp;quot;&amp;gt;'''Map editor '''– map szerkesztő, itt elkészítheted saját mapjaidat, amiket felölthetsz szerveredre, és más játékosok is játszhatnak majd rajta.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;188&amp;quot; |&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| width=&amp;quot;380&amp;quot; |&lt;br /&gt;
&amp;lt;font size=&amp;quot;-1&amp;quot; face=&amp;quot;tahoma,helvetica,arial,sans-serif&amp;quot;&amp;gt;'''Quit '''– kilépés, itt tudsz kilépni a játékból.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A legkönnyeb mód a játék elkezdéséhez, ha rákattintasz a &amp;quot;Browse servers&amp;quot; gombra. Ha nem jön elő egy szerver sem, akkor nyomj a &amp;quot;Refresh&amp;quot; - re, ami frissíti a szerverek listáját, és kilistázza azokat.&lt;br /&gt;
&lt;br /&gt;
* A '''Name''' fül alatt a szerver nevét találhatod.&lt;br /&gt;
* A '''Players''' fül megmutatja, hogy hány játékos van a szerveren, és mennyi lehet maximum. Sorrend: [Felhasznált hely] / [Maximum hely].&lt;br /&gt;
* A '''Ping''' fül kijelzi a géped és szerver közötti kapcsolatot. Ez megmutatja, hogy a számítógéped mennyi idő alatt tudsz elküldeni egy &amp;quot;csomagot&amp;quot; a szerverre. Természetesen minnél nagyobb a ping mértéke, annál lassab leszel a szerveren. Minnél közelebb van lakóhelyedhez a szerver, annál kisebb lesz a pinged is.&lt;br /&gt;
* A '''Host''' a szerver IP címét mutatja meg. Ezt az adatot a &amp;quot;Quick Connect&amp;quot; résznél használhatod, mivel oda egyszerűen csak be kell írnod a szerver IP címét.&lt;br /&gt;
Minden fülre rákattinthatsz, ekkor sorba rendezi az adatokat.&lt;br /&gt;
&lt;br /&gt;
A legjobb játékélményhez figyeld a játékosok számát és pinged mértékét.&lt;br /&gt;
&lt;br /&gt;
Ha kiválasztottál egy szervert, nyomj a '''Connect''' gombra a jobb felső részen. Ha minden jól megy, csatlakozni fogsz a szerverre.&lt;br /&gt;
&lt;br /&gt;
==Hogyan játssz==&lt;br /&gt;
&lt;br /&gt;
Az MTA:SA scriptelési lehetőséget ad a mapok, játékmódok készítőinek. Ezekkel testreszabhatják a játékot, akár új játékelemeket is megjeleníthetnek.&lt;br /&gt;
&lt;br /&gt;
A szerveren lévő összes többi játékos lehet veled semleges, de ha csapatjátékos szerverre mentél, akár a segítőid is lehetnek. Beszélgetni a '''T''' betű megnyomásával tudsz velük. Ekkor előugrik a &amp;quot;chat&amp;quot; ablak, ahova beírhatod üzeneted. Ha csak a csapattársaiddal akarsz beszélni, a '''Y''' betűt nyomd meg, és oda írd üzeneted.&lt;br /&gt;
&lt;br /&gt;
Az MTA Map editor mindenféle object lerakására lehetőséget ad, akár egy saját szigetet is létrehozhatsz. Természetesen ez nem minden, mivel scriptekkel akár mozgatni is tudsz majd objecteket. Ez nagyban megnöveli a játékélményt a szervereden.&lt;br /&gt;
&lt;br /&gt;
A Tab gomb megnyomása esetén megjelenik a &amp;quot;Scoreboard&amp;quot;, magyarul eredménytábla. Alap helyzetben itt csak a játékosok neve és ping mértékük jelenik meg, azonban különböző scriptekkel új elemeket is meg lehet jeleníteni rajta. Például a deatmach játékmódban azt is megmutatja, hogy hány embert öltél meg, de megjeleníthető az is, hogy hányszor haltál meg.&lt;br /&gt;
&lt;br /&gt;
==Alapértelmezett Beállítások==&lt;br /&gt;
&lt;br /&gt;
===Irányítás===&lt;br /&gt;
&lt;br /&gt;
* F8 - Console&lt;br /&gt;
* F11 - SA térkép ''(a következő listán szereplő gombok a térképre vonatkoznak)''&lt;br /&gt;
**numpad  /- - Nagyítás, távolodás&lt;br /&gt;
**numpad 4, 8, 6, 2 - téerkép mozgatása balra, fel, jobbra, le&lt;br /&gt;
**numpad 0 - választás a játékos figyelése, vagy a szabad nézelődés között.&lt;br /&gt;
* F12 - Képernyőkép (screenshot) készítése&lt;br /&gt;
* T - Chat&lt;br /&gt;
* Y - Csapat Chat&lt;br /&gt;
&lt;br /&gt;
===Resource függő irányítás===&lt;br /&gt;
Ezekkel a gombokkal a játékbeli scripteket lehet elérni.&lt;br /&gt;
* F9 - Segítség&lt;br /&gt;
* V - nyomvatartás esetén mikrofonnal is beszélhetsz társaiddal&lt;br /&gt;
* TAB - Játékos lista, (ha a szervered tartalmazza a [[Scoreboard]] scriptet)&lt;br /&gt;
&lt;br /&gt;
==Console Parancsok==&lt;br /&gt;
&lt;br /&gt;
'''bind defaults''' alapértelmezett irányítás visszaállítása&lt;br /&gt;
&lt;br /&gt;
Nyomd meg a '''~''' vagy '''F8''' gombot, hogy előhozd a Consolet&lt;br /&gt;
&lt;br /&gt;
;'''maps''' : kilistázza, hogy milyen mapok vannak a szerveren&lt;br /&gt;
;'''nick [név]''' : megváltoztatja a játékbeli neved a beírtra.&lt;br /&gt;
&lt;br /&gt;
;'''msg [név] [üzenet]''' vagy '''pm [név] [üzenet]''' : privát üzenetet küld a [név] részben leírt játékosnak.&lt;br /&gt;
&lt;br /&gt;
;'''quit''' vagy '''exit''' : Kilépsz a szerverről és játékból.&lt;br /&gt;
&lt;br /&gt;
;'''ver''' : a játék verziójának és licenszének kiírása&lt;br /&gt;
;'''sver''' : megmutatja a szerver verzióját&lt;br /&gt;
&lt;br /&gt;
;'''time''' : idő megmutatása&lt;br /&gt;
&lt;br /&gt;
;'''disconnect''' : lecsatlakozol a szerverről&lt;br /&gt;
&lt;br /&gt;
;'''say [szöveg]''' : a console segítségével így tudsz chat üzenetet küldeni.&lt;br /&gt;
&lt;br /&gt;
;'''ignore [név]''' : letiltja a megjelölt játékost, a chat nem jeleníti meg az üzeneteit. Ha meg akarod szüntetni a tiltást, ennyit kell beírnod: '''ignore [név]''' &lt;br /&gt;
{{Tip|Ezeket a parancsokat a chatboxban is használhatod, csak / jeleket kell eléjük írni.}}&lt;br /&gt;
&lt;br /&gt;
Ezt a listát úgy is megtekintheted, ha beírod a consoleba, hogy '''help'''. A szerver vagy az éppen futó map által adott egyéni parancsokat pedig a '''commands''' beírásával tudod megtekinteni.&lt;br /&gt;
&lt;br /&gt;
További információk: [[HU/Client Commands|Kliens parancsok]]&lt;br /&gt;
&lt;br /&gt;
==Hibakódok és jelentésük==&lt;br /&gt;
=== Download errors ===&lt;br /&gt;
:{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width: auto; table-layout: fixed;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Kód&lt;br /&gt;
!scope=&amp;quot;col&amp;quot; class=&amp;quot;unsortable&amp;quot; | Jelentés&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|UNKNOWN_ERROR (ISMERETLEN_HIBA)&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|INVALID_FILE_DESCRIPTORS (ÉRVÉNYTELEN_FÁJL_JELLEMZŐK)&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|INVALID_MAX_FILE_DESCRIPTOR (ÉRVÉNYTELEN_MAX_FÁJL_JELLEMZŐ)&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|INVALID_SELECT_RETURN (ÉRVÉNYTELEN_VÁLASZTÁS_VISSZA)&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|INVALID_INITIAL_MULTI_PERFORM (ÉRVÉNYTELEN_KEZDETI_MULTI_TELJESÍTÉS)&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|INVALID_MULTI_PERFORM_CODE (ÉRVTÉNYTELEN_MULTI_TELJESÍTÉSI_KÓD)&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|INVALID_MULTI_PERFORM_CODE_NEW_DOWNLOADS(ÉRVÉNYTELEN_MULTI_TELJESÍTÉSI_KÓD_ÚJ_LETÖLTÉS)&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|UNEXPECTED_CURL_MESSAGE (ÉRTELMEZHETETLEN_ÜZENET)&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|UNABLE_TO_CONNECT (SIKERTELEN_CSATLAKOZÁS)&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|UNABLE_TO_DOWNLOAD_FILE (SIKERTELEN_FILE_LETÖLTÉS)&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|FAILED_TO_INITIALIZE_DOWNLOAD (LETÖLTÉS_ELKEZDÉSE_SIKERTELEN)&lt;br /&gt;
|}&lt;br /&gt;
===Végzetes hibák===&lt;br /&gt;
:{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width: auto; table-layout: fixed;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Kód&lt;br /&gt;
!scope=&amp;quot;col&amp;quot; class=&amp;quot;unsortable&amp;quot; | Jelentés&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|nincs játékos modell a játékban&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|nincs játékos esemény a játékban&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|szerver letöltése kikapcsolva&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|nincs játékos modell a játékos listában&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|nincs játékos a játékos listán&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|érvénytelen egyedi adat &lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|érvénytelen bitstream adat&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|rendszer egységi hiba&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|object elkészítési hiba &lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|pickup elkészítési hiba&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|jármű elkészítési hiba&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|érvénytelen csapatnév &lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|érvénytelen lua esemény&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|érvénytelen resource hosszúság&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==='Unable to enter vehicle' hibák===&lt;br /&gt;
:{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width: auto; table-layout: fixed;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Kód&lt;br /&gt;
!scope=&amp;quot;col&amp;quot; class=&amp;quot;unsortable&amp;quot; | Jelentés&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|script törölve&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|script törölve (jack)&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|más játékos már belépett&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|érvénytelen ülőhely&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|túl messze vagy&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|már autóban vagy&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|már belépsz/kilépsz&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|érvénytelen jármű (trailer - utánfutó)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Speciális: MTA Linux rendszeren==&lt;br /&gt;
Ha Linux operációs rendszer felhasználó vagy, olvasd el ezt az útmutatót: [[HU/Client_on_Linux_Manual|Kliens Linux rendszeren kézikönyv]]&lt;br /&gt;
&lt;br /&gt;
[[en:Client Manual]]&lt;br /&gt;
[[cs:Client Manual]]&lt;br /&gt;
[[es:Manual Cliente Deathmatch]]&lt;br /&gt;
[[de:MTA DM Client Anleitung]]&lt;br /&gt;
[[it:Manuale del Client]]&lt;br /&gt;
[[nl:Deathmatch Client Manual]]&lt;br /&gt;
[[ru:Deathmatch Client Manual]]&lt;br /&gt;
[[pt-br:Manual do Cliente]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Translated/Support]]&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Client_Manual&amp;diff=47480</id>
		<title>HU/Client Manual</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Client_Manual&amp;diff=47480"/>
		<updated>2016-05-13T15:50:23Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: /* Bemutatkozás */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Bemutatkozás==&lt;br /&gt;
A Multi Theft Auto: San Andreas egy rajongók által készített játékmodifikáció. Ha a GTA3 és GTA Vice City verziókat keresed, nézd meg az [[Archive|archívumot]]. A Multi Theft Autonak semmi köze sem a Rockstar Gameshez, sem a Take Two Interactiv-hoz.&lt;br /&gt;
&lt;br /&gt;
==Mielőtt belekezdesz==&lt;br /&gt;
Mielőtt telepíted a Multi Theft Auto: San Andreast, bizonyosodj meg róla, hogy nincs semmiféle más mod telepítve a játékhoz. Ez zavarhatja az MTA működését. Ha mégis megakarod tartani ezeket, akkor javasolt egy másolat létrehozása a játékról, hogy arról is elindíthasd a játékot később.&lt;br /&gt;
&lt;br /&gt;
Bizonyosodj meg róla, hogy '''Windows XP''', '''Windows Vista''' (32 vagy 64 bites), '''Windows 7''' (32 vagy 64 bites) vagy '''Windows 8''' (32 vagy 64 bites) operációs rendszered van, amin futtatni tudod a játékot. Ha a sima játékot a legalacsonyabb beállításokon játszottad, lehet, hogy az MTA is belassul majd. &lt;br /&gt;
{{Note| &lt;br /&gt;
* Az MTA SA csak a GTA SA '''v1.0''' verziójával működik. Ha a játékot később vetted meg, valószínűleg egy más verziód van.''' [[HU/Known Issues - FAQ|(További információk)]]&lt;br /&gt;
* Ha egy Steames verziója van meg a játéknak, mindenképpen [[HU/Known Issues - FAQ|olvasd el ezt]].&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Gépigény===&lt;br /&gt;
====Minimum gépigény====&lt;br /&gt;
A Multi Theft Auto minimum gépigénye jóval magasabb, mint a GTA San Andreasé. &lt;br /&gt;
* Intel Pentium 4 vagy AMD Athlon XP&lt;br /&gt;
* 512MB DDR RAM&lt;br /&gt;
* Grand Theft Auto: San Andreas amerikai vagy európai verzió, v1.0&lt;br /&gt;
* 3.7GB szabad hely (3.6GB a GTA San Andreashoz) (A Multi Theft Auto tartalmaz olyan fájlokat, amik a játék közben kerülnek a gépedre)&lt;br /&gt;
* nVidia GeForce 4 series vagy ATI Radeon 8xxx series (64MB RAM és DirectX 9.0 kompatibilis)&lt;br /&gt;
* DirectX 9.0 kompatibilis hangkártya&lt;br /&gt;
* Billentyűzet és egér &lt;br /&gt;
* Tartós internetkapcsolat&lt;br /&gt;
&lt;br /&gt;
====Ajánlott gépigény====&lt;br /&gt;
* Intel Core 2 Duo Processor vagy AMD equivalent&lt;br /&gt;
* 1GB DDR RAM&lt;br /&gt;
* Grand Theft Auto: San Andreas amerikai vagy európai verzió, v1.0&lt;br /&gt;
* &amp;gt;5GB szabad hely&lt;br /&gt;
* nVidia GeForce FX vagy nagyobb, ATI Radeon 9xxx vagy nagyobb. (Pixel shader 2.0 kompatibilis.)&lt;br /&gt;
* DirectX 9.0 kompatibilis hangkártya&lt;br /&gt;
* Billentyűzet és egér &lt;br /&gt;
* Tartós internetkapcsolat&lt;br /&gt;
&lt;br /&gt;
====Megjegyzések====&lt;br /&gt;
* A minimum gépigény a Multi Theft Auto: San Andreas legalacsonyabb szintű futtatásához való, a játékban lévő néhány szerverhez lehet, hogy erősebb számítógép kell.&lt;br /&gt;
* A gyorsabb betöltéshez több RAM javasolt.&lt;br /&gt;
* Bizonyosodj meg róla, hogy a legfrisebb Windows operációs rendszert használod.&lt;br /&gt;
* Ha bármilyen problémád van, olvasd el az [[HU/Known Issues - FAQ|ismert hibák]] lapot, de az IRC csatornánkon is felveheted velünk a kapcsolatot. További információt [[HU/Places To Chat#IRC (Internet Relay Chat) |itt]] találsz az IRC szerverről.&lt;br /&gt;
&lt;br /&gt;
==A játék telepítése==&lt;br /&gt;
# Ha még nem tetted meg, töltsd le a Multi Theft Autot innen: [http://mtasa.com mtasa.com].&lt;br /&gt;
# Indítsd el a telepítőt. Windows Vista és Windows 7 rendszereken rendszergazdai jogosultsággal futtasd.&lt;br /&gt;
# El kell fogadnod az MTA:SA licenszét. (GPLv3).&lt;br /&gt;
# A telepítő a következő elemeket fogja telepíteni:&lt;br /&gt;
#* '''MTA kliens''' felületek, és az elemeik.&lt;br /&gt;
#* '''Dedikált szerver''' saját szerver futtasásához.&lt;br /&gt;
#** '''Belső komponensek''' és '''Játék mudulok''' a dedikált szerverhez.&lt;br /&gt;
#** '''Belső resourcek''' a dedikált szerverhez.&lt;br /&gt;
#** '''Választható resourcek''', játékmódok, mapok.&lt;br /&gt;
#** '''Map Editor''' új mapok készítéséhez, választható.&lt;br /&gt;
#* '''Fejlesztés''', fejlesztői eszközök.&lt;br /&gt;
#** '''Module SDK''' fejlesztői SDK a szervered saját moduljaihoz, C++ tudás szükséges.&lt;br /&gt;
#* '''Start menü csoport''' a start menüdben.&lt;br /&gt;
#* '''Asztali ikon''' a gyorsabb eléréshez. &lt;br /&gt;
# A telepítő meg fogja kérdezni, hova szeretnéd telepíteni a játékot. Ezt bárhova megteheted, nem kötelező a GTA: San Andreas mappájába.&lt;br /&gt;
# Ezután a telepítő meg fogja kérdezni, hol van a GTA: San Andreas mappája. Alapértelmezett mappa: '''C:\Program Files\Rockstar Games\GTA San Andreas\'''.&lt;br /&gt;
# Ha a telepítés befejeződött, a telepítőből rögtön futtathatod is a játékot, ha nem akarod, vedd ki a pipát, és nyomj a &amp;quot;Finish&amp;quot; gombra.&lt;br /&gt;
# Ha nem tetted ki az asztalra az MTA ikonját, a Start menüből futtathatod.&lt;br /&gt;
&lt;br /&gt;
==A játék futtatása==&lt;br /&gt;
# A játékot a Start menü segítségével futtathatod, ha rányomsz az ikonjára.&lt;br /&gt;
# A GTA San Andreas el fog indulni, és ha betölt, a Multi Theft Auto menüje fog megjelenni.&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;188&amp;quot; |&lt;br /&gt;
[[Image:Server_Browser.jpg|280px]]&lt;br /&gt;
| width=&amp;quot;380&amp;quot; |&lt;br /&gt;
&amp;lt;font size=&amp;quot;-1&amp;quot; face=&amp;quot;tahoma,helvetica,arial,sans-serif&amp;quot;&amp;gt;'''Browse servers''' – szerverek keresése, itt könnyen megtalálhatod a szervereket. &amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;188&amp;quot; |&lt;br /&gt;
[[Image:Host_Game.jpg|280px]]&lt;br /&gt;
| width=&amp;quot;380&amp;quot; |&lt;br /&gt;
&amp;lt;font size=&amp;quot;-1&amp;quot; face=&amp;quot;tahoma,helvetica,arial,sans-serif&amp;quot;&amp;gt;'''Host game''' – szerver futtatása, itt könnyen elindíthatod a szervered. &amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;188&amp;quot; |&lt;br /&gt;
[[Image:Menu_Settings.JPG|280px]]&lt;br /&gt;
| width=&amp;quot;380&amp;quot; |&lt;br /&gt;
&amp;lt;font size=&amp;quot;-1&amp;quot; face=&amp;quot;tahoma,helvetica,arial,sans-serif&amp;quot;&amp;gt;'''Settings '''– beállítások, itt számtalan dolgot be tudsz majd állítani a játékkal kapcsolatban.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;188&amp;quot; |&lt;br /&gt;
[[Image:About_Menu.jpg|280px]]&lt;br /&gt;
| width=&amp;quot;380&amp;quot; |&lt;br /&gt;
&amp;lt;font size=&amp;quot;-1&amp;quot; face=&amp;quot;tahoma,helvetica,arial,sans-serif&amp;quot;&amp;gt;'''About '''– itt megtalálhatod kik készítették a Multi Theft Autot.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;188&amp;quot; |&lt;br /&gt;
[[Image:Map_Editor.jpg|280px]]&lt;br /&gt;
| width=&amp;quot;380&amp;quot; |&lt;br /&gt;
&amp;lt;font size=&amp;quot;-1&amp;quot; face=&amp;quot;tahoma,helvetica,arial,sans-serif&amp;quot;&amp;gt;'''Map editor '''– map szerkesztő, itt elkészítheted saját mapjaidat, amiket felölthetsz szerveredre, és más játékosok is játszhatnak majd rajta.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;188&amp;quot; |&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| width=&amp;quot;380&amp;quot; |&lt;br /&gt;
&amp;lt;font size=&amp;quot;-1&amp;quot; face=&amp;quot;tahoma,helvetica,arial,sans-serif&amp;quot;&amp;gt;'''Quit '''– kilépés, itt tudsz kilépni a játékból.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A legkönnyeb mód a játék elkezdéséhez, ha rákattintasz a &amp;quot;Browse servers&amp;quot; gombra. Ha nem jön elő egy szerver sem, akkor nyomj a &amp;quot;Refresh&amp;quot; - re, ami frissíti a szerverek listáját, és kilistázza azokat.&lt;br /&gt;
&lt;br /&gt;
* A '''Name''' fül alatt a szerver nevét találhatod.&lt;br /&gt;
* A '''Players''' fül megmutatja, hogy hány játékos van a szerveren, és mennyi lehet maximum. Sorrend: [Felhasznált hely] / [Maximum hely].&lt;br /&gt;
* A '''Ping''' fül kijelzi a géped és szerver közötti kapcsolatot. Ez megmutatja, hogy a számítógéped mennyi idő alatt tudsz elküldeni egy &amp;quot;csomagot&amp;quot; a szerverre. Természetesen minnél nagyobb a ping mértéke, annál lassab leszel a szerveren. Minnél közelebb van lakóhelyedhez a szerver, annál kisebb lesz a pinged is.&lt;br /&gt;
* A '''Host''' a szerver IP címét mutatja meg. Ezt az adatot a &amp;quot;Quick Connect&amp;quot; résznél használhatod, mivel oda egyszerűen csak be kell írnod a szerver IP címét.&lt;br /&gt;
Minden fülre rákattinthatsz, ekkor sorba rendezi az adatokat.&lt;br /&gt;
&lt;br /&gt;
A legjobb játékélményhez figyeld a játékosok számát és pinged mértékét.&lt;br /&gt;
&lt;br /&gt;
Ha kiválasztottál egy szervert, nyomj a '''Connect''' gombra a jobb felső részen. Ha minden jól megy, csatlakozni fogsz a szerverre.&lt;br /&gt;
&lt;br /&gt;
==Hogyan játssz==&lt;br /&gt;
&lt;br /&gt;
Az MTA:SA scriptelési lehetőséget ad a mapok, játékmódok készítőinek. Ezekkel testreszabhatják a játékot, akár új játékelemeket is megjeleníthetnek.&lt;br /&gt;
&lt;br /&gt;
A szerveren lévő összes többi játékos lehet veled semleges, de ha csapatjátékos szerverre mentél, akár a segítőid is lehetnek. Beszélgetni a '''T''' betű megnyomásával tudsz velük. Ekkor előugrik a &amp;quot;chat&amp;quot; ablak, ahova beírhatod üzeneted. Ha csak a csapattársaiddal akarsz beszélni, a '''Y''' betűt nyomd meg, és oda írd üzeneted.&lt;br /&gt;
&lt;br /&gt;
Az MTA Map editor mindenféle object lerakására lehetőséget ad, akár egy saját szigetet is létrehozhatsz. Természetesen ez nem minden, mivel scriptekkel akár mozgatni is tudsz majd objecteket. Ez nagyban megnöveli a játékélményt a szervereden.&lt;br /&gt;
&lt;br /&gt;
A Tab gomb megnyomása esetén megjelenik a &amp;quot;Scoreboard&amp;quot;, magyarul eredménytábla. Alap helyzetben itt csak a játékosok neve és ping mértékük jelenik meg, azonban különböző scriptekkel új elemeket is meg lehet jeleníteni rajta. Például a deatmach játékmódban azt is megmutatja, hogy hány embert öltél meg, de megjeleníthető az is, hogy hányszor haltál meg.&lt;br /&gt;
&lt;br /&gt;
==Default Controls==&lt;br /&gt;
&lt;br /&gt;
===Irányítás===&lt;br /&gt;
&lt;br /&gt;
* F8 - Console&lt;br /&gt;
* F11 - SA térkép ''(a következő listán szereplő gombok a térképre vonatkoznak)''&lt;br /&gt;
**numpad  /- - Nagyítás, távolodás&lt;br /&gt;
**numpad 4, 8, 6, 2 - téerkép mozgatása balra, fel, jobbra, le&lt;br /&gt;
**numpad 0 - választás a játékos figyelése, vagy a szabad nézelődés között.&lt;br /&gt;
* F12 - Képernyőkép (screenshot) készítése&lt;br /&gt;
* T - Chat&lt;br /&gt;
* Y - Csapat Chat&lt;br /&gt;
&lt;br /&gt;
===Resource függő irányítás===&lt;br /&gt;
Ezekkel a gombokkal a játékbeli scripteket lehet elérni.&lt;br /&gt;
* F9 - Segítség&lt;br /&gt;
* V - nyomvatartás esetén mikrofonnal is beszélhetsz társaiddal&lt;br /&gt;
* TAB - Játékos lista, (ha a szervered tartalmazza a [[Scoreboard]] scriptet)&lt;br /&gt;
&lt;br /&gt;
==Console Parancsok==&lt;br /&gt;
&lt;br /&gt;
'''bind defaults''' alapértelmezett irányítás visszaállítása&lt;br /&gt;
&lt;br /&gt;
Nyomd meg a '''~''' vagy '''F8''' gombot, hogy előhozd a Consolet&lt;br /&gt;
&lt;br /&gt;
;'''maps''' : kilistázza, hogy milyen mapok vannak a szerveren&lt;br /&gt;
;'''nick [név]''' : megváltoztatja a játékbeli neved a beírtra.&lt;br /&gt;
&lt;br /&gt;
;'''msg [név] [üzenet]''' vagy '''pm [név] [üzenet]''' : privát üzenetet küld a [név] részben leírt játékosnak.&lt;br /&gt;
&lt;br /&gt;
;'''quit''' vagy '''exit''' : Kilépsz a szerverről és játékból.&lt;br /&gt;
&lt;br /&gt;
;'''ver''' : a játék verziójának és licenszének kiírása&lt;br /&gt;
;'''sver''' : megmutatja a szerver verzióját&lt;br /&gt;
&lt;br /&gt;
;'''time''' : idő megmutatása&lt;br /&gt;
&lt;br /&gt;
;'''disconnect''' : lecsatlakozol a szerverről&lt;br /&gt;
&lt;br /&gt;
;'''say [szöveg]''' : a console segítségével így tudsz chat üzenetet küldeni.&lt;br /&gt;
&lt;br /&gt;
;'''ignore [név]''' : letiltja a megjelölt játékost, a chat nem jeleníti meg az üzeneteit. Ha meg akarod szüntetni a tiltást, ennyit kell beírnod: '''ignore [név]''' &lt;br /&gt;
{{Tip|Ezeket a parancsokat a chatboxban is használhatod, csak / jeleket kell eléjük írni.}}&lt;br /&gt;
&lt;br /&gt;
Ezt a listát úgy is megtekintheted, ha beírod a consoleba, hogy '''help'''. A szerver vagy az éppen futó map által adott egyéni parancsokat pedig a '''commands''' beírásával tudod megtekinteni.&lt;br /&gt;
&lt;br /&gt;
További információk: [[HU/Client Commands|Kliens parancsok]]&lt;br /&gt;
&lt;br /&gt;
==Hibakódok és jelentésük==&lt;br /&gt;
=== Download errors ===&lt;br /&gt;
:{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width: auto; table-layout: fixed;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Kód&lt;br /&gt;
!scope=&amp;quot;col&amp;quot; class=&amp;quot;unsortable&amp;quot; | Jelentés&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|UNKNOWN_ERROR (ISMERETLEN_HIBA)&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|INVALID_FILE_DESCRIPTORS (ÉRVÉNYTELEN_FÁJL_JELLEMZŐK)&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|INVALID_MAX_FILE_DESCRIPTOR (ÉRVÉNYTELEN_MAX_FÁJL_JELLEMZŐ)&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|INVALID_SELECT_RETURN (ÉRVÉNYTELEN_VÁLASZTÁS_VISSZA)&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|INVALID_INITIAL_MULTI_PERFORM (ÉRVÉNYTELEN_KEZDETI_MULTI_TELJESÍTÉS)&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|INVALID_MULTI_PERFORM_CODE (ÉRVTÉNYTELEN_MULTI_TELJESÍTÉSI_KÓD)&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|INVALID_MULTI_PERFORM_CODE_NEW_DOWNLOADS(ÉRVÉNYTELEN_MULTI_TELJESÍTÉSI_KÓD_ÚJ_LETÖLTÉS)&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|UNEXPECTED_CURL_MESSAGE (ÉRTELMEZHETETLEN_ÜZENET)&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|UNABLE_TO_CONNECT (SIKERTELEN_CSATLAKOZÁS)&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|UNABLE_TO_DOWNLOAD_FILE (SIKERTELEN_FILE_LETÖLTÉS)&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|FAILED_TO_INITIALIZE_DOWNLOAD (LETÖLTÉS_ELKEZDÉSE_SIKERTELEN)&lt;br /&gt;
|}&lt;br /&gt;
===Végzetes hibák===&lt;br /&gt;
:{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width: auto; table-layout: fixed;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Kód&lt;br /&gt;
!scope=&amp;quot;col&amp;quot; class=&amp;quot;unsortable&amp;quot; | Jelentés&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|nincs játékos modell a játékban&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|nincs játékos esemény a játékban&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|szerver letöltése kikapcsolva&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|nincs játékos modell a játékos listában&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|nincs játékos a játékos listán&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|érvénytelen egyedi adat &lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|érvénytelen bitstream adat&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|rendszer egységi hiba&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|object elkészítési hiba &lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|pickup elkészítési hiba&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|jármű elkészítési hiba&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|érvénytelen csapatnév &lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|érvénytelen lua esemény&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|érvénytelen resource hosszúság&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==='Unable to enter vehicle' hibák===&lt;br /&gt;
:{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width: auto; table-layout: fixed;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Kód&lt;br /&gt;
!scope=&amp;quot;col&amp;quot; class=&amp;quot;unsortable&amp;quot; | Jelentés&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|script törölve&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|script törölve (jack)&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|más játékos már belépett&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|érvénytelen ülőhely&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|túl messze vagy&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|már autóban vagy&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|már belépsz/kilépsz&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|érvénytelen jármű (trailer - utánfutó)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Speciális: MTA Linux rendszeren==&lt;br /&gt;
Ha Linux operációs rendszer felhasználó vagy, olvasd el ezt az útmutatót: [[HU/Client_on_Linux_Manual|Kliens Linux rendszeren kézikönyv]]&lt;br /&gt;
&lt;br /&gt;
[[en:Client Manual]]&lt;br /&gt;
[[cs:Client Manual]]&lt;br /&gt;
[[es:Manual Cliente Deathmatch]]&lt;br /&gt;
[[de:MTA DM Client Anleitung]]&lt;br /&gt;
[[it:Manuale del Client]]&lt;br /&gt;
[[nl:Deathmatch Client Manual]]&lt;br /&gt;
[[ru:Deathmatch Client Manual]]&lt;br /&gt;
[[pt-br:Manual do Cliente]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Translated/Support]]&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/F%C5%91oldal&amp;diff=47479</id>
		<title>HU/Főoldal</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/F%C5%91oldal&amp;diff=47479"/>
		<updated>2016-05-13T15:49:54Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;/*border: 1px solid #D8D8D8;*/ padding-left: 15px; padding-right: 15px; height: 100%;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Mtalogo.png|left|100px|link=http://wiki.multitheftauto.com/]]'''Üdvözöllek a [[Multi Theft Auto]] wikin.''' Itt rengeteg információt találhatsz a Multi Theft Auto használatáról.&lt;br /&gt;
&lt;br /&gt;
Sok [[HU/How you can help|dologban segíthetsz Te is]], hogy fejleszd az MTA-t - készíts pályákat, játékmódokat, írj leírást, példákat a függvényekhez, írj útmutatókat, vagy csak játssz, és jelezd a hibákat amiket találtál! &lt;br /&gt;
&lt;br /&gt;
Ha bármilyen kérdésed van a scripteléssel kapcsolatban, vedd fel velünk a kapcsolatot az [[HU/Places To Chat#IRC (Internet Relay Chat) |IRC csatornánkon.]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; |&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background: #FFFCF2;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Input-gaming.png‎|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Játék&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background: #FFEEAA; border: 1px solid #FFCD19;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Go-down.png|link=http://mtasa.com/]] ''' [http://mtasa.com/ Töltsd le a Multi Theft Auto San Andreas {{Current Version|full}} - t!]'''&amp;lt;/div&amp;gt;&lt;br /&gt;
* [[HU/Client Manual | Kliens kézikönyv]]&lt;br /&gt;
&amp;lt;!-- * [[Changes_in_{{padleft:|3|{{Current Version|full}}}}| Changes in {{padleft:|3|{{Current Version|full}}}}]] --&amp;gt;&lt;br /&gt;
* [[HU/Changes_in_{{padleft:|5|{{Current Version|full}}}}| Változtatások az {{padleft:|5|{{Current Version|full}}}} verzióban]]&lt;br /&gt;
* [[HU/Known_Issues_-_FAQ|Ismert problémák]]&lt;br /&gt;
* [[HU/Upgrading_from_MTA:Race|MTA:Race frissítése MTA:SA {{padleft:|3|{{Current Version|full}}}} -ra ]]&lt;br /&gt;
* [[HU/Server Manual|Szerver kézikönyv]]&lt;br /&gt;
* [[HU/Map manager|Map Manager]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Map Editor&amp;lt;/h3&amp;gt;&lt;br /&gt;
*[[HU/Resource:Editor|Kézikönyv]]&lt;br /&gt;
*[[HU/Resource:Editor/EDF|EDF (leírás) fájlok]]&lt;br /&gt;
*[[HU/Resource:Editor/Plugins|Pluginok]]&lt;br /&gt;
*[[HU/Resource:Editor#FAQ|Gyakran Ismételt Kérdések]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Package-x-generic.png‎|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Adatbázisok&amp;lt;/h3&amp;gt;&lt;br /&gt;
Az alábbi oldalakból megtudhatod mire képes a Lua az MTA-ban.&lt;br /&gt;
* [[HU/:Category:Resource|Resource katalógus]] - Igazán jól működő scriptek készítéséhez érdemes áttanulmányozni őket&lt;br /&gt;
* [[HU/Client side scripts|Kliens oldali scriptek]] &lt;br /&gt;
* [[HU/Modules|Modulok]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Applications-development.png‎‎‎|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;A Multi Theft Auto fejlesztése&amp;lt;/h3&amp;gt;&lt;br /&gt;
[[File:Go-down.png|link=http://nightly.mtasa.com/]] [http://nightly.mtasa.com/ Fejlesztői verzió]&lt;br /&gt;
* [[HU/Compiling_MTASA|MTA SA fordítása Windowson]]&lt;br /&gt;
* [[HU/Building_MTASA_Server_on_Mac_OS_X|MTA SA fordítása Linuxon]]&lt;br /&gt;
* [[HU/Building_MTASA_Server_on_GNU_Linux|MTA SA fordítása GNU/Linux rendszeren]]&lt;br /&gt;
* [[HU/Coding guidelines|Kódolási útmutató]]&lt;br /&gt;
* [http://code.google.com/p/mtasa-blue Google Code SVN]&lt;br /&gt;
* [[HU/Roadmap|Tervezet]]&lt;br /&gt;
* [http://bugs.mtasa.com/ Hibák]&lt;br /&gt;
* [[HU/Branches|Fejlesztési ágazatok]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Applications-office.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Wiki - Hogyan segíthetsz&amp;lt;/h3&amp;gt;&lt;br /&gt;
* EGészítsd ki a [[HU/:Category:Incomplete|függvények hiányos leírású oldalát]].&lt;br /&gt;
* [[HU/:Category:Needs_Example |Írj példákat függvények használatára]].&lt;br /&gt;
* Ellenőrizd az [[HU/:Category:Needs Checking|ellenőrzésre váró lapokat]].&lt;br /&gt;
* Írj útmutatókat&lt;br /&gt;
* Fordíts wiki lapokat&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Internet-group-chat.png‎|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Közösség&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [http://forum.multitheftauto.com/ Fórum]&lt;br /&gt;
* IRC: [irc://irc.multitheftauto.com/mta irc.multitheftauto.com #mta]&lt;br /&gt;
* [http://community.mtasa.com/ MTA Community] - Ossz meg és tölts le resourceokat!&lt;br /&gt;
* [http://twitter.com/#!/MTAQA/ Twitter] - [http://www.youtube.com/user/MTAQA Youtube] - [http://plus.google.com/102014133442331779727/ Google+] - [http://www.moddb.com/mods/multi-theft-auto-san-andreas ModDB]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Accessories-text-editor.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Scriptelés&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[HU/Scripting Introduction|Bevezetés a scriptelésbe]]&lt;br /&gt;
* [[HU/Introduction to Scripting the GUI|Bevezetés a GUI készítésébe]]&lt;br /&gt;
* [[HU/Debugging|Hibakeresés]] - Találd meg a hibát a kódodban&lt;br /&gt;
* [[HU/Resources|Bevezetés a Resourceokba]]&lt;br /&gt;
** [[HU/Resource Web Access|Resource Web Hozzáférés]] - Internet elérése&lt;br /&gt;
** [[HU/:Category:Resource|Resource katalógus]]&lt;br /&gt;
** [[HU/Meta.xml|Meta.xml]] - Minden resource alapja&lt;br /&gt;
** [[HU/ACL]] - A megfelelő jogok meghatározása az összetettebb kódokhoz elengedhetetlen&lt;br /&gt;
* [[HU/Writing_Gamemodes|Játékmódok írása]]&lt;br /&gt;
* [[HU/Useful_Functions|Hasznos függvények]]&lt;br /&gt;
* [http://forum.mtasa.com/viewtopic.php?f=13&amp;amp;t=29363 Offline Wiki Másolatok]&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:start-here.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Általános Lua Segítség&amp;lt;/h3&amp;gt;&lt;br /&gt;
Oldalak a Lua megértésehez:&lt;br /&gt;
*[http://www.lua.org/pil/index.html &amp;quot;Lua Programozás&amp;quot; Kézikönyv]&lt;br /&gt;
**[http://www.lua.org/manual/5.1/#index Lua belső/beépített függvények]&lt;br /&gt;
*[http://lua-users.org/wiki/TutorialDirectory Lua Wiki]&lt;br /&gt;
*[http://nixstaller.berlios.de/manual/0.2/nixstaller_9.html Nixstaller Lua útmutatója]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background:#F2F2FF;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:Preferences-system.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Referenciák&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[HU/Client Scripting Functions|Kliens-oldali függvények]]&lt;br /&gt;
* [[HU/Client Scripting Events|Kliens-oldali események]]&lt;br /&gt;
* [[HU/Server Scripting Functions|Szerver-oldali függvények]]&lt;br /&gt;
* [[HU/Server Scripting Events|Szerver-oldali események]]&lt;br /&gt;
&amp;lt;!-- Incomplete * [[Module functions|Server-side external module scripting functions list]] --&amp;gt;&lt;br /&gt;
* [[HU/MTA Classes|MTA Osztályok]] - MTA osztályok részletes leírása&lt;br /&gt;
** [[HU/Element|MTA Elemek]] / [[HU/Element tree|Element ágak]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;[[File:System-file-manager.png|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;[[HU/Id|ID Lista]]&amp;lt;/h3&amp;gt;&lt;br /&gt;
*[[HU/Animations|Animációk]]&lt;br /&gt;
*[[HU/Character Skins|Karakter skinek]]&lt;br /&gt;
*[[HU/CJ_Clothes|CJ Ruhái]]&lt;br /&gt;
*[[HU/Garage|Garázs ID lista]]&lt;br /&gt;
*[[HU/Interior IDs|Interiorok]]&lt;br /&gt;
*[[HU/Material IDs|Material]]&lt;br /&gt;
*[[HU/Projectiles|Lövedékek]]&lt;br /&gt;
*[[HU/Radar Blips|Radar jelzések]]&lt;br /&gt;
*[[HU/Sounds|Hang]]&lt;br /&gt;
*[[HU/Vehicle IDs|Járművek]]&lt;br /&gt;
*[[HU/Vehicle Colors|Jármű színek]]&lt;br /&gt;
*[[HU/Vehicle Upgrades|Jármű fejlesztések]]&lt;br /&gt;
*[[HU/Vehicle variants|Járművek egyedi tulajdonságai]]&lt;br /&gt;
*[[HU/Vehicle component manipulation|Jármű komponens változtatások]]&lt;br /&gt;
*[[HU/Weapons|Fegyverek]]&lt;br /&gt;
*[[HU/Weather|Időjárás]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:4px 8px 8px 8px; margin:10px;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Osi symbol.png|75px|link=http://opensource.org/|left]]&lt;br /&gt;
A '''Multi Theft Auto''' '''nyílt forráskódú'''. &lt;br /&gt;
&amp;lt;br/&amp;gt;Ez azt jelenti, hogy a játékot bárki jobbá teheti!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding-left: 15px; padding-right: 15px;&amp;quot; class=&amp;quot;plainlinks&amp;quot;&amp;gt;&lt;br /&gt;
[[File:MTALogo_8ball.png|left|85px|link=Archive]]&lt;br /&gt;
&amp;lt;ul style=&amp;quot;list-style: none; width: 200px; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;'''A [[Multi Theft Auto]] - ról'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[Archive|Archívum]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[Press Coverage|Sajtó]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[http://code.google.com/p/mtasa-blue/people/list Fejlesztők]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;list-style: none; width: 200px; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;'''Multi Theft Auto 0.5'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[Archive#Multi_Theft_Auto_0.5|Letöltés]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[MTA 0.5r2 Known Issues|Ismert hibák]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;list-style: none; width: 200px; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;'''Wiki Statisztikák'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;{{NUMBEROFARTICLES}} cikk&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;{{NUMBEROFPAGES}} oldal&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;{{NUMBEROFUSERS}} regisztrált felhasználó&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
__NOEDITSECTION__&lt;br /&gt;
{{Languages list|en}}&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Debugging&amp;diff=47478</id>
		<title>HU/Debugging</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Debugging&amp;diff=47478"/>
		<updated>2016-05-13T15:47:57Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Debugging&amp;diff=47477</id>
		<title>HU/Debugging</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Debugging&amp;diff=47477"/>
		<updated>2016-05-13T15:47:18Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{delete | I'll do it later}}&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=HU/Debugging&amp;diff=47476</id>
		<title>HU/Debugging</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=HU/Debugging&amp;diff=47476"/>
		<updated>2016-05-13T15:46:46Z</updated>

		<summary type="html">&lt;p&gt;MTANeXuS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{db-author}}&lt;/div&gt;</summary>
		<author><name>MTANeXuS</name></author>
	</entry>
</feed>