SkyRiver Forum http://forum.skyriver.ru/ |
|
Редактор скриптов. http://forum.skyriver.ru/viewtopic.php?f=21&t=2445 |
Страница 16 из 18 |
Автор: | Панцирь [ Пт 29 янв 2010 13:33 ] |
Заголовок сообщения: | |
Цитата: WinXP Prof SP3 лицензионная. Что же делать-то...
Переустанови игру и СДК. Я сомневаюсь, что поможет. Но иногда переустановка делает чудеса. |
Автор: | Aid [ Вс 31 янв 2010 19:29 ] |
Заголовок сообщения: | |
Пока что не переустанавливал, но получилось кое-что сделать: 1. Создать меха пятого поколения валяющимся в определенной точке (а-ля LOARRAT). Правда, стоимость убеждения, даже несмотря на десятый рейтинг - нуль. 2. То же самое, но мех не пятого поколения, а выглядит как оргмодификатор. Вводил в скриптах шестое поколение Правда, контроль над всем сектором при его впихивании не устанавливается, но вытащить нельзя. Заодно узнал, что Наутилус имеет восьмое поколение. 0_о UPD1: Теперь еще один вопрос. Допустим, при входе в некое здания игроку выводится приветствие, со ссылкой в тексте. Типа "Приветствую, PLAYER. Ты находишься в приемном шлюзе подземного склада. Также я могу переправить тебя в сектор Арктики по подземным коммуникациями." При щелчке по ссылке игрок отправляется в здание B_L3_MINE1 (то бишь, в добывающую установку 1 сектора Арктики). Как это сделать? Есть подозрения, что не только с помощью редактора скриптов, но и с помощью редактора текстов. Но как? |
Автор: | Панцирь [ Ср 3 фев 2010 10:56 ] |
Заголовок сообщения: | |
Aid писал(а): Но как?
Пишешь в скриптовом редакторе примерно такое: #include "include\AIM.src" void proc OnEnterLocation(char item) { Text("TEXT.PEREPRAVA"); } void proc PEREPRAVA() { MoveToLocation("LocID"); } Компилируешь. Далее открываешь текстовый редактор, создаешь текст ТEXT.PEREPRAVA, далее в тексте пишешь: (a link = PEREPRAVA) отправиться (/a) вместо () ставь <>, Уберешь пробелы, будет работать. |
Автор: | Aid [ Сб 6 фев 2010 12:42 ] |
Заголовок сообщения: | |
Не совсем понял. В редакторе скриптов это нужно писать в отдельном файле или в файле Locations\моялокация.src? В папке locations или где-то в другом месте? |
Автор: | Панцирь [ Ср 10 фев 2010 9:15 ] |
Заголовок сообщения: | |
В локации.срс откуда собсно этот текст вылезет. |
Автор: | mrSigma [ Ср 17 мар 2010 16:55 ] |
Заголовок сообщения: | |
Почему-то не работает событие OnEnterSensor. В скрипте scripts\Locations\L8\points.src написал: Код: #include "include\AIM.cpp"
void proc OnEnterSensor(char cItem) { switch(cItem) { case "L8_QUEST": { Text("Начата запись данных..."); SetTimer("DataSaved", 0.10); } } } void proc DataSaved() { Text("Данные записаны."); } На локации создал указатель и назвал его L8_QUEST, в папке Data\CONFIG\objects создал запись L8_QUEST*=Locations\L8\points.src После всех проделанных операций, скрипт почему-то не работает. Есть идеи, почему? |
Автор: | Razum [ Ср 17 мар 2010 18:04 ] |
Заголовок сообщения: | |
В ини-файл идентификатор хелпера добавил? |
Автор: | mrSigma [ Ср 17 мар 2010 21:07 ] |
Заголовок сообщения: | |
В objects.ini добавил L8_QUEST*=Locations\L8\points.src. Больше ничего не добавлял ни в какие ini. Если можно - подскажите в какой именно ini его кидать. Добавлено спустя 34 секунды: Да и не плохо бы какой нибудь мануал по скриптизированию написать на форуме. Чтобы затрагивал все вопросы по написанию и подключению скриптов к игре. |
Автор: | Панцирь [ Чт 18 мар 2010 12:49 ] |
Заголовок сообщения: | |
mrSigma писал(а): * А это тебе зачем? mrSigma писал(а): в какой именно ini его кидать.
Больше не в какие ини не нужно ничего кидать. Ты вот эту звездочку удали лучше. И скрипт скомпилируй. Кстати, этот срипт к локации приписывается или отдельно идет? Если отдельно то работать не будет. |
Автор: | mrSigma [ Чт 18 мар 2010 14:39 ] |
Заголовок сообщения: | |
2 Панцирь Я заметил, что звездочка приписывается к названиям всяких там указателей и т.д. С ней или Без нее - скрипт не работает. Насчет компиляции - ты меня совсем за идиота держишь? И да, скрипт идет отдельно от локации. То бишь при запуске локации - скрипт loc8, а при входе в сенсор - points. Я пытался повторить то, как это сделано у разработчиков. |
Автор: | Панцирь [ Чт 18 мар 2010 14:45 ] |
Заголовок сообщения: | |
Цитата: как это сделано у разработчиков.
Усложнил се жизнь. Собсно мои даже "сложные" и очень большие скрипты вполне улаживаюцца в одном файлике. А отдельно я пробовал создавать, только потом понял, что уж очень глючно выходит. Добавлено спустя 1 минуту 10 секунд: Кстати, а ты сенсор на локационном скрипте прописал? |
Автор: | mrSigma [ Чт 18 мар 2010 15:00 ] |
Заголовок сообщения: | |
Цитата: Кстати, а ты сенсор на локационном скрипте прописал?
С этого места поподробнее. Да и вообще, предложи вариант, которым можно все это решить минимальными усилиями. |
Автор: | Панцирь [ Чт 18 мар 2010 15:06 ] |
Заголовок сообщения: | |
Цитата: которым можно все это решить минимальными усилиями.
Пропиши в object.ini Локация=Locations\адрес локационного скрипта. Сенсор=Locations\адрес локационного скрипта. Создаешь этот локационный скрипт и пишешь в нем следующее: Код: #include "include\AIM.src"
void proc OnEnterLocation(char item) { SetSensor("Сенсор"); } void proc OnEnterSensor(char item) { switch (item) { case "Сенсор": { Text("Процедуры вызываемые при входе в сенсор."); } } } |
Автор: | mrSigma [ Чт 18 мар 2010 15:14 ] |
Заголовок сообщения: | |
Toilet Paper works!!! Этого самого "SetSensor" и не хватало. Спасибо за помощь) Добавлено спустя 30 секунд: А еще вопрос один. Как использовать и объявлять глобальыне переменные (чтоб во всех скриптах и на всех локациях работали)? |
Автор: | Панцирь [ Чт 18 мар 2010 15:17 ] |
Заголовок сообщения: | |
Цитата: (чтоб во всех скриптах и на всех локациях работали)?
SetVar - GetVar и SetVarChar - GetVarChar. Правда я SetVarChar - GetVarChar почти не пользовался, т.К юзаю первую пару. |
Автор: | mrSigma [ Чт 18 мар 2010 15:19 ] |
Заголовок сообщения: | |
Т.е: Код: SetVar("x")=value; ?
if (value=GetVar("x")) { } А как тогда задавать их тип? |
Автор: | Панцирь [ Чт 18 мар 2010 15:28 ] |
Заголовок сообщения: | |
Ну-у. Я пользую простой системой. Код: {
SetVar("Tratata", 5); } { if (GetVar("Tratata") == 5) { Text("Ай младес! Набрал много Трататы..."); } } |
Автор: | mrSigma [ Чт 18 мар 2010 15:30 ] |
Заголовок сообщения: | |
Понятно... Данных, того и гляди, на полноценную справочную систему по скриптизированию наберется) |
Автор: | Панцирь [ Пт 2 апр 2010 19:47 ] |
Заголовок сообщения: | |
Кто разобрался и умеет выводить таймер на монитор? Как это сделать? |
Автор: | smt005 [ Пт 2 апр 2010 20:49 ] |
Заголовок сообщения: | |
Панцирь писал(а): Кто разобрался и умеет выводить таймер на монитор? Как это сделать?
А он есть? Таймера вроде нет. |
Автор: | Панцирь [ Сб 3 апр 2010 12:36 ] |
Заголовок сообщения: | |
Цитата: А он есть?
Есть. SetTimer З.Ы таймеры работают в обычных заданиях баз. И их видно рядом со скоростью... |
Автор: | 2100 [ Ср 28 апр 2010 13:13 ] |
Заголовок сообщения: | |
Где можно узнать названия объектов для использования в "CreateObjectAt"? |
Автор: | Razum [ Ср 28 апр 2010 15:51 ] |
Заголовок сообщения: | |
Вроде бы в БД. |
Автор: | 2100 [ Чт 29 апр 2010 10:53 ] |
Заголовок сообщения: | |
А аномалии так возможно создавать? |
Автор: | Панцирь [ Чт 29 апр 2010 11:01 ] |
Заголовок сообщения: | |
Цитата: А аномалии так возможно создавать?
Возможно. Только их нужно создавать в БД. А расставлять непосредственно LocEditor-om. К скриптам это не относится. Хотя... Если менять один объект на другой. С помощью "ChangeObjectID", то возможно расставление аномалий даже на готовых официальных клановых локациях. Или создавая в определенных местах с помощью "CreateObjectAt". |
Автор: | 2100 [ Чт 29 апр 2010 12:32 ] |
Заголовок сообщения: | |
Хотел создавать аномалию при наезде на указатель. Ни "CreateObjectAt", ни "ChangeObjectID" не помогают, хотя с другими объектами всё нормально. Может быть существуют другие способы? |
Автор: | Панцирь [ Чт 29 апр 2010 12:38 ] |
Заголовок сообщения: | |
Цитата: Ни "CreateObjectAt", ни "ChangeObjectID" не помогают, хотя с другими объектами всё нормально
Знач аномалии нельзя делать. Тогда открой файл .MMO твоей локи, каким-нето бинарным идитором. И замени на нужный объект. Я конечно сомневаюсь, что поможет. (Это совет для оригинальных лок. Помни, что это нарушение авторских прав и т.Д и т.П, так-что делай ток для себя)... А если свою локу делаешь, то все просто. ЛокЕдитор те в помощь. |
Автор: | 2100 [ Пт 30 апр 2010 16:44 ] |
Заголовок сообщения: | |
Тогда как заставить скрипт выполняться только пока игрок на территории указателя? И ещё: при повторном наезде на указатель скрипт не выполняется. Как это изменить? |
Автор: | Панцирь [ Пт 30 апр 2010 16:59 ] |
Заголовок сообщения: | |
Цитата: Как это изменить?
Снова активировать указатель. Рекомендую таймер. |
Автор: | 2100 [ Вт 4 май 2010 17:33 ] |
Заголовок сообщения: | |
2100 писал(а): Тогда как заставить скрипт выполняться только пока игрок на территории указателя?
А насчёт этого? И как выдавать длинные сообщения вверху экрана?А то сообщений " Text("") " хватает на 3-4 слова... |
Страница 16 из 18 | Часовой пояс: UTC + 4 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |