Рассуждения: Об описании скриптовых команд
#21
sun

Вот и ладушки. Big Grin

Alexy III

Если ты сюда заглянешь, то знай, что у меня есть просьба: отсортируй, пожалуйста, разобранные тобой команды в алфавитном порядке, что бы проще можно было определить, какие же именно ты разобрал.
Ответ
#22
sun

Я согласен с тобой в том, что лучше меня ни о чём не спрашивать, когда хочешь доказать свою точку зрения, а сразу написать всё полностью с объяснениями. Фраза "стараюсь, но не вижу" тоже намекала именно на то, что надо мне показать пальцем на конкретные противоречия (я ведь так стараюсь Wink ). Я просто в скрытой форме предолжил тебе продолжить мысль.

Ошибки мне признавать, пожалуй, трудновато. У меня о себе самом сложилось такое впечатление B) , что я редко выношу необдуманные суждения, поэтому, чтобы показать мне их ошибочность, надо постараться. B)
Ответ
#23
sun

Я давно прочитал статью и согласен с тобой во всём. Раньше я действительно не задумывался о том, что кроме игроков (дип. групп) есть и партии, точнее, одна партия. Видимо, во многих командах, где у Чейза стоит nPlayer, надо написать idParty с комментарием, что этот параметр всегда должен быть нулём. Но не уверен, что всегда можно определить наверняка, где речь о дип. группе, а где - о партии.

Хотя после опытов Sagrer'а я опять начал путаться.

[ 01 февраля 2002: Изменил: Vasya ]</p>
Ответ
#24
Я думаю, что мы обсудим детальнее этот вопрос….
На самом деле я и сам сомневаюсь в правильности моего представления о структуре ПЗ. Считаю, что в функциях работающих с уровнем дипломатии Партий, лучше использовать имя параметра: nPlayer, но осторожно, а в Дипломатических группировках, что-то похожее на: nPlayerGroupDiplomacy. Моя статья теоретическая, я многого того, что написал, самостоятельно не проверял.
В дальнейшем я напишу по вашим исследованиям новый список команд, и мы все ещё раз обсудим.

То почему Сагрер сделал такого рода выводы я так и не понял.
Ответ
#25
Я попросил КалбасКу перенести наш разбор скрипткоманд и функций. Может на «свободе» кто-то примет активное участие, а то мы не успеваем. Я выложу на форум до субботы все, что будет на тот момент по скриптам.
Nivea, Vasya, AlexIII & Co. Не важно, куда писать, в закрытую ветку или сюда. Главное побыстрей разобраться со всеми скриптовыми командами. Если уже есть что-то, то пишите, пожалуйста, побыстрей. Ваш разбор команд я внес в базу данных.

Вот спи список команд, на которые у меня пока ничего нет:
ForIf – принцип понятен, но из консоли такую процедуру не проверить.
Sum – принцип понятен, но из консоли такую процедуру не проверить.

Вот команда, которая не работают вообще:

UMPatrol


Если что-то известно по этой команде, то пишите в первую очередь.
Остальные известные, но непроверенные выложу до субботы.

[ 15 февраля 2002: Изменил: sun ]</p>
Ответ
#26
Nivea

Интересно, что происходит со значением WasLooted, если людоеда убить после того, как ты его обокрал. И что будет когда поднял труп предварительно обокраденного людоеда?
Ответ
#27
Vasya
WasLooted возвратит 1 все одно
Ответ
#28
По просьбе трудящихся:
UMPatrolAddPointLook( Unit : object , x : float , y : float , Delay : float )
указывает объекту: Unit точку (x,y) в которую будет смотреть объект:
Unit и насколько долго: Delay объект задержится в этом положении.

UMPatrol( Unit : object )
Команда вызывает ошибку выполнения!.
Чтобы установить режим патрулирования следует применит команду:
ResetTarget перед набором списка патрульных команд.UMpatrol - ни где не писать!

UMPatrolAddPoint( Unit : object , x : float , y : float )
указывает нову точку наблюдения: (x,y) в каторую переместится
объект при патрулировании.
Для задержки объекта в точке наблюдения и ориентировки объекта в
сторону наблюдения, нужно использовать за командой:
UMPatrolAddPoint команду: UMPatrolAddPointLook.


UMPatrolClear( Unit : object )
Удаляет все дериктивы патрулирования установленные командами:
UMPatrolAddPointLook, UMPatrolAddPoint. Анологичное действие команды:
ResetTarget, но ResetTarget сбрасывает все команды UM*.

UMRevenge( Unit : object )

эта команда устанавливает объекту: Unit страх к мести от дипломатической группы - 0.
Объект: Unit будет стараться убежать и невидеть юнита из дипломатической группы - 0.
Чтобы сразиться с врагом в таком состоянии нужно ранитье его или загнать в тупик.

UMGuardEx( Unit : object , x : float , y : float , rad : float , Delay : float )
заставляет объект: Unit охранять точку (x,y) с радиусом: rad и задержкой: Delay
в точках случайного останова объекта: Unit.

Пример использования:
@UMClear( GetObjectbyId("4747") )
@UMPatrolClear( GetObjectbyId("4747") )
@ResetTarget( GetObjectbyId("4747"))
@UMPatrolAddPoint(GetObjectbyId("4747"),11,141)
@UMPatrolAddPointLook(GetObjectbyId("4747"),11,120,10)
@UMPatrolAddPoint(GetObjectbyId("4747"),11,142)
@UMPatrolAddPointLook(GetObjectbyId("4747"),20,160,100)
@UMPatrolAddPoint(GetObjectbyId("4747"),11,143)
@UMRevenge( GetObjectbyId("4747"))

4747- это - Гоблин-дозорный
Ответ
#29
QStart( QuestName : string )
Динамически, во время игры или на брифинг-зоне, команда: QStart объявляет квест в МП на сервере игры ПЗ и открывает текущее перечисление целей. Закрывает текущее пересчисление целей команда: QFinish. В теле Объявления задания (перечисление задач) находятся команды устанавливающие условия выполнения Задания.
Задание можно объявить и в одиночной игре, но это бессмыслено, так как последовательность получения заданий в одиночной игре предусмотрены заранее в таблице ресурсов.


Qfinish( )
Завершает описание квеста которое начал Qstart. При завершении всего квеста в инфоокне выводится текст задания, а в момент выполнения появляется дракончик. Если последовательность команд: Qstart, Qfinish была вызвана в одиночной игре, то за выполненный квест достаются все пологающиеся бонусы и квестовые предметы.


QObjArea( idArea : float )
Команда предназначена для создания и выполнения динамических заданий на игровых зонах в МП. Как правило область: idArea задается под кодом - 1. Область является неким виртуальным объектом на карте включающее в себя множество участвков на игровой зоне с одинаковым ID.

QObjGetItem( idQuestItem : float )
Команда предназначена для создания и выполнения динамических заданий на игровых зонах в МП.
Добавляет цель: получение предмета idItem.

QObjKillGroup( GroupName : string )
Добавляет цель: уничтожить Игровую группу с именем: GroupName. Игровая группа создается командой: AddObject.

QObjKillUnit( UnitName : string )
Добавляет цель: уничтожить юнит с именем: UnitName.
QObjSeeObject( ObjectName : string ) QObjSeeUnit( UnitName : string ) это разные команды
одна для предметов другая для юнитов

Команда: QObjUse применяется в процедуре описания задания и добавляет задачу - перевести рычаг(Lever) в состояние(State)
Добавляет задачу: перевести "рычаг": Lever в состояние: State в набор задач обявленных командой: Qstart
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 7 Гость(ей)