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). Правда, стоимость убеждения, даже несмотря на десятый рейтинг - нуль. :sad:
2. То же самое, но мех не пятого поколения, а выглядит как оргмодификатор. Вводил в скриптах шестое поколение :roll: Правда, контроль над всем сектором при его впихивании не устанавливается, но вытащить нельзя. Заодно узнал, что Наутилус имеет восьмое поколение. 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 ]
Заголовок сообщения: 

Цитата:
как это сделано у разработчиков.

Усложнил се жизнь.
Собсно мои даже "сложные" и очень большие скрипты вполне улаживаюцца в одном файлике.
А отдельно я пробовал создавать, только потом понял, что уж очень глючно выходит. :roll:

Добавлено спустя 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" не помогают, хотя с другими объектами всё нормально. :cry:
Может быть существуют другие способы?

Автор:  Панцирь [ Чт 29 апр 2010 12:38 ]
Заголовок сообщения: 

Цитата:
Ни "CreateObjectAt", ни "ChangeObjectID" не помогают, хотя с другими объектами всё нормально

Знач аномалии нельзя делать. Тогда открой файл .MMO твоей локи, каким-нето бинарным идитором. И замени на нужный объект.
Я конечно сомневаюсь, что поможет. (Это совет для оригинальных лок. Помни, что это нарушение авторских прав и т.Д и т.П, так-что делай ток для себя)...

А если свою локу делаешь, то все просто. ЛокЕдитор те в помощь.

Автор:  2100 [ Пт 30 апр 2010 16:44 ]
Заголовок сообщения: 

Тогда как заставить скрипт выполняться только пока игрок на территории указателя?
И ещё: при повторном наезде на указатель скрипт не выполняется. :sad: Как это изменить?

Автор:  Панцирь [ Пт 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/