MaGoth

Хранитель форума
Регистрация
30 Авг 2006
Сообщения
2,024
Репутация
0
Адрес
Самара
Первый и последний установи, этого будет достаточно.
Если для тебя лимит ФПС важен, то можешь и эти патчи установить. В этом случае тебе придется все устанавливать в том порядке, как у тебя написано в посте... :)
 

Колян

Паладин
Регистрация
2 Дек 2009
Сообщения
181
Репутация
2
Адрес
Петрозаводск
Поставил первый и последний из списка, но теперь почемуто при чтении книг/записок, - на экран не выводится текс их содержания., пустой бланк (только горизонтальная линия в самом верху)...
Может кто сталкивался с подобным и знает как это лечить?
И ещё, болотожоры как танки...
4 стража не могли справиться с одним., НР от их ударов не отнималось...
Только Гор На Тор (имя могу путать) разрулил ситуацию...
Так и должно быть?
У меня на данный момент сила = 55 и ножик 24 урона, но ни болотожорам ни шныгам не могу причинить вреда...
Это кажется полюбому ошибка в коде где-то...
Подскажите как поправить, а то невозможно так играть... :'(
(В код не лез, Marvin'ом не пользуюсь)
 

MaGoth

Хранитель форума
Регистрация
30 Авг 2006
Сообщения
2,024
Репутация
0
Адрес
Самара
Колян
Здесь сам думай, ибо я никогда никаких патчей не ставил ни на Г1 ни на Г2(кроме как патча для МДК)...
 

Колян

Паладин
Регистрация
2 Дек 2009
Сообщения
181
Репутация
2
Адрес
Петрозаводск
Подскажите, как в скриптах Готики, "склеивать строки"...
К примеру в PHP (возможно ошибаюсь), можно так:
Код:
$a = "Тра-та-та";
$b = "Парам-пам-пам";
$c = $a.$b;
А как что-то подобное осуществить в скриптах игры?
----------------------------------------------------------------------------
Еще вопросик...
Это баг движка, или тут что-то не так?
Пример:
[!--SpoilerBegin--][/div][table border=\'0\' align=\'center\' width=\'95%\' cellpadding=\'3\' cellspacing=\'1\'][tr][td onclick=\'ShowTableTdFromTd(this,1)\' style=\"cursor:pointer\"]Скрытый текст (нажмите сюда, чтобы увидеть) [/td][/tr][tr][td style=\"display:none\" id=\'SPOILER\'][!--SpoilerEBegin--]
func void DIA_Whistler_Favour_Ok()
{
var C_Npc fisk;
AI_Output(other,self,"DIA_Whistler_Favour_Ok_15_00"); //Ладно, давай свои 100 кусков. Я куплю тебе меч.
AI_Output(self,other,"DIA_Whistler_Favour_Ok_11_01"); //Вот они. И сразу возвращайся ко мне!
Whistler_BuyMySword = LOG_RUNNING;
if(Npc_GetTrueGuild(hero) == GIL_None)
{
Log_CreateTopic(CH1_JoinOC,LOG_MISSION);
Log_SetTopicStatus(CH1_JoinOC,LOG_RUNNING);
};
B_LogEntry(CH1_JoinOC,"Уистлер поможет мне, если я схожу на рынок к Фиску и куплю ему меч. Для этого он дал мне 100 кусков руды.");
fisk = Hlp_GetNpc(Stt_311_Fisk);
CreateInvItems(self,ItMiNugget,100);
B_GiveInvItems(self,hero,ItMiNugget,100);
Whistler_BuyMySword_Day = Wld_GetDay();
Info_ClearChoices(DIA_Whistler_Favour);
};
[!--SpoilerEnd--][/td][/tr][/table][div class=\'postcolor\'][!--SpoilerEEnd--]
Вроде последовательность правильная., но почему тогда надпись о получении руды, появляется до реплики Уистлера? :)
 

MaGoth

Хранитель форума
Регистрация
30 Авг 2006
Сообщения
2,024
Репутация
0
Адрес
Самара
Колян
Читатй тутор Вама по скриптингу, в нем и про конкатенацию строк будет, или же смотри примеры в скриптах с использованием функции для вывода текста Принт...
 

Колян

Паладин
Регистрация
2 Дек 2009
Сообщения
181
Репутация
2
Адрес
Петрозаводск
MaGoth
С этим разобрался, просто я думал, что можно как-то помимо ConcatStrings это осуществить... ;)
------------------------------------------------
Подскажите, как в функции B_GiveInvItems задействовать имя предмета?
Пробовал так:
var string itemname;
itemname = item.name;

Но почему-то не хочет работать...
Возвращает пустое значение...
P.S.: В Г2 ведь работает...
Как-будто не видит имени ITEM'а... :angry:
 

Колян

Паладин
Регистрация
2 Дек 2009
Сообщения
181
Репутация
2
Адрес
Петрозаводск
Подскажите, какие файлы отвечают за торговлю с неписями?
Вот например:
Код:
instance GRD_205_Scorpio_TRADE(C_Info)
{
	npc = GRD_205_Scorpio;
	condition = GRD_205_Scorpio_TRADE_Condition;
	information = GRD_205_Scorpio_TRADE_Info;
	important = 0;
	permanent = 1;
	description = "Покажи, что у тебя есть.";
	trade = 1;
};


func int GRD_205_Scorpio_TRADE_Condition()
{
	if(Npc_KnowsInfo(hero,GRD_205_Scorpio_BANISHED))
	{
  return TRUE;
	};
};

func void GRD_205_Scorpio_TRADE_Info()
{
	AI_Output(other,self,"GRD_205_Scorpio_TRADE_Info_15_01");	//Покажи, что у тебя есть.
};
А дальше что происходит?
Какая функция задействуется?
Все игравшие в Готику 1, видели, что при торговле, - оружие распологается по одному экземпляру на ячейку (что очень неудобно)...
Хотелось бы это поправить, но незнаю за что зацепиться...
Может в параметрах предмета что изменить нужно?
Или в первой Готике это не предусмотрено?
Хотя руда/монеты/стрелы/болты отображаются пачками, значит шанс есть...
---------------------------- Добавлено -------------------------------
Изменил в параметрах предмета flags = ITEM_AXE; на flags = ITEM_AXE | ITEM_MULTI;., всё работает, но при "надевании" оружия, в инвентаре, цифра 1 ставится на "всю пачку" этого оружия, если имеется более одного экземпляра оного...
Если можно как-то поправить, то подскажите как...
 

Borsh39Rus

Guest
Здравствуйте. Незнаю, в ту ли тему пишу...
Вообщем у нас с друзьями появилась такая идея:
А что если добавить мультиплеер?
Но не такой конечно, чтоб было очередное мморпг.
Хочется сделать так, чтоб например ходишь ты и друг и выполняете совместно квесты?
Например задача: выкрасть что-либо, пока кто-то отходит. И например один стоит на "шухере", а другой замок взламывает.
Или ещё: нужно что-то найти, вы примерно знаете, в какой области это находится, но эта область очень большая, и тогда можно разделиться и поодиночке искать, и если нашёл - сообщить другому. Т.е. поиск происходит быстрее.
Ну да ладно. Вообщем такой вопрос: возможно ли это вообще реализовать?
Мы пока что в модостроении вообще нихрена не шарим, но желания научиться всему этому - море. Но вот интересует возможность реализации такого.
 

DEDROIT

Administrator
Команда форума
Регистрация
31 Янв 2006
Сообщения
1,384
Репутация
234
Адрес
Москва
Borsh39Rus
Есть. Некоторые команды пытались сделать мультиплеер, но так до ума и не довели.
 

Cat

Новичок
Регистрация
14 Дек 2011
Сообщения
9
Репутация
0
Адрес
Балмора
Ыыыы, сейчас кого-то убью О.о
Уперся рогом в точку, и не могу сдвинутся.
Делаю квест на убиение монстров.
Просмотрел похожие скрипты, где есть задания на ликвидацию зверья, и вот не могу понять одной детали.
Да, в скрипте пропишу Wld_InsertNpc(AWolf1,"NW_FARM1_FIELD_06"); Но где еще надо указывать этого самого AWolf1?
 

Druid

Вечнозеленый
Команда форума
Регистрация
9 Апр 2008
Сообщения
2,329
Репутация
583
Адрес
Россия
В каталоге монстров глянь файлик MST_Wolf.d
Тамо и пропиши каждого из своих волков.
 

DonLaonda

Ополченец
Регистрация
21 Мар 2013
Сообщения
58
Репутация
9
Добавил НПС, написал квест, диалоги.
Все работает, но субтитры диалогов не отображаются, сразу наступают последствия разговора.
Подозреваю, что надо как-то установить время ожидания, что бы игрок успел прочитать что говорят, но как?

Платформа - Готика 2 + нв Голд.

Вот сам скрипт (все работает, только не показывает текст с субтитрами, кстати почему-то все на немецком у меня становится при запуске мода, может просто русские шрифты не распознает или что-то в этом роде)
// ************************************************************
// EXIT
// ************************************************************
INSTANCE DIA_GOLDOT_EXIT (C_INFO)
{
npc = BAU_93001_GOLDOT;
nr = 999;
condition = DIA_GOLDOT_EXIT_Condition;
information = DIA_GOLDOT_EXIT_Info;
permanent = TRUE;
description = "(Закончить разговор)";
};
FUNC INT DIA_GOLDOT_EXIT_Condition()
{
return TRUE;
};
FUNC VOID DIA_GOLDOT_EXIT_Info()
{
AI_StopProcessInfos (self);
};

// ************************************************************
// Hallo
// ************************************************************
instance DIA_GOLDOT_Hallo (C_INFO)
{
npc = BAU_93001_GOLDOT;
nr = 1;
condition = DIA_GOLDOT_Hallo_Condition;
information = DIA_GOLDOT_Hallo_Info;
permanent = FALSE;
important = TRUE;
};
func int DIA_GOLDOT_Hallo_Condition ()
{
return TRUE;
};
func void DIA_GOLDOT_Hallo_Info ()
{
AI_Output (self, other, "DIA_GOLDOT_Hallo_03_00"); //Сегодня ночью из неоткуда появилась эта проклятая башня, из которой вышел ты...
AI_Output (self, other, "DIA_GOLDOT_Hallo_03_01"); //Пожалуй ты должен рассказать мне, что здесь происходит.
AI_Output (other, self, "DIA_GOLDOT_Hallo_15_02"); //Я...
Log_CreateTopic ("Недовольный крестьянин", LOG_MISSION);
Log_SetTopicStatus("Недовольный крестьянин", LOG_RUNNING);
B_LogEntry("Недовольный крестьянин", "Ксрадас выбрал для башни место в глуши, но и здесь его чары не остались без внимания. Крестьянин Голдот все видел и требует объяснений.");
};

// ************************************************************
// пафосная правда
// ************************************************************
instance DIA_GOLDOT_Truess (C_INFO)
{
npc = BAU_93001_GOLDOT;
nr = 1;
condition = DIA_GOLDOT_Truess_Condition;
information = DIA_GOLDOT_Truess_Info;
permanent = FALSE;
description = "Это башня некроманта Ксардаса, а я тот, кто уничтожил барьер!";
};
func int DIA_GOLDOT_Truess_Condition ()
{
if Npc_knowsInfo (hero, DIA_GOLDOT_fack) == FALSE
{
return TRUE;
};
};
func void DIA_GOLDOT_Truess_Info ()
{
AI_Output (other, self, "DIA_GOLDOT_Truess_15_00"); //Это башня некроманта Ксардаса, а я тот, кто уничтожил барьер.
AI_Output (self, other, "DIA_GOLDOT_Truess_03_01"); //Ксардас... я слышал о нем, он маг огня. Ты верно что-то путаешь?
AI_Output (other, self, "DIA_GOLDOT_Truess_15_02"); //Он был магом огня, до того, как попал под барьер.
AI_Output (self, other, "DIA_GOLDOT_Truess_03_03"); //В таком случае я должен поговорить с ним!
B_GivePlayerXP (200);
Log_SetTopicStatus("Недовольный крестьянин", LOG_SUCCESS);
AI_StopProcessInfos (self);
B_LogEntry("Недовольный крестьянин", "Я рассказал правду и крестьянен решил встретиться с Ксардасом.");
};
// ************************************************************
// отказ
// ************************************************************
instance DIA_GOLDOT_fack (C_INFO)
{
npc = BAU_93001_GOLDOT;
nr = 2;
condition = DIA_GOLDOT_fack_Condition;
information = DIA_GOLDOT_fack_Info;
permanent = FALSE;
description = "Это не твое дело.";
};
func int DIA_GOLDOT_fack_Condition ()
{
if Npc_knowsInfo (hero, DIA_GOLDOT_Truess) == FALSE
{
return TRUE;
};
};
func void DIA_GOLDOT_fack_Info ()
{
AI_Output (other, self, "DIA_GOLDOT_fack_15_00"); //Это не твое дело.
AI_Output (self, other, "DIA_GOLDOT_fack_03_01"); //Тогда, я сам все узнаю, мне терять нечего, я бессмертный.
Log_SetTopicStatus("Недовольный крестьянин", LOG_FAILED);
AI_StopProcessInfos (self);
B_LogEntry("Недовольный крестьянин", "Я не стал объясняться перед ним.");
};

// ************************************************************
// goldot_biografia
// ************************************************************
instance DIA_GOLDOT_biografia (C_INFO)
{
npc = BAU_93001_GOLDOT;
nr = 3;
condition = DIA_GOLDOT_biografia_Condition;
information = DIA_GOLDOT_biografia_Info;
permanent = FALSE;
description = "Кто ты?";
};
func int DIA_GOLDOT_biografia_Condition ()
{
if Npc_knowsInfo (hero, DIA_GOLDOT_Hallo)
{
return TRUE;
};
};
func void DIA_GOLDOT_biografia_Info ()
{
AI_Output (other, self, "DIA_GOLDOT_biografia_15_00"); //Кто ты?
AI_Output (self, other, "DIA_GOLDOT_biografia_03_01"); // (Гордо) Я Голдот - бессмертный, правая рука Лукаса - Лича!
AI_Output (other, self, "DIA_GOLDOT_biografia_15_02"); //Никогда не слышал о Личе.
AI_Output (self, other, "DIA_GOLDOT_biografia_03_03"); //Значит, ты не местный. Уже весь Хоринис знает, что Лукас достаточно силен, чтобы добраться до Пирокара и вернуть отнятые им жизни.
AI_Output (self, other, "DIA_GOLDOT_biografia_03_04"); //Будь уверен, маги огня и паладины ответят за свои преступления против нежити.

Log_CreateTopic ("Лич", LOG_MISSION);
Log_SetTopicStatus("Лич", LOG_RUNNING);
B_LogEntry("Лич", "Странный крестьянин, назвавший себя Голдотом-бессмертным, заявил, что какой-то Лич намерен забрать у магов огня чьи-то жизни. Скорее всего он спятил.");
};


// ************************************************************
// goldot_biografia
// ************************************************************
instance DIA_GOLDOT_whoPirokar (C_INFO)
{
npc = BAU_93001_GOLDOT;
nr = 4;
condition = DIA_GOLDOT_whoPirokar_Condition;
information = DIA_GOLDOT_whoPirokar_Info;
permanent = True;
description = "Кто такой Пирокар?";
};
func int DIA_GOLDOT_whoPirokar_Condition ()
{
if Npc_knowsInfo (hero, DIA_GOLDOT_biografia)
{
return TRUE;
};
};
func void DIA_GOLDOT_whoPirokar_Info ()
{
AI_Output (other, self, "DIA_GOLDOT_whoPirokar_15_00"); //Кто такой Пирокар?
AI_Output (self, other, "DIA_GOLDOT_whoPirokar_03_01"); //(С призрением) Пирокар – помойная крыса в мантии справедливости! Он глава местного круга огня.
AI_Output (other, self, "DIA_GOLDOT_whoPirokar_15_02"); //Что плохого он сделал?
AI_Output (self, other, "DIA_GOLDOT_whoPirokar_03_03"); //Он объявил нежить порождениями Белиара!
AI_Output (other, self, "DIA_GOLDOT_whoPirokar_15_04"); //Разве это не так?
AI_Output (self, other, "DIA_GOLDOT_whoPirokar_03_05"); //Конечно нет! Может некроманты и способны оживлять мертвецов, но это не означает, что все мертвецы или полумертвые созданы некромантами.
AI_Output (self, other, "DIA_GOLDOT_whoPirokar_03_06"); //В существовании, а вернее в обличии всей нашей армии виновны лишь паладины и Пирокар!

};
 

redleha

Administrator
Команда форума
Регистрация
28 Фев 2008
Сообщения
1,487
Репутация
426
Адрес
г.Новокуйбышевск Самарская обл.
DonLaonda, субтитры походу просто выключены в настройках. а по поводу немецкого - это непонятно. У всех нормально всё обычно.
 

DonLaonda

Ополченец
Регистрация
21 Мар 2013
Сообщения
58
Репутация
9
Проверил. Включены они.
 

DonLaonda

Ополченец
Регистрация
21 Мар 2013
Сообщения
58
Репутация
9
Все, во всем разобрался, все по русски и все отображается.
Если будет время сниму на эту тему видео-урок, а то такого вообще нету, а если и есть, то по кускам и многие в отличии от меня плюнут, чем пытаться понять почему у того дяди на мониторе все получилось))

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

В любом случае, пока разбирался создал новую локацию, лагерь, несколько нпс, 3 квеста ))

Так что мучился не зря
 
Последнее редактирование модератором:

Alex77

Готоман
Регистрация
13 Июн 2013
Сообщения
18
Репутация
0
Адрес
Партизанск
Всем привет! Кто нибудь может помочь где можно найти скрипт на добычу руды или на варку или как его написать? Плиз помогите)))
 

Ilot

Ополченец
Регистрация
2 Авг 2012
Сообщения
64
Репутация
37
Добыча руды.
Варка пишется аналогично.
 

redleha

Administrator
Команда форума
Регистрация
28 Фев 2008
Сообщения
1,487
Репутация
426
Адрес
г.Новокуйбышевск Самарская обл.
Всем привет! Кто нибудь может помочь где можно найти скрипт на добычу руды или на варку или как его написать? Плиз помогите)))
Скрипт добычи золота находится в файле: Story\Dialog_Mobsis\Goldhacken.d
В папке Story\Dialog_Mobsis\ находятся все скрипты взаимодействия с интерактивными предметами в игре.
Пример добавления своего объекта со своим скриптом:
http://worldofplayers.ru/threads/20496/
http://worldofplayers.ru/threads/17870/
 

Alex77

Готоман
Регистрация
13 Июн 2013
Сообщения
18
Репутация
0
Адрес
Партизанск
И вот опять я)) У меня такой вопрос, а можно сделать так, чтоб после какого нибудь диалога появлялись, какие нибудь предметы, например деревья, стены, сундуки и т.д. или загружался другой зен?
 

redleha

Administrator
Команда форума
Регистрация
28 Фев 2008
Сообщения
1,487
Репутация
426
Адрес
г.Новокуйбышевск Самарская обл.
Alex77, для тебя есть только один вариант: использование мувера. Прячешь под землю, что надо, и в диалоге посылаешь команду на мувер Wld_SendTrigger("TRIGGER_NAME");
 
Сверху Снизу