![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
![]()
Сообщение
#1
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Здесь будут вывешаны самые простые скрипты на которых можно построить новичку свой модуль. Любой пост кроме скрипта с описанием будет считаться спамом и автор получит предупреждение. Всем Мастерам скриптов советую максимально разжевывать куда, как и зачем вставлять код. При этом максимально просто писать код. Этим мы поможем новичкам не только справиться с проблемой, но и понемногу научим понимать код. Сложные скрипты писать в другую тему.
============================ LEX: Беру тему под контроль. Если тут в скриптах или комментариях ошибки, пишу в то же посте, где допущена неточность. Авторам постов обратить внимание на эти ремарки и вносить коррективы по необходимости. ============================ Начем. Самое главное, это начало модуля. Тут все написано, как раздеть игрока, одеть, дать ему денег и отправить дальше. Ставится он на слот модуля OnClientEnter. NSS //:://////////////////////////////////////////////
//:: OnEnter am_mod_enter //:: Copyright © 2005 WRG! //::////////////////////////////////////////////// /* Скрипт на вход в модуль при старте. */ //::////////////////////////////////////////////// //:: Created By: Aiwan //:: Created On: 22.08.2005 //::///////////////////////////////////////////// void main() { object oMod = GetModule(); // Наш модуль object oPC = GetEnteringObject(); // Того кто вошел // Если это не игрок (а ДМ к примеру) или уже было раз, то сделаем возврат // скрипта, т.е. дальше он не пойдет. if (!GetIsPC(oPC) || GetLocalInt(oMod, "START_GAME")) {return;} { SetLocalInt(oMod, "START_GAME", TRUE); // Что бы сработал только один раз //--------- Откроем туман над локацией если вам надо. К примеру в городе ------- ExploreAreaForPlayer(GetObjectByTag("ТАГ_НУЖНОЙ_ЛОКАЦИИ"), oPC); //--------------- Проводим деноминацию денежных накоплений --------------------- AssignCommand(oPC, TakeGoldFromCreature(GetGold(oPC),oPC,TRUE)); // Заберем все денежки //------------------ Убиваем весь инвентарь ------------------------------------ object oItem = GetFirstItemInInventory(oPC); // Первый итем в инвентаре while(GetIsObjectValid(oItem)) // Пока такой объект существует { DestroyObject(oItem); // Удаляем его oItem = GetNextItemInInventory(oPC); // Берем другой объект... } //------------------ Убиваем всю амуницию ------------------------------------- int i=0; while(i<14) // ПОКА i меньше 14. 14 - это количество всех слот у объекта { DestroyObject(GetItemInSlot(i, oPC)); // i++; // Это значит i увеличится на еденичку от своего значения // Было ноль к примеру, станет 1 и т.д. } //------------------------ Создаем предметы ------------------------------------ // Если вам нужны отдельно каждому классу по несколько предметов, то // скопируйте кусок кода еще и измените CLASS_TYPE_ Наведите курсор, // нажми F2 и выберите нужное значение константы // int Class = GetClassByPosition(1, oPC); // switch (Class) // В зависимости от класса // { // case CLASS_TYPE_BARBARIAN: // { // CreateItemOnObject("ResRef_Объекта", oPC,1); // } // case CLASS_TYPE_FIGHTER: // { // CreateItemOnObject("ResRef_Объекта", oPC,1); // } // } GiveGoldToCreature(oPC, 5000); // Даем золотишко CreateItemOnObject("ResRef_Объекта1", oPC, 1); CreateItemOnObject("ResRef_Объекта2", oPC, 1); CreateItemOnObject("ResRef_Объекта3", oPC, 30); // 1 - это количество в стеке, если вам надо 30 стрел, то ставьте там 30 //---------------------- Опознаем предметы ----------------------------------- object oItemCr = GetFirstItemInInventory(oPC); while(GetIsObjectValid(oItemCr)) { SetIdentified(oItemCr,TRUE); oItemCr = GetNextItemInInventory(oPC); } //-------------------- Уровень игрока для игры в модуле ------------------------ // К примеру нам нужен игрок 5 уровня. Смотрим таблицу уровней и видим, // что Level 5 = 10000 xp. { SetXP(oPC, 10000); } //---------------------- Оденем нашего игрока --------------------------------- AssignCommand(oPC, ActionEquipMostEffectiveArmor()); //---------------------------------- END --------------------------------------- } } |
![]() |
![]()
Сообщение
#2
|
|
Level 6 ![]() ![]() Класс: Маг Характер: Lawful Evil Раса: Нежить ![]() |
Цитата ЗАБЫЛ!Слот OnSpawn - вот куда подходит моя муть. Возьми любого NPC и выставь в этот слот свой скрипт, как он написан. Увидишь, что он не работает. По очень простой причине не работает - потому что это просто ничего не значащий набор букв до тех пор, пока в скрипт не добавлена реализация этой функции напрямую или инклюдом. Конкретно у тебя используется вызов ф-ции из инклюда x0_i0_corpses, автор Naomi Novik, и без подключения этого инклюда скрипт не будет компилироваться. Реализацию ф-ции интересующиеся могут посмотреть там же. Суть ее отличия - убийство таргета без учета "plot"-флага. Цитата Почти все термины,переменные,образцы - английский язык.Если его перевести для себя все - нужно только уметь соединять правильно,поэтому я очень долго мучаюсь даже с простыми наборами... Складываются в вижу слова не, смысл предложение. Сообщение отредактировал Talarasha - Sep 3 2011, 15:16 |
![]()
Сообщение
#3
|
|
Level 5 ![]() ![]() Класс: Вор Характер: Neutral Good Раса: Человек ![]() |
Возьми любого NPC и выставь в этот слот свой скрипт, как он написан. Увидишь, что он не работает. По очень простой причине не работает - потому что это просто ничего не значащий набор букв до тех пор, пока в скрипт не добавлена реализация этой функции напрямую или инклюдом. Конкретно у тебя используется вызов ф-ции из инклюда x0_i0_corpses, автор Naomi Novik, и без подключения этого инклюда скрипт не будет компилироваться. Реализацию ф-ции интересующиеся могут посмотреть там же. Суть ее отличия - убийство таргета без учета "plot"-флага. Складываются в вижу слова не, смысл предложение. Какая версия Невервинтера у тебя?Ъ У меня работает,когда компливировал он мне выдал "Ошибка!Файл существует с данным содержанием существует!Заменить?"я и заменил.У меня работает. Сообщение отредактировал ReZkiy - Sep 4 2011, 12:51 |
![]() ![]() |
Текстовая версия | Сейчас: 27th April 2025 - 06:43 |