- Joined
- Feb 21, 2008
- Messages
- 39
- Reaction score
- 0
Meh, here it is-
,When you double click you robo egg/dragon egg it'll replace your pet with baby robo/baby dragon.
Sexy, I know.
Also, in CSItemHandler (something like that) purchasing robo/ dragon may be blocked, just find the id in that file, and just delete it!
In SpawnPetHandler.java
Chek if you have those imports
Add
Before
Replace
With
Now go to MaplePet.java
Add
After
Your now done!
If you get an error about not having HaveItem syntax, here's the function:
Credits to Bav for writing the script. Credits to me for fixing and cleaning.
ENJOYZ!
,When you double click you robo egg/dragon egg it'll replace your pet with baby robo/baby dragon.
Sexy, I know.
Also, in CSItemHandler (something like that) purchasing robo/ dragon may be blocked, just find the id in that file, and just delete it!
In SpawnPetHandler.java
Chek if you have those imports
Code:
import java.awt.Point;
import java.io.File;
import net.sf.odinms.client.MapleClient;
import net.sf.odinms.client.MapleInventoryType;
import net.sf.odinms.client.MaplePet;
import net.sf.odinms.client.PetDataFactory;
import net.sf.odinms.client.SkillFactory;
import net.sf.odinms.client.messages.ServernoticeMapleClientMessageCallback;
import net.sf.odinms.net.AbstractMaplePacketHandler;
import net.sf.odinms.provider.MapleData;
import net.sf.odinms.provider.MapleDataProvider;
import net.sf.odinms.provider.MapleDataProviderFactory;
import net.sf.odinms.provider.MapleDataTool;
import net.sf.odinms.server.MapleInventoryManipulator;
import net.sf.odinms.tools.MaplePacketCreator;
import net.sf.odinms.tools.data.input.SeekableLittleEndianAccessor;
Code:
private static MapleDataProvider dataRoot = MapleDataProviderFactory.getDataProvider(new File(System.getProperty("net.sf.odinms.wzpath") + "/Item.wz"));
Code:
@Override
public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
Code:
// Handle dragons
if (c.getPlayer().getInventory(MapleInventoryType.CASH).getItem(slot).getItemId() == 5000028) {
new ServernoticeMapleClientMessageCallback(5, c).dropMessage("Dragon eggs cannot currently be hatched.");
c.getSession().write(MaplePacketCreator.enableActions());
return;
}
Code:
int petid = c.getPlayer().getInventory(MapleInventoryType.CASH).getItem(slot).getItemId();
// Handle dragons
if (petid == 5000028) {
if(c.getPlayer().haveItem(5000029)) {
new ServernoticeMapleClientMessageCallback(5, c).dropMessage("You cant hatch your Dragon egg if you already have Baby Dragon.");
c.getSession().write(MaplePacketCreator.enableActions());
return;
}else{
MapleData petData = dataRoot.getData("Pet/" + petid + ".img");
int evolveid = MapleDataTool.getInt("info/evol1", petData);
int petId = MaplePet.createPet(evolveid);
if (petId == -1) {
return;
}
MaplePet.deletePet(petid, c);
MapleInventoryManipulator.addById(c,evolveid, (short) 1, "Apperantly, Your Dragon egg hatched!.", null, petId);
MapleInventoryManipulator.removeById(c, MapleInventoryType.CASH, petid, (short) 1, false, false);
c.getSession().write(MaplePacketCreator.enableActions());
return;
}
}
// Handle robo
if (petid == 5000047) {
if(c.getPlayer().haveItem(5000048)) {
new ServernoticeMapleClientMessageCallback(5, c).dropMessage("You cant hatch your Robo egg if you already have Baby Robo."); //PWNED
c.getSession().write(MaplePacketCreator.enableActions());
return;
}else{
MapleData petData = dataRoot.getData("Pet/" + petid + ".img"); //wz path
int evolveid = MapleDataTool.getInt("info/evol1", petData);
int petId = MaplePet.createPet(evolveid);
if (petId == -1) {
return;
}
MaplePet.deletePet(petid, c); // lololololol
MapleInventoryManipulator.addById(c,evolveid, (short) 1, "Apperantly, Your Robo egg hatched!.", null, petId); // YIPPIE!
MapleInventoryManipulator.removeById(c, MapleInventoryType.CASH, petid, (short) 1, false, false); //short 1
c.getSession().write(MaplePacketCreator.enableActions());
return;
}
}
Add
Code:
public static void deletePet(int itemid,MapleClient c) {
try {
IItem player = c.getPlayer().getInventory(MapleInventoryType.CASH).findById(itemid);
Connection con = DatabaseConnection.getConnection();
PreparedStatement ps = con.prepareStatement("DELETE FROM pets WHERE `petid` = ?");
ps.setInt(1,player.getPetId());
ps.executeUpdate();
ps.close();
} catch (SQLException ex) {
Logger.getLogger(MaplePet.class.getName()).log(Level.SEVERE, null, ex);
}
}
Code:
public static int createPet(int itemid) {
try {
MapleItemInformationProvider mii = MapleItemInformationProvider.getInstance();
Connection con = DatabaseConnection.getConnection();
PreparedStatement ps = con.prepareStatement("INSERT INTO pets (name, level, closeness, fullness) VALUES (?, ?, ?, ?)");
ps.setString(1, mii.getName(itemid));
ps.setInt(2, 1);
ps.setInt(3, 0);
ps.setInt(4, 100);
ps.executeUpdate();
ResultSet rs = ps.getGeneratedKeys();
rs.next();
int ret = rs.getInt(1);
rs.close();
ps.close();
return ret;
} catch (SQLException ex) {
Logger.getLogger(MaplePet.class.getName()).log(Level.SEVERE, null, ex);
return -1;
}
}
// ADD IT RIGHT HERE
If you get an error about not having HaveItem syntax, here's the function:
Code:
public boolean haveItem(int itemid) {
return haveItem(itemid, 1);
}
ENJOYZ!
Last edited: