00001
00002
00003
00004
00005
00006
00007
00008
00009
00015 #ifndef __SET_H__
00016 #define __SET_H__
00017
00018 #include "nxwcommn.h"
00019 #include "guild.h"
00020
00021 class NxwWrapper {
00022
00023 private:
00024 SERIAL_VECTOR vect;
00025 SERIAL_VECTOR::iterator current;
00026
00027 protected:
00028 void next();
00029
00030 public:
00031 NxwWrapper();
00032 ~NxwWrapper();
00033
00034 LOGICAL isEmpty();
00035 void clear();
00036 UI32 size();
00037
00038 void rewind();
00039 NxwWrapper& operator++(int);
00040
00041
00042 SERIAL get();
00043 void insert( SERIAL s );
00044
00045 void copyQ( const NxwWrapper& from );
00046 };
00047
00048 class NxwSerialWrapper : public NxwWrapper {
00049
00050 protected:
00051 void fillSerialInContainer( SERIAL serial, LOGICAL bIncludeSubContained = true, LOGICAL bIncludeOnlyFirstSubcont=false );
00052 void fillSerialInContainer( cObject* obj, LOGICAL bIncludeSubContained = true, LOGICAL bIncludeOnlyFirstSubcont=false );
00053
00054 public:
00055 NxwSerialWrapper();
00056 ~NxwSerialWrapper();
00057
00058 SERIAL getSerial();
00059 void insertSerial( SERIAL s );
00060 void insertSerial( cObject* obj );
00061
00062
00063
00064 };
00065
00066 class NxwCharWrapper : public NxwSerialWrapper {
00067
00068 public:
00069 NxwCharWrapper();
00070 NxwCharWrapper( const NxwCharWrapper& that );
00071 ~NxwCharWrapper();
00072
00073 P_CHAR getChar();
00074 void insertChar( P_CHAR pc );
00075
00076 void fillOwnedNpcs( P_CHAR pc, LOGICAL bIncludeStabled = true, LOGICAL bOnlyFollowing = false );
00077 void fillCharsAtXY( Location location, LOGICAL bExcludeOfflinePlayers = true, LOGICAL bOnlyPlayer = false );
00078 void fillCharsAtXY( UI16 x, UI16 y, LOGICAL bExcludeOfflinePlayers = true, LOGICAL bOnlyPlayer = false );
00079 void fillCharsNearXYZ ( UI16 x, UI16 y, int nDistance = VISRANGE, LOGICAL bExcludeOfflinePlayers = true, LOGICAL bOnlyPlayer = false );
00080 void fillCharsNearXYZ ( Location location, int nDistance = VISRANGE, LOGICAL bExcludeOfflinePlayers = true, LOGICAL bOnlyPlayer = false );
00081 void fillPartyFriend( P_CHAR pc, UI32 nDistance = VISRANGE, LOGICAL bExcludeThis = false );
00082 void fillNpcsNearXY( UI16 x, UI16 y, int nDistance = VISRANGE );
00083 void fillNpcsNear( P_CHAR pc, int nDistance = VISRANGE );
00084 void fillNpcsNear( P_ITEM pi, int nDistance = VISRANGE );
00085 void fillGuildMembers( SERIAL guild );
00086 void fillGuildRecruits( SERIAL guild );
00087 void fillCoOwners ( SERIAL house );
00088 void fillFriends ( SERIAL house );
00089 void fillBanned ( SERIAL house );
00090 void fillCharsInsideHouse(SERIAL house);
00091 void fillCharsOutsideHouse(SERIAL house);
00092 };
00093
00094 class NxwItemWrapper : public NxwSerialWrapper {
00095
00096 public:
00097 NxwItemWrapper();
00098 NxwItemWrapper( const NxwItemWrapper& that );
00099 ~NxwItemWrapper();
00100
00101 P_ITEM getItem();
00102 void insertItem( P_ITEM pi );
00103
00104 void fillItemsInContainer ( P_ITEM pi, LOGICAL bIncludeSubContained = true, LOGICAL bIncludeOnlyFirstSubcont=false);
00105 void fillItemWeared( P_CHAR pc, LOGICAL bIncludeLikeHair = false, LOGICAL bIncludeProtectedLayer = false, LOGICAL bExcludeIllegalLayer=true );
00106 void fillItemsAtXY( UI16 x, UI16 y, SI32 type = INVALID, SI32 id = INVALID );
00107 void fillItemsAtXY( Location location, SI32 type = INVALID, SI32 id = INVALID );
00108 void fillItemsNearXYZ ( UI16 x, UI16 y, int nDistance = VISRANGE, LOGICAL bExcludeNotMovableItems = true);
00109 void fillItemsNearXYZ ( Location location, int nDistance = VISRANGE, LOGICAL bExcludeNotMovableItems = true);
00110 void fillGuilds( SERIAL guild, int options=0 );
00111 void fillHousesOwned( SERIAL chr);
00112 void fillItemsInsideHouse( SERIAL house, SI32 scriptID=INVALID);
00113 void fillItemsOutsideHouse( SERIAL house, SI32 scriptID=INVALID);
00114
00115 };
00116
00117 class NxwSocketWrapper : public NxwWrapper {
00118
00119 public:
00120 NxwSocketWrapper();
00121 ~NxwSocketWrapper();
00122
00123 SERIAL getSocket();
00124 NXWCLIENT getClient();
00125 void insertSocket( NXWSOCKET s );
00126 void insertClient( NXWCLIENT ps );
00127
00128 void fillOnline( P_CHAR onlyNearThis, LOGICAL bExcludeThis = true, UI32 nDistance = VISRANGE );
00129 void fillOnline( Location location, int nDistance = VISRANGE );
00130 void fillOnline( P_ITEM onlyNearThis,int nDistance = VISRANGE );
00131 void fillOnline( );
00132
00133 };
00134
00135
00136 const int RS_BACKPACK_ITEM = 1;
00137 const int RS_BANK_ITEM = 2;
00138 const int RS_EQUIP_ITEM = 3;
00139
00140
00141 namespace amxSet {
00142
00143 typedef std::map< SERIAL, NxwWrapper* > AMX_WRAPPER_DB;
00144
00145
00146 SERIAL create( );
00147 void deleteSet( SERIAL iSet );
00148 LOGICAL end( SERIAL iSet );
00149 void rewind( SERIAL iSet );
00150 void next( SERIAL iSet );
00151 UI32 size( SERIAL iSet);
00152
00153 SERIAL get( SERIAL iSet );
00154 void add( SERIAL iSet, SERIAL nVal );
00155 void copy( SERIAL iSet, const NxwWrapper& from );
00156
00157 void addOwnedNpcs( SERIAL iSet, P_CHAR pc, LOGICAL includeStabled, LOGICAL onlyFollowing );
00158 void addPartyFriend( SERIAL iSet, P_CHAR pc, int distance, LOGICAL excludeThis );
00159 void addNpcsNearXY( SERIAL iSet, UI16 x, UI16 y, int distance );
00160 void addNpcsNearObj( SERIAL iSet, P_CHAR pc, int nDistance );
00161 void addNpcsNearObj( SERIAL iSet, P_ITEM pi, int nDistance );
00162 void addItemsInContainer( SERIAL iSet, P_ITEM pi, LOGICAL includeSubCont, LOGICAL includeOnlyFirstSubCont );
00163 void addItemWeared( SERIAL iSet, P_CHAR pc, LOGICAL includeLikeHair, LOGICAL includeProtectedLayer, LOGICAL excludeIllegalLayer );
00164 void addItemsAtXY( SERIAL iSet, UI16 x, UI16 y, UI32 type );
00165 void addItemsNearXY( SERIAL iSet, UI16 x, UI16 y, int distance, LOGICAL excludeNotMovable );
00166 void addAllOnlinePlayers( SERIAL iSet );
00167 void addOnlinePlayersNearChar( SERIAL iSet, P_CHAR pc, LOGICAL excludeThis, int distance );
00168 void addOnlinePlayersNearItem( SERIAL iSet, P_ITEM pi, int distance );
00169 void addOnlinePlayersNearXY( SERIAL iSet, UI16 x, UI16 y, int distance );
00170
00171 void addGuildMembers( SERIAL iSet, SERIAL guild );
00172 void addGuildRecruits( SERIAL iSet, SERIAL guild );
00173 void addGuilds( SERIAL iSet, SERIAL guild , int options = INVALID);
00174 void addHouseCoowners( SERIAL iSet, SERIAL house );
00175 void addHouseFriends( SERIAL iSet, SERIAL house );
00176 void addHouseBans( SERIAL iSet, SERIAL house );
00177 void addOwnHouses( SERIAL iSet, SERIAL chr );
00178 void addCharsInsideHouse( SERIAL iSet, SERIAL house);
00179 void addCharsOutsideHouse( SERIAL iSet, SERIAL house);
00180 void addItemsInsideHouse( SERIAL iSet, SERIAL house, SI32 scriptID= INVALID);
00181 void addItemsOutsideHouse( SERIAL iSet, SERIAL house, SI32 scriptID= INVALID);
00182
00183
00184 }
00185
00186 #endif //__SET_H__