|
|
22.06.2006, 09:12
|
#1401
|
|
Re: М: Скриптинг в Готике
2Белиар:
А есть ли в интернете список этих функций и команд, чтобы каждый раз не спрашивать и не искать по скриптам, как например я искал команду присвоения гильдии...
|
Полный список всех функций с описанием встроен в Декомпилятор 3.00, при открытом проекте заходим в ClassView, раздел внутренние функции, двойной клик на функции - получаем описание. :)
|
|
|
22.06.2006, 16:49
|
#1402
|
|
Re: М: Скриптинг в Готике
Здравствуйте, уважаемые скриптеры. Я столкнулся с проблемой следующего рода: я создал новое боевое заклинание, но при его кастовании не уменьшается манна. Я думаю, что все дело в новом эффекте из VisualFX.dat. Вот код скрипта эффекта: AbraxysFX.d:
Код:
instance SPELLFX_My(CFX_BASE_PROTO){ visname_s = "MFX_ArmyOfDarkness_INIT"; emtrjmode_s = "FIXED"; emtrjoriginnode = "ZS_RIGHTHAND"; emtrjtargetnode = "BIP01 FIRE"; emtrjloopmode_s = "NONE"; emtrjeasefunc_s = "LINEAR"; emactioncollstat_s = "COLLIDE CREATE"; emactioncolldyn_s = "COLLIDE CREATEONCE CREATEQUAD"; emfxcollstat_s = "spellFX_My_COLLIDE"; emtrjtargetrange = 20; emtrjtargetelev = 0; emtrjdynupdatedelay = 20000; lightpresetname = "REDAMBIENCE";};instance SPELLFX_My_KEY_OPEN(C_PARTICLEFXEMITKEY){ lightrange = 2;};instance SPELLFX_My_KEY_INIT(C_PARTICLEFXEMITKEY){ visname_s = "MFX_ArmyOfDarkness_INIT"; lightrange = 2; scaleduration = 0.5;};instance SPELLFX_My_KEY_CAST(C_PARTICLEFXEMITKEY){ visname_s = "MFX_ArmyOfDarkness_INIT"; emtrjmode_s = "TARGET"; emtrjeasevel = 1000; emcheckcollision = 1; sfxid = "Dementhor_Talk"; sfxisambient = 1; lightrange = 100;};instance SPELLFX_My_KEY_COLLIDE(C_PARTICLEFXEMITKEY){ emtrjeasevel = 1e-006;};instance SPELLFX_My_COLLIDE(CFX_BASE_PROTO){ visname_s = "MFX_ArmyOfDarkness_INIT"; visalpha = 1; emtrjmode_s = "FIXED"; sfxid = "MFX_My_COLLIDE";};
Далее на всякий случай распишу как делал заклинание: 1) Сначала в скипте constants.d описал константу const int SPL_AbraxysSpell = 65; 2) Затем в том же скрипте в массиве const string spellFxInstanceNames[100] значение элемента под номером 65 «Light» заменил на «My» и в массиве const string spellFxAniLetters[100] значение элемента под номером 65 «XXX» заменил на «FBT». 3) В скрипте text.d в массиве const string TXT_SPELLS[100] значение элемента под номером 65 « TXT_SPL_RESERVED_65» заменил на « Заклинание светлого Князя» и описал константу const string NAME_SPL_AbraxysSpell = "Заклинание светлого Князя"; 4) В скрипте Spell_ProcessMana.d добавил следующий код
Код:
if(activeSpell == SPL_AbraxysSpell) { return spell_Logic_AbraxysSpell(manaInvested); };
5) Создал скрипт Spell_Abraxys.d со следующим содержанием:
Код:
const int SPL_Cost_AbraxysSpell = 10;const int SPL_Damage_AbraxysSpell = 200;instance Spell_AbraxysSpell(C_Spell_Proto){ time_per_mana = 0; damage_per_level = SPL_Damage_AbraxysSpell; targetCollectRange = 1000;};func int Spell_Logic_AbraxysSpell(var int manaInvested){ if(Npc_GetActiveSpellIsScroll(self) && (self.attribute[ATR_MANA] >= SPL_Cost_Scroll)) { return SPL_SENDCAST; } else if(self.attribute[ATR_MANA] >= SPL_Cost_AbraxysSpell) { return SPL_SENDCAST; } else { return SPL_SENDSTOP; };};func void Spell_Cast_AbraxysSpell(){ if(Npc_GetActiveSpellIsScroll(self)) { self.attribute[ATR_MANA] -= SPL_Cost_Scroll; } else { self.attribute[ATR_MANA] -= SPL_Cost_AbraxysSpell; }; self.aivar[AIV_SelectSpell] += 1;};
6) В скрипте C_CanNpcCollideWithSpell.d вставил вот что
Код:
if(spellType == SPL_AbraxysSpell) { if (C_NpcIsEvil(self)) { return COLL_APPLYDOUBLEDAMAGE; } else { return COLL_APPLYDAMAGE; }; };
7) И в заключение в скрипте IT_Runen.d написал вот что:
Код:
const int Value_Ru_AbraxysSpell = 3000;instance ItRu_AbraxysSpell(C_Item){ name = NAME_Rune; mainflag = ITEM_KAT_RUNE; flags = 0; value = Value_Ru_AbraxysSpell; visual = "ItRu_BreathOfDeath.3ds"; material = MAT_STONE; spell = SPL_AbraxysSpell; mag_circle = 0; wear = WEAR_EFFECT; effect = "SPELLFX_WEAKGLIMMER_RED"; description = "Красный огонь светлого Князя"; text[0] = NAME_Mag_Circle; count[0] = mag_circle; text[1] = NAME_Manakosten; count[1] = SPL_Cost_AbraxysSpell; text[2] = NAME_Dam_Magic; count[2] = SPL_Damage_AbraxysSpell; text[5] = NAME_Value; count[5] = value;};
Уважаемые скриптеры, подскажите, пожалуйста, что я сделал не так? Почему при кастовании не уменьшается манна? В остальном заклинание работает нормально, урон наносится, NPC на магию реагируют. И еще вопрос. Кто-нибудь знает описание классов C_PARTICLEFXEMITKEY и CFX_BASE – за что отвечает каждое поле. Заранее благодарен.
|
|
|
22.06.2006, 19:21
|
#1403
|
|
Re: М: Скриптинг в Готике
2Князь Светозар:
Уважаемые скриптеры, подскажите, пожалуйста, что я сделал не так? Почему при кастовании не уменьшается манна?
|
Сделано всё правильно, но попробуй как у заклинания Sleep строки уменьшения маны из функции Spell_Cast_ххх перенести в функцию Spell_Logic_ххх, а функцию Spell_Cast_ххх скопируй с заклинания Sleep. Почему так - пока не знаю, может зависит от типа заклинания. :)
|
|
|
22.06.2006, 20:29
|
#1404
|
|
Re: М: Скриптинг в Готике
Цитата:
Сообщение от Белиар link=board=gothic&t=1105030050&start=1375#1399 date=06/22/06, в 01:40:22
Это я знаю, но если изменять файл NewWorld.zen (~70мб), мод будет весить очень много *:'(
|
Зачем изменять? В триггере указываешь существующий в NewWorld Wp и все. А по поводу лень искать? Читай тему уроки скриптологии. Но там тоже нет "большой кнопки" ;-)
|
|
|
23.06.2006, 02:05
|
#1405
|
|
Re: М: Скриптинг в Готике
2Vam: Спасибо, помогло!
Мана отнимается, но почему-то вместо 200 урона наносится около 50. Оркам и подобным нехорошим людям вообще минимальный - 5 :( Я думаю, это из-за того, что функция Spell_Cast_XXX не выполняется (иначе мана отнималась бы). А не выполняется она почему то из-за эффекта. Если ставить другой эффект - то все работает нормально. Я думаю, что VisualFX.dat не единственное место, где прописаны визуальные эффекты... К тому же я нигде не нашел описания, например, MFX_ArmyOfDarkness_INIT и иже с ним... :(*
В принципе, выход есть - можно вручную отнять необходимое число хитпоинтов в скрипте B_MagicHurtNPC.d. Но в чем, собственно, дело все же интересно. ::)
|
|
|
23.06.2006, 02:22
|
#1406
|
|
Re: М: Скриптинг в Готике
Зачем изменять? В триггере указываешь существующий в NewWorld Wp и все.
|
Что-то я не понял, всё равно, чтобы создать в Хоринисе триггер ChangeLevel, надо изменить NewWorld.zen и добавить его в мод, или я не прав? :)
|
|
|
23.06.2006, 08:02
|
#1407
|
 |
|
 |
|
A.G.F.C.
Регистрация: 02.09.2005
Сообщений: 6
|
|
 |
|
 |
|
Re: М: Скриптинг в Готике
Существующие в оригинальном зене Хориниса триггеры смены уровня ведут: а) прямиком на драконий остров :) (тот, что в каюте капитана); б) в Рудниковую долину (2 штуки, в разных местах прохода к Миненталю); в) в Яркендар ("телепорт" в храме). Чтобы сделать триггер смены уровня, который будет загружать ту локацию, которая тебе нужна (к примеру, свою свеженарисованную локацию), придется добавлять новый триггер перехода, или менять свойства "старых". Все это ведет к тому, что в мод придется включать измененный зен (тот, в котором ты поставишь или изменишь триггер). В случае с Хоринисом это очень печально, т.к. добавляет все его 70 с лишним мегабайт веса в мод. Статья начального уровня по созданию триггера перехода - здесь: http://mod.worldofgothic.ru/3s_zen/1...igrovoi-uroven. p.s. По поводу вызова триггера перехода из диалога (скриптом) - Базилио, поделись пожалуйста опытом. Я пробовал делать так на оригинальном зене Хориниса, но там беда в том, что они не поименованы, поэтому как бы нечего и вызывать - отсюда ничего не получилось. В общем, пока получается сделать только так, как в оригинале - только через "физический" вход ГГ в триггер. Триггеры остальных типов вызываются через скрипты без проблем.
|
|
|
23.06.2006, 16:37
|
#1408
|
 |
