Гипат.org

Все остальное - Инстукция по базе данных скрипт команд.

Nivea - 26 января 2002, 14:17
Мне то-же кажется ,что под повесть нужно местечко отвести. Формат мне по-шарам в независимости от популярности какого-то страшного или ужасного или популярного языка,а база Сану нужна для конструктора скриптов.

images/smiles/icon_smile.gif
sun - 26 января 2002, 14:23
Vasya.
Я не знаю язык Паскаль.
Я не понял, что ты хочешь сказать о названии функций у Нивала. То, что это абсолютно правильно написанные названия функций? Или мы должны продолжать идентифицировать их с ошибками, путая понятия и признаки?
Ты хочешь сказать что, например если в функцию вставить Сундук: «61 GetObjectID ( objUnit : object ): float» то, Сундук это: «objUnit»?
Может все-таки задумаешься? Или мне объяснишь поподробнее.
sun - 26 января 2002, 14:25
Конечно, можно писать и с примечанием ниже строки команды. Только выберите стиль, что бы было понятно, что это третье поле: Комментарий.
Nivea - 26 января 2002, 14:32
предлагаю желающим сдесь сформировать классификацию напиcания названий полей,
чтобы соблюдалась вся строгость стиля и правильность:
idUnit или UnitId или Unit_id images/smiles/icon_rolleyes.gif
Vasya - 26 января 2002, 14:34
sun

Я, честно говоря, тебя тоже не понял. images/smiles/icon_smile.gif Видимо, это судьба. images/smiles/icon_biggrin.gif

В скриптах есть типы данных Object, Group, float, bool. Чтобы не перепутать номер игрока (типа float) с типом данных group, не стоит включать слово "group" в название переменной. Мне кажется, у Чейза все переменные очень хорошо обозначены. "nPlayerA" - "номер игрока А".

Слово Player в командах SetPlayer, GetPlayer и многих других перевести иначе, как "игрок", я не могу. И именно это слово я предлагаю использовать в названии переменной.
sun - 26 января 2002, 14:41
Да, но ведь это номер ГРУППЫ юнитов (врагов в том числе), а не только игроков.
Или я не прав?
sun - 26 января 2002, 14:44
...
Получается, что ты в переменной указываешь номер игрока в группе, а не номер группы.

И ещё…
Группа представляется как объект? Это отдельный класс?
sun - 26 января 2002, 14:57
Вообще-то, база данных в ПЗ идентифицируется несколько иначе, чем названия у функций и команд. Например: игровые объекты идентифицируются на следующие группы, это: Units и Pers. Что дословно обозначат как: Единицы и Персонажи.
Наверное, слово «Pers», понимается как синоним «Player».
Vasya - 26 января 2002, 20:02
sun

Игрок (player) - это, фактически, группа юнитов, для которой устанавливается единая дипломатия с другими аналогичными группами. Все юниты одного игрока всегда являются союзниками друг друга.

Каждый игрок имеет свой номер - вещественное число (на самом деле, целое неотрицательное).


Группа (group) - это отдельный тип данных. Переменная этого типа может содержать произвольное количество произвольных юнитов (по крайней мере, про ограничения пока ничего не известно).

Получить группу юнитов данного игрока можно с помощью функции GetPlayerUnits (nPlayer).
KalbasKa - 26 января 2002, 22:39
я не из вашего племени, поэтому не буду вгрызаться тут в полено, но кое-что сказать имею. есть такое понятие, как "логический игрок". оно означает группу юнитов, находящихся под управлением компа и равноправную с игроком человеческим. т.е. если передать Зака и компанию под управление компа, получится логический игрок.
sun - 26 января 2002, 23:37
Я искренне сожалею, что мы не можем прийти к общему знаменателю.

«Игрок (player) - это, фактически, группа юнитов»
Странное упорство с твоей стороны. Что значит: «…фактически»? Или группа или игрок! И незачем выдавать одно за другое? Может, в том контексте стоит хотя бы написать: «Players»? Хотя тогда потеряется смысл….

И я снова хочу тебя спросить: А если сравнить свойство дипломатии группы юнитов врагов, это тоже номер игрока?
Моё личное, субъективное мнение:
«GetPlayerUnits (nPlayer)» - Я считаю, что эта функция должна была выглядеть так: «GetGroupUnits».
Мне кажется, мы будем путаться в признаках и понятиях, если не утвердим очевидное.
Я прекрасно понимаю, что объект «Group» это собственный класс данных.

Пожалуйста, почитай внимательно, что я пишу в предыдущих сообщениях и в этом в том числе. Ты не отвечаешь на мои вопросы. Я тебе говорю, что Нивал неверно идентифицировал в названиях функций понятие Группа и Игрок. И я не хотел бы повторять дальше их ошибки – двойственного толкования. В МП играют до шести игроков, но все они принадлежат одной группе. Понятие «nPlayer» подходит для внутрегруппной идентификации, а также для номера помощника в группе игрока в сингле.

Возможно, что Нивал, первоначально задумывали, что каждой группой юнитов будут управлять другие игроки. Но это не решает теперешней проблемы. На этот момент, подобная (GetPlayerUnits) функция в своем имени содержит несколько иное понятие, нежели просто, конкретно группа юнитов.

КалбасКа, в игре бывает до девяти групп объектов юнитов.
KalbasKa - 27 января 2002, 00:18
я знаю, что их может быть до 9. это ты слегка не понимаешь images/smiles/icon_sad.gif
я имею в виду, та группа живности, которой можно поставить дипломатию относительно другой группы живности, называется логическим игроком. логический игрок 1, логический игрок 2, и так далее.
sun - 27 января 2002, 00:41
КалбасКа.
Ну, вообще не о том...
Да причем здесь оправдания как можно представить себе нечто. У меня достаточно фантазии чтобы понять, что могут быть некие виртуальные, логические игроки.
Читай внимательно мое сообщение и задумайся по существу. Я не буду больше повторять одно и тоже….

И к вашему сведению в ПЗ существует только одно значение nPlayer – это «0».
Неужели вы не видите в теме у Чейза: «Функции для работы с группами» противоречий? Посмотрите повнимательнее….
sun - 27 января 2002, 00:55
И ещё одно уточнение nPlaeyr, по значению всегда совпадает с nGroup для Игрока. То есть Зак (и его помощники) как игрок - 0 и как Группа где он находится - тоже 0. Других игроков групп в ПЗ не существует, даже в МП на каждой машине Игрок равен 0. Если вы не измените своё понимания по отношению скриптовым командам, то столкнётесь с ошибками в идентификации и других функций.
sun - 27 января 2002, 01:28
У меня несколько вопросов и просьб:
Нам нужна база данных, а не повесть о консольных командах и процедурах. Я прошу Вас, осмысливайте каждую запись, а не переписывайте у Чейза все в подряд. Обязательно несколько раз проверяйте лично все команды. Очень хочется, чтобы небыли ошибки в нашей базе.
Итак, будем внимательными. Например, поступила проверенная функция от вас:

«GetDiplomacy ( nPlayerA : float , nPlayerB : float )»

«nPlayerA», - может быть дать имя параметру: nGroupA?
Слово «Player» - обозначает участник игры, игрок. Монстры на карте это не группы игроков, значит с группой монстров эту функцию использовать нельзя? Если нельзя то – оставить.

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

053 GetDiplomacy (nGroupA: float , nGroupB: float ) : float
056 GetLeader () : object



В таком виде получится таблица с двумя полями: Код из моей таблицы базы данных, и проверенная, идентифицированная команда, функция.

Затем создавайте следующий список - описания и примечаний в том же стиле:
Первое поле - код из моей таблицы базы данных, и второе поле - примечание. Например:

053 Возвращает (значение) тип(а) дипломатии: кем является игрок номер nPlayerA (группа юнитов номер nGroupA) для игрока номер nPlayerB (группы юнитов номер nGroupA).
Возможные значения (типы значения дипломатии):
____1 - союзник
____0 - нейтрал
____-1 - враг
____© CHaSE (проверено) (Совершенно необязательно засорять авторством права первой ночи: тогда ещё нужно указать, что эту функцию создала компания Nival. Можете об этом указать отдельно в конце сообщения.)

З.Ы.:
С тем списком, что вы сейчас создаете работать сложно. И кстати очень похоже на «повесть» о консольных командых и скриптовых процедурах как на сайте у Чейза.
Нам нужна база данных, которую можно будет использовать в конструкторе уровней.
Vasya - 27 января 2002, 01:56
Вопрос такой: а зачем нам база данных? Разве команды нужны не для тех, кто будет программировать различные события аддона?

В любом случае, как мне кажется, нужно и то, и другое (и база, и "повесть").
цитата
Цитата:
GetDiplomacy (nGroupA: float , nGroupB: float ) : float

Принимаем формат Паскаля, а не Си? Ну ладно, я не против, хотя Си - более популярный язык.

Группа юнитов и игрок - это совсем разные понятия (и разные типы данных). Названия процедур и функций явно дают понять, что имеется в виду в каждом конкретном случае. Например, GetPlayer : float выводит именно игрока (как можно иначе перевести слово "player"?), а GetPlayerUnits : group - группу юнитов игрока.

[ 26 января 2002: Изменил: Vasya ]


Vasya - 27 января 2002, 13:47
sun
Ну, непонимание с моей стороны - это нормально, надо уже привыкать. images/smiles/icon_biggrin.gif

Ладно, насчёт дипломатии. Насколько я понимаю, это свойство задаётся только тем группам, которые обозначены, как player'ы. То есть, нельзя выделить произвольную группу юнитов (например, командой UnitSee) и задать дипломатию для неё. С этим ты согласен? И разве нельзя по этому принципу разделить player и group?

Честно говоря, я не знаю, что такое "собственный класс данных", я бы сказал, что group - это контейнер класса object. (Object - тоже не лучшее название для класса, но ничего не поделаешь.) При этом, видимо, player (в ниваловском пониманиии) - это класс, ассоциированный с group по принципу 0..1 - 1. Не каждая group соответствует некоторому player, но каждому player соответствует group. У объекта класса player есть атрибут "номер", который его однозначно идентифицирует (в пределах игровой зоны), а у объекта класса group такого атрибута нет. Поэтому я не понимаю, что ты подразумеваешь под nGroup. images/smiles/icon_confused.gif

цитата
Цитата:
в ПЗ существует только одно значение nPlayer – это «0».

Это я вообще не понял. Где существует? Что значит "существует"?
цитата
Цитата:
Неужели вы не видите в теме у Чейза: «Функции для работы с группами» противоречий?

Стараюсь, но не вижу. images/smiles/icon_smile.gif
sun - 27 января 2002, 13:58
У меня открылись глаза...
Я понял. Спасибо.
images/smiles/icon_smile.gif
Alexy III - 27 января 2002, 18:57
Ok.
sun - 28 января 2002, 00:47
Vasya.
Видимо стОит поподробнее написать…
images/smiles/icon_smile.gif

Ты раскрыл мне глаза, что заниматься дальше объяснением моей точки зрения тебе, в форме диалога - есть бессмысленное занятие. Я заметил, что ты практически никогда не задаешь вопросов, в которых ты не компетентен, а если и задаешь, то сам же на них и отвечаешь, и к тому же даешь советы. Я ждал от тебя вопросов по существу проблемы, а ты перешел в частности. В твоем последнем сообщении, на мой взгляд, слишком много ошибок в методике классификации структуры ПЗ, да и сквозит раздражение…. Логично было, отвечая «…Стараюсь, но не вижу.» на мой вопрос, задать встречный вопрос, но этого не последовало. И мне осталось только развести руками…
У меня сложилось впечатление, что тебе психологически очень трудно признавать свои ошибки. images/smiles/icon_sad.gif

Я попытаюсь на форме, в виде монолога, довести тебе моё виденье структуры ПЗ и классификацию терминов и понятий консольных команд, процедур и функций для скрипитов. Я обязательно буду использовать ваш опыт из темы «Разбор скриптовых команд.».
Vasya - 28 января 2002, 01:30
sun

Вот и ладушки. images/smiles/icon_biggrin.gif

Alexy III

Если ты сюда заглянешь, то знай, что у меня есть просьба: отсортируй, пожалуйста, разобранные тобой команды в алфавитном порядке, что бы проще можно было определить, какие же именно ты разобрал.
Vasya - 28 января 2002, 13:18
sun

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

Ошибки мне признавать, пожалуй, трудновато. У меня о себе самом сложилось такое впечатление images/smiles/converted/re_16.gif , что я редко выношу необдуманные суждения, поэтому, чтобы показать мне их ошибочность, надо постараться. images/smiles/converted/re_16.gif
Vasya - 01 февраля 2002, 14:58
sun

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

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

[ 01 февраля 2002: Изменил: Vasya ]


sun - 02 февраля 2002, 04:22
Я думаю, что мы обсудим детальнее этот вопрос….
На самом деле я и сам сомневаюсь в правильности моего представления о структуре ПЗ. Считаю, что в функциях работающих с уровнем дипломатии Партий, лучше использовать имя параметра: nPlayer, но осторожно, а в Дипломатических группировках, что-то похожее на: nPlayerGroupDiplomacy. Моя статья теоретическая, я многого того, что написал, самостоятельно не проверял.
В дальнейшем я напишу по вашим исследованиям новый список команд, и мы все ещё раз обсудим.

То почему Сагрер сделал такого рода выводы я так и не понял.
Часовой пояс: GMT +4:00
Форумы Поселка созданы на базе phpBB2 2.0.4 © phpBB Group