Commit ab6aa961 authored by Yazawazi's avatar Yazawazi Committed by Melledy
Browse files

fix(serenitea pot): teleport & read born pos from lua

parent 95a06212
...@@ -268,6 +268,11 @@ public class World implements Iterable<Player> { ...@@ -268,6 +268,11 @@ public class World implements Iterable<Player> {
} else if (oldScene == newScene) { } else if (oldScene == newScene) {
enterType = EnterType.ENTER_GOTO; enterType = EnterType.ENTER_GOTO;
} }
// Home
if (2001 <= newScene.getId() && newScene.getId() <= 2004) {
enterType = EnterType.ENTER_SELF_HOME;
}
// Teleport packet // Teleport packet
player.sendPacket(new PacketPlayerEnterSceneNotify(player, enterType, enterReason, sceneId, pos)); player.sendPacket(new PacketPlayerEnterSceneNotify(player, enterType, enterReason, sceneId, pos));
......
package emu.grasscutter.server.packet.recv; package emu.grasscutter.server.packet.recv;
import emu.grasscutter.Grasscutter; import emu.grasscutter.data.GameData;
import emu.grasscutter.game.world.Scene;
import emu.grasscutter.net.packet.Opcodes; import emu.grasscutter.net.packet.Opcodes;
import emu.grasscutter.net.packet.PacketHandler; import emu.grasscutter.net.packet.PacketHandler;
import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.packet.PacketOpcodes;
import emu.grasscutter.net.proto.TryEnterHomeReqOuterClass; import emu.grasscutter.net.proto.TryEnterHomeReqOuterClass;
import emu.grasscutter.scripts.data.SceneConfig;
import emu.grasscutter.server.game.GameSession; import emu.grasscutter.server.game.GameSession;
import emu.grasscutter.server.packet.send.PacketTryEnterHomeRsp; import emu.grasscutter.server.packet.send.PacketTryEnterHomeRsp;
import emu.grasscutter.utils.Position; import emu.grasscutter.utils.Position;
...@@ -23,44 +25,16 @@ public class HandlerTryEnterHomeReq extends PacketHandler { ...@@ -23,44 +25,16 @@ public class HandlerTryEnterHomeReq extends PacketHandler {
return; return;
} }
// Hardcoded for now int realmId = 2000 + session.getPlayer().getCurrentRealmId();
switch (session.getPlayer().getCurrentRealmId()) {
case 1:
session.getPlayer().getWorld().transferPlayerToScene(
session.getPlayer(),
2001,
new Position(839, 319, 137)
);
break;
case 2: Scene scene = session.getPlayer().getWorld().getSceneById(realmId);
session.getPlayer().getWorld().transferPlayerToScene( Position pos = scene.getScriptManager().getConfig().born_pos;
session.getPlayer(),
2002,
new Position(605, 444, 554)
);
break;
case 3: session.getPlayer().getWorld().transferPlayerToScene(
session.getPlayer().getWorld().transferPlayerToScene( session.getPlayer(),
session.getPlayer(), realmId,
2003, pos
new Position(511, 229, 605) );
);
break;
case 4:
session.getPlayer().getWorld().transferPlayerToScene(
session.getPlayer(),
2004,
new Position(239, 187, 536)
);
break;
default:
session.send(new PacketTryEnterHomeRsp());
return;
}
session.send(new PacketTryEnterHomeRsp(req.getTargetUid())); session.send(new PacketTryEnterHomeRsp(req.getTargetUid()));
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment