Reported in #31: when a player uses the typed chat box, everyone else sees the chat bubble over their toon but they do not. Speedchat works fine for the sender. The asymmetry is in how the two paths broadcast. Speedchat goes through the b_setSC family (b_setSC -> setSC + d_setSC), which calls the receiver-side handler locally on the sender before sending the DC update, so the sender's bubble appears. Typed chat in TalkAssistant.sendOpenTalk only does sendUpdate('setTalk', ...) and relies on the DC broadcast to reach other clients. The 'setTalk' field is not echoed back to the originating client by the AI, so the DistributedToon.setTalk handler that calls displayTalk never fires for the sender's own message. Mirror the speedchat pattern by also calling setChatAbsolute locally after sendUpdate. This is the same call DistributedPlayer.setSC makes when it displays speedchat for the sender, so the bubble behavior is now identical between the two input paths. Closes #31 |
||
|---|---|---|
| astron | ||
| darwin | ||
| etc | ||
| linux | ||
| otp | ||
| toontown | ||
| win32 | ||
| .gitignore | ||
| LICENSE | ||
| PPYTHON_PATH | ||
| README.md | ||
| requirements.txt | ||
| vscode.code-workspace | ||
README.md
Open Toontown
This repository contains the code for Open Toontown, based on the latest version of Disney's Toontown Online (sv1.0.47.38).
Setup
After cloning the repository, you will need to clone the resources repository inside the directory where you cloned the source repo.
Secondly, you would have to install and use a specific version of Panda3D, which includes libotp and libtoontown. You can use the prebuilt installers for your operating system here:
Windows
You can install Panda3D SDK through the 32-bit (x86) or 64-bit (x86_64) installers here:
Panda3D SDK for Windows (Python 3.9, x86, Last Updated: January 11, 2023)
Panda3D SDK for Windows (Python 3.9, x86_64, Last Updated: January 11, 2023)
If you install Panda3D outside the default directory (or use the x86 installer), you may have to change the PPYTHON_PATH file located in the root directory and change it to your install directory.
macOS 10.9+
Panda3D Wheel for macOS 10.9+ (Python3.9, x86_64)
Installing the provided Panda3D wheel requires Python 3.9, which is not installed on your system by default whatsoever. We recommend installing Python 3.9 through Homebrew (Make sure that the xcode command line tools are installed first xcode-select --install):
$ brew install python@3.9
(This will symlink Python 3.9 to python3.9 and pip to pip3).
After installing Python 3.9. You can then install the wheel by using pip:
$ pip install panda3d-1.11.0-cp39-cp39-macosx_10_9_x86_64.whl
Linux (Building your own)
If you use Linux, or are interested in building Panda3D yourself, head on over to our Panda3D fork and read the "Building Panda3D" section on the README file there.
Starting the Server and Game
To start the server and run the game locally, go to your platform directory (win32 for Windows, darwin for Mac and linux for Linux), and make sure you start the following scripts in order:
Astron Server -> UberDOG (UD) Server -> AI (District) Server -> Game Client
Be sure to wait till the servers have finished booting before starting the next. If done correctly, you should be able to make your toon and play the game! There is no support for Magic Words (commands) yet, but it is currently in the works!
Contributing
Submitting issues and Pull Requests are encouraged and welcome.
How you commit changes is your choice, but please include what you did and a basic description so that we know exactly what was modified. Here are some examples:
minigames: Fix crash when entering the trolleyracing: Fix possible race condition when two racers tiedgolf: Refix wonky physics once and for all (hopefully)