Quantcast
Channel: Rune-Server
Viewing all 56156 articles
Browse latest View live

Client Log out HELP!!!

$
0
0
Hello im using Ragefire client and i can't log out from client i dont know why ? anyone have clue how to fix that
only thing i can do is pressing X on client but the account will still be online.. without logging out, if you have a solution will help me alot ! thank you.

looking for client

$
0
0
hi im looking for an updated client which will connect to a clean project insanity server, can anybody suggest a good client to download

Orphan Here

$
0
0
Hi, and please don't think my name is offensive. Orphan is a lost deity in folklore.

I don't know where to begin, but I'm trying to get a private server so I can play at home offline. I know I need some form of coding? Where do I begin?

On the code, I like the most recent version of osrs. Yeah, I have no idea where to start. I'm just looking for a code that is set up and user-friendly.

Hello! PseudoRaven here!

$
0
0
Brand new to RSPS and RuneServer but this all looks like a load of fun and I look forward to getting one up and running for me and my little brothers

RSPS, Website, Integration & Basic GFX Services

$
0
0
I'm currently in need of some more money, so I'm opening this services thread to look at the possibilities of doing some services.

I'm a web developer by profession. Worked with PHP professionally for about 2 and a half years. Moved on to C# for my new job, although not gotten to work a lot with that yet.
I've however worked with Java quite a bit on my spare time. Same for PHP. Most of my experience comes with my personal projects and tinkering.

Hosting/SysOps/DevOps
- Setting up server to run on a Linux VPS (cheaper hosting for you) - Can also teach you how to update the server if necessary.
- Setting up Git and explaining the basics of it (very beneficial for development, as there will be a code change history)
- Setting up just about any server and/or client ready for development in IntelliJ
- Setting up Gradle for your project

Can probably arrange more things, depending on what you need done.

Website & Integration
- Integrate the game server with the website in any way you'd want.
- Discord bot integration with website and/or game server.

I can get just about anything website-wise done for you. I work with Spring (Java) or PHP. Though I'm comfortable with HTML, CSS and JavaScript as well.
Although I'm not a web designer, I can do some design work as well. Though ideally you have a design made, and I implement it.

Spoiler for Previous Work:


This is a NPC spawn editor that lets me add, remove or move an NPC spawn. I could take this further, depending on the system on the server itself.


Eldrios Website - Mostly a Design Concept
Spoiler for Eldrios Website:







RSPS (Client & Server)
I'm not very experienced when it comes to RSPS development, but if you have something that you need done
I'll take a look at the tasks at hand and see if that's something I'm able to do.

GFX
I can do basic GFX related work. Like logos, headers, banners, etc. Though I'm not efficient at putting my creativity to
use so will only take on the requests I'm comfortable doing.

Can also provide vectorized graphics. Which is useful for logos and simple graphics. (Vector based graphics can be scaled in any size you need, it won't compromise quality)

Spoiler for Previous Work:


Vectorized header/logo


Very basic header


Header GFX I made for a Minecraft project of mine. Rather basic work too.


Basic header-like art again


Eldrios header/logo, which I also made vectorized


Another basic header


Custom RSPS client concept draft (I did not make the header/logo, that's Chance's work)





Terms
- I have no fixed prices. I will estimate the request and quote you a price based on that.
- I will in most cases require 50% of the payment up front and 50% on delivery.
- I do not work over remote deskop (AnyDesk, TeamViewer etc), though I could make exceptions, but it'd be reflected in the price
- Ideally you have your server setup on Git, which will be a win-win. You'll see what kind of code I push to your server, client or website and I will have an easier time developing it.
- There are no refunds for deliveries or services started.
- We'll deal through Rune-Server and I will write a message detailing the agreed service, which you'll confirm in a reply.
- Payment in BTC or OSGP. Though I could make exceptions to accept PayPal in certain cases.

I will consider the inquiries based on what I'm comfortable doing/promising. I don't want to waste neither your or my time.

Contact me on Discord: Nozemi#0001 (unique ID: 119511624250949633)
Check the unique ID of the Discord account you're dealing with, I'm not responsible for imposters.
Also I will NEVER take your payment before we agreed on a deal through direct messages on this forum.

SOTM #262 ~ Entries

$
0
0

Welcome back to another Signature of the Month(SOTM) competition! For those who are unsure, SOTM is a long standing graphics competition that earns the winner a neat rank & a bunch of rep.
Votes are done through a community poll, and all votes are public!

All submissions must be entered by:
Saturday 29th February

This SOTM comes with a slight twist! Instead of creating something from scratch, your task is to complete a signature from a pre-existing PSD.

This month, Omni has kindly given me a PSD to use.
You can download it below:
https://www.sendspace.com/file/5vgay0
Spoiler for Photo Of The PSD:



It's entirely up to you how you wish to finish this signature, so long as you use the above PSD to do it!

Voting will occur between:
Sunday 1st March - Tuesday 31st March




Spoiler for Submission format:


To submit your signature, use the SOTW format below.

Code:

[SOTW=" NAME HERE "] LINK HERE [/SOTW]




Spoiler for Rules:

1. Any collab's entered will count as all participant's entries for the SOTW that week.
2. All entered signaturess must be viewable on the specified due date.
3. Any signature previously entered cannot be re-entered
4. No 'reservations'.
5. Voting for yourself is prohibited
6. Signatures dimensions must be within reason to be a signature (700 hortizontally x 600px vertically)
7. Being banned on the signature due date is cause for disqualification
8. Rules are prior to change on the discretion of whoever may be running SOTW for any reason whatsoever (note: this is retroactive)



SOTM Rank
25k rep


317 MythicalPS [60+ Online] [50+ Bosses] [Custom Raids] [Free Donator] [#1 Custom RSPS]

$
0
0


Play Now!








Spoiler for Media:



















Disclaimer: I'm not entirely sure as to why some random has posted my server, but this is my official thread :)

Kingscape

$
0
0
Hi,
Can someone give me Kingscape 718 loading 910 and client

NPC Drop Interface Issue

$
0
0
EDIT: I have fixed the errors, but when ingame the actual examine does not work, however, if i spawn a man and right click and press 'talk to' it will open the drops for the npc,

508 Exile - Normal, Iron Man, Hardcore Iron Man, PK, Gambling, Brand new.

$
0
0




Exile official beta release!



We're really glad you've decided to have a look at our advertisement thread.

Server Features:


• A perfect balance between PvP and Economy
• A realistic feeling in every aspect of the server ranging from combat with accurate formulas, timing and switching to a wilderness target system similar to that of OSRS
• All of the Wilderness bosses
• Player owned shops
• Unique Trading Post system -- Buy and sell items from other players with ease, and merchant items to obtain wealth!
• An optional High-definition feature on the client, using real OpenGL
• Full integration between the website and server
• Professional and mature staff team
• Fully working Construction with all features!
• Auto Vote (With rewards)
• Auto Donations

What has to be added


• Full screen
• Discord sync
• Forum sync
• Forum



Media:






More media will be posted daily, also for people who are going to "Hate" This is just a decent server to have fun it will stay online for has long as i can afford it to be, i also need devs and graphic designers (paying) contact me via my discord Evoh#0561

Looking for someone who can add custom items.

$
0
0
Looking for someone who can make the model, and add it in-game for me i am wanting for example a couple items, "Magma twisted bow" "Scythe of vitur X" and "Scythe of vitur XX" if you are willing too do that, please contact me on discord, and we can discuss the price!


Discord: Codar#1113 "Cap C"

317 Next Page Button Isuee

[30mil] OSRS Zerker - 1350+ total - 193 QP - B Gloves/Fire Cape

$
0
0
Hello, everyone.

I have a zerker that I had started sometime ago. It has basically all defence xp quests done. This account has a lot of potential, but once you buy it feel free to do whatever with it, obviously. The account does come with the original email. I am only sitting at 50 attack as the max attack plan was only 60 and I had a few attack xp quests left to do before I started leveling it. I'm looking to get either 30mil OSRS or 40$ paypal. I honestly believe this is a steal as I've put a fair amount of hours into this account.

I am willing to go first. However, I will not give the email access until it is paid in full.

Edit: The account has the rock golem mining pet. Forgot to mention, but you can see it in the first tab which is the skill tab.







DATmaker, Model contains lines.

$
0
0
I keep getting the error ''Contains lines'' when I put my model into DATmaker.
I've taken all the quads out of it and now i'm wrestling with the lines, however I'm not sure what the lines are nor how to remove them from my model.

Any help will be appreciated.

CS2 Files

$
0
0
What tool can I use to better read and edit these CS2 files?



[LMS] Service for adding LMS: base Ethos.

$
0
0
I'm looking for someone that can add the LMS code into my ethos based server, we already got the maps for last man standing and such, just need too add the waiting lobby, and the hybrid gear, and key system, if you can do that contact my discord please! Codar#1113 "Caps C"

[osrs] hiring developer to do the following tasks

$
0
0
Heya,

Pretty straight forward.. Looking for a developer who can do some tasks for our project. The project is a OSRS deob server loading 184 data and working with runelite plugins. Everything client sided is there, nothing has to be done client sided. What we need server sided is:

- Quick Prayers (maybe)
- Fix Shop interface (currently the interface itself and the items are invisible)
- Fix xp drops
- Add live player location to world map (world map works but no player location yet)
- Slayer reward interface
- Fix items kept on death interface

After the work is done, I would like to get some explanation on how everything is working. The knowledge that you'll need is CS2 scripting, working with VARBITS and VARPS. All required cache data is loaded already, all configurations client sided are there and done, all cs2 scripts are there, etc.. Basically all that has to be done is configuring them server sided.

Price can be discussed. Contact me on discord: Mr Bobo#8525

317 InjusticePS | BETA | Chambers of Xeric | Alchemical hydra | Vorkath | JOIN NOW

$
0
0


InjusticePS Forums

InjusticePS Discord Server

InjusticePS Client






We come together as a community, and strive for perfection, we have fully working vorkath, chambers of xeric, fully working zulrah OSRS, fully working HYDRA, and plenty more!


Update logs-

Code:

- Added in warrior's guild teleport.

- Buffed raids common drop table.

- Updated rare drop table for raids, they drop all raids gear, and weapons, and 10$ scroll very rare.

- Added 100M GP Coin as currency for those of you asking about when currency gets huge.

- Buffed warriors guild drop table.

- Added demonic gorillas

- Added HYDRA

- Inferno has been added.

- Rock crabs HP has been increased.

- Prestige shop has been updated.

- Fixed all skill guild doors open now!

- Fisherman has been added too fishing guild!

- Added inferno cape too raids droptable.

- Added in fishing spots for fishing guild.

- Coloured slayer helmet's added too slayer store.

- Revenant caves have been added and the following NPC's with PVP armour drops at a 1/500 drop rate.
- Shops have been redone, making the game more enjoyable and playable.
- ::Ents have been added so you no longer have too wonder around the wilderness too find them.
- Enchanted gem has been added too slayer shop so you can check your task kills left.
- Looting bag bug has been fixed, now when you teleport home you can open your looting bag and click "Bank all" option inside.
- ::Train has been added so you do not have too wonder too find the rock crabs.
- Twisted bow has recieved a buff, and now can hit harder.
- Scythe of vitur animation has been fixed, and not hits x3, and works in multi.
- Fixed prayer altar you can now use bones on altar at home inside.
- Buffed pest control point rewards, so it is easier too get void, aswell with made void set fully working, with all pieces.
- Obisdian armour now has OSRS based stats.
- Youtuber's now have a drop rate added too there account of 15%.
- All youtuber's will now have there own ::name command directs them too there channel!
- Donator's now can use ::bank
- Youtuber's now have a shop every video they do they get 1 ticket too spend.
- Few bug tweaks unclosed.
- More slayer master's added into game.
- Add a legendary donator zone.
- Raids common reward table has been buffed.
- Corporeal beast has been nerfed! he now has 1,000 health, and max hit 25.
- Ancients have been fixed, and all staffs in-game will be able too autocast now.
- Fixed PVP armours, they're not wearable in-game!
- Fixed teleport interface teleporting you too wrong coordinates, now all minigame teleports work properly.
- Added working fairy ring teleport (requires weilding dramen's staff.)


Media:















317 [Ethos] Trading post dupe

$
0
0
So here is my trading post code, and i'm gonna explain the bug i am having.

Code:

So basically there are 2 bugs known right now.

You can have 2 accounts logged in at once, put 1 item up for 1gp and keep the interface open for the trading post, and go onto the other account type in the player name that is selling, and click buy the item for 1gp, and then go back onto the seller account, and cancel offer, and you have for example 1 dragon claws on the seller account, and 1 dragon claws on the buyer account.


The other bug is say we place more 1 item in, say we place 3 items in at a time, and the ID's are 772 (Dramen's staff) when you cancel the listing it gives you a different item and ups the code from 772 too 773 which is the perfect ring.



Here is the code too my listing.java >
Code:

package ethos.model.content.tradingpost;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

import ethos.Config;
import ethos.Server;
import ethos.model.items.Item;
import ethos.model.items.ItemAssistant;
import ethos.model.items.ItemDefinition;
import ethos.model.items.ItemList;
import ethos.model.players.Player;
import ethos.model.players.PlayerHandler;
import ethos.model.players.PlayerSave;
import ethos.util.Misc;

/**
*
* @author Nighel
* @credits Nicholas
*
*/

public class Listing {

        // make true to preload all sales and keep them all in the cache
        private static final boolean PRELOAD_ALL = false;

        // the next ID to be assigned to a sale, increment every time someone makes a new sale
        private static int NEXT_SALE_ID = 1;

        // Number of sales to keep in memory, irrelevant if PRELOAD_SALES is true
        private static int CACHE_SIZE = 100;

        // recently read sales kept in memory for faster access
        private static LinkedList<Sale> cache = new LinkedList<Sale>();
       
       
        /**
        * Loads the total sales on load of server
        */
       
        public static void loadNextSale() {
                getFile("./data/tradingpost/sales/");
                System.out.println("NEXT_SALE_ID: " + NEXT_SALE_ID);
        }
       
        /**
        * Counts how much sales there are
        * @Param dirPath
        */
       
        private static void getFile(String dirPath) {
            File f = new File(dirPath);
            File[] files = f.listFiles();

            if (files != null)
            for (int i = 0; i < files.length; i++) {
                    NEXT_SALE_ID = files.length+1;
                File file = files[i];

                if (file.isDirectory()) { 
                    getFile(file.getAbsolutePath());
                }
            }
        }
       
        /**
        * Loads the sales via player name
        * @Param playerName - player his username
        * @Return
        */
       
        public static List<Sale> getSales(String playerName) {
                String line = "";
                LinkedList<Sale> sales = new LinkedList<Sale>();
                // read text file at /players/playerName.txt
                try {
                        BufferedReader br = new BufferedReader(new FileReader("./data/tradingpost/players/"+playerName+".txt"));

                        while((line = br.readLine()) != null) {
                                int id = Integer.parseInt(line);
                                if(sales != null)
                                        sales.add(getSale(id));
                        }
                       
                        br.close();

                        return sales;
                } catch(Exception e) {
                        e.printStackTrace();
                        return new LinkedList<Sale>();
                }
        }
       
        /**
        * Loads the sales via item id
        * @Param itemId
        * @Return
        */
       
        public static List<Sale> getSales(int itemId) {
                String line = "";
                LinkedList<Sale> sales = new LinkedList<Sale>();
                // read text file at /players/playerName.txt
                try {
                        BufferedReader br = new BufferedReader(new FileReader("./data/tradingpost/items/"+itemId+".txt"));

                        while((line = br.readLine()) != null) {
                                int id = Integer.parseInt(line);
                                if(sales != null)
                                        sales.add(getSale(id));
                        }
                       
                        br.close();

                        return sales;
                } catch(Exception e) {
                        e.printStackTrace();
                        return new LinkedList<Sale>();
                }
        }

        /**
        * Gets the sale via the id
        * @Param saleId - id of the sale
        * @Return
        */
       
        public static Sale getSale(int saleId) {
                String[] split;
                // Check cache for this sale
                for(Sale sale : cache)
                        if(sale.getSaleId() == saleId)
                                return sale;

                // read text file at /sale/saleId.txt
                try {
                        BufferedReader br = new BufferedReader(new FileReader("./data/tradingpost/sales/"+saleId+".txt"));

                        // read information
                        split = br.readLine().split("\t");
                        Sale sale = new Sale(saleId, split[0], Integer.parseInt(split[1]), Integer.parseInt(split[2]), Integer.parseInt(split[3]), Integer.parseInt(split[4]), Integer.parseInt(split[5]), Boolean.parseBoolean(split[6]));
                               
                        // If the cache is full, remove the last Sale. Add this one to the beginning either way.
                        if(!PRELOAD_ALL && cache.size() == CACHE_SIZE)
                                cache.removeLast();
                        cache.addFirst(sale);

                        br.close();
                               
                        return sale;
                } catch(Exception e) {
                        e.printStackTrace();
                        return null;
                }
        }
       
        /**
        * Opens up the first interface for the trading post.
        * And then loading all the data thats needed.
        * @Param c
        */

        public static void openPost(Player c, boolean soldItem, boolean openFirst) {
                if (!c.getMode().isTradingPermitted()) {
                        c.sendMessage("You are not permitted to make use of this.");
                        return;
                }
                resetEverything(c);
                emptyInterface(c, openFirst);
                c.getPA().showInterface(48600);
                if(soldItem) {
                        String each = c.quantity > 1 ? "each" : "";
                        c.sendMessage("[@red@Trading Post@bla@] You successfully list "+c.quantity+"x "+ItemAssistant.getItemName(c.item)+" for "+Misc.format(c.price)+" GP " + each);
                        c.item = -1;
                        c.uneditItem = -1;
                        c.quantity = -1;
                        c.price = -1;
                }
                loadPlayersListings(c);
                c.insidePost = true;
                loadHistory(c);
        }
       
        /**
        * Makes all the listings show up for the player.
        * @Param c
        */
       
        public static void loadPlayersListings(Player c) {
                int start = 48788, id = 0, moneyCollectable = 0;

                LinkedList<Sale> sales = (LinkedList<Sale>) getSales(c.playerName);
               
                for(Sale sale : sales) {
                        c.getPA().sendTradingPost(48847, sale.getId(), id, sale.getQuantity());
                        id++;
                        c.getPA().sendFrame126(ItemAssistant.getItemName(sale.getId()), start);
                        start++;
                        c.getPA().sendFrame126("" + zerosintomills(sale.getPrice()), start);
                        start++;
                        c.getPA().sendFrame126(sale.getTotalSold() + " / " + sale.getQuantity() , start);
                        start += 2;
                        moneyCollectable += (sale.getPrice() * sale.getLastCollectedAmount());
                }
                c.getPA().sendFrame126(Misc.format(moneyCollectable) + " GP", 48610);
                for (int k = id; k < 15; k++) {
                        c.getPA().sendTradingPost(48847, -1, k, -1);
                }
                for(int i = start; i < 48850; i++) {
                        c.getPA().sendFrame126("", i);
                }
        }
       
        /**
        * Shows the last 10 latest sales you have done.
        * @Param c
        */
       
        public static void loadHistory(Player c) {
                for(int i = 0, start1 = 48636, start2 = 48637; i < c.saleItems.size(); i++) {
                        System.out.println("salesItems - " + c.saleItems.get(i).intValue());
                        System.out.println("saleAmount - " + c.saleAmount.get(i).intValue());
                        System.out.println("salePrice - " + c.salePrice.get(i).intValue());
                        if(c.saleItems.get(i).intValue() > 0 && c.saleAmount.get(i).intValue() > 0 && c.salePrice.get(i).intValue() > 0) {
                                String each = c.saleAmount.get(i).intValue() > 1 ? "each" : "coins";
                                c.getPA().sendFrame126(c.saleAmount.get(i).intValue() + " x " + ItemAssistant.getItemName(c.saleItems.get(i).intValue()), start1);
                                c.getPA().sendFrame126("sold for "+zerosintomills(c.salePrice.get(i).intValue())+" " + each, start2);
                                start1 += 2;
                                start2 += 2;
                        }
                }
        }
       
        /**
        * Opens up the selected item using offer 1/5/10/all/x
        * @Param c
        * @Param itemId
        * @Param amount
        * @Param p
        */
       
 @suppressWarnings("unused")
        public static void openSelectedItem(Player c, int itemId, int amount, int p) {
                System.out.println("");
                if (!c.getItems().playerHasItem(itemId, amount)) {
                        c.sendMessage("[@red@Trading Post@bla@] You don't have that many "+ItemAssistant.getItemName(itemId) + (amount > 1 ? "s" : "")+".");
                        return;
                }
                if (ItemDefinition.forId(itemId) != null) {
                        if (!ItemDefinition.forId(itemId).isTradable()) {
                                c.sendMessage("[@red@Trading Post@bla@] You can't sell that item");
                                return;
                        }
                }
                for(int item : Config.NOT_SHAREABLE) {
                        if(item == itemId) {
                                c.sendMessage("[@red@Trading Post@bla@] You can't sell that item");
                                return;
                        }
                }
                if(itemId == 995) {
                        c.sendMessage("[@red@Trading Post@bla@] You can't sell that item");
                        return;
                }
                //if(c.uneditItem <= 0) - Caused a dupe if you changed items
                        c.uneditItem = itemId;
                //Config.trade
                c.item = -1;
               
                c.inSelecting = false;
                c.isListing = true;
                boolean noted = Item.itemIsNote[itemId];
                //boolean noted = ItemDefinition.forId(itemId).isNoteable();
                if(noted)
                        itemId--;
               
                c.item = itemId;
                c.quantity = amount;
                ItemList itemList = Server.itemHandler.ItemList[c.item];
                c.price = p >= 1 ? p : (int) itemList.ShopValue; //c.getInventory().getItemshopValue(c.item);
                c.price = p >= 1 ? p : (int) ItemDefinition.forId(itemId).getValue();
                c.getPA().showInterface(48598);
                c.getPA().sendTradingPost(48962, itemId, 0, amount);
                c.getPA().sendFrame126(ItemAssistant.getItemName(itemId), 48963); //item name
                c.getPA().sendFrame126("Price (each): "+Misc.format(c.price)+"", 48964); //price each
                c.getPA().sendFrame126("Quantity: " + amount, 48965); //quantity
                //c.getPA().sendFrame(s, 48966); //guide
                //c.getPA().sendFrame(s, 48967); //listings
        }
       
        /**
        * Writes every thing the the proper files.
        * @Param c
        */
       
        public static void confirmListing(Player c) {
               
                if (c.uneditItem == -1) {
                        if (c.debugMessage)
                                c.sendMessage("Stopped");
                        return;
                }
               
                BufferedWriter sale_id;
                BufferedWriter item_id;
                BufferedWriter name;
                try {
                        sale_id = new BufferedWriter(new FileWriter("./data/tradingpost/sales/"+NEXT_SALE_ID+".txt", true));
                        item_id = new BufferedWriter(new FileWriter("./data/tradingpost/items/"+c.item+".txt", true));
                        name = new BufferedWriter(new FileWriter("./data/tradingpost/players/"+c.playerName+".txt", true));
                       
                        sale_id.write(c.playerName + "\t" + c.item + "\t" + c.quantity + "\t0\t" + c.price + "\t0\t" + "false");
                        sale_id.newLine();
                       
                        item_id.write("" + NEXT_SALE_ID);
                        item_id.newLine();
                       
                        name.write("" + NEXT_SALE_ID);
                        name.newLine();
                       
                        //try {
                                //CreateListing.getSingleton().createListing(NEXT_SALE_ID, c.item, c.getPA().getItemName(c.item), c.quantity, c.price, c.playerName, 0);
                        //} catch (Exception e) {
                                //e.printStackTrace();
                        //}
                        Sale sale = new Sale(NEXT_SALE_ID, c.playerName, c.item, c.quantity, 0, c.price, 0, false);
                       
                        ++NEXT_SALE_ID;
                       
                        if(!PRELOAD_ALL && cache.size() == CACHE_SIZE)
                                cache.removeLast();
                        cache.addFirst(sale);
                       
                        sale_id.close();
                        item_id.close();
                        name.close();
                } catch (IOException e) {
                        e.printStackTrace();
                }
                if (c.debugMessage)
                        c.sendMessage("uneditItem "+c.uneditItem+" - c.item "+c.item+" - quanity: "+c.quantity);
                c.getItems().deleteItem2(c.uneditItem, c.quantity);
                openPost(c, true, false);
                PlayerSave.save(c);
        }
       
        /**
        * Cancel a listing via its sale id
        * @Param c
        * @Param saleId
        */
       
        public static void cancelListing(Player c, int id, int itemId) {
                if (id < 0 || itemId < 0)
                        return;
                Sale sales = getSales(c.playerName).get(id);
                int leftOver = sales.getQuantity() - sales.getTotalSold(), saleItem = sales.getId();
                boolean stackable = Item.itemStackable[saleItem];
                boolean isNoted = Item.itemIsNote[saleItem];
                if(!stackable && !isNoted && leftOver > 1) {
                        saleItem++;
                }
                if(sales.getId() == itemId) { //gg
                        sales.setHasSold(true);
                        save(sales);
                        updateHistory(c, sales.getId(), sales.getTotalSold(), sales.getPrice());
                        if(leftOver > 0) {
                                if ((((c.getItems().freeSlots() >= 1) || c.getItems().playerHasItem(saleItem, 1)) && Item.itemIsNote[saleItem]) || ((c.getItems().freeSlots() > 0) && !Item.itemStackable[saleItem])) {
                                        c.getItems().addItem(saleItem, leftOver);
                                        c.sendMessage("[@red@Trading Post@bla@] You succesfully cancel the offer for "+leftOver+"x "+ItemAssistant.getItemName(sales.getId())+".");
                        } else {// If inventory is full!
                                        c.getItems().addItemToBank(saleItem, leftOver);
                                        c.sendMessage("[@red@Trading Post@bla@] You succesfully cancel the offer for "+leftOver+"x "+ItemAssistant.getItemName(sales.getId())+".");
                                        c.sendMessage("[@red@Trading Post@bla@] You had no room so your "+leftOver+"x "+ItemAssistant.getItemName(sales.getId())+" was sent to your bank.");
                                }
                        }
                        loadPlayersListings(c);
                        PlayerSave.save(c);
                }
        }
       
        /**
        * Collecting your money via the button
        * @Param c
        */
       
        public static void collectMoney(Player c) {
                LinkedList<Sale> sales = (LinkedList<Sale>) getSales(c.playerName);
                int moneyCollectable = 0;
                for(Sale sale : sales) {
                        moneyCollectable += (sale.getPrice() * sale.getLastCollectedAmount());
                        sale.setLastCollectedSold(0);
                        save(sale);
                }
                c.getItems().addItem(995, moneyCollectable);
                c.sendMessage("[@red@Trading Post@bla@] You successfully collect "+Misc.format(moneyCollectable)+" coins from your coffer.");
                moneyCollectable = 0;
                c.getPA().sendFrame126(Misc.format(moneyCollectable) + " GP", 48610);
                PlayerSave.save(c);
        }
       
        public static void save(Sale sale) {
                String line;
                String newLine = "";
                try {
                        BufferedWriter writer = new BufferedWriter(new FileWriter("./data/tradingpost/sales/"+sale.getSaleId()+".txt"));
                        writer.write(sale.getName() + "\t" + sale.getId() + "\t" + sale.getQuantity() + "\t" + sale.getTotalSold() + "\t" + sale.getPrice() + "\t" + sale.getLastCollectedAmount() + "\t" + sale.hasSold());
                        writer.close();
                } catch (IOException e) {
                        e.printStackTrace();
                }
               
                if(sale.hasSold()) {
                        if(sale.getLastCollectedAmount() > 0) {
                                Player c = (Player) PlayerHandler.players[PlayerHandler.getPlayerID(sale.getName())];
                                c.getItems().addItem(995, sale.getLastCollectedAmount() * sale.getPrice());
                                sale.setLastCollectedSold(0);
                        }
                        try {
                                /*try {
                                        if(sale.getTotalSold() != sale.getQuantity())
                                                CreateListing.getSingleton().updateListing(sale.getSaleId(), sale.getQuantity(), false);
                                        else
                                                CreateListing.getSingleton().updateListing(sale.getSaleId(), sale.getQuantity(), true);
                                } catch (SQLException e) {
                                        e.printStackTrace();
                                }*/
                                BufferedReader read = new BufferedReader(new FileReader("./data/tradingpost/players/"+sale.getName()+".txt"));
                                while((line = read.readLine()) != null) {
                                        if(line.equals(Integer.toString(sale.getSaleId()))) continue;
                                        newLine += line + System.getProperty("line.separator");
                                }
                                read.close();
                                BufferedWriter write = new BufferedWriter(new FileWriter("./data/tradingpost/players/"+sale.getName()+".txt"));
                                write.write(newLine);
                                write.close();
                                newLine = "";
                                read = new BufferedReader(new FileReader("./data/tradingpost/items/"+sale.getId()+".txt"));
                                while((line = read.readLine()) != null) {
                                        if(line.equals(Integer.toString(sale.getSaleId()))) continue;
                                        newLine += line + System.getProperty("line.separator");
                                }
                                read.close();
                                write = new BufferedWriter(new FileWriter("./data/tradingpost/items/"+sale.getId()+".txt"));
                                write.write(newLine);
                                write.close();
                                newLine = "";
                                write = new BufferedWriter(new FileWriter("./data/tradingpost/sales/"+sale.getSaleId()+".txt"));
                                newLine = sale.getName() + "\t" + sale.getId() + "\t" + sale.getQuantity() + "\t" + sale.getTotalSold() + "\t" + sale.getPrice() + "\t" + sale.getLastCollectedAmount() + "\t" + sale.hasSold();
                                write.write(newLine);
                                write.close();
                        } catch (IOException e) {
                                e.printStackTrace();
                        }
                }
        }
       
        /**
        * Displays the 6 sales based on pages and item name/player name and recent
        * @Param sales
        * @Param c
        */
       
        public static void displayResults(List<Sale> sales, Player c) {
                List<Integer> result = new ArrayList<Integer>();
                int total = 0, skipped = 0, start = 48022;
                for(Sale sale : sales) {
                        if(sale.hasSold() || sale.getTotalSold() == sale.getQuantity()) continue;
                        if(skipped < (c.pageId - 1) * 6) { skipped++; continue; }
                        result.add(sale.getSaleId());
                        c.getPA().sendTradingPost(48021, sale.getId(), total, sale.getQuantity() - sale.getTotalSold());
                        c.getPA().sendFrame126(ItemAssistant.getItemName(sale.getId()), start);
                        start++;
                        String each = sale.getQuantity() - sale.getTotalSold() > 1 ? " each" : "";
                        c.getPA().sendFrame126(Misc.format(sale.getPrice()) + each, start);
                        start++;
                        c.getPA().sendFrame126(sale.getName(), start);
                        start++;
                        c.getPA().sendFrame126(Integer.toString(sale.getTotalSold()), start);
                        start++;
                        total++;
                        if(total == 6) {
                                System.out.println("Reached 6 recent sales");
                                break;
                        }
                }
                for (int k = total; k < 6; k++) {
                        c.getPA().sendTradingPost(48021, -1, k, -1);
                }
                for(int i = start; i < 48046; i++) {
                        c.getPA().sendFrame126("", i);
                }
                c.saleResults = result;
        }
       
        /**
        * Loads the recent sales
        * @Param c
        */
       
        public static void loadRecent(Player c) {
                c.pageId = 0;
                c.searchId = 3;
                c.getPA().sendFrame126("Trading Post - Recent listings", 48019);
                c.getPA().showInterface(48000);
                List<Sale> sales = new LinkedList<Sale>();
                int total = 0;

                for(int i = NEXT_SALE_ID - 1; i > 0; i--) {
                        Sale sale = getSale(i);
                        if(sale.hasSold()) continue;
                        total++;
                        sales.add(sale);
                        if(total == 60)
                                break;
                }
                displayResults(sales, c);
        }
       
        public static void buyListing(Player c, int slot, int amount) {

                if (!c.getMode().isTradingPermitted()) {
                        c.sendMessage("You are not permitted to make use of this.");
                        return;
                }
               
                Sale sales = getSale(c.saleResults.get(slot));
               
                if(sales.getQuantity() == sales.getTotalSold())
                        return;
               
                if(sales.getName().equalsIgnoreCase(c.playerName)) {
                        c.sendMessage("[@red@Trading Post@bla@] You cannot buy your own listings.");
                        return;
                }
               
                if(amount > sales.getQuantity())
                        amount = sales.getQuantity();
               
                if(!c.getItems().playerHasItem(995, sales.getPrice() * amount)) {
                        c.sendMessage("[@red@Trading Post@bla@] You need atleast "+Misc.format(sales.getPrice() * amount)+" coins to buy the "+amount+"x "+ItemAssistant.getItemName(sales.getId())+".");
                        return;
                }
                int slotsNeeded = amount;
               
                int saleItem = sales.getId();
               
                if(amount > 1 && Item.itemIsNote[sales.getId()+1]) {
                        saleItem++;
                }
               
                if(c.getItems().freeSlots() < slotsNeeded && (!Item.itemIsNote[sales.getId()+1] && !Item.itemStackable[sales.getId()])) {
                        c.sendMessage("[@red@Trading Post@bla@] You need atleast "+ slotsNeeded +" free slots to buy this.");
                        return;
                }
               
                c.getItems().deleteItem(995, sales.getPrice() * amount);
                c.getItems().addItem(saleItem, amount);
                c.sendMessage("[@red@Trading Post@bla@] You succesfully purchase "+ amount +"x "+ItemAssistant.getItemName(sales.getId())+".");
                c.getItems().resetItems(3214);
                PlayerSave.save(c);
               
                c.sendMessage("saleId: " + sales.getSaleId());
               
                c.sendMessage("collect: " + sales.getLastCollectedAmount());
                c.sendMessage("total sold: " + sales.getTotalSold());
               
                sales.setLastCollectedSold(sales.getLastCollectedAmount() + amount);
                sales.setTotalSold(sales.getTotalSold() + amount);
               
                c.sendMessage("collect 2: " + sales.getLastCollectedAmount());
                c.sendMessage("total sold 2: " + sales.getTotalSold());
                save(sales);
                       
                if(PlayerHandler.getPlayerID(sales.getName()) != -1) {
                        Player seller = (Player) PlayerHandler.players[PlayerHandler.getPlayerID(sales.getName())];
                        if(seller != null) {
                                if(seller.playerName.equalsIgnoreCase(sales.getName())) {
                                        if(sales.getTotalSold() < sales.getQuantity())
                                                seller.sendMessage("[@red@Trading Post@bla@] You succesfully sold "+ amount +"x of your "+ItemAssistant.getItemName(sales.getId())+".");
                                        else
                                                seller.sendMessage("[@red@Trading Post@bla@] Finished selling your "+ItemAssistant.getItemName(sales.getId())+".");
                                       
                                        PlayerSave.save(seller);
                                        if(seller.isListing) {
                                                loadPlayersListings(seller);
                                        }
                                }
                        }
                }
        }
       
        /**
        * Loads the sales via playerName
        * @Param c
        * @Param playerName
        */
       
        public static void loadPlayerName(Player c, String playerName) {
                c.lookup = playerName;
                c.searchId = 2;
                c.getPA().showInterface(48000);
                c.getPA().sendFrame126("Trading Post - Searching for player: " + playerName, 48019);

                List<Sale> sales = new LinkedList<Sale>();

                for(String s : new File("./data/tradingpost/players/").list()) {
                        s = s.substring(0, s.indexOf(".")).toLowerCase();
                        if(s.contains(playerName.toLowerCase()))
                                sales.addAll(getSales(s));
                        }

                displayResults(sales, c);
        }
       
        /**
        * Loads the sales via itemName
        * @Param c
        * @Param itemName
        */
       
        public static void loadItemName(Player c, String itemName) {
                c.lookup = itemName;
                itemName = itemName.replace("_"," ");
                c.searchId = 1;
                c.getPA().showInterface(48000);
                c.getPA().sendFrame126("Trading Post - Searching for item: " + itemName, 48019);
                 
                List<Integer> items = new LinkedList<Integer>();
                List<Sale> sales = new LinkedList<Sale>();

                for(String s : new File("./data/tradingpost/items/").list())
                        items.add(Integer.parseInt(s.substring(0, s.indexOf("."))));

                for(int item : items) {
                        System.out.println("item: "+ItemAssistant.getItemName(item)+", itemName: " + itemName);
                        if(ItemAssistant.getItemName(item).toLowerCase().contains(itemName.toLowerCase())) {
                                sales.addAll(getSales(item));
                        }
                }
                 
                displayResults(sales, c);
        }
       
        /**
        * Resets all the necessary stuff;
        * @Param c
        */
       
        public static void resetEverything(Player c) {
                c.inSelecting = false;
                c.isListing = true;
                c.insidePost = false;
                c.setSidebarInterface(3, 3213);
        }
       
        /**
        * Handles the opening of the interface for offering an item
        * @Param c
        */
       
        public static void openNewListing(Player c) {
                c.getPA().showInterface(48599);
                c.setSidebarInterface(3, 48500); // backpack tab
                for (int k = 0; k < 28; k++) {
                        c.getPA().sendTradingPost(48501, c.playerItems[k]-1, k, c.playerItemsN[k]);
                }
        }
       
        /*
        *
        * Handles the buttons of the interfaces
        *
        */
       
        public static void postButtons(Player c, int button) {
                switch(button) {
                        case 189237:
                                if (!c.getMode().isTradingPermitted()) {
                                        c.sendMessage("You are not permitted to make use of this.");
                                        return;
                                }
                                int total = 0;
                                LinkedList<Sale> sales = (LinkedList<Sale>) getSales(c.playerName);
                               
                                for @suppressWarnings("unused") Sale sale : sales)
                                        total++;
                                if(c.amDonated <= 9 && total >= 6) {
                                        c.sendMessage("[@red@Trading Post@bla@] You cannot have more then 6 listings as a regular player.");
                                        return;
                                } else if(c.amDonated >= 10 && c.amDonated <= 149 && total >= 10) {
                                        c.sendMessage("[@red@Trading Post@bla@] You cannot have more then 10 listings as a low tier donator.");
                                        return;
                                } else if(c.amDonated >= 150 && total >= 15) {
                                        c.sendMessage("[@red@Trading Post@bla@] You cannot have more then 15 listings.");
                                        return;
                                }
                                if(!c.inSelecting) {
                                        openNewListing(c);
                                        c.inSelecting = true;
                                        c.getPA().sendFrame106(3);
                                } else {
                                        resetEverything(c);
                                        c.getPA().showInterface(48600);
                                        c.getPA().sendFrame106(3);
                                }
                        break;
                       
                        case 59229: //Close select item
                                c.getPA().closeAllWindows();
                                resetEverything(c);
                        break;
                       
                        case 191072:
                                if (!c.getMode().isTradingPermitted()) {
                                        c.sendMessage("You are not permitted to make use of this.");
                                        return;
                                }
                                synchronized (c) {
                                        c.outStream.createFrame(191);
                                }
                                c.xInterfaceId = 191072;
                        break;
                       
                        case 191075: // Removed quantity button
                                if (!c.getMode().isTradingPermitted()) {
                                        c.sendMessage("You are not permitted to make use of this.");
                                        return;
                                }
                                synchronized (c) {
                                        c.outStream.createFrame(192);
                                }
                                c.xInterfaceId = 191075;
                        break;
                       
                        case 191078:
                                if (!c.getMode().isTradingPermitted()) {
                                        c.sendMessage("You are not permitted to make use of this.");
                                        return;
                                }
                                confirmListing(c);
                        break;
                       
                        case 189223:
                                if (!c.getMode().isTradingPermitted()) {
                                        c.sendMessage("You are not permitted to make use of this.");
                                        return;
                                }
                                collectMoney(c);
                        break;
                       
                        case 189234:
                                if (!c.getMode().isTradingPermitted()) {
                                        c.sendMessage("You are not permitted to make use of this.");
                                        return;
                                }
                                loadRecent(c);
                        break;
                       
                        case 187133:
                                if (!c.getMode().isTradingPermitted()) {
                                        c.sendMessage("You are not permitted to make use of this.");
                                        return;
                                }
                                openPost(c, false, false);
                        break;
                       
                        case 187136:
                                if (!c.getMode().isTradingPermitted()) {
                                        c.sendMessage("You are not permitted to make use of this.");
                                        return;
                                }
                                if(c.pageId > 1)
                                        c.pageId--;
                                System.out.println("id: "+c.searchId+" lookup: " + c.lookup);
                                switch(c.searchId) {
                                        case 1:
                                                loadItemName(c, c.lookup);
                                        break;
                                        case 2:
                                                loadPlayerName(c, c.lookup);
                                        break;
                                        case 3:
                                                loadRecent(c);
                                        break;
                                }
                        break;
                       
                        case 187139:
                                if (!c.getMode().isTradingPermitted()) {
                                        c.sendMessage("You are not permitted to make use of this.");
                                        return;
                                }
                                c.pageId++;
                                System.out.println("id: "+c.searchId+" lookup: " + c.lookup);
                                switch(c.searchId) {
                                        case 1:
                                                loadItemName(c, c.lookup);
                                        break;
                                        case 2:
                                                loadPlayerName(c, c.lookup);
                                        break;
                                        case 3:
                                                loadRecent(c);
                                        break;
                                }
                        break;
                }
        }
       
        /*
        *
        * This method makes it so it cleans out the history and my offers.
        * Incase you had a diffrent account with more listings.
        *
        */
       
        public static void emptyInterface(Player c, boolean b) {
                for(int i = 0; i < 15; i++) {
                        c.getPA().sendTradingPost(48847, -1, i, -1);
                }
                if(b) {
                        for(int i = 48636; i < 48656; i++) {
                                c.getPA().sendFrame126("", i);
                        }
                }
                for(int i = 48787; i < 48847; i++) {
                        c.getPA().sendFrame126("", i);
                }
        }
       
        /*
        *
        * Turns the 100,000,000 into 100m etc.
        *
        */
       
        private static String zerosintomills(int j) {
                if(j >= 0 && j < 1000)
                        return String.valueOf(j);
                if(j >= 1000 && j < 10000000)
                        return j / 1000 + "K";
                if(j >= 10000000 && j  < 2147483647)
                        return j / 1000000 + "M";
                return String.valueOf(j);
        }
       
        private static void updateHistory(Player c, int itemId, int amount, int price) {
                System.out.println("itemId - " + itemId);
                System.out.println("amount - " + amount);
                System.out.println("price - " + price);
                c.saleItems.add(0, itemId);
                c.saleItems.remove(c.saleItems.size()-1);
                c.saleAmount.add(0, amount);
                c.saleAmount.remove(c.saleAmount.size()-1);
                c.salePrice.add(0, price);
                c.salePrice.remove(c.salePrice.size()-1);
                loadHistory(c);
        }
       
}

Inventory model PNG dump

$
0
0
Hello everyone, The title explains what i am looking for

i need a DUMP of inventory models in .PNG format

i have up to 31275.png right now

what we need, is the rest, up to 47586.png

this is for a tool i have been working on lately. If anyone could help with that, or point me in a direction, that is NOT right clicking an image in a web page, and saving it (that would take forever) it would be greatly appreciated!
thanks!
Viewing all 56156 articles
Browse latest View live