Jump to content

Arthur

Members
  • Content count

    76
  • Joined

  • Last visited

  • Days Won

    22

Posts posted by Arthur


  1. I'd imagine you'd not only have to create your own stamp file (e.g. like this), but you'd also have to create an entry for it in stamps.json (located in play/web_service/game_configs/stamps.json on your media server). Afterwards you'd have to create a trigger in the client that tells the server when to give the user the stamp. You can probably do this by creating a dependency.

    For example, if you'd like to give the user a stamp for joining a particular room, you'd create a dependency (in dependencies.json) that would listen for the joinRoom (jr) packet and then have it send the stamp packet if the user joined that room. You can read more about creating dependencies here.

    You'd probably want to edit Kitsune's crumbs as well - both the URL in World.php and the file in the crumbs folder if it exists.


  2. cpp3mDg.png

    Greetings, everyone! I am pleased to announce the release of Houdini, a Club Penguin private server written in Python for the AS2 protocol. As with all of my large projects, Houdini will be hosted on GitHub and will be completely open for everyone to use and contribute to.

    You can find the repository to Houdini here.

    Aside from the standard Club Penguin stuff, Houdini also has the following features:

    • Hot-reloading; modules are safely reloaded at run-time if a change is detected. Meaning you don't need to restart the server after editing any handler.
    • ORM based database transactions via SQLAlchemy.
    • Bcrypt password hashing.

    A lot more is planned for Houdini, including multiplayer games (such as Card Jitsu and Find Four), as well as throttling and plugin systems.

    For the time being, report any bugs you find through the issue-tracker on the repository or to me on Discord.

    Have a nice day!

    • Like 2
    • Haha 1

  3. Spoiler

    [Verse 1]
    Breathing in the dark
    Lying on its side
    The ruins of the day
    Painted with a scar
    And the more I straighten out
    The less it wants to try
    The feelings start to rot
    One wink at a time

    [Chorus 1]
    Oh
    Forgiving who you are
    For what you stand to gain
    Just know that if you hide
    It doesn't go away
    When you get out of bed
    Don't end up stranded
    Horrified with each stone
    On the stage
    My little dark age

    [Verse 2]
    Picking through the cards
    Knowing what's nearby
    The carvings on the face
    Say they find it hard
    And the engine's failed again
    All limits of disguise
    The humor's not the same
    Coming from denial

    [Chorus 2]
    Oh
    I grieve in stereo
    The stereo sounds strange
    I know that if you hide
    It doesn't go away
    If you get out of bed
    And find me standing all alone
    Open-eyed
    Burn the page
    My little dark age

    [Chorus 3]
    I grieve in stereo
    The stereo sounds strange
    You know that if it hides
    It doesn't go away
    If I get out of bed
    You'll see me standing all alone
    Horrified
    On the stage
    My little dark age

    [Bridge]
    Giddy with delight
    Seeing what's to come
    The image of the dead
    Dead ends in my mind

    [Chorus 4]
    Policemen swear to god
    Love's seeping from the guns
    I know my friends and I
    Would probably turn and run
    If you get out of bed
    Come find us heading for the bridge
    Bring a stone
    All the rage
    My little dark age

    [Chorus 3]
    I grieve in stereo
    The stereo sounds strange
    I know that if you hide
    It doesn't go away
    If you get out of bed
    And find me standing all alone
    Open-eyed
    Burn the page
    My little dark age

    [Outro]
    All alone
    Open-eyed
    Burn the page
    My little dark age

     


  4. 9 hours ago, Jamie said:

    You're probably going to laugh but why not MyBB instead of IPBoard, I feel it's the better forum software regardless of one being free and the other paid

    I did consider MyBB at some point, but ultimately opted for IPBoard because of the familiarity it has with the community, and simply due to the fact that the themes for IPB have a much more premium look and feel.

    That being said, I have seen good-looking communities made with MyBB, but I imagine those communities have a crazy amount of modifications in place to make the software nice.


  5. 13 hours ago, Jamie said:

    Well, it'd sure look nice and clean but I feel that there should be more customizable options for users overall - whether that be username colour or/and title.

    Users with 5 or more content items are now allowed to change their rank title.

    I would love to introduce customizable username colors, perhaps in the form of custom groups (or clubs now?) but due to IPB's scarce documentation I'm not sure that would be feasibly possible.


  6. 6 hours ago, Jad said:

    That's incorrect. 

     

    Airtower: Loads All packet listeners, also sends packet to server.

    Book: Not too sure, maybe for the redemption system? It's called "Mail" in the dependencies so it might be related to mail though.

    Club_penguin: It's the main file that controls everything. It's the one that should be loaded in the beginning.

    Login: It's basically the login screen and it's responsible for logging in a player with the help of sentry and the airtower.

    Sentry: Basically a hashing SWF as far as I know.

    Shell: Responsible for loading the crumbs and dependencies file. It also has alot of get and set functions.

    Engine: It's the main responder to all packets sent by the server which are processed by airtower, even though shell also takes a small part in responding.

    Phone: EPF Phone.

    Igloo: Basically it handles all MY igloo related stuff.

     

    Not too sure about the rest so I wouldn't like to get any wrong information.

     

    I believe book is responsible for part of the mail system, especially the buddy/recipient portion. And club_penguin (IIRC?) also handles most of the AS2<->AS3 communication via SWFBridge. Gridview deals with igloo customization too.

    • Like 2

  7. The biggest difference for the players will be that Kitsune has multiplayer game handlers for find four and sled racing, whereas Sweater doesn't have any. Kitsune also has stampbook handlers, and possibly some others I'm forgetting. The only thing that Sweater really has over Kitsune feature-wise is that it has some puffle functionality, although that's easy to implement yourself.

    There's also a big difference between the two as far as structure is concerned. Handlers in Kitsune are split up into multiple files to make the code easier to navigate and maintain, whereas Sweater's handlers are all placed into a single file.

    One major downside to AS2 Kitsune that I've discovered is that it stores data in a format that is inconsistent with the AS2 protocol, this is most noticeable when dealing with igloo data. This is due to the fact that Kitsune was originally designed for the AS3 protocol.

    A quick run down:

    Kitsune

    • Multiplayer games (Find Four and Sled Racing)
    • Better code structure
    • Data stored in the database is inconsistent with what you're actually sending (may not be a big deal for you)
    • Creates a new database connection for every client

    Sweater

    • Puffle handlers
    • All the handlers are stored in a single file
    • A bot plugin
    • Single database connection for everyone

     

    • Like 1

  8. Smite is a third-person multiplayer online battle arena (MOBA) video game developed and published by Hi-Rez Studios for Microsoft Windows, macOS PlayStation 4 and Xbox One. In Smite, players control a god, goddess, or other mythological figure and take part in team based combat, using abilities and tactics against other player-controlled gods and non-player-controlled minions.

    Reaaally fun game. If any of you (want to) play it, feel free to add me and we'll party up. My name is Youuuuuu. I'm level 30 (max) and can fill in any role. :)

    If you play it, what are your favorite gods? I personally have several for each role. 

    When playing as an ADC/Hunter I prefer Skadi, Neith and Artemis. I also like Medusa and Jing Wei.

    I tend to pick Ymir, Xing Tian and Geb when I play a Guardian. Bacchus is fun too.

    When it comes to mages, I opt for Nu Wa, Vulcan, Aphrodite and Chang'e. I'm pretty decent at Zeus and Ra too, but who isn't? :)

    I don't play assassins very often but I like Bastet, Kali, Fenrir and Loki🙈

    The only warriors I like and play are Odin and Cu Chulainn.

    F U N

    On the topic of MOBAs, are there any others you play (aside from League)? I've tried Paragon but its graphical quirks turned me off.. The anti-aliasing in particular was very bizarre, and turning it off resulted in some nasty artifacts I've never seen before..

    • Like 2

  9. @Master's response is correct. If you're working with an AS2 media server, all you have to do is edit your loader to point to your Hamachi IP, then have your friend access the game by visiting the IP in their browser while they're connected to Hamachi (if I remember correctly).

    Things will get a little complicated if you're using an AS3 media server.. Maybe you could have your friend edit their hosts file to point the sub-domains to your Hamachi IP? e.g. media1.l.ocalhost, media2.localhost, etc.

    You may also need to edit your global_crumbs file to point to localhost instead of 127.0.0.1, and have your friend make an entry for localhost.


  10. 36 minutes ago, ReidTJ said:

    What would be in directory?

    Your cross-domain policy file (crossdomain.xml) and a services file (services without any extension). Here's what it should contain:

    {"cpblog":"http://www.localhost/%@mobile-app/whats-new","cp_event-service":"https://api.localhost/clubpenguin/mobile/v2","cdn-baseurl":"http://media8.localhost/mobile/payloads","appstore-sledracer":"http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=894932355","catalog-service":"https://api.localhost/clubpenguin/mobile/v2","cjsnow_assets":"http://media1.localhost/game/mpassets/minigames/cjsnow/en_US/deploy","cp-baseurl-ui-clubpenguin-1.6":"http://media8.localhost/mobile/cp-mobile-ui/clubpenguin_v1_6/<locale_string>/deploy/metaplace/devicepng","igloo-renderer-service":"http://igloo.localhost:80","cp-baseurl-ui-clubpenguin-1.5":"http://media8.localhost/mobile/cp-mobile-ui/clubpenguin_v1_5/<locale_string>/deploy/metaplace/devicepng","cp-baseurl-ui-clubpenguin-1.4":"http://media8.localhost/mobile/cp-mobile-ui/clubpenguin_v1_4/<locale_string>/deploy/metaplace/ipad2","catalog-image-service":"http://media8.localhost/catalog","message-service":"https://api.localhost/clubpenguin/mobile/v2","playdom-geopixel-service":"https://api.localhost/datatech/serverlog/v1/g","appstore-pufflewild":"http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=767801968","game_config_v2":"http://media1.localhost/play/<locale_string>/web_service/game_configs/","avatar-renderer-service-cellophane":"https://api.localhost/clubpenguin/paperdoll-renderer/v1","player-data-service":"https://api.localhost/clubpenguin/mobile/v2","avatar-image-service_photos":"http://media8.localhost/game/items/images/paper/image","character-avatar-service":"http://media1.friends.go.com/images/CP","games-service":"https://api.localhost/clubpenguin/mobile/v2","apple-product-id-service":"https://api.localhost/clubpenguin/mobile/v2","playdom-logging-service":"https://api.localhost/datatech/serverlog/v1/json","catalog-items-images":"http://media8.localhost/game/items/images/","avatar-image-service_items":"http://media8.localhost/game/items/images/paper/image","cp_ui_locfile":"http://media8.localhost/mobile/localization/<version>/<locale_string>.json.gz","friends-tigase-server":"friends.localhost:5223","login-service":"https://api.localhost/clubpenguin/mobile/v2","game_config":"http://media1.localhost/play/%@/web_service/game_configs/","commerce-service":"https://api.localhost/clubpenguin/mobile/v2","store-product-id-service":"https://api.localhost/clubpenguin/mobile/v2","account-service":"https://api.localhost/clubpenguin/mobile/v2","avatar-renderer-service":"http://paperdoll.localhost","pc-baseurl-ac":"https://api.localhost/social/autocomplete/v2/search","rewards-service":"https://api.localhost/clubpenguin/mobile/v2","igloo-renderer-service-cellophane":"https://api.localhost/clubpenguin/igloo-renderer/v1","cp-mobile-services":"https://api.localhost/clubpenguin/mobile/v2","avatar-image-service":"http://media8.localhost/game/items/images/paper","cpnewspaper":"http://www2.localhost/%@cpnewspaper","pufflewild-cdn":"http://dipw.disney.edgesuite.net/pw","avatar-image-service_icons":"http://media8.localhost/game/items/images/paper/icon","cp-baseurl-ui":"http://media8.localhost/mobile/cp-mobile-ui/<locale_string>/deploy/metaplace/ipad2","cjsnow_card_assets":"http://media1.localhost/game/mpassets/minigames/cjsnow/en_US/deploy/png/ipad2/cards/","cp-baseurl-ui-1.3":"http://media8.localhost/mobile/cp-mobile-ui/v1_3/<locale_string>/deploy/metaplace/ipad2"}

    Simply open up a text-editor (such as Notepad++ or Sublime Text) and paste that into the editor and save the file as services in your directory folder. You may need to create a new entry in your webserver's configuration for the directory sub-domain.

×