Jump to content

Recommended Posts

Posted (edited)

yeah i cracked this db :) but dont know if have all files for it :P (effekt dont set in weapongrp.dat must find it manual :) ) i can check it with original share when some1 have :P + maybe not must make manual server files for item :)

Edited by KabLe21
Posted (edited)
26 minutes ago, KabLe21 said:

yeah i cracked this db :) but dont know if have all files for it :P (effekt dont set in weapongrp.dat must find it manual :) ) i can check it with original share when some1 have :P + maybe not must make manual server files for item :)

if it's the server I found the effect stored in LineageAmonEffect.u can't be opened, extracted or view, give criticalerror, the texture stored in EuroWP.utx

 

weapongrp

 

Quote

0    9300    1    1    15    2    0    LineageWeapons.draconic_bow_m00_wp            EuroWP.draconic_bow_t00_wp            EuroWP.weapon_draconic_bow_i01                    -1    1650    47    1    0    14    5    1    LineageWeapons.draconic_bow_m00_wp        1    EuroWP.draconic_bow_t00_wp            4    ItemSound.bow_small_2    ItemSound.bow_small_3    ItemSound.bow_small_6    ItemSound.bow_big_2    ItemSound.itemdrop_bow    ItemSound.itemequip_bow        5    581    132    6    5    12    -3    0    0    0    293    11    1    1    1000    1    1    0    LineageAmonEffect.amon_bow        -1.00000000    0.00000000    0.00000000    1.00000000    1.00000000                        LineageWeapons.rangesample        0.00000000    0.00000000    0.00000000    0.00000000    0.00000000    0.00000000                            -1    -1    -1    -1    EuroWP.weapon_draconic_bow_i01            

 

Edited by CriticalError
Posted (edited)

and need this DragonClaw.usx files too to effekt :)

but i have other line ..

 

    9300    1    1    15    2    0    LineageWeapons.draconic_bow_m00_wp            Euro-pvp.draconic_bow_t00_wp            Euro-pvp.weapon_draconic_bow_i01                    -1    1650    47    1    0    14    5    1    LineageWeapons.draconic_bow_m00_wp        1    Euro-pvp.draconic_bow_t00_wp            4    ItemSound.bow_small_2    ItemSound.bow_small_3    ItemSound.bow_small_6    ItemSound.bow_big_2    ItemSound.itemdrop_bow    ItemSound.itemequip_bow        5    755    171    6    5    12    -3    0    0    0    293    11    1    1    1000    1    1    0    LineageEffects.weapon_vala_thrower        2.00000000    -1.50000000    1.00000000    0.44999999    0.80000001                        LineageWeapons.rangesample        0.00000000    0.00000000    0.00000000    0.00000000    0.00000000    0.00000000                            -1    -1    -1    -1    Euro-pvp.weapon_draconic_bow_i01            
 

Edited by KabLe21
Posted
On 3/3/2021 at 8:48 PM, KabLe21 said:

and need this DragonClaw.usx files too to effekt :)

but i have other line ..

 

    9300    1    1    15    2    0    LineageWeapons.draconic_bow_m00_wp            Euro-pvp.draconic_bow_t00_wp            Euro-pvp.weapon_draconic_bow_i01                    -1    1650    47    1    0    14    5    1    LineageWeapons.draconic_bow_m00_wp        1    Euro-pvp.draconic_bow_t00_wp            4    ItemSound.bow_small_2    ItemSound.bow_small_3    ItemSound.bow_small_6    ItemSound.bow_big_2    ItemSound.itemdrop_bow    ItemSound.itemequip_bow        5    755    171    6    5    12    -3    0    0    0    293    11    1    1    1000    1    1    0    LineageEffects.weapon_vala_thrower        2.00000000    -1.50000000    1.00000000    0.44999999    0.80000001                        LineageWeapons.rangesample        0.00000000    0.00000000    0.00000000    0.00000000    0.00000000    0.00000000                            -1    -1    -1    -1    Euro-pvp.weapon_draconic_bow_i01            
 

From your line effect are located in LineageEffects

Posted (edited)
9 hours ago, NevesOma said:

From your line effect are located in LineageEffects

i not copy this file only DragonClaw... without dragonclaw not see effekt only skin DB and with dragonclaw see skin + effekt on DB.. wtf ?!

Edited by KabLe21
Posted
2 hours ago, KabLe21 said:

i not copy this file only DragonClaw... without dragonclaw not see effekt only skin DB and with dragonclaw see skin + effekt on DB.. wtf ?!

Why do you complicate?
Weapongrp.dat opened, copied lines, looked at the patch to effects - copied these files, copied the libraries ( because the files are encrypted with smart crypt, which means you need to copy two libraries to work with them ) and everything will work.

 

Example:

0    8137    3    1    15    5    0    LineageWeapons.doom_crusher_m00_wp            LineageWeaponsTex.doom_crusher_t00_wp            icon.weapon_doom_crusher_i01                    -1    1900    51    1    0    14    2    1    LineageWeapons.doom_crusher_m00_wp        1    LineageWeaponsTex.doom_crusher_t00_wp            4    ItemSound.hammer_3    ItemSound.sword_mid_9    ItemSound.sword_big_7    ItemSound.spear_6    ItemSound.itemdrop_spear    ItemSound.itemequip_spear        20    282    114    2    4    4    4    0    0    0    325    0    1    1    1000    0    -1    0    LineageEffect.c_u005        -7.500000    0.000000    0.000000    0.900000    0.900000                        LineageWeapons.rangesample        1.300000    1.300000    1.300000    18.000000    0.000000    0.000000                            5    -1    -1    -1    icon.weapon_doom_crusher_i01            
 

Color = Patch to models ( in your case don't need to copy default models ).

Color = Patch to textures ( in your case EuroWP ).

Color = Patch to emitters  ( from .u and etc )( in your case LineageAmonEffect )

 

So, copy all these files, next textures / staticmeshes from .u can be located in different files ( not in one ) and need to search, it can be ~the same name as .u name.

If you search by key "Amon" you will find files: AmonMesh.usx and AmonTextures.utx, copy these files too.

 

But be careful, files are encrypted and you may have problems, better to use something else ( another weapon pack for example, now we have very much free styles for weapons and you can choose any ).

Guest
This topic is now closed to further replies.


  • Posts

    • Verify if following is supposed to be the way to handle movement npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(point.getX(), point.getY(), point.getZ())); For me, it's not enough. And if it's the case, whole AI system is probably buggy.
    • hello, i want to wtt my charracter in l2elmorelab 1x harbor for 1.5kkk adena in l2reborn 10x new. Or if you interested tell me your offer. :)) Clean Mail 30 lvl Cleric Naked   Updated.
    • package ai.npc.NFWalker; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Random; import l2r.gameserver.enums.CtrlIntention; import l2r.gameserver.model.Location; import l2r.gameserver.model.actor.L2Npc; import l2r.gameserver.model.quest.Quest; import l2r.gameserver.network.clientpackets.Say2; import l2r.gameserver.network.serverpackets.NpcSay; public class NFWalkerAI extends Quest { private static final int WALKER_NPC_ID = 20116; private final Map<String, Route> routes = new HashMap<>(); private final Map<Integer, Integer> npcIndexes = new HashMap<>(); private final Map<Integer, Boolean> npcReverse = new HashMap<>(); private final Map<Integer, String> npcCurrentRoute = new HashMap<>(); public NFWalkerAI() { super(-1, NFWalkerAI.class.getSimpleName(), "ai/npc/NFWalker"); loadRoutes(); addSpawnId(WALKER_NPC_ID); } private void loadRoutes() { // Route 1 Data Route route1 = new Route("route1"); route1.addPoint(new RoutePoint(0, 149363, 172341, -941, 0, false, "")); route1.addPoint(new RoutePoint(1, 148568, 172328, -980, 5, true, "Puff")); route1.addPoint(new RoutePoint(2, 148536, 172792, -980, 0, false, "")); // Route 2 Data Route route2 = new Route("route2"); route2.addPoint(new RoutePoint(0, 149363, 172341, -941, 0, false, "")); route2.addPoint(new RoutePoint(1, 150248, 172328, -980, 5, true, "Rise my children! Bring me the servants of the god! Let them be offered to our god Bifrons!")); route2.addPoint(new RoutePoint(2, 150248, 172776, -980, 0, false, "")); // Add routes to the map routes.put("route1", route1); routes.put("route2", route2); } @Override public String onSpawn(L2Npc npc) { if (npc.getId() == WALKER_NPC_ID) { selectInitialRouteForNpc(npc); } return super.onSpawn(npc); } @Override public String onAdvEvent(String event, L2Npc npc, l2r.gameserver.model.actor.instance.L2PcInstance player) { if (event.equalsIgnoreCase("move")) { moveNpc(npc); } else if (event.equalsIgnoreCase("check_reached")) { checkIfReached(npc); } return null; } private void moveNpc(L2Npc npc) { String routeName = npcCurrentRoute.get(npc.getObjectId()); Route route = routes.get(routeName); Integer pointIndex = npcIndexes.get(npc.getObjectId()); if (route != null && pointIndex != null) { RoutePoint point = route.getPoints().get(pointIndex); if (point.isRun()) { npc.setRunning(); } else { npc.setWalking(); } if (!point.getChat().isEmpty()) { npc.broadcastPacket(new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getId(), point.getChat())); } npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(point.getX(), point.getY(), point.getZ())); // Log movement intention System.out.println("NPC " + npc.getObjectId() + " moving to " + point.getX() + ", " + point.getY() + ", " + point.getZ()); // Schedule a check to see if the NPC has reached its destination startQuestTimer("check_reached", 1000, npc, null); } } private void checkIfReached(L2Npc npc) { String routeName = npcCurrentRoute.get(npc.getObjectId()); Route route = routes.get(routeName); Integer pointIndex = npcIndexes.get(npc.getObjectId()); if (route != null && pointIndex != null) { RoutePoint point = route.getPoints().get(pointIndex); Location currentLocation = npc.getLocation(); Location targetLocation = new Location(point.getX(), point.getY(), point.getZ()); // Check if the NPC has reached the target location if (currentLocation.equals(targetLocation)) { // Log that the NPC has reached the target System.out.println("NPC " + npc.getObjectId() + " reached target " + targetLocation); // Schedule the next movement startQuestTimer("move", point.getDelay() * 1000, npc, null); if (!npcReverse.get(npc.getObjectId())) { pointIndex++; if (pointIndex >= route.getPoints().size()) { npcReverse.put(npc.getObjectId(), true); pointIndex = route.getPoints().size() - 1; } } else { pointIndex--; if (pointIndex < 0) { npcReverse.put(npc.getObjectId(), false); pointIndex = 0; // Choose a new route after completing the current one in both directions switchRouteForNpc(npc); return; } } npcIndexes.put(npc.getObjectId(), pointIndex); } else { // Check again after 1 second startQuestTimer("check_reached", 1000, npc, null); } } } private void selectInitialRouteForNpc(L2Npc npc) { // Randomly select either route1 or route2 String selectedRouteName = "route" + (new Random().nextInt(2) + 1); npcCurrentRoute.put(npc.getObjectId(), selectedRouteName); npcIndexes.put(npc.getObjectId(), 0); npcReverse.put(npc.getObjectId(), false); startQuestTimer("move", 5000, npc, null); // Log initial route selection System.out.println("NPC " + npc.getObjectId() + " selected initial route " + selectedRouteName); } private void switchRouteForNpc(L2Npc npc) { String currentRoute = npcCurrentRoute.get(npc.getObjectId()); String newRoute = currentRoute.equals("route1") ? "route2" : "route1"; npcCurrentRoute.put(npc.getObjectId(), newRoute); npcIndexes.put(npc.getObjectId(), 0); npcReverse.put(npc.getObjectId(), false); startQuestTimer("move", 5000, npc, null); // Log route switching System.out.println("NPC " + npc.getObjectId() + " switched to route " + newRoute); } private static class Route { private List<RoutePoint> points = new ArrayList<>(); public Route(String name) { } public void addPoint(RoutePoint point) { points.add(point); } public List<RoutePoint> getPoints() { return points; } } private static class RoutePoint { private int id; private int x, y, z, delay; private boolean run; private String chat; public RoutePoint(int id, int x, int y, int z, int delay, boolean run, String chat) { this.id = id; this.x = x; this.y = y; this.z = z; this.delay = delay; this.run = run; this.chat = chat; } public int getId() { return id; } public int getX() { return x; } public int getY() { return y; } public int getZ() { return z; } public int getDelay() { return delay; } public boolean isRun() { return run; } public String getChat() { return chat; } } } I looking for help, with this, the npc not start to move. Im trying to create, an NPC wich have multiple walk routes basic logic is  random pick a route complite the route  like Route 1 start form zero (0 -> 1 -> 2(or more) -> 1 -> 0) When the npc return to 0, the script should pic the other route and start again.  And if there is a message like point 1 here     "route1.addPoint(new RoutePoint(1, 148568, 172328, -980, 5, true, "Puff"));" The npc should display the chat message. Currently my problem is the npc not moving, but if I manage it to start moving its randomly move between the route 1 and 2 set of coordinates. Currently for me its  a nightmare. I hope anyone can help somhow.
  • Topics

×
×
  • Create New...