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

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


Купить игры
 



Чат
 
500


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

Модератор форума: NikK  
Вопросы по созданию модификаций
NathanielДата: Четверг, 28.08.2014, 18:56 | Сообщение # 1501
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата Reboroda ()
Такая функция уже была у тебя в коде гашения костров...

Да она повсюду используется, в каждом квесте! Только аргументы различные...


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
ReborodaДата: Четверг, 28.08.2014, 21:09 | Сообщение # 1502
Мичман
Группа: Корсар
Сообщений: 146
Награды: 10
Репутация: 111
Статус: В открытом море
Хм... Тогда вопрос явно посложнее:

Как написать функцию, наподобие вот этой стандартной:

Код
int GetCargoGoods(ref _refCharacter,int _Goods)
{
        string goodsName = Goods[_Goods].name;
        if(!CheckAttribute(_refCharacter,"Ship.Cargo.Goods."+goodsName))
            return 0;
        return sti(_refCharacter.Ship.Cargo.Goods.(goodsName));
}


только чтобы выдавала не кол-во товара в трюмах, а кол-во определенного предмета (item).
Чтобы возможно начиналась так:

int GetCargoItem(ref _refCharacter, string _ItemID)
{
...далее сам код подсчета и выдачи...
}

Никак не соображу. Я прописал там это:

Код
if(!CheckAttribute(_refCharacter,"Cargo.Item."+_ItemID))
return 0;
return sti(_refCharacter.Cargo.Item.(_ItemID));


Но ничего не получилось, тк это неверно.

Добавлено (28.08.2014, 21:09)
---------------------------------------------
... Или может есть альтернативный способ получить это кол-во. К слову, мне нужно именно кол-во определенного айтема в инвентаре ГГ получить.
Потом эта цифра будет использована в скрипте сверки, как "потолок", выше которого у ГГ предмета не забрать.


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


Сообщение отредактировал Reboroda - Четверг, 28.08.2014, 21:11
NathanielДата: Четверг, 28.08.2014, 22:14 | Сообщение # 1503
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата Reboroda ()
может есть альтернативный способ получить это кол-во

Помнится, в квесте ГПК были подобные проверки вроде: "принести 10 мешочков соли", "1 лютню", "3 бутылки..." Это подойдёт?..



Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
ReborodaДата: Четверг, 28.08.2014, 22:42 | Сообщение # 1504
Мичман
Группа: Корсар
Сообщений: 146
Награды: 10
Репутация: 111
Статус: В открытом море
Подошло, спасибо. )

Я кстати забыл про стандартную GetCharacterItem(pchar, "Mineral10")>=10. Блин, ломаю голову, а тут - под носом, причем уже не раз юзал... Наверное сказывается недосып.)


- Бизнесмен убъет в вас зрителя, но ты... Билли... Неужели тебе это могло понравиться?
- Да я вообще только одним глазком...
MettДата: Пятница, 29.08.2014, 01:38 | Сообщение # 1505
Капитан I ранга
Группа: Корсар
Сообщений: 586
Награды: 91
Репутация: 565
Статус: В открытом море
есть еще DoReloadCharacterToLocation(...);
просто перегружает ГГ в заданую локу и не напрягает ОЗУ квестовыми прерываниями


Что толку, если не можешь сделать мир лучше.
ReborodaДата: Пятница, 29.08.2014, 01:56 | Сообщение # 1506
Мичман
Группа: Корсар
Сообщений: 146
Награды: 10
Репутация: 111
Статус: В открытом море
Цитата Mett ()
есть еще DoReloadCharacterToLocation(...);

Тоже оч полезная функция. Возьму на заметку. Спс.


- Бизнесмен убъет в вас зрителя, но ты... Билли... Неужели тебе это могло понравиться?
- Да я вообще только одним глазком...
TranДата: Понедельник, 08.09.2014, 17:30 | Сообщение # 1507
Матрос
Группа: Корсар
Сообщений: 49
Награды: 0
Репутация: 7
Статус: В открытом море
День добрый. Не нашел где задавать вопрос. Хотелось бы найти (или с грехом пополам сделать( никогда этим не занимался)) мод, который позволяет указывать компаньонам направление движения. Как команды абордаж, спустить паруса, атаковать и т.д. Например: "Курс на север", "Курс на юго-восток"... Заранее спасибо.
MettДата: Понедельник, 08.09.2014, 18:46 | Сообщение # 1508
Капитан I ранга
Группа: Корсар
Сообщений: 586
Награды: 91
Репутация: 565
Статус: В открытом море
Tran, такого мода точно не существует, а чтобы его сделать нужно обладать просто 100% знаниями скриптов и матана (а возможно еще и в двиг лезть придется)

Что толку, если не можешь сделать мир лучше.
NathanielДата: Понедельник, 08.09.2014, 22:14 | Сообщение # 1509
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата Tran ()
Хотелось бы найти мод, который позволяет...

Дополню ещё пост выше - для этого, скорее всего, придётся кардинально менять ИИ движка, чтобы он различал стороны света, учитывал рельеф (чтобы NPC не врезались в скалу по пути на север, а обходили её со стороны) и много-много чего ещё... И, вероятно, для этого всё-таки придётся лезть внутрь двмжка, менять глобальную карту... Муторно, в общем.


Гораздо проще - подключить собственную фантазию, поверьте!..


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
IvanCorsair29GLДата: Понедельник, 08.09.2014, 23:50 | Сообщение # 1510
Матрос
Группа: Корсар
Сообщений: 58
Награды: 5
Репутация: 35
Статус: В открытом море
Tran, мода такого нету... Да и зачем он? Создать код на такой "мод" - это полнейший геморой! Нужно, как написал Nathaniel сверху, в комментарии, научить движок различать стороны света, что бы НПС проходили препятствия, а не врезались в них... Лучше уж, если вы хотите сделать возможность перемещения НПС, сделать возможность перемещения НПС по заданным локациям в диалоге. К примеру:
НПС: - жду ваших приказаний, капитан!
ГГ: - отправляйся в таверну( или же на верфь, да вообще куда угодно. Стоит только фантазию подключить)


05
Джин-БейнДата: Вторник, 09.09.2014, 01:39 | Сообщение # 1511
Капитан I ранга
Группа: Команда Аддона
Сообщений: 1073
Награды: 40
Репутация: 197
Статус: В открытом море
в какомто адоне вроде кораблики можно было отправить в свободное плавание, ну а если...
Цитата IvanCorsair29GL ()
научить движок различать стороны света, что бы НПС проходили препятствия, а не врезались в них..

а как тогда твоя экскадра не врезается в скалы? существует ведь команда взять на абордаж например, это значит что в скрипте прописано что кораблик должен плыть к определенной цели. а почему бы не выставить на глобалки локаторы по сторонам света и модифицировать под этот локатор скрипт приказа взять на абордаж? или чета типа того. В общем подумать в этом направлении.




Сообщение отредактировал Джин-Бейн - Вторник, 09.09.2014, 01:43
MettДата: Вторник, 09.09.2014, 02:47 | Сообщение # 1512
Капитан I ранга
Группа: Корсар
Сообщений: 586
Награды: 91
Репутация: 565
Статус: В открытом море
ну вы и наразмышляли однако

Цитата Nathaniel ()
придётся кардинально менять ИИ движка

не придется, достаточно скриптовых правок

Цитата Nathaniel ()
учитывал рельеф (чтобы NPC не врезались в скалу по пути на север, а обходили её со стороны)

в движке это итак есть, другое дело что компьютерные балванчики на неповоротливых пасудинах все равно умудряются биться о скалы

Цитата Nathaniel ()
И, вероятно, для этого всё-таки придётся лезть внутрь двмжка, менять глобальную карту...

лезть придется, уверен чуть ли не на 100%, но вот глобалку трогать не обязательно

Цитата Джин-Бейн ()
а почему бы не выставить на глобалки локаторы по сторонам света и модифицировать под этот локатор скрипт приказа взять на абордаж?

1. потому что с моря локаторы глобы не считываются
2. приказ взять на абордаж обрабатывается не по локатору, а по позиции абордируемого судна в каждом кадре (1 FPS = 1 обработка функции)

и да, все это...
Цитата Nathaniel ()
Муторно, в общем.


мой план таков
используя код "убегания суда из боя" и функции приобразования в грудусы методом тыка выбиваем стороны света, что соответствовали тем, что на компасе
например:
0,360 - запад
90 - юг
и в этом роде
потом берем код от убегания судна и меняем его алгоритм не на сторону, откуда ветер дует, а на градусы заданной стороны света

в общем как-то так, ничего другого пока в голову не пришло


Что толку, если не можешь сделать мир лучше.
TranДата: Вторник, 09.09.2014, 08:46 | Сообщение # 1513
Матрос
Группа: Корсар
Сообщений: 49
Награды: 0
Репутация: 7
Статус: В открытом море
Спасибо за ответ. Как я говорил, я этим никогда не занимался. Меня интересует именно на море.Просто бесит тупость напарников на море. Говоришь ему уплыть, а он станет против ветра и думает что уплывает.

Сообщение отредактировал Tran - Вторник, 09.09.2014, 08:50
NathanielДата: Вторник, 09.09.2014, 11:51 | Сообщение # 1514
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
С предыдущим вопросом, с грехом пополам, разобрались... Но поскольку уважаемый Mett упомянул в который раз fps, хотелось бы ещё один вопрос задать... Проблемка одна возникает регулярно - и я не знаю, что с ней делать!

