Thread: Apollo - Implementing Door Functionality - I've No idea What I'm Doing

Results 1 to 9 of 9
  1. #1 Apollo - Implementing Door Functionality - I've No idea What I'm Doing 
    Registered Member FiftyTifty's Avatar
    Join Date
    Aug 2015
    Age
    28
    Posts
    56
    Thanks given
    7
    Thanks received
    5
    Rep Power
    11
    'Tis me again, lads!

    Seeing as how I don't know a lick of Ruby, and that Apollo does not have functioning doors (doors are present, but you can't open/close them), I figured a good starting task, would be to add functioning doors.

    The thing is, err, I've not got much idea as to what I'm doing.

    What I've done so far, is I've copied the mining plugin to a new folder named "aaa_doors". I've now edited the pickaxe.rb script to become the following:

    Code:
    require 'java'
    
    java_import 'org.apollo.game.model.Animation'
    
    DOORS = {}
    DOOR_IDS = []
    
    class Door
    	attr_reader :id, :pulses
    	
    	def initialize(id, pulses)
    		@id = id
    		@pulses = pulses
    	end
    end
    
    def append_door(door)
    	DOORS[door.id] = door
    	DOOR_IDS << door.id
    end;
    
    append_door(Door.new(3))
    append_door(Door.new(4))
    append_door(Door.new(22))
    append_door(Door.new(24))
    append_door(Door.new(59))
    append_door(Door.new(71))
    append_door(Door.new(72))
    append_door(Door.new(73))
    append_door(Door.new(74))
    append_door(Door.new(77))
    append_door(Door.new(78))
    append_door(Door.new(79))
    append_door(Door.new(80))
    append_door(Door.new(81))
    append_door(Door.new(82))
    append_door(Door.new(92))
    append_door(Door.new(93))
    append_door(Door.new(99))
    append_door(Door.new(102))
    append_door(Door.new(131))
    append_door(Door.new(134))
    append_door(Door.new(135))
    append_door(Door.new(136))
    append_door(Door.new(779))
    append_door(Door.new(1504))
    append_door(Door.new(1505))
    append_door(Door.new(1506))
    append_door(Door.new(1507))
    append_door(Door.new(1508))
    append_door(Door.new(1511))
    append_door(Door.new(1512))
    append_door(Door.new(1513))
    append_door(Door.new(1514))
    append_door(Door.new(1515))
    append_door(Door.new(1516))
    append_door(Door.new(1517))
    append_door(Door.new(1519))
    append_door(Door.new(1520))
    append_door(Door.new(1530))
    append_door(Door.new(1531))
    append_door(Door.new(1533))
    append_door(Door.new(1534))
    append_door(Door.new(1536))
    append_door(Door.new(1537))
    append_door(Door.new(1539))
    append_door(Door.new(1540))
    append_door(Door.new(1542))
    append_door(Door.new(1543))
    append_door(Door.new(1544))
    append_door(Door.new(1545))
    append_door(Door.new(1573))
    append_door(Door.new(1574))
    append_door(Door.new(1575))
    append_door(Door.new(1576))
    append_door(Door.new(1591))
    append_door(Door.new(1594))
    append_door(Door.new(1595))
    append_door(Door.new(1804))
    append_door(Door.new(1805))
    append_door(Door.new(1967))
    append_door(Door.new(1968))
    append_door(Door.new(1991))
    append_door(Door.new(2000))
    append_door(Door.new(2002))
    append_door(Door.new(2025))
    append_door(Door.new(2032))
    append_door(Door.new(2033))
    append_door(Door.new(2034))
    append_door(Door.new(2035))
    append_door(Door.new(2036))
    append_door(Door.new(2037))
    append_door(Door.new(2048))
    append_door(Door.new(2049))
    append_door(Door.new(2054))
    append_door(Door.new(2069))
    append_door(Door.new(2112))
    append_door(Door.new(2184))
    append_door(Door.new(2188))
    append_door(Door.new(2189))
    append_door(Door.new(2192))
    append_door(Door.new(2193))
    append_door(Door.new(2266))
    append_door(Door.new(2267))
    append_door(Door.new(2309))
    append_door(Door.new(2338))
    append_door(Door.new(2397))
    append_door(Door.new(2398))
    append_door(Door.new(2399))
    append_door(Door.new(2406))
    append_door(Door.new(2416))
    append_door(Door.new(2427))
    append_door(Door.new(2428))
    append_door(Door.new(2429))
    append_door(Door.new(2430))
    append_door(Door.new(2431))
    append_door(Door.new(2520))
    append_door(Door.new(2521))
    append_door(Door.new(2526))
    append_door(Door.new(2527))
    append_door(Door.new(2528))
    append_door(Door.new(2529))
    append_door(Door.new(2534))
    append_door(Door.new(2537))
    append_door(Door.new(2546))
    append_door(Door.new(2547))
    append_door(Door.new(2548))
    append_door(Door.new(2549))
    append_door(Door.new(2550))
    append_door(Door.new(2551))
    append_door(Door.new(2534))
    append_door(Door.new(2535))
    append_door(Door.new(2536))
    append_door(Door.new(2537))
    append_door(Door.new(2538))
    append_door(Door.new(2539))
    append_door(Door.new(2595))
    append_door(Door.new(2621))
    append_door(Door.new(2622))
    append_door(Door.new(2624))
    append_door(Door.new(2625))
    append_door(Door.new(2626))
    append_door(Door.new(2627))
    append_door(Door.new(2628))
    append_door(Door.new(2631))
    append_door(Door.new(2705))
    append_door(Door.new(2706))
    append_door(Door.new(2712))
    append_door(Door.new(2861))
    append_door(Door.new(2862))
    append_door(Door.new(2863))
    append_door(Door.new(2997))
    append_door(Door.new(2998))
    append_door(Door.new(3014))
    append_door(Door.new(3017))
    append_door(Door.new(3018))
    append_door(Door.new(3019))
    append_door(Door.new(3024))
    append_door(Door.new(3025))
    append_door(Door.new(3026))
    append_door(Door.new(3027))
    append_door(Door.new(3220))
    append_door(Door.new(3221))
    append_door(Door.new(3270))
    append_door(Door.new(3271))
    append_door(Door.new(3333))
    append_door(Door.new(3334))
    append_door(Door.new(3335))
    append_door(Door.new(3336))
    append_door(Door.new(3743))
    append_door(Door.new(3745))
    append_door(Door.new(3746))
    append_door(Door.new(3747))
    append_door(Door.new(3776))
    append_door(Door.new(3778))
    append_door(Door.new(3810))
    append_door(Door.new(4148))
    append_door(Door.new(4165))
    append_door(Door.new(4166))
    append_door(Door.new(4247))
    append_door(Door.new(4248))
    append_door(Door.new(4250))
    append_door(Door.new(4251))
    append_door(Door.new(4423))
    append_door(Door.new(4424))
    append_door(Door.new(4425))
    append_door(Door.new(4426))
    append_door(Door.new(4427))
    append_door(Door.new(4428))
    append_door(Door.new(4429))
    append_door(Door.new(4430))
    append_door(Door.new(4465))
    append_door(Door.new(4466))
    append_door(Door.new(4467))
    append_door(Door.new(4468))
    append_door(Door.new(4487))
    append_door(Door.new(4490))
    append_door(Door.new(4491))
    append_door(Door.new(4492))
    No, that's not all of the doors. Why the hell are there so many different doors!?

    *Achem*

    The thing is, I've got no clue what I'm doing. What would I do with the above script, supposing it is sound? Should I even have a script which defines each door base object? What would be the proper way to go about adding door functionality, keeping all the code as a plugin (no core edits)?

    Also, the append_door(Door.New()) mess is a pain in the ass. Surely a loop, that cycles through a text list, would be better? Thing is, I can't find any sort of text-file-list functionality for Ruby. In Pascal, I'd do something like the following:

    Code:
    var
    	ListOfDoorIDs: TStringList;
    	i: integer;
    	
    begin
    	ListOfDoorIDs := TStringList.Create();
    	ListOfDoorIDs.LoadFromFile(GetCurrentDir+'\ListOfDoorIds.txt');
    	
    	for i := 0 to ListOfDoorIDs.Count() - 1 do begin
    		append_door(Door.new(ListOfDoorIds[i]));
    	end;
    end;
    Which, as you can see, is a hell of a lot easier to do. Does Ruby have anything like Pascal's TStringList? Google came up with 3rd party libraries, but I've got no clue how to implement 'em; I'm a novice Pascal scripter, not a JVM professional.
    Reply With Quote  
     

  2. #2  
    Super Donator

    StanDev's Avatar
    Join Date
    Apr 2014
    Posts
    660
    Thanks given
    82
    Thanks received
    255
    Rep Power
    592
    I recommend you don't start with apollo if you don't know ruby since as far as I know, all plugins are in ruby.
    Reply With Quote  
     

  3. #3  
    Registered Member FiftyTifty's Avatar
    Join Date
    Aug 2015
    Age
    28
    Posts
    56
    Thanks given
    7
    Thanks received
    5
    Rep Power
    11
    Quote Originally Posted by icebrick View Post
    I recommend you don't start with apollo if you don't know ruby since as far as I know, all plugins are in ruby.
    From what I gathered, there are server packages that utilize Pascal for plugins, and there are few other packages that actually have a plugin system.

    I know neither Ruby nor Java; the only coding language I'm familiar with is Pascal. I've been reading up on the current server packages, and it does seem that Apollo is the way to go; what with it having a plugin system, and a better performing core than the other packages.

    Though I'm all ears for recommendations for better server packages. Something with basic functionality (such as the freakin' doors) would be decent, but that's for another thread, I suppose.


    So aye. Since I've already got Apollo set up, and I've got the motivation to develop with Ruby, how fares the script I posted, and how should I move from there?
    Reply With Quote  
     

  4. #4  
    Super Donator

    StanDev's Avatar
    Join Date
    Apr 2014
    Posts
    660
    Thanks given
    82
    Thanks received
    255
    Rep Power
    592
    Quote Originally Posted by MajinCry View Post
    From what I gathered, there are server packages that utilize Pascal for plugins, and there are few other packages that actually have a plugin system.

    I know neither Ruby nor Java; the only coding language I'm familiar with is Pascal. I've been reading up on the current server packages, and it does seem that Apollo is the way to go; what with it having a plugin system, and a better performing core than the other packages.

    Though I'm all ears for recommendations for better server packages. Something with basic functionality (such as the freakin' doors) would be decent, but that's for another thread, I suppose.


    So aye. Since I've already got Apollo set up, and I've got the motivation to develop with Ruby, how fares the script I posted, and how should I move from there?
    Sorry I'm no good in ruby myself, I suggest u look at thenewboston his tuts for ruby, here is a link to the playlist: http://www.youtube.com/playlist?list=PL1512BD72E7C9FFCA
    And you might also want to check out his java intermediate tutorials since you're already familiar with OOP.
    If you in the end feel like you shouldn't start with apollo, I suggest runesource

    I hope this helped you in the slightest bit.
    Reply With Quote  
     

  5. #5  
    Registered Member FiftyTifty's Avatar
    Join Date
    Aug 2015
    Age
    28
    Posts
    56
    Thanks given
    7
    Thanks received
    5
    Rep Power
    11
    Learning from tutorials/books/whatever does me no good; I get bored of them within five minutes.

    'Twas the case with Pascal, but there was a lad who was willing to help guide me as I floundered with the code. Now I'm able to actually do stuff with it.

    The main problem with Apollo, is that the plugins don't have detailed comments. Hell, they don't have any. How big is the Apollo community here? Surely there must be a few lads who know their way around it.

    I guess I can check out Runesource, but...Eh, I'd still like to stick with Apollo. Guess I'll wait a day or twa, t'see if anybody else can give their input.
    Reply With Quote  
     

  6. #6  
    Super Donator

    StanDev's Avatar
    Join Date
    Apr 2014
    Posts
    660
    Thanks given
    82
    Thanks received
    255
    Rep Power
    592
    Quote Originally Posted by MajinCry View Post
    Learning from tutorials/books/whatever does me no good; I get bored of them within five minutes.

    'Twas the case with Pascal, but there was a lad who was willing to help guide me as I floundered with the code. Now I'm able to actually do stuff with it.

    The main problem with Apollo, is that the plugins don't have detailed comments. Hell, they don't have any. How big is the Apollo community here? Surely there must be a few lads who know their way around it.

    I guess I can check out Runesource, but...Eh, I'd still like to stick with Apollo. Guess I'll wait a day or twa, t'see if anybody else can give their input.
    Actually there is an ongoing apollo project atm and it's open source on github, link: http://www.rune-server.org/runescape...80-apollo.html
    Probably ask major for most apollo related questions, he's quite active and please give those tutorials a try the dude giving them is actually hilarious and brings everything with a very good explanation and mixes some good humor into it.
    Reply With Quote  
     

  7. #7  
    Registered Member FiftyTifty's Avatar
    Join Date
    Aug 2015
    Age
    28
    Posts
    56
    Thanks given
    7
    Thanks received
    5
    Rep Power
    11
    Turns out that the new version of Apollo has door functionality. Yay.

    Having a hell of a time to get it to work, though. Currently askin' Major, to see if I'm cocking up somehow.
    Reply With Quote  
     

  8. #8  
    Member Apollo - Implementing Door Functionality - I've No idea What I'm Doing Market Banned


    Luke132's Avatar
    Join Date
    Dec 2007
    Age
    35
    Posts
    12,574
    Thanks given
    199
    Thanks received
    7,106
    Rep Power
    5000
    Doors.cfg is our best shot atm

    Attached imageAttached image
    Reply With Quote  
     

  9. Thankful user:


  10. #9  
    Registered Member
    Join Date
    Dec 2011
    Posts
    793
    Thanks given
    204
    Thanks received
    176
    Rep Power
    173
    Quote Originally Posted by luke132 View Post
    doors.cfg is our best shot atm
    rofl
    Reply With Quote  
     


Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Similar Threads

  1. Replies: 2
    Last Post: 03-16-2013, 04:29 PM
  2. No idea what is wrong
    By Defiled-X in forum Help
    Replies: 2
    Last Post: 02-25-2013, 05:02 AM
  3. Got errors and have no idea what they mean?
    By Silicity in forum RS2 Server
    Replies: 1
    Last Post: 01-30-2013, 12:27 PM
  4. no idea what to call this
    By Lechuur in forum Help
    Replies: 7
    Last Post: 06-24-2011, 11:39 PM
Tags for this Thread

View Tag Cloud

Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •