cool_er
Участник форума
- Регистрация
- 23 Мар 2015
- Сообщения
- 118
- Благодарности
- 42
- Баллы
- 190
Спасибо, исправил .;
забыл..
Спасибо, исправил .;
забыл..
Ну ппц, блин, сделай так в конце блока этой функции:Если поставлю возврат число больше 7 или меньше 1 и при проверке в движке, если число не находится в диапазоне от 1 до 7 снова проверить. Будет зацикливание которое может привести к перегреву процессора. А если поставлю возврат любое число от 1 до 7 будет нарушение в игре.
Чтобы по версию 3.14 всё переделать, мне нужен движок в открытом виде. Т.к. с этими "Внимание: Функция должна возвращать значение" уже достали (111 вниманий из которых 103 это "Внимание: Функция должна возвращать значение").
...
if(C_IsQuarterNearest(slf,Q_OBERSTADT))
{
return Q_OBERSTADT;
};
return 0; //или return FALSE; что равнозначно (!)
};
Ну ппц, блин, сделай так в конце блока этой функции:
Код:... if(C_IsQuarterNearest(slf,Q_OBERSTADT)) { return Q_OBERSTADT; }; return 0; //или return FALSE; что равнозначно (!) };
Я не совсем понял что это за файл и откуда он вообще, это твое творение?Вот чего я боюсь
PrintPlus("WRONG Q-PARAMETER!");
и возврат по новой определения дистанции
return dist;
Если есть зацикливание значит метод реализации ты выбрал не верный, надо искать другое решение.Классическое зацикливание функции.
Их отключить нельзя, это синтаксис скриптового языка Дедал, просто скрипты надо писать правильно руководствуясь его грамматикой, правилами (!)Как отключить эти "умные" внимания?
Возможно имеет смысл сделать клоны инстанций каждого отдельно взятого Нпс, для каждого конкретного мира, с постфиксом мира, например:+ как реализовать (раз полная переделка мода) систему напарников: чтобы информация из одного игрового мира передавалась в другой по 2 людям и одному животному (какие они параметры имели, что у них в инвентаре было и т.д.)
Я не совсем понял что это за файл и откуда он вообще, это твое творение?
Если есть зацикливание значит метод реализации ты выбрал не верный, надо искать другое решение.
Их отключить нельзя, это синтаксис скриптового языка Дедал, просто скрипты надо писать правильно руководствуясь его грамматикой, правилами (!)
Возможно имеет смысл сделать клоны инстанций каждого отдельно взятого Нпс, для каждого конкретного мира, с постфиксом мира, например:
BAU_7032_Fedy_NW.d
BAU_7032_Fedy_OW.d
BAU_7032_Fedy_ADW.d
Где, постфик это миры: NW - Хориниса; OW - Миненталя; ADW - Яркендара..
Если нужно перенести актуальную/текущую статистику НПС, то возможно имеет смысл ее предварительно скинуть в переменные для конкретного Нпс, или массив переменных.
И использовать при загрузке нового мира оттуда..
Это если я тебя правильно понял..
Отличаются тем что один используется на Ирдорате, а инстанция другого в Хоринисе.DJG_705_Angar_DI.d и DJG_705_Angar_NW.d ничем не отличаются, кроме
Повторяю вопрос:Но т.к. возможно реализовать учителя навыков напарника, увеличить его силу, ловкость, Mana, и т.д.. То мне нужно, чтобы напарнику с OldWorld локации досталось тоже самое чему он обучился в Newworld. Т.к. человека можно обучать через "B_SetAttributesToChapter(self,?);", а вот волкодава нужно отдельно обучать т.к. это животное и оно имеет в отличии от NPC отдельные параметры для силы, ловкость, Mana, HP.
Да, в некоторых случаях, это помогает, если значения сильно разнятся..Как мне передавать параметры из одного игрового мира в другой?
Снова копированием параметров?
Ну возможно в их случае оно и не требовалось, а раз тебе это нужно, то создавай копию Непеся с уже прописанными вещами в инвентаре(если кол-во их 100% известно и не изменно).+ даже в стандартном исполнении Пираний не вижу копирования инвентаря. Т.е. Напарник в Newworld получил сначала броню ITAR_CorAngar, после получил ITAR_AVATAR. Как мне передать информацию напарнику в Oldworld, что напарник в Newworld имел две брони ITAR_CorAngar и ITAR_AVATAR.
Ничего не понял..Тоже самое с мечами и т.д.
Тут один вариант, сразу во время передачи предмета его клонировать на нужное число NPC по разным мирам. Но это при варианте добавить, но ведь Игрок не Абрамович и он должен иметь возможность попросить назад предмет.
Т.е. реализовывать удаление у всех NPC по разным мира предметов?
Я реализовываю не только возможность отдать предмет, но и возможность забрать предмет у NPC. Сейчас у тебя был меч 45 сила 45 повреждений и ты его напарнику отдаёшь. После тебе достался меч 65 сила и 65 повреждений и ты его напарнику отдаёшь, а меч на 45 силы и 45 повреждений можно и забрать, чтобы продать.Отличаются тем что один используется на Ирдорате, а инстанция другого в Хоринисе.
Так работает движок игры с Нпс.
Повторяю вопрос:
Что мешает создать инстанцию с заданными или требуемыми параметрами и навыками для конкретного Нпс в конкретном мире, и использовать ее ?!
Да в некоторых случаях, это помогает, если значения сильно разнятся..
Ну возможно в их случае оно и не требовалось, а раз тебе это нужно, то создавай копию Непеся с уже прописанными вещами в инвентаре(если кол-во их 100% известно и не изменно).
Если числа плавающие и изменяемые, то фиксируй их в переменных, и после генерации Нпс в мире игры правь количество и число итемов в его инвентаре, так как тебе нужно.
Ничего не понял..
Если тебе надо чтобы меч Нпс, был в руках этого-же Нпс, но с другой инстанцией и в другом мире, то:
1. получаешь ссылку на ИД предмета оружия, заносишь ее в переменную.
2. при вставке Нпс в новый мир, экипируешь его этим оружием вытаскивая значение его ИД из переменной.
Ну или как-то так, в чем здесь проблема ?!
А можно и удалить как хлам во время передачи нового меча на (65 силы и 65 повреждений)..Я реализовываю не только возможность отдать предмет, но и возможность забрать предмет у NPC. Сейчас у тебя был меч 45 сила 45 повреждений и ты его напарнику отдаёшь. После тебе достался меч 65 сила и 65 повреждений и ты его напарнику отдаёшь, а меч на 45 силы и 45 повреждений можно и забрать, чтобы продать.
Попробуй изменять ему Гильдию/отношение, если псина в городе, в функции атаки через условия местонахождения, например..Но с волкодавом проблемы в городе, если с ГГ кто-то затеял драку, он кидается на обидчика и сразу все вокруг начинают избивать волкодава. Как это исправить? (В городе пока ГГ не тронут на волкодава внимания не обращают, словно он овца)
А можно и удалить как хлам во время передачи нового меча на (65 силы и 65 повреждений)..
Попробуй изменять ему Гильдию/отношение, если псина в городе, в функции атаки через условия местонахождения, например..
Проставляя аналогичное значение как у портовых алкашей, которых бьешь, и на которых не агрятся..
Будет псинка с человеческим лицом, подумаешь невидаль..
1. Зачем псине новая гильдия ?!Только одна осталась свободная гильдия или ещё можно добавлять?
Я уже не помню но 6 гильдий много, в оригинальных скриптах есть место только для этих:Итого нужно 6 новых гильдий.
const int GIL_EMPTY_D = 15; //(пусто)
const int GIL_EMPTY_X = 63; //(пусто)
const int GIL_EMPTY_Y = 64; //(пусто)
const int GIL_EMPTY_Z = 65; //(пусто)
Тебя опять куда-то в глобализацию понесло...P.S. И это сейчас, когда новых локаций нет. С новыми локациями около 10 новых гильдий нужно.
Да, вполне можно менять отношения к непесю или группе непесей(гильдии).И возможно ли во время разговора менять этот параметр npcType = NPCTYPE_FRIEND;, чтобы напарнику сказать "веди себя мирно" и параметр NPCTYPE_FRIEND, "веди себя осторожно" и параметр npctype_main срабатывал?
func void DIA_Sergio_Start_Info()
{
AI_Output(other,self,"DIA_Sergio_Start_15_00"); //Ты должен сопровождать меня к Проходу.
AI_Output(self,other,"DIA_Sergio_Start_04_01"); //Хорошо, я сделаю это. Я знаю дорогу, иди за мной.
AI_StopProcessInfos(self);
self.aivar[AIV_PARTYMEMBER] = TRUE;
self.npcType = NPCTYPE_FRIEND;
Npc_ExchangeRoutine(self,"GUIDE");
};
В оригинале Готы 2 тоже где-то было еще до Dragon Age..Вариант изменения отношения к ГГ определённого NPC от дружелюбного до враждебного. Из-за разговора с напарником. (Этот вариант из Dragon Age мною взят)
Ну вот, осталось тока поженить их через скрипты...Т.к. один из напарников ГГ будет амазонка и если игрок достигнет определённого уровня отношений, то будет свадьба.
Делаешь обычного Нпс в скрипте, с прототипом или без в зависимости что требуется, а вижуал собачишь ему/им от скелетона, все..Раз с волкодавом можно гильдию человека добавить, тогда вопрос как сделать скелета, (попытки сделать как дракона не удались).
Мне нужно чтобы у тёмных магов сбежали 3 скелета и у игрока есть сутки их найти. Чтобы со скелетами возможно было поговорить, игроку выдаётся 3 кости (по 1 на каждого скелета). Если игрок находит скелете, происходит диалог и у игрока удаляется одна кость. Если все скелеты найдены за сутки, то игрок сдаёт квест.
Делаешь обычного Нпс в скрипте, с прототипом или без в зависимости что требуется, а вижуал собачишь ему/им от скелетона, все..
Чувак в скелете на выходе..
Т.е. скелет от человека ничем не отличается кроме Гильдии и визуалом..
Боюсь соврать, но по-моему, данного оверлея в Готике 2 нет. Он есть только в Готике 1.Mdl_ApplyOverlayMds(self,"humans_skeleton.mds");
Mdl_SetVisual(self,"HumanS.mds");
Mdl_SetVisualBody(self,"Ske_Body2",DEFAULT,DEFAULT,"",DEFAULT,DEFAULT,-1);
Все зависит от того что ты делаешь.Обязательно всё повторять?
instance BAU_50005_Addon_Trupik(Npc_Default)
{
name[0] = "Трупик";
npcType = npctype_main;
guild = GIL_NONE;
level = 4;
flags = 0;
voice = 3;
id = 50005;
flags = NPC_FLAG_IMMORTAL;
attribute[ATR_STRENGTH] = 20;
attribute[ATR_DEXTERITY] = 10;
attribute[ATR_MANA_MAX] = 0;
attribute[ATR_MANA] = 0;
attribute[ATR_HITPOINTS_MAX] = 88;
attribute[ATR_HITPOINTS] = 88;
Mdl_SetVisual(self,"HUMANS.MDS");
Mdl_SetVisualBody(self,"Ske_Body",DEFAULT,DEFAULT,"",DEFAULT,DEFAULT,-1);
//или так: Mdl_SetVisualBody(self,"Ske_Body2",DEFAULT,DEFAULT,"",DEFAULT,DEFAULT,-1);
fight_tactic = FAI_HUMAN_STRONG;
EquipItem(self,ItMw_1h_Sld_Sword);
EquipItem(self,ItRw_Mil_Crossbow);
B_CreateAmbientInv(self);
Npc_SetTalentSkill(self,NPC_TALENT_1H,1);
daily_routine = Rtn_Start_50005;
};
Господин Лебедев, честно говоря, я несколько офигеваю от Ваших опусов. Вот не пойму, как Вы сподобились выпустить Небесного воина, если даже не понимаете основ модостроя и всем форумом Вам приходится разжевывать азбучные истины?Итого Август весь теряется и в 2015 году переходную версию не смогу выпустить из-за потери месяца (из-за версии 3.14).
Кто сравнивает скрипты в AkelPad ?! Для этого есть специализированный софт для сравнения и слияния документов, например WinMerge.Сверка при помощи AkelPad и глаз отнимет до недели (чисто все аналогичные наработки перенести, без проверки работоспособности).
Мне визуальным отображением больше понравился Beyond Compare, но Лебедев судя по последним страницам темы видимо настолько суровЪ, что легких путей не ищет, а может быть и Георгий не разрешаетДля этого есть специализированный софт для сравнения и слияния документов, например WinMerge.