Abraxys

Гражданин
Регистрация
5 Май 2006
Сообщения
49
Репутация
0
LeGuDaa
Все итемки лежат в одном файле? То есть все амулеты в одном, все кольца в одном и тд, так?
Да, все итемки лежат в файлах по группам. Но не важно - сколько этих файлов и как они называются (Хоть TraTAtA.tratata) главное их содержание и порядок компилирования. ;)

DEDROIT
ПРопиши своего монстра в стартопе и всё
До того как прописывать в Startup.d необходимо создать экземпляр(инстанцию) монстра.

LeGuDaa
Конкретно - падальщик всех падальщиков:
в файле Story\NPC\Monster\MST_Scavenger.d добавь в конец файла вот что:
Код:
instance Ochen_Krutoi_Padalshik(Mst_Default_Scavenger)
{
	B_SetVisuals_Scavenger();
	Npc_SetToFistMode(self);
	CreateInvItems(self,ItFoMuttonRaw,1);
	level = 80;
	attribute[ATR_STRENGTH] = 200;
	attribute[ATR_DEXTERITY] = 200;
	attribute[ATR_HITPOINTS_MAX] = 1000;
	attribute[ATR_HITPOINTS] = 1000;
	protection[PROT_BLUNT] = 120;
	protection[PROT_EDGE] = 120;
	protection[PROT_POINT] = 120;
	protection[PROT_FIRE] = 120;
	protection[PROT_FLY] = 120;
	protection[PROT_MAGIC] = 120;
	damagetype = DAM_FIRE;
	Mdl_SetModelScale (self, 3, 3, 3);
};

А после этого можно уже прописывать в Startup.d инстанцию Ochen_Krutoi_Padalshik
 

DEDROIT

Administrator
Команда форума
Регистрация
31 Янв 2006
Сообщения
1,384
Репутация
234
Адрес
Москва
Abraxys
Я имел ввиду,если не создавать нового монстра,а вставить старого! :)
 

Mengos

Готоман
Регистрация
25 Фев 2006
Сообщения
18
Репутация
0
В туторе про амулет превращения в скелета есть одна ошибка - амулет нельзя снять!

Исправленный тутор:

var int old_humans_guilden;

instance ITAM_2(C_Item)
{
name = "Амулет";
mainflag = ITEM_KAT_MAGIC;
flags = ITEM_AMULET;
value = 8000;
visual = "ItAm_Hp_01.3ds";
material = MAT_STONE;
on_equip = Equip_ITAM_2;
on_unequip = UnEquip_ITAM_2;
wear = WEAR_EFFECT;
effect = "SPELLFX_ITEMGLIMMER";
description = name;
text[5] = NAME_Value;
count[5] = value;
inv_zbias = INVCAM_ENTF_AMULETTE_STANDARD;
};

func void Equip_ITAM_2()
{
old_humans_guilden = self.guild;
if(old_humans_guilden != GIL_DMT) // нужно, чтобы old_humans_guilden = hero.guild срабатывало раньше, чем self.guild = GIL_DMT
{
Npc_SetTrueGuild(self,GIL_DMT);
self.guild = GIL_DMT;// здесь есть один недочет - никто не будит нападать на гг, нужно менять онтношения между гильдиями людей/монстров и ищущий.
AI_UnequipArmor(self);
Mdl_SetVisual(self,"HUMANS.MDS");
Mdl_SetVisualBody(self,"Ske_Body",DEFAULT,DEFAULT,"",DEFAULT,DEFAULT,-1);
Mdl_SetModelFatness(self,0);
Mdl_ApplyOverlayMds(self,"Humans_skeleton.mds");
Wld_PlayEffect("spellFX_LIGHTSTAR_ORANGE",hero,hero,0,0,0,FALSE);
Snd_Play("SKE_DIE_A1");
};
};

func void UnEquip_ITAM_2()
{
Npc_SetTrueGuild(self,old_humans_guilden);
self.guild = old_humans_guilden;
AI_UnequipArmor(self);
Mdl_SetVisual(self,"HUMANS.MDS");
Mdl_SetVisualBody(self,"hum_body_Naked0",9,0,"Hum_Head_Pony",Face_N_Player,0,NO_ARMOR);
Mdl_SetModelFatness(self,0);
Mdl_RemoveOverlayMds(self,"Humans_skeleton.mds");
Wld_PlayEffect("spellFX_LIGHTSTAR_ORANGE",hero,hero,0,0,0,FALSE);
Snd_Play("SFX_HealObsession");
};
 

DRom

Как Бэ Администратор
Команда форума
Регистрация
3 Фев 2006
Сообщения
3,700
Репутация
469
Адрес
Новосибирск
Вышла новая версия декомпилятора скриптов Готики - GothicSourcer v3.10. Скачать можно здесь.
 

S.V-2

Паладин
Регистрация
8 Июн 2006
Сообщения
149
Репутация
1
А как вам прога для автоматического создания скриптов персонажей "NPC скриптер"?
Можно ей пользоваться, или лучше не стоит?
 

MaGoth

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

Создает она скрипты, правильно. :rolleyes:
Главное чтоб у нее в функциях, которые в dll, прописаны ошибок не закралось.
По своему опыту, сколько с ней возился за ней такого замечал. :ph34r:
Начинающему будет полезно, но только с использованием русскоязычного тотура по скриптингу непесей.
Иначе заблудится в полях. ;)
А в общем она хороша(Имхо). :Paladin:
=================
PS. А если ее да вместе с прогой для диалогов использовать то цены им нет...
Кстати, она также немка. Шпрехайте товарисчи...:SUPER lol:

Щас по памяти названия второй не помню, позже отпишу, как гляну. ;)
 

S.V-2

Паладин
Регистрация
8 Июн 2006
Сообщения
149
Репутация
1
Так Русская версия есть. Я собственно про неё и говорил(Перевел Killer-XXX).
 

MaGoth

Хранитель форума
Регистрация
30 Авг 2006
Сообщения
2,024
Репутация
0
Адрес
Самара
ХГде? :blink:
Линк, в студию :(

Может мы о других прогах говорим?
Я про вот эту программу для создания непесей говорил: NPC Scripting Wizard (for Gothic 2).
А так же, есть еще вот эта: NSC Script Generator.

А для создания диалогов, можно использовать эти проги: Sprachausgabenhelfer и Dialogmanager. :)

====================
PS. У меня этих программ на винте порядка 10-15шт., от разных производителей, напиши конкретное название той, о которой говоришь. (О моих, все для Готы 2 и Готы 2 НВ)
А там уж - посмотрим, что тебе лучше использовать из них. :Paladin:
 

DRom

Как Бэ Администратор
Команда форума
Регистрация
3 Фев 2006
Сообщения
3,700
Репутация
469
Адрес
Новосибирск
Вот, взято из FAQ с АГ
NPC Scripting Wizard
---
Автор: Die Morgendammerung
Общее описание: программа для создания скриптов NPC.
---
Игра: Gothic II
Интерфейс: немецкий
Версия: 1.2
Размер: 959 Кб
Прямая ссылка
---
Игра: Gothic II
Интерфейс: русский
Версия: 1.2
Размер: 491 Кб
Русификация: Killer-XXX, Irwin1138
Прямая ссылка
 

DEDROIT

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

Beckham

Паладин
Регистрация
9 Ноя 2006
Сообщения
189
Репутация
0
Адрес
Днепропетровск
Такая фича: при декомпеляции gothic.dat из готики 1 выдает до фига ерроров,
но декомпеляция завершается, а при собственно компеляции(неизмененных этих же декомпелированых файлов) выдает ту же кучу ерроров + фатал еррор (типа нашел более 50 ошибок) и компеляция останавливается так и не создав скомпелированный файл.
Что делать, это в 1-й готике так и есть или это я неправильно что-то делаю?
 

DEDROIT

Administrator
Команда форума
Регистрация
31 Янв 2006
Сообщения
1,384
Репутация
234
Адрес
Москва
Beckham
Да,это так и есть.Я когда компилил скрипты тоже такое было,нужно короч вручную править ошибки,у меня были где-то исправленные скрипты,но не знаю найду ли я их.
Ну вобщем если что обращайся.
 

scorp007

Новичок
Регистрация
19 Окт 2006
Сообщения
8
Репутация
0
Сделал тут предмет один, втыкайте:

instance ItPo_MegDrin(C_Item) //Это все уже расписывалось, повторять не буду.
{
name = "???";
mainflag = ITEM_KAT_POTIONS;
flags = ITEM_MULTI;
value = Value_MegaDrink;
visual = "ItPo_Perm_Mana.3ds";
material = MAT_GLAS;
on_state[0] = UseItPo_MegDrin;
scemeName = "POTIONFAST";
wear = WEAR_EFFECT;
effect = "SPELLFX_ITEMGLIMMER";
description = name;
text[3] = "Эффект неизвестен.";
};


func void UseItPo_MegDrin()
{
if ((hero.guild == GIL_DMT) && (hero.level >= 25)) //Если гильдия ГГ - ищущий и уровень не ниже 25
{
Npc_SetTrueGuild (self, GIL_ORC); //Гильдия меняется на "орк"
self.guild = GIL_ORC;
B_PlayerFindItem (ITAR_Raven_Add, 1); //ГГ находит новую броно
AI_EquipArmor (self,ITAR_Raven_Add); //ГГ одевает эту броню
Wld_PlayEffect ("SPELLFX_Fear", self, self, 0, 0, 0, FALSE); //Проигрывается визуальный эффект
Snd_Play ("MFX_Firestorm_Cast"); //Проигрывается звуковой эффект
if ((self.attribute[ATR_STRENGTH] >= 50) && (self.attribute[ATR_STRENGTH] < 75)) //Если сила то 50
до 74 {
B_RaiseAttribute (self, ATR_STRENGTH, 5); //Сила повышается на 5 едениц. Далее по аналогии.
}
else if ((self.attribute[ATR_STRENGTH] > 75) && (self.attribute[ATR_STRENGTH] <= 100))
{
B_RaiseAttribute (self, ATR_STRENGTH, 10);
}
else if ((self.attribute[ATR_STRENGTH] > 100) && (self.attribute[ATR_STRENGTH] <= 125))
{
B_RaiseAttribute (self, ATR_STRENGTH, 15);
}
else if ((self.attribute[ATR_STRENGTH] > 125) && (self.attribute[ATR_STRENGTH] <= 150))
{
B_RaiseAttribute (self, ATR_STRENGTH, 20);
Mdl_ApplyOverlayMds (self, "HUMANS_SPRINT.MDS");
}
else if (self.attribute[ATR_STRENGTH] > 150) //Особый случай: если сила ГГ=150
{
B_RaiseAttribute (self, ATR_STRENGTH, 25);
Mdl_ApplyOverlayMds (self, "HUMANS_SPRINT.MDS"); //ГГ получает постоянное ускорение.
};
if ((self.attribute[ATR_DEXTERITY] >= 50) && (self.attribute[ATR_DEXTERITY] < 75)) //Тоже, только с ловкостью.
{
B_RaiseAttribute (self, ATR_DEXTERITY, 5);
Npc_SetTalentSkill (self, NPC_TALENT_ACROBAT, 1);
}
else if ((self.attribute[ATR_DEXTERITY] > 75) && (self.attribute[ATR_DEXTERITY] <= 100)) //Сдесь ГГ получает Ещё акробатику.
{
B_RaiseAttribute (self, ATR_DEXTERITY, 10);
Npc_SetTalentSkill (self, NPC_TALENT_ACROBAT, 1);
}
else if ((self.attribute[ATR_DEXTERITY] > 100) && (self.attribute[ATR_DEXTERITY] <= 125))
{
B_RaiseAttribute (self, ATR_DEXTERITY, 15);
Npc_SetTalentSkill (self, NPC_TALENT_ACROBAT, 1);
}
else if ((self.attribute[ATR_DEXTERITY] > 125) && (self.attribute[ATR_DEXTERITY] <= 150))
{
B_RaiseAttribute (self, ATR_DEXTERITY, 20);
}
else if (self.attribute[ATR_DEXTERITY] > 150)
{
B_RaiseAttribute (self, ATR_DEXTERITY, 25);
};
if ((self.attribute[ATR_HITPOINTS_MAX] >= 100) && (self.attribute[ATR_HITPOINTS_MAX] < 150)) //Хитпоинты.
{
B_RaiseAttribute (self, ATR_HITPOINTS_MAX, 15);
}
else if ((self.attribute[ATR_HITPOINTS_MAX] > 150) && (self.attribute[ATR_HITPOINTS_MAX] <= 200))
{
B_RaiseAttribute (self, ATR_HITPOINTS_MAX, 30);
}
else if ((self.attribute[ATR_HITPOINTS_MAX] > 200) && (self.attribute[ATR_HITPOINTS_MAX] <= 250))
{
B_RaiseAttribute (self, ATR_HITPOINTS_MAX, 45);
}
else if ((self.attribute[ATR_HITPOINTS_MAX] > 250) && (self.attribute[ATR_HITPOINTS_MAX] <= 300))
{
B_RaiseAttribute (self, ATR_HITPOINTS_MAX, 60);
}
else if ((self.attribute[ATR_HITPOINTS_MAX] > 300) && (self.attribute[ATR_HITPOINTS_MAX] <= 350))
{
B_RaiseAttribute (self, ATR_HITPOINTS_MAX, 75);
}
else if ((self.attribute[ATR_HITPOINTS_MAX] > 350) && (self.attribute[ATR_HITPOINTS_MAX] <= 400))
{
B_RaiseAttribute (self, ATR_HITPOINTS_MAX, 90);
}
else if (self.attribute[ATR_HITPOINTS_MAX] > 400) //Если НР больше 400
{
B_RaiseAttribute (self, ATR_HITPOINTS_MAX, 100);
self.protection[PROT_EDGE] += 15; //ГГ получает +15 к защите от оружия дальнего и ближнего боя
self.protection[PROT_BLUNT] += 15;
self.protection[PROT_POINT] += 15;
};
if ((self.attribute[ATR_MANA_MAX] >= 75) && (self.attribute[ATR_MANA_MAX] < 100)) //С маной тоже.
{
B_RaiseAttribute (self, ATR_MANA_MAX, 10);
}
else if ((self.attribute[ATR_MANA_MAX] > 100) && (self.attribute[ATR_MANA_MAX] <= 125))
{
B_RaiseAttribute (self, ATR_MANA_MAX, 20);
}
else if ((self.attribute[ATR_MANA_MAX] > 125) && (self.attribute[ATR_MANA_MAX] <= 150))
{
B_RaiseAttribute (self, ATR_MANA_MAX, 30);
}
else if ((self.attribute[ATR_MANA_MAX] > 150) && (self.attribute[ATR_MANA_MAX] <= 175))
{
B_RaiseAttribute (self, ATR_MANA_MAX, 40);
}
else if ((self.attribute[ATR_MANA_MAX] > 175) && (self.attribute[ATR_MANA_MAX] <= 200))
{
B_RaiseAttribute (self, ATR_MANA_MAX, 50);
}
else if ((self.attribute[ATR_MANA_MAX] > 200) && (self.attribute[ATR_MANA_MAX] <= 250))
{
B_RaiseAttribute (self, ATR_MANA_MAX, 60);
}
else if (self.attribute[ATR_MANA_MAX] > 250)
{
B_RaiseAttribute (self, ATR_MANA_MAX, 70);
self.protection[PROT_MAGIC] += 15; //Защита от огня и магии
self.protection[PROT_FIRE] += 15;
};
if ((self.HitChance[NPC_TALENT_1H] >= 60) && (self.HitChance[NPC_TALENT_1H] < 70)) //Владение одноручником
{
B_AddFightSkill (self, NPC_TALENT_1H, 5);
}
else if ((self.HitChance[NPC_TALENT_1H] > 70) && (self.HitChance[NPC_TALENT_1H] <= 80))
{
B_AddFightSkill (self, NPC_TALENT_1H, 10);
}
else if (self.HitChance[NPC_TALENT_1H] > 80)
{
B_AddFightSkill (self, NPC_TALENT_1H, 20);
};
if ((self.HitChance[NPC_TALENT_2H] >= 60) && (self.HitChance[NPC_TALENT_2H] < 70)) //Двуручником
{
B_AddFightSkill (self, NPC_TALENT_2H, 5);
}
else if ((self.HitChance[NPC_TALENT_2H] > 70) && (self.HitChance[NPC_TALENT_2H] <= 80))
{
B_AddFightSkill (self, NPC_TALENT_2H, 10);
}
else if (self.HitChance[NPC_TALENT_2H] > 80)
{
B_AddFightSkill (self, NPC_TALENT_2H, 20);
};
if ((self.HitChance[NPC_TALENT_BOW] >= 60) && (self.HitChance[NPC_TALENT_BOW] < 70)) //Луком
{
B_AddFightSkill (self, NPC_TALENT_BOW, 5);
}
else if ((self.HitChance[NPC_TALENT_BOW] > 70) && (self.HitChance[NPC_TALENT_BOW] <= 80))
{
B_AddFightSkill (self, NPC_TALENT_BOW, 10);
}
else if (self.HitChance[NPC_TALENT_BOW] > 80)
{
B_AddFightSkill (self, NPC_TALENT_BOW, 20);
};
if ((self.HitChance[NPC_TALENT_CROSSBOW] >= 60) && (self.HitChance[NPC_TALENT_CROSSBOW] < 70)) //Арбалетом
{
B_AddFightSkill (self, NPC_TALENT_CROSSBOW, 5);
}
else if ((self.HitChance[NPC_TALENT_CROSSBOW] > 70) && (self.HitChance[NPC_TALENT_CROSSBOW] <= 80))
{
B_AddFightSkill (self, NPC_TALENT_CROSSBOW, 10);
}
else if (self.HitChance[NPC_TALENT_CROSSBOW] > 80)
{
B_AddFightSkill (self, NPC_TALENT_CROSSBOW, 20);
};
if (self.HitChance[NPC_TALENT_1H] > self.HitChance[NPC_TALENT_2H]) //Если владение одноручным оружием больше владения двуручным
{
B_PlayerFindItem (ItMw_BeliarWeapon_1H_21, 1); //В инвентаре появляется этот мечь
AI_EquipBestMeleeWeapon (self); //Одевается лучшее оружие ближнего боя.
};
if (self.HitChance[NPC_TALENT_2H] > self.HitChance[NPC_TALENT_1H])
{
B_PlayerFindItem (ItMw_BeliarWeapon_2H_21, 1);
AI_EquipBestMeleeWeapon (self);
};
if (self.HitChance[NPC_TALENT_2H] == self.HitChance[NPC_TALENT_1H])
{
B_PlayerFindItem (ItMw_BeliarWeapon_2H_21, 1);
AI_EquipBestMeleeWeapon (self);
};
}
else //В другом случае
{
Wld_PlayEffect ("SPELLFX_Firerain", self, self, 0, 0, 0, FALSE); //Проигрывается Эффект "огненный дожь"
AI_PlayAni (self, "S_FIRE_VICTIM");
Wld_PlayEffect ("VOB_MAGICBURN", hero, hero, 0, 0, 0, FALSE); //и еще один, поджигающий ГГ
B_Say (self, self, "$Dead");
AI_StopFX (self, "VOB_MAGICBURN");
Npc_ChangeAttribute (self, ATR_HITPOINTS, -self.attribute[ATR_HITPOINTS_MAX]); //Из НР ГГ вычетается максимальное количество НР.
Npc_StopAni (self, "S_FIRE_VICTIM");
};
};

Такого оружия и доспехов в игре нет - они из моего мода. Можно вставить другие.
 

Beckham

Паладин
Регистрация
9 Ноя 2006
Сообщения
189
Репутация
0
Адрес
Днепропетровск
scorp007
------------------------------------------------------------------------------------------------------------------------------------------------------------------------Слушай а на фига такоя бутылочка нужна, если типа эффект "???" лучше сделай не приписку эффекта к уровню аттрибута, а сделай реально Random-effect
среди готовых функций Готики есть random-генератор, по нему и сделай рэндом-еффект--------------------------------------------------------------------------------------
------------------------------------------------------------------------------------

У меня лично вопрос такой: Я создавал кольцо, которое призывает монстра, который практически бессмертен, но наносит мало урона.
Так вот призывается и отзывается он функциями требующими не тип переменной instance, а тип int(вроде производной типа instance)
Так вот призывается нормально, при вызове функции удаления из мира (removeNPC, или что-то вроде того) выдается ошибка несовпадения типов.
Как реализовать, чтоб при снятии предмета монмтр исчезал???
 

scorp007

Новичок
Регистрация
19 Окт 2006
Сообщения
8
Репутация
0
Beckham
У меня и так все напитки рандомно атрибуты плюсуют:

instance ItPo_Perm_Mana(C_Item)
{
name = NAME_Trank;
mainflag = ITEM_KAT_POTIONS;
flags = ITEM_MULTI;
value = Value_ManaMaxElixier;
visual = "ItPo_Perm_Mana.3ds";
material = MAT_GLAS;
on_state[0] = UseItPo_Perm_Mana;
scemeName = "POTIONFAST";
wear = WEAR_EFFECT;
effect = "SPELLFX_MANAPOTION";
description = "Эликсир духа";
text[1] = "3-10";
count[1] = ManaMax_Elixier;
text[5] = NAME_Value;
count[5] = Value_ManaMaxElixier;
};


func void UseItPo_Perm_Mana()
{
var int value_haotic;
value_haotic = Hlp_Random (90);
if ((value_haotic >= 0) && (value_haotic < 30))
{
B_RaiseAttribute (self, ATR_MANA_MAX, ManaMax_Elixier);
Npc_ChangeAttribute (self, ATR_MANA, ManaMax_Elixier);
}
else if ((value_haotic > 30) && (value_haotic <= 60))
{
B_RaiseAttribute (self, ATR_MANA_MAX, 7);
Npc_ChangeAttribute (self, ATR_MANA, 7);
}
else if ((value_haotic > 60) && (value_haotic <= 90))
{
B_RaiseAttribute (self, ATR_MANA_MAX, 3);
Npc_ChangeAttribute (self, ATR_MANA, 3);
}
else if (value_haotic == 30)
{
B_RaiseAttribute (self, ATR_MANA_MAX, 10);
Npc_ChangeAttribute (self, ATR_MANA, 10);
};
};

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

Beckham

Паладин
Регистрация
9 Ноя 2006
Сообщения
189
Репутация
0
Адрес
Днепропетровск
Вот недавно такого наскриптил, что аж смешно.
Делаю диалог, после которого непись отводит героя в определенное место, но вот блин лажа: когда на пути встречается орк и атакует идущего впереди непися, тот резко разворачивается и начинает атаковать героя, хотя тот только послушно за ним шел.
Вот вообще не пойму в чем дело, вроде бы и поставил НПС как парти-мембер и гильдию для надежности одинаковую поставил и даже тип НПС поставил friend, но все та же фигня при чем когда он разбирается с героем или того просто орк убивает все становится как надо и непись идет с орком воевать.
Может кто подскажет в чем может быть проблема?
 

DEDROIT

Administrator
Команда форума
Регистрация
31 Янв 2006
Сообщения
1,384
Репутация
234
Адрес
Москва
Beckham
Приведи скриптик диалога,может там собака зарыта.Хотя по тому,что ты написал вроде всё правильно.
 

Beckham

Паладин
Регистрация
9 Ноя 2006
Сообщения
189
Репутация
0
Адрес
Днепропетровск
DEDROIT
Да похоже таки нет ошибки. Дело в том, что я это делаю на Г1, так вот с орками там явно разрабы набокали. Дело в том, что других монстров непись убивает без проблем, а вот именно орки создают такие проблемы. При чем не важно как именно свести непися и орков: то ли НПС просто стоит, а ты к нему бежишь и за тобой орки, то ли ты его ведешь к оркам.
Более того, если стоит группа орков и ГГ идет их атаковать, они естественно все его бьют, но вот если в это время вселиться в орка (читом естественно), то орки утрачивают интерес к ГГ и идут тебя мочить (когда ты вселился в орка).
В принципе там ведь в первой готике и в оригинале вроде не было подобных квестов.
То есть когда ГГ вместе с кем то убивал орков. Ну было похожее на кладбище орков, но там ведь ты присоединялся к идолу, когда орки, с которыми он воевал уже убиты, а когда он за ГГ шел, то он сам их не атаковал.
 

Nevedim

Готоман
Регистрация
26 Янв 2007
Сообщения
15
Репутация
0
Такой вопрос:
Диалоги в будующем моде можно сделать только скриптингом или есть дуругая программа, есть совет?
 

DEDROIT

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