![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#3026
|
|
Level 2 ![]() Класс: Воин Характер: Neutral Good Раса: Человек ![]() |
Как ты хочешь чтобы это выглядело - кат сценой или игровой процесс...сжали в тюрму - вели или просто персонаж прыгл в тюрму после ареста... Товарищ Kamita, это я уже все сделал. Продолбался целый день, но сделал. С помощью не сложных скриптов, переменных и тэгов. Я сделал не тюрьму, а карцер (типа как КПЗ (IMG:style_emoticons/kolobok_light/biggrin.gif) ) Устроил мордобой в населенном пункте, нагрубил солдату или другому представителю власти и персонажа арестовывают (надо будет еще на воровство сделать арест...). Отсидев в камере, персонаж должен либо заплатить штраф, либо его отправят на принудительные работы, после чего отпустят. Тут у меня все получилось, кроме вот этой проблемы с вещами персонажа. Получается как-то глупо: нарушитель правопорядка оказывается в камере с оружием, в броне, и всеми вещами. Это неправильно. Андрей ЮП, глянь ПЛ, первую главу. Тот эпизод, где игрока огревают по башке и он оказывается у Ви. Уже смотрел, товарищ Лекс, не смог понять где там и что. Но попробую еще раз, может разберусь. Просто надо до дестроя добавить копирвание в сундук). Вот на этом моменте бы поподробнее... (IMG:style_emoticons/kolobok_light/declare.gif) Я попробую. Спасибо! А как это все обставлено (стража, катсцена, тюрьма) - это уже совсем другая история. Ну это намного проще, чем скрипты составлять (IMG:style_emoticons/kolobok_light/declare.gif) Андрей ЮП, еще можешь глянуть в ПВ скрипты которые срабатывают при попытке украсть что-то. Но боюсь разобраться будет в них сложно... Спасибо, товарищ Aiwan! Это тоже посмотрю. Всем спасибо за полезные советы! С уважением, Андрей ЮП. |
![]()
Сообщение
#3027
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Тут для нашего иодернизированного модуля потребовался такой арест и водворение в тюрьму... В общем это целая система скриптов, но судь идеи в том, что нужно сперва крутануть цикл на нахождение и перенос сумок из инвентаря героя, а затем лишь чистить шмотки... Чего не было сделано в Леворе, поэтому многие и матерились... (IMG:style_emoticons/kolobok_light/biggrin.gif) Вот тебе скриптик, надеюсь поможет.
Neverwinter Script //:://////////////////////////////////////////////////
//:: АРЕСТ ГЕРОЯ ЗА НАПАДЕНИE НА ПРОСТОЛЮДИНОВ //:: Created By: Gennady //:: File Name: stop_commoner //::////////////////////////////////////////////////// #include "ludi" // ДАТЬ И ОПОЗНАТЬ ПРЕДМЕТЫ // string sItem - ResRef предмета // object oTarget - Объект или существо кому дать // int iKol - Количество предметов // int iStack=1 - Количество предметов в стеке void CreateItemSklad(string sItem, object oPC, int iKol=1, int iStack=1); void CreateItemSklad(string sItem, object oPC, int iKol=1, int iStack=1) { while(1 <= iKol) { if(iKol < iStack) iStack = iKol; object oItem = CreateItemOnObject(sItem, oPC, iStack); SetIdentified(oItem, TRUE); // опознать iKol-=iStack; } } //////////////////////////////////////////////////////////////////////////////// void DeletItem(object oPC, object oSklad) { object oItem = GetFirstItemInInventory(oPC); while(GetIsObjectValid(oItem)) { string sTag = GetTag(oItem); int iDestroy = 0; if (sTag == "itm_magsteleport" || sTag == "itm_magstelepor1") {iDestroy = 1; SetLocalInt(oPC, "MARSHIK_COMMONER", 1);} if(iDestroy == 0) CopyItem(oItem, oSklad); DestroyObject(oItem); oItem = GetNextItemInInventory(oPC); } // ***** Оденем ***** object oMan = CreateItemOnObject("t_roba_a", oPC, 1); // Роба AssignCommand(oPC, ClearAllActions(TRUE)); AssignCommand(oPC, ActionEquipItem(oMan,INVENTORY_SLOT_CHEST)); // Роба AssignCommand(oPC, ActionSpeakString("Я что в тюрьме?")); FadeFromBlack(oPC, FADE_SPEED_SLOW); // Уберем занавес if(GetLocalInt(oPC, "MARSHIK_COMMONER")==1) SetCustomToken(2202, "Да, совсем забыл… Я вам верну маршрутизатор."); else SetCustomToken(2202, ""); if(GetLocalInt(oPC, "VOR_COMMONER")>=10) { DelayCommand(1.0, ReputationTorg(-1)); SetLocalInt(oPC, "VOR_COMMONER", 0); SetLocalInt(oPC, "R2_NPC_OSKAR", 1);// ДЛЯ ДИАЛОГА С ЗАКЛЮЧЕННЫМ } else DelayCommand(1.0, ReputationTorg(-3)); DelayCommand(1.1, SendMessageToPC(oPC, "<c у >Прошло три часа... Вас доставили в тюрьму...</c>")); } //////////////////////////////////////////////////////////////////////////////// void Arest(object oPC, object oWP) { int iGold = GetGold(oPC); int i, iShtraf = iGold/10; //Размер штрафа int iT = GetTimeHour(); object oSklad = GetObjectByTag("SKLAD_COMMONER"); object oItem = GetFirstItemInInventory(oPC); if(GetLocalInt(oPC, "VOR_COMMONER")>=10) iShtraf = iGold/50; //Размер штрафа SetCustomToken(2201, IntToString(iShtraf)); SetLocalInt(oPC,"GOLD_TURMA", iGold); // золото SetTime(iT+3,0,0,0); SetLocalLocation(oPC, "STOP_LOC_COMMONER", GetLocation(oPC)); // ТОЧКА ВОЗВРАТА CreateItemSklad("nw_it_gold001", oSklad, iGold-iShtraf, 50000); TakeGoldFromCreature(iGold, oPC, TRUE); // забрать золото SetStandardFactionReputation(STANDARD_FACTION_COMM ONER, 50, oPC); SetLocalInt(GetModule(),"REP_COMMONER",0); JumpFirstPC(oWP); while(GetIsObjectValid(oItem)) { if(GetBaseItemType(oItem) == BASE_ITEM_LARGEBOX) AssignCommand(oPC, ActionGiveItem(oItem, oSklad)); // Дать сумку или предмет oItem = GetNextItemInInventory(oPC); } for (i = 0; i < NUM_INVENTORY_SLOTS; i++) { oItem = GetItemInSlot(i, oPC); if (GetIsObjectValid(oItem)) { CopyItem(oItem, oSklad); DestroyObject(oItem); } } DelayCommand(7.0, DeletItem(oPC, oSklad)); } //////////////////////////////////////////////////////////////////////////////// void main() { object oPC = GetFirstPC(); object oMod = GetModule(); object oNPC = GetFirstObjectInShape(SHAPE_SPHERE, 50.0,GetLocation(oPC),TRUE); object oStop = GetWaypointByTag("STOP_COMMONER"); object oZak = GetObjectByTag("NPC_OSKAR");//Заключенный effect ePar = EffectCutsceneParalyze();// Эффект парализации effect eOtz = EffectVisualEffect(VFX_IMP_UNSUMMON);// Отзыв животного effect eSM3 = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_3);// ГолубаЯ звезда float Time = 17.0; float fAngle = GetFacing(oPC); location Loc1 = CreateLocation(oPC, 3.0, fAngle+120.0, 0.0, fAngle); location Loc2 = CreateLocation(oPC, 3.0, fAngle-120.0, 0.0, fAngle); string sSt1 = "<c у >Вы нарушили закон Империи! Убили важного гражданина!</c>"; string sSt2 = "<cюa >Вас ждет арест и суд! Пошли!</c>"; if(GetLocalInt(oPC, "VOR_COMMONER")>=10) { sSt1 = "<c у >Стой! Сколько можно воровать? Вас ждет арест и суд!</c>"; sSt2 = "<cюa >Спокойно воришка, и без глупостей! Пошли!</c>"; } while (GetIsObjectValid(oNPC)) // Все существа в радиусе 30 метров { AssignCommand(oNPC, ClearAllActions(TRUE)); if(oNPC != oPC) AssignCommand(oMod, DelayCommand(Time+5.0, AssignCommand(oNPC, ClearAllActions(TRUE)))); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, ePar, oNPC, Time); if (oPC==GetMaster(oNPC)) { if(oNPC!= GetAssociate(ASSOCIATE_TYPE_HENCHMAN, oPC)) { ApplyEffectToObject(DURATION_TYPE_INSTANT, eOtz, oNPC); DestroyObject(oNPC, 2.0); } else RemoveHenchman(oPC, oNPC); // Удалить спутника } oNPC = GetNextObjectInShape(SHAPE_SPHERE, 50.0, GetLocation(oPC), TRUE); } if(GetGender(oPC)==GENDER_FEMALE && GetGender(oZak)==GENDER_MALE) { location Loc3 = GetLocation(oZak); DestroyObject(oZak); DelayCommand(3.0, CreateObjectN(OBJECT_TYPE_CREATURE, "zak_oskar_gg", Loc3)); } AssignCommand(oPC, SpeakString("Что случилось?")); object oStraz1 = CreateObject(OBJECT_TYPE_CREATURE, "straz", Loc1); object oStraz2 = CreateObject(OBJECT_TYPE_CREATURE, "straz", Loc2); ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eSM3, Loc1); ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eSM3, Loc2); DelayCommand(1.0, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, ePar, oStraz1, Time)); DelayCommand(1.0, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, ePar, oStraz2, Time)); DelayCommand(6.0, AssignCommand(oStraz1, SpeakString(sSt1))); DelayCommand(6.0, PlayVoiceChat(VOICE_CHAT_NO, oStraz2)); DelayCommand(12.0, AssignCommand(oStraz2, SpeakString(sSt2))); DelayCommand(15.0, PlayVoiceChat(VOICE_CHAT_YES, oStraz1)); DelayCommand(Time, FadeToBlack(oPC, FADE_SPEED_FASTEST)); // Занавес DelayCommand(Time+0.1, Arest(oPC, oStop)); DestroyObject(oStraz1, Time); DestroyObject(oStraz2, Time); } |
![]()
Сообщение
#3028
|
|
Level 3 ![]() Класс: Псионик Характер: Chaotic Neutral Раса: Тварь ![]() |
Вот еще один вопрос насчет скрипта: (В кампаниях не нашел ничего подобного, к сожалению)
Каждые 20 секунд НПС телепортируется на случайный вейпоинт из шести. При этом показывается визуальный эффект. Заранее, опять таки, спасибо. |
![]()
Сообщение
#3029
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Neverwinter Script const string NPC_WP_TAG = "NPC_WP_TAG"; Функцию вызывать из onSpawn непися (IMG:style_emoticons/kolobok_light/smile.gif) Вейпоинты должны иметь тег, указанный в константе NPC_WP_TAG. При этом объектов с таким тегом в модуле больше быть не должно.
const int NPC_VFX = 24; const float NPC_TELEPORT_TIME = 20.0f; void Teleport(object oNPC); void main() { Teleport(OBJECT_SELF); } void Teleport(object oNPC) { object oCurrentWP = GetNearestObjectByTag(NPC_WP_TAG, oNPC), oWP; do oWP = GetObjectByTag(NPC_WP_TAG, d6()); while(oWP != oCurrentWP); ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(NPC_VFX), oNPC); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectCutsceneImmobilize(), oNPC, 1.0f); DelayCommand(1.05f, AssignCommand(oNPC, JumpToObject(oWP))); DelayCommand(NPC_TELEPORT_TIME, Teleport(oNPC)); } Сообщение отредактировал Ilerien - Dec 14 2008, 15:36 |
![]()
Сообщение
#3030
|
|
Level 3 ![]() Класс: Псионик Характер: Chaotic Neutral Раса: Тварь ![]() |
|
![]()
Сообщение
#3031
|
|
Level 2 ![]() Класс: Воин Характер: Neutral Good Раса: Человек ![]() |
Тут для нашего иодернизированного модуля потребовался такой арест и водворение в тюрьму... В общем это целая система скриптов, но судь идеи в том, что нужно сперва крутануть цикл на нахождение и перенос сумок из инвентаря героя, а затем лишь чистить шмотки... Чего не было сделано в Леворе, поэтому многие и матерились... Вот тебе скриптик, надеюсь поможет. Товарищ gennady, спасибо конечно, но я в этом скрипте не все понял. Дело в том, что процесс ареста и пр. наглядной рутины у меня уже и так есть. Меня интересует именно - скрипт отбирание вещей с их сохранением и скрипт возврата этих сохраненных вещей. В вашем большом скрипте это есть, но лишнее сбивает меня с толку. Если нетрудно, выложите отдельные скрипты на отбирание и возврат вещей, хорошо бы с комментариями. Заранее благодарен. С уважением, Андрей ЮП. |
![]()
Сообщение
#3032
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Neverwinter Script // ДАТЬ И ОПОЗНАТЬ ПРЕДМЕТЫ (ДЛЯ ОБРАБОТКИ ЗОЛОТА)
// string sItem - ResRef предмета // object oTarget - Объект или существо кому дать // int iKol - Количество предметов // int iStack=1 - Количество предметов в стеке void CreateItemSklad(string sItem, object oPC, int iKol=1, int iStack=1); void CreateItemSklad(string sItem, object oPC, int iKol=1, int iStack=1) { while(1 <= iKol) { if(iKol < iStack) iStack = iKol; object oItem = CreateItemOnObject(sItem, oPC, iStack); SetIdentified(oItem, TRUE); // опознать iKol-=iStack; } } ////////////// ЗАБРАТЬ ВЕСЬ ИНВЕНТАРЬ И ОДЕТЬ ГЕРОЯ В РОБУ ///////////////// void DeletItem(object oPC, object oSklad) { object oItem = GetFirstItemInInventory(oPC); int i; // ИНВЕНТАРЬ while(GetIsObjectValid(oItem)) { CopyItem(oItem, oSklad); DestroyObject(oItem); oItem = GetNextItemInInventory(oPC); } // СЛОТЫ for (i = 0; i < NUM_INVENTORY_SLOTS; i++) { oItem = GetItemInSlot(i, oPC); if (GetIsObjectValid(oItem)) { CopyItem(oItem, oSklad); DestroyObject(oItem); } } // ***** Оденем ***** object oMan = CreateItemOnObject("t_roba", oPC, 1); // Роба AssignCommand(oPC, ClearAllActions(TRUE)); AssignCommand(oPC, ActionEquipItem(oMan,INVENTORY_SLOT_CHEST)); // Роба } ///////////////// ЗАБРАТЬ ВСЕ СУМКИ ГЕРОЯ //////////////////////////////////// void CopyBase(object oPC, object oSklad) { object oItem = GetFirstItemInInventory(oPC); while(GetIsObjectValid(oItem)) { if(GetBaseItemType(oItem) == BASE_ITEM_LARGEBOX) AssignCommand(oPC, ActionGiveItem(oItem, oSklad)); // Дать сумку или предмет oItem = GetNextItemInInventory(oPC); } } //////////////////////////////////////////////////////////////////////////////// void main() { object oPC = GetFirstPC(); object oSklad = GetObjectByTag("SKLAD_ITEM"); int iGold = GetGold(oPC); // золото // забрать золото и положить его в сундук CreateItemSklad("nw_it_gold001", oSklad, iGold, 50000); TakeGoldFromCreature(iGold, oPC, TRUE); /////////////////////////////////////////// // забрать все сумки CopyBase(oPC, oSklad); ////////////////////////////////////////// // забрать все шмотки DelayCommand(2.0, DeletItem(oPC, oSklad)); ////////////////////////////////////////// } |
![]()
Сообщение
#3033
|
|
Level 2 ![]() Класс: Воин Характер: Neutral Good Раса: Человек ![]() |
Огромное спасибо, товарищ gennady! Это как раз то что нужно! Все теперь получается. Правда возврат вещей я решил сделать по другому, не автоматически. Просто герою перед освобождением из карцера открывают тот самый шкаф, куда были перенесены его вещи, и он сам все берет.
Еще раз спасибо! С уважением, Андрей ЮП. |
![]()
Сообщение
#3034
|
|
Level 3 ![]() Класс: Монах Характер: Lawful Good Раса: Эльф ![]() |
Подскажите что в этом скрипте(скрипт-телепорт на точку после смерти) не так?, он выдает кучу ошибок.
Neverwinter Script location lRespawnLocation;
string sPlanet = GetLocalString(oRespawner,"planet"); sPlanet = GetStringUpperCase(sPlanet); //Работа со строкой планеты, у тебя просто разные точки используют разный шрифт, эти - верхний string sFraction = GetLocalString(oRespawner, "fraction"); object wpStart = GetObjectByTag("PLANET"+sPlanet +"ToBase"+sFraction); //Вэйпоинт на базе lRespawnLocation = GetLocation(wpStart); AssignCommand(oRespawner, JumpToLocation(lRespawnLocation));//Прыгаем на вэйпоинт на базе Сообщение отредактировал Sugo77 - Dec 29 2008, 22:18 |
![]()
Сообщение
#3035
|
|
Level 7 ![]() ![]() Класс: Некромант Характер: True Neutral Раса: Нежить ![]() |
Добавь в начале
Цитата object oRespawner = GetLastPlayerDying(); А по второму случаю надо было писать Цитата object oPC = GetEnteringObject(); if (GetIsPC(oPC)) SetLocalString(oPC, "planet", "Earth"); Прошу прощения за те ошибки, хотя вроде всё было правильно... Сообщение отредактировал greye - Dec 29 2008, 23:01 |
![]()
Сообщение
#3036
|
|
Level 3 ![]() Класс: Псионик Характер: Chaotic Neutral Раса: Тварь ![]() |
Немного научился я в написании скриптов, но все-равно есть некоторые вопросы -
Этот скрипт висит на "Совершенных Действиях" в диалоге, но не работает. При этом скрипт компяллируется. Neverwinter Script void main() { location lSigil = GetLocation(GetNearestObjectByTag("sigil2")); object oSigil = CreateObject(OBJECT_TYPE_PLACEABLE,"blueprint",lSigil); object oDoor = GetNearestObjectByTag("door"); object oMark = GetNearestObjectByTag("PlanarBeacon"); AssignCommand(oDoor,ActionCloseDoor(oDoor)); AssignCommand(oDoor,ActionLockObject(oDoor)); DestroyObject(oMark); } И еще - Скрипт висит на onDeath одного из НПС. В журнал добавляется, а другой НПС не появляется. Также компяллируется. Neverwinter Script void main()
{ location lTel3 = GetLocation(GetNearestObjectByTag("kaldar_enter")); object omage1 = CreateObject(OBJECT_TYPE_CREATURE,"kaldar0",lTel3); object oPC = GetFirstPC(); AddJournalQuestEntry("Drugs", 2, oPC); } Сообщение отредактировал Latiss - Jan 17 2009, 11:57 |
![]()
Сообщение
#3037
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Вы определяете объекты оператором GetNearestObjectByTag... Тот ли объект нужен? Если в диалоге, то НПСа с которым идет диалог нужно брать как OBJECT_SELF, как в прочем и в скрипте смерти...
|
![]()
Сообщение
#3038
|
|
Level 3 ![]() Класс: Псионик Характер: Chaotic Neutral Раса: Тварь ![]() |
Вы определяете объекты оператором GetNearestObjectByTag... Тот ли объект нужен? Если в диалоге, то НПСа с которым идет диалог нужно брать как OBJECT_SELF, как в прочем и в скрипте смерти... Все-таки не понял. Можно чуть поподробнее? OBJECT_SELF А это зачем? Мы же проверяем объект Door (Дверь), Sigil (Вейпоинт, на котором будет стоять знак), Mark (Вейпоинт, который дестроится) в первом скрипте и Tel3 (Вейпоинт на котором появится НПС). |
![]()
Сообщение
#3039
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Все-таки не понял. Можно чуть поподробнее? Т.е. нельзя определять НПС или плейс или дверь на котором весит диалог, как объект GetNearestObjectByTag, а нужно обязательно брать OBJECT_SELF, а еще лучше его определить:Neverwinter Script object oSelf = OBJECT_SELF; // Объект на котором работает скрипт Но в вашем случае это не ошибка, т.к. берутся другие объекты. Значит все дело в написание тегов и ресрефов. Задайте все правильно и скрипты будут работать, т.к. в них ошибок... Сообщение отредактировал gennady - Jan 17 2009, 13:40 |
![]()
Сообщение
#3040
|
|
Level 3 ![]() Класс: Псионик Характер: Chaotic Neutral Раса: Тварь ![]() |
Задайте все правильно Хм... Я провеляр всех их. Написаны вроде бы правильно. P.S. Аааа... Локацию в которой все эти объекты находилась стала сначала area006, в которой все серое и тулсет вылетал при ее загрузке, а потом мне пришлось ее удалить (IMG:style_emoticons/kolobok_light/cray.gif) P.P.S Это так - крик души. |
![]()
Сообщение
#3041
|
|
Level 3 ![]() Класс: Псионик Характер: Chaotic Neutral Раса: Тварь ![]() |
Я понял в чем суть проблемы - Диалог и скрипт смерти находились в других локациях, нежели в той, где должны были создаваться объекты.
Сегодня написал еще один скрипт и поместил его на onEnter триггера в одной локации (тоже на создание НПС). Он дестроился, но НПС не создавал (В другой локации). Как только поставил его на вход этой локации - Сразу же заработал. Поэтому придется делать триггеры, а простым диалогом не обойтись... |
![]()
Сообщение
#3042
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Поэтому придется делать триггеры, а простым диалогом не обойтись... Чё за чушь... (IMG:style_emoticons/kolobok_light/biggrin.gif) Бери в диалоге объекты как GetObjectByTag или же запиши так:Neverwinter Script void main()
{ object oWP = GetObjectByTag("sigil2"); //точка в нужной области с уникальным тегом (определяет объекты во всем модуле) object oArea = GetArea(oWP); //сама область // ближайшие к выбранной точке объекты (объекты должны быть только в одной области с oWP) object oDoor = GetNearestObjectByTag("door", oWP); object oMark = GetNearestObjectByTag("PlanarBeacon", oWP); location lSigil = GetLocation(oWP); object oSigil = CreateObject(OBJECT_TYPE_PLACEABLE,"blueprint",lSigil); AssignCommand(oDoor,ActionCloseDoor(oDoor)); AssignCommand(oDoor,ActionLockObject(oDoor)); DestroyObject(oMark); // ПРОВЕРКА SpeakString("В области" +GetName(oArea)+" создали плейс " +GetName(oSigil)); } Сообщение отредактировал gennady - Jan 18 2009, 15:15 |
![]()
Сообщение
#3043
|
|
Level 3 ![]() Класс: Псионик Характер: Chaotic Neutral Раса: Тварь ![]() |
Хм... А вот этого не знал. Зато теперь буду знать. Спасибо, gennady.
P.S. На досуге не заглянешь в тему Threads of Truth в Главном Зале? Хочется все-таки узнать мнение общественности (IMG:style_emoticons/kolobok_light/rolleyes.gif) |
![]()
Сообщение
#3044
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Кто знает в каком скрипте описана кнопочка отмены полиморфа??? Нужно срочно! (IMG:style_emoticons/kolobok_light/biggrin.gif)
|
![]()
Сообщение
#3045
|
|
Level 17 ![]() Класс: Волшебник Характер: Neutral Good Раса: Человек NWN: Скриптинг [PW] Axistown SR 1.9 NWNX ![]() |
Кто знает в каком скрипте описана кнопочка отмены полиморфа??? Нужно срочно! (IMG:style_emoticons/kolobok_light/biggrin.gif) Она вшита в движок.
|
![]()
Сообщение
#3046
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
Доброго всем! Народ, мучает такой вопрос, возможно ли как нить написать на скриптах бота для онлайн шарда?.. Чтобы не писать доп. приложений. Догадываюсь что нет, но хочется в этом убидится. И если вдруг я не прав, киньте линк плз.
--- к вышенаписаному топику --- В смысле есть ли в НВНке скрипты, для клиентской части, вот) можно ли выполнить runscript без прописи DebugMode 1 на шарде? народ, хелп плиз, очень срочно нада... |
![]()
Сообщение
#3047
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
лучше по этому поводу теребить шардовиков, но мне с моей сингловой колокольни видится только 1 вариант запуска скрипта со стороны пользователя - default.nss. Те ХБ чара, причем не только своего, а вообще всех на шарде. Теоретически бота с его помощью написать можно, простенького, типа "убийство всех монстров на карте". Но практически, без данных типа тэгов, точек и зон перехода, будет сложновато сделать что-то путное, если вообще возможно.
|
![]()
Сообщение
#3048
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
лучше по этому поводу теребить шардовиков, но мне с моей сингловой колокольни видится только 1 вариант запуска скрипта со стороны пользователя - default.nss. Те ХБ чара, причем не только своего, а вообще всех на шарде. Теоретически бота с его помощью написать можно, простенького, типа "убийство всех монстров на карте". Но практически, без данных типа тэгов, точек и зон перехода, будет сложновато сделать что-то путное, если вообще возможно. А моно поподробней про default.nss... Де должен находится/как запускать?) Пробывал писать пробные скрипты и запускать на шарде, не хочет =( Одно дело запустуть в модуле через runscript, а тут это не катит =( |
![]()
Сообщение
#3049
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
default.nss - это onHeartbeat скрипт игрока, исполняется каждый раунд. Можно попробовать написать какой-нибудь аи для игрового чара, основанный только на этом скрипте, но, думаю, игра не стоит свеч.
|
![]()
Сообщение
#3050
|
|
Level 1 Класс: Монах Характер: Lawful Good Раса: Гном ![]() |
короче так. нада чтоб у мобов генерировался дроп. желательно с ооочень маленким процентом выпадания.
заранее спасиба |
![]() ![]() |
Текстовая версия | Сейчас: 27th April 2025 - 15:33 |