Рассуждения: Об описании скриптовых команд - Версия для печати +- Город Джунов (https://www.gipat.ru/forum) +-- Форум Аддон для Проклятых Земель (https://www.gipat.ru/forum/forum-20.html) +--- Форум Программирование (https://www.gipat.ru/forum/forum-6.html) +--- Темы: Рассуждения: Об описании скриптовых команд (/thread-660.html) Страницы:
1
2
|
Рассуждения: Об описании скриптовых команд - Nivea - 26.01.2002 Мне то-же кажется ,что под повесть нужно местечко отвести. Формат мне по-шарам в независимости от популярности какого-то страшного или ужасного или популярного языка,а база Сану нужна для конструктора скриптов. Рассуждения: Об описании скриптовых команд - sun - 26.01.2002 Vasya. Я не знаю язык Паскаль. Я не понял, что ты хочешь сказать о названии функций у Нивала. То, что это абсолютно правильно написанные названия функций? Или мы должны продолжать идентифицировать их с ошибками, путая понятия и признаки? Ты хочешь сказать что, например если в функцию вставить Сундук: «61 GetObjectID ( objUnit : object ): float» то, Сундук это: «objUnit»? Может все-таки задумаешься? Или мне объяснишь поподробнее. Рассуждения: Об описании скриптовых команд - sun - 26.01.2002 Конечно, можно писать и с примечанием ниже строки команды. Только выберите стиль, что бы было понятно, что это третье поле: Комментарий. Рассуждения: Об описании скриптовых команд - Nivea - 26.01.2002 предлагаю желающим сдесь сформировать классификацию напиcания названий полей, чтобы соблюдалась вся строгость стиля и правильность: idUnit или UnitId или Unit_id Рассуждения: Об описании скриптовых команд - Vasya - 26.01.2002 sun Я, честно говоря, тебя тоже не понял. Видимо, это судьба. В скриптах есть типы данных Object, Group, float, bool. Чтобы не перепутать номер игрока (типа float) с типом данных group, не стоит включать слово "group" в название переменной. Мне кажется, у Чейза все переменные очень хорошо обозначены. "nPlayerA" - "номер игрока А". Слово Player в командах SetPlayer, GetPlayer и многих других перевести иначе, как "игрок", я не могу. И именно это слово я предлагаю использовать в названии переменной. Рассуждения: Об описании скриптовых команд - sun - 26.01.2002 Да, но ведь это номер ГРУППЫ юнитов (врагов в том числе), а не только игроков. Или я не прав? Рассуждения: Об описании скриптовых команд - sun - 26.01.2002 ... Получается, что ты в переменной указываешь номер игрока в группе, а не номер группы. И ещё… Группа представляется как объект? Это отдельный класс? Рассуждения: Об описании скриптовых команд - sun - 26.01.2002 Вообще-то, база данных в ПЗ идентифицируется несколько иначе, чем названия у функций и команд. Например: игровые объекты идентифицируются на следующие группы, это: Units и Pers. Что дословно обозначат как: Единицы и Персонажи. Наверное, слово «Pers», понимается как синоним «Player». Рассуждения: Об описании скриптовых команд - Vasya - 26.01.2002 sun Игрок (player) - это, фактически, группа юнитов, для которой устанавливается единая дипломатия с другими аналогичными группами. Все юниты одного игрока всегда являются союзниками друг друга. Каждый игрок имеет свой номер - вещественное число (на самом деле, целое неотрицательное). Группа (group) - это отдельный тип данных. Переменная этого типа может содержать произвольное количество произвольных юнитов (по крайней мере, про ограничения пока ничего не известно). Получить группу юнитов данного игрока можно с помощью функции GetPlayerUnits (nPlayer). Рассуждения: Об описании скриптовых команд - KalbasKa - 26.01.2002 я не из вашего племени, поэтому не буду вгрызаться тут в полено, но кое-что сказать имею. есть такое понятие, как "логический игрок". оно означает группу юнитов, находящихся под управлением компа и равноправную с игроком человеческим. т.е. если передать Зака и компанию под управление компа, получится логический игрок. Рассуждения: Об описании скриптовых команд - sun - 26.01.2002 Я искренне сожалею, что мы не можем прийти к общему знаменателю. «Игрок (player) - это, фактически, группа юнитов» Странное упорство с твоей стороны. Что значит: «…фактически»? Или группа или игрок! И незачем выдавать одно за другое? Может, в том контексте стоит хотя бы написать: «Players»? Хотя тогда потеряется смысл…. И я снова хочу тебя спросить: А если сравнить свойство дипломатии группы юнитов врагов, это тоже номер игрока? Моё личное, субъективное мнение: «GetPlayerUnits (nPlayer)» - Я считаю, что эта функция должна была выглядеть так: «GetGroupUnits». Мне кажется, мы будем путаться в признаках и понятиях, если не утвердим очевидное. Я прекрасно понимаю, что объект «Group» это собственный класс данных. Пожалуйста, почитай внимательно, что я пишу в предыдущих сообщениях и в этом в том числе. Ты не отвечаешь на мои вопросы. Я тебе говорю, что Нивал неверно идентифицировал в названиях функций понятие Группа и Игрок. И я не хотел бы повторять дальше их ошибки – двойственного толкования. В МП играют до шести игроков, но все они принадлежат одной группе. Понятие «nPlayer» подходит для внутрегруппной идентификации, а также для номера помощника в группе игрока в сингле. Возможно, что Нивал, первоначально задумывали, что каждой группой юнитов будут управлять другие игроки. Но это не решает теперешней проблемы. На этот момент, подобная (GetPlayerUnits) функция в своем имени содержит несколько иное понятие, нежели просто, конкретно группа юнитов. КалбасКа, в игре бывает до девяти групп объектов юнитов. Рассуждения: Об описании скриптовых команд - KalbasKa - 27.01.2002 я знаю, что их может быть до 9. это ты слегка не понимаешь я имею в виду, та группа живности, которой можно поставить дипломатию относительно другой группы живности, называется логическим игроком. логический игрок 1, логический игрок 2, и так далее. Рассуждения: Об описании скриптовых команд - sun - 27.01.2002 КалбасКа. Ну, вообще не о том... Да причем здесь оправдания как можно представить себе нечто. У меня достаточно фантазии чтобы понять, что могут быть некие виртуальные, логические игроки. Читай внимательно мое сообщение и задумайся по существу. Я не буду больше повторять одно и тоже…. И к вашему сведению в ПЗ существует только одно значение nPlayer – это «0». Неужели вы не видите в теме у Чейза: «Функции для работы с группами» противоречий? Посмотрите повнимательнее…. Рассуждения: Об описании скриптовых команд - sun - 27.01.2002 И ещё одно уточнение nPlaeyr, по значению всегда совпадает с nGroup для Игрока. То есть Зак (и его помощники) как игрок - 0 и как Группа где он находится - тоже 0. Других игроков групп в ПЗ не существует, даже в МП на каждой машине Игрок равен 0. Если вы не измените своё понимания по отношению скриптовым командам, то столкнётесь с ошибками в идентификации и других функций. Рассуждения: Об описании скриптовых команд - sun - 27.01.2002 У меня несколько вопросов и просьб: Нам нужна база данных, а не повесть о консольных командах и процедурах. Я прошу Вас, осмысливайте каждую запись, а не переписывайте у Чейза все в подряд. Обязательно несколько раз проверяйте лично все команды. Очень хочется, чтобы небыли ошибки в нашей базе. Итак, будем внимательными. Например, поступила проверенная функция от вас: «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. Можете об этом указать отдельно в конце сообщения.) З.Ы.: С тем списком, что вы сейчас создаете работать сложно. И кстати очень похоже на «повесть» о консольных командых и скриптовых процедурах как на сайте у Чейза. Нам нужна база данных, которую можно будет использовать в конструкторе уровней. [ 22 апреля 2002: Изменил: Holy Warrior ]</p> Рассуждения: Об описании скриптовых команд - Vasya - 27.01.2002 Вопрос такой: а зачем нам база данных? Разве команды нужны не для тех, кто будет программировать различные события аддона? В любом случае, как мне кажется, нужно и то, и другое (и база, и "повесть"). цитата Цитата:GetDiplomacy (nGroupA: float , nGroupB: float ) : floatПринимаем формат Паскаля, а не Си? Ну ладно, я не против, хотя Си - более популярный язык. Группа юнитов и игрок - это совсем разные понятия (и разные типы данных). Названия процедур и функций явно дают понять, что имеется в виду в каждом конкретном случае. Например, GetPlayer : float выводит именно игрока (как можно иначе перевести слово "player"?), а GetPlayerUnits : group - группу юнитов игрока. [ 26 января 2002: Изменил: Vasya ]</p> Рассуждения: Об описании скриптовых команд - Vasya - 27.01.2002 sun Ну, непонимание с моей стороны - это нормально, надо уже привыкать. Ладно, насчёт дипломатии. Насколько я понимаю, это свойство задаётся только тем группам, которые обозначены, как player'ы. То есть, нельзя выделить произвольную группу юнитов (например, командой UnitSee) и задать дипломатию для неё. С этим ты согласен? И разве нельзя по этому принципу разделить player и group? Честно говоря, я не знаю, что такое "собственный класс данных", я бы сказал, что group - это контейнер класса object. (Object - тоже не лучшее название для класса, но ничего не поделаешь.) При этом, видимо, player (в ниваловском пониманиии) - это класс, ассоциированный с group по принципу 0..1 - 1. Не каждая group соответствует некоторому player, но каждому player соответствует group. У объекта класса player есть атрибут "номер", который его однозначно идентифицирует (в пределах игровой зоны), а у объекта класса group такого атрибута нет. Поэтому я не понимаю, что ты подразумеваешь под nGroup. :wacko: <blockquote><font size="1" face="Verdana, Helvetica, sans-serif">цитата Цитата:в ПЗ существует только одно значение nPlayer – это «0».Это я вообще не понял. Где существует? Что значит "существует"? <blockquote><font size="1" face="Verdana, Helvetica, sans-serif">цитата Цитата:Неужели вы не видите в теме у Чейза: «Функции для работы с группами» противоречий?Стараюсь, но не вижу. Рассуждения: Об описании скриптовых команд - sun - 27.01.2002 У меня открылись глаза... Я понял. Спасибо. Рассуждения: Об описании скриптовых команд - Alexy III - 27.01.2002 Ok. Рассуждения: Об описании скриптовых команд - sun - 28.01.2002 Vasya. Видимо стОит поподробнее написать… Ты раскрыл мне глаза, что заниматься дальше объяснением моей точки зрения тебе, в форме диалога - есть бессмысленное занятие. Я заметил, что ты практически никогда не задаешь вопросов, в которых ты не компетентен, а если и задаешь, то сам же на них и отвечаешь, и к тому же даешь советы. Я ждал от тебя вопросов по существу проблемы, а ты перешел в частности. В твоем последнем сообщении, на мой взгляд, слишком много ошибок в методике классификации структуры ПЗ, да и сквозит раздражение…. Логично было, отвечая «…Стараюсь, но не вижу.» на мой вопрос, задать встречный вопрос, но этого не последовало. И мне осталось только развести руками… У меня сложилось впечатление, что тебе психологически очень трудно признавать свои ошибки. Я попытаюсь на форме, в виде монолога, довести тебе моё виденье структуры ПЗ и классификацию терминов и понятий консольных команд, процедур и функций для скрипитов. Я обязательно буду использовать ваш опыт из темы «Разбор скриптовых команд.». |