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

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


Купить игры
 



Чат
 
500


Статистика
 
Пользователи, посетившие сайт за текущий день:
korsary4, AndryKrol, kep_Blood, Andrey__3010, Ramaloce, Badgert, Kriogener, ukdouble1, LenkaLan, MarisaBel, Walgreid
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Модератор форума: NikK  
Вопросы по созданию модификаций
NathanielДата: Понедельник, 25.01.2016, 12:10 | Сообщение # 1781
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата ШЕЛЕН ()
я не знаю,как мне понравившиеся идеи должны работать!

А между тем, именно это - постановка конкретной задачи! - и очень важно! Если Вы хотите, чтобы Вам помогли - распишите подробно: что и как должно работать, а как - не должно. Иначе Вам могут посоветовать совсем не то, что Вам нужно...

Я согласен с тем, что написал Mett - это делается довольно просто. В первом случае - просто ограничить количество кораблей. Во втором - изменить принцип начисления НЗГ.


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
ШЕЛЕНДата: Вторник, 26.01.2016, 06:28 | Сообщение # 1782
Мичман
Группа: Корсар
Сообщений: 85
Награды: 0
Репутация: 11
Статус: В открытом море
Цитата Nathaniel ()
В первом случае - просто ограничить количество кораблей. Во втором - изменить принцип начисления НЗГ.

Хорошо, тогда вот мои вопросы!
1.Как ограничить максимальное количество кораблей в ОЗГ, допустим до 5 ед.?К примеру до 20 тыс. награды один корабль,до 40 тыс. уже два,ну и т.д., чтобы к 100 тыс. награды было 5 кораблей!!
2.Как изменить принцип начисления НЗГ?А именно если не остаются свидетели, то и нет начисления награды.
NathanielДата: Вторник, 26.01.2016, 11:20 | Сообщение # 1783
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата ШЕЛЕН ()
Как ограничить максимальное количество кораблей в ОЗГ, допустим до 5 ед.?

Откройте файл \program\scripts\bountyhunters.c, там найдётся несколько функций генерации этих самых ОЗГ. Сначала рассмотрим SeaHunterCheck() и её содержимое...

Код

for (i = 1; i <= 7; i++)
{
      sld = GetCharacter(NPC_GenerateCharacter(sCapId + i, "off_hol_2", "man", "man", 5, j, 20, true));
      SetShipHunter(sld);
      .....
      .....
      sld.mapEnc.type = "war";
      sld.mapEnc.Name = "охотники за головами";
}

Обратите внимание на то, что часть кода я вырезал, заменив его многоточием. Это не существенно... Обратите внимание на первый цикл и заданное в нём количество повторений - от 1 до 7. Вот это и есть именно то количество, которое будет генерировать игра. Кроме того, можете подправить там желаемые параметры NPC - крутость, ранги, количество боеприпасов и остальные параметры...

То же самое ищете и в теле функции LandHunterReactionResult() по желанию...

Цитата ШЕЛЕН ()
Как изменить принцип начисления НЗГ?

Частично это можно сделать в этом же файле... В теле функции LandHunterReactionResult() есть строчки типа:

Код
pchar.HunterCost = abs(ChangeCharacterNationReputation(pchar, j, 0));
pchar.HunterCost = makeint(PChar.HunterCost)*2000 + rand(5000);

Можно изменить цифры или переписать эту формулу.

Теперь можете воспользоваться поиском по ключевым словам и найти файл, в котором ведётся расчёт НЗГ... Я обычно ищу строку типа: "награду за Вашу голову" в папке со скриптами. В итоге, нашёлся один файл RPGUtiilite.c, а в нём функция ChangeCharacterHunterScore() - там можно "навести свой порядок" и поменять формулы. Можно даже изменить размер максимальной и минимальной НЗГ.

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


Это все те файлы, откуда эта функция вызывается для изменения НЗГ! Открываете каждый из них (разумеется, кроме текстовых) и ищете там место, откуда вызывается эта функция. Убираете или изменяете её местоположение или условие, из которого она вызывается. Надеюсь, понятно?


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


Сообщение отредактировал Nathaniel - Вторник, 26.01.2016, 11:22
ШЕЛЕНДата: Вторник, 26.01.2016, 21:20 | Сообщение # 1784
Мичман
Группа: Корсар
Сообщений: 85
Награды: 0
Репутация: 11
Статус: В открытом море
Цитата Nathaniel ()
Надеюсь, понятно?

О-о да!!
Большой мерси!! -drinks-
SIGДата: Воскресенье, 31.01.2016, 09:36 | Сообщение # 1785
Пороховая обезьяна
Группа: Корсар
Сообщений: 19
Награды: 3
Репутация: 5
Статус: В открытом море
Как найти папку программ в Корсарах ПС 1.01.0112. Все облазил не нашел или как достать из игры хотел изменить скорость Монавра ???

WQR
MettДата: Воскресенье, 31.01.2016, 09:47 | Сообщение # 1786
Капитан I ранга
Группа: Корсар
Сообщений: 586
Награды: 91
Репутация: 565
Статус: В открытом море
SIG, а КПС папка program скрыта

Что толку, если не можешь сделать мир лучше.
SIGДата: Воскресенье, 31.01.2016, 10:12 | Сообщение # 1787
Пороховая обезьяна
Группа: Корсар
Сообщений: 19
Награды: 3
Репутация: 5
Статус: В открытом море
Походу что скрыта как открыть ???

Добавлено (31.01.2016, 10:12)
---------------------------------------------
Кто не будь помогите найти PROGRAM в кпс 1.01.0112 ?


WQR
Джин-БейнДата: Воскресенье, 31.01.2016, 12:12 | Сообщение # 1788
Капитан I ранга
Группа: Команда Аддона
Сообщений: 1073
Награды: 40
Репутация: 197
Статус: В открытом море
Вряд ли тебе тут помогут, эта тема табу, разве что только если кто в личку напишет.

SIGДата: Вторник, 02.02.2016, 21:55 | Сообщение # 1789
Пороховая обезьяна
Группа: Корсар
Сообщений: 19
Награды: 3
Репутация: 5
Статус: В открытом море
Подскажите КПС хочу сделать у Летучего голанца что бы пушки были 42калибр а не 32 пробовал чеоез ships сделать не получается ?

WQR
NathanielДата: Вторник, 02.02.2016, 22:20 | Сообщение # 1790
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата SIG ()
хочу сделать у Летучего голанца что бы пушки были 42калибр а не 32

Калибр и прочие параметры корабля, выгруженного в скриптовый сценарий конкретного квеста, нужно менять в том же файле, где описан и сам сценарий. В К:ГПК 1.2.12 этот квест и корабль инициализируются в файле \program\scripts\treasure.c в GhostShipInit() и GhostShipOnMap(), в теле этих двух функций. Где описан квест в К:ПС - я не знаю. Но, возможно, там же...


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
SIGДата: Вторник, 02.02.2016, 22:22 | Сообщение # 1791
Пороховая обезьяна
Группа: Корсар
Сообщений: 19
Награды: 3
Репутация: 5
Статус: В открытом море
Спасибо буду искать

WQR
korsary4Дата: Вторник, 02.02.2016, 22:48 | Сообщение # 1792
Адмирал
Группа: Администратор
Сообщений: 5204
Награды: 496
Репутация: 1935
Статус: В открытом море
Никто случайно не смотрел, как определять какая погода в данной локации? Ну и там такие параметры как дождь, шторм.
Из-за некоторой специфики локации, в такую погоду не надо будет грузить людей в определенные места. Поэтому за подсказку по условиям буду благодарен.



Единственное, что можно сказать об удаче с уверенностью — она изменит.
--------
NathanielДата: Вторник, 02.02.2016, 23:11 | Сообщение # 1793
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата korsary4 ()
Из-за некоторой специфики локации, в такую погоду не надо будет грузить людей в определенные места

Кстати, отличная идея! Меня давным-давно напрягает обилие горожан на улицах во время жуткого шторма на суше!..

Сам я таких условий не находил... Сам хочу найти...
Но вот интересно - можно ли, например, ввести в игру какие-нибудь глобальные переменные, скажем, логического или целочисленного типа. Которые при запуске определённого типа погоды будут принимать заданные значения. И потом по квестам проверять их значения?..


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
NathanielДата: Вторник, 02.02.2016, 23:39 | Сообщение # 1794
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата korsary4 ()
Кому тоже будет интересно, смотрите вот эту переменную

Но это ведь только для проверки дождя... А если я, например, захочу проверить грозу, смерч в море (опасно же выходить в море в такую погоду) или мёртвый штиль?..


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
korsary4Дата: Вторник, 02.02.2016, 23:43 | Сообщение # 1795
Адмирал
Группа: Администратор
Сообщений: 5204
Награды: 496
Репутация: 1935
Статус: В открытом море
Nathaniel, ой, я свое сообщение удалил уже))

Цитата Nathaniel ()
грозу, смерч

В них дождь должен иметь место быть)
Для шторма есть bWeatherIsStorm

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



Единственное, что можно сказать об удаче с уверенностью — она изменит.
--------
MettДата: Среда, 03.02.2016, 18:24 | Сообщение # 1796
Капитан I ранга
Группа: Корсар
Сообщений: 586
Награды: 91
Репутация: 565
Статус: В открытом море
Цитата korsary4 ()
Никто случайно не смотрел, как определять какая погода в данной локации? Ну и там такие параметры как дождь, шторм.
Из-за некоторой специфики локации, в такую погоду не надо будет грузить людей в определенные места. Поэтому за подсказку по условиям буду благодарен.

проверить какой сейчас час
потом найти в массиве погоды этот час и проверять на разные атрибуты

Код
    Weathers[n].Storm = false;
    Weathers[n].Tornado = false;
    Weathers[n].Shark = true;
    Weathers[n].Lights = 0;
    Weathers[n].Night = false;


и проверить
Код
    Weathers[n].Rain.NumDrops = 0;

если капелек больше 0, то какой-никакой дождь да есть


Что толку, если не можешь сделать мир лучше.
SIGДата: Четверг, 04.02.2016, 10:53 | Сообщение # 1797
Пороховая обезьяна
Группа: Корсар
Сообщений: 19
Награды: 3
Репутация: 5
Статус: В открытом море
Подскажите пожалуйста какой файл в ПРОГРАММ отвечает за улучшение каробля на верфи Бермодов ?

WQR
NathanielДата: Четверг, 04.02.2016, 11:57 | Сообщение # 1798
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата SIG ()
улучшение каробля на верфи

\program\dialogs\russian\shipyard\Pirates_Shipyard.c


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
SIGДата: Четверг, 04.02.2016, 12:12 | Сообщение # 1799
Пороховая обезьяна
Группа: Корсар
Сообщений: 19
Награды: 3
Репутация: 5
Статус: В открытом море
Спасибо

Добавлено (04.02.2016, 12:12)
---------------------------------------------
КАК добавить 48калибр в игру что бы продавалось верфи ? Сами они есть в игре . Пробывал прописывать InitGoods выдает ошибку .


WQR

Сообщение отредактировал SIG - Четверг, 04.02.2016, 12:18
NathanielДата: Четверг, 04.02.2016, 12:26 | Сообщение # 1800
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата SIG ()
Пробывал прописывать InitGoods

Этого явно недостаточно... Пушки должны ещё и логически стать пушками 48-го калибра. Для этого...

Их нужно прописать:
- в файле cannons.c внутри функции GetCannonByTypeAndCaliber() в кейсах "cannon" и(или) "culverine";
- в файле ispyglass.c внутри функции SetSpyGlassData() в условии вывода наименования калибра на экран;
- проверить наличие соответствующей записи в заголовочном файле cannons.h и в теле функции GetCannonCaliber();
- в файле InitGoods проверить правильность, должно быть так:

Код
Goods[GOOD_CANNON_48].Name         = "Cannon_48";
Goods[GOOD_CANNON_48].CannonIdx         = CANNON_TYPE_CANNON_LBS48;
Goods[GOOD_CANNON_48].Cost          = Cannon[CANNON_TYPE_CANNON_LBS48].Cost;
Goods[GOOD_CANNON_48].Weight                 = Cannon[CANNON_TYPE_CANNON_LBS48].Weight;
Goods[GOOD_CANNON_48].Units          = 1;
Goods[GOOD_CANNON_48].AfraidWater                = 0;
Goods[GOOD_CANNON_48].type          = TRADE_TYPE_CANNONS;
Goods[GOOD_CANNON_48].canbecontraband       = 0;
Goods[GOOD_CANNON_48].FireRange         = Cannon[CANNON_TYPE_CANNON_LBS48].FireRange;
Goods[GOOD_CANNON_48].DamageMultiply        = Cannon[CANNON_TYPE_CANNON_LBS48].DamageMultiply;
Goods[GOOD_CANNON_48].ReloadTime          = sti(GetCannonReloadTime(&Cannon[CANNON_TYPE_CANNON_LBS48]));


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

Copyright Pirates-Life.Ru © 2008-2024


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