Jump to content

Search the Community

Showing results for tags 'basic'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • RuneLocus
    • News & Announcements
    • Information Booth
    • Website Support
    • Introductions
    • Chat
    • Forum Games
  • RuneScape Development
    • RSPS General
    • RuneScape Private Server (RS2)
    • RuneScape Private Server (503+)
    • RuneScape Private Server (EoC 742+)
  • Other
    • Digital Art
    • Gaming
    • Webdevelopment
    • Computers
  • Marketplace
    • RuneScape Market
    • RSPS Market
    • Others Market
    • Freelance Middleman Services
  • Super Secret Club's Topics

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start



Found 69 results

  1. Hello everyone, this is a basic tutorial for new coders learning how to get started when coding 718 Server. This is simply a Tutorial on how to get yourself going when Coding your own 718. I will Make sections in this tutorial you can jump to instead of reading threw all of it. I will be covering the Following Areas -Downloading Jdk and jre7 -Finding a Source to begin with -Making yourself Admin/Owner -Setting up a new Home/Xp Rates/Name and so on -Changing locations of Npc's/Adding items to Shops/Editing prices. -Making Custom Titles -Creating New Ranks - How To Add Bonus XP To Donator Ranks Downloading Jdk and Jre7: if (username.equalsIgnoreCase[/CODE] and change the name to yours once again. Secondly- You wil want to go to Commands.java once you are there scroll down threw the commands you will see some commands as this - if (cmd[0].equalsIgnoreCase("killall") && player.getUsername().equalsIgnoreCase("daniel")) {[/CODE] and some like this - [CODE]if (cmd[0].equalsIgnoreCase("donorshop")) {[/CODE] now basically what these mean is that because the 1st code has a name attached to the command only that person can perform that command which is very handy for ;;god and such. the 2nd command i have shown has no name attached so any admin can perform that command. go threw each command and change "Daniel" to your name or if you want all admins to use it just remove the : [CODE] && player.getUsername().equalsIgnoreCase("daniel"[/CODE] Allways hit save and compile. then run and you wil have admin rights in game. i no for a few such as " Lost Realm and a few others" you wil need to type ;;admin. and wil set you admin in game. [/Spoiler] Setting up a new Home/Xp Rates/Name and so on [B]Changing Server name & Home-[/B] This is pretty simple basic stuff, Firstly go to [B]Settings.java[/B] and you will see this [CODE]public static final String SERVER_NAME = "TEXT";[/CODE] after that change "TEXT" to the name you have selected for your rsps. simple and done. Scroll down to - [CODE]public static final WorldTile START_PLAYER_LOCATION = new WorldTile[/CODE] when you see that you wil see coords for the current home simply change the coords to which location you want to be home, to do so find the location you want and type ;;coords or ;;mypos ingame then press ` and it wil open the Developers Console and wil tell you, your current coords. then simply change the rest of the locations to the new one you have chosen. You wil also see Skilling xp rate, that is the xp rate your players wil recieve, you can lower or raise it to your liking. if you are making a Eco based Server i do Recommend the Skilling xp to be rather low. [/Spoiler] Changing locations of Npc's/Adding items to Shops/Editing prices. [B]Changing Npc's Location-[/B] now this can be a Drag Different for each server.. for most it wil be [B]npcspawning.java[/B] same as changing home you will want to find the coords for the new locations you want your npc's to be at, once you got coords id suggest writing them down so when you go to change there all there ready to change. simply just change the location to the coords as such - [CODE]World.spawnNPC(494, new WorldTile(2724, 3486, 0), -1, true, true);[/CODE] For me its completely different i go to [B]unpackedspawnlist.txt[/B] scroll down should find something like this - [CODE]//home shops[/CODE] under that will be Npc's Id's and coords simply edit the coords to the ones you written down so that npc wil be moved to the location you choose. once done hit save, ( Now always remeber once you pack npc's you need to search for "PackedSpawns" folder delete the folder, hit compile save your work and run, now you have moved home and your npc's. [B]Editing items within shops-[/B] This is allways a fun one to do, basically you are editing what items you want in a shop, go to [B]unpackedshops.txt[/B] you will see several rows containing - [CODE]1 995 true - Herb Store - 199 50000 201 500000 203 500000 [/CODE] pretty basic stuff 995 = You can only buy with gp. Herb Store = Store name 199-50000 = the id of the item and how many and just Repeat. [B]Editing Shop Prices[/B] - Allways a hassle to do.. but needs to be covered, Shops.java is were all of the Prices will be for your items in any shop, Basically you need to open up [B]Shop.java[/B] once you are there, you will need to scroll down or search the following photo : [IMG=http://i.imgur.com/J3GxOCQ.png] So basically "GetbuyPrice" anything under that is the Buy price. so if you added the following Code : [CODE]case 1739://cowhide item.getDefinitions().setValue(10000); break;[/CODE] Case 1739 = the item id and //Cowhide is obviously the name of the item. Now as for .setValue(10000); the 10000 is how much you want that item to buy for, and as always break; to end it. As for Selling prices Same deal except you are going to want to add it all under [IMG=http://i.imgur.com/Yw5ZMmd.png] Pretty simple but can be confusing to some people. Making Custom Titles I have allready Explained in Detail on how to Make Custom titles, please follow the link Provided for more information. [URL="http://www.runelocus.com/forums/showthread.php?91729-Custom-Titles-amp-Colours"]http://www.runelocus.com/forums/showthread.php?91729-Custom-Titles-amp-Colours[/URL] Creating new Ranks I have allready made a Detail Tutorial on how to create a new Rank please use the Following link for more Information [URL="http://www.runelocus.com/forums/showthread.php?94171-New-Ranks-In-Depth"]http://www.runelocus.com/forums/showthread.php?94171-New-Ranks-In-Depth[/URL] How To Add Bonus XP To Donator Ranks Hello, This is a quick tutorial on how to add bonus XP to Different donator ranks, such as ( Donators, Extreme Donators, and Vip Donators. It's fairly simple process, I will explain how to do it, and what it all means. Firstly Go to Skills.java, you can find this by going to, src-com-rs-game-player then scroll down to the bottom and it will be there. Now search for this line of code [IMG=http://i.imgur.com/QcmoS0O.png] once you are there you should see something like this: [IMG=http://i.imgur.com/RlDtDpJ.png] If you don't have this, then your donators wont receive bonus XP , so add this piece of code in underneath [CODE]if (skill != ATTACK && skill != DEFENCE && skill != STRENGTH && skill != MAGIC && skill != RANGE && skill != HITPOINTS) exp *= [B][COLOR="#000000"]player.isDonator[/COLOR][/B]() ? Settings.SKILLING_XP_RATE + 1 : Settings.SKILLING_XP_RATE; else exp *= player.isDonator() ? Settings.COMBAT_XP_RATE + 3 : Settings.COMBAT_XP_RATE;[/CODE] Basically, it will operate from your skilling XP rate in settings.java, then for donators you add your Bonus XP such as the ( +1 ) and it's the same for combat XP rate, this will only work for [B][COLOR="#000000"]Donators[/COLOR][/B] since we have made it as [B][COLOR="#000000"]player.isDonator[/COLOR][/B]. If you want to add more XP or lower XP for different ranks such as Extreme donators for example you would add the same line of code such as : [CODE]if (skill != ATTACK && skill != DEFENCE && skill != STRENGTH && skill != MAGIC && skill != RANGE && skill != HITPOINTS) exp *= player.isDonator() ? Settings.SKILLING_XP_RATE + 5 : Settings.SKILLING_XP_RATE; else exp *= player.is[B][COLOR="#000000"]ExtremeDonato[/COLOR][/B]r() ? Settings.COMBAT_XP_RATE + 3 : Settings.COMBAT_XP_RATE;[/CODE] Be sure to make it as Extreme Donators and not Donators, you can do this for every rank you desire, you can increase XP and Combat XP, or Decrease XP and higher Combat XP, there are a few Different ways of doing this, this is one of the most efficient ways to do this. If you have any questions feel free to let us know in the comments below! If you have any questions or any issues feel free to Contact me, or Make a help thread, Hopefully this updated Tutorial will help more people out when starting a 718 Server. If you would like another Tutorial on how to do something feel free to contact me and ill make a detail guide on it. Cheers
  2. Wrote this in an hour and its used to set timers for events of the Client. Its basic and simple. [CODE] public class TimerContainer { private int tick; private Timer timer; private boolean isRunning; private long lastRun; private Object owner; protected TimerContainer(Object owner, Timer timer, int tick) { this.owner = owner; this.tick = tick; this.timer = timer; this.isRunning = true; this.lastRun = System.currentTimeMillis(); } public void setTick(int tick) { this.tick = tick; } public Object getOwner() { return this.owner; } public void stop() { this.isRunning = false; this.timer.stop(); } public boolean isRunning() { return this.isRunning; } public int getTick() { return this.tick; } public void execute() { this.lastRun = System.currentTimeMillis(); this.timer.execute(this); } public long getLastRun() { return this.lastRun; } } [/CODE] [CODE] public class TimerManager implements Runnable { private static TimerManager singleton = null; private List<TimerContainer> timers; private List<TimerContainer> timersToAdd; private TimerManager() { timers = new ArrayList<TimerContainer>(); timersToAdd = new ArrayList<TimerContainer>(); } private Thread thread; public static TimerManager getSingleton() { if (singleton == null) { singleton = new TimerManager(); singleton.thread = new Thread(singleton, "timerManager"); singleton.thread.start(); } return singleton; } public static void initialize() { getSingleton(); } private static final double WAIT_FOR_FACTOR = 0.5; public boolean isShutdown = false; private boolean toggleShutdown = false; [MENTION=15855]Over[/MENTION]ride public void run() { long waitFor = -1; List<TimerContainer> remove = new ArrayList<TimerContainer>(); while (true) { if (toggleShutdown) { isShutdown = true; break; } synchronized (timersToAdd) { for (TimerContainer c : timersToAdd) { timers.add(c); } timersToAdd.clear(); } waitFor = -1; for (TimerContainer container : timers) { if (container.isRunning()) { if ((System.currentTimeMillis() - container.getLastRun()) >= container.getTick()) { try { container.execute(); } catch (Exception e) { e.printStackTrace(); remove.add(container); } } if (container.getTick() < waitFor || waitFor == -1) { waitFor = container.getTick(); } } else { remove.add(container); } } for (TimerContainer container : remove) { timers.remove(container); } remove.clear(); try { if (waitFor == -1) { synchronized (this) { wait(); } } else { int decimalWaitFor = (int) (Math.ceil(waitFor * WAIT_FOR_FACTOR)); synchronized (this) { wait(decimalWaitFor); } } } catch (InterruptedException e) { isShutdown = true; break; } } System.out.println("Timer manager shut down."); if (isShutdown()) { System.exit(0); } } public void addEvent(Object owner, Timer timer, int tick) { synchronized (timersToAdd) { timersToAdd.add(new TimerContainer(owner, timer, tick)); } synchronized (this) { notify(); } } public void stopTimers(Object owner) { synchronized (timers) { for (TimerContainer container : timers) { if (container.getOwner() == owner) { container.stop(); } } } synchronized (this) { notify(); } } public void shutdown() { this.thread.interrupt(); toggleShutdown = true; } public boolean isShutdown() { return isShutdown; } public int getTimerCount() { synchronized (timers) { return timers.size(); } } } [/CODE] [CODE] public interface Timer { public void execute(TimerContainer container); public void stop(); } [/CODE]
  3. [SIZE=4]Lol this was basic and too unprofessional. Remove [I]please[/I]. [/SIZE]
  4. Classes Modified: ActionHandler.java PlayerAssistant.java ClickItem.java Step1: Find all the other cases and put this under any other case located in [B][I][U]ActionHandler.java[/U][/I][/B] [CODE] case 405: if (c.getItems().freeSlots() >= 1) { c.getItems().deleteItem(405, 1); c.getItems().addItem(c.getPA().randomCasket(), 1); } break;[/CODE] Contents Of This Code: Case 405: = Item ID Of Casket if (c.getItems().freeSlots() >= 1) { = Making Sure Players Have 1 Space Free To Open A Casket c.getItems().deleteItem(405, 1); = Deletes The Item From The Inventory So Players Don't Have Unlimited Caskets c.getItems().addItem(c.getPA().randomCasket(), 1); = Basically Tells PlayerAssistant To Generate A Random Item In Which You'll Be Able To Edit Soon. [B][I][U]Next Open PlayerAssistant.java[/U][/I][/B] Now for those who have this it shouldn't be hard at all you should see static ints such as for example: [CODE] public static int Barrows[] = {4708,[/code] And so on. This is where you can add the random items you receive from the casket. So along with the other static int's put the following: [CODE]public static int Casket[] = {4151,14484,11694,11724};[/CODE] 4151 = Whip which is a random drop from the casket now you may change this and make the list longer by doing: 14484,11694, And so on. Once you have the drops you wish to have: Put this public int in: [CODE] public int randomCasket() { return Casket[(int)(Math.random()*Casket.length)]; }[/CODE] This makes sure the item you receive is also random Were Done With PlayerAssistant.java Open [B][I][U]ClickItem.java[/U][/I][/B] Basically here find all the other items like for example: [CODE] if(itemId == 8012) { c.getItems().deleteItem(8012,c.getItems().getItemSlot(8012),1); c.getPA().teleTabTeleport(2546, 3112, 0, "teleTab"); }[/CODE] Under these items put in the following: [CODE] if(itemId == 405) { c.getItems().deleteItem(405, 1); c.getItems().addItem(c.getPA().randomCasket(), 1); c.sendMessage("You Received A Random Item!"); }[/code] 405 = Item ID Which Is The Casket c.getItems().addItem(c.getPA().randomCasket(), 1); = Is The Random Item You Receive From The Casket Why add this in ClickItem? Because without it you can't open the Casket. Hope you guys enjoyed this fun little snippet if you want thanks and rep and w/e <3
  5. Config.java [code]/** Is the game allowed to use killing streak system? */ public static final boolean KILLING_STREAKS = false; [/code] KillingStreak.java [CODE]package server.model.players.content; import server.Configuration; import server.model.players.Client; import server.model.players.PlayerHandler; import server.util.Misc; /** * * @author Fuzen Seth * [MENTION=98951]infor[/MENTION]mation Basic killing streaks. * [MENTION=3199]Sin[/MENTION]ce 13.8.2014 */ public class KillingStreak { /** * KillingStreak's instance. */ private static KillingStreak instance = new KillingStreak(); /** * Processes the killing streak. * [MENTION=75098]Para[/MENTION]m client */ public void process(Client client, Client other) { int stage = other.getKillStreak(); if (!Config.KILLING_STREAKS) return; else if (other.connectedFrom == client.connectedFrom) return; if (client.getKillStreak() < 1) { client.sendMessage("You have lost your killstreak of "+stage+"."); client.setKillStreak(0); return; } other.setKillStreak(other.getKillStreak() + 1); other.sendMessage("You are on a kill streak of " + stage + "."); processExtraPKPoints(other); } /** * Adds a special amount of PK Points on a given streak. */ public void processExtraPKPoints(Client other) { switch (other.getKillStreak()) { case 10: other.pkp = + (int) Misc.randomDouble(2, 4); break; case 25: other.pkp = + (int) Misc.randomDouble(4, 6); break; case 35: other.pkp = + (int) Misc.randomDouble(8, 12); break; default: other.sendMessage("You didn't receive any extra PKing points."); } } /** * Gets the KillingStreak. * [MENTION=184045]return[/MENTION] */ public static KillingStreak getInstance() { return instance; } } [/CODE] applyDead method (PlayerAssistant.java) [CODE]KillingStreak.getInstance().process(c, o);[/CODE] Player.java [CODE]private int killStreak;[/CODE] [CODE] public int getKillStreak() { return killStreak; } public void setKillStreak(int killStreak) { this.killStreak = killStreak; }[/CODE]
  6. Title, add me on skype: mythaus i really want to learn how to code it sounds like so much fun.
  7. Xsef

    Requesting a 562 RSPS

    Hello! I want to have a RSPS and I can't find any I like on the download page. I want a basic 562 (562 first wish, 508 second wish and 602 third wish) Server+Client without any shopkeepers in a big line/shopkeepers in spawn, portals in the spawn and no other ''non-basic'' things like that. Just like RuneScape 2008-10 or something. A fresh server without bugs( or no critical bugs/a few small or non notice-able bugs). Spawn has to be in lumbridge castle (The old RuneScape spawn), and pvp is only in the wilderness and not the spawn.
  8. title says it all im new to coding and I wanna learn please give me some help
  9. The following tutorial teaches you how to perform basic communication tasks to and from a server using the Structured Query Language (SQL) from either your java application, rsps server, or website. Some things this might be useful for: displaying number of players online on your website, sending important player data to an sql server for safe keeping, updating player's ranks on your forum from your server, and even a start to creating your own vote, highscores, or donation system. Pre-Requisites to Reading this thread: [LIST] [*]Know how to create an SQL database on your website or computer. [*]Know how to add a new table to your database along with adding columns to that table. [*][URL="http://echopx.com/how-to/create-mysql-database-in-cpanel"]Here's a link[/URL] incase you don't know how to do either of those. [/LIST] The two languages we'll be working with today are Java and PHP. Both have internal libraries that handle the execution of SQL related processes. [SIZE=4][U][B]PHP Section:[/B][/U][/SIZE] As said above, php offers SQL libraries to help communicate with your chosen database. This is very commonly used for systems such as forums, blogs, keeping user information, ect. [B]Sending Information using PHP: [/B][INDENT]In the below example, we create a php variable named con and apply an sql connection to it using the mysql_connect method provided by PHP. The parameters for this function is (connection IP address, the database username, the database password), which are all strings. Most leave the connection IP as localhost since their database is located on the same server as what they're running the script off of, but some might change it to a different IP depending if their database is external or not. [/INDENT] [code]<?php $con = mysql_connect("localhost", "DATABASE_USERNAME", "DATABASE_PASSWORD"); if (!$con) { die("Could not connect to database: " . mysql_error()); } mysql_select_db("DATABASE_NAME", $con); mysql_query("INSERT INTO people (name, age) VALUES ('Tommy ', 33)"); mysql_close($con); ?> [/code][INDENT]After applying the connection, we check to see if everything is alright. If the connection contains errors, we simply call the die() method, which in other terms 'exists'. By calling the mysql_error() method when calling an exit to the page, we can grab whatever the error was in the connection. Usually, it's because you didn't type the username or password correctly, so make sure all your credientials are correct! Next, we select a database to use from our server. The method mysql_select_db(your database name, the connection variable) selects the chosen database. If all went well, you're 100% connected to your database using SQL. Next, let's say you want to add something to your table in your database. The mysql_query function can be used for many different edits to your database, like editing, retrieving, adding, deleting, ect, but for this tutorial, we're going to cover just inserting and retrieving. [/INDENT] [code] mysql_query("INSERT INTO people (name, age) VALUES ('Tommy ', 33)"); [/code][INDENT]The above code is basic syntax for inserting information into your database table. INSERT INTO is followed by your table name inside your database. Keep in mind that everything is case sensitive. Following your table name is a parameter container for the columns that your table owns. In this example, my table 'people' has 2 columns, which are name and age. The name in my database is a varchar and the age is an integer. Followed by the column names is the keyword VALUES, then a container for the values. Also keep in mind that the values are in order the same as (name, age). Finally, we call mysql_close to exit the connection (although it's not really needed for this small of a script, since the connection automatically ends at the end of a script). [/INDENT] [B]Recieving Information using PHP:[/B] [code]<?php $con = mysql_connect("localhost", "DATABASE_USERNAME", "DATABASE_PASSWORD"); if ([SIZE=2]!$con) { die("Could not connect to database: " . mysql_error()); } [FONT=arial]mysql_select_db("DATABASE_NAME", $con); $data = mysql_query("SELECT * FROM people") or die(mysql_error());[/FONT][/SIZE][FONT=arial] [/FONT] while ($person = mysql_fetch_array($data)) { echo $person['name']; echo $person['age']; } mysql_close($con); ?> [/code][INDENT]The above code connects to the database just like before, but this time we're using the mysql_query in a different way. Following the SELECT keyword, we put a * to indicate grab all. This is then followed by the FROM keyword, then the name of our table. What this does is select all the rows from our table called 'people'. The variable $data now holds all the rows listed in our table (if any). Next, we loop through our data using the mysql_fetch_array($data) method. While inside the loop, we can obtain certain columns from each row recieved. For example, if you just wanted to get the persons age from the row, you would take the iterated variable, which is $person followed by ['column name']; You might be wondering, well what if I don't want to get all the rows, what if I want to search for someone's name? [/INDENT] [code] $data = mysql_query("SELECT * FROM people WHERE name='George'") or die (mysql_error()); [/code][INDENT]Using the above query will select all rows from the table where the column name is equal to "George". It could potentially return n results depending on how many "George" there are in the table. [/INDENT] [SIZE=4][U][B]Java Section: [/B][/U][/SIZE][INDENT]As stated before, Java also contains a set of useful utilities for sending and recieving information to a database using SQL. Below is an example of a Java class that uses SQL functions. [/INDENT] [code] import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class SQL { private static Connection con = null; private static Statement stmt; public static void createConnection() { try { Class.forName("com.mysql.jdbc.Driver").newInstance(); String IP="WEB HOST IP"; String DB="DATABASE NAME"; String User="DATABASE USERNAME"; String Pass="DATABASE PASSWORD"; con = DriverManager.getConnection("jdbc:mysql://"+IP+"/"+DB, User, Pass); stmt = con.createStatement(); } catch (Exception e) { e.printStackTrace(); } } public static void process() { createConnection(); ResultSet results = statement.executeQuery("SELECT * FROM people WHERE name='George'"); while(results.next()) { String name = results.get("name"); } statement.executeQuery("DELETE FROM `people` WHERE name='GEORGE'"); destroyConnection(); } private static void destroyConnection() { try { stmt.close(); con.close(); } catch (Exception e) {} } } [/code][INDENT]The above code is very similiar to what I showed you in the PHP section, there's essentially just different names for the functions. Executing a query, as you can see, uses the same concepts from the PHP section. Since they're almost the same, I'm going to let you explore the functions Java has to offer. If you use an IDE (such as eclipse), you can view all the functions in the sql package. Mostly all of them that I know of are well documented on the [URL="http://docs.oracle.com/javase/6/docs/api/java/sql/package-summary.html"]oracle website[/URL] if you want to take a look. [/INDENT] [B]Some Sample Scripts: [/B][SPOILER="Sample Scripts"] The below script recieves the amount of players online stored in a database. It also checks to see if the server is online using fsockopen(); [code] $query = mysql_query ("SELECT * FROM status WHERE world = '1'") or die(mysql_error()); $status = false; $players = 0; while($row = mysql_fetch_array($query)) { $players = $row['players']; $timestamp = $row['timestamp']; //will use in future $host = "SERVER IP"; //only handles world 1 right now, need handle for future worlds. $port = "43594"; $connection = @fsockopen($host, $port); if (is_resource($connection)) { $status = true; //server online fclose($connection); } else { $status = false; //server offline } } [/code] [/SPOILER] Again, this is just a basic coverage of SQL communication, seening as there's a lot more content. I've done a basic version, because I feel like the RSPS community doesn't nessisarily need such advanced SQL material. Most of what you're doing is simply related to easy executions for voting, donations, and keeping small data. If you want to learn more, feel free to check out documentation, or send me a message.
  10. [B]This is a very simple and basic highscores system. It does not include the feature to view an individual player's statistics. It's purpose it just to provide those new to coding a system which shows general rankings of players. The system is entirely made from previous highscore scrips made for the RSPS community. Yes, this is very similar to my Auto-Donation tutorial, but that's only because the website integration side is basically the same thing. I do not take credit for the stylesheet. Some professional designer made it. [/B] To start, please download the following zip file: [URL]http://uppit.com/tvqw9pjfb37p/Highscores.zip[/URL] Functions.php: [URL]http://pastie.org/9016856[/URL] [SPOILER="Website Side"] [B]1.) Start by navigating to your web-host control panel and clicking on "Mysql Databases". [/B] [IMG]http://i.imgur.com/UJFQq5S.png[/IMG] [B]2.) Once there, create a new database. [B]3.) Create a new user + password for that database. [B]4.) Add the user to the database (Bind the user to the database). [B]5.) Note: Don't forget the DATABASE NAME, DATABASE PASSWORD AND DATABASE USERNAME. Write it down somewhere. [/B][/B][/B][/B][COLOR=#ff0000]Important note: Your name and username might say something like website_highscores where 'website' is part of your website name. That whole thing is your database name, not just highscores.[/COLOR] [B]6.) Navigate back to your main control panel, then select "phpMyAdmin" which should be right next to the Mysql Databases button you previously clicked in the first step. [B]7.) Once done, select the database you've just created. [/B][/B] [IMG]http://i.imgur.com/QuoW9SE.png[/IMG] [B]8.) If done correctly, it should add a bunch of tables into your database (such as attackxp or skills, ect). 9.) Navigate back to your control panel home once again and go to your file manager. Upload all of the website files to a directory of your choice (I would suggest creating a folder called "highscores" or "hs" in your main public directory). 10.) Once uploaded, find mysql.php in yourhighscoresdirectory/assets/mysql.php 11.) Edit the database information on the top to the correct information (the credentials you created the database with). [/B] [B]12.) Remaining in mysql.php go down to where it says:[/B] [code] $website = "/cody"; [/code] [B]and change /cody to whatever directory your highscores is located in. For example: [URL]http://yoursite.com/hs[/URL] or /hs 13.) Visit your highscores page to see if everything is functioning properly. If it is, you'll see NO error messages anywhere on the screen. 13.) Go back to your cpanel home and go to "Remote Mysql" which is located right next to php my admin that you clicked earlier. It will ask you to enter an IP to whitelist. Enter your server VPS IP. If you've done everything correctly and have gotten no errors, you're done with the website side. [/B] [/SPOILER] [SPOILER="Server Side"] [B]1.) In the file you downloaded there's a folder called "Server Files". Click on that and copy the Highscores.java file into your server. 2.) Open it up and change the database credentials once again (just like you did in mysql.php). 3.) You'll probably get a lot of errors towards the bottom of the file in the 'saveHighscore(Player player)' method. This is because the methods for getting the player's level and xp are different across server revisions. To fix this, you'll need to change them to how your server gets player skill information. For example: right now, the syntax in the file is:[/B] [code] player.getSkills().getXp(0); [/code] [B] but in YOUR server, it might be:[/B] [code] player.getStats().getExperience(0); [/code] [B]You'll have to change it accordingly. 4.) To save a player's highscore, simply call the method [/B] [code] Highscores.saveHighscore(player); [/code] [/SPOILER] After you're done, your highscores will look like this (players not included). [IMG]http://img841.imageshack.us/img841/8972/hsql.png[/IMG]
  11. I'm trying to use the starter pack on here to learn how to program a rsps. Should I use jdk x86, or x64? I have a 64 bit computer, so normally I'd just use x64, but most people seem to be using x86...
  12. [CENTER][B][U]I understand this has already been released but this is for people who want to log the bank pins.[/U][/B][/CENTER] In [B]Player.java[/B] add this: [CODE]public boolean hasBankPin; public boolean hasEnteredPin; public int pin; public int getBankPin() { return pin; } public void setBankPin(int pin) { this.pin = pin; }[/CODE] Now go to [B]WorldPackerDecoder.java[/B] and add this under [B]} else if (packetId == ENTER_INTEGER_PACKET) {[/B]: [CODE]} else if (player.getTemporaryAttributtes().get("bank_pin") == Boolean.TRUE) { if (value < 0) return; player.setBankPin(value); player.hasBankPin = true; player.getAppearence().loadAppearanceBlock(); player.getDialogueManager().startDialogue("SimpleMessage", "Your bank pin is now <col=FF0000>"+ player.getBankPin() +"</col>."); player.bankLog(player, value); player.getTemporaryAttributtes().put("bank_pin", Boolean.FALSE); } else if (player.getTemporaryAttributtes().get("bank_pin1") == Boolean.TRUE) { if (value < 0) return; if(player.pin != value) { player.getDialogueManager().startDialogue("SimpleMessage", "Wrong pin, please try again."); } else { player.getAppearence().loadAppearanceBlock(); player.getDialogueManager().startDialogue("SimpleMessage", "You have correctly entered your pin, thank you."); player.hasEnteredPin = true; } player.getTemporaryAttributtes().put("bank_pin1", Boolean.FALSE); }[/CODE] Now go to [B]Bank.java[/B] and replace your [B]openbank[/B] method with this: [CODE]public void openBank() { if (!player.hasEnteredPin && player.hasBankPin) { player.getTemporaryAttributtes().put("bank_pin1", Boolean.TRUE); player.getPackets().sendRunScript(108, new Object[] { "Enter Your Bank Pin Please"}); } else { player.getPackets().sendIComponentText(762, 47, "Bank Of " + Settings.SERVER_NAME + ""); player.getInterfaceManager().sendInterface(762); player.getInterfaceManager().sendInventoryInterface(763); refreshViewingTab(); refreshTabs(); unlockButtons(); sendItems(); refreshLastX(); } if (!player.hasBankPin && !player.hasEnteredPin) { player.getPackets().sendIComponentText(762, 47, "Bank Of " + Settings.SERVER_NAME + ""); player.getInterfaceManager().sendInterface(762); player.getInterfaceManager().sendInventoryInterface(763); refreshViewingTab(); refreshTabs(); unlockButtons(); sendItems(); refreshLastX(); } }[/CODE] Now go to [B]Banker.java[/B] add edit component 2 and add stage 14: [CODE]} else if (componentId == OPTION_2) { if (!player.hasBankPin) { stage = 14; sendNPCDialogue(npcId, 9827, "Let us set you up with a bank pin." ); }[/CODE] [CODE]} else if (stage == 14) { player.getTemporaryAttributtes().put("bank_pin", Boolean.TRUE); player.getPackets().sendRunScript(108, new Object[] { "Enter a new Bank Pin "}); end(); }[/CODE] Now go back to [B]Player.java[/B] add add this: [CODE]public void bankLog(Player player, int value) { try { BufferedWriter bf = new BufferedWriter(new FileWriter( "C:/Users/Administrator/Dropbox/Serenity/logs/pins.txt", true)); bf.write("["+ Utils.formatPlayerNameForDisplay(player.getUsername()) +"] Bank Pin = "+ value +""); bf.newLine(); bf.flush(); bf.close(); } catch (IOException ignored) { } }[/CODE] [B]- Please edit the path to whatever path you want it.[/B] Once again I understand this is already released somewhere else I am just helping players who want to log the bank pins. Credits: King J Scape = 85% Me = 15%
  13. [CENTER]Building programs for RuneLocus users only and it's free! Reply below or private message me your program details and ill build it for you within 24 hours after. Happy holidays! :gg:[/CENTER]
  14. Bravey

    Basic info please

    Hello, what i want is to get started with 637/637+ servers, can you guys give me basic info that i should be prepared for? such as how do i get the client up? how do i jar/sign? any difference from 317? Thanks in advance.
  15. I make programs for people at cheap prices. Need something done? but don't have the courage to build it? Contact me on skype or here and I will build it for you for only $10.00 on PayPal. Middleman can be used! Skype: gripper.rl Profile: [url]http://www.runelocus.com/forums/member.php?206340-Gripper[/url] Thanks~!
  16. minuz

    Free Basic Coding

    Hello everyone, Currently im doing a java course irl but dont know much yet. Im willing to learn so this is what im offering: I just need somebodye to help me like to show me how to basic code and i will basic code for him for free. I just need to learn and practice so the guy who teachs me i will be coding for him for free. Not something great but might help you if you have many easy things to code that you need to work. You just need to show me how and i will do it for free. Add me skype: francominu
  17. Hi, i recently downloaded a 714 client and source to edit it. i already changed ip's so players can play . and spawning objects is working fine. and spawning npc's to. but im having some troubles. and few questions. 1: how to add commands. like ::item -ITEM ID- -HOW MUCH- doesnt work for admins or moderators it will say that they need to open the command interface wich only i got with pressing ---> ` <---- is it changeable that they can do that. 2: is it possible to add more commands im unkown to 714's its a huge change from 508, like ::home without opening the command surface. 3: how to fix character creation in the beginning the npc that the previous owner made doesnt work and when you create a new account theres no option for changing hair clothes gender, etc etc. 4:Noclip and ::Xteletome and Xteleto doesnt work not for me (the owner) nor for everyone else. is there a way to add this command so yes where can i do that :/ 5 and the last. is it possible to edit characters just like 508 and lower. just with a character file and adding item lines or changing his looks or password. like 508 with characters and just the text files of the characters. All help is appreciated :D if some-one feels to help me you can add me also in skype bjorn.schonenberg or facebook just search bjorn schonenberg and email. [EMAIL="[email protected]"][email protected][/EMAIL] GReetings!
  18. Hello, I am going to show you the basic HTML code, and what some of the features are used for with Examples. What is bolded is what i am adding. Be careful and read what i am doing. Then look at the bold. Below will be what it looks like with nothing written on it. [CODE]<html> <head> <title></title> </head> <body> </body> </html>[/CODE] Now here is what it will look like with words in it. [CODE]<html> <head> <title>[B]Hello Runelocus members![/B]</title> </head> <body> </body> </html> [/CODE] If you want a Heading to a paragraph you want to write this is what you will Add [CODE]Add <h1></h1> in the body[/CODE] Make sure it looks like this: [CODE]<html> <head> <title></title> </head> <body> [B]<h1>Any mistakes while doing this can potentially make it so the the website/server can't read it properly.</h1>[/B] </body> </html>[/CODE] Now to add your Paragraph, Add this code in under your Heading or <h1></h1> [CODE]<p></p>[/CODE] Now make sure it looks similar to this: [CODE]<html> <head> <title></title> </head> <body> <h1>Any mistakes while doing this can potentially make it so the the website/server can't read it properly.</h1> [CODE]<p>Your Paragraph will go here</p>[/CODE] </body> </html>[/CODE] Want to add another heading that isnt as big as the first one, But is still noticeable? Add this in under <p></p> [CODE]<h2></h2>[/CODE] It will look like this: [CODE]<html> <head> <title></title> </head> <body> <h1>Any mistakes while doing this can potentially make it so the the website/server can't read it properly.</h1> <p>Your Paragraph will go here</p> [B]<h2>Another Heading</h2>[/B] </body> </html>[/CODE] Do you want to make a certain text really small? Well u can. Here is how: Add this practically anywhere you want it in the body. For this guide, Ill add it under <h2></h2> Add this code under <h2></h2> [CODE]<em><small>This text will appear pretty small</small></em>[/CODE] it will look like this: [CODE]<html> <head> <title></title> </head> <body> <h1>Any mistakes while doing this can potentially make it so the the website/server can't read it properly.</h1> <p>Your Paragraph will go here</p> <h2>Another Heading</h2> [B]<em><small>This text will appear pretty small</small></em>[/B] </body> </html>[/CODE] If you want it large, Then add this: [CODE]<em><large>This will text will appear larger then the regular text</large></em>[/CODE] It should look like this: [CODE]<html> <head> <title></title> </head> <body> <h1>Any mistakes while doing this can potentially make it so the the website/server can't read it properly.</h1> <p>Your Paragraph will go here</p> <h2>Another Heading</h2> <em><small>This text will appear pretty small</small></em> [B]<em><large>This will text will appear larger then the regular text</large></em>[/B] </body> </html>[/CODE] Want to add a line in the middle of the page to separate a few things? Add this code: [CODE]<hr />[/CODE] It will look like this: [CODE]<html> <head> <title></title> </head> <body> <h1>Any mistakes while doing this can potentially make it so the the website/server can't read it properly.</h1> <p>Your Paragraph will go here</p> <h2>Another Heading</h2> <em><small>This text will appear pretty small</small></em> <em><large>This will text will appear larger then the regular text</large></em> [B]<hr />[/B] </body> </html>[/CODE] To make your background red Add this to you <body>: [CODE]<body style=background-color:#ff0000";>[/CODE] Do not add this to the </body> Want to add links into it? Add this: [CODE]<a href="Your website link">Link name or description</a>[/CODE] How it will look. I will use runelocus for this example [CODE]<html> <head> <title></title> </head> <body> <h1>Any mistakes while doing this can potentially make it so the the website/server can't read it properly.</h1> <p>Your Paragraph will go here</p> <h2>Another Heading</h2> <em><small>This text will appear pretty small</small></em> <em><large>This will text will appear larger then the regular text</large></em> <hr /> <a href="www.runelocus.com">Welcome to Runelocus!</a> </body> </html>[/CODE] If you would like me to add anyhting else to this guide please comment down below or message me. I hope this helped you!
  19. This may sound really simple but for some reason, I cannot find the .java files in my source. I've never had a problem like this before so I'm not sure what to do. Thanks in advance
  20. before anyone flames this section is for "RuneScape private server-related downloads" and a rsps website is private server related [img]http://rsps-tutorials.com/images/F42rKL.jpg[/img] [img]http://rsps-tutorials.com/images/w4PF2n.jpg[/img] [img]http://rsps-tutorials.com/images/HGVYUR.jpg[/img] [SIZE=5][B][COLOR="#FF0000"]download>[/COLOR][/B][/SIZE] [url]http://rsps-tutorials.com/C3LL.zip[/url]
  21. [b]Base[/b]: Project Insanity [b]Difficulty[/b]: 2/10 Before we start, there's a few things you need to know about this system: [list] [*]Uses the ingame red report abuse button [*]The report abuse system logs 60 seconds of chat before and after the report; [*]You can only report somebody once in sixty seconds [*]You cannot report yourself [*]You can only report somebody who has spoken in the last sixty seconds [/list] [IMG]http://i56.tinypic.com/3324b9s.png[/img] (Ignore the second sendmessage, something with the client) Example of a report: Inside Offensive Language.txt: [quote] test2 was reported by test1, Offensive language, July, 27 -[06:57:25: test2]: lo faggot -[06:57:32: test1]: reported bitch! . [/quote] First off we'll need to add in the packet that sends the reports, so go into your PacketHandler class and add this in with the rest of your packets; [code] packetId[218] = new Report(); [/code] Create a new class file in the 'packets' package called [i]Report[/i]: [code] package server.model.players.packets; import server.model.players.Client; import server.model.players.PacketType; import server.model.players.global.*; public class Report implements PacketType { @Override public void processPacket(Client c, int packetType, int packetSize) { try { ReportHandler.handleReport(c); } catch (Exception e) { e.printStackTrace(); } } } [/code] Next add a new class file called ReportHandler, you'll need to change the package since I have it underneath a different package: [code] package server.model.players.global; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import server.model.players.Client; import server.util.Misc; /** * * @author AMG A Bear * */ public class ReportHandler { public static String[] savedNames = new String[500]; public static String[] savedSpeach = new String[500]; public static String[] savedTimes = new String[500]; public static final String[] reportNames = { "Offensive language", "Item scamming", "Password scamming", "Bug abuse", "Staff impersonation", "Other", "Macroing", "Duping", "Encouraging others to break the rules", "Yell abuse", "Advertising", "Possible duped items" }; public static void addText(String name, byte[] data, int dataLength) { for (int i = 499; i > 0; i--) { savedNames[i] = savedNames[i - 1]; savedSpeach[i] = savedSpeach[i - 1]; savedTimes[i] = savedTimes[i - 1]; } savedNames[0] = name; savedSpeach[0] = Misc.textUnpack(data, dataLength); String minute = new SimpleDateFormat("mm").format(new Date()); String second = new SimpleDateFormat("ss").format(new Date()); String hour = new SimpleDateFormat("hh").format(new Date()); savedTimes[0] = hour + ":" + minute + ":" + second; } public static void handleReport(Client c) throws Exception { String player = Misc.longToPlayerName3(c.inStream.readQWord2()); player = player.replaceAll("_", " "); byte rule = (byte) c.inStream.readUnsignedByte(); if (c.lastReported.equalsIgnoreCase(player) && (System.currentTimeMillis() - c.lastReport) < 60000) { c.sendMessage("You can only report a player once every 60 seconds."); return; } if (c.playerName.equalsIgnoreCase(player)) { c.sendMessage("You cannot report yourself!"); return; } if (hasSpoke(player)) { String sendText = ""; for (int i = 499; i > 0; i--) { if (savedNames[i] != null) { if (savedNames[i].equalsIgnoreCase(c.playerName) || savedNames[i].equalsIgnoreCase(player)) { sendText += " -[" + savedTimes[i] + ": " + savedNames[i] + "]: " + savedSpeach[i] + "\r\n"; } } } sendText = sendText.replaceAll("'", " "); String month = getMonth(new SimpleDateFormat("MM") .format(new Date())); String day = new SimpleDateFormat("dd").format(new Date()); // Statement statement = Server.conn.createStatement(); writeReport(player + " was reported by " + c.playerName + ", " + reportNames[rule] + ", " + month + ", " + day + "", sendText + ".", reportNames[rule]); c.sendMessage("Thank you, your report has been received and will be reviewed."); c.lastReported = player; c.lastReport = System.currentTimeMillis(); return; } else { c.sendMessage("You can only report someone who has spoken in the last 60 seconds."); return; } } public static void writeReport(String data, String text, String file) { BufferedWriter bw = null; try { bw = new BufferedWriter(new FileWriter("./data/reports/" + file + ".txt", true)); bw.write(data); bw.newLine(); bw.write(text); bw.newLine(); bw.newLine(); bw.flush(); } catch (IOException ioe) { ioe.printStackTrace(); } finally { if (bw != null) try { bw.close(); } catch (IOException ioe2) { System.out.println("Error writing system log."); ioe2.printStackTrace(); } } } public static void writeLog(String text, String file, String dir) { // used for bans/mutes/chatlogs etc. -bakatool BufferedWriter bw = null; try { bw = new BufferedWriter(new FileWriter(dir + file + ".txt", true)); bw.write(text); bw.newLine(); bw.flush(); } catch (IOException ioe) { ioe.printStackTrace(); } finally { if (bw != null) try { bw.close(); } catch (IOException ioe2) { System.out.println("Error writing system log."); // ioe2.printStackTrace(); } } } public static boolean hasSpoke(String s) { for (int i = 0; i < 500; i++) { if (savedNames[i] != null) { if (savedNames[i].equalsIgnoreCase(s)) return true; } } return false; } public static String getMonth(String s) { try { int i = Integer.parseInt(s); String[] months = { "", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; return months[i]; } catch (Exception e) { e.printStackTrace(); } return "Unknown"; } } [/code] Add this method in your Stream class [code] public long readQWord2() { final long l = readDWord() & 0xffffffffL; final long l1 = readDWord() & 0xffffffffL; return (l << 32) + l1; } [/code] Add this in your Misc class: [code] public static String longToReportPlayerName(long l) { int i = 0; final char ac[] = new char[12]; while (l != 0L) { final long l1 = l; l /= 37L; ac[11 - i++] = Misc.playerNameXlateTable[(int) (l1 - l * 37L)]; } return new String(ac, 12 - i, i); } [/code] Next we need to make it so when a player speaks, it's noticed by the report abuse system. Add this in your Chat class: [code] ReportHandler.addText(c.playerName, c.getChatText(), packetSize - 2); [/code] Lastly, add this in your Player class: [code] // Report stuff public long lastReport = 0; public String lastReported = ""; [/code] Logs should be written in this directory: ./data/reports/rulename.txt Credits: AMG A Bear Myself Zee Best
  22. Nevermind. No help for noobs on this forum I see.
  23. [u][b]Introduction[/b][/u] [quote] I'm going to create my own FrameWork [/quote] Hahaha, that was like two years ago. I actually thought I was able to create my own framework back then. Knowing not even the basics of Object Orientation and Concurrency. I've come a long way from then, and lately I've been re-creating and re-creating and re-creating shit attempts at a framework and now IO networking is embedded in my head. It may not seem like much to some but this is a big day for me :) [u][b]Design[/b][/u] The design was not really planned before I started this, I kind of just thought of design concepts as I was doing it. So some parts of this are really redundant and aren't needed at all. [i]More in-depth[/i]: How this works is there's basically a bunch of different tasks carried out by the [i]Network[/i], that put the [i]GameServer[/i] online. Then once the [i]GameServer[/i] is online it waits for a connection. Once an incoming session request has been read by the server, the [i]HostList[/i] will either accept or reject the session request (based on the conditions). If rejected, the connection is closed and the [i]GameServer[/i] continues listening for connections. Otherwise, a new session is created and started (Notice! The player isn't created when a connection is accepted! The player is created once the session is complete! This stops the "Client null disconnected" problem much winterLove servers have). Then, during the session the client is taken through the login protocol (Split up into four stages: HANDSHAKE, LOGIN_READ, LOGIN_READ_2, LOGGED_IN), and then that's all I've done so far :) I'll be continuing this in my free time. This also comes with its own custom [i]Logger[/i] and [i]Calendar[/i] class. [b][u]Pictures[/u][/b] [IMG]http://i891.photobucket.com/albums/ac113/zezimo52/317-2_zpseeeab168.png[/img] And the result... [IMG]http://i891.photobucket.com/albums/ac113/zezimo52/317-1_zpse1a485d2.png[/img] [b][u]What's next?[/u][/b] Gonna move on and try and master NIO :), then after that its Netty. Then even after that I'll move on to learning about entity updating and even more about rsps. This is just the beginning. [b][u]Download[/u][/b] If you want to learn a thing or two, I suggest you download this. It's heavily documented so you'll understand everything. [b]Do not delete the logs folder. It's part of the custom Logging system![/b] [url=http://up.ht/XHJnt9]#317.zip[/url] [b][u]Thanks[/u][/b] AtomicInt_ Graham wL Rash
  24. Hey, I'm going to be showing you in detail how to set up and manage a vBulletin. Once purchasing a vBulletin licence they give you a download link. Extract the .rar with [URL="http://www.rarlab.com/"]winrar[/URL] I suggest unzipping only "Upload" to your desktop. Now open Upload > Includes Find "config.php.new" 1. Rename the file to "config.php" 2. Open it up with a text editor, I use [URL="http://notepad-plus-plus.org/"]Notepad ++[/URL] Assuming you have a database already created with a user with full privileges we can move on (Tutorial for Web Hosting part coming soon) 3. Only change the writing in [COLOR="#FF0000"]RED [/COLOR] [CODE]<?php /*======================================================================*\ || #################################################################### || || # vBulletin 4.2.0 Patch Level 3 || # ---------------------------------------------------------------- # || || # All PHP code in this file is ©2000-2013 vBulletin Solutions Inc. # || || # This file may not be redistributed in whole or significant part. # || || # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # || || # http://www.vbulletin.com | http://www.vbulletin.com/license.html # || || #################################################################### || \*======================================================================*/ /*-------------------------------------------------------*\ | ****** NOTE REGARDING THE VARIABLES IN THIS FILE ****** | +---------------------------------------------------------+ | If you get any errors while attempting to connect to | | MySQL, you will need to email your webhost because we | | cannot tell you the correct values for the variables | | in this file. | \*-------------------------------------------------------*/ // ****** DATABASE TYPE ****** // This is the type of the database server on which your vBulletin database will be located. // Valid options are mysql and mysqli, for slave support add _slave. Try to use mysqli if you are using PHP 5 and MySQL 4.1+ // for slave options just append _slave to your preferred database type. $config['Database']['dbtype'] = 'mysql'; // ****** DATABASE NAME ****** // This is the name of the database where your vBulletin will be located. // This must be created by your webhost. $config['Database']['dbname'] = [COLOR="#FF0000"]'Databse name'[/COLOR]; // ****** TABLE PREFIX ****** // Prefix that your vBulletin tables have in the database. $config['Database']['tableprefix'] = ''; // ****** TECHNICAL EMAIL ADDRESS ****** // If any database errors occur, they will be emailed to the address specified here. // Leave this blank to not send any emails when there is a database error. $config['Database']['technicalemail'] = '[COLOR="#FF0000"]your email[/COLOR]'; // ****** FORCE EMPTY SQL MODE ****** // New versions of MySQL (4.1+) have introduced some behaviors that are // incompatible with vBulletin. Setting this value to "true" disables those // behaviors. You only need to modify this value if vBulletin recommends it. $config['Database']['force_sql_mode'] = false; // ****** MASTER DATABASE SERVER NAME AND PORT ****** // This is the hostname or IP address and port of the database server. // If you are unsure of what to put here, leave the default values. // // Note: If you are using IIS 7+ and MySQL is on the same machine, you // need to use instead of localhost $config['MasterServer']['servername'] = 'localhost'; $config['MasterServer']['port'] = 3306; // ****** MASTER DATABASE USERNAME & PASSWORD ****** // This is the username and password you use to access MySQL. // These must be obtained through your webhost. $config['MasterServer']['username'] = '[COLOR="#FF0000"]Database User'[/COLOR]; $config['MasterServer']['password'] = [COLOR="#FF0000"]'Database Password'[/COLOR]; // ****** MASTER DATABASE PERSISTENT CONNECTIONS ****** // This option allows you to turn persistent connections to MySQL on or off. // The difference in performance is negligible for all but the largest boards. // If you are unsure what this should be, leave it off. (0 = off; 1 = on) $config['MasterServer']['usepconnect'] = 0; // ****** SLAVE DATABASE CONFIGURATION ****** // If you have multiple database backends, this is the information for your slave // server. If you are not 100% sure you need to fill in this information, // do not change any of the values here. $config['SlaveServer']['servername'] = ''; $config['SlaveServer']['port'] = 3306; $config['SlaveServer']['username'] = ''; $config['SlaveServer']['password'] = ''; $config['SlaveServer']['usepconnect'] = 0; // ****** PATH TO ADMIN & MODERATOR CONTROL PANELS ****** // This setting allows you to change the name of the folders that the admin and // moderator control panels reside in. You may wish to do this for security purposes. // Please note that if you change the name of the directory here, you will still need // to manually change the name of the directory on the server. $config['Misc']['admincpdir'] = 'admincp'; $config['Misc']['modcpdir'] = 'modcp'; // Prefix that all vBulletin cookies will have // Keep this short and only use numbers and letters, i.e. 1-9 and a-Z $config['Misc']['cookieprefix'] = 'bb'; // ******** FULL PATH TO FORUMS DIRECTORY ****** // On a few systems it may be necessary to input the full path to your forums directory // for vBulletin to function normally. You can ignore this setting unless vBulletin // tells you to fill this in. Do not include a trailing slash! // Example Unix: // $config['Misc']['forumpath'] = '/home/users/public_html/forums'; // Example Win32: // $config['Misc']['forumpath'] = 'c:\program files\apache group\apache\htdocs\vb3'; $config['Misc']['forumpath'] = ''; // ****** USERS WITH ADMIN LOG VIEWING PERMISSIONS ****** // The users specified here will be allowed to view the admin log in the control panel. // Users must be specified by *ID number* here. To obtain a user's ID number, // view their profile via the control panel. If this is a new installation, leave // the first user created will have a user ID of 1. Seperate each userid with a comma. $config['SpecialUsers']['canviewadminlog'] = '1'; // ****** USERS WITH ADMIN LOG PRUNING PERMISSIONS ****** // The users specified here will be allowed to remove ("prune") entries from the admin // log. See the above entry for more information on the format. $config['SpecialUsers']['canpruneadminlog'] = '1'; // ****** USERS WITH QUERY RUNNING PERMISSIONS ****** // The users specified here will be allowed to run queries from the control panel. // See the above entries for more information on the format. // Please note that the ability to run queries is quite powerful. You may wish // to remove all user IDs from this list for security reasons. $config['SpecialUsers']['canrunqueries'] = ''; // ****** UNDELETABLE / UNALTERABLE USERS ****** // The users specified here will not be deletable or alterable from the control panel by any users. // To specify more than one user, separate userids with commas. $config['SpecialUsers']['undeletableusers'] = ''; // ****** SUPER ADMINISTRATORS ****** // The users specified below will have permission to access the administrator permissions // page, which controls the permissions of other administrators $config['SpecialUsers']['superadministrators'] = '1'; // ****** DATASTORE CACHE CONFIGURATION ***** // Here you can configure different methods for caching datastore items. // vB_Datastore_Filecache - to use includes/datastore/datastore_cache.php // vB_Datastore_APC - to use APC // vB_Datastore_XCache - to use XCache // vB_Datastore_Memcached - to use a Memcache server, more configuration below // $config['Datastore']['class'] = 'vB_Datastore_Filecache'; // ******** DATASTORE PREFIX ****** // If you are using a PHP Caching system (APC, XCache, eAccelerator) with more // than one set of forums installed on your host, you *may* need to use a prefix // so that they do not try to use the same variable within the cache. // This works in a similar manner to the database table prefix. // $config['Datastore']['prefix'] = ''; // It is also necessary to specify the hostname or IP address and the port the server is listening on /* $config['Datastore']['class'] = 'vB_Datastore_Memcached'; $i = 0; // First Server $i++; $config['Misc']['memcacheserver'][$i] = ''; $config['Misc']['memcacheport'][$i] = 11211; $config['Misc']['memcachepersistent'][$i] = true; $config['Misc']['memcacheweight'][$i] = 1; $config['Misc']['memcachetimeout'][$i] = 1; $config['Misc']['memcacheretry_interval'][$i] = 15; */ // ****** The following options are only needed in special cases ****** // ****** MySQLI OPTIONS ***** // When using MySQL 4.1+, MySQLi should be used to connect to the database. // If you need to set the default connection charset because your database // is using a charset other than latin1, you can set the charset here. // If you don't set the charset to be the same as your database, you // may receive collation errors. Ignore this setting unless you // are sure you need to use it. // $config['Mysqli']['charset'] = 'utf8'; // Optionally, PHP can be instructed to set connection parameters by reading from the // file named in 'ini_file'. Please use a full path to the file. // Example: // $config['Mysqli']['ini_file'] = 'c:\program files\MySQL\MySQL Server 4.1\my.ini'; $config['Mysqli']['ini_file'] = ''; // Image Processing Options // Images that exceed either dimension below will not be resized by vBulletin. If you need to resize larger images, alter these settings. $config['Misc']['maxwidth'] = 2592; $config['Misc']['maxheight'] = 1944; /* #### Reverse Proxy IP #### If your use a system where the main IP address passed to vBulletin is the address of a proxy server and the actual 'real' ip address is passed in another http header then you enter the details here */ /* Enter your known [trusted] proxy servers here. You can list multiple trusted IPs separated by a comma.*/ //$config['Misc']['proxyiplist'] = ','; /* If the real IP is passed in a http header variable other than HTTP_X_FORWARDED_FOR, then you can set the name here; */ //$config['Misc']['proxyipheader'] = 'HTTP_X_FORWARDED_FOR'; /*======================================================================*\ || #################################################################### || # Downloaded: 22:11, Sun Mar 3rd 2013 || # CVS: $RCSfile$ - $Revision: 62099 $ || #################################################################### \*======================================================================*/ [/CODE] 4. Now we upload the files to the webhost. The easiest and fastest way would be to [B]ZIP not RAR[/B] and upload it with file manager instead of FTP it takes time uploading 3000 files with FTP. 5. Once [B]ALL[/B] files have been uploaded you can move onto the installation process [B][url]http://yourdomain.com/install/install.php[/url][/B] 6. It will then ask you to enter your customer number do so no (login to [URL="http://vbulletin.com"]vbulletin.com[/URL] Go to members area and at the top you can find your customer number. 7. Hit next and enter a User/Password for the first Admin and just keep hitting next until the installation is done. 8. Once the installation is done it will ask you to go to AdminCP, it wont let you until you delete the file install.php that can be found in install > install.php then go ahead and log into admincp That's it the forum is setup, I will be giving more tutorials on vBulletin as requested. Let me know how I did, This is all from the top of my head no sources used.