Jump to content
  • 0

[Question] I 'ld Like To Know Of Code Addaptation


andon19

Question

Well i look recent wyatt share for auto soulshot and i thought  now i gonna addapted on aCis,l2jfrozen and every interlude project that exist and what really i did? NOTHING :D :D at least i try...

 

Now in our topic if someone want to apply an "easy" ( for  me it's not)code for example l2jserver-->

-->l2jaCis-->

l2jfrozen--> etc

 

what steps should follow?

 

 

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

+- lines inside the patch? :D

 

If you can't find the same check that is inside the patch and you have access to the source, you always can open dat file and see in original inside what method the new (+) line is and then you add it to other source :P

Link to comment
Share on other sites

  • 0
1.	### Eclipse Workspace Patch 1.0
2.	#P L2J_Server
3.	Index: java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
4.	===================================================================
5.	--- java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java        (revision 6193)
6.	+++ java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java        (working copy)
7.	@@ -44,6 +44,12 @@
8.	 import javolution.util.FastMap;
9.	 import javolution.util.FastSet;
10.	 
11.	+import com.custom.AutoShots;
12.	@@ -881,6 +894,18 @@
13.	                }
14.	        }
15.	       
16.	+       private AutoShots _autoshotss;
17.	+      
18.	+       public AutoShots getAutoShots()
19.	+       {
20.	+               return _autoshotss;
21.	+       }
22.	+      
23.	+       public void setAutoShots(AutoShots _shot)
24.	+       {
25.	+               _autoshotss = _shot;
26.	+       }
27.	+      
28.	        public void stopPvpRegTask()
29.	        {
30.	                if (_PvPRegTask != null)
31.	@@ -2592,6 +2894,11 @@
32.	                        else
33.	                        {
34.	                                items = getInventory().unEquipItemInBodySlotAndRecord(slot);
35.	+                              
36.	+                               if (getAutoShots() != null)
37.	+                               {
38.	+                                       _activeSoulShots.clear();
39.	+                               }
40.	                        }
41.	                }
42.	                else
43.	@@ -2618,6 +2925,10 @@
44.	                               
45.	                                if ((item.getItem().getBodyPart() & L2Item.SLOT_MULTI_ALLWEAPON) != 0)
46.	                                {
47.	+                                       if (getAutoShots() != null)
48.	+                                       {
49.	+                                               getAutoShots().updateAutoShots(this);
50.	+                                       }
51.	                                        rechargeShots(true, true);
52.	                                }
53.	                        }
54.	@@ -10258,8 +10666,18 @@
55.	                {
56.	                        item = getInventory().getItemByItemId(itemId);
57.	                       
58.	-                       if (item != null)
59.	+                       if (getAutoShots() != null)
60.	                        {
61.	+                               L2ItemInstance shot = new L2ItemInstance(0, ItemTable.getInstance().getTemplate(itemId));
62.	+                               handler = ItemHandler.getInstance().getHandler(shot.getEtcItem());
63.	+                              
64.	+                               if (handler != null)
65.	+                               {
66.	+                                       handler.useItem(this, item, false);
67.	+                               }
68.	+                       }
69.	+                       else if (item != null)
70.	+                       {
71.	                                if (magic)
72.	                                {
73.	                                        if (item.getItem().getDefaultAction() == L2ActionType.spiritshot)
74.	Index: java/com/custom/AutoShots.java
75.	===================================================================
76.	--- java/com/custom/AutoShots.java      (revision 0)
77.	+++ java/com/custom/AutoShots.java      (revision 0)
78.	@@ -0,0 +1,76 @@
79.	+/*
80.	+ * Copyright (C) 2004-2013 L2J Server
81.	+ *
82.	+ * This file is part of L2J Server.
83.	+ *
84.	+ * L2J Server is free software: you can redistribute it and/or modify
85.	+ * it under the terms of the GNU General Public License as published by
86.	+ * the Free Software Foundation, either version 3 of the License, or
87.	+ * (at your option) any later version.
88.	+ *
89.	+ * L2J Server is distributed in the hope that it will be useful,
90.	+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
91.	+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
92.	+ * General Public License for more details.
93.	+ *
94.	+ * You should have received a copy of the GNU General Public License
95.	+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
96.	+ */
97.	+package com.custom;
98.	+
99.	+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
100.	+
101.	+/**
102.	+ * @author Wyatt
103.	+ */
104.	+
105.	+public class AutoShots
106.	+{
107.	+       public AutoShots(L2PcInstance activeChar)
108.	+       {
109.	+               updateAutoShots(activeChar);
110.	+               activeChar.setAutoShots(this);
111.	+               activeChar.rechargeShots(true, true);
112.	+       }
113.	+      
114.	+       public void updateAutoShots(L2PcInstance activeChar)
115.	+       {
116.	+               if (activeChar.getActiveWeaponItem() != null)
117.	+               {
118.	+                       ItemGrade itemgrade = ItemGrade.values()[activeChar.getActiveWeaponItem().getItemGrade()];
119.	+                       activeChar.addAutoSoulShot(itemgrade.getSoulshot());
120.	+                       activeChar.addAutoSoulShot(itemgrade.getBlessedSpiritshot());
121.	+               }
122.	+       }
123.	+      
124.	+       public enum ItemGrade
125.	+       {
126.	+               NOGRADE(1835, 2509),
127.	+               D(1463, 2510),
128.	+               C(1464, 2511),
129.	+               B(1465, 2512),
130.	+               A(1466, 2513),
131.	+               S(1467, 2514),
132.	+               S80(1467, 2514),
133.	+               S84(1467, 2514);
134.	+              
135.	+               private int soulshot;
136.	+               private int blessedspiritshot;
137.	+              
138.	+               private ItemGrade(int soulshot_id, int blessedspirit_id)
139.	+               {
140.	+                       soulshot = soulshot_id;
141.	+                       blessedspiritshot = blessedspirit_id;
142.	+               }
143.	+              
144.	+               public int getSoulshot()
145.	+               {
146.	+                       return soulshot;
147.	+               }
148.	+              
149.	+               public int getBlessedSpiritshot()
150.	+               {
151.	+                       return blessedspiritshot;
152.	+               }
153.	+       }
154.	+}
155.	\ No newline at end of file
156.	Index: java/com/l2jserver/gameserver/network/clientpackets/EnterWorld.java
157.	===================================================================
158.	--- java/com/l2jserver/gameserver/network/clientpackets/EnterWorld.java (revision 6193)
159.	+++ java/com/l2jserver/gameserver/network/clientpackets/EnterWorld.java (working copy)
160.	@@ -18,10 +18,12 @@
161.	  */
162.	 package com.l2jserver.gameserver.network.clientpackets;
163.	 
164.	 import javolution.util.FastList;
165.	 
166.	+import com.custom.AutoShots;
167.	 
168.	@@ -579,6 +581,23 @@
169.	+               new AutoShots(activeChar);
170.	+              
171.	                if (Config.WELCOME_MESSAGE_ENABLED)
172.	                {
173.	                        activeChar.sendPacket(new ExShowScreenMessage(Config.WELCOME_MESSAGE_TEXT, Config.WELCOME_MESSAGE_TIME));
174.	Index: dist/game/data/scripts/handlers/itemhandlers/SpiritShot.java
175.	===================================================================
176.	--- dist/game/data/scripts/handlers/itemhandlers/SpiritShot.java        (revision 9937)
177.	+++ dist/game/data/scripts/handlers/itemhandlers/SpiritShot.java        (working copy)
178.	@@ -20,6 +20,7 @@
179.	 
180.	 import java.util.logging.Level;
181.	 
182.	+import com.custom.AutoShots.ItemGrade;
183.	 import com.l2jserver.gameserver.handler.IItemHandler;
184.	 import com.l2jserver.gameserver.model.ShotType;
185.	 import com.l2jserver.gameserver.model.actor.L2Playable;
186.	@@ -45,6 +46,20 @@
187.	               
188.	                final L2PcInstance activeChar = (L2PcInstance) playable;
189.	                final L2ItemInstance weaponInst = activeChar.getActiveWeaponInstance();
190.	+              
191.	+               if ((activeChar.getAutoShots() != null))
192.	+               {
193.	+                       if (weaponInst != null)
194.	+                       {
195.	+                               ItemGrade grade = ItemGrade.values()[weaponInst.getItem().getItemGrade()];
196.	+                               item = new L2ItemInstance(0, grade.getSoulshot());
197.	+                       }
198.	+                       else if (item == null)
199.	+                       {
200.	+                               return false;
201.	+                       }
202.	+               }
203.	+              
204.	                final L2Weapon weaponItem = activeChar.getActiveWeaponItem();
205.	                final SkillHolder[] skills = item.getItem().getSkills();
206.	               
207.	@@ -56,6 +71,14 @@
208.	                        return false;
209.	                }
210.	               
211.	+               if ((activeChar.getAutoShots() != null) && (weaponInst != null))
212.	+               {
213.	+                       activeChar.setChargedShot(ShotType.SPIRITSHOTS, true);
214.	+                       activeChar.sendPacket(SystemMessageId.ENABLED_SPIRITSHOT);
215.	+                       Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUse(activeChar, activeChar, skills[0].getSkillId(), skills[0].getSkillLvl(), 0, 0), 600);
216.	+                       return true;
217.	+               }
218.	+              
219.	                // Check if Spirit shot can be used
220.	                if ((weaponInst == null) || (weaponItem.getSpiritShotCount() == 0))
221.	                {
222.	Index: dist/game/data/scripts/handlers/itemhandlers/SoulShots.java
223.	===================================================================
224.	--- dist/game/data/scripts/handlers/itemhandlers/SoulShots.java (revision 9937)
225.	+++ dist/game/data/scripts/handlers/itemhandlers/SoulShots.java (working copy)
226.	@@ -20,6 +20,7 @@
227.	 
228.	 import java.util.logging.Level;
229.	 
230.	+import com.custom.AutoShots.ItemGrade;
231.	 import com.l2jserver.gameserver.handler.IItemHandler;
232.	 import com.l2jserver.gameserver.model.ShotType;
233.	 import com.l2jserver.gameserver.model.actor.L2Playable;
234.	@@ -46,6 +47,20 @@
235.	               
236.	                final L2PcInstance activeChar = playable.getActingPlayer();
237.	                final L2ItemInstance weaponInst = activeChar.getActiveWeaponInstance();
238.	+              
239.	+               if (activeChar.getAutoShots() != null)
240.	+               {
241.	+                       if (weaponInst != null)
242.	+                       {
243.	+                               ItemGrade grade = ItemGrade.values()[weaponInst.getItem().getItemGrade()];
244.	+                               item = new L2ItemInstance(0, grade.getSoulshot());
245.	+                       }
246.	+                       else if (item == null)
247.	+                       {
248.	+                               return false;
249.	+                       }
250.	+               }
251.	+              
252.	                final L2Weapon weaponItem = activeChar.getActiveWeaponItem();
253.	                final SkillHolder[] skills = item.getItem().getSkills();
254.	               
255.	@@ -57,6 +72,14 @@
256.	                        return false;
257.	                }
258.	               
259.	+               if ((activeChar.getAutoShots() != null) && (weaponInst != null))
260.	+               {
261.	+                       weaponInst.setChargedShot(ShotType.SOULSHOTS, true);
262.	+                       activeChar.sendPacket(SystemMessageId.ENABLED_SOULSHOT);
263.	+                       Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUse(activeChar, activeChar, skills[0].getSkillId(), skills[0].getSkillLvl(), 0, 0), 600);
264.	+                       return true;
265.	+               }
266.	+              
267.	                // Check if Soul shot can be used
268.	                if ((weaponInst == null) || (weaponItem.getSoulShotCount() == 0))
269.	                {

here's the code of wyatt>. It has be done for l2jserver.. Now a curious guys like me   :P want to addapted in other l2jproject for example aCis or l2jfrozen nvm. Which are the proper steps in order to do it right?

Edited by andon19
Link to comment
Share on other sites

  • 0

Proper steps? Adding necessary llines from line 1 to 269 :troll:

 

Where you stuck trying to adapt?

Edited by SweeTs
Link to comment
Share on other sites

  • 0

If you have no clue about java then adaption some times comes tricky.

 

An easy example is frozen to acis, cause acis uses Freya source while Frozen an ancient shit source. Also it misses javolution

 

You need a bit of skills to make some adaption which require more skills than + -

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Posts

    • Welcome to my store : https://topestore.mysellix.io/fr/ 2015-2022 Aged Discord Account 2015 Discord Account : 60.99 $ 2016 Discord Account : 10.50 $ 2017 Discord Account :4.99 $ 2018 Discord Account : 3.99 $ 2019 Discord Account : 2.99 $ 2020 Discord Account :1.99$ 2021 Discord Account :1.50$ 2022 Discord Account :0.99$ Warranty :Lifetime Payment Methods : Crypto/ PayPal Contact Me On Discord Or Telegram Discord : @ultrasstore11 Telegram : https://t.me/ultrastore11 Whatsapp ; +212614849119
    • The heavy lifting is done in the client, because while you can get away with small imperfections in the java, everything in the client must be impecable. So, if you haven't touched the client, I'd say pick the newest protocol version you can find the client editing tools and Interface.u (mandatory) / NWindow.dll (better to have it) / Engine.dll (optional) sources for. At the very least, you need the Interface.u to fix the Clan Window and enable skill enchanting on Classic/Essence versions, if you decide to use one of them instead of MAIN/LIVE.
    • Thanks for clarification. Do you think the newest clients offer solid advantages compared to the classic ones like Salvation? I'm also in the process of porting h5 to one of them just for the sake of it, so I was wondering if I should just attempt to go to the newest possible.
    • Upgrading to Salvation is exactly the same as upgrading to the newest client with the only difference being access to free-shared client editing tools and resources. I am speaking from experience. I have upgraded my HF source to one of the newest clients by myself (in terms of server side. got help with the client) and hit every single wall there was in the process. Now, I already have several multi-protocool server cores so I can easily compare different approaches to tackling the same issue, which also helped the learning process. Best way to learn would be to use this one (link below) to snoop around and figure out what has been changed in the server side (the packet structure will be different, for sure, but works for understanding/figuring the process out in general terms). https://github.com/iBezneR/L2J_SunriseProject_Purity The client side will always be the same, always the same files, only the DAT structure will be different. I personally wrote myself some parsers for the data of the DAT files from OLD -> NEW client.
  • Topics

×
×
  • Create New...