日常更新

This commit is contained in:
chuyiwen 2017-01-18 17:09:08 +09:00
parent 5adca5545f
commit 426cf0ccab
9 changed files with 370 additions and 362 deletions

View File

@ -504,9 +504,9 @@ void PETMAIL_Loopfunc( int index)
static int PETMAIL_getIdleTime( int index) static int PETMAIL_getIdleTime( int index)
{ {
#define PETMAIL_DIVRANGE 25 // 坌喃允月汹 #define PETMAIL_DIVRANGE 25 // 分割する量
#define PETMAIL_IDLELEVELRANGE 10 // 坌喃允月 区 #define PETMAIL_IDLELEVELRANGE 10 // 分割する範囲
#define PETMAIL_IDLEUNITTIME 3 // 棉厥 #define PETMAIL_IDLEUNITTIME 3 // 間隔
int d; int d;
#ifdef _PETMAIL_TIME #ifdef _PETMAIL_TIME
int dex; int dex;

View File

@ -18,7 +18,7 @@
#include "configfile.h" #include "configfile.h"
/*====================惫寞 ====================*/ /*====================称号表 ====================*/
static int TITLE_IntCheck( int charaindex,int elem, int *data, int flg); static int TITLE_IntCheck( int charaindex,int elem, int *data, int flg);
static int TITLE_WorkIntCheck( int charaindex,int elem, int *data, int flg); static int TITLE_WorkIntCheck( int charaindex,int elem, int *data, int flg);
static int TITLE_ItemCheck( int charaindex,int elem, int *data, int flg); static int TITLE_ItemCheck( int charaindex,int elem, int *data, int flg);
@ -28,32 +28,33 @@ static int TITLE_SexCheck( int charaindex,int elem, int *data, int flg);
typedef enum typedef enum
{ {
TITLE_FUNCTYPENONE, /* 楮醒戏岳仄卅中 */ TITLE_FUNCTYPENONE, /* 関数生成しない */
TITLE_FUNCTYPEUSERFUNC, /* definefunction 毛银匀化 蟆毛综月 TITLE_FUNCTYPEUSERFUNC, /* definefunction を使って名前を作る
* *
* int 仿 * int
* buf * buf
* buflen * buflen
*/ */
TITLE_USEFUNCTYPENUM TITLE_USEFUNCTYPENUM
}TITLE_USEFUNCTYPE; }TITLE_USEFUNCTYPE;
typedef struct tagTITLE_Table typedef struct tagTITLE_Table
{ {
int index; /* 蛙犯□正午询晶毛潸月凶户[ int index; /* 旧データと互換を取るため。
* addtitle午井支月 * addtitleとかやる
*/ */
char name[32]; char name[32];
TITLE_USEFUNCTYPE functype; TITLE_USEFUNCTYPE functype;
void (*definefunction)(int,char* buf,int buflen); void (*definefunction)(int,char* buf,int buflen);
}TITLE_Table; }TITLE_Table;
/* 银尹月由仿丢□正 /* 使えるパラメータ
* STR,TGH,MAXMPATK,DEF * STR,TGH,MAXMPATK,DEF
* LEVEL,CLASS,SKILL,ITEM,FIREREG,ICEREG,THUNDERREG * LEVEL,CLASS,SKILL,ITEM,FIREREG,ICEREG,THUNDERREG
* KANJILV,TALKCNT,WALKCNT,DEADCNT,LOGINCNT,BASEIMAGENUMBER * KANJILV,TALKCNT,WALKCNT,DEADCNT,LOGINCNT,BASEIMAGENUMBER
* GOLD * GOLD
*/ */
typedef struct tagTITLE_Compare { typedef struct tagTITLE_Compare {
char compare[8];; char compare[8];;
} TITLE_COMPARE; } TITLE_COMPARE;
@ -69,11 +70,11 @@ typedef struct tagTITLE_PARAM
TITLE_PARAM TITLE_param[] = TITLE_PARAM TITLE_param[] =
{ {
/**** 仇仇井日 ****/ /**** ここから ****/
{ -1, TITLE_ItemCheck, "ITEM" }, { -1, TITLE_ItemCheck, "ITEM" },
{ -1, TITLE_ItemEquipCheck,"EQUIPITEM" }, { -1, TITLE_ItemEquipCheck,"EQUIPITEM" },
{ -1, NULL, "EQUIPEVENT" }, { -1, NULL, "EQUIPEVENT" },
/**** 仇仇引匹反 凳仄卅中匹仁分今中[ ****/ /**** ここまでは変更しないでください ****/
{ -1, TITLE_SkillCheck, "SKILL" }, { -1, TITLE_SkillCheck, "SKILL" },
{ CHAR_STR, TITLE_IntCheck, "STR" }, { CHAR_STR, TITLE_IntCheck, "STR" },
{ CHAR_TOUGH, TITLE_IntCheck, "TGH" }, { CHAR_TOUGH, TITLE_IntCheck, "TGH" },
@ -93,13 +94,13 @@ TITLE_PARAM TITLE_param[] =
#define TITLE_PARAMSIZE 20 #define TITLE_PARAMSIZE 20
typedef struct tagTITLE_configTable typedef struct tagTITLE_configTable
{ {
int paramindex[20]; /* TITLE_param尺及骄侬 */ int paramindex[20]; /* TITLE_paramへの添字 */
int param[20][TITLE_PARAMSIZE]; /* 笠袄 */ int param[20][TITLE_PARAMSIZE]; /* 評価値 */
int compareflg[20]; /* ><=羁升丹允月井 */ int compareflg[20]; /* ><=等どうするか */
int title; int title;
BOOL equipcheckflg; /* BOOL equipcheckflg; /*
* 仿 *
* *
*/ */
}TITLE_CONFIGTABLE; }TITLE_CONFIGTABLE;
@ -116,7 +117,7 @@ static int TITLE_titlenum;
static int TITLE_titlecfgnum; static int TITLE_titlecfgnum;
/*------------------------------------------------------------ /*------------------------------------------------------------
* index TITLE_table及骄侬毛 * index番号からTITLE_tableの添字を得る
------------------------------------------------------------*/ ------------------------------------------------------------*/
int TITLE_getTitleIndex( int index) int TITLE_getTitleIndex( int index)
{ {
@ -130,23 +131,23 @@ int TITLE_getTitleIndex( int index)
return -1; return -1;
} }
/* 田永白央及扔奶术 */ /* バッファのサイズ */
#define TITLESTRINGBUFSIZ 256 #define TITLESTRINGBUFSIZ 256
/* 弁仿奶失件玄卞苇六月旦平伙犯□正及 侬 及田永白央 */ /* クライアントに見せるスキルデータの文字列のバッファ */
static char TITLE_statusStringBuffer[TITLESTRINGBUFSIZ]; static char TITLE_statusStringBuffer[TITLESTRINGBUFSIZ];
/*------------------------------------------------------------ /*------------------------------------------------------------
* 仿 *
* *
* title Title* * title Title*
* charaindex int 仿 * charaindex int
* *
* char* * char*
------------------------------------------------------------*/ ------------------------------------------------------------*/
char* TITLE_makeTitleStatusString( int charaindex,int havetitleindex ) char* TITLE_makeTitleStatusString( int charaindex,int havetitleindex )
{ {
int attach; int attach;
int index; int index;
/* 楮醒 尺及奶件犯永弁旦井日犯□正毛综岳允月 */ /* 関数表へのインデックスからデータを作成する */
index = CHAR_getCharHaveTitle( charaindex,havetitleindex ); index = CHAR_getCharHaveTitle( charaindex,havetitleindex );
attach = TITLE_getTitleIndex( index); attach = TITLE_getTitleIndex( index);
@ -182,10 +183,10 @@ char* TITLE_makeTitleStatusString( int charaindex,int havetitleindex )
} }
/*------------------------------------------------------------ /*------------------------------------------------------------
* *
* *
* *
* *
* char* * char*
------------------------------------------------------------*/ ------------------------------------------------------------*/
char* TITLE_makeSkillFalseString( void ) char* TITLE_makeSkillFalseString( void )
@ -196,13 +197,13 @@ char* TITLE_makeSkillFalseString( void )
/*------------------------------------------------------------ /*------------------------------------------------------------
* *
* *
* charaindex int 仿 * charaindex int
* titleindex int * titleindex int
* *
* index * index
* FALSE(0) * FALSE(0)
------------------------------------------------------------*/ ------------------------------------------------------------*/
BOOL TITLE_addtitle( int charaindex, int titleindex ) BOOL TITLE_addtitle( int charaindex, int titleindex )
{ {
@ -215,7 +216,7 @@ BOOL TITLE_addtitle( int charaindex, int titleindex )
for( i=0 ; i < CHAR_TITLEMAXHAVE ; i++ ){ for( i=0 ; i < CHAR_TITLEMAXHAVE ; i++ ){
if( CHAR_getCharHaveTitle( charaindex,i ) == titleindex ) if( CHAR_getCharHaveTitle( charaindex,i ) == titleindex )
/* 允匹卞 匀化中月井日窒手仄卅中 */ /* すでに持っているから何もしない */
return FALSE; return FALSE;
if( firstfindempty == -1 if( firstfindempty == -1
&& CHAR_getCharHaveTitle(charaindex,i) == -1 ){ && CHAR_getCharHaveTitle(charaindex,i) == -1 ){
@ -227,14 +228,14 @@ BOOL TITLE_addtitle( int charaindex, int titleindex )
/*------------------------------------------------------------ /*------------------------------------------------------------
* *
* *
* *
* charaindex int 仿 * charaindex int
* titleindex int * titleindex int
* *
* TRUE(1) * TRUE(1)
* FALSE(0) * FALSE(0)
------------------------------------------------------------*/ ------------------------------------------------------------*/
BOOL TITLE_deltitle( int charaindex, int titleindex ) BOOL TITLE_deltitle( int charaindex, int titleindex )
{ {
@ -248,11 +249,11 @@ BOOL TITLE_deltitle( int charaindex, int titleindex )
for( i=0 ; i < CHAR_TITLEMAXHAVE ; i++ ) for( i=0 ; i < CHAR_TITLEMAXHAVE ; i++ )
if( CHAR_getCharHaveTitle( charaindex,i ) == titleindex ){ if( CHAR_getCharHaveTitle( charaindex,i ) == titleindex ){
/* 愤坌互银匀化中凶支勾卅日壬}公木手卅仄卞允月 */ /* 自分が使っていたやつならば、それもなしにする */
if( CHAR_getInt(charaindex, CHAR_INDEXOFEQTITLE) == i ){ if( CHAR_getInt(charaindex, CHAR_INDEXOFEQTITLE) == i ){
CHAR_setInt(charaindex, CHAR_INDEXOFEQTITLE, -1 ); CHAR_setInt(charaindex, CHAR_INDEXOFEQTITLE, -1 );
} }
/* 匀化中月井日壅允 */ /* 持っているから消す */
CHAR_setCharHaveTitle( charaindex,i,-1); CHAR_setCharHaveTitle( charaindex,i,-1);
del = TRUE; del = TRUE;
@ -261,12 +262,12 @@ BOOL TITLE_deltitle( int charaindex, int titleindex )
return del; return del;
} }
/*------------------------------------------------------------ /*------------------------------------------------------------
* *
* *
* filename char* * filename char*
* *
* TRUE(1) * TRUE(1)
* FALSE(0) * FALSE(0)
*------------------------------------------------------------*/ *------------------------------------------------------------*/
BOOL TITLE_initTitleName( char* filename ) BOOL TITLE_initTitleName( char* filename )
{ {
@ -283,7 +284,7 @@ BOOL TITLE_initTitleName( char* filename )
TITLE_titlenum=0; TITLE_titlenum=0;
/* 引内 躲卅垫互窒垫丐月井升丹井譬屯月 */ /* まず有効な行が何行あるかどうか調べる */
while( fgets( line, sizeof( line ), f ) ){ while( fgets( line, sizeof( line ), f ) ){
linenum ++; linenum ++;
if( line[0] == '#' )continue; /* comment */ if( line[0] == '#' )continue; /* comment */
@ -307,7 +308,7 @@ BOOL TITLE_initTitleName( char* filename )
fclose( f ); fclose( f );
return FALSE; return FALSE;
} }
/* 赓渝祭 */ /* 初期化 */
{ {
int i; int i;
for( i = 0; i < TITLE_titlenum; i ++ ) { for( i = 0; i < TITLE_titlenum; i ++ ) {
@ -319,7 +320,7 @@ BOOL TITLE_initTitleName( char* filename )
} }
/* 引凶 心 允 */ /* また読み直す */
linenum = 0; linenum = 0;
while( fgets( line, sizeof( line ), f ) ){ while( fgets( line, sizeof( line ), f ) ){
linenum ++; linenum ++;
@ -327,10 +328,11 @@ BOOL TITLE_initTitleName( char* filename )
if( line[0] == '\n' )continue; /* none */ if( line[0] == '\n' )continue; /* none */
chomp( line ); chomp( line );
/* 垫毛帮溥允月 */ /* 行を整形する */
/* 引内 tab 毛 " " 卞 五晶尹月 */ /* まず tab を " " に置き換える */
replaceString( line, '\t' , ' ' ); replaceString( line, '\t' , ' ' );
/* 燮 及旦矢□旦毛潸月[*/ /* 先頭のスペースを取る。*/
{ {
int i; int i;
char buf[256]; char buf[256];
@ -348,7 +350,7 @@ BOOL TITLE_initTitleName( char* filename )
char token[256]; char token[256];
int ret; int ret;
/* 夫午勾户及玄□弁件毛苇月 */ /* ひとつめのトークンを見る */
ret = getStringFromIndexWithDelim( line,",",1,token, ret = getStringFromIndexWithDelim( line,",",1,token,
sizeof(token)); sizeof(token));
if( ret==FALSE ){ if( ret==FALSE ){
@ -357,7 +359,7 @@ BOOL TITLE_initTitleName( char* filename )
} }
TITLE_table[title_readlen].index = atoi(token); TITLE_table[title_readlen].index = atoi(token);
/* 2勾户及玄□弁件毛苇月 */ /* 2つめのトークンを見る */
ret = getStringFromIndexWithDelim( line,",",2,token, ret = getStringFromIndexWithDelim( line,",",2,token,
sizeof(token)); sizeof(token));
if( ret==FALSE ){ if( ret==FALSE ){
@ -394,12 +396,12 @@ BOOL TITLE_initTitleName( char* filename )
return TRUE; return TRUE;
} }
/*------------------------------------------------------------ /*------------------------------------------------------------
* *
* *
* filename char* * filename char*
* *
* TRUE(1) * TRUE(1)
* FALSE(0) * FALSE(0)
*------------------------------------------------------------*/ *------------------------------------------------------------*/
BOOL TITLE_reinitTitleName( void) BOOL TITLE_reinitTitleName( void)
{ {
@ -407,12 +409,12 @@ BOOL TITLE_reinitTitleName( void)
return(TITLE_initTitleName( getTitleNamefile())); return(TITLE_initTitleName( getTitleNamefile()));
} }
/*------------------------------------------------------------ /*------------------------------------------------------------
* *
* *
* filename char* * filename char*
* *
* TRUE(1) * TRUE(1)
* FALSE(0) * FALSE(0)
*------------------------------------------------------------*/ *------------------------------------------------------------*/
static void TITLE_initTitleData( int array) static void TITLE_initTitleData( int array)
{ {
@ -429,7 +431,7 @@ static void TITLE_initTitleData( int array)
} }
/*------------------------------------------------------------ /*------------------------------------------------------------
* *
*------------------------------------------------------------*/ *------------------------------------------------------------*/
static int TITLE_getConfigOneLine( FILE *fp, char *line, int linelen) static int TITLE_getConfigOneLine( FILE *fp, char *line, int linelen)
{ {
@ -442,10 +444,10 @@ static int TITLE_getConfigOneLine( FILE *fp, char *line, int linelen)
linenum ++; linenum ++;
if( buf[0] == '#' )continue; /* comment */ if( buf[0] == '#' )continue; /* comment */
if( buf[0] == '\n' )continue; /* none */ if( buf[0] == '\n' )continue; /* none */
/* 垫毛帮溥允月 */ /* 行を整形する */
/* 引内 tab 毛 " " 卞 五晶尹月 */ /* まず tab を " " に置き換える */
replaceString( buf, '\t' , ' ' ); replaceString( buf, '\t' , ' ' );
/* 旦矢□旦绰轮 */ /* スペース削除 */
deleteCharFromString( buf, " "); deleteCharFromString( buf, " ");
if( buf[0] == '{' ) { if( buf[0] == '{' ) {
@ -465,18 +467,18 @@ static int TITLE_getConfigOneLine( FILE *fp, char *line, int linelen)
return 1; return 1;
} }
else { else {
/* "{"匹湃卞铵引匀化中凶日 }*/ /* "{"で既に始まっていたら }*/
if( startflg == TRUE ) { if( startflg == TRUE ) {
if( strlen( line) != 0 ) { if( strlen( line) != 0 ) {
if( line[strlen(line) -1] != ',' ) { if( line[strlen(line) -1] != ',' ) {
strcatsafe( line, linelen, ","); strcatsafe( line, linelen, ",");
} }
} }
/* ㄠ垫卞引午户化中仁*/ /* 1行にまとめていく*/
chompex( buf ); chompex( buf );
strcatsafe( line,linelen, buf); strcatsafe( line,linelen, buf);
} }
/* 躲垫分互"{"匹反元引匀化卅中桦宁反公及引引ㄠ垫匹忒允 }*/ /* 有効行だが"{"ではじまってない場合はそのまま1行で返す }*/
else { else {
chompex( buf ); chompex( buf );
strcatsafe( line,linelen, buf); strcatsafe( line,linelen, buf);
@ -484,7 +486,7 @@ static int TITLE_getConfigOneLine( FILE *fp, char *line, int linelen)
} }
} }
} }
/* 仇仇卞仁月午蜕丹仪反EOF 驯五元扎卅中戊□玉分 */ /* ここにくると言う事はEOF (好きじゃないコードだ) */
return 0; return 0;
} }
static int TITLE_getParamData( int readarray, int array,char *src) static int TITLE_getParamData( int readarray, int array,char *src)
@ -521,12 +523,12 @@ char *getlocaltime()
} }
/*------------------------------------------------------------ /*------------------------------------------------------------
* *
* *
* filename char* * filename char*
* *
* TRUE(1) * TRUE(1)
* FALSE(0) * FALSE(0)
*------------------------------------------------------------*/ *------------------------------------------------------------*/
BOOL TITLE_initTitleConfig( char* filename ) BOOL TITLE_initTitleConfig( char* filename )
{ {
@ -543,7 +545,7 @@ BOOL TITLE_initTitleConfig( char* filename )
TITLE_titlecfgnum=0; TITLE_titlecfgnum=0;
/* 引内 躲卅垫互窒垫丐月井升丹井譬屯月 */ /* まず有効な行が何行あるかどうか調べる */
/*while( fgets( line, sizeof( line ), f ) ){}*/ /*while( fgets( line, sizeof( line ), f ) ){}*/
while( 1 ) { while( 1 ) {
int rc; int rc;
@ -568,7 +570,7 @@ BOOL TITLE_initTitleConfig( char* filename )
fclose( f ); fclose( f );
return FALSE; return FALSE;
} }
/* 赓渝祭 */ /* 初期化 */
{ {
int i; int i;
for( i = 0; i < TITLE_titlecfgnum; i ++ ) { for( i = 0; i < TITLE_titlecfgnum; i ++ ) {
@ -583,7 +585,7 @@ BOOL TITLE_initTitleConfig( char* filename )
return FALSE; return FALSE;
} }
/* 引凶 心 允 */ /* また読み直す */
linenum = 0; linenum = 0;
/*while( fgets( line, sizeof( line ), f ) ){}*/ /*while( fgets( line, sizeof( line ), f ) ){}*/
while( 1) { while( 1) {
@ -601,17 +603,17 @@ BOOL TITLE_initTitleConfig( char* filename )
int comppos; int comppos;
BOOL errflg =FALSE; BOOL errflg =FALSE;
for( i = 1; ; i ++ ){ for( i = 1; ; i ++ ){
/* 玄□弁件毛苇月 */ /* トークンを見る */
ret = getStringFromIndexWithDelim( line,",",i,token, ret = getStringFromIndexWithDelim( line,",",i,token,
sizeof(token)); sizeof(token));
if( ret == FALSE ){ if( ret == FALSE ){
break; break;
} }
/* 侬卞 晶 */ /* 大文字に変換 */
for( j = 0; j < strlen( token); j ++ ) { for( j = 0; j < strlen( token); j ++ ) {
token[j] = toupper( token[j]); token[j] = toupper( token[j]);
} }
/* 惫寞隙烂毛譬屯月 */ /* 称号指定を調べる */
if( strncmp( "TITLE", token, 5) == 0 ) { if( strncmp( "TITLE", token, 5) == 0 ) {
char buf[64]; char buf[64];
ret = getStringFromIndexWithDelim( token,"=",2,buf, ret = getStringFromIndexWithDelim( token,"=",2,buf,
@ -625,7 +627,7 @@ BOOL TITLE_initTitleConfig( char* filename )
TITLE_ConfigTable[titlecfg_readlen].title = atoi( buf); TITLE_ConfigTable[titlecfg_readlen].title = atoi( buf);
} }
else { else {
/* 由仿丢□正隙烂毛 戈 */ /*パラメータ指定を読む */
for( j = 0; j < arraysizeof( TITLE_param); j ++ ) { for( j = 0; j < arraysizeof( TITLE_param); j ++ ) {
if( strncmp( TITLE_param[j].paramname, if( strncmp( TITLE_param[j].paramname,
token, token,
@ -633,14 +635,14 @@ BOOL TITLE_initTitleConfig( char* filename )
== 0 ) == 0 )
{ {
TITLE_ConfigTable[titlecfg_readlen].paramindex[i-1] = j; TITLE_ConfigTable[titlecfg_readlen].paramindex[i-1] = j;
/* 隶 奶矛件玄匹惫寞毛民尼永弁允月白仿弘毛 化月[ */ /* 装備イベントで称号をチェックするフラグを立てる。 */
if( j == 0 || j == 1 || j == 2) { if( j == 0 || j == 1 || j == 2) {
TITLE_ConfigTable[titlecfg_readlen].equipcheckflg = TRUE; TITLE_ConfigTable[titlecfg_readlen].equipcheckflg = TRUE;
} }
break; break;
} }
} }
/* 由仿丢□正互 卅及毛隙烂今木凶 */ /* パラメータが変なのを指定された */
if( j == arraysizeof( TITLE_param) ) { if( j == arraysizeof( TITLE_param) ) {
fprint("文件语法错误:%s 第%d行\n", fprint("文件语法错误:%s 第%d行\n",
filename,linenum); filename,linenum);
@ -648,7 +650,7 @@ BOOL TITLE_initTitleConfig( char* filename )
errflg = TRUE; errflg = TRUE;
break; break;
} }
/* 羁寞]尕羁寞互绣箕允月井譬屯月 */ /* 等号,不等号が存在するか調べる */
comppos = charInclude( token, "<>="); comppos = charInclude( token, "<>=");
if( comppos == -1 ) { if( comppos == -1 ) {
fprint("文件语法错误:%s 第%d行\n",filename,linenum); fprint("文件语法错误:%s 第%d行\n",filename,linenum);
@ -656,9 +658,9 @@ BOOL TITLE_initTitleConfig( char* filename )
errflg = TRUE; errflg = TRUE;
break;; break;;
} }
/* 羁寞]尕羁寞互ㄡ勾动晓 月午五 */ /* 等号,不等号が2つ以上有るとき */
if( charInclude( &token[comppos+1], "<>=") != -1 ) { if( charInclude( &token[comppos+1], "<>=") != -1 ) {
/* 升氏卅 胜井毛 戈 */ /* どんな比較かを読む */
for( j = 0; j < 3; j ++ ) { for( j = 0; j < 3; j ++ ) {
if( memcmp( TITLE_compare[j].compare, &token[comppos], 2 ) == 0 ) { if( memcmp( TITLE_compare[j].compare, &token[comppos], 2 ) == 0 ) {
break; break;
@ -694,7 +696,7 @@ BOOL TITLE_initTitleConfig( char* filename )
} }
/*TITLE_ConfigTable[titlecfg_readlen].param[i-1] /*TITLE_ConfigTable[titlecfg_readlen].param[i-1]
= atoi( &token[comppos+1]);*/ = atoi( &token[comppos+1]);*/
/* 升氏卅 胜井毛 戈 */ /* どんな比較かを読む */
for( j = 3; j < 6; j ++ ) { for( j = 3; j < 6; j ++ ) {
if( memcmp( TITLE_compare[j].compare, &token[comppos], 1 ) == 0 ) { if( memcmp( TITLE_compare[j].compare, &token[comppos], 1 ) == 0 ) {
TITLE_ConfigTable[titlecfg_readlen].compareflg[i-1] = j; TITLE_ConfigTable[titlecfg_readlen].compareflg[i-1] = j;
@ -704,7 +706,7 @@ BOOL TITLE_initTitleConfig( char* filename )
} }
} }
} }
/* 惫寞 隙烂互 井匀凶 or 卅氏井仄日及巨仿□*/ /* 称号名指定が無かった or なんかしらのエラー*/
if( errflg || TITLE_ConfigTable[titlecfg_readlen].title == -1 ) { if( errflg || TITLE_ConfigTable[titlecfg_readlen].title == -1 ) {
fprint("文件语法错误:%s 第%d行\n",filename,linenum); fprint("文件语法错误:%s 第%d行\n",filename,linenum);
TITLE_initTitleData( titlecfg_readlen); TITLE_initTitleData( titlecfg_readlen);
@ -723,19 +725,19 @@ BOOL TITLE_initTitleConfig( char* filename )
return TRUE; return TRUE;
} }
/*------------------------------------------------------------ /*------------------------------------------------------------
* * 調
* *
* charaindex int 仿 * charaindex int
* mode BOOL TRUE:item= FALSE: * mode BOOL TRUE:item=調 FALSE:
* *
* TRUE: * TRUE:
* FALSE: * FALSE:
*------------------------------------------------------------*/ *------------------------------------------------------------*/
static BOOL TITLE_TitleCheck_Main( int charaindex, BOOL mode, int *addcnt, int *delcnt) static BOOL TITLE_TitleCheck_Main( int charaindex, BOOL mode, int *addcnt, int *delcnt)
{ {
int i, j,k, ret; int i, j,k, ret;
/* 赓渝祭 */ /* 初期化 */
{ {
int i; int i;
for( i = 0; i < TITLE_titlecfgnum && TITLE_configbuf[i].title != -1; i ++ ) { for( i = 0; i < TITLE_titlecfgnum && TITLE_configbuf[i].title != -1; i ++ ) {
@ -770,8 +772,8 @@ static BOOL TITLE_TitleCheck_Main( int charaindex, BOOL mode, int *addcnt, int *
if( rc != TRUE ) break; if( rc != TRUE ) break;
} }
} }
/* 醒椭瘀卞 元惫寞互喃曰癫化日木化中月凛及啃卞] /* 複数条件に同じ称号が割り当てられている時の為に,
* add,deltile允月 * add,deltileする
*/ */
for( k = 0; k < TITLE_titlecfgnum; k ++ ) { for( k = 0; k < TITLE_titlecfgnum; k ++ ) {
if( TITLE_configbuf[k].title == title ) { if( TITLE_configbuf[k].title == title ) {
@ -803,13 +805,13 @@ static BOOL TITLE_TitleCheck_Main( int charaindex, BOOL mode, int *addcnt, int *
} }
/*------------------------------------------------------------ /*------------------------------------------------------------
* * 調
* *
* charaindex int 仿 * charaindex int
* mode BOOL TRUE:item= FALSE: * mode BOOL TRUE:item=調 FALSE:
* *
* TRUE: * TRUE:
* FALSE: * FALSE:
*------------------------------------------------------------*/ *------------------------------------------------------------*/
BOOL TITLE_TitleCheck( int charaindex, BOOL mode) BOOL TITLE_TitleCheck( int charaindex, BOOL mode)
{ {
@ -836,13 +838,13 @@ BOOL TITLE_TitleCheck( int charaindex, BOOL mode)
return rc; return rc;
} }
/*------------------------------------------------------------ /*------------------------------------------------------------
* * 調
* *
* charaindex int 仿 * charaindex int
* mode BOOL TRUE:item= FALSE: * mode BOOL TRUE:item=調 FALSE:
* *
* TRUE: * TRUE:
* FALSE: * FALSE:
*------------------------------------------------------------*/ *------------------------------------------------------------*/
BOOL TITLE_TitleCheck_Nomsg( int charaindex, BOOL mode, int *addcnt, int *delcnt) BOOL TITLE_TitleCheck_Nomsg( int charaindex, BOOL mode, int *addcnt, int *delcnt)
{ {
@ -915,7 +917,7 @@ static int TITLE_WorkIntCheck( int charaindex,int elem, int *data, int flg)
return rc; return rc;
} }
/* -------------------------------------- /* --------------------------------------
* data午 * dataと持っているアイテムを比較する
* -------------------------------------*/ * -------------------------------------*/
static int TITLE_ItemCheckMain( int charaindex, int itemhaveindex, int *data, int flg) static int TITLE_ItemCheckMain( int charaindex, int itemhaveindex, int *data, int flg)
{ {
@ -944,9 +946,9 @@ static int TITLE_ItemCheckMain( int charaindex, int itemhaveindex, int *data, in
case 5: /* "=" */ case 5: /* "=" */
if( ITEM_getInt( itemindex, ITEM_ID) == *(data +j)) rc = TRUE; if( ITEM_getInt( itemindex, ITEM_ID) == *(data +j)) rc = TRUE;
break; break;
/* 仇木分仃 健中[ /* これだけ特別扱い。
* *
* *
*/ */
case 2: /* "<>" */ case 2: /* "<>" */
if( ITEM_getInt( itemindex, ITEM_ID) == *(data +j)) rc = FALSE; if( ITEM_getInt( itemindex, ITEM_ID) == *(data +j)) rc = FALSE;
@ -1034,7 +1036,7 @@ static int TITLE_SkillCheck( int charaindex,int elem, int *data, int flg)
return rc; return rc;
} }
/* -------------------------------------- /* --------------------------------------
* 仿仿 *
* -------------------------------------*/ * -------------------------------------*/
static int TITLE_SexCheck( int charaindex,int elem, int *data, int flg) static int TITLE_SexCheck( int charaindex,int elem, int *data, int flg)
{ {

View File

@ -1345,7 +1345,7 @@ void ITEM_useOtherEditBase( int charaindex, int toindex, int haveitemindex)
void ITEM_useStatusChange( int charaindex, int toindex, int haveitemindex) void ITEM_useStatusChange( int charaindex, int toindex, int haveitemindex)
{ {
int battlemode; int battlemode;
if( CHAR_CHECKINDEX( charaindex ) == FALSE )return ; //{撩 if( CHAR_CHECKINDEX( charaindex ) == FALSE )return ; //失敗
battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE ); battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE );
if( battlemode == BATTLE_CHARMODE_INIT ){ if( battlemode == BATTLE_CHARMODE_INIT ){
}else }else
@ -1359,7 +1359,7 @@ void ITEM_useStatusChange( int charaindex, int toindex, int haveitemindex)
void ITEM_useStatusRecovery( int charaindex, int toindex, int haveitemindex) void ITEM_useStatusRecovery( int charaindex, int toindex, int haveitemindex)
{ {
int battlemode; int battlemode;
if( CHAR_CHECKINDEX( charaindex ) == FALSE )return ; //{撩 if( CHAR_CHECKINDEX( charaindex ) == FALSE )return ; //失敗
battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE ); battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE );
if( battlemode == BATTLE_CHARMODE_INIT ){ if( battlemode == BATTLE_CHARMODE_INIT ){
}else }else
@ -1437,7 +1437,7 @@ void ITEM_useMic( int charaindex, int toindex, int haveitemindex)
void ITEM_useCaptureUp( int charaindex, int toindex, int haveitemindex) void ITEM_useCaptureUp( int charaindex, int toindex, int haveitemindex)
{ {
int battlemode; int battlemode;
if( CHAR_CHECKINDEX( charaindex ) == FALSE )return ; //{撩 if( CHAR_CHECKINDEX( charaindex ) == FALSE )return ; //失敗
battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE ); battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE );
if( battlemode == BATTLE_CHARMODE_INIT ){ if( battlemode == BATTLE_CHARMODE_INIT ){
@ -1780,8 +1780,8 @@ void ITEM_useRenameItem_WindowResult( int charaindex, int seqno, int select, cha
} }
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
// 今中仇欠毛 蜇允月楮醒[ // さいころを実現する関数。
// 午仄凶凛卞]仿件母丞卞ㄠ ㄥ毛蓟太] 蟆午 飓 寞毛 凳允月[ // 落とした時に,ランダムに1~6を選び,名前と画像番号を変更する。
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
void ITEM_dropDice( int charaindex, int itemindex) void ITEM_dropDice( int charaindex, int itemindex)
{ {
@ -1789,40 +1789,41 @@ void ITEM_dropDice( int charaindex, int itemindex)
int diceimagenumber[] = { 24298,24299,24300,24301,24302,24303}; int diceimagenumber[] = { 24298,24299,24300,24301,24302,24303};
int r = RAND( 0,5); int r = RAND( 0,5);
// 飓 寞毛谨 // 画像番号を待避
ITEM_setInt( itemindex, ITEM_VAR1, ITEM_getInt( itemindex, ITEM_BASEIMAGENUMBER)); ITEM_setInt( itemindex, ITEM_VAR1, ITEM_getInt( itemindex, ITEM_BASEIMAGENUMBER));
// 飓 寞凳蕙 // 画像番号更新
ITEM_setInt( itemindex, ITEM_BASEIMAGENUMBER, diceimagenumber[r]); ITEM_setInt( itemindex, ITEM_BASEIMAGENUMBER, diceimagenumber[r]);
// 蟆凳蕙 // 名前更新
ITEM_setChar( itemindex, ITEM_SECRETNAME, dicename[r]); ITEM_setChar( itemindex, ITEM_SECRETNAME, dicename[r]);
// 犯□正及弁仿奶失件玄尺及霜耨反晓匏楮醒匹垫丹及匹]仇仇匹反支日卅中[ // データのクライアントへの送信は上位関数で行うので,ここではやらない。
} }
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
// 今中仇欠毛 蜇允月楮醒[ // さいころを実現する関数。
// 胶匀凶凛卞] 蟆午 飓 寞毛葭卞 允[ // 拾った時に,名前と画像番号を元に戻す。
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
void ITEM_pickupDice( int charaindex, int itemindex) void ITEM_pickupDice( int charaindex, int itemindex)
{ {
// 飓 寞毛葭卞 允[ // 画像番号を元に戻す。
ITEM_setInt( itemindex, ITEM_BASEIMAGENUMBER, ITEM_getInt( itemindex, ITEM_VAR1)); ITEM_setInt( itemindex, ITEM_BASEIMAGENUMBER, ITEM_getInt( itemindex, ITEM_VAR1));
// 蟆手葭卞 允 // 名前も元に戻す
ITEM_setChar( itemindex, ITEM_SECRETNAME, ITEM_getChar( itemindex, ITEM_NAME)); ITEM_setChar( itemindex, ITEM_SECRETNAME, ITEM_getChar( itemindex, ITEM_NAME));
} }
enum { enum {
ITEM_LOTTERY_1ST, // 1羁 ITEM_LOTTERY_1ST, // 1等
ITEM_LOTTERY_2ND, ITEM_LOTTERY_2ND,
ITEM_LOTTERY_3RD, ITEM_LOTTERY_3RD,
ITEM_LOTTERY_4TH, ITEM_LOTTERY_4TH,
ITEM_LOTTERY_5TH, // 5 ITEM_LOTTERY_5TH, // 5
ITEM_LOTTERY_6TH, // 6羁 ITEM_LOTTERY_6TH, // 6等
ITEM_LOTTERY_NONE, // 陆木 ITEM_LOTTERY_NONE, // 外れ
ITEM_LOTTERY_NUM, ITEM_LOTTERY_NUM,
}; };
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
// 旦疋□玉仁元互综日木月凛及楮醒[ // スピードくじが作られる時の関数。
// 仇仇匹窒羁操卞卅月井毛瑁户月[ // ここで何等賞になるかを決める。
// 割 反动票及骚曰[ // 確率は以下の通り。
#define PRE_6 (10000) #define PRE_6 (10000)
#define PRE_5 (1300 + PRE_6) #define PRE_5 (1300 + PRE_6)
@ -1855,15 +1856,15 @@ BOOL ITEM_initLottery(ITEM_Item* itm)
{ {
int r = RAND( 0, 49999); int r = RAND( 0, 49999);
int hit = ITEM_LOTTERY_NONE; // int hit = ITEM_LOTTERY_NONE; //
char result[7]; // char result[7]; // 出目
int countnum[6]; int countnum[6];
int count; int count;
int i; int i;
int len; int len;
// 域荚综匀化月及匹[疯粟 仄凶凛午井卞综曰卅云今木卅中方丹卞[ // 一回作ってるので。再起動した時とかに作りなおされないように。
if( itm->data[ITEM_VAR3] == 1 ) return TRUE; if( itm->data[ITEM_VAR3] == 1 ) return TRUE;
// 铲蓟允月[ // 抽選する。
if( r < PRE_6 ) hit = ITEM_LOTTERY_6TH; if( r < PRE_6 ) hit = ITEM_LOTTERY_6TH;
else if( r < PRE_5 ) hit = ITEM_LOTTERY_5TH; else if( r < PRE_5 ) hit = ITEM_LOTTERY_5TH;
else if( r < PRE_4 ) hit = ITEM_LOTTERY_4TH; else if( r < PRE_4 ) hit = ITEM_LOTTERY_4TH;
@ -1872,10 +1873,10 @@ BOOL ITEM_initLottery(ITEM_Item* itm)
else if( r < PRE_1 ) hit = ITEM_LOTTERY_1ST; else if( r < PRE_1 ) hit = ITEM_LOTTERY_1ST;
else hit = ITEM_LOTTERY_NONE; else hit = ITEM_LOTTERY_NONE;
// 请 毛瑁烂允月[ // 出目を決定する。
count = 0; count = 0;
if( hit != ITEM_LOTTERY_NONE ) { if( hit != ITEM_LOTTERY_NONE ) {
// 癫曰毛本永玄 // 当りをセット
result[0] = result[1] = result[2] = hit+1; result[0] = result[1] = result[2] = hit+1;
count = 3; count = 3;
countnum[hit] = 3; countnum[hit] = 3;
@ -1883,8 +1884,8 @@ BOOL ITEM_initLottery(ITEM_Item* itm)
while( count < 6 ) { while( count < 6 ) {
int r = RAND( ITEM_LOTTERY_1ST, ITEM_LOTTERY_6TH); int r = RAND( ITEM_LOTTERY_1ST, ITEM_LOTTERY_6TH);
if( countnum[r] >= 2 ) continue; if( countnum[r] >= 2 ) continue;
// 2/3仁日中及割 匹]职及陆木钓 毛伉□民今六化支月[ // 2/3くらいの確率で,他の外れ絵柄をリーチさせてやる。
// 升五升五[ // どきどき。
if( ( hit != ITEM_LOTTERY_NONE && count == 3 ) if( ( hit != ITEM_LOTTERY_NONE && count == 3 )
|| ( hit == ITEM_LOTTERY_NONE && count == 0 ) ) || ( hit == ITEM_LOTTERY_NONE && count == 0 ) )
{ {
@ -1899,13 +1900,14 @@ BOOL ITEM_initLottery(ITEM_Item* itm)
result[count] = r+1; result[count] = r+1;
count++; count++;
} }
// 请 毛扑乓永白伙允月[ // 出目をシャッフルする。
// 癫曰及凛反2/3及割 匹]癫曰醒侬毛域 欠卞裔烂允月[ // 当りの時は2/3の確率で当り数字を一番後ろに固定する。
// 玉平玉平躲绊毛谎丹啃[ // ドキドキ効果を狙う為。
len = sizeof( result)-2; len = sizeof( result)-2;
if( hit != ITEM_LOTTERY_NONE ) { if( hit != ITEM_LOTTERY_NONE ) {
if( RAND( 0,2) ) { if( RAND( 0,2) ) {
// 癫曰醒侬毛域 欠卞[ // 当り数字を一番後ろに。
char s = result[0]; char s = result[0];
result[0] = result[5]; result[0] = result[5];
result[5] = s; result[5] = s;
@ -1920,10 +1922,10 @@ BOOL ITEM_initLottery(ITEM_Item* itm)
result[x] = result[y]; result[x] = result[y];
result[y] = s; result[y] = s;
} }
// 及凶户] 侬 健中卞仄化云仁[ // 念のため,文字列扱いにしておく。
result[sizeof(result)-1] = '\0'; result[sizeof(result)-1] = '\0';
itm->data[ITEM_VAR1] = hit; itm->data[ITEM_VAR1] = hit;
// 户仁匀凶市它件玄 // めくったカウント
itm->data[ITEM_VAR2] = 0; itm->data[ITEM_VAR2] = 0;
itm->data[ITEM_VAR3] = 1; itm->data[ITEM_VAR3] = 1;
memcpy( itm->string[ITEM_ARGUMENT].string, result, sizeof( result)); memcpy( itm->string[ITEM_ARGUMENT].string, result, sizeof( result));
@ -1931,8 +1933,8 @@ BOOL ITEM_initLottery(ITEM_Item* itm)
return TRUE; return TRUE;
} }
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
// 旦疋□玉仁元毛银匀凶凛及楮醒[ // スピードくじを使った時の関数。
// ㄥ荚银丹午]窒羁操井及失奶 丞卞 祭允月[ // 6回使うと,何等賞かのアイテムに変化する。
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
void ITEM_useLottery( int charaindex, int toindex, int haveitemindex) void ITEM_useLottery( int charaindex, int toindex, int haveitemindex)
{ {
@ -1941,7 +1943,7 @@ void ITEM_useLottery( int charaindex, int toindex, int haveitemindex)
int count = ITEM_getInt( itemindex, ITEM_VAR2); int count = ITEM_getInt( itemindex, ITEM_VAR2);
int hit = ITEM_getInt( itemindex, ITEM_VAR1); int hit = ITEM_getInt( itemindex, ITEM_VAR1);
char buff[1024]; char buff[1024];
char num[6][3] = { {""},{""},{""},{""},{""}, {""}}; char num[6][3] = { {""},{""},{""},{""},{""}, {""}};
char numbuff[128]; char numbuff[128];
char *n; char *n;
int result; int result;
@ -1950,7 +1952,7 @@ void ITEM_useLottery( int charaindex, int toindex, int haveitemindex)
if( count == 0 ) { if( count == 0 ) {
ITEM_setChar( itemindex, ITEM_EFFECTSTRING, ""); ITEM_setChar( itemindex, ITEM_EFFECTSTRING, "");
} }
// ㄥ荚 及银迕反]陆木仄井丐曰 卅中及匹]仇仇匹失奶 丞毛壅允 // 6回目の使用は,外れしかあり得ないので,ここでアイテムを消す
else if( count == 6 ) { else if( count == 6 ) {
CHAR_setItemIndex( charaindex , haveitemindex, -1 ); CHAR_setItemIndex( charaindex , haveitemindex, -1 );
CHAR_sendItemDataOne( charaindex, haveitemindex); CHAR_sendItemDataOne( charaindex, haveitemindex);
@ -1960,7 +1962,7 @@ void ITEM_useLottery( int charaindex, int toindex, int haveitemindex)
n = ITEM_getChar( itemindex, ITEM_ARGUMENT); n = ITEM_getChar( itemindex, ITEM_ARGUMENT);
// for debug // for debug
result = (int)n[count]-1; result = (int)n[count]-1;
// 伉□民井譬屯月 // リーチか調べる
flg = FALSE; flg = FALSE;
for( i = 0; i < count+1 && flg == FALSE; i ++ ) { for( i = 0; i < count+1 && flg == FALSE; i ++ ) {
for( j = i+1; j < count+1 && flg == FALSE; j ++ ) { for( j = i+1; j < count+1 && flg == FALSE; j ++ ) {
@ -1972,25 +1974,26 @@ void ITEM_useLottery( int charaindex, int toindex, int haveitemindex)
} }
} }
memcpy( numbuff, ITEM_getChar( itemindex, ITEM_EFFECTSTRING), (count)*2); memcpy( numbuff, ITEM_getChar( itemindex, ITEM_EFFECTSTRING), (count)*2);
// 躲绊 侬 卞]请 毛请允[ // 効果文字列に,出目を出す。
snprintf( buff, sizeof( buff), "%s%s", numbuff, num[result]); snprintf( buff, sizeof( buff), "%s%s", numbuff, num[result]);
count ++; count ++;
ITEM_setInt( itemindex, ITEM_VAR2, count); ITEM_setInt( itemindex, ITEM_VAR2, count);
// ㄥ荚 匹癫曰卅日癫曰失奶 丞卞 凳]陆木卅日陆木午 憎] // 6回目で当りなら当りアイテムに変更,外れなら外れと表示,
// 戚荚母皮伙弁伉永弁匹壅允[ // 次回ダブルクリックで消す。
if( count >= 6 ) { if( count >= 6 ) {
// 癫曰 // 当り
if( hit != ITEM_LOTTERY_NONE ) { if( hit != ITEM_LOTTERY_NONE ) {
int newitemindex; int newitemindex;
char strbuff[1024]; char strbuff[1024];
char msgbuff[1024]; char msgbuff[1024];
// 壅仄化 // 消して
CHAR_setItemIndex( charaindex , haveitemindex, -1 ); CHAR_setItemIndex( charaindex , haveitemindex, -1 );
ITEM_endExistItemsOne( itemindex ); ITEM_endExistItemsOne( itemindex );
// 2729 - 2734 反 仁元及1 6羁 // 2729 - 2734 は宝くじの16等
newitemindex = ITEM_makeItemAndRegist( 2729 + hit); newitemindex = ITEM_makeItemAndRegist( 2729 + hit);
CHAR_setItemIndex( charaindex , haveitemindex, newitemindex ); CHAR_setItemIndex( charaindex , haveitemindex, newitemindex );
// 请 手戊疋□ // 出目もコピー
snprintf( strbuff, sizeof( strbuff), "%s %s", buff, snprintf( strbuff, sizeof( strbuff), "%s %s", buff,
ITEM_getChar( newitemindex, ITEM_EFFECTSTRING)); ITEM_getChar( newitemindex, ITEM_EFFECTSTRING));
ITEM_setChar( newitemindex, ITEM_EFFECTSTRING, strbuff); ITEM_setChar( newitemindex, ITEM_EFFECTSTRING, strbuff);
@ -2000,27 +2003,27 @@ void ITEM_useLottery( int charaindex, int toindex, int haveitemindex)
msgbuff, msgbuff,
CHAR_COLORYELLOW ); CHAR_COLORYELLOW );
} }
// 陆木 // 外れ
else { else {
// CHAR_setItemIndex( charaindex , haveitemindex, -1 ); // CHAR_setItemIndex( charaindex , haveitemindex, -1 );
// 请 手戊疋□ // 出目もコピー
char strbuff[1024]; char strbuff[1024];
snprintf( strbuff, sizeof( strbuff), "%s 没中,下次再来", buff); snprintf( strbuff, sizeof( strbuff), "%s 没中,下次再来", buff);
ITEM_setChar( itemindex, ITEM_EFFECTSTRING, strbuff); ITEM_setChar( itemindex, ITEM_EFFECTSTRING, strbuff);
CHAR_sendItemDataOne( charaindex, haveitemindex); CHAR_sendItemDataOne( charaindex, haveitemindex);
// ITEM_endExistItemsOne( itemindex ); // ITEM_endExistItemsOne( itemindex );
// CHAR_talkToCli( charaindex, -1, // CHAR_talkToCli( charaindex, -1,
// "反内木″", // "はずれ″",
// CHAR_COLORWHITE ); // CHAR_COLORWHITE );
} }
} }
// 公丹元扎 中凛反]犯□正毛霜曰卅云允分仃[ // そうじゃ無い時は,データを送りなおすだけ。
else { else {
char strbuff[1024]; char strbuff[1024];
if( flg) { if( flg) {
// 旦矢□旦煌遥 // スペース計算
// 失奶 丞及 及戊丢件玄反]ㄠ垫ㄡㄧ 侬匹] // アイテムの説明欄のコメントは,1行28文字で,
// 旦矢□旦毛银匀化荼垫仄化中月[ // スペースを使って改行している。
int spc = 16 + ( 6-count)*2; int spc = 16 + ( 6-count)*2;
char space[17]; char space[17];
space[spc] = '\0'; space[spc] = '\0';
@ -3312,11 +3315,11 @@ void ITEM_metamo( int charaindex, int toindex, int haveitemindex )
#endif #endif
battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE ); battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE );
// 爵 钒铵凛反 骰允月 // 戦闘開始時は無視する
if( battlemode == BATTLE_CHARMODE_INIT ){ if( battlemode == BATTLE_CHARMODE_INIT ){
return; return;
} }
// 爵 分匀凶日 // 戦闘中だったら
if( IsBATTLING( charaindex ) == TRUE ){ if( IsBATTLING( charaindex ) == TRUE ){
toindex = BATTLE_No2Index(CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEINDEX ), toindex ); toindex = BATTLE_No2Index(CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEINDEX ), toindex );
@ -3478,10 +3481,10 @@ print("\nvincent-->charaindex:%d,toindex:%d",charaindex,toindex);
} }
else CHAR_talkToCli(charaindex,-1,"什麽也没发生。",CHAR_COLORWHITE); else CHAR_talkToCli(charaindex,-1,"什麽也没发生。",CHAR_COLORWHITE);
/* 平乓仿弁正□及赭 伉旦玄井日壅蛔 */ /* キャラクターの所持品リストから消去 */
CHAR_setItemIndex(charaindex, haveitemindex ,-1); CHAR_setItemIndex(charaindex, haveitemindex ,-1);
CHAR_sendItemDataOne( charaindex, haveitemindex);/* 失奶 丞凳蕙 */ CHAR_sendItemDataOne( charaindex, haveitemindex);/* 失奶 丞凳蕙 */
/* 壅允 */ /* 消す */
ITEM_endExistItemsOne( itemindex ); ITEM_endExistItemsOne( itemindex );
} }
#endif #endif
@ -5448,7 +5451,7 @@ void ITEM_MetamoTime( int charaindex, int toindex, int haveitemindex )
#endif #endif
battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE ); battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE );
// 爵 钒铵凛反 骰允月 // 戦闘開始時は無視する
if( battlemode == BATTLE_CHARMODE_INIT ){ if( battlemode == BATTLE_CHARMODE_INIT ){
return; return;
} }

View File

@ -1,5 +1,5 @@
/*********************************************** /***********************************************
* *
**********************************************/ **********************************************/
#include "version.h" #include "version.h"
#include <stdio.h> #include <stdio.h>
@ -35,7 +35,7 @@
static int ITEM_getTableNum( int num); static int ITEM_getTableNum( int num);
/* 豳笺及袄及MAX袄 */ /* 素材の値のMAX値 */
#define ITEM_ATOMIND_MAX 1000 #define ITEM_ATOMIND_MAX 1000
// shan add // shan add
#define ITEM_ATOMIND_FM_MAX 4000 #define ITEM_ATOMIND_FM_MAX 4000
@ -48,14 +48,14 @@ static int ITEM_getTableNum( int num);
/*********************************************** /***********************************************
* (ITEM_GEN_RAND_MIN/1000) * ITEN_GEN_SEARCH_MIN * (ITEM_GEN_RAND_MIN/1000) * ITEN_GEN_SEARCH_MIN
* - (ITEM_GEN_RAND_MAX/1000) * ITEN_GEN_SEARCH_MAX * - (ITEM_GEN_RAND_MAX/1000) * ITEN_GEN_SEARCH_MAX
* *
**********************************************/ **********************************************/
/* 豳笺及袄 及仿件母丞汔及 剂午 ㄠㄟㄟㄟ坌 */ /* 素材の値変動のランダム幅の最少と最大(1000分率) */
#define ITEM_GEN_RAND_MIN 700 #define ITEM_GEN_RAND_MIN 700
#define ITEM_GEN_RAND_MAX 1200 #define ITEM_GEN_RAND_MAX 1200
/* 失奶 丞毛腹绸允月豳笺及袄及汔及 剂午 及 (double) */ /* アイテムを検索する素材の値の幅の最少と最大の倍率(double) */
#define ITEN_GEN_SEARCH_MIN (0.7) #define ITEN_GEN_SEARCH_MIN (0.7)
#define ITEN_GEN_SEARCH_MAX (1.10) #define ITEN_GEN_SEARCH_MAX (1.10)
@ -83,10 +83,10 @@ static struct tagItemRandRangeTable {
#define ITEM_GEN_RATE 0.7 #define ITEM_GEN_RATE 0.7
static struct _tagItemRandRangeTableForItem { static struct _tagItemRandRangeTableForItem {
int num; /* 豳笺及备仿件弁及湘 袄 */ int num; /* 素材の各ランクの基本値 */
int minnum; /* 仿件弁 潸曰丹月袄及Min */ int minnum; /* ランク中取りうる値のMin */
int maxnum; /* 仿件弁 潸曰丹月袄及MAX num +戚及仿件弁及犒*ITEM_GEN_RATE) */ int maxnum; /* ランク中取りうる値のMAXnum +次のランクの差*ITEM_GEN_RATE) */
double rate; /* maxnum / num*/ double rate; /* 倍率 maxnum / num*/
}ItemRandTableForItem[] = { }ItemRandTableForItem[] = {
{ 10, 0,0,0 }, { 10, 0,0,0 },
{ 30, 0,0,0 }, { 30, 0,0,0 },
@ -295,8 +295,8 @@ int ITEM_initItemAtom( char *fn )
/* chop */ /* chop */
line[strlen(line)-1]=0; line[strlen(line)-1]=0;
/* 尔羹卞烟让及 蟆互 贿匹反中匀化中化} /* 左端に系統の名前が日本語ではいっていて、
*/ */
getStringFromIndexWithDelim( line, "," , 1 , tk, sizeof( tk )); getStringFromIndexWithDelim( line, "," , 1 , tk, sizeof( tk ));
snprintf( item_atoms[count].name, snprintf( item_atoms[count].name,
sizeof( item_atoms[count].name ), sizeof( item_atoms[count].name ),
@ -327,15 +327,16 @@ int ITEM_initItemAtom( char *fn )
/* /*
base 100 min 0.7 max 1.3 base 100 min 0.7 max 1.3
70 ~ 130 70 ~ 130
by ringo 1999Oct1 by ringo 1999Oct1
1000min_rate,max_rate匹健丹 1000min_rate,max_rateで扱う
double float double float 使
*/ */
static int static int
ITEM_randRange( int base, int min_rate , int max_rate ) ITEM_randRange( int base, int min_rate , int max_rate )
{ {
@ -368,12 +369,13 @@ static int cmprutine( double *p1, double *p2)
return 0; return 0;
} }
/* /*
* *
* *
* *
* table卞梯匀凶 * tableに沿った倍率分
*/ */
static void ITEM_simplify_atoms( struct item_ingindtable *inds, int num, static void ITEM_simplify_atoms( struct item_ingindtable *inds, int num,
int *retinds, int *retvals, int petindex, int alchemist) int *retinds, int *retvals, int petindex, int alchemist)
{ {
@ -490,17 +492,18 @@ PET_ADD_INGRED( nm,vl1,vl2,vl3)
*/ */
/* /*
ID井日 IDから
int *fixuse : int *fixuse :
int *fixatom : int *fixatom :
int *baseup : int *baseup :
int *minadd : int *minadd :
int *maxadd : int *maxadd :
*/ */
static void static void
ITEM_merge_getPetFix( int petid, int *fixuse, int *fixatom, ITEM_merge_getPetFix( int petid, int *fixuse, int *fixatom,
int *baseup, int *baseup,
@ -560,7 +563,7 @@ ITEM_merge_getPetFix( int petid, int *fixuse, int *fixatom,
} }
/* /*
* FALSE毛忒允 * FALSEを返す
*/ */
static BOOL ITEM_merge_checkitem( ITEM_Item *items, int itemsnum, int id) static BOOL ITEM_merge_checkitem( ITEM_Item *items, int itemsnum, int id)
@ -738,7 +741,7 @@ int ITEM_mergeItem( int charaindex, ITEM_Item *items, int num , int money, int p
struct item_ingindtable ingindtable[MAX_ITEM_ATOMS_SIZE]; struct item_ingindtable ingindtable[MAX_ITEM_ATOMS_SIZE];
int sortedingindtable[MAX_ITEM_ATOMS_SIZE]; int sortedingindtable[MAX_ITEM_ATOMS_SIZE];
int sortedingtable[MAX_ITEM_ATOMS_SIZE]; int sortedingtable[MAX_ITEM_ATOMS_SIZE];
/* 矢永玄卞方月膜恳迕 */ /* ペットによる修正用 */
int pet_fixatom[MAX_ITEM_ATOMS_SIZE]; int pet_fixatom[MAX_ITEM_ATOMS_SIZE];
int pet_baseup[MAX_ITEM_ATOMS_SIZE]; int pet_baseup[MAX_ITEM_ATOMS_SIZE];
int pet_minadd[MAX_ITEM_ATOMS_SIZE]; int pet_minadd[MAX_ITEM_ATOMS_SIZE];
@ -1028,8 +1031,9 @@ int ITEM_mergeItem( int charaindex, ITEM_Item *items, int num , int money, int p
int ITEM_canDigest( ITEM_Item *itm ) int ITEM_canDigest( ITEM_Item *itm )
{ {
/* 1蜊 及笺 及 蟆互涩烂今木化中凶日1 /* 1個目の材料の名前が設定されていたら1、
0 */ 0 */
if( itm->string[ITEM_INGNAME0].string[0] ) return 1; else return 0; if( itm->string[ITEM_INGNAME0].string[0] ) return 1; else return 0;
} }
@ -1159,12 +1163,12 @@ int ITEM_mergeItem_merge( int charaindex, int petid, char *data, int petindex, i
CHAR_setItemIndex( charaindex, haveitemindexs[i], -1); CHAR_setItemIndex( charaindex, haveitemindexs[i], -1);
CHAR_sendItemDataOne( charaindex, haveitemindexs[i]); CHAR_sendItemDataOne( charaindex, haveitemindexs[i]);
LogItem( LogItem(
CHAR_getChar( charaindex, CHAR_NAME ), /* 平乓仿 */ CHAR_getChar( charaindex, CHAR_NAME ), /* キャラ名 */
CHAR_getChar( charaindex, CHAR_CDKEY ), CHAR_getChar( charaindex, CHAR_CDKEY ),
#ifdef _add_item_log_name // WON ADD 在item的log中增加item名称 #ifdef _add_item_log_name // WON ADD 在item的log中增加item名称
itemindexs[i], itemindexs[i],
#else #else
ITEM_getInt( itemindexs[i], ITEM_ID), /* 失奶 丞 寞 */ ITEM_getInt( itemindexs[i], ITEM_ID), /* アイテム番号 */
#endif #endif
"mergedel(合成所删除的道具)", "mergedel(合成所删除的道具)",
CHAR_getInt( charaindex,CHAR_FLOOR), CHAR_getInt( charaindex,CHAR_FLOOR),

View File

@ -248,38 +248,38 @@ int MAGIC_OtherRecovery( int charaindex, int toindex, int marray, int mp )
#endif #endif
MAGIC_Recovery_Battle( charaindex, toindex, marray, mp ); MAGIC_Recovery_Battle( charaindex, toindex, marray, mp );
}else{ }else{
if( CHAR_CHECKINDEX( toindex ) == FALSE )return FALSE; //{撩 if( CHAR_CHECKINDEX( toindex ) == FALSE )return FALSE; //失敗
MAGIC_OtherRecovery_Field( charaindex, toindex, marray); MAGIC_OtherRecovery_Field( charaindex, toindex, marray);
} }
return TRUE; return TRUE;
} }
// 白奴□伙玉及箪岭毛 祭今六月 芊 // フィールドの属性を変化させる魔法
int MAGIC_FieldAttChange( int charaindex, int toindex, int marray, int mp ) int MAGIC_FieldAttChange( int charaindex, int toindex, int marray, int mp )
{ {
int battlemode; int battlemode;
// INDEX民尼永弁 // INDEXチェック
if( CHAR_CHECKINDEX( charaindex ) == FALSE )return FALSE; //{撩 if( CHAR_CHECKINDEX( charaindex ) == FALSE )return FALSE; //失敗
battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE ); battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE );
// 爵 钒铵凛反 骰允月 // 戦闘開始時は無視する
if( battlemode == BATTLE_CHARMODE_INIT ){ if( battlemode == BATTLE_CHARMODE_INIT ){
return FALSE; return FALSE;
} }
// 壅 民尼永弁 // MP消費チェック
if( CHAR_getInt( charaindex, CHAR_MP ) < mp )return FALSE; // 井匀凶日母丢 if( CHAR_getInt( charaindex, CHAR_MP ) < mp )return FALSE; // 無かったらダメ
// 仇及 芊反 骚卞 壅 仄化 中[穴奶瓜旦卞卅月仇午反 中 // この魔法は普通にMP消費して良い。マイナスになることは無い
CHAR_setInt( charaindex, CHAR_MP, CHAR_setInt( charaindex, CHAR_MP,
CHAR_getInt( charaindex, CHAR_MP ) - mp ); CHAR_getInt( charaindex, CHAR_MP ) - mp );
// 爵 分匀凶日 // 戦闘中だったら
if( IsBATTLING( charaindex ) == TRUE ){ if( IsBATTLING( charaindex ) == TRUE ){
return MAGIC_FieldAttChange_Battle( charaindex, toindex, marray, mp ); return MAGIC_FieldAttChange_Battle( charaindex, toindex, marray, mp );
}else{ }else{
// 爵 匹卅井匀凶日 // 戦闘中でなかったら
return FALSE; return FALSE;
} }
} }
@ -334,17 +334,17 @@ int MAGIC_MagicStatusChange( int charaindex, int toindex, int marray, int mp )
#endif #endif
#ifdef _MAGIC_DEEPPOISON//新增ver2,主要设定毒状态5回未解时人物会阵亡 #ifdef _MAGIC_DEEPPOISON//新增ver2,主要设定毒状态5回未解时人物会阵亡
// 旦 □正旦唱橘毛芨尹月 芊 // ステータス異常を与える魔法
int MAGIC_StatusChange2( int charaindex, int toindex, int marray, int mp ) int MAGIC_StatusChange2( int charaindex, int toindex, int marray, int mp )
{ {
int battlemode; int battlemode;
// INDEX民尼永弁 // INDEXチェック
if( CHAR_CHECKINDEX( charaindex ) == FALSE )return FALSE; //{撩 if( CHAR_CHECKINDEX( charaindex ) == FALSE )return FALSE; //{撩
battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE ); battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE );
// 爵 钒铵凛反 骰允月 // 戦闘開始時は無視する
if( battlemode == BATTLE_CHARMODE_INIT ){ if( battlemode == BATTLE_CHARMODE_INIT ){
return FALSE; return FALSE;
} }
@ -363,32 +363,32 @@ int MAGIC_StatusChange2( int charaindex, int toindex, int marray, int mp )
} }
} }
#endif #endif
// 旦 □正旦唱橘荚汊今六月 芊 // ステータス異常回復させる魔法
int MAGIC_StatusRecovery( int charaindex, int toindex, int marray, int mp ) int MAGIC_StatusRecovery( int charaindex, int toindex, int marray, int mp )
{ {
int battlemode; int battlemode;
// INDEX民尼永弁 // INDEXチェック
if( CHAR_CHECKINDEX( charaindex ) == FALSE )return FALSE; //{撩 if( CHAR_CHECKINDEX( charaindex ) == FALSE )return FALSE; //{撩
battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE ); battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE );
// 爵 钒铵凛反 骰允月 // 戦闘開始時は無視する
if( battlemode == BATTLE_CHARMODE_INIT ){ if( battlemode == BATTLE_CHARMODE_INIT ){
return FALSE; return FALSE;
} }
// 壅 民尼永弁 // MP消費チェック
if( CHAR_getInt( charaindex, CHAR_MP ) < mp )return FALSE; // 井匀凶日母丢 if( CHAR_getInt( charaindex, CHAR_MP ) < mp )return FALSE; // 無かったらダメ
// 仇及 芊反 骚卞 壅 仄化 中[穴奶瓜旦卞卅月仇午反 中 // この魔法は普通にMP消費して良い。マイナスになることは無い
CHAR_setInt( charaindex, CHAR_MP, CHAR_setInt( charaindex, CHAR_MP,
CHAR_getInt( charaindex, CHAR_MP ) - mp ); CHAR_getInt( charaindex, CHAR_MP ) - mp );
// 爵 分匀凶日 // 戦闘中だったら
if( IsBATTLING( charaindex ) == TRUE ){ if( IsBATTLING( charaindex ) == TRUE ){
return MAGIC_StatusRecovery_Battle( charaindex, toindex, marray, mp ); return MAGIC_StatusRecovery_Battle( charaindex, toindex, marray, mp );
}else{ }else{
// 爵 匹卅井匀凶日 // 戦闘中でなかったら
return FALSE; return FALSE;
} }
} }
@ -429,94 +429,94 @@ int MAGIC_MagicDef( int charaindex, int toindex, int marray, int mp )
} }
// 竣濮井日汊唾今六月 芊 // 気絶から復活させる魔法
int MAGIC_Ressurect( int charaindex, int toindex, int marray, int mp ) int MAGIC_Ressurect( int charaindex, int toindex, int marray, int mp )
{ {
int battlemode; int battlemode;
// INDEX民尼永弁 // INDEXチェック
if( CHAR_CHECKINDEX( charaindex ) == FALSE )return FALSE; //{撩 if( CHAR_CHECKINDEX( charaindex ) == FALSE )return FALSE; //{撩
battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE ); battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE );
// 爵 钒铵凛反 骰允月 // 戦闘開始時は無視する
if( battlemode == BATTLE_CHARMODE_INIT ){ if( battlemode == BATTLE_CHARMODE_INIT ){
return FALSE; return FALSE;
} }
// 壅 民尼永弁 // MP消費チェック
if( CHAR_getInt( charaindex, CHAR_MP ) < mp )return FALSE; // 井匀凶日母丢 if( CHAR_getInt( charaindex, CHAR_MP ) < mp )return FALSE; // 無かったらダメ
// 仇及 芊反 骚卞 壅 仄化 中[穴奶瓜旦卞卅月仇午反 中 // この魔法は普通にMP消費して良い。マイナスになることは無い
CHAR_setInt( charaindex, CHAR_MP, CHAR_setInt( charaindex, CHAR_MP,
CHAR_getInt( charaindex, CHAR_MP ) - mp ); CHAR_getInt( charaindex, CHAR_MP ) - mp );
// 爵 分匀凶日 // 戦闘中だったら
if( IsBATTLING( charaindex ) == TRUE ){ if( IsBATTLING( charaindex ) == TRUE ){
return MAGIC_Ressurect_Battle( charaindex, toindex, marray, mp ); return MAGIC_Ressurect_Battle( charaindex, toindex, marray, mp );
}else{ }else{
// 爵 匹卅井匀凶日 // 戦闘中でなかったら
return FALSE; return FALSE;
} }
} }
// 箪岭毛 鳖今六月 芊 // 属性を反転させる魔法
int MAGIC_AttReverse( int charaindex, int toindex, int marray, int mp ) int MAGIC_AttReverse( int charaindex, int toindex, int marray, int mp )
{ {
int battlemode; int battlemode;
// INDEX民尼永弁 // INDEXチェック
if( CHAR_CHECKINDEX( charaindex ) == FALSE )return FALSE; //{撩 if( CHAR_CHECKINDEX( charaindex ) == FALSE )return FALSE; //{撩
battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE ); battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE );
// 爵 钒铵凛反 骰允月 // 戦闘開始時は無視する
if( battlemode == BATTLE_CHARMODE_INIT ){ if( battlemode == BATTLE_CHARMODE_INIT ){
return FALSE; return FALSE;
} }
// 壅 民尼永弁 // MP消費チェック
if( CHAR_getInt( charaindex, CHAR_MP ) < mp )return FALSE; // 井匀凶日母丢 if( CHAR_getInt( charaindex, CHAR_MP ) < mp )return FALSE; // 無かったらダメ
// 仇及 芊反 骚卞 壅 仄化 中[穴奶瓜旦卞卅月仇午反 中 // この魔法は普通にMP消費して良い。マイナスになることは無い
CHAR_setInt( charaindex, CHAR_MP, CHAR_setInt( charaindex, CHAR_MP,
CHAR_getInt( charaindex, CHAR_MP ) - mp ); CHAR_getInt( charaindex, CHAR_MP ) - mp );
// 爵 分匀凶日 // 戦闘中だったら
if( IsBATTLING( charaindex ) == TRUE ){ if( IsBATTLING( charaindex ) == TRUE ){
return MAGIC_AttReverse_Battle( charaindex, toindex, marray, mp ); return MAGIC_AttReverse_Battle( charaindex, toindex, marray, mp );
}else{ }else{
// 爵 匹卅井匀凶日 // 戦闘中でなかったら
return FALSE; return FALSE;
} }
} }
// 竣濮井日汊唾≈ 芊 豢 // 気絶から復活+魔法防御
int MAGIC_ResAndDef( int charaindex, int toindex, int marray, int mp ) int MAGIC_ResAndDef( int charaindex, int toindex, int marray, int mp )
{ {
int battlemode; int battlemode;
// INDEX民尼永弁 // INDEXチェック
if( CHAR_CHECKINDEX( charaindex ) == FALSE )return FALSE; //{撩 if( CHAR_CHECKINDEX( charaindex ) == FALSE )return FALSE; //{撩
battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE ); battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE );
// 爵 钒铵凛反 骰允月 // 戦闘開始時は無視する
if( battlemode == BATTLE_CHARMODE_INIT ){ if( battlemode == BATTLE_CHARMODE_INIT ){
return FALSE; return FALSE;
} }
// 壅 民尼永弁 // MP消費チェック
if( CHAR_getInt( charaindex, CHAR_MP ) < mp )return FALSE; // 井匀凶日母丢 if( CHAR_getInt( charaindex, CHAR_MP ) < mp )return FALSE; // 無かったらダメ
// 仇及 芊反 骚卞 壅 仄化 中[穴奶瓜旦卞卅月仇午反 中 // この魔法は普通にMP消費して良い。マイナスになることは無い
CHAR_setInt( charaindex, CHAR_MP, CHAR_setInt( charaindex, CHAR_MP,
CHAR_getInt( charaindex, CHAR_MP ) - mp ); CHAR_getInt( charaindex, CHAR_MP ) - mp );
// 爵 分匀凶日 // 戦闘中だったら
if( IsBATTLING( charaindex ) == TRUE ){ if( IsBATTLING( charaindex ) == TRUE ){
return MAGIC_ResAndDef_Battle( charaindex, toindex, marray, mp ); return MAGIC_ResAndDef_Battle( charaindex, toindex, marray, mp );
}else{ }else{
// 爵 匹卅井匀凶日 // 戦闘中でなかったら
return FALSE; return FALSE;
} }
} }
@ -562,11 +562,11 @@ int MAGIC_Metamo( int charaindex, int toindex, int marray, int mp )
if( CHAR_CHECKINDEX( charaindex ) == FALSE ) return FALSE; if( CHAR_CHECKINDEX( charaindex ) == FALSE ) return FALSE;
battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE ); battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE );
// 爵 钒铵凛反 骰允月 // 戦闘開始時は無視する
if( battlemode == BATTLE_CHARMODE_INIT ){ if( battlemode == BATTLE_CHARMODE_INIT ){
return FALSE; return FALSE;
} }
// 爵 分匀凶日 // 戦闘中だったら
if( IsBATTLING( charaindex ) == TRUE ){ if( IsBATTLING( charaindex ) == TRUE ){
//MAGIC_Recovery_Battle( charaindex, toindex, marray, mp ); //MAGIC_Recovery_Battle( charaindex, toindex, marray, mp );
//return FALSE; //return FALSE;
@ -714,7 +714,7 @@ int MAGIC_Barrier( int charaindex, int toindex, int marray, int mp )
battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE ); battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE );
// 爵 钒铵凛反 骰允月//?? // 戦闘開始時は無視する//??
if( battlemode == BATTLE_CHARMODE_INIT ){ if( battlemode == BATTLE_CHARMODE_INIT ){
return FALSE; return FALSE;
} }
@ -737,7 +737,7 @@ int MAGIC_Barrier( int charaindex, int toindex, int marray, int mp )
pszP += sizeof( szTurn ); pszP += sizeof( szTurn );
sscanf( pszP, "%d", &turn ); sscanf( pszP, "%d", &turn );
} }
// 岳 涩烂//命中率 // 成功率設定//命中率
if( ( pszP = strstr( pszP, szSuccess ) ) != NULL){ if( ( pszP = strstr( pszP, szSuccess ) ) != NULL){
pszP += sizeof( szSuccess ); pszP += sizeof( szSuccess );
sscanf( pszP, "%d", &Success ); sscanf( pszP, "%d", &Success );
@ -788,7 +788,7 @@ int MAGIC_Nocast( int charaindex, int toindex, int marray, int mp )
battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE ); battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE );
// 爵 钒铵凛反 骰允月//?? // 戦闘開始時は無視する//??
if( battlemode == BATTLE_CHARMODE_INIT ){ if( battlemode == BATTLE_CHARMODE_INIT ){
return FALSE; return FALSE;
} }
@ -811,7 +811,7 @@ int MAGIC_Nocast( int charaindex, int toindex, int marray, int mp )
pszP += sizeof( szTurn ); pszP += sizeof( szTurn );
sscanf( pszP, "%d", &turn ); sscanf( pszP, "%d", &turn );
} }
// 岳 涩烂//命中率 // 成功率設定//命中率
if( ( pszP = strstr( pszP, szSuccess ) ) != NULL){ if( ( pszP = strstr( pszP, szSuccess ) ) != NULL){
pszP += sizeof( szSuccess ); pszP += sizeof( szSuccess );
sscanf( pszP, "%d", &Success ); sscanf( pszP, "%d", &Success );
@ -857,7 +857,7 @@ int MAGIC_Weaken( int charaindex, int toindex, int marray, int mp )
battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE ); battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE );
// 爵 钒铵凛反 骰允月//?? // 戦闘開始時は無視する//??
if( battlemode == BATTLE_CHARMODE_INIT ){ if( battlemode == BATTLE_CHARMODE_INIT ){
return FALSE; return FALSE;
} }

View File

@ -24,12 +24,12 @@ int ATTMAGIC_magicnum;
typedef struct tagMagic_MagicFunctionTable typedef struct tagMagic_MagicFunctionTable
{ {
char *functionname; /* 热诸涩烂白央奶伙卞踏仁楮醒及 蟆 */ char *functionname; /* 呪術設定ファイルに書く関数の名前 */
MAGIC_CALLFUNC func; /* 端卞裟太请今木月楮醒 */ MAGIC_CALLFUNC func; /* 実際に呼び出される関数 */
int hash; /* hash */ int hash; /* hash */
}MAGIC_MagicFunctionTable; }MAGIC_MagicFunctionTable;
/* 热诸毛 支仄凶日仇仇卞瓒 允月仪 */ /* 呪術を増やしたらここに登録する事 */
static MAGIC_MagicFunctionTable MAGIC_functbl[] = { static MAGIC_MagicFunctionTable MAGIC_functbl[] = {
{ "MAGIC_Recovery", MAGIC_Recovery, 0}, { "MAGIC_Recovery", MAGIC_Recovery, 0},
{ "MAGIC_OtherRecovery", MAGIC_OtherRecovery, 0}, { "MAGIC_OtherRecovery", MAGIC_OtherRecovery, 0},
@ -73,7 +73,7 @@ static MAGIC_MagicFunctionTable MAGIC_functbl[] = {
/*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/
/* 湘 民尼永弁]失弁本旦楮溢 */ /* 基本チェック,アクセス関係 */
/*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/
INLINE BOOL MAGIC_CHECKINDEX( int index ) INLINE BOOL MAGIC_CHECKINDEX( int index )
{ {
@ -124,7 +124,7 @@ INLINE BOOL MAGIC_setChar( int index ,MAGIC_DATACHAR element, char* new )
return TRUE; return TRUE;
} }
/*---------------------------------------------------------------------- /*----------------------------------------------------------------------
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
int MAGIC_getMagicNum( void) int MAGIC_getMagicNum( void)
{ {
@ -132,7 +132,7 @@ int MAGIC_getMagicNum( void)
} }
/*---------------------------------------------------------------------- /*----------------------------------------------------------------------
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
BOOL MAGIC_initMagic( char *filename) BOOL MAGIC_initMagic( char *filename)
{ {
@ -153,7 +153,7 @@ BOOL MAGIC_initMagic( char *filename)
MAGIC_magicnum=0; MAGIC_magicnum=0;
/* 引内 躲卅垫互窒垫丐月井升丹井譬屯月 */ /* まず有効な行が何行あるかどうか調べる */
while( fgets( line, sizeof( line ), f ) ){ while( fgets( line, sizeof( line ), f ) ){
linenum ++; linenum ++;
if( line[0] == '#' )continue; /* comment */ if( line[0] == '#' )continue; /* comment */
@ -190,7 +190,7 @@ BOOL MAGIC_initMagic( char *filename)
return FALSE; return FALSE;
} }
/* 赓渝祭 */ /* 初期化*/
for( i = 0; i < MAGIC_magicnum; i ++ ) { for( i = 0; i < MAGIC_magicnum; i ++ ) {
for( j = 0; j < MAGIC_DATAINTNUM; j ++ ) { for( j = 0; j < MAGIC_DATAINTNUM; j ++ ) {
MAGIC_setInt( i,j,-1); MAGIC_setInt( i,j,-1);
@ -200,7 +200,7 @@ BOOL MAGIC_initMagic( char *filename)
} }
} }
/* 引凶 心 允 */ /* また読み直す */
linenum = 0; linenum = 0;
while( fgets( line, sizeof( line ), f ) ){ while( fgets( line, sizeof( line ), f ) ){
linenum ++; linenum ++;
@ -208,10 +208,11 @@ BOOL MAGIC_initMagic( char *filename)
if( line[0] == '\n' )continue; /* none */ if( line[0] == '\n' )continue; /* none */
chomp( line ); chomp( line );
/* 垫毛帮溥允月 */ /* 行を整形する */
/* 引内 tab 毛 " " 卞 五晶尹月 */ /* まず tab を " " に置き換える */
replaceString( line, '\t' , ' ' ); replaceString( line, '\t' , ' ' );
/* 燮 及旦矢□旦毛潸月[*/ /* 先頭のスペースを取る。*/
{ {
char buf[256]; char buf[256];
for( i = 0; i < strlen( line); i ++) { for( i = 0; i < strlen( line); i ++) {
@ -237,7 +238,7 @@ BOOL MAGIC_initMagic( char *filename)
for( i = 0; i < MAGIC_DATACHARNUM; i ++ ) { for( i = 0; i < MAGIC_DATACHARNUM; i ++ ) {
/* 侬 迕玄□弁件毛苇月 */ /* 文字列用トークンを見る */
ret = getStringFromIndexWithDelim( line,",", ret = getStringFromIndexWithDelim( line,",",
i + 1, i + 1,
token,sizeof(token)); token,sizeof(token));
@ -247,7 +248,7 @@ BOOL MAGIC_initMagic( char *filename)
} }
MAGIC_setChar( magic_readlen, i, token); MAGIC_setChar( magic_readlen, i, token);
} }
/* 4勾 动嫦反醒袄犯□正 */ /* 4つ目以降は数値データ */
#define MAGIC_STARTINTNUM 5 #define MAGIC_STARTINTNUM 5
for( i = MAGIC_STARTINTNUM; i < MAGIC_DATAINTNUM+MAGIC_STARTINTNUM; i ++ ) { for( i = MAGIC_STARTINTNUM; i < MAGIC_DATAINTNUM+MAGIC_STARTINTNUM; i ++ ) {
ret = getStringFromIndexWithDelim( line,",",i,token, ret = getStringFromIndexWithDelim( line,",",i,token,
@ -288,7 +289,7 @@ BOOL MAGIC_initMagic( char *filename)
continue; continue;
#endif #endif
/* 切斤匀午尕称鼎分仃升仇丹允月[ */ /* ちょっと不細工だけどこうする */
if( MAGIC_getInt( magic_readlen, MAGIC_TARGET_DEADFLG) == 1 ) { if( MAGIC_getInt( magic_readlen, MAGIC_TARGET_DEADFLG) == 1 ) {
MAGIC_setInt( magic_readlen, MAGIC_TARGET, MAGIC_setInt( magic_readlen, MAGIC_TARGET,
MAGIC_getInt( magic_readlen, MAGIC_TARGET)+100); MAGIC_getInt( magic_readlen, MAGIC_TARGET)+100);
@ -304,14 +305,14 @@ BOOL MAGIC_initMagic( char *filename)
print( "有效魔法数是 %d...", MAGIC_magicnum ); print( "有效魔法数是 %d...", MAGIC_magicnum );
/* hash 及瓒 */ /* hash の登録 */
for( i = 0; i < arraysizeof( MAGIC_functbl); i ++ ) { for( i = 0; i < arraysizeof( MAGIC_functbl); i ++ ) {
MAGIC_functbl[i].hash = hashpjw( MAGIC_functbl[i].functionname); MAGIC_functbl[i].hash = hashpjw( MAGIC_functbl[i].functionname);
} }
return TRUE; return TRUE;
} }
/*------------------------------------------------------------------------ /*------------------------------------------------------------------------
* Magic及涩烂白央奶伙 * Magicの設定ファイル読み直し
*-----------------------------------------------------------------------*/ *-----------------------------------------------------------------------*/
BOOL MAGIC_reinitMagic( void ) BOOL MAGIC_reinitMagic( void )
{ {
@ -392,10 +393,10 @@ BOOL ATTMAGIC_reinitMagic( void )
#endif #endif
/*------------------------------------------------------------------------ /*------------------------------------------------------------------------
* MAGIC_ID井日骄侬毛襞月楮醒 * MAGIC_IDから添字を知る関数
* *
* : * :
* : -1 * : -1
*-----------------------------------------------------------------------*/ *-----------------------------------------------------------------------*/
int MAGIC_getMagicArray( int magicid) int MAGIC_getMagicArray( int magicid)
{ {
@ -413,11 +414,11 @@ int MAGIC_getMagicArray( int magicid)
return -1; return -1;
} }
/*------------------------------------------------------------ /*------------------------------------------------------------
* *
* *
* name char* * name char*
* *
* NULL * NULL
------------------------------------------------------------*/ ------------------------------------------------------------*/
MAGIC_CALLFUNC MAGIC_getMagicFuncPointer(char* name) MAGIC_CALLFUNC MAGIC_getMagicFuncPointer(char* name)
{ {
@ -441,8 +442,9 @@ MAGIC_CALLFUNC MAGIC_getMagicFuncPointer(char* name)
// Nuke start (08/23) // Nuke start (08/23)
/* /*
Nuke Nuke
Check the validity of the target of a magic. Check the validity of the target of a magic.
Return value: Return value:

View File

@ -9,13 +9,13 @@
#include "magic_field.h" #include "magic_field.h"
/* /*
* *
*/ */
/*---------------------------------------------------------------------- /*----------------------------------------------------------------------
* *
* *
* charaindex int index * charaindex int index
* magicindex int index * magicindex int index
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
int MAGIC_Recovery_Field( int charaindex, int magicindex) int MAGIC_Recovery_Field( int charaindex, int magicindex)
{ {
@ -73,11 +73,11 @@ int MAGIC_Recovery_Field( int charaindex, int magicindex)
} }
/*---------------------------------------------------------------------- /*----------------------------------------------------------------------
* *
* *
* charaindex int index * charaindex int index
* toindex int index * toindex int index
* magicindex int index * magicindex int index
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
int MAGIC_OtherRecovery_Field( int charaindex, int toindex, int magicindex) int MAGIC_OtherRecovery_Field( int charaindex, int toindex, int magicindex)
{ {

View File

@ -8,18 +8,18 @@
#include "anim_tbl.h" #include "anim_tbl.h"
/*#define MAPEDITORTROUBLE*/ /*#define MAPEDITORTROUBLE*/
#define SPR_kmydamY CG_HIT_MARK_10 // anim_tbl.h 卞瓒 今木月引匹 及巨白尼弁玄 #define SPR_kmydamY CG_HIT_MARK_10 // anim_tbl.h に登録されるまで毒のエフェクト
/*------------------------------------------------------------ /*------------------------------------------------------------
* 仿 *
* *
* ff int floor * ff int floor
* fx int x * fx int x座標
* fy int y * fy int y座標
* isfly int * isfly int
* *
* TRUE(1) * TRUE(1)
* FALSE(0) * FALSE(0)
------------------------------------------------------------*/ ------------------------------------------------------------*/
BOOL MAP_walkAbleFromPoint( int ff, int fx, int fy, BOOL isfly ) BOOL MAP_walkAbleFromPoint( int ff, int fx, int fy, BOOL isfly )
{ {
@ -62,19 +62,19 @@ BOOL MAP_walkAbleFromPoint( int ff, int fx, int fy, BOOL isfly )
/*------------------------------------------------------------ /*------------------------------------------------------------
* *
* *
* index int Char Index * index int Char配列での Index
* ff int floor id * ff int floor id
* fx int x * fx int x座標
* fy int y * fy int y座標
* *
* TRUE(1) * TRUE(1)
* FALSE(0) * FALSE(0)
------------------------------------------------------------*/ ------------------------------------------------------------*/
BOOL MAP_walkAble( int index,int ff, int fx, int fy) BOOL MAP_walkAble( int index,int ff, int fx, int fy)
{ {
/* 平乓仿卅日OK */ /* 透明キャラならOK */
if( CHAR_getFlg( index, CHAR_ISTRANSPARENT ) ) return TRUE; if( CHAR_getFlg( index, CHAR_ISTRANSPARENT ) ) return TRUE;
// Arminius 7.9 Airplane ok // Arminius 7.9 Airplane ok
@ -90,20 +90,20 @@ BOOL MAP_walkAble( int index,int ff, int fx, int fy)
} }
/*------------------------------------------------------------ /*------------------------------------------------------------
* *
* *
* fl int * fl int
* x int x * x int x
* y int y * y int y
* *
* TRUE * TRUE
* FALSE * FALSE
------------------------------------------------------------*/ ------------------------------------------------------------*/
BOOL MAP_haveHeight( int fl, int x, int y ) BOOL MAP_haveHeight( int fl, int x, int y )
{ {
int map[2]; int map[2];
/* 穴永皿犯□正毛 化仁月 */ /* マップデータを得てくる */
if( !MAP_getTileAndObjData( fl,x,y, &map[0], &map[1] ) ) if( !MAP_getTileAndObjData( fl,x,y, &map[0], &map[1] ) )
return FALSE; return FALSE;
@ -111,11 +111,7 @@ BOOL MAP_haveHeight( int fl, int x, int y )
} }
/*------------------------------------------------------------ /*------------------------------------------------------------
* Map pre post毛质 *
*
* index int 仿
* mode BOOL TRUE及凛反in FALSE及凛反 out
*
------------------------------------------------------------*/ ------------------------------------------------------------*/
static void MAP_dealprepostevent( int index, BOOL mode ) static void MAP_dealprepostevent( int index, BOOL mode )
{ {
@ -155,10 +151,11 @@ static void MAP_dealprepostevent( int index, BOOL mode )
* xxx烟及 * xxx烟及
* *
* *
* index int 仿 * index int Char配列での Index
* flooor int ID * flooor int floor id
* fx int x甄 * fx int x座標
* fy int y甄 * fy int y座標
* *
* *
----------------------------------------*/ ----------------------------------------*/
@ -170,7 +167,7 @@ void MAP_preovered( int index )
/*---------------------------------------- /*----------------------------------------
* *
* *
* index int 仿 * index int Char配列での Index
* *
* *
----------------------------------------*/ ----------------------------------------*/

View File

@ -284,7 +284,7 @@ BOOL MAP_readBattleMapConfFile( char* filename )
BattleMapNo[0] ); BattleMapNo[0] );
} }
// 飓 寞恳仄中井" // 画像番号正しいか?
if( IsValidImagenumber( i ) == FALSE ){ if( IsValidImagenumber( i ) == FALSE ){
continue; continue;
} }
@ -406,20 +406,20 @@ FCLOSERETURNTRUE:
static BOOL MAP_readMapOne( char* filename ) static BOOL MAP_readMapOne( char* filename )
{ {
FILE* f; /* 白央奶伙 */ FILE* f; /* ファイル */
char buf[16]; /* 穴斥永弁瓜件田□ 心迕 */ char buf[16]; /* マジックナンバー読み用 */
short data[1024]; /* 扑亦□玄 心迕田永白央 */ short data[1024]; /* ショート読み用バッファ */
int ret; /* 忒曰袄熬仃潸曰迕 */ int ret; /* 返り値受け取り用 */
int i; /* 伙□皿 醒 */ int i; /* ループ変数 */
int mapindex; int mapindex;
int id=0,xsiz=0,ysiz=0; /* 穴永皿犯□正及域凛伞 桦赭 */ int id=0,xsiz=0,ysiz=0; /* マップデータの一時格納場所 */
short *tile=NULL; short *tile=NULL;
short *obj=NULL; short *obj=NULL;
MAP_Objlink** olink=NULL; MAP_Objlink** olink=NULL;
char showstring[32]; /* 穴永皿犯□正及域凛伞 桦赭 */ char showstring[32]; /* マップデータの一時格納場所 */
struct stat filestat; /* 民尼永弁迕卞银丹 */ struct stat filestat; /* チェック用に使う */
BOOL invaliddata=FALSE; BOOL invaliddata=FALSE;
if( MAP_mapnum_index >= MAP_mapnum ){ if( MAP_mapnum_index >= MAP_mapnum ){
fprint( "这里没有足够空间装载地图数组.\n" ); fprint( "这里没有足够空间装载地图数组.\n" );