日常更新

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)
{
#define PETMAIL_DIVRANGE 25 // 坌喃允月汹
#define PETMAIL_IDLELEVELRANGE 10 // 坌喃允月 区
#define PETMAIL_IDLEUNITTIME 3 // 棉厥
#define PETMAIL_DIVRANGE 25 // 分割する量
#define PETMAIL_IDLELEVELRANGE 10 // 分割する範囲
#define PETMAIL_IDLEUNITTIME 3 // 間隔
int d;
#ifdef _PETMAIL_TIME
int dex;

View File

@ -18,7 +18,7 @@
#include "configfile.h"
/*====================惫寞 ====================*/
/*====================称号表 ====================*/
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_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
{
TITLE_FUNCTYPENONE, /* 楮醒戏岳仄卅中 */
TITLE_FUNCTYPEUSERFUNC, /* definefunction 毛银匀化 蟆毛综月
*
* int 仿
* buf
* buflen
TITLE_FUNCTYPENONE, /* 関数生成しない */
TITLE_FUNCTYPEUSERFUNC, /* definefunction を使って名前を作る
*
* int
* buf
* buflen
*/
TITLE_USEFUNCTYPENUM
}TITLE_USEFUNCTYPE;
typedef struct tagTITLE_Table
{
int index; /* 蛙犯□正午询晶毛潸月凶户[
* addtitle午井支月
int index; /* 旧データと互換を取るため。
* addtitleとかやる
*/
char name[32];
TITLE_USEFUNCTYPE functype;
void (*definefunction)(int,char* buf,int buflen);
}TITLE_Table;
/* 银尹月由仿丢□正
* STR,TGH,MAXMPATK,DEF
/* 使えるパラメータ
* STR,TGH,MAXMPATK,DEF
* LEVEL,CLASS,SKILL,ITEM,FIREREG,ICEREG,THUNDERREG
* KANJILV,TALKCNT,WALKCNT,DEADCNT,LOGINCNT,BASEIMAGENUMBER
* GOLD
*/
typedef struct tagTITLE_Compare {
char compare[8];;
} TITLE_COMPARE;
@ -69,11 +70,11 @@ typedef struct tagTITLE_PARAM
TITLE_PARAM TITLE_param[] =
{
/**** 仇仇井日 ****/
/**** ここから ****/
{ -1, TITLE_ItemCheck, "ITEM" },
{ -1, TITLE_ItemEquipCheck,"EQUIPITEM" },
{ -1, NULL, "EQUIPEVENT" },
/**** 仇仇引匹反 凳仄卅中匹仁分今中[ ****/
/**** ここまでは変更しないでください ****/
{ -1, TITLE_SkillCheck, "SKILL" },
{ CHAR_STR, TITLE_IntCheck, "STR" },
{ CHAR_TOUGH, TITLE_IntCheck, "TGH" },
@ -93,13 +94,13 @@ TITLE_PARAM TITLE_param[] =
#define TITLE_PARAMSIZE 20
typedef struct tagTITLE_configTable
{
int paramindex[20]; /* TITLE_param尺及骄侬 */
int param[20][TITLE_PARAMSIZE]; /* 笠袄 */
int compareflg[20]; /* ><=羁升丹允月井 */
int paramindex[20]; /* TITLE_paramへの添字 */
int param[20][TITLE_PARAMSIZE]; /* 評価値 */
int compareflg[20]; /* ><=等どうするか */
int title;
BOOL equipcheckflg; /*
* 仿
*
*
*
*/
}TITLE_CONFIGTABLE;
@ -116,7 +117,7 @@ static int TITLE_titlenum;
static int TITLE_titlecfgnum;
/*------------------------------------------------------------
* index TITLE_table及骄侬毛
* index番号からTITLE_tableの添字を得る
------------------------------------------------------------*/
int TITLE_getTitleIndex( int index)
{
@ -130,23 +131,23 @@ int TITLE_getTitleIndex( int index)
return -1;
}
/* 田永白央及扔奶术 */
/* バッファのサイズ */
#define TITLESTRINGBUFSIZ 256
/* 弁仿奶失件玄卞苇六月旦平伙犯□正及 侬 及田永白央 */
/* クライアントに見せるスキルデータの文字列のバッファ */
static char TITLE_statusStringBuffer[TITLESTRINGBUFSIZ];
/*------------------------------------------------------------
* 仿
*
* title Title*
* charaindex int 仿
*
*
*
* title Title*
* charaindex int
*
* char*
------------------------------------------------------------*/
char* TITLE_makeTitleStatusString( int charaindex,int havetitleindex )
{
int attach;
int index;
/* 楮醒 尺及奶件犯永弁旦井日犯□正毛综岳允月 */
/* 関数表へのインデックスからデータを作成する */
index = CHAR_getCharHaveTitle( charaindex,havetitleindex );
attach = TITLE_getTitleIndex( index);
@ -182,10 +183,10 @@ char* TITLE_makeTitleStatusString( int charaindex,int havetitleindex )
}
/*------------------------------------------------------------
*
*
*
*
*
*
*
*
* char*
------------------------------------------------------------*/
char* TITLE_makeSkillFalseString( void )
@ -196,13 +197,13 @@ char* TITLE_makeSkillFalseString( void )
/*------------------------------------------------------------
*
*
* charaindex int 仿
* titleindex int
*
* index
* FALSE(0)
*
*
* charaindex int
* titleindex int
*
* index
* FALSE(0)
------------------------------------------------------------*/
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++ ){
if( CHAR_getCharHaveTitle( charaindex,i ) == titleindex )
/* 允匹卞 匀化中月井日窒手仄卅中 */
/* すでに持っているから何もしない */
return FALSE;
if( firstfindempty == -1
&& CHAR_getCharHaveTitle(charaindex,i) == -1 ){
@ -227,14 +228,14 @@ BOOL TITLE_addtitle( int charaindex, int titleindex )
/*------------------------------------------------------------
*
*
*
* charaindex int 仿
* titleindex int
*
* TRUE(1)
* FALSE(0)
*
*
*
* charaindex int
* titleindex int
*
* TRUE(1)
* FALSE(0)
------------------------------------------------------------*/
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++ )
if( CHAR_getCharHaveTitle( charaindex,i ) == titleindex ){
/* 愤坌互银匀化中凶支勾卅日壬}公木手卅仄卞允月 */
/* 自分が使っていたやつならば、それもなしにする */
if( CHAR_getInt(charaindex, CHAR_INDEXOFEQTITLE) == i ){
CHAR_setInt(charaindex, CHAR_INDEXOFEQTITLE, -1 );
}
/* 匀化中月井日壅允 */
/* 持っているから消す */
CHAR_setCharHaveTitle( charaindex,i,-1);
del = TRUE;
@ -261,12 +262,12 @@ BOOL TITLE_deltitle( int charaindex, int titleindex )
return del;
}
/*------------------------------------------------------------
*
*
* filename char*
*
* TRUE(1)
* FALSE(0)
*
*
* filename char*
*
* TRUE(1)
* FALSE(0)
*------------------------------------------------------------*/
BOOL TITLE_initTitleName( char* filename )
{
@ -283,7 +284,7 @@ BOOL TITLE_initTitleName( char* filename )
TITLE_titlenum=0;
/* 引内 躲卅垫互窒垫丐月井升丹井譬屯月 */
/* まず有効な行が何行あるかどうか調べる */
while( fgets( line, sizeof( line ), f ) ){
linenum ++;
if( line[0] == '#' )continue; /* comment */
@ -307,7 +308,7 @@ BOOL TITLE_initTitleName( char* filename )
fclose( f );
return FALSE;
}
/* 赓渝祭 */
/* 初期化 */
{
int i;
for( i = 0; i < TITLE_titlenum; i ++ ) {
@ -319,7 +320,7 @@ BOOL TITLE_initTitleName( char* filename )
}
/* 引凶 心 允 */
/* また読み直す */
linenum = 0;
while( fgets( line, sizeof( line ), f ) ){
linenum ++;
@ -327,10 +328,11 @@ BOOL TITLE_initTitleName( char* filename )
if( line[0] == '\n' )continue; /* none */
chomp( line );
/* 垫毛帮溥允月 */
/* 引内 tab 毛 " " 卞 五晶尹月 */
/* 行を整形する */
/* まず tab を " " に置き換える */
replaceString( line, '\t' , ' ' );
/* 燮 及旦矢□旦毛潸月[*/
/* 先頭のスペースを取る。*/
{
int i;
char buf[256];
@ -348,7 +350,7 @@ BOOL TITLE_initTitleName( char* filename )
char token[256];
int ret;
/* 夫午勾户及玄□弁件毛苇月 */
/* ひとつめのトークンを見る */
ret = getStringFromIndexWithDelim( line,",",1,token,
sizeof(token));
if( ret==FALSE ){
@ -357,7 +359,7 @@ BOOL TITLE_initTitleName( char* filename )
}
TITLE_table[title_readlen].index = atoi(token);
/* 2勾户及玄□弁件毛苇月 */
/* 2つめのトークンを見る */
ret = getStringFromIndexWithDelim( line,",",2,token,
sizeof(token));
if( ret==FALSE ){
@ -394,12 +396,12 @@ BOOL TITLE_initTitleName( char* filename )
return TRUE;
}
/*------------------------------------------------------------
*
*
* filename char*
*
* TRUE(1)
* FALSE(0)
*
*
* filename char*
*
* TRUE(1)
* FALSE(0)
*------------------------------------------------------------*/
BOOL TITLE_reinitTitleName( void)
{
@ -407,12 +409,12 @@ BOOL TITLE_reinitTitleName( void)
return(TITLE_initTitleName( getTitleNamefile()));
}
/*------------------------------------------------------------
*
*
* filename char*
*
* TRUE(1)
* FALSE(0)
*
*
* filename char*
*
* TRUE(1)
* FALSE(0)
*------------------------------------------------------------*/
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)
{
@ -442,10 +444,10 @@ static int TITLE_getConfigOneLine( FILE *fp, char *line, int linelen)
linenum ++;
if( buf[0] == '#' )continue; /* comment */
if( buf[0] == '\n' )continue; /* none */
/* 垫毛帮溥允月 */
/* 引内 tab 毛 " " 卞 五晶尹月 */
/* 行を整形する */
/* まず tab を " " に置き換える */
replaceString( buf, '\t' , ' ' );
/* 旦矢□旦绰轮 */
/* スペース削除 */
deleteCharFromString( buf, " ");
if( buf[0] == '{' ) {
@ -465,18 +467,18 @@ static int TITLE_getConfigOneLine( FILE *fp, char *line, int linelen)
return 1;
}
else {
/* "{"匹湃卞铵引匀化中凶日 }*/
/* "{"で既に始まっていたら }*/
if( startflg == TRUE ) {
if( strlen( line) != 0 ) {
if( line[strlen(line) -1] != ',' ) {
strcatsafe( line, linelen, ",");
}
}
/* ㄠ垫卞引午户化中仁*/
/* 1行にまとめていく*/
chompex( buf );
strcatsafe( line,linelen, buf);
}
/* 躲垫分互"{"匹反元引匀化卅中桦宁反公及引引ㄠ垫匹忒允 }*/
/* 有効行だが"{"ではじまってない場合はそのまま1行で返す }*/
else {
chompex( buf );
strcatsafe( line,linelen, buf);
@ -484,7 +486,7 @@ static int TITLE_getConfigOneLine( FILE *fp, char *line, int linelen)
}
}
}
/* 仇仇卞仁月午蜕丹仪反EOF 驯五元扎卅中戊□玉分 */
/* ここにくると言う事はEOF (好きじゃないコードだ) */
return 0;
}
static int TITLE_getParamData( int readarray, int array,char *src)
@ -521,12 +523,12 @@ char *getlocaltime()
}
/*------------------------------------------------------------
*
*
* filename char*
*
* TRUE(1)
* FALSE(0)
*
*
* filename char*
*
* TRUE(1)
* FALSE(0)
*------------------------------------------------------------*/
BOOL TITLE_initTitleConfig( char* filename )
{
@ -543,7 +545,7 @@ BOOL TITLE_initTitleConfig( char* filename )
TITLE_titlecfgnum=0;
/* 引内 躲卅垫互窒垫丐月井升丹井譬屯月 */
/* まず有効な行が何行あるかどうか調べる */
/*while( fgets( line, sizeof( line ), f ) ){}*/
while( 1 ) {
int rc;
@ -568,7 +570,7 @@ BOOL TITLE_initTitleConfig( char* filename )
fclose( f );
return FALSE;
}
/* 赓渝祭 */
/* 初期化 */
{
int i;
for( i = 0; i < TITLE_titlecfgnum; i ++ ) {
@ -583,7 +585,7 @@ BOOL TITLE_initTitleConfig( char* filename )
return FALSE;
}
/* 引凶 心 允 */
/* また読み直す */
linenum = 0;
/*while( fgets( line, sizeof( line ), f ) ){}*/
while( 1) {
@ -601,17 +603,17 @@ BOOL TITLE_initTitleConfig( char* filename )
int comppos;
BOOL errflg =FALSE;
for( i = 1; ; i ++ ){
/* 玄□弁件毛苇月 */
/* トークンを見る */
ret = getStringFromIndexWithDelim( line,",",i,token,
sizeof(token));
if( ret == FALSE ){
break;
}
/* 侬卞 晶 */
/* 大文字に変換 */
for( j = 0; j < strlen( token); j ++ ) {
token[j] = toupper( token[j]);
}
/* 惫寞隙烂毛譬屯月 */
/* 称号指定を調べる */
if( strncmp( "TITLE", token, 5) == 0 ) {
char buf[64];
ret = getStringFromIndexWithDelim( token,"=",2,buf,
@ -625,7 +627,7 @@ BOOL TITLE_initTitleConfig( char* filename )
TITLE_ConfigTable[titlecfg_readlen].title = atoi( buf);
}
else {
/* 由仿丢□正隙烂毛 戈 */
/*パラメータ指定を読む */
for( j = 0; j < arraysizeof( TITLE_param); j ++ ) {
if( strncmp( TITLE_param[j].paramname,
token,
@ -633,14 +635,14 @@ BOOL TITLE_initTitleConfig( char* filename )
== 0 )
{
TITLE_ConfigTable[titlecfg_readlen].paramindex[i-1] = j;
/* 隶 奶矛件玄匹惫寞毛民尼永弁允月白仿弘毛 化月[ */
/* 装備イベントで称号をチェックするフラグを立てる。 */
if( j == 0 || j == 1 || j == 2) {
TITLE_ConfigTable[titlecfg_readlen].equipcheckflg = TRUE;
}
break;
}
}
/* 由仿丢□正互 卅及毛隙烂今木凶 */
/* パラメータが変なのを指定された */
if( j == arraysizeof( TITLE_param) ) {
fprint("文件语法错误:%s 第%d行\n",
filename,linenum);
@ -648,7 +650,7 @@ BOOL TITLE_initTitleConfig( char* filename )
errflg = TRUE;
break;
}
/* 羁寞]尕羁寞互绣箕允月井譬屯月 */
/* 等号,不等号が存在するか調べる */
comppos = charInclude( token, "<>=");
if( comppos == -1 ) {
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
@ -656,9 +658,9 @@ BOOL TITLE_initTitleConfig( char* filename )
errflg = TRUE;
break;;
}
/* 羁寞]尕羁寞互ㄡ勾动晓 月午五 */
/* 等号,不等号が2つ以上有るとき */
if( charInclude( &token[comppos+1], "<>=") != -1 ) {
/* 升氏卅 胜井毛 戈 */
/* どんな比較かを読む */
for( j = 0; j < 3; j ++ ) {
if( memcmp( TITLE_compare[j].compare, &token[comppos], 2 ) == 0 ) {
break;
@ -694,7 +696,7 @@ BOOL TITLE_initTitleConfig( char* filename )
}
/*TITLE_ConfigTable[titlecfg_readlen].param[i-1]
= atoi( &token[comppos+1]);*/
/* 升氏卅 胜井毛 戈 */
/* どんな比較かを読む */
for( j = 3; j < 6; j ++ ) {
if( memcmp( TITLE_compare[j].compare, &token[comppos], 1 ) == 0 ) {
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 ) {
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
TITLE_initTitleData( titlecfg_readlen);
@ -723,19 +725,19 @@ BOOL TITLE_initTitleConfig( char* filename )
return TRUE;
}
/*------------------------------------------------------------
*
*
* charaindex int 仿
* mode BOOL TRUE:item= FALSE:
*
* TRUE:
* FALSE:
* 調
*
* charaindex int
* mode BOOL TRUE:item=調 FALSE:
*
* TRUE:
* FALSE:
*------------------------------------------------------------*/
static BOOL TITLE_TitleCheck_Main( int charaindex, BOOL mode, int *addcnt, int *delcnt)
{
int i, j,k, ret;
/* 赓渝祭 */
/* 初期化 */
{
int 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;
}
}
/* 醒椭瘀卞 元惫寞互喃曰癫化日木化中月凛及啃卞]
* add,deltile允月
/* 複数条件に同じ称号が割り当てられている時の為に,
* add,deltileする
*/
for( k = 0; k < TITLE_titlecfgnum; k ++ ) {
if( TITLE_configbuf[k].title == title ) {
@ -803,13 +805,13 @@ static BOOL TITLE_TitleCheck_Main( int charaindex, BOOL mode, int *addcnt, int *
}
/*------------------------------------------------------------
*
*
* charaindex int 仿
* mode BOOL TRUE:item= FALSE:
*
* TRUE:
* FALSE:
* 調
*
* charaindex int
* mode BOOL TRUE:item=調 FALSE:
*
* TRUE:
* FALSE:
*------------------------------------------------------------*/
BOOL TITLE_TitleCheck( int charaindex, BOOL mode)
{
@ -836,13 +838,13 @@ BOOL TITLE_TitleCheck( int charaindex, BOOL mode)
return rc;
}
/*------------------------------------------------------------
*
*
* charaindex int 仿
* mode BOOL TRUE:item= FALSE:
*
* TRUE:
* FALSE:
* 調
*
* charaindex int
* mode BOOL TRUE:item=調 FALSE:
*
* TRUE:
* FALSE:
*------------------------------------------------------------*/
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;
}
/* --------------------------------------
* data午
* dataと持っているアイテムを比較する
* -------------------------------------*/
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: /* "=" */
if( ITEM_getInt( itemindex, ITEM_ID) == *(data +j)) rc = TRUE;
break;
/* 仇木分仃 健中[
*
*
/* これだけ特別扱い。
*
*
*/
case 2: /* "<>" */
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;
}
/* --------------------------------------
* 仿仿
*
* -------------------------------------*/
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)
{
int battlemode;
if( CHAR_CHECKINDEX( charaindex ) == FALSE )return ; //{撩
if( CHAR_CHECKINDEX( charaindex ) == FALSE )return ; //失敗
battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE );
if( battlemode == BATTLE_CHARMODE_INIT ){
}else
@ -1359,7 +1359,7 @@ void ITEM_useStatusChange( int charaindex, int toindex, int haveitemindex)
void ITEM_useStatusRecovery( int charaindex, int toindex, int haveitemindex)
{
int battlemode;
if( CHAR_CHECKINDEX( charaindex ) == FALSE )return ; //{撩
if( CHAR_CHECKINDEX( charaindex ) == FALSE )return ; //失敗
battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE );
if( battlemode == BATTLE_CHARMODE_INIT ){
}else
@ -1437,7 +1437,7 @@ void ITEM_useMic( int charaindex, int toindex, int haveitemindex)
void ITEM_useCaptureUp( int charaindex, int toindex, int haveitemindex)
{
int battlemode;
if( CHAR_CHECKINDEX( charaindex ) == FALSE )return ; //{撩
if( CHAR_CHECKINDEX( charaindex ) == FALSE )return ; //失敗
battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE );
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)
{
@ -1789,40 +1789,41 @@ void ITEM_dropDice( int charaindex, int itemindex)
int diceimagenumber[] = { 24298,24299,24300,24301,24302,24303};
int r = RAND( 0,5);
// 飓 寞毛谨
// 画像番号を待避
ITEM_setInt( itemindex, ITEM_VAR1, ITEM_getInt( itemindex, ITEM_BASEIMAGENUMBER));
// 飓 寞凳蕙
// 画像番号更新
ITEM_setInt( itemindex, ITEM_BASEIMAGENUMBER, diceimagenumber[r]);
// 蟆凳蕙
// 名前更新
ITEM_setChar( itemindex, ITEM_SECRETNAME, dicename[r]);
// 犯□正及弁仿奶失件玄尺及霜耨反晓匏楮醒匹垫丹及匹]仇仇匹反支日卅中[
// データのクライアントへの送信は上位関数で行うので,ここではやらない。
}
//-------------------------------------------------------------------------
// 今中仇欠毛 蜇允月楮醒[
// 胶匀凶凛卞] 蟆午 飓 寞毛葭卞 允[
// さいころを実現する関数。
// 拾った時に,名前と画像番号を元に戻す。
//-------------------------------------------------------------------------
void ITEM_pickupDice( int charaindex, int itemindex)
{
// 飓 寞毛葭卞 允[
// 画像番号を元に戻す。
ITEM_setInt( itemindex, ITEM_BASEIMAGENUMBER, ITEM_getInt( itemindex, ITEM_VAR1));
// 蟆手葭卞 允
// 名前も元に戻す
ITEM_setChar( itemindex, ITEM_SECRETNAME, ITEM_getChar( itemindex, ITEM_NAME));
}
enum {
ITEM_LOTTERY_1ST, // 1羁
ITEM_LOTTERY_1ST, // 1等
ITEM_LOTTERY_2ND,
ITEM_LOTTERY_3RD,
ITEM_LOTTERY_4TH,
ITEM_LOTTERY_5TH, // 5
ITEM_LOTTERY_6TH, // 6羁
ITEM_LOTTERY_NONE, // 陆木
ITEM_LOTTERY_5TH, // 5
ITEM_LOTTERY_6TH, // 6等
ITEM_LOTTERY_NONE, // 外れ
ITEM_LOTTERY_NUM,
};
//-------------------------------------------------------------------------
// 旦疋□玉仁元互综日木月凛及楮醒[
// 仇仇匹窒羁操卞卅月井毛瑁户月[
// 割 反动票及骚曰[
// スピードくじが作られる時の関数。
// ここで何等賞になるかを決める。
// 確率は以下の通り。
#define PRE_6 (10000)
#define PRE_5 (1300 + PRE_6)
@ -1855,15 +1856,15 @@ BOOL ITEM_initLottery(ITEM_Item* itm)
{
int r = RAND( 0, 49999);
int hit = ITEM_LOTTERY_NONE; //
char result[7]; //
char result[7]; // 出目
int countnum[6];
int count;
int i;
int len;
// 域荚综匀化月及匹[疯粟 仄凶凛午井卞综曰卅云今木卅中方丹卞[
// 一回作ってるので。再起動した時とかに作りなおされないように。
if( itm->data[ITEM_VAR3] == 1 ) return TRUE;
// 铲蓟允月[
// 抽選する。
if( r < PRE_6 ) hit = ITEM_LOTTERY_6TH;
else if( r < PRE_5 ) hit = ITEM_LOTTERY_5TH;
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 hit = ITEM_LOTTERY_NONE;
// 请 毛瑁烂允月[
// 出目を決定する。
count = 0;
if( hit != ITEM_LOTTERY_NONE ) {
// 癫曰毛本永玄
// 当りをセット
result[0] = result[1] = result[2] = hit+1;
count = 3;
countnum[hit] = 3;
@ -1883,8 +1884,8 @@ BOOL ITEM_initLottery(ITEM_Item* itm)
while( count < 6 ) {
int r = RAND( ITEM_LOTTERY_1ST, ITEM_LOTTERY_6TH);
if( countnum[r] >= 2 ) continue;
// 2/3仁日中及割 匹]职及陆木钓 毛伉□民今六化支月[
// 升五升五[
// 2/3くらいの確率で,他の外れ絵柄をリーチさせてやる。
// どきどき。
if( ( hit != ITEM_LOTTERY_NONE && count == 3 )
|| ( hit == ITEM_LOTTERY_NONE && count == 0 ) )
{
@ -1899,13 +1900,14 @@ BOOL ITEM_initLottery(ITEM_Item* itm)
result[count] = r+1;
count++;
}
// 请 毛扑乓永白伙允月[
// 癫曰及凛反2/3及割 匹]癫曰醒侬毛域 欠卞裔烂允月[
// 玉平玉平躲绊毛谎丹啃[
// 出目をシャッフルする。
// 当りの時は2/3の確率で当り数字を一番後ろに固定する。
// ドキドキ効果を狙う為。
len = sizeof( result)-2;
if( hit != ITEM_LOTTERY_NONE ) {
if( RAND( 0,2) ) {
// 癫曰醒侬毛域 欠卞[
// 当り数字を一番後ろに。
char s = result[0];
result[0] = result[5];
result[5] = s;
@ -1920,10 +1922,10 @@ BOOL ITEM_initLottery(ITEM_Item* itm)
result[x] = result[y];
result[y] = s;
}
// 及凶户] 侬 健中卞仄化云仁[
// 念のため,文字列扱いにしておく。
result[sizeof(result)-1] = '\0';
itm->data[ITEM_VAR1] = hit;
// 户仁匀凶市它件玄
// めくったカウント
itm->data[ITEM_VAR2] = 0;
itm->data[ITEM_VAR3] = 1;
memcpy( itm->string[ITEM_ARGUMENT].string, result, sizeof( result));
@ -1931,8 +1933,8 @@ BOOL ITEM_initLottery(ITEM_Item* itm)
return TRUE;
}
//-------------------------------------------------------------------------
// 旦疋□玉仁元毛银匀凶凛及楮醒[
// ㄥ荚银丹午]窒羁操井及失奶 丞卞 祭允月[
// スピードくじを使った時の関数。
// 6回使うと,何等賞かのアイテムに変化する。
//-------------------------------------------------------------------------
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 hit = ITEM_getInt( itemindex, ITEM_VAR1);
char buff[1024];
char num[6][3] = { {""},{""},{""},{""},{""}, {""}};
char num[6][3] = { {""},{""},{""},{""},{""}, {""}};
char numbuff[128];
char *n;
int result;
@ -1950,7 +1952,7 @@ void ITEM_useLottery( int charaindex, int toindex, int haveitemindex)
if( count == 0 ) {
ITEM_setChar( itemindex, ITEM_EFFECTSTRING, "");
}
// ㄥ荚 及银迕反]陆木仄井丐曰 卅中及匹]仇仇匹失奶 丞毛壅允
// 6回目の使用は,外れしかあり得ないので,ここでアイテムを消す
else if( count == 6 ) {
CHAR_setItemIndex( charaindex , haveitemindex, -1 );
CHAR_sendItemDataOne( charaindex, haveitemindex);
@ -1960,7 +1962,7 @@ void ITEM_useLottery( int charaindex, int toindex, int haveitemindex)
n = ITEM_getChar( itemindex, ITEM_ARGUMENT);
// for debug
result = (int)n[count]-1;
// 伉□民井譬屯月
// リーチか調べる
flg = FALSE;
for( i = 0; i < count+1 && flg == FALSE; i ++ ) {
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);
// 躲绊 侬 卞]请 毛请允[
// 効果文字列に,出目を出す。
snprintf( buff, sizeof( buff), "%s%s", numbuff, num[result]);
count ++;
ITEM_setInt( itemindex, ITEM_VAR2, count);
// ㄥ荚 匹癫曰卅日癫曰失奶 丞卞 凳]陆木卅日陆木午 憎]
// 戚荚母皮伙弁伉永弁匹壅允[
// 6回目で当りなら当りアイテムに変更,外れなら外れと表示,
// 次回ダブルクリックで消す。
if( count >= 6 ) {
// 癫曰
// 当り
if( hit != ITEM_LOTTERY_NONE ) {
int newitemindex;
char strbuff[1024];
char msgbuff[1024];
// 壅仄化
// 消して
CHAR_setItemIndex( charaindex , haveitemindex, -1 );
ITEM_endExistItemsOne( itemindex );
// 2729 - 2734 反 仁元及1 6羁
// 2729 - 2734 は宝くじの16等
newitemindex = ITEM_makeItemAndRegist( 2729 + hit);
CHAR_setItemIndex( charaindex , haveitemindex, newitemindex );
// 请 手戊疋□
// 出目もコピー
snprintf( strbuff, sizeof( strbuff), "%s %s", buff,
ITEM_getChar( newitemindex, ITEM_EFFECTSTRING));
ITEM_setChar( newitemindex, ITEM_EFFECTSTRING, strbuff);
@ -2000,27 +2003,27 @@ void ITEM_useLottery( int charaindex, int toindex, int haveitemindex)
msgbuff,
CHAR_COLORYELLOW );
}
// 陆木
// 外れ
else {
// CHAR_setItemIndex( charaindex , haveitemindex, -1 );
// 请 手戊疋□
// 出目もコピー
char strbuff[1024];
snprintf( strbuff, sizeof( strbuff), "%s 没中,下次再来", buff);
ITEM_setChar( itemindex, ITEM_EFFECTSTRING, strbuff);
CHAR_sendItemDataOne( charaindex, haveitemindex);
// ITEM_endExistItemsOne( itemindex );
// CHAR_talkToCli( charaindex, -1,
// "反内木″",
// "はずれ″",
// CHAR_COLORWHITE );
}
}
// 公丹元扎 中凛反]犯□正毛霜曰卅云允分仃[
// そうじゃ無い時は,データを送りなおすだけ。
else {
char strbuff[1024];
if( flg) {
// 旦矢□旦煌遥
// 失奶 丞及 及戊丢件玄反]ㄠ垫ㄡㄧ 侬匹]
// 旦矢□旦毛银匀化荼垫仄化中月[
// スペース計算
// アイテムの説明欄のコメントは,1行28文字で,
// スペースを使って改行している。
int spc = 16 + ( 6-count)*2;
char space[17];
space[spc] = '\0';
@ -3312,11 +3315,11 @@ void ITEM_metamo( int charaindex, int toindex, int haveitemindex )
#endif
battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE );
// 爵 钒铵凛反 骰允月
// 戦闘開始時は無視する
if( battlemode == BATTLE_CHARMODE_INIT ){
return;
}
// 爵 分匀凶日
// 戦闘中だったら
if( IsBATTLING( charaindex ) == TRUE ){
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);
/* 平乓仿弁正□及赭 伉旦玄井日壅蛔 */
/* キャラクターの所持品リストから消去 */
CHAR_setItemIndex(charaindex, haveitemindex ,-1);
CHAR_sendItemDataOne( charaindex, haveitemindex);/* 失奶 丞凳蕙 */
/* 壅允 */
/* 消す */
ITEM_endExistItemsOne( itemindex );
}
#endif
@ -5448,7 +5451,7 @@ void ITEM_MetamoTime( int charaindex, int toindex, int haveitemindex )
#endif
battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE );
// 爵 钒铵凛反 骰允月
// 戦闘開始時は無視する
if( battlemode == BATTLE_CHARMODE_INIT ){
return;
}

View File

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

View File

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

View File

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

View File

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

View File

@ -8,18 +8,18 @@
#include "anim_tbl.h"
/*#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
* fx int x
* fy int y
* isfly int
*
* TRUE(1)
* FALSE(0)
* fx int x座標
* fy int y座標
* isfly int
*
* TRUE(1)
* FALSE(0)
------------------------------------------------------------*/
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
* fx int x
* fy int y
*
* TRUE(1)
* FALSE(0)
* fx int x座標
* fy int y座標
*
* TRUE(1)
* FALSE(0)
------------------------------------------------------------*/
BOOL MAP_walkAble( int index,int ff, int fx, int fy)
{
/* 平乓仿卅日OK */
/* 透明キャラならOK */
if( CHAR_getFlg( index, CHAR_ISTRANSPARENT ) ) return TRUE;
// Arminius 7.9 Airplane ok
@ -90,20 +90,20 @@ BOOL MAP_walkAble( int index,int ff, int fx, int fy)
}
/*------------------------------------------------------------
*
*
* fl int
* x int x
* y int y
*
* TRUE
* FALSE
*
*
* fl int
* x int x
* y int y
*
* TRUE
* FALSE
------------------------------------------------------------*/
BOOL MAP_haveHeight( int fl, int x, int y )
{
int map[2];
/* 穴永皿犯□正毛 化仁月 */
/* マップデータを得てくる */
if( !MAP_getTileAndObjData( fl,x,y, &map[0], &map[1] ) )
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 )
{
@ -155,10 +151,11 @@ static void MAP_dealprepostevent( int index, BOOL mode )
* xxx烟及
*
*
* index int 仿
* flooor int ID
* fx int x甄
* fy int y甄
* index int Char配列での Index
* flooor int floor id
* fx int x座標
* 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] );
}
// 飓 寞恳仄中井"
// 画像番号正しいか?
if( IsValidImagenumber( i ) == FALSE ){
continue;
}
@ -406,20 +406,20 @@ FCLOSERETURNTRUE:
static BOOL MAP_readMapOne( char* filename )
{
FILE* f; /* 白央奶伙 */
char buf[16]; /* 穴斥永弁瓜件田□ 心迕 */
short data[1024]; /* 扑亦□玄 心迕田永白央 */
int ret; /* 忒曰袄熬仃潸曰迕 */
int i; /* 伙□皿 醒 */
FILE* f; /* ファイル */
char buf[16]; /* マジックナンバー読み用 */
short data[1024]; /* ショート読み用バッファ */
int ret; /* 返り値受け取り用 */
int i; /* ループ変数 */
int mapindex;
int id=0,xsiz=0,ysiz=0; /* 穴永皿犯□正及域凛伞 桦赭 */
int id=0,xsiz=0,ysiz=0; /* マップデータの一時格納場所 */
short *tile=NULL;
short *obj=NULL;
MAP_Objlink** olink=NULL;
char showstring[32]; /* 穴永皿犯□正及域凛伞 桦赭 */
struct stat filestat; /* 民尼永弁迕卞银丹 */
char showstring[32]; /* マップデータの一時格納場所 */
struct stat filestat; /* チェック用に使う */
BOOL invaliddata=FALSE;
if( MAP_mapnum_index >= MAP_mapnum ){
fprint( "这里没有足够空间装载地图数组.\n" );