Traccia per lettura file.obj

Implementazioni adottate nel periodo da Ottobre 2013 a Dicembre 2015.
Rispondi
Avatar utente
Yngwie
Esperto
Messaggi: 236
Iscritto il: lun giu 17, 2013 4:09 pm
Classe: Bardo
Skype: drowpower
Contatta:

Traccia per lettura file.obj

#1

Messaggio da Yngwie »

Qui in allegato alcune informazioni sui file.obj.

NOTABENE: Lo scopo finale e' creare un'armory, quindi saranno necessari due programmi/passaggi:

1) Importare in un database (che posso fornirvi su qualunque specifica mi forniate) i dati dei file.obj che vengono forniti al "portale";
2) Sfogliare questo database a seconda di diversi parametri (Es: tutti gli obj per collo che hanno piu' di 2 dam).


Buon lavoro :)
Allegati
objs.zip
Traccia file obj
(34.2 KiB) Scaricato 438 volte
yngwie@leu:~> lamentele > /dev/null
Avatar utente
Yngwie
Esperto
Messaggi: 236
Iscritto il: lun giu 17, 2013 4:09 pm
Classe: Bardo
Skype: drowpower
Contatta:

Re: Traccia per lettura file.obj

#2

Messaggio da Yngwie »

TYPE OBJS

Codice: Seleziona tutto

     1 LIGHT                                 2 SCROLL
     3 WAND                                  4 STAFF
     5 WEAPON                                6 FIRE WEAPON
     7 MISSILE                               8 TREASURE
     9 ARMOR                                10 POTION
    11 WORN                                 12 OTHER
    13 TRASH                                14 TRAP
    15 CONTAINER                            16 NOTE
    17 LIQUID CONTAINER                     18 KEY
    19 FOOD                                 20 MONEY
    21 PEN                                  22 BOAT
    23 AUDIO                                24 BOARD
    25 TREE                                 26 ROCK
Extra Affects

Codice: Seleziona tutto

    1  NONE                  2  STR                   3  DEX
    4  INT                   5  WIS                   6  CON
    7  CHR                   8  SEX                   9  LEVEL
    10 AGE                   11 CHAR_WEIGHT           12 CHAR_HEIGHT
    13 MANA                  14 HIT                   15 MOVE
    16 GOLD                  17 EXP                   18 ARMOR
    19 HITROLL               20 DAMROLL               21 SAVING_PARA
    22 SAVING_ROD            23 SAVING_PETRI          24 SAVING_BREATH
    25 SAVING_SPELL          26 SAVING_ALL            27 RESISTANCE
    28 SUSCEPTIBILITY        29 IMMUNITY              30 SPELL AFFECT
    31 WEAPON SPELL          32 EAT SPELL             33 BACKSTAB
    34 KICK                  35 SNEAK                 36 HIDE
    37 BASH                  38 PICK                  39 STEAL
    40 TRACK                 41 HIT-N-DAM             42 SPELLFAIL
    43 EXTRA ATTACK          44 HASTE                 45 SLOW
    46 OTHER                 47 FIND-TRAPS            48 RIDE
    49 RACE-SLAYER           50 ALIGN-SLAYER          51 MANA-REGEN
    52 HIT-REGEN             53 MOVE-REGEN            54 MOD-THIRST
    55 MOD-HUNGER            56 MOD-DRUNK             66 SPELLPOWER
    67 DAM_REDUCTION_BLUNT   68 DAM_REDUCTION_SLASH   69 DAM_REDUCTION_PIERCE
    70 SPELLFOCUS   71 HITNSP
SUSCE, RESI E IMMU (se su un solito slot vanno sommate, esempio 33= pierce + fire)

Codice: Seleziona tutto

    1      :   FIRE                         2      :   COLD
    4      :   ELECTRICITY                  8      :   ENERGY
    16     :   BLUNT                        32     :   PIERCE
    64     :   SLASH                        128    :   ACID
    256    :   POISON                       512    :   DRAIN
    1024   :   SLEEP                        2048   :   CHARM
    4096   :   HOLD                         8192   :   NON-MAGIC
    16384  :   +1                           32768  :   +2
    65536  :   +3                           131072 :   +4
I weapon spell, eat spell ecc vengono aggiunti direttamente inserendo l'id dello spell.

SPELL AFFECT:

Codice: Seleziona tutto

    1          : BLIND                      2          : INVISIBLE
    4          : DETECT-EVIL                8          : DETECT-INVISIBLE
    16         : DETECT-MAGIC               32         : SENCE-LIFE
    64         : HOLD                       128        : SANCTUARY
    256        : DRAGON RIDE                512        : GROWTH
    1024       : CURSE                      2048       : FLYING
    4096       : POISON                     8192       : TREE TRAVEL
    16384      : PARALYSIS                  32768      : INFRAVISION
    65536      : WATER-BREATH               131072     : SLEEP
    262144     : TRAVELLING                 524288     : SNEAK
    1048576    : HIDE                       2097152    : SILENCE
    4194304    : CHARM                      8388608    : FOLLOW
    16777216   : PROTECT-FROM-EVIL          33554432   : TRUE SIGHT
    67108864   : SCRYING                    134217728  : FIRESHIELD
    268435456  : GROUP                      536870912  : TELEPATHY
    1073741824 : ICESHIELD

Codice: Seleziona tutto

enum EObjectTypes
{
	ITEM_INVALID    =  0,
	ITEM_LIGHT      =  1,
	ITEM_SCROLL     =  2,
	ITEM_WAND       =  3,
	ITEM_STAFF      =  4,
	ITEM_WEAPON     =  5,
	ITEM_FIREWEAPON =  6,
	ITEM_MISSILE    =  7,
	ITEM_TREASURE   =  8,
	ITEM_ARMOR      =  9,
	ITEM_POTION     = 10,
	ITEM_WORN       = 11,
	ITEM_OTHER      = 12,
	ITEM_TRASH      = 13,
	ITEM_TRAP       = 14,
	ITEM_CONTAINER  = 15,
	ITEM_NOTE       = 16,
	ITEM_DRINKCON   = 17,
	ITEM_KEY        = 18,
	ITEM_FOOD       = 19,
	ITEM_MONEY      = 20,
	ITEM_PEN        = 21,
	ITEM_BOAT       = 22,
	ITEM_AUDIO      = 23,
	ITEM_BOARD      = 24,
	ITEM_TREE       = 25,
	ITEM_ROCK       = 26
};

/* Bitvector For 'wear_flags' */

const unsigned long ITEM_TAKE           = 0x00000001;  //      1
const unsigned long ITEM_WEAR_FINGER    = 0x00000002;  //      2
const unsigned long ITEM_WEAR_NECK      = 0x00000004;  //      4
const unsigned long ITEM_WEAR_BODY      = 0x00000008;  //      8
const unsigned long ITEM_WEAR_HEAD      = 0x00000010;  //     16
const unsigned long ITEM_WEAR_LEGS      = 0x00000020;  //     32
const unsigned long ITEM_WEAR_FEET      = 0x00000040;  //     64
const unsigned long ITEM_WEAR_HANDS     = 0x00000080;  //    128
const unsigned long ITEM_WEAR_ARMS      = 0x00000100;  //    256
const unsigned long ITEM_WEAR_SHIELD    = 0x00000200;  //    512
const unsigned long ITEM_WEAR_ABOUT     = 0x00000400;  //   1024
const unsigned long ITEM_WEAR_WAISTE    = 0x00000800;  //   2048
const unsigned long ITEM_WEAR_WRIST     = 0x00001000;  //   4096
const unsigned long ITEM_WIELD          = 0x00002000;  //   8192
const unsigned long ITEM_HOLD           = 0x00004000;  //  16384
const unsigned long ITEM_THROW          = 0x00008000;  //  32768
const unsigned long ITEM_PERSONAL_ON_EQUIP = 0x00010000;  //  65536
const unsigned long ITEM_WEAR_BACK      = 0x00020000;  // 131072
const unsigned long ITEM_WEAR_EAR       = 0x00040000;  // 262144
const unsigned long ITEM_WEAR_EYE       = 0x00080000;  // 524288
#if defined( CLAN )
const unsigned long ITEM_WEAR_INSEGNA   = 0x00100000;  // 1048576
#endif

/* Bitvector for 'extra_flags' */

const unsigned long ITEM_GLOW           = 0x00000001;  //          1
const unsigned long ITEM_HUM            = 0x00000002;  //          2
const unsigned long ITEM_METAL          = 0x00000004;  //          4
const unsigned long ITEM_MINERAL        = 0x00000008;  //          8
const unsigned long ITEM_ORGANIC        = 0x00000010;  //         16
const unsigned long ITEM_INVISIBLE      = 0x00000020;  //         32
const unsigned long ITEM_MAGIC          = 0x00000040;  //         64
const unsigned long ITEM_NODROP         = 0x00000080;  //        128
const unsigned long ITEM_BLESS          = 0x00000100;  //        256
const unsigned long ITEM_ANTI_GOOD      = 0x00000200;  //        512 not usable by good people
const unsigned long ITEM_ANTI_EVIL      = 0x00000400;  //       1024 not usable by evil people
const unsigned long ITEM_ANTI_NEUTRAL   = 0x00000800;  //       2048 not usable by neutral people
const unsigned long ITEM_ANTI_CLERIC    = 0x00001000;  //       4096
const unsigned long ITEM_ANTI_MAGE      = 0x00002000;  //       8192
const unsigned long ITEM_ANTI_THIEF     = 0x00004000;  //      16384
const unsigned long ITEM_ANTI_FIGHTER   = 0x00008000;  //      32768
const unsigned long ITEM_BRITTLE        = 0x00010000;  //      65536
const unsigned long ITEM_RESISTANT      = 0x00020000;  //     131072 resistant to damage
const unsigned long ITEM_IMMUNE         = 0x00040000;  //     262144 Item is iimmune to scrapping
const unsigned long ITEM_ANTI_MEN       = 0x00080000;  //     524288 men can t wield
const unsigned long ITEM_ANTI_WOMEN     = 0x00100000;  //    1048576 women can t wield
//const unsigned long ITEM_ANTI_SUN       = 0x00200000;  //    2097152 item is sensitive to sun
const unsigned long ITEM_NO_EDIT        = 0x00200000;  //    2097152 item is no editable
const unsigned long ITEM_ANTI_BARBARIAN = 0x00400000;  //    4194304
const unsigned long ITEM_ANTI_RANGER    = 0x00800000;  //    8388608
const unsigned long ITEM_ANTI_PALADIN   = 0x01000000;  //   16777216
const unsigned long ITEM_ANTI_PSI       = 0x02000000;  //   33554432
const unsigned long ITEM_ANTI_MONK      = 0x04000000;  //   67108864
const unsigned long ITEM_ANTI_DRUID     = 0x08000000;  //  134217728
const unsigned long ITEM_ONLY_CLASS     = 0x10000000;  //  268435456
const unsigned long ITEM_DIG            = 0x20000000;  //  536870912
const unsigned long ITEM_SCYTHE         = 0x40000000;  // 1073741824
const unsigned long ITEM_DONATED        = 0x80000000;  // 2147483648

/* Some different kind of liquids */
const int LIQ_WATER     = 0;
const int LIQ_BEER      = 1;
const int LIQ_WINE      = 2;
const int LIQ_ALE       = 3;
const int LIQ_DARKALE   = 4;
const int LIQ_WHISKY    = 5;
const int LIQ_LEMONADE  = 6;
const int LIQ_FIREBRT   = 7;
const int LIQ_LOCALSPC  = 8;
const int LIQ_SLIME     = 9;
const int LIQ_MILK      = 10;
const int LIQ_TEA       = 11;
const int LIQ_COFFE     = 12;
const int LIQ_BLOOD     = 13;
const int LIQ_SALTWATER = 14;
const int LIQ_COKE      = 15;

/* special addition for drinks */
const unsigned DRINK_POISON = 1;
const unsigned DRINK_PERM   = 2;


/* for containers */

const int CONT_FLAGS = 1;
const int CONST_KEY  = 2;

const unsigned CONT_CLOSEABLE = 1;
const unsigned CONT_PICKPROOF = 2;
const unsigned CONT_CLOSED    = 4;
const unsigned CONT_LOCKED    = 8;

const unsigned SLAYER_GOOD    = 1;
const unsigned SLAYER_NEUTRAL = 2;
const unsigned SLAYER_EVIL    = 4;

// Flags per le chiavi - value[ 0 ]

const unsigned KEY_ONETIME = 1;	  /* La chiave si distrugge dopo l'utilizzo. */

const int KEY_FLAGS = 0;


const int MAX_OBJ_AFFECT = 5;
const int OBJ_NOTIMER = -7000000;

const int MAX_OBJ_SAVE = 250;

struct obj_data;

extern CIndexData< obj_data > *aObjProtos[];	 // index table for object file
extern int giObjTypesCount;


#endif
yngwie@leu:~> lamentele > /dev/null
Rispondi