В общем, хотел я решить свою проблему тормозов в игре в ночное время. У меня очень значительно проседало fps. Подозреваю, что от партиклов огня. В режиме теста написал небольшую процедуру по удалению партиклов. После удаления значение fps не изменялось, но тормоза странным образом существенно испаряются...
Но зато появилась другая проблема, более непонятная, которой раньше никогда не было. Связана с К:КС. В локации порта Тортуги, где стоит много кораблей по квесту, очень сильно стала замирать картинка. Настолько сильно, что один бортовой залп с корабля превращается в покадровый просмотр... И ещё странным образом тормозит работу игры экипированный амулет "Пилигрим" - каждые 3-4 секунды процесс замирает на доли секунды. В итоге часть парусной регаты я проходил в режиме покадрового просмотра...

Что я сделал:
- снизил параметры быстродействия (всяческие визуальные эффекты, перетаскивание окон и отрисовка теней);
- пошаманил с файлом engine.ini;

Именно о втором я и хотел бы поговорить... Хочу сразу отметить, что у меня в игре работает мод-оптимизатор (автор El-Kidd), уже много месяцев работает, проблем не было... Но файл engine.ini изменён. Я позволил себе влезть туда и кое-что там поменять. Но многие параметры там мне до сих пор неясны. Вот их список...

lockable_back_buffer = 2048
...
videoForceMin_fps = 120
videoForceMax_fps = 360
...
HyperThreading = 1
;DisableSSE = 0
; принудительно врубить для АМД
EnableSSE = 1
...
bUseBackgroundFileLoader = 1
iThreads = 100
iMultiSample = 1
uNumDepthGrids = 0

Вот такие значения у меня выставлены сейчас. Примечательно, что если параметр lockable_back_buffer принимает значение "0", то в режиме плавания по глобалке очень часто случаются вылеты. В данном случае вылетов не замечено вообще. Не знаю, влияет ли это как-то, но это работает у меня...
А вот по остальным параметрам непонятно ничего...


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
AntasusДата: Четверг, 25.09.2014, 19:25 | Сообщение # 1515
Пороховая обезьяна
Группа: Пират
Сообщений: 3
Награды: 0
Репутация: 0
Статус: В открытом море
А с помощью какой функции можно убрать квестовые предметы из инвентаря после выполнения квеста?
korsar01Дата: Четверг, 25.09.2014, 19:31 | Сообщение # 1516
Мичман
Группа: Корсар
Сообщений: 186
Награды: 6
Репутация: 46
Статус: В открытом море
Antasus,
Код
TakeItemFromCharacter(pchar, "id")//id нужного предмета впиши в кавычки
AntasusДата: Четверг, 25.09.2014, 20:06 | Сообщение # 1517
Пороховая обезьяна
Группа: Пират
Сообщений: 3
Награды: 0
Репутация: 0
Статус: В открытом море
korsar01, а куда её добавлять?
korsar01Дата: Четверг, 25.09.2014, 20:40 | Сообщение # 1518
Мичман
Группа: Корсар
Сообщений: 186
Награды: 6
Репутация: 46
Статус: В открытом море
Antasus, зависит от квеста, я же не могу знать, что ты там написал
AntasusДата: Четверг, 25.09.2014, 21:14 | Сообщение # 1519
Пороховая обезьяна
Группа: Пират
Сообщений: 3
Награды: 0
Репутация: 0
Статус: В открытом море
korsar01, да у меня тут в линейке капитана Блада проблемма с кольцом Хагторпа, когда завершаю квест оно не исчезает из инвентаря гг, а остаётся.
MettДата: Пятница, 26.09.2014, 04:50 | Сообщение # 1520
Капитан I ранга
Группа: Корсар
Сообщений: 586
Награды: 91
Репутация: 565
Статус: В открытом море
2 Nathaniel
Цитата Nathaniel ()
lockable_back_buffer = 2048
...
videoForceMin_fps = 120
videoForceMax_fps = 360

Цитата Nathaniel ()
bUseBackgroundFileLoader = 1
iThreads = 100
iMultiSample = 1
uNumDepthGrids = 0

это уже допилы engine.ini модом-оптимизатором от El-Kidd'a - в оригинальном engine.ini таких строчек няма
но я предположу, что lockable_back_buffer = 2048 это подкачка оперативной памяти
videoForceMin_fps = 120, videoForceMax_fps = 360 - это понятное дело, что с ФПС связанно, но как? тут я не знаю что и предположить (как и про остальное)


Что толку, если не можешь сделать мир лучше.
Поиск:

Copyright Pirates-Life.Ru © 2008-2024


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