Coder Social home page Coder Social logo

2011scape / game Goto Github PK

View Code? Open in Web Editor NEW
32.0 1.0 124.0 10.8 MB

An open-source emulator that targets RuneTek-5, client revision 667 (October 4th, 2011)

Home Page: http://2011scape.com

License: Apache License 2.0

Dockerfile 0.02% Kotlin 99.98%

game's Issues

Quest System

This should use the Quest varp/varbit system properly. Ideally the system checks the state of the varbits and acts accordingly.

Changing from resizable to fixed breaks prayer

Current Behavior

After changing from resizable to fixed clicking on prayer icons does nothing

Expected Behavior

Prayers should activate

Steps to Reproduce the Problem

  1. Start in resizable mode
  2. Change to fixed mode
  3. Attempt to activate a prayer

Issues with Instancing

Using this to keep track of issues found while experimenting with pre-existing instance code:

  • Overlay and Underlays are not present in the instanced area
  • Ground height data is not copied over
  • Objects flicker often while moving around the instance
    • Seems to be related to Chunk.sendUpdates. I think this runs every time the player moves.
    • Increasing the height value passed to UpdateZoneFullFollowsMessage results in 2 versions of the instance appearing where only the version with the higher height flickers (video 1)
    • The non-flickering version is created by UpdateZonePartialFollowsMessage
  • Teleing to the instance area after creating it results in a black screen. Does not happen when already in the instance area. (video 2)
    • Teleing out of the black screen results in the UpdateZoneFullFollowsMessage version of the instance appearing wherever you arrive
    • Related to RebuildRegionMessage.
      • Encoder and Message classes already exist
      • We don't currently have a packet structure defined for this.

Video 1 (Flickering)

java_GoSHX86M91.mp4

Video 2 (Teleing after creating instance)

idea64_LEQhCW4xEm.mp4

Imps don't teleport

Current Behavior

Imps never teleport

Expected Behavior

Imps should teleport every ~75 seconds, with a 10% chance on each hit

F2P Quests

  • Imp Catcher
  • Doric's Quest
  • The Knight's Sword
  • Cook's Assistant
  • The Restless Ghost
  • Rune Mysteries
  • The Blood Pact
  • Vampyre Slayer
  • Shield of Arrav
  • Prince Ali Rescue
  • Unstable Foundations
  • Pirate's Treasure
  • Myths of the White Lands
  • Demon Slayer
  • Swept Away
  • Gunnar's Groud
  • Goblin Diplomacy
  • Ernest the Chicken

Add missing out-packets to server.

Opcode Official List Out-Packets List
0 music effect (level up, completing something...) gg.rsmod.game.message.impl.MusicEffectMessage
1 set player option gg.rsmod.game.message.impl.SetOpPlayerMessage
2 sprite on interface component gg.rsmod.game.message.impl.IfSetSpriteMessage
3 accessmask (param1) gg.rsmod.game.message.impl.IfSetEventsMessage
4 refresh window pane (?) -
5 ground item (destroy?) gg.rsmod.game.message.impl.IfOpenSubMessage
6 npc updating gg.rsmod.game.sync.task.NpcSynchronizationTask
7 clan channel related (?) -
8 set vertical scroll gg.rsmod.game.message.impl.IfSetScrollVerticalMessage
9 item on interface gg.rsmod.game.message.impl.IfSetObjectMessage
10 unlock camera -
11 something with objects (model?) (chunk packet) (?) -
12 something with usernames untested (?) -
13 run energy gg.rsmod.game.message.impl.UpdateRunEnergyMessage
14 small config gg.rsmod.game.message.impl.VarbitSmallMessage
15 stop tilt/earthquake -
16 full player model on interface component gg.rsmod.game.message.impl.ObjDelMessage
17 echo (reads 2 ints and sends them back to the server, anti bot?) -
18 full player model on interface component -
19 quick chat (friend chat?) -
20 set settings string -
21 access mask (param2) -
22 interface component animation -
23 something with names untested (?) gg.rsmod.game.message.impl.IfSetAnimMessage
24 keep alive -
25 something with ground items untested (?) -
26 stop all animations (?) gg.rsmod.game.message.impl.UpdateZoneFullFollowsMessage
27 create object (?) -
28 move camera gg.rsmod.game.message.impl.LocAddChangeMessage
29 clan settings related (?) -
30 music -
31 text on coordinates (?) gg.rsmod.game.message.impl.MidiSongMessage
32 set interface component string -
33 camera tilt/earthquake gg.rsmod.game.message.impl.IfSetTextMessage
34 something with sound (?) -
35 run script related (?) -
36 run script related (?) -
37 full item container gg.rsmod.game.message.impl.UpdateInvFullMessage
38 big config -
39 something with text untested (?) gg.rsmod.game.message.impl.VarpLargeMessage
40 graphics on updating chunk -
41 something with text untested (?) -
42 map region -
43 construct face on interface component (ids from identitykit container) gg.rsmod.game.message.impl.RebuildNormalMessage
44 destroy object (?) -
45 set updating chunk gg.rsmod.game.message.impl.LocDelMessage
46 object animation in updating chunk gg.rsmod.game.message.impl.UpdateZonePartialFollowsMessage
47 ground item related (chunk packet) (?) -
48 something with 'face here' gg.rsmod.game.message.impl.ObjAddMessage
49 run script gg.rsmod.game.message.impl.RunClientScriptMessage
50 logout 2 -
51 'global' string (reads signed short) gg.rsmod.game.message.impl.LogoutFullMessage
52 minimap flag position -
53 set random.dat -
54 ignore list (?) gg.rsmod.game.message.impl.VarcStringMessage
55 model on interface component gg.rsmod.game.message.impl.SetMapFlagMessage
56 logout 1 -
57 ground item (chunk packet) (?) -
58 set grand exchange item status -
59 projectile -
60 sets aBoolean4782 of type 5 interface components, not sure what it is (?) -
61 sound effect on updating chunk (?) (automatic volume i guess?) -
62 window pane gg.rsmod.game.message.impl.MapProjAnimMessage
63 minimap status -
64 player updating -
65 checks for client edits -
66 see cs opcode 7101 theora/vorbis related (?) -
67 chat configs gg.rsmod.game.message.impl.IfOpenTopMessage
68 close interface -
69 personal npc animation (?) -
70 something with item containers (?) -
71 something with interfaces type19 update (?) -
72 sent pm -
73 sound effect 2 gg.rsmod.game.message.impl.IfCloseSubMessage
74 clan channel related (?) -
75 item container update -
76 hint icon -
77 set interface RGB (reads 5 highest bit of each RGB component) -
78 create ground item (chunk packet) -
79 big bitconfig -
80 friend list update -
81 config reset (?) -
82 set updating chunk and read multiple chunk updates -
83 world list gg.rsmod.game.message.impl.ObjCountMessage
84 change default cursor/walk here option gg.rsmod.game.message.impl.VarbitLargeMessage
85 untested (some chunk packet) (?) -
86 public chat -
87 camera related but won't do anything (?) gg.rsmod.game.message.impl.UpdateZonePartialEnclosedMessage
88 skill update -
89 switch world (citadels/fight pits i guess?) untested -
90 set component font -
91 object animation (not a chunk packet) gg.rsmod.game.message.impl.PublicChatMessage
92 quickchat related (?) -
93 npc head on interface gg.rsmod.game.message.impl.UpdateStatMessage
94 something with objects (chunk packet) (?) -
95 something with lobby? (?) -
96 small config gg.rsmod.game.message.impl.LocAnimMessage
97 message -
98 system update related (?) gg.rsmod.game.message.impl.IfSetNpcHeadMessage
99 set interface component position -
100 ignore list update -
101 sound effect1 gg.rsmod.game.message.impl.VarpSmallMessage
102 set camera angle gg.rsmod.game.message.impl.MessageGameMessage
103 something with players/npcs/gfx (?) gg.rsmod.game.message.impl.UpdateRunWeightMessage
104 display other players full model on interface componenet, requires a hash of their name or it won't show -
105 sets a var of interface component used in cs opcode 6705, but opcode never called when testing around (?) -
106 'global' small config gg.rsmod.game.message.impl.SynthSoundMessage
107 big 'global' config -
108 see cs opcode 7100 theora/vorbis related (?) gg.rsmod.game.message.impl.MapAnimMessage
109 player head on interface -
110 something with interfaces type13 update (?) -
111 something with text untested (?) gg.rsmod.game.message.impl.VarcSmallMessage
112 show/hide interface component gg.rsmod.game.message.impl.VarcLargeMessage
113 clan chat (?) -
114 sound effect2 on updating chunk (auto volume?) (chunk packet) (?) gg.rsmod.game.message.impl.IfSetPlayerHeadMessage
115 receive pm -
116 sound effect2 (simpler version of packet 78) -
117 interface component rotation/zoom gg.rsmod.game.message.impl.IfSetHideMessage
118 some global flag for npcs (?) -
119 something with attack option position (?) -
120 system update -
121 something with chat/mute (?) gg.rsmod.game.message.impl.SynthSoundRepeatMessage
122 point camera at coordinates -
123 construct map region -
124 reverse dns lookup and set on lobby -
125 something with interfaces type18 update (?) gg.rsmod.game.message.impl.UpdateRebootTimerMessage
126 quick chat (clan chat?) -
127 play cutscene from idx35 -
128 somehing with text untested (?) -
129 chat config related (?) -
130 set friend server connecting state -
131 something with idx36 and interface componenets (?) -
132 something with interfaces untested (?) -
133 something with text untested (?) -
134 openjs (javascript?) -
135 'global' string (reads unsigned short) -
136 see cs opcode 7102 theora/vorbis related (?) -
137 reset sound -
138 social network related (facebook) -
139 something with running clientscripts (?) -
140 some new kind of config, values can be ints, longs and strings see clientscript opcodes 106+ish, bitconfig definitions of these idx2 container 47 -
141 destroys config array -
142 init config array -
143 set int -
144 set string -

Stat restoration

Stats, health and prayer points should restore or decrease if they are not at their actual level.

Hero's Guild

Prioritizing Hero's guild to improve player travel. Not being able to recharge skills necklace and glories has been making travel extremely time consuming and expensive.

Slayer Skill

  • Add slayer points shop
  • Add ability to skip slayer tasks with points
  • Add more slayer tasks

Ladders

This issue addresses all climbable objects across the world (contain climb right click options).
More specifically:

  • Stairs
  • Ladders
  • Trapdoors

Issue when switching between gameframes (fixed/resizeable), looks like it breaks the quest tab clicking event.

Current Behavior

Switching from fixed mode to resizeable or vice-versa can sometimes makes the clicking events in the quest tab (quests) be gone forever for the player until a relogin happens.

Expected Behavior

Switching between gameframes wasn't supposed to break the clicking events of the quest tab.

Steps to Reproduce the Problem

  1. Open the settings (Wrench icon)
    2.Swap between fixed/resizeable modes (Do multiple times, cause its inconsistent to happen, but it happens)
    3.Then open ques tab and try to click on the quest components, nothing will happen untill a logout/relogin.

Agility Shortcuts

Shortcuts need to be added to the traversable world to maintain true emulation.

uses of vampyre should be vampire

Current Behavior

  • there be vampyre

Expected Behavior

  • to be vampire

Steps to Reproduce the Problem

  1. Login the game.
  2. Engage with quest content.
  3. Decide to do Vampire Slayer.
  4. Witness uses of vampyre

Character sometimes doesn't move after lighting a log

Followup issue after #40 is merged

Current Behavior

After lighting a log, the character sometimes doesn't move.

Expected Behavior

The character should move to the first available tile in the directions west, east, south, north.

Steps to Reproduce the Problem

  1. Move to the spot in the screenshot
  2. Light a fire
  3. The character doesn't move

The cause seems to be that the two unblocked directions (east and south) both return true on world.collision::isClipped. See the Player.findWesternTile() function. That shouldn't matter for moving after lighting a fire though.

image

Invisible player bug

The root of the issue is unknown at the moment, but it seems to be triggered when players move from one region to the next or teleports.

Players Disappearing Post-Teleportation During Concurrent Movements.

  • Description of the Issue:
    After a player is teleported to a location, there are instances where other players in the vicinity cannot see the teleported player until a relog occurs. This behavior is notably observed when the teleportation happens while the observing player is moving away from the target location, and upon returning, the teleported player is invisible to them.

  • Steps to Reproduce:

    1. Player A initiates teleportation of Player B to their location.
    2. During the teleportation delay, Player A moves away from the initial location.
    3. Player A returns to the original spot post-teleportation.
    4. Player B is visible to Player A, but Player A is invisible to Player B.
  • Expected Behavior:
    Both players should be able to see each other post-teleportation, regardless of concurrent movements during the teleportation delay.

  • Actual Behavior:
    Player B becomes invisible to Player A until Player B relogs or potentially performs another significant action.

  • Possible Root Cause:

    • There might be a state desynchronization issue due to asynchronous task executions and the player state locking mechanism during teleportation.
    • The visibility checks or position updates for other players may not process players in a 'locked' state.
    • Delays within the teleportation task queue might desynchronize the players' states from the game world's perspective.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.