גיעו לתיקייה client ובתוכה צרו קובץ חדש בשם MesoStorage.java, לאחר מכן, כתבו בתוך הקובץ החדש את זה:
קוד PHP:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package client;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import tools.DatabaseConnection;
/**
*
* @author IceCript
*/
public class MesoStorage {
private int characterId;
private int bank1, bank2, bank3, bank4, bank5, bank6, bank7, bank8, bank9, bank10;
public MesoStorage(int charId) {
Connection con = DatabaseConnection.getConnection();
try {
PreparedStatement ps = con.prepareStatement("SELECT * FROM mesostorage WHERE characterid = ?");
ps.setInt(1, characterId);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
bank1 = rs.getInt("bank1");
bank2 = rs.getInt("bank2");
bank3 = rs.getInt("bank3");
bank4 = rs.getInt("bank4");
bank5 = rs.getInt("bank5");
bank6 = rs.getInt("bank6");
bank7 = rs.getInt("bank7");
bank8 = rs.getInt("bank8");
bank9 = rs.getInt("bank9");
bank10 = rs.getInt("bank10");
} else {
bank1 = 0;
bank2 = 0;
bank3 = 0;
bank4 = 0;
bank5 = 0;
bank6 = 0;
bank7 = 0;
bank8 = 0;
bank9 = 0;
bank10 = 0;
saveToDB(true);
}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
public void saveToDB(boolean update) {
Connection con = DatabaseConnection.getConnection();
try {
PreparedStatement ps;
if (update) {
ps = con.prepareStatement("UPDATE mesobank SET bank1 = ?, bank2 = ?, bank3 = ?, bank4 = ?, bank5 = ?, bank6 = ?, bank7 = ?, bank8 = ?, bank9 = ?, bank10 = ? WHERE characterid = ?");
} else {
ps = con.prepareStatement("INSERT INTO mesobank (bank1, bank2, bank3, bank4, bank5, bank6, bank7, bank8, bank9, bank10, characterid) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
}
ps.setInt(1, bank1);
ps.setInt(2, bank2);
ps.setInt(3, bank3);
ps.setInt(4, bank4);
ps.setInt(5, bank5);
ps.setInt(6, bank6);
ps.setInt(7, bank7);
ps.setInt(8, bank8);
ps.setInt(9, bank9);
ps.setInt(10, bank10);
ps.setInt(11, characterId);
} catch (SQLException e) {
}
}
public int getMesoBank(int bank) {
switch (bank) {
case 1: return bank1;
case 2: return bank2;
case 3: return bank3;
case 4: return bank4;
case 5: return bank5;
case 6: return bank6;
case 7: return bank7;
case 8: return bank8;
case 9: return bank9;
case 10: return bank10;
default: return 0;
}
}
public int getMaxValue() {
return Integer.MAX_VALUE;
}
public void gainMesoBank(int bank, int add) {
switch (bank) {
case 1:
bank1 += add;
break;
case 2:
bank2 += add;
break;
case 3:
bank3 += add;
break;
case 4:
bank4 += add;
break;
case 5:
bank5 += add;
break;
case 6:
bank6 += add;
break;
case 7:
bank7 += add;
break;
case 8:
bank8 += add;
break;
case 9:
bank9 += add;
break;
case 10:
bank10 += add;
break;
}
}
}
לאחר מכן, הגיעו לקובץ MapleCharacter.java ושם הוסיפו את השורה הבאה:
קוד PHP:
private MesoStorage mesoBank;
מתחת לשורה :
קוד PHP:
private short combocounter = 0;
הוסיפו את השורה :
קוד PHP:
ret.mesoBank = new MesoStorage(ret.id);
מתחת לשורה :
קוד PHP:
if (cashshop != null) {
cashshop.save();
}
הוסיפו את זה מתחת לאחת המתודות בקובץ:
קוד PHP:
public MesoStorage getMesoStorage() {
return mesoBank;
}
להלן ה Npc שמנהל את המערכת:
קוד PHP:
var status = 0;
var selc;
function start() {
status = -1;
action(1, 0, 0);
}
function action(blat, type, selection) {
if (blat == -1) {
cm.dispose();
}
else {
if (blat == 0) {
cm.dispose();
return;
}
if (blat == 1) {
status++;
}
else {
status--;
}
if (status == 0) {
var text = "Please select the bank number\r\n";
for (var i=0; i < 10; i++) {
text += "\r\nL#"+(i+1)+"#Bank No."+i;
}
cm.sendSimple(text);
} else if (status == 1) {
var meso = cm.getPlayer().getMesoStorage().getMesoBank(selection);
var max = cm.getPlayer().getMesoStorage().getMaxValue();
var msg = "You currently have " + meso + " Meso in Bank No." + selection;
if (meso < max) {
msg += "\r\n\r\n#b#L"+selection + "#Add more mesos\r\n#r#L"+(selection * 20) + "#Remove mesos";
} else {
msg += "\r\n\r\n#r#L"+(selection * 20) + "#Remove mesos";
}
cm.sendSimple(msg);
} else if (status == 2) {
selc = selection;
var cmeso = cm.getPlayer().getMesoStorage().getMesoBank(selection);
if (selection <= 10) {
cm.sendGetText("You currently have " + cmeso + " Mesos in Bank No."+selection+".\r\nPlease enter the meso you would like to add!");
} else {
cm.sendYesNo("You have "+cmeso+ " Mesos in Bank No."+(selection / 20) +".\r\nAre you sure you want to claim it?");
}
} else if (status == 3) {
var ccmeso = cm.getPlayer().getMesoStorage().getMesoBank(selection);
var ccmax = cm.getPlayer().getMesoStorage().getMaxValue();
if (selc <= 10) {
if (cm.getPlayer().getMeso() >= cm.getText()) {
if ((cm.getText() + ccmeso) <= ccmax) {
cm.gainMeso(-cm.getText());
cm.getPlayer().getMesoStorage().gainMesoBank(cm.getText());
cm.sendOk("You have successfuly added " + ccmeso + " Mesos!");
cm.dispose();
} else {
cm.sendOk("You can't add more than " + ccmax + " Mesos!\r\nPlease try another bank.");
cm.dispose();
}
} else {
cm.sendOk("You don't have enough mesos to enter into the bank.");
cm.dispose();
}
} else {
cm.sendYesNo("You want to take out all your Mesos from Bank No. " + (selection / 20) + " ?");
}
} else if (status == 4) {
var cccmeso = cm.getPlayer().getMesoStorage().getMesoBank(selection);
var cccmax = cm.getPlayer().getMesoStorage().getMaxValue();
if ((cm.getPlayer().getMeso() + cccmeso) <= cccmax) {
cm.gainMeso(cccmeso);
cm.getPlayer().getMesoStorage().gainMesoBank(-cccmeso);
} else {
cm.sendOk("You can't hold more than " + cccmax + " Mesos!");
cm.sendOk("You gained " + cccmeso + " Mesos! Your Bank No."+(selection / 20) + " is now empty.");
cm.dispose();
}
}
}
}
סיימנו
קרדיט מישהו מפורום אחר