Seaward.ru

Здравствуйте, гость ( Вход | Регистрация )

> Проблемы с установкой аддона и технические вопросы., Установка, обслуживание
Dir
сообщение Aug 4 2006, 09:37
Сообщение #1


Собиратель якорей.
*******

Ветеран ФорумаЗаслуженный КорсарЛовец Кораблей ВМЛ 1 место
Модератор Года 2009
Группа: модераторы
Сообщений: 5,879
Регистрация: 22-March 05
Пользователь №: 590



Имеющим проблемы с установкой аддона(от глючности версии ПКМ,кривости установки и прочих вещей) рекомендую решить свои проблемы загрузкой и установкой

Полной версии аддона ВМЛ.

Комментарии исключительно в л/с.

=====================================================================
Тем у кого не получается скачать дистрибутив аддона с сайта.

Аддон Возвращение Морской Легенды версия 1.06.0124 + Дополнительные ресурсы:

http://rapidshare.com/files/143940461/VML_v.1.06.0124.rar(==96Mb)
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
35 страниц V « < 30 31 32 33 34 > »   
Reply to this topicStart new topic
Ответов(620 - 639)
bereaver
сообщение Dec 9 2021, 17:14
Сообщение #621


юнга
**


Группа: форумчанин (*)
Сообщений: 14
Регистрация: 17-February 15
Пользователь №: 35,180



Цитата(ALexusB @ Dec 8 2021, 15:40) *

Заменить модели или текстуры к ним на похожие из папки ресурсов или взять похожее что-то из ВМЛ.
Модели и текстуры просматривать тулзами - были в теме модов (сами ссылки могут уже не живые быть, искать тогда по др сайтам)

Дарова, Алексус) Всегда хотел тебе сказать что твой аддон уенен, постоянно только в него играю, десяток лет уже (обожаю хардкор, правда жаль что из-за авторских прав пришлось перейти на этот унылый движок от 3х корсаров, особенно ненавижу васянские подделки блекмарков), вот решил попробовать моргана (сначала он понравился большими возможностями, например автолутом и халявным опытом с перком герой-любовник) а сча не могу справиться с фортом гринфорда, меня тупо из пистолей гасят а десант союзных кораблей не работает совсем, вот те и хардкор. На счёт селестины, это та же моделька что и "прекрасной изабеллы", не знаю где это всё искать, нельзя ли просто файлы переместить и переименовать чтобы всё нормально стало??. Может проблема в том что в config.eхе выставлено разрешение 640 на 480 и 16 бит??. (в инишке 1360 на 768 стоит) Можно подробнее о замене моделек??. (не шарю в этом) И ещё у меня в Артуа Вуазье стрелять не хотят, наверное это баг английской версии на которой базируется пак моргана, можно это как-то пофиксить??. (хочу дюпать опыт со священника) Или где больше всего можно опыта достать, не с мановаром ли в штормах??. (не могу нормально прокачаться, после 20го уровня опыта требует лямами, а в штормах по косарю дают)
Ещё спросить хотел. Какие умения и характеристики жмых перенимает от своих офицеров??. Вот например быстрая починка работает от оффа и передаётся жмыху навсегда, но жмыхает интерфейс, после неё в окне торговли нельзя ничего купить, надо сначала продать единицу товара или починить корабль (можно ли это исправить??.) Речь о том же паке моргана.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
nathfade
сообщение Dec 27 2021, 19:54
Сообщение #622


юнга
**


Группа: форумчанин (*)
Сообщений: 10
Регистрация: 27-December 21
Пользователь №: 234,949



Всем привет,
В первую очередь хотел сказать спасибо за потрясающий аддон.

Столкнулся с технической ошибкой.

Поставил ПКМ 1.03, наверх него аддон ВМЛ а потом и скрипты.
В скриптах поменял управление диалогами как в ККС, WASD и мышка вместо стрелок и пробела.
Поставил обновленные текстуры для Blaze с кирасами

Играл так неделю, все было отлично, вылеты были но крайне редко.
Вчера при переходе с суши в море в бухте получил черный экран, выключил через alt+f4. Ничего необычного, такое бывало и ранее. Обычно помогал рестарт, но в этот раз при повторном запуске игры получил ошибку:
Код
Microsoft Visual C++ Runtime Library

Runtime error
Program C:\Games\potc\ENGINE.exe

abnormal program termination


До ошибки и с ее появлением игра была на диске D, сейчас перекинул на C и там такая же ошибка.

После этого пытался следующее:
  • переустановил игру с самого начала
  • обновил/(удалил и установил) все Visual c++ redistributable с 2005 по 2022 как x64 так и x86. Пробовал запускать игру после каждого апдейта/инстала.
  • обновил .net framework
  • запускал от имени админа и в режиме с совместимостью
Ни один из этих пунктов не решил проблему, игра запускается все так же с той же ошибкой.
Похоже у меня сломалось что-то в системе касающее этой игры. Искал какие-то записи в реестре чтобы удалить, appdata и в других местах - ничего не нашел.
Интересно, что ККС и ПКМ 1.03 запускаются без проблем

Накануне ошибки ничего в скриптах не менял, вообще файлы игры не трогал.

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

Подскажите, пожалуйста, в каком направлении копать? Event Log windows-а пустой, ошибок там никаких. Пытался найти что-то интересное в Process monitor - тоже ничего не заметил.

Подскажите, кто знает, где можно посмотреть лог ошибки кроме как error.log или других .log файлов в разделе с игрой (у меня они не создаются)?

Может кто знает какие разделы реестра пишет игра или какие файлы/папки создает игра в системе? Кажется, что проблема за пределами папки с игрой и не касается visual c++ redistributable.


Прикрепленные изображения
Прикрепленное изображение
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Leviafan
сообщение Dec 27 2021, 21:12
Сообщение #623


боцман
****


Группа: форумчанин
Сообщений: 288
Регистрация: 16-June 07
Из: Красноярск
Пользователь №: 10,715



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

https://docs.microsoft.com/en-us/sysinterna...wnloads/procmon

Лог в Процесс Мониторе сохраняется через меню File -> Save -> PML-формат;
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
nathfade
сообщение Dec 27 2021, 22:08
Сообщение #624


юнга
**


Группа: форумчанин (*)
Сообщений: 10
Регистрация: 27-December 21
Пользователь №: 234,949



прикрепил лог свежего запуска игры
спасибо за готовность помочь

закинул в zip так как сайт не позволил загрузить pml


Прикрепленные файлы
Прикрепленный файл  Logfile_ENGINE.zip ( 188.65 килобайт ) Кол-во скачиваний: 48
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
erebus
сообщение Dec 28 2021, 10:21
Сообщение #625


Злобный призрак
*******

Ветеран ФорумаЗаслуженный КорсарЗнаток Игр Сиварда

Группа: модераторы
Сообщений: 1,694
Регистрация: 11-November 04
Из: Рига
Пользователь №: 57



2nathfade

Попробуйте удалить файл options в корневой папке игры.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
nathfade
сообщение Dec 28 2021, 11:35
Сообщение #626


юнга
**


Группа: форумчанин (*)
Сообщений: 10
Регистрация: 27-December 21
Пользователь №: 234,949



удалил options, ошибка та же
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
bereaver
сообщение Dec 29 2021, 12:57
Сообщение #627


юнга
**


Группа: форумчанин (*)
Сообщений: 14
Регистрация: 17-February 15
Пользователь №: 35,180



Цитата(nathfade @ Dec 28 2021, 12:35) *

удалил options, ошибка та же

Зачем все ставят патч 1.3??. Написано же в инструкции ставить на чистую игру от 1С версии 1.0 или 1.01 или же английскую. читай "база" аддонна и как правильнр установить, ВМЛ сделан на английской версии без старфорса, от этого и все конфликты. Если не веришь то попробуй запустить в игре ролик с титрами. У тебя этого не выйдет аки все ролики должны быть не в папке russian и без дописки _rus а с оригинальным названием в папке со всеми роликами (достаточно ролик переместить/переименовать и всё воспроизведётся в самой игре). Кстати что за скрипты??. Поделись как из запилить (прям заинтриговал). На счёт ошибки - она у меня каждый день выпрыгивает, появляется из-за переполнения оперативной памяти, виноваты сейвлоады и долгое нахождение в игре. Немного помогает если поставить галку "только чтение" в файле options. Лично я всё равно этого делать не рекомендую - появляются другие проблемы посерьёзней, не сохраняются настройки, игра вылетает при любых нестандартных действиях, невозможно создать другого персонажа. Что я рекомендую: установить нормально игру, настроить, удалить ролики со смертями жмыха, переименовать ролик с титрами, поставить управление по умолчанию, настроить его, настроить config.exe, убрать в нём безопасный звук, поставить минимальное разрешение (потом изменить его в engine.ini на своё), поставить 16 бит, заархивировать папку с игрой без сжатия и тянуть игру с каждым вылетом в корень диска С (замена options не поможет, игра продолжает вылетать всё чаще и чаще, только полное перемещение всей игры из архива).
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
nathfade
сообщение Dec 29 2021, 13:46
Сообщение #628


