05:07
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 1
  • 1
Модератор форума: AXE, PrettySweetie  
Переход с Pawno на Lua. Часть 2
PrettySweetieДата: Четверг, 14.04.2011, 19:00 | Сообщение # 1
Местный
Группа: Продвинутые
Сообщений: 704
Награды: 19
Город: Нериак
Репутация: 1221
Замечания: 0%
Статус:
Переход с Pawno на Lua. Часть 2 — ресурсы.

В МТА вместо gamemode и fliterscripts используются resources. Можно сказать, что каждый ресурс — это отдельный gamemode. В ресурсах и есть одно из главных преимуществ МТА, над SAMP, это увеличивает расширяемость мода. Например, откройте мод Sweetie Role Play версии 1.1 или выше, дак там весь мод раскидан по отдельным ресурсам, новая система — новый ресурс.
Но, давайте разберемся на примере что же такое ресурс в МТА.

Откройте папку, куда установилось ваше МТА (у меня, например, эта папка находится в D:\Games (x86)\MTA San Andreas).

Еще хочу сразу сказать: давайте разделим понятия ресурс и скрипт. Пусть скрипт — это будет сама выполняемая часть (проще говоря — код), а ресурс — это все файлы скрипта, ну как то так, надеюсь вы меня поняли;)

Далее переходим в папку server, потом mods, затем deathmatch, и, наконец, resources.

Здесь вы видите кучу папок и архивов. Те, кто пользуется редактором карт МТА, наверное, уже знакомы с этой папкой. Откроем папку admin (если у вас её нету, то просто распакуйте архив admin, который можно скачать по ссылке, данной ниже).

В этом ресурсе мы видим несколько файлов и папок.
Сейчас нам пригодится только meta.xml
Это файл, который группирует все части ресурса, как бы настраивает и загружает его.
Давайте откроем meta.xml (Прав. Кнопкой мыши по нему и дальше — изменить).
Разберем что в нем написано.
<info – информация о ресурсе.
<!-- - комментарии, --> - закрытие комментариев

Code
<script src="server/admin_serverjoiner.lua" />
- информация о том, что файл admin_serverjoiner.lua, который находится в папке server (этого ресурса), используется в этом ресурсе, и его надо загрузить.
У некоторых <script> есть еще и type="client" или type="server". Это означает, что скрипт относится к клиентской части или к серверной (о клиентском и серверном коде поговорим потом).

Вообще, на wiki МТА достаточно подробно описано строение файла meta.xml, поэтому подробнее не будем углубляться.

Еще в этом уроке я хочу остановиться на одной интересной фиче, без которой вся эта чехарда с отдельными ресурсами не имела бы смысла. Вы можете вызывать функции одного ресурса из разных ресурсов. Для этого используется одна из этих функций:

Code
call ( getResourceFromName ( "имя ресурса" ), "функция", аргументы )   
exports.имяресурса:функция ( аргументы )

(сами выбирайте какая вам больше понравится, я обычно использую вторую).

Для того, что бы можно было использовать эти функции, надо в файле meta.xml того ресурса, функция которого используется, добавить вот это:

Code
<export function="функция"/>

Смотрите пример:

Ресурс houses, файл meta.xml:

Code
<meta>
   <info author="PrettySweetie" name="House System" version="1.3"/>

   <script src="house_main.lua"/>
   <script src="house_commands.lua"/>
   <script src="house_client.lua" type="client"/>
   <export function="getHouse"/>
   <export function="getMaxHouses"/>
   <export function="enterHouse"/>
   <export function="toHouse"/>
</meta>

Файл скрипта:

Code
function getHouse ( house )
   return housepickup[house]
end

Теперь из ресурса admin воспользуемся такой функцией:
exports.houses:getHouse ( 1 )

И в ответ получим результат этой функции, выполненной в ресурсе houses.

Вот и все, но, если хотите укрепить свои знания, полученные во время прочтения этого урока, попробуйте понять, что же написано вот в этом xml файле и отошлите мне ответ в лс:

Code
<meta>
       <info author="PrettySweetie" name="Server" type="gamemode" version="1.3"/>

       <script src="script.lua" />
       <script src="chat_system.lua" />
       <script src="phone_system.lua" />

       <script src="client/main.lua" type="client" />

       <include resource="buildings" />
       <include resource="busineses" />
       <include resource="cars" />
       <include resource="factions" />
       <include resource="houses" />

       <file src="ServerProp.xml" type="server" />

       <export function="playerToPoint"/>
       <export function="sendClientActionMessage"/>

       <map src="sweetiemap/sweetiemap.map" />

</meta>

Ссылки:
admin.zip - http://www.onlinedisk.ru/file/645188/
meta.xml на wiki - http://wiki.multitheftauto.com/wiki/RU/Meta.xml
Все о ресурсах на wiki - http://wiki.multitheftauto.com/wiki/RU/Resources
Описание использования и настройки всех стандартных ресурсов - http://wiki.multitheftauto.com/wiki/Category:RU/Resource

P.S. Этот, и все остальные мои уроки написанны так, как я понимаю Lua и как мне удобно в нем работать




Сообщение отредактировал Wolf_War - Четверг, 14.04.2011, 19:00
VantageДата: Суббота, 28.05.2011, 21:25 | Сообщение # 2
Уважаемый человек
Группа: Пользователи
Сообщений: 974
Награды: 8
Город: -=Los Santos The Best=-
Репутация: 467
Замечания: 80%
Статус:
Не знаю копипаст или нет но полезно давай еще)


..



Мои работы:
[GM]Ls:Rus TDM v1.0 | [GM]Ls:Rus TDM v1.2 | [GM]Ls:Rus TDM v1.3(1%)[blink]|[/blink]
[FS]Rampa

EzonДата: Пятница, 07.03.2014, 14:33 | Сообщение # 3
Освоившийся
Группа: Продвинутые
Сообщений: 136
Награды: 0
Репутация: 31
Замечания: 0%
Статус:
Не копипаст, вот отсюда скопировали текст 100%


Если хочешь быть как я - ошибка в том, что ты хочешь быть как кто-то. Я никогда не на кого не ровняюсь.
  • Страница 1 из 1
  • 1
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua