![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]() ![]()
Сообщение
#1
|
|
Level 9 ![]() Класс: Вор Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] ![]() |
сабж.
кто-нибудь извращался с редактированием имён скриптов, вешаемых на игроков? default пашет только как херт бит.. и имхо легче самоповторяющееся действие повесить в общем задача - повесить on_spell_cast on_attack on_death (ну это не обязательно) и т.п.. Сообщение отредактировал 2_advanced - Jun 27 2005, 01:34 |
![]()
Сообщение
#2
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
пробовал через лето написать в слоты игрока другие скрипты. Вместо дефолта.
Не вышло. |
![]()
Сообщение
#3
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
Я пробовал, но как только игра сохраняет перса, у него тут-же все переменные в полях скриптинга чар-файла (bic) становятся "default"
|
![]()
Сообщение
#4
|
|
Level 4 ![]() Класс: Друид Характер: True Neutral Раса: Человек NWN: Тексты ![]() |
А попробуйте создать в инвентаре чара некий нон-дроп предмет и вешать переменные на него. Может так получится?
|
![]()
Сообщение
#5
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
LArden, или туплю я, или одно из двух.. Но причем тут переменные? Мы говорим про скрипты на игрока. Типа onDamage, onDeath (это можно через модульный скрипт сделать, так что наф), onSpellCastAt и прочее..
|
![]()
Сообщение
#6
|
|||
Mystery ![]() Класс: Маг Характер: Lawful Evil Раса: Тварь NWN: Контент Амен ![]() |
Так не просто получится - так делают. |
||
![]()
Сообщение
#7
|
|||
Level 10 ![]() ![]() ![]() Класс: Клерик Характер: Lawful Neutral Раса: Человек NWN: Контент ![]() |
default "пашет" как все эти скрипты вместе взятые, не зря он в каждом слоте. И срабатывает он по всем эвентам для этих слотов. А что если использовать его как контейнер: все on_xxx как инклюды и запускать соответствующие функции, определяя через свитч, что конкретно было причиной вызова скрипта? Т.е. если у нас причина атака, то запускаем on_attack - засечена смерть, то on_death. |
||
![]()
Сообщение
#8
|
|
Level 9 ![]() Класс: Вор Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] ![]() |
это будет зверский лаг :vava:
|
![]()
Сообщение
#9
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
"определяя через свитч, что конкретно было причиной вызова скрипта?"
а это как?? Я не придумал пока, как это сделать. Если напишешь, дай мне. :) У меня Сингл, лаги не будут заметны :) |
![]()
Сообщение
#10
|
|||
Level 10 ![]() ![]() ![]() Класс: Клерик Характер: Lawful Neutral Раса: Человек NWN: Контент ![]() |
Что-то в этом роде:
|
||
![]()
Сообщение
#11
|
|
Level 9 ![]() Класс: Вор Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] ![]() |
NWNXом менял скрипты, повешанные на чара.. - сервак падал при первом вызове любого скрипта..
буду ковырять дальше =Р |
![]()
Сообщение
#12
|
|
Level 9 ![]() Класс: Фея Характер: Chaotic Evil Раса: Тварь NWN: Скриптинг [PW] ![]() |
K.SpecTr
default скрипт работает на PC только как хб, несмотря на то, что прописан во всех слотах - проверено путем написания оного. несмотря на активное поведение PC, тестовая строка падала в лог с методичностью хб. и не более. а тот скрипт, что ты написал... как бы это так помягче описать... :swoon: ;) |
![]()
Сообщение
#13
|
|
Level 10 ![]() ![]() ![]() Класс: Клерик Характер: Lawful Neutral Раса: Человек NWN: Контент ![]() |
dumbo
Ну, как бы это так помягче сказать, я никогда (почти) умным скриптером не прикидывался. :lol: Я лишь поставил вопрос: может быть можно и так. ;) |
![]()
Сообщение
#14
|
|
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
У меня вопрос такого плана. Если уж заговорили про скрипты, которые вешаются на персонажа игрока, то как отличить, кто первый начал атаку. С монстрами это просто, у них свои скрипты, а вот что делать с двумя дерущимися персонажами? Дело в том, что угадать, кто виноват, когда первоуровневый персонаж нападает на высокоуровневого, сложно. А виноват чаще именно тот, кто умер, но попробуй это докажи. Поэтому мне и интересно, можно ли как-нибудь это сделать?
|
![]()
Сообщение
#15
|
|
Level 1 Класс: Монах Характер: Chaotic Evil Раса: Эльф ![]() |
Наверное все же сюда... Такс
Есть две команды А и Б, они постоянно воют, Есть нондроп дивайс, на него нужно положить скрипт, чтобы: 1)Записывал кол-во убийств(фрагов) (число X) 2)При убийтве перса ниже чем на 10 уровне вычитать из X единицу 3)Команда, при которой можно узнать хонор статус другого игрока... Почти уверен, что такая херь есть на волте, только никак не найду... |
![]()
Сообщение
#16
|
|||
Level 9 ![]() Класс: Фея Характер: Chaotic Evil Раса: Тварь NWN: Скриптинг [PW] ![]() |
лучший! :good: систему такую написать несложно, но нафиК никому, кроме тебя, не надо. Добавлено в [mergetime]1121737902[/mergetime] да, по ТЕМЕ: скрипты на PC, кроме хб, просто не вызываются, поэтому менять их названия ни в памяти игры, ни в сэйве смысла не имеет. |
||
![]()
Сообщение
#17
|
|
Level 1 Класс: Монах Характер: Chaotic Evil Раса: Эльф ![]() |
dumbo
ну раз не сложно, неужели нельзя помочь? |
![]()
Сообщение
#18
|
|||||||||||||||||
Level 9 ![]() Класс: Волшебник Характер: Chaotic Good Раса: Дракон NWN: Скриптинг [PW] ![]() |
Ты сам начни, будут вопросы - ответим. Никто делать за тебя не станет, но поможем с тем, с чем с ходу не справишся. В двух словах где тебе рыть:
Тебе нужно отслеживать событие "смерть игрока" - это OnPlayerDying, OnPlayerDeath (в свойствах модуля). Первое срабатывает, когда у игрока меньше 0 хитпоинтов, второе - когда -10 и меньше. Если кто-то умирает - генерируется эти события, в них можно получить кто умер
и кто его убил
.
Это гораздо проще. У тебя уже есть убитый и убийца, осталось узнать уровень обоих и сравнить.
Теперь надо записать все на вещь:
Как только будет сохранение персонажа (при его выходе или при вызове ExportAllCharacters(),ExportSingleCharacter(oPC)) его фраги запишутся в .bic файл игрока, т.е. туда же куда пишется информация об игроке, его уровне, вещях и т.п.
Если "хонор" в твоем понимании количество фрагов: Тебе нужна вещь со свойством Cast Spell:Unique power (unlimit). При ее активации вызывается событие модуля onActivateItem(), в нем тебе нужно проверить, что активированна именно твоя вещь. Скажем вещь твоя имеет тег "honor_viewer"
Вариант без проверок. Проверки приделывай сам, надо убедиться что oTarget - игрока (GetIsPC()), что GetItemPossessedBy(oTarget,"<тег вещи но дроп>") вернет тебе объект, а не OBJECT_INVALID и т.п. |
||||||||||||||||
![]()
Сообщение
#19
|
|||
Level 11 ![]() Класс: Вор Характер: Neutral Evil Раса: Эльф NWN: Скриптинг [PW] Validor2 ![]() |
РПшникам может и не надо... а у меня такая штука с февраля месяца крутится... только не через итем, а в БД... |
||
![]()
Сообщение
#20
|
|
Level 1 Класс: Монах Характер: Chaotic Evil Раса: Эльф ![]() |
_kaa_
:good: Респект, разобрался |
![]()
Сообщение
#21
|
|||
Level 4 ![]() ![]() Класс: Друид Характер: Neutral Evil Раса: Эльф NWN: Скриптинг [PW] ![]() |
Насчет кто кого првым ударил - на броню повешать OnHitSpellCast и вызывать через него скрипт глобальный, который и будет определять кто кого первым ударил. Главное прикрутить каждой броньке\одежке эту фишку через AddItemProperty, вроде так... И вообще - я делал через default очень хорошую систему, она осталась в моем первом модуле шарда Энтарион. На второй модуль не буду переводить, так как система всетаки давала хорошенькие лаги, так как скрипт вызывался на КАЖДЫЙ эвент прсонажа. |
||
![]()
Сообщение
#22
|
|
Level 9 ![]() Класс: Вор Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] ![]() |
>OnHitSpellCast
я использовал это для *портящихся вещей и оружия* ((с) :D ) - ударил кто-то кого-то - и у него ножик затупился и броньку чужую/щит попортил :) (нафига это нужно? - основа экономики.. ) а на счет - кто кого первым ударил - если только дрыномахальщик дрыномахальщика.. а если кастер? вставлять что-то для проверки перед запуском соответствующего касту скрипта? имхо изврат маллоэффективный Сообщение отредактировал 2_advanced - Jul 31 2005, 01:00 |
![]()
Сообщение
#23
|
|||
Level 9 ![]() Класс: Фея Характер: Chaotic Evil Раса: Тварь NWN: Скриптинг [PW] ![]() |
это как раз не есть проблема - spell-hooking(небольшое описание) на то имеется. |
||
![]()
Сообщение
#24
|
|
Level 9 ![]() Класс: Вор Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] ![]() |
а если спелл на область? подвалил злобный сорк и кинул баншу - и спеллхук будет перебирать всех существ в области?
в общем это грузный (и глючащий) гемор ни кому не нужный.. Сообщение отредактировал 2_advanced - Jul 31 2005, 22:50 |
![]()
Сообщение
#25
|
|
Level 4 ![]() ![]() Класс: Друид Характер: Neutral Evil Раса: Эльф NWN: Скриптинг [PW] ![]() |
Кстати, энта, не в тему конечно, но почти по теме.
Leto теперь НЕ может прикрутить к чару SpecAbilList где содержатся спеллы как специальные абилки персонажа. Это было пофиксено биоварями в патче 1.64. |
![]() ![]() |
Текстовая версия | Сейчас: 13th May 2025 - 11:35 |