|
|
06.10.2005, 19:09
|
#962
|
|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Скриптинг в Готике
2ХуулРех:
чем заменить NONE_ADDON_111_Quarhodron?
|
Просто hero ::)
|
|
|
06.10.2005, 20:57
|
#965
|
|
Re: Скриптинг в Готике
2DEDROIT: Npc_RemoveInvItems(self,вещь,колличество); Вот допустим удалим из ивентаря 2 куска руды во время диалога Npc_RemoveInvItems(self,ItMi_Nugget,2);!!Если непонятно спрашивай!Удачи! Блин,забыл дописать Npc_,вот что значит на время забросить скриптинг,Спасибо. :) ЗЫ:Никто не знает,как поменять текстуру головы ГГ при одевании кольца,амулета?
|
|
|
07.10.2005, 13:59
|
#967
|
|
Re: Скриптинг в Готике
Подскажите,как можно проверить одето ли кольцо? И еще,это : [pre]Mdl_SetVisualBody(self,"hum_body_Naked0",9,0, "Hum_Head_Pony",Face_N_Player,0,NO_ARMOR); [/pre] Face_N_Player- номер текстуры головы ГГ,но вот текстура головы ГГ HUM_HEAD_V18_C0-C.TEX.Как понять какую текстуру головы "одеваешь"?
|
|
|
07.10.2005, 18:00
|
#968
|
|
Re: Скриптинг в Готике
2ХуулРех:
Подскажите,как можно проверить одето ли кольцо?
|
Заводишь переменную, при одевании кольца прсваиваешь ей TRUE, а при снятии FALSE и где нужно проверяешь, какое она имеет значение, вот и всё. ;D
|
|
|
07.10.2005, 19:48
|
#970
|
|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Скриптинг в Готике
2ХуулРех:
Есть ли функция снимающая кольцо или все что одето на ГГ?
|
Я нашел только одну подобную фукнцию:
Код:
void AI_UnequipWeapons (c_npc self); - все экипированное оружие НПС self убирается в инвентарь.
Не знаю, подойдет ли ::)
|
|
|
07.10.2005, 21:56
|
#971
|
|
Re: Скриптинг в Готике
2ХуулРех:
2TycoooN: AI_UnequipWeapons (c_npc self); - все экипированное оружие НПС self убирается в инвентарь.
|
AI_UnequipArmor (c_npc self); - одетые доспехи НПС self убираются в инвентарь.
Есть ли функция снимающая кольцо или все что одето на ГГ?
|
Такой не замечал, если кто найдет - скажите плиз... 2DEDROIT:
только в орка у него не получилось
|
На самом деле все очень просто, TSYlin подсказал мне как исправить эту ошибку. Нужно перед превращением снять доспехи.
|
|
|
09.10.2005, 22:18
|
#972
|
|
Re: Скриптинг в Готике
Во какая лабуда: Функция "Npc_KnowsInfo" не работает! Или через раз работает! Элементарный скрипт, а на тебе!
instance DIA_Addon_HammerPirate_Privet(C_Info) { * * *npc = PIR_1360_Addon_PIRAT; * * *nr = 10; * * *condition = DIA_Addon_HammerPirate_Privet_Condition; * * *information = DIA_Addon_HammerPirate_Privet_Info; * * *permanent = TRUE; * * *description = "Как дела?"; };
func int DIA_Addon_HammerPirate_Privet_Condition() { * * *return TRUE; };
func void DIA_Addon_HammerPirate_Privet_Info() { * * *AI_Output(other,self,"DIA_Addon_HammerPirate_Priv et_15_00"); * * *//Как дела? * * *AI_Output(self,other,"DIA_NM_HammerPirate_Privet_ 07_00"); * * *//Осточертело все! };
instance DIA_Addon_HammerPirate_Anheuern(C_Info) { * * *npc = PIR_1360_Addon_PIRAT; * * *nr = 11; * * *condition = DIA_Addon_HammerPirate_Anheuern_Condition; * * *information = DIA_Addon_HammerPirate_Anheuern_Info; * * *permanent = TRUE; * * *description = "Ты должен мне помочь!"; };
func int DIA_Addon_HammerPirate_Anheuern_Condition()
* * *{ * * * * * *return TRUE; * * *};
func void DIA_Addon_HammerPirate_Anheuern_Info() { * * *AI_Output(other,self,"DIA_NM_HammerPirate_Anheuer n_15_00");//Ты должен мне помочь! * * *AI_Output(self,other,"DIA_NM_HammerPirate_Anheuer n_07_02");//Я? Нафига мне эти заморочки!... };
//************************************ instance DIA_NM_HammerPirate_Alkohol(C_Info) { * * *npc = PIR_1360_Addon_PIRAT; * * *nr = 15; * * *condition = DIA_NM_HammerPirate_Alkohol_Condition; * * *information = DIA_NM_HammerPirate_Alkohol_Info; * * *permanent = TRUE; * * *description = "Выпить хочешь?"; };
func int DIA_NM_HammerPirate_Alkohol_Condition() { * * * * * * * * * *if((Npc_HasItems(other,ItFo_Pogan) >= 1) && Npc_KnowsInfo(other,DIA_Addon_HammerPirate_Privet) ) * * *{ * * * * * *return TRUE; * * *}; * * *return FALSE; };
func void DIA_NM_HammerPirate_Alkohol_Info() { * * *AI_Output(other,self,"DIA_NM_HammerPirate_Alkohol _15_00"); * * *//Выпить хочешь? * * *AI_Output(self,other,"DIA_NM_HammerPirate_Alkohol _09_01"); * * *//Да! Давай скорее! * * *B_GiveInvItems(other,self,ItFo_Pogan,1); * * *CreateInvItems(self,ItFo_Pogan,1); * * *AI_UseItem(self,ItFo_Pogan); * * *AI_Output(self,other,"DIA_Addon_HammerPirate_Anhe uern_09_02");// Будет еще, приноси! * * *B_GivePlayerXP(XP_NM_Pogan); };
Та вот на DIA_Addon_HammerPirate_Privet не работает, а на DIA_Addon_HammerPirate_Anheuern работает!
|
|
|
10.10.2005, 01:04
|
#974
|
|
|
|
|
Регистрация: 19.06.2004
Адрес: г. Белая Калитва.
Сообщений: 204
|
|
|
|
|
|
Re: Скриптинг в Готике
2DEDROIT: Ну а каким боком это затрагивает само появление диалога? Эти недочеты только повлияли б на воспроизводимый звук.
|
|
|
10.10.2005, 12:18
|
#976
|
|
|
|
|
A.G.F.C.
Регистрация: 02.09.2005
Сообщений: 6
|
|
|
|
|
|
Re: Скриптинг в Готике
Цитата:
Сообщение от basilio58 link=board=gothic&t=1105030050&start=950#971 date=10/09/05, в 21:18:01
Во какая лабуда: Функция "Npc_KnowsInfo" не работает! Или через раз работает! Элементарный скрипт, а на тебе!
|
Исходя из своего небогатого опыта, могу сказать, что для корректной работы функции NPC_KnowsInfo требуется, чтобы параметр диалога permanent был равен FALSE. Честно говоря, не знаю, как именно реализована эта функция, но что для нее permanent нужно ставить в FALSE, и что она возвращает TRUE только когда диалог c флагом permanent=FALSE "отработал" - это точно. Добавление от 10/10/05, в 11:26:02
Вдогонку:
Та вот на DIA_Addon_HammerPirate_Privet не работает, а на DIA_Addon_HammerPirate_Anheuern работает!
|
DIA_Addon_HammerPirate_Anheuern - в condition-функции этого диалога никаких доп. условий нет, она просто возвращает TRUE; отсюда - этот диалог будет доступен без особых проблем (всегда). DIA_Addon_HammerPirate_Privet - в condition-функции данного диалога есть условия на наличие предмета и на "отработку" другого диалога. Так вот, чтобы проверка с помощью NPC_KnowsInfo сработала, тот "другой" диалог нужно сделать не постоянным (permanent = FALSE). Это должно решить проблему. Другой вопрос, если по логике сюжета/диалогов тот диалог, на который мы делаем проверку функцией NPC_KnowsInfo должен быть доступен всегда (не исчезать после "отработки"). В этом случае придется завести переменную, в которой будет отражаться, отработал диалог хоть один раз или нет (например, var_DIA_PirateHowAreYou = TRUE). Успехов в модостроении. :) Добавление от 10/10/05, в 11:28:05
Опять вдогонку :(
Другой вопрос, если по логике сюжета/диалогов тот диалог, на который мы делаем проверку функцией NPC_KnowsInfo должен быть доступен всегда (не исчезать после "отработки"). В этом случае придется завести переменную, в которой будет отражаться, отработал диалог хоть один раз или нет (например, var_DIA_PirateHowAreYou = TRUE).
|
И проверять этот диалог уже не функцией NPC_KnowsInfo (она не сработает как надо), а через проверку переменной на TRUE/FALSE.
|
|
|
10.10.2005, 16:06
|
#977
|
|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Скриптинг в Готике
2Killer-XXX:
Эти недочеты только повлияли б на воспроизводимый звук.
|
Да и на звук не повлияли бы. если бы звуковые файлы были соответствующим образом названы. 2DEDROIT:
Повинимательнее надо быть!
|
Не знаешь - не кричи ;D
|
|
|
10.10.2005, 16:48
|
#981
|
|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Скриптинг в Готике
2DEDROIT:
А кто кричал,я просто указал на недочё то которые были сделаны
|
Там не было недочетов в том месте, где ты указал. Называть диалог можно как угодно, от этого ничего не изменится. 2Anetor:Запомни: прога от Vam'a - хорошо, спейсер - плохо :) Так что поюзай декомпилятор, там и разберемся... Добавление от 10/10/05, в 15:50:34 2DEDROIT:
Если хош могу прислать те уже исправленный от ошибок?
|
Декомпилятор? Исправленный? От ошибок? Это как?
|
|
|
10.10.2005, 17:29
|
#983
|
|
|
|
|
Регистрация: 19.06.2004
Адрес: г. Белая Калитва.
Сообщений: 204
|
|
|
|
|
|
Re: Скриптинг в Готике
2marazmus: Ну ты куда то в дебри полез, тру, не тру ;) Будем ждать Vam'а для разбора полетов, он то точно ответит.
2DEDROIT: Ну так и грил бы - правленные скрипты, а то декомпилятор, я уж подумал что то пропустил :)
|
|
|
10.10.2005, 18:43
|
#985
|
|
Re: Скриптинг в Готике
Функция "Npc_KnowsInfo" не работает! Или через раз работает!
|
Мarazmus прав - функция Npc_KnowsInfo может выдать инфу только об однократном диалоге (permanent = FALSE) или о диалоге, который предшествовал вызову этой функции (вне зависимости от его типа), но флаг постоянного диалога сохранен не будет.
|
|
|
10.10.2005, 20:43
|
#988
|
|
Re: Скриптинг в Готике
Цитата:
Сообщение от Killer-XXX link=board=gothic&t=1105030050&start=950#973 date=10/10/05, в 00:04:18
2DEDROIT: Ну а каким боком это затрагивает само появление диалога? Эти недочеты только повлияли б на воспроизводимый звук.
|
Ну правильно, это только название файла звука (диалога) можно хоть blablabla_15_00. instance то: DIA_Addon_HammerPirate_Privet ;) Добавление от 10/10/05, в 19:51:24
Цитата:
Сообщение от marazmus link=board=gothic&t=1105030050&start=975#975 date=10/10/05, в 11:18:28
|
И проверять этот диалог уже не функцией NPC_KnowsInfo (она не сработает как надо), а через проверку переменной на TRUE/FALSE.
|
Спасибо за своевременный совет! ;) Я собственно так и делал, просто подумал, мало ли какие глюки... ;D
|
|
|
12.10.2005, 11:53
|
#990
|
|
Re: Скриптинг в Готике
2Anetor:
1 (hero.guild == GIL_NOV) Диалог будет дан только в том случае если ГГ будет NOV.
|
Да.
2 (Npc_KnowsInfo (other,DIA_Sqperty_MYSTER)) Диалог начнется после того как ГГ поговорит с npc о Диалоге (DIA_Sqperty_MYSTER).
|
Если это условие расположено внутри функции диалога, то да.
3 (other.guild == GIL_NOV) ((( Это тоже что и 1)))).
|
Только в том случае, если это условие расположено внутри функции диалога.
4 (Npc_KnowsInfo (hero,DIA_Sqperty_MYSTER)) ((( Это тоже что и 2)))).
|
Это условие в любом случае проверяет, говорил ли ГГ диалог DIA_Sqperty_MYSTER. Вообще тебе необходимо более подробно разобраться в использование глобальных переменных self, hero, other и victim. Их нельзя путать, на их использовании построен практически весь алгоритм скриптов.
|
|
|
12.10.2005, 15:16
|
#991
|
|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Скриптинг в Готике
2Anetor:
Диалог будет дан только в том случае если ГГ будет NOV.
|
Диалог начнется после того как ГГ поговорит с npc о Диалоге
|
Так говорить некорректно, т.к. это выражение не обязательно должно стоять в условии в функции condition инстанции c_info. Правильно говорить "верно только в том случае если ГГ будет NOV" и пр. :)
|
|
|
17.10.2005, 17:39
|
#993
|
|
Re: Скриптинг в Готике
2FreeSergey:
Именно в момент начала пиления? Как это сделать?
|
Ну будет не в момент начала пиления, а максимум на секунду позже. Не проверял, но должно работать. Сделать бага, который сидит у бревна и постоянную процедуру ему, например ZS_MM_Rtn_Baumsaege. Цикл обработки: [pre] func int ZS_MM_Rtn_Baumsaege_Loop() { if (Npc_GetStateTime(self) >= 1) { Npc_SetStateTime (self, 0); if (Npc_GetBodyState (hero) == BS_MOBINTERACT_INTERRUPT) // герой что-то делает { var string DetMob; DetMob = Npc_GetDetectedMob(hero); if (Hlp_StrCmp (DetMob, "BAUMSAEGE")) // у бревна { if (PLAYER_MOBSI_PRODUCTION == MOBSI_NONE) // и мы не стартанули этот диалог раньше { hero.aivar[AIV_INVINCIBLE] = TRUE; PLAYER_MOBSI_PRODUCTION = MOBSI_SawSomething; // этот код надо будет добавить AI_ProcessInfos (hero); }; }; }; }; }; [/pre] Хотя, какие-то проблемы, наверно, будут ;) Возможно в конце диалога надо будет что-нибудь вроде AI_StandUp добавить, чтобы героя от бревна оттащить - это все надо пробовать.
|
|
|
19.10.2005, 16:49
|
#995
|
|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Скриптинг в Готике
2Tate: Критический удар вообще ничего не плюсует. Он всего лишь позволяет нанести урон, равный номинальному урону оружия, т.е.
Код:
УРОН = СИЛА_НПС + УРОН_ОРУЖИЯ - БРОНЯ_ПРОТИВНИКА
.
|
|
|
22.10.2005, 12:30
|
#996
|
|
Re: Скриптинг в Готике
2TycoooN:
Критический удар вообще ничего не плюсует. Он всего лишь позволяет нанести урон, равный номинальному урону оружия, т.е. УРОН = СИЛА_НПС + УРОН_ОРУЖИЯ - БРОНЯ_ПРОТИВНИКА.
|
Некритический удар УРОН = УРОН_ОРУЖИЯ - БРОНЯ, Критический УРОН = СИЛА_НПС + УРОН_ОРУЖИЯ - БРОНЯ то есть прибавляет к удару силу НПС, а дальнобойное - ловкость. В чем я не прав? ЗЫ. Впрочем я разобрался - оружие плюсует силу, даже если требует ловкость, дальнобойное в любом случае ловкость.
|
|
|
22.10.2005, 15:29
|
#997
|
|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Скриптинг в Готике
2Tate:
Некритический удар УРОН = УРОН_ОРУЖИЯ - БРОНЯ,Критический УРОН = СИЛА_НПС + УРОН_ОРУЖИЯ - БРОНЯ то есть прибавляет к удару силу НПС, а дальнобойное - ловкость. В чем я не прав?
|
Некритический удар:
Код:
УРОН = (СИЛА_НПС + УРОН_ОРУЖИЯ - БРОНЯ_ПРОТИВНИКА - 1) / 10
Критический удар:
Код:
УРОН = СИЛА_НПС + УРОН_ОРУЖИЯ - БРОНЯ_ПРОТИВНИКА
|
|
|
24.10.2005, 10:19
|
#999
|
|
Re: Скриптинг в Готике
2Отец Левонтий:
Такой вопрос: а где лежат скрипты и как они называются, в которых лежат фукции урона?
|
Таких функций в скриптах нет, это "зашито" в движке.
|
|
|
Здесь присутствуют: 2 (пользователей: 0 , гостей: 2)
|
|
Опции темы |
Поиск в этой теме |
|
|
Ваши права в разделе
|
|
|
|
Текущее время: 14:55. Часовой пояс GMT +4.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|