хочу сделать что бы когда бьют игрока, и если он сидит на лошади, то часть повреждения по игроку шла ездовому животному, на котором он сидит. Как это сделать? помогите дописать:
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
... заранее благодарю!
Не работает так!
On=@Hit
horse = <src.findlayer.layer_horse.more2>
horse.hits = <eval (<horse.hits> - <argn1>)>
src.sysmessage Нанесен <argn1> урон вашему <horse.name>
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
ref1=<findlayer.layer_horse.more1>
say <ref1.hits>
more1 - это вообще-то тип животного
автору, иногда нужно понимать что ты, в принципе, скопировал... и почему это не должно работать.
layer_horse - это всего лишь мемори... и отношение к ламе имеет поскольку-постольку... ну разве что 220, это и есть ID самой ламы.
Особенно понравился этот кусок:
say <eval <findlayer.layer_horse.more>> говорит 220
say <eval <findlayer.layer_horse.more1>> говорит -19456548598
а тебе никто не говорил, что more и more1 - это одно и тоже?
Продолжай думать над моим вариантом... он правильный.
Это печально... начнем с того, что в GetHit src, это источник урона.
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>>
аналогично.
где хранятся хп хороший вопрос, просто пойми что когда чар на живке, живки по факту не существует
она там вроде бы рядом всегда в логауте, вот ее и надо наверно ковырять
спасибо, очень помог Жак
Спасибо.скрестил твой вариант и дихлофоса.
on=@gethit
if <findlayer.layer_horse>
ref1=<findlayer.layer_horse.more2>
ref1.hits = <eval (<ref1.hits> - <argn1>/5)>
sysmsg_red <ref1.name> <eval <ref1.hits>> hits
endif
src.dclick
SRC.FLAGS |= statf_onhorse
попробуй триггер Hit
либо вариант через trysrc
Сделал тупо через remove
on=@gethit
if (<findlayer.layer_horse.baseid>!=i_et_mustang) && (<findlayer.layer_horse.baseid>!=i_et_horse) && (<findlayer.layer_horse.baseid>!=i_et_zostrich) && (<findlayer.layer_horse.baseid>!=i_et_forest) &&(<findlayer.layer_horse.baseid>!=i_et_oclock) && (<findlayer.layer_horse.baseid>!=i_et_llama) && (<findlayer.layer_horse.baseid>!=i_et_polar_bear)
if <findlayer.layer_horse>
ref1=<findlayer.layer_horse.more2>
ref1.hits = <eval (<ref1.hits> - <argn1>/5)>
if <ref1.hits> < <eval <argn1>/5>
sysmsg_red <ref1.name> died.
ref1.remove
endif
//update
sysmsg_red <ref1.name> <eval <ref1.hits>> hits
endif
endif
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)