Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

 Правила этого форума ПРАВИЛА РАЗДЕЛА
205 страниц V  « < 120 121 122 123 124 > »   
Ответить в эту темуОткрыть новую тему
> Вопросы новичков, Абсолютные глупости
Lex
сообщение Mar 7 2007, 16:44
Сообщение #3026


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



корявая организация: лишние переменные, в которых ты путаешься + сама структура перекручена, самому неудобно ее отслеживать.

+ у тебя в скриптах триггеры берутся по разным тэгам: Perd и Perd_Deru например.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Teranozavr_REX
сообщение Mar 7 2007, 17:21
Сообщение #3027


Level 4
**

Класс: Некромант
Характер: Chaotic Good
Раса: Нежить



*стёрто* пришла нянька ты кнула носом, ошибка в имени тега все заработало))
всем пасибо извените...
после прадников продолжем

Сообщение отредактировал Teranozavr_REX - Mar 7 2007, 17:48
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Mar 7 2007, 17:47
Сообщение #3028


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



ну что могу сказать. Отдебаж.
Введи в разных местах
NSS
SendMessageToPC(GetFirstPC(),"TriggerState="+IntToString(GetLocalInt(oTrig1, "TriggerState")));

узнаешь, где косяк. Или не присваивается, или условие глючит.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Teranozavr_REX
сообщение Mar 7 2007, 17:49
Сообщение #3029


Level 4
**

Класс: Некромант
Характер: Chaotic Good
Раса: Нежить



Это на заметку возьму пасибо

не все еще заработало )) и дебаг веселые вещи показывает пока помучаюсь если не получиться я вернусь))

Сообщение отредактировал Teranozavr_REX - Mar 7 2007, 18:08
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Teranozavr_REX
сообщение Mar 15 2007, 13:38
Сообщение #3030


Level 4
**

Класс: Некромант
Характер: Chaotic Good
Раса: Нежить



все косяки исправил ( вчасносте в определении тригера была рефр сылка а не тег и не работало (IMG:style_emoticons/kolobok_light/sad.gif) )
возникла новая проблема...

мне надо проверить есть ли у того кто наступил на тригер некий итем.
как сделатьпроверку я знаю вродебы
воврос в том как определить\обьявить обект что то типа "тот кто наступил на тригер"
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
StalkerDtN
сообщение Mar 15 2007, 14:21
Сообщение #3031


Level 5
Иконки Групп

Класс: Волшебник
Характер: Chaotic Good
Раса: Дракон
NWN: Скриптинг [Sn]



QUOTE(Teranozavr_REX @ Mar 15 2007, 17:38) [snapback]105767[/snapback]
воврос в том как определить\обьявить обект что то типа "тот кто наступил на тригер"
NSS
// The value returned by this function depends on the object type of the caller:
// 1) If the caller is a door it returns the object that last
//    triggered it.
// 2) If the caller is a trigger, area of effect, module, area or encounter it
//    returns the object that last entered it.
// * Return value on error: OBJECT_INVALID
//  When used for doors, this should only be called from the OnAreaTransitionClick
//  event.  Otherwise, it should only be called in OnEnter scripts.
object GetEnteringObject()



ps: используется на onEnter триггера)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Teranozavr_REX
сообщение Mar 15 2007, 18:32
Сообщение #3032


Level 4
**

Класс: Некромант
Характер: Chaotic Good
Раса: Нежить



пааасибо помогло все прикрасно работает ...

теперь последний так сказать штрих

НПС что респиться по событию тригера...
должен ити по некоему моршруту...
я его проложил точками маршрута...
так вот...
1) если просто проложить маршрут точками, то дойдя до конца маршрута НПС, возвращайеться назад, а надо что бы останавливался, это как то можно???
2) как скриптом заставить НПС ити к поинту ???
3) возможно ли сделатьчтото типа так:
НПС идет к поинту когда доходит уничтожаеться...( как уничтожатьуже нашел... там помойму задержка естьесли я не ошибаюсь до уничтожения если мона пользоваться ею то насколько она будет подтормаживать сервер...)

Сообщение отредактировал Teranozavr_REX - Mar 15 2007, 18:35
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Alian REXis
сообщение Mar 16 2007, 15:39
Сообщение #3033


Level 7
Иконки Групп

Класс: Обыватель
Характер: True Neutral
Раса: Человек
NWN: Модмейкер
Начало Войны



QUOTE(Teranozavr_REX @ Mar 15 2007, 18:32) [snapback]105785[/snapback]
2) как скриптом заставить НПС ити к поинту ???

NSS
AssignCommand(oNPC,ActionMoveToObject(GetWayPointByTag("tag")));
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Teranozavr_REX
сообщение Mar 16 2007, 17:41
Сообщение #3034


Level 4
**

Класс: Некромант
Характер: Chaotic Good
Раса: Нежить



пасибо помогло только там GetWaypointByTag если вдруг кто то еще решит воспользоваться))


как повернуть НПС так что бы он смотрел в заданом направлении??
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Mar 16 2007, 17:58
Сообщение #3035


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



SetFacing(...)
SetFacingPoint(...)

лексикон бы скачал и не парился
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Teranozavr_REX
сообщение Mar 16 2007, 18:56
Сообщение #3036


Level 4
**

Класс: Некромант
Характер: Chaotic Good
Раса: Нежить



Дальше
слот OnUsed
как определить обьект (плеера) кторый использовал предмет???

P.S с вами получаеться куда лудше и быстрее а главное веселее
а пролексикон уже писал естьон уменя не помогает((

Сообщение отредактировал Teranozavr_REX - Mar 16 2007, 18:57
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Mar 16 2007, 18:59
Сообщение #3037


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



омг.. ну если не Лексикон, то хоть фильр функций в скрипт-редакторе попользуй. Например попробуй саааамый тупой вариант - написать в фильтр слово "use". О!! Чудо!! Среди прочих было
NSS
GetLastUsedBy();

Колдовство, ей богу. Сам не понимаю, как оно так получилось.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Mar 16 2007, 20:00
Сообщение #3038


Level 12
Иконки Групп

Класс: Оборотень
Характер: Chaotic Neutral
Раса: Нежить
NWN: Скриптинг [Sn]



Небывальщина... (IMG:style_emoticons/kolobok_light/smile.gif)

QUOTE(Teranozavr_REX @ Mar 15 2007, 18:32) [snapback]105785[/snapback]
3) возможно ли сделатьчтото типа так:
НПС идет к поинту когда доходит уничтожаеться...( как уничтожатьуже нашел... там помойму задержка естьесли я не ошибаюсь до уничтожения если мона пользоваться ею то насколько она будет подтормаживать сервер...)

Можно триггером на "месте прибытия", который уничтожит нужный объект.

Но лучше построить очередь действий:

выглядеть будет примерно так:
NSS
AssignCommand(oNPC,ActionMoveToObject(GetWayPointByTag("tag")));
...
AssignCommand(oNPC,ActionDoCommand(DestroySelf(...))));

Чтобы очереть не сбилась "по пути" ее надо закрыть (SetCommandable).
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Teranozavr_REX
сообщение Apr 3 2007, 15:24
Сообщение #3039


Level 4
**

Класс: Некромант
Характер: Chaotic Good
Раса: Нежить



Доброе время суток, и снова свами я, со своими вопросами

два скриптика точнее наверное всегонавсегострочки интересуют
1) как сделать так что бы Чар получил бонус АС (скажем додж) на какой то интервал времени
2) как сделатьтак что бы Чар получил бонус к с килу (скажем Лоре) на какой то интервал времени

P/S обе эти вещи закручю на палочку... при использовании думаю должнополучиться)

Сообщение отредактировал Teranozavr_REX - Apr 3 2007, 15:27
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Apr 3 2007, 16:26
Сообщение #3040


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



см описания функций:
Neverwinter Script Source
ApplyEffectToObject()
EffectSkillIncrease()
EffectACIncrease()
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Teranozavr_REX
сообщение Apr 4 2007, 18:02
Сообщение #3041


Level 4
**

Класс: Некромант
Характер: Chaotic Good
Раса: Нежить



Neverwinter Script Source
#include "x2_inc_switches"
void main()
{
int nEvent = GetUserDefinedItemEventNumber();
if(nEvent == X2_ITEM_EVENT_ACTIVATE)
{
object oPC=GetLastUsedBy();
effect eACDodg=EffectACIncrease(20,AC_DODGE_BONUS,AC_VS_DAMAGE_TYPE_ALL);
ApplyEffectToObject(1,eACDodg,oPC,1.0);
SendMessageToPC(oPC,"TEST");
}
}

И снова я. Я тут как не мучался, не заработало. Уже пол дня сижу. Но день закончлся и мне пора может кто до утра поймет в чем тут ошибка.

что должно делать
есть итем с тегом А (бутылочка на которой висит использовать1 раз вдень)
есть скрипт с именем А ( собственноон прикреплен в начале)

мало того что нет ожидаемого эфекта ( а именно 20 додж ас)
так даже на строку дебага нереагирует ...

да и так и не понял что дает первый параметр у ApplyEffectToObject
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Apr 4 2007, 20:43
Сообщение #3042


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Цитата(Teranozavr_REX @ Apr 4 2007, 19:02) [snapback]106813[/snapback]
да и так и не понял что дает первый параметр у ApplyEffectToObject

DURATION_TYPE - тип наложения эффекта.
Примерно вот так:
TEMPORARY - временный
INSTANТ - постоянный
PERMANENT - разовый
Разница между INSTANT и PERMANENT весьма зыбкая.. но некоторые эффекты накладываются только каким-то одним (из этих 2х) образом. Подробнее см. описания или лексикон.

по скрипту:
Neverwinter Script Source
object oPC=GetLastUsedBy();

не канает. Читай описание функции.
Тебе нужна функция связанная с использованием предмета, а не взаимодействием с объектом. GetLastItemActivator() - вроде такая.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
diggers
сообщение Apr 5 2007, 01:10
Сообщение #3043


Level 2
*

Класс: Фея
Характер: Chaotic Good
Раса: Фея



DURATION_TYPE_PERMANENT это разновидность DURATION_TYPE_TEMPORARY, только при PERMANENT таймер эффекта вообще не крутится, то есть эффект будет держаться вечно(пока не будет отдиспелен). То есть, точнее:
разница между INSTANT и (PERMANENT\TEMPORARY) весьма зыбкая..

Вместо таких громоздких констант удобнее использовать их значения:
DURATION_TYPE_INSTANT = 0
DURATION_TYPE_TEMPORARY = 1
DURATION_TYPE_PERMANENT = 2

В ApplyEffectToObject(1,eACDodg,oPC,1.0);
используется TEMPORARY(первый параметр) на длительность __1 сек__(4ый параметр).

SendMessageToPC(oPC,"TEST");
Для отладки лучше всегда использовать:
SendMessageToPC(GetFirstPC(),"TEST");
а если бы Teranozavr_REX использовал
SendMessageToPC(GetFirstPC(),"debug:"+GetName(oPC));
то потратил бы на отладку всего пару минут. Сразу понял бы где ошибка.

Если отлаживать надо много мест в скрипте, то лучше вывод сообщений отладки сделать через свою функцию:
Neverwinter Script Source
#include "......."
void debugm(str string){
  SendMessageToPC(GetFirstPC(),"debug: "+str);
}
void main()
{
...
debugm("messaga tyt");
...
}

Тогда глаза не будут так разбегаться от обилия кода. Кому как, мне вынос кусков кода в функции сильно помогает(где это возможно).
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Apr 5 2007, 08:41
Сообщение #3044


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Цитата(diggers @ Apr 5 2007, 02:10) [snapback]106824[/snapback]
DURATION_TYPE_PERMANENT это разновидность DURATION_TYPE_TEMPORARY, только при PERMANENT таймер эффекта вообще не крутится, то есть эффект будет держаться вечно(пока не будет отдиспелен).

наверное. Хотя вроде были случаи, когда это неверно (для визуалок), но я так навскидку их не вспомню. Но на практике обычно получалось так:
если нужен временный эффект - темпорари, а если постоянный, то инстант/перманент, в зависимости от описания.

Цитата(diggers @ Apr 5 2007, 02:10) [snapback]106824[/snapback]
Вместо таких громоздких констант удобнее использовать их значения:
DURATION_TYPE_INSTANT = 0
DURATION_TYPE_TEMPORARY = 1
DURATION_TYPE_PERMANENT = 2

тоже не сказал бы. Читать удобнее константы.
Цитата(diggers @ Apr 5 2007, 02:10) [snapback]106824[/snapback]
то потратил бы на отладку всего пару минут. Сразу понял бы где ошибка.

я потратил пару секунд чтобы понять, что не приходит сообщение потому что oPC определен неверно. Так что все относительно (IMG:style_emoticons/kolobok_light/smile.gif) . Но вынос функции дебага эт правильный ход, вроде как все так делают.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Teranozavr_REX
сообщение Apr 5 2007, 12:19
Сообщение #3045


Level 4
**

Класс: Некромант
Характер: Chaotic Good
Раса: Нежить



всем спасибо заработало...

как написать условие используют только (список класов) и если есть хоть какой то другой класс то предмет не используеться...

может есть какаято командочка ???
потому что мне пока только на ум приходит проверить через
Neverwinter Script Source
GetLevelByClass

по всем классам которые не должны использовать а так как таких намногобольше чем тех ктоиспользует получаеться очень громоздкое условие
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Apr 5 2007, 12:20
Сообщение #3046


Level 9
Иконки Групп

Класс: Обыватель
Характер: Lawful Good
Раса: Человек
NWN: Модмейкер
Рыцарская Сага



Тут Teranozavr_REX плутает в трех соснах, ему уже объяснили на пальцах, что нужно делать, но мне кажется вы его запутали (IMG:style_emoticons/kolobok_light/biggrin.gif) . А парню нужно помочь написать скрипт.
Как это все реализовать?
Повесь на свои бутылки свойство «Активировать предмет», это же у тебя бутылка и ее и так используем один раз (IMG:style_emoticons/kolobok_light/biggrin.gif) .
На модульные события в слот OnActivateItem кинь скрипт:
Neverwinter Script Source
// ДЛЯ ТЕСТА
void TestEffect(int iEfTest, object oPC)
{
effect eFirst = GetFirstEffect(oPC);
  while(GetIsEffectValid(eFirst))
  {
  if(GetEffectType(eFirst)== iEfTest)
  {
    SendMessageToPC(GetFirstPC(),"Номер тестируемого эффекта: "+IntToString(iEfTest));
    break;
  }
  eFirst = GetNextEffect(oPC);
  }
}
/////////////////////////////////////////
//:: СЛОТ: OnActivateItem
/////////////////////////////////////////
void main()
{
object oActivator = GetItemActivator(); // это активатор объекта(наш PC)
object oActivated = GetItemActivated(); // это активируемый объект
string sTag = GetTag(oActivated);

if (sTag == "A") // Нужный ли объект использован
{
  effect eACDodg = EffectACIncrease(20, AC_DODGE_BONUS);
  ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eACDodg, oActivator, 120.0);
  DelayCommand(1.0, TestEffect(EFFECT_TYPE_AC_INCREASE, oActivator)); // Удали после теста
}
}


В принципе проверка работы кода и не нужна, эффект появится на ПС в виде иконки и в свойствах. Но так можешь узнать номер эффекта.

P.S. toAiwan: Как-то отправлял тебе на мыло (или в этом году, или в конце прошлого) демо мод просмотра визуальных эффектов. Какова его судьба? Забраковал или со спамом выкинул? (IMG:style_emoticons/kolobok_light/biggrin.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Teranozavr_REX
сообщение Apr 5 2007, 13:57
Сообщение #3047


Level 4
**

Класс: Некромант
Характер: Chaotic Good
Раса: Нежить



Ой боюсь это ты меня запутал)))
Я задаю маленькие вопросы, некоторых они смущают своей тривиальностью*если не сказать что они думают промои познания и прото чтоя тут забыл*, но получая на них ответы я полностью начинаю понимать как работает мой скрипт)))

трогать слот OnActivateItem я боюсь там стоит стандартный какойто скрипт и поставив туда свой может что то перестать работать

Все равно и тебе спасибо. Как минмум, я теперь еще знаю про существование GetItemActivated
что тоже есть гуд )))

пойду попытаюсь понять как работает твой вариант скрипта, можети это на пользу пойдет тоже.

Вопрос написаный моим постом выше остаеться актуальный

Сообщение отредактировал Teranozavr_REX - Apr 5 2007, 13:59
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Apr 5 2007, 14:24
Сообщение #3048


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Цитата(Teranozavr_REX @ Apr 5 2007, 13:19) [snapback]106842[/snapback]
как написать условие используют только (список класов) и если есть хоть какой то другой класс то предмет не используеться...

у тебя есть тока 2 функции для такой задачи:
Neverwinter Script Source
GetClassByPosition()
GetLevelByClass()

в принципе можно перебрать все классы игрока (макс их 3) и проверять, не являются ли эти классы запретными для данного предмета.
Тут выгодно использовать свою доп. функцию, которая будет сравнивать класс со списком классов, которым запрещено/разрешено использовать предмет.


что-то такое (тулса под рукой нема)
Neverwinter Script Source
int Check(int nPCClass)
{
// тут проверяешь передаваемый класс игрока с нужным списком. Придется по 1 элементу.
}
int StartInCondition() // или как она там называется
{
int i = 1;
int nClass = GetClassByPosition(/*тут какие-то параметры*/,i);
while (nClass!=CLASS_TYPE_INVALID) /*или какая там константа на невалидный класс*/
{
if (Check(nClass)) return TRUE; /*или FALSE. Или что нужно.*/
i++;
nClass = GetClassByPosition(/*тут какие-то параметры*/,i);
}
}


Цитата(gennady @ Apr 5 2007, 13:20) [snapback]106843[/snapback]
Тут Teranozavr_REX плутает в трех соснах, ему уже объяснили на пальцах, что нужно делать, но мне кажется вы его запутали

имхо если человек хочет разобраться, ему надо помогать, а не решать за него задачу. Но это так.. у каждого свой подход (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Teranozavr_REX
сообщение Apr 5 2007, 15:36
Сообщение #3049


Level 4
**

Класс: Некромант
Характер: Chaotic Good
Раса: Нежить



Супер !!! оно все получилось))) теперь у меня есть баночка Зщита Сагры которая дает воинским классам (и только им ) +1\2 додж ас за лвл

подем дальше
Естьу меня некий сорк НПС проблема в том что заклинания он кастует по своим каким то странным соображениям. Очень бы хотелось что бы при виде воина( скорее всего принанисении фихз урона) он накладывал себе вординг и щитки, а не спелмантию и кидался огнеными стрелами по чару с поглотом огня ( кстати в случае дождиков он соображает что по 50% имен и 40 поглота дождиками лупитьбезсмысленно)

если задача не очень сложная и её можнорасказатьна пальцах буду очень благодарен
выкладыывать трехкилометровый готовый скрипт нестоит)) ибо сорк заработает но я мало чему научюсь с этого
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Apr 5 2007, 16:07
Сообщение #3050


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Сорку надо дать пакет защитный при левел апе в визарде. Точнее специализацию и проверить в бою. Но все это призрачно. Лечится переписыванием АИ от Биовар. Скрипт такой тут не выложим форум рухнет.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

205 страниц V  « < 120 121 122 123 124 > » 
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 14th June 2024 - 19:34