Seaward.ru

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

> Для программистов, вопросы по скриптам ПКМ
igor_pol
сообщение Aug 24 2005, 21:00
Сообщение #1


боцман
****


Группа: форумчанин
Сообщений: 140
Регистрация: 3-December 04
Пользователь №: 169



Первое что я хотел написать "АДМИНЫ!!!!" НЕ ЗВЕРЕЙТЕ ЗА "НЕНУЖНУЮ ТЕМУ"
**************************************************
на вопрос зачем создал эту тему отвечу так "Я например НЕ ПРОСТО ЮЗВЕРЬ А КОЕ ЧТО И САМ НАПИСАТЬ МОГУ.
И хотел бы чтобы на форуме была тема для тех кто сам хочет что-то добавить в игру.
На сайте аддона Алекс вікинул ссылку на описание скриптов ПКМ на английском.
Я хотел бы узнать где можно нарыть больше инфы по этом скриптам.
И кстати на каком языке они пишуться.
Если кто-то знает ----- пишите.
И вообще всем програмерам на форуме нужна своя тема.
так что ГОСПОДА ПРОГРАМЕРЫ ВАЛИТЕ СЮДА !!!!
Может из этого что небудь интересное выйдет!!!!!!(Если тему не УТРУТ)
Жду сообщений (может у когот есть идеи на эту тему )

Сообщение отредактировал Догева - Apr 24 2006, 13:36
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
35 страниц V « < 31 32 33 34 35 >  
Reply to this topicStart new topic
Ответов(640 - 659)
ALexusB
сообщение Sep 3 2020, 16:05
Сообщение #641


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

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



Нужно научиться пользовать поиск по коду
И далее его просто читать
см метод
void EquipCharacterByItem(ref chref, string itemID)
там SetEquipedItemToCharacter - вот там есть вызовы ядра, что на модель рисуют саблю, пистоль, кирасу
И делают их с нужным уроном и тп
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Slayer
сообщение Sep 3 2020, 16:48
Сообщение #642


юнга
**


Группа: форумчанин (*)
Сообщений: 16
Регистрация: 2-September 20
Пользователь №: 199,708



Цитата(ALexusB @ Sep 3 2020, 16:05) *

Нужно научиться пользовать поиск по коду
И далее его просто читать
см метод
void EquipCharacterByItem(ref chref, string itemID)
там SetEquipedItemToCharacter - вот там есть вызовы ядра, что на модель рисуют саблю, пистоль, кирасу
И делают их с нужным уроном и тп

спасибо за ответы. буду пробывать.
User is online!Profile CardPM
Go to the top of the page
+Quote Post
Verdugo
сообщение Sep 3 2020, 22:06
Сообщение #643


новичок
*


Группа: форумчанин (*)
Сообщений: 9
Регистрация: 22-August 20
Пользователь №: 198,224



Цитата(Slayer @ Sep 3 2020, 15:24) *

а что делает эта функция? просто ни разу её не пользовался.


Добрый день.
На сколько я понимаю, она форсит обновление модели и анимации персонажа. Вы можете найти ее поиском.
Я использовал ее там, где нужно переодеть персонажа или сменить ему анимацию на лету. Попробовал создать ваш сценарий, сделал подобного офицера и снял с него саблю.

Попробуйте добавить эту функцию в диалог вашему противнику, перед тем как начнется бой с ним:

Код

void blade4off(ref chref)
{
    string sTemp = FindCharacterItemByGroup(chref, BLADE_ITEM_TYPE);
    if(CheckAttribute(chref, "HalfImmortal")) DeleteAttribute(chref, "HalfImmortal");
    if(GetCharacterEquipByGroup(chref, BLADE_ITEM_TYPE) == "" && sTemp != "")
    {
        Characters_RefreshModel(chref);
        EquipCharacterByItem(chref, sTemp);
    }
}


Не знаю, конечно, на сколько это грамотно (времени разбираться не было), но у меня все работает нормально.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Slayer
сообщение Sep 3 2020, 22:54
Сообщение #644


юнга
**


Группа: форумчанин (*)
Сообщений: 16
Регистрация: 2-September 20
Пользователь №: 199,708



Цитата(Verdugo @ Sep 3 2020, 22:06) *

Добрый день.




спсибо за подсказку . но дело было в тестовом режиме игры. просто вышел из него и сгенерил ей отличный клинок ( с улучшенными хар-ками) . и он перестал сниматься после потери сознания. Но появилаь ещё одна проблема - когда она абордажник , ей можно подсунуть дешевую рапиру и через меню заменить вручную на её отличную саблю . Теперь надо сделать так , как на примере Мери и нарвала , чтобы не отдавала).. повышение ей ранга не привело к успеху. Но я кажется решение уже почти нашел...
User is online!Profile CardPM
Go to the top of the page
+Quote Post
Verdugo
сообщение Sep 3 2020, 23:08
Сообщение #645


новичок
*


Группа: форумчанин (*)
Сообщений: 9
Регистрация: 22-August 20
Пользователь №: 198,224



Цитата(Slayer @ Sep 3 2020, 22:54) *
Теперь надо сделать так , как на примере Мери и нарвала , чтобы не отдавала).. повышение ей ранга не привело к успеху. Но я кажется решение уже почти нашел...


А что, как в случае с Мери, правкой в items.c, это не решается?
p.s. Если как с Мери не работает, попробуйте прописать как атрибут, проверку на атрибут поставить в items.c, аналогично с Мери.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Slayer
сообщение Sep 4 2020, 00:11
Сообщение #646


юнга
**


Группа: форумчанин (*)
Сообщений: 16
Регистрация: 2-September 20
Пользователь №: 199,708



Цитата(Verdugo @ Sep 3 2020, 23:08) *

А что, как в случае с Мери, правкой в items.c, это не решается?
p.s. Если как с Мери не работает, попробуйте прописать как атрибут, проверку на атрибут поставить в items.c, аналогично с Мери.

вот именно это решение и нашел)) ..просто ни разу ещё этот файл кода не смотрел . поэтому то и тормозил слегка ))

if (xi_refCharacter.id == "Mary" && arItem.groupID == BLADE_ITEM_TYPE)
{
return false; // чтобы нарвал не отбирали
}
if (xi_refCharacter.id == "Bonny" && arItem.groupID == BLADE_ITEM_TYPE)
{
return false; // чтобы саблю не отбирали
}
User is online!Profile CardPM
Go to the top of the page
+Quote Post
Slayer
сообщение Sep 6 2020, 12:32
Сообщение #647


юнга
**


Группа: форумчанин (*)
Сообщений: 16
Регистрация: 2-September 20
Пользователь №: 199,708



Цитата(Slayer @ Sep 4 2020, 00:11) *

вот именно это решение и нашел)) ..просто ни разу ещё этот файл кода не смотрел . поэтому то и тормозил слегка ))

if (xi_refCharacter.id == "Mary" && arItem.groupID == BLADE_ITEM_TYPE)
{
return false; // чтобы нарвал не отбирали
}
if (xi_refCharacter.id == "Bonny" && arItem.groupID == BLADE_ITEM_TYPE)
{
return false; // чтобы саблю не отбирали
}

но даже и в этом случае у данного оффа ( например у Мери) идет анализ оружия . И она может сменить свой нарвал , по её мнению, на лучшую саблю . И часто игроки меняют ей нарвал на моргану или что то неплохое. Поэтому чтобы ваш офф вообще ничего не менял на свою саблю , просто написать отказ от анализа им оружия . Сделал я это вот так , для своего персонажа . может кому то пригодится -
-------------------------------------------------------------------------------------------
// перебор на лучшую саблю
if (groupID == BLADE_ITEM_TYPE)
{
if (chref.id == "Bonny") // чтобы саблю даже на лучшее не меняла вообще НИКОГДА!
{
return "";
}
// формула лучшего выбора
//( 20 + ( 0.6 * bAttack + 0.4 * bAttack * GetCharacterSkill(chref, refItm.FencingType) * ( 1 + ( 1 - bBlnce ) * ( bBlnce - 1 ) / 5 ) ) / Wght
curBladeValue = (20.0 + (0.6 * stf(refItm.Attack) + 0.4 * stf(refItm.Attack) * (GetCharacterSkill(chref, refItm.FencingType) / SKILL_MAX) * (1.0 + (1.0 - stf(refItm.Balance)) * (stf(refItm.Balance) - 1.0)/5.0) ) ) / stf(refItm.Weight);

if (curBladeValue > maxBladeValue)
{
maxBladeValue = curBladeValue;
resultItemId = refItm.id;
}
}
else
{
return refItm.id;
}
User is online!Profile CardPM
Go to the top of the page
+Quote Post
Verdugo
сообщение Sep 13 2020, 13:36
Сообщение #648


новичок
*


Группа: форумчанин (*)
Сообщений: 9
Регистрация: 22-August 20
Пользователь №: 198,224



Здравствуйте.
У меня в игре есть амулет, который по задумке должен был предотвращать контузию, получаемую при ударе. И я хотел добавить ему такую способность.
В файле LAi_fightparams есть функция "LAi_NPC_EnableStun", но я не нашел в коде PostEvent для этой функции, и сама она больше нигде не упоминается.

Код
//Разрешён ли стан после удара
#event_handler("NPC_Event_EnableStun","LAi_NPC_EnableStun");
bool LAi_NPC_EnableStun()
{
    aref chr = GetEventData();
    if(CheckCharacterPerk(chr, "SwordplayProfessional")) {
        if(rand(100) < 60) npc_return_tmpb = false;
        else npc_return_tmpb = true;
    } else {
        if(CheckCharacterPerk(chr, "AdvancedDefense")) {
            if(rand(100) < 30) npc_return_tmpb = false;
            else npc_return_tmpb = true;
        } else {    
            if(CheckCharacterPerk(chr, "BasicDefense")) {
                if(rand(100) < 20) npc_return_tmpb = false;
                else npc_return_tmpb = true;
            } else {
                if(rand(100) < 10) npc_return_tmpb = false;
                npc_return_tmpb = true;
            }
        }    
    }    
    return npc_return_tmpb;
}


Вопрос к знающим людям - должна ли эта функция, исходя из ее названия, работать только для NPC, но не для Игрока? И если так, то есть ли отдельный метод специально для ГГ?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Verdugo
сообщение Sep 13 2020, 14:37
Сообщение #649


новичок
*


Группа: форумчанин (*)
Сообщений: 9
Регистрация: 22-August 20
Пользователь №: 198,224



Если она должна работать для всех персонажей, то происходит это немного странно...
Поставил в LAi_NPC_EnableStun простую проверку на наличие амулета, и вроде все заработало:

if(IsEquipCharacterByArtefact(chr, "totem_05")) return false;

при одетом амулете персонаж стоит столбом и не дергается от ударов.
Тогда я сделал амулет, как мультипликатор шанса блокировки дергача:
if(rand(100) < 30*(1+amulet)), но при тестировании заметил, что эти вероятности работают только у NPC.
Блейз же либо весь бой дергается, либо весь бой стоит как столб. dry.gif

Чтобы понять, каким образом опрашивается эта функция, поставил Log_info перед return:

Log_SetStringToLog("ID: " + chr.id + " Index: " + chr.index + " is stun enable: " + npc_return_tmpb);

И тогда увидел, что LAi_NPC_EnableStun запрашивается при загрузке локации, для всех персонажей в локации, включая Блейза.
Затем она опрашивается (постоянно?) для всех персонажей, находящихся в режиме боя, кроме Блейза. А Блейз не меняет свой стан-статус во время боя, и воюет с тем npc_return_tmpb, который ему выпал при загрузке в локацию. И сохраняет его до следующей перезагрузки.
Может быть, есть способ вручную дернуть эту функцию для ГГ, хотя бы при одевании/снятии амулета? Я так и не разобрался в этой системе эвентов. Пробовал отправить:

PostEvent("NPC_Event_EnableStun", 10, "i", GetMainCharacter());

при этом выходит Log_info, и npc_return_tmpb Блейза меняется. Возможно, это нужно делать иначе, т.к. на этом все действие и оканчивается...
Недавно переустановил игру со Steam. Взял ГГ с перком 'Проф. Фехт.', стравил его с офицером, и на дефолтной игре та же самая картина.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Slayer
сообщение Sep 14 2020, 00:25
Сообщение #650


юнга
**


Группа: форумчанин (*)
Сообщений: 16
Регистрация: 2-September 20
Пользователь №: 199,708



Цитата(Verdugo @ Sep 13 2020, 14:37) *


Недавно переустановил игру со Steam. Взял ГГ с перком 'Проф. Фехт.', стравил его с офицером, и на дефолтной игре та же самая картина.

пуп в игре не работает . Я сделал след. образом вот так -


Прикрепленные изображения
Прикрепленное изображение
User is online!Profile CardPM
Go to the top of the page
+Quote Post
BUKA_E}l{EBUKA
сообщение Sep 18 2020, 22:30
Сообщение #651


юнга
**


Группа: форумчанин
Сообщений: 31
Регистрация: 20-July 20
Пользователь №: 194,252



(ВМЛ) Подскажите проверку (или в каком месте в коде можно найти подобное), находится ли ГГ сейчас в море.
Не на суше/карте мира/каюте/палубе/абордаже, а именно в море на корабле от 3-го лица.

Пробовала IsEntity(Sea) / IsEntity(&Sea) / IsEntity(AISea) / IsEntity(&AISea), но результат не оправдал ожиданий.

UPD: разобралась, но решила делать по-другому.

На случай если кому понадобится, потестите это:
if (bSeaActive && !bAbordageStarted)
или:
if (bSeaActive && !bAbordageStarted && SeaCameras.Camera != "SeaDeckCamera")
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
BUKA_E}l{EBUKA
сообщение Sep 21 2020, 18:38
Сообщение #652


юнга
**


Группа: форумчанин
Сообщений: 31
Регистрация: 20-July 20
Пользователь №: 194,252



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

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

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

Буду весьма признательна если кто-то поопытнее мне подскажет что делать

P.S.
Файл 'options' в порядке, я его регулярно чищу.
Хоть я и повысила лимит на кол-во сейвов, но папку время от времени освобождаю и обычно в ней 15-70 файлов.
Быстрым сохранением не пользуюсь.

В error.log нет ничего кроме постоянно появляющихся
Код
RUNTIME ERROR - file: seadogs.c; line: 590
Save - ARef to non existing attributes branch
где строка 590 это закрывающая '}' функции 'void OnSave()'

UPD:
Поковырялась еще и обнаружила некое несоответствие кода и первым 2/3 времени проведенного мной в игре.

Как было у меня со старта игры:
Во время битвы (при наличии живых врагов) - 1. иконки моргают красным
2. нельзя сохраняться, неважно вытащено оружие или нет
После битвы (живых врагов не осталось) - проходит некоторое время, моргание прекращается и можно сохраняться (черт подери, это моргание на протяжении многих десятков часов прохождения служило у меня индикатором когда игра разрешит засейвица)

Как должно быть согласно коду:
Во время битвы - 1. можно сохраняться если оружие убрано, я не вижу никаких проверок на наличие в локации враждебных юнитов
2. никаких "спустя некоторое время" я тоже не вижу, убрал оружие - сейвись хоть прям сразу

Кто еще помнит свои похождения ВМЛ - как было у вас?


UPD2:
AlexusB, по поводу строки из этого ченджлога:
"15. Переделал запрет сохранения в бою. Раньше при мигании тревоги был запрет. Теперь запрет, только если боевой режим (обнажен меч)."
Вы случайно не помните, что и где там менялось?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Verdugo
сообщение Sep 23 2020, 23:59
Сообщение #653


новичок
*


Группа: форумчанин (*)
Сообщений: 9
Регистрация: 22-August 20
Пользователь №: 198,224



Глянул мельком, на истину не претендую. rolleyes.gif

Цитата(BUKA_E}l{EBUKA @ Sep 21 2020, 18:38) *

(ВМЛ) Спустя некоторое время после окончания битвы на суше, игра позволяет сохраняться.
Но некоторое время назад появилась проблема:
Иконки персонажей продолжают моргать красным и все еще звучит боевая музыка.
И пока локацию не сменишь, это не прекратится.


У меня стоит не ВМЛ, но скрипты похожие. Может быть и у вас это сработает, как у меня.
Я просто повесил все эти команды на клавишу F10 в Debuger.c
Команды см. в LAi_groups.c

Например, вы подрались в таверне с офицером - враг уже помер давно, а аларм все не проходит:

Код
void ActiveF10Control()
{
    LAi_grp_playeralarm = 0;
    LAi_grp_alarmactive = false;
    LAi_group_Release();
    Sound_OnAlarm(false);
}

Война выключается, можно беседовать с барменом/выпивохами и т.д, никто ругаться не будет.
У меня в ККС, по крайней мере, это работает.

Если сохраниться по прежнему нельзя, может быть, туда стоит добавить:

InterfaceStates.Buttons.Save.enable = 1;


Если, допустим, вы начали колотить охранника в городе, а потом вдруг передумали biggrin.gif

void ActiveF10Control()
{
SendMessage(&LAi_grp_relations, "s", "LoadDataRelations");
}

Восстанавливает отношение (из объекта, вероятно?).

Или вы уже поколотили охранника, потом сменили локацию (зашли в кабак, например)
а кабатчик называет грязным убийцей, и не хочет налить рому laugh.gif

void ActiveF10Control()
{
SendMessage(&LAi_grp_relations, "s", "RestoreStates");
}

При смене локации, горькие обиды пишутся (в объект, вероятно?).

Цитата

В error.log нет ничего кроме постоянно появляющихся
RUNTIME ERROR - file: seadogs.c; line: 590
Save - ARef to non existing attributes branch


У меня в скриптах ВМЛ строка 590 это:
void ClearLocationsSaveData()
{
aref loc = GetEventData(); // а это, вероятно, искомый ARef
SendMessage(loc, "l", MSG_LOCATION_CLRCHRPOSITIONS);
}



Цитата

Как было у меня со старта игры:
Во время битвы (при наличии живых врагов) - 1. иконки моргают красным
2. нельзя сохраняться, неважно вытащено оружие или нет
После битвы (живых врагов не осталось) - проходит некоторое время, моргание прекращается и можно сохраняться (черт подери, это моргание на протяжении многих десятков часов прохождения служило у меня индикатором когда игра разрешит засейвица)

Как должно быть согласно коду:
Во время битвы - 1. можно сохраняться если оружие убрано, я не вижу никаких проверок на наличие в локации враждебных юнитов
2. никаких "спустя некоторое время" я тоже не вижу, убрал оружие - сейвись хоть прям сразу


Гляньте в LAi_fight.c
или в LAi_player.c
может быть, это оно?

CODE
//Процессирование типа персонажа
void LAi_type_player_CharacterUpdate(aref chr, float dltTime)
{
float time;
if(SendMessage(chr, "ls", MSG_CHARACTER_EX_MSG, "IsActive") != 0)
{
chr.chr_ai.type.weapontime = "0";
}
if(LAi_group_GetPlayerAlarm())
{
chr.chr_ai.type.weapontime = "0";
}
if(LAi_IsFightMode(chr)) // <<<<<<<<<< ?
{
time = stf(chr.chr_ai.type.weapontime) + dltTime;
chr.chr_ai.type.weapontime = time;
if(time > 300.0) // <<<<<<<<<< "спустя некоторое время"?
{
chr.chr_ai.type.weapontime = "0";
SendMessage(chr, "lsl", MSG_CHARACTER_EX_MSG, "ChangeFightMode", false); // <<<<<<<<<< ?
}
}else{
chr.chr_ai.type.weapontime = "0";
}
}


Цитата

"Переделал запрет сохранения в бою. Раньше при мигании тревоги был запрет. Теперь запрет, только если боевой режим (обнажен меч)."


Наверное, вот так:

Код
bool QuickSaveGameEnabled()
{
    bool TmpBool = true;
    //if(LAi_group_IsActivePlayerAlarm() && !bBettaTestMode) TmpBool = false; // <-- "Раньше при мигании тревоги был запрет."
    ref mchref = GetMainCharacter();
    if (LAi_IsFightMode(mchref) && !bBettaTestMode) TmpBool = false; // <-- "Теперь запрет, только если боевой режим (обнажен меч)."
    if(!LAi_IsCharacterControl(GetMainCharacter())) TmpBool = false;
    if (dialogRun) TmpBool = false;
    if (IsEntity(worldMap)) TmpBool = true;
    return TmpBool;
}


User is offlineProfile CardPM
Go to the top of the page
+Quote Post
BUKA_E}l{EBUKA
сообщение Sep 24 2020, 06:54
Сообщение #654


юнга
**


Группа: форумчанин
Сообщений: 31
Регистрация: 20-July 20
Пользователь №: 194,252



Вопрос тем, кто знаком с кодом ВМЛ версий более ранних чем выложенные исходники:

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

Потому что в некоторых местах стоит скрытность там, где по логике должна быть везение.
Примеры:

CharacterUtilite.c
SKILL_SNEAK в кол-ве сожранного крысами (void DailyRatsEatGoodsUpdate)
Код
iQuantity = 1+ rand(makeint(iQuantity / (2+GetSummonSkillFromNameToOld(chref, SKILL_REPAIR) + GetSummonSkillFromNameToOld(chref,SKILL_SNEAK))));


characters_init.c
Коммент говорит сам за себя
Код
        if (!CheckAttribute(rCharacter, "skill.Pistol"))
        {
            rCharacter.skill.Pistol = 3 + rand(5);
            rCharacter.skill.Sneak  = 1 + rand(8); // удача влияет на раны от пистолета
        }


Вердикт подозреваемому?
У себя это дело пофиксила, но вдруг я чего-то не догоняю и так было задумано. Не хочу ченить поломать снова


P.S.
Цитата(Verdugo @ Sep 23 2020, 23:59) *
Глянул мельком

Спасибо за развернутый ответ! Многое из этого мне пригодится

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

Так что я забила на это дело. Все пути ведут в ядро, тот же eventAllarm, который триггерит смену звука на боевой и обратно.
Буду играть как есть. Сохраняться можно, а боевую музыку и моргание я как-нибудь переживу, бывало и хуже (однажды в сталкере, на глубоком-глубоком сейве, я решила подправить аномалии. И сломала визуалку у доброй половины. А бэкап файлов под шумок удалил антивирь. Так и играла - с невидимыми, но болючими laugh.gif )
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Slayer
сообщение Sep 30 2020, 11:56
Сообщение #655


юнга
**


Группа: форумчанин (*)
Сообщений: 16
Регистрация: 2-September 20
Пользователь №: 199,708



Камрады, кто в курсе - почему он постоянно мне сдается вообще даже без боя? что не так в коде? вроде всё ок должно быть . Причем в тестовом режиме когда смотрю в трубу на него есть лог - не сдается! - ..
============================================

Group_FindOrCreateGroup("Beltrop_Attack");
Group_SetType("Beltrop_Attack", "war");
sld = characterFromID("Beltrop");
sld.rank = 55;
LAi_SetHP(sld, 400, 400);
SetSPECIAL(sld, 10, 10, 10, 9, 8, 10, 9); //сил.воспр.вын.автор.обуч.реакц.удача
SetSelfSkill(sld, 80, 95, 100, 100, 100);
//SetShipSkill(sld, 75, 50, 100, 100, 100, 80, 100, 100, 100);
sld.MultiFighter = 1.5;
sld.MultiShooter = 1.5;
SetHalfPerksToChar(sld, false);
SetCharacterPerk(sld, "Energaiser");
SetCharacterPerk(sld, "BasicDefense"); //
SetCharacterPerk(sld, "AdvancedDefense");
SetCharacterPerk(sld, "CriticalHit");
SetCharacterPerk(sld, "Tireless");
SetCharacterPerk(sld, "SwordplayProfessional");
SetCharacterPerk(sld, "Sliding");
SetCharacterPerk(sld, "Gunman");
SetCharacterPerk(sld, "GunProfessional");
SetCharacterPerk(sld, "HardHitter");
SetCharacterPerk(sld, "ByWorker");
SetCharacterPerk(sld, "ShipEscape");
SetCharacterPerk(sld, "IronWill");
SetCharacterPerk(sld, "Doctor1");
SetCharacterPerk(sld, "Doctor2");
sld.DontRansackCaptain = true;
FantomMakeCoolSailor(sld, SHIP_BLACKPEARL, "Скиталец", CANNON_TYPE_CANNON_LBS32, 100, 100, 100);// черн. жемчужина
sld.name = "Чарльз";
sld.lastname = "Вейн";
//SetBaseShipData(sld);
sld.ship.crew.quantity = 500;
sld.ship.Crew.Morale = 100;
sld.Ship.Crew.Exp.Sailors = 100;
sld.Ship.Crew.Exp.Cannoners = 100;
sld.Ship.Crew.Exp.Soldiers = 100;
RealShips[sti(sld.Ship.Type)].ship.upgrades.hull = 3;
sld.DontRansackCaptain = true;
sld.AnalizeShips = true;
sld.Coastal_Captain = true;
sld.WatchFort = true; // форты видит
sld.LockTask = true;
sld.AlwaysEnemy = true;
sld.SinkTenPercent = false;// не сдавать сяч не тонуть при 10%
DeleteAttribute(sld, "SaveItemsForDead"); //вещи не сохранять
DeleteAttribute(sld, "DontClearDead");
sld.Ship.Mode = "war";
if (MOD_SKILL_ENEMY_RATE > 2) SetCharacterPerk(sld, "MusketsShoot");
Group_AddCharacter("Beltrop_Attack", "Beltrop");
Group_SetGroupCommander("Beltrop_Attack", "Beltrop");
Group_SetAddress("Beltrop_Attack", "Maracaibo", "quest_ships", "quest_ship_1");
User is online!Profile CardPM
Go to the top of the page
+Quote Post
ALexusB
сообщение Sep 30 2020, 17:06
Сообщение #656


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

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



sld.DontRansackCaptain = true; - это не сдаваться
проверяется в LAi_StartBoarding
Если там вкл чит сдачи (дебуг ф11), то все сдаются всегда
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Slayer
сообщение Sep 30 2020, 18:39
Сообщение #657


юнга
**


Группа: форумчанин (*)
Сообщений: 16
Регистрация: 2-September 20
Пользователь №: 199,708



Цитата(ALexusB @ Sep 30 2020, 17:06) *

sld.DontRansackCaptain = true; - это не сдаваться
проверяется в LAi_StartBoarding
Если там вкл чит сдачи (дебуг ф11), то все сдаются всегда

на Ф11 уже другое назначение . Но наверное потому что я ставил себе бессмертие + команду на корабле 3500 челов. Наверно из за этого . даже ставя ставки сдачи по 0.0 - все равно сдавались. Потом сравнл с обычной игрой с мощным кораблем - сдаваться перестали.. видимо дело было в ГГ. но сама прична так и осталась неизвестна)
User is online!Profile CardPM
Go to the top of the page
+Quote Post
BUKA_E}l{EBUKA
сообщение Oct 13 2020, 02:11
Сообщение #658


юнга
**


Группа: форумчанин
Сообщений: 31
Регистрация: 20-July 20
Пользователь №: 194,252



Причастные к разработке аддона ВМЛ, проконсультируйте пожалуйста 3.gif

В ФАКе сказано, что для общих значений корабельных навыков (авторитет...скрытность) учитываются скилы офицеров.
Была ли задумка таковой, что это должно работать во всех случаях?


Почему спрашиваю:

Нашла First Mate с авторитетом и навой по 100, ну и решила освободить свой инвентарь от шмота на + к этим скилам. Позже заметила, что мэры стали значительно реже соглашаться со мной играть.

Пошла искать причину
Оказалось, у мэра помимо есть проверка на авторитет, помимо прочих.
Вот только сделана она не через GetSummonSkillFromNameToOld (учитывает скилы офицеров), а через GetCharacterSkillToOld (учитывает только скил ГГ).

Уж очень меня сие удивило
Как получить стратегически важдую инфу о местонахождении губера - ну вон та рожа из твоей свиты мне знакома, мужик надежный, значит и ты свой чувак, записывай
А как в картишки перекинуться - да ну, ты ж хрен с горы еще колоду мне погрызешь вали отсюдова
laugh.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
ALexusB
сообщение Oct 13 2020, 12:46
Сообщение #659


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

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



в ВМЛ нет GetSummonSkillFromNameToOld, есть GetSummonSkillFromName
Это уже какие-то доработки на местах

авторитет - личный скил ГГ, уже не помню по ВМЛ, в КВЛ так
http://www.seaward.ru/scr.php?srcimg=img03.jpg
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
BUKA_E}l{EBUKA
сообщение Oct 16 2020, 04:40
Сообщение #660


юнга
**


Группа: форумчанин
Сообщений: 31
Регистрация: 20-July 20
Пользователь №: 194,252



Не подскажете, где код отвечающий за перенос вещей в каюте при обмене кораблями?

У меня все рассортировано по разным сундукам, а при смене корабля все скидывает в один.
И я тут поймала себя на мысли что не подбираю корабль получше (и не апгрейжу компаньонов) только потому, что лень потом снова сортировать барахлишко unsure.gif

Глянуть бы как там устроено, мож справлюсь допилить под свои хотелки
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

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

 



Текстовая версия Сейчас: 29th March 2024 - 11:19

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