ItemAcquired.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. namespace App\Module\GameItems\Events;
  3. use Illuminate\Broadcasting\InteractsWithSockets;
  4. use Illuminate\Foundation\Events\Dispatchable;
  5. use Illuminate\Queue\SerializesModels;
  6. /**
  7. * 物品获取事件
  8. *
  9. * 当用户获取物品时触发此事件,包括通过任务奖励、商店购买、宝箱开启等方式获取物品。
  10. * 此事件可用于更新任务进度、触发成就解锁、记录日志等功能。
  11. * 事件包含获取物品的详细信息,如用户ID、物品ID、数量、来源等。
  12. */
  13. class ItemAcquired
  14. {
  15. use Dispatchable, InteractsWithSockets, SerializesModels;
  16. /**
  17. * 用户ID
  18. *
  19. * @var int
  20. */
  21. public $userId;
  22. /**
  23. * 物品ID
  24. *
  25. * @var int
  26. */
  27. public $itemId;
  28. /**
  29. * 物品实例ID(单独属性物品)
  30. *
  31. * @var int|null
  32. */
  33. public $instanceId;
  34. /**
  35. * 数量
  36. *
  37. * @var int
  38. */
  39. public $quantity;
  40. /**
  41. * 选项
  42. *
  43. * @var array
  44. */
  45. public $options;
  46. /**
  47. * 创建一个新的事件实例
  48. *
  49. * @param int $userId 用户ID
  50. * @param int $itemId 物品ID
  51. * @param int|null $instanceId 物品实例ID
  52. * @param int $quantity 数量
  53. * @param array $options 选项
  54. * @return void
  55. */
  56. public function __construct(int $userId, int $itemId, ?int $instanceId, int $quantity, array $options = [])
  57. {
  58. $this->userId = $userId;
  59. $this->itemId = $itemId;
  60. $this->instanceId = $instanceId;
  61. $this->quantity = $quantity;
  62. $this->options = $options;
  63. }
  64. }