юнга
**


Группа: форумчанин (*)
Сообщений: 10
Регистрация: 27-December 21
Пользователь №: 234,949



я не ставил специально патч 1.03, он был в сборке которую я скачал. но не похоже что проблема в этом, так как до трагического момента игра работала исправно.
Однако я пробовал: ставил аддон на чистую английскую версию, и ошибка была та же.

Что касается скриптов, то речь шла об открытых исходниках ВМЛ.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
bereaver
сообщение Dec 29 2021, 15:25
Сообщение #629


юнга
**


Группа: форумчанин (*)
Сообщений: 14
Регистрация: 17-February 15
Пользователь №: 35,180



Цитата(nathfade @ Dec 29 2021, 14:46) *

я не ставил специально патч 1.03, он был в сборке которую я скачал. но не похоже что проблема в этом, так как до трагического момента игра работала исправно.
Однако я пробовал: ставил аддон на чистую английскую версию, и ошибка была та же.

Что касается скриптов, то речь шла об открытых исходниках ВМЛ.

Значит надо на русскую, я только на неё ставил и не было такого чтобы игра вообще не запускалась. Ещё игра может конфликтовать с семёркой, у меня так то хр стоит. А можно в личку ссылку на офф английскую версию??. (давно хотел её посмотреть) Скрипты это ясно, а как сделать например управление в диалогах на мышку??. Есть где-нибудь подробная инструкция??.

Вот процитирую пару решений на семёрку (не моё):

У меня был типичный крах игры начала новой игры на Windows 7 и перепробовал много вариантов. Ничего не работал, пока я не нашел сайт (http://www.techradar.com/news/computing/pc/how-to-make-old-programs-work-on-windows-7-922313. Я скачал "Microsoft Application Compatibility Toolkit 5.6" (http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=7352 скачал "ApplicationCompatibilityToolkitSetup.exe". Он включает в себя программу под названием "Compatability Administrator (32-разрядная версия)", в списке игр, на удивление упоминиется - Пираты Карибского моря от Акеллы. Установить исправление, после этого запустить игру и перезагрузить компьютер, игра теперь работает.

У кого на Win10 (а также судя по всему XP и 7) после нажатия "Новая Игра" вылетает - идём в папку с игрой

C:\Program Files\1C\Пираты Карибского Моря\RESOURCE\Textures\WEATHER\SEA\BUMP_G3

И удаляем нафиг файл

bump.zap

При запуске игры он пересоздастся и игра заработает.

Решение из этого же форума
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
nathfade
сообщение Dec 29 2021, 16:43
Сообщение #630


юнга
**


Группа: форумчанин (*)
Сообщений: 10
Регистрация: 27-December 21
Пользователь №: 234,949



Ребята, всем спасибо за готовность помочь, проблема решилась сама собой. Сегодня в отчаянной попытке после запуска компьютера даблкликнул на ярлык и игра чудом запустилась без ошибки. Я не знаю что произошло, вчера она не работала, я ничего не менял и сегодня уже работает. Тут одно из двух: либо какая-то привязка чего-то к дате (что звучит бредово и маловероятно), либо при перезапуске винда запустила обновление чем обновила пакеты VCPP, .net framework или еще что-либо. Сейчас винда обновляется так, что я даже не замечаю эти обновления, так что наверняка сказать не могу было оно или нет.




Цитата(bereaver @ Dec 29 2021, 14:25) *

Скрипты это ясно, а как сделать например управление в диалогах на мышку??. Есть где-нибудь подробная инструкция??

Нет нужды в подробных инструкциях, все достаточно просто. Нужно поставить открытые скрипты ВМЛ, открыть файл PROGRAM\controls\init_pc.c в блокноте или в чем-то подобном как текст. Листай в этом файле до строчки-комментария // Dialog =========== . В строчке с DlgAction меняешь пробел (SPACE) на VK_LBUTTON. Помимо этого, в строчке с DlgUp я поменял с VK_UP на KEY_W а в DlgDown поменял на KEY_S.
В итоге получилось так:
Код
// Dialog =====================================================================
    CI_CreateAndSetControls( "DialogControls", "DlgAction", CI_GetKeyCode("VK_LBUTTON"), 0, false );
    CI_CreateAndSetControls( "", "DlgCancel", CI_GetKeyCode("VK_ESCAPE"), 0, false );
    CI_CreateAndSetControls( "DialogControls", "DlgUp", CI_GetKeyCode("KEY_W"), 0, false );
    CI_CreateAndSetControls( "DialogControls", "DlgDown", CI_GetKeyCode("KEY_S"), 0, false );
    CI_CreateAndSetControls( "DialogControls", "DlgScrollUp", CI_GetKeyCode("VK_PRIOR"), 0, false );
    CI_CreateAndSetControls( "DialogControls", "DlgScrollDown", CI_GetKeyCode("VK_NEXT"), 0, false );

Работает и в ПКМ с открытыми скриптами, даже в к3 такое работает.

По поводу английской версии - отправил, дай знать получил ли
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
bereaver
сообщение Dec 29 2021, 19:06
Сообщение #631


юнга
**


Группа: форумчанин (*)
Сообщений: 14
Регистрация: 17-February 15
Пользователь №: 35,180



Цитата(nathfade @ Dec 29 2021, 17:43) *

Ребята, всем спасибо за готовность помочь, проблема решилась сама собой. Сегодня в отчаянной попытке после запуска компьютера даблкликнул на ярлык и игра чудом запустилась без ошибки. Я не знаю что произошло, вчера она не работала, я ничего не менял и сегодня уже работает. Тут одно из двух: либо какая-то привязка чего-то к дате (что звучит бредово и маловероятно), либо при перезапуске винда запустила обновление чем обновила пакеты VCPP, .net framework или еще что-либо. Сейчас винда обновляется так, что я даже не замечаю эти обновления, так что наверняка сказать не могу было оно или нет.
Нет нужды в подробных инструкциях, все достаточно просто. Нужно поставить открытые скрипты ВМЛ, открыть файл PROGRAM\controls\init_pc.c в блокноте или в чем-то подобном как текст. Листай в этом файле до строчки-комментария // Dialog =========== . В строчке с DlgAction меняешь пробел (SPACE) на VK_LBUTTON. Помимо этого, в строчке с DlgUp я поменял с VK_UP на KEY_W а в DlgDown поменял на KEY_S.
В итоге получилось так:
Код
// Dialog =====================================================================
    CI_CreateAndSetControls( "DialogControls", "DlgAction", CI_GetKeyCode("VK_LBUTTON"), 0, false );
    CI_CreateAndSetControls( "", "DlgCancel", CI_GetKeyCode("VK_ESCAPE"), 0, false );
    CI_CreateAndSetControls( "DialogControls", "DlgUp", CI_GetKeyCode("KEY_W"), 0, false );
    CI_CreateAndSetControls( "DialogControls", "DlgDown", CI_GetKeyCode("KEY_S"), 0, false );
    CI_CreateAndSetControls( "DialogControls", "DlgScrollUp", CI_GetKeyCode("VK_PRIOR"), 0, false );
    CI_CreateAndSetControls( "DialogControls", "DlgScrollDown", CI_GetKeyCode("VK_NEXT"), 0, false );

Работает и в ПКМ с открытыми скриптами, даже в к3 такое работает.

По поводу английской версии - отправил, дай знать получил ли

Спасибо. Пока качать и тестить не буду, у меня беды с оригинальным вмл (попрошу чтобы мне твою скачали, потом посмотрю), завалил алексуса вопросами по игре, он не отвечает. Есть пару глитчей и вредных багов которые недавно сам нашёл, ещё думаю как бы умыкнуть циклопус и пойти в английскую линейку. Испанская то куцая и вообще это и не ленейка так то а небольшой квестик из пака моргана. Очень дико то что из-за квестовой линейки приходится лишаться самого мощного корабля в игре. Спасибо что рассказал про переназначение клавиш, надеюсь там и другие переназначить можно, пауза на R, перемотка на Т и управление стрелками в магазине очень бесят. Ещё поставлю стандартные F5/F9 для сейвскама. А про твою проблему, как говаривали нпс в готике "некоторые проблемы решаются сами собой") Такое иногда бывает, когда файлы повредились система требует виндовый диск и восстанавливает что надо. Мб игра так же чего херит, тем не менее лучше заархивируй игру, мало ли чо.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
nathfade
сообщение Dec 29 2021, 19:39
Сообщение #632


юнга
**


Группа: форумчанин (*)
Сообщений: 10
Регистрация: 27-December 21
Пользователь №: 234,949



У меня есть подозрение, что проблема заключается в файлах mrg*.tmp в папке temp винды. Игра туда их пишет, и, по всей видимости, читает. Пару раз эта проблема вылезла опять, спустя 5 минут пропала. Потом еще раз вылезла и после чистки папки temp опять заработала. Пока не уверен на все 100, посмотрим как пойдет
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
nathfade
сообщение Dec 29 2021, 20:52
Сообщение #633


юнга
**


Группа: форумчанин (*)
Сообщений: 10
Регистрация: 27-December 21
Пользователь №: 234,949



Должен сказать, что после чистки папки temp, игра стала существенно шустрее, загрузки ускорились.

Между прочим, видел в теме выше обсуждали пропажу трупа при обыске. Вот мой вариант:

Файл PROGRAM\loc_ai\LAi_utils.c
Код

.....
void Dead_OpenBoxProcedure()
{
    ref chr = GetMainCharacter();
    int dchr_index;
    ref deadCh;
    ref chrdead;
    dchr_index = Dead_FindCloseBody();
    if (dchr_index == -1) return;
    
    deadCh = &Dead_Characters[dchr_index];
    
    Dead_LaunchCharacterItemChange(deadCh);

    //added corpse disappear when it is empty
    if (GetItemsWeight(deadCh) < 0.001) {
        Dead_DelLoginedCharacter(deadCh);
        chrdead = &Characters[GetCharacterIndex(deadCh.id)];
        CharacterExitFromLocation(chrdead);
    }
}
....


Проверка на пустоту трупа и его удаление идет после комментария. Не нашел более изящного решения чем проверять вес всех предметов в трупе. Посмотрел все предметы и их вес - только у рукопашки вес 0.0, у остальных > 0.1. Новая игра не нужна.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
nathfade
сообщение Jan 4 2022, 22:13
Сообщение #634


юнга
**


Группа: форумчанин (*)
Сообщений: 10
Регистрация: 27-December 21
Пользователь №: 234,949



У меня на высоких уровнях часто умирают офицеры с важными перками. Как правило из-за того, что не всегда удается следить за наличием лечилок у них. Поэтому добавил фичу на автозакупку пуль и лечилок для офицеров в портах. Добавил ветку диалога офицерам, похожую на участие в абордаже и завязался на триггер "GenLand_EnterPort" (тот же, что спавнит ОЗГ в порту). Можно выбрать дорогой, дешевый и средний пакет закупки.

Функция закупки выглядит так:
PROGRAM\characters\CharacterUtilite.c
Код

void BuyAmmoForOfficer(ref PChar, ref officer) {
    if (sti(officer.BuyAmmo) == 0) {
        return;
    }

    object itemsToBuy;
    string itemId;
    int i, itemsCount, totalCost;
    aref itemAttribute;
    ref itemRef;
    float totalWeight;
    totalWeight = 0.0;
    totalCost = 0;

    switch (sti(officer.BuyAmmo)) {
        case 1:
            itemsToBuy.bullet = 5;
            itemsToBuy.potion1 = 3;
            break;
        case 2:
            itemsToBuy.bullet = 10;
            itemsToBuy.potion1 = 5;
            itemsToBuy.potion2 = 1;
            itemsToBuy.potion3 = 1;
            break;
        case 3:
            itemsToBuy.bullet = 20;
            itemsToBuy.potion1 = 8;
            itemsToBuy.potion2 = 5;
            itemsToBuy.potion4 = 2;
            break;
    }


    for(i = 0; i < GetAttributesNum(itemsToBuy); i++) {
        itemAttribute = GetAttributeN(&itemsToBuy, i);
        itemId = GetAttributeName(itemAttribute);
        itemsCount = GetAttributeValue(itemAttribute);
        itemsCount = itemsCount - sti(GetCharacterItem(officer, itemId));
        if (itemsCount < 1) {
            itemsToBuy.(itemId) = 0;
            itemsCount = 0;
        } else {
            itemsToBuy.(itemId) = itemsCount;
        }
        itemRef = ItemsFromID(itemId);
        totalWeight = totalWeight + stf(itemRef.Weight) * itemsCount;
        totalCost = totalCost + GetBuyPriceByCharacter(sti(itemRef.price), officer) * itemsCount;
    }

    if (totalCost < 1) return; //dont buy anything

    if (sti(Pchar.Money) < totalCost || (GetMaxItemsWeight(officer) - GetItemsWeight(officer)) < totalWeight) {
        Log_Info("Недостаточно места или денег для закупки амуниции для " + officer.name + " " + officer.lastname);
        return;
    }

    for(i = 0; i < GetAttributesNum(itemsToBuy); i++) {
        itemAttribute = GetAttributeN(&itemsToBuy,i);
        itemId = GetAttributeName(itemAttribute);
        itemsCount = GetAttributeValue(itemAttribute);
        TakeNItems(officer, itemId, itemsCount);
    }
    AddMoneyToCharacter(PChar, -totalCost);
    Log_Info("Закуплена амуниция для " + officer.name + " " + officer.lastname);
}

Чет простыня получилась, но не знаю как грамотно распихать по отдельным методам, вечно краш получаю когда пытаюсь сделать красиво.

Добавил еще функцию на получение цены предмета на основании навыка торговли у офицера. Пришлось копипастить, так как существующая функция завязана строго на ГГ.
PROGRAM\store\StoreUtilite.c
Код
int GetBuyPriceByCharacter(int itmprice, ref character)
{
    float skillDelta = GetSummonSkillFromNameToOld(character,SKILL_COMMERCE);
    Log_Info("Character delta: " + skillDelta);
    float skillModify;
    skillModify = 1.4 - skillDelta*0.019;
    if (CheckOfficersPerk(character,"AdvancedCommerce")) {
        skillModify -= 0.2;
    }
    else
    {
        if(CheckOfficersPerk(character,"BasicCommerce")) {
            skillModify -= 0.1;
        }
    }

    return makeint(makefloat(itmprice)*skillModify);
}

Как-то с этими скриптами не все очевидно, поэтому буду рад критике.
Кому интересно попробовать, прикрепил архивом измененные файлы.


Прикрепленные файлы
Прикрепленный файл  officer_buy_ammo.zip ( 93.57 килобайт ) Кол-во скачиваний: 39
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
bereaver
сообщение Jan 6 2022, 03:07
Сообщение #635


юнга
**


Группа: форумчанин (*)
Сообщений: 14
Регистрация: 17-February 15
Пользователь №: 35,180



Цитата(nathfade @ Jan 4 2022, 23:13) *

У меня на высоких уровнях часто умирают офицеры с важными перками. Как правило из-за того, что не всегда удается следить за наличием лечилок у них. Поэтому добавил фичу на автозакупку пуль и лечилок для офицеров в портах. Добавил ветку диалога офицерам, похожую на участие в абордаже и завязался на триггер "GenLand_EnterPort" (тот же, что спавнит ОЗГ в порту). Можно выбрать дорогой, дешевый и средний пакет закупки.

Функция закупки выглядит так:
PROGRAM\characters\CharacterUtilite.c
Код

void BuyAmmoForOfficer(ref PChar, ref officer) {
    if (sti(officer.BuyAmmo) == 0) {
        return;
    }

    object itemsToBuy;
    string itemId;
    int i, itemsCount, totalCost;
    aref itemAttribute;
    ref itemRef;
    float totalWeight;
    totalWeight = 0.0;
    totalCost = 0;

    switch (sti(officer.BuyAmmo)) {
        case 1:
            itemsToBuy.bullet = 5;
            itemsToBuy.potion1 = 3;
            break;
        case 2:
            itemsToBuy.bullet = 10;
            itemsToBuy.potion1 = 5;
            itemsToBuy.potion2 = 1;
            itemsToBuy.potion3 = 1;
            break;
        case 3:
            itemsToBuy.bullet = 20;
            itemsToBuy.potion1 = 8;
            itemsToBuy.potion2 = 5;
            itemsToBuy.potion4 = 2;
            break;
    }
    for(i = 0; i < GetAttributesNum(itemsToBuy); i++) {
        itemAttribute = GetAttributeN(&itemsToBuy, i);
        itemId = GetAttributeName(itemAttribute);
        itemsCount = GetAttributeValue(itemAttribute);
        itemsCount = itemsCount - sti(GetCharacterItem(officer, itemId));
        if (itemsCount < 1) {
            itemsToBuy.(itemId) = 0;
            itemsCount = 0;
        } else {
            itemsToBuy.(itemId) = itemsCount;
        }
        itemRef = ItemsFromID(itemId);
        totalWeight = totalWeight + stf(itemRef.Weight) * itemsCount;
        totalCost = totalCost + GetBuyPriceByCharacter(sti(itemRef.price), officer) * itemsCount;
    }

    if (totalCost < 1) return; //dont buy anything

    if (sti(Pchar.Money) < totalCost || (GetMaxItemsWeight(officer) - GetItemsWeight(officer)) < totalWeight) {
        Log_Info("Недостаточно места или денег для закупки амуниции для " + officer.name + " " + officer.lastname);
        return;
    }

    for(i = 0; i < GetAttributesNum(itemsToBuy); i++) {
        itemAttribute = GetAttributeN(&itemsToBuy,i);
        itemId = GetAttributeName(itemAttribute);
        itemsCount = GetAttributeValue(itemAttribute);
        TakeNItems(officer, itemId, itemsCount);
    }
    AddMoneyToCharacter(PChar, -totalCost);
    Log_Info("Закуплена амуниция для " + officer.name + " " + officer.lastname);
}

Чет простыня получилась, но не знаю как грамотно распихать по отдельным методам, вечно краш получаю когда пытаюсь сделать красиво.

Добавил еще функцию на получение цены предмета на основании навыка торговли у офицера. Пришлось копипастить, так как существующая функция завязана строго на ГГ.
PROGRAM\store\StoreUtilite.c
Код
int GetBuyPriceByCharacter(int itmprice, ref character)
{
    float skillDelta = GetSummonSkillFromNameToOld(character,SKILL_COMMERCE);
    Log_Info("Character delta: " + skillDelta);
    float skillModify;
    skillModify = 1.4 - skillDelta*0.019;
    if (CheckOfficersPerk(character,"AdvancedCommerce")) {
        skillModify -= 0.2;
    }
    else
    {
        if(CheckOfficersPerk(character,"BasicCommerce")) {
            skillModify -= 0.1;
        }
    }

    return makeint(makefloat(itmprice)*skillModify);
}

Как-то с этими скриптами не все очевидно, поэтому буду рад критике.
Кому интересно попробовать, прикрепил архивом измененные файлы.

Интересный дюп предметов. Наверное так можно прописать покупку любой редкой вещи а потом ходить и отбирать их.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
nathfade
сообщение Jan 6 2022, 16:05
Сообщение #636


юнга
**


Группа: форумчанин (*)
Сообщений: 10
Регистрация: 27-December 21
Пользователь №: 234,949



И в самом деле, можно накупить лечилок и пуль в том количестве, в котором у торговцев нет. Как вариант можно подумать о том, чтобы выключать возможность отбирать у офицеров купленные предметы, как с надетыми саблями, кирасами.

Что касается редких вещей, так с помощью скриптов можно что угодно сделать.
Я не стесняюсь пользоваться скриптами в целях экономии времени)
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
bereaver
сообщение Jan 14 2022, 04:09
Сообщение #637


юнга
**


Группа: форумчанин (*)
Сообщений: 14
Регистрация: 17-February 15
Пользователь №: 35,180



Цитата(nathfade @ Jan 6 2022, 17:05) *

И в самом деле, можно накупить лечилок и пуль в том количестве, в котором у торговцев нет. Как вариант можно подумать о том, чтобы выключать возможность отбирать у офицеров купленные предметы, как с надетыми саблями, кирасами.

Что касается редких вещей, так с помощью скриптов можно что угодно сделать.
Я не стесняюсь пользоваться скриптами в целях экономии времени)


Вообще-то плюшки для экономии времени продаются в разных играх за реальные деньги. Некоторые игры (а особенно этот адд-он) специально сделаны так чтобы играя в них страдать (хардкор ИБО). Можно начитерить до такой итрации чтобы форт брался сам по себе в автоматичесском режиме... Экономия времени жЭ. Я понимаю перераспределение клавиш, управления, использование всякоразных багов аки почему бы не юзнуть недоработку разраба ежели сие предусмотренно игрой??. (хотя и такое очень многие определяют в читерство не смотря на то что баги овцально пользуются в тех же спидранах) Вот именно по этому я не вижу смысл создавать дюп и тут же его закрывать как-то. Наоборот всякоразные возможности как раз таки нужно развивать как в новых горизонтах. Когда я увидел перк ЛГ с зануриваниев под воду и паровой ход кораблей (чего так и не сделали в вмл) у меня прям глаза округлились. В новых горизонтах только две проблемы: игра так и не вышла из бэты, куча ненужных и сомнительных решений ну и бонусом можно добавить отсутствие описания механик и прочего а так же неполную локализацию и баги.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
ALexusB
сообщение Jan 14 2022, 10:19
Сообщение #638


Разработчик ВМЛ-КВЛ
*******

Seaward TeamЖелезный Профессор
Группа: Admin
Сообщений: 16,234
Регистрация: 2-November 04
Пользователь №: 3



Сейчас сменился вектор игр (и сами игроки) - в 2000-2010 был упор на хардкор.
Сейчас нужно все упрощенно, с маркерами куда бежать, чтоб можно было не читать диалоги вообще, бои одной кнопкой и т.п.
Время диктует свой спрос на фичи и тренды.
А игра-то уже с 20 летним движком скоро как. Ветеран.
Асасин блакФлаг тоже уже древняя стала, хотя как раз там мор бои уже не такие стали, пусть и красивее, но не то, после корсаров.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
tislic
сообщение Jan 15 2022, 02:08
Сообщение #639


капитан
*****


Группа: форумчанин
Сообщений: 452
Регистрация: 11-April 07
Пользователь №: 7,115



Цитата
Сейчас сменился вектор игр (и сами игроки) - в 2000-2010 был упор на хардкор.
Сейчас нужно все упрощенно, с маркерами куда бежать, чтоб можно было не читать диалоги вообще, бои одной кнопкой

Ты серьёзно? Посмотри вокруг, сейчас сенсорное управление, игроки пересели на телефоны, бюджет продвижения простеньких игр давно сравняться с бюджетом хардкора.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
bereaver
сообщение Jan 16 2022, 03:58
Сообщение #640


юнга
**


Группа: форумчанин (*)
Сообщений: 14
Регистрация: 17-February 15
Пользователь №: 35,180



Цитата(ALexusB @ Jan 14 2022, 11:19) *

Сейчас сменился вектор игр (и сами игроки) - в 2000-2010 был упор на хардкор.
Сейчас нужно все упрощенно, с маркерами куда бежать, чтоб можно было не читать диалоги вообще, бои одной кнопкой и т.п.
Время диктует свой спрос на фичи и тренды.
А игра-то уже с 20 летним движком скоро как. Ветеран.
Асасин блакФлаг тоже уже древняя стала, хотя как раз там мор бои уже не такие стали, пусть и красивее, но не то, после корсаров.

Алексус вернулся) Спросить хочу, почему в паке моргана шотган чёрный и моделька в нём более тонкая что-ли а твой в вмл сделан под дерево??. Оригинальный чёрный или твой??.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

35 страниц V « < 30 31 32 33 34 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 23rd April 2024 - 21:56

Блок рекламы
Яндекс цитирования Rambler's Top100
Rambler's Top100