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

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


Купить игры
 



Чат
 
500


Статистика
 
Пользователи, посетившие сайт за текущий день:
Miky, Maydg, egor-but, ВИТар, nkbaka, BOPOH50, Andrey__3010, Badgert, ukdouble1, Одинокий_Странник, Solar_Wind, Vika, Artaresto, Bendiiiiik
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Модератор форума: NikK  
Форум » Ад-доны для игр серии Корсары » FAQ по модам - "Сделай мод сам" » Всего по чуть-чуть.
Всего по чуть-чуть.
NathanielДата: Среда, 29.01.2014, 01:09 | Сообщение # 201
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата Mett ()
тогда будет нелогично собирать колечки да цепочки с крабов

Зачем тогда их добавлять? Для халявы? )))
Я однажды поставил этот мини-мод, погонял крабов... Не понравилось... Скорость замедлил, текстуру перерисовал... Всё равно не понравилось, атмосферы мало... Не знаю как для К:ГПК, но для ККС точно не в тему, как мне кажется...


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


Сообщение отредактировал Nathaniel - Среда, 29.01.2014, 01:13
MettДата: Среда, 29.01.2014, 01:32 | Сообщение # 202
Капитан I ранга
Группа: Корсар
Сообщений: 586
Награды: 91
Репутация: 565
Статус: В открытом море
я с такой мод у себя тоже не ставил
только в КПС с крабами играл)

но если бы я портировал такое к себе, то сделал бы свой персональный лут для крабов - например клешни или что-нибудь в таком роде)


Что толку, если не можешь сделать мир лучше.
ReborodaДата: Среда, 29.01.2014, 14:23 | Сообщение # 203
Мичман
Группа: Корсар
Сообщений: 146
Награды: 10
Репутация: 111
Статус: В открытом море
Mett, Nathaniel, не знаю почему, но у меня кулаки у дохлых крабов не выпадают. Они пустые. Не помню че я уже поменял в коде, но кулаков не выпадает.
Я бы даже лучше ввернул им новый итем: "крабье мясо" либо "крабий панцирь", не как пищу персам, а как ингредиент для какого-нибудь рецепта. На этом можно будет делать некоторые бабки по началу игры, сбывая торгашам, а после приобретения рецепта - создавать какую-нибудь дельную штуку, в комбе с каким-нибудь кораллом, серебряным стаканом и хз чем еще. )

Добавлено (29.01.2014, 14:23)
---------------------------------------------
Но это понятно не всем нравится, возиться с этим. Знаю некоторых, кого К:КС поначалу вообще дико взбесил, и именно своими танцами с бубном. А мне так нравится что-то шаманить в игре.)


- Бизнесмен убъет в вас зрителя, но ты... Билли... Неужели тебе это могло понравиться?
- Да я вообще только одним глазком...


Сообщение отредактировал Reboroda - Среда, 29.01.2014, 14:26
NathanielДата: Среда, 29.01.2014, 14:30 | Сообщение # 204
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата Reboroda ()
Я бы даже лучше ввернул им новый итем: "крабье мясо" либо "крабий панцирь"

Так сделайте:
- добавьте нужный предмет в инвентарь;
- пропишите им sld.SaveItemsForDead = true;

Должно работать!..

Цитата Reboroda ()
мне так нравится что-то шаманить в игре

А кому не нравится! Сам копаюсь в скриптах разных игр серии с 2005 года, начиная с ПКМ и заканчивая ККС.


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


Сообщение отредактировал Nathaniel - Среда, 29.01.2014, 14:33
ReborodaДата: Среда, 29.01.2014, 15:03 | Сообщение # 205
Мичман
Группа: Корсар
Сообщений: 146
Награды: 10
Репутация: 111
Статус: В открытом море
Цитата Nathaniel ()
добавьте нужный предмет в инвентарь;

Сделано.
Цитата
GiveItem2Character(sld, "Mineral25");

"Mineral25" - мой итем. Все работает.)

Согласен, для К:КС крабы не катят. Как-то глуповато это, тем более если нападают на ГГ. Поменял им кстати пол на man, а то crab делает их атаки ядовитыми.)

...Упс. У них теперь здоровья как у людей прибавилось! Придется обратно краба прописывать.


- Бизнесмен убъет в вас зрителя, но ты... Билли... Неужели тебе это могло понравиться?
- Да я вообще только одним глазком...


Сообщение отредактировал Reboroda - Среда, 29.01.2014, 15:06
NikKДата: Среда, 29.01.2014, 15:21 | Сообщение # 206
Капитан I ранга
Группа: Корсар
Сообщений: 1682
Награды: 91
Репутация: 689
Статус: В открытом море
Цитата Reboroda ()
А мне так нравится что-то шаманить в игре.)

Вот ведь и получается, сначала что-то делаешь, чтоб потом поиграть, а потом понимаешь, что делаешь ради того, чтоб делать.


Цитатами пользуются те, кто не в состоянии формулировать собственные мысли.
ReborodaДата: Среда, 29.01.2014, 20:02 | Сообщение # 207
Мичман
Группа: Корсар
Сообщений: 146
Награды: 10
Репутация: 111
Статус: В открытом море
Цитата NikK ()
сначала что-то делаешь, чтоб потом поиграть, а потом понимаешь, что делаешь ради того, чтоб делать.

Точно. Раньше я не понимал ту касту умельцев, что сидела в нашем клубе в стороне, не резалась в мультиплеерные и тд, и пускала посмотреть свои наработки "раз в месяц по четвергам", а в остальном - посылала подальше. Теперь меня самого затянуло в это дело по уши. извиняюсь.

Добавлено (29.01.2014, 20:02)
---------------------------------------------
В завершение крабьей темы: мои текстуры для пляжных крабов. yandex Теперь они болотно-зеленого цвета, для разнообразия. Перекопировал с фотки краба в фотопе.



- Бизнесмен убъет в вас зрителя, но ты... Билли... Неужели тебе это могло понравиться?
- Да я вообще только одним глазком...


Сообщение отредактировал Reboroda - Среда, 29.01.2014, 15:38
NathanielДата: Вторник, 18.02.2014, 22:41 | Сообщение # 208
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Многие из вас, я думаю, помнят "фишку" из ВМЛ. Можно было нажать на клавиатуре функциональную кнопку и бегать сколько влезет по локации, зафиксировав камеру в одной точке. Нашёл способ отвязать камеру от ГГ, что называется, "малой кровью", без излишней рутины с камерой...

Вот скриншоты!..


Как сделал...
В файле MainHero_dialog.c прописал две простые функции.
Код
Link.l10 = RandPhraseSimple("Не сейчас. Нет времени.", "Некогда. Дела ждут.");
Link.l10.go = "exit";

link.l15 = "Перенести устаревшие записи в архив в судовом журнале!";
link.l15.go = "Close_SB";

link.l16 = "Погулять по местности!";
link.l16.go = "FreeWalk";

link.l17 = "Установить камеру на себя!";
link.l17.go = "SetCameraOnMe";

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

Ниже сами простенькие функции, прописанные внутри switch(Dialog.CurrentNode):
Код
case "FreeWalk": DialogExit(); break;
case "SetCameraOnMe": DialogExit_Self(); break;

Буду признателен тому, кто мне разъяснит способ, с помощью которого можно всё это запилить на кнопки и усовершенствовать...


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
MettДата: Среда, 19.02.2014, 01:51 | Сообщение # 209
Капитан I ранга
Группа: Корсар
Сообщений: 586
Награды: 91
Репутация: 565
Статус: В открытом море
Nathaniel, чтоб действия к кнопкам привязать нужно дописывать функцию void ProcessControls() она в файле seadogs.c
там есть свич где прописаны названия для кнопок

я бы делал так:
один кейс для управления камерой
булом задал проверку на привязку к ГГ/свободную камеру
бул лучше бцудет вынести в глобальные переменные
case "xxx":
if(булево значение)
{
//отвязать камеру
}else{
//привязать камеру
}
break;

дальше нужно править файл controls_init.c

CI_CreateAndSetControls( "", "название кейса", CI_GetKeyCode("VK_F11"), 0, false );
первые кавычки - группа клавиш (в данном случае пустые)
вторые кавычки - название кейса в ProcessControls
дальше задаешь кнопку
последние два значения уже не помню, надо смореть в коде функции


Что толку, если не можешь сделать мир лучше.
NathanielДата: Среда, 19.02.2014, 03:14 | Сообщение # 210
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата Mett ()
я бы делал так

Безусловно, так лучше...
Но я не умею вообще назначать управление на кнопки... Тысячу раз пытался, у меня игра намертво останавливается практически всегда. Очевидно, где-то чего-то не дописываю или неверно задаю... В особенности не разобрался именно в процедуре [i]CI_CreateAndSetControls(), почему и решил сделать через меню диалогов.

Но спасибо, нужно разобраться и попытаться ещё раз!..

Цитата Mett ()
первые кавычки - группа клавиш (в данном случае пустые)

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


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
MettДата: Среда, 19.02.2014, 07:07 | Сообщение # 211
Капитан I ранга
Группа: Корсар
Сообщений: 586
Награды: 91
Репутация: 565
Статус: В открытом море
Цитата
Но что из себя представляет вот эта "группа клавиш"?

их несколько типов:
1. клавиши на суше
2. клавиши в море от 1-ого лица
3. клавиши в море от 3-его лица
4. клавиши для глобалки
5. интерфейсные
6. диалоговые

а список всех доступных клавиш для использования находится в самом низу файла


Что толку, если не можешь сделать мир лучше.
NathanielДата: Суббота, 22.02.2014, 14:55 | Сообщение # 212
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Наверное, некоторые из вас замечали уже не раз, что при потоплении корабля фортом или другим судном в лог выводится записи вроде:
- "корабль <название> был потоплен <имя>";
- "корабль <название> был потоплен форт <название>";

Без склонений, без разделения текста в логе в случае потопления фортом или другим кораблём... Меня, например, это не устроило (предпочитаю писать грамотно) и я решил это дело переписать...

Результат:
- "корабль <название> был потоплен капитаном по имени <имя>";
- "корабль <название> был потоплен гарнизоном форта <название_колонии>";

Необходимое условие: названия фортов в указанном файле и в файле common.ini должны быть идентичны!

Установка:
- открыть \program\sea_ai\aiship.c;
- найти процедуру ShipDead();
- найти секцию Ship sunk log;
- сделать резервную копию файла aiship.с;
- скопировать содержимое файла, прикреплённого к этому сообщению, и заменить секцию Ship sunk log;
- играть (новая игра не требуется);

Подойдёт и для К:ГПК, и для ККС.

Прикрепления: ShipDead-.cpp (4.6 Kb)


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


Сообщение отредактировал Nathaniel - Суббота, 22.02.2014, 14:58
NathanielДата: Вторник, 26.08.2014, 03:48 | Сообщение # 213
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
На этот раз хотелось бы рассказать немного о "тушении" оставшихся "на века" от индейцев и бандитов костров в локациях игры К:КС... Очень уж долго это явление действовало мне на нервы. В связи с этим решено было добавить в MainHero_dialog.c небольшую процедуру...

Решение нашлось не сразу... Чего только не перепробовал: и локатор обновлял, и пытался удалить партикл огня, и пытался создать новый партикл...

Итак, как же это сделать, если вы играете со скриптами игры К:КС? Оказывается, до неприличия просто... Можно, например, открыть файл MainHero_dialog.c и вписать в главный кейс дополнительную ветку для диалога. У меня она получилась восьмой по счёту.

Код
link.l8 = "Погасить брошенный костёр на этой местности...";
link.l8.go = "fire_off";

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

Код

case "fire_off":
        dialog.text = "Хорошо... У меня как раз есть с собой бутылка с водой. Пригодится...";
        link.l1 = "Приступим!";
        link.l1.go = "fire_off_1";
        // антураж
        PlayStereoSound("ambient\tavern\krujki_001.wav");
        PlayStereoSound("ambient\tavern\naliv_003.wav");
break;

case "fire_off_1":
        DialogExit_Self();

        // основной блок
        ref rFire = &Locations[FindLocation(pchar.location)];
        DeleteAttribute(rFire, "fire");
         
        // эта процедура необходима, чтобы не менять локацию
        DeleteParticles();

        // антураж
        WaitDate("", 0, 0, 0, 0, 10);
break;

И всё. Сохраняйте файл, запускайте игру и гасите оставшиеся от индейцев и бандитов костры по всем Карибам...


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
PirateModderДата: Вторник, 26.08.2014, 21:42 | Сообщение # 214
Пороховая обезьяна
Группа: Корсар
Сообщений: 19
Награды: 3
Репутация: 25
Статус: В открытом море
Озвучка зазывания клиентов для уличных торговцев.

В ККС, многие фразы озвучки уличных торговцев не подходят для отображения ситуации: общение ГГ - торговец. Торгаши словно обращаются к толпе, а не к нам. Этот момент напомнил мне, что давным-давно, копаясь в скриптах ГПК, я набрёл на заинтересовавшую меня фичу. Но мне лень было искать подходящие звуки и я благополучно забил на это. А в ККС нужные звуковые ресурсы есть!

К сути: в файле PROGRAM\Loc_ai\types\LAi_merchant.c ищем функцию:

void LAi_type_merchant_Ask(aref chr).

Вместо строчки LAi_CharacterPlaySound(chr, "merchant");, пишем:
Код

         if(rand(100) < 5) // добавим рандома, чтобы часто не орали
         {
             if (chr.sex == "man") LAi_CharacterPlaySound(chr, "item_trader_man"); // разбитие по половому признаку
             else LAi_CharacterPlaySound(chr, "item_trader_woman");
         }


Функция целиком:


item_trader_man(мужские голоса) и item_trader_woman(женские) добавляем в любой .ini файл, используемый игрой(для порядка, в sound_alias.ini). Заполняем эти секции подходящими файлами из ККС, или других игр. Подбираем уровни звука и расстояния. Всё.

Приятно, например, пробегая по торговой площади Бриджтауна, краем уха слышать: "Спешите! Только сегодня, over9000 товаров по цене over8999'ти!". С частотой воспроизведения главное не перемудрить...


