![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#3336
|
|
Level 3 ![]() Класс: Некромант Характер: Chaotic Evil Раса: Эльф ![]() |
Большое всем спасибо за помощь и потраченное время.
Dik Morris - да я все именно так написал как было сказано в постах выше. сейчас детально изучу твой модуль и попробую разобраться. я так понял при нажатии происходит тот же спавн, просто все выглядит по другому. спасибо кстати за это. плохо быть чайником... (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif) (IMG:style_emoticons/kolobok_light/unsure.gif) |
![]()
Сообщение
#3337
|
|
Level 2 ![]() Класс: Клерик Характер: Chaotic Good Раса: Полуэльф ![]() |
Цитата(Dik Morris @ Jun 25 2007, 15:30) [snapback]109877[/snapback] 2 Teranozavr_REX, на будущее. Что бы знать какую использовать функцию в той или иной ситуации, будь то инициализация игрока, аль просто нужная операция, проще всего - заглянуть в Лексикон. Там они подробно рассортированы, каждая функция, к каждому эвенту. Можно так же прописать в фильтре, непосредственно в самом тулсете. Лексикон, Лексикон, Лексикон... Все говорят о лексиконе, но что-то не разу не видел что-нить конкретное. Прямо как снежный человек- все о нём знают, но никто не видел вживую. Может мне кто-нибудь разьяснить, где прячется этот чёртов лексикон?! |
![]()
Сообщение
#3338
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
2 Worldowner, он прячется в этих краях, и найти его, можно набрав в поиске слово: Lexicon.
|
![]()
Сообщение
#3339
|
|
Level 3 ![]() Класс: Некромант Характер: Chaotic Evil Раса: Эльф ![]() |
Почитал я лексикон - довольно таки понятно там написано. Даже первый "go fetch" квест зделал. работает. однако тут же появилась проблемка. дело в том ято я хотел зделать, чтобы НПС подходил и просил о помощи (то есть давал этот квест самый) именно тогда когда ПС наступит на триггер вокруг НПС. как в самом начале Кампании, где после наступления на триггер подходит Павел и начинает трындеть.
вобщем я поковырялся вроде нашел что надо, но то ошибка то неработает. после трех тщетных часов я решил таки спросить у профи. вот как выглядит скрипт который я повесил на onEnter триггера: Neverwinter Script Source void ActionStartConversation ( object oObjectToConverseWith = "NW_COMFEMALE001", string sDialogResRef = "janethmeet", int bPrivateConversation = FALSE, int bPlayHello = TRUE ); { string sTag = "NW_COMFEMALE001"; object oNPC = GetLocalObject(GetArea(OBJECT_SELF),"NW_G_" + sTag); object oPC = GetEnteringObject(); if(GetIsPC(oPC) && GetLocalInt(oPC,"NW_L_Init" + GetTag(oNPC)) == FALSE && IsInConversation(oNPC) == FALSE) { AssignCommand(oPC,ClearAllActions()); AssignCommand(oNPC,ClearAllActions()); AssignCommand(oNPC,ActionMoveToObject(oPC)); AssignCommand(oNPC,ActionStartConversation(oPC)); } } если верить лексикону и самим АТАРИ которые написали скрипт начинающий болтовню с Павлом, то у меня все верно. (а мож пропустил что, все таки 7 часов скриптинга, да еще и чайниковского - напрягают мозг). вобщем нажимаю save, а он ругается и пишет - ERROR: NON CONSTANT IN FUNCTION DECLARATION - относя это к шестой строке, то есть к скобке и точке с запятой! не знаю как в двух значках всего, может прятаться ошибка. помогите, люди добрые. (IMG:style_emoticons/kolobok_light/swoon.gif) |
![]()
Сообщение
#3340
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Для ошибки хватит и одного символа… Хорошо, функцию ActionStartConversation написал, а кто ее будет запускать? Нужно через void main() {} или через int StartingConditional() {}
Бывает необходимость привлечь внимание игрока к определенному персонажу, тогда вам поможет такой небольшой универсальный скрипт подхода на вход триггера, и старт диалога героя с НПС. Нужно очертить триггер вокруг НПС, и проставить в поле ключа триггера, тэг нашего НПх Сам скрипт: Neverwinter Script Source //:://////////////////////////////////////////////////
//:: Герой подходит к НПС и начинает диалог //:: File name: camera_dialog //::////////////////////////////////////////////////// void main() { object oPC = GetEnteringObject(); object oSP = GetHenchman(oPC); string sName = GetLockKeyTag(OBJECT_SELF); object oDL = GetObjectByTag(sName); vector vFace = GetPosition(oPC); float fTime = GetDistanceBetween(oPC, oDL); if(fTime < 5.0) fTime = 5.5; if (!GetIsPC(oPC)) return; DelayCommand(0.1, AssignCommand(oDL, ClearAllActions())); DelayCommand(0.2, SetCutsceneMode(oPC, TRUE)); DelayCommand(0.3, AssignCommand(oPC, ClearAllActions(TRUE))); DelayCommand(0.4, AssignCommand(oSP, ClearAllActions(TRUE))); DelayCommand(1.3, AssignCommand(oDL, SetFacingPoint(vFace))); DelayCommand(1.5, AssignCommand(oPC,ActionForceMoveToObject(oDL, FALSE, 0.0))); DelayCommand(1.5, AssignCommand(oSP,ActionForceMoveToObject(oPC, FALSE, 0.0))); DelayCommand(1.5, AssignCommand(oDL, SpeakString("Подойдите ко мне. Это очень важно!"))); DelayCommand(fTime-4.0, AssignCommand(oDL, ActionPlayAnimation(ANIMATION_FIREFORGET_GREETING))); DelayCommand(fTime-3.5, AssignCommand(oPC, SpeakString("Уже иду! Что там у вас случилось?"))); // диалог персонажа DelayCommand(fTime-0.5, AssignCommand(oDL, ActionStartConversation(oPC))); DelayCommand(fTime, SetCutsceneMode(oPC, FALSE)); DestroyObject(OBJECT_SELF, fTime+1.0); } Сообщение отредактировал gennady - Jul 16 2007, 07:13 |
![]()
Сообщение
#3341
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Цитата(gennady @ Jul 16 2007, 08:08) [snapback]110621[/snapback] string sName = GetLockKeyTag(OBJECT_SELF); object oDL = GetObjectByTag(sName); 1. тэг НПС начиная с ХОТУ можно писать в локалкку триггера. Вариант с кей-тэгом оправдан только если НВН или НВН+СОУ. 2. в данном случае (да и вообще везде где возможно) лучше использовать GetNearestObjectByTag() 3. Цитата(gennady @ Jul 16 2007, 08:08) [snapback]110621[/snapback] DelayCommand(1.5, AssignCommand(oDL, SpeakString("Подойдите ко мне. Это очень важно!"))); DelayCommand(fTime-4.0, AssignCommand(oDL, ActionPlayAnimation(ANIMATION_FIREFORGET_GREETING) )); DelayCommand(fTime-3.5, AssignCommand(oPC, SpeakString("Уже иду! Что там у вас случилось?"))); анимация это гут, а вот текст имхо делать не нужно. Лучше начать диалог и там для уже все разговоры вести. (ну не сказал бы мой хаотик-злой некромант вот так "Уже иду! Что там у вас случилось?".) |
![]()
Сообщение
#3342
|
|
Level 3 ![]() Класс: Некромант Характер: Chaotic Evil Раса: Эльф ![]() |
ну я не всегда хаотик ивел сорсами играю. иногда можно попозориться и пройти кампанию палладином. но в наших кругах РПГшников это не серьезно!
ну и скрипт! зачем там строка про хенчмана? |
![]()
Сообщение
#3343
|
|
Level 4 ![]() ![]() Класс: Некромант Характер: Chaotic Good Раса: Нежить ![]() |
Подскажите название скрипта Большогосвятилища
ПОдскажите названия скрипта Большогосвятилища |
![]()
Сообщение
#3344
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
NW_S0_Sanctuary.
Когда будешь открывать, не забуть поставить пометку, на то, что этот скрипт глобальный, а не ограниченный рамками модуля, иначе ничего не получится. На будущее. Что бы узнать название того или иного скрипта, например кода отвечающего за заклинания - стоит не забывать про 2DA таблицы. В данном случае, это 2DA таблица: spells.2DA, в ней, помимо различных других установок и параметров, обязательно присутствует название скрипта, который отвечает за выполнение и работу заклинания. Это так же относится и, например, к фитам. Ну, или самый простой вариант. Включаешь галочку глобального поиска, и вперед. По названию непосредственного сабжа. Я так и нашел, т.е. просто набрал в поиске san (IMG:style_emoticons/kolobok_light/smile.gif) . Сообщение отредактировал Dik Morris - Jul 18 2007, 19:50 |
![]()
Сообщение
#3345
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Цитата(Dik Morris @ Jul 18 2007, 20:42) [snapback]110720[/snapback] Ну, или самый простой вариант. Включаешь галочку глобального поиска, и вперед. По названию непосредственного сабжа. Я так и нашел, т.е. просто набрал в поиске san самый основной вариант. С первой-второй попытки "найдется все". Цитата(Loki87 @ Jul 16 2007, 13:40) [snapback]110630[/snapback] ну и скрипт! зачем там строка про хенчмана? страховка. Иногда хенч может и не подойти (или ты специально оставил его в стороне). Все бы ничего но если в диалоге с НПС есть фразы хенча (как третьего в разговоре например), а сам хенч далеко - разговор просто прервется, что не гут. Можно конечно в скриптах диалога это предусматривать, но имхо самый надежный вариант просто обеспечить наличие Хенча рядом с игроком. |
![]()
Сообщение
#3346
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Лекс, спасибо за критику! Чуть модернизировал скрипт, может кому пригодится…
Бывает необходимость привлечь внимание игрока к определенному персонажу, тогда вам поможет такой небольшой универсальный скрипт подхода на вход триггера, и старт диалога героя с НПС. Нужно очертить триггер вокруг НПС, и проставить в поле ключа триггера, тэг нашего НПС Сам скрипт: Neverwinter Script Source /////////////////////////////////////////////////
//:: Герой подходит к NPC и начинает диалог //:: File name: camera_dialog //::////////////////////////////////////////////////// void main() { object oPC = GetEnteringObject(); object oSP = GetHenchman(oPC); vector vFace = GetPosition(oPC); string sName = GetLockKeyTag(OBJECT_SELF); int i = 1; float fTime; object oDL = GetNearestObjectByTag(sName, oPC, i); int iA = GetGoodEvilValue(oPC); if (!GetIsPC(oPC)) return; while (GetIsObjectValid(oDL)) { if (!GetIsInCombat(oPC)&&!GetIsInCombat(oDL)&&!GetIsEnemy(oPC, oDL)&& !GetIsDead(oDL) && GetObjectType(oDL) == OBJECT_TYPE_CREATURE) { fTime = GetDistanceBetween(oPC, oDL); SetLocalInt(OBJECT_SELF,"VALID",1); break; } i++; oDL = GetNearestObjectByTag(sName, oPC, i); } if (GetLocalInt(OBJECT_SELF, "VALID") != 1) return; // Проверить if(fTime < 5.0) fTime = 7.5; string sPC = "Заткнись! Если что не то - порву!"; if (iA>30 && iA<70) sPC = "Не кричи! Иду, иду..."; if (iA>=70 && iA<100) sPC = "Уже иду... Что случилось?"; if (iA==100) sPC = "Уже иду! Что там у вас случилось?"; AssignCommand(oDL, ClearAllActions()); AssignCommand(oDL, SetFacingPoint(vFace)); AssignCommand(oDL, ActionPlayAnimation(ANIMATION_LOOPING_PAUSE, 1.0, 2.5)); AssignCommand(oDL, ActionPlayAnimation(ANIMATION_FIREFORGET_GREETING)); AssignCommand(oDL, ActionWait(fTime-3.0)); AssignCommand(oDL, ActionStartConversation(oPC)); // диалог персонажа AssignCommand(oDL, ActionDoCommand(SetCommandable(TRUE, oDL))); // разблокировать очередь DelayCommand(0.1, SetCommandable(FALSE, oDL)); // заблокировать очередь DelayCommand(0.2, SetCutsceneMode(oPC, TRUE)); DelayCommand(0.3, AssignCommand(oPC, ClearAllActions(TRUE))); DelayCommand(0.4, AssignCommand(oSP, ClearAllActions(TRUE))); DelayCommand(1.5, AssignCommand(oPC, ActionForceMoveToObject(oDL, FALSE, 1.0, fTime-2.0))); DelayCommand(1.5, AssignCommand(oSP, ActionForceMoveToObject(oPC, FALSE, 1.0, fTime-2.0))); DelayCommand(2.0, AssignCommand(oDL, SpeakString("<c у >Подойдите ко мне! Это очень важно!</c>"))); DelayCommand(fTime-3.5, AssignCommand(oPC, SpeakString(sPC))); DelayCommand(fTime, SetCutsceneMode(oPC, FALSE)); DelayCommand(fTime, SetCommandable(TRUE, oDL)); // разблокировать очередь DelayCommand(fTime+0.1, AssignCommand(oPC, ActionStartConversation(oDL))); // диалог персонажа DestroyObject(OBJECT_SELF, fTime+1.0); } |
![]()
Сообщение
#3347
|
|
Level 4 ![]() ![]() Класс: Некромант Характер: Chaotic Good Раса: Нежить ![]() |
QUOTE(Dik Morris @ Jul 18 2007, 19:42) [snapback]110720[/snapback] NW_S0_Sanctuary. Когда будешь открывать, не забуть поставить пометку, на то, что этот скрипт глобальный, а не ограниченный рамками модуля, иначе ничего не получится. На будущее. Что бы узнать название того или иного скрипта, например кода отвечающего за заклинания - стоит не забывать про 2DA таблицы. В данном случае, это 2DA таблица: spells.2DA, в ней, помимо различных других установок и параметров, обязательно присутствует название скрипта, который отвечает за выполнение и работу заклинания. Это так же относится и, например, к фитам. Ну, или самый простой вариант. Включаешь галочку глобального поиска, и вперед. По названию непосредственного сабжа. Я так и нашел, т.е. просто набрал в поиске san (IMG:style_emoticons/kolobok_light/smile.gif) . Про 2da пасибо совсем про них забыл )) сейчас поду гляну а вот нащет "просто набрал в поиске san" к сожалению не все так просто NW_S0_Sanctuary - это скрипт насколько я понял именно для простогоили малого или как атм его еще святилища а вот то что кастит сорка на 8 круге как то по другому называеться ((( Хоть может я дето и ошибаюсь Но думаю что таки прав ибо уже десятка полтора заклов исправил что бы наступать на такие нюбские грабли )) хотя скем не бывает |
![]()
Сообщение
#3348
|
|
Level 3 ![]() Класс: Некромант Характер: Chaotic Evil Раса: Эльф ![]() |
Ну нафига такой огромный скрипт для одного малюсенького действа. (жаль визард не все типы скриптов помогает делать).
|
![]()
Сообщение
#3349
|
|
![]() Класс: Пьяный Мастер Характер: Lawful Good Раса: Тварь MySQL, PHP, JavaScript Порядок Времени ![]() |
Код Create_Undead 780 is_CrUndead N S vs 0x3a 0x2C NW_S0_CrUndead **** 6 **** **** **** 8 6 1500 head **** **** vco_grndskul sco_grndskul vs_chant_necr_hm vs_chant_necr_hf out 1000 **** vca_outneg **** sca_outneg 0 **** **** **** **** **** **** 0 **** **** **** **** **** 15 **** 1 6126 1 0 **** 0 **** **** **** 1 Greater_Planar_Binding 819 is_GrPlanar C S vs 0x3a 0x2E NW_S0_GrPlanar **** **** **** **** **** 8 8 1500 head **** **** vco_lgsprodd01 sco_lgsprodd01 vs_chant_conj_hm vs_chant_conj_hf up 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 15 **** 1 6166 1 0 **** 0 **** **** **** 0 Incendiary_Cloud 839 is_IncCloud V L vs 0x3f 0x2E NW_S0_IncCloud **** **** **** **** **** 8 8 1500 head **** **** vco_lgsprfire01 sco_lgsprfire01 vs_chant_evoc_hm vs_chant_evoc_hf area 1000 **** **** **** **** 1 vpr_ectofire01 homing hand spr_ectofire01 path Fire 1 **** **** **** **** **** 11 **** 1 6186 1 0 **** 1 **** **** **** 1 Mass_Blindness_and_Deafness 860 is_MassBlDf I M vs 0x3a 0x2E NW_S0_MassBlDf **** **** **** **** **** 8 8 1500 hand **** **** vco_lgrinodd01 sco_lgrinodd01 vs_chant_illu_hm vs_chant_illu_hf area 1000 **** **** **** **** 1 vpr_los accelerating hand spr_los path **** 1 **** **** **** **** **** 1 **** 1 6207 1 0 **** 1 **** **** **** 1 Mass_Charm 861 is_MsCharm E S v 0x1a 0x2E NW_S0_MsCharm **** **** **** **** **** 8 8 1500 hand **** **** vco_lgrinmind01 sco_lgrinmind01 vs_chant_ench_hm vs_chant_ench_hf touch 1000 **** **** **** **** 1 vpr_los accelerating hand spr_los path Mind_Affecting 1 **** **** **** **** **** 1 **** 1 6208 1 0 **** 1 **** **** **** 1 Mind_Blank 867 is_MindBlk A S vs 0x3a 0x2F NW_S0_MindBlk **** **** **** **** **** 8 8 1500 head vco_mehanmind01 **** **** sco_mehanmind01 vs_chant_conj_hm vs_chant_conj_hf touch 1000 **** **** **** **** 1 vpr_los accelerating hand spr_los path **** 0 **** **** **** **** **** 9 **** 1 6214 1 0 **** 0 **** **** **** 1 Premonition 884 is_Premo D T vs 0x3a 0x09 NW_S0_Premo **** **** 8 **** **** 8 8 1500 head vco_mehanelec03 **** vco_lgrinmind01 sco_lgrinmind01 vs_chant_illu_lm vs_chant_illu_lf self 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 12 **** 1 6228 1 0 **** 0 **** **** **** 0 Summon_Creature_VIII 931 is_Summon8 C S vs 0x3a 0x2C NW_S0_Summon **** 8 8 **** **** 8 8 1500 hand **** vco_mehanodd02 vco_lgrinodd01 sco_lgrinodd01 vs_chant_conj_hm vs_chant_conj_hf out 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 15 **** 1 6512 1 0 **** 0 **** **** **** 0 Horrid_Wilting 6333 is_HorrWilt N M vs 0x3d 0x2E NW_S0_HorrWilt **** **** **** **** **** 8 8 1500 head **** **** vco_lgupodd01 sco_lgupodd01 vs_chant_necr_hm vs_chant_necr_hf out 1000 **** **** **** **** 1 vpr_los homing hand spr_los path **** 0 **** **** **** **** **** 1 **** 1 6533 1 0 **** 1 **** **** **** 1 Sunburst 385 is_X1Sunbur V M vs 0x3d 0x3E x0_s0_sunburst **** **** 8 **** **** 8 8 1500 head vco_mehedholy01 **** **** sco_mehedholy01 vs_chant_evoc_hm vs_chant_evoc_hf up 1000 **** **** **** **** 0 **** **** **** **** **** Divine 1 **** **** **** **** **** 1 **** 1 1537 1 0 **** 1 **** **** **** 0 Etherealness 2364 is_X1Ether T T v 0x3a 0x09 x0_s0_ether **** 6 **** **** **** 8 7 1500 head vco_smhanholy01 **** **** sco_mehanholy01 vs_chant_evoc_lm vs_chant_evoc_lf up 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** **** **** 1 2371 1 0 **** 0 **** **** **** 0 Bigbys_Clenched_Fist 2686 is_X1Bigby4 V L vs 0x3f 0x3A x0_s0_bigby4 **** **** **** **** **** 8 8 1500 hand **** vco_mehanacid03 **** sco_mehanacid03 vs_chant_conj_hm vs_chant_conj_hf out 1000 **** **** **** **** 1 vpr_bigby_c homing hand spr_aroacid path **** 1 **** **** **** **** **** 2 **** 1 2691 1 0 **** 1 **** **** **** 1 Blackstaff 3761 is_X2Blckstff T T vs 0x3a 0x0B X2_S0_Blckstff **** **** **** **** **** 8 8 1500 hand **** vco_atomgren **** sco_atomgren vs_chant_ench_hm vs_chant_ench_lf self 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 9 **** 1 3762 1 0 **** 0 **** **** **** 0 таблица каста сорка/визарда 8го уровня (IMG:style_emoticons/kolobok_light/offtopic.gif) Цитата(Loki87 @ Jul 19 2007, 13:02) [snapback]110747[/snapback] Ну нафига такой огромный скрипт для одного малюсенького действа. (жаль визард не все типы скриптов помогает делать). быть может ты не прав и стоит предусмотреть гораздо большее, чем одно малюсенькое действо? (IMG:style_emoticons/kolobok_light/wink3.gif) |
![]()
Сообщение
#3350
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Цитата Ну нафига такой огромный скрипт для одного малюсенького действа. Loki, не все так просто, как кажется на первый взгляд… Диалог это ответственная функция, к тому же у меня она идет через мультик, тут вдвойне нужно быть осторожным. К тому же скрипт универсальный, а значит нужно учесть много игровых ситуаций (проверить идет ли бой, жив ли перс, не враг ли он…). Если у тебя будет перс занят, чем-то, как-то ходит или сидит на стуле или еще что, то нужно почистить ему акции, заблокировать очередь, чтобы он не сбил код. Обычно управление идет с ХБ перса, там цикл в 6 секунд… почистил это скрипт акции, и все привет – диалога нет! Тут даже в этом скрипте есть вероятность 1/60, что произойдет чистка акций во время исполнения скрипта, поэтому и сделаны блокировки, через DelayCommand. Да…, когда идет диалог, то герой переходит в режим бога, поэтому нужно знать, что он не притащил на хвосте врагов, а то получится некрасиво… Порой просто диву даешься на что способны игроки! Скрипт учитывает также и дистанцию до перса, и сделает прыжок герою, если тот где-то застрял, плюс диалог запускается как героем, так и персом (на всякий пожарный), ну и пробил разные фразы в зависимости от злобности героя (IMG:style_emoticons/kolobok_light/biggrin.gif) … это для того если все же чтой-то пойдет не так, то хоть по фразам игрок сориентируется. У меня к тому же есть плейсы одним тэгом с НПС… Так что если не хочешь ловить баги, то нужно всегда делать страховки и блокировки в скрипте. Вспоминаю, как в Невере и в ХоТу за моим героем долго бегали персы со своими диалогами с триггера (IMG:style_emoticons/kolobok_light/biggrin.gif) … Про висяки начала диалога с камеры в Леворе, вообще промолчу, т.к. ребятам на форуме за эти баги плешь проели… |
![]()
Сообщение
#3351
|
|
Level 3 ![]() Класс: Некромант Характер: Chaotic Evil Раса: Эльф ![]() |
ну если столько всего надо проверять и остерегаться, то да. а мне вообще было нужно чтоб НПС просто подошел и начал диалог, так как действие в городе происходит, и след. врагов нет, ничем он не занят, стульев нет. и тд и тп. так что по этому я так удивился и сказал, мол нафига, мне то все эти проверки.
вообще получается один такой скрипт начала диалога написал, универсальный, и юзай копи-пэйст на весь модуль. (IMG:style_emoticons/kolobok_light/good.gif) |
![]()
Сообщение
#3352
|
|
Level 4 ![]() ![]() Класс: Некромант Характер: Chaotic Good Раса: Нежить ![]() |
Товарищи !! чето я немогу найти этот spell 2da помогите а ???
нашел spell 2da ( если точнее дали готовый так что вопрос де он лежит остался открытый) Большогосвятилища там нет Еще раз прошу помочь с сим вопросом ни какими поисками и тп найти егоне удаеться скрипт обычногосвятилища ни чем не связан с большим ибо при его коментировании большое как работало так и работает Сообщение отредактировал Teranozavr_REX - Jul 19 2007, 15:50 |
![]()
Сообщение
#3353
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Цитата(Loki87 @ Jul 19 2007, 15:46) [snapback]110755[/snapback] вообще получается один такой скрипт начала диалога написал, универсальный, и юзай копи-пэйст на весь модуль. зачем копи-паст? 1 скрипт на весь модуль достаточно. Именно в этом и суть. Цитата(Loki87 @ Jul 19 2007, 15:46) [snapback]110755[/snapback] и след. врагов нет А банальный вариант - игрок сам начал геноцид НПС в городе, случайно наступил на триггер разговора, вы не рассматриваете? А убийство этого самого НПС с дальней дистанции? А наличие в партии игрока кучи народа и животных, что будет мешать движению? все чуть сложнее, чем кажется на первый взгляд. |
![]()
Сообщение
#3354
|
|
Level 2 ![]() Класс: Клерик Характер: Chaotic Good Раса: Полуэльф ![]() |
Пасиб большое! Нашёл и начал читать (IMG:style_emoticons/kolobok_light/good.gif)
2 Worldowner, он прячется в этих краях, и найти его, можно набрав в поиске слово: Lexicon. |
![]()
Сообщение
#3355
|
|
Level 2 ![]() Класс: Воин Характер: Neutral Evil Раса: Человек ![]() |
(Может это уже рассматривалось, но я не нашел.) Как снять ограничение на максимальное количество хенчманов в партии?
|
![]()
Сообщение
#3356
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
"Добавить с скрипт на onModuleLoad - cтроку:
Цитата SetMaxHenchmen(х); где Х - это количество разрешенных хенчманов" © в ХХХ раз. Сообщение отредактировал Dik Morris - Jul 22 2007, 09:56 |
![]()
Сообщение
#3357
|
|
Level 4 ![]() ![]() Класс: Некромант Характер: Chaotic Good Раса: Нежить ![]() |
как с криптом изменитьфракцию Моба или Плеера
|
![]()
Сообщение
#3358
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Можно даже враждебного монстра сделать дружественным, сменив ему фракцию:
Neverwinter Script Source void main() { object oPC = GetFirstPC(); object oGoblin = GetObjectByTag("TAG"); object oNeytral = GetObjectByTag("DEVA"); if(GetIsEnemy(oPC, oGoblin)) // Если враги ChangeFaction(oGoblin, oNeytral); // Дать oGoblin фракцию oNeytral } И я поффравил... Сообщение отредактировал gennady - Jul 23 2007, 05:00 |
![]()
Сообщение
#3359
|
|
Level 4 ![]() ![]() Класс: Некромант Характер: Chaotic Good Раса: Нежить ![]() |
ЗА пару дней узнал некоторые особенности по фракциям
еще раз перефразирую задачю)) Есть две воюющие стороны назовем их А и Б Игрок в начале захода выбирает себе сторону По карте должны бегать мобы фракции А, фракции Б, нейтральные всем, и враждебные всем ))) Вопрос как заставить игроков быть постоянно в хостайле друг к другу, если они в разных фракциях, как заставить мобов быть враждеными игрокам А и мирными к игрокам Б, и наоборот. насколько я понимаю, надо сделать локальные переменные, на плеерах, разных фракций и поним как то менять реакцию мобов. надо функции изменения реакции моба, + совет куда сие все лудше всего всунуть ( к какому событию прикрепить) так что бы минимально нагружать сервер. так же еще интересует вопрос я сейчас использую функцию Neverwinter Script Source void ActionMoveToObject(object oMoveTo, int bRun=FALSE, float fRange=1.0f) для того что бы хзаставитьмоба двигаться к вейпоинту сия функция меня не устраивает по причинам того что моб идет попрямой и практически не способен обходить припятствия во время передвижения практически ни на что не реангирует нету ли чем ее заменить стандартным или кто то может что то самописное подсказатьможет??? взамен P.S. И сильно не бейте если что то спросил глупое просто сейчас почти нет времени сидетьв тулсете а только время прикидыватьалгоритмы )) со всеми вытикающими Сообщение отредактировал Teranozavr_REX - Jul 24 2007, 10:05 |
![]()
Сообщение
#3360
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
2 Teranozavr_REX, можно использовать ActionForceMoveToObject. Тогда, когда NPC застрянет где-нибуть, через определенный промежуток времени, который ты указываешь сам, он перенесется в нужную точку.
Еще можно попробовать, поднять АI NPC. SetAILevel. Но это требовательно к ресурсам. Ах-да, бегло прочитал. По поводу двух враждебных фракций игроков. Тут ты прав - нужно ставить локальные переменные, и потом функцией SetPCDislike выставлять дизлайк, всем "неверным". Сообщение отредактировал Dik Morris - Jul 24 2007, 10:11 |
![]() ![]() |
Текстовая версия | Сейчас: 30th July 2025 - 03:43 |