UoKit.com Форумы > Ultima Online : Dev > Sphere Server > Sphere Server 0.55R
Страницы: 1, 2
Lord Artes
хочу сделать что бы когда бьют игрока, и если он сидит на лошади, то часть повреждения по игроку шла ездовому животному, на котором он сидит. Как это сделать? помогите дописать:

ON=@GetHit
damage_on_horse

FUNCTION damage_on_horse]
if (<src.findlayer.25.uid> )
что сюда вписать что бы был дамаг по лошади?
src.sysmessage Your Horse has been damaged
else
src.sysmessage netu horsi // необращайте внимание на месагу, это для теста.
endif

... заранее благодарю!
Вверх
Barracoon
Цитата(Lord Artes @ 2.12.2006, 0:50)
что сюда вписать что бы был дамаг по лошади?
Исходный код
// Чисто логически - примерно так(лошади здесь наносится четверть повреждений)...
src.findlayer.25.uid.damage(eval(<arg1>/4))

Вверх
ImProV1zator
Не работает так!
Вверх
Sirocco
Код

On=@Hit
horse = <src.findlayer.layer_horse.more2>
horse.hits = <eval (<horse.hits> - <argn1>)>
src.sysmessage Нанесен <argn1> урон вашему <horse.name>

Вверх
ImProV1zator
Код

01:32:ERROR:(PvX.scp,165)Undefined keyword 'horse'
01:32:ERROR:(PvX.scp,166)Can't resolve <horse.hits>
01:32:ERROR:(PvX.scp,166)Undefined keyword 'horse.hits'
01:32:ERROR:(PvX.scp,167)Can't resolve <horse.name>

пробую сделать проверку по другому:
Код

say <eval  <findlayer.layer_horse.hits>> говорит 220
say <eval  <findlayer.layer_horse.more>>  говорит 220
say <eval  <findlayer.layer_horse.more1>> говорит -19456548598
say <eval  <findlayer.layer_horse.more2>> говорит 4334

Тестирую на ламе, у которой нет ничего по 220 (ни сила ни хп, ниче)
Хп у ламы 38...
Вверх
DihlofozzZ
ref1=<findlayer.layer_horse.more1>
say <ref1.hits>
Вверх
Sirocco
more1 - это вообще-то тип животного


автору, иногда нужно понимать что ты, в принципе, скопировал... и почему это не должно работать.
layer_horse - это всего лишь мемори... и отношение к ламе имеет поскольку-постольку... ну разве что 220, это и есть ID самой ламы.

Особенно понравился этот кусок:
say <eval <findlayer.layer_horse.more>> говорит 220
say <eval <findlayer.layer_horse.more1>> говорит -19456548598

а тебе никто не говорил, что more и more1 - это одно и тоже?

Продолжай думать над моим вариантом... он правильный.
Вверх
ImProV1zator
Цитата(DihlofozzZ @ 16.1.2014, 13:29)

ref1=<findlayer.layer_horse.more1>
say <ref1.hits>

пишет 0, пробовал с eval тоже 0


Цитата(Sirocco @ 16.1.2014, 14:34)

а тебе никто не говорил, что more и more1 - это одно и тоже?

Почему тогда цифры разные выдает?


Не могу понять, где хранятся хп, обращался уже и к слою и к i_mt_ итему...
Вверх
Sirocco
Это печально... начнем с того, что в GetHit src, это источник урона.
Вверх
ImProV1zator
src это тот, кто наносит урон.причем тут это вообще?я и с src пробовал, сидя чарами на ламах.какая разница от кого идет урон?
Я не через @hit а через Gethit пытался делать.Только что проверил через @hit тоже самое по сути.

ON=@HIT
src.say @38 Hp <eval <src.findlayer.layer_horse.more2>.hits>
src.say @38 Hp <eval <findlayer.layer_horse.more2>.<hits>>

говорит 8146 (при то что у обоих лам по 100 str и меньше 100 хп)
говорит 8158 (при то что у обоих лам по 100 str и меньше 100 хп)

on=@gethit
src.say @38 Mount Hits: <eval <src.findlayer.layer_horse.more2>.hits>
src.say @38 Mount Hits: <eval <findlayer.layer_horse.more2>.<hits>>

аналогично.
Вверх
Invision Power Board © 2001-2024 Invision Power Services, Inc.
Version for Pocket PC © 2006-2024, IPBest Studio.