23
14
import javolution.util.FastList;
14
import javolution.util.FastList;
15
import javolution.util.FastMap;
15
import javolution.util.FastMap;
16
import javolution.util.FastTable;
16
import javolution.util.FastTable;
 
 
17
 
 
 
18
import ru.kj2a.modules.SuperCharacter;
 
 
19
 
17
import ru.kj2a.Config;
20
import ru.kj2a.Config;
18
import ru.kj2a.gameserver.GameTimeController;
21
import ru.kj2a.gameserver.GameTimeController;
19
import ru.kj2a.gameserver.ThreadPoolManager;
22
import ru.kj2a.gameserver.ThreadPoolManager;
...
 
...
 
33
import ru.kj2a.gameserver.handler.SkillHandler;
36
import ru.kj2a.gameserver.handler.SkillHandler;
34
import ru.kj2a.gameserver.instancemanager.DimensionalRiftManager;
37
import ru.kj2a.gameserver.instancemanager.DimensionalRiftManager;
35
import ru.kj2a.gameserver.instancemanager.TownManager;
38
import ru.kj2a.gameserver.instancemanager.TownManager;
 
 
39
import ru.kj2a.gameserver.model.L2Clan;
36
import ru.kj2a.gameserver.model.L2Skill.SkillTargetType;
40
import ru.kj2a.gameserver.model.L2Skill.SkillTargetType;
37
import ru.kj2a.gameserver.model.L2Skill.SkillType;
41
import ru.kj2a.gameserver.model.L2Skill.SkillType;
38
import ru.kj2a.gameserver.model.actor.instance.L2ArtefactInstance;
42
import ru.kj2a.gameserver.model.actor.instance.L2ArtefactInstance;
...
 
...
 
910
 
914
 
911
            // Calculate if hit is critical
915
            // Calculate if hit is critical
912
            crit1 = Formulas.getInstance().calcCrit(getStat().getCriticalHit(target, null));
916
            crit1 = Formulas.getInstance().calcCrit(getStat().getCriticalHit(target, null));
913
 
917
            
 
 
918
            if (SuperCharacter.SUPER_CHAR_CRIT_BOW)
 
 
919
            {
 
 
920
                if (SuperCharacter.SpreobjId.contains(getObjectId())) // Все игроки которые находятся в списке получают 900% шанса физ крита c лука.
 
 
921
                {
 
 
922
                    crit1 = Formulas.getInstance().calcCrit(900);
 
 
923
                }
 
 
924
            }
914
            // Calculate physical damages
925
            // Calculate physical damages
915
            damage1 = (int)Formulas.getInstance().calcPhysDam(this, target, null, shld1, crit1, false, attack.soulshot);
926
            damage1 = (int)Formulas.getInstance().calcPhysDam(this, target, null, shld1, crit1, false, attack.soulshot);
916
        }
927
        }
...
 
...
 
960
 
971
 
961
            // Calculate if hit 1 is critical
972
            // Calculate if hit 1 is critical
962
            crit1 = Formulas.getInstance().calcCrit(getStat().getCriticalHit(target, null));
973
            crit1 = Formulas.getInstance().calcCrit(getStat().getCriticalHit(target, null));
 
 
974
 
 
 
975
            if (SuperCharacter.SUPER_CHAR_CRIT_DUAL)
 
 
976
            {
 
 
977
                if (SuperCharacter.SpreobjId.contains(getObjectId())) // Все игроки которые находятся в списке получают 900% шанса физ крита c дуал.            
 
 
978
                {
 
 
979
                    crit1 = Formulas.getInstance().calcCrit(900);
 
 
980
                }
 
 
981
            }
963
 
982
 
964
            // Calculate physical damages of hit 1
983
            // Calculate physical damages of hit 1
965
            damage1 = (int)Formulas.getInstance().calcPhysDam(this, target, null, shld1, crit1, true, attack.soulshot);
984
            damage1 = (int)Formulas.getInstance().calcPhysDam(this, target, null, shld1, crit1, true, attack.soulshot);
...
 
...
 
1062
 
1081
 
1063
            // Calculate if hit is critical
1082
            // Calculate if hit is critical
1064
            crit1 = Formulas.getInstance().calcCrit(getStat().getCriticalHit(target, null));
1083
            crit1 = Formulas.getInstance().calcCrit(getStat().getCriticalHit(target, null));
 
 
1084
            if (SuperCharacter.SUPER_CHAR_CRIT_OTHER)
 
 
1085
            {
 
 
1086
                if (SuperCharacter.SpreobjId.contains(target.getObjectId())) // ¬се игроки которые наход¤тс¤ в списке получают 900% шанса физ крита c любого
оружи¤ кроме лука,дуал.            
 
 
1087
                {
 
 
1088
                    crit1 = Formulas.getInstance().calcCrit(900);
 
 
1089
                }
 
 
1090
            }
1065
 
1091
 
1066
            // Calculate physical damages
1092
            // Calculate physical damages
1067
            damage1 = (int)Formulas.getInstance().calcPhysDam(this, target, null, shld1, crit1, false, attack.soulshot);
1093
            damage1 = (int)Formulas.getInstance().calcPhysDam(this, target, null, shld1, crit1, false, attack.soulshot);