源战役
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

45 строки
1.5 KiB

1 месяц назад
  1. %%-----------------------------------------------------------------------------
  2. %% @Module : battle_field.hrl
  3. %% @Author : J
  4. %% @Email : j-som@foxmail.com
  5. %% @Created : 2017-12-01
  6. %% @Description: 战场
  7. %%-----------------------------------------------------------------------------
  8. %% 战场进入状态
  9. -define(ROLE_STATE_OUT, 0). %% 不在战场中
  10. -define(ROLE_STATE_BEFORE_IN, 1). %% 已经调用了change_scene但是还没有触发finish_change_scene
  11. -define(ROLE_STATE_IN, 2). %% 正在战场中
  12. %% 在线状态
  13. -define(ONLINE_STATE_OFF, 0). %% 在线状态:离线
  14. -define(ONLINE_STATE_ON, 1). %% 在线状态:在线
  15. -define(ETS_ROLE_BATTLE_PID, ets_role_battle_pid). %% 玩家战场pid(主要用于断线重连)
  16. -define(HAS_API(Mod, ApiName, ArgsNum), lists:member({ApiName, ArgsNum}, Mod:module_info(exports))).
  17. -record(battle_state, {
  18. lib = lib_battle_field,
  19. cur_scene = 0,
  20. scene_pool_id = 0,
  21. copy_id = 0,
  22. data = #{},
  23. roles = #{},
  24. is_end = false,
  25. self = undefined
  26. }).
  27. -record(battle_role, {
  28. key= undefined,
  29. out_info = #{}, %% #{scene := SceneId, scene_pool_id := ScenePoolId, copy_id := CopyId, x := X, y := Y, scene_args := []}
  30. in_info = #{}, %% #{x := X, y := Y, scene_args := []}
  31. state = ?ROLE_STATE_OUT,
  32. online_state = ?ONLINE_STATE_ON,
  33. data = #{}
  34. }).
  35. -record(role_battle_pid, {
  36. id = 0, %% 玩家id
  37. pid = none %% 战斗pid
  38. }).