Guest Nezar Posted February 10, 2011 Share Posted February 10, 2011 Хочу написать маленький аддон. Но как то не очень получается. Мне проще разбираться на готовых примерах - но тут они очень сложные. Даже банальный вывод часов и таймера на экран связан с графикой и.т.п. непонятными мне пока функциями. Поэтому у меня просьба к гуру, которая особо не должна их обременить. Напишите готовый маленький аддон который просто текстом слева окна игры выводит системное время, а ниже показывает полученный в текущий момент опыт. И все. без каких либо наворотов и плюшек. Спасибо! Quote Link to comment Share on other sites More sharing options...
Nikon Posted February 10, 2011 Share Posted February 10, 2011 Разбирайся с примерами в \data\Mods\SampleAddons\ Берешь, к примеру, папку SampleZoneAnnounce и кидаешь ее в \data\Mods\Addons + читай прикрепленные темы Quote: Даже банальный вывод часов и таймера на экран связан с графикой и.т.п. непонятными мне пока функциями. Даже банальное "выводит системное время, а ниже показывает полученный в текущий момент опыт." будет связано с графикой и т.п. и с непонятными(возможно) тебе пока функциями Quote Link to comment Share on other sites More sharing options...
Guest Nezar Posted February 10, 2011 Share Posted February 10, 2011 я понятия не имею что делает аддон SampleZoneAnnounce - поэтому и не знаю что мне в нем искать. написать на экране число каким то шрифтом в любом аддоне связано с графикой? Quote Link to comment Share on other sites More sharing options...
Nikon Posted February 10, 2011 Share Posted February 10, 2011 Quote: понятия не имею что делает аддон SampleZoneAnnounce А я тебе и предлагаю узнать это. Ты вроде хотел чему то научиться? На примерахQuote: написать на экране число каким то шрифтом в любом аддоне связано с графикой? Ну, если графикой считать создание-размещение виджетов(текст тоже куда то надо помещать) - даИз ресурсов клиента пользовательским аддонам абсолютно ничего нельзя брать Quote Link to comment Share on other sites More sharing options...
Guest Nezar Posted February 10, 2011 Share Posted February 10, 2011 для любого примера должно быть описание. хотя-бы того что он делает. а если тупо смотреть в код без малейшего понимания его работы и его назначения - то так ничему не научишься. я так понимаю Вы профи в написании аддонов. Хорошо когда есть знающие люди готовые помочь... Quote Link to comment Share on other sites More sharing options...
Nikon Posted February 10, 2011 Share Posted February 10, 2011 Quote: Хорошо когда есть знающие люди готовые помочь... Хорошо когда есть люди, желающие чему то научиться....За вас не только прожевать - еще и проглотить? Quote Link to comment Share on other sites More sharing options...
SLA Posted February 10, 2011 Share Posted February 10, 2011 Quote: для любого примера должно быть описание. хотя-бы того что он делает. Из Allods Online\data\Mods\Docs\ModdingDocuments.zip\Creating.html:Quote: SampleZoneAnnounce Дополнение data\Mods\SampleAddons\SampleZoneAnnounce. Пример, выводящий уведомление о переходе игрока в другую зону. Показывает возможность отключения оригинального интерфейса игры с аналогичной функциональностью. Но , перед тем, как читать этот ModdingDocuments.zip, как правильно заметил Nikon, лучше начать с прикреплённой темы "Как сделать свой аддон" - эта тема как раз для новичков. Quote Link to comment Share on other sites More sharing options...
Guest Nezar Posted February 10, 2011 Share Posted February 10, 2011 а что вы уже прожевали? Quote Link to comment Share on other sites More sharing options...
Guest Nezar Posted February 10, 2011 Share Posted February 10, 2011 я просмотрел эту тему. с нее и начал. и с документации ModdingDocuments но перечень функций это замечательно, особенно когда есть нормальные примеры. А когда их нет, то это просто перечень... Это похоже на приготовление торта, который ты не можешь попробовать и не знаешь рецепта. За описание - спасибо. Упустил я его. Quote Link to comment Share on other sites More sharing options...
Guest mehael Posted February 11, 2011 Share Posted February 11, 2011 Есть достаточно простые аддоны, работающие без использования интерфейса: AutoPetAttack AutoAcceptInvite Почти все аддоны (код) упрощенно построены по схеме: Code: function OnEventSample( params ) -- начало функции, params - таблица с полученными от события данными--тут мы что-нибудь получаем в переменные с помощью функций --и что-нибудь делаем с переменными end -- конец функции common.RegisterEventHandler( OnEventSample, "EVENT_SAMPLE" ) -- Когда сработает "EVENT_SAMPLE" запустить функцию OnEventSample Реальные пример (пересказ кода AutoAcceptInvite) : Code: -- то, что написано после двух черточек не читается компилятором = комментарий = что хочу, то пишу-- EVENT HANDLERS (События) function GimmeParty( params ) -- Функция GimmeParty -- ( Пригласили в пати ) group.Accept() -- Автоматом согласиться (в API есть описание функции) MaybeCloseMsgboxes() -- запустить функцию MaybeCloseMsgboxes() end -- конец функции function GimmeRaid( params ) -- Пригласили в рейд raid.Accept() -- Принять приглашение MaybeCloseMsgboxes() -- запустить MaybeCloseMsgboxes() end function GimmeQuest( params ) -- Делятся квестом. В переменной params лежат пришедшие данные(params.shareId - Id квеста, которым делятся) avatar.AcceptShareQuest( params.shareId ) -- Принимаем квест с ID равным params.shareId .. (смотри API по "AcceptShareQuest") MaybeCloseMsgboxes() -- запустить MaybeCloseMsgboxes() end function MaybeCloseMsgboxes() -- функция MaybeCloseMsgboxes() - выключает появившиеся от приглашений в пати\рейд\квест окошки common.StateUnloadManagedAddon( "ContextUniMessageBox" ) -- Выгрузить стандартный аддон "ContextUniMessageBox" common.StateLoadManagedAddon( "ContextUniMessageBox" ) -- А теперь загрузить по новой стандартный аддон "ContextUniMessageBox" end -- INITIALIZATION (Старт аддона) common.RegisterEventHandler( GimmeParty, "EVENT_GROUP_INVITE" ) -- Если приглашают в группу, (можешь найти справку по "EVENT_GROUP_INVITE" и по "RegisterEventHandler" в Lua API от Нивала ) запустить функцию GimmeParty common.RegisterEventHandler( GimmeRaid, "EVENT_RAID_INVITE" ) -- Если происходит событие "EVENT_RAID_INVITE" (приглашают в рейд) включить функцию GimmeRaid common.RegisterEventHandler( GimmeQuest, "EVENT_QUEST_SHARE_INVITATION" ) --- Если "EVENT_QUEST_SHARE_INVITATION", запустить GimmeQuest Уф.. много букаф) В любом случае API читать придется.. много. PS не забывай про Ctrl+F .. Quote Link to comment Share on other sites More sharing options...
Guest Nezar Posted February 11, 2011 Share Posted February 11, 2011 спасибо! я с Lua немного знаком. даже написал на нем пару программок для "кражи" данных с гугл и яндекс карт. но здесь все совсем по другому( Пошел разбираться. Quote Link to comment Share on other sites More sharing options...
Recommended Posts