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

 
Ответить в эту темуОткрыть новую тему
> Как Сделать Чтобы Юзание Бинта Не Влияло На Каст?, Нужен скрипт
Mons
сообщение 24.2.2011, 1:38
Сообщение #1


****

Apprentice
Сообщений: 147
Регистрация: 20.7.2009
Группа: Пользователи
Наличность: 0
Из: Санкт-Петербург
Пользователь №: 12.017
Возраст: 25



Как сделать чтобы юзание бинта не влияло на каст?

* поделитесь скриптом.

Заранее блогодарен.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Mons
сообщение 27.2.2011, 15:54
Сообщение #2


****

Apprentice
Сообщений: 147
Регистрация: 20.7.2009
Группа: Пользователи
Наличность: 0
Из: Санкт-Петербург
Пользователь №: 12.017
Возраст: 25



Возможно не слишком понятно написал суть вопроса.

Ну тема до сих пор актуальна.

Вопрос иначе: Как сделать чтобы когда хилишься бинтом то любой каст магии не сбивался?....
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
TunoK
сообщение 7.8.2012, 14:05
Сообщение #3


**

Neophyte
Сообщений: 26
Регистрация: 18.9.2008
Группа: Пользователи
Наличность: 0
Пользователь №: 11.111
Возраст: 29



Меня тоже это интересует, объясню в чем дело. При юзании каста и сражу же бинта, таргет бинта физлит каст, или по таргету каст идет на себя. Или при юзании бинта + каст, каст может пройти если время каста дольше чем время наложении бинта, если же меньше то каст используется на себя или физлится.
вот скрипт на хелинг ;

Код
[ITEMDEF 0e21] 
DEFNAME=i_bandage
RESOURCES=i_cloth
TYPE=T_BANDAGE
WEIGHT=.1
DUPELIST=0ee9
CATEGORY=Items by Professions
SUBSECTION=Healer
DESCRIPTION=Clean Bandages
value=100

ON=@DCLICK
    IF (<SRC.FINDLAYER(1)>)&!<SRC.ISGM>
        SRC.FINDLAYER(1).UNEQUIP

    ENDIF

    IF (<SRC.FINDLAYER(2)>)&!<SRC.ISGM>
        SRC.FINDLAYER(2).UNEQUIP

    ENDIF

    IF (<SRC.RESTEST 1 i_mem_healing>)
        SRC.SYSMESSAGE You can't use another bandage yet!
        RETURN 1

    ELSE
        SRC.SYSMESSAGE Who will you use the bandages on?
        TARGET
        RETURN 1

    ENDIF

ON=@TARGON_CHAR
    
    IF !(<SRC.RESTEST 1 i_bandage>)
        SRC.SYSMESSAGE You have no bandages to heal with.
        RETURN 1

    ELSEIF (<SRC.TARG.DISTANCE> > 2)&!<SRC.ISGM>
        SRC.SYSMESSAGE You are too far away to apply bandages on <SRC.TARG.NAME>.
        RETURN 1

    ELSEIF (<SRC.TARG.UID>==<SRC.UID>)

        IF !(<SRC.HITS> < <SRC.STR>)
            SRC.SYSMESSAGE You don't require healing.
            RETURN 1

        ELSE
            SRC.EMOTE apply bandages to self
            SRC.ANIM 33
            SRC.SYSMESSAGE Healing...
            SRC.NEWITEM=i_mem_healing
            SRC.ACT.LINK=<SRC.UID>
            SRC.ACT.EQUIP
            RETURN 1

        ENDIF

    ELSEIF (<SRC.TARG.BODY>==c_man)||(<SRC.TARG.BODY>==c_woman)

        IF !(<SRC.TARG.HITS> < <SRC.TARG.STR>)
            SRC.SYSMESSAGE <SRC.TARG.NAME> does not require you to heal <SRC.TARG.SEX him/her>.
            RETURN 1

        ELSE
            SRC.EMOTE apply bandages to <SRC.TARG.NAME>
            SRC.ANIM 19
            SRC.SYSMESSAGE Healing...
            SRC.NEWITEM=i_mem_healing
            SRC.ACT.LINK=<SRC.TARG.UID>
            SRC.ACT.EQUIP
            RETURN 1

        ENDIF

    ELSEIF (<SRC.TARG.ISMYPET>)

        IF !(<SRC.TARG.HITS> < <SRC.TARG.STR>)
            SRC.SYSMESSAGE <SRC.TARG.NAME> does not require you to heal it.
            RETURN 1

        ELSE
            SRC.EMOTE apply bandages to <SRC.TARG.NAME>
            SRC.ANIM 19
            SRC.SYSMESSAGE Healing...
            SRC.NEWITEM=i_mem_healing
            SRC.ACT.LINK=<SRC.TARG.UID>
            SRC.ACT.EQUIP
            RETURN 1

        ENDIF

    ELSE
        SRC.SYSMESSAGE You can only heal humans or your own pets.
        RETURN 1

    ENDIF

ON=@TARGON_ITEM
    SRC.SYSMESSAGE You can't use bandages on items.
    RETURN 1

[ITEMDEF i_mem_healing]
ID=i_memory
TYPE=t_eq_script
NAME=Healing

ON=@EQUIP
    TIMER=2
    ATTR=attr_decay|attr_invis
    

ON=@TIMER

    IF !(<CONT.RESTEST 1 i_bandage>)
        CONT.SYSMESSAGE You have no bandages to heal with.
        REMOVE
        RETURN 1

    ENDIF

    IF !(<CONT.UID>==<LINK.UID>)

    //Check the distance between healer and target (it could have changed).

        MOREP=<CONT.P>//Healer coordinates
        VAR.HEALER_X=<MOREX>
        VAR.HEALER_Y=<MOREY>

        MOREP=<LINK.P>//Target coordinates
        VAR.TARG_X=<MOREX>
        VAR.TARG_Y=<MOREY>

        IF (((<VAR.HEALER_X> - <VAR.TARG_X>) > 2)||((<VAR.HEALER_Y> - <VAR.TARG_Y>) > 2)||((<VAR.TARG_X> - <VAR.HEALER_X>) > 2)||((<VAR.TARG_Y> - <VAR.HEALER_Y>) > 2))&!<CONT.ISGM>
            CONT.CONSUME 1 i_BANDAGE
            CONT.SYSMESSAGE <LINK.NAME> is too far away.
            LINK.SYSMESSAGE <CONT.NAME> attempts to heal you, but you are too far away.
            REMOVE
            RETURN 1

        ENDIF

    ENDIF

    IF (<LINK.BODY>==c_man)||(<LINK.BODY>==c_woman)

    //HEALING HUMANS

    //Probability to succeed, depending on Healing skill level.
    //0% Healing -> 35% chance to heal successfully, 100% Healing - 95% chance.

        VAR.X=((<CONT.HEALING> * 5) / 100) + 1
        VAR.Y=RAND(50) + 1

        IF (<EVAL <VAR.Y>> > <EVAL <VAR.X>>)&!<CONT.ISGM>
            //Healing failed.
            CONT.CONSUME 1 i_BANDAGE
            CONT.SYSMESSAGE You apply the bandages, but they barely help.

                IF !(<CONT.UID>==<LINK.UID>)
                    LINK.SYSMESSAGE <CONT.NAME> applies the bandages to you, but they barely help.

                ENDIF

            REMOVE
            RETURN 1

        ELSE

    //Healing, based on character's Healing & Anatomy skill levels.
    //0% Healing, 0% Anatomy -> 5-10 hitpoints healed, 100% Healing, 100% Anatomy - 30-50 hitpoints healed.

            VAR.Z=((1 + (((<CONT.HEALING>+<CONT.ANATOMY>)/90))) + ((<CONT.HEALING>*(RAND(10)))/1000)) + RAND(5)
        
            IF ((<LINK.STR> - <LINK.HITS>) > <EVAL <VAR.Z>>)
                //CONT.SYSMESSAGE Healed <EVAL <VAR.Z>> hitpoints.
                LINK.HITS=<LINK.HITS> + <EVAL <VAR.Z>>

            ELSE
                //CONT.SYSMESSAGE Fully healed.
                LINK.HITS=<LINK.STR>

            ENDIF

            CONT.CONSUME 1 i_BANDAGE
            CONT.NEWITEM=i_bandage_bloody
            CONT.ACT.CONT=<CONT.FINDLAYER(layer_pack).UID>
            CONT.SOUND 87
            CONT.SYSMESSAGE You put the bloody bandage in your pack.

            IF !(<CONT.UID>==<LINK.UID>)
                LINK.SYSMESSAGE <CONT.NAME> heals you.

            ENDIF

    //No skill gain in safe areas.

            IF (<CONT.REGION.FLAGS>&region_flag_safe)||(<LINK.REGION.FLAGS>&region_flag_safe)

                IF <CONT.ISGM>
                    CONT.SYSMESSAGE No skill gain here.

                ENDIF

                REMOVE
                RETURN 1

            ENDIF

    //Skill gain, based on current skill level.

            IF (<CONT.HEALING> < 101)&&(RAND(2)==1)
                CONT.HEALING=<CONT.HEALING> + 1

            ELSEIF ((<CONT.HEALING> > 100)&&(<CONT.HEALING> < 201))&&(RAND(3)==1)
                CONT.HEALING=<CONT.HEALING> + 1

            ELSEIF ((<CONT.HEALING> > 200)&&(<CONT.HEALING> < 301))&&(RAND(5)==1)
                CONT.HEALING=<CONT.HEALING> + 1
        
            ELSEIF ((<CONT.HEALING> > 300)&&(<CONT.HEALING> < 401))&&(RAND(10)==1)
                CONT.HEALING=<CONT.HEALING> + 1

            ELSEIF ((<CONT.HEALING> > 400)&&(<CONT.HEALING> < 501))&&(RAND(17)==1)
                CONT.HEALING=<CONT.HEALING> + 1

            ELSEIF ((<CONT.HEALING> > 500)&&(<CONT.HEALING> < 601))&&(RAND(30)==1)
                CONT.HEALING=<CONT.HEALING> + 1

            ELSEIF ((<CONT.HEALING> > 600)&&(<CONT.HEALING> < 701))&&(RAND(50)==1)
                CONT.HEALING=<CONT.HEALING> + 1

            ELSEIF ((<CONT.HEALING> > 700)&&(<CONT.HEALING> < 801))&&(RAND(75)==1)
                CONT.HEALING=<CONT.HEALING> + 1

            ELSEIF ((<CONT.HEALING> > 800)&&(<CONT.HEALING> < 901))&&(RAND(105)==1)
                CONT.HEALING=<CONT.HEALING> + 1

            ELSEIF ((<CONT.HEALING> > 900)&&(<CONT.HEALING> < 1001))&&(RAND(150)==1)
                CONT.HEALING=<CONT.HEALING> + 1

            ELSEIF (<CONT.HEALING> > 1000)
                CONT.HEALING=1000

            ENDIF

            REMOVE
            RETURN 1

        ENDIF

    ELSE

    //HEALING MY PET

    //Probability to succeed, depending on Veterinary skill level.
    //0% Veterinary -> 35% chance to heal successfully, 100% Veterinary - 95% chance.

        VAR.X=((<CONT.VETERINARY> * 6) / 100) + 35
        VAR.Y=RAND(100) + 1

        IF (<EVAL <VAR.Y>> > <EVAL <VAR.X>>)&~<CONT.ISGM>
            //Healing failed.
            CONT.CONSUME 1 i_BANDAGE
            CONT.SYSMESSAGE You apply the bandages, but they barely help.
            REMOVE
            RETURN 1

        ELSE

    //Healing, based on character's Veterinary & Animal Lore skills
    //0% Veterinary, 0% Animal Lore -> 20-30 hitpoints healed, 100% Veterinary, 100% Animal Lore - 60-80 hitpoints healed.

            VAR.Z=((20 + (((<CONT.VETERINARY>+<CONT.ANIMALLORE>)/50))) + ((<CONT.VETERINARY>*(RAND(11)))/1000)) + RAND(11)
        
            IF ((<LINK.STR> - <LINK.HITS>) > <EVAL <VAR.Z>>)
                //CONT.SYSMESSAGE Healed <EVAL <VAR.Z>> hitpoints.
                LINK.HITS=<LINK.HITS> + <EVAL <VAR.Z>>

            ELSE
                //CONT.SYSMESSAGE Fully healed.
                LINK.HITS=<LINK.STR>

            ENDIF

            CONT.CONSUME 1 i_BANDAGE
            CONT.NEWITEM=i_bandage_bloody
            CONT.ACT.CONT=<CONT.FINDLAYER(layer_pack).UID>
            CONT.SOUND 87
            CONT.SYSMESSAGE You put the bloody bandage in your pack.

    //No skill gain in safe areas.

            IF (<CONT.REGION.FLAGS>&region_flag_safe)||(<LINK.REGION.FLAGS>&region_flag_safe)

                IF <CONT.ISGM>
                    CONT.SYSMESSAGE No skill gain here.

                ENDIF

                REMOVE
                RETURN 1

            ENDIF

    //Skill gain, based on current skill level.

            IF (<CONT.VETERINARY> < 101)&&(RAND(2)==1)
                CONT.VETERINARY=<CONT.VETERINARY> + 1

            ELSEIF ((<CONT.VETERINARY> > 100)&&(<CONT.VETERINARY> < 201))&&(RAND(3)==1)
                CONT.VETERINARY=<CONT.VETERINARY> + 1

            ELSEIF ((<CONT.VETERINARY> > 200)&&(<CONT.VETERINARY> < 301))&&(RAND(5)==1)
                CONT.VETERINARY=<CONT.VETERINARY> + 1
        
            ELSEIF ((<CONT.VETERINARY> > 300)&&(<CONT.VETERINARY> < 401))&&(RAND(9)==1)
                CONT.VETERINARY=<CONT.VETERINARY> + 1

            ELSEIF ((<CONT.VETERINARY> > 400)&&(<CONT.VETERINARY> < 501))&&(RAND(14)==1)
                CONT.VETERINARY=<CONT.VETERINARY> + 1

            ELSEIF ((<CONT.VETERINARY> > 500)&&(<CONT.VETERINARY> < 601))&&(RAND(20)==1)
                CONT.VETERINARY=<CONT.VETERINARY> + 1

            ELSEIF ((<CONT.VETERINARY> > 600)&&(<CONT.VETERINARY> < 701))&&(RAND(30)==1)
                CONT.VETERINARY=<CONT.VETERINARY> + 1

            ELSEIF ((<CONT.VETERINARY> > 700)&&(<CONT.VETERINARY> < 801))&&(RAND(45)==1)
                CONT.VETERINARY=<CONT.VETERINARY> + 1

            ELSEIF ((<CONT.VETERINARY> > 800)&&(<CONT.VETERINARY> < 901))&&(RAND(70)==1)
                CONT.VETERINARY=<CONT.VETERINARY> + 1

            ELSEIF ((<CONT.VETERINARY> > 900)&&(<CONT.VETERINARY> < 1001))&&(RAND(100)==1)
                CONT.VETERINARY=<CONT.VETERINARY> + 1

            ELSEIF (<CONT.VETERINARY> > 1000)
                CONT.VETERINARY=1000

            ENDIF

            REMOVE
            RETURN 1

        ENDIF

    ENDIF


[ITEMDEF 01008]
//wash basin

ON=@DCLICK
    SRC.SYSMESSAGE Target bloody bandages to clean them.
    TARGET
    RETURN 1

ON=@TARGON_ITEM
    IF (<SRC.TARG.BASEID>==i_bandage_bloody)
        IF !(<SRC.TARG.CONT.UID>==<SRC.FINDLAYER(21).UID>)
            SRC.SYSMESSAGE You must have the bandages in your backpack.
            RETURN 1

        ELSE
            SRC.NEWITEM i_bandage
            SRC.ACT.AMOUNT=<SRC.TARG.AMOUNT>
            SRC.ACT.BOUNCE
            SRC.TARG.REMOVE
            RETURN 1

        ENDIF

    ELSE
        SRC.SYSMESSAGE You can't use wash basin on this.
        RETURN 1

ON=@TARGON_CHAR
    SRC.SYSMESSAGE You can't use wash basin on chars.
    RETURN 1

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

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

 

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