Jump to content
  • 0

Pet Renting (Hi5)


Shadin

Question

Hi!, I activated this mod but I the only pet manager renting pets is the one in gludio... How can I make the other ones to rent pets as well?

 

And how to edit the quantity of adena required for renting?, I could only modify the one of the Wyvern...

 

Thanks!

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Well of course I've tried before posting here. For example, this is the htm of Lundy, the NPC in which works renting:
 
<html><body>Pet Manager Lundy:<br>

Pets are precious followers and friends for us adventurers. Any adventurer who has spent a night with a pet out in the wilderness knows what I mean.<br>

<a action="bypass -h npc_%objectId%_Link petmanager/instructions.htm">Listen to instructions for raising a pet.</a><br>

<a action="bypass -h npc_%objectId%_Buy 3082700">Buy pet equipment.</a><br>

<a action="bypass -h npc_%objectId%_exc_multisell 1000">Exchange pet equipment for higher grade equipment.</a><br>

<a action="bypass -h npc_%objectId%_multisell 999">Exchange Hatchling equipment for Strider equipment.</a><br>

<a action="bypass -h npc_%objectId%_Link petmanager/evolve.htm">Evolve pet.</a><br>

<a action="bypass -h npc_%objectId%_Link petmanager/exchange.htm">Exchange pet exchange ticket for a pet.</a><br>

<a action="bypass -h npc_%objectId%_TerritoryStatus">View information about the local lord and tax rate.</a><br>

<a action="bypass -h npc_%objectId%_Quest">Quest</a>

</body></html>

 

Then, this is from Waters, he's in Dion and doesn't have the option for renting:

 

<html><body>Pet Manager Waters:<br>
Here, try this delicious new Wolf food. With this, even a Turek War Hound will go down in one bite! And here are the Steel Teeth that a Dwarven knife sharpener spent weeks making. Ah, and see these new Hatchling items! Look around -- a good pet owner always comes to the Dion Pet Center!<br>
<a action="bypass -h npc_%objectId%_Link petmanager/instructions.htm">Listen to instructions for raising a pet.</a><br>
<a action="bypass -h npc_%objectId%_Buy 3082800">Buy pet equipment.</a><br>
<a action="bypass -h npc_%objectId%_exc_multisell 1000">Exchange pet equipment for higher grade equipment.</a><br>
<a action="bypass -h npc_%objectId%_multisell 999">Exchange Hatchling equipment for Strider equipment.</a><br>
<a action="bypass -h npc_%objectId%_Link petmanager/evolve.htm">Evolve pet.</a><br>
<a action="bypass -h npc_%objectId%_Link petmanager/exchange.htm">Exchange pet exchange ticket for a pet.</a><br>
<a action="bypass -h npc_%objectId%_TerritoryStatus">View information about the local lord and tax rate.</a><br>
<a action="bypass -h npc_%objectId%_Quest">Quest.</a>
</body></html>
 
And this is the document with the Renting info:
 
/*
 * Copyright © 2004-2015 L2J DataPack
 * 
 * This file is part of L2J DataPack.
 * 
 * L2J DataPack is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * L2J DataPack is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */
package handlers.bypasshandlers;
 
import java.util.StringTokenizer;
 
import com.l2jserver.Config;
import com.l2jserver.gameserver.handler.IBypassHandler;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2MerchantInstance;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jserver.gameserver.network.serverpackets.SetupGauge;
 
public class RentPet implements IBypassHandler
{
private static final String[] COMMANDS =
{
"RentPet"
};
 
@Override
public boolean useBypass(String command, L2PcInstance activeChar, L2Character target)
{
if (!(target instanceof L2MerchantInstance))
{
return false;
}
 
if (!Config.ALLOW_RENTPET)
{
return false;
}
 
if (!Config.LIST_PET_RENT_NPC.contains(target.getId()))
{
return false;
}
 
try
{
StringTokenizer st = new StringTokenizer(command, " ");
st.nextToken();
 
if (st.countTokens() < 1)
{
final NpcHtmlMessage msg = new NpcHtmlMessage(((L2Npc) target).getObjectId());
msg.setHtml("<html><body>Pet Manager:<br>" + "You can rent a wyvern or strider for adena.<br>My prices:<br1>" + "<table border=0><tr><td>Ride</td></tr>" + "<tr><td>Wyvern</td><td>Strider</td></tr>" + "<tr><td><a action=\"bypass -h npc_%objectId%_RentPet 1\">30 sec/1800 adena</a></td><td><a action=\"bypass -h npc_%objectId%_RentPet 11\">30 sec/900 adena</a></td></tr>" + "<tr><td><a action=\"bypass -h npc_%objectId%_RentPet 2\">1 min/7200 adena</a></td><td><a action=\"bypass -h npc_%objectId%_RentPet 12\">1 min/3600 adena</a></td></tr>" + "<tr><td><a action=\"bypass -h npc_%objectId%_RentPet 3\">10 min/720000 adena</a></td><td><a action=\"bypass -h npc_%objectId%_RentPet 13\">10 min/36000 adena</a></td></tr>" + "<tr><td><a action=\"bypass -h npc_%objectId%_RentPet 4\">30 min/648000 adena</a></td><td><a action=\"bypass -h npc_%objectId%_RentPet 14\">30 min/3240000 adena</a></td></tr>" + "</table>" + "</body></html>");
msg.replace("%objectId%", String.valueOf(((L2Npc) target).getObjectId()));
activeChar.sendPacket(msg);
}
else
{
tryRentPet(activeChar, Integer.parseInt(st.nextToken()));
}
 
return true;
}
catch (Exception e)
{
_log.info("Exception in " + getClass().getSimpleName());
}
return false;
}
 
public static final void tryRentPet(L2PcInstance player, int val)
{
if ((player == null) || player.hasSummon() || player.isMounted() || player.isRentedPet() || player.isTransformed() || player.isCursedWeaponEquipped())
{
return;
}
if (!player.disarmWeapons())
{
return;
}
 
int petId;
double price = 1;
int cost[] =
{
1800,
7200,
72000,
648000
};
int ridetime[] =
{
30,
60,
600,
1800
};
 
if (val > 10)
{
petId = 12526;
val -= 10;
price /= 2;
}
else
{
petId = 12621;
}
 
if ((val < 1) || (val > 4))
{
return;
}
 
price *= cost[val - 1];
int time = ridetime[val - 1];
 
if (!player.reduceAdena("Rent", (long) price, player.getLastFolkNPC(), true))
{
return;
}
 
player.mount(petId, 0, false);
SetupGauge sg = new SetupGauge(3, time * 1000);
player.sendPacket(sg);
player.startRentPet(time);
}
 
@Override
public String[] getBypassList()
{
return COMMANDS;
}
}
 
 
I could change the price for Wyvern renting there, but don't see the one for strider.
 
What should I do?
Link to comment
Share on other sites

  • 0

Looks like you have a config for npc's which are able to rent pets, 

if (!Config.LIST_PET_RENT_NPC.contains(target.getId()))

You can check in your Config.java where is located this config in order to add rest of npc's

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.



×
×
  • Create New...