|
 |
|
Регистрация: 19.06.2004
Адрес: г. Белая Калитва.
Сообщений: 204
|
|
 |
|
 |
|
Re: М: Скриптинг в Готике
Про переходы: Можно так же назвать твой новый мир именем старого, например миненталя. А диалогами в скриптах это красиво оформить. Ну это я так, на всякий случай :)
|
|
|
23.06.2006, 22:16
|
#1409
|
|
Re: М: Скриптинг в Готике
Цитата:
Сообщение от marazmus link=board=gothic&t=1105030050&start=1400#1406 date=06/23/06, в 07:02:25
По поводу вызова триггера перехода из диалога (скриптом) ...
|
Да я собственно не проверял ;-). Просто в "Кошмаре" переход из первой локации во вторую вызывается не "входом" ГГ в триггер, а "выключателем". Триггер висит над головой ГГ.
|
|
|
24.06.2006, 00:01
|
#1411
|
|
Re: М: Скриптинг в Готике
2DART VITAL:
А новую тему из-за пару вопросов открывать думаю не стоит.
|
Правильно :) 1) не провирял, ну ты просто наложи свою модель на кости и привяжи( а вообще посети этот сайт 2)А нафиг тебе анимация, толькоесли он ими чтомибуть будет делать 3)Качай последнию версию декомпилятора, там можно отковырять модели
А так в МАКСЕ шарю не плохо
|
Приглашаю в команду, отпиши в приват
А почему закрылась тема 3DS MAX AND GOTIC
|
Так есть тема вопросы по модостроению( в верху есть ссылка)
|
|
|
24.06.2006, 04:28
|
#1412
|
|
Re: М: Скриптинг в Готике
Существующие в оригинальном зене Хориниса
|
То, что я не сказал, что хочу триггер перемещения в НОВЫЙ уровень, я понял поздно ночью, когда ложился спать ;D Wld_SendTrigger("Триггер") - не работает, ГГ только говорит что-то в этот момент. А как исп.
Код:
// телепортирует НПС npc в новую локацию waypoint.func void AI_Teleport(C_NPC npc, string waypoint);
? Если прописать в диалоге например: AI_Teleport(C_NPC PC_HERO, string START_Gothic2); Декомпилятор выдает ошибку... Или функцию надо объявить: func void AI_Teleport; А потом прописать, где надо: AI_Teleport(C_NPC PC_HERO, string START_Gothic2); ?
|
|
|
24.06.2006, 10:46
|
#1413
|
|
Re: М: Скриптинг в Готике
2Белиар: Я просто приведу пример. B_StartOtherRoutine(NONE_666_DEDROIT,"TELEPRTTOFAR M"); AI_Teleport(NONE_666_DEDROIT,NW_FARM1_OUT_01); Это прописываешь в диалоге. В скрипте НПС пишешь: func void Rtn_TELEPRTTOFARM_666() { TA_Rake_FP(8,0,22,0,"NW_FARM1_OUT_01"); TA_Rake_FP(22,0,8,0,"NW_FARM1_OUT_01"); }; Вот так приблизительно должно быть.
|
|
|
24.06.2006, 20:12
|
#1414
|
|
Re: М: Скриптинг в Готике
Цитата:
Сообщение от DEDROIT link=board=gothic&t=1105030050&start=1400#1412 date=06/24/06, в 09:46:26
2Белиар: Я просто приведу пример. B_StartOtherRoutine(NONE_666_DEDROIT,"TELEPRTTOFAR M"); AI_Teleport(NONE_666_DEDROIT,NW_FARM1_OUT_01); Это прописываешь в диалоге. В скрипте НПС пишешь: func void Rtn_TELEPRTTOFARM_666() { * * *TA_Rake_FP(8,0,22,0,"NW_FARM1_OUT_01"); * * *TA_Rake_FP(22,0,8,0,"NW_FARM1_OUT_01"); }; Вот так приблизительно должно быть.
|
Ну да, все вроде правильно. Только готовься к разнообразным глюкам. При телепорте диалог НЕ завершается, и на ГГ в лучшем случае перестают реагировать. В том числе монстры.
|
|
|
24.06.2006, 21:53
|
#1415
|
|
Re: М: Скриптинг в Готике
2basilio58:
При телепорте диалог НЕ завершается
|
Согласен. Перед строчкой
Код:
AI_Teleport(NONE_666_DEDROIT,NW_FARM1_OUT_01);
нужно бы написать
Код:
AI_StopProcessInfos(self);
|
|
|
24.06.2006, 22:12
|
#1416
|
|
Re: М: Скриптинг в Готике
Насчет BIPED скелета разобрался. Если у кого с ним тоже проблемы советую посетить сайт inside.hl2.ru
================================================== =========
Народ добрый, пожалуйста, объясните такую вещь.
Хотя мой вопрос покажется довольно странным и у вас возникнет вопрос на х.. это надо, но дело в том, что мне это надо.
Постараюсь более понятно изложить суть: Меня интересует принцип как персонажи распознают кто из них враг а кто друг по отношению к друг другу. Их же там сотни. И что у каждого персонажа есть переменные к другим что ли, или как? Вобщем меня интересует только теоретическая суть процесса. Просто хочу узнать, как это реализовано на движке готики.
Добавление от 06/24/06, в 21:13:19 Насчет BIPED скелета разобрался. Если у кого с ним тоже проблемы советую посетить сайт inside.hl2.ru
================================================== =========
Народ добрый, пожалуйста, объясните такую вещь.
Хотя мой вопрос покажется довольно странным и у вас возникнет вопрос на х.. это надо, но дело в том, что мне это надо.
Постараюсь более понятно изложить суть: Меня интересует принцип как персонажи распознают кто из них враг а кто друг по отношению к друг другу. Их же там сотни. И что у каждого персонажа есть переменные к другим что ли, или как? Вобщем меня интересует только теоретическая суть процесса. Просто хочу узнать, как это реализовано на движке готики.
|
|
|
25.06.2006, 04:12
|
#1418
|
|
Re: М: Скриптинг в Готике
B_StartOtherRoutine(NONE_666_DEDROIT,"TELEPRTTOFAR M"); AI_Teleport(NONE_666_DEDROIT,NW_FARM1_OUT_01); Это прописываешь в диалоге. В скрипте НПС пишешь: func void Rtn_TELEPRTTOFARM_666() { TA_Rake_FP(8,0,22,0,"NW_FARM1_OUT_01"); TA_Rake_FP(22,0,8,0,"NW_FARM1_OUT_01"); };
|
А если я хочу телепортировать ГГ? У него же нет функции распорядка дня.
|
|
|
25.06.2006, 15:17
|
#1419
|
 |
|
 |
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
 |
|
 |
|
Re: М: Скриптинг в Готике
2Белиар: Тогда просто
Код:
AI_StopProcessInfos(self);AI_Teleport(self,"WP");
AI_Teleport(C_NPC PC_HERO, string START_Gothic2);
|
Типы переменных указываются только в объявлении функции, а при ее вызове перечисляются только сами переменные, причем их типы должны совпадать с указанными.
|
|
|
27.06.2006, 12:00
|
#1421
|
|
Re: М: Скриптинг в Готике
Цитата:
Сообщение от Белиар link=board=gothic&t=1105030050&start=1400#1419 date=06/27/06, в 01:19:38
... на WP, который находится в триггере перехода на др. уровень... в первый раз проходит, а с другой стороны (в новом уровне) через диалог обратно перемещаться не хочет, хотя написал всё, как и в 1 случае.
|
Если я тебя правильно понял. Триггер перехода в каждом уровне - д.б. свой.
|
|
|
28.06.2006, 02:25
|
#1422
|
|
Re: М: Скриптинг в Готике
Если я тебя правильно понял. Триггер перехода в каждом уровне - д.б. свой.
|
Да свой там, свой... Опишу примерно, что сделал: Создал в одной локации (допустим в 1.zen) триггер перехода в OldWorld и назвал его GO_OW, там-же разместил WP с названием TO_OW написал диалог для НПс:
Код:
func void DIA_TEL_tel_addon() { AI_Output(other,self,"DIA_TEL_tel_15_02"); //Перемести меня в Рудниковую долину AI_Teleport(PC_HERO, "TO_OW"); Info_ClearChoices(DIA_TEL_tel); AI_StopProcessInfos(self);};
Переместился в OldWorld (Там я создал триггер перехода обратно, назвал его GO_SAN и поставил на него WP с названием TO_SAN, разместил в мире другого NPc) Вот его диалог:
Код:
func void DIA_TEL_telOW_san() { AI_Output(other,self,"DIA_TEL_telOW_15_01"); //Перемести меня обратно... AI_Teleport(PC_HERO, "TO_SAN"); Info_ClearChoices(DIA_TEL_telOW); AI_StopProcessInfos(self);};
Не работает, хотя если ввести в игровой консоли gotto waypint TO_SAN игра перемещает обратно...
|
|
|
28.06.2006, 21:20
|
#1423
|
|
Re: М: Скриптинг в Готике
Цитата:
Сообщение от Белиар link=board=gothic&t=1105030050&start=1400#1421 date=06/28/06, в 01:25:39
Не работает, хотя если ввести в игровой консоли gotto waypint TO_SAN игра перемещает обратно...
|
Мдя... глюк, да и только... Хотя я, наверное, написал бы так:
Код:
func void DIA_TEL_telOW_san() { * * *AI_Output(other,self,"DIA_TEL_telOW_15_01"); //Перемести меня обратно... * * *AI_StopProcessInfos(self); * * *AI_StopProcessInfos(other); * * *AI_Teleport(hero,"TO_SAN"); * * *};
Хотя особой разницы не вижу :-(
|
|
|
20.07.2006, 11:38
|
#1425
|
|
Re: М: Скриптинг в Готике
Цитата:
Сообщение от Roomper link=board=gothic&t=1105030050&start=1400#1423 date=07/20/06, в 10:01:31
Возникло несколько проблем при написании своего квеста. Так вот, создал я свой мир, прописал в Startup.d и там же его инициализировал (это к сведению). По моей задумки, один NPC должен быть мертвым, а его труп должен валяться около дерева в течение некоторого времени. У того NPC я поставил параметр attribute[ATR_HITPOINTS] = 0. Но когда я прихожу в это место, там просто никого нет! Подскажите, как сделать мертвого NPC, который бы не исчезал. И еще: как сделать предмет, который бы при экипировки сразу же снимался.
|
Возможно движок подчистил твой труп (а живой он там будет?). В инвентарь надо положить какой-нибудь миссион айтем(я думаю работать будет, хотя может я ошибаюсь).
|
|
|
20.07.2006, 18:34
|
#1426
|
|
Re: М: Скриптинг в Готике
2Roomper:
Подскажите, как сделать мертвого NPC, который бы не исчезал.
|
Долго расписывать сам процесс. Посмотри, например, как разрабы реализовали мертвых послушников (totter novize) в Хоринисе или мертвых рабов в Яркендаре.
И еще: как сделать предмет, который бы при экипировки сразу же снимался.
|
???
|
|
|
21.07.2006, 08:21
|
#1427
|
|
Re: М: Скриптинг в Готике
Цитата:
Сообщение от Xentar link=board=gothic&t=1105030050&start=1400#1424 date=07/20/06, в 10:38:03
Возможно движок подчистил твой труп (а живой он там будет?). В инвентарь надо положить какой-нибудь миссион айтем(я думаю работать будет, хотя может я ошибаюсь).
|
Твой способ все нормально работает. Только вот, не знаешь ли ты, как сделать, чтобы труп не исчезал со временем, не пихая ему в брюхо разного рода квестовых предметов? Еще вопрос. Что нужно писать в строке npc в инстанции диалога, чтобы диалог давала определенная группа НПС, скажем, жители одного города?
|
|
|
21.07.2006, 14:44
|
#1429
|
|
Re: М: Скриптинг в Готике
2Xentar:
Попробуй то, что посоветовал finch
|
Разобрался я с оригинальными скриптами и понял, что в них используется тот же алгоритм, какой ты мне и посоветовал. То есть им тоже кладется квестовый предмет, только не в ручную, а через функцию B_KillNpc (сначала с помощью Wld_InsertNpc вставляется живой НПС, а потом убивается функцией B_KillNpc, в теле которой есть строчка reateInvItem(npc,ItMi_OldCoin);)
создать прототип для этих НПС и в указанной строке указать его имя)
|
Че то я не совсем понял.
|
|
|
21.07.2006, 19:24
|
#1431
|
|
Re: М: Скриптинг в Готике
Цитата:
Сообщение от Roomper link=board=gothic&t=1105030050&start=1425#1426 date=07/21/06, в 07:21:20
Еще вопрос. Что нужно писать в строке npc в инстанции диалога, чтобы диалог давала определенная группа НПС, скажем, жители одного города?
|
Посмотри, как используется SVM (Standart Voice Module) A именно: разные NPC произносят одни и те же фразы (с учетом № голоса - SVM_11, SVM_13...)
|
|
|
22.07.2006, 22:38
|
#1433
|
|
Re: М: Скриптинг в Готике
2Roomper:
Ну, например, я хочу написать событие, которое выполнялось бы не сразу после того, как условие станет истинным, а через некоторое время
|
Если тебе необходимо выполнение события через день (или несколько дней), юзай Wld_GetDay. Если же через несколько минут (часов), то так просто здесь не выкрутишься. Можно сделать невидимого НПС, который бы постоянно "летал" за ГГ и отсчитывал время. Принцип действия этого НПС я расписывал в этой теме в туторе по созданию амулета регенерации. Если не лень - поищи.
|
|
|
24.07.2006, 04:19
|
#1435
|
|
Re: М: Скриптинг в Готике
2@Urizzel@:
Как сменить текстуры Хориниса?
|
Следующим образом: 1. Открываешь 3ds файл. 2. Выбираешь compile world, ставишь outdoor и edit mode. 3. Меняешь текстуры, сохраняешь меш. 4. Открываешь файл NewWorld.zen 5. После открытия выбираешь compile world, ставишь outdoor, edit mode НЕ ставишь. 6. Ждешь окончания компиляции, compile light, сохраняешь под тем же именем (NewWorld.zen). 7. Запускаешь игру - текстуры новые. ;) З.Ы. А вообще такие вопросы надо задавать в этой теме.
|
|
|
10.08.2006, 13:48
|
#1436
|
|
Re: М: Скриптинг в Готике
2All: Кто занимался созданием новых заклинаний? Поделитесь опытом. Я уже весь извелся! =) Все работает - и анимация, и визуальные эффекты, но, млин, урон совсем не наносится.. Можно, конечно, пойти другим путем, но это будет неправильно. Я уверен, что при верном подходе все должно работать, но, наверное, че-то упускаю из виду.. Короче, может, возьмемся скопом и решим траблу с созданием новых спеллов? ;)
|
|
|
10.08.2006, 15:30
|
#1437
|
|
Re: М: Скриптинг в Готике
2finch:
Все работает - и анимация, и визуальные эффекты, но, млин, урон совсем не наносится..
|
Можно поподробнее описать тип заклинания и каким образом ты программируешь урон.
|
|
|
10.08.2006, 15:34
|
#1438
|
|
Re: М: Скриптинг в Готике
2finch:
Кто занимался созданием новых заклинаний
|
Я этим занимался и у меня возникли те же самые проблемы, что и у тебя... Я урон вообще в восприятиях прописывал, иначе никак не получалось. :( Как и что я делал написано здесь. Кстати, ошибка кажется в функции func void Spell_Cast_MySpell() потому что мана нихрена не отнималась и мне Vam посоветовал отнимать ману в функции func void Spell_Logic_MySpell() Я думаю, что основной акцент нужно сделать на этих функциях.. Почему не работает так, как должно?
возьмемся скопом и решим траблу с созданием новых спеллов
|
Я за! З.Ы. У меня к тебе вопрос. Как сделать абсолютно новый визуальный эффект? Распиши механизм, пожалуйста. А то в классах C_PARTICLEFXEMITKEY и CFX_BASE не понятно, какое поле за что отвечает. 2Vam: Не мог бы ты посмотреть тутор по ссылке, что в начале моего поста написана... Может и найдется ошибочка... Я просто уже все оригинальные примеры переюзал - не работает как надо. Кстати, заметил такую особенность - если эффект ставить нормальный (т.е. разработчиками написанный), то заклинание наносит урон как положено. Может все дело в эффекте? Опять же сказывается незнание классов C_PARTICLEFXEMITKEY и CFX_BASE...
|
|
|
10.08.2006, 17:59
|
#1439
|
|
Re: М: Скриптинг в Готике
2Князь:
Я просто уже все оригинальные примеры переюзал - не работает как надо. Кстати, заметил такую особенность - если эффект ставить нормальный (т.е. разработчиками написанный), то заклинание наносит урон как положено. Может все дело в эффекте?
|
Не думаю. Некоторое время назад я заменил эффект ледяной волны на волну огненную. Т.е. спелл был Ледяная волна, но эффект был огненный (люди горели и т.д.), так вот урон наносился нормальный - такой, который прописываешь в spell_icewave.d 2Vam:
Можно поподробнее описать тип заклинания и каким образом ты программируешь урон.
|
Беру за основу эффект какого-нить закла, меняю что-нить в визуализации под себя, вешаю все это на SPL_Reserved_xx, создаю файл спелла, прописываю все, что надо в Spell_ProcessMana и B_AssessMagic.. короче, делаю все, как делали сами разрабы.. но результат нулевой. =( Добавление от 08/10/06, в 17:09:26 2Князь:
З.Ы. У меня к тебе вопрос. Как сделать абсолютно новый визуальный эффект? Распиши механизм, пожалуйста. А то в классах C_PARTICLEFXEMITKEY и CFX_BASE не понятно, какое поле за что отвечает.
|
Почитай PFX система (Эффекты излучаемых частиц) by Vam
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
Опции темы |
Поиск в этой теме |
|
|
Ваши права в разделе
|
|
|
|
Текущее время: 03:28. Часовой пояс GMT +4.
|
|
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|