Complete remaining client gap features
This commit is contained in:
@@ -39,12 +39,15 @@ const DUEL_START := 2
|
||||
const STATE_KILLER := 1 << 3
|
||||
const STATE_PARTY := 1 << 4
|
||||
|
||||
# _entity_kind 语义(net_play._entity_kind):0 PC / 1 NPC / 2 MONSTER / 3 STONE / 4 WARP
|
||||
# _entity_kind 语义(net_play._entity_kind):0 PC / 1 NPC / 2 MONSTER / 3 STONE /
|
||||
# 4 WARP / 5 BUILDING / 6 WOODEN_DOOR。
|
||||
const KIND_PC := 0
|
||||
const KIND_NPC := 1
|
||||
const KIND_MONSTER := 2
|
||||
const KIND_STONE := 3
|
||||
const KIND_WARP := 4
|
||||
const KIND_BUILDING := 5
|
||||
const KIND_WOODEN_DOOR := 6
|
||||
|
||||
# --- alignment(善恶)---------------------------------------------------------
|
||||
|
||||
@@ -97,13 +100,16 @@ static func _is_enemy(e: Dictionary) -> bool:
|
||||
|
||||
static func _is_wooden_door(e: Dictionary) -> bool:
|
||||
# CInstanceBase::IsWoodenDoor(InstanceBase.cpp:2390)
|
||||
if _kind(e) == KIND_WOODEN_DOOR:
|
||||
return true
|
||||
var vnum := int(e.get("race", e.get("vnum", 0)))
|
||||
return vnum == 13000 or (vnum >= 30111 and vnum <= 30119)
|
||||
|
||||
static func _is_building(e: Dictionary) -> bool:
|
||||
# CInstanceBase::IsBuilding() = m_GraphicThingInstance.IsBuilding()。
|
||||
# 建筑 / 城墙的 thing type 在本 POC 未单独下发(IsWall 的 race 白名单未随源码发布)→ seam。
|
||||
return bool(e.get("building", false))
|
||||
# classic 的 bType / POC fixture 可直接给 kind;旧包仍可用 building 布尔字段。
|
||||
return bool(e.get("building", false)) or _kind(e) == KIND_BUILDING \
|
||||
or _kind(e) == KIND_WOODEN_DOOR
|
||||
|
||||
# --- killer / party / empire / duel / pvp -----------------------------------
|
||||
|
||||
|
||||
Reference in New Issue
Block a user