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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 102 103 104 105 106 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Ilrilan
сообщение Sep 27 2006, 08:57
Сообщение #2566


Level 1


Класс: Некромант
Характер: Lawful Evil
Раса: Человек



Как можно поймать событие что человек альтанулся? Не резко нажал Disconnect, а взял и выткнул физически сетевой шнур из компа. Или у него просто обрыв связи был. OnClientLeave почему-то этот момент не ловит
:-((
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dart_Vadder
сообщение Sep 27 2006, 10:05
Сообщение #2567


Level 4
**

Класс: Волшебник
Характер: Neutral Good
Раса: Человек



QUOTE(Ilrilan @ Sep 27 2006, 11:57) [snapback]92874[/snapback]

Как можно поймать событие что человек альтанулся? Не резко нажал Disconnect, а взял и выткнул физически сетевой шнур из компа. Или у него просто обрыв связи был. OnClientLeave почему-то этот момент не ловит
:-((

Ясно дело, не ловится. Программно это дело не решается.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
2_advanced
сообщение Sep 27 2006, 15:31
Сообщение #2568


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

Класс: Вор
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]



внешним софтом отлавливать посыл пакета на выход =)
а чтоб не альтились - сделать спец палку с диалогом, бутящую персов =)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Sep 28 2006, 02:41
Сообщение #2569


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

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



QUOTE(Ilrilan @ Sep 27 2006, 09:57) [snapback]92874[/snapback]
Как можно поймать событие что человек альтанулся? Не резко нажал Disconnect, а взял и выткнул физически сетевой шнур из компа. Или у него просто обрыв связи был. OnClientLeave почему-то этот момент не ловит

интересный метод "альтования", однако. при описываемом тобой раскладе, альтующийся извращенец быстро склеит ласты, ибо сервер пакет выхода не видит, и думает что чел здесь. и только через минуту таймаута сервак по отсутствию "пингов" поймет, что чела нет и спокойно завершит сессию, записав состояние перса. а состояние это скорее всего будет "несвежим", и зайдя обратно чел будет тщетно взывать к ДМам "БАГ!Я ЗОШОЛ МЕРТВЫЙ!!!!А БЫЛ ЖИВОЙ!!!!" (IMG:style_emoticons/kolobok_light/shout.gif) . так что способ этот относится скорее к сепукке, нежели к позорному бегству.

QUOTE(2_advanced @ Sep 27 2006, 16:31) [snapback]92904[/snapback]
внешним софтом отлавливать посыл пакета на выход =)

это "ответ чемберлену" на нормальное альтование. (IMG:style_emoticons/kolobok_light/wink3.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Sharklike
сообщение Sep 28 2006, 05:25
Сообщение #2570


Level 8
***

Класс: Бледный Мастер
Характер: Chaotic Neutral
Раса: Человек



QUOTE(dumbo @ Sep 28 2006, 02:41) [snapback]92934[/snapback]

интересный метод "альтования", однако. при описываемом тобой раскладе, альтующийся извращенец быстро склеит ласты, ибо сервер пакет выхода не видит, и думает что чел здесь. и только через минуту таймаута сервак по отсутствию "пингов" поймет, что чела нет и спокойно завершит сессию, записав состояние перса.

В большинстве случаев так и будет, но не всегда. Если клиент линуховый и его убивают, то сервер тут же отключает чела, даже не получив пакет выхода. Видать как-то еще обрабатывается состояние сокета.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Animeslave
сообщение Oct 2 2006, 08:22
Сообщение #2571


Level 1


Класс: Самурай
Характер: True Neutral
Раса: Полуэльф



Пытался сделать дверь которая закрывается 20 часов вечера и открывается в 8 утра.

Что не правильно? Ставил на OnHeartBeat

NSS
void main()
{
    object door=OBJECT_SELF;
    {
        if (GetIsOpen(door)==FALSE && GetTimeHour()>=8 && GetTimeHour()<20)
        {
            ActionUnlockObject(door);
            ActionOpenDoor(door);
        }
        if (GetIsOpen(door)==TRUE && GetTimeHour()>=20 && GetTimeHour()<8)
        {
            ActionCloseDoor(door);
            ActionLockObject(door);
        }
    }
}


Сообщение отредактировал Animeslave - Oct 2 2006, 08:22
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Oct 2 2006, 17:06
Сообщение #2572


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

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



А что не работает?
зы: запирать дверь лучше
NSS
// Set the locked state of oTarget, which can be a door or a placeable object.
void SetLocked(object oTarget, int bLocked)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Animeslave
сообщение Oct 2 2006, 21:08
Сообщение #2573


Level 1


Класс: Самурай
Характер: True Neutral
Раса: Полуэльф



Lex спасибо, что перенес. Хочу сильно извениться за свои слова. Простите!

И Lex Если это ты мне, то дело не в том, что плохо запирается, а в том, что, вообще, в назначеный час, не закрываестя, или не открывается дверь.

ps: извеняюсь за неинформативность.

Сообщение отредактировал Animeslave - Oct 2 2006, 21:10
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Oct 2 2006, 21:27
Сообщение #2574


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

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



- Ну для начала у тебя неверное условие:
"GetTimeHour()>=20 && GetTimeHour()<8" Время не может быть одновременно больше 20 и меньше 8. Там надо не И, а ИЛИ ставить.
- потом у тебя идет проверка на открытость/закрытость двери, а надо бы на запертость
- ну и если дверь заперта на ключ, то ты ее некорректно отпираешь, поэтому открыть ее не получается утром.. ну а вечером не закрывается потому что условие неверное.

В итоге что-то такое получается: (скрипт из ПЛ, только тут наоборот, днем закрыто, а ночью открыто.. ночной храм был)
NSS
void main()
{
int H = GetTimeHour();
object oSelf = OBJECT_SELF;
if ((H>=8)&&(H<20)&&(!GetLocked(oSelf)))
   {
   SetLocked(oSelf,TRUE);
   ActionCloseDoor(oSelf);
   }
if (((H>=20)||(H<8))&&(GetLocked(oSelf)))
   {
   SetLocked(oSelf,FALSE);
   ActionCloseDoor(oSelf);
   }
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Animeslave
сообщение Oct 3 2006, 22:05
Сообщение #2575


Level 1


Класс: Самурай
Характер: True Neutral
Раса: Полуэльф



Lex спасибо за помощь нашел ошибку. переправил скрипт.

NSS
void main()
{
    object door=OBJECT_SELF;
    {
        if (GetTimeHour()>=8 && GetTimeHour()<20)
        {
            if (GetLocked(door)==TRUE)
            {
                SetLocked(door, FALSE);
                ActionOpenDoor(door);
            }
            else
            {
                ActionOpenDoor(door);
            }
        }
        else
        {
            if (GetLocked(door)==FALSE)
            {
                ActionCloseDoor(door);
                SetLocked(door, TRUE);
            }
            else
            {
                ActionCloseDoor(door);
            }
        }
    }
}


Все также на OnHeartBeat двери. И Начальное состояние двери закрыто.
Проверил работает

ps: Твой скрипт,Lex, почемуто отказывается работать.

LEX: ну у меня работал и работает до сих пор, хотя и старенький, его надо бы оптимизировать.

Сообщение отредактировал Lex - Oct 3 2006, 22:41
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Oct 4 2006, 06:31
Сообщение #2576


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

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



Чертишь триггер перед дверью сразу. И вешаешь на ОнЕнтер триггера скрипт:
NSS
//:://////////////////////////////////////////////
//:: OnEnter  am_ten_door_d_n
//:: Copyright © 2005 WRG!
//:://////////////////////////////////////////////
/*
      Триггер закрыв. двери ночью
          и открыв. днем/утром
*/

//:://////////////////////////////////////////////
//:: Created By: Aiwan
//:: Created On: 20.04.2005
//:://////////////////////////////////////////////
void main()
{
object oDoor = GetNearestObject(OBJECT_TYPE_DOOR);
int iLock = GetLocalInt(oDoor, "LOCKED_NIGHT");
if ((GetIsNight()&&iLock==TRUE)||(GetIsDay()||GetIsDawn()&&iLock==FALSE))
  {
  return;
  }
  if (GetIsNight())
  {
  SetLocked(oDoor, TRUE);
  SetLocalInt(oDoor, "LOCKED_NIGHT", TRUE);
  return;
  }
  if (GetIsDay()||GetIsDawn() && iLock == TRUE)
      {
      SetLocked(oDoor, FALSE);
      SetLocalInt(oDoor, "LOCKED_NIGHT", FALSE);
      }
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Oct 4 2006, 14:05
Сообщение #2577


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

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



Маленькая модернизация скрипта Лекса. Можно менять час закрытия у нужной двери.
NSS
//:://///////////////////////////////////////
//:: Закрытие двери: день - ночь.  Слот ХБ
//:: Created By: Gennady
//:://///////////////////////////////////////
void main()
{
  object oSelf = OBJECT_SELF;
  int T = GetTimeHour();
  int iNewT = StringToInt(GetLockKeyTag(oSelf)); // Новый час ЗАКРЫТИЯ
  int iT = 21; // БАЗОВЫЙ час ЗАКРЫТИЯ

  if (iNewT >= 1) iT = iNewT;
  if(T>=iT || T<6)
  {
    AssignCommand(oSelf, ActionCloseDoor(oSelf));
    AssignCommand(oSelf, ActionDoCommand(SetLocked(oSelf, TRUE)));
  }
  else
    AssignCommand(oSelf, SetLocked(oSelf, FALSE));
}
/* Если в слоте тэга ключа стоит цифра, то это новый час закрытия этой двери */


Сообщение отредактировал gennady - Oct 4 2006, 14:15
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Oct 4 2006, 14:40
Сообщение #2578


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

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



gennady, имхо:
- прятать инфу в LockKeyTag когда можно уже локалки делать в тулсе как-то попахивает нафталином (IMG:style_emoticons/kolobok_light/smile.gif)
- ставить SetLocked в очередь совершенно не обязательно. Фишка в том, что SetLocked(..,TRUE) можно сделать даже открытой двери. И закрыв ее - мы сразу ее и запрем. (ну эт так, придирка)
- чтобы не сравнивать каждый раз if (iNewT >= 1) iT = iNewT; проще вписать базовый час открытия в локалку (если ее не задал пользователь) и потом всегда работать с локалкой.
- ну и самое главное - ты не проверяешь, заперта ли уже дверь или нет, а значит всю ночь (с 21 до 6) ты будешь ее закрывать и запирать. Это лишнее.

доступно объяснил? (IMG:style_emoticons/kolobok_light/smile.gif)

Animeslave в принципе нормальный скрипт привел, только там else лишние малек.
так же у Айва неплохой вариант, позволяющий не загружать ХБ, только его конечно лучше немного переписать в плане структуры и проверок - корявенький. А идея интересная.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Neo
сообщение Oct 6 2006, 00:21
Сообщение #2579



Иконки Групп

Класс: Пьяный Мастер
Характер: Lawful Good
Раса: Тварь
MySQL, PHP, JavaScript
Порядок Времени



не совсем понял смыла таких эээ... больших скриптов (IMG:style_emoticons/kolobok_light/pardon.gif) я бы написал нечто вроде
NSS
int nLock = GetTimeHour() < GetLocalInt(OBJECT_SELF, "open_time") || GetTimeHour() >= GetLocalInt(OBJECT_SELF, "close_time");
if( GetLocked(OBJECT_SELF) != nLock ) {
  if( nLock ) AssignCommand(OBJECT_SELF, ActionCloseDoor(OBJECT_SELF));
  SetLocked(OBJECT_SELF, nLock);
}

не проверял понятно (IMG:style_emoticons/kolobok_light/pardon.gif)

можно еще добавить проверку на open_time > close_time (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
r1Stranger
сообщение Oct 21 2006, 16:02
Сообщение #2580


Level 4
**

Класс: Клерик
Характер: Lawful Neutral
Раса: Человек



Какой скрипт (если есть) отвечает за восстановление заклинаний у кастеров?

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Oct 22 2006, 00:10
Сообщение #2581


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

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



NSS
ForceRest(oPC);

Такой не помогает?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
SoulReaver
сообщение Oct 26 2006, 13:28
Сообщение #2582


Level 1


Класс: Рейнджер
Характер: Lawful Neutral
Раса: Эльф



Человек я здесь новый, но перейду сразу к делу. Меня интересует следующее - как ограничить развитие oPC по классу (т.е. задать для пользователя развитие только по тому классу, который определит разработчик). Или скажите хотя бы, как называется скрипт, который описывает все классы.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Vhall
сообщение Oct 26 2006, 14:18
Сообщение #2583


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

Класс: Обыватель
Характер: True Neutral
Раса: Дварф
NWN: Контент



Тебе нужен не скрипт, а classes.2da
Там есть столбец PlayerClass: 1 - игрок может выбирать при генерации, 0 - нет.

Сообщение отредактировал Vhall - Oct 26 2006, 14:19
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
SoulReaver
сообщение Oct 27 2006, 10:42
Сообщение #2584


Level 1


Класс: Рейнджер
Характер: Lawful Neutral
Раса: Эльф



Это я знаю, но мне этот вариант не подходит. Мысль в следующем: oPC развивается по классу который задал автор, но по ходу игры некоторые NPC могут предоставить возможность обучатся и по другому классу. Вся сложность в том, что необходимо выдержать линейность сюжета, а иначе полная белеберда получится.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Oct 27 2006, 15:13
Сообщение #2585


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

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



хм.. ну в принципе можно сделать следующее:
перевести все классы, кроме начального в позицию "престиж класс". (или что наверное более логично - сделать копии нужных классов в формате престижа, закрыв базовые классы). Так как в условия взятия престижа можно внести локалку (те определенная локалка имеет определенное значение), то установив ее в диалоге нужном, можно открыть нужный престиж класс.
Я ясно выражаюсь? (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ноин
сообщение Oct 27 2006, 18:59
Сообщение #2586


Level 3
*

Класс: Дварф-Защитник
Характер: Chaotic Good
Раса: Дварф



Мне нужно, чтобы персонаж выглядел определенным образом - То есть человек, с рожей с рогами и с хвостом (по сюжету это тифлинг) Как это сделать?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Oct 27 2006, 19:07
Сообщение #2587


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

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



ы? у НПС в свойствах Appearance все настраивается.
Если скриптами, то есть
NSS
// Sets the body part model to be used on the creature specified.
// The model names for parts need to be in the following format:
//  p<m/f><race letter><phenotype>_<body part><model number>.mdl
//
// - nPart (CREATURE_PART_*)
//      CREATURE_PART_RIGHT_FOOT
//      CREATURE_PART_LEFT_FOOT
//      CREATURE_PART_RIGHT_SHIN
//      CREATURE_PART_LEFT_SHIN
//      CREATURE_PART_RIGHT_THIGH
//      CREATURE_PART_LEFT_THIGH
//      CREATURE_PART_PELVIS
//      CREATURE_PART_TORSO
//      CREATURE_PART_BELT
//      CREATURE_PART_NECK
//      CREATURE_PART_RIGHT_FOREARM
//      CREATURE_PART_LEFT_FOREARM
//      CREATURE_PART_RIGHT_BICEP
//      CREATURE_PART_LEFT_BICEP
//      CREATURE_PART_RIGHT_SHOULDER
//      CREATURE_PART_LEFT_SHOULDER
//      CREATURE_PART_RIGHT_HAND
//      CREATURE_PART_LEFT_HAND
//      CREATURE_PART_HEAD
// - nModelNumber: CREATURE_MODEL_TYPE_*
//      CREATURE_MODEL_TYPE_NONE
//      CREATURE_MODEL_TYPE_SKIN (not for use on shoulders, pelvis or head).
//      CREATURE_MODEL_TYPE_TATTOO (for body parts that support tattoos, i.e. not heads/feet/hands).
//      CREATURE_MODEL_TYPE_UNDEAD (undead model only exists for the right arm parts).
// - oCreature: the creature to change the body part for.
// Note: Only part based creature appearance types are supported.
// i.e. The model types for the playable races ('P') in the appearance.2da
void SetCreatureBodyPart(int nPart, int nModelNumber, object oCreature=OBJECT_SELF)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ноин
сообщение Oct 27 2006, 21:57
Сообщение #2588


Level 3
*

Класс: Дварф-Защитник
Характер: Chaotic Good
Раса: Дварф



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

Сообщение отредактировал Ноин - Oct 27 2006, 22:00
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Oct 27 2006, 22:36
Сообщение #2589


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

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



зафиксировать части тела врядли получится.. можно конечно накопировать нужную голову под всеми возможными номерами, чтобы как не переключай, все равно была одна и та же, но это плохой выход.
Хвост приделать после генережки.. голову тоже там рекомендую поменять, как и все остальное. Цвета - хз.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Don_Beavis
сообщение Oct 27 2006, 23:11
Сообщение #2590


Level 1


Класс: Клерик
Характер: Neutral Evil
Раса: Дварф



Народ, подскажите хороший скриптик генератора лута.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 102 103 104 105 106 > » 
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



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