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

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


Купить игры
 




Чат
 
500


Статистика
 
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

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

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

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

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

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

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

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


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

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

Прикрепления: 1114320.jpg(156Kb) · 7589055.jpg(313Kb) · 8335123.jpg(151Kb) · 7041533.jpg(158Kb) · 9760090.jpg(271Kb) · 2305109.jpg(151Kb) · 4777316.jpg(151Kb)


Что толку, если не можешь сделать мир лучше.
korsar01Дата: Суббота, 22.02.2014, 18:57 | Сообщение # 2
Мичман
Группа: Корсар
Сообщений: 172
Награды: 5
Репутация: 36
Статус: В открытом море
Отличный способ, а то многие задают подобные вопросы. Сам же пользуюсь поиском в программе notepad++, в ней же есть и поиск по файлам, очень удобный, кстати.
NathanielДата: Суббота, 22.02.2014, 21:13 | Сообщение # 3
Контр-адмирал
Группа: Капитан
Сообщений: 6648
Награды: 293
Репутация: 1497
Статус: В открытом море
Цитата 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
Форум » Ад-доны для игр серии Корсары » FAQ по модам - "Сделай мод сам" » Как мне найти нужную функцию? (Использование поисковика Windows для чайников.)
Страница 1 из 11
Поиск:

Copyright Pirates-Life.Ru © 2008-2016


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