Сообщение отредактировал PirateModder - Вторник, 26.08.2014, 21:47
ChernozmeyДата: Вторник, 09.09.2014, 13:04 | Сообщение # 215
Капитан II ранга
Группа: Корсар
Сообщений: 461
Награды: 36
Репутация: 323
Статус: В открытом море
Если вдруг вы решили добавь солдат в город, или поменять их модельки, а также поменять или добавить модели при абордаже, вот как это можно сделать. Открываем файл nations_init.с путь program\nations и видим такой код;
Код
void InitNations()
{
  ref rNation;
  //England
  makeref(rNation,Nations[ENGLAND]);
  rNation.Name = "England";
  rNation.ShortName = "Eng";
  rNation.worldMapShip = "british";
  //Location fantom models
  rNation.fantomModel.m0 = "off_eng_1";
  rNation.fantomModel.m1 = "off_eng_2";
  rNation.fantomModel.m2 = "sold_eng_1";
  rNation.fantomModel.m3 = "sold_eng_2";
  rNation.fantomModel.m4 = "sold_eng_3";
  rNation.fantomModel.m5 = "sold_eng_4";
  rNation.fantomModel.m6 = "sold_eng_5";
  rNation.fantomModel.m7 = "sold_eng_6";
  rNation.fantomModel.m8 = "sold_eng_7";
  rNation.fantomModel.m9 = "sold_eng_8";
  //Boarding models
  rNation.boardingModel.enemy.m1 = "off_eng_1";
  rNation.boardingModel.enemy.m1.ani = "man";
  rNation.boardingModel.enemy.m2 = "off_eng_2";
  rNation.boardingModel.enemy.m2.ani = "man";
  rNation.boardingModel.enemy.m3 = "sold_eng_1";
  rNation.boardingModel.enemy.m3.ani = "man";
  rNation.boardingModel.enemy.m4 = "sold_eng_2";
  rNation.boardingModel.enemy.m4.ani = "man";
  rNation.boardingModel.enemy.m5 = "sold_eng_3";
  rNation.boardingModel.enemy.m5.ani = "man";
  rNation.boardingModel.enemy.m6 = "sold_eng_4";
  rNation.boardingModel.enemy.m6.ani = "man";
  rNation.boardingModel.enemy.m7 = "sold_eng_5";
  rNation.boardingModel.enemy.m7.ani = "man";
  rNation.boardingModel.enemy.m8 = "sold_eng_6";
  rNation.boardingModel.enemy.m8.ani = "man";
  rNation.boardingModel.enemy.m9 = "sold_eng_7";
  rNation.boardingModel.enemy.m9.ani = "man";
  rNation.boardingModel.enemy.m10 = "sold_eng_8";
  rNation.boardingModel.enemy.m10.ani = "man";


Это, код для Англичан, далее в файле есть все остальные нации. Добавим солдат в город. Копируем строку
Код
rNation.fantomModel.m9 = "sold_eng_8";

И меняем m9 на m10, m11 и т.д. в зависимости, сколько солдат добавляете. А чтобы сменить модель солдата, меняете sold_eng_8 на имя другой модели, которую желаете. Все модели можно найти в папке RESOURCE\MODELS\Characters

С абордажем почти тоже самое, только там все завязано на анимации боя. Это, к тому, что, если добавляете на абордаж женские модели, убедитесь, что у них есть соответствующая анимация, иначе, модель будет дербанить во все стороны. Итак, копируем строки
Код
rNation.boardingModel.enemy.m10 = "sold_eng_8";
  rNation.boardingModel.enemy.m10.ani = "man";

Меняем m10 на m11, m12 и т.д.в зависимости сколько моделей добавляем, саму модель меняем как и в первом случае. Меняете sold_eng_8 на имя другой модели, и если вы выбрали женскую модель, то во второй строке пишите woman, а если модель мужская, то оставте все как есть.
MettДата: Среда, 10.09.2014, 06:31 | Сообщение # 216
Капитан I ранга
Группа: Корсар
Сообщений: 586
Награды: 91
Репутация: 565
Статус: В открытом море
может кому надо такое
Код
//поиск арксинусов
float asin(float x)
{
   if(x == 0) return 0;
   float f = atan(makefloat(x/sqrt(1-(x^2))));
   return f;
}

Код
//поиск арккосинусов
float acos(float x)
{
   if(x == 0) return 0;

   float f = PId2 - asin(x);
   if(0 <= f <= PI) return f;
   else
   {
    Log_TestInfo("acos error! f = " + f + NewStr() + "function set value 0");
    return 0;
   }
}

p.s. работает корректно, но мб ошибка в матане есть, т.к. в школе двоечником был


Что толку, если не можешь сделать мир лучше.
Джин-БейнДата: Среда, 10.09.2014, 09:33 | Сообщение # 217
Капитан I ранга
Группа: Команда Аддона
Сообщений: 1073
Награды: 40
Репутация: 197
Статус: В открытом море
Mett, че за код че за поиск арксинусов? я блин ни в один адон не до играл и не пойму о чем речь.

MettДата: Среда, 10.09.2014, 18:37 | Сообщение # 218
Капитан I ранга
Группа: Корсар
Сообщений: 586
Награды: 91
Репутация: 565
Статус: В открытом море
Джин-Бейн, дык это же обычные геометрические функции
в двиге ГПК их нет, поэтому я написал скриптовый аналог, вдруг для каких-нибудь расчетов пригодится
мне они уже не надо, вот и выложил тут


Что толку, если не можешь сделать мир лучше.
Джин-БейнДата: Среда, 10.09.2014, 18:41 | Сообщение # 219
Капитан I ранга
Группа: Команда Аддона
Сообщений: 1073
Награды: 40
Репутация: 197
Статус: В открытом море
все равно не понял, че за геометрические функции блин мет, тут на форуме пасуться не только програмеры ну и те кто хочет почерпнуть че нить

NathanielДата: Среда, 10.09.2014, 19:02 | Сообщение # 220
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата Джин-Бейн ()
все равно не понял, че за геометрические функции

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

Mett, я могу ошибаться, но в первом случае числитель и знаменатель надо поменять местами...



Со второй пока не разбирался...


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
Форум » Ад-доны для игр серии Корсары » FAQ по модам - "Сделай мод сам" » Всего по чуть-чуть.
Поиск:

Copyright Pirates-Life.Ru © 2008-2024


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