Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
ziqian zhang
Grasscutter
Commits
d877d7ee
Commit
d877d7ee
authored
Apr 29, 2022
by
Melledy
Browse files
Remove player from challenge if they are leaving the scene
parent
cb15a5de
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/main/java/emu/grasscutter/game/dungeons/DungeonChallenge.java
View file @
d877d7ee
...
...
@@ -23,7 +23,8 @@ public class DungeonChallenge {
private
int
challengeIndex
;
private
int
challengeId
;
private
boolean
isSuccess
;
private
boolean
success
;
private
boolean
progress
;
private
int
score
;
private
int
objective
=
0
;
...
...
@@ -60,11 +61,15 @@ public class DungeonChallenge {
}
public
boolean
isSuccess
()
{
return
isS
uccess
;
return
s
uccess
;
}
public
void
setSuccess
(
boolean
isSuccess
)
{
this
.
isSuccess
=
isSuccess
;
this
.
success
=
isSuccess
;
}
public
boolean
inProgress
()
{
return
progress
;
}
public
int
getScore
()
{
...
...
@@ -72,10 +77,12 @@ public class DungeonChallenge {
}
public
void
start
()
{
this
.
progress
=
true
;
getScene
().
broadcastPacket
(
new
PacketDungeonChallengeBeginNotify
(
this
));
}
public
void
finish
()
{
this
.
progress
=
false
;
getScene
().
broadcastPacket
(
new
PacketDungeonChallengeFinishNotify
(
this
));
if
(
this
.
isSuccess
())
{
...
...
src/main/java/emu/grasscutter/game/world/Scene.java
View file @
d877d7ee
...
...
@@ -25,6 +25,7 @@ import emu.grasscutter.scripts.data.SceneBlock;
import
emu.grasscutter.scripts.data.SceneGadget
;
import
emu.grasscutter.scripts.data.SceneGroup
;
import
emu.grasscutter.scripts.data.ScriptArgs
;
import
emu.grasscutter.server.packet.send.PacketDungeonChallengeFinishNotify
;
import
emu.grasscutter.server.packet.send.PacketEntityFightPropUpdateNotify
;
import
emu.grasscutter.server.packet.send.PacketLifeStateChangeNotify
;
import
emu.grasscutter.server.packet.send.PacketSceneEntityAppearNotify
;
...
...
@@ -212,6 +213,11 @@ public class Scene {
}
public
synchronized
void
removePlayer
(
Player
player
)
{
// Remove from challenge if leaving
if
(
this
.
getChallenge
()
!=
null
&&
this
.
getChallenge
().
inProgress
())
{
player
.
sendPacket
(
new
PacketDungeonChallengeFinishNotify
(
this
.
getChallenge
()));
}
// Remove player from scene
getPlayers
().
remove
(
player
);
player
.
setScene
(
null
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment