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

 
Ответить в эту темуОткрыть новую тему
> Ethereal Mounts, Нужна помощь в 56b
Jose Cuervo
сообщение 11.5.2012, 18:39
Сообщение #1


********

UO Antares
Сообщений: 1.555
Регистрация: 12.2.2005
Группа: Пользователи
Наличность: 6058
Из: Санкт-Петербург
Пользователь №: 3.061
Возраст: 45



Несколько раз уже возвращался к этой проблеме, но так и не смог понять, как на 56b реализовать ньюби ездовых. Чтобы долго не расписывать предысторию, дам ссылку на аналогичный случай "в чужой карьере", т.к. у меня и скрипт на 55R был основан на том же принципе, и все последствия перехода на 56b такие же.
http://forum.spherecommunity.net/showthread.php?tid=1205
Поиском пользовался и здесь и на "сфересервер", все найденные упоминания найти выход не помогли. Понял только, что ездовых по другому принципу надо делать, но как конкретно не догоняю. буду очень признателен за конкретный пример.


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
neiL
сообщение 11.5.2012, 18:56
Сообщение #2


****

Apprentice
Сообщений: 239
Регистрация: 18.12.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.395



Ну вот на лошадку =)

Код
[itemdef i_et_horse]
name=Ethereal horse
id=i_mt_horse_gray
TDATA3=c_et
layer=25

on=@create
color=00

on=@unequip
src.newitem i_ethereal_horse
src.act.color=<color>
src.act.bounce

[chardef c_et]
id=c_horse_gray
sound=0

on=@create
color=00
str=1
food=10000

on=@click
remove
return 1

on=@npcrestock
remove
return 1

on=@skillstart
remove
return 1

[itemdef i_ethereal_horse]
NAME=Ethereal Horse
id=i_pet_horse
type=t_normal
CATEGORY=Ethereal
SUBSECTION= Ethereal pets
DESCRIPTION=Ethereal Horse
Value=0

on=@create
color=
attr=14

on=@dclick
if (<SRC.FLAGS>&000000400)
src.sysmessage you can not use this right now.
return 1
elseif (<SRC.FLAGS>&080000000)
src.sysmessage you are already mounted
return 1
else
src.newitem i_et_horse
src.act.more1=c_et
src.act.color=<color>
src.act.more2=<src.uid>
src.act.equip
src.update
remove
return 1
endif
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Jose Cuervo
сообщение 11.5.2012, 19:18
Сообщение #3


********

UO Antares
Сообщений: 1.555
Регистрация: 12.2.2005
Группа: Пользователи
Наличность: 6058
Из: Санкт-Петербург
Пользователь №: 3.061
Возраст: 45



Это же то же самое, а я как раз и говорю, что для 56b такой скрипт не подходит. Он само собой работает, но после первого сейва персонаж на таком маунте постоянно уходит в action, который применяется для оседланных существ. По ссылке проблема описана, в общем то.


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
WRWR
сообщение 11.5.2012, 19:21
Сообщение #4


*******

Adept
Сообщений: 986
Регистрация: 17.7.2007
Группа: Пользователи
Наличность: 0
Из: Город герой
Пользователь №: 9.946
Возраст: 33



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


--------------------
Sphere56/Muls
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Jose Cuervo
сообщение 11.5.2012, 19:39
Сообщение #5


********

UO Antares
Сообщений: 1.555
Регистрация: 12.2.2005
Группа: Пользователи
Наличность: 6058
Из: Санкт-Петербург
Пользователь №: 3.061
Возраст: 45



Так, это уже ближе, попробую. Но сначала уточню, правильно ли я понял.

1. ITEMDEF фигурки пишу свой с триггером @DClick
2. Одевается конкретная дефолтная часть корабля, в отличие от предыдущего скрипта, новый ITEMDEF для неё не пишется.
3. Но тогда чтобы отличить этот маунт итем от точно такого же, образующегося при посадке на обычное прирученное животное, видимо, надо отметить его особым тегом.
4. Спешивание в таком случае прописать придется в эвент чара на триггер @Dismount, где для отмеченных этим своим особым тегом итеммаунтов написать условие создания новой фигурки.

То есть получится на фигурке по даблклику вместо
Код

src.newitem i_et_horse
src.act.more1=c_et
src.act.color=<color>
src.act.more2=<src.uid>
src.act.equip
src.update
remove


Код
src.newitem i_mt_horse_gray
src.sct.tag.newbie=i_ethereal_horse                // для распознания на @Dismount
src.act.color=<color>
src.act.equip
src.update
remove


Чем то привязывать надо? more1, more2, link?


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
WRWR
сообщение 11.5.2012, 19:47
Сообщение #6


*******

Adept
Сообщений: 986
Регистрация: 17.7.2007
Группа: Пользователи
Наличность: 0
Из: Город герой
Пользователь №: 9.946
Возраст: 33



да, примерно так
а создание правильней и гуманней сделать таким образом (IMG:style_emoticons/default/smile.gif)
Код

ON=@DCLICK
SERV.NEWITEM i_mt_llama,1,<SRC.UID>
NEW.MORE2 <SRC.UID>


при ссаживании также не стесняйтесь использовать ARGO вместо SRC.ACT


--------------------
Sphere56/Muls
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Jose Cuervo
сообщение 11.5.2012, 19:49
Сообщение #7


********

UO Antares
Сообщений: 1.555
Регистрация: 12.2.2005
Группа: Пользователи
Наличность: 6058
Из: Санкт-Петербург
Пользователь №: 3.061
Возраст: 45



Я вот сейчас в голове весь этот сценарий прокрутил, но сдается мне, что получится в результате тот же финт, только в другой руке.) Можно всё таки конкретным рабочим примером поделиться?)


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
WRWR
сообщение 11.5.2012, 21:14
Сообщение #8


*******

Adept
Сообщений: 986
Регистрация: 17.7.2007
Группа: Пользователи
Наличность: 0
Из: Город герой
Пользователь №: 9.946
Возраст: 33



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


--------------------
Sphere56/Muls
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ЖаК
сообщение 11.5.2012, 21:21
Сообщение #9


*****

Journeyman
Сообщений: 314
Регистрация: 2.1.2008
Группа: Пользователи
Наличность: 0
Пользователь №: 10.417



да там же элементарный принцип, берешь обычного коня и пишешь замкнутую цепочку

поищи скрипт брэйки, там было под 56ую что то похожее на рабочий вариант без глюков
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Jose Cuervo
сообщение 11.5.2012, 21:58
Сообщение #10


********

UO Antares
Сообщений: 1.555
Регистрация: 12.2.2005
Группа: Пользователи
Наличность: 6058
Из: Санкт-Петербург
Пользователь №: 3.061
Возраст: 45



Цитата(WRWR @ 11.5.2012, 22:14) *

не забываем что предмет маунт можно сделать свой с любым TDATA3, который не будет требовать проверок обычный он или этереал


Тогда чем это всё будет отличаться от старого скрипта? Меня, вобщем то, функция спешивания не беспокоит, она и без триггера @Dismount прекрасно работает. Проблема возникает задолго до спешивания, на стадии, когда персонаж ещё сидит в седле. Но если вы говорите, что и сам предмет отдельно скриптуется, и маунт итем можно сделать свой, тогда получается, что старый скрипт полностью соответствует. Я, кстати, и не говорил, что он не работает: садится, бегает, при сейвах не вываливается никуда, спешивается прекрасно. Всё работает как и прежде, кроме одной досадной детали - после первого же сейва персонаж перестает выполнять текущие действия, обрывая их через пару секунд, и переходя в нетипичное для игрового чара состояние. Я даже не сразу обнаружил связь между ньюби маунтом и этой проблемой, когда с ней впервые столкнулся. Но когда проверил текущее значение Action, нашел его только у ездовых животных, которые оседланы и ожидают своего часа вроде как в "логауте".
Получается, что после сейва маунт итем не может определить какому существу он обязан своим появлением на свет, и без малейшего сомнения сваливает сию ответственность на наездника со всеми вытекающими последствиями. Наездник превращается в животное, которое безучастно торчит оффлайн.


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ЖаК
сообщение 11.5.2012, 22:09
Сообщение #11


*****

Journeyman
Сообщений: 314
Регистрация: 2.1.2008
Группа: Пользователи
Наличность: 0
Пользователь №: 10.417



зло ) а на альфе просто чары удалялись )
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
WRWR
сообщение 12.5.2012, 0:06
Сообщение #12


*******

Adept
Сообщений: 986
Регистрация: 17.7.2007
Группа: Пользователи
Наличность: 0
Из: Город герой
Пользователь №: 9.946
Возраст: 33



ага, понял суть проблемы
прерывается атака если сидишь на таком предмете )
проблема решается (IMG:style_emoticons/default/wink.gif)

Цитата(ЖаК @ 12.5.2012, 1:09) *

зло ) а на альфе просто чары удалялись )

да ну? чара захочешь то не удалишь )


--------------------
Sphere56/Muls
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Jose Cuervo
сообщение 12.5.2012, 2:32
Сообщение #13


********

UO Antares
Сообщений: 1.555
Регистрация: 12.2.2005
Группа: Пользователи
Наличность: 6058
Из: Санкт-Петербург
Пользователь №: 3.061
Возраст: 45



Цитата(WRWR @ 12.5.2012, 1:06) *

проблема решается (IMG:style_emoticons/default/wink.gif)


Я эту тему для того и создал, чтобы выяснить как она решается.)


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
WRWR
сообщение 12.5.2012, 2:48
Сообщение #14


*******

Adept
Сообщений: 986
Регистрация: 17.7.2007
Группа: Пользователи
Наличность: 0
Из: Город герой
Пользователь №: 9.946
Возраст: 33



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


--------------------
Sphere56/Muls
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Jose Cuervo
сообщение 12.5.2012, 3:51
Сообщение #15


********

UO Antares
Сообщений: 1.555
Регистрация: 12.2.2005
Группа: Пользователи
Наличность: 6058
Из: Санкт-Петербург
Пользователь №: 3.061
Возраст: 45



Цитата
t_eq_horse 76
This type is used for equipped horse object. Essentially it represents a riding horse to the client. It leverages the following properties:
MORE1 = The creature ID
MORE2 = The UID of the offline creature (in "stable master" inventory)
TDATA2 = The required strength to mount it
TDATA3 = The base creature ID


Логично, что указывая в скрипте src.act.more2=<src.uid>, мы по собственной воле определяем наездника оффлайн существом. Если more2 не назначить, то при ворлдсейве персонаж спешится.
Попробовал наипать систему и указать для more2 собственный uid создаваемого маунт итема, но это не сработало - при ворлдсейве по-прежнему спешивается. Сделал через *опу: создал абсолютно безучастное существо (маленькую крыску), запер её в джайле, списал UID и этот конкретный серийник указал в скрипте для more2. Сработало! И даже тот факт, что на ньюби ездовых уселось сразу несколько персонажей, на этой крыске никак не отразился. Более того, ей вообще, похоже, наплевать на все эти обстоятельства, она даже в офлайн состояние не переходит.
Всё бы хорошо, но это же реальное извращение!) Так что я, по-прежнему, с радостью рассмотрю другие рабочие варианты реализации - без жестокого обращения с животными.)

Update
Усовершенствовал извращение, создав Ethereal Standart (зашринковал обычную ламу и спрятал в специальном сундуке в своем рабочем "кабинете"). "The UID of the offline creature" этого шринка и будет использоваться в моем скрипте, пока ничего другого не придумаю. Если кому то такой способ подойдет - пользуйтесь.)


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
WRWR
сообщение 12.5.2012, 9:34
Сообщение #16


*******

Adept
Сообщений: 986
Регистрация: 17.7.2007
Группа: Пользователи
Наличность: 0
Из: Город герой
Пользователь №: 9.946
Возраст: 33



не надо там ничего создавать чтобы работало (IMG:style_emoticons/default/smile.gif)


--------------------
Sphere56/Muls
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ЖаК
сообщение 12.5.2012, 22:55
Сообщение #17


*****

Journeyman
Сообщений: 314
Регистрация: 2.1.2008
Группа: Пользователи
Наличность: 0
Пользователь №: 10.417



ну да, ептэ... я же дал подсказку как сделать правильно
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ЖаК
сообщение 13.5.2012, 2:32
Сообщение #18


*****

Journeyman
Сообщений: 314
Регистрация: 2.1.2008
Группа: Пользователи
Наличность: 0
Пользователь №: 10.417



Цитата(WRWR @ 12.5.2012, 0:06) *

да ну? чара захочешь то не удалишь )


да лана? )
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 27.4.2024, 13:53
Designed by Nickostyle