⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 char_data.c

📁 石器时代2.0完整版源代码.已经加入新功能. 在REDHAT9下GCC3.4编译成功.
💻 C
📖 第 1 页 / 共 4 页
字号:
#include "version.h"#include <string.h>#include <math.h>#include "readmap.h"#include "common.h"#include "util.h"#include "anim_tbl.h"#include "battle.h"#include "char.h"#include "char_data.h"#include "buf.h"#include "item.h"#include "log.h"#include "pet.h"#include "enemy.h"#ifdef _PERSONAL_FAME	// Arminius: 家族个人声望#include "char_base.h"#include "configfile.h"#endif#include "defaultPlayer.h"// CoolFish: Family 2001/7/28#include "family.h"#include "saacproto_cli.h"#ifdef	_PET_LIMITLEVELvoid CHAR_CheckPetDoLimitlevel( int petindex , int toindex, int level);	#endiftypedef struct tagdefaultCharcterGet{    int             imagenumber;    Char*           initchardata;    LevelUpPattern* lvpattern;    CHAR_ImageType  imgtype;}defaultCharacterGet;static defaultCharacterGet CHAR_defaultCharacterGet[]={  /*  CHAR_DEFAULTPLAYER  *///阂间裆ㄠ    {SPR_001em,&player,&lvplayer00,CHAR_IMAGETYPE_CHILDBOY},    {SPR_002em,&player,&lvplayer00,CHAR_IMAGETYPE_CHILDBOY},    {SPR_003em,&player,&lvplayer00,CHAR_IMAGETYPE_CHILDBOY},    {SPR_004em,&player,&lvplayer00,CHAR_IMAGETYPE_CHILDBOY},//剂  ㄠ    {SPR_011em,&player,&lvplayer00,CHAR_IMAGETYPE_BOY},    {SPR_012em,&player,&lvplayer00,CHAR_IMAGETYPE_BOY},    {SPR_013em,&player,&lvplayer00,CHAR_IMAGETYPE_BOY},    {SPR_014em,&player,&lvplayer00,CHAR_IMAGETYPE_BOY},//剂  ㄡ    {SPR_021em,&player,&lvplayer00,CHAR_IMAGETYPE_BOY},    {SPR_022em,&player,&lvplayer00,CHAR_IMAGETYPE_BOY},    {SPR_023em,&player,&lvplayer00,CHAR_IMAGETYPE_BOY},    {SPR_024em,&player,&lvplayer00,CHAR_IMAGETYPE_BOY},//剂  ㄢ    {SPR_031em,&player,&lvplayer00,CHAR_IMAGETYPE_BOY},    {SPR_032em,&player,&lvplayer00,CHAR_IMAGETYPE_BOY},    {SPR_033em,&player,&lvplayer00,CHAR_IMAGETYPE_BOY},    {SPR_034em,&player,&lvplayer00,CHAR_IMAGETYPE_BOY},//敛  ㄠ    {SPR_041em,&player,&lvplayer00,CHAR_IMAGETYPE_MAN},    {SPR_042em,&player,&lvplayer00,CHAR_IMAGETYPE_MAN},    {SPR_043em,&player,&lvplayer00,CHAR_IMAGETYPE_MAN},    {SPR_044em,&player,&lvplayer00,CHAR_IMAGETYPE_MAN},//敛  ㄡ    {SPR_051em,&player,&lvplayer00,CHAR_IMAGETYPE_MAN},    {SPR_052em,&player,&lvplayer00,CHAR_IMAGETYPE_MAN},    {SPR_053em,&player,&lvplayer00,CHAR_IMAGETYPE_MAN},    {SPR_054em,&player,&lvplayer00,CHAR_IMAGETYPE_MAN},//阂间辉ㄠ    {SPR_061em,&player,&lvplayer00,CHAR_IMAGETYPE_CHILDGIRL},    {SPR_062em,&player,&lvplayer00,CHAR_IMAGETYPE_CHILDGIRL},    {SPR_063em,&player,&lvplayer00,CHAR_IMAGETYPE_CHILDGIRL},    {SPR_064em,&player,&lvplayer00,CHAR_IMAGETYPE_CHILDGIRL},//剂辉ㄠ    {SPR_071em,&player,&lvplayer00,CHAR_IMAGETYPE_GIRL},    {SPR_072em,&player,&lvplayer00,CHAR_IMAGETYPE_GIRL},    {SPR_073em,&player,&lvplayer00,CHAR_IMAGETYPE_GIRL},    {SPR_074em,&player,&lvplayer00,CHAR_IMAGETYPE_GIRL},//剂辉ㄡ    {SPR_081em,&player,&lvplayer00,CHAR_IMAGETYPE_GIRL},    {SPR_082em,&player,&lvplayer00,CHAR_IMAGETYPE_GIRL},    {SPR_083em,&player,&lvplayer00,CHAR_IMAGETYPE_GIRL},    {SPR_084em,&player,&lvplayer00,CHAR_IMAGETYPE_GIRL},//剂辉ㄢ    {SPR_091em,&player,&lvplayer00,CHAR_IMAGETYPE_GIRL},    {SPR_092em,&player,&lvplayer00,CHAR_IMAGETYPE_GIRL},    {SPR_093em,&player,&lvplayer00,CHAR_IMAGETYPE_GIRL},    {SPR_094em,&player,&lvplayer00,CHAR_IMAGETYPE_GIRL},//辉岭ㄠ    {SPR_101em,&player,&lvplayer00,CHAR_IMAGETYPE_WOMAN},    {SPR_102em,&player,&lvplayer00,CHAR_IMAGETYPE_WOMAN},    {SPR_103em,&player,&lvplayer00,CHAR_IMAGETYPE_WOMAN},    {SPR_104em,&player,&lvplayer00,CHAR_IMAGETYPE_WOMAN},//辉岭ㄡ    {SPR_111em,&player,&lvplayer00,CHAR_IMAGETYPE_WOMAN},    {SPR_112em,&player,&lvplayer00,CHAR_IMAGETYPE_WOMAN},    {SPR_113em,&player,&lvplayer00,CHAR_IMAGETYPE_WOMAN},    {SPR_114em,&player,&lvplayer00,CHAR_IMAGETYPE_WOMAN},    {SPR_pet001,&player,&lvplayer00,CHAR_IMAGETYPE_DOG},    {SPR_pet002,&player,&lvplayer00,CHAR_IMAGETYPE_DOG},    {SPR_pet003,&player,&lvplayer00,CHAR_IMAGETYPE_DOG},    {SPR_pet004,&player,&lvplayer00,CHAR_IMAGETYPE_DOG},    {SPR_pet011,&player,&lvplayer00,CHAR_IMAGETYPE_DOG},};BOOL CHAR_getDefaultChar( Char*  nc  , int imagenumber ){	int     i, j;	int     defcharaindex;	Char*   defaultchar;	defaultchar = CHAR_defaultCharacterGet[arraysizeof(CHAR_defaultCharacterGet) - 1].initchardata;	memset( nc,0,sizeof(Char) );	defcharaindex = 0;    for( i = 0 ; i < arraysizeof( CHAR_defaultCharacterGet ) ; i  ++ ){		 if( CHAR_defaultCharacterGet[i].imagenumber == imagenumber ){            defaultchar = CHAR_defaultCharacterGet[i].initchardata;            defcharaindex = i;            break;		 }	}	nc->data[CHAR_IMAGETYPE] = CHAR_defaultCharacterGet[defcharaindex].imgtype;    nc->use = TRUE;    for( j = 0 ; j < CHAR_DATAINTNUM ; j ++ )        nc->data[j] = defaultchar->data[j];    for( j = 0 ; j < arraysizeof( nc->flg ) ; j ++ )        nc->flg[j] = defaultchar->flg[j];    for( j = 0 ; j < CHAR_DATACHARNUM ; j ++ )		nc->string[j].string[0] = '\0';    for( j = 0 ; j < CHAR_MAXITEMHAVE ; j ++ )        nc->indexOfExistItems[j] = -1;    for( j = 0 ; j < CHAR_MAXPOOLITEMHAVE ; j ++ )        nc->indexOfExistPoolItems[j] = -1;    for( j = 0 ; j < CHAR_MAXPETSKILLHAVE ; j ++ )        nc->unionTable.indexOfPetskill[j] = -1;    for( j = 0 ; j < CHAR_MAXPOOLPETHAVE ; j ++ )        nc->indexOfPoolPet[j] = -1;    for( j = 0 ; j < CHAR_SKILLMAXHAVE ; j ++ )        nc->haveSkill[j].use = FALSE;    for( j = 0 ; j < CHAR_TITLEMAXHAVE ; j ++ )        nc->indexOfHaveTitle[j] = -1;    for( j=0 ; j<ADDRESSBOOK_MAX ;j++ )        memset( &nc->addressBook[j],0,sizeof(nc->addressBook[j]) );    for( j = 0 ; j < CHAR_WORKDATAINTNUM ; j ++ )        nc->workint[j] = 0;    for( j = 0 ; j < CHAR_WORKDATACHARNUM ; j ++ )        nc->workchar[j].string[0] = '\0';	nc->workint[CHAR_WORKFD] = -1;    return TRUE;}static int CHAR_playerImageNumber[]={  /*  CHAR_DEFAULTPLAYER  */    SPR_001em,SPR_002em,SPR_003em,SPR_004em,SPR_011em,SPR_012em,    SPR_013em,SPR_014em,SPR_021em,SPR_022em,SPR_023em,SPR_024em,    SPR_031em,SPR_032em,SPR_033em,SPR_034em,SPR_041em,SPR_042em,    SPR_043em,SPR_044em,SPR_051em,SPR_052em,SPR_053em,SPR_054em,    SPR_061em,SPR_062em,SPR_063em,SPR_064em,SPR_071em,SPR_072em,    SPR_073em,SPR_074em,SPR_081em,SPR_082em,SPR_083em,SPR_084em,    SPR_091em,SPR_092em,SPR_093em,SPR_094em,SPR_101em,SPR_102em,    SPR_103em,SPR_104em,SPR_111em,SPR_112em,SPR_113em,SPR_114em};BOOL CHAR_checkPlayerImageNumber( int imagenumber){	int i;	for( i = 0; i < arraysizeof( CHAR_playerImageNumber); i ++  ) {		if( imagenumber == CHAR_playerImageNumber[i] ) break;	}	if( i == arraysizeof( CHAR_playerImageNumber)) return FALSE;	else return TRUE;}/*------------------------------------------------------------ * 涌  飓  寞及民尼永弁 * * 涌  飓  寞反动票及白巧□穴永玄匹瑁引匀化中月 * number = 窒谛  井 * CG_CHR_MAKE_FACE + (number*100) + (  缙  number * 25) + (     寞 * 5 ) + 轼  寞 * ------------------------------------------------------------*/BOOL CHAR_checkFaceImageNumber( int imagenumber, int faceimagenumber){	int image = imagenumber - SPR_001em;	int number;	int color;	number = (faceimagenumber - CG_CHR_MAKE_FACE)/ 100*20;	color = ((faceimagenumber - CG_CHR_MAKE_FACE)% 100) / 25*5;	if( image != number + color ) return FALSE;	return TRUE;}// 平乓仿  飓  □皮伙[ㄠ  丐凶曰隶  ㄤ潘  int CHAR_eqimagetbl[][5]={    // 允匹       {{{{ 轺徇       键         菰    { SPR_001em,SPR_001ax,SPR_001cl,SPR_001sp,SPR_001bw },    { SPR_002em,SPR_002ax,SPR_002cl,SPR_002sp,SPR_002bw },    { SPR_003em,SPR_003ax,SPR_003cl,SPR_003sp,SPR_003bw },    { SPR_004em,SPR_004ax,SPR_004cl,SPR_004sp,SPR_004bw },    { SPR_011em,SPR_011ax,SPR_011cl,SPR_011sp,SPR_011bw },    { SPR_012em,SPR_012ax,SPR_012cl,SPR_012sp,SPR_012bw },    { SPR_013em,SPR_013ax,SPR_013cl,SPR_013sp,SPR_013bw },    { SPR_014em,SPR_014ax,SPR_014cl,SPR_014sp,SPR_014bw },    { SPR_021em,SPR_021ax,SPR_021cl,SPR_021sp,SPR_021bw },    { SPR_022em,SPR_022ax,SPR_022cl,SPR_022sp,SPR_022bw },    { SPR_023em,SPR_023ax,SPR_023cl,SPR_023sp,SPR_023bw },    { SPR_024em,SPR_024ax,SPR_024cl,SPR_024sp,SPR_024bw },    { SPR_021em,SPR_021ax,SPR_021cl,SPR_021sp,SPR_021bw },    { SPR_031em,SPR_031ax,SPR_031cl,SPR_031sp,SPR_031bw },    { SPR_032em,SPR_032ax,SPR_032cl,SPR_032sp,SPR_032bw },    { SPR_033em,SPR_033ax,SPR_033cl,SPR_033sp,SPR_033bw },    { SPR_034em,SPR_034ax,SPR_034cl,SPR_034sp,SPR_034bw },    { SPR_041em,SPR_041ax,SPR_041cl,SPR_041sp,SPR_041bw },    { SPR_042em,SPR_042ax,SPR_042cl,SPR_042sp,SPR_042bw },    { SPR_043em,SPR_043ax,SPR_043cl,SPR_043sp,SPR_043bw },    { SPR_044em,SPR_044ax,SPR_044cl,SPR_044sp,SPR_044bw },    { SPR_051em,SPR_051ax,SPR_051cl,SPR_051sp,SPR_051bw },    { SPR_052em,SPR_052ax,SPR_052cl,SPR_052sp,SPR_052bw },    { SPR_053em,SPR_053ax,SPR_053cl,SPR_053sp,SPR_053bw },    { SPR_054em,SPR_054ax,SPR_054cl,SPR_054sp,SPR_054bw },    { SPR_061em,SPR_061ax,SPR_061cl,SPR_061sp,SPR_061bw },    { SPR_062em,SPR_062ax,SPR_062cl,SPR_062sp,SPR_062bw },    { SPR_063em,SPR_063ax,SPR_063cl,SPR_063sp,SPR_063bw },    { SPR_064em,SPR_064ax,SPR_064cl,SPR_064sp,SPR_064bw },    { SPR_071em,SPR_071ax,SPR_071cl,SPR_071sp,SPR_071bw },    { SPR_072em,SPR_072ax,SPR_072cl,SPR_072sp,SPR_072bw },    { SPR_073em,SPR_073ax,SPR_073cl,SPR_073sp,SPR_073bw },    { SPR_074em,SPR_074ax,SPR_074cl,SPR_074sp,SPR_074bw },    { SPR_081em,SPR_081ax,SPR_081cl,SPR_081sp,SPR_081bw },    { SPR_082em,SPR_082ax,SPR_082cl,SPR_082sp,SPR_082bw },    { SPR_083em,SPR_083ax,SPR_083cl,SPR_083sp,SPR_083bw },    { SPR_084em,SPR_084ax,SPR_084cl,SPR_084sp,SPR_084bw },    { SPR_091em,SPR_091ax,SPR_091cl,SPR_091sp,SPR_091bw },    { SPR_092em,SPR_092ax,SPR_092cl,SPR_092sp,SPR_092bw },    { SPR_093em,SPR_093ax,SPR_093cl,SPR_093sp,SPR_093bw },    { SPR_094em,SPR_094ax,SPR_094cl,SPR_094sp,SPR_094bw },    { SPR_101em,SPR_101ax,SPR_101cl,SPR_101sp,SPR_101bw },    { SPR_102em,SPR_102ax,SPR_102cl,SPR_102sp,SPR_102bw },    { SPR_103em,SPR_103ax,SPR_103cl,SPR_103sp,SPR_103bw },    { SPR_104em,SPR_104ax,SPR_104cl,SPR_104sp,SPR_104bw },    { SPR_111em,SPR_111ax,SPR_111cl,SPR_111sp,SPR_111bw },    { SPR_112em,SPR_112ax,SPR_112cl,SPR_112sp,SPR_112bw },    { SPR_113em,SPR_113ax,SPR_113cl,SPR_113sp,SPR_113bw },    { SPR_114em,SPR_114ax,SPR_114cl,SPR_114sp,SPR_114bw },    { SPR_091em,SPR_091ax,SPR_091cl,SPR_091sp,SPR_091bw },    { SPR_092em,SPR_092ax,SPR_092cl,SPR_092sp,SPR_092bw },	{ SPR_pet001,SPR_pet001,SPR_pet001,SPR_pet001,SPR_pet001},	{ SPR_pet002,SPR_pet002,SPR_pet002,SPR_pet002,SPR_pet002},	{ SPR_pet003,SPR_pet003,SPR_pet003,SPR_pet003,SPR_pet003},	{ SPR_pet004,SPR_pet004,SPR_pet004,SPR_pet004,SPR_pet004},	{ SPR_pet011,SPR_pet011,SPR_pet011,SPR_pet011,SPR_pet011},    { SPR_121em,SPR_121ax,SPR_121cl,SPR_121sp,SPR_121bw },    { SPR_122em,SPR_122ax,SPR_122cl,SPR_122sp,SPR_122bw },    { SPR_131em,SPR_131ax,SPR_131cl,SPR_131sp,SPR_131bw },    { SPR_132em,SPR_132ax,SPR_132cl,SPR_132sp,SPR_132bw },    { SPR_133em,SPR_133ax,SPR_133cl,SPR_133sp,SPR_133bw },    { SPR_141em,SPR_141ax,SPR_141cl,SPR_141sp,SPR_141bw },    { SPR_142em,SPR_142ax,SPR_142cl,SPR_142sp,SPR_142bw },    { SPR_151em,SPR_151ax,SPR_151cl,SPR_151sp,SPR_151bw },    { SPR_152em,SPR_152ax,SPR_152cl,SPR_152sp,SPR_152bw },    { SPR_161em,SPR_161ax,SPR_161cl,SPR_161sp,SPR_161bw },    { SPR_162em,SPR_162ax,SPR_162cl,SPR_162sp,SPR_162bw },};/*------------------------------------------------------------ * 隶    午  飓  寞井日蕙仄中  飓  寞毛  月[ * 娄醒 *  basebaseimagenumber     int             葭卞卅月  飓  寞 *  category                ITEM_CATEGORY   失奶  丞及市  打伉 * 忒曰袄 *  蕙仄中  飓  寞[巨仿□及凛反}-1 ------------------------------------------------------------*/int CHAR_getNewImagenumberFromEquip( int basebaseimagenumber,                                     ITEM_CATEGORY category ){    int i;    /*  ITEM_CATEGORY 民尼永弁  */    if( category < 0 || category > arraysizeof(CHAR_eqimagetbl[0]) )        return -1;    for( i=0 ; i<arraysizeof(CHAR_eqimagetbl) ; i++ ){        if( CHAR_eqimagetbl[i][0] == basebaseimagenumber )            return CHAR_eqimagetbl[i][category];    }    return -1;}/*------------------------------------------------------------ *   侬  井日  飓  寞毛  月[ * 娄醒 *  string      char*         侬   * 忒曰袄 *  巨仿□ -1 *  公木动陆分午弘仿白奴永弁  寞 ------------------------------------------------------------*/int CHAR_seekGraphicNumberFromString( char* string ){    int     hashvalue;    int     i;    int     ret;    /* 公及引引及醒侬分匀凶日公及引引忒允[ */    if( strtolchecknum( string, &ret,10,INT ) )return ret;    return -1;}/*====================  衬桦赭====================*//*  衬桦赭毛忡  允月    */typedef struct tagCHAR_invinsibleArea{    CHAR_AREAKIND   kind;    int     floor;    RECT    area;    int     work[10];}CHAR_invincibleArea;CHAR_invincibleArea*    CHAR_invarea;int                     CHAR_invareanum;/*------------------------------------------------------------ *   衬桦赭及赓渝祭毛允月[ * 娄醒 *  filename        char*       涩烂白央奶伙   * 忒曰袄 *  岳      TRUE(1) *  撩      FALSE(0) *------------------------------------------------------------*/BOOL CHAR_initInvinciblePlace( char* filename ){    FILE*   f;    char    line[256];    int     linenum=0;    int     invreadlen=0;    f = fopen(filename,"r");    if( f == NULL ){        errorprint;        return FALSE;    }    CHAR_invareanum=0;    /*  引内  躲卅垫互窒垫丐月井升丹井譬屯月    */    while( fgets( line, sizeof( line ), f ) ){        linenum ++;        if( line[0] == '#' )continue;        /* comment */        if( line[0] == '\n' )continue;       /* none    */        chomp( line );        CHAR_invareanum++;    }    if( fseek( f, 0, SEEK_SET ) == -1 ){        fprint( "Seek Error\n" );

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -