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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 84 85 86 87 88 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
-fenix-
сообщение Mar 31 2006, 12:06
Сообщение #2111


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

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



Elf-Drow, ты баг описываешь, предполагаешь или вопрос какой есть по реалезации?

Если первые два, то это не сюда.

Сообщение отредактировал -fenix- - Mar 31 2006, 13:05
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Mar 31 2006, 18:16
Сообщение #2112


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

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



В скриптинге карты в принципе нет ничего сложного. (текущая версия карты для ПВ это небольшая библиотечка в ~800 строк, там ~50 функций описано).
А вот моделинг самой карты, плейсов для нее и всякие вспомогательные штуки, это скриптами не сделать.

QUOTE(Elf-Drow @ Mar 31 2006, 11:10) [snapback]75488[/snapback]
Знаешь, Айван, вроде вы в Проклятии сделали так, чтобы Геркан был с героем одной расы, то есть ты гном он гном, ты эльф он эльф. Но это не работает! Я играю за эльфа, но Геркан у меня гном!

баг.. хотя странны. А делается просто - в палитре Герканы всех расс, при старте модуля создаем нужного, согласно расе игрока. Хоть полуорка (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lanilor
сообщение Mar 31 2006, 18:17
Сообщение #2113


Level 1


Класс: Волшебник
Характер: Chaotic Neutral
Раса: Полуэльф



2[MoF]Darth_Nick: спасибо.
У меня еще один вопрос: как сделать, чтобы npc (хенч) уходил назад в свою область (дом) для будущего использования, как только он становится ненужным. Никак не сделать, чтобы нпс бежал на вейпоинт, находящийся в другой области? Может можно его туда телепортировать?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Mar 31 2006, 18:22
Сообщение #2114


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

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



QUOTE(Lanilor @ Mar 31 2006, 19:17) [snapback]75560[/snapback]
Никак не сделать, чтобы нпс бежал на вейпоинт, находящийся в другой области? Может можно его туда телепортировать?

Делай темный экран на пару секунд и телепортируй. С бегатней меж локами гемороя много всякого.
отследить событие отсоединения можно в библиотеке x0_inc_henai. Строка 866.
там ниже вставь, что если хенч с тэгом таким-то, то джампается туда-то.
Не забудь билдануть скрипты потом, особено onConversation для хенчей.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
JCDenton
сообщение Mar 31 2006, 18:52
Сообщение #2115


Level 3
*

Класс: Тайный Лучник
Характер: Chaotic Good
Раса: Эльф



Нафик мне факелы? :-) Мне надо спалить кучу обьектов..
в скрипте.. то как я это вижу..

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

и по новой..

а работает хз как

а тупой перебор тагов (если их разными сделать) я тоже как бы сам соображу..
суть не в скрипте а в причине его не работоспособности.. вникнуть может ктонить? просто интересно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Mar 31 2006, 18:58
Сообщение #2116


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

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



работает хз как, потому что написан хз как.
oFire = GetNearestObjectByTag("PLC_DRM_F01", GetNearestObjectByTag("PLC_DRM_FR", OBJECT_SELF));
это тебе все время одно и тоже давать будет: ближайший к твоей конструкции (Так как удаление не происходит мгновенно. Создание тоже не мгновенное.).
NSS
void main()
{
object oFire  = GetObjectByTag("PLC_DRM_F00");
location lLoc = GetLocation(oFire);
if (GetLocalInt(OBJECT_SELF, "Counter") == 1return;
SetLocalInt(OBJECT_SELF, "Counter", 2);
DestroyObject(oFire);
// центр, относительно которого берем ближайший объект на удаление
object oCenter = CreateObject(OBJECT_TYPE_PLACEABLE, "plc_flamelarge", lLoc, FALSE, "PLC_DRM_FR");
// берем следующую кучу дров
oFire = GetNearestObjectByTag("PLC_DRM_F01", oCenter);
// пока есть дрова в локации.. тут бы лучше добавить проверки дистанции.
while (GetIsObjectValid(oFire))
    {
    lLoc = GetLocation(oFire);
    DestroyObject(oFire, 0.0f);
    // новый центр поиска - костерок на месте дров
    oCenter = CreateObject(OBJECT_TYPE_PLACEABLE, "plc_flamelarge", lLoc, FALSE, "PLC_DRM_FR");
    // следующие дрова
    oFire  = GetNearestObjectByTag("PLC_DRM_F01", oCenter);
    }
}

Так примерно, не тестировал..

QUOTE(JCDenton @ Mar 31 2006, 19:52) [snapback]75570[/snapback]
а тупой перебор тагов (если их разными сделать) я тоже как бы сам соображу..

не заметно как-то, что сообразишь. тут самый, что ни наесть, тупой перебор.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
JCDenton
сообщение Apr 1 2006, 01:21
Сообщение #2117


Level 3
*

Класс: Тайный Лучник
Характер: Chaotic Good
Раса: Эльф



Ну Куда нам нубам до мудрого Лекса... (IMG:style_emoticons/kolobok_light/smile.gif) ))
Твой скрипт вешает невервинтер к чертям.. т.к. получается бесконечный цикл. Почему он там получается? потому что скрипт написан ХЗ как =)

Сеня первое апреля но я тя не прикалываю.. проверь сам =)
Кстати потому я и ввел второе условие в цикл.. чтобы не atl-ctrl-delete =)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Apr 1 2006, 01:51
Сообщение #2118


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

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



ну раз не получилось так (все из-за того же, создание и удаление + взятие одних и тех же по несколько раз)
делаем простейшую рекурсию

lx_fire_start
NSS
void main()
{
if (GetLocalInt(OBJECT_SELF, "Counter") == 1return;
SetLocalInt(OBJECT_SELF, "Counter", 2);
object oFire  = GetObjectByTag("PLC_DRM_F00");
location lLoc = GetLocation(oFire);
CreateObject(OBJECT_TYPE_PLACEABLE, "plc_flamelarge", lLoc, FALSE, "PLC_DRM_FR");
ExecuteScript("lx_fire_main",oFire);
DestroyObject(oFire,0.5);
}


lx_fire_main
NSS
void main()
{
SetLocalInt(OBJECT_SELF,"USED",TRUE);
location lLoc = GetLocation(OBJECT_SELF);
int i = 1;
CreateObject(OBJECT_TYPE_PLACEABLE, "plc_flamelarge", lLoc, FALSE, "PLC_DRM_FR");
object oFire = GetNearestObjectByTag("PLC_DRM_F01", OBJECT_SELF,i);
while (GetLocalInt(oFire,"USED"))
    {
    i++;
    oFire = GetNearestObjectByTag("PLC_DRM_F01", OBJECT_SELF,i);
    }
if (GetIsObjectValid(oFire))
    DelayCommand(0.4,ExecuteScript("lx_fire_main",oFire));

DestroyObject(OBJECT_SELF, 0.5f);
}


--
вместо того, чтоб панику поднимать, товарищ нуб, лучше бы подумали маленько (IMG:style_emoticons/kolobok_light/smile.gif)
А не списывали начисто у мудрого Лекса.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
JCDenton
сообщение Apr 1 2006, 02:05
Сообщение #2119


Level 3
*

Класс: Тайный Лучник
Характер: Chaotic Good
Раса: Эльф



Во, терь Лекс молодец, терь работает (IMG:style_emoticons/kolobok_light/yahoo.gif)
Вопросы(IMG:style_emoticons/kolobok_light/smile.gif)
1) Что такое рекурсия? ссылка на другой скрипт?
2) тот скрипт не работал изза того что "удаление/создание" проходят медленее чем остальная часть скрипта?



3) object GetNearestObjectByTag(string sTag, object oTarget=OBJECT_SELF, int nNth=1)

что обозначает "int nNth"?
как я понял из твоего скрипта.. Берется ближайший, потом 2-й ближайший.. 3-й и т.п. Так?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Apr 1 2006, 02:15
Сообщение #2120


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

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



1. рекурсия это в общем когда функция вызывает саму себя. В данном случае скрипт вызывает сам себя до определенного момента.

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

3. это номер ближайшего объекта. по умолчанию 1, те ближайший. А можно брать второй, третий и Хый по удаленности. это все описано в лексиконе.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Apr 1 2006, 11:20
Сообщение #2121


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

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



изначально скрипт не работал именно из-за того, что не был указан третий параметр в функции GetNearestObjectByTag. так как фактическое удаление объекта происходит после окончания работы скрипта, то циклилось все на первом объекте. рекурсии-фигурсии... (IMG:style_emoticons/kolobok_light/crazy.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
JCDenton
сообщение Apr 1 2006, 15:57
Сообщение #2122


Level 3
*

Класс: Тайный Лучник
Характер: Chaotic Good
Раса: Эльф



Значит в принципе операции удаления происходят после выполнения Большей части скрипта?
Короче не юзать удаление обьектов в циклах, если с них таким методом снимаем координаты.. (IMG:style_emoticons/kolobok_light/biggrin.gif)

Насчет карты в Проклятии..
Щелкаешь правой на тсурлаголе, выбераешь "рубануть". Слышешь вопли ПС "My weapon is not effect.." Ржешь.. Делаешь Alt-Ctrl-Delete. Закрываешь нвн. Заходшь аново и загружаешься с последней савы.. я такое сделал в момент прохождения половины первого мода.. а сохраняться я люблю только перед тем как вырубить камп.. :-)

Но тем не менее карта это прикол, надо только сделать, чтобы в случае закрытия диалога - он появлялся снова.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Apr 3 2006, 18:15
Сообщение #2123


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

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



У меня, такой вопрос.
Можно ли восстановить хиты игроку кроме как регенерациями и EffectHeal?
В общем, есть что-то, что не пишет в панель сообщений, кто и скока хитов восстановил?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
2_advanced
сообщение Apr 3 2006, 19:18
Сообщение #2124


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

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



ForceRest()
EffectDamage (IMG:style_emoticons/kolobok_light/crazy.gif)

можно временные хиты добавлять еще..
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Apr 3 2006, 19:22
Сообщение #2125


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

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



QUOTE(2_advanced @ Apr 3 2006, 20:18) [snapback]76072[/snapback]
ForceRest()
EffectDamage

Иными словами - НЕТ! А жаль.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Apr 4 2006, 00:44
Сообщение #2126


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

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



-fenix-, как ты себе это представляешь? Игра основана на спасбросках и т.п. вещах, и поэтому все действия, которые осуществляются с персонажем, отображаются в логах. Не совсем понимаю, зачем тебе это нужно?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
2_advanced
сообщение Apr 4 2006, 02:52
Сообщение #2127


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

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



QUOTE(-fenix- @ Apr 3 2006, 18:22) [snapback]76076[/snapback]

Иными словами - НЕТ! А жаль.
QUOTE
можно временные хиты добавлять еще..
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Elf-Drow
сообщение Apr 4 2006, 15:05
Сообщение #2128


Level 8
***

Класс: Теневой Танцор
Характер: True Neutral
Раса: Эльф



Подмогите со скриптом, чтобы в модуль можно было играть к примеру только мужским полом...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
2_advanced
сообщение Apr 4 2006, 16:15
Сообщение #2129


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

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



а поиск на что?

О_о
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Elf-Drow
сообщение Apr 5 2006, 15:09
Сообщение #2130


Level 8
***

Класс: Теневой Танцор
Характер: True Neutral
Раса: Эльф



Благодарствую...

Но также, знаете, не получилось заставить непися, к примеру подбегать к двери и бежать в другую локацию или просто исчезать, помогитеее...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Apr 5 2006, 17:51
Сообщение #2131


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

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



Слушай, это есть в разделе новичков. Давай ка ты читай что есть. Нечего спрашивать что спрашивали сто раз.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Nashman
сообщение Apr 6 2006, 00:57
Сообщение #2132


Level 8
***

Класс: Тайный Лучник
Характер: Lawful Good
Раса: Эльф



Привет,
Возникла идея, или лутше назвать "потребность", что бы когда ПС садился то у него с рук снимались перчатки (IMG:style_emoticons/kolobok_light/smile.gif) , с головы шлем, убирался меч и щит. А когда он вставал, ето под красивую анимацию надевалось все обратно.

ПС: Может я и написал бы, но я не сталкивался с тем, как снимать или надевать что-то...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Apr 6 2006, 02:28
Сообщение #2133


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

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



NSS
// Unequip oItem from whatever slot it is currently in.
void ActionUnequipItem(object oItem)

NSS
// Equip oItem into nInventorySlot.
// - nInventorySlot: INVENTORY_SLOT_*
// * No return value, but if an error occurs the log file will contain
//  "ActionEquipItem failed."
//
// Note:
//      If the creature already has an item equipped in the slot specified, it will be
//      unequipped automatically by the call to ActionEquipItem.
//
//      In order for ActionEquipItem to succeed the creature must be able to equip the
//      item oItem normally. This means that:
//      1) The item is in the creature's inventory.
//      2) The item must already be identified (if magical).
//      3) The creature has the level required to equip the item (if magical and ILR is on).
//      4) The creature possesses the required feats to equip the item (such as weapon proficiencies).
void ActionEquipItem(object oItem, int nInventorySlot)
NSS
// Get the object which is in oCreature's specified inventory slot
// - nInventorySlot: INVENTORY_SLOT_*
// - oCreature
// * Returns OBJECT_INVALID if oCreature is not a valid creature or there is no
//  item in nInventorySlot.
object GetItemInSlot(int nInventorySlot, object oCreature=OBJECT_SELF)


В скрипте, сажающим на стул добавь действия снятия вещей до того, как усаживать персонажа. Снятые вещи запомни в локальных переменных и пусти цикл, проверяющий, допустим, каждые 3 сек. сидит ли еще персонаж на стуле или нет.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Apr 7 2006, 00:00
Сообщение #2134


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

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



Проверять через цикл не самая лучшая идея. Гонять циклы для всех сидящих персонажей, причем постоянно, только лишняя нагрузка на процессор. Лучше рядом посадить невидимое существо, которое будет слушать команды игрока или же составить список команд, которые можно будет запускать с быстрой панели. Например, решил он выполнить команду, сесть на стул, нажимаем на определенное действие в быстрой панели, решил встать, нажимаем другое действие. А там и соответствующие действия по раздеванию (IMG:style_emoticons/kolobok_light/smile.gif)

Кстати, интересная идея, надо поэкспериментировать. Есть что-то подобное у скриптов DMFI, но там вроде бы все команды видны в чате.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
2_advanced
сообщение Apr 7 2006, 02:49
Сообщение #2135


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

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



хертбиты у мобов на АИ работают и нормально..
процессор спалили пока только один (IMG:style_emoticons/kolobok_light/crazy.gif)
ни какая микро проверялка с АИ не сравнится

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

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

 



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