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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 90 91 92 93 94 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
gennady
сообщение May 17 2006, 09:39
Сообщение #2266


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

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



Спасибо вам Aiwan за ответ. Скрипт конечно не компелировался, пришлось выкинуть все локалки и стринги, и заточить под собственные нужды. Фразу - «ВКЛЮЧИТЕ РЕЖИМ ОБНАРУЖЕНИЯ.», оставил при любом режиме, пусть колбасит игрока, но это немного некорректно, когда этот режим включен. Перейти на 1.66 нет возможности, да и нет необходимости, пока игра не дописана. Поэтому пробовал через эффект, но не нашел оный. Спасибо Лексу за библиотеку. Интересно, никто не делал библиотеку эффектов? Я попытался, описал полторы сотни, работает нормально, но не все еще внес. Если еще подключить библиотеку Лекса, то это облегчит работу по скриптам с эффектами. В общем идея такая:

NSS
// *********** БИБЛИОТЕКА ЭФФЕКТОВ ************    #include "effect_one"

effect e1i = EffectVisualEffect(VFX_FNF_DISPEL);
// Воронка синего тумана 1
effect e2i = EffectVisualEffect(VFX_FNF_DISPEL_DISJUNCTION);
// Воронка синего тумана 2
effect e3i = EffectVisualEffect(VFX_FNF_DISPEL_GREATER);
// Воронка синего тумана 3
effect e4i = EffectVisualEffect(VFX_FNF_IMPLOSION);
// ЖелтаЯ воронка
effect e5i = EffectVisualEffect(VFX_FNF_LOS_EVIL_10);
// НегативнаЯ энергиЯ Красный круг 1
effect e6i = EffectVisualEffect(VFX_FNF_LOS_EVIL_20);
// НегативнаЯ энергиЯ Красный круг 2
effect e7i = EffectVisualEffect(VFX_FNF_LOS_EVIL_30);
// НегативнаЯ энергиЯ Красный круг 3
effect e8i = EffectVisualEffect(VFX_FNF_LOS_HOLY_10);
// круг желтый 1
effect e9i = EffectVisualEffect(VFX_FNF_LOS_HOLY_20);
// круг желтый 2
effect e10i = EffectVisualEffect(VFX_FNF_LOS_HOLY_30);
// круг желтый 3
effect e11i = EffectVisualEffect(VFX_FNF_NATURES_BALANCE);
// Зеленый круг животных
effect e12i = EffectVisualEffect(VFX_FNF_PWKILL);
// Красный круг пентаграммы
effect e13i = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_2);
// ФиолетоваЯ спираль и круг
effect e14i = EffectVisualEffect(VFX_FNF_HOWL_MIND);
// Страх синий круг
effect e15i = EffectVisualEffect(VFX_FNF_HOWL_ODD);
// Страх фиолетовый круг
effect e16i = EffectVisualEffect(VFX_FNF_HOWL_WAR_CRY);
// Страх белый круг
  effect e17i = EffectVisualEffect(VFX_IMP_PULSE_FIRE);
// Огненный импульсный круг
  effect e18i = EffectVisualEffect(VFX_IMP_PULSE_COLD);
// синий импульсный круг

// ***********  ИНТЕРЕСНЫЕ  **********
effect e19i = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_3);
// ГолубаЯ  звезда под ногами
effect e20i = EffectVisualEffect(VFX_FNF_WORD);
// БольшаЯ желтаЯ звезда под ногами
effect e21i = EffectVisualEffect(VFX_FNF_SUMMON_CELESTIAL);
// Врата Призыва синий луч
effect e22i = EffectVisualEffect(VFX_FNF_SUMMON_GATE);
// Врата Призыва огненный взрыв
effect e23i = EffectVisualEffect(VFX_FNF_WAIL_O_BANSHEES);
// Девка
effect e24i = EffectVisualEffect(VFX_FNF_WEIRD);
// Змей двуглавый
effect e25i = EffectVisualEffect(VFX_IMP_DISPEL);
// Голубое облако
  effect e26 = EffectVisualEffect(VFX_DUR_PROT_PREMONITION);
// Глазастое синее облако

// ***********  ВЗРЫВНЫЕ  **********
effect e27i = EffectVisualEffect(VFX_FNF_FIREBALL);
// Большой огненный взрыв
effect e28i = EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_ACID);
// Взрыв газа зеленый
effect e29i = EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_EVIL);
// Взрыв газа красный
effect e30i = EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_FIRE);
// Огненный взрыв
effect e31i = EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_GREASE);
// Взрыв газа черный
effect e32i = EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_MIND);
// Взрыв газа синий
effect e33i = EffectVisualEffect(VFX_FNF_BLINDDEAF);
// Большой серебристый взрыв
effect e34i = EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_NATURE);
// Взрыв газа болотный
effect e35i = EffectVisualEffect(VFX_FNF_LOS_NORMAL_10);
// Звуковой взрыв 1
effect e36i = EffectVisualEffect(VFX_FNF_LOS_NORMAL_20);
// Звуковой взрыв 2
effect e37i = EffectVisualEffect(VFX_FNF_LOS_NORMAL_30);
// Звуковой взрыв 3
effect e38i = EffectVisualEffect(VFX_FNF_SOUND_BURST);
// Большой звуковой взрыв
effect e39i = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_1);
// Серебристый взрыв
effect e40i = EffectVisualEffect(VFX_FNF_SUMMON_UNDEAD);
// Серебристый малый взрыв и голос страха
effect e41i = EffectVisualEffect(VFX_COM_CHUNK_RED_LARGE);
// Большой взрыв красные кости
effect e42i = EffectVisualEffect(VFX_COM_CHUNK_RED_MEDIUM);
// взрыв красные кости
effect e43i = EffectVisualEffect(VFX_COM_CHUNK_RED_SMALL);
// взрыв красные кости
effect e44i = EffectVisualEffect(VFX_COM_CHUNK_GREEN_MEDIUM);
// Взрыв зеленые кости
effect e45i = EffectVisualEffect(VFX_COM_CHUNK_GREEN_SMALL);
// Взрыв зеленые кости
effect e46i = EffectVisualEffect(VFX_COM_CHUNK_YELLOW_MEDIUM);
// Взрыв желтые кости
effect e47i = EffectVisualEffect(VFX_COM_CHUNK_YELLOW_SMALL);
// Взрыв желтые кости
effect e48i = EffectVisualEffect(VFX_COM_CHUNK_BONE_MEDIUM);
// Взрыв костей нежить
effect e49i = EffectVisualEffect(VFX_COM_HIT_ACID);
// Малый зеленый взрыв
effect e50i = EffectVisualEffect(VFX_COM_HIT_FIRE);
// МалаЯ огненнаЯ вспышка
effect e51i = EffectVisualEffect(VFX_DUR_CALTROPS);
// Взрыв ежиков

// ***********  ЗАКЛИНАНИЕ  ***********
effect e52i = EffectVisualEffect(VFX_FNF_HORRID_WILTING);
// Увeдание Аб-ма
effect e53i = EffectVisualEffect(VFX_FNF_ICESTORM);
// Ледeной шторм
effect e54i = EffectVisualEffect(VFX_FNF_METEOR_SWARM);
// Метеорный дождь
effect e55i = EffectVisualEffect(VFX_FNF_FIRESTORM);
// Огненный шторм
effect e56i = EffectVisualEffect(VFX_FNF_TIME_STOP);
// Часы
effect e57 = EffectVisualEffect(VFX_DUR_BIGBYS_CLENCHED_FIST);
// Рука Бигли
effect e58 = EffectVisualEffect(VFX_DUR_BIGBYS_CRUSHING_HAND);
// Захват Бигли
effect e59 = EffectVisualEffect(VFX_DUR_BIGBYS_INTERPOSING_HAND);
// Вращ рука Бигли
effect e60 = EffectVisualEffect(VFX_DUR_WEB);
// Паутина удержание
effect e61 = EffectVisualEffect(VFX_DUR_WEB_MASS);
// Паутина удержание под ногами
effect e62 = EffectVisualEffect(VFX_DUR_PROT_BARKSKIN);
// Кожа кора
effect e63 = EffectVisualEffect(VFX_DUR_PETRIFY);
// КаменнаЯ кожа
effect e64 = EffectVisualEffect(VFX_DUR_PROT_SHADOW_ARMOR);
// ЧернаЯ кожа
effect e65 = EffectVisualEffect(VFX_DUR_GHOSTLY_PULSE);
// Теневой режим
effect e66 = EffectVisualEffect(VFX_DUR_GHOSTLY_VISAGE);
// Призрачный вид
  effect e67 = EffectVisualEffect(VFX_DUR_ETHEREAL_VISAGE);
// Фиолетовый вид
  effect e68 = EffectVisualEffect(VFX_DUR_BLUR);
// Телесное мерцание
effect e69i = EffectVisualEffect(VFX_FNF_SCREEN_BUMP);
// Толчки 1
effect e70i = EffectVisualEffect(VFX_FNF_SCREEN_SHAKE);
// Толчки 2
effect e71i = EffectVisualEffect(VFX_IMP_KNOCK);
// ПульсирующаЯ голубаЯ звезда  (взлом замка)

// ***********  ЛУЧИ  ***********
effect e72i = EffectVisualEffect(VFX_FNF_SUNBEAM);
// Большой желтый луч
effect e73i = EffectVisualEffect(VFX_IMP_DIVINE_STRIKE_FIRE);
// Огненный луч
effect e74i = EffectVisualEffect(VFX_IMP_HEALING_X);
// Синий луч
effect e75i = EffectVisualEffect(VFX_IMP_LIGHTNING_M);
// Молнии луч

// ***********  ПОД НОГАМИ  ***********
effect e76i = EffectVisualEffect(VFX_IMP_SUPER_HEROISM);
// Доспехи супер героЯ
effect e77 = EffectVisualEffect(VFX_DUR_ANTI_LIGHT_10);
// Чернота под ногами (тьма)
effect e78 = EffectVisualEffect(VFX_DUR_ELEMENTAL_SHIELD);
// Огненный круг под ногами
effect e79 = EffectVisualEffect(VFX_DUR_SPELLTURNING);
// Синий круг под ногами
effect e80 = EffectVisualEffect(VFX_DUR_FREEDOM_OF_MOVEMENT);
// Зеленый круг под ногами
effect e81i = EffectVisualEffect(VFX_COM_SPARKS_PARRY);
// Искры у ног
effect e82i = EffectVisualEffect(VFX_IMP_LIGHTNING_S);
// Малый взрыв электричества под ногами
effect e83 = EffectVisualEffect(VFX_DUR_TENTACLE);
// Черные нити
effect e84 = EffectVisualEffect(VFX_DUR_ENTANGLE);
// Папоротник
effect e85i = EffectVisualEffect(VFX_FNF_SMOKE_PUFF);
// Пар
effect e86 = EffectVisualEffect(VFX_DUR_FLAG_BLUE);
// Флаг синий
effect e87 = EffectVisualEffect(VFX_DUR_FLAG_GOLD);
// Флаг фиолетовый
effect e88 = EffectVisualEffect(VFX_DUR_FLAG_PURPLE);
// Флаг желтый
effect e89 = EffectVisualEffect(VFX_DUR_FLAG_RED);
// Флаг красный

