npc.cpp 709 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #include "pch.h"
  2. #include "npc.h"
  3. //点击NPC
  4. void clickNPC(int npcId, int findPathPara, int clickNPCCallAddr)
  5. {
  6. __asm {
  7. mov edx, npcId
  8. mov eax, findPathPara
  9. mov eax, [eax]
  10. mov ebx, clickNPCCallAddr
  11. call ebx
  12. }
  13. }
  14. //二级对话 para1买物参数, para2小退参数
  15. void talk2(int para1, int para2, int talk2Addr, char* cmd)
  16. {
  17. __asm {
  18. mov eax, para1
  19. mov eax, [eax]
  20. mov edx, [eax]
  21. mov eax, para2
  22. mov eax, [eax]
  23. mov eax, [eax]
  24. mov ecx, cmd
  25. mov ebx, talk2Addr
  26. call ebx
  27. }
  28. }
  29. void Npc::process(int code, int* data)
  30. {
  31. switch (code)
  32. {
  33. case 3001:
  34. clickNPC(data[0], data[1], data[2]);
  35. break;
  36. case 3002:
  37. talk2(data[0], data[1], data[2], (char*)&data[4]);
  38. break;
  39. default:
  40. break;
  41. }
  42. }