Цитата(Vadim @ 11.5.2009, 10:14)
Огромное спасибо, теперь хоть будет смысл покопаться и поэкспериментировать.
, единственное что хочется изменить, это цвет сообщения в зависимости от наносимого урона.
А вообще, у меня ток одна идея появилась как без лила можно показать дамаг на 51-ой сфере. При создании чара ему в пак кидается невидимый айтем веса которого чар даже не почувствует. Например моre у данного айтема = hits чара, при ударе (в триггерах я пока слабоват, поэтому точно не могу сказать что за триггер надо использовать) этот предмет проверяет соответствие more и hits: if..... more>hits ..... say more -(это знак минус
) hits .... more=hits..... else..... more=hits это на тот случай если вы полечились или ещё чего. Вариант конечно не идеален и это всего лишь плод 5-ти минутной фантазии, поэтому и описано в общих чертах. Думаю что в моём варианте, когда сфера создана лишь для тренировок пвп и на ней в одно время в основном находится до 10-ти человек (всего акков гдет 25), такой вариант никак не должен тормозить сферу.
Не получится так, то что кидается айтем это т.н. мемори айтем, очень многое делается с помощью подобных вещей, даж не обязательно ничего кидать, можно просто одевать на чара на новый леер.
Ты хочешь сделать примерно это, я опишу это как должно быть, и объясню почему не сработает.
Итак:
Создаем мемори в сфереитем.
---------------------------
[xxxx]
id=2007
name=Hits (Memory)
layer=101
color=101
timer=10
morex=1
attr=0808
---------------------------
Далее при старте в каком-нить старт столбе будет такая тема:
---------------------------
ontrigger=dclick
IF !(<src.restest 1 xxxx>)
src.newitem 0xxxx
src.act.morex=<src.hits>
src.act.link=<src.uid>
src.act.equip
---------------------------
Далее вешаем на все оружие:
---------------------------
ONTRIGGER=DAMAGE
IF (<src.findlayer(101).morex>) > (<src.hits>)
src.message=(<src.findlayer(101).morex>) - (<src.hits>)
src.findlayer(101).morex=<src.hits>
return 1
Else
src.findlayer(101).morex=<src.hits>
return 1
---------------------------
Теперь смари
Мы бьем чара у которого 150 хп, море=150
Пробиваем на 50 к примеру
Таво идет проверка:
IF 150 > 100
src.message 150 - 100 тобишь покажет 50.
и теперь море на мемори стал 100.
Пока идет замах след удара, чар хилица на 50, получается что у чара море 100, а хп уже 150. Проверка нифига не покажет а тупо заравняет море и хитс чара.
Можно зафигачить проверку на уравнение море на сам мемори по таймеру. Но все равно будут сбои, хотя карявенько пахать будет.
НО! Самая большая фигня начнется тогда, когда по чару начнут пробивать 2-3 противника, вот тогда эта твоя система вобще перестанет работать и будет показывать инсейн вещи.
Итак вешаем на мемори равнение море и хитов, теперь мемори выглядит так:
---------------------------
[xxxx]
id=2007
name=Hits (Memory)
layer=101
color=101
timer=1
morex=1
attr=0808
ONTRIGGER=TIMER
if (<morex>) < (<link.hits>) // если море меньше хитов - ну это когда чар полечился между ударами.
morex=<link.hits>
timer=1
return 1
endif
---------------------------
Теперь каждую секунду таймер будет проверять море на тот случай если он оказался меньше хп чара и будет равнять их.
Как итог могу сказать, что все об этой твоей супер идее 100 раз думали =) и 100 раз проверяли, не просто так говорим что сделать это на 51а скриптами - нельзя.
ЗЫ: Все написано в спехе, за работоспособность и правильность синтаксиса не ручаюсь. Вот как то так.