Re: Скриптинг в Готике
2Zaraza123: Достал уже... От темы - отлучен.<br>Изучи сначала внимательно уроки скриптологии. Когда выучишь и сдашь экзамен Vam'у, тогда поговорим о допуске тебя в эту тему.
|
Re: Скриптинг в Готике
2Killer-XXX:<br>Вот фрагмент скрипта моего нпс,где гг неотдает меч,нпс нападает на гг,после чего говорит:"Ну *как *тебе *мой *меч?"<br>Делал все при помощи спейсера:<br>__________________________________________________ __________<br><br>// гг не отдает меч <br>func void None_666_Diman_bringSword_Yes () <br>{<br>AI_Output( other, self, "None_666_Diman_bringSword_Info_8_06" ); //Я так не думаю. <br>AI_Output( self, other, "None_666_Diman_bringSword_Info_8_07" ); // Тогда получи!?! <br>AI_StopProcessInfos (self); <br>b_attack(self,other,AR_NONE,1);// NPC атакует гг<br>}; <br><br>instance None_666_Diman_FightWin(C_Info)<br>{<br> npc * * * * *= *None_666_Diman;<br> nr * * * * * = *50;<br> condition * *= *None_666_Diman_FightWin_Condition;<br> information *= *None_666_Diman_FightWin_Info;<br> important * *= *TRUE;<br>};<br><br><br>func int None_666_Diman_FightWin_Condition()<br>{<br> if(self.aivar[AIV_LastFightAgainstPlayer] == FIGHT_WON)<br> {<br> * return *TRUE;<br> };<br>};<br><br>func *void *None_666_Diman_FightWin_Info()<br>{<br> AI_Output(self,other,"None_666_Diman_FightWin _info_8_00"); *//Ну *как *тебе *мой *меч? *<br>};<br>__________________________________________________ __________<br><br>Все работает :)
|
Re: Скриптинг в Готике
Несколько постов назад я прочитал,что можно конвертировать брони из Готики1 во 2,но где нужно прописывать скрипты брони?<br><br>Добавление от 05/30/05, в 16:23:48 <hr class="hr_agfc">Я скачал с World of Githic брони для Готики1.После этого я перннёс брони в Готику2 Аддон и решил несколько бронь закомпелировать(const int VALUE_TPL_ARMOR_L = 1350;и<br>const int VALUE_TPL_ARMOR_H = 2100;), прописал в папке IT_Armor(Gothic II\_work\Data\Scripts\Content\Items) следующее :<br>const int VALUE_TPL_ARMOR_L = 1350;<br>const int VALUE_TPL_ARMOR_H = 2100;<br>и<br>/************************************************** ****************************************/<br>INSTANCE VLK_ARMOR_L(C_Item)<br>{<br> name = "Leichte Buddlerhose";<br><br> mainflag = ITEM_KAT_ARMOR;<br> flags = 0;<br><br> protection [PROT_EDGE] = 10;<br> protection [PROT_BLUNT] = 10;<br> protection [PROT_POINT] = 0;<br> protection [PROT_FIRE] = 5;<br> protection [PROT_MAGIC] = 0;<br><br> value = VALUE_VLK_ARMOR_L;<br><br> wear = WEAR_TORSO;<br> <br> visual = "vlkl.3ds";<br> visual_change = "Hum_VLKL_ARMOR.asc";<br> visual_skin = 0;<br> material = MAT_LEATHER;<br><br> description = name;<br> //TEXT[0] = "";<br> TEXT[1] = NAME_Prot_Edge; COUNT[1] = protection [PROT_EDGE];<br> TEXT[2] = NAME_Prot_Point; COUNT[2] = protection [PROT_POINT];<br> TEXT[3] = NAME_Prot_Fire; COUNT[3] = protection [PROT_FIRE];<br> TEXT[4] = NAME_Prot_Magic; COUNT[4] = protection [PROT_MAGIC];<br> TEXT[5] = NAME_Value; COUNT[5] = value;<br>};<br>/************************************************** ****************************************/<br>INSTANCE STT_ARMOR_H(C_Item)<br>{<br> name = "Schattenrьstung";<br><br> mainflag = ITEM_KAT_ARMOR;<br> flags = 0;<br><br> protection [PROT_EDGE] = 40;<br> protection [PROT_BLUNT] = 40;<br> protection [PROT_POINT] = 5;<br> protection [PROT_FIRE] = 20;<br> protection [PROT_MAGIC] = 0;<br><br> value = VALUE_STT_ARMOR_H;<br><br> wear = WEAR_TORSO;<br><br> visual = "stth.3ds";<br> visual_change = "Hum_STTS_ARMOR.asc";<br> visual_skin = 0;<br> material = MAT_LEATHER;<br><br> description = name;<br> //TEXT[0] = "";<br> TEXT[1] = NAME_Prot_Edge; COUNT[1] = protection [PROT_EDGE];<br> TEXT[2] = NAME_Prot_Point; COUNT[2] = protection [PROT_POINT];<br> TEXT[3] = NAME_Prot_Fire; COUNT[3] = protection [PROT_FIRE];<br> TEXT[4] = NAME_Prot_Magic; COUNT[4] = protection [PROT_MAGIC];<br> TEXT[5] = NAME_Value; COUNT[5] = value;<br>};<br>Но когда начал компелировать,Спайсер выдаёт ошибку.Чтоя я сделал не правильно.<br>
|
Re: Скриптинг в Готике
2Bliz@rd: <br>Вероятно у тебя нигже не прописаны переменные:<br>VALUE_VLK_ARMOR_L и VALUE_STT_ARMOR_H. Добавить их.<br>З.Ы. В следующий раз указывай ошибку из компилятора.
|
Re: Скриптинг в Готике
Прописал VALUE_VLK_ARMOR_L и VALUE_STT_ARMOR_H.В спайсере закомпелировал.Ошибок не было,но когда я вхожу в игру и дохожу до того места где стоит мой NPC(c бронёй из Готики1)игра вылетает.Кто-нибудь может написать пример вставке какой-нибудь брони из Готики1 во 2? <br><br>Добавление от 05/30/05, в 23:20:55 <hr class="hr_agfc">Хотел уточнить что я изменил :<br>const int VALUE_TPL_ARMOR_L = 1350;<br>const int VALUE_TPL_ARMOR_H = 2100;<br>на<br>const int VALUE_VLK_ARMOR_L =1350;<br>const int VALUE_STT_ARMOR_H =2100;<br>Только после этого спайсер не выдавал ошибки.<br>И ещё где нужно прописывать (VALUE_VLK_ARMOR_L и VALUE_STT_ARMOR_H)?<br>Может быть после этого игра не будет вылетать.
|
Re: Скриптинг в Готике
После того что я привёл выше я после этого ещё распаковал папку Anims(C:\Program Files\Gothic II\Data\ Anims) потом добавил 2 броньки(приведены выше) и запоковал обратно.Потом закомпелировал в спайсере.Ошибок не было.Когда захожу в игру и дохожу до того места где стоит мой NPC с новой бронькой игра не вылетела,но все <br>остальные броньки включая которые я и внёс стали глючить.Они <br>как-бы пропали на половину(как-будто какие-то не доделанные. <br>Кто знает из-за чего это так произошло?<br><br>Добавление от 06/02/05, в 18:14:29 <hr class="hr_agfc">Может быть я не правильно вставляю броню в скриптах NPC? вот напрмер<br>// ------ visuals ----- <br> B_SetNpcVisual (self, MALE, "Hum_Head_Bald", Face_N_Mordrag, BodyTex_N, ITAR_MIL_L); <br> Mdl_SetModelFatness (self,0);<br> Mdl_ApplyOverlayMds (self, "Humans_Militia.mds"); <br>нужно только изменить ITAR_MIL_L на TPL_ARMOR_L .Я правильно понял?<br>И ещё хотел уточнить когдя я попробывал всё сделать снова то все брони кроме тех которые я вставил были нормальные.Только та бронька которую я вставил в принципе такая-же ка в Готики1,но без рисунков<br>(какаято однлтоная).В чем ошибка?
|
Re: Скриптинг в Готике
2Bliz@rd: <br>Скачай Ruestungsmodsmall-1.0a с ВорлдОфГотик и погляди там, это как раз тот мод где часть доспехов экспортирована из Г1 ( мой альфа перевод на Яндексе )
|
Re: Скриптинг в Готике
2Bliz@rd:<br><br>В папке Items\IT_Addon_Armor.d в конце дописываем(на примере брони рудного барона):<br>------------------------------------------------------------<br>INSTANCE ITAR_Magic_Armor (C_Item)<br><br> * * *name ** * * * * * * * *= * * *"Магическая Броня";<br> * * * *mainflag ** * * * * *= * * *ITEM_KAT_ARMOR;<br> * * *flags ** * * * * * * * *= * * *200;<br> * * *protection [PROT_EDGE] * * *= * * *200;<br> * * *protection [PROT_BLUNT] = ** * *200;<br> * * *protection [PROT_POINT] = ** * *200;<br> * * *protection [PROT_FIRE] ** * *= ** * *200;<br> * * *protection [PROT_MAGIC] = ** * *200;<br> * * *value ** * * * * *= * * *VALUE_ITAR_OreBaron_Addon;<br> * * *wear ** * * * * *= * * *WEAR_TORSO;<br> * * *visual ** * * * * *= * * *"ItAr_CHAOS_ADDON.3ds";//отображение на земле *и в инвентаре<br> * * *visual_change ** * *= * * *"Hum_Magie_Armor.asc";//на гг<br> * * *visual_skin ** * *= * * *0;<br> * * *material * * * *= * * *MAT_LEATHER;<br> * * *description * * *= * * *name;<br> * * *TEXT[1] * * * * * *= * * *NAME_Prot_Edge; * * * * * * * * *<br> * * *COUNT[1] * * *= ** * *protection * * *[PROT_EDGE];<br> * * *TEXT[2] * * * * * *= * * *NAME_Prot_Point; * * * * * *<br> * * *COUNT[2] * * *= ** * *protection * * *[PROT_POINT];<br> * * *TEXT[3] ** * *= * * *NAME_Prot_Fire; * * * * * * * * *<br> * * *COUNT[3] * * *= ** * *protection * * *[PROT_FIRE];<br> * * *TEXT[4] * * * * * *= * * *NAME_Prot_Magic; * * * * * *<br> * * *COUNT[4] * * *= ** * *protection * * *[PROT_MAGIC];<br> * * *TEXT[5] * * * * * *= * * *NAME_Value; * * * * * * * * *<br> * * *COUNT[5] * * *= ** * *value;<br><br>------------------------------------------------------------<br>В папку Textures\_compiled всавляем HUM_MAGIE_ARMOR_V0-C.TEX(взято из Готики 1).<br>Компилируем при помощи спейсера,все.(Необходим gmdk-asc_armor.rar,можно скачать с WoG). :)<br><br>P.S.:Есессено проверял у себя ;)
|
Re: Скриптинг в Готике
gmdk-asc_armor.rar нужно скачать с сайта World of Gothic в разделе<br>Editing для Готики 2,которая весит 63 мега?
|
Re: Скриптинг в Готике
2Bliz@rd:<br><br>gmdk-asc_armor.rar нужно скачать с сайта World of Gothic в разделе<br>Editing для Готики 2,которая весит 63 мега?<br><br>Да нет,он весит 1.5 mb ->Вот.<br>Можно использовать любой скрипт брони,только изменить Itar_Name(где Name твое название) и visual_change(из архива любой *.asc),и бросить в папку Textures\_compiled текстуру этой *.asc,это ты не сделал,поэтому текстура доспеха была расплывчатая(черный,серый цвета).<br>
|
Re: Скриптинг в Готике
Пытался делать по твоему примеру,только вствить броню(TPL_ARMOR_L).Вот что я делал:<br>1) В папке Items\IT_Addon_Armor.d прописал после const int VALUE_ITAR_Bloodwyn_Addon * * *= 1300; <br>следуещее:const int VALUE_TPL_ARMOR_L * *= 1350;а внизу:<br>INSTANCE TPL_ARMOR_L(C_Item)<br>{<br> * * *name * * * * * * * * * * * * * * *= * * *"Leichte Templerrьstung";<br><br> * * *mainflag * * * * * * * * * * * *= * * *ITEM_KAT_ARMOR;<br> * * *flags * * * * * * * * * * * * * * *= * * *0;<br><br> * * *protection [PROT_EDGE] * * *= * * *45;<br> * * *protection [PROT_BLUNT] = * * *45;<br> * * *protection [PROT_POINT] = * * *5;<br> * * *protection [PROT_FIRE] * * *= * * *20;<br> * * *protection [PROT_MAGIC] = * * *0;<br><br> * * *value * * * * * * * * * * * * * * *= * * *VALUE_TPL_ARMOR_L;<br><br> * * *wear * * * * * * * * * * * * * * *= * * *WEAR_TORSO;<br><br> * * *visual * * * * * * * * * * * * * * *= * * *"tpll.3ds";<br> * * *visual_change * * * * * * * * *= * * *"Hum_TPLL_ARMOR.asc";<br> * * *visual_skin * * * * * * * * *= * * *0;<br> * * *material * * * * * * * * * * * *= * * *MAT_LEATHER;<br><br> * * *description * * * * * * * * * * * *= * * *name;<br> * * *//TEXT[0] * * * * * * * * * * * *= * * *"";<br> * * *TEXT[1] * * * * * * * * * * * * * * *= * * *NAME_Prot_Edge; * * * * * * * * *COUNT[1] * * *= protection * * *[PROT_EDGE];<br> * * *TEXT[2] * * * * * * * * * * * * * * *= * * *NAME_Prot_Point; * * * * * *COUNT[2] * * *= protection * * *[PROT_POINT];<br> * * *TEXT[3] * * * * * * * * * * * *= * * *NAME_Prot_Fire; * * * * * * * * *COUNT[3] * * *= protection * * *[PROT_FIRE];<br> * * *TEXT[4] * * * * * * * * * * * * * * *= * * *NAME_Prot_Magic; * * * * * *COUNT[4] * * *= protection * * *[PROT_MAGIC];<br> * * *TEXT[5] * * * * * * * * * * * * * * *= * * *NAME_Value; * * * * * * * * * * * *COUNT[5] * * *= value;<br>};<br>Потом перенёс в папку C:\Program Files\Gothic II\_work\Data\Textures\_compiled следуещее:HUM_TPLL_ARMOR_V0-C.(взял из Готики 1)сохранил.<br>Закомпелировал в спайсере.Всё без ошибок.<br>Потом скриптах NPC прописал:<br>там где // ------ visuals ------<br>дописал TPL_ARMOR_L<br>и где Mdl_ApplyOverlayMds прописал (self, "tpll.3ds"); <br>Закомпелировал.Без ошибок.Но когда захожу в игру броня из Готики 1 опять какя-то недоделаная.<br>Если можешь укажи где не правильно?<br>И ты ещё говорил что нужно скачат (gmdk-asc_armor.rar),а куда нужно вставить броньки?<br><br>Добавление от 06/03/05, в 21:53:18 <hr class="hr_agfc">Отозвать запрос(нашёл свою ошибку).
|
Re: Скриптинг в Готике
2Bliz@rd:<br>http://forums.gothic.ag/photos/XyylPex.full.jpg2Bliz@rd:<br>Вот:<br>const int VALUE_TPL_ARMOR_L * *= 1350;<br>INSTANCE Itar_TPL_ARMOR_L(C_Item)<br>{<br> * * name * * * * * * * * * *= *"Легкая броня Тамплиера";<br> * * mainflag * * * * * * * *= * ITEM_KAT_ARMOR;<br> * * flags * * * * * * * * * = * *0;<br> * * protection [PROT_EDGE] *= * 45;<br> * * protection [PROT_BLUNT] = * 45;<br> * * protection [PROT_POINT] = * *5;<br> * * protection [PROT_FIRE] *= * 20;<br> * * protection [PROT_MAGIC] = * *0;<br> * * value * * * * *= VALUE_TPL_ARMOR_L;<br> * * wear * * * * * = WEAR_TORSO;<br> * * visual * * * * = "ItAr_CorAngar.3ds";<br> * * visual_change *= "Hum_TPLL_ARMOR.asc";<br> * * visual_skin * *= 0;<br> * * material * * * = MAT_LEATHER;<br> * * description * *= name; * * * * * * <br> * * TEXT[1] * * * *= NAME_Prot_Edge; * * * * * * * * *<br> * * COUNT[1] * * * = protection [PROT_EDGE];<br> * * TEXT[2] * * * *= NAME_Prot_Point; * * * * * <br> * * COUNT[2] * * * = protection *[PROT_POINT];<br> * * TEXT[3] * * * *= NAME_Prot_Fire; * * * * * * * *<br> * * COUNT[3] * * * = protection * [PROT_FIRE];<br> * * TEXT[4] * * * *= NAME_Prot_Magic; * * * * * <br> * * COUNT[4] * * * = protection * [PROT_MAGIC];<br> * * TEXT[5] * * * *= NAME_Value; * * * * * * * * * * * *<br> * * COUNT[5] * * * = value;<br>};<br><br>там где // ------ visuals ------<br>B_SetNpcVisual (self, MALE, "Hum_Head_Bald", Face_N_Bartholo, BodyTex_N,Itar_TPL_ARMOR_L);<br>и где Mdl_ApplyOverlayMds прописал (self, "tpll.3ds");<br>Это внешняя анимация нпс надо:<br>Mdl_ApplyOverlayMds * * *(self, "xxx");<br>xxx-Humans_Arrogance.mds;<br> * *Humans_Mage.mds;<br> * *Humans_Militia.mds;<br> * *Humans_Relaxed.mds;<br> * *Humans_Tired.mds;<br><br>И ты ещё говорил что нужно скачат (gmdk-asc_armor.rar),а куда нужно вставить броньки?<br><br>У меня g2mdk-small,После разархивации gmdk-asc_armor.rar бросаю содержимое папки gmdk-asc_armor в папку Gothic II :)<br>Надеюсь теперь все понятно ;)<br>
|
Re: Скриптинг в Готике
Спосибо тебе теперь я научился вставлять броньки:<br>Только когда я воспользовался твоим пример,спайсер выдавал ошибку:TPL_Armor_L,<br>но когда я исправил вместо ItAr_TPL_ARMOR_L(C_Item) на TPL_ARMOR_L(C_Item).Всё стало нормально.<br>Ещё хотел задать вопрос: когда вставляешь NPC где нибудь в городе,монастыре понятно.А если я например хочу вставить<br>его где-нибудь в лесу где нет других NPC,то где в статупе нужно прописывать своего NPC?
|
Re: Скриптинг в Готике
У меня возникло несколько вопросов:<br>1)Допустим я в своём моде создал новую гильдию(Например Сопротивленцы).Создал диалоги к ним,присоединяюсь доют там новую броню,но как сделать когда заходишь в "B",чтобы она там отображалась?И как сделать,чтобы к Сопртивленцам относились другии гильдии(например нетрально,враждебно)? <br>2)Где новую гильдию нужно прописывать?<br>3)Как сделать,чтобы напрмер я создал NPC ,а он ко мне присоединился и ходил со мной?<br><br>Добавление от 06/07/05, в 16:50:11 <hr class="hr_agfc">Хочу создать мод,в моде хочу сделать ещё несколько гильдий.Подскажите где и что нужно прописывать,чтобы содать новые гильдии?
|
Re: Скриптинг в Готике
2Bliz@rd:<br>
Цитата:
Цитата:
Цитата:
|
Re: Скриптинг в Готике
Я пытался заменить Gil_OUT на Gil_Templer.<br>Вот что я делал:<br>1)изменил Gil_OUT на Gil_Templer в следующих паках:_intern\Constants,потом Guilds,B_AssignAmbientInfos\B_AssignAmbientI nfos,дальше B_Human\B_AssessFightSound и B_Monster\B_SetMonsterAttitude.<br>2)Вставил Gil_Templer в скрипт своего NPC.<br>3)Закомпелировал,спайсер выдавал ошибки у NPC связанных Gil_OUT.(Что теперь нужно менять у NPC,звязанных с Gil_OUT на другую гильдию)?И ещё когда зашёл в игру и спомощью марвина вселился в NPC(с новой гильдией) то у него вместо Темплера было написано<br>Lardbewohner.Не знаешь почму,может быть что-то не правильно сделал?Если есть ошибка можешь указать?А если можешь напиши пример?
|
Re: Скриптинг в Готике
2Bliz@rd:<br>
Цитата:
Цитата:
|
Re: Скриптинг в Готике
Спосибо,как поменять название гильдий у людей научился,но ты ещё говорил,что можно добавить свою гильдию используя несколько "пустых" гильдий"(у животных).Как их использовать и как сделат чтобы гильдия людей(напрмер маги,паладины,наёмники) впускали(в город,в верхнюю часть города,в монастырь),короче относились так же уважительно как напрмер к магу?
|
Re: Скриптинг в Готике
2Bliz@rd:<br>
Цитата:
Цитата:
|
Re: Скриптинг в Готике
Не мог бы ты написать несколько примеров касательно диалогов:<br>1)Например NPC,которого я созал отвёл меня от башни Ксардаса до Города.<br>2)Чтобы мой NPC присоединился и ходил со мной.<br>Я пытался делать на примере Ларса но ничего не получилось.Напиши очень нужно?
|
Re: Скриптинг в Готике
2Bliz@rd: <br>Слушай, тебя уже один раз отлучили от темы, так ты мало того, что создал бота, так еще и ничуть не изменил манеру поведения: все так же не хочешь ничего делать сам.<br><br>
Цитата:
|
Re: Скриптинг в Готике
Подскажите пожалуста, делал всё по подсказке из другой темы но ничего не получается, я дал Эстебану ключ от его же сундука, и руководство по сборке супер топора, вот:<br>instance BDT_1083_Addon_Esteban(Npc_Default)<br>instance BDT_1083_Addon_Esteban(Npc_Default)<br>{<br> name[0] = "Эстебан";<br> guild = GIL_BDT;<br> id = 1083;<br> voice = 7;<br> flags = 0;<br> npcType = NPCTYPE_BL_MAIN;<br> aivar[AIV_StoryBandit_Esteban] = TRUE;<br> aivar[AIV_StoryBandit] = TRUE;<br> aivar[AIV_NewsOverride] = TRUE;<br> B_SetAttributesToChapter(self,3);<br> fight_tactic = FAI_HUMAN_STRONG;<br> EquipItem(self,ItMw_1h_Sld_Axe);<br> B_CreateAmbientInv(self);<br> B_CreateAmbientInv(self,ITKE_Addon_Esteban_0 1);<br> B_CreateAmbientInv(self,ItWr_Addon_AxtAnleit ung);<br> CreateInvItems(self,ItMi_Addon_Stone_01,5);< br> B_SetNpcVisual(self,MALE,"Hum_Head_Thie f",Face_L_ToughBart_Quentin,BodyTex_L,ItAr_BD T_H);<br> Mdl_SetModelFatness(self,0);<br> Mdl_ApplyOverlayMds(self,"Humans_Arroga nce.mds");<br> B_GiveNpcTalents(self);<br> B_SetFightSkills(self,50);<br> daily_routine = Rtn_Start_1083;<br>};<br><br>Явно чёто не так.<br>Заранее спасибо.
|
Re: Скриптинг в Готике
В папке Dialoge прописал следующее:<br>// ************************************************** **********<br>// EXIT <br>// ************************************************** **********<br>INSTANCE DIA_Chic_Kap1_EXIT(C_INFO)<br>{<br> npc = NONE_666_Chic;<br> nr = 999;<br> condition = DIA_Chic_Kap1_EXIT_Condition;<br> information = DIA_Chic_Kap1_EXIT_Info;<br> permanent = TRUE;<br> description = DIALOG_ENDE;<br>}; <br>FUNC INT DIA_Chic_Kap1_EXIT_Condition()<br>{<br> if (Kapitel == 1)<br> {<br> return TRUE;<br> }; <br>};<br>FUNC VOID DIA_Chic_Kap1_EXIT_Info()<br>{ <br> AI_StopProcessInfos (self);<br>};<br><br>// ************************************************** **********<br>// PICK POCKET<br>// ************************************************** **********<br><br>INSTANCE DIA_Chic_PICKPOCKET (C_INFO)<br>{<br> npc = NONE_666_Chic;<br> nr = 900;<br> condition = DIA_Chic_PICKPOCKET_Condition;<br> information = DIA_Chic_PICKPOCKET_Info;<br> permanent = TRUE;<br> description = Pickpocket_100;<br>}; <br><br>FUNC INT DIA_Chic_PICKPOCKET_Condition()<br>{<br> C_Beklauen (95, 350);<br>};<br> <br>FUNC VOID DIA_Chic_PICKPOCKET_Info()<br>{ <br> Info_ClearChoices (DIA_Chic_PICKPOCKET);<br> Info_AddChoice (DIA_Chic_PICKPOCKET, DIALOG_BACK ,DIA_Chic_PICKPOCKET_BACK);<br> Info_AddChoice (DIA_Chic_PICKPOCKET, DIALOG_PICKPOCKET ,DIA_Chic_PICKPOCKET_DoIt);<br>};<br><br>fun c void DIA_Chic_PICKPOCKET_DoIt()<br>{<br> B_Beklauen ();<br> Info_ClearChoices (DIA_Chic_PICKPOCKET);<br>};<br> <br>func void DIA_Chic_PICKPOCKET_BACK()<br>{<br> Info_ClearChoices (DIA_Chic_PICKPOCKET);<br>};_PICKPOCKET (C_INFO)<br>{<br> npc = NONE_666_Chic;<br> nr = 900;<br> condition = DIA_Chic_PICKPOCKET_Condition;<br> information = DIA_Chic_PICKPOCKET_Info;<br> permanent = TRUE;<br> description = Pickpocket_100;<br>}; <br><br>FUNC INT DIA_Chic_PICKPOCKET_Condition()<br>{<br> C_Beklauen (95, 350);<br>};<br> <br>FUNC VOID DIA_Chic_PICKPOCKET_Info()<br>{ <br> Info_ClearChoices (DIA_Chic_PICKPOCKET);<br> Info_AddChoice (DIA_Chic_PICKPOCKET, DIALOG_BACK ,DIA_Chic_PICKPOCKET_BACK);<br> Info_AddChoice (DIA_Chic_PICKPOCKET, DIALOG_PICKPOCKET ,DIA_Chic_PICKPOCKET_DoIt);<br>};<br><br>fun c void DIA_Chic_PICKPOCKET_DoIt()<br>{<br> B_Beklauen ();<br> Info_ClearChoices (DIA_Chic_PICKPOCKET);<br>};<br> <br>func void DIA_Chic_PICKPOCKET_BACK()<br>{<br> Info_ClearChoices (DIA_Chic_PICKPOCKET);<br>};<br><br>instance DIA_Chic_Forest (C_INFO)<br>{<br> npc = NONE_666_Chic;<br> nr = 9;<br> condition = DIA_Chic_Forest_Condition;<br> information = DIA_Chic_Forest_Info;<br><br> description = "Ты можешь помочь мне дайти до усадьбы Онара? ";<br><br>};<br><br>func void DIA_Chic_Forest_info ()<br>{<br> AI_Output (other, self, "DIA_Chic_RangerHelp_Forest_15_00"); //Ты можешь помочь мне дайти до усадьбы Онара?<br> AI_Output (self, other, "DIA_Chic_RangerHelp_Forest_09_01"); //Хорошо?<br> <br>}; <br>instance DIA_Chic_GoNow (C_INFO)<br>{<br> npc = NONE_666_Chic;<br> nr = 10;<br> condition = DIA_Chic_GoNow_Condition;<br> information = DIA_Chic_GoNow_Info;<br> permanent = TRUE;<br> description = " Okay, пошли. ";<br>};<br>func void DIA_Chic_GoNow_Onar ()<br>{<br> AI_Output (other, self, "DIA_Zaraza_GoNow_Onar_15_00"); // К Onars двор.<br> ChicGuide_ZuOnar = TRUE;<br> Npc_ExchangeRoutine (self, "GUIDE");<br> DIA_Chic_GoNow_GoingConditions (); <br>};<br><br>func void DIA_Chic_GoNow_warte ()<br>{<br> Info_ClearChoices (DIA_Zaraza_GoNow);<br>};<br>Cохранил.Закомпелиров ал в спайсере,он выдаёт несколько(около 5) ошибок.Что я сделал не правильно?Делал по примеру Ларса(многое мог сделать не правильно).
|
Re: Скриптинг в Готике
2TSYLin:<br>
Цитата:
Цитата:
|
Re: Скриптинг в Готике
2Bliz@rd: <br>У тебя в файле НПС
Код:
NONE_666_Chic Код:
Rtn_Guide_666() |
Re: Скриптинг в Готике
Вот скрипт моего диалога(поговорить с Грегом):<br><br>instance None_999_Leo_AskForSword (C_INFO)<br>{<br>npc = None_668_Leo;<br>condition = None_668_Leo_AskForSword_Condition;<br>information = None_668_Leo_AskForSword_Info;<br>important = TRUE; <br>permanent = FALSE;<br>description = ""; <br>}; <br><br>FUNC int None_668_Leo_AskForSword_Condition()<br>{<br>if (hero.level >= 0) <br>{<br>return TRUE; <br>};<br>return FALSE; <br>}; <br><br>func void None_668_Leo_AskForSword_Info()<br>{<br>AI_Output ( self, other, "None_668_Leo_AskForSword_Info_8_01") ; // Эй, ты занят ? <br><br>Info_ClearChoices (None_668_Leo_AskForSword);<br>Info_AddChoice (None_668_Leo_AskForSword, "Нет, а что?",<br>None_668_Leo_AskForSword_Yes);<br>I nfo_AddChoice (None_668_Leo_AskForSword, "Боюсь, что да",<br>None_668_Leo_AskForSword_No); <br>}; <br><br>Func void None_668_Leo_AskForSword_No () <br>{<br>AI_Output(other,self, "None_668_Leo_AskForSword_Info_8_02") ; // Я занят... <br>AI_Output(self,other, "None_668_Leo_AskForSword_Info_8_03") ; //(Перебивает)Ну и вали отсюда... <br>AI_StopProcessInfos (self); <br>}; <br> <br>func void None_668_Leo_AskForSword_Yes () <br>{<br>AI_Output(other,self,"None_668_Leo_A skForSword_Info_8_04"); // Да,вроде,нет.<br>AI_Output(self,other,"None_6 68_Leo_AskForSword_Info_8_05"); // Тогда принеси мне Нужно чтобы ты поговорил с Грегом.<br><br>Log_CreateTopic (GunthersSword,LOG_MISSION);<br>Log_SetTopicStatus (GunthersSword,LOG_SUCCESS);<br>B_LogEntry(Gunther sSword, "Лео попросил меня поговорить с Грегом"); <br>AI_StopProcessInfos (self); <br>}; <br><br><br><br>// ************************ EXIT **************************<br>instance None_668_Leo_AskForSword_Exit (C_INFO)<br>{<br>npc = None_668_Leo;<br>condition = None_668_Leo_AskForSword_Exit_Condition; <br>information = None_668_Leo_AskForSword_Exit_Info;<br>important = 0;<br>permanent = 1; <br>description = "конец"; <br>}; <br><br>FUNC int None_668_Leo_AskForSword_Exit_Condition() <br>{<br>return 1; <br>}; <br><br>FUNC VOID None_668_Leo_AskForSword_Exit_Info() <br>{<br>AI_StopProcessInfos ( self ); <br>}; <br><br>instance None_668_Leo_BringSword (C_INFO) <br>{<br>npc = None_668_Leo;<br>condition = None_668_Leo_bringSword_Condition; <br>information = None_668_Leo_bringSword_Info; <br>important = FALSE; <br>permanent = TRUE; <br><br>description = "Я поговорил с ним?"; <br>}; <br><br>FUNC int None_668_Leo_bringSword_Condition() <br>{ <br><br>if (Npc_KnowsInfo ( hero, None_668_Leo_AskForSword) <br>&! int_GotSword && Npc_HasItems (other, PlayerTalkedToGreg) >= 1) <br>{<br>return TRUE;<br>};<br>return FALSE;<br>}; <br><br>func void None_668_Leo_bringSword_Info()<br><br>{ <br>Info_ClearChoices (None_668_Leo_bringSword); <br><br>Info_AddChoice (None_668_Leo_bringSword, <br>"Я поговорил, но он просил ничего не говорить тебе", <br>None_999_Leo_bringSword_Yes); <br> <br>Info_AddChoice (None_668_Leo_bringSword, <br>"Он всё рассказал.", <br>None_668_Leo_bringSword_No); <br>}; <br><br><br>func void None_668_Leo_bringSword_Yes () <br>{<br>AI_Output( other, self, "None_668_Leo_bringSword_Info_8_06"); //Я так не думаю. <br>AI_Output( self, other, "None_668_Leo_bringSword_Info_8_07"); // Тогда получи!?! <br>AI_StopProcessInfos (self); <br>AI_StartState( self, ZS_Attack, 0, ""); <br>}; <br><br>func void None_668_Leo_bringSword_No () <br>{<br>AI_Output ( other, self, "None_999_Leo_bringSword_Info_8_08"); // Да я поговорил и он мне всё рассказал. <br>AI_Output ( self, other, "None_999_Leo_bringSword_Info_8_09"); // Великолепно, а это мой подарок тебе - Яблоко.(смеется)<br><br>B_LogEntry (GunthersSword, "");<br><br>other.exp = other.exp + 100; <br>other.lp = other.lp + 2; <br>b_giveinvitems(other,self, ItFo_Fish,1);<br>b_giveinvitems(self,other,ItFo_Ap ple,1);<br>AI_StopProcessInfos (self); <br>}; <br>Потом в паке Story_Globals прописал var int PlayerTalkedToGreg;Спайсер выдавал ошибку NONE_668_Leo_AskForSword.<br>Что я сделад н6е правильно?<br>Делал по примеру принести меч.И ещё там где написано B_LogEntry (GunthersSword, "");что нужно написать?<br>
|
Re: Скриптинг в Готике
2Bliz@rd:<br>
Цитата:
Цитата:
|
Re: Скриптинг в Готике
В моём скрипте я изменил там где B_LogEntry стало B_LogEntry (GunthersSword, "Поговорить с Грегом");А вместо Npc_HasItems (other, PlayerTalkedToSkip) >= 1) что нужно поставить в моём случае? И ещё в папке Story_Globals поставил в конце <br>const string GregforLeo = "Поговоритиь с Грегом";<br>var int int_GotGreg <br>это правильно?
|
Re: Скриптинг в Готике
2Bliz@rd:<br>А вместо Npc_HasItems (other, PlayerTalkedToSkip) >= 1) что нужно поставить в моём случае?<br><br>Вот это неправильно, надо ,например:Npc_HasItems (other,ItFo_Cheese)>=1,при квестах это проверка на нужный предмет,если его нету,то и миссию завершить нельзя.<br>PS:Тебе столько раз объясняли, уххх :)
|
Re: Скриптинг в Готике
2Vam: <br>Камрад есть вопрос! Можно ли в готике 2 сделать, чтоб непись до разговора с ней называлась, например стража, а как поговоришь с ним (и он представится), то назывался уже Пабло?<br>Я с таким встречался в Готике 1! Кажется, когда первый раз видишь Таррока(орка-раба в Новой шахте), то написано Орк-раб!, а после разговора уже Таррок!<br><br>Если это возможно, то приведи пример функции пожалуйста! Заранее спасибо!
|
Re: Скриптинг в Готике
2Jeene: <br>А простое
Код:
self.name[0] = "Пабло" |
Re: Скриптинг в Готике
Я немного изменил скрипт:<br><br>instance None_668_Leo_AskForSword (C_INFO)<br>{<br>npc = None_668_Leo;<br>condition = None_668_Leo_AskForSword_Condition;<br>information = None_668_Leo_AskForSword_Info;<br>important = TRUE; <br>permanent = FALSE;<br>description = ""; <br>}; <br><br>FUNC int None_668_Leo_AskForSword_Condition()<br>{<br>if (hero.level >= 0) <br>{<br>return TRUE; <br>};<br>return FALSE; <br>}; <br><br>func void None_668_Leo_AskForSword_Info()<br>{<br>AI_Output ( self, other, "None_668_Leo_AskForSword_Info_8_01") ; // Эй, ты занят ? <br><br>Info_ClearChoices (None_668_Leo_AskForSword);<br>Info_AddChoice (None_668_Leo_AskForSword, "Нет, а что?",<br>None_668_Leo_AskForSword_Yes);<br>I nfo_AddChoice (None_668_Leo_AskForSword, "Боюсь, что да",<br>None_668_Leo_AskForSword_No); <br>}; <br><br>Func void None_668_Leo_AskForSword_No () <br>{<br>AI_Output(other,self, "None_668_Leo_AskForSword_Info_8_02") ; // Я занят... <br>AI_Output(self,other, "None_668_Leo_AskForSword_Info_8_03") ; //(Перебивает)Ну и вали отсюда... <br>AI_StopProcessInfos (self); <br>}; <br> <br>func void None_668_Leo_AskForSword_Yes () <br>{<br>AI_Output(other,self,"None_668_Leo_A skForSword_Info_8_04"); // Да,вроде,нет.<br>AI_Output(self,other,"None_6 68_Leo_AskForSword_Info_8_05"); // Тогда принеси мне Нужно чтобы ты поговорил с Грегом.<br><br>Log_CreateTopic (GunthersSword,LOG_MISSION);<br>Log_SetTopicStatus (GunthersSword,LOG_SUCCESS);<br>B_LogEntry(Gunther sSword, "Лео попросил меня поговорить с Грегом"); <br>AI_StopProcessInfos (self); <br>}; <br><br><br><br>// ************************ EXIT **************************<br>instance None_668_Leo_AskForSword_Exit (C_INFO)<br>{<br>npc = None_668_Leo;<br>condition = None_668_Leo_AskForSword_Exit_Condition; <br>information = None_668_Leo_AskForSword_Exit_Info;<br>important = 0;<br>permanent = 1; <br>description = "конец"; <br>}; <br><br>FUNC int None_668_Leo_AskForSword_Exit_Condition() <br>{<br>return 1; <br>}; <br><br>FUNC VOID None_668_Leo_AskForSword_Exit_Info() <br>{<br>AI_StopProcessInfos ( self ); <br>}; <br><br>instance None_668_Leo_BringSword (C_INFO) <br>{<br>npc = None_668_Leo;<br>condition = None_668_Leo_bringSword_Condition; <br>information = None_668_Leo_bringSword_Info; <br>important = FALSE; <br>permanent = TRUE; <br><br>description = "Я поговорил с ним?"; <br>}; <br><br>FUNC int None_668_Leo_bringSword_Condition() <br>{ <br><br>if (Npc_KnowsInfo ( hero, None_668_Leo_AskForSword) <br>{<br>return TRUE;<br>};<br>return FALSE;<br>}; <br><br>func void None_668_Leo_bringSword_Info()<br><br>{ <br>Info_ClearChoices (None_668_Leo_bringSword); <br><br>Info_AddChoice (None_668_Leo_bringSword, <br>"Я поговорил, но он просил ничего не говорить тебе", <br>None_668_Leo_bringSword_Yes); <br> <br>Info_AddChoice (None_668_Leo_bringSword, <br>"Он всё рассказал.", <br>None_668_Leo_bringSword_No); <br>}; <br><br><br>func void None_668_Leo_bringSword_Yes () <br>{<br>AI_Output( other, self, "None_668_Leo_bringSword_Info_8_06"); //Я так не думаю. <br>AI_Output( self, other, "None_668_Leo_bringSword_Info_8_07"); // Тогда получи!?! <br>AI_StopProcessInfos (self); <br>AI_StartState( self, ZS_Attack, 0, ""); <br>}; <br><br>func void None_668_Leo_bringSword_No () <br>{<br>AI_Output ( other, self, "None_668_Leo_bringSword_Info_8_08"); // Да я поговорил и он мне всё рассказал. <br>AI_Output ( self, other, "None_668_Leo_bringSword_Info_8_09"); // Великолепно, а это мой подарок тебе - Яблоко.(смеется)<br><br>B_LogEntry (GunthersSword, "Поговорить с Грегом");<br><br>other.exp = other.exp + 100; <br>other.lp = other.lp + 2; <br>b_giveinvitems(self,other,ItFo_Apple,1);<br>AI _StopProcessInfos (self); <br>}; <br>А в Story_Globals прописал const string GunthersSword = "Поговорить с Грегом";<br>var int int_GotSword;<br>Закомпелировал.Выдал одну ошибку U:PAR:Missing')'(line 87).С чем связана эта ошибка?<br>И ещё когда захожу в игру и на чинаю говорить с NPC то сразу появляется только выбор (Я занят и Да,вроде,нет).И запись в дневнике появляется.Всё.Разговоров никаких нету.Почему?
|
Re: Скриптинг в Готике
]2TycoooN:
Цитата:
|
Re: Скриптинг в Готике
2Bliz@rd:<br>
Цитата:
Цитата:
|
Re: Скриптинг в Готике
2Bliz@rd:<br>И ещё когда захожу в игру и на чинаю говорить с NPC то сразу появляется только выбор (Я занят и Да,вроде,нет).И запись в дневнике появляется.Всё.Разговоров никаких нету.Почему?<br><br>Потому что надо спейсером получить после апдейта новый OU.bin and Ou.csl,смотри тему Русская дока по Spacer II
|
Re: Скриптинг в Готике
2Bliz@rd: <br>[q]Выдал одну ошибку U:PAR:Missing')'(line 87)[/q]<br>Ты что, невменяемый? Там английским языком написано
Код:
U:PAR:Пропущено')'(линия 87) Цитата:
Цитата:
Код:
AI_Output() |
Re: Скриптинг в Готике
2TycoooN:
Цитата:
|
Re: Скриптинг в Готике
Вот мой скрипт (Убить Вино):<br>instance None_666_Leo_AskForSword (C_INFO)<br>{<br>npc = None_666_Leo;<br>condition = None_666_Leo_AskForSword_Condition;<br>information = None_666_Leo_AskForSword_Info;<br>important = TRUE; <br>permanent = FALSE;<br>description = ""; <br>}; <br><br>FUNC int None_666_Leo_AskForSword_Condition()<br>{<br>if (hero.level >= 0) <br>{<br>return TRUE; <br>};<br>return FALSE; <br>}; <br><br>func void None_666_Leo_AskForSword_Info()<br>{<br>AI_Output ( self, other, "None_666_Leo_AskForSword_Info_8_01") ; // Эй, ты занят ? <br><br>Info_ClearChoices (None_666_Leo_AskForSword);<br>Info_AddChoice (None_666_Leo_AskForSword, "Нет, а что?",<br>None_666_Leo_AskForSword_Yes);<br>I nfo_AddChoice (None_666_Leo_AskForSword, "Боюсь, что да",<br>None_666_Leo_AskForSword_No); <br>}; <br><br>Func void None_666_Leo_AskForSword_No () <br>{<br>AI_Output(other,self, "None_666_Leo_AskForSword_Info_8_02") ; // Я занят... <br>AI_Output(self,other, "None_666_Leo_AskForSword_Info_8_03") ; //(Перебивает)Ну и вали отсюда... <br>AI_StopProcessInfos (self); <br>}; <br> <br>func void None_666_Leo_AskForSword_Yes () <br>{<br>AI_Output(other,self,"None_666_Leo_A skForSword_Info_8_04"); // Да,вроде,нет.<br>AI_Output(self,other,"None_6 66_Leo_AskForSword_Info_8_05"); // Тогда убей 'Вино'.<br><br>Log_CreateTopic (TOPIC_KillVino, LOG_MISSION);<br>Log_SetTopicStatus (TOPIC_KillVino, LOG_RUNNING);<br>B_LogEntry(TOPIC_KillVino, "Зараза попросил меня убить 'Вино'); <br>AI_StopProcessInfos (self); <br>}; <br><br><br><br>// ************************ EXIT **************************<br>instance None_666_Leo_AskForSword_Exit (C_INFO)<br>{<br>npc = None_666_Leo;<br>condition = None_666_Leo_AskForSword_Exit_Condition; <br>information = None_666_Leo_AskForSword_Exit_Info;<br>important = 0;<br>permanent = 1; <br>description = "конец"; <br>}; <br><br>FUNC int None_666_Leo_AskForSword_Exit_Condition() <br>{<br>return 1; <br>}; <br><br>FUNC VOID None_666_Leo_AskForSword_Exit_Info() <br>{<br>AI_StopProcessInfos ( self ); <br>}; <br>INSTANCE DIA_Leo_VinoDead (C_INFO)<br>{<br> npc = NONE_666_Leo;<br> nr = 8;<br> condition = DIA_Leo_HoshDead_Condition;<br> information = DIA_Leo_HoshDead_Info;<br> permanent = FALSE;<br> description = "мертв!";<br>};<br><br>FUNC INT DIA_Leo_VinoDead_Condition()<br>{<br> if (Npc_IsDead (Vino))<br> && (MIS_KillVino == LOG_RUNNING)<br> {<br> return TRUE;<br> }; <br>};<br><br>FUNC VOID DIA_Leo_VinoDead_Info()<br>{<br> AI_Output (other,self ,"DIA_Leo_VinoDead_8_06"); //мертв!<br> AI_Output (self ,other,"DIA_Leo_VinoDead_8_07"); //Вероятно, мы имеем, все же, еще шанс.<br> AI_Output (self ,other,"DIA_Leo_VinoDead_8_08"); //Я думаю, это даст нам отсрочку от минимум одной недели.<br> <br> MIS_KillVino = LOG_SUCCESS;<br> <br>};<br>То что я написал это правильно?И ещё что нужно прописывать в папке<br>Story_Globals касательно моего диалога?
|
Re: Скриптинг в Готике
Объясните чё не так:<br>instance ITAR_DHT(C_Item)<br>{<br> name = "Доспехи из чушии легендарного ящера";<br> mainflag = ITEM_KAT_ARMOR;<br> flags = 0;<br> protection[PROT_EDGE] = 70;<br> protection[PROT_BLUNT] = 70;<br> protection[PROT_POINT] = 70;<br> protection[PROT_FIRE] = 0;<br> protection[PROT_MAGIC] = 0;<br> value = VALUE_ITAR_Thorus_Addon;<br> wear = WEAR_TORSO;<br> visual = "ItAr_Thorus_ADDON.3ds";<br> visual_change = "Armor_DHT.asc";<br> visual_skin = 0;<br> material = MAT_LEATHER;<br> description = name;<br> text[1] = NAME_Prot_Edge;<br> count[1] = protection[PROT_EDGE];<br> text[2] = NAME_Prot_Point;<br> count[2] = protection[PROT_POINT];<br> text[3] = NAME_Prot_Fire;<br> count[3] = protection[PROT_FIRE];<br> text[4] = NAME_Prot_Magic;<br> count[4] = protection[PROT_MAGIC];<br> text[5] = NAME_Value;<br> count[5] = value;<br>};<br><br>Аск файл я делал из доспехов Торуса, только изменил текстуру.<br>Но вот оптекается 3Д-модель доспехов из ползунов.
|
Re: Скриптинг в Готике
2TSYLin:<br>Аск файл я делал из доспехов Торуса, только изменил текстуру.<br>Но вот оптекается 3Д-модель доспехов из ползунов.<br>Но эта аск не доспех ползунов Armor_DHT.asc,а вот это она <br>Armor_Djg_Crawler.asc.Поэто может она оптекается,если я правильно понял.<br>
|
Текущее время: 23:07. Часовой пояс GMT +4. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
AGFC: Valley of Gothic © 2004-2022