• Страница 1 из 1
  • 1
Модератор форума: Dimitro  
Уроки по созданию .LUA скриптов для WoW №2 Часть 1
citynov
Капрал
Этот урок я решил начать с создания торговцев. Сегодня я вам объясню как сделать NPC через которого вы сможете получить тот или иной предмет.

Если вы зашли суда в первый раз то ознакомьтесь с этим уроком. Что бы вам было все более понятнее.

Я сделал этот скрипт как пример.



Это будет выглядеть таким образом.



Приношу свои извинения что у меня все на английском языке. Так как мне просто лень переводить сборку на Русский язык. Тем более ArcEmu не очень хорошо поддерживает его. Ну это не суть.

Теперь давайте разберем сам скрипт.

Для начала поставьте вашему NPC флаг 128 либо 129. ( Команда в игре .npc flag 129 )

Code

function ArenaSeason_OnMenu(unit, event, player)
     unit:VendorRemoveAllItems()
     unit:GossipCreateMenu(101, player, 0)
     unit:GossipMenuAddItem(1, "Рыцарь Смерти", 1, 0)
     unit:GossipMenuAddItem(1, "Друид", 2, 0)
     unit:GossipMenuAddItem(1, "Охотник", 3, 0)
     unit:GossipMenuAddItem(1, "Маг", 4, 0)
     unit:GossipMenuAddItem(1, "Паладин", 5, 0)
     unit:GossipMenuAddItem(1, "Жрец", 6, 0)
     unit:GossipMenuAddItem(1, "Разбойник", 7, 0)
     unit:GossipMenuAddItem(1, "Шаман", 8, 0)
     unit:GossipMenuAddItem(1, "Чернокнижник", 9, 0)
     unit:GossipMenuAddItem(1, "Воин", 10, 0)
     unit:GossipMenuAddItem(2, "Выход", 11, 0)
     unit:GossipSendMenu(player)
end


Тут все предельно ясно и понятно. Объясню тока

Code

unit:VendorRemoveAllItems()


Если этого не будет в этом коде то при выборе графы, например ''Рыцарь Смерти'' то будет такая котовасия.



Как вы видите в разделе для ''Рыцаря Смерти'' есть не только вещи которые для него а так же и для Мага Охотника и т.д.

Это и помогает решить эту проблему путем обновления и распределения вещей для каждой графы.

Далее мы рассмотрим это.

Code

  if (intid == 1) then
     unit:VendorAddItem(51413, 1, 0)
     unit:VendorAddItem(51414, 1, 0)
     unit:VendorAddItem(51415, 1, 0)
     unit:VendorAddItem(51416, 1, 0)
     unit:VendorAddItem(51418, 1, 0)
     player:SendVendorWindow(unit)
  end


Code

VendorAddItem(51413, 1, 0)


Это добавляет в нпс определенный предмет. В этой скрипте он добавляет вещь 51413, 51414, 51415.... в количестве 1 штуки.
51413, 51414, 51415.... - ид предмета.
1 - Это количество.
0 - Это цена предмета по умолчанию. То есть предмет бесплатен.
Цену можно поменять на другую.

Code

player:SendVendorWindow(unit)


Если не будет этого значения он просто не откроет графу.

Ну что же для начала я думаю достаточно. Далее я покажу как его можно усовершенствовать.

Всем пока. Желаю вам удачи в создании ваших собственных скриптов.

There is nothing better than .LUA
Сообщение # 1 написано 04.10.2012 в 22:45
  • Страница 1 из 1
  • 1
Поиск: