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

 
Ответить в эту темуОткрыть новую тему
> хилинг, задержки скилла
241126266
сообщение 9.9.2012, 19:20
Сообщение #1


****

Apprentice
Сообщений: 147
Регистрация: 3.2.2007
Группа: Пользователи
Наличность: 0
Из: Одесса
Пользователь №: 9.424



Подскажите плиз как поставить задержку на скилл что бы нельзя было использовать бинт пока не закончилась предыдущая попытка

Код

CODE
[defname Healing_System_Defs]    

HealingSys_Success_Chance = 50        //This is the percent added to their skill to determine success
                    //E.g. If this property is 50 and their skill is 33.0 it works as
                    // (33 + 50 = 83) Giving you a 83% chance of success
                    // (Resurrection uses 50% of the heal chance to succeed)

HealingSys_Max_Chance = 95       //This is the maximum percent chance of success anyone can have with healing

HealingSys_Healing_Max = 500.0        //The maximum that healing may gain to
HealingSys_Veterinary_Max = 500.0    //The maximum that veterinary may gain to

HealingSys_HealingMedium = 250.0        //The skill in healing when you become able to cure
HealingSys_HealingHigh = 300.0        //The skill in healing when you become able to resurrect

HealingSys_VeterinaryMedium = 200.0    //The skill in veterinary when you become able to cure
HealingSys_VeterinaryHigh = 250.0    //This is used to determine when you heal faster (Does not resurrect)

HealingSys_HealingTime_Self_Low = 8    //The time it takes to heal yourself at low healing skill
HealingSys_HealingTime_Self_Medium = 6 //The time it takes to heal yourself at medium healing skill
HealingSys_HealingTime_Self_High = 4    //The time it takes to heal yourself at high healing skill

HealingSys_HealingTime_Other_Low = 8    //The time it takes to heal others at low healing skill
HealingSys_HealingTime_Other_Medium = 6 //The time it takes to heal others at medium healing skill
HealingSys_HealingTime_Other_High = 4   //The time it takes to heal others at high healing skill

HealingSys_VeterinaryTime_Other_Low = 10   //The time it takes to heal others at low veterinary skill
HealingSys_VeterinaryTime_Other_Medium = 8 //The time it takes to heal others at medium veterinary skill
HealingSys_VeterinaryTime_Other_High = 5   //The time it takes to heal others at high veterinary skill

HealingSys_Healing_Amount_0 = {15 30}    //The amount healing with 0-9% skill
HealingSys_Healing_Amount_1 = {30 50}   //The amount healing with 10-19% skill
HealingSys_Healing_Amount_2 = {50 60}    //The amount healing with 20-29% skill
HealingSys_Healing_Amount_3 = {60 70}    //The amount healing with 30-39% skill
HealingSys_Healing_Amount_4 = {70 80}    //The amount healing with 40-49% skill
HealingSys_Healing_Amount_5 = {80 90}    //The amount healing with 50-59% skill
HealingSys_Healing_Amount_6 = {90 110}    //The amount healing with 60-69% skill
HealingSys_Healing_Amount_7 = {110 130}    //The amount healing with 70-79% skill
HealingSys_Healing_Amount_8 = {130 140}    //The amount healing with 80-89% skill
HealingSys_Healing_Amount_9 = {140 150}    //The amount healing with 90-99% skill
HealingSys_Healing_Amount_10 = {150 160}    //The amount healing with 100-109% skill (Add more of these if your healing goes higher)

HealingSys_Veterinary_Amount_0 = {115 130}    //The amount healing with 0-9% skill
HealingSys_Veterinary_Amount_1 = {130 150}    //The amount healing with 10-19% skill
HealingSys_Veterinary_Amount_2 = {150 160}    //The amount healing with 20-29% skill
HealingSys_Veterinary_Amount_3 = {160 170}    //The amount healing with 30-39% skill
HealingSys_Veterinary_Amount_4 = {170 180}    //The amount healing with 40-49% skill
HealingSys_Veterinary_Amount_5 = {180 190}    //The amount healing with 50-59% skill
HealingSys_Veterinary_Amount_6 = {190 210}    //The amount healing with 60-69% skill
HealingSys_Veterinary_Amount_7 = {210 230}    //The amount healing with 70-79% skill
HealingSys_Veterinary_Amount_8 = {230 240}    //The amount healing with 80-89% skill
HealingSys_Veterinary_Amount_9 = {240 250}    //The amount healing with 90-99% skill
HealingSys_Veterinary_Amount_10 = {250 260}    //The amount healing with 100-109% skill (Add more of these if your veterinary goes higher)


[PLEVEL 1]
useheal

[FUNCTION useheal]
IF <RESTEST i_bandage>
    FINDID.i_bandage.dclick
ELSE
    SRC.Message @149 No Bandage Found
ENDIF

[MENU m_res_ask]
Do you wish to resurrect?

ON=0 Yes
SRC.RESURRECT

ON=0 No

[ITEMDEF 0e21]
DEFNAME=i_bandage
TYPE=T_SCRIPT
WEIGHT=.1
CATEGORY=Items by Professions
SUBSECTION=Healer
DESCRIPTION=Clean Bandages
VALUE=0

ON=@DCLICK
Target
SRC.SYSMESSAGE @88 Select a target
RETURN 1

ON=@TARGON_CHAR
IF <SRC.FLAGS>==<SRC.FLAGS>|02
RETURN 1
ENDIF

OBJ=<SRC.TARG.UID>

IF <OBJ.HITS>>=<OBJ.MAXHITS>
    SRC.SYSMESSAGE @88 Your target is not damaged!
    RETURN 0
        IF <LINK.RESTEST i_rune_poison>
            MORE /= 2
            IF <DEF0.HealingSys_HealingMedium>><CONT.HEALING>
                IF <LINK.UID>==<CONT.UID>
                    CONT.SYSMESSAGE @88 You fail to cure yourself
                ELSE
                    CONT.SYSMESSAGE @@88 You fail to cure your target.
                    LINK.SYSMESSAGE @@88 <CONT.NAME> fails to cure you.
                ENDIF
            ELSE
                IF <LINK.UID>==<CONT.UID>
                    CONT.SYSMESSAGE @88 You cure yourself of all poisons
                ELSE
                    CONT.SYSMESSAGE @88 You cure your target of all poisons
                    LINK.SYSMESSAGE @88 <CONT.NAME> cures you of all poisons
                ENDIF
                LINK.CONSUME i_rune_poison
            ENDIF
        ENDIF
ENDIF


IF <OBJ.DISTANCE>>2
    SRC.SYSMESSAGE @88 You are too far away to heal your target
    RETURN 1
ENDIF

IF !<OBJ.NPC>
    IF <OBJ.FLAGS>==<OBJ.FLAGS>|02
        IF <DEF0.HealingSys_HealingHigh>><SRC.HEALING>
            SRC.ESSAGE @49 You need <FVAL <DEF0.HealingSys_HealingHigh>> Healing to resurrect your target
            RETURN 1
        ENDIF
        SRC.CONSUME i_healingsys_item
        SERV.NEWITEM=i_healingsys_item
        NEW.LINK=<OBJ.UID>
        NEW.TIMER=<DEF0.HealingSys_HealingTime_Other_High>
        SRC.EQUIP <NEW.UID>
        SRC.SYSMESSAGE @88 You begin healing
        OBJ.SYSMESSAGE @88 <SRC.NAME> is attempting to heal you
        CONSUME
    ELSE
        SRC.CONSUME i_healingsys_item
        SERV.NEWITEM=i_healingsys_item
        NEW.LINK=<OBJ.UID>
        NEW.MORE=<DEF0.HealingSys_Healing_Amount_<EVAL <SRC.HEALING>/500>>
        IF <OBJ.UID>==<SRC.UID>
        SRC.SYSMESSAGE @88 You begin healing
        Get_HealingSpeed_Self
            NEW.TIMER=<NEW.MORE2>
        ELSE
        SRC.SYSMESSAGE @88 You begin healing
        OBJ.SYSMESSAGE @88 <SRC.NAME> is attempting to heal you
        Get_HealingSpeed_Other
            NEW.TIMER=<NEW.MORE2>
        ENDIF
        SRC.EQUIP <NEW.UID>
        CONSUME
    ENDIF
ELSE
    IF ((<OBJ.NPC>==brain_animal) || (<OBJ.NPC>==brain_animal) || (<OBJ.TAMING>>0))
        SRC.CONSUME i_healingsys_item
        SERV.NEWITEM=i_healingsys_item
        NEW.LINK=<OBJ.UID>
        NEW.MORE=<DEF0.HealingSys_Veterinary_Amount_<EVAL <SRC.Veterinary>/500>>
        Get_VeterinarySpeed
        NEW.TIMER=<NEW.MORE2>
        SRC.EQUIP <NEW.UID>
        SRC.SYSMESSAGE @88 You begin healing
        CONSUME
    ELSE
        SRC.CONSUME i_healingsys_item
        SERV.NEWITEM=i_healingsys_item
        NEW.LINK=<OBJ.UID>
        NEW.MORE=<DEF0.HealingSys_Healing_Amount_<EVAL <SRC.HEALING>/500>>
        IF <OBJ.UID>==<SRC.UID>
        SRC.SYSMESSAGE @88 You begin healing
        Get_HealingSpeed_Self
            NEW.TIMER=<NEW.MORE2>
        ELSE
        SRC.SYSMESSAGE @88 You begin healing
        Get_HealingSpeed_Other
            NEW.TIMER=<NEW.MORE2>
        ENDIF
        SRC.EQUIP <NEW.UID>
        CONSUME
    ENDIF
ENDIF
SRC.ANIM=19
RETURN 1


[ITEMDEF i_healingsys_item]
ID=i_memory
TYPE=t_eq_script
NAME=Healing Timer (DONT REMOVE)

ON=@TIMER
IF <CONT.FLAGS>==<CONT.FLAGS>|02
REMOVE
RETURN 1
ENDIF

CONT.SOUND 0057

IF <LINK.DISTANCE <CONT.UID>>>2
    CONT.SYSMESSAGE @88 You are too far away to finish healing <LINK.NAME>
    LINK.SYSMESSAGE @88 <CONT.NAME> is to far away to finish healing you
    REMOVE
    RETURN 1
ENDIF

IF <LINK.HITS>>=<LINK.MAXHITS>
    CONT.SYSMESSAGE @88 You heal what little damage they had taken
    REMOVE
    RETURN 1
ENDIF

LOCAL.SUCCESS_CHANCE=<EVAL <DEF0.HealingSys_Success_Chance>+<EVAL <CONT.HEALING>/10>>
IF <LOCAL.SUCCESS_CHANCE>><DEF0.HealingSys_Max_Chance>
    LOCAL.SUCCESS_CHANCE=<DEF0.HealingSys_Max_Chance>
ENDIF
IF <LINK.FLAGS>==<LINK.FLAGS>|02
    LOCAL.SUCCESS_CHANCE /= 2
ENDIF
        
IF RAND(100)>=<LOCAL.SUCCESS_CHANCE>
    CONT.SYSMESSAGE @88 You fail to heal your target
    LINK.SYSMESSAGE @88 <CONT.NAME> fails to heal you
    REMOVE
    RETURN 1
ENDIF

CONT.ANIM=19

IF !<LINK.NPC>
    IF <LINK.FLAGS>==<LINK.FLAGS>|02
        IF <DEF0.HealingSys_HealingHigh>><CONT.HEALING>
            CONT.SYSMESSAGE @88 You need <FVAL <DEF0.HealingSys_HealingHigh>> Healing to resurrect your target
            REMOVE
            RETURN 1
        ENDIF
        LINK.MENU m_res_ask
        CONT.SOUND snd_spell_resurrection
        CONT.SYSMESSAGE @88 You resurrect your target
        LINK.SYSMESSAGE @88 <CONT.NAME> resurrects you
        CONT.GAIN_HEALINGSYS 1
        REMOVE
        RETURN 1
    ELSE
        IF <LINK.RESTEST i_rune_poison>
            MORE /= 2
            IF <DEF0.HealingSys_HealingMedium>><CONT.HEALING>
                IF <LINK.UID>==<CONT.UID>
                    CONT.SYSMESSAGE @88 You fail to cure yourself
                ELSE
                    CONT.SYSMESSAGE @88 You fail to cure your target.
                    LINK.SYSMESSAGE @88 <CONT.NAME> fails to cure you.
                ENDIF
            ELSE
                IF <LINK.UID>==<CONT.UID>
                    CONT.SYSMESSAGE @88 You cure yourself of all poisons
                ELSE
                    CONT.SYSMESSAGE @88 You cure your target of all poisons
                    LINK.SYSMESSAGE @88 <CONT.NAME> cures you of all poisons
                ENDIF
                LINK.CONSUME i_rune_poison
            ENDIF
        ENDIF
        IF <LINK.UID>==<CONT.UID>
            CONT.SYSMESSAGE @88 You heal yourself: <EVAL <MORE>>
        ELSE
            CONT.SYSMESSAGE @88 You heal your target: <EVAL <MORE>>
            LINK.SYSMESSAGE @88 <CONT.NAME> heals you: <EVAL <MORE>>
        ENDIF

        LINK.HITS += <MORE>
        IF <LINK.HITS>><LINK.MAXHITS>
            LINK.HITS=<LINK.MAXHITS>
        ENDIF
        CONT.GAIN_HEALINGSYS
        REMOVE
        RETURN 1
    ENDIF
ELSE
    IF ((<LINK.NPC>==brain_animal) || (<LINK.NPC>==brain_animal) || (<LINK.TAMING>>0))
        IF <LINK.RESTEST i_rune_poison>
            MORE /= 2
            IF <DEF0.HealingSys_VeterinaryMedium><=<CONT.Veterinary>
                LINK.CONSUME i_rune_poison
            ENDIF
        ENDIF
        
        LINK.HITS += <MORE>
        IF <LINK.HITS>><LINK.MAXHITS>
            LINK.HITS=<LINK.MAXHITS>
        ENDIF
        CONT.SYSMESSAGE @88 You heal your target: <EVAL <MORE>>
        CONT.GAIN_HEALINGSYS_VET
        REMOVE
        RETURN 1
    ELSE
        IF <LINK.RESTEST i_rune_poison>
            MORE /= 2
            IF <DEF0.HealingSys_HealingMedium>><CONT.Healing>
                LINK.SYSMESSAGE @88 <CONT.NAME> fails to cure you.
            ELSE
                LINK.SYSMESSAGE @88 <CONT.NAME> cures you of all poisons
                LINK.CONSUME i_rune_poison
            ENDIF
        ENDIF
            CONT.SYSMESSAGE @88 You heal your target: <EVAL <MORE>>
        
        LINK.HITS += <MORE>
        IF <LINK.HITS>><LINK.MAXHITS>
            LINK.HITS=<LINK.MAXHITS>
        ENDIF
        CONT.GAIN_HEALINGSYS
        REMOVE
        RETURN 1
    ENDIF
RETURN 1

[ITEMDEF 0ee9]
//clean bandages
DUPEITEM=0e21

[FUNCTION GAIN_HEALINGSYS]
IF <HEALING><<DEF0.HealingSys_Healing_Max>
IF RAND(<EVAL <HEALING>/100>)==0
IF <HEALING><<EVAL <DEF0.HealingSys_Healing_Max>/4>
HEALING += <EVAL {1 3}>
ELSE
HEALING += 1
ENDIF
ENDIF
ENDIF

[FUNCTION GAIN_HEALINGSYS_VET]
IF <Veterinary><<DEF0.HealingSys_Veterinary_Max>
IF RAND(<EVAL <Veterinary>/100>)==0
IF <Veterinary><<EVAL <DEF0.HealingSys_Veterinary_Max>/4>
Veterinary += <EVAL {1 3}>
ELSE
Veterinary += 1
ENDIF
ENDIF
ENDIF

[FUNCTION Get_HealingSpeed_Self]
IF <DEF0.HealingSys_HealingHigh><=<SRC.HEALING>
NEW.MORE2=<DEF0.HealingSys_HealingTime_Self_High>
ELIF <DEF0.HealingSys_HealingMedium><=<SRC.HEALING>
NEW.MORE2=<DEF0.HealingSys_HealingTime_Self_Medium>
ELSE
NEW.MORE2=<DEF0.HealingSys_HealingTime_Self_Low>
ENDIF

[FUNCTION Get_HealingSpeed_Other]
IF <DEF0.HealingSys_HealingHigh><=<SRC.HEALING>
NEW.MORE2=<DEF0.HealingSys_HealingTime_Other_High>
ELIF <DEF0.HealingSys_HealingMedium><=<SRC.HEALING>
NEW.MORE2=<DEF0.HealingSys_HealingTime_Other_Medium>
ELSE
NEW.MORE2=<DEF0.HealingSys_HealingTime_Other_Low>
ENDIF

[FUNCTION Get_VeterinarySpeed]
IF <DEF0.HealingSys_HealingHigh><=<SRC.HEALING>
NEW.MORE2=<DEF0.HealingSys_HealingTime_Other_High>
ELIF <DEF0.HealingSys_HealingMedium><=<SRC.HEALING>
NEW.MORE2=<DEF0.HealingSys_HealingTime_Other_Medium>
ELSE
NEW.MORE2=<DEF0.HealingSys_HealingTime_Other_Low>
ENDIF

[EOF]
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
WRWR
сообщение 10.9.2012, 9:33
Сообщение #2


*******

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



проверяй наличие i_healingsys_item во время использования бинта


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


****

Apprentice
Сообщений: 147
Регистрация: 3.2.2007
Группа: Пользователи
Наличность: 0
Из: Одесса
Пользователь №: 9.424



Цитата(WRWR @ 10.9.2012, 9:33) *

проверяй наличие i_healingsys_item во время использования бинта

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


*******

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



Код

ON=@TARGON_CHAR
IF <SRC.FLAGS>==<SRC.FLAGS>|02
RETURN 1
ENDIF
IF <ARGO.FINDID.i_healingsys_item>
SRC.SMSG Healing in progress
RETURN 1
ENDIF



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


****

Apprentice
Сообщений: 147
Регистрация: 3.2.2007
Группа: Пользователи
Наличность: 0
Из: Одесса
Пользователь №: 9.424



Цитата(WRWR @ 11.9.2012, 19:45) *

Код

ON=@TARGON_CHAR
IF <SRC.FLAGS>==<SRC.FLAGS>|02
RETURN 1
ENDIF
IF <ARGO.FINDID.i_healingsys_item>
SRC.SMSG Healing in progress
RETURN 1
ENDIF




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

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

 

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