Deal.pm.svn-base
上传用户:market2
上传日期:2018-11-18
资源大小:18786k
文件大小:2k
源码类别:

外挂编程

开发平台:

Windows_Unix

  1. #########################################################################
  2. #  OpenKore - Deal object
  3. #  Copyright (c) 2005 OpenKore Team
  4. #
  5. #  This software is open source, licensed under the GNU General Public
  6. #  License, version 2.
  7. #  Basically, this means that you're allowed to modify and distribute
  8. #  this software. However, if you distribute modified versions, you MUST
  9. #  also distribute the source code.
  10. #  See http://www.gnu.org/licenses/gpl.html for the full license.
  11. #
  12. #  $Revision$
  13. #  $Id$
  14. #
  15. #########################################################################
  16. ##
  17. # MODULE DESCRIPTION: Deal object
  18. #
  19. # The complete Deal API is implemented here but the logic is in the AI function
  20. #
  21. #
  22. # States:
  23. # request
  24. # incomingDeal
  25. # ready
  26. # finalized
  27. # completed
  28. package Deal;
  29. use strict;
  30. use Globals;
  31. use Utils;
  32. use Log qw(message error warning debug);
  33. use Time::HiRes qw(time);
  34. use Network::Send ();
  35. sub new {
  36. my $class = shift;
  37. my %self;
  38. bless %self, $class;
  39. return %self;
  40. }
  41. ###################
  42. ### Class Methods
  43. ###################
  44. sub dealPlayer {
  45. my ($other) = @_;
  46. my $self = new Deal;
  47. $self->{other} = $other;
  48. $messageSender->sendDeal($other->{ID});
  49. $self->{state} = 'request';
  50. $ai_v{temp}{deal} = $self;
  51. }
  52. sub incomingDeal {
  53. my ($other) = @_;
  54. my $self = new Deal;
  55. $self->{other} = $other;
  56. $ai_v{temp}{deal} = $self;
  57. $self->{state} = 'incomingDeal';
  58. if ($config{dealAuto}) {
  59. $self->accept();
  60. $self->{state} = 'accepted';
  61. }
  62. }
  63. ###################
  64. ### Public Methods
  65. ###################
  66. sub AI {
  67. # Maybe add the deal logic in here
  68. # and only call AI if $ai_v{temp}{deal}
  69. # is set
  70. }
  71. sub add {
  72. my ($self,$item,$ammount) = @_;
  73. $messageSender->sendDealAddItem($item->{index},$ammount);
  74. }
  75. sub accept {
  76. my ($self,$args) = @_;
  77. $messageSender->sendDealAccept();
  78. }
  79. sub cancel {
  80. my ($self,$args) = @_;
  81. $messageSender->sendDealCancel();
  82. }
  83. sub finalize {
  84. my ($self,$args) = @_;
  85. return 0 $self->{state} = 'engaged';
  86. }
  87. sub trade {
  88. my ($self,$args) = @_;
  89. }
  90. sub zeny {
  91. my ($self,$args) = @_;
  92. }
  93. sub list {
  94. my ($self,$args) = @_;
  95. }