![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
![]() ![]()
Сообщение
#1
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
В данной теме разрешается писать только обучающимся. Если кто-то найдет в моих материалах грубую ошибку, то может сообщить мне или Лексу и мы поправим.
Во первых, забудьте что скрипты это трудно непонятно и сложно. Забудьте все то что бедный ваш мозг пытается обработать безуспешно и вы не можете понять простые вещи. Это нормально. Я буду говорить не по книгам а просто, описывая ситуацию или знания необходимые вам максимально понятно и по возможности проектировать это на бытовом уровне, оперируя образными картинками. Так как именно такие схемы будут работать в вашем случае. Ведь люди с математическим умом все схватывают сами и на лету. Итак начнем. Скрипт сам по себе это маленький файлик. Он работает как любой файл в программе. То что вы пишете в редакторе это NSS просто информация для компилятора, в игре то что написано вами не работает, а работает скомпилированный файл NSC. Поэтому написанное в редакторе и не компельнутое не работает. Как отличить код хорошего кодера от разгильдяя? По аккуратности и описаниям-комментариям. У тех, кто понимает скрипт все правильно, кто не понимает все кидает в кучу. Поэтому сразу учитесь писать красиво и понятно. Сделайте себе шапку для скриптов и пишите в ней, давая описания. В папке скриптов через пол года вы сможете понять кто и что сделал в скрипте и элементарно для чего вам он нужен. Это важно. Аккуратность. Пример шапки скрипта: Neverwinter Script Source //::////////////////////////////////////////////// //:: Name: //:: Copyright © 2006 WRG! Team //::////////////////////////////////////////////// /* Описание */ //::////////////////////////////////////////////// //:: Created By: Aiwan //:: Created On: 06.10.2007 //::////////////////////////////////////////////// void main() { } Дальше. |
![]() |
![]()
Сообщение
#2
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Вы все поняли, что объект можно представить в любом обозначении. Вы верно проследили, что надо во всем скрипте изменить порядок. Что бы лучше понять что происходит, я вам опишу словами. Мы попросту скрипту представляем, что у нас есть объект и мы будем с ним работать дальше. Что бы каждый раз не икать его мы сразу, четко его определяем.
Neverwinter Script Source object oSelf = OBJECT_SELF; Дананя строка сосотит из двух важных частей они заключены между знаком равно. В этой строке ДВА ДЕЙСТВИЯ. Первым, мы объявили скрипту, что у нас есть объект object oSelf. Второым мы ПРИРОВНЯЛИ этот наш объявлленный объект к OBJECT_SELF. Тем самый четко дали понять скрипту кто есть ХУ. Верхний код можно написать и таким образом: Neverwinter Script Source void main() { object oSelf; // Объявляем скрипту, что у нас используется ОБЪЕКТ oSelf oSelf = OBJECT_SELF; // Определяем его прировняв к OBJECT_SELF } То же самое мы делаем и с двумя цифровыми данными в скрипте: Neverwinter Script Source int iMax = GetMaxHitPoints(oSelf); int iD = iMax-5; Мы их представляем скрипту и что сократить написание сразу же определяем с помощью каких либо функций. В данном случае это понимается так: Neverwinter Script Source void main() { object oSelf; // Объявляем скрипту, что у нас используется ОБЪЕКТ oSelf = OBJECT_SELF; // Определяем его прировняв int iMax; // Объявляем, что у нас будет использоваться интеджер с именем iMax iMax = GetMaxHitPoints(oSelf); // Он будет равен >> // Get Max Hit Points ВЗЯТЬ МАКСИМАЛЬНЫЕ ХИТ ПОИНТЫ объекта oSelf int iD; // объявляем, что у нас будет еще оно число iD = iMax-5; // Оно будет равно от максимального числа хитпоинов отнять 5 } В общем суть на пальцах такая. Мы говорим: "В нашей команде есть ИГРОКИ (object, int, float). У них есть своя специализация и ФАМИЛИЯ." Когда мы объявляем ИГРОК то это представление объекта. Когда говорим ИГРОК ПЕТРОВ, ВРАТАРЬ СИДОРОВ, ЗАЩИТНИК ИВАНОВ, то это представление и определение кто именно. Игроки могут меняться и наше определение объекта может меняться в скриптах тоже. ЗАЩИТНИКИ, НАПАДАЮЩИЕ могут смениться. Не важно кто защищает ворота и кто в нападении. Мы можем их сменить. Но прежде чем ввести их в игру судья объявляет что игроки поменялись! Так же можно менять в скрипте. Neverwinter Script Source void main() { object oSelf; // Объявляем скрипту, что у нас используется ОБЪЕКТ oSelf = OBJECT_SELF; // Определяем его прировняв int iMax; // Объявляем, что у нас будет использоваться интеджер с именем iMax iMax = GetMaxHitPoints(oSelf); // Он будет равен >> // Get Max Hit Points ВЗЯТЬ МАКСИМАЛЬНЫЕ ХИТ ПОИНТЫ объекта oSelf int iD; // объявляем, что у нас будет еще оно число iD = iMax-5; // Оно будет равно от максимального числа хитпоинов отнять 5 effect eDamage; // объявляем, что у нас используется эффект eDamage = EffectDamage(iD); // Эффект Effect Damage поврежедения равен числу iD if(GetIsPC(oSelf)==TRUE) // Если oSelf это РС { // Если это игрок то мы сменим определение еффекта и вылечим РС eDamage = EffectHeal(iMax); // на число iMax его максимальные хитпоинты } AssignCommand(oSelf, ApplyEffectToObject(DURATION_TYPE_INSTANT,eDamage, Self)); } Если есть вопросы спрашивайте. Добавлено через 106 секунд Мне важно, что бы вы поняли описание объектов и их определение можно менять в скрипте. Добавлено через 54 секунды Скажите что изменилось в скрипте? Neverwinter Script Source void main()
{ object oSelf = OBJECT_SELF; int iMax = GetMaxHitPoints(oSelf); int iD = iMax-5; effect eDamage = EffectDamage(iD); if(GetIsPC(oSelf)==TRUE) { eDamage = EffectHeal(iMax); } AssignCommand(oSelf, ApplyEffectToObject(DURATION_TYPE_INSTANT,eDamage, Self)); } |
![]() ![]() |
Текстовая версия | Сейчас: 26th April 2025 - 15:20 |