Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите со скриптом sphere 55i
UoKit.com Форумы > Ultima Online : Dev > Sphere Server > Sphere Server 0.54 - 0.55i
vladplanet
Разрабатываю шард UO на sphere 55i, (UO Renaissance) столкнулся с трудностью.


в городе ставлю вендора -> обычный продавец

ВОПРОС:
??? как сделать так, если его атакует игрок ->
чтобы этот продавец мгновенно убивал его на расстоянии, к примеру ударом молнии...

или же телепортировался к нему и убивал его..

___

cool.gif
к примеру на территории нет гвард зоны...
не хочется чтоб продавцов рескилили..





Sirocco
Учиться, учиться и еще раз учиться...
Ozzy Osbourne
Цитата(vladplanet @ 16.1.2021, 0:34) *

Разрабатываю шард UO на sphere 55i, (UO Renaissance) столкнулся с трудностью.
в городе ставлю вендора -> обычный продавец

ВОПРОС:
??? как сделать так, если его атакует игрок ->
чтобы этот продавец мгновенно убивал его на расстоянии, к примеру ударом молнии...

или же телепортировался к нему и убивал его..

___

cool.gif
к примеру на территории нет гвард зоны...
не хочется чтоб продавцов рескилили..


// @Click Активируется при нажатии
// @CLIPERIODIC Активируется периодически при входе в регион
// @Create Активируется при создании
// @DAMAGE Активируется при нанесении урона
// @DClick Активируется при двойном нажатии
// @Death Активируется при смерти
// @Destroy Активируется при уничтожении
// @DROPON_CHAR Активируется при передаче предмета другому чару
// @DROPON_GROUND Активируется при бросании предмета на землю
// @DROPON_ITEM Активируется при бросании на другой предмет
// @ENTER Для регионов:Активируется при входе в регион
// @EnvironChange Активируется при изменении света,погоды
// @EQUIP Активируется при экипировке
// @EXIT Для регионов:Активируется при выходе из региона
// @FIRE Активируется при стрельбе из лука
// @FearOfDeath Активируется перед смертью
// @GetHit Активируется при получении удара
// @Hit Активируется при наесении удара
// @HitMiss Активируется при промахе
// @HitTry Активируется при попытке ударить
// @itemClick Для событий:Активируется при нажатии на предмет
// @itemDAMAGE Активируется при повреждении предмета
// @itemDCLICK Для событий:Активируется при двойном нажатии на предмет
// @itemDROPON_CHAR Активируется при пепредаче предмета чару
// @itemDROPON_GROUND Активируется при бросании предмета на землю
// @itemDROPON_ITEM Активируется при бросании предмета
// @itemEQUIP Активируется при одевании предмета
// @itemPICKUP_GROUND Активируется при поднятии предмета с земли
// @itemPICKUP_PACK Активируется при поднятии предмета из бэкпака
// @itemSPELL Активируется при кастовании на предмет
// @itemSTACKON Активируется при добавлении предмета в кучу
// @itemSTEP Активируется при наступании на предмет
// @itemTARGON_CHAR Активируется при прицеливаии на чара
// @itemTARGON_GROUND Активируется при прицеливаии на землю
// @itemTARGON_ITEM Активируется при прицеливаии на предмет
// @itemUNEQUIP Активируется при попытке надеть предмет
// @LogIn Активируется при вхождения клиета в игру
// @LogOut Активируется при логауте
// @NPCAcceptItem Активируется при передаче нужного вам предмета от NPC
// @NPCHearGreeting Активируется когда NPC слышит приветствия
// @NPCHearNeed Активируется когда кто-то говорит о нужном предмете(NPC)
// @NPCHearUnknown Активируется когда NPC слышит слова ,которые не понимает
// @NPCRefuseItem Активируется когда кто-то дает ненужный предмет
// @NPCRestock Активируется при пополнеии запасов торговца
// @NPCSeeNewPlayer Активируется когда NPC видит нового игрока
// @NPCSeeWantItem Активируется когда NPC видит нужный предмет
// @PersonalSpace Активируется когда кто-то наступает на NPC
// @PICKUP_GROUND Активируется при поднятии предмета с земли
// @PICKUP_PACK Активируется при поднятии предмета из бэкпака
// @Profile Активируется когда кто-то хочет посмотреть профайл
// @ReceiveItem Активируется когда предмет получен(взят в руки)
// @SELECT Активируется при выборе
// @SkillAbort Активируется когда использование скилла закончено
// @SkillFail Активируется при еудачном использовании скилла
// @SkillSelect Активируется при выборе скилла из меню
// @SkillStart Активируется когда начал использовать скилл
// @SkillSuccess Активируется при удачном использовании скилла
// @SkillTry Активируется при использовании скилла,до того как сервер сообщит удачно или нет
// @SpellCast Активируется при кастовании
// @SpellEffect Активируется когда кто-то на меня кастует
// @STACKON Активируется при добавления в кучу
// @START Активируется при старте
// @STEP Активируется при наступании
// @SUCCESS Активируется при успехе
// @TARGON_CHAR Активируется при наведении целеуказателя на существо
// @TARGON_GROUND Активируется при наведении целеуказателя на землю
// @TARGON_ITEM Активируется при наведении целеуказателя на предмет
// @TIMER Активируется когда таймер покажет 0

Найди что больше соответствует по логике твоему запросу и вставь туда проверку - "если один brain_vendor , а второй isPlayer - тогда последнего KILL cool.gif
kklej
поставь инвул и не мудри особо или примени тригер @FearOfDeath чтобы у вендора хорс данг на пол падали
Llirik
Вешаешь на веника:

ON=@GetHit
kill или src.kill или i.kill не помню попробуй разные.
return 1 // лучше не забудь прописать, а то могут мычкануть с одного удара
Sirocco
А вообще офигенное решение!
не хочу чтобы веников рескилили - поэтому буду убивать игроков!

в чем логика???
Ozzy Osbourne
Нуу.. у человека свое виденье игры ) Кому то розовых пони хочется на шарде, кому то вендоров которые мстят и убивают игроков ))
Поэтому вопрос "зачем" думаю не имеет смысла да и предложения "сделать по другому".
Ну вот хочется ему так, пусть делает, он же не спросил варианты по другому решить этот вопрос smile.gif
Sirocco
Т.е. получить инстакилл в ответ на АОЕ где-то на соседнем экране это по вашему хорошее решение???
Ozzy Osbourne
Нет, это полная дичь )
Но может у него такая концепция сервера )
kklej
сделай сообщение sectr allclients сообщение когда убивают вендора чтобы другие бежали в эту точку за лутом
Llirik
Можно ещё так. Вешаешь на своего чара:

ON=@Hit
if (<src.npc>==brain_vendor)
i.kill // или просто kill
return 1
endif

Разница лишь в том, что тебе не надо на каждого веника вешать, а один раз повесил на себя и всё. Это в файле sphere_skills, в [SKILLCLASS 0] вешать надо.
d`ArcZeal
Хороший шард, и конкурсы интересные.
Aimed
И главное то что веника все равно можно убить ))))
d`ArcZeal
Код

ON=@SPELLEFFECT
ELIF !(<DTAG0.QUESTNPC>==0)
ACTION=-1
RETURN 1
ENDIF

ON=@SPELLCAST
IF (<ACT.TAG0.QUESTNPC>==1)
ACTION=-1
RETURN 1
ENDIF

ON=@HITTRY
IF (<SRC.DTAG0.QUESTNPC>==1)
ACTION -=1
RETURN 1
ENDIF

ON=@GETHIT
IF (<EVAL <ARGN2>>==146)
IF !(<DTAG0.QUESTNPC>==0)
RETURN 1
ENDIF
ENDIF

Поставить на всех вендоров TAG.QUESTNPC=1
или повесить на всех вендоров, допустим EVENTS=E_SHOPKEEPER

[EVENTS E_SHOPKEEPER]
... <-- сюда тот скрипт, что выше с проверкой на наличие ивента.
Sirocco
ACTION -=1

что эта хрень должна была означать???


IF (<EVAL <ARGN2>>==146)

я конечно понимаю что тут все мастера в 10-тичном флаги считать.... я вот нет.


И по факту опять же перекрываются способы бить НПС, а не непосредственно убийство НПС....
По мне так этот ивент должен на игроке висеть, а не на НПС... И охватывать гораздо больше разных случаев.
vee
понаписали тут человеку а у него 55 сфера smile.gif
Aimed
Цитата(Sirocco @ 28.1.2021, 6:56) *


По мне так этот ивент должен на игроке висеть, а не на НПС... И охватывать гораздо больше разных случаев.


Это не очень хорошо, вешать проверки касающиеся определенной группы НПЦ на игрока. Чем больше такого рода приколов будет, тем сильнее это будет бить по ресурсам. Там и так на каждый пук игрока тонна всяких проверок что в ядре, что в скриптах.
Sirocco
Цитата(Aimed @ 28.1.2021, 17:05) *


Это не очень хорошо, вешать проверки касающиеся определенной группы НПЦ на игрока.


А причем тут определенные группы НПЦ? вообще-то это куча однотипных проверок на то, кого бить нельзя.

Это опять же гм в инвизе бьет игроков. ГЗ / не гз. Баг с видимостью / невидимостью.Прокачка скиллов на инвульных персонажах. Прокачка скиллов на персонажах в стоуне. Прокачка скиллов в сейф зоне. Попытка бить предметы, попытка бить самого себя. Стрельба через потолок. Ну и в самом последнем, самом крайнем случае... как раз эта проверка на НПЦ.

Если вы не видите применения для этого, то не значит что его нет.

Извините, что спалил сразу все баги игры....
Aimed
Цитата(Sirocco @ 28.1.2021, 16:49) *

А причем тут определенные группы НПЦ? вообще-то это куча однотипных проверок на то, кого бить нельзя.

Это опять же гм в инвизе бьет игроков. ГЗ / не гз. Баг с видимостью / невидимостью.Прокачка скиллов на инвульных персонажах. Прокачка скиллов на персонажах в стоуне. Прокачка скиллов в сейф зоне. Попытка бить предметы, попытка бить самого себя. Стрельба через потолок. Ну и в самом последнем, самом крайнем случае... как раз эта проверка на НПЦ.

Если вы не видите применения для этого, то не значит что его нет.

Извините, что спалил сразу все баги игры....


Это все понятно. Можно конечно все повесить на игрока и при каждом действии проверять на десятки разных кейсов все в одном месте, да так можно сделать, только ты будешь зря нагружать железо ненужными проверками. Вместо этого можно проверки вешать на конкретные группы или конкретных НПЦ и проверять когда уже что-то сработало или вот-вот сработает на них, таким образом уменьшая количество ненужных проверок на разных действиях игровых персонажей.
Sirocco
Цитата(Aimed @ 28.1.2021, 20:42) *

Это все понятно. Можно конечно все повесить на игрока и при каждом действии проверять на десятки разных кейсов все в одном месте, да так можно сделать, только ты будешь зря нагружать железо ненужными проверками.


а где их еще проверять... если все эти баги, которые я описал на 90% относятся ко всем игрокам и ко всем НПЦ скопом? можно разве что ГМов вынести в отдельный ивент. ну и этих НПЦ, но не проще ли завести единый ТАГ для этих целей. Одной проверкой больше одной меньше. У меня этот ТАГ где-то 80 раз в коде используется...
Aimed
Цитата(Sirocco @ 28.1.2021, 19:25) *

а где их еще проверять... если все эти баги, которые я описал на 90% относятся ко всем игрокам и ко всем НПЦ скопом? можно разве что ГМов вынести в отдельный ивент. ну и этих НПЦ, но не проще ли завести единый ТАГ для этих целей. Одной проверкой больше одной меньше. У меня этот ТАГ где-то 80 раз в коде используется...


Дык причем тут все это. Тут вроде вопрос только о конкретном НПЦ-вендоре, что бы он выполнял определенные действия при попытках его атаковать. Причем тут целый ряд проверок на самом игроке то?
Sirocco
Я намекают на то, что это часть глобальной функции, а не узконаправленная задача.
Llirik
Такой простой вопрос, а справиться с ним не может целый УоКит. smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.