// ***********  У ГОЛОВЫ  ***********
effect e90 = EffectVisualEffect(VFX_DUR_BARD_SONG);
// Музыка и ноты
effect e91i = EffectVisualEffect(VFX_IMP_DOOM);
// Гроза над головой
effect e92i = EffectVisualEffect(VFX_IMP_HEAD_ACID);
// Зеленый взрыв над головой
effect e93i = EffectVisualEffect(VFX_IMP_HEAD_COLD);
// Голубой взрыв над головой
effect e94i = EffectVisualEffect(VFX_IMP_HEAD_ELECTRICITY);
// Электрический взрыв над головой
effect e95i = EffectVisualEffect(VFX_IMP_HEAD_EVIL);
// Красный взрыв над головой
effect e96i = EffectVisualEffect(VFX_IMP_HEAD_FIRE);
// Огненный взрыв над головой
effect e97i = EffectVisualEffect(VFX_IMP_HEAD_HEAL);
// Сине-желтый взрыв над головой
effect e98i = EffectVisualEffect(VFX_IMP_HEAD_HOLY);
// Желтый взрыв над головой
effect e99i = EffectVisualEffect(VFX_IMP_HEAD_MIND);
// Фиолетовый взрыв над головой
effect e100i = EffectVisualEffect(VFX_IMP_HEAD_NATURE);
// Желто-зеленый взрыв над головой
effect e101i = EffectVisualEffect(VFX_COM_HIT_FIRE);
// Малый oгненный взрыв у головы
effect e102i = EffectVisualEffect(VFX_COM_BLOOD_SPARK_LARGE);
// Радужные брызги у головы
effect e103i = EffectVisualEffect(VFX_COM_BLOOD_SPARK_MEDIUM);
// Радужные брызги
effect e104i = EffectVisualEffect(VFX_COM_BLOOD_CRT_RED);
// Красный шар взрыв у головы
effect e105i = EffectVisualEffect(VFX_COM_BLOOD_CRT_YELLOW);
// Желтый шар взрыв у головы
effect e106i = EffectVisualEffect(VFX_IMP_STUN);
// Ледeной взрыв над головой
effect e107i = EffectVisualEffect(VFX_IMP_HEALING_G);
// Маг радужное облако
effect e108 = EffectVisualEffect(VFX_DUR_MAGICAL_SIGHT);
// Замешательство облако
effect e109 = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
// Замешательство птички
effect e110 = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DOMINATED);
// Замешательство нимб голубой
effect e111 = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_FEAR);
// Страх
effect e112 = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_NEGATIVE);
// Замешательство спираль
effect e113 = EffectVisualEffect(VFX_DUR_PARALYZED);
// Замешательство круг кинжалов

// ***********  ПРОЧИЕ  ***********
effect e114i = EffectVisualEffect(VFX_FNF_PWSTUN);
// КраснаЯ спираль
effect e115 = EffectVisualEffect(VFX_DUR_PARALYZE_HOLD);
// БольшаЯ белаЯ спираль
effect e116 = EffectVisualEffect(VFX_DUR_AURA_COLD);
// Аура голубаЯ
effect e117i = EffectVisualEffect(VFX_IMP_DIVINE_STRIKE_HOLY);
// ОгненнаЯ спираль
effect e118i = EffectVisualEffect(VFX_IMP_HEALING_L);
// Фонтан голубой спиральный
effect e119i = EffectVisualEffect(VFX_IMP_HEALING_M);
// Малый столб света
effect e120i = EffectVisualEffect(VFX_IMP_HEALING_S);
// МалаЯ голубаЯ спираль
effect e121 = EffectVisualEffect(VFX_DUR_DARKNESS);
// МалаЯ тьма
effect e122 = EffectVisualEffect(VFX_DUR_GLOBE_INVULNERABILITY);
// Маг сфера
effect e123 = EffectVisualEffect(VFX_DUR_GLOBE_MINOR);
// ПризрачнаЯ маг сфера
effect e124 = EffectVisualEffect(VFX_DUR_MAGIC_RESISTANCE);
// Маг рваннаЯ сфера
effect e125 = EffectVisualEffect(VFX_DUR_PROTECTION_EVIL_MAJOR);
// Красный дождь
effect e126 = EffectVisualEffect(VFX_DUR_PROTECTION_EVIL_MINOR);
// Малый красный дождь
effect e127 = EffectVisualEffect(VFX_DUR_PROTECTION_GOOD_MAJOR);
// Желтый дождь
effect e128 = EffectVisualEffect(VFX_DUR_PROTECTION_GOOD_MINOR);
// Малый желтый дождь
effect e129 = EffectVisualEffect(VFX_DUR_SANCTUARY);
// БольшаЯ синеЯ спираль
effect e130 = EffectVisualEffect(VFX_DUR_PROTECTION_ELEMENTS);
// Желтый маг дождь
effect e131 = EffectVisualEffect(VFX_DUR_LIGHT_YELLOW_15);
// Свет желтый
effect e132 = EffectVisualEffect(VFX_DUR_LIGHT_WHITE_15);
// Свет белый
effect e133 = EffectVisualEffect(VFX_DUR_LIGHT_RED_15);
// Свет красный
effect e134 = EffectVisualEffect(VFX_DUR_LIGHT_BLUE_15);
// Свет голубой
effect e135 = EffectPetrify();
// Окаменение - статуЯ
effect e136 = EffectAppear();
// Прыжок с неба
effect e137 = EffectDisappear();
// Прыжок в небо и уничтожение объекта
effect e138 = EffectCharmed();
// Эффект зачаровывает цель - (не может говорить)
effect e139 = EffectCutsceneParalyze();
// Эффект парализации
effect e140 = EffectVisualEffect(VFX_DUR_CUTSCENE_INVISIBILITY);
// ПолнаЯ невидимость
effect e141i = EffectDeath();
// Эффект смерти
effect e142 = EffectHaste();
// Эффект ускорение
effect e143 = EffectEntangle();
// Эффект запутывание
effect e144i = EffectResurrection();
// Эффект воскрешениe
effect e145 = EffectSleep();
// Эффект сон
effect e146 = EffectVisualEffect(VFX_IMP_SLEEP);
// Эффект сон
effect e147 = EffectSlow();
// Эффект замедление - цель затормаживает на 50%
effect e148 = EffectCurse(3,3,3,3,3);
// ПРОКЛЯТИЕ
//**************************
//=============== НАЛОЖИТЬ ЭФФЕКТ ==============================================
void EffectOnPC(object oObject, effect eOne, float iTime, int iNUM)
{
location lEffect = GetLocation(oObject);
if (iNUM == 1) ApplyEffectToObject(DURATION_TYPE_INSTANT, eOne, oObject);
if (iNUM == 2) ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eOne, oObject, iTime);
if (iNUM == 3) ApplyEffectToObject(DURATION_TYPE_PERMANENT, eOne, oObject);
if (iNUM == 4) ApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(eOne), oObject, iTime);
if (iNUM == 5) ApplyEffectToObject(DURATION_TYPE_PERMANENT, SupernaturalEffect(eOne), oObject);
if (iNUM == 6) ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eOne, lEffect);
}
//=============== СНЯТЬ ВСЕ ЭФФЕКТЫ ============================================
void DelEffectOnPC(object oObject)
{
effect eOne = GetFirstEffect(oObject);
while (GetIsEffectValid(eOne))
{
  RemoveEffect(oObject, eOne);
  eOne = GetNextEffect(oObject);
}
}
//=============== СНЯТЬ ЭФФЕКТ =================================================
void DelOneEffectOnPC(object oObject, int iOne)
{
effect eEffect = GetFirstEffect(oObject);
while (GetIsEffectValid(eEffect))
{
  if (GetEffectType(eEffect) == iOne)
  RemoveEffect(oObject, eEffect);
  eEffect = GetNextEffect(oObject);
}
//  int iOne -  EFFECT_TYPE_...
}


Эффекты сгруппировал по визуальному восприятию, если кого не устраивает описание, пишите свое. Если после номера эффекта стоит «i» - то этот эффект только «INSTANT» (может где и ошибся, извиняйте).

Сообщение отредактировал gennady - May 21 2006, 06:08
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Noah
сообщение May 17 2006, 11:06
Сообщение #2267


Level 5
**

Класс: Убийца
Характер: Chaotic Neutral
Раса: Полуэльф



Привет!Пытаюсь сделать триггер для повышения навыка(любого),типа вы скрылись в тени бонус к hide+6,а когда выидешь,чтобы бонус исчезал. Кроме того нужно чтоб бонусы не складывались.Кто знает как напишите.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение May 17 2006, 11:27
Сообщение #2268


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

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



Триггер скиловой модификации. Для всех, и игрока и НПС.
(по аналогии можно сделать и модификацую атаки, АС и прочее)

lx_ten_skillmod - на ентер триггера

NSS
void main()
{
int mod = GetLocalInt(OBJECT_SELF,"MOD");
if (mod == 0) return;
object oPC = GetEnteringObject();
int skill = GetLocalInt(OBJECT_SELF,"SKILL");

string Comment = GetName(OBJECT_SELF);
effect eEffect;
if (mod > 0)
    {
    eEffect = SupernaturalEffect(EffectSkillIncrease(skill,mod));
    }
else
    {
    eEffect = SupernaturalEffect(EffectSkillDecrease(skill,-mod));
    }
if (GetLocalInt(OBJECT_SELF,"MSG"))
    SendMessageToPC(oPC,"*"+Comment+"*");
ApplyEffectToObject(DURATION_TYPE_PERMANENT,eEffect,oPC);
}




lx_tex_skillmod на экзит триггера
NSS
#include "inc_effects" // библа написана выше на пару постов
void main()
{
int mod = GetLocalInt(OBJECT_SELF,"MOD");
if (mod == 0) return;
object oPC = GetExitingObject();
int TYPE = 0;
if (mod > 0)
    {
    TYPE = EFFECT_TYPE_SKILL_INCREASE;
    }
else
    {
    TYPE = EFFECT_TYPE_SKILL_DECREASE;
    }
E_DeleteSpecificEffect(oPC,OBJECT_SELF,TYPE,SUBTYPE_SUPERNATURAL,DURATION_TYPE_PERMANENT);
}


делаем триггер, ставим эти 2 скрипта в слоты. Вешаем локалки
MOD, которая хранит значение модификации. Модификация может быть как положительной так и отрицательной.
MSG Это флаг того, будет ли выдаваться игроку сообщение (сообщение при входе это имя триггера).
SKILL номер скила, который меняется

int SKILL_ANIMAL_EMPATHY = 0;
int SKILL_CONCENTRATION = 1;
int SKILL_DISABLE_TRAP = 2;
int SKILL_DISCIPLINE = 3;
int SKILL_HEAL = 4;
int SKILL_HIDE = 5;
int SKILL_LISTEN = 6;
int SKILL_LORE = 7;
int SKILL_MOVE_SILENTLY = 8;
int SKILL_OPEN_LOCK = 9;
int SKILL_PARRY = 10;
int SKILL_PERFORM = 11;
int SKILL_PERSUADE = 12;
int SKILL_PICK_POCKET = 13;
int SKILL_SEARCH = 14;
int SKILL_SET_TRAP = 15;
int SKILL_SPELLCRAFT = 16;
int SKILL_SPOT = 17;
int SKILL_TAUNT = 18;
int SKILL_USE_MAGIC_DEVICE = 19;
int SKILL_APPRAISE = 20;
int SKILL_TUMBLE = 21;
int SKILL_CRAFT_TRAP = 22;
int SKILL_BLUFF = 23;
int SKILL_INTIMIDATE = 24;
int SKILL_CRAFT_ARMOR = 25;
int SKILL_CRAFT_WEAPON = 26;
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Kavin
сообщение May 17 2006, 14:35
Сообщение #2269


Level 8
***

Класс: Паладин
Характер: Lawful Good
Раса: Полуэльф
ПОДМАСТЕРЬЕ



Создаю скрипт для овцы, которая ночью должна баиньки ложиться.
Имеется следующая проблема: после пробуждения овца не желает выполнять действия, определенные ей как Action через скрипт.

NSS
//Событие, отправляющее овцу поближе к пастуху и укладывающее ее спать.
if (nEvent==EVENT_S_SLEEP)
    {
    if (GetLocalInt(oSelf, "int_EVENT")==EVENT_S_SLEEP)
        return;
    SetLocalInt(oSelf, "int_EVENT", EVENT_S_SLEEP);
    float fDist=(Random(8)+1)*1.0;
    ActionMoveToObject(oPastuh, FALSE, fDist);
    effect eSleep=EffectSleep();
    ActionDoCommand(ApplyEffectToObject(DURATION_TYPE_PERMANENT, eSleep, oSelf));
};

//Событие, которое "будит" овцу.
if (nEvent==EVENT_S_WAKEUP)
    {
    SetLocalInt(oSelf, "int_EVENT", EVENT_S_WAKEUP);
    //Снимаем эффект сна.
    effect eEffect=GetFirstEffect(oSelf);
    while (GetIsEffectValid(eEffect))
        {
        if (GetEffectType(eEffect)==EFFECT_TYPE_SLEEP)
            RemoveEffect(oSelf, eEffect);
        eEffect=GetNextEffect(oSelf);
        };
    ActionDoCommand(SignalEvent(oSelf, EventUserDefined(EVENT_S_WALK)));
    };

//Событие, которое заставляет овцу шляться по локации (типа пастись).
if (nEvent==EVENT_S_WALK)
    {
    SetLocalInt(oSelf, "int_EVENT", EVENT_S_WALK);
    ClearAllActions();
    location lWalkTo=RandomLocation(oPastuh, 20.0, FALSE);
    ActionMoveToLocation(lWalkTo, FALSE);
    ActionWait(3.0);
    ActionDoCommand(SignalEvent(oSelf, EventUserDefined(EVENT_S_WALK)));
    };


При таком раскладе команд событие EVENT_S_WALK после пробуждения не наступает ВООБЩЕ.
Т.е. строка "ActionDoCommand(SignalEvent(oSelf, EventUserDefined(EVENT_S_WALK)));" не срабатывает.
Пробовал менять код вот так:
NSS
//Событие, которое "будит" овцу.
if (nEvent==EVENT_S_WAKEUP)
    {
    SetLocalInt(oSelf, "int_EVENT", EVENT_S_WAKEUP);
    //Снимаем эффект сна.
    SignalEvent(oSelf, EventUserDefined(EVENT_S_WALK));
    effect eEffect=GetFirstEffect(oSelf);
    while (GetIsEffectValid(eEffect))
        {
        if (GetEffectType(eEffect)==EFFECT_TYPE_SLEEP)
            RemoveEffect(oSelf, eEffect);
        eEffect=GetNextEffect(oSelf);
        };
    };

При этом овца вскакивает после сна, пробегает до заданной location, а потом опять застывает и стоит.
Т.е. строка "ActionDoCommand(SignalEvent(oSelf, EventUserDefined(EVENT_S_WALK)));" опять-таки не срабатывает, но на этот раз в событии EVENT_S_WALK.
ClearAllActions() в разных местах не помогает.
Что делать?..

.......................................

Блин, понял сам, в чем дело. Все симптомы навели на то, что блокирован стек действий персонажа. А посему исправил код вот так:
NSS
if (nEvent==EVENT_S_WAKEUP)
    {
    SetLocalInt(oSelf, "int_EVENT", EVENT_S_WAKEUP);
    effect eEffect=GetFirstEffect(oSelf);
    while (GetIsEffectValid(eEffect))
        {
        if (GetEffectType(eEffect)==EFFECT_TYPE_SLEEP)
            RemoveEffect(oSelf, eEffect);
        eEffect=GetNextEffect(oSelf);
        };
    SetCommandable(TRUE, oSelf);//Разблокируем командный стек.
    ActionDoCommand(SignalEvent(oSelf, EventUserDefined(EVENT_S_WALK)));
    };

Все заработало. Ларчик просто открывался... Но как-то странно. Это что, глюк движка?..

Сообщение отредактировал Kavin - May 17 2006, 14:36
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
..::SERGO::..
сообщение May 23 2006, 12:29
Сообщение #2270


Level 3
*

Класс: Паладин
Характер: Lawful Good
Раса: Человек



Тут такая трабла. Перс при заходе в модуль ничего не одевает, но все вещи есть в инвентаре, и он может все носить!
NSS
void main()
{
object oMod = GetModule();
object oPC = GetEnteringObject();

if (!GetIsPC(oPC) || GetLocalInt(oMod, "START_GAME"))
       {return;}
       {
       SetLocalInt(oMod, "START_GAME", TRUE); //Only one use!
     TakeGoldFromCreature(GetGold(oPC),oPC,TRUE); //Get All Money
       object oItem = GetFirstItemInInventory(oPC); //Take off the hole inventory!
        while(GetIsObjectValid(oItem)) //If there is an object
        {
            DestroyObject(oItem);  //Destroy it
            oItem = GetNextItemInInventory(oPC); //Next object!
        }
        int i=0;//destory amunition
        while(i<14)
        {
        DestroyObject(GetItemInSlot(i, oPC));
        i++;
        }
          GiveGoldToCreature(oPC, 3000);  //GiveGold
         CreateItemOnObject("LO", oPC, 1);  //Objects
         CreateItemOnObject("DO", oPC, 1);
         CreateItemOnObject("HO", oPC, 1);
         CreateItemOnObject("MO", oPC, 1);
         CreateItemOnObject("AO", oPC, 72);
         object oItemCr = GetFirstItemInInventory(oPC);
         while(GetIsObjectValid(oItemCr))
             {
             SetIdentified(oItemCr,TRUE);
             oItemCr = GetNextItemInInventory(oPC);
             }
             AssignCommand(oPC, ActionEquipMostEffectiveArmor());//Put on everything
       }
}


LEX: перенес в соот. тему. Но вообще ты должен сам понимать, что скрипты больше пары строк это уже не по скриптам вопрос, а не для новичков.

По теме: одевая с задержкой и отчисть стек акций до этого. У тебя мб просто шмотки создаться не успевают. И оденется не все, а только армор.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
LokiJ_Tzn
сообщение May 23 2006, 12:58
Сообщение #2271


Level 1


Класс: Страж Тьмы
Характер: Chaotic Good
Раса: Полуэльф



Кто-нить знает, как можно сделать, чтобы труп, остающийся после смерти создания, реагировал на щелчок по нему мышью иначе, чем обычно? (не открывал лут, а исполнял какой-нить скрипт)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение May 23 2006, 13:27
Сообщение #2272


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



LokiJ_Tzn

Имхо, лучше сделать проще - после смерти NPC создавать невидимый плейс и уже ему вешать на onUsed нужный скрипт.


..::SERGO::..

Попробуй ввести задержку на создание предметов, например так:
NSS
// Перед началом оснв. фун-ции: (тобишь void main())
void ActionCreateItem(string sItemTemplate, object oTarget=OBJECT_SELF, int nStackSize=1)
{
    CreateItemOnObject(sItemTemplate, oTarget, nStackSize);
}

Работает аналогично CreateItemOnObject(""), но может ставиться в очередь действий или делей.

QUOTE
Перс при заходе в модуль ничего не одевает


Одевается только одежда, для оружия можно юзать, ActionEquipMostDamagingMelee и ActionEquipMostDamagingRanged.

Сообщение отредактировал Dik Morris - May 23 2006, 13:39
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
LokiJ_Tzn
сообщение May 24 2006, 11:35
Сообщение #2273


Level 1


Класс: Страж Тьмы
Характер: Chaotic Good
Раса: Полуэльф



QUOTE(Dik Morris @ May 23 2006, 16:27) [snapback]82548[/snapback]

LokiJ_Tzn

Имхо, лучше сделать проще - после смерти NPC создавать невидимый плейс и уже ему вешать на onUsed нужный скрипт.



Спасибо, я уже разобрался (IMG:style_emoticons/kolobok_light/smile.gif) посидел ночью и модифицировал x0_i0_corpse, чтоб он создавал кастомный плейс невидимого объекта вместо лутабельного трупа.
Это для скиннинга (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DarkDeivel
сообщение May 24 2006, 14:44
Сообщение #2274


Level 3
*

Класс: Паладин
Характер: Lawful Good
Раса: Человек



В игре максимум 20 лвл. Как сделать чтобы был максимальный 100. Если скрипт скажите плиз. (IMG:style_emoticons/kolobok_light/declare.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
kreon
сообщение May 24 2006, 14:49
Сообщение #2275


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

Класс: Некромант
Характер: Chaotic Evil
Раса: Дракон
NWN: Скриптинг [PW]



2DarkDeivel: это тебе это читать надо (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение May 24 2006, 15:22
Сообщение #2276


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

Класс: Фея
Характер: Chaotic Evil
Раса: Тварь
NWN: Скриптинг [PW]



QUOTE(DarkDeivel @ May 24 2006, 15:44) [snapback]82630[/snapback]
В игре максимум 20 лвл. Как сделать чтобы был максимальный 100. Если скрипт скажите плиз.

начнем с того, что "в игре" уже давно(начиная с hotu) левел-кап для игроков - 40. это зашито в движок. чтобы сделать больше 40 нужно делать довольно нетривиальную систему, суть которой - куча скриптов + custom 2da + nwnx + leto.
забудь вобщем. во всяком случае до тех пор, пока не повысишь свой скилл в нвн-строительстве на несколько порядков. (IMG:style_emoticons/kolobok_light/pardon.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
..::SERGO::..
сообщение May 28 2006, 08:05
Сообщение #2277


Level 3
*

Класс: Паладин
Характер: Lawful Good
Раса: Человек



Ну все, блин, здаюсь. Все перепробывал(наверно не все, раз пишу сюда). Мне надо, чтобы можно было заговорить с дверью, чтобы одна ветка появлялась вслучае определенного предмета в инвенатре, чтобы после отдачи этого предмета двери, дверь уничтажалась. ух, все.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение May 28 2006, 08:24
Сообщение #2278


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



В диалоге делай проверку, на определенный предмет. (Используя скрипт визард)
Разрушай дверь либо дестроем, либо нужным эффектом.

NSS
// Text Appears When
int StartingConditional()
{
   if (GetItemPossessor(GetObjectByTag("таг_айтема")) == GetPCSpeaker())
     {return TRUE;}

    return FALSE;
}

NSS
// ActionTakens
void main(){DestroyObject(OBJECT_SELF);}


Сообщение отредактировал Dik Morris - May 28 2006, 09:00
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
..::SERGO::..
сообщение May 28 2006, 08:33
Сообщение #2279


Level 3
*

Класс: Паладин
Характер: Lawful Good
Раса: Человек



как не странно, но визардский скрипт мне немного другое дал, поэтому я припер сюды
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение May 28 2006, 09:06
Сообщение #2280


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



Этот скрипт не имеет особых различий с визардским, там используется фун-ция HasItem, которая схожа с GetItemPossessor.

PS: просто в HasItem, есть проверка на валидность объекта. (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Noah
сообщение May 28 2006, 23:13
Сообщение #2281


Level 5
**

Класс: Убийца
Характер: Chaotic Neutral
Раса: Полуэльф



Lex спасибо за помощь!Советую всем строителям добавить в локи триги с бонусами и т.П.Разнобразие боя!Теперь по делу,проблема слeдующая:в катсцене я сажу npc на стул(ActionSit),далее npc с него не встает,(а он должен идти на wp1) даже если стул убить!Катсцена становится вечной.Как сделать чтоб npc встал и пошел.

Сообщение отредактировал Noah - May 28 2006, 23:19
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
kreon
сообщение May 29 2006, 01:00
Сообщение #2282


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

Класс: Некромант
Характер: Chaotic Evil
Раса: Дракон
NWN: Скриптинг [PW]



NSS
SetCutsceneMode(oPC, TRUE);
DelayCommand(1.0f, AssignCommand(oNPC, ClearAllActions(TRUE)));
DelayCommand(1.1f AssignCommand(oNPC, ActionMoveToObject(GetObjectByTag("wp1"))));
DelayCommand(3.0f, SetCutsceneMode(oPC, FALSE));

1 строка - катсцена
2 - очистить стек (встанет со стула)
3 - пойдет к обьекту с тегом wp1
4 - конец катсцены
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение May 29 2006, 01:44
Сообщение #2283


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

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



..::SERGO::.., не пользуйся визардовскими скриптами, как правило, они пишут не совсем то, что хотелось бы, и часто в них больше мусора, чем нужного кода. Стоит учиться самому писать скрипты.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение May 29 2006, 08:07
Сообщение #2284


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

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



Noah, тебе неплохо было бы прочесть мои статьи по авроре, я там разбирал такой аспект, как акция и просто действие. Возможно твой НПС выполняет не акцию сидения, а воспроизводит анимацию но не как акцию. И он может седеть так оооочень долго.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Noah
сообщение May 29 2006, 21:41
Сообщение #2285


Level 5
**

Класс: Убийца
Характер: Chaotic Neutral
Раса: Полуэльф



Спасибо,теперь она встает.Айван,кинь ссылку на статьи,я с этого и начинал скриптинг,но мог что-то пропустить.А нет ли анимаций сидячим нпс?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение May 30 2006, 07:11
Сообщение #2286


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

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



http://download.wrg.ru/public_wrg/toolset/...ra_tutorial.exe


QUOTE(Noah @ May 30 2006, 00:41) [snapback]83142[/snapback]
А нет ли анимаций сидячим нпс?

Вот скрипт, думаю разберешься.
NSS
//:://////////////////////////////////////////////
//:: OnUserDefaine  am_cud_sit
//:: Copyright © 2005 WRG!
//:://////////////////////////////////////////////
/*
  Скрипт садит НПС на стул или на землю.
    SIT_CHAIR - таг стула для сидения.
*/

//:://////////////////////////////////////////////
//:: Created By: Aiwan
//:: Created On: 07.07.2005
//:://///////////////////////////////////////////


void main()
{
  object oPC = GetFirstPC();
  if (GetIsDead(OBJECT_SELF)==TRUE) return; // Если он помер, то пусть молчит
  if (GetArea(OBJECT_SELF)!=GetArea(oPC)) return;
  if (GetLocalInt(OBJECT_SELF, "STOP")) return; // Отключаем если нам это надо
  if (GetIsInCombat(OBJECT_SELF))  return;
  if (IsInConversation(OBJECT_SELF)) return;
  int nEvent = GetUserDefinedEventNumber();
//=========================== HEARTBEAT EVENT ==================================
if (nEvent == EVENT_HEARTBEAT) // Сигнал поступает с HeartBeat слота.
  {
//------------------------------------------------------------------------------
  if (GetLocalInt(OBJECT_SELF, "FLAG_SIT_CROSS") == TRUE)
      {
      if (GetLocalInt(OBJECT_SELF, "DISTURBED")) return;

          ClearAllActions();
          SetLocalInt(OBJECT_SELF, "DISTURBED", TRUE);
          ActionMoveToLocation(GetLocalLocation(OBJECT_SELF, "initLoc"));
          ActionDoCommand(SetFacing(GetLocalFloat(OBJECT_SELF, "initFacing")));
          ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS, 1.0, 99999.9);
          return;
      }
//------------------------------------------------------------------------------
  if (GetLocalInt(OBJECT_SELF, "FLAG_SIT_CHAIR") == TRUE)
      {
      if (GetLocalInt(OBJECT_SELF, "FLAG_SIT_CHAIR") == 2)
          return;

    if (GetCurrentAction() == ACTION_SIT) return;
    if (GetCurrentAction() == ACTION_MOVETOPOINT) return;

          object oChair = GetNearestObjectByTag("SIT_CHAIR");
          if (GetIsObjectValid(oChair))
          {
              ClearAllActions();
              ActionSit(oChair);
              ActionDoCommand(SetLocalLocation(OBJECT_SELF, "initFacing", GetLocation(OBJECT_SELF)));
          }
      }
  }
//============================= DIALOGUE EVENT =================================
  if (nEvent == EVENT_DIALOGUE)  // Стандартный сигнал
    {
      SetLocalInt(OBJECT_SELF, "DISTURBED", FALSE);
    }
//============================= PERCIEVE EVENT =================================
  if (nEvent == EVENT_PERCEIVE)  // Стандартный сигнал
    {
    if (GetIsPC(GetLastPerceived()))
      {
        SetLocalInt(OBJECT_SELF, "DISTURBED", FALSE);
      }
    }
//========================== END COMBAT ROUND EVENT ============================
  if (nEvent == EVENT_END_COMBAT_ROUND)  // Стандартный сигнал
    {
    SetLocalInt(OBJECT_SELF, "DISTURBED", FALSE);
    }
//------------------------------------------------------------------------------
}


Скрипт ставится на слот UserDef
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Jun 1 2006, 06:07
Сообщение #2287


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

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



QUOTE(Noah @ May 29 2006, 22:41) [snapback]83142[/snapback]
А нет ли анимаций сидячим нпс?


Если я правильно понял вопрос, то вам нужна дополнительная анимация сидящим персам? Недавно этот вопрос обсуждался, читайте статью Лекса ЗДЕСЬ.
Если задействована ActionSit, то наложение анимации поднимет перса со стула. Можно совместить с ANIMATION_LOOPING_SIT_CHAIR кое-что из анимаций, но вот стул под перса не подставишь (или я это тупо делал). А вот на CROSS, можно все свободно вешать. Вот простой скрипт на ХБ-ит перса. Если нужно, чтобы перс смотрел в определенную сторону, то задайте точку "V_ + тэг перса."

NSS
void main()
{
  object oWay = GetWaypointByTag("V_" + GetTag(OBJECT_SELF));
  vector vFace = GetPosition(oWay);
if(GetArea(GetFirstPC()) != GetArea(OBJECT_SELF)) return; // если ПС нет локе
if (!IsInConversation(OBJECT_SELF))
  {
   SetFacingPoint(vFace);
   switch (Random(3)+1)
   {
    case 1:
    if(Random(100) >= 50)
    ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS);
    else
    ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
    break;
    case 2:
    if(Random(100) >= 50)
    ActionPlayAnimation(ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD);
    else
    ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK);
    break;
    case 3:
    if(Random(100) >= 50 && GetAbilityScore(OBJECT_SELF, ABILITY_INTELLIGENCE) >= 17)
    ActionPlayAnimation(ANIMATION_FIREFORGET_READ);
    else
    {
     if (GetGender(OBJECT_SELF)==GENDER_MALE)
     PlaySound("as_pl_yawningm1");
     else
     PlaySound("as_pl_yawningf1");
     ActionPlayAnimation(ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD);
    }
    break;
   }
   ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS, 1.0, 6.0);
  }
}
/* Персонаж сидит на земле, пьет и чешет голову.
Если интеллект выше 17, то еще и читает. Слот HB */


Спасибо метрам за подсказку! Учту в дальнейшем. (IMG:style_emoticons/kolobok_light/thank_you.gif)

Сообщение отредактировал gennady - Jun 1 2006, 12:41
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 1 2006, 08:23
Сообщение #2288


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

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



gennady, есть смысл добавить проверку РС в локации. Что бы НПС все это делал только если в локации есть игрок.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Jun 1 2006, 11:49
Сообщение #2289


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

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




QUOTE(Aiwan @ Jun 1 2006, 09:23) [snapback]83448[/snapback]
gennady, есть смысл добавить проверку РС в локации. Что бы НПС все это делал только если в локации есть игрок.


Aiwan, если можно киньте оную. Вообще я подметил, что ХБ начинает работать в определенном радиусе от героя, или я не прав? Тут у меня назрел вопрос по скриптам на OnSpawn, ведь насколько я понял локалки в вышеприведенном вами скрипте, вешаются именно там. Просто у меня было несколько проколов. Все работает 10-20 раз, а на тридцатом, бах висяк! Пришлось переписать и бросить все ХБ, т.к. с сюжетным персам это непозволительно. Теперь трижды думаю, стоит ли ставить что на OnSpawn. Непонятно…, или это только у меня такие приколы? (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jun 1 2006, 11:57
Сообщение #2290


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

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



QUOTE(gennady @ Jun 1 2006, 12:49) [snapback]83468[/snapback]
Вообще я подметил, что ХБ начинает работать в определенном радиусе от героя, или я не прав?

хб работают везде, во всех локациях. Но там, где нет игрока - чуть медленнее (бывает 7-8-9 секунд 1 такт)
NSS
// если игрок не в одной локе с НПС - выйти из скрипта
if( GetArea(GetFirstPC())!=GetArea(OBJECT_SELF)) return;
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 90 91 92 93 94 > » 
Ответить в эту темуОткрыть новую тему
5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 29th April 2025 - 18:22