View difference between Paste ID: AiuFC0nh and adufxprF
SHOW: | | - or go back to the newest paste.
1
Index: net.sf.l2j;Config.java
2
===================================================================
3
--- net.sf.l2j;Config.java (revision 84)
4
+++ net.sf.l2j;Config.java (working copy)
5
6
-	public static final String GEOENGINE_FILE = "./config/main/geoengine.properties";
7
8
+	public static final String GEOENGINE_FILE = "./config/main/geoengine.properties";
9
10
+	public static final String PHYSICS_FILE = "./config/customs/physics.properties";
11
12
+	public static int BLOW_ATTACK_FRONT;
13
+	public static int BLOW_ATTACK_SIDE;
14
+	public static int BLOW_ATTACK_BEHIND;
15
+	public static int BACKSTAB_ATTACK_FRONT;
16
+	public static int BACKSTAB_ATTACK_SIDE;
17
+	public static int BACKSTAB_ATTACK_BEHIND;
18
+	public static int ANTI_SS_BUG_1;
19
+	public static int ANTI_SS_BUG_2;
20
+	public static int ANTI_SS_BUG_3;
21
22
+	private static final void loadPhysics()
23
+	{
24
+	final ExProperties physics = initProperties(PHYSICS_FILE);	
25
+	BLOW_ATTACK_FRONT = Integer.parseInt(physics.getProperty("BlowAttackFront", "50"));
26
+	BLOW_ATTACK_SIDE = Integer.parseInt(physics.getProperty("BlowAttackSide", "60"));
27
+	BLOW_ATTACK_BEHIND = Integer.parseInt(physics.getProperty("BlowAttackBehind", "70"));
28
+	
29
+	BACKSTAB_ATTACK_FRONT = Integer.parseInt(physics.getProperty("BackstabAttackFront", "0"));
30
+	BACKSTAB_ATTACK_SIDE = Integer.parseInt(physics.getProperty("BackstabAttackSide", "0"));
31
+	BACKSTAB_ATTACK_BEHIND = Integer.parseInt(physics.getProperty("BackstabAttackBehind", "70"));
32
33
+	ANTI_SS_BUG_1 = Integer.parseInt(physics.getProperty("Delay", "2700"));
34
+	ANTI_SS_BUG_2 = Integer.parseInt(physics.getProperty("DelayBow", "1500"));
35
+	ANTI_SS_BUG_3 = Integer.parseInt(physics.getProperty("DelayNextAttack", "470000"));
36
+	
37
+	}
38
39
40
41
loadPhysics();
42
43
44
Index: net.sf.l2j.gameserver.handler.skillhandlers;Blow.java
45
===================================================================
46
--- net.sf.l2j.gameserver.handler.skillhandlers;Blow.java (revision 84)
47
+++ net.sf.l2j.gameserver.handler.skillhandlers;Blow.java (working copy)
48
49
-	byte _successChance = SIDE;
50
-	
51
-	if (activeChar.isBehindTarget())
52
-		_successChance = BEHIND;
53
-	else if (activeChar.isInFrontOfTarget())
54
-		_successChance = FRONT;
55
56
+	byte _successChance = SIDE;
57
+	
58
+	if (activeChar.isBehindTarget())
59
+		_successChance = BEHIND;
60
+	else if (activeChar.isInFrontOfTarget())
61
+		_successChance = FRONT;
62
			
63
+	if (skill.getName().equals("Backstab"))
64
+	{
65
+	if (activeChar.isBehindTarget())
66
+		_successChance = (byte) Config.BACKSTAB_ATTACK_BEHIND;
67
+	else if (activeChar.isInFrontOfTarget())
68
+		_successChance = (byte) Config.BACKSTAB_ATTACK_FRONT;
69
+	else
70
+		_successChance = (byte) Config.BACKSTAB_ATTACK_SIDE;
71
+	}
72
+	else if (activeChar.isBehindTarget())
73
+		_successChance = (byte) Config.BLOW_ATTACK_BEHIND;
74
+	else if (activeChar.isInFrontOfTarget())
75
+		_successChance = (byte) Config.BLOW_ATTACK_FRONT;
76
+	else
77
+	_successChance = (byte) Config.BLOW_ATTACK_SIDE;
78
	
79
80
Index: net.sf.l2j.gameserver.model.actor;Creature.java
81
===================================================================
82
--- net.sf.l2j.gameserver.model.actor;Creature.java (revision 84)
83
+++ net.sf.l2j.gameserver.model.actor;Creature.java (working copy)
84
85
-	public int calculateTimeBetweenAttacks(Creature target, WeaponType weaponType)
86
-	{
87
-		switch (weaponType)
88
-		{
89
-			case BOW:
90
-				return 1500 * 345 / getStat().getPAtkSpd();
91
-			
92
-			default:
93
-				return Formulas.calcPAtkSpd(this, target, getStat().getPAtkSpd());
94
-		}
95
-	}
96
97
+	public int calculateTimeBetweenAttacks(Creature target, WeaponType weaponType)
98
+	{
99
+		switch (weaponType)
100
+		{
101
+			case BOW:
102
+				return Config.ANTI_SS_BUG_2 * 345 / getStat().getPAtkSpd();
103
+		}
104
+		return Formulas.calcPAtkSpd(this, target, getStat().getPAtkSpd());
105
+	}
106
107
Index: net.sf.l2j.gameserver.skills;Formulas.java
108
===================================================================
109
--- net.sf.l2j.gameserver.skills;Formulas.java (revision 84)
110
+++ net.sf.l2j.gameserver.skills;Formulas.java (working copy)
111
112
-	public static final int calcPAtkSpd(Creature attacker, Creature target, double rate)
113
-	{
114
-		if (rate < 2)
115
-			return 2700;
116
-		
117
-		return (int) (470000 / rate);
118
-	}
119
120
+	public static final int calcPAtkSpd(Creature attacker, Creature target, double rate)
121
+	{
122
+		if (rate < 2.0D)
123
+			return Config.ANTI_SS_BUG_1;
124
+		return (int) (Config.ANTI_SS_BUG_3 / rate);
125
+	}
126
127
Index: config/physics.properties
128
===================================================================
129
--- config/physics.properties (revision 84)
130
+++ config/physics.properties (working copy)
131
132
133
+	#====================================================
134
+	#               BLOW SETTINGS
135
+	#====================================================
136
+	# Chance front
137
+	BlowAttackFront = 100
138
+	
139
+	# Chance on the sides
140
+	BlowAttackSide = 100
141
+	
142
+	# Chance from behind
143
+	BlowAttackBehind = 100
144
+	
145
+	#====================================================
146
+	#            BACKSTAB SETTINGS        
147
+	#====================================================
148
+	# Chance front
149
+	BackstabAttackFront = 0
150
+	
151
+	# Chance on the sides
152
+	BackstabAttackSide = 40
153
+	
154
+	# Chance from behind
155
+	BackstabAttackBehind = 100
156
157
+	#====================================================
158
+	#                 ANTI BUG SS
159
+	#====================================================
160
+	#Low = 1500
161
+	#PvP = 1550
162
+	DelayBow = 1500
163
+	
164
+	# Low = 2700
165
+	# PvP = 2900
166
+	Delay = 2900
167
+	
168
+	# Low = 470000
169
+	# PvP = 620000
170
+	DelayNextAttack = 620000