Main Page | Modules | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

itemdb.h

00001 // $Id: itemdb.h 517 2006-04-09 09:49:29Z Harbin $
00002 
00003 #ifndef _ITEMDB_H_
00004 #define _ITEMDB_H_
00005 
00006 #include "map.h"
00007 
00008 struct item_data
00009 {
00010         int nameid;
00011         char name[25], jname[25]; // 24 + NULL
00012         char cardillustname[64];
00013         int value_buy; // 0-600000
00014         int value_sell; // 0-1000 (but can be more)
00015         char type; // 0-11
00016         int class; // 0-16777215
00017         char sex; // 0-3
00018         int equip; // equip_location 0-32768
00019         int weight; // 0-8000
00020         int atk; // 0-250
00021         int def; // 0-11
00022         char range; // 0-11
00023         char slot; // 0-5
00024         short look; // 0-207
00025         short elv; // equip_level 0-95
00026         char wlv; // weapon_level 0-4
00027         unsigned char *use_script;
00028         unsigned char *equip_script;
00029         struct
00030         {
00031                 unsigned available : 1;
00032                 unsigned value_notdc : 1;
00033                 unsigned value_notoc : 1;
00034                 unsigned no_equip : 3;
00035                 unsigned no_drop : 1;           // Allow Item Dropping  '0: Yes' '1: No'
00036                 unsigned no_use : 1;            // Allow Item Using             '0: Yes' '1: No'
00037                 unsigned no_refine : 1;         // Allow Item Refining  '0: Yes' '1: No'
00038                 unsigned no_trade : 2;          // Allow Item Trading   '0: Yes' '1: No' '2: Only With Partner'
00039         } flag;
00040         int view_id;
00041 };
00042 
00043 struct random_item_data {
00044         int nameid;
00045         int per;
00046 };
00047 
00048 struct item_data* itemdb_searchname(const char *name);
00049 struct item_data* itemdb_search(intptr_t nameid);
00050 struct item_data* itemdb_exists(intptr_t nameid);
00051 #define itemdb_type(n) itemdb_search(n)->type
00052 #define itemdb_atk(n) itemdb_search(n)->atk
00053 #define itemdb_def(n) itemdb_search(n)->def
00054 #define itemdb_look(n) itemdb_search(n)->look
00055 #define itemdb_weight(n) itemdb_search(n)->weight
00056 #define itemdb_equip(n) itemdb_search(n)->equip
00057 #define itemdb_usescript(n) itemdb_search(n)->use_script
00058 #define itemdb_equipscript(n) itemdb_search(n)->equip_script
00059 #define itemdb_wlv(n) itemdb_search(n)->wlv
00060 #define itemdb_range(n) itemdb_search(n)->range
00061 #define itemdb_slot(n) itemdb_search(n)->slot
00062 #define itemdb_available(n) (itemdb_exists(n) && itemdb_search(n)->flag.available)
00063 #define itemdb_viewid(n) (itemdb_search(n)->view_id)
00064 
00065 int itemdb_searchrandomid(int flags);
00066 
00067 int itemdb_isequip(int);
00068 int itemdb_isequip2(struct item_data *);
00069 int itemdb_isequip3(int);
00070 int itemdb_isdropable(int nameid);
00071 
00072 // itemdb_equipマクロとitemdb_equippointとの違いは
00073 // 前者が鯖側dbで定義された値そのものを返すのに対し
00074 // 後者はsessiondataを考慮した鞍側での装備可能場所
00075 // すべての組み合わせを返す
00076 
00077 void itemdb_reload(void);
00078 
00079 void do_final_itemdb(void);
00080 int do_init_itemdb(void);
00081 
00082 #endif // _ITEMDB_H_

Generated on Fri Apr 28 10:20:05 2006 for OpenAthena by  doxygen 1.4.4