• Страница 1 из 1
  • 1
Создание слэш команд с индексом
Nyll
Здравствуйте дамы и господа. В этом гайде я научу вас как делать команды с индексом (подкомандами).



Для примера мы создадим команду /speed on, /speed off
Эта команда будет включать и отключать скорость (работает тока если ты гм)

Для начала мы создадим папку, в которой будет наш аддон. Папку назовем SpeedGM.

В папке создаем файл toc, и называем его speedgm.toc
В нем пишем:

Code
## Interface: 40200
## Title: SpeedGM
## Author: Nyll
## Version: 1.1
## Notes: Speed Addon v.1.1
## eMail: @wowjp.net
## URL: wowjp.net

speedgm.lua
speedgm.xml


Теперь я расскажу вам что значит этот код

Code
## Interface: 40200

  • Версия игры, в нашем случаи 4.2.0

    Code
    ## Title: SpeedGM

  • Название аддона

    Code
    ## Author: Nyll

  • Автор аддона

    Code
    ## Version: 1.1

  • Версия аддона

    Code
    ## Notes: Speed Addon v.1.1

  • Описание аддона

    Code
    ## eMail: @wowjp.net

  • Email Автора

    Code
    ## URL: wowjp.net

  • Сайт Автора




    Теперь создаем xml, файл. И называем файл SpeedGM.xml.
    Открываем его нотпадом и пишем

    Code
    <Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/ ..\..\FrameXML\UI.xsd">
    <Frame name="flood_Frame">
            <Scripts>
                <onLoad>
                   AddOn_Init()       
                </onLoad>
                <onEvent>
                   if(event == "UNIT_COMBAT") then       
                   CombatEnter(...)       
                   end
                </onEvent>
             </Scripts>
    </Frame>
    </Ui>





    Теперь можем приступить к lua, файлу. Создаем lua, файл и называем его speedgm.lua.
    Открываем его нотпадом и пишем:

    Code
    function AddOn_Init()       
    SLASH_SPEEDS1 ="/speed"; -- регистрация слэш команды
             SlashCmdList["SPEEDS"] = Flood_handler --подключаем обработчик нашей команды
    flood_Frame:RegisterEvent("UNIT_COMBAT")         
    end

    function Flood_handler( msg, box)
    msg = msg:lower()
    if( not msg or msg == "" or msg == "help" ) then
    DEFAULT_CHAT_FRAME:AddMessage("Speed Использование:",0.1,0.7,0.3);
    DEFAULT_CHAT_FRAME:AddMessage("   /speed on - включает Быстрый бег",0.1,0.7,0.3);
    DEFAULT_CHAT_FRAME:AddMessage("   /speed off - выключает Быстрый бег",0.1,0.7,0.3);
    elseif (msg == "on") then -- если включаем
             en_=1 -- установление флага в 1
             SendChatMessage(".mod aspeed 10");
             elseif (msg == "off") then -- если отключаем
             en_=0 -- установление флага в 0
             SendChatMessage(".mod aspeed 1");
             elseif(msg == "list") then -- список сообщений
                for i=1,MAX_MISS_TEXT do -- в цикле выводим список сообщений
                DEFAULT_CHAT_FRAME:AddMessage(miss_array[i],0.1,0.7,0.3);
                end
             end

    end


    Как вы могли увидеть я добавил комментарии к коду.
    Сейчас мы рассмотрим пару строк кода.

    Code
    function AddOn_Init()

  • Создание функции

    Code
    SLASH_SPEEDS1 ="/speed";

  • Регистрируем слеш команду

    Code
    SlashCmdList["SPEEDS"] = Flood_handler

  • Обработчик нашей слеш команды

    Code
    function Flood_handler( msg, box)

  • Создание функции

    Code
    DEFAULT_CHAT_FRAME:AddMessage("Speed Использование:",0.1,0.7,0.3);
    DEFAULT_CHAT_FRAME:AddMessage("   /speed on - включает Быстрый бег",0.1,0.7,0.3);
    DEFAULT_CHAT_FRAME:AddMessage("   /speed off - выключает Быстрый бег",0.1,0.7,0.3);

  • Вывод помощи при вводе команды /speed

    Code
    elseif (msg == "off")

  • Создаем подкоманду "off"

    Code
    elseif (msg == "on")

  • Создаем подкоманду "on"

    Code
    SendChatMessage(".mod aspeed 10");

  • Пишет в чат команду ".mod aspeed 10", при вводе /speed on

    Code
    SendChatMessage(".mod aspeed 1");

  • Пишет в чат команду ".mod aspeed 1", при вводе /speed off

    Далее сохраняем документ, и все наш аддон готов!
    p.s Пример создан для гмов и работает только если вы гм-мастер!

    Вот исходник того аддона который мы сегодня сделали:

    [download]SpeedGM - для WoW 4.2[/download]
  • Прикрепления: 0430981.png (140.0 Kb)
    Маме беркута привет!
    Сообщение # 1 отредактировано Nyll - Пятница, 24.02.2012, 12:20
    Asirizs
    <<<mrA$iriz>>>
    Nyll, хороший гайд уже создал аддон для ся)
    Сообщение # 2 написано 26.09.2011 в 19:57
    Exteam123
    Скаут
    я его в аддоны кинул и в вов ввожу /speed on и пишет введите /помощь... я на варлайфе делал
    ™†MoNsTeR-KiLLeR†™
    Сообщение # 3 написано 05.07.2012 в 20:01
    • Страница 1 из 1
    • 1
    Поиск: