外观
VIP · 技术实现
「玩家设定 →」
1. 代码位置
| 层 | 类 | 职责 |
|---|---|---|
| Controller | controller/PlayerController(/api/player/info) | VIP 等级/累计充值返回 |
| Service | service/VipExperienceService | VIP 经验入账(increaseVipExperience)与等级提升 |
| Service | service/InventoryService | 充值元宝消耗时触发 VIP 经验(VipExperienceSource.VIP_ITEM_USE) |
| domain | domain/ShopBalanceRules | VIP 阈值与权益常量 |
| domain | domain/VipExperienceSource | 经验来源枚举:PAID_RECHARGE/ADMIN_GRANT/VIP_ITEM_USE/REFERRAL_COMMISSION/DATA_FIX/ROLLBACK_RESTORE |
| domain | domain/PlayerPrivilege | 玩家特权模型(vipLevel/totalRecharge/月卡/终身卡/冠名) |
2. 数据表
| 表 | 关键列 | 说明 |
|---|---|---|
player_privilege | player_id、vip_level、total_recharge、monthly_card_expire_at、lifetime_card_expire_at、naming_expire_at | 玩家特权(V8,V10/V26/V57 扩展) |
vip_experience_change | player_id、delta、source、create_time | VIP 经验流水(V58) |
3. 配置与常量
- VIP 阈值与神石额度:
名称 数值 说明 welfareTicketIdWELFARE_TICKET_ID 4001L — rainbowStoneIdRAINBOW_STONE_ID 4002L — monthlyCardIdMONTHLY_CARD_ID 4003L — namingCardIdNAMING_CARD_ID 4004L — lifetimeCardIdLIFETIME_CARD_ID 4005L — welfareTicketNameWELFARE_TICKET_NAME "福利点券" — dailySignInRewardTicketsDAILY_SIGN_IN_REWARD_TICKETS 1_000 — rainbowStoneNameRAINBOW_STONE_NAME "五彩神石" — monthlyCardNameMONTHLY_CARD_NAME "月卡" — namingCardNameNAMING_CARD_NAME "冠名卡" — lifetimeCardNameLIFETIME_CARD_NAME "终身卡" — namingNameNAMING_NAME "冠名" — dailyWelfareChallengeLimitDAILY_WELFARE_CHALLENGE_LIMIT 100 — rainbowStonePriceRAINBOW_STONE_PRICE 100 — baseDailyStoneLimitBASE_DAILY_STONE_LIMIT 50 — monthlyCardExtraStoneLimitMONTHLY_CARD_EXTRA_STONE_LIMIT 50 — vipExtraStoneLimitPerLevelVIP_EXTRA_STONE_LIMIT_PER_LEVEL 20 — namingExtraStoneLimitNAMING_EXTRA_STONE_LIMIT 300 — serverDailyStoneLimitSERVER_DAILY_STONE_LIMIT 600 — worldHornLimitIdWORLD_HORN_LIMIT_ID 9501L 世界喇叭福利点券兑换(对齐 docs/33 §4.2) worldHornLimitNameWORLD_HORN_LIMIT_NAME "世界喇叭日限购" — worldHornPriceWORLD_HORN_PRICE 100 — dailyWorldHornLimitDAILY_WORLD_HORN_LIMIT 10 — rainbowStoneResonanceRatePerStoneRAINBOW_STONE_RESONANCE_RATE_PER_STONE 0.0004D 月卡/终身卡各提供 ×1.25,VIP5 提供 ×1.5,冠名提供 ×2.0 最终倍率;功法不再进入成长速率。 monthlyCardGrowthBaseContributionMONTHLY_CARD_GROWTH_BASE_CONTRIBUTION 1 — vip5GrowthBaseContributionVIP5_GROWTH_BASE_CONTRIBUTION 1 — vip5GrowthThresholdVIP5_GROWTH_THRESHOLD 5 — namingGrowthBaseContributionNAMING_GROWTH_BASE_CONTRIBUTION 1 — lifetimeCardGrowthBaseContributionLIFETIME_CARD_GROWTH_BASE_CONTRIBUTION 1 — monthlyCardFinalMultiplierMONTHLY_CARD_FINAL_MULTIPLIER 1.25D — lifetimeCardFinalMultiplierLIFETIME_CARD_FINAL_MULTIPLIER 1.25D — vip5FinalMultiplierVIP5_FINAL_MULTIPLIER 1.5D — namingFinalMultiplierNAMING_FINAL_MULTIPLIER 2.0D — baseGrowthRateBASE_GROWTH_RATE 5.0D — monthlyCardAttackSpeedBonusMONTHLY_CARD_ATTACK_SPEED_BONUS 2.0D — lifetimeCardAttackSpeedBonusLIFETIME_CARD_ATTACK_SPEED_BONUS 2.0D — vipAttackSpeedBonusPerLevelVIP_ATTACK_SPEED_BONUS_PER_LEVEL 0.2D — namingAttackSpeedBonusNAMING_ATTACK_SPEED_BONUS 3.0D — namingExtraTicketsNAMING_EXTRA_TICKETS 500 — mountDropRateMOUNT_DROP_RATE 0.001D 坐骑掉率,对齐进阶石 mountMaterialQtyEasyMOUNT_MATERIAL_QTY_EASY 50 坐骑/翅膀副本升级材料按怪物分级掉落(百次模型,NORMAL 100 颗/次) mountMaterialQtyNormalMOUNT_MATERIAL_QTY_NORMAL 100 — mountMaterialQtyHardMOUNT_MATERIAL_QTY_HARD 150 — mountMaterialQtyEliteMOUNT_MATERIAL_QTY_ELITE 200 — mountMaterialQtyBossMOUNT_MATERIAL_QTY_BOSS 250 — entryDungeonMaterialMultiplierENTRY_DUNGEON_MATERIAL_MULTIPLIER 0.40D — wingDropRateWING_DROP_RATE 0.001D 翅膀副本掉落与升级消耗(对齐 docs/翅膀玩法设计文档.md §5),数值镜像坐骑。 petDropRatePET_DROP_RATE 0.001D — welfareBaseTicketsWELFARE_BASE_TICKETS 10 福利怪掉落规则(加法模型,可叠加) monthlyCardExtraTicketsMONTHLY_CARD_EXTRA_TICKETS 100 — vipTicketBonusPerLevelVIP_TICKET_BONUS_PER_LEVEL 20 — maxVipLevelMAX_VIP_LEVEL 10 — vipThresholdsVIP_THRESHOLDS { 0, 100, 500, 1000, 3000, 5000, 10000, 20000, 50000, 100000, 500000 } VIP0 来源:emberfall-server/src/main/java/com/emberfall/domain/ShopBalanceRules.java· commit5916da43b88f343400acfdb20c97a5cc7927fdbd - 关键常量:
VIP_THRESHOLDS = {0,100,500,1000,3000,5000,10000,20000,50000,100000,500000}(累计充值元宝,10 档)、MAX_VIP_LEVEL=10;每日神石额度 = 基础 50 + 月卡 50 + VIP 每级 20 + 冠名 300,封顶 600(SERVER_DAILY_STONE_LIMIT);VIP5_FINAL_MULTIPLIER=1.5(成长最终倍率)、VIP_ATTACK_SPEED_BONUS_PER_LEVEL=0.2 - yml 键:无(全量常量类)
4. 数据流简述
充值元宝到账 → InventoryService 扣元宝并调用 VipExperienceService.increaseVipExperience(playerId, rechargeAmount, source),经验写 vip_experience_change、累计进 player_privilege.total_recharge,按 VIP_THRESHOLDS 提升 vip_level。VIP 权益(每日神石额度、福利点券每级 +20、成长倍率、余烬试炼场入场 vip5-bonus/vip10-bonus、交易手续费 5% 档)由各系统读取 PlayerPrivilege 生效。
5. 已知差异
无
6. 相关代码
- 商城(
ShopService:权益展示与神石兑换) - 月卡/终身卡(
ShopBalanceRules.MONTHLY_CARD_FINAL_MULTIPLIER) - 余烬试炼场(
trial.v2.entry.vip5-bonus/vip10-bonus) - 推荐返利(
ReferralRules.VIP5_REWARD)