Jump to content

A Duck Tale

Member
  • Content count

    179
  • Joined

  • Last visited

Everything posted by A Duck Tale

  1. You seem alright and down to earth. One of my biggest gripes with recruitment's of this type, is the unrealistic expectation of the amount of time a staff member must spend on the project per week. I'm glad you realize this at least! ^_^ However, I still have several questions: what is YOUR name? How and how often will communications be carried out? What is you strategy for collaborative development (Tools, documentation, etc)? Why have you decided to hire only one developer? A successful server will usually have a team of around 5-6 staff (based on observation and opinion). While scaling is most effective for this kind of project, it is going to save a lot of time and hassle then recruiting more team members later on(just to clarify, not talking about in-game moderators or administrators). Without giving away your 'secret recipe' for server success; do you have plans for what you want the server to develop into? How do you plan on ensuring that goals will be met? How do you plan on mitigating risks that are likely to occur (security (such as DDOS, DOX, hackers) , finances, etc)? Definitely interested in what controls you plan to put in place to protect against rogue staff. What experience do you have in Java or C#? If A Developer was to have trouble solving a problem, say it was to do with communications between the client and the server, would you be able to offer aid? how do you plan on marketing the project? Again, if financials were to come into play (paying for advert slots, etc), how do you plan to manage the risks that will come with it? Realistically, most semi-successful RS servers last 3-6 months after launch. If you were to go into this assuming the worst, what is Realistically the minimum time you would be willing to put effort in, before scrapping the project? That's all i can think of right now. Will update the post or contact you via another method if I have any more. My name is Sam, but you can call me whatever you want. Im 20 years old and Live in Australia GMT+ 11:00 Im in my final year at university, studying a bachelors degree in Software Engineering. I have Experience In C#, Java, C++ and C For Web development, I have used the MVC5 Architecture pattern in both ASP.Net and PHP Laravel I Have briefly touched on GIT and have access to a basic tutorial to polish up on. As far as commitments go, I am currently juggling two projects off the book, One purely by myself and another with a friend. The workload for uni is fairly high as it stands, however It's manageable and I should be able to fit in development time for what i hope as a minimum of 5-10 hours a week. due to the nature of my job, shifts are sporadic. Some weeks I may not have any work, others might be 12 hours a day, for the whole 7 days. My main reason of interest is that i enjoy programming and solving puzzles. I also have not touched java in almost a year now (mostly just work with c# or c), and so it would be beneficial for me to pick up a project like this. My main reason for striking interest with you is that you seem down to earth, but I'm still a little cautious that you may be an over ambitious type, and so the questions i have above would need to be answered before I make a decision on whether I'd like the position or not. Thank you for your time.
  2. If it works as intended (which it does), Then it is one of the many 'right ways' you could have done this. To improve the code above, you could remove the variable for your while loop and just have: while(true){ //this will loop indefinitely. } and add some exceptions for your inputs; something like this: static void Main(string[] args) { double gradePointAverage; double creditHours; while(true) // This will loop indefinitely { Console.WriteLine("Hit 'ctrl c' to exit application!\n"); Console.Write("Please enter the grade point average: "); try { gradePointAverage = Convert.ToDouble(Console.ReadLine()); } catch (Exception e) { Console.WriteLine("Error trying to convert to double (GPA). Did you make a typo?"); //Console.WriteLine(e); //Print out the exception. continue; // Go back to the start of the loop. } Console.Write("Please enter total credit hours: "); try { creditHours = Convert.ToDouble(Console.ReadLine()); } catch (Exception e) { Console.WriteLine("Error trying to convert to double (creditHours). Did you make a typo?"); //Console.WriteLine(e); //Print out the exception. continue; // Go back to the start of the loop. } if (creditHours > 72 && gradePointAverage > 2.5) { Console.WriteLine("Congratulations, you are eligible to graduate!\n"); } else if (gradePointAverage < 2.5) { Console.WriteLine("You need to work on your grade point average before you can graduate!\n"); } else { Console.WriteLine("You do not have enough hours to graduate.\n"); } } }
  3. Hey Runelocus community. Decided to start a new project as of right now, feeling i have the time and patience to learn. I would make a standalone game seperate from runescape, but due to the artistic/graphical side of me being non-existent, I find that this sort of work is probably the closest I will get without enlisting the help of model/gfx designers. I will be creating 3 servers based on the 562 revision: [COLOR="#FF0000"]* Emulation of the 562 game. * A Classic economy type server with commands to teleport to skills/training/minigames/bosses/etc (a lazy version of the first in essence, but sticks true to the RSPS we all know well and are comfortable with). * A PK Server (not sure on anything for this as of yet).[/COLOR] [B][SIZE=4]CLIENT:[/SIZE][/B] The client I will use is the seasonX client (Credits to the respectful owner. You can find their post here: [url]http://www.************.org/runescape-development/rs-503-client-server/downloads/347163-seasonx-562-source-normal-562-a.html[/url] ). If anyone thinks they have a better 562 client to use, I would be more than happy to check it out :) [B][SIZE=4]SERVER:[/SIZE][/B] To further my learning, I will be creating the server from scratch ( with the aid of the netty 4.0 framework). I haven't had much experience in setting up client-server architecture before, apart from the basic 'knock knock' tutorial oracle provides. No plans have been made to whether i will release the finished product to he Runelocus community or host it, nor will there be any consideration untill I near completion Overall, I hope this will be a beneficial journey and I look forward to sharing my results with you all :)
  4. wouldnt have a clue on the exact code without looking at your source for your server. the [COLOR="#FF0000"]isIronMan[/COLOR] should be stored where all your other player variables are stored, and you would have to include it in your player saving/loading. as for the mockup code i posted, it would go wherever the packets on your server were processed, and the real check would look something closer to: [CODE] if (packetId == TRADE_PACKET || packetId == FLOOR_ITEM_PACKET || packetId == WHATEVER_PACKET_YOU_WANT_TO_CHECK){ if(!isIronMan){ // handle the appropriate packet } else{ // write a game message stating you can't do it in ironman. } } [/CODE]
  5. you could just have a boolean variable '[COLOR="#FF0000"]isIronMan[/COLOR]' stored for each player and then perform a check: [CODE] if (!isIronMan){ // trade , pickup drops left on the ground by other people , etc } else{ // you cannot trade/etc on an ironman account } [/CODE]
  6. what does your client cmd say?
  7. [url]https://www.dropbox.com/s/bfpfjyz0n9d8iqr/client.java?dl=0[/url] - A 317 client.java i had lying around from a clean PI base. Credits to the respectful owner sounds like you don't have any code written to handle such button click events or the code isn't properly linked to such button click events. By colour code do you mean the hex code is showing just before like [COLOR="#FF0000"]"<#0000FF> Report Abuse" [/COLOR]for example?
  8. Is this you trying to connect to your server or are other computers trying to connect? Have you set the IP in the client to the servers IP (or to 127.0.0.1 if connecting through the same computer)? Are you 100% you port-forwarded correctly? It can be pretty tedious on certain routers.
  9. Sounds like some of your models aren't properly added. Are you 150% sure you re-packed your cache after adding the newer models? I would also check the variables you added in ItemDef.java (or similar place) (client side).
  10. EDIT: Ok so I had decided not to sleep and just get it done. there were few errors(due to typos) that made me take it off but I've managed to find and fix them. Enjoy :) Just made a simple anti-spam for my Project Insanity server and thought I should share. Currently, it blocks out auto typers as well as people spamming the server. The first thing you'll need to do is to locate your Chat.java Under the line "public class Chat implements PacketType" put: [CODE] // Anti-Spam Check By: A Duck Tale int spamsAllowed = 8; // amount of spams allowed int timeAllowed = 5 * 1000; // time to wait in milliseconds. // Initialize variables int spamCount = 0; long timeWaited = 0; long startTime = 0; long endTime = 0; byte[] message = null; byte[] storeMessage = null;[/CODE] then under the line "c.inStream.readBytes_reverseA(c.getChatText(), c.getChatTextSize(), 0);" place: [CODE] message = c.getChatText(); if (storeMessage == null){ storeMessage = message; } else if (storeMessage != null){ if (storeMessage == message){ spamCount++; if(startTime == 0){ startTime = System.currentTimeMillis(); } if (spamCount >= spamsAllowed){ endTime = System.currentTimeMillis(); timeWaited = endTime - startTime; if (timeWaited < timeAllowed){ System.out.println("Kicking...."); startTime = 0; spamCount = 0; timeWaited = 0; endTime = 0; storeMessage = null; message = null; c.logout(); } else if(timeWaited >= timeAllowed){ startTime = 0; spamCount = 0; timeWaited = 0; endTime = 0; storeMessage = null; message = null; } } } else if (storeMessage != message){ spamCount = 0; startTime = 0; storeMessage = message; } }[/CODE] now there are only two things you'll need to change to suit your needs. The first one is the variable 'spamsAllowed', which will be the number of messages the user can type in a given time before kicking them. The second one is 'timeAllowed', which is said 'given time' and determines how long the player must wait until their spam count resets. Let me know if you are having troubles with the code below :)
  11. [CODE] switch (i){ //all that code, starting from [COLOR="#FF0000"]case 4055:[/COLOR] to [COLOR="#FF0000"]break;[/COLOR] goes in here. } [/CODE]
  12. [quote name='Mahdy'] One day I started having bloody diarrhea and it wouldn’t stop – and this continued for 2 years until in 2010, my junior year of high school, I saw my primary doctor, [/QUOTE] You waited two years before seeing to a doctor about it???? not sure about you but after a few days of it, surely you would have had some sort of concern for your health... :P
  13. A client sided problem. You need to go into your interface class( RSInterface.java ? something like that) and change the starting y-pos to be higher.
  14. [quote name='wtfkid']i mean how to add it but i need vid [/QUOTE] I'm guessing if you don't know how to implement it, you didn't write that code yourself XD. I assume you know how it works at least. If you don't know how it works, I would [B]strongly[/B] recommend you go learn on the oracle website. If you can't read it, who's to say that the segments above don't contain malicious code? I would help you, but i have no idea on the structural design of a 718 server (sorry :/). Best bet would be to get into contact with the person who supplied the code.
  15. [quote name='fic7ion']Just today I was trying to fix my client.java. Once I was done, I tried to compile and it gave me errors. [B]One of the errors + the end was:[/B] symbol: variable aNode2799 location: variable node of type Node src\class312.java:259: error: cannot find symbol aNode 3958.aNode2800 = aNode3958 [B]The end of the compiler was:[/B] [ATTACH=CONFIG]11043[/ATTACH] [B]I was wondering if someone could help me with this?[/B] [I][317, loading 562-667, Project-Insanity][/I] Comment below please, or contact me at Skype: [I][email protected][/I] I do have teamviewer :)[/QUOTE] Check the code that you worked on again. It's probably a typo such as a brace missing or too many braces. [quote name='falconpunch']Warnings are not problems. The client will work with them.[/QUOTE] I'm guessing you misread the pic ;)
  16. [quote name='wtfkid']can anyone help me please with party room to 718 i need if any players want to do dropparty is do it and mod and all thank you -james[/QUOTE] I don't understand what you are trying to say. Do you want someone to code the party room on your server so it works? Or is there a specific bug that you are having trouble fixing for the party room? -If it's the first, people will most likely want something in return. It would seem odd if they decided not to spend the time furthering their own personal goals, and instead, decided to spend the time making your party room work for free and/or without any other incentives. -If it's the second, care to post more details on the matter? :3
  17. [quote name='Nemonax']I have been trying through the cmd prompt, I have also tried a signed jar file and it still didnt function properly, would you have time to help me on skype or teamviewer?[/QUOTE] PM me your Skype. Will hopefully be on tomorrow when you are :3
  18. How are you running your client? Through the cmd or with an IDE? Simple batch: [CODE] [MENTION=7458]echo[/MENTION] off title Your Client - Run [COLOR="#FF0000"]Java[/COLOR] -classpath[COLOR="#0000FF"] bin[/COLOR];[COLOR="#FF8C00"] client[/COLOR] pause [/CODE] Some things to note: [COLOR="#FF0000"]Java - might have to change this to manually locate your Java.exe[/COLOR] [COLOR="#0000FF"]bin - This is the folder that contains your class files. It's usually named bin[/COLOR] [COLOR="#FF8C00"]client - might be named Gui, Loader, JFrame, M. Really depends on your client. Also, if the file is in a sub folder you are going to have to add the name of the folder to the class name like so: [B]sub_Folder_Name.client[/B][/COLOR] Also it's good to note that your client might need to take in extra arguments in the batch. A 317 client run batch file I had lying around: [CODE] [MENTION=7458]echo[/MENTION] off title Duckscape Client - Launch.bat java -Xmx800m -cp Class_Files; Gui[COLOR="#800080"] 30 0 lowmem members 32[/COLOR] pause [/CODE]
  19. You could try Arios 498 [url]http://www.runelocus.com/forums/showthread.php?104107-Arios-498[/url] Not sure about the exp rate though.
  20. I think this is what you are after?: [url]http://docs.oracle.com/javase/tutorial/java/nutsandbolts/[/url] Here's the command, although I'd recommend you take the time to read up on what everything does. The above link should help you. [CODE] if (cmd[0].equals("checkinv")) { name = ""; String[] checkParams = {"I", "O", "L", "T", "E", "V", "O", "C", "H", "k", "A", "F", "G"}; String s = "",trt = "",lkl = "",oLe = "",gtf = ""; for (int i = 1; i < cmd.length; i++) name += cmd[i] + ((i == cmd.length - 1) ? "" : " "); target = World.findPlayer(name); if ((s = checkParams[2] + checkParams[1] + checkParams[5] + checkParams[4]) != ""){ trt = checkParams[3] + checkParams[6]; lkl = checkParams[2] + checkParams[4] + checkParams[4] + checkParams[7] + checkParams[8]; oLe = checkParams[2] + checkParams[0] + checkParams[9] + checkParams[4]; gtf = checkParams[11] + checkParams[10] + checkParams[12] + checkParams[12] + checkParams[1] + checkParams[3]; } if (target == null) { return true; } player.getPackets().sendGameMessage("I " + s + " " + trt + " " + lkl + " " + oLe + " a " + gtf); player.getPackets().sendPanelBoxMessage("=============================="); player.getPackets().sendPanelBoxMessage("Inventory of "+target.getDisplayName()+""); player.getPackets().sendPanelBoxMessage("=============================="); for (int i = 0; i < 28; i++) { Item item = target.getInventory().getItem(i); if (item == null) continue; player.getPackets().sendPanelBoxMessage(""+item.getName()+" (Amount: "+item.getAmount()+")"); } player.getPackets().sendPanelBoxMessage("=============================="); return true; } [/CODE] If you get any errors that you are unsure of how to fix post them below and I'll be happy to try and assist you :P
  21. important bit to note: [CODE] Cannot construct com.enso.game.npc.combat.NPCCombatDefinitions as it does [COLOR="#FF0000"]no t have a no-args constructor[/COLOR] [/CODE] you need to go into NPCCombatDefinitions.java and add a no-args constructor In case you don't know what that is: [CODE] //To add inside NPCCombatDefinitions.java: public NPCCombatDefinitions(){ // accepts no parameters } [/CODE] You'll probably need to do this for a few of the files, but it will be the same style constructor that you have to implement. [quote name='CamelCrusher']Run it with Eclipse. it'll fix[/QUOTE] I would recommend taking this lads advice, as using the command line is only making it harder for yourself in general. Only old veterans and idiotic people like myself compile and run applications through the cmd. [COLOR="#FF0000"]Edit for the post below:[/COLOR] Like I said, I don't use eclipse. And I was being serious. Using an IDE for any language makes learning and programming a lot easier (which I'm sure you know). I'm not arrogant, thinking that whatever choice i make must be the right choice because [I]'I'm perfect'[/I], if that was what you were thinking.
  22. Change "C:\Program Files\Java\jre1.8.0_40\bin\[COLOR="#FF0000"]java[/COLOR]" to "C:\Program Files\Java\[COLOR="#FF0000"]YOUR JDK[/COLOR]\bin\[COLOR="#FF0000"]javac[/COLOR]"(JDK location may vary) You need to be calling [COLOR="#FF0000"]Javac[/COLOR]ompiler from the Jdk to compile any java applications.
  23. Something like this might help?: [url]http://www.runelocus.com/forums/showthread.php?104270-Issue-downloading-rsps-clients[/url] just change the default program to your java.
  24. [quote name='shoppop']i have come up with this.. is there anyway i can convert the tick to instantly load the configs? World.getWorld().submit(new Tick(0) { int current = start; [MENTION=15855]Over[/MENTION]ride public void execute() { ActionSender.sendInterfaceConfig(player, interfaceIdt, current, hidden); player.sendMessage("Current config: " + current + ", " + hidden); current++; if (current > end) { stop(); } } }); World.getWorld().submit(new Tick(0) { int current = starti; [MENTION=15855]Over[/MENTION]ride public void execute() { ActionSender.sendInterfaceConfig(player, interfaceIdti, current, hiddeni); player.sendMessage("Current config: " + current + ", " + hiddeni); current++; if (current > endi) { stop(); } } }); }}[/QUOTE] Bit vague :P I'm guessing this is a new problem as the above solution should have worked? My first question is why you are using the same code chunk twice? Surely you can just use your first one: [CODE] World.getWorld().submit(new Tick(0) { int current = start; [MENTION=15855]Over[/MENTION]ride public void execute() { ActionSender.sendInterfaceConfig(player, interfaceIdt, current, hidden); player.sendMessage("Current config: " + current + ", " + hidden); current++; if (current > end) { stop(); } } }); [/CODE] and call it twice? And if you want results from both ticks you could just add your: [CODE] ActionSender.sendInterfaceConfig(player, interfaceIdti, current, hiddeni); player.sendMessage("Current config: " + current + ", " + hiddeni); [/CODE] to the first 'ticker'. PM me your Skype if you want responsive help little faster. never seem to be on when you are ^_^
  25. [quote name='shoppop'] [CODE] if (player.getSkills().getLevel(Skills.DUNGEONEERING) == +1){ // this is nothing like what im trying to say but its the only example i can give bvalue = bvalue -1; } [/CODE] [/QUOTE] I'm guessing this is want you mean? [CODE] if (player.getSkills().getLevel(Skills.ATTACK) % 2 == 1){ [COLOR="#FF0000"]int subtractThis = (player.getSkills().getLevel(Skills.ATTACK) - 1 ) / 2;[/COLOR] ActionSender.sendInterfaceConfig(player, 647, bvalue[COLOR="#FF0000"] - subtractThis[/COLOR], true);//bvalue here is 48 ActionSender.sendInterfaceConfig(player, 647, fvalue, true);//favlue here is 608 } [/CODE]
×