Код

////////////////////////////////////////////////////////////////////////////////////////
//Luck System v0.5 by Mordaunt
//
// Designed to make use of "existing" luck items scripted by ClouD_BR
// To add new "luck" items set value on them in TAG.LUCK
// and add the event t_luck_item.
//
// Features:     Lucky loot drops
//        Lucky blow, double damage
//        Lucky Dodge, dodge an attack (to balance the lucky blow)
//        Luck affected Crafting (add AR/DAM) //Not included
////////////////////////////////////////////////////////////////////////////////////////

//Player event
[EVENTS e_luck]
ON=@KILL
LOCAL.LUCK=1500 +-<luck>
IF (<ARGO.NPC>)
  IF !(RAND(<eval <LOCAL.LUCK>>))
    f_lucky_draw
    NEW.CONT <ARGO.UID>
  ENDIF
RETURN 0
ENDIF

ON=@HIT
LOCAL.LUCK=1500 +-<luck>
IF !(RAND(<eval <LOCAL.LUCK>>))
        ACT.DAMAGE (<ARGN1>*2) <ARGN2> <UID>
        SYSMESSAGE @07a1 Lucky blow!
ENDIF
RETURN 0


ON=@GETHIT
LOCAL.LUCK=1500 +-<luck>
IF !(RAND(<eval <LOCAL.LUCK>>))
            SYSMESSAGE @07a1 Wow! Lucky Dodge!
            RETURN 1
ENDIF


//Crafting section under construction
ON=@SKILLMAKEITEM
LOCAL.LUCK=1500 +-<luck>
IF !(RAND(<eval <LOCAL.LUCK>>))
    IF (<ACT.ISARMOR>)
        ACT.MODAR=<eval (<ACT.ARMOR>*10)/100>
        ACT.EVENTS +t_modar
    ENDIF
    IF (<ACT.ISWEAPON>)
        DORAND 4
            ACT.TAG.MODDAM=10
            ACT.TAG.MODDAM=20
            ACT.TAG.MODDAM=25
            ACT.TAG.MODDAM=50
        ENDDO
        ACT.EVENTS +t_moddam
    ENDIF
    IF (<ACT.TYPE>==t_clothing)
        ACT.MODAR=<eval <ACT.ARMOR>>
        ACT.EVENTS +t_modar
    ENDIF
    IF (<ACT.TYPE>==t_weapon_bow) || (<ACT.TYPE>==t_weapon_xbow)
        DORAND 4
            ACT.HITPOINTS += 10
            ACT.HITPOINTS += 20
            ACT.HITPOINTS += 30
            ACT.HITPOINTS += 40
        ENDDO
    ENDIF
        
ENDIF

//Item event
[TYPEDEF t_luck_item]
ON=@EQUIP
SRC.LUCK += <TAG.LUCK>

ON=@UNEQUIP
SRC.LUCK -= <TAG.LUCK>

ON=@CLIENTTOOLTIP
SRC.ADDCLILOC 1060436, <EVAL <TAG0.LUCK>>

//Damage increase typedef
[TYPEDEF t_moddam]
ON=@CLIENTTOOLTIP
SRC.ADDCLILOC 1074325, <eval <tag0.moddam>>

ON=@EQUIP
SRC.EVENTS +e_dam_event

ON=@UNEQUIP
SRC.EVENTS +e_dam_event

//Damage Increase event --> Put on an all players & NPC's event
[EVENTS e_dam_event]
ON=@GETHIT
    IF (<SRC.FINDLAYER.LAYER_HAND1.tag0.moddam>)
        ARGN1=<eval <eval <argn1>*<SRC.FINDLAYER.LAYER_HAND1.tag0.moddam>>/100> + <eval <argn1>>
    ENDIF


[FUNCTION f_lucky_draw
DORAND 27 //edit this to match the # of lines
//insert lucky loot here
    SERV.NEWITEM={ i_gloves_alchemist 1 i_robe_alchemist 1 i_ring_alchemist 1  i_bracelet_alchemist 1 i_glasses_alchemist 1}
    SERV.NEWITEM={ i_enchant_ring_gold 1 i_enchant_bracelet_gold 1 i_enchant_necklace_gold 1 i_enchant_earrings_gold 1 }


ENDDO

[EOF]