[AGFC: Valley of Gothic] М: Скриптинг в Готике

Страница 11 из 65 « Первая 4567891011 121314151617182161 Последняя »
Поиск в этой теме:

Расширенный поиск
Старый 29.05.2005, 11:06   #401
Freesergey

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Zaraza123: Достал уже... От темы - отлучен.
Изучи сначала внимательно уроки скриптологии. Когда выучишь и сдашь экзамен Vam'у, тогда поговорим о допуске тебя в эту тему.
Ответить с цитированием
Старый 29.05.2005, 14:37   #402
XyylPex

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Killer-XXX:
Вот фрагмент скрипта моего нпс,где гг неотдает меч,нпс нападает на гг,после чего говорит:"Ну *как *тебе *мой *меч?"
Делал все при помощи спейсера:
__________________________________________________ __________

// гг не отдает меч
func void None_666_Diman_bringSword_Yes ()
{
AI_Output( other, self, "None_666_Diman_bringSword_Info_8_06"); //Я так не думаю.
AI_Output( self, other, "None_666_Diman_bringSword_Info_8_07"); // Тогда получи!?!
AI_StopProcessInfos (self);
b_attack(self,other,AR_NONE,1);// NPC атакует гг
};

instance None_666_Diman_FightWin(C_Info)
{
npc * * * * *= *None_666_Diman;
nr * * * * * = *50;
condition * *= *None_666_Diman_FightWin_Condition;
information *= *None_666_Diman_FightWin_Info;
important * *= *TRUE;
};


func int None_666_Diman_FightWin_Condition()
{
if(self.aivar[AIV_LastFightAgainstPlayer] == FIGHT_WON)
{
* return *TRUE;
};
};

func *void *None_666_Diman_FightWin_Info()
{
AI_Output(self,other,"None_666_Diman_FightWin_info _8_00"); *//Ну *как *тебе *мой *меч? *
};

__________________________________________________ __________

Все работает :)
Ответить с цитированием
Старый 30.05.2005, 16:03   #403
Bliz@rd

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

Несколько постов назад я прочитал,что можно конвертировать брони из Готики1 во 2,но где нужно прописывать скрипты брони?

Добавление от 05/30/05, в 16:23:48
Я скачал с World of Githic брони для Готики1.После этого я перннёс брони в Готику2 Аддон и решил несколько бронь закомпелировать(const int VALUE_TPL_ARMOR_L = 1350;и
const int VALUE_TPL_ARMOR_H = 2100;), прописал в папке IT_Armor(Gothic II\_work\Data\Scripts\Content\Items) следующее :
const int VALUE_TPL_ARMOR_L = 1350;
const int VALUE_TPL_ARMOR_H = 2100;
и
/************************************************** ****************************************/
INSTANCE VLK_ARMOR_L(C_Item)
{
     name                              =      "Leichte Buddlerhose";

     mainflag                        =      ITEM_KAT_ARMOR;
     flags                              =      0;

     protection [PROT_EDGE]      =      10;
     protection [PROT_BLUNT] =      10;
     protection [PROT_POINT] =      0;
     protection [PROT_FIRE]      =      5;
     protection [PROT_MAGIC] =      0;

     value                              =      VALUE_VLK_ARMOR_L;

     wear                              =      WEAR_TORSO;

     visual                              =      "vlkl.3ds";
     visual_change                  =      "Hum_VLKL_ARMOR.asc";
     visual_skin                  =      0;
     material                        =      MAT_LEATHER;

     description                        =      name;
     //TEXT[0]                        =      "";
     TEXT[1]                              =      NAME_Prot_Edge;                  COUNT[1]      = protection      [PROT_EDGE];
     TEXT[2]                              =      NAME_Prot_Point;            COUNT[2]      = protection      [PROT_POINT];
     TEXT[3]                        =      NAME_Prot_Fire;                  COUNT[3]      = protection      [PROT_FIRE];
     TEXT[4]                              =      NAME_Prot_Magic;            COUNT[4]      = protection      [PROT_MAGIC];
     TEXT[5]                              =      NAME_Value;                        COUNT[5]      = value;
};
/************************************************** ****************************************/
INSTANCE STT_ARMOR_H(C_Item)
{
     name                              =      "Schattenrьstung";

     mainflag                        =      ITEM_KAT_ARMOR;
     flags                              =      0;

     protection [PROT_EDGE]      =      40;
     protection [PROT_BLUNT] =      40;
     protection [PROT_POINT] =      5;
     protection [PROT_FIRE]      =      20;
     protection [PROT_MAGIC] =      0;

     value                              =      VALUE_STT_ARMOR_H;

     wear                              =      WEAR_TORSO;

     visual                              =      "stth.3ds";
     visual_change                  =      "Hum_STTS_ARMOR.asc";
     visual_skin                  =      0;
     material                        =      MAT_LEATHER;

     description                        =      name;
     //TEXT[0]                        =      "";
     TEXT[1]                              =      NAME_Prot_Edge;                  COUNT[1]      = protection      [PROT_EDGE];
     TEXT[2]                              =      NAME_Prot_Point;            COUNT[2]      = protection      [PROT_POINT];
     TEXT[3]                        =      NAME_Prot_Fire;                  COUNT[3]      = protection      [PROT_FIRE];
     TEXT[4]                              =      NAME_Prot_Magic;            COUNT[4]      = protection      [PROT_MAGIC];
     TEXT[5]                              =      NAME_Value;                        COUNT[5]      = value;
};
Но когда начал компелировать,Спайсер выдаёт ошибку.Чтоя я сделал не правильно.
Ответить с цитированием
Старый 30.05.2005, 18:17   #404
Killer-XXX
Строители Миртаны
 
 
Регистрация: 19.06.2004
Адрес: г. Белая Калитва.
Сообщений: 204
Killer-XXX вне форума

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
Вероятно у тебя нигже не прописаны переменные:
VALUE_VLK_ARMOR_L и VALUE_STT_ARMOR_H. Добавить их.
З.Ы. В следующий раз указывай ошибку из компилятора.
Ответить с цитированием
Старый 30.05.2005, 23:00   #405
Bliz@rd

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

Прописал VALUE_VLK_ARMOR_L и VALUE_STT_ARMOR_H.В спайсере закомпелировал.Ошибок не было,но когда я вхожу в игру и дохожу до того места где стоит мой NPC(c бронёй из Готики1)игра вылетает.Кто-нибудь может написать пример вставке какой-нибудь брони из Готики1 во 2?

Добавление от 05/30/05, в 23:20:55
Хотел уточнить что я изменил :
const int VALUE_TPL_ARMOR_L = 1350;
const int VALUE_TPL_ARMOR_H = 2100;
на
const int VALUE_VLK_ARMOR_L =1350;
const int VALUE_STT_ARMOR_H =2100;
Только после этого спайсер не выдавал ошибки.
И ещё где нужно прописывать (VALUE_VLK_ARMOR_L и VALUE_STT_ARMOR_H)?
Может быть после этого игра не будет вылетать.
Ответить с цитированием
Старый 02.06.2005, 17:54   #406
Bliz@rd

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

После того что я привёл выше я после этого ещё распаковал папку Anims(C:\Program Files\Gothic II\Data\ Anims) потом добавил 2 броньки(приведены выше) и запоковал обратно.Потом закомпелировал в спайсере.Ошибок не было.Когда захожу в игру и дохожу до того места где стоит мой NPC с новой бронькой игра не вылетела,но все
остальные броньки включая которые я и внёс стали глючить.Они
как-бы пропали на половину(как-будто какие-то не доделанные.
Кто знает из-за чего это так произошло?

Добавление от 06/02/05, в 18:14:29
Может быть я не правильно вставляю броню в скриптах NPC? вот напрмер
// ------ visuals -----                                    
     B_SetNpcVisual            (self, MALE, "Hum_Head_Bald", Face_N_Mordrag, BodyTex_N, ITAR_MIL_L);      
     Mdl_SetModelFatness      (self,0);
     Mdl_ApplyOverlayMds      (self, "Humans_Militia.mds");
нужно только изменить ITAR_MIL_L на TPL_ARMOR_L .Я правильно понял?
И ещё хотел уточнить когдя я попробывал всё сделать снова то все брони кроме тех которые я вставил были нормальные.Только та бронька которую я вставил в принципе такая-же ка в Готики1,но без рисунков
(какаято однлтоная).В чем ошибка?
Ответить с цитированием
Старый 02.06.2005, 19:13   #407
TSYLin

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
Скачай Ruestungsmodsmall-1.0a с ВорлдОфГотик и погляди там, это как раз тот мод где часть доспехов экспортирована из Г1 ( мой альфа перевод на Яндексе )
Ответить с цитированием
Старый 02.06.2005, 19:53   #408
XyylPex

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:

В папке Items\IT_Addon_Armor.d в конце дописываем(на примере брони рудного барона):
------------------------------------------------------------
INSTANCE ITAR_Magic_Armor (C_Item)

* * *name ** * * * * * * * *= * * *"Магическая Броня";
* * * *mainflag ** * * * * *= * * *ITEM_KAT_ARMOR;
* * *flags ** * * * * * * * *= * * *200;
* * *protection [PROT_EDGE] * * *= * * *200;
* * *protection [PROT_BLUNT] = ** * *200;
* * *protection [PROT_POINT] = ** * *200;
* * *protection [PROT_FIRE] ** * *= ** * *200;
* * *protection [PROT_MAGIC] = ** * *200;
* * *value ** * * * * *= * * *VALUE_ITAR_OreBaron_Addon;
* * *wear ** * * * * *= * * *WEAR_TORSO;
* * *visual ** * * * * *= * * *"ItAr_CHAOS_ADDON.3ds";//отображение на земле *и в инвентаре
* * *visual_change ** * *= * * *"Hum_Magie_Armor.asc";//на гг
* * *visual_skin ** * *= * * *0;
* * *material * * * *= * * *MAT_LEATHER;
* * *description * * *= * * *name;
* * *TEXT[1] * * * * * *= * * *NAME_Prot_Edge; * * * * * * * * *
* * *COUNT[1] * * *= ** * *protection * * *[PROT_EDGE];
* * *TEXT[2] * * * * * *= * * *NAME_Prot_Point; * * * * * *
* * *COUNT[2] * * *= ** * *protection * * *[PROT_POINT];
* * *TEXT[3] ** * *= * * *NAME_Prot_Fire; * * * * * * * * *
* * *COUNT[3] * * *= ** * *protection * * *[PROT_FIRE];
* * *TEXT[4] * * * * * *= * * *NAME_Prot_Magic; * * * * * *
* * *COUNT[4] * * *= ** * *protection * * *[PROT_MAGIC];
* * *TEXT[5] * * * * * *= * * *NAME_Value; * * * * * * * * *
* * *COUNT[5] * * *= ** * *value;

------------------------------------------------------------
В папку Textures\_compiled всавляем HUM_MAGIE_ARMOR_V0-C.TEX(взято из Готики 1).
Компилируем при помощи спейсера,все.(Необходим gmdk-asc_armor.rar,можно скачать с WoG). :)

P.S.:Есессено проверял у себя ;)
Ответить с цитированием
Старый 03.06.2005, 17:36   #409
Bliz@rd

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

gmdk-asc_armor.rar нужно скачать с сайта World of Gothic в разделе
Editing для Готики 2,которая весит 63 мега?
Ответить с цитированием
Старый 03.06.2005, 18:06   #410
XyylPex

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:

gmdk-asc_armor.rar нужно скачать с сайта World of Gothic в разделе
Editing для Готики 2,которая весит 63 мега?


Да нет,он весит 1.5 mb ->Вот.
Можно использовать любой скрипт брони,только изменить Itar_Name(где Name твое название) и visual_change(из архива любой *.asc),и бросить в папку Textures\_compiled текстуру этой *.asc,это ты не сделал,поэтому текстура доспеха была расплывчатая(черный,серый цвета).
Ответить с цитированием
Старый 03.06.2005, 21:33   #411
Bliz@rd

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

Пытался делать по твоему примеру,только вствить броню(TPL_ARMOR_L).Вот что я делал:
1) В папке Items\IT_Addon_Armor.d прописал после const int VALUE_ITAR_Bloodwyn_Addon  * * *= 1300;
следуещее:const int VALUE_TPL_ARMOR_L * *= 1350;а внизу:
INSTANCE TPL_ARMOR_L(C_Item)
{
* * *name  * * * * * * * * * * * * * * *= * * *"Leichte Templerrьstung";

* * *mainflag  * * * * * * * * * * * *= * * *ITEM_KAT_ARMOR;
* * *flags  * * * * * * * * * * * * * * *= * * *0;

* * *protection [PROT_EDGE] * * *= * * *45;
* * *protection [PROT_BLUNT] =  * * *45;
* * *protection [PROT_POINT] =  * * *5;
* * *protection [PROT_FIRE]  * * *=  * * *20;
* * *protection [PROT_MAGIC] =  * * *0;

* * *value  * * * * * * * * * * * * * * *= * * *VALUE_TPL_ARMOR_L;

* * *wear  * * * * * * * * * * * * * * *= * * *WEAR_TORSO;

* * *visual  * * * * * * * * * * * * * * *= * * *"tpll.3ds";
* * *visual_change  * * * * * * * * *= * * *"Hum_TPLL_ARMOR.asc";
* * *visual_skin  * * * * * * * * *= * * *0;
* * *material  * * * * * * * * * * * *= * * *MAT_LEATHER;

* * *description * * * * * * * * * * * *= * * *name;
* * *//TEXT[0] * * * * * * * * * * * *= * * *"";
* * *TEXT[1] * * * * * * * * * * * * * * *= * * *NAME_Prot_Edge; * * * * * * * * *COUNT[1] * * *= protection * * *[PROT_EDGE];
* * *TEXT[2] * * * * * * * * * * * * * * *= * * *NAME_Prot_Point; * * * * * *COUNT[2] * * *= protection * * *[PROT_POINT];
* * *TEXT[3]  * * * * * * * * * * * *= * * *NAME_Prot_Fire; * * * * * * * * *COUNT[3] * * *= protection * * *[PROT_FIRE];
* * *TEXT[4] * * * * * * * * * * * * * * *= * * *NAME_Prot_Magic; * * * * * *COUNT[4] * * *= protection * * *[PROT_MAGIC];
* * *TEXT[5] * * * * * * * * * * * * * * *= * * *NAME_Value; * * * * * * * * * * * *COUNT[5] * * *= value;
};
Потом перенёс в папку C:\Program Files\Gothic II\_work\Data\Textures\_compiled следуещее:HUM_TPLL_ARMOR_V0-C.(взял из Готики 1)сохранил.
Закомпелировал в спайсере.Всё без ошибок.
Потом скриптах NPC прописал:
там где // ------ visuals ------
дописал TPL_ARMOR_L
и где Mdl_ApplyOverlayMds прописал (self, "tpll.3ds");
Закомпелировал.Без ошибок.Но когда захожу в игру броня из Готики 1 опять какя-то недоделаная.
Если можешь укажи где не правильно?
И ты ещё говорил что нужно скачат (gmdk-asc_armor.rar),а куда нужно вставить броньки?

Добавление от 06/03/05, в 21:53:18
Отозвать запрос(нашёл свою ошибку).
Ответить с цитированием
Старый 03.06.2005, 22:27   #412
XyylPex

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
2Bliz@rd:
Вот:
const int VALUE_TPL_ARMOR_L * *= 1350;
INSTANCE Itar_TPL_ARMOR_L(C_Item)
{
* * name * * * * * * * * * *= *"Легкая броня Тамплиера";
* * mainflag * * * * * * * *= * ITEM_KAT_ARMOR;
* * flags * * * * * * * * * = * *0;
* * protection [PROT_EDGE] *= * 45;
* * protection [PROT_BLUNT] = * 45;
* * protection [PROT_POINT] = * *5;
* * protection [PROT_FIRE] *= * 20;
* * protection [PROT_MAGIC] = * *0;
* * value * * * * *= VALUE_TPL_ARMOR_L;
* * wear * * * * * = WEAR_TORSO;
* * visual * * * * = "ItAr_CorAngar.3ds";
* * visual_change *= "Hum_TPLL_ARMOR.asc";
* * visual_skin * *= 0;
* * material * * * = MAT_LEATHER;
* * description * *= name; * * * * * *
* * TEXT[1] * * * *= NAME_Prot_Edge; * * * * * * * * *
* * COUNT[1] * * * = protection [PROT_EDGE];
* * TEXT[2] * * * *= NAME_Prot_Point; * * * * *
* * COUNT[2] * * * = protection *[PROT_POINT];
* * TEXT[3] * * * *= NAME_Prot_Fire; * * * * * * * *
* * COUNT[3] * * * = protection * [PROT_FIRE];
* * TEXT[4] * * * *= NAME_Prot_Magic; * * * * *
* * COUNT[4] * * * = protection * [PROT_MAGIC];
* * TEXT[5] * * * *= NAME_Value; * * * * * * * * * * * *
* * COUNT[5] * * * = value;
};


там где // ------ visuals ------
B_SetNpcVisual (self, MALE, "Hum_Head_Bald", Face_N_Bartholo, BodyTex_N,Itar_TPL_ARMOR_L);
и где Mdl_ApplyOverlayMds прописал (self, "tpll.3ds");
Это внешняя анимация нпс надо:
Mdl_ApplyOverlayMds * * *(self, "xxx");
xxx-Humans_Arrogance.mds;
* *Humans_Mage.mds;
* *Humans_Militia.mds;
* *Humans_Relaxed.mds;
* *Humans_Tired.mds;

И ты ещё говорил что нужно скачат (gmdk-asc_armor.rar),а куда нужно вставить броньки?

У меня g2mdk-small,После разархивации gmdk-asc_armor.rar бросаю содержимое папки gmdk-asc_armor в папку Gothic II :)
Надеюсь теперь все понятно ;)
Ответить с цитированием
Старый 04.06.2005, 15:57   #413
Bliz@rd

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

Спосибо тебе теперь я научился вставлять броньки:
Только когда я воспользовался твоим пример,спайсер выдавал ошибку:TPL_Armor_L,
но когда я исправил вместо ItAr_TPL_ARMOR_L(C_Item) на TPL_ARMOR_L(C_Item).Всё стало нормально.
Ещё хотел задать вопрос: когда вставляешь NPC где нибудь в городе,монастыре понятно.А если я например хочу вставить
его где-нибудь в лесу где нет других NPC,то где в статупе нужно прописывать своего NPC?
Ответить с цитированием
Старый 07.06.2005, 16:30   #414
Bliz@rd

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

У меня возникло несколько вопросов:
1)Допустим я в своём моде создал новую гильдию(Например Сопротивленцы).Создал диалоги к ним,присоединяюсь доют там новую броню,но как сделать когда  заходишь в "B",чтобы она там отображалась?И как сделать,чтобы к Сопртивленцам относились другии гильдии(например нетрально,враждебно)?
2)Где новую гильдию нужно прописывать?
3)Как сделать,чтобы напрмер я создал NPC ,а он ко мне присоединился и ходил со мной?

Добавление от 06/07/05, в 16:50:11
Хочу создать мод,в моде хочу сделать ещё несколько гильдий.Подскажите где и что нужно прописывать,чтобы содать новые гильдии?
Ответить с цитированием
Старый 07.06.2005, 19:47   #415
Vam

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
2)Где новую гильдию нужно прописывать?
Все гильдии делятся на две группы: люди и монстры. Правила оформления гильдий для этих групп разные. Разделителем между ними является константа GIL_SEPERATOR_HUM.
1. Гильдии людей. Создать новую полноценную гильдию людей нельзя, можно только переименовать любую из 16 заданных гильдий людей под свои нужды, причем переименовывать (использовать) гильдии GIL_NONE, GIL_HUMAN и GIL_PUBLIC нельзя, возникнут конфликты в существующей AI. Взаимотношения между гильдиями людей задаются таблицей (файл ..AI\Human\Guilds.d), менять размер таблицы нельзя, задан экзешником.
2. Гильдии монстров. Создать новую гильдию здесь также нельзя (константа GIL_MAX = 66 не может меняться, т.к. является размерностью массивов в классе C_GILVALUES). Можно переименовать существующие или использовать несколько "пустых" гильдий. Взаимоотношения между гильдиями монстров, людей и монстров задаются в файле ..AI\Monster\B_Monster\B_SetMonsterAttitude.d.

Подскажите где и что нужно прописывать,чтобы содать новые гильдии?
1. Регистрация в файле .._intern\Constants.d
2. Взаимоотношения - уже указал.
3. Спецпараметры - файл ..\AI\AI_Intern\Species.d
4. Общий совет: если меняем какую либо гильдию (например GIL_OUT) на свою, то ищем по всем скриптам эту константу и смотрим, подходят ли эти условия под вашу гильдию, если да, то переименовываем, если нет, то удаляем старое и дописываем новые условия.

3)Как сделать,чтобы напрмер я создал NPC ,а он ко мне присоединился и ходил со мной?
НПС необходимо перевести в состояние ZS_Follow_Player.

PS: Все упоминаемые файлы рассмотрены в Уроках скриптологии.
Ответить с цитированием
Старый 07.06.2005, 21:39   #416
Bliz@rd

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

Я пытался заменить Gil_OUT на Gil_Templer.
Вот что я делал:
1)изменил Gil_OUT на Gil_Templer в следующих паках:_intern\Constants,потом  Guilds,B_AssignAmbientInfos\B_AssignAmbientInfos, дальше B_Human\B_AssessFightSound и B_Monster\B_SetMonsterAttitude.
2)Вставил Gil_Templer в скрипт своего NPC.
3)Закомпелировал,спайсер выдавал ошибки у NPC связанных Gil_OUT.(Что теперь нужно менять у NPC,звязанных с Gil_OUT на другую гильдию)?И ещё когда зашёл в игру и спомощью марвина вселился в NPC(с новой гильдией) то у него вместо Темплера было написано
Lardbewohner.Не знаешь почму,может быть что-то не правильно сделал?Если есть ошибка можешь указать?А если можешь напиши пример?
Ответить с цитированием
Старый 07.06.2005, 21:59   #417
Vam

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
3)Закомпелировал,спайсер выдавал ошибки у NPC связанных Gil_OUT.(Что теперь нужно менять у NPC,звязанных с Gil_OUT на другую гильдию)?
После замены Gil_OUT на твою гильдию нигде больше в скриптах не должно встречаться имя Gil_OUT. Обрати внимание на пункт 4 моего предыдущего сообщения. Учти, что теперь Gil_OUT больше нет, НПС присоединяем к другой гильдии или вновь созданной.

И ещё когда зашёл в игру и спомощью марвина вселился в NPC(с новой гильдией) то у него вместо Темплера было написано
Lardbewohner.Не знаешь почму,может быть что-то не правильно сделал?
Текстовое описание гильдий смотри в файле ..\Story\Text.d в константе TXT_GUILDS нужно поменять название гильдии под твоим номером.
Ответить с цитированием
Старый 08.06.2005, 13:14   #418
Bliz@rd

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

Спосибо,как поменять название гильдий у людей научился,но ты ещё говорил,что можно добавить свою гильдию используя несколько "пустых" гильдий"(у животных).Как их использовать и как сделат чтобы гильдия людей(напрмер маги,паладины,наёмники) впускали(в город,в верхнюю часть города,в монастырь),короче относились так же уважительно как напрмер к магу?
Ответить с цитированием
Старый 08.06.2005, 13:48   #419
Vam

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
можно добавить свою гильдию используя несколько "пустых" гильдий"(у животных).Как их использовать
Аналогично людским гильдиям, например, вместо GIL_Empty_A записываем свою гильдию животных, а дальше всё аналогично (хотя по скриптам искать старое название смысла нет, оно нигде не используется), можно поступить следующим образом: ищем, например имя GIL_MOLERAT (а лучше той гильдии, которая по поведению ближе к вновь создаваемой) и создаем аналогичные куски кода для новой гильдии.

как сделат чтобы гильдия людей(напрмер маги,паладины,наёмники) впускали(в город,в верхнюю часть города,в монастырь),короче относились так же уважительно как напрмер к магу?
Об этом я уже сказал, повторю - Взаимотношения между гильдиями людей задаются таблицей (файл ..AI\Human\Guilds.d). Смотри пост №223 стр.9 Уроки скриптологии.
Ответить с цитированием
Старый 08.06.2005, 15:11   #420
Bliz@rd

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

Не мог бы ты написать несколько примеров касательно диалогов:
1)Например NPC,которого я созал отвёл меня от башни Ксардаса до Города.
2)Чтобы мой NPC присоединился и ходил со мной.
Я пытался делать на примере Ларса но ничего не получилось.Напиши очень нужно?
Ответить с цитированием
Старый 08.06.2005, 15:57   #421
TycoooN
Строители Миртаны
  Аватар для TycoooN
 
 
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
TycoooN вне форума

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
Слушай, тебя уже один раз отлучили от темы, так ты мало того, что создал бота, так еще и ничуть не изменил манеру поведения: все так же не хочешь ничего делать сам.

Я пытался делать на примере Ларса
Значит, плохо пытался.
Напиши, что ты делал, и мы скажем, где ошибка, а писать тут никто ничего за тебя не будет.
Отправить личное сообщение для Ответить с цитированием
Старый 08.06.2005, 19:15   #422
TSYLin

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

Подскажите пожалуста, делал всё по подсказке из другой темы но ничего не получается, я дал Эстебану ключ от его же сундука, и руководство по сборке супер топора, вот:
instance BDT_1083_Addon_Esteban(Npc_Default)
instance BDT_1083_Addon_Esteban(Npc_Default)
{
     name[0] = "Эстебан";
     guild = GIL_BDT;
     id = 1083;
     voice = 7;
     flags = 0;
     npcType = NPCTYPE_BL_MAIN;
     aivar[AIV_StoryBandit_Esteban] = TRUE;
     aivar[AIV_StoryBandit] = TRUE;
     aivar[AIV_NewsOverride] = TRUE;
     B_SetAttributesToChapter(self,3);
     fight_tactic = FAI_HUMAN_STRONG;
     EquipItem(self,ItMw_1h_Sld_Axe);
     B_CreateAmbientInv(self);
     B_CreateAmbientInv(self,ITKE_Addon_Esteban_01 );
     B_CreateAmbientInv(self,ItWr_Addon_AxtAnleitu ng);
     CreateInvItems(self,ItMi_Addon_Stone_01,5);
     B_SetNpcVisual(self,MALE,"Hum_Head_Thief",Face_L_ ToughBart_Quentin,BodyTex_L,ItAr_BDT_H);
     Mdl_SetModelFatness(self,0);
     Mdl_ApplyOverlayMds(self,"Humans_Arrogance.md s");
     B_GiveNpcTalents(self);
     B_SetFightSkills(self,50);
     daily_routine = Rtn_Start_1083;
};

Явно чёто не так.
Заранее спасибо.
Ответить с цитированием
Старый 08.06.2005, 19:57   #423
Bliz@rd

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

В папке Dialoge прописал следующее:
// ************************************************** **********
//                                               EXIT
// ************************************************** **********
INSTANCE DIA_Chic_Kap1_EXIT(C_INFO)
{
     npc                  = NONE_666_Chic;
     nr                  = 999;
     condition      = DIA_Chic_Kap1_EXIT_Condition;
     information      = DIA_Chic_Kap1_EXIT_Info;
     permanent      = TRUE;
     description = DIALOG_ENDE;
};                      
FUNC INT DIA_Chic_Kap1_EXIT_Condition()
{
     if (Kapitel == 1)
     {
           return TRUE;
     };      
};
FUNC VOID DIA_Chic_Kap1_EXIT_Info()
{      
     AI_StopProcessInfos      (self);
};

// ************************************************** **********
//                                            PICK POCKET
// ************************************************** **********

INSTANCE DIA_Chic_PICKPOCKET (C_INFO)
{
     npc                  = NONE_666_Chic;
     nr                  = 900;
     condition      = DIA_Chic_PICKPOCKET_Condition;
     information      = DIA_Chic_PICKPOCKET_Info;
     permanent      = TRUE;
     description = Pickpocket_100;
};                      

FUNC INT DIA_Chic_PICKPOCKET_Condition()
{
     C_Beklauen (95, 350);
};

FUNC VOID DIA_Chic_PICKPOCKET_Info()
{      
     Info_ClearChoices      (DIA_Chic_PICKPOCKET);
     Info_AddChoice            (DIA_Chic_PICKPOCKET, DIALOG_BACK                  ,DIA_Chic_PICKPOCKET_BACK);
     Info_AddChoice            (DIA_Chic_PICKPOCKET, DIALOG_PICKPOCKET      ,DIA_Chic_PICKPOCKET_DoIt);
};

func void DIA_Chic_PICKPOCKET_DoIt()
{
     B_Beklauen ();
     Info_ClearChoices (DIA_Chic_PICKPOCKET);
};
     
func void DIA_Chic_PICKPOCKET_BACK()
{
     Info_ClearChoices (DIA_Chic_PICKPOCKET);
};_PICKPOCKET (C_INFO)
{
     npc                  = NONE_666_Chic;
     nr                  = 900;
     condition      = DIA_Chic_PICKPOCKET_Condition;
     information      = DIA_Chic_PICKPOCKET_Info;
     permanent      = TRUE;
     description = Pickpocket_100;
};                      

FUNC INT DIA_Chic_PICKPOCKET_Condition()
{
     C_Beklauen (95, 350);
};

FUNC VOID DIA_Chic_PICKPOCKET_Info()
{      
     Info_ClearChoices      (DIA_Chic_PICKPOCKET);
     Info_AddChoice            (DIA_Chic_PICKPOCKET, DIALOG_BACK                  ,DIA_Chic_PICKPOCKET_BACK);
     Info_AddChoice            (DIA_Chic_PICKPOCKET, DIALOG_PICKPOCKET      ,DIA_Chic_PICKPOCKET_DoIt);
};

func void DIA_Chic_PICKPOCKET_DoIt()
{
     B_Beklauen ();
     Info_ClearChoices (DIA_Chic_PICKPOCKET);
};
     
func void DIA_Chic_PICKPOCKET_BACK()
{
     Info_ClearChoices (DIA_Chic_PICKPOCKET);
};

instance  DIA_Chic_Forest (C_INFO)
{
     npc                   =      NONE_666_Chic;
     nr                   =      9;
     condition       =      DIA_Chic_Forest_Condition;
     information       =      DIA_Chic_Forest_Info;

     description       =      "Ты можешь помочь мне дайти до усадьбы  Онара? ";

};

func void DIA_Chic_Forest_info ()
{
     AI_Output (other, self, "DIA_Chic_RangerHelp_Forest_15_00"); //Ты можешь помочь мне дайти до усадьбы  Онара?
     AI_Output (self, other, "DIA_Chic_RangerHelp_Forest_09_01"); //Хорошо?
     
};      
instance DIA_Chic_GoNow (C_INFO)
{
      npc                   =       NONE_666_Chic;
      nr                   =       10;
      condition       =       DIA_Chic_GoNow_Condition;
      information       =       DIA_Chic_GoNow_Info;
      permanent = TRUE;
      description       =       " Okay, пошли. ";
};
func void DIA_Chic_GoNow_Onar ()
{
      AI_Output                   (other, self, "DIA_Zaraza_GoNow_Onar_15_00"); // К Onars двор.
      ChicGuide_ZuOnar = TRUE;
      Npc_ExchangeRoutine (self, "GUIDE");
      DIA_Chic_GoNow_GoingConditions ();
};

func void DIA_Chic_GoNow_warte ()
{
      Info_ClearChoices       (DIA_Zaraza_GoNow);
};
Cохранил.Закомпелировал в спайсере,он выдаёт несколько(около 5) ошибок.Что я сделал не правильно?Делал по примеру Ларса(многое мог сделать не правильно).
Ответить с цитированием
Старый 08.06.2005, 22:01   #424
Vam

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2TSYLin:
делал всё по подсказке из другой темы но ничего не получается
Где ты нашел такую функцию B_CreateAmbientInv(self,ITKE_Addon_Esteban_01); с двумя аргументами? Нужно использовать функцию CreateInvItem.

Добавление от 06/08/05, в 22:09:46
2Bliz@rd:
Cохранил.Закомпелировал в спайсере,он выдаёт несколько(около 5) ошибок.Что я сделал не правильно?Делал по примеру Ларса(многое мог сделать не правильно).
Ищи и исправляй ошибки, что ты хочешь? Думаешь привел кусок кода и в нем все твои ошибки? Да они могут быть в любом месте, если не можешь разобраться с ошибками в Спейсере, используй Декомпилятор, там все ошибки расписаны подробно с указанием номера строки. И на будущее, если хочешь помощи в поиске ошибок, то приводи сообщение об ошибке и кусок кода, на который указывает ошибка. Учись, учись и учись!
Ответить с цитированием
Старый 08.06.2005, 22:42   #425
TycoooN
Строители Миртаны
  Аватар для TycoooN
 
 
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
TycoooN вне форума

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
У тебя в файле НПС
Код:
NONE_666_Chic
должна быть прописана функция
Код:
Rtn_Guide_666()
Она там есть?
Отправить личное сообщение для Ответить с цитированием
Старый 09.06.2005, 10:26   #426
Bliz@rd

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

Вот скрипт моего диалога(поговорить с Грегом):

instance None_999_Leo_AskForSword (C_INFO)
{
npc = None_668_Leo;
condition = None_668_Leo_AskForSword_Condition;
information = None_668_Leo_AskForSword_Info;
important = TRUE;
permanent = FALSE;
description = "";
};

FUNC int None_668_Leo_AskForSword_Condition()
{
if (hero.level >= 0)
{
return TRUE;
};
return FALSE;
};

func void None_668_Leo_AskForSword_Info()
{
AI_Output ( self, other, "None_668_Leo_AskForSword_Info_8_01"); // Эй, ты занят ?

Info_ClearChoices (None_668_Leo_AskForSword);
Info_AddChoice (None_668_Leo_AskForSword, "Нет, а что?",
None_668_Leo_AskForSword_Yes);
Info_AddChoice (None_668_Leo_AskForSword, "Боюсь, что да",
None_668_Leo_AskForSword_No);
};

Func void None_668_Leo_AskForSword_No ()
{
AI_Output(other,self, "None_668_Leo_AskForSword_Info_8_02"); // Я занят...
AI_Output(self,other, "None_668_Leo_AskForSword_Info_8_03"); //(Перебивает)Ну и вали отсюда...
AI_StopProcessInfos (self);
};

func void None_668_Leo_AskForSword_Yes ()
{
AI_Output(other,self,"None_668_Leo_AskForSword_Inf o_8_04"); // Да,вроде,нет.
AI_Output(self,other,"None_668_Leo_AskForSword_Inf o_8_05"); // Тогда принеси мне Нужно чтобы ты поговорил с Грегом.

Log_CreateTopic (GunthersSword,LOG_MISSION);
Log_SetTopicStatus (GunthersSword,LOG_SUCCESS);
B_LogEntry(GunthersSword, "Лео попросил меня поговорить с Грегом");
AI_StopProcessInfos (self);
};



// ************************ EXIT **************************
instance None_668_Leo_AskForSword_Exit (C_INFO)
{
npc = None_668_Leo;
condition = None_668_Leo_AskForSword_Exit_Condition;
information = None_668_Leo_AskForSword_Exit_Info;
important = 0;
permanent = 1;
description = "конец";
};

FUNC int None_668_Leo_AskForSword_Exit_Condition()
{
return 1;
};

FUNC VOID None_668_Leo_AskForSword_Exit_Info()
{
AI_StopProcessInfos ( self );
};

instance None_668_Leo_BringSword (C_INFO)
{
npc = None_668_Leo;
condition = None_668_Leo_bringSword_Condition;
information = None_668_Leo_bringSword_Info;
important = FALSE;
permanent = TRUE;

description = "Я поговорил с ним?";
};

FUNC int None_668_Leo_bringSword_Condition()
{

if (Npc_KnowsInfo ( hero, None_668_Leo_AskForSword)
&! int_GotSword && Npc_HasItems (other, PlayerTalkedToGreg) >= 1)
{
return TRUE;
};
return FALSE;
};

func void None_668_Leo_bringSword_Info()

{
Info_ClearChoices (None_668_Leo_bringSword);

Info_AddChoice  (None_668_Leo_bringSword,
"Я поговорил, но он просил ничего не говорить тебе",
None_999_Leo_bringSword_Yes);

Info_AddChoice  (None_668_Leo_bringSword,
"Он всё рассказал.",
None_668_Leo_bringSword_No);
};  


func void None_668_Leo_bringSword_Yes ()
{
AI_Output( other, self, "None_668_Leo_bringSword_Info_8_06"); //Я так не думаю.
AI_Output( self, other, "None_668_Leo_bringSword_Info_8_07"); // Тогда получи!?!
AI_StopProcessInfos (self);
AI_StartState( self, ZS_Attack, 0, "");
};

func void None_668_Leo_bringSword_No ()
{
AI_Output ( other, self, "None_999_Leo_bringSword_Info_8_08"); // Да я поговорил и он мне всё рассказал.
AI_Output ( self, other, "None_999_Leo_bringSword_Info_8_09"); // Великолепно, а это мой подарок тебе - Яблоко.(смеется)

B_LogEntry (GunthersSword, "");

other.exp = other.exp + 100;
other.lp = other.lp + 2;
b_giveinvitems(other,self, ItFo_Fish,1);
b_giveinvitems(self,other,ItFo_Apple,1);
AI_StopProcessInfos (self);
};
Потом в паке Story_Globals прописал var int PlayerTalkedToGreg;Спайсер выдавал ошибку NONE_668_Leo_AskForSword.
Что я сделад н6е правильно?
Делал по примеру принести меч.И ещё там где написано B_LogEntry (GunthersSword, "");что нужно написать?
Ответить с цитированием
Старый 09.06.2005, 11:06   #427
Vam

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
И ещё там где написано B_LogEntry (GunthersSword, "");что нужно написать?
Написать нужно текст, который появится в дневнике в теме GunthersSword.

Потом в паке Story_Globals прописал var int PlayerTalkedToGreg;Спайсер выдавал ошибку NONE_668_Leo_AskForSword.
Что я сделад н6е правильно?
А сам-то текст ошибки какой? Если этот скрипт делал отдельным файлом, то включил ли его в компиляцию?

Есть ещё ошибка: Npc_HasItems(other,PlayerTalkedToGreg) - вторым аргументом здесь должна быть ссылка на предмет и функция возвращает кол-во таких предметов у НПС, а у тебя кокой-то var int PlayerTalkedToGreg.

ЗЫ: Когда пишешь скрипт нужно понимать назначение каждого слова, иначе ничего толкового не выйдет.
Ответить с цитированием
Старый 09.06.2005, 18:02   #428
Bliz@rd

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

В моём скрипте я изменил там где B_LogEntry стало B_LogEntry (GunthersSword, "Поговорить с Грегом");А вместо Npc_HasItems (other, PlayerTalkedToSkip) >= 1) что нужно поставить в моём случае? И ещё в папке Story_Globals поставил в конце
const string GregforLeo = "Поговоритиь с Грегом";
var int int_GotGreg
это правильно?
Ответить с цитированием
Старый 09.06.2005, 18:15   #429
XyylPex

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
А вместо Npc_HasItems (other, PlayerTalkedToSkip) >= 1) что нужно поставить в моём случае?

Вот это неправильно, надо ,например:Npc_HasItems (other,ItFo_Cheese)>=1,при квестах это проверка на нужный предмет,если его нету,то и миссию завершить нельзя.
PS:Тебе столько раз объясняли, уххх :)
Ответить с цитированием
Старый 10.06.2005, 08:35   #430
Jeene

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Vam:
Камрад есть вопрос! Можно ли в готике 2 сделать, чтоб непись до разговора с ней называлась, например стража, а как поговоришь с ним (и он представится), то назывался уже Пабло?
Я с таким встречался в Готике 1! Кажется, когда первый раз видишь Таррока(орка-раба в Новой шахте), то написано Орк-раб!, а после разговора уже Таррок!

Если это возможно, то приведи пример функции пожалуйста! Заранее спасибо!
Ответить с цитированием
Старый 10.06.2005, 09:05   #431
TycoooN
Строители Миртаны
  Аватар для TycoooN
 
 
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
TycoooN вне форума

По умолчанию Re: Скриптинг в Готике

2Jeene:
А простое
Код:
self.name[0] = "Пабло"
во время разговора не работает?
Отправить личное сообщение для Ответить с цитированием
Старый 10.06.2005, 13:08   #432
Bliz@rd

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

Я немного изменил скрипт:

instance None_668_Leo_AskForSword (C_INFO)
{
npc = None_668_Leo;
condition = None_668_Leo_AskForSword_Condition;
information = None_668_Leo_AskForSword_Info;
important = TRUE;
permanent = FALSE;
description = "";
};

FUNC int None_668_Leo_AskForSword_Condition()
{
if (hero.level >= 0)
{
return TRUE;
};
return FALSE;
};

func void None_668_Leo_AskForSword_Info()
{
AI_Output ( self, other, "None_668_Leo_AskForSword_Info_8_01"); // Эй, ты занят ?

Info_ClearChoices (None_668_Leo_AskForSword);
Info_AddChoice (None_668_Leo_AskForSword, "Нет, а что?",
None_668_Leo_AskForSword_Yes);
Info_AddChoice (None_668_Leo_AskForSword, "Боюсь, что да",
None_668_Leo_AskForSword_No);
};

Func void None_668_Leo_AskForSword_No ()
{
AI_Output(other,self, "None_668_Leo_AskForSword_Info_8_02"); // Я занят...
AI_Output(self,other, "None_668_Leo_AskForSword_Info_8_03"); //(Перебивает)Ну и вали отсюда...
AI_StopProcessInfos (self);
};

func void None_668_Leo_AskForSword_Yes ()
{
AI_Output(other,self,"None_668_Leo_AskForSword_Inf o_8_04"); // Да,вроде,нет.
AI_Output(self,other,"None_668_Leo_AskForSword_Inf o_8_05"); // Тогда принеси мне Нужно чтобы ты поговорил с Грегом.

Log_CreateTopic (GunthersSword,LOG_MISSION);
Log_SetTopicStatus (GunthersSword,LOG_SUCCESS);
B_LogEntry(GunthersSword, "Лео попросил меня поговорить с Грегом");
AI_StopProcessInfos (self);
};



// ************************ EXIT **************************
instance None_668_Leo_AskForSword_Exit (C_INFO)
{
npc = None_668_Leo;
condition = None_668_Leo_AskForSword_Exit_Condition;
information = None_668_Leo_AskForSword_Exit_Info;
important = 0;
permanent = 1;
description = "конец";
};

FUNC int None_668_Leo_AskForSword_Exit_Condition()
{
return 1;
};

FUNC VOID None_668_Leo_AskForSword_Exit_Info()
{
AI_StopProcessInfos ( self );
};

instance None_668_Leo_BringSword (C_INFO)
{
npc = None_668_Leo;
condition = None_668_Leo_bringSword_Condition;
information = None_668_Leo_bringSword_Info;
important = FALSE;
permanent = TRUE;

description = "Я поговорил с ним?";
};

FUNC int None_668_Leo_bringSword_Condition()
{

if (Npc_KnowsInfo ( hero, None_668_Leo_AskForSword)
{
return TRUE;
};
return FALSE;
};

func void None_668_Leo_bringSword_Info()

{
Info_ClearChoices (None_668_Leo_bringSword);

Info_AddChoice  (None_668_Leo_bringSword,
"Я поговорил, но он просил ничего не говорить тебе",
None_668_Leo_bringSword_Yes);

Info_AddChoice  (None_668_Leo_bringSword,
"Он всё рассказал.",
None_668_Leo_bringSword_No);
};  


func void None_668_Leo_bringSword_Yes ()
{
AI_Output( other, self, "None_668_Leo_bringSword_Info_8_06"); //Я так не думаю.
AI_Output( self, other, "None_668_Leo_bringSword_Info_8_07"); // Тогда получи!?!
AI_StopProcessInfos (self);
AI_StartState( self, ZS_Attack, 0, "");
};

func void None_668_Leo_bringSword_No ()
{
AI_Output ( other, self, "None_668_Leo_bringSword_Info_8_08"); // Да я поговорил и он мне всё рассказал.
AI_Output ( self, other, "None_668_Leo_bringSword_Info_8_09"); // Великолепно, а это мой подарок тебе - Яблоко.(смеется)

B_LogEntry (GunthersSword, "Поговорить с Грегом");

other.exp = other.exp + 100;
other.lp = other.lp + 2;
b_giveinvitems(self,other,ItFo_Apple,1);
AI_StopProcessInfos (self);
};
А в Story_Globals прописал const string GunthersSword = "Поговорить с Грегом";
var int int_GotSword;
Закомпелировал.Выдал одну ошибку U:PAR:Missing')'(line 87).С чем связана эта ошибка?
И ещё когда захожу в игру и на чинаю говорить с NPC то сразу появляется только выбор (Я занят и Да,вроде,нет).И запись в дневнике появляется.Всё.Разговоров никаких нету.Почему?
Ответить с цитированием
Старый 10.06.2005, 13:22   #433
Jeene

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

]2TycoooN:
А простое self.name[0] = "Пабло" во время разговора не работает?
А где его прописывать? В смысле перед какой строчкой?
Ответить с цитированием
Старый 10.06.2005, 14:12   #434
Vam

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
Закомпелировал.Выдал одну ошибку UAR:Missing')'(line 87).С чем связана эта ошибка?
Кол-во открывающих скобок и закрывающих в одном выражении должно быть равно, а у тебя if (Npc_KnowsInfo ( hero, None_668_Leo_AskForSword), две открывающие и одна закрывающая.

И ещё когда захожу в игру и на чинаю говорить с NPC то сразу появляется только выбор (Я занят и Да,вроде,нет).И запись в дневнике появляется.Всё.Разговоров никаких нету.Почему?
А как ты хотел, при любой ошибке датник не создается, так что у тебя получилось, неизвестно.
Ответить с цитированием
Старый 10.06.2005, 14:18   #435
XyylPex

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
И ещё когда захожу в игру и на чинаю говорить с NPC то сразу появляется только выбор (Я занят и Да,вроде,нет).И запись в дневнике появляется.Всё.Разговоров никаких нету.Почему?

Потому что надо спейсером получить после апдейта новый OU.bin and Ou.csl,смотри тему Русская дока по Spacer II
Ответить с цитированием
Старый 11.06.2005, 09:44   #436
TycoooN
Строители Миртаны
  Аватар для TycoooN
 
 
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
TycoooN вне форума

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
[q]Выдал одну ошибку U:PAR:Missing')'(line 87)[/q]
Ты что, невменяемый? Там английским языком написано
Код:
U:PAR:Пропущено')'(линия 87)
. Неужели это не понятно?!
Потому что надо спейсером получить после апдейта новый OU.bin and Ou.csl,смотри тему Русская дока по Spacer II
Потому что надо юзать декомпилятор от Vam'a ;D :lol:

2Jeene:
А где его прописывать? В смысле перед какой строчкой?
Ну дык где угодно во время разговора. Как вариант, перед первым
Код:
AI_Output()
Отправить личное сообщение для Ответить с цитированием
Старый 11.06.2005, 10:08   #437
Jeene

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2TycoooN:
Ну дык где угодно во время разговора. Как вариант, перед первым AI_Output()
Спасибо, все работает!
Ответить с цитированием
Старый 13.06.2005, 15:31   #438
Bliz@rd

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

Вот мой скрипт (Убить Вино):
instance None_666_Leo_AskForSword (C_INFO)
{
npc = None_666_Leo;
condition = None_666_Leo_AskForSword_Condition;
information = None_666_Leo_AskForSword_Info;
important = TRUE;
permanent = FALSE;
description = "";
};

FUNC int None_666_Leo_AskForSword_Condition()
{
if (hero.level >= 0)
{
return TRUE;
};
return FALSE;
};

func void None_666_Leo_AskForSword_Info()
{
AI_Output ( self, other, "None_666_Leo_AskForSword_Info_8_01"); // Эй, ты занят ?

Info_ClearChoices (None_666_Leo_AskForSword);
Info_AddChoice (None_666_Leo_AskForSword, "Нет, а что?",
None_666_Leo_AskForSword_Yes);
Info_AddChoice (None_666_Leo_AskForSword, "Боюсь, что да",
None_666_Leo_AskForSword_No);
};

Func void None_666_Leo_AskForSword_No ()
{
AI_Output(other,self, "None_666_Leo_AskForSword_Info_8_02"); // Я занят...
AI_Output(self,other, "None_666_Leo_AskForSword_Info_8_03"); //(Перебивает)Ну и вали отсюда...
AI_StopProcessInfos (self);
};

func void None_666_Leo_AskForSword_Yes ()
{
AI_Output(other,self,"None_666_Leo_AskForSword_Inf o_8_04"); // Да,вроде,нет.
AI_Output(self,other,"None_666_Leo_AskForSword_Inf o_8_05"); // Тогда убей 'Вино'.

Log_CreateTopic (TOPIC_KillVino, LOG_MISSION);
Log_SetTopicStatus (TOPIC_KillVino, LOG_RUNNING);
B_LogEntry(TOPIC_KillVino, "Зараза попросил меня убить 'Вино');
AI_StopProcessInfos (self);
};



// ************************ EXIT **************************
instance None_666_Leo_AskForSword_Exit (C_INFO)
{
npc = None_666_Leo;
condition = None_666_Leo_AskForSword_Exit_Condition;
information = None_666_Leo_AskForSword_Exit_Info;
important = 0;
permanent = 1;
description = "конец";
};

FUNC int None_666_Leo_AskForSword_Exit_Condition()
{
return 1;
};

FUNC VOID None_666_Leo_AskForSword_Exit_Info()
{
AI_StopProcessInfos ( self );
};
INSTANCE DIA_Leo_VinoDead   (C_INFO)
{
     npc         = NONE_666_Leo;
     nr          = 8;
     condition   = DIA_Leo_HoshDead_Condition;
     information = DIA_Leo_HoshDead_Info;
     permanent   = FALSE;
     description = "мертв!";
};

FUNC INT DIA_Leo_VinoDead_Condition()
{
     if      (Npc_IsDead (Vino))
     &&      (MIS_KillVino == LOG_RUNNING)
     {
           return TRUE;
     };      
};

FUNC VOID DIA_Leo_VinoDead_Info()
{
     AI_Output (other,self ,"DIA_Leo_VinoDead_8_06"); //мертв!
     AI_Output (self ,other,"DIA_Leo_VinoDead_8_07"); //Вероятно, мы имеем, все же, еще шанс.
     AI_Output (self ,other,"DIA_Leo_VinoDead_8_08"); //Я думаю, это даст нам отсрочку от минимум одной недели.
     
     MIS_KillVino = LOG_SUCCESS;
     
};
То что я написал это правильно?И ещё что нужно прописывать в папке
Story_Globals касательно моего диалога?
Ответить с цитированием
Старый 13.06.2005, 15:45   #439
TSYLin

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

Объясните чё не так:
instance ITAR_DHT(C_Item)
{
     name = "Доспехи из чушии легендарного ящера";
     mainflag = ITEM_KAT_ARMOR;
     flags = 0;
     protection[PROT_EDGE] = 70;
     protection[PROT_BLUNT] = 70;
     protection[PROT_POINT] = 70;
     protection[PROT_FIRE] = 0;
     protection[PROT_MAGIC] = 0;
     value = VALUE_ITAR_Thorus_Addon;
     wear = WEAR_TORSO;
     visual = "ItAr_Thorus_ADDON.3ds";
     visual_change = "Armor_DHT.asc";
     visual_skin = 0;
     material = MAT_LEATHER;
     description = name;
     text[1] = NAME_Prot_Edge;
     count[1] = protection[PROT_EDGE];
     text[2] = NAME_Prot_Point;
     count[2] = protection[PROT_POINT];
     text[3] = NAME_Prot_Fire;
     count[3] = protection[PROT_FIRE];
     text[4] = NAME_Prot_Magic;
     count[4] = protection[PROT_MAGIC];
     text[5] = NAME_Value;
     count[5] = value;
};

Аск файл я делал из доспехов Торуса, только изменил текстуру.
Но вот оптекается 3Д-модель доспехов из ползунов.
Ответить с цитированием
Старый 13.06.2005, 17:12   #440
XyylPex

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2TSYLin:
Аск файл я делал из доспехов Торуса, только изменил текстуру.
Но вот оптекается 3Д-модель доспехов из ползунов.

Но эта аск не доспех ползунов Armor_DHT.asc,а вот это она
Armor_Djg_Crawler.asc.Поэто может она оптекается,если я правильно понял.
Ответить с цитированием
Страница 11 из 65 « Первая 4567891011 121314151617182161 Последняя »


Здесь присутствуют: 2 (пользователей: 0 , гостей: 2)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе

Смайлы Вкл.
[IMG] код Вкл.
HTML код Вкл.


Текущее время: 14:41. Часовой пояс GMT +4.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot

AGFC: Valley of Gothic © 2004-2022

Яндекс.Метрика