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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 2 3 4 5 6 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Аваддон
сообщение Jun 19 2004, 08:27
Сообщение #76


Level 10
***

Класс: Воин
Характер: Lawful Neutral
Раса: Человек
NWN: Скриптинг [PW]



А, все допер в чем ошибка. Там надо же еще писать от кого ближайший объект (IMG:style_emoticons/kolobok_light/lol.gif)
А теперь другой вопрос как сделать чтобы объект создавался с задержкой?
Ну например я срубил дерево а через 500сек там еще одно выросло?
Я пытался совместить DelayCommand и CreateObject - бестолку. Написал отдельную функцию - и поставил ее на дилэй - тоже не появляется..вот фигня какая.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 19 2004, 23:52
Сообщение #77


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

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



Вот кусок моей инклюды, работает все как часы. Хочешь просто объект, хочешь с новым тегом крееть.
Код

//::///////////////////////////////////////////////
//:: Name: am_libcutscen
//:: Copyright (c) 2004 WRG!
//:://////////////////////////////////////////////
/*
              БИБЛИОТЕКА ДЛЯ СЦЕН
*/
//:://////////////////////////////////////////////
//:: Created By: Aiwan      Aiwan@e-mail.ru
//:: Created On: 22.03.2004
//:://////////////////////////////////////////////

// ФУНКЦИЯ СОЗДАНИЯ ОБЪЕКТА С НОВЫМ ТАГОМ
// int iAnimation = АНИМАЦИЯ ПРИ ПОЯВЛЕНИИ
// string sNewTag = "НОВЫЙ_TAG_ОБЪЕКТА"
void ActionCreateNew(int nObjType, string sCreature, location lLoc, int iAnimation, string sNewTag);
// ФУНКЦИЯ СОЗДАНИЯ item ОБЪЕКТА
// sItemTemplate - ResRef объекта
// oTarget - у кого создаем объект
// nStackSize - количество в стеке
void ActionCreateItem(string sItemTemplate, object oTarget=OBJECT_SELF, int nStackSize=1);
//------------------------------------------------------------------------------
void ActionCreate(int nObjType, string sCreature, location lLoc);

void ActionCreate(int nObjType, string sCreature, location lLoc)
{
   CreateObject(nObjType, sCreature, lLoc);
}

void ActionCreateNew(int nObjType, string sCreature, location lLoc, int iAnimation, string sNewTag)
{
 CreateObject(nObjType, sCreature, lLoc, FALSE, sNewTag);
}

void ActionCreateItem(string sItemTemplate, object oTarget=OBJECT_SELF, int nStackSize=1)
{
 CreateItemOnObject(sItemTemplate,oTarget, nStackSize);
}
/*void main()
{

}


Код
DelayCommand(30.0, ActionCreate(sCreature, lLoc));

Это кусок кода из скрипта.
Код
   DelayCommand(33.5, ActionCreateItem("key_shop_nouse", oPC, 1));

Это тоже. Все пахает.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Аваддон
сообщение Jun 20 2004, 23:01
Сообщение #78


Level 10
***

Класс: Воин
Характер: Lawful Neutral
Раса: Человек
NWN: Скриптинг [PW]



Спасибо(IMG:style_emoticons/kolobok_light/smile.gif) Так так, а кто у нас тут специалист по бд? Или может это не с БД связано...
Вообщем очень заинтересовался, как можно сделать сейф предметов для мультика? Тоесть человек положил в сейф предмет, ззакрыл, получил расписку и ушел. Сервак перезагрузился, он зашел отдал расписку, сказал кодовое слово и получил обратно свои предметы...
Если конечно ни у кого ничего такого не написано, то подайте хотябы идею как реализовать это. Вписывать теги всех вещей - исключено! Их там столько...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
_kaa_
сообщение Jun 21 2004, 09:13
Сообщение #79


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

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



Цитата
Спасибо Так так, а кто у нас тут специалист по бд? Или может это не с БД связано...
Вообщем очень заинтересовался, как можно сделать сейф предметов для мультика? Тоесть человек положил в сейф предмет, ззакрыл, получил расписку и ушел. Сервак перезагрузился, он зашел отдал расписку, сказал кодовое слово и получил обратно свои предметы...
Если конечно ни у кого ничего такого не написано, то подайте хотябы идею как реализовать это. Вписывать теги всех вещей - исключено! Их там столько...


Есть несколько способов. Если хочешь именно с распиской за каждую вещь - можно не используя БД сделать сохранение любой вещи, _котороая есть в палитре_, конечно при условии, что у тебя модуль "как у людей" построен и тег==ресрефу.
С БД можно сохранять любые вещи, даже самодельные, выданные ДМ-ом. Расписка и кодовое слово тут не нужны, у каждого игрока свой инвентарь в сундуке (т.е. кто открыл - того сундук и прочитался). Есть ограничения на этот случай тоже.
1) если писать в БД все объекты сразу, то получишь большой лаг (по одному предмету - еще нормально). 2) При удалении из БД объекта размер самой базы не уменьшается и нужна принудителньая упаковка баз данных внешней утилитой.

В другом топике, "Шарды", я выложу пример такого сундука (в течение дня (IMG:style_emoticons/kolobok_light/smile.gif) )
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Аваддон
сообщение Jun 21 2004, 19:11
Сообщение #80


Level 10
***

Класс: Воин
Характер: Lawful Neutral
Раса: Человек
NWN: Скриптинг [PW]



Интересная идея посетила. Вот воры крадут - это нормально ведь у кого то спот не прокачен. Но когда воры крадут в городе где полно охраны это уже прям не охрана а музей восковых фигур. Как можно прописать чтобы охрана становилась хостайл для вора если увидит что вор у кого то крадет?
Может OnHeartBit арены города поставить проверку -какие навыки используются и если используются PickPocket выставлять хостайл?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jun 21 2004, 19:40
Сообщение #81


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

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



на дистурб НПС напиши скрипт, чтобы он заорал Воры! Хватаешь ближайшего стражника и атакуешь им игрока. Не надо делать репутацию 0. Это не очень логично.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Аваддон
сообщение Jun 21 2004, 19:50
Сообщение #82


Level 10
***

Класс: Воин
Характер: Lawful Neutral
Раса: Человек
NWN: Скриптинг [PW]



Да но это будет работать если воры обносят НПС а если они обносят других игроков?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jun 21 2004, 20:08
Сообщение #83


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

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



тогда незнаю
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Jun 22 2004, 09:20
Сообщение #84


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



Тогда пусть другой игрок ему и стучит по голове, если заметил кражу. Гы. (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Аваддон
сообщение Jun 22 2004, 14:03
Сообщение #85


Level 10
***

Класс: Воин
Характер: Lawful Neutral
Раса: Человек
NWN: Скриптинг [PW]



О да(IMG:style_emoticons/kolobok_light/smile.gif) ))
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
_kaa_
сообщение Jun 22 2004, 16:32
Сообщение #86


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

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



Цитата
Да но это будет работать если воры обносят НПС а если они обносят других игроков?


Вот простой вариант: отслеживать событие модуля OnUnacquire() и проверять, если на вещи стоит флаг stolen - большая вероятность что вещь только что сперли и можно натравить на игрока стражника (в любом случае нечего ходить с краденными вещами).
Правда это событие глючит когда крадут деньги или вещи, которые складываются (подробнее в лексиконе)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Jun 22 2004, 17:51
Сообщение #87


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



Каа, а почему нельзя ходить с крадеными вещами? Стражники ведь не досматривают! Прикинь картину: ты идешь себе, идешь, появляется патрульный стражник и вдруг набрасывается с криком: "ВОР! Замочу гада!". Достает АК-47 и начинает палить... Хм... понесло...

Все бы ничего, да вот я-то эту вещь поднял с брошеного трупика какого-то игрока... (что сделаешь, если я отыгрываю свой LE). Гы. :ss: (IMG:style_emoticons/kolobok_light/crazy.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Аваддон
сообщение Jun 22 2004, 19:47
Сообщение #88


Level 10
***

Класс: Воин
Характер: Lawful Neutral
Раса: Человек
NWN: Скриптинг [PW]



Хм а почему на OnUnAquire это же наоборот когда сбрасываешь вещь?! (IMG:style_emoticons/kolobok_light/unknw.gif) А тогда можно я думаю вот как сделать: Значит на OnAquire ставим проверку приобретенной вещи - если stolen, то проверяем арену, если это город - проверяем расстояние он человека который получил эту вещь до Nearest гварда. Если расстояние там допустим менее 10 то берем этого гварда и Assign ему чтоб он кричал "Воры! Полетят клочки по закоулочкам нашей славного града..." и аттачит вора... Или нет...Даже вот что лучше - он вора атачит и на каждом ударе проверяет здоровье. Если здоровье вора <0>-10 то есть вор уже на земле корячится то он типа говорит - пройдемте в отделение, тут ему прибаляется 10хп чтоб ожил и телепортится в камеру тюрьмы (IMG:style_emoticons/kolobok_light/smile.gif) (IMG:style_emoticons/kolobok_light/rolleyes.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 22 2004, 22:10
Сообщение #89


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

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



Цитата
проверяем расстояние он человека который получил эту вещь до Nearest гварда. Если расстояние там допустим менее 10 то берем этого гварда и Assign ему чтоб он кричал "Воры! Полетят клочки по закоулочкам нашей славного града..."

Лучше кин автоDС на скрытность или воровство твоего РС и гварда. Прошел бросок, можешь пробежаться мимо стражника и отпукаться (IMG:style_emoticons/kolobok_light/shok.gif) за углом. Нет, тогда кричи: "Эй стой! Что то ты подозрителен!" Старт диалога а там можешь и проверочку делать, типа убедил стражника - отмазался (IMG:style_emoticons/kolobok_light/smile.gif) Вот стимул качать фиты (IMG:style_emoticons/kolobok_light/spiteful.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Аваддон
сообщение Jun 22 2004, 22:35
Сообщение #90


Level 10
***

Класс: Воин
Характер: Lawful Neutral
Раса: Человек
NWN: Скриптинг [PW]



Во, Айван ты всегда что то клевое подаешь(IMG:style_emoticons/kolobok_light/smile.gif) А если игрок просто закроет диалог?! Есть такая фишка? что тогда делать - нападать?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 23 2004, 09:23
Сообщение #91


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

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



Ты имеешь ввиду это?:
Цитата

Current Files (Normal, Aborted) – эти слоты созданы для того, что бы можно было присвоить какие-то события на прерывание диалога или на простое завершение. Обычно там стоит скрипт «nw_walk_wp» для следования NPC по заданным точкам пути, после диалога.

Ставь туда свой скрипт, можешь хоть на начало диалога занаво, типа прервал, забивай стек команд и старт конверсатион. ДА в принципе, что хочешь влепляй. Можно и атаку, типа, "Ах, ты еще и разговаривать не хочешь!?"
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Вестель
сообщение Jun 23 2004, 09:26
Сообщение #92


Level 7
**

Класс: Чемпион Торма
Характер: Chaotic Good
Раса: Человек
NWN: DM



Цитата
А если игрок просто закроет диалог?! Есть такая фишка? что тогда делать - нападать?

За ухо и об землю!
Действительно хорошая идея: делать противобросок Spot vs. Pick Pocket тех кто находится в 10 метрах.. А если плеер, то выдавать системное сообщение: "Вы заметили, что <Bacja> ворует.." Тогда будет прикольный момент с покрывательством и последующим шантажом. (IMG:style_emoticons/kolobok_light/yes3.gif) .. А стражник заметивший пускай, сначала предупреждает (IMG:style_emoticons/kolobok_light/dirol.gif) "Пройдемте в отделение", а при попытке убежать, не отвечать, укастовке начинает ответные действия...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Jun 23 2004, 11:34
Сообщение #93


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



Ребят, а вы не думали, что можно проверять и устанавливать на каждую приобретенную вещь (в OnAcquire) переменную = Тэг(OBJECT_SELF) + ID хозяина. Тем самым можно дополнительно проверить краденая ли вещь... Но это идея... Возможно и не очень правильная для шарда, но все же...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
_kaa_
сообщение Jun 23 2004, 17:40
Сообщение #94


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

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



Цитата
Каа, а почему нельзя ходить с крадеными вещами? Стражники ведь не досматривают! Прикинь картину: ты идешь себе, идешь, появляется патрульный стражник и вдруг набрасывается с криком: "ВОР! Замочу гада!". Достает АК-47 и начинает палить... Хм... понесло...

Все бы ничего, да вот я-то эту вещь поднял с брошеного трупика какого-то игрока... (что сделаешь, если я отыгрываю свой LE). Гы.


Если просто поднимать вещь - флаг stolen не ставится, только когда воруешь.

Цитата
Хм а почему на OnUnAquire это же наоборот когда сбрасываешь вещь?!  А тогда можно я думаю вот как сделать: Значит на OnAquire ставим проверку приобретенной вещи - если stolen, то проверяем арену, если это город - проверяем расстояние он человека который получил эту вещь до Nearest гварда. Если расстояние там допустим менее 10 то берем этого гварда и Assign ему чтоб он кричал "Воры! Полетят клочки по закоулочкам нашей славного града..." и аттачит вора... Или нет...Даже вот что лучше - он вора атачит и на каждом ударе проверяет здоровье. Если здоровье вора <0>-10 то есть вор уже на земле корячится то он типа говорит - пройдемте в отделение, тут ему прибаляется 10хп чтоб ожил и телепортится в камеру тюрьмы 


Ага, именно OnAcquireItem. Там можно получить что это за вещь, кто прежний хозяин и кто нынешний. Если вещь stolen, прежний хозяин игрок\НПС и нынешний - игрок, то вещь либо сперли, либо бартером передали. Но баги такие же - на золото не вызывается этот event.
Да, с этим эвентом еще один прикол. Когда игрок заходит на шард - каждая вещь из его инвентаря вызывает этот эвент. Это не бага, это фича (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Tarre Talliorne
сообщение Jun 27 2004, 19:48
Сообщение #95


Level 8
***

Класс: Псионик
Характер: Chaotic Good
Раса: Человек
NWN: Скриптинг [Sn]



Кстати - с реакцией гварда можно сделать проще: фит нокдаун и через 0.1 сек эффект нокдаун - потом изменение отношения на нейтральное и разговор - плати штраф за то-то и то-то. Проще тем, что можно обойтись без тюрьмы... Даже если у игрока нет денег - берут шмотом и дают сдачу :-) , а если и шмоток нет, у игрока начинают рости ДОЛГИ (IMG:style_emoticons/kolobok_light/spiteful.gif) . А если при диалоге перс нарывается на агрессию и нападает, его всегда можно выруюить заново и удвоить штраф (IMG:style_emoticons/kolobok_light/pleasantry.gif) . Могу кинуть код (сыроват он еще, но ...) - просто у нас в модуле у части охраны такое поведение (IMG:style_emoticons/kolobok_light/biggrin.gif) .
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jun 27 2004, 20:22
Сообщение #96


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

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



в базу кидай
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Tarre Talliorne
сообщение Jun 28 2004, 10:45
Сообщение #97


Level 8
***

Класс: Псионик
Характер: Chaotic Good
Раса: Человек
NWN: Скриптинг [Sn]



Отшлифую - кину...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Tarre Talliorne
сообщение Jun 30 2004, 11:03
Сообщение #98


Level 8
***

Класс: Псионик
Характер: Chaotic Good
Раса: Человек
NWN: Скриптинг [Sn]



Вопроссс: мне нужно определить, висит ли на ПС эффект увеличение КБ, вроде все в порядке - перебираю все эффекты и т.д. но все равно в результате скрипт возвращает 0... Никак не допру, в чем проблема.
Код

       int iResult = 0;
       object oPC = GetPCSpeaker();
       effect eEffect1 = EffectACIncrease(1);
       effect eEffect2 = EffectACIncrease(2);
       effect eEffect3 = EffectACIncrease(3);
       effect eMSD = GetFirstEffect(oPC);
       while (GetIsEffectValid(eMSD))
       {
           if (eMSD == eEffect1 ||
               eMSD == eEffect2 ||
               eMSD == eEffect3  )
           {
           iResult = 1;
           }
       eMSD = GetNextEffect(oPC);
       }
       return iResult;
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Jun 30 2004, 11:24
Сообщение #99


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



Tarre
А кто ж так эффекты сканирует? (IMG:style_emoticons/kolobok_light/biggrin.gif)
effect eEff = EffectACIncrease(...) - создает новый "экземпляр" эффекта. Это не нужно тебе в данной ситуации.
Надо делать так:
Код

.........
      while (GetIsEffectValid(eMSD))
       {
           if (GetEffectType(eMSD) == EFFECT_TYPE_AC_INCREASE)
              iResult = 1;
           eMSD = GetNextEffect(oPC);
       }
.........
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Tarre Talliorne
сообщение Jul 2 2004, 16:40
Сообщение #100


Level 8
***

Класс: Псионик
Характер: Chaotic Good
Раса: Человек
NWN: Скриптинг [Sn]



Спасибо... хех, прикол в том, что с визулками все отлимчно работало... Да, кстати, сразу написаля инлюд - через пять минут выложу в базе скриптов (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

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

 



Текстовая версия Сейчас: 19th April 2024 - 19:55