|
Форум Обсуждение аддонов Разработка аддонов WoW Отправка текста в чат из поля в аддоне |
Отправка текста в чат из поля в аддоне |
Здравствуйте, сегодня мы будем делать аддон, который отправляет текст из поля для ввода в чат, при нажатии на кнопку. Этот аддон будет состоять из lua и xml файла.
Полезные ссылки: Инструкция по созданию toc файла - тык Ссылка на предыдущие статью - тык Скачать notepad++ - тык API функции - тык Создаем папку для аддон, и называем ее как угодно(Я назову ее, myaddon). В этой папке создаем 3, файла: myaddon.toc(измените название этого файла в название вашей папки), myaddon.lua и myaddon.xml. Теперь откроем файл lua, изменяем кодировку на UTF-8, и пишем туда следующий код: Code function out(text) DEFAULT_CHAT_FRAME:AddMessage(text); end function outHUD(text) UIErrorsFrame:AddMessage(text, 1.0, 1.0, 0, 1,10); end function outERROR(text) DEFAULT_CHAT_FRAME:AddMessage(text, 1.0, 0.0, 0.0, 1.0); UIErrorsFrame:AddMessage(text, 1.0, 1.0, 0, 1,10); end function outPM(text,recipient) SendChatMessage(text, "WHISPER", nil,recipient); end function outPMSET(text,lang, recipient) SendChatMessage(text, "WHISPER", lang ,recipient); end function outSAY(text) SendChatMessage(text, "SAY", nil,nil); end function outSYS(text) DEFAULT_CHAT_FRAME:AddMessage(text, 1.0, 1.0, 0, 0); end function outNotes(text) SendChatMessage(text, "CHANNEL", nil, chanNum); end function outMESS(text,name) MessengerMainFrame:AddMessage(text); end function wowjp() texts = name:GetText(); outSAY(""..texts..""); end Теперь я объясню, что значат эти строки. Code function out(text) DEFAULT_CHAT_FRAME:AddMessage(text); end function outHUD(text) UIErrorsFrame:AddMessage(text, 1.0, 1.0, 0, 1,10); end function outERROR(text) DEFAULT_CHAT_FRAME:AddMessage(text, 1.0, 0.0, 0.0, 1.0); UIErrorsFrame:AddMessage(text, 1.0, 1.0, 0, 1,10); end function outPM(text,recipient) SendChatMessage(text, "WHISPER", nil,recipient); end function outPMSET(text,lang, recipient) SendChatMessage(text, "WHISPER", lang ,recipient); end function outSAY(text) SendChatMessage(text, "SAY", nil,nil); end function outSYS(text) DEFAULT_CHAT_FRAME:AddMessage(text, 1.0, 1.0, 0, 0); end function outNotes(text) SendChatMessage(text, "CHANNEL", nil, chanNum); end function outMESS(text,name) MessengerMainFrame:AddMessage(text); end Это так сказать "Изменение стандартных чат функций" например: Была у нас функция SendChatMessage, из нее мы сделали функцию outSAY, так легчи будет нам писать код Code function outSAY(text) SendChatMessage(text, "SAY", nil,nil); end Код: Code function wowjp() texts = name:GetText(); outSAY(""..texts..""); end Это так сказать обработчик, который принимает и отправляет сообщение в чат. Code function wowjp() Функция Code texts = name:GetText(); Перезаправка сообщение на "..texts.." и создание "..texts.." Code outSAY(""..texts..""); Отправка сообщения в чат Теперь откроем файл xml, и пишем туда: Code <Ui xmlns="http://www.blizzard.com/wow/ui" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <!--Autogenerated by wowuides, Version=1.0.300.0, Culture=neutral, PublicKeyToken=null--> <Frame name="MangAdminForm32" movable="true" enableMouse="true" clampedToScreen="true"> <!--<FrameSkin skinid="dcb143e1-a4ab-4e7c-b934-1efa40101d21" frameid="2d508883-59c2-4f83-ae10-27aaad48391b" />--> <Size> <AbsDimension x="371" y="95" /> </Size> <Anchors> <Anchor point="CENTER" relativeTo="UIParent"> <Offset> <AbsDimension x="0" y="0" /> </Offset> </Anchor> </Anchors> <TitleRegion setAllPoints="true" /> <Layers> <Layer> </Layer> </Layers> <Frames> <Frame name="$parentPanel1"> <Size> <AbsDimension x="327" y="95" /> </Size> <Anchors> <Anchor point="TOPLEFT"> <Offset> <AbsDimension x="41" y="-59" /> </Offset> </Anchor> </Anchors> <Backdrop bgFile="Interface\Buttons\UI-SliderBar-Background" edgeFile="Interface\Buttons\UI-SliderBar-Border" tile="false"> <BackgroundInsets> <AbsInset left="3" right="3" top="6" bottom="6" /> </BackgroundInsets> <TileSize> <AbsValue val="8" /> </TileSize> <EdgeSize> <AbsValue val="8" /> </EdgeSize> </Backdrop> <Frames> <Button name="$parentButton1" text="Отправить"> <Size> <AbsDimension x="145" y="30" /> </Size> <Anchors> <Anchor point="TOPLEFT"> <Offset> <AbsDimension x="19" y="-49" /> </Offset> </Anchor> </Anchors> <Scripts> <OnClick>wowjp() </OnClick> </Scripts> <NormalTexture file="Interface\Buttons\UI-Panel-Button-Up"> <TexCoords left="0" right="0.625" top="0" bottom="0.6875" /> </NormalTexture> <PushedTexture file="Interface\Buttons\UI-Panel-Button-Down"> <TexCoords left="0" right="0.625" top="0" bottom="0.6875" /> </PushedTexture> <DisabledTexture file="Interface\Buttons\UI-Panel-Button-Disabled"> <TexCoords left="0" right="0.625" top="0" bottom="0.6875" /> </DisabledTexture> <HighlightTexture file="Interface\Buttons\UI-Panel-Button-Highlight" alphaMode="ADD"> <TexCoords left="0" right="0.625" top="0" bottom="0.6875" /> </HighlightTexture> <ButtonText name="$parentText"> <Anchors> <Anchor point="CENTER"> <Offset> <AbsDimension x="0" y="1" /> </Offset> </Anchor> </Anchors> <FontHeight> <AbsValue val="10" /> </FontHeight> </ButtonText> <NormalFont style="GameFontNormal" /> <HighlightFont style="GameFontHighlight" /> <DisabledFont style="GameFontDisable" /> <PushedTextOffset x="0" y="0" /> </Button> <EditBox name="name" enableMouse="true"> <Size> <AbsDimension x="269" y="22" /> </Size> <Anchors> <Anchor point="TOPLEFT"> <Offset> <AbsDimension x="19" y="-21" /> </Offset> </Anchor> </Anchors> <Layers> <Layer level="BACKGROUND"> <Texture name="$parentLeft" file="Interface\Common\Common-Input-Border"> <Size> <AbsDimension x="8" y="20" /> </Size> <Anchors> <Anchor point="LEFT" /> </Anchors> <TexCoords left="0" right="0.0625" top="0" bottom="0.625" /> </Texture> <Texture name="$parentRight" file="Interface\Common\Common-Input-Border"> <Size> <AbsDimension x="8" y="20" /> </Size> <Anchors> <Anchor point="RIGHT" /> </Anchors> <TexCoords left="0.9375" right="1" top="0" bottom="0.625" /> </Texture> <Texture name="$parentMiddle" file="Interface\Common\Common-Input-Border"> <Size> <AbsDimension x="10" y="20" /> </Size> <Anchors> <Anchor point="LEFT" relativeTo="$parentLeft" relativePoint="RIGHT" /> <Anchor point="RIGHT" relativeTo="$parentRight" relativePoint="LEFT" /> </Anchors> <TexCoords left="0.0625" right="0.9375" top="0" bottom="0.625" /> </Texture> </Layer> </Layers> <FontString font="Fonts\ARIALN.TTF"> <FontHeight> <AbsValue val="14" /> </FontHeight> <Color r="1" g="1" b="1" /> <Shadow> <Color r="0" g="0" b="0" /> <Offset> <AbsDimension x="1" y="-1" /> </Offset> </Shadow> </FontString> </EditBox> </Frames> </Frame> <Frame name="$parentTexture1"> <!--<FrameSkin skinid="f15d4970-d66d-444e-bb2d-1ad102c87fed" frameid="f15d4979-d66d-444e-bb2d-1ad102c87fed" />--> <Size> <AbsDimension x="348" y="207" /> </Size> <Anchors> <Anchor point="TOPLEFT"> <Offset> <AbsDimension x="12" y="-20" /> </Offset> </Anchor> </Anchors> <Layers> <Layer> </Layer> </Layers> </Frame> </Frames> </Frame> </Ui> Теперь я вам расскажу значение очень важных для нас строк. Code <Size> <AbsDimension x="327" y="95" /> </Size> Установка размера окна. Code <Offset> <AbsDimension x="41" y="-59" /> </Offset> Позиция окна(в координатах) Code <Backdrop bgFile="Interface\Buttons\UI-SliderBar-Background" edgeFile="Interface\Buttons\UI-SliderBar-Border" tile="false"> <BackgroundInsets> <AbsInset left="3" right="3" top="6" bottom="6" /> </BackgroundInsets> <TileSize> <AbsValue val="8" /> </TileSize> <EdgeSize> <AbsValue val="8" /> </EdgeSize> </Backdrop> Скин. Code <Button name="$parentButton1" text="Отправить"> <Size> <AbsDimension x="145" y="30" /> </Size> <Anchors> <Anchor point="TOPLEFT"> <Offset> <AbsDimension x="19" y="-49" /> </Offset> </Anchor> </Anchors> <Scripts> <OnClick>wowjp() </OnClick> </Scripts> <NormalTexture file="Interface\Buttons\UI-Panel-Button-Up"> <TexCoords left="0" right="0.625" top="0" bottom="0.6875" /> </NormalTexture> <PushedTexture file="Interface\Buttons\UI-Panel-Button-Down"> <TexCoords left="0" right="0.625" top="0" bottom="0.6875" /> </PushedTexture> <DisabledTexture file="Interface\Buttons\UI-Panel-Button-Disabled"> <TexCoords left="0" right="0.625" top="0" bottom="0.6875" /> </DisabledTexture> <HighlightTexture file="Interface\Buttons\UI-Panel-Button-Highlight" alphaMode="ADD"> <TexCoords left="0" right="0.625" top="0" bottom="0.6875" /> </HighlightTexture> <ButtonText name="$parentText"> <Anchors> <Anchor point="CENTER"> <Offset> <AbsDimension x="0" y="1" /> </Offset> </Anchor> </Anchors> <FontHeight> <AbsValue val="10" /> </FontHeight> </ButtonText> <NormalFont style="GameFontNormal" /> <HighlightFont style="GameFontHighlight" /> <DisabledFont style="GameFontDisable" /> <PushedTextOffset x="0" y="0" /> </Button> Кнопка, которая посылает текст с едитбокса на наш обработчик. Code <OnClick>wowjp() </OnClick> Название нашей функции "Обработчика" Code <Button name="$parentButton1" text="Отправить"> Название кнопки Code <Size> <AbsDimension x="145" y="30" /> </Size> Размер кнопки Code <Offset> <AbsDimension x="19" y="-49" /> </Offset> Позиция кнопки в координатах. Code <EditBox name="name" enableMouse="true"> <Size> <AbsDimension x="269" y="22" /> </Size> <Anchors> <Anchor point="TOPLEFT"> <Offset> <AbsDimension x="19" y="-21" /> </Offset> </Anchor> </Anchors> <Layers> <Layer level="BACKGROUND"> <Texture name="$parentLeft" file="Interface\Common\Common-Input-Border"> <Size> <AbsDimension x="8" y="20" /> </Size> <Anchors> <Anchor point="LEFT" /> </Anchors> <TexCoords left="0" right="0.0625" top="0" bottom="0.625" /> </Texture> <Texture name="$parentRight" file="Interface\Common\Common-Input-Border"> <Size> <AbsDimension x="8" y="20" /> </Size> <Anchors> <Anchor point="RIGHT" /> </Anchors> <TexCoords left="0.9375" right="1" top="0" bottom="0.625" /> </Texture> <Texture name="$parentMiddle" file="Interface\Common\Common-Input-Border"> <Size> <AbsDimension x="10" y="20" /> </Size> <Anchors> <Anchor point="LEFT" relativeTo="$parentLeft" relativePoint="RIGHT" /> <Anchor point="RIGHT" relativeTo="$parentRight" relativePoint="LEFT" /> </Anchors> <TexCoords left="0.0625" right="0.9375" top="0" bottom="0.625" /> </Texture> </Layer> </Layers> <FontString font="Fonts\ARIALN.TTF"> <FontHeight> <AbsValue val="14" /> </FontHeight> <Color r="1" g="1" b="1" /> <Shadow> <Color r="0" g="0" b="0" /> <Offset> <AbsDimension x="1" y="-1" /> </Offset> </Shadow> </FontString> </EditBox> Наш эдитбокс Вот и все, ниже видео, о том, как это будет выглядеть в игре. [download]Addon - для WoW 3.3[/download]
Прикрепления:
4955949.png
(25.6 Kb)
Маме беркута привет!
|
Quote (TiHoN) Вопрос: "Для чего это?" Quote (Mercan) А вот аддон ни о чем! Ребят для дебилов же х) Quote Разработка аддонов изучение основ для новичков Руки работают, видят глаза. Порхай как бабочка, жаль как пчела © Мухаммед Али то что вы на свободе это не ваша заслуга,а наша не дороботка!!! |
Сделай лучше что-нибудь типо плейлиста =)А так аддон норм.
Сообщение # 8 написано 28.11.2011 в 22:03
|
На видео мой чар Самотык на увове тестовый реалм 2
Добавлено (08.04.2012, 22:23)
Сообщение # 10 написано 08.04.2012 в 22:23
|
все дело в одной строчке -_- в двух словах
вместо Code <Frame name="MangAdminForm32" movable="true" enableMouse="true" clampedToScreen="true"> надо Code <Frame name="MangAdminForm32" hidden="true" movable="true" enableMouse="true" clampedToScreen="true"> элементарно)
Сообщение # 14 написано 09.04.2012 в 01:54
|
Так-то аддон нормальный. Но есть минус: Когда создаешь нового персонажа и заходишь за него в игру, а там же сначала ролик идет.... Его пропустить нельзя и проходиться ждать... Ну а так норм.
Смерть - это стрела, пущенная в тебя, а жизнь - то мгновение, за которое она до тебя долетает.
Сообщение # 18 написано 06.08.2012 в 21:30
|
| |||
| |||