Complete remaining client gap features

This commit is contained in:
shenlei
2026-09-04 13:25:05 +09:00
parent 13ccb8d02d
commit 9a4a044da5
47 changed files with 6667 additions and 140 deletions
+9
View File
@@ -19,6 +19,7 @@ class FakeClient extends Node:
signal motion(vid: int, victim_vid: int, motion: int)
signal gift_available()
signal guild_make_requested()
signal script_dialog(skin: int, text: String)
var ents := {}
var main := 0
func is_in_game() -> bool: return true
@@ -99,6 +100,14 @@ func _run() -> void:
_ck(gs.guild_ui._create_dialog != null and gs.guild_ui._create_dialog.visible,
"guild make request reaches the in-game guild creation dialog")
gs.guild_ui._close_guild_create_dialog()
# Quest EventManager side effects are consumed by the scene owner, not left
# as parser-only signals.
fc.script_dialog.emit(0, "[SET_CAMERA x(1000) y(2000) z(300) distance(500) pitch(40) rot(90)][DUNGEON_RESULT killstone_count(2) killmob_count(40) find_hidden(1) hidden_total(3) use_potion(5) is_revived(0) killallmob(1) total_time(600) bonus_exp(1234)]")
await process_frame
_ck(gs.cam.has_method("is_event_locked") and bool(gs.cam.call("is_event_locked")),
"quest SET_CAMERA reaches the scene camera")
_ck(gs.dungeon_result_ui != null and bool(gs.dungeon_result_ui.call("is_open")),
"quest DUNGEON_RESULT opens the scene result window")
# 4) 别的实体会被镜像成挂载节点
fc.spawn(2000, "Wolf", Vector3(25, 0, -30))