מדריך לקבלת EXP לפי הרמה
שלום.
אני אלמד אתכם איך לשנות את הEXP לפי הרמה.
בשביל הדוגמה אני אשתמש כאן בXuizSource.
דבר ראשון תכנסו לקובץ src\net\sf\odinms\client\MapleCharacter.java
אחר כך תחפשו שם
קוד:
private int level, reborns;
תשנו את זה ל
קוד:
private byte level;
private int reborns;
עכשיו תדבגו ותשנו כל בעיה שם מint level לbyte level, עד שתגיעו לשורה כזאת:
קוד:
victim.setLevel(getOptionalIntArg(splitted, 2, victim.getLevel() + 1));
תשנו אותה ל
קוד:
victim.setLevel((byte)getOptionalIntArg(splitted, 2, victim.getLevel() + 1));
כאן פשוט שינינו את כל הערכים של level של השחקן (שלא יכולים להגיע ליותר מ255 - מקסימום בייט) מint לbyte.
תיכנסו לקובץ src\net\sf\odinms\scripting\AbstractPlayerInteraction.java
ותחפשו בו
קוד:
* c.getChannelServer().getExpRate()
אחרי זה (באותה שורה) תוסיפו
מה שעשינו כאן זה הכפלנו את הexp שמקבלים בפונקצייה הספציפית הזאת ב
הגל (~) הופך את הביטים של הבינארי. כלומר נגיד אנחנו לבל 30. 30 בבינארי זה 00011110. הגל יהפוך את זה ל11100001 שזה 225. זאת הסיבה שהפכנו את המספר לbyte; אם היינו משאירים אותו int, המספר 30 היה 00000000000000000000000000011110 והפוך זה היה יוצא 11111111111111111111111111100001, שזה 31-.
עכשיו תכנסו לקובץ src\net\sf\odinms\server\life\MapleMonster.java.
תחפשו את השורה
קוד:
long totalBaseExpL = this.getExp() * ChannelServer.getInstance(killer.getClient().getChannel()).getExpRate() * killer.getClient().getPlayer().hasEXPCard();
עכשיו בסוף השורה (לפני ה-
תוסיפו
עכשיו לקובץ src\net\sf\odinms\server\quest\MapleQuestAction.java
תחפשו בו
קוד:
c.gainExp(MapleDataTool.getInt(data) * ChannelServer.getInstance(c.getClient().getChannel()).getExpRate(), true, true);
ותוסיפו לפני ה
וזהו.
קרדיט לאתר אחר