Текущее время: Ср 27 ноя 2024 11:50

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 527 ]  На страницу Пред.  1 ... 4, 5, 6, 7, 8, 9, 10 ... 18  След.
Автор Сообщение
 Сообщение Чт 28 июн 2007 23:35
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Угу. Зырил, но чот не разобралсо я в этом. :sad:

Это в Ario.src:
1)
void proc OnView(char glID)
{
if (GetMechClan("PLAYER")!="ORG_PLAYER")
return;

if (!GetVar("AIM.ARIO.TS.1"))
{
MechSay("TS_GRP_ARIO", "TS_L5_Q3_0");
SetRelation("TS_GRP_ARIO", "PLAYER", 10);
AssignGliderToPlayer("TS_GRP_ARIO", 1);
}
}
Такое впечатление что glID тут вообще ни к чему. Нема условия, проверяющего какой именно глайд мы встретили.
Рассмотрим AIM.ARIO.TS.1. О нем упоминается тока в OnTalk.
2)OnTalk
...
// Если клан уже был создан, то сразу убивается
if (GetVar("AIM.CLAN.CREATE") && !GetVar("ARIO.TS.2")
&& GetMechClan("TS_GRP_ARIO")!="ORG_PLAYER" )
{
SetCaptureInterface(1);
Dialog("TS_L5_Q3_3");
SetVar("AIM.ARIO.TS.1");
SetVar("AIM.ARIO.TS.2");
AssignGliderToPlayer("TS_GRP_ARIO", 0);
DamageGlider("TS_GRP_ARIO", 100000);
SetVar("AIM.ARIO.READY");
}
else
// При первой встрече с игроков Арио произносит речь
if (!GetVar("AIM.ARIO.TS.1"))
{
Dialog("TS_L5_Q3_1");
AssignGliderToPlayer("TS_GRP_ARIO", 0);
SetVar("AIM.ARIO.TS.1");
SetCaptureInterface(1);
}
А где присваивается значение ARIO.TS.2? Ни в одном скрипте нема. И вообще что это такое? Оч похоже, что все это вбито программно. :sad:


 Сообщение Пт 29 июн 2007 0:31
Профиль  
Механоид 5 поколения
Сообщения: 1163
Откуда: Омск
Зарегистрирован: Вс 14 май 2006 17:42
:shock: А зачем в этом разбираться, собственно?
Существенно то, что OnView, которая в ..\Data\Scripts\Events\messages.src, отработает при встрече Игрока с ЛЮБЫМ глайдером (там эта процедура - пустышка, но она есть), OnTalk, которая в ..\Data\Scripts\Events\Talk.src, тоже. Вставь свой код и всё.

TS_GRP_ARIO (Группа из единственного глайдера - ARIO) объявлена в OBJECTS.ini как самостоятельный объект, и, скажем, void proc OnTalk(char glID) из Ario.src отрабатывает только при встрече ИМЕННО С ARIO. Потому в ней и нет проверки того, с кем встретился Игрок.

Кстати, одноимённая процедура из ..\Data\Scripts\Events\Talk.src при встрече с ARIO отработает тоже, как и для любого другого Глайдера/Группы. Там как раз надо смотреть, с кем Игрок встретился.
Krogoth писал(а):
А где присваивается значение ARIO.TS.2

В этом же файле.

А когда происходит обращение к не объявленной ранее общей переменной, эта переменная создаётся автоматом и ей присваивается значение нуль. (Или пустая строка, если она строковая. Не суть важно, там 1-м символом будет 00H - нечитаемый символ-маркер конца строки).


 Сообщение Пт 29 июн 2007 0:56
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
2 Ark
Посиб. Терь буду тестыть. :mrgreen:

Добавлено спустя 17 минут 42 секунды:

Роботает. :mrgreen:


 Сообщение Ср 4 июл 2007 13:58
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Как и вообще возможно ли с помощью скриптов отметить весь клан на карте (аналогично той услуге, что оказывают Считающие)?


 Сообщение Ср 4 июл 2007 19:04
Профиль  
Механоид 5 поколения
Сообщения: 1078
Зарегистрирован: Пт 2 фев 2007 16:15
Krogoth писал(а):
Как и вообще возможно ли с помощью скриптов отметить весь клан на карте

Возможно. Это ж скрипт - 50000 уходит, выполняется требуемое действие.


 Сообщение Ср 4 июл 2007 19:32
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Ага. А как сделать это в нужный нам момент + бесплатно? :smile:


 Сообщение Чт 5 июл 2007 19:12
Профиль  
Механоид 5 поколения
Сообщения: 1163
Откуда: Омск
Зарегистрирован: Вс 14 май 2006 17:42
Тут в текстовой БД есть интересная Запись:
Interface -> INT_MENU_TEXT_31

Caption:
No Name

Description:
Живых механоидов в клане осталось мало. Считающие всего за 2000 Э.К. могут пометить этот клан на карте. <p><a link=ShowClan(%s)>Пометить клан</a>

Можно попробовать эту самую ShowClan поюзать. Что за %s - фиг её знает, common она должна быть или local. Может, она вообще не char. Кроме того, возможно, ShowClan из скриптов вызвать нельзя, придётся создать Запись, скажем, MARKCLAN, вставлять в её текст вызов ShowClan и в скриптах делать вызов типа Text("MARKCLAN").

Короче, если сильно надо - прими флаг. :roll: И если номер пройдёт - просьба написать, каким макаром.


 Сообщение Чт 5 июл 2007 20:17
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Оооогромное посибо. :smile:
Ща попробую...

Добавлено спустя 19 минут 19 секунд:

Ark писал(а):
Кроме того, возможно, ShowClan из скриптов вызвать нельзя
Так и есть. :sad:


 Сообщение Чт 26 июл 2007 16:22
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Я создал на локации группу механоидов, дал ей идентификатор GRP_MYGROUP, определил в категорию "Народ" и в клан Форвард. Затем в скриптах произвожу CreateGroup("GRP_MYGROUP"); Но почему-то механоиды не Форвард, а Свободные. :neutral: Где ошибка?


 Сообщение Пт 27 июл 2007 20:46
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Промууууууучался несколько часов с созданием группы глайдеров (живых, прописанных на локации) в определенной точке. НЕ РАБОТАЕТ!(!!!!!!!) :blabla:

Я...
1.Создал группу на локации
2.Создаю ее в скриптах с помощью CreateGroup у хелпера

Что и как надо делать ПРАВИЛЬНО, чтобы глайдер создавался в нужном хелпере?

Добавлено спустя 55 секунд:

В objects.ini всё забито.

Добавлено спустя 1 минуту 11 секунд:

Те, кто пробовал и у кого не получалось, тоже отзовитесь. :roll:

Добавлено спустя 5 минут 32 секунды:

Krogoth писал(а):
Что и как надо делать ПРАВИЛЬНО, чтобы глайдер создавался в нужном хелпере?
Глайдер появляется, но фиг знает где. :neutral:

Добавлено спустя 52 секунды:

Дороги тоже, на всяк случай проведены к хелперу. Тоже вопрос: нужны ли они?


 Сообщение Пн 30 июл 2007 16:06
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
У опр. здания тоже не появляется. :neutral:


 Сообщение Вт 31 июл 2007 12:53
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Всё. Я разобралсо. Ставишь группу Стражем - создается в любом нужном нам хелпере.

Добавлено спустя 11 минут 2 секунды:

Изначально я юзал "Народ". :roll:


 Сообщение Ср 1 авг 2007 16:53
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Ухх... Рано радовался...
Объясните плз кто-нибудь почему процедура срабатывает несколько раз при вхождении Игрока в хелпер! Наткнулся на такую проблему. :roll:


 Сообщение Пт 3 авг 2007 9:48
Профиль  
Механоид 4 поколения
Сообщения: 556
Откуда: Самара
Зарегистрирован: Ср 12 окт 2005 16:11
Что значит "несколько раз"? Может всё-таки постоянно при нахождении в зоне?


 Сообщение Пт 3 авг 2007 13:11
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Да вроде нет. Вот OnEnterSensor...
void proc OnEnterSensor(char item)
{
if ((item == "NM_CANYON_ZASADA1") && (GetVar("anomaly_find_weap_part") == 2))
{
SetRelation("MT_GRP_CANYON_PRIMANKA", "PLAYER", 0);
Text("Выполнено");

//Создаем группы механоидов из засады;
CreateGroup("MT_GRP_CANYON_ZASADA1A", "NM_CANYON_ZASADA1A");
CreateGroup("MT_GRP_CANYON_ZASADA1B", "NM_CANYON_ZASADA1B");
CreateGroup("MT_GRP_CANYON_ZASADA1C", "NM_CANYON_ZASADA1C");
AssignGliderToPlayer("MT_GRP_CANYON_ZASADA1A", 1);
AssignGliderToPlayer("MT_GRP_CANYON_ZASADA1B", 1);
AssignGliderToPlayer("MT_GRP_CANYON_ZASADA1C", 1);

SetVar("anomaly_find_weap_part", 3);
}
}

Сенсор ставится тоже 1 раз. При нажатии кнопки в диалоге, который произойти может только 1 раз.

Я подумал насчет самих идентификаторов. И назвал их по-разному, а не как ZASADA1A...1B...1C... Вроде бы от проблемы повторного вывода текста "Выполнено" при появлении в NM_CANYON_ZASADA1 я избавился. Но глайдеры почему-то не создаются в нужных точках, которые указаны вторым аргументом CreateGroup. :neutral:
Что я сделал на локации... На локации я разместил пути-дороги, и эти самые точки, где создается и куда будут потом летать глайдеры (у меня еще должна быть масса GliderGo), являются точками дороги. Ну вроде так было в локации для тестирования базовых умений. Правда там без меха глайдер был... Все группы у меня являются "Народом", 1A и 1B содержат по 3 механоида, третья - одного.
И еще вопрос, можно ли присоединить к Игроку с помощью AssignGliderToPlayer столько механоидов?

Добавлено спустя 1 минуту 38 секунд:

GliderGo тоже не работает. :neutral:

Добавлено спустя 30 секунд:

Только иногда. Хотя пару раз, надо отметить, все это сработало как надо. Но это только пару...


 Сообщение Сб 4 авг 2007 23:48
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
CreateMech работает просто отлично. Даже направление глайдера как надо. Но CreateGroup... Скорее всего, у меня на где-то локации допущена ошибка. :roll:


 Сообщение Пн 6 авг 2007 10:21
Профиль  
Механоид 4 поколения
Сообщения: 556
Откуда: Самара
Зарегистрирован: Ср 12 окт 2005 16:11
Krogoth писал(а):
CreateGroup("MT_GRP_CANYON_ZASADA1A", "NM_CANYON_ZASADA1A");

Не работает там второй параметр, он игнорится в коде.
Заглянул в код... группы типа "народ", вроде как, создаются в рандомной точке дороги на локации


 Сообщение Пн 6 авг 2007 15:32
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Изображение Убилсо апстенку. :mrgreen:
А GliderGo тоже не работает с такими глайдами? :neutral:

Добавлено спустя 12 секунд:

Я имею ввиду те, что созданы с помощью CreateGroup.


 Сообщение Ср 15 авг 2007 17:59
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
А как моно сделать выпадение определенного контейнера (или его какая-нить хитромудрая имитация) из определенного глайдера сразу после его уничтожения? Пробовал использовать меха как хелпер - не катит. :neutral:


 Сообщение Пт 17 авг 2007 20:49
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Еще вопросец. Как выйти из здания? MoveToLocation не очень оптимально. :neutral:

Добавлено спустя 37 минут 32 секунды:

Да и с помощью MoveToLocation нельзя перемещаться в объект. Второй аргумент срабатывает только для зданий. :roll:

Добавлено спустя 4 часа 48 минут 59 секунд:

За что отвечают UserFunc(41) и UserFunc(54)? В aim.cpp перечислены все от 0 до 103, кроме этих.


 Сообщение Пн 27 авг 2007 18:39
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Отзовитесь, у кого работал/не работал OnLeaveSensor. Мучаюсь, мучаюсь, толку никакого.


 Сообщение Пн 27 авг 2007 19:48
Профиль  
Механоид 5 поколения
Сообщения: 1078
Зарегистрирован: Пт 2 фев 2007 16:15
2 Krogoth

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


 Сообщение Пн 27 авг 2007 23:08
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Я-то изучал. Да вот нивкакую мне не виделось, что в том случае применялась база. B_L5_BASE1. И это, надо сказать, очень плохо. Не исключено, что сенсором в данном случае может быть искл. здание, т.к. я сколько ни пытался с обычным хелпером - целиком игнорировало. :roll:


 Сообщение Вт 28 авг 2007 14:33
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
К счастью вышесказанное оказалось пальцем в небо. Чтобы сработал OnLeaveSensor следует в OnEnterSensor записать следующее:
SetSensor("SENSOR_ID", 0);
Просто думал, что подобное как-то автоматом, что ли, производится. :mrgreen:


 Сообщение Чт 30 авг 2007 19:46
Профиль  
Новичок
Сообщения: 4
Зарегистрирован: Чт 30 авг 2007 18:26
вобщем-то незнал где спросить =)
Как мне добавить в сектор новое оружие, которое продовалось бы в Базах....?


 Сообщение Чт 30 авг 2007 19:53
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Если ты про разрабовские локации, то это с помощью SDK невозможно. Т.к. исходников разрабовских локаций нет.
Если про свои - то это вопрос в редактор локаций. Перечитай топик, где-то ответ должен быть.


 Сообщение Чт 30 авг 2007 21:45
Профиль  
Механоид 5 поколения
Сообщения: 1078
Зарегистрирован: Пт 2 фев 2007 16:15
А через hex-редактор разве нельзя? Вроде говорили об этом


 Сообщение Чт 30 авг 2007 23:27
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Естественно можно. Но помучаться с этим придется достаточно. :neutral:


 Сообщение Вс 2 сен 2007 13:08
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Мне нужно, чтоб в начале игры дверь не открывалась. А потом, после получения доступа, открывалась. Как это сделать? :neutral:


 Сообщение Вс 2 сен 2007 14:06
Профиль  
Моск
Сообщения: 3726
Откуда: На пограничье двух миров.
Зарегистрирован: Вс 20 авг 2006 13:24
Я, признаюсь, в скриптах не шарю, но можешь попробовать сделать по-принципу двери в Подземный Завод. Ее скрипт в Locations -> L13 -> Points . На сколько я понимаю, по типу этого скрипта можно сделать любой другой с дверью, открываемой ключом :wink:
Krogoth писал(а):
Если ты про разрабовские локации, то это с помощью SDK невозможно. Т.к. исходников разрабовских локаций нет.

А если скриптом каким-нибудь попробовать?


Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 527 ]  На страницу Пред.  1 ... 4, 5, 6, 7, 8, 9, 10 ... 18  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB