| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- <?php
- namespace App\Module\GameItems\Events;
- use Illuminate\Broadcasting\InteractsWithSockets;
- use Illuminate\Foundation\Events\Dispatchable;
- use Illuminate\Queue\SerializesModels;
- /**
- * 宝箱开启事件
- *
- * 当用户成功开启宝箱时触发此事件,包含宝箱开启的详细信息。
- * 此事件可用于更新任务进度、触发成就解锁、记录日志、发送通知等功能。
- * 事件包含开启宝箱的用户ID、宝箱ID、数量、获得的物品结果、保底机制触发情况等信息。
- */
- class ChestOpened
- {
- use Dispatchable, InteractsWithSockets, SerializesModels;
- /**
- * 用户ID
- *
- * 开启宝箱的用户唯一标识符
- *
- * @var int
- */
- public $userId;
- /**
- * 宝箱ID
- *
- * 被开启的宝箱物品ID,对应item_items表中的id
- *
- * @var int
- */
- public $chestId;
- /**
- * 数量
- *
- * 本次开启的宝箱数量
- *
- * @var int
- */
- public $quantity;
- /**
- * 开启结果
- *
- * 宝箱开启获得的物品列表,包含物品ID、数量、是否为保底物品等信息
- *
- * @var array
- */
- public $results;
- /**
- * 是否触发保底
- *
- * 标识本次开启是否触发了保底机制
- *
- * @var bool
- */
- public $pityTriggered;
- /**
- * 保底内容ID
- *
- * 触发保底时对应的宝箱内容ID,未触发保底时为null
- * 对应item_chest_contents表中的id
- *
- * @var int|null
- */
- public $pityContentId;
- /**
- * 日志ID
- *
- * 宝箱开启日志记录的ID,对应item_chest_open_logs表中的id
- * 可用于查询详细的开启记录
- *
- * @var int
- */
- public $logId;
- /**
- * 创建一个新的事件实例
- *
- * 初始化宝箱开启事件,记录开启宝箱的详细信息
- *
- * @param int $userId 用户ID - 开启宝箱的用户唯一标识符
- * @param int $chestId 宝箱ID - 被开启的宝箱物品ID
- * @param int $quantity 数量 - 本次开启的宝箱数量
- * @param array $results 开启结果 - 宝箱开启获得的物品列表
- * @param bool $pityTriggered 是否触发保底 - 标识本次开启是否触发了保底机制
- * @param int|null $pityContentId 保底内容ID - 触发保底时对应的宝箱内容ID
- * @param int $logId 日志ID - 宝箱开启日志记录的ID
- * @return void
- */
- public function __construct(
- int $userId,
- int $chestId,
- int $quantity,
- array $results,
- bool $pityTriggered,
- ?int $pityContentId,
- int $logId
- ) {
- $this->userId = $userId;
- $this->chestId = $chestId;
- $this->quantity = $quantity;
- $this->results = $results;
- $this->pityTriggered = $pityTriggered;
- $this->pityContentId = $pityContentId;
- $this->logId = $logId;
- }
- }
|