Форма входа
 
Приветствуем тебя, корсар Юнга!

Гость, мы рады вас видеть. Пожалуйста зарегистрируйтесь или авторизуйтесь!


Купить игры
 



Чат
 
500


Статистика
 
Пользователи, посетившие сайт за текущий день:
korsar01, grenadier, ukdouble1, LenkaLan, werter707
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

  • Страница 1 из 1
  • 1
Модератор форума: NikK  
Как мне найти нужную функцию?
MettДата: Суббота, 22.02.2014, 18:24 | Сообщение # 1
Капитан I ранга
Группа: Корсар
Сообщений: 586
Награды: 91
Репутация: 565
Статус: В открытом море
Итак, для того, чтобы не мучиться и не просматривать весь, иногда достаточно объемный файл с кодом, есть стандартный Windows-поиск.
Например, нам нужно найти функцию, которая добавляет деньги персонажу.
Мы знаем, что она называется AddMoneyToCharacter(…)
Открываем поиск.
Вводим в строку название функции.

В результате у нас показывает все файлы, в которых есть вызов данной функции. Но их слишком много, чтобы не просматривать все файлы, будем отсеивать.

Итак, у нас есть 8 типов функций: void, int, float, ref, aref, string, bool, object.
Начинаем искать нашу функцию: вводим void + название функции – результата нет.

Дальше поочередно подставляем типы функций, пока не получим один файл с нужной нам функцией. В данном случае верный тип функции был int.

Теперь уже пользуемся поиском по файлу в том редакторе, которым работаете и находите нужную функцию.

Теперь еще один пример. На этот раз возьмем функцию SetTimeScale(…).
Начинаем поиск. Видим файлы, в которых эта функция используется.

Теперь поочередно перебираем типы функций, но не в одном файле не нашелся полный код это функции.


Вывод: функция напрямую интегрирована из движка, и изменить ее вам не удастся.. ну разве что у вас есть код этого самого движка.

С уважением, Mett.
Спасибо пользователю Джин-Бейн за мотивацию к написанию данного пособия.

Прикрепления: 1114320.jpg (155.5 Kb) · 7589055.jpg (313.0 Kb) · 8335123.jpg (150.7 Kb) · 7041533.jpg (158.2 Kb) · 9760090.jpg (271.5 Kb) · 2305109.jpg (151.4 Kb) · 4777316.jpg (150.9 Kb)


Что толку, если не можешь сделать мир лучше.
korsar01Дата: Суббота, 22.02.2014, 18:57 | Сообщение # 2
Мичман
Группа: Корсар
Сообщений: 186
Награды: 6
Репутация: 46
Статус: В открытом море
Отличный способ, а то многие задают подобные вопросы. Сам же пользуюсь поиском в программе notepad++, в ней же есть и поиск по файлам, очень удобный, кстати.
NathanielДата: Суббота, 22.02.2014, 21:13 | Сообщение # 3
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата korsar01 ()
Сам же пользуюсь поиском в программе notepad++, в ней же есть и поиск по файлам, очень удобный, кстати.

Им удобно пользоваться, спору нет... Но на втором этапе, при поиске требуемого элемента в найденном файле! А вот первоначальный поиск лучше начинать именно с метода, опубликованного в первом посте!

Рекомендую также добавить список возможных объектов поиска:
1. Фрагменты диалогов... Выбираем любую цитату из диалогов в игре, вбиваем в поиск по первому алгоритму. Гарантия найти - 99.9%. Важно соблюдать регистр.

2. Общие шаблоны для переименования, перемещения, дальнейшего поиска. Например, если нужно быстро найти ссылки на все диалоги в скриптах.
Можно задать, к примеру, вот так:
- dialog.filename = "
- Dialog.Filename = "
- dialog.Filename = "


3. Директивы #include. Этому пункту следует уделить особое внимание, т.к. вводить символ "#" в строку поиска нельзя! Поэтому лучше искать:
include "

4. Строковые элементы, записанные в кавычки в case ""; именно с ними чаще всего возникают проблемы... Написали обращение, а нужного кейса нет. Проверяйте, копируя весь заголовок.

5. Привыкайте ставить свои уникальные метки в файлы, маркировать места, где вы "пошаманили" в последний раз. Так проще найти требуемое. Придумайте свою систему маркирования. Это нужно для того, чтобы, например, понять написанное вами же спустя полгода или год спустя. Такие метки запросто делаются при помощи комментирования в C/C++:

Код
// это однострочный комментарий

Код
/* Здесь будет многострочный комментарий...
Раз
Два
Три
Четыре
Пять
Вышел Зайчик Погулять
*/

Эти строки игнорируются компилятором C/C++ и точно так же не будут "видны" движку игры.

6. Ну и самое золотое правило, пожалуй... Оптимальный вариант - используйте для редактирования скриптов редактор с подсветкой синтаксиса С/С++! С его помощью, например, вы никогда не напишете vdoid(), voidd() или fldoad(), закроете все кавычки в строковых переменных или тексте и не допустите оплошностей при редактировании числовых величин.

К примеру, вот так выглядит код у меня... Мне так удобнее...


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!


Сообщение отредактировал Nathaniel - Суббота, 22.02.2014, 21:29
IvanCorsair29GLДата: Вторник, 04.03.2014, 16:08 | Сообщение # 4
Матрос
Группа: Корсар
Сообщений: 58
Награды: 5
Репутация: 35
Статус: В открытом море
Очень удобный способ!))

05
NathanielДата: Суббота, 11.11.2017, 22:38 | Сообщение # 5
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Уважаемые мододелы!
С момента написания первого поста этой темы прошло уже много времени. К сожалению, родной поиск (я считаю его более удобным) по ключевым словам в Windows XP Service Pack 3 доступен не всем, а как искать нужный элемент в скриптах при помощи поиска по ключевым словам в Windows 7, многие ещё не знают. Тем не менее, всё очень просто! Рассмотрим порядок действий...

Шаг №1. Изменить правила поиска в "проводнике" Windows. Для этого выполните:

Проводник ->> Упорядочить ->> Параметры папок и поиска

В открывшемся окне выберите вкладку "Поиск" и поставьте галочку около пункта "Всегда искать по именам файлов и содержимому..." Остальные значение можете менять на свой вкус, если пожелаете.


Теперь откройте корневую папку, в которой необходимо найти слово или фразу в одном из файлов этой папки или в подпапках. В поле поиска в правом верхнем углу проводника впишите требуемое слово. Поиск начнётся сразу же... После окончания поиска или до его завершения можете просматривать содержимое файлов по ключевым словам при помощи стандартной опции "Найти..." в конкретном файле, открытом в "блокноте" или любом другом текстовом редакторе.


Для примера было введено слово "головорез". Как видите, поиск отработал успешно...

=====
После окончания всех поисковых операций не забудьте вновь изменить параметры поиска, иначе не сможете пользоваться быстрым поиском по проиндексированным элементам ваших данных!


Сообщение отредактировал Nathaniel - Суббота, 11.11.2017, 22:43
kacatikДата: Вторник, 14.11.2017, 13:00 | Сообщение # 6
Мичман
Группа: Корсар
Сообщений: 93
Награды: 1
Репутация: -31
Статус: В открытом море
notepad++ ! ищу токо с этой помошьу - по всему program+resource - достаточно и удобно!
vim -- сравниваю files и смотрю ошибки синтахиса и огрехи кода (даже если прога игнорирует их - не ленюсь почистить - однажды попутно токо подправив отступ //много строк функции, не моё!\\ избавился от глюка))


Сообщение отредактировал kacatik - Вторник, 14.11.2017, 13:24
  • Страница 1 из 1
  • 1
Поиск:

Copyright Pirates-Life.Ru © 2008-2024


Семь Футов под Килем - Бухта Корсаров и Пиратов!