|
|
30.04.2005, 11:11
|
#681
|
|
Re: Русская дока по Spacer II
2basilio58:
режим indoor outdoor для чего?
|
При компили мира Indoor - это внутри (шахты из Г1 например) Outdoor - снаружи (всё открытое пространство!) ИМХО вроде бы так ;)
|
|
|
01.05.2005, 17:41
|
#682
|
|
Re: Русская дока по Spacer II
Решил я заняться моддингом второй готики,и тут у меня возникла проблема - не появляется непись которого я хотел вставить в игру. Подробное описание всего, что я делал:
Непись вставлялся в порту, возле борделя. Имя файла непися - NONE_666_OWER.d создал новый вэйпойнт - NW_CITY_OWER_STAND
Текст файла непися(делался прогой NPC Scripting wizard):
//----------------------------------------- //---------------Primдre Daten------------- //----------------------------------------- instance NONE_666_OWER (Npc_Default) { id = 666; name = "Овер"; slot = GIL_OUT; npcType = NPCTYPE_MAIN; flags = 0; //----------------------------------------- //------------------Attribute-------------- //----------------------------------------- attribute [ATR_STRENGTH] = 70; attribute [ATR_DEXTERITY] = 40; attribute [ATR_HITPOINTS_MAX] = 25; attribute [ATR_HITPOINTS] = 25; attribute [ATR_MANA_MAX] = 565; attribute [ATR_MANA] = 565; //----------------------------------------- //------------------Protection------------- //----------------------------------------- protection [PROT_BLUNT] = 30; protection [PROT_EDGE] = 30; protection [PROT_POINT] = 30; protection [PROT_FIRE] = 30; protection [PROT_FLY] = 30; protection [PROT_MAGIC] = 30; //----------------------------------------- //------------------Damage----------------- //----------------------------------------- damage [DAM_INDEX_BLUNT] = 30; damage [DAM_INDEX_EDGE] = 30; damage [DAM_INDEX_POINT] = 30; damage [DAM_INDEX_FIRE] = 30; damage [DAM_INDEX_FLY] = 30; damage [DAM_INDEX_MAGIC] = 30; damagetype = 30; //----------------------------------------- //------------------Talents----------------- //----------------------------------------- HitChance [NPC_TALENT_1H] = 30; HitChance [NPC_TALENT_2H] = 60; HitChance [NPC_TALENT_BOW] = 45; HitChance [NPC_TALENT_CROSSBOW] = 15; //----------------------------------------- //------------------Visuals---------------- //----------------------------------------- Mdl_ApplyOverlayMds (self, "HUMANS.MDS" ); B_SetNpcVisual (self, MALE, "Hum_Head_Bald", Face_P_Weak_Cutter, BodyTex_P, ITAR_Bau_M); Mdl_SetModelFatness (self, 0); //----------------------------------------- //------------------Inventar Items--------- //----------------------------------------- CreateInvItems (self, ItPo_Health_01,5); CreateInvItems (self, ItPo_Htalth_03,2); EquipItem (self, ItMw_1h_Mil_Sword); //----------------------------------------- //------------------Sonstiges-------------- //----------------------------------------- guild = GIL_NONE; level = 27; fight_tactic = FAI_HUMAN_MASTER; weapon = ItMw_1h_Mil_Sword; voice = 3; daily_routine = Rtn_PreStart_666; start_aistate = Rtn_Start_666; spawnPoint = NW_CITY_OWER_STAND; //----------------------------------------- //------------------Senses----------------- //----------------------------------------- senses = SENSE_SEE | SENSE_HEAR | SENSE_SMELL; senses_range = 20000; //----------------------------------------- //------------------Experience------------- //----------------------------------------- exp = 25700; exp_next = 29000; lp = 15; }; //----------------------------------------- //------------------Tagesablauf------------ //----------------------------------------- daily_routine = Rtn_Start_666; };
FUNC VOID Rtn_Start_666 () { TA_Stand_Eating (08,00,23,00,"NW_CITY_OWER_STAND"); TA_Stand_ArmsCrossed (23,00,08,00,"NW_CITY_OWER_STAND"); };
Кусок текста файла NPC_Globals.d(где я вставил строку):
//----------NewWorld------------- var C_NPC Xardas; var C_NPC Pyrokar; var C_NPC OWER;<!!!!!!!
var C_NPC Ambusher_1013; var C_NPC Ambusher_1014; var C_NPC Ambusher_1015; var C_NPC Vino; var C_NPC Lobart; var C_NPC LobartsBauer1; var C_NPC LobartsBauer2; var C_NPC Hilda; var C_NPC Borka; var C_NPC Stadtwache_310; var C_NPC Stadtwache_333; var C_NPC Schiffswache_212; var C_NPC Schiffswache_213; var C_NPC Torwache_305; var C_NPC Lagerwache; var C_NPC Halvor; var C_NPC Attila; var C_NPC Brahim; var C_Npc Nadja; var C_NPC Vanja; var C_Npc Moe; var C_Npc Valentino; var C_Npc Sagitta; var C_Npc BDTWache; (Вторую строку в этом файле приводить не буду) В старапе я всавил возле строк ларса и когото ещё.
Спейсер после world\repir scripts выдает тучу ошибок синтаксис эррор, а непись не появляется:(((( Люди, плиз пелп! хочется сделать что-то своё, но вот такие вещи отбивают всю охоту.
Добавление от 05/01/05, в 18:01:47 Всё, вопрос снимается:). NPS scripting aizard - маст дай!!! Все ошибки были из-за неё. Переписав вручную файл none_666_ower и подправив стартап и ещё один файл ошибки исчезли, ну а непись появился после начала новой игры(а я то наивный думал, что нужно просто загрузить сейвы). ЗЫ. Никогда не ставьте в пояснении вот такие "\\" слэшы - спейсер их не понимает. Нужно юзать вот такие - "//"
Кстати, у меня назрел ещё один вопрос - почему не работает расписание TA_SmallTalk? Для него нужно непися ставить на фрипойнт или в сам смоллтолк указывать ближайший фрипойнт? Да и ещё - как ставить фрипойнты? Вэйпойнты ставятся нажатием правой клавиши и выбора из менюшки вэйпойнта, а фрипойнта там нет... Заранее спасибо всем дружелюбно настроенным к новичкам в этом деле моддерам второй Готики;) ЗЗЫ. Звиняйте за огромный прошлый пост, уж очень хотелось, чтобы меня поняли и помогли решить проблему.
|
|
|
06.05.2005, 14:42
|
#683
|
|
Re: Русская дока по Spacer II
2basilio58: 2Black LorD: ИМХО не совсем так, indoor - это как бы уровень в уровне, геометрически изолированный, связанный с outdoor посредством портала P: Читайте Wiki, там все написано. Эта зона может управляться впоследствии скриптово, например через Startup.d: //Die portalrдume im banditenlager Wld_AssignRoomToGuild("tavern01" *, GIL_NONE); Wld_AssignRoomToGuild("beds01" * * * *, GIL_PUBLIC); и т.д. 2owerlord: И зачем тебе вообще понадобилась эта прога. На одного то НПСа .)
почему не работает расписание TA_SmallTalk? Для него нужно непися ставить на фрипойнт или в сам смоллтолк указывать ближайший фрипойнт? Да и ещё - как ставить фрипойнты? Вэйпойнты ставятся нажатием правой клавиши и выбора из менюшки вэйпойнта, а фрипойнта там нет...
|
В расписании указываются только вейпойнты, а фрипойнты ставятся недалеко. Это объекты zcVobSpot. Имя должно быть обязательно FP_SMALLTALK_**. Для разговора нужно 2 фрипойнта SMALLTALK и 2 доступных на них непися. Открой файл AI\Human\TA_Human\ZS_Smalltalk.d и все станет ясно, что требуется для правильной организации этого состояния.
Заранее спасибо всем дружелюбно настроенным к новичкам в этом деле моддерам второй Готики
|
.) Успехов
|
|
|
08.05.2005, 10:48
|
#687
|
|
Re: Русская дока по Spacer II
2WSA: После декомпиляции дат файда ,прогой Vam'а,некоторых файлов нет(например в итемз,диалог)Это я заметил когда переводил,используя исходники полученные после декомпил. и некоторые файлы просто не перевел(немецкого не знаю). :-[ И я говорил не о том,что все менюшки выбора ответа(диалогах),предметы на немецком(это все легко изменить),а вот сами субтитры,то на русском,то на немецком.Что переводить то, ou.scl или еще что-то?
|
|
|
08.05.2005, 15:35
|
#688
|
|
Re: Русская дока по Spacer II
2ХуулРех: * Извини, из написанного выше ничего не понял, что и из чего ты переводил .)
После декомпиляции дат файда ,прогой Vam'а,некоторых файлов нет
|
Пропасть они не могли, просто называться стали по-другому
а вот сами субтитры,то на русском,то на немецком.Что переводить то,ou.scl или еще что-то?
|
Переводить скрипты диалогов, в них есть строчки AI_Output (self,other,"строка1");//строка2 строка1 - имя файла в папке Sound/Speech, строка2 - немецкий комментарий, это и есть субтитр Лучше задай свои вопросы в теме по Декомпилятору. Исходниками, переводами и тп занимаются там.
|
|
|
08.05.2005, 19:37
|
#690
|
|
Re: Русская дока по Spacer II
2ХуулРех: Ты объясни толком, что ты делаешь. 1. если бы ты внимательно прочитал тему Декомпилятора, то узнал бы, что при наличии ou.bin ou.csl не используется вообще 2. update spacer обновляет из скриптов оба файла, компилятор Vamа только ou.bin Теперь объясни плз, откуда ты взял *
новый(русский) Ou.csl с диалогами созданного неапися
|
Вручную добавлял в оригинальный? тогда ответ в п.1 Попробуй тогда ou.bin удалить, оставь только свой, вручную собранный ou.csl. Будут все субтитры на русском.
|
|
|
08.05.2005, 21:50
|
#691
|
|
Re: Русская дока по Spacer II
2ХуулРех:
Что переводить то, ou.scl или еще что-то?
|
Вообще-то переводятся скрипты и больше ничего. Наиболее простой метод: берешь нужный датник + оушник (можно любой) раскладываешь по нужным директориям декомпилятора -> получаешь полные скрипты (там ничего не пропадает). Переводить практически все строки в кавычках (кроме имен файлов в некоторых функциях, понять не трудно) и весь текст, расположенный за // (они присутствуют только после функции AI_Output и в svm.d файле). Затем той же программой компилируешь и получаешь полностью русифицированный датник + оушник (который bin). Если использовать Спейсер, то есть заморочка, необходимо после его загрузки удалить всё из окна Output-Units, а далее обычно.
|
|
|
09.05.2005, 11:34
|
#692
|
|
Re: Русская дока по Spacer II
2WSA:
Попробуй тогда ou.bin удалить, оставь только свой, вручную собранный ou.csl. Будут все субтитры на русском.
Если удалить,то готика не запускается(выдает ошибку).И не надо корчить,что ты самый умный,без обид. Я не использовал декомптлятор,только спейсер.Теперь попробую с декомпил. ;)Спасибо :pivo:
2Vam:
Спасибо,этот outputs нафик не нужен,жаль :D
Добавление от 05/09/05, в 11:54:58 Все,теперь я понял почему после update субтитры чередуются(то немецкие,то русские)После того, как я добавил диалог для своей созданной неписи,я удалил Ou.bin,зашел в спейсер и нажал кнопку update(поле оутпутс-юнитс было пустое).После этого появился список,но в этом списке некоторых файлов было 2 штуки(например,DIA_666_XXX_hello_01 DIA_666_XXX_hello_01)Такого быть не должно,после чего нажимаем refresh(удаляет дубликаты файлоы).Сохраняем.Все теперь нет никаких чередований(Все субтитры на русском,да и декомпилятор я не использовал)Все так просто,если разобратся. :lol:И еще есть ли у кого переведенная папка Story(с диалогами и т.п.) или Items,которые появляются после установки g2mdk-small. ;) ;) ;)
|
|
|
09.05.2005, 19:49
|
#693
|
|
Re: Русская дока по Spacer II
2ХуулРех:
есть ли у кого переведенная папка Story(с диалогами и т.п.) или Items, которые появляются после установки g2mdk-small.
|
Я не понимаю, почему ты не хочешь пользоваться декомпилятором? И зачем тебе вообще что-то переводить, если уже есть русские датник и ОУ ? Декомпилировал бы, и получил бы русские и Итемс и Стори... Или я чего-то не понял? Или ты какой-то мод переводишь?
|
|
|
09.05.2005, 22:19
|
#695
|
|
Re: Русская дока по Spacer II
2ХуулРех:
Да и я запарился файлы переименовывать
|
А зачем их вообще переименовывать? ::)
|
|
|
10.05.2005, 13:31
|
#699
|
|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Русская дока по Spacer II
2ХуулРех:
Народ,где находятся файлы отвеяающие за дневник?Хочу чтобы после Reparse Script... все оставалось на русском
|
Записи - в диалогах, заголовки - в story\log_entries\ (Г2)
Есть ли разница между файлами полученными декомпил. и и g2mdk-small?
|
Логической - нету, а так - отсутсвуют комментарии (кроме субтитров) и есть различия в названиях файлов и их расположении.
|
|
|
10.05.2005, 16:30
|
#700
|
|
Re: Русская дока по Spacer II
2ХуулРех:
Есть ли разница между файлами полученными декомпил. и и g2mdk-small?
|
Разница есть, и очень большая, если учесть, что g2mdk-small файлы скриптов не создает, а те исходники, которые идут вместе с ним полностью на немецком языке. Декомпилятором же можно сделать файлы скриптов на любом языке (русский, немецкий, английский) надо только взять сообветствующий датник, оушник и выполнить декомпиляцию. Если ты спрашиваешь про разницу между исходниками скриптов и файлами, созданными декомпилятором, то на этот вопрос ответ уже дал TycoooN, могу добавить, что после компиляции в дат и оу файлы разницы никакой нет, всё работает одинаково, конечно, если нет ошибок.
|
|
|
10.05.2005, 17:01
|
#702
|
|
Re: Русская дока по Spacer II
2ХуулРех:
А где находится папка missions?Есть ли она вообще после установки g2mda-small?
|
Эта папка есть только в скриптах Готики 1, в Готике 2 её нет, аналогом является папка ..\Story\Dialoge
|
|
|
10.05.2005, 20:12
|
#704
|
|
Re: Русская дока по Spacer II
2ХуулРех:
И еще вопрос:где можно посмотреть доку(или что-то в этом роде)как создать простенькую миссию(принеси это и т.п.)
|
Таких док на русском языке не встречал, есть советы по созданию диалогов в этой теме, а также в теме Скриптинг в Готике (надо искать). Можно взять любой файл из папки Dialoge (знакомый по игре) и попробовать его проанализировать, ничего сложного в этом нет. Чтобы проще в нем разбираться, все диалоги должны быть на русском языке, т.е. декомпилирована хотя бы Готика от Акеллы.
|
|
|
11.05.2005, 08:27
|
#706
|
|
Re: Русская дока по Spacer II
|
|
|
11.05.2005, 19:13
|
#709
|
|
Re: Русская дока по Spacer II
Этап 1. Создаете свой нпс.(с этим думаю все нормально)
Этап 2. В папке диалог создаем файл(например,DIA_NONE_666_Diman). Далее пишем этом файле:
instance None_666_Diman_AskForSword (C_INFO) { npc = None_666_Diman;//ваш нпс condition = None_666_Diman_AskForSword_Condition; information = None_666_Diman_AskForSword_Info; important = TRUE; //нпс сам начинает разговор permanent = FALSE; description = ""; };
FUNC int None_666_Diman_AskForSword_Condition() { if (hero.level >= 0) //проверяет уровень гг { return TRUE; }; return FALSE; };
func void None_666_Diman_AskForSword_Info() { AI_Output ( self, other, "None_666_Diman_AskForSword_Info_8_01"); // Эй, ты занят ?
Info_ClearChoices (None_666_Diman_AskForSword); Info_AddChoice (None_666_Diman_AskForSword, "Нет, а что?", None_666_Diman_AskForSword_Yes); Info_AddChoice (None_666_Diman_AskForSword, "Боюсь, что да", None_666_Diman_AskForSword_No); };
// Если игрок говорит,что он занят Func void None_666_Diman_AskForSword_No () { AI_Output(other,self, "None_666_Diman_AskForSword_Info_8_02"); // Я занят... AI_Output(self,other, "None_666_Diman_AskForSword_Info_8_03"); //(Перебивает)Ну и вали отсюда... AI_StopProcessInfos (self); };
// Если игрок говорит да... func void None_666_Diman_AskForSword_Yes () { AI_Output(other,self,"None_666_Diman_AskForSword_I nfo_8_04"); // Да,вроде,нет. AI_Output(self,other,"None_666_Diman_AskForSword_I nfo_8_05"); // Тогда принеси мне 'Клинок Дракона',после я тебя отблагодарю.
Log_CreateTopic (GunthersSword,LOG_MISSION);//дневник Log_SetTopicStatus (GunthersSword,LOG_RUNNING);//дневник B_LogEntry(GunthersSword, "Диман попросил меня,достать 'Клинок Дракона' "); //дневник AI_StopProcessInfos (self); };
// ************************ EXIT ************************** instance None_666_Diman_AskForSword_Exit (C_INFO) { npc = None_666_Diman; condition = None_666_Diman_AskForSword_Exit_Condition; information = None_666_Diman_AskForSword_Exit_Info; important = 0; permanent = 1; description = "конец"; };
FUNC int None_666_Diman_AskForSword_Exit_Condition() { return 1; //Всегда есть опция 'end' };
FUNC VOID None_666_Diman_AskForSword_Exit_Info() { AI_StopProcessInfos ( self ); };
instance None_666_Diman_BringSword (C_INFO) { npc = None_666_Diman; condition = None_666_Diman_bringSword_Condition; information = None_666_Diman_bringSword_Info; important = FALSE; permanent = TRUE;
description = "Вот, бери его?"; };
FUNC int None_666_Diman_bringSword_Condition() { // 1.Если игрок принимает квест… // 2. и не закончил его… // 3. и у него есть нужный меч… if (Npc_KnowsInfo ( hero, None_666_Diman_AskForSword) &! int_GotSword && Npc_HasItems (other, ItMw_Drachenschneide) >= 1) { return TRUE; }; return FALSE; };
func void None_666_Diman_bringSword_Info()
{ Info_ClearChoices (None_666_Diman_bringSword);
Info_AddChoice (None_666_Diman_bringSword, "Я достал меч, но ты его не получишь", None_666_Diman_bringSword_Yes); //добавляет выбор в диалогах Info_AddChoice (None_666_Diman_bringSword, "Вот он, держи.", None_666_Diman_bringSword_No); //добавляет выбор в диалогах };
// гг не отдает меч 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); AI_StartState( self, ZS_Attack, 0, ""); // NPC атакует(у меня он не атаковал никого) };
// гг всетаки отдал меч func void None_666_Diman_bringSword_No () { AI_Output ( other, self, "None_666_Diman_bringSword_Info_8_08"); // Вот, держи. AI_Output ( self, other, "None_666_Diman_bringSword_Info_8_09"); // Великолепно, а это мой подарок тебе - Эльфийский Клинок, единственный экземпляр,ведь Эльфы давно ушли.(смеется)
B_LogEntry (GunthersSword, "Отдать меч");
other.exp = other.exp + 100; // +200 очков опыта other.lp = other.lp + 2; // … и несколько очков обучения b_giveinvitems(other,self, ItMw_Drachenschneide,1);//нпс забирает меч b_giveinvitems(self,other,itmw_mysword,1);//нпс дает подарок AI_StopProcessInfos (self); };
Затем заходим в файл Story_Globals.d(папка story) и прописываем(можно вверху):
//---------------------------MOE------------------------------------- const string GunthersSword = "Принести Диману ' Клинок Дракона '"; //отображается в дневнике var int int_GotSword;
Сохраняем все.
Этап 3.
Заходим в Spaser2->world->Reparse Script...(выбираем gothic.src) Ошибок быть не должно(у меня все так и работает) Вибираем окно Output-units->update(ждем)->refresh(ждем,удаляем Ou.bin и Ou.csl)->save.
Все.Run Gothic2
P.S.:Где находится файл отвечающий за перевед глав(например,Глава 1 Угроза) и предметов(кровать,алхимический стол,стул и т.п.)
|
|
|
11.05.2005, 20:40
|
#710
|
|
Re: Русская дока по Spacer II
2ХуулРех: Молодец ! Все расписал подробно.
Где находится файл отвечающий за перевед глав, предметов
|
Посмотри Content\Story\Text.d
|
|
|
11.05.2005, 21:56
|
#711
|
|
Re: Русская дока по Spacer II
2ХуулРех:
AI_StartState( self, ZS_Attack, 0, ""); // NPC атакует(у меня он не атаковал никого)
|
Чтобы НПС начали драться необходимо использовать функцию void B_Attack(var C_NPC slf,var C_NPC oth,var int attack_reason,var int wait) с указанием причины атаки, она и переведет НПС в состояние атаки, в твоем случае при дружественных гильдиях у них просто для драки нет повода.
|
|
|
11.05.2005, 22:35
|
#712
|
|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Русская дока по Spacer II
2ХуулРех:
other.exp = other.exp + 100; // +200 очков опыта
|
Во-первых, 100 чков опыта, а во-вторых лучше юзать функцию B_GivePlayerXP() ;)
if (Npc_KnowsInfo ( hero, None_666_Diman_AskForSword) &! int_GotSword && Npc_HasItems (other, ItMw_Drachenschneide) >= 1)
|
Нет ли тут опечятки? ::)
|
|
|
11.05.2005, 23:37
|
#713
|
|
Re: Русская дока по Spacer II
[quote=ХуулРех link=board=gothic&t=1078004330&start=700#708 date=05/11/05, в 19:13:10] Этап 1.quote]
Заходим в Spaser2->world->Reparse Script...(выбираем gothic.src) Ошибок быть не должно(у меня все так и работает) Вибираем окно Output-units->update(ждем)->refresh(ждем,удаляем Ou.bin и Ou.csl)->save.
|
Зачем? Заходим в декомпилятор: компилировать! А то ещё придумал... ;D
|
|
|
12.05.2005, 10:07
|
#715
|
|
Re: Русская дока по Spacer II
2Zaraza123:
Можешь написать как создавать простенькие миссии для NPC и если можеше по подробнее???????????За ранее спосибо!!!!
|
Мягко говоря ты задолбал с этим вопросом в каждой более-менее подходящей темке. На первый раз я тебя прощаю, но ты обязательно почитай правила форума и сделай выводы.
|
|
|
12.05.2005, 10:26
|
#716
|
|
Re: Русская дока по Spacer II
2basilio:
Зачем? Заходим в декомпилятор: компилировать! А то ещё придумал...
Мне удобно работать с spaser2,все делается быстро,без всяких проблем(а если у когото после reparse sdript все на немецком ... :D у меня же после reparse script все на русском,так что мне все равно).
2TycoooN:
Во-первых, 100 чков опыта, а во-вторых лучше юзать функцию
Это да,я хотел сделать не 100,а 200 к опыту.Видимо не успел.
if (Npc_KnowsInfo ( hero, None_666_Diman_AskForSword) &! int_GotSword && Npc_HasItems (other, ItMw_Drachenschneide) >= 1) Нет ли тут опечятки?
?Объясни?
|
|
|
12.05.2005, 16:10
|
#717
|
|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Русская дока по Spacer II
2ХуулРех:
Меня немного смутила последовательность знаков
. Там, наверно, либо либо просто ::)
|
|
|
13.05.2005, 09:12
|
#719
|
|
Re: Русская дока по Spacer II
2ХуулРех: Для этого надо использовать триггер oCTriggerChangeLevel. На прикосновение настраивается аналогичным образом (см. чуть выше ocTriggerScript). Есть следуюшие 2 опции: Например levelName:NEWWORLD/NEWWORLD.ZEN мир, куда надо телепортироваться startVobName:NW_XARDAS_TOWER_VIEW_03_01 в частном случае имя вейпойнта в этом мире, на который надо телепортироваться писать заглавными буквами 2finch:
2All: Я понимаю, что перелопатить 29 страниц топика не каждому под силу... Но еще раз повторяю (особенно касается новичков): ребята, в этой теме расписаны почти все основы модостроения! Плюс Уроки скриптологии Vama! Пытайтесь вникнуть во все сами! Без этого ничего не получится!!
|
Спорить конечно неохото, основы модостроения каждый по своему понимает. Вникать надо, согласен, иначе не уедешь дальше этого топика. Но извини, ты так выразился, будто бы тему пора закрывать. Она предназначена для новичков прежде всего, и чем больше будет инфы, местами с избытком пускай, тем лучше для них.
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
Ваши права в разделе
|
|
|
|
Текущее время: 05:01. Часовой пояс GMT +4.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|