הגנות מפני PE
קודם כל, חשוב לי להסביר יותר מה זה PE.
אוקיי, אז PE זה Packets Edit: שימוש בפאקטים (מן קודים כאלה) בתוכנה שמזריקים למשחק, ודרך הפאקטים יכולים לשכפל דברים, לעשות דיסי, לשים 2B כסף, לגנוב דברים מחנויות של שחקנים ועוד הרבה דברים שאנחנו לא רוצים שיעשו לנו בשרת..
אז קודם כל, ההגנות פה לא חוסמות את ה Dc, אבל הן כן חוסמות את השכפולים, פתיחת חנויות במקומות לא רצויים, 2B כסף, וגניבה מחנויות שחקנים.
בקיצור, ההגנות האלה מאוד חיוניות בשרת שלכם.
טוב, אז נתחיל! [IMG]http://images.*****.co.il/smilies2/smile.gif[/IMG]
קודם כל נכנס לתיקית הריפאק שלנו ונכנס לקובץ StorageHandler.java הנמצא כאן:
src\net\sf\odinms\net\channel\handler
אחרי שפתחנו אותו, נחפש:
קוד PHP:
[color=rgb(0, 0, 0)][color=rgb(0, 119, 0)]} else if ([/color][color=rgb(0, 0, 187)]mode [/color][color=rgb(0, 119, 0)]== [/color][color=rgb(0, 0, 187)]7[/color][color=rgb(0, 119, 0)]) { [/color]
[color=rgb(0, 119, 0)][/color][/color]
נסמן מכאן עד לקטע הזה:
קוד PHP:
[color=rgb(0, 0, 0)][color=rgb(0, 0, 187)]storage[/color][color=rgb(0, 119, 0)].[/color][color=rgb(0, 0, 187)]close[/color][color=rgb(0, 119, 0)](); [/color]
[color=rgb(0, 119, 0)][/color][/color]
נחליף את כל מה שסימנו בזה:
קוד PHP:
[color=rgb(0, 0, 0)][color=rgb(0, 0, 187)] [/color][color=rgb(0, 119, 0)]} else if ([/color][color=rgb(0, 0, 187)]mode [/color][color=rgb(0, 119, 0)]== [/color][color=rgb(0, 0, 187)]7[/color][color=rgb(0, 119, 0)]) { [/color][color=rgb(255, 128, 0)]// meso[/color]
[color=rgb(255, 128, 0)][/color][color=rgb(0, 0, 187)]int meso [/color][color=rgb(0, 119, 0)]= [/color][color=rgb(0, 0, 187)]slea[/color][color=rgb(0, 119, 0)].[/color][color=rgb(0, 0, 187)]readInt[/color][color=rgb(0, 119, 0)]();[/color]
[color=rgb(0, 119, 0)][/color][color=rgb(0, 0, 187)]int storageMesos [/color][color=rgb(0, 119, 0)]= [/color][color=rgb(0, 0, 187)]storage[/color][color=rgb(0, 119, 0)].[/color][color=rgb(0, 0, 187)]getMeso[/color][color=rgb(0, 119, 0)]();[/color]
[color=rgb(0, 119, 0)][/color][color=rgb(0, 0, 187)]int playerMesos [/color][color=rgb(0, 119, 0)]= [/color][color=rgb(0, 0, 187)]c[/color][color=rgb(0, 119, 0)].[/color][color=rgb(0, 0, 187)]getPlayer[/color][color=rgb(0, 119, 0)]().[/color][color=rgb(0, 0, 187)]getMeso[/color][color=rgb(0, 119, 0)]();[/color]
[color=rgb(0, 119, 0)]if (([/color][color=rgb(0, 0, 187)]meso [/color][color=rgb(0, 119, 0)]> [/color][color=rgb(0, 0, 187)]0 [/color][color=rgb(0, 119, 0)]&& [/color][color=rgb(0, 0, 187)]storageMesos [/color][color=rgb(0, 119, 0)]>= [/color][color=rgb(0, 0, 187)]meso[/color][color=rgb(0, 119, 0)]) || ([/color][color=rgb(0, 0, 187)]meso [/color][color=rgb(0, 119, 0)]< [/color][color=rgb(0, 0, 187)]0 [/color][color=rgb(0, 119, 0)]&& [/color][color=rgb(0, 0, 187)]playerMesos [/color][color=rgb(0, 119, 0)]>= -[/color][color=rgb(0, 0, 187)]meso[/color][color=rgb(0, 119, 0)])) {[/color]
[color=rgb(0, 119, 0)]if ([/color][color=rgb(0, 0, 187)]meso [/color][color=rgb(0, 119, 0)]< [/color][color=rgb(0, 0, 187)]0 [/color][color=rgb(0, 119, 0)]&& ([/color][color=rgb(0, 0, 187)]storageMesos [/color][color=rgb(0, 119, 0)]- [/color][color=rgb(0, 0, 187)]meso[/color][color=rgb(0, 119, 0)]) < [/color][color=rgb(0, 0, 187)]0[/color][color=rgb(0, 119, 0)]) {[/color]
[color=rgb(0, 119, 0)][/color][color=rgb(0, 0, 187)]meso [/color][color=rgb(0, 119, 0)]= -[/color][color=rgb(0, 0, 187)]2147483648 [/color][color=rgb(0, 119, 0)]+ [/color][color=rgb(0, 0, 187)]storageMesos[/color][color=rgb(0, 119, 0)];[/color]
[color=rgb(0, 119, 0)]if ([/color][color=rgb(0, 0, 187)]meso [/color][color=rgb(0, 119, 0)]< [/color][color=rgb(0, 0, 187)]playerMesos[/color][color=rgb(0, 119, 0)])[/color]
[color=rgb(0, 119, 0)]return;[/color]
[color=rgb(0, 119, 0)]} else if ([/color][color=rgb(0, 0, 187)]meso [/color][color=rgb(0, 119, 0)]> [/color][color=rgb(0, 0, 187)]0 [/color][color=rgb(0, 119, 0)]&& ([/color][color=rgb(0, 0, 187)]playerMesos [/color][color=rgb(0, 119, 0)]+ [/color][color=rgb(0, 0, 187)]meso[/color][color=rgb(0, 119, 0)]) < [/color][color=rgb(0, 0, 187)]0[/color][color=rgb(0, 119, 0)]) {[/color]
[color=rgb(0, 119, 0)][/color][color=rgb(0, 0, 187)]meso [/color][color=rgb(0, 119, 0)]= [/color][color=rgb(0, 0, 187)]2147483647 [/color][color=rgb(0, 119, 0)]- [/color][color=rgb(0, 0, 187)]playerMesos[/color][color=rgb(0, 119, 0)];[/color]
[color=rgb(0, 119, 0)]if ([/color][color=rgb(0, 0, 187)]meso [/color][color=rgb(0, 119, 0)]> [/color][color=rgb(0, 0, 187)]storageMesos[/color][color=rgb(0, 119, 0)])[/color]
[color=rgb(0, 119, 0)]return;[/color]
[color=rgb(0, 119, 0)]}[/color]
[color=rgb(0, 119, 0)][/color][color=rgb(0, 0, 187)]storage[/color][color=rgb(0, 119, 0)].[/color][color=rgb(0, 0, 187)]setMeso[/color][color=rgb(0, 119, 0)]([/color][color=rgb(0, 0, 187)]storageMesos [/color][color=rgb(0, 119, 0)]- [/color][color=rgb(0, 0, 187)]meso[/color][color=rgb(0, 119, 0)]);[/color]
[color=rgb(0, 119, 0)][/color][color=rgb(0, 0, 187)]c[/color][color=rgb(0, 119, 0)].[/color][color=rgb(0, 0, 187)]getPlayer[/color][color=rgb(0, 119, 0)]().[/color][color=rgb(0, 0, 187)]gainMeso[/color][color=rgb(0, 119, 0)]([/color][color=rgb(0, 0, 187)]meso[/color][color=rgb(0, 119, 0)], [/color][color=rgb(0, 0, 187)]false[/color][color=rgb(0, 119, 0)], [/color][color=rgb(0, 0, 187)]true[/color][color=rgb(0, 119, 0)], [/color][color=rgb(0, 0, 187)]false[/color][color=rgb(0, 119, 0)]);[/color]
[color=rgb(0, 119, 0)]} else[/color]
[color=rgb(0, 119, 0)]return;[/color]
[color=rgb(0, 119, 0)][/color][color=rgb(0, 0, 187)]storage[/color][color=rgb(0, 119, 0)].[/color][color=rgb(0, 0, 187)]sendMeso[/color][color=rgb(0, 119, 0)]([/color][color=rgb(0, 0, 187)]c[/color][color=rgb(0, 119, 0)]);[/color]
[color=rgb(0, 119, 0)]} else if ([/color][color=rgb(0, 0, 187)]mode [/color][color=rgb(0, 119, 0)]== [/color][color=rgb(0, 0, 187)]8[/color][color=rgb(0, 119, 0)]) { [/color][color=rgb(255, 128, 0)]// close[/color]
[color=rgb(255, 128, 0)][/color][color=rgb(0, 0, 187)]storage[/color][color=rgb(0, 119, 0)].[/color][color=rgb(0, 0, 187)]close[/color][color=rgb(0, 119, 0)](); [/color]
[color=rgb(0, 119, 0)][/color][/color]
עכשיו נחפש:
קוד PHP:
[color=rgb(0, 0, 0)][color=rgb(0, 0, 187)]short quantity [/color][color=rgb(0, 119, 0)]= [/color][color=rgb(0, 0, 187)]slea[/color][color=rgb(0, 119, 0)].[/color][color=rgb(0, 0, 187)]readShort[/color][color=rgb(0, 119, 0)](); [/color]
[color=rgb(0, 119, 0)][/color][/color]
מתחת לזה נוסיף:
קוד PHP:
[color=rgb(0, 0, 0)][color=rgb(0, 119, 0)]if ([/color][color=rgb(0, 0, 187)]quantity [/color][color=rgb(0, 119, 0)]< [/color][color=rgb(0, 0, 187)]1 [/color][color=rgb(0, 119, 0)]|| ![/color][color=rgb(0, 0, 187)]c[/color][color=rgb(0, 119, 0)].[/color][color=rgb(0, 0, 187)]getPlayer[/color][color=rgb(0, 119, 0)]().[/color][color=rgb(0, 0, 187)]haveItem[/color][color=rgb(0, 119, 0)]([/color][color=rgb(0, 0, 187)]itemId[/color][color=rgb(0, 119, 0)], [/color][color=rgb(0, 0, 187)]quantity[/color][color=rgb(0, 119, 0)], [/color][color=rgb(0, 0, 187)]false[/color][color=rgb(0, 119, 0)], [/color][color=rgb(0, 0, 187)]true[/color][color=rgb(0, 119, 0)]))return; [/color]
[color=rgb(0, 119, 0)][/color][/color]
עכשיו נשמור ונסגור את הקובץ.
כעת נפתח את הקובץ PlayerInteractionHandler.java שנמצא כאן:
src\net\sf\odinms\net\channel\handler
נחפש:
קוד PHP:
[color=rgb(0, 0, 0)][color=rgb(0, 0, 187)]int itemId [/color][color=rgb(0, 119, 0)]= [/color][color=rgb(0, 0, 187)]slea[/color][color=rgb(0, 119, 0)].[/color][color=rgb(0, 0, 187)]readInt[/color][color=rgb(0, 119, 0)](); [/color]
[color=rgb(0, 119, 0)][/color][/color]
מתחת לזה נוסיף:
קוד PHP:
[color=rgb(0, 0, 0)][color=rgb(0, 119, 0)]if ([/color][color=rgb(0, 0, 187)]c[/color][color=rgb(0, 119, 0)].[/color][color=rgb(0, 0, 187)]getPlayer[/color][color=rgb(0, 119, 0)]().[/color][color=rgb(0, 0, 187)]getInventory[/color][color=rgb(0, 119, 0)]([/color][color=rgb(0, 0, 187)]MapleInventoryType[/color][color=rgb(0, 119, 0)].[/color][color=rgb(0, 0, 187)]CASH[/color][color=rgb(0, 119, 0)]).[/color][color=rgb(0, 0, 187)]countById[/color][color=rgb(0, 119, 0)]([/color][color=rgb(0, 0, 187)]itemId[/color][color=rgb(0, 119, 0)]) <= [/color][color=rgb(0, 0, 187)]0[/color][color=rgb(0, 119, 0)]) {return;} [/color]
[color=rgb(0, 119, 0)][/color][/color]
עכשיו נחפש:
קוד PHP:
[color=rgb(0, 0, 0)][color=rgb(0, 119, 0)]if ([/color][color=rgb(0, 0, 187)]shop [/color][color=rgb(0, 119, 0)]!= [/color][color=rgb(0, 0, 187)]null[/color][color=rgb(0, 119, 0)]) { [/color]
[color=rgb(0, 119, 0)][/color][/color]
נחליף ב:
קוד PHP:
[color=rgb(0, 0, 0)][color=rgb(0, 119, 0)]if ([/color][color=rgb(0, 0, 187)]shop [/color][color=rgb(0, 119, 0)]!= [/color][color=rgb(0, 0, 187)]null [/color][color=rgb(0, 119, 0)]&& [/color][color=rgb(0, 0, 187)]shop[/color][color=rgb(0, 119, 0)].[/color][color=rgb(0, 0, 187)]isOwner[/color][color=rgb(0, 119, 0)]([/color][color=rgb(0, 0, 187)]c[/color][color=rgb(0, 119, 0)].[/color][color=rgb(0, 0, 187)]getPlayer[/color][color=rgb(0, 119, 0)]()) { [/color]
[color=rgb(0, 119, 0)][/color][/color]
במידה ולא מצאתם, חפשו:
קוד PHP:
[color=rgb(0, 0, 0)][color=rgb(0, 0, 187)]int slot [/color][color=rgb(0, 119, 0)]= [/color][color=rgb(0, 0, 187)]slea[/color][color=rgb(0, 119, 0)].[/color][color=rgb(0, 0, 187)]readShort[/color][color=rgb(0, 119, 0)](); [/color]
[color=rgb(0, 119, 0)][/color][/color]
הוסיפו מתחת:
קוד PHP:
[color=rgb(0, 0, 0)][color=rgb(0, 0, 187)]HiredMerchant shop [/color][color=rgb(0, 119, 0)]= [/color][color=rgb(0, 0, 187)]c[/color][color=rgb(0, 119, 0)].[/color][color=rgb(0, 0, 187)]getPlayer[/color][color=rgb(0, 119, 0)]().[/color][color=rgb(0, 0, 187)]getHiredMerchant[/color][color=rgb(0, 119, 0)]();[/color]
[color=rgb(0, 119, 0)]if ([/color][color=rgb(0, 0, 187)]shop [/color][color=rgb(0, 119, 0)]!= [/color][color=rgb(0, 0, 187)]null [/color][color=rgb(0, 119, 0)]&& [/color][color=rgb(0, 0, 187)]shop[/color][color=rgb(0, 119, 0)].[/color][color=rgb(0, 0, 187)]isOwner[/color][color=rgb(0, 119, 0)]([/color][color=rgb(0, 0, 187)]c[/color][color=rgb(0, 119, 0)].[/color][color=rgb(0, 0, 187)]getPlayer[/color][color=rgb(0, 119, 0)]()) { [/color]
[color=rgb(0, 119, 0)][/color][/color]
כעת נחפש:
קוד PHP:
[color=rgb(0, 0, 0)][color=rgb(0, 0, 187)]short perBundle [/color][color=rgb(0, 119, 0)]= [/color][color=rgb(0, 0, 187)]slea[/color][color=rgb(0, 119, 0)].[/color][color=rgb(0, 0, 187)]readShort[/color][color=rgb(0, 119, 0)](); [/color]
[color=rgb(0, 119, 0)][/color][/color]
נוסיף מתחת:
קוד PHP:
[color=rgb(0, 0, 0)][color=rgb(0, 119, 0)]if (![/color][color=rgb(0, 0, 187)]c[/color][color=rgb(0, 119, 0)].[/color][color=rgb(0, 0, 187)]getPlayer[/color][color=rgb(0, 119, 0)]().[/color][color=rgb(0, 0, 187)]haveItem[/color][color=rgb(0, 119, 0)]([/color][color=rgb(0, 0, 187)]c[/color][color=rgb(0, 119, 0)].[/color][color=rgb(0, 0, 187)]getPlayer[/color][color=rgb(0, 119, 0)]().[/color][color=rgb(0, 0, 187)]getInventory[/color][color=rgb(0, 119, 0)]([/color][color=rgb(0, 0, 187)]type[/color][color=rgb(0, 119, 0)]).[/color][color=rgb(0, 0, 187)]getItem[/color][color=rgb(0, 119, 0)]([/color][color=rgb(0, 0, 187)]slot[/color][color=rgb(0, 119, 0)]).[/color][color=rgb(0, 0, 187)]getItemId[/color][color=rgb(0, 119, 0)](), ([/color][color=rgb(0, 0, 187)]perBundle [/color][color=rgb(0, 119, 0)]* [/color][color=rgb(0, 0, 187)]bundles[/color][color=rgb(0, 119, 0)]), [/color][color=rgb(0, 0, 187)]false[/color][color=rgb(0, 119, 0)], [/color][color=rgb(0, 0, 187)]true[/color][color=rgb(0, 119, 0)])) {[/color]
[color=rgb(0, 119, 0)]return;[/color]
[color=rgb(0, 119, 0)]} [/color]
[color=rgb(0, 119, 0)][/color][/color]
נשמור ונסגור את הקובץ.
עכשיו נקמפל.-יאללה תגובות!
מדריך ראשון בפורום הזה !




ספוילר:



