База скриптов, Готовые скрипты. Описание обязательно. |
Здравствуйте, гость ( Вход | Регистрация )
База скриптов, Готовые скрипты. Описание обязательно. |
Aug 12 2004, 20:15
Сообщение
#2
|
|||||||||
Level 5 Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени |
автор: _kaa_ Вот стандартный файл для алкоголя:
Самый простой способ добавить что-то: Так была реализованна отрава на Экзисе по заказу Илэссэ (IMG:style_emoticons/kolobok_light/smile.gif) Обрабатывался тег бутылки. Последние цифры преобразовывались в задержку, после который выпивший эту гадость умирал, дрыгая ногами.
Вот вызываемый скрипт смерти: `lg_anim_death`
Добавлено в [mergetime]1092332152[/mergetime] <small>Добавлено в 17:26</small> Шпаргалка Айвана по скриптам Код дело в том, что при object oJamp = GetTransitionTarget(OBJECT_SELF); if (GetIsPC(oPC)) { AssignCommand(oPC, JumpToObject(oJamp)); НЕ ВСЕГДА МОЖЕТ ПРОИЗОЙТИ СКАЧОК надо делать так: string sJamp = GetTag(GetTransitionTarget(OBJECT_SELF)); .... JumpToObject(GetObjectByTag(sJamp)); ************************************************ tag = mask + INtToString(Number); mask = "WP_NPCTAG_" Number = 1..12 ************************************************* DestroyObject(GetItemInSlot(INVENTORY_SLOT_CARMOR,oPC)); ************************************************* > ЖУРНАЛЬНЫЕ ЗАПИСИ ПО КВЕСТОВЫМ ПРЕДМЕТАМ object oItem=GetModuleItemAcquired(); if(GetTag(oItem)=="SEAMAGAZIN_PIRAT") { if(GetLocalInt(oItem,"DO_ONCE")!=1 && GetItemPossessor(oItem) == GetFirstPC()) { AddJournalQuestEntry("ANDRA_PIRATES", 4, GetFirstPC()); SetLocalInt(oItem,"DO_ONCE",1); } } ***************************************************** > Увеличение числа переменной на единицу за раз. SetLocalInt(объект_1, "переменная_1", GetLocalInt(объект_1, "переменная_1") + 1); На кого ставится переменная? объект_1 = OBJECT_SELF - если на сам триггер или GetEnteringObject() - если на наступившего ******************************** > Рандом на начало строки int StartingConditional() { // Add the randomness if(Random(100) >= 15) return FALSE; return TRUE; } ************************************************* > Дестрой нескольких объектов по одинаковому тэгу. при СreateObject укажи новый тэг "new_tag" а потом, когда условие соблюдено, делаешь так: void main() { int i=0; object oScelet = GetObjectByTag("new_tag",i); while (oScelet!=OBJECT_INVALID) { DestroyObject(oScelet); i++; oScelet = GetObjectByTag("new_tag",i) } } **************************************************** > Проверка шмотки на игроке if (GetTag(GetItemInSlot(INVENTORY_SLOT_CARMOUR,GetPCSpeaker())=="тэг нужной шмотки") >*************************************** > ВХОД в локацию по проверке переменной object oPC = GetEnteringObject(); object oDoor = GetObjectByTag("тэг_двери1"); // до затопления if (!GetIsPC(oPC)) return; if (GetLocalInt(oPC, "FLOODED") == 1) oDoor = GetObjectByTag("тэг_двери2"); // после затопления AssignCommand(oDoor, ActionOpenDoor(oDoor)); AssignCommand(oPC, JumpToObject(oDoor)); >*************************************** // Скрипт может стоять НА PC в диалоге!!! void main() { object oPC = GetPCSpeaker(); object oItem = GetItemPossessedBy(oPC, "ZAVTRAK"); if (GetTag(oItem) == "ZAVTRAK") { SpeakString("Смотри не лопни!"); DestroyObject(oItem); // УБИВАЕТ ПРЕДМЕТ } else { SpeakString("Ой! Да где же оно?"); } } >****************************************** // Скрипт должен стоять НА НЕПИСЕ!!! void main() { object oPC = GetPCSpeaker(); object oItem = GetObjectByTag("ZAVTRAK"); if (GetTag(GetItemPossessedBy(oPC, "ZAVTRAK")) == "ZAVTRAK") { SpeakString("Смотри не лопни!"); ActionGiveItem(oItem, oPC); // ОТДАЕТ ПРЕДМЕТ } else { SpeakString("Ой! Да где же оно?"); } } >****************************************** void main() { object oPC = GetPCSpeaker(); object oItem = GetItemPossessedBy(oPC, "MINERS_PISMO"); object oNos = GetObjectByTag("SUPER_NOS_IN_MARKET"); AssignCommand (oNos, JumpToObject(GetObjectByTag("POISON_SUPER_NOS"))); if (GetTag(oItem) == "MINERS_PISMO") { DestroyObject(oItem); // УБИВАЕТ ПРЕДМЕТ SpeakString("Отлично, Грэмм у нас в руках!"); } } >****************************************** > Дает вещь из палитры, а не из инвентаря object oPC = GetFirstPC(); CreateItemOnObject("ResRef-вещи", oPC, число); Последний параметр нужен только если ты даешь типа стрел или пуль... короче количество в ячейке инвентаря. Само собой 2 меча ты дать таким образом не сможешь :)... >****************************************** <small>Добавлено в 17:29</small> автор Valleo Маленький скриптик для реализации болота:
|
||||||||
Текстовая версия | Сейчас: 1st November 2024 - 